CN113626353A - 处理加速器架构 - Google Patents
处理加速器架构 Download PDFInfo
- Publication number
- CN113626353A CN113626353A CN202110869996.XA CN202110869996A CN113626353A CN 113626353 A CN113626353 A CN 113626353A CN 202110869996 A CN202110869996 A CN 202110869996A CN 113626353 A CN113626353 A CN 113626353A
- Authority
- CN
- China
- Prior art keywords
- memory
- networks
- scratchpad
- processing accelerator
- processor cores
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 59
- 230000015654 memory Effects 0.000 claims abstract description 162
- 239000004744 fabric Substances 0.000 claims abstract description 11
- 230000006854 communication Effects 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 10
- 230000003068 static effect Effects 0.000 claims description 4
- 230000007175 bidirectional communication Effects 0.000 claims 3
- 230000008878 coupling Effects 0.000 abstract description 3
- 238000010168 coupling process Methods 0.000 abstract description 3
- 238000005859 coupling reaction Methods 0.000 abstract description 3
- 238000005516 engineering process Methods 0.000 description 17
- 238000000034 method Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1684—Details of memory controller using multiple buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1657—Access to multiple memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/781—On-chip cache; Off-chip memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Multi Processors (AREA)
- Advance Control (AREA)
Abstract
一种处理加速器能够在集成电路(IC)芯片上包括多个网络、多个核心、纵横互连结构、多个存储器控制器和便笺式存储器。所述多个核心能够通过多个片上网络耦合在一起。所述纵横互连结构能够将所述由核心构成的网络耦合到所述多个存储器控制器。所述多个存储器控制器能够被配置成访问存储在片外存储器中的数据。所述便笺式存储器能够被配置成缓存所述访问的数据的各部分。所述便笺式存储器能够由所述处理由核心构成的网络直接访问,或者能够分布在所述多个存储器控制器内。所述存储器控制器可以是宽度为4、8、12、16位或4位的倍数的窄通道(NC)存储器控制器。
Description
背景技术
在范围为在线购物引擎、社交联网、推荐引擎、映射引擎、故障分析、网络管理、搜索引擎等的许多应用中利用图数据库。图数据库能够用于确定大数据集中的依赖性、聚类、相似性、匹配、类别、流、成本、中心性等。
图数据库使用具有节点、边和属性的图结构来表示并存储用于语义查询的数据。图将数据项与节点、边和属性的集合联系起来。也能够被称为顶点的节点能够表示实体、实例等。边能够表示节点之间的关系,并且允许将数据直接链接在一起。属性可以是与节点或边密切相关的信息。图数据库允许简单且快速地检索难以在关系***中建模的复杂层次结构。大量处理操作包括图遍历操作,诸如指针追踪,其中读取节点105以确定指向一个或多个其他节点120的边110。能够读取一个或多个其他节点120以确定指向其他节点135、140等的其他边125、130,如图1中图示的。图遍历操作和其他类似计算能够通过访问边和节点的随机模式来表征。此外,与图遍历操作和其他类似计算相关联的数据访问通常能够小于64字节的标准最小高速缓存线访问。图处理中的数据访问也能够通过对与节点和边的聚类相关联的数据的密集利用来表征。
图处理通常引发大的处理利用率和大的存储器访问带宽利用率。因此,需要能够减少与大的处理利用率相关联的时延、提高存储器带宽利用率等的改进的图处理平台。
发明内容
可以通过参考以下描述和附图来最好地理解本技术,以下描述和附图用于图示针对用于图处理和其他类似应用的加速器的本技术的实施例
在一个实施例中,一种处理加速器能够包括由多个核心构成的网络、便笺式存储器、纵横互连结构和多个存储器控制器。由多个处理器核心构成的网络、便笺式存储器、纵横互连结构和多个存储器控制器能够包括集成电路(IC)芯片。便笺式存储器能够被配置成缓存数据。在一个实现方式中,便笺式存储器能够由多个核心直接访问。在另一实现方式中,便笺式存储器能够分布在多个存储器控制器内。纵横互连结构能够被配置成将由多个处理器核心构成的网络耦合到多个存储器控制器。多个存储器控制器能够被配置成通过多个存储器通道接口来访问片外数据。
在另一实施例中,处理加速器能够包括多个网络、多个处理器核心、多个窄通道(NC)存储器控制器、便笺式存储器和纵横互连结构。能够通过多个网络将多个核心耦合在一起。纵横互连结构能够被配置成将多个网络耦合到多个窄通道(NC)存储器控制器。多个窄通道(NC)存储器控制器能够被配置成访问存储在片外存储器中的数据。便笺式存储器能够耦合到多个存储器控制器。便笺式存储器能够被配置成缓存数据的各部分。
本发明内容被提供来以简化形式引入在下面在具体实施方式中进一步描述的构思的选择。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,它也不旨在用于限制所要求保护的主题的范围。
附图说明
在附图的各图中,本技术的实施例作为示例而不作为限制被图示,而且在附图中相似的附图标记指代类似的元件,并且在附图中:
图1图示根据常规技术的示例性图数据库。
图2示出依照本技术的各方面的计算***。
图3示出依照本技术的各方面的处理加速器架构。
图4示出依照本技术的各方面的处理加速器架构。
图5示出依照本技术的各方面的处理加速器架构。
图6示出依照本技术的各方面的窄通道(NC)存储器控制器。
具体实施方式
现在将详细地参考本技术的实施例,其示例被图示在附图中。虽然将结合这些实施例描述本技术,但是应理解,它们不旨在将本技术限于这些实施例。相反,本发明旨在涵盖可以被包括在如由所附权利要求所限定的本发明的范围内的替代方案、修改和等同物。此外,在本技术的以下详细描述中,阐述了许多特定细节以便提供对本技术的透彻理解。然而,应理解,可以在没有这些特定细节的情况下实践本技术。在其他情况下,尚未详细地描述公知方法、过程、组件和电路,以免不必要地使本技术的各方面混淆。
下面的本技术的一些实施例是按例程、模块、逻辑块以及在一个或多个电子设备内对数据进行的操作的其他符号表示而呈现的。描述和表示是由本领域的技术人员使用来将其工作的实质最有效地传达给本领域的技术人员的手段。例程、模块、逻辑块和/或类似物在本文中并且通常被构思为导致期望结果的过程或指令的自洽序列。过程是包括对物理量的物理操纵的过程。通常,尽管不一定,但是这些物理操纵采取能够在电子设备中存储、转移、比较和以其他方式操纵的电或磁信号的形式。出于方便的原因,并且参考常见用法,参考本技术的实施例将这些信号称为数据、位、值、元件、符号、字符、术语、数字、字符串和/或类似物。
然而,应该记住,这些术语将被解释为引用物理操纵和量并且仅仅是方便的标签,而且将鉴于本领域中常用的术语来进一步解释。除非如从以下讨论中显而易见的那样另外具体地陈述,否则应理解,通过对本技术的讨论,利用诸如“接收”和/或类似物的术语的讨论是指诸如对数据进行操纵和变换的电子计算设备的电子设备的动作和过程。数据被表示为电子设备的逻辑电路、寄存器、存储器和/或类似物内的物理(例如,电子)量,并且被变换成类似地表示为电子设备内的物理量的其他数据。
在本申请中,析取词的使用旨在包括连接词。定冠词或不定冠词的使用不旨在指示基数。特别地,对“该”对象或“一”对象的引用旨在也表示多个可能的此类对象中的一个。术语“包括”、“包括有”、“包含”、“包含有”等的使用指定存在陈述的元件,但是不排除存在或添加一个或多个其他元件和/或其组。也应当理解,结果术语第一、第二等可以在本文中用于描述各种元件,但是此类元件不应该受这些术语限制。这些术语在本文中用于将一个元件与另一元件区分开。例如,在不脱离实施例的范围的情况下,能将第一元件称为第二元件,并且类似地能将第二元件称为第一元件。也应当理解,当一个元件被称为“耦合”到另一元件时,它可以直接或间接连接到另一元件,或者可以存在中间元件。相比之下,当一个元件被称为“直接连接”到另一元件时,不存在中间元件。也应当理解,术语“和或”包括相关元件中的一个或多个的任何和所有组合。也应当理解,本文使用的措辞和术语是为了描述,而不应该被视为限制。
参考图2,示出了依照本技术的各方面的计算***。计算***200能够包括但不限于一个或多个主机处理器210、一个或多个处理加速器220、主机存储器230和加速器存储器240。一个或多个处理加速器220能够通过诸如但不限于一个或多个***组件接口快速(PCIe)接口或一个或多个计算快速链路(CXL)接口的一个或多个通信接口250通信地耦合到一个或多个主机处理器210。
主机存储器230可以是通过一个或多个存储器通道通信接口260通信地耦合到一个或多个主机处理器210的诸如动态随机存取存储器(DRAM)等的片外存储器。在一个实现方式中,主机存储器230能够由64位的通道宽度来表征。加速器存储器240可以是通过多个窄存储器(NC)通道通信接口270通信地耦合到一个或多个处理加速器220的诸如动态随机存取存储器(DRAM)等的片外存储器。与主机存储器230相比,加速器存储器240能够通过更窄的通道宽度和更小的访问粒度来表征。在一个实现方式中,加速器存储器240能够通过4、8、12、16位或4位的倍数的通道宽度来表征。
一个或多个主机处理器210能够被配置成管理***200的整体执行。一个或多个处理加速器220能够被配置成执行图处理和或其他类似功能。
现在参考图3,示出了依照本技术的各方面的处理加速器架构。处理加速器300能够包括但不限于由核心构成的网络310、便笺式存储器320、纵横互连结构330和存储器控制器340。在一个实现方式中,能够将处理加速器300制作为集成电路(IC)芯片。在一个实现方式中,由核心构成的网络310能够包括数百、数千或甚至更多个核心350,诸如精简指令集(RISC-V)核心、先进RISC机器(ARM)核心等。多个核心350能够通过一个或多个片上网络(NoC)通信地耦合在一起,并且能够包括诸如但不限于网状、巡回、八边形、树形、环形、星形及其组合的拓扑。
便笺式存储器320能够耦合到由核心构成的网络310。图处理能够通过密集地使用的少量数据来表征,因此便笺式存储器320可以接近由多个核心共享的缓存存储器。在一个实现方式中,便笺式存储器320可以是静态随机存取存储器(SRAM)。在一个实现方式中,能够在由核心构成的网络310的一个或多个核心上、在一个或多个主机处理器(未示出)等上执行的计算设备可执行指令(例如,软件应用)中管理便笺式存储器320。便笺式存储器320能够被配置成从便笺式存储器320内为来自由核心构成的网络310的给定存储器请求服务,或者将给定存储器请求传递给存储器控制器340。例如,便笺式存储器320能够接收来自由核心构成的网络310的存储器读取或写入指令。如果存储器读取或写入指令是针对缓存在便笺式存储器320之一中的数据的命中,则能够从给定便笺式存储器320读取数据或者将数据写入到给定便笺式存储器320。在一个实现方式中,便笺式存储器320能够被由核心构成的网络310共享,使得核心350中的任一个能够访问便笺式存储器320中的任一个。
由核心构成网络310也能够通过纵横互连结构330耦合到存储器控制器340。纵横互连结构330可以是以矩阵配置布置的开关的集合。纵横互连结构330的开关能够耦合在由核心构成的网络310与存储器控制器340之间以形成互连的交叉图案。纵横互连结构330可以是非阻塞的以允许不阻止将其他输入连接到其他输出的并发连接。如果存储器读取或写入指令是便笺式存储器320中的未命中,则能够通过纵横互连结构330将存储器读取或写入指令传递到适用的存储器控制器以便适当地访问加速器存储器(未示出)。在一个实现方式中,存储器读取或写入访问的存储器地址的一部分能够由纵横互连结构330利用来将存储器读取或写入访问路由到对应的存储器控制器340。
存储器控制器340能够可配置成通过一个或多个存储器通道(未示出)耦合到一个或多个片外加速器存储器(未示出)。在一个实现方式中,外部存储器可以是动态随机存取存储器(DRAM)。存储器控制器340的存储器通道能够通过大约4、8、12、16位或4位的倍数的相对较窄的通道(NC)宽度来表征。在一个实现方式中,窄通道(NC)能够由标准存储器通道的多个部分实现。在另一实现方式中,能够通过减少存储器访问的突发长度来实现窄通道(NC)。
现在参考图4,示出了依照本技术的各方面的另一处理加速器架构。处理加速器400能够包括但不限于由核心构成的网络410、纵横互连结构420和存储器控制器430。在一个实现方式中,能够将处理加速器400制作为集成电路(IC)芯片。在一个实现方式中,由核心构成的网络410能够包括数百、数千或甚至更多个核心440,诸如精简指令集(RISC-V)核心、先进RISC机器(ARM)核心等。多个核心440能够通过一个或多个连接网络(NoC)通信地耦合在一起,并且能够包括诸如但不限于网状、巡回、八边形、树形、环形、星形及其组合的拓扑。
由核心构成的网络410能够通过纵横互连结构420耦合到存储器控制器430。纵横互连结构420可以是以矩阵配置布置的开关的集合。纵横互连结构420的开关能够耦合在由核心构成的网络410与存储器控制器430之间以形成互连的交叉图案。纵横互连结构420可以是非阻塞的以允许不阻止将其他输入连接到其他输出的并发连接。在一个实现方式中,存储器读取或写入访问的存储器地址的一部分能够由纵横互连结构420利用来将存储器读取或写入访问路由到对应的存储器控制器430。
存储器控制器430能够可配置成通过一个或多个存储器通道(未示出)耦合到一个或多个片外加速器存储器(未示出)。存储器控制器的存储器通道能够通过大约4、8、12、16位或4位的倍数的相对较窄的通道(NC)宽度来表征。因此,存储器控制器430能够可配置成实现可定制的存储器通道。能够为大约64个字节的相对较小的存储器访问粒度器配置给定存储器控制器。存储器控制器430也能够包括便笺式存储器450。在一个实现方式中,便笺式存储器450能够分布存储器控制器430内布,使得便笺式存储器450的各部分被并入在相应的存储器控制器430中。
存储器控制器430能够被配置成从由核心构成的网络410接收通过纵横互连结构420路由的对应的存储器读取和写入访问请求。存储器控制器430能够检查以查看读取或写入访问请求的数据是否驻留在所对应的便笺式存储器450中(例如,便笺式存储器命中)。在一个实现方式中,便笺式存储器450可以是静态随机存取存储器(SRAM)等。如果所对应的数据不在所对应的便笺式存储器450中(例如,便笺式存储器未命中),则所对应的存储器控制器430能够访问外部存储器(例如,片外加速器存储器)。在一个实现方式中,外部存储器可以是动态随机存取存储器(DRAM)。
现在参考图5,示出了依照本技术的各方面的包括处理加速器架构的***。***500能够包括但不限于一个或多个主机处理器(未示出)、主机存储器(未示出)、一个或多个处理加速器510和加速器存储器515。处理加速器510能够包括但不限于多个核心520、一个或多个网络525-540、纵横互连结构545、多个存储器控制器550和一个或多个便笺式存储器555。在一个实现方式中,能够将处理加速器510制作为集成电路(IC)芯片。
一个或多个网络525-540能够被配置成将多个核心520通信地耦合在一起。纵横互连结构545能够被配置成将核心520的一个或多个网络525-540通信地耦合到多个存储器控制器550和一个或多个便笺式存储器555。在一个实现方式中,一个或多个网络525-540能够包括以诸如但不限于网状、巡回、八边形、树形、环形、星形及其组合的一种或多种拓扑布置的一个或多个网络通信通道525和一个或多个通信通道接口530。在一个实现方式中,一个或多个网络525-540能够包括被配置成将相应的核心组520通信地耦合到纵横互连结构545的多个环形拓扑通信通道525、多个环形通道接口530、相应的环形控制器535和相应的环形缓冲器540。
在一个实现方式中,多个核心530能够包括数百、数千或甚至更多个简单的核心,诸如精简指令集(RISC-V)核心、先进RISC机器(ARM)核心等。在一个实现方式中,能够将多个核心520组织在核心组中,并且能够将核心组组织在集合中。每组核心能够耦合到相应的通信通道接口。例如,处理加速器510能够包括十二个环形网络525-540,每个环形网络525-540能够包括十个核心组,每个核心组能够包括耦合到相应的环形通道接口530的八个核心。
纵横互连结构545能够被配置成将由核心520构成的网络525-540和多个存储器控制器550通信地耦合在一起。在一个实现方式中,纵横互连结构545能够被配置成将多个网络525-540中的给定网络中的核心520耦合到多个网络525-540中的其他网络中的核心520。纵横互连结构545也能够被配置成将多个网络525-540中的核心520耦合到多个存储器控制器550。纵横互连结构545可以是以矩阵配置布置的开关的集合。纵横互连结构545的开关能够耦合在核心520的网络525-540与存储器控制器550之间以形成能够在其之间建立连接的互连的交叉图案。纵横互连结构545可以是非阻塞的以允许不阻止将其他输入连接到其他输出的并发连接。
处理加速器510也能够包括其他子电路,诸如一个或多个输入/输出接口560等。例如,一个或多个输入/输出接口560能够包括用于将处理加速器510通信地耦合到一个或多个主机处理器(未示出)的一个或多个***组件接口快速(PCIe)接口、一个或多个计算快速链路(CXL)接口等。一个或多个输入/输出接口560也能够将处理加速器510耦合到一个或多个附加处理加速器。
纵横互连结构545能够将一个或多个输入/输出接口560通信地耦合到由核心520构成的一个或多个网络525-540。在一个实现方式中,在一个或多个主机处理器(未示出)上执行的软件能够跨一个或多个输入/输出接口560发送指令以控制图处理功能到多个核心520的分配。例如,图处理软件能够控制图处理功能到多个核心520的分配。在另一示例中,操作***单独或结合图处理软件,能够控制图处理功能到多个核心520的分配。
多个存储器控制器550能够通过一个或多个相应的存储器通道570、575耦合到片外加速器存储器515。如本文所使用的,术语片外用于指示不在处理加速器510的集成电路(IC)芯片上制作加速器存储器。多个存储器控制器550也能够耦合到相应的便笺式存储器555。在一个实现方式中,便笺式存储器555可以是静态随机存取存储器(SRAM)等。在一个实现方式中,能够将存储器控制器550和便笺式存储器555组织在多个集合565中。每个集合565能够包括一组存储器控制器550和对应的便笺式存储器555。
存储器控制器550的存储器通道能够通过大约4、8、12、16位或4位的倍数的相对较窄的通道(NC)宽度来表征。因此,存储器通道可以是可定制的。能够为大约64个字节的相对较小的存储器访问粒度器配置给定存储器控制器。在一个实现方式中,每个存储器控制器550能够通过一组数据线570以及共享地址和控制线575耦合到一组加速器存储器515。
存储器控制器550能够被配置成从核心520的网络525-540接收通过纵横互连结构545路由的对应的存储器读取和写入访问请求。对应的存储器控制器550能够检查以查看读取或写入访问请求的数据是否驻留在所对应的便笺式存储器555中(例如,便笺式存储器命中)。如果所对应的数据不在所对应的便笺式存储器555中(例如,便笺式存储器未命中),则所对应的存储器控制器550能够访问对应的片外加速器存储器515。
包括由核心构成的网络的处理加速器能够有利地提供高度的通用性和可编程性。相对简单的核心有利地使得处理加速器能够包括非常大量的核心。包括由核心构成的网络和窄通道(NC)存储器控制器的处理加速器也有利地使得能实现对随机存储器的密集访问。密集随机存储器访问对点追踪等的大线程是有利的。由核心构成的网络和窄通道(NC)存储器控制器也能够有利地减少处理时延和存储器访问时延。
现在参考图6,示出了依照本技术的各方面的窄通道(NC)存储器控制器。窄通道(NC)存储器控制器600能够包括存储器管理单元605、存储器请求解复用器610、请求队列615、数据缓冲器620、命令解复用器625、多个有限状态机630、命令复用器635、信号生成器640、数据解复用器645、多个数据模块650和输入/输出模块655。窄通道(NC)存储器控制器600能够耦合到多个窄通道(NC)存储器660、665。在一个实现方式中,窄通道(NC)存储器660、665包括多个存储卡660,每个存储卡包括多个存储器芯片665。在一个实现方式中,存储卡660可以是动态随机存取存储器(DRAM)卡(例如,印刷电路板)。在一个实现方式中,存储器芯片可以是符合诸如但不限于联合电子器件工程委员会(JEDEC)的商品存储器芯片标准的动态随机存取存储器(DRAM)集成电路(IC)芯片。在一个实现方式中,存储器芯片665能够具有用于转移指定位数的数据的数据引脚。例如,存储器芯片665能够具有用于输入和输出2、4、8、16位或4位的倍数的数据的数据引脚。在一个实现方式中,能够将存储器芯片665组织成行列以提供预定数量字节的数据,诸如每个芯片每行列2个存储器芯片各自具有用于访问4位的数据引脚,或者每个芯片每行列1个存储器芯片各自具有用于访问8位的数据引脚。如本文所使用的,术语窄通道(NC)包括标准存储器通道的预定分数以及组件存储器集成电路(IC)芯片的位宽度的倍数(例如,1倍、2倍...)。在一个实现方式中,窄通道(NC)的宽度能够等于动态随机存取存储器(DRAM)的行列的位宽度,其中行列是共享相同片选信号的IC芯片的集合。
在一个实现方式中,窄通道(NC)存储器控制器600能够按关闭页面策略与每个通道进行通信。每个存储器控制器600能够利用用于每个单独的通道的专用数据总线670和共享公共命令总线675来同时控制两个单独的通道。在一个实现方式中,存储器控制器能够利用自动预充电写入和读取命令(WRA/RDA)代替标准写入和读取命令(WR/RD)。自动预充电写入和读取命令能够被配置成在命令总线上保存时隙并且因此提供平衡的命令总线和数据总线利用率。
具有相对较小的访问粒度的窄通道(NC)存储器控制器600能够对于用于诸如图处理的差数据局部性应用的给定数据总线带宽有利地提高数据利用率并且提高数据总线吞吐量。关闭页面策略能够提供对数据的改进随机访问以供在诸如图处理的应用中使用。窄通道(NC)存储器控制器600也能够有利地与诸如动态随机存取存储器(DRAM)的可容易获得的商品存储器一起工作。
已经出于图示和描述的目的呈现了本技术的特定实施例的前面的描述。它们不旨在为详尽的或者将本技术限于所公开的精确形式,并且显然,许多修改和变化鉴于以上教导是可能的。实施例被选取和描述以便最好地说明本技术的原理及其实际应用,从而使得本领域的其他技术人员能够最好地利用本技术以及具有如适于所设想的特定用途的各种修改的各种实施例。本发明的范围旨在由所附权利要求及其等同物来限定。
Claims (12)
1.一种处理加速器,所述处理加速器包括:
一个或多个网络,由多个处理器核心构成;
便笺式存储器,所述便笺式存储器被配置成缓存数据以供所述多个处理器核心使用;
纵横互连结构,所述纵横互连结构被配置成将由所述多个处理器核心构成的一个或多个网络耦合到多个存储器控制器;以及
所述多个存储器控制器,所述多个存储器控制器被配置成通过多个存储器通道接口来访问数据。
2.根据权利要求1所述的处理加速器,其中所述便笺式存储器耦合到由所述多个处理器核心构成的所述一个或多个网络。
3.根据权利要求1所述的处理加速器,其中所述便笺式存储器分布在所述多个存储器控制器内。
4.根据权利要求1所述的处理加速器,其中所述便笺式存储器包括静态随机存取存储器。
5.根据权利要求1所述的处理加速器,其中所述多个存储器控制器包括窄通道(NC)存储器接口。
6.根据权利要求5所述的处理加速器,其中所述多个存储器控制器包括多个窄存储器(NC)通道动态随机存取存储器控制器。
7.根据权利要求1所述的处理加速器,其中所由多个处理器核心构成的所述一个或多个网络包括一个或多个网状网络、一个或多个巡回网络、一个或多个八角形网络、一个或多个树形网络、一个或多个环形网络和一个或多个星形网络。
8.根据权利要求1所述的处理加速器,还包括:
一个或多个通信接口,所述一个或多个通信接口被配置成将所述多个处理器核心的一个或多个网络耦合到主机处理器,
并且
所述纵横互连结构将所述一个或多个通信接口耦合到所述多个处理器核心的一个或多个网络。
9.一种处理加速器,所述处理加速器包括:
多个网络;
多个处理器核心,所述多个处理器核心通过所述多个网络耦合在一起;
多个窄通道(NC)存储器控制器,所述多个窄通道(NC)存储器控制器被配置成访问存储在片外存储器中的数据;
便笺式存储器,所述便笺式存储器耦合到所述多个窄通道(NC)存储器控制器,其中所述便笺式存储器被配置成缓存所述数据的一部分;以及
纵横互连结构,所述纵横互连结构被配置成将所述多个网络耦合到所述多个窄通道(NC)存储器控制器。
10.根据权利要求9所述的处理加速器,其中所述多个网络包括:
多个双向通信通道;
多个通信通道接口,所述多个通信通道接口被配置成将所述多个处理器核心耦合到对应的双向通信通道并且将所述对应的双向通信通道耦合到对应的网络控制器;以及
网络缓冲器,所述网络缓冲器被配置成将所述对应的网络控制器耦合到所述纵横互连结构。
11.根据权利要求10所述的处理加速器,其中所述多个网络包括多个环形网络。
其中相应的处理器核心集包括耦合到所述多个环形网络中的相应的环形网络的处理器核心组。
12.根据权利要求9所述的处理加速器,其中所述多个窄通道(NC)存储器控制器和所述便笺式存储器被配置在所述多个窄通道(NC)存储器控制器和便笺式存储器的集合中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/945,619 US11409684B2 (en) | 2020-07-31 | 2020-07-31 | Processing accelerator architectures |
US16/945,619 | 2020-07-31 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113626353A true CN113626353A (zh) | 2021-11-09 |
Family
ID=78381734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110869996.XA Pending CN113626353A (zh) | 2020-07-31 | 2021-07-30 | 处理加速器架构 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11409684B2 (zh) |
CN (1) | CN113626353A (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN202758883U (zh) * | 2009-05-26 | 2013-02-27 | 拉姆伯斯公司 | 堆叠的半导体器件组件 |
US11625341B2 (en) | 2020-08-11 | 2023-04-11 | Alibaba Group Holding Limited | Narrow DRAM channel systems and methods |
GB202202793D0 (en) * | 2022-03-01 | 2022-04-13 | Graphcore Ltd | External exchange connectivity |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6065077A (en) * | 1997-12-07 | 2000-05-16 | Hotrail, Inc. | Apparatus and method for a cache coherent shared memory multiprocessing system |
US8306042B1 (en) * | 2009-06-19 | 2012-11-06 | Google Inc. | Class-based deterministic packet routing |
CN103279438A (zh) * | 2008-02-29 | 2013-09-04 | 高通股份有限公司 | 针对地址/控制信号使用双倍数据速率方案的具有减少的接口引脚需要的双通道存储器架构 |
US20160154735A1 (en) * | 2014-12-02 | 2016-06-02 | Samsung Electronics Co., Ltd. | Electronic device and method for controlling shareable cache memory thereof |
US20180285252A1 (en) * | 2017-04-01 | 2018-10-04 | Intel Corporation | Optimized memory access bandwidth devices, systems, and methods for processing low spatial locality data |
CN109542835A (zh) * | 2017-09-22 | 2019-03-29 | 英特尔公司 | 用于使用多个存储器通道来降低平台中的加速器-存储器访问成本的技术 |
US20190138493A1 (en) * | 2018-08-24 | 2019-05-09 | Intel Corporation | Scalable Network-on-Chip for High-Bandwidth Memory |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS52112246A (en) | 1976-03-18 | 1977-09-20 | Panafacom Ltd | Data processor |
US20050114587A1 (en) | 2003-11-22 | 2005-05-26 | Super Talent Electronics Inc. | ExpressCard with On-Card Flash Memory with Shared Flash-Control Bus but Separate Ready Lines |
JP4068781B2 (ja) | 2000-02-28 | 2008-03-26 | 株式会社ルネサステクノロジ | 半導体集積回路装置および半導体集積回路装置の製造方法 |
US6545935B1 (en) | 2000-08-29 | 2003-04-08 | Ibm Corporation | Dual-port DRAM architecture system |
US7263148B2 (en) | 2001-04-20 | 2007-08-28 | Mastek International | Source synchronous CDMA bus interface |
US6675272B2 (en) | 2001-04-24 | 2004-01-06 | Rambus Inc. | Method and apparatus for coordinating memory operations among diversely-located memory components |
JP4049297B2 (ja) | 2001-06-11 | 2008-02-20 | 株式会社ルネサステクノロジ | 半導体記憶装置 |
US7111108B2 (en) | 2003-04-10 | 2006-09-19 | Silicon Pipe, Inc. | Memory system having a multiplexed high-speed channel |
JP4360300B2 (ja) * | 2004-08-10 | 2009-11-11 | 富士通株式会社 | 記憶制御装置及び制御方法 |
JP2006079218A (ja) * | 2004-09-08 | 2006-03-23 | Fujitsu Ltd | メモリ制御装置及び制御方法 |
US8090897B2 (en) | 2006-07-31 | 2012-01-03 | Google Inc. | System and method for simulating an aspect of a memory circuit |
US8253751B2 (en) | 2005-06-30 | 2012-08-28 | Intel Corporation | Memory controller interface for micro-tiled memory access |
US8032688B2 (en) | 2005-06-30 | 2011-10-04 | Intel Corporation | Micro-tile memory interfaces |
JP4229958B2 (ja) | 2005-08-26 | 2009-02-25 | Necエレクトロニクス株式会社 | メモリ制御システムおよびメモリ制御回路 |
US20070260841A1 (en) | 2006-05-02 | 2007-11-08 | Hampel Craig E | Memory module with reduced access granularity |
US11244727B2 (en) | 2006-11-29 | 2022-02-08 | Rambus Inc. | Dynamic memory rank configuration |
WO2008127698A2 (en) | 2007-04-12 | 2008-10-23 | Rambus Inc. | Memory system with point-to-point request interconnect |
JP5752686B2 (ja) | 2009-08-20 | 2015-07-22 | ラムバス・インコーポレーテッド | 原子メモリ装置 |
US9361955B2 (en) | 2010-01-28 | 2016-06-07 | Hewlett Packard Enterprise Development Lp | Memory access methods and apparatus |
KR101854251B1 (ko) | 2010-11-30 | 2018-05-03 | 삼성전자주식회사 | 멀티 채널 반도체 메모리 장치 및 그를 구비하는 반도체 장치 |
KR101527308B1 (ko) | 2011-03-14 | 2015-06-09 | 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. | 메모리 인터페이스 |
US8255618B1 (en) | 2011-10-06 | 2012-08-28 | Google Inc. | Performance isolation in a shared memory device |
WO2013141921A1 (en) | 2012-03-19 | 2013-09-26 | Rambus Inc. | High capacity memory systems |
US9164888B2 (en) | 2012-12-10 | 2015-10-20 | Google Inc. | Using a logical to physical map for direct user space communication with a data storage device |
US9887008B2 (en) | 2014-03-10 | 2018-02-06 | Futurewei Technologies, Inc. | DDR4-SSD dual-port DIMM device |
US9424173B2 (en) | 2014-10-23 | 2016-08-23 | GlobalFoundries, Inc. | Performing secure address relocation within a multi-processor system sharing a same physical memory channel to external memory |
US20160232112A1 (en) | 2015-02-06 | 2016-08-11 | Futurewei Technologies, Inc. | Unified Memory Bus and Method to Operate the Unified Memory Bus |
KR102272259B1 (ko) | 2015-07-01 | 2021-07-06 | 삼성전자주식회사 | 커맨드 연동 클럭 생성 스키마를 갖는 반도체 메모리 장치 |
US20170285992A1 (en) | 2016-04-01 | 2017-10-05 | Intel Corporation | Memory subsystem with narrow bandwidth repeater channel |
US10339072B2 (en) | 2016-04-01 | 2019-07-02 | Intel Corporation | Read delivery for memory subsystem with narrow bandwidth repeater channel |
US9940984B1 (en) | 2016-09-28 | 2018-04-10 | Intel Corporation | Shared command address (C/A) bus for multiple memory channels |
US10416539B2 (en) | 2017-06-21 | 2019-09-17 | Dolby Laboratories Licensing Corporation | Spatial light modulator for reduction of certain order light |
US10528268B2 (en) | 2017-09-12 | 2020-01-07 | Toshiba Memory Corporation | System and method for channel time management in solid state memory drives |
US10380043B2 (en) | 2017-09-28 | 2019-08-13 | Intel Corporation | Memory bus MR register programming process |
US10936221B2 (en) | 2017-10-24 | 2021-03-02 | Micron Technology, Inc. | Reconfigurable memory architectures |
KR102416929B1 (ko) | 2017-11-28 | 2022-07-06 | 에스케이하이닉스 주식회사 | 메모리 모듈 및 메모리 모듈의 동작 방법 |
US10446200B2 (en) | 2018-03-19 | 2019-10-15 | Micron Technology, Inc. | Memory device with configurable input/output interface |
US11048654B2 (en) * | 2018-10-24 | 2021-06-29 | Innogrit Technologies Co., Ltd. | Systems and methods for providing multiple memory channels with one set of shared address pins on the physical interface |
-
2020
- 2020-07-31 US US16/945,619 patent/US11409684B2/en active Active
-
2021
- 2021-07-30 CN CN202110869996.XA patent/CN113626353A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6065077A (en) * | 1997-12-07 | 2000-05-16 | Hotrail, Inc. | Apparatus and method for a cache coherent shared memory multiprocessing system |
CN103279438A (zh) * | 2008-02-29 | 2013-09-04 | 高通股份有限公司 | 针对地址/控制信号使用双倍数据速率方案的具有减少的接口引脚需要的双通道存储器架构 |
US8306042B1 (en) * | 2009-06-19 | 2012-11-06 | Google Inc. | Class-based deterministic packet routing |
US20160154735A1 (en) * | 2014-12-02 | 2016-06-02 | Samsung Electronics Co., Ltd. | Electronic device and method for controlling shareable cache memory thereof |
US20180285252A1 (en) * | 2017-04-01 | 2018-10-04 | Intel Corporation | Optimized memory access bandwidth devices, systems, and methods for processing low spatial locality data |
CN109542835A (zh) * | 2017-09-22 | 2019-03-29 | 英特尔公司 | 用于使用多个存储器通道来降低平台中的加速器-存储器访问成本的技术 |
US20190138493A1 (en) * | 2018-08-24 | 2019-05-09 | Intel Corporation | Scalable Network-on-Chip for High-Bandwidth Memory |
Also Published As
Publication number | Publication date |
---|---|
US11409684B2 (en) | 2022-08-09 |
US20220035760A1 (en) | 2022-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11080191B2 (en) | Configurable snoop filters for cache coherent systems | |
CN113626353A (zh) | 处理加速器架构 | |
US7487302B2 (en) | Service layer architecture for memory access system and method | |
Mudge et al. | Multiple bus architectures | |
US8443422B2 (en) | Methods and apparatus for a configurable protection architecture for on-chip systems | |
US20160132241A1 (en) | Methods and systems for mapping a peripheral function onto a legacy memory interface | |
CN104346317B (zh) | 共享资源访问方法和装置 | |
US20140040532A1 (en) | Stacked memory device with helper processor | |
CN104699631A (zh) | Gpdsp中多层次协同与共享的存储装置和访存方法 | |
US9697111B2 (en) | Method of managing dynamic memory reallocation and device performing the method | |
CN106663061A (zh) | 用于可编程逻辑的存储器的虚拟化 | |
Huang et al. | Shuhai: A tool for benchmarking high bandwidth memory on FPGAs | |
CN104321750B (zh) | 在共享存储器编程中保持释放一致性的方法和*** | |
EP3407184A2 (en) | Near memory computing architecture | |
CN107463126A (zh) | 无人机双核控制***及数据读取与写入方法 | |
CN106066833A (zh) | 存取多端口存储器模块的方法及相关的存储器控制器 | |
CN103460180B (zh) | 带有断言寄存器的处理器***、计算机***和用于管理断言的方法 | |
EP3759606B1 (en) | An apparatus and method for accessing metadata when debugging a device | |
WO2023124304A1 (zh) | 芯片的缓存***、数据处理方法、设备、存储介质及芯片 | |
US7370139B2 (en) | Methods and structures for efficient storage of task file information in serial ATA environments | |
US20230244461A1 (en) | Configurable Access to a Reconfigurable Processor by a Virtual Function | |
CN116860185B (zh) | Sram阵列的数据访问装置、***、方法、设备、芯片和介质 | |
CN102446132A (zh) | 一种模拟本地总线进行板级管理的方法和装置 | |
US20240004744A1 (en) | Scalable machine check architecture | |
US20230359573A1 (en) | Field programmable gate array (fpga) for implementing data transmission by using built-in edge module |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |