CN114238156A - 处理系统以及操作处理系统的方法 - Google Patents
处理系统以及操作处理系统的方法 Download PDFInfo
- Publication number
- CN114238156A CN114238156A CN202111312448.3A CN202111312448A CN114238156A CN 114238156 A CN114238156 A CN 114238156A CN 202111312448 A CN202111312448 A CN 202111312448A CN 114238156 A CN114238156 A CN 114238156A
- Authority
- CN
- China
- Prior art keywords
- memory
- general purpose
- graphics processing
- purpose graphics
- units
- 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
Images
Classifications
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- 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
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
- G06F12/0653—Configuration or reconfiguration with centralised address assignment
-
- 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/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1048—Scalability
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)
- Multi Processors (AREA)
Abstract
公开一种处理系统和操作处理系统的方法。该处理系统通过利用对应的外部存储器模块中的存储器空间,并通过进一步利用多个其他外部存储器模块中的存储器空间的一部分,增加通用图形处理单元(GPGPU)模块中的处理器在逻辑上可用的总存储器空间,以容纳太字节(terabyte)大小的数据量。
Description
技术领域
本公开涉及一种处理系统,更具体地说,涉及一种处理系统以及操作处理系统的方法。
背景技术
图形处理单元(GPU)是一种公知的、用于执行填充帧缓冲器所需的计算的设备,其中,帧缓冲器用于在屏幕上显示图像。中央处理器(CPU)将填充帧缓冲器的任务(其可能是计算密集型的)卸载给图形处理器(GPU),从而释放中央处理器以便于及时执行其他任务。
通用图形处理单元(GPGPU)是图形处理器的扩展,可对通用图形处理单元编程以执行其他非图形处理的计算密集型操作。在人工智能(AI)和机器学习的应用中,一个中央处理器通常与多个并行执行卷积操作的通用图形处理单元(例如100个GPGPU)配对使用。
通用图形处理单元包括处理器和耦合到处理器的存储器(memory)。对于许多人工智能和机器学习的应用来说,容量大、访问速度快的存储器是必需的,因此,当通用图形处理单元用于人工智能和机器学习时,通常使用以容量大、访问速度快而闻名的高带宽存储器(HBM)作为通用图形处理单元的存储器。
典型的HBM包括若干个动态随机存取存储器(DRAM)晶粒(dies),这些晶粒垂直堆叠在彼此的顶部,以提供小尺寸规格的大存储容量,例如4GB、24GB和64GB。此外,每个DRAM晶粒包括两个128位数据通道以提供高带宽。
但当前的通用图形处理单元的一个问题是,当处理太字节(terabyte,TB)大小的工作负载时,如图神经网络、推荐系统和具有大量参数的数据库机器学习模型,由于通用图形处理单元的存储器(HBM)的存储器容量远小于TB字节,所以通用图形处理单元的性能很差。
此外,由于越来越难以将晶粒垂直堆叠在彼此的顶部,从而有效地限制了可堆叠以形成HBM的晶粒的数量和HBM的最大容量,进而通用图形处理单元的存储器(HBM)的最大容量受到限制。此外,HBM中的每个晶粒通常用最大十字线(largest reticle)制造,这又限制了晶粒的最大尺寸和容量。
综上,既然通用图形处理单元的存储器(HBM)在处理太字节大小的工作负载时受限于有限的存储器容量,因此有必要增加通用图形处理单元的存储器容量。
发明内容
本公开增加了通用图形处理单元的存储器的容量。
本公开包括一种具有多个外部存储器单元的处理系统。其中,多个外部存储器单元中的每一个外部存储器单元具有扩展存储器和互连电路,扩展存储器具有第一多个存储器地址,互连电路具有第二多个存储器地址,且互连电路具有扩展控制器和耦合到扩展控制器的多个端口。多个外部存储器单元中的一个第一外部存储器的每个端口耦合到多个外部存储器单元中的另一个外部存储器单元,并从第二多个存储器地址内分配得到若干个存储器地址。每个外部存储器单元还具有与扩展存储器和互连电路耦合的存储器控制电路,存储器控制电路接收具有第一存储器地址的存储器请求,并确定第一存储器地址是落在第一多个存储器地址内还是落在第二多个存储器地址内,当第一存储器地址落在第一多个存储器地址内时,存储器控制电路将第一存储器地址转发到扩展存储器,并且当第一存储器地址落在第二多个存储器地址内时,将第一存储器地址转发到互连电路。当第一存储器地址落在第二多个存储器地址内时,互连电路的扩展控制器接收到第一存储器地址,从多个端口中确定第一端口,并将第一存储器地址转发到第一端口,其中,第一端口被分配的若干个存储器地址中包含第一存储器地址。
本公开还包括一种操作处理系统的方法。该方法包括:接收具有第一存储器地址的存储器请求,并确定所述第一存储器地址是落在与扩展存储器相关联的第一多个存储器地址内,还是落在与互连电路相关联的第二多个存储器地址内。该方法还包括:当第一存储器地址落在第一多个存储器地址内时,将第一存储器地址转发到扩展存储器,以及当第一存储器地址落在第二多个存储器地址内时,将第一存储器地址转发到互连电路。该方法还包括:当第一存储器地址落在第二多个存储器地址内时,接收第一存储器地址,从多个端口中确定第一端口,第一端口被分配的若干个存储器地址中包含第一存储器地址,以及将第一存储器地址转发给第一端口。
本公开还包括一种在其中嵌入程序指令的非暂时性计算机可读存储介质,当程序指令由设备的一个或多个处理器执行时,驱动设备执行一种操作处理系统的方法。该方法包括:接收具有第一存储器地址的存储器请求,并确定第一存储器地址是落在与扩展存储器相关联的第一多个存储器地址内,还是落在与互连电路相关联的第二多个存储器地址内。该方法还包括:当第一存储器地址落在第一多个存储器地址内时,将第一存储器地址转发到扩展存储器,以及当第一存储器地址落在第二多个存储器地址内时,将第一存储器地址转发到互连电路。该方法还包括:当第一存储器地址落在第二多个存储器地址内时,接收第一存储器地址;从多个端口中确定第一端口,其中,第一端口被分配的若干个存储器地址中包含第一存储器地址,并将第一存储器地址转发给第一端口。
本公开实施例通过利用对应的外部存储器模块中的存储器空间,并通过进一步利用多个其他外部存储器模块中的存储器空间的一部分,增加通用图形处理单元(GPGPU)模块中的处理器在逻辑上可用的总存储器空间,以容纳TB字节大小的数据量。
通过参考下面的详细描述和附图,将获得对本公开的特征和优点的更好理解,这些详细描述和附图阐述了其中使用了本公开的原理的说明性实施例。
附图说明
这里描述的附图用于提供对本公开的进一步理解,并且构成本公开的一部分。本公开的示例性实施例及其描述用于解释本公开,并且不构成对本公开的限制。
图1是根据本公开一实施例提供的一示例性的处理系统100的框图。
图2是根据本公开一实施例提供的一示例性的通用图形处理单元(GPGPU)模块200的框图。
图3是根据本公开一实施例提供的一示例性的外部存储器(SMX)模块300的框图。
图4是根据本公开一实施例提供的一示例性的操作处理系统100的方法400的流程图。
具体实施方式
图1是根据本公开一实施例提供的一示例性的处理系统100的框图。如下面更详细地描述的,处理系统100通过利用操作耦合在一起的多个外部存储器模块,使得第一外部存储器模块的可用地址空间包括物理上位于第一外部存储器模块内的本地地址空间和物理上位于第二和其他外部存储器模块内的扩展地址空间,从而大大地增加可用存储器空间以适应TB字节大小的工作负载。
如图1所示,处理系统100包括中央处理器(CPU)模块110、多个通用图形处理单元(GPGPU)模块112和多个外部存储器(SMX)模块114。在本示例中,为了简单起见,示出了一个CPU模块、三个GPGPU模块和三个SMX模块,但是也可以使用和任意配置其他数量的CPU模块、GPGPU模块和SMX模块。在本示例中,SMX模块是相同的。
图1进一步示出,处理系统100还包括将CPU模块110、GPGPU模块112和SMX模块114耦合在一起的外围组件快速互连(PCIe)总线116。但只要CPU模块和GPGPU模块支持,也可以使用与PCIe总线116类似的其他总线。
PCIe总线116包括多个端点、根复合体(root complex)和多个PCIe交换机116-S。在本示例中,GPGPU模块112和SMX模块114是接收数据时的端点,而作为CPU模块110的分立电路的根复合体执行地址转换以基于存储器请求识别多个端点之一。每个PCIe交换机116-s依次位于CPU模块110和多个设备之间。
在本示例中,每个GPGPU模块112具有对应的SMX模块114。模块通过PCIe交换机116-S耦合在一起,并允许消息在模块之间直接转发,例如不必经过根复合体,将消息从GPGPU模块转发到相应的SMX模块,反之亦然。可选地,PCIe交换机116-S被省略,使得GPGPU模块112和SMX模块114直接耦合到CPU模块110中的根复合体。
另外,图1所示的示例中,处理系统100还包括互连结构120,用于将每个SMX模块114耦合到每个其他SMX模块114。在本示例中,互连结构120用光纤实现。如图所示,互连结构120不连接到CPU模块110和GPGPU模块112。但是尽管图上SMX模块114之间彼此直接耦合,但也可以替代地使用其他拓扑,例如菊花链(1-2,2-3,3-4)。
与GPGPU模块(例如GPGPU0模块)相对应的SMX模块(例如SMX0模块)中的存储器是GPGPU存储器的扩展。其他SMX模块(如SMX1和SMX2模块)中的部分存储器是SMX0模块中的存储器的扩展。如果每个SMX模块都有一个1TB(太字节)的额外容量,那么在当前的三个SMX模块的示例中,GPGPU中的处理器将不再只看到一个例如24GB字节的HBM内存,而是可以看到一个潜在的3TB存储器。
图2是根据本公开一实施例提供的一示例性的通用图形处理单元(GPGPU)模块200的框图。每个GPGPU模块112可以用GPGPU模块200来实现。如图2所示,GPGPU模块200包括核210,耦合到核210的本地高速缓存212(具有一个或多个级别),以及耦合到核210和高速缓存212的诸如高带宽存储器(HBM)的GPGPU存储器214。
在操作中,GPGPU存储器214存储由核210访问的数据(指令和值)。高速缓存212存储GPGPU存储器214中的一些被更频繁访问的数据的副本。核210执行指令并利用存储在高速缓存212和GPGPU存储器214中的数据。
GPGPU模块200还包括片上网络(NoC)216,其将核210和GPGPU存储器214耦合在一起,以提供核210和GPGPU存储器214之间的高带宽、高速通信路径。高速缓存212还可以经由片上网络216耦合到本地存储器214。GPGPU模块200还包括PCIe端点控制器220,其经由片上网络216耦合到核210,以在诸如PCIe总线116的PCIe总线上提供通信。
图3是根据本公开一实施例提供的一示例性的外部存储器(SMX)模块300的框图。在本示例中,每个SMX模块114可以用SMX模块300来实现。如图3所示,SMX模块300包括:PCIe端点控制器310,其从诸如PCIe总线116的PCIe总线接收数据并将数据发送到PCIe总线;以及存储器控制电路312,其耦合到PCIe端点控制器310以控制数据进出SMX模块300的存储器空间。
SMX模块300还包括具有本地地址空间的模块内存储器314,该本地地址空间具有第一多个存储器地址;以及互连电路316,该互连电路316控制对互连结构(例如互连结构120)的访问,以访问具有第二多个存储器地址的扩展存储器空间。在本示例中,互连电路316用光纤上的内存(memory-over-fabric,MoF)电路来实现。光纤上的内存(memory-over-fabric,MoF)是指通过光纤实现的内存访问。
SMX模块300还包括将存储器314和电路316耦合到存储器控制电路312的传统高级可扩展接口(AXI)总线318。AXI总线318包括在每个AXI节点(存储器控制电路312、存储器314和电路316)之间的五个通道:读地址通道、读数据通道、写地址通道、写数据通道和写响应通道。AXI总线协议支持多个主设备和多个从设备。
SMX模块300的总存储器空间包括物理上位于SMX模块300内的存储器314的本地存储器空间,以及物理上位于处理系统内一个或多个其他SMX模块上的扩展存储器空间。组合模块内存储器空间和模块外存储器空间从而允许SMX模块300具有大于其物理存储器资源的逻辑存储器范围,其中模块外存储器空间映射到其他SMX模块的存储器空间。在本示例中,每个SMX模块300仅存储GPGPU的指令和数据。
互连电路316包括AXI接口320、耦合到AXI接口320的控制器322、以及耦合到控制器322的路由表324。AXI接口320从AXI总线318接收数据并将数据发送到AXI总线318,而控制器322控制通过互连电路316的数据传输。此外,互连电路316包括多个发射/接收端口P1-Pn(在本示例中是光学端口),它们经由互连结构耦合到控制器322和处理系统中的其他SMX模块。
图4是根据本公开一实施例提供的一示例性的操作处理系统100的方法400的流程图。如图4所示,方法400开始于410,其中GPGPU模块将具有所请求的存储器地址的存储器请求输出到所分配的SMX模块,例如与GPGPU模块相对应的SMX模块,SMX模块接收到请求地址。在本示例中,GPGPU模块仅向与GPGPU模块对应的SMX模块输出存储器请求。当存储器地址物理上位于另一SMX模块上时,GPGPU模块是不知道的。
接着,方法400移动到412,其中所分配的SMX模块的存储器控制电路(通过PCIe交换机或根复合体)从GPGPU模块接收存储器请求,并确定所请求的地址是落在与本地地址空间相关联的地址内,本地地址空间物理上位于所分配的SMX模块上,还是落在与扩展地址空间相关联的地址,扩展地址空间物理上位于一个或多个远程SMX模块中。
当所请求的地址落在与本地存储器空间相关联的地址内时,方法400移动到414,其中所分配的SMX模块的存储器控制电路经由诸如AXI总线的内部总线将存储器请求转发到所分配的SMX模块的模块内存储器。模块内存储器通过将读数据或写确认通过内部总线转发回所分配SMX模块的存储器控制电路来响应存储器请求,所分配SMX模块的存储器控制电路将读数据或写确认转发回GPGPU模块。
当所请求的地址落在与远程SMX模块的扩展存储器空间相关联的地址内时,方法400移动到416,其中所分配的SMX模块的存储器控制电路根据所请求的地址确定远程SMX模块(其保存与扩展地址空间相关联的多个地址)的标识,并经由内部总线将存储器请求和远程标识转发到互连电路,例如互连电路316。
接下来,方法400移动到418,其中,所分配的SMX模块的互连电路的控制器(例如控制器322)检查路由表(例如路由表324),以识别输出请求的端口(例如端口P1或P2),并经由所识别的端口和互连结构(例如互连结构120)将存储器请求输出到远程SMX模块。由此,第一GPGPU模块可以访问存储在与第二GPGPU模块对应的SMX模块中的数据。
接着,方法400接着移动到420,其中远程SMX模块的互连电路的控制器经由远程SMX模块的端口接收存储器请求,然后经由远程SMX模块的内部总线将存储器请求输出到远程SMX模块的模块内存储器。
远程SMX模块的模块内存储器经由远程SMX模块的内部总线向远程SMX模块的互连电路的控制器转发读数据或写确认来进行响应,远程SMX模块的互连电路的控制器经由互连结构和所分配的SMX模块的端口将读数据或写确认转发回所分配的SMX模块的互连电路的控制器。
然后,所分配的SMX模块的互连电路的控制器通过所分配的SMX模块的内部总线将读数据或写确认转发回所分配的SMX模块的存储器控制电路,然后存储器控制电路将读数据或写确认转发回GPGPU模块。
每个物理内存资源可以与多个地址相关联,每个地址规定数据路径。例如图1中的GPGPU0可以利用地址A+x发送对扩展存储器中的一存储器位置的请求,其中A是本地存储器空间SMX0,x是物理上位于SMX1中的扩展存储器空间,然后通过经由SWITCH0到SMX0输出请求,再通过互连结构120将请求传递到SMX1。
或者,GPGPU0可以通过使用地址B发送对扩展存储器中的一存储器位置的请求,其中B是物理上位于SMX1的本地存储器空间中,然后通过SWITCH0将该请求输出到SMX0,该SWITCH0将该请求传递到CPU110的根复合体,然后通过SWITCH1发送到SMX1。
图神经网络的图数据被划分并存储在SMX模块中。GPGPU可以通过对等模式访问图数据(通过向GPGPU注册存储器扩展页表或利用驱动程序直接管理储存器资源)。每个GPGPU逻辑上看到多个保持同步的图的副本,其中每个设备存储一个完整的图。每个GPGPU可以通过使用最合适的地址来指定路由(例如,为了获得较佳性能,都通过本地PCI交换机和光纤结构)以访问图数据。
本发明的优点之一是,本发明显著地增加了GPGPU潜在可用的存储器空间的大小,例如从HBM的吉字节增加到多个太字节。本发明的另一个优点是,本发明通过虚拟化得到了大于物理存在的存储空间,从而通过使GPGPU模块误认为数据总是在所分配的SMX模块中来节省成本,使得所有模块配对工作,且不会在PCIe侧产生太多拥塞。本公开实施例利用连接互连电路的定制链路来获得额外的带宽。此外,本发明提供跨GPGPU的图数据访问,因此GPGPU在基于知道互连电路316在内部处理请求转发这一点的情况下,能够访问其他储存器模块中的数据。尽管扩展存储器空间会有一个与之相关的延迟,但通过利用PCIe交换机和光纤传输可将延迟保持在最小。
现在已详细参考本公开的各种实施例,其示例在附图中示出。尽管结合各种实施例进行描述,但应理解,这些各种实施例并不旨在限制本公开。相反,本公开旨在涵盖包括在根据权利要求解释的本公开的范围内的替代、修改和等同物。
此外,在前面对本公开的各种实施例的详细描述中,为了提供对本公开的透彻理解,阐述了许多具体细节。然而,本领域的普通技术人员将认识到,本公开可以在没有这些特定细节的情况下或在其等价物的情况下实施。在其他实施例中,为避免不必要地模糊本公开的各种实施例的方面,未详细描述公知的方法、过程、组件和电路。
应该注意,尽管为了清楚起见,在此可以将方法描述为操作序列,但所描述的操作序列不一定是操作的规定顺序。应当理解,可以跳过、并行执行或在不要求维持严格顺序的情况下执行一些操作。
示出的本公开的各种实施例的附图是半图示的并且不按比例,并且特别地,一些尺寸是为了呈现的清晰性,并且在附图中被夸大示出。类似地,尽管为了便于描述,附图的视角通常描绘类似的方向,但在大多数情况下,附图中的这种描述是任意的。通常,根据本公开的各种实施例可以在任何方向上操作。
详细描述的一些部分可以用程序、逻辑块、处理和对计算机存储器内的数据位的操作的其他符号表示来表示。数据处理领域的技术人员使用这些描述和表示来向本领域的其他技术人员有效地传达他们工作的实质。
在本公开中,过程、逻辑块、过程等被认为是导致期望结果的操作或指令的自洽序列。这些操作是那些利用物理量的物理操作。通常,尽管不是必须的,这些量采取电或磁信号的形式,能够在计算系统中存储、传输、组合、比较和以其他方式操纵。有时,主要出于常用的原因,为了方便,将这些信号称为事务、比特、值、元素、符号、字符、样本、像素或类似物。
然而,应该记住,所有这些和类似的术语都是与适当的物理量相关联的,只是应用于这些量的方便的标签。除非从下面的讨论中明确指出,否则可以理解,在整个本公开中,使用诸如“生成”、“确定”、“分配”、“聚合”、“利用”、“虚拟化”、“处理”、“访问”、“执行”、“存储”等术语的讨论指代计算机系统或类似的电子计算设备或处理器的动作和过程。
处理系统、或类似的电子计算设备或处理器操作并将表示为计算机系统存储器、寄存器、其他此类信息存储器和/或其他计算机可读介质内的物理(电子)量的数据转换为类似表示为计算机系统存储器或寄存器或其他此类信息存储、传输或显示设备内的物理量的其他数据。
参照本申请的实施例的附图,在前面的部分中已经清楚且完整地描述了本申请的实施例中的技术方案。应当注意,在本发明的说明书和权利要求书中以及在上述附图中,术语“第一”、“第二”等用于区分类似的对象,而不必用于描述特定的序列或顺序。应当理解,这些数字可以在适当的地方互换,从而可以按照与这里所示或所描述的不同的顺序来实现这里所描述的本发明的实施例。
在本公开实施例中描述的功能,如果以软件功能单元的形式实现并作为独立产品出售或使用,则可以存储在计算设备可读存储介质中。基于这样的理解,有助于现有技术的本公开的实施例的一部分或技术解决方案的一部分可以以存储在存储介质中的软件产品的形式实现,包括用于使计算设备(可以是个人计算机、服务器、移动计算设备或网络设备等)执行本申请的各个实施例中描述的方法的全部或部分步骤的多个指令。上述存储介质包括能够存储程序代码的USB驱动器、便携式硬盘、只读存储器(ROM)、随机存取存储器(RAM)、磁盘、光盘等。
以渐进的方式描述本申请说明书中的各种实施例,并且每个实施例侧重于其与其他实施例的区别,并且各种实施例之间的相同或相似部分可以参考另一种情况。所描述的实施例只是一部分实施例,而不是本申请的所有实施例。在不脱离本发明的发明理念的情况下,由本领域普通技术人员基于本申请的实施例获得的所有其他实施例都在本申请的范围内。
上述实施例仅用于说明而不是限制本发明的技术解决方案。尽管参考前述实施例详细描述了本公开,但本领域的普通技术人员应当理解,在前述实施例中记录的技术方案仍可修改或可对其中的部分或全部技术特征进行等效替换。这些修改或替换不会使相应技术方案的本质偏离本发明实施例中的技术方案的范围。
应当理解,上述描述是本公开的示例,并且在实践本公开时可以使用本文描述的本公开的各种替代方案。例如,各种模块可以实现为卡。因此,希望上面的权利要求限定本发明的范围,并且覆盖在这些权利要求的范围内的结构和方法以及它们的等同物。
Claims (13)
1.一种处理系统,包括:
多个外部存储器单元,所述多个外部存储器单元中的每一个外部存储器单元具有:
具有第一多个存储器地址的扩展存储器;
具有第二多个存储器地址的互连电路,所述互连电路具有扩展控制器和耦合到所述扩展控制器的多个端口,所述多个外部存储器单元中的一个第一外部存储器单元的每个端口耦合到所述多个外部存储器单元中的另一个外部存储器单元并从所述第二多个存储器地址内分配得到若干个存储器地址;
与所述扩展存储器和所述互连电路耦合的存储器控制电路,所述存储器控制电路接收具有第一存储器地址的存储器请求,确定所述第一存储器地址是落在所述第一多个存储器地址内还是落在所述第二多个存储器地址内,当所述第一存储器地址落在所述第一多个存储器地址内时,将所述第一存储器地址转发到所述扩展存储器,并且当所述第一存储器地址落在所述第二多个存储器地址内时,将所述第一存储器地址转发到所述互连电路,
当所述第一存储器地址落在所述第二多个存储器地址内时,所述互连电路的扩展控制器接收所述第一存储器地址,从所述多个端口中确定第一端口,并将所述第一存储器地址转发到所述第一端口,其中,所述第一端口被分配的若干个存储器地址中包含所述第一存储器地址。
2.如权利要求1所述的处理系统,还包括
与所述多个外部存储器单元相对应的多个通用图形处理单元,每个通用图形处理单元耦合到相应的外部存储器单元;
系统总线,耦合到所述多个通用图形处理单元和所述多个外部存储器单元,每个外部存储器单元用于经由所述系统总线从所述多个通用图形处理单元中的一个通用图形处理单元接收所述存储器请求;
内部总线,耦合到所述存储器控制电路、所述扩展存储器和所述互连电路;
互连结构,耦合到所述多个外部存储器单元,所述互连结构不连接到所述多个通用图形处理单元的任何一个通用图形处理单元。
3.如权利要求2所述的处理系统,其中,所述多个通用图形处理单元中的第一通用图形处理单元可以仅向与其对应的外部存储器单元输出存储器请求,或可以访问存储在与所述多个通用图形处理单元中的第二通用图形处理单元对应的外部存储器单元中的数据;
其中,所述多个外部存储器单元仅存储由所述多个通用图形处理单元处理的程序指令和数据。
4.如权利要求2所述的处理系统,其中,所述系统总线包括外围组件快速互连(PCIe)总线,所述内部总线包括高级可扩展接口(AXI)总线,和所述互连结构包括光纤。
5.一种操作处理系统的方法,包括:
接收具有第一存储器地址的存储器请求;
确定所述第一存储器地址是落在与扩展存储器相关联的第一多个存储器地址内,还是落在与互连电路相关联的第二多个存储器地址内;
当所述第一存储器地址落在所述第一多个存储器地址内时,将所述第一存储器地址转发到所述扩展存储器,以及当所述第一存储器地址落在所述第二多个存储器地址内时,将所述第一存储器地址转发到所述互连电路;
当所述第一存储器地址落在所述第二多个存储器地址内时,接收所述第一存储器地址;
从所述多个端口中确定第一端口,所述第一端口被分配的若干个存储器地址中包含所述第一存储器地址;以及
将所述第一存储器地址转发给所述第一端口。
6.如权利要求5所述的方法,其中,所述存储器请求由多个外部存储器单元中的一个外部存储器单元从与所述多个外部存储器单元耦合的多个通用图形处理单元中的相应的一个通用图形处理单元接收。
7.如权利要求6所述的方法,其中,所述多个通用图形处理单元的第一通用图形处理单元可以仅向与其对应的外部存储器单元输出存储器请求,或可以访问存储在与所述多个通用图形处理单元中的第二通用图形处理单元对应的外部存储器单元中的数据。
8.如权利要求6所述的方法,所述多个外部存储器单元仅存储由所述多个通用图形处理单元处理的程序指令和数据。
9.如权利要求6所述的方法,还包括:
经由系统总线从所述多个通用图形处理单元中的一个通用图形处理单元接收所述存储器请求,所述系统总线耦合到所述多个通用图形处理单元和所述多个外部存储器单元;
经由内部总线将存储器控制电路、所述扩展存储器和所述互连电路耦合在一起;以及
经由互连结构将所述多个外部存储器单元耦合在一起,所述互连结构不连接到所述多个通用图形处理单元中的任何一个通用图形处理单元,
其中,所述系统总线包括外围组件快速互连(PCIe)总线,内部总线包括高级可扩展接口(AXI)总线,所述互连结构包括光纤。
10.一种在其中嵌入程序指令的非暂时性计算机可读存储介质,当所述程序指令由设备的一个或多个处理器执行时,所述设备执行一种操作处理系统的方法,所述方法包括:
接收具有第一存储器地址的存储器请求;
确定所述第一存储器地址是落在与扩展存储器相关联的第一多个存储器地址内,还是落在与互连电路相关联的第二多个存储器地址内;
当所述第一存储器地址落在所述第一多个存储器地址内时,将所述第一存储器地址转发到所述扩展存储器,以及当所述第一存储器地址落在所述第二多个存储器地址内时,将所述第一存储器地址转发到所述互连电路;
当所述第一存储器地址落在所述第二多个存储器地址内时,接收所述第一存储器地址;
从所述多个端口中确定第一端口,所述第一端口被分配的若干个存储器地址中包含所述第一存储器地址;以及
将所述第一存储器地址转发给所述第一端口。
11.如权利要求10所述的非暂时性计算机可读存储介质,其中,所述存储器请求由多个外部存储器单元中的一个外部存储器单元从与所述多个外部存储器单元耦合的多个通用图形处理单元中的相应的一个通用图形处理单元接收。
12.如权利要求11所述的非暂时性计算机可读存储介质,其中,所述多个通用图形处理单元的第一通用图形处理单元可以仅向与其对应的外部存储器单元输出存储器请求,或可以访问存储在与所述多个通用图形处理单元中的第二通用图形处理单元对应的外部存储器单元中的数据;
其中,所述多个外部存储器单元仅存储由所述多个通用图形处理单元处理的程序指令和数据。
13.如权利要求11所述的非暂时性计算机可读存储介质,还包括:
经由系统总线从所述多个通用图形处理单元中的一个通用图形处理单元接收所述存储器请求,所述系统总线耦合到所述多个通用图形处理单元和所述多个外部存储器单元;
经由内部总线将存储器控制电路、所述扩展存储器和所述互连电路耦合在一起;以及
经由互连结构将所述多个外部存储器单元耦合在一起,所述互连结构不连接到所述多个通用图形处理单元中的任何一个通用图形处理单元。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111312448.3A CN114238156A (zh) | 2021-11-08 | 2021-11-08 | 处理系统以及操作处理系统的方法 |
US17/581,728 US11847049B2 (en) | 2021-11-08 | 2022-01-21 | Processing system that increases the memory capacity of a GPGPU |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111312448.3A CN114238156A (zh) | 2021-11-08 | 2021-11-08 | 处理系统以及操作处理系统的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114238156A true CN114238156A (zh) | 2022-03-25 |
Family
ID=80748594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111312448.3A Pending CN114238156A (zh) | 2021-11-08 | 2021-11-08 | 处理系统以及操作处理系统的方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11847049B2 (zh) |
CN (1) | CN114238156A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230315328A1 (en) * | 2022-03-18 | 2023-10-05 | Nvidia Corporation | High bandwidth extended memory in a parallel processing system |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7009618B1 (en) * | 2001-07-13 | 2006-03-07 | Advanced Micro Devices, Inc. | Integrated I/O Remapping mechanism |
US7594058B2 (en) * | 2005-11-07 | 2009-09-22 | Via Technologies, Inc. | Chipset supporting a peripheral component interconnection express (PCI-E) architecture |
US7779197B1 (en) * | 2006-05-09 | 2010-08-17 | Integrated Device Technology, Inc. | Device and method for address matching with post matching limit check and nullification |
US8116320B2 (en) * | 2006-08-07 | 2012-02-14 | Adc Telecommunications, Inc. | Mapping external port using virtual local area network |
US7680117B1 (en) * | 2007-03-30 | 2010-03-16 | Juniper Networks, Inc. | Forwarding packets using next-hop information |
KR20090005786A (ko) * | 2007-07-10 | 2009-01-14 | 삼성전자주식회사 | 메모리 사용확장 기능을 갖는 멀티패쓰 억세스블 반도체메모리 장치 및 그에 따른 메모리 사용확장 방법 |
US9235528B2 (en) * | 2012-12-21 | 2016-01-12 | Advanced Micro Devices, Inc. | Write endurance management techniques in the logic layer of a stacked memory |
US9146890B1 (en) * | 2013-01-25 | 2015-09-29 | Pmc—Sierra Us, Inc. | Method and apparatus for mapped I/O routing in an interconnect switch |
US9374305B2 (en) * | 2013-10-24 | 2016-06-21 | Dell Products L.P. | Packet transfer system |
US10102169B2 (en) * | 2015-08-10 | 2018-10-16 | Microsemi Solutions (U.S.), Inc. | System and method for port migration in a PCIE switch |
US10496561B2 (en) * | 2017-04-18 | 2019-12-03 | Advanced Micro Devices, Inc. | Resilient vertical stacked chip network for routing memory requests to a plurality of memory dies |
US10761939B1 (en) * | 2018-12-13 | 2020-09-01 | Amazon Technologies, Inc. | Powering-down or rebooting a device in a system fabric |
US11080225B2 (en) * | 2019-03-18 | 2021-08-03 | Cisco Technology, Inc. | Peer direct mechanism for direct memory access across host devices |
US11343176B2 (en) * | 2019-06-24 | 2022-05-24 | Amazon Technologies, Inc. | Interconnect address based QoS regulation |
US11176063B2 (en) * | 2019-11-01 | 2021-11-16 | EMC IP Holding Company LLC | Optimized use of processor memory for I/O operations |
-
2021
- 2021-11-08 CN CN202111312448.3A patent/CN114238156A/zh active Pending
-
2022
- 2022-01-21 US US17/581,728 patent/US11847049B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20230144693A1 (en) | 2023-05-11 |
US11847049B2 (en) | 2023-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4429213A2 (en) | Network interface for data transport in heterogeneous computing environments | |
US20190034490A1 (en) | Technologies for structured database query | |
US7155554B2 (en) | Methods and apparatuses for generating a single request for block transactions over a communication fabric | |
US8572342B2 (en) | Data transfer device with confirmation of write completion and method of controlling the same | |
CN112540941B (zh) | 一种数据转发芯片及服务器 | |
US20150127691A1 (en) | Efficient implementations for mapreduce systems | |
US9256545B2 (en) | Shared memory access using independent memory maps | |
EP2887223A1 (en) | Memory system, memory module, memory module access method and computer system | |
JP6514329B2 (ja) | メモリアクセス方法、スイッチ、およびマルチプロセッサシステム | |
CN114546913B (zh) | 一种基于pcie接口的多主机之间数据高速交互的方法和装置 | |
CN114385534B (zh) | 一种数据处理的方法及装置 | |
CN106844263B (zh) | 一种基于可配置的多处理器计算机系统及实现方法 | |
CN113900965A (zh) | 净荷高速缓存 | |
TW202111541A (zh) | 裝置內標記資料移動系統 | |
CN114238156A (zh) | 处理系统以及操作处理系统的方法 | |
US9137167B2 (en) | Host ethernet adapter frame forwarding | |
CN114827151B (zh) | 一种异构服务器集群以及数据转发方法、装置和设备 | |
CN106325377B (zh) | 外部设备扩展卡及输入输出外部设备的数据处理方法 | |
WO2021139733A1 (zh) | 一种对内存进行分配的方法、设备及计算机可读存储介质 | |
JP2014167818A (ja) | データ転送装置およびデータ転送方法 | |
CN114661654A (zh) | 访问处理装置和方法、处理设备、电子设备和存储介质 | |
CN113778937A (zh) | 用于执行片上网络(NoC)中的事务聚合的系统和方法 | |
CN116745754A (zh) | 一种访问远端资源的系统及方法 | |
CN117971135B (zh) | 存储设备的访问方法、装置、存储介质和电子设备 | |
US20220350526A1 (en) | Flexible memory extension systems and methods |
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 |