CN116710905A - 适用于可组合计算的双端口存储器模块设计 - Google Patents
适用于可组合计算的双端口存储器模块设计 Download PDFInfo
- Publication number
- CN116710905A CN116710905A CN202180090222.5A CN202180090222A CN116710905A CN 116710905 A CN116710905 A CN 116710905A CN 202180090222 A CN202180090222 A CN 202180090222A CN 116710905 A CN116710905 A CN 116710905A
- Authority
- CN
- China
- Prior art keywords
- memory
- computing host
- port
- dual port
- configuration
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 306
- 230000009977 dual effect Effects 0.000 title claims abstract description 115
- 238000013461 design Methods 0.000 title description 7
- 238000000034 method Methods 0.000 claims abstract description 40
- 238000003860 storage Methods 0.000 claims description 91
- 238000004891 communication Methods 0.000 claims description 18
- 230000004044 response Effects 0.000 claims description 13
- 230000008878 coupling Effects 0.000 claims description 8
- 238000010168 coupling process Methods 0.000 claims description 8
- 238000005859 coupling reaction Methods 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims description 6
- 230000002085 persistent effect Effects 0.000 claims description 5
- 239000000835 fiber Substances 0.000 abstract 1
- 238000007726 management method Methods 0.000 description 31
- 102100030453 Hemoglobin subunit mu Human genes 0.000 description 26
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 14
- 230000011664 signaling Effects 0.000 description 10
- 238000011161 development Methods 0.000 description 9
- 230000018109 developmental process Effects 0.000 description 9
- 239000004744 fabric Substances 0.000 description 9
- 230000002093 peripheral effect Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 238000012546 transfer Methods 0.000 description 7
- 230000001427 coherent effect Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000009826 distribution Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 239000007787 solid Substances 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- RVCKCEDKBVEEHL-UHFFFAOYSA-N 2,3,4,5,6-pentachlorobenzyl alcohol Chemical compound OCC1=C(Cl)C(Cl)=C(Cl)C(Cl)=C1Cl RVCKCEDKBVEEHL-UHFFFAOYSA-N 0.000 description 1
- 102100036725 Epithelial discoidin domain-containing receptor 1 Human genes 0.000 description 1
- 101710131668 Epithelial discoidin domain-containing receptor 1 Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000008929 regeneration Effects 0.000 description 1
- 238000011069 regeneration method Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/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/1663—Access to shared 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
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1012—Design facilitation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明提供了一种有效的结构和方法,用于实现双端口存储器模块,以提供改进的存储器容量可组合性、扩展性和共享性。此双端口存储器模块使用高速SerDes或基于光纤的冗余访问端口连接到一个或多个CPU或计算节点,其中每个访问端口可在配置下访问模块的部分或全部存储器容量。这提高了存储器容量可组合性、通过存储器共享实现的扩展性并且提高了可组合计算应用的存储器访问性能和可靠性。
Description
技术领域
本发明涉及计算存储器模块,特别是涉及方法和装置来提供冗余高速串行器和解串器(serializer and deserializer,SerDes)访问端口以连接到多个计算处理器或计算节点,以便存储器容量按需组合、扩展和共享以及实现可组合计算。
背景技术
在计算应用中,随机存取存储器(random access memory,RAM)通常提供比主存储装置(例如,硬盘驱动器存储装置或固态硬盘(solid-state drive,SSD)存储装置)更高速的访问,但总存储容量更小。RAM与包括SSD的NAND存储器在内的主存储装置之间的一个关键区别是,RAM是可字节寻址设备,通过存储器语义LOAD(READ)和STORE(WRITE)命令访问,而存储装置是可块寻址设备,通过小型计算机系统接口(small computer systeminterface,SCSI)和非易失性内存主机控制器接口规范(non-volatile memory express,NVMe)等块存储协议访问。动态RAM(dynamic RAM,DRAM)是一种RAM,通常用在数字电子器件中以提供经济实惠、高速高容量的存储器。双列直插存储器模块(dual-inline memorymodule,DIMM)外形规格通常用于将DRAM模块连接到主板。在一些示例中,DRAM DIMM设备使用单端口单端高速信号连接到存储器控制器或具有集成DRAM控制器的中央处理器(central processing unit,CPU)。典型的DRAM DIMM包括容纳多个DRAM设备的存储器模块。随着处理速度的不断提高,对DRAM的更大量、更快速访问的需求将继续增加。由于不同的应用可能有不同的存储器容量要求,因此希望计算节点或服务器的存储器容量可按需动态改变而不改变DIMM,以便例如提供可组合计算。
发明内容
各种实施例的目的是提供一种用于实现双端口RAM模块的有效体系结构和方法,以提高存储器容量可组合性、扩展性和共享性。这种双端口RAM模块尤其使用基于高速SerDes(例如25G NRZ、112G PAM4等)的冗余访问端口以连接到多个CPU或计算节点,其中每个访问端口可在软件配置下访问模块的部分或全部存储器容量。这改进了存储器容量可组合性和通过存储器共享实现的扩展性,并提高了存储器访问性能和可靠性。发明内容并非旨在确定请求保护的主题的关键或必要特征,也并非旨在限制请求保护的主题的范围。
表1:定义、缩写和简写
根据本发明的第一方面,提供一种用于访问计算机存储器的双端口存储器模块设备,所述设备包括:提供随机存取存储器(random access memory,RAM)容量的多个存储介质芯片;双端口存储器控制器专用集成电路(application-specific integratedcircuit,ASIC),用于将所述RAM容量的第一部分分配给第一计算主机并将所述RAM容量的第二部分分配给第二计算主机,所述双端口存储器控制器ASIC包括:耦合到第一计算主机的第一接口端口;耦合到第二计算主机的第二接口端口;用于配置所述多个存储介质芯片、从所述多个存储介质芯片读取数据并向所述多个存储介质芯片写入数据的多个存储器接口通道。
在根据第一方面本身的双端口存储器模块设备的第二实施例中,所述设备还包括用于从配置管理服务器接收模块配置和管理数据的管理端口,所述RAM容量的第一部分和所述RAM容量的第二部分的所述分配基于接收到的模块配置和管理数据。
在根据第一方面本身的双端口存储器模块设备的第三实施例中,所述多个存储介质芯片包括DRAM、SRAM、HBM、STT-MRAM或PCM中的至少一种。
在根据第一方面本身的双端口存储器模块设备的第四实施例中,所述设备还包括协议无关多通道连接器,所述协议无关多通道连接器用于:将所述第一接口端口耦合到所述第一计算主机;将所述第二接口端口耦合到所述第二计算主机;将所述管理端口耦合到所述配置管理服务器。
在根据第一方面本身的双端口存储器模块设备的第五实施例中,所述协议无关多通道连接器包括符合SF-TA-1002的PCB连接器。
在根据第一方面本身的双端口存储器模块设备的第六实施例中,利用存储器语义LOAD(READ)和STORE(WRITE)命令,所述第一计算主机访问所述RAM容量的所述第一部分并且所述第二计算主机访问所述RAM容量的所述第二部分。
在根据第一方面本身的双端口存储器模块设备的第七实施例中,所述第一接口端口和所述第二接口端口各自包括由用于存储器访问协议通信的多个差分通道组成的串行和解串器(serial and deserializer,SerDes)端口。
在根据第一方面本身的双端口存储器模块设备的第八实施例中,所述第一接口端口和所述第二接口端口各自可包括可选的差分时钟输入。
在根据第一方面本身的双端口存储器模块设备的第九实施例中,所述双端口存储器控制器ASIC还用于配置所述存储介质芯片以供所述第一计算主机和所述第二计算主机访问。
在根据第一方面本身的双端口存储器模块设备的第十实施例中,所述设备还包括串行存在检测设备,其中:所述双端口存储器控制器ASIC从所述串行存在检测设备读取存储介质配置;所述存储介质芯片的所述配置基于所述存储介质配置。
在根据第一方面本身的双端口存储器模块设备的第十一实施例中,所述存储介质配置包括存储介质类型、存储介质容量、存储介质速度或存储介质芯片数量中的至少一个。
在根据第一方面本身的双端口存储器模块设备的第十二实施例中,所述双端口存储器控制器ASIC还用于:存储存储器使用分配数据,所述存储器使用分配数据指示所述RAM容量的所述第一部分分配给所述第一计算主机并且所述RAM容量的所述第二部分分配给所述第二计算主机;响应于设备电源循环或重置事件:检索所述存储器使用分配数据;恢复将所述RAM容量的所述第一部分分配给所述第一计算主机以及将所述RAM容量的所述第二部分分配给所述第二计算主机,以响应于所述设备电源循环或重置事件而提供持久配置。
根据本发明的第二方面,提供一种双端口存储器模块方法,用于在双端口存储器模块的双端口存储器控制器专用集成电路(application-specific integrated circuit,ASIC)的管理端口处接收模块配置请求,所述双端口存储器模块通过第一端口耦合到第一计算主机,并通过第二端口耦合到第二计算主机;响应于接收到所述模块配置请求,将RAM容量的第一部分分配给所述第一计算主机并将RAM容量的第二部分分配给所述第二计算主机。
在根据第二方面本身的双端口存储器模块方法的第二实施例中,所述方法还包括通过所述双端口存储器控制器ASIC处的管理端口从配置管理服务器接收模块配置和管理数据,根据接收到的所述模块配置和管理数据将所述RAM容量的所述第一部分分配给所述第一计算主机并将所述RAM容量的所述第二部分分配给所述第二计算主机。
在根据第二方面本身的双端口存储器模块方法的第三实施例中,多个存储介质芯片包括DRAM、SRAM、HBM、STT-MRAM或PCM中的至少一种。
在根据第二方面本身的双端口存储器模块方法的第四实施例中,所述双端口存储器控制器ASIC还包括协议无关多通道连接器,所述协议无关多通道连接器用于:将所述第一接口端口耦合到所述第一计算主机;将所述第二接口端口耦合到所述第二计算主机;将所述管理端口耦合到所述配置管理服务器。
在根据第二方面本身的双端口存储器模块方法的第五实施例中,所述协议无关多通道连接器包括符合SF-TA-1002的PCB连接器。
在根据第二方面本身的双端口存储器模块方法的第六实施例中,利用存储器语义LOAD(READ)和STORE(WRITE)命令,所述第一计算主机访问所述RAM容量的所述第一部分并且所述第二计算主机访问所述RAM容量的所述第二部分。
在根据第二方面本身的双端口存储器模块方法的第七实施例中,所述方法还包括在由用于访问协议通信的多个差分存储器通道组成的串行和解串器(serial anddeserializer,SerDes)端口上接收数据。
在根据第二方面本身的双端口存储器模块方法的第八实施例中,所述方法还包括在所述第一接口端口和所述第二接口端口上接收差分时钟输入。
在根据第二方面本身的双端口存储器模块方法的第九实施例中,所述方法还包括在所述双端口存储器控制器ASIC处配置所述存储介质芯片以供所述第一计算主机和所述第二计算主机访问。
在根据第二方面本身的双端口存储器模块方法的第十实施例中,所述方法还包括在所述双端口存储器控制器ASIC处从串行存在检测设备读取存储介质配置,所述存储介质芯片的所述配置基于所述存储介质配置。
在根据第二方面本身的双端口存储器模块方法的第十一实施例中,所述存储介质配置包括存储介质类型、存储介质容量、存储介质速度或存储介质芯片数量中的至少一个。
在根据第二方面本身的双端口存储器模块方法的第十二实施例中,所述方法还包括存储存储器使用分配数据,所述存储器使用分配数据指示所述RAM容量的所述第一部分分配给所述第一计算主机并且所述RAM容量的所述第二部分分配给所述第二计算主机;响应于设备电源循环或重置事件:检索存储器使用分配数据;恢复将所述RAM容量的所述第一部分分配给所述第一计算主机以及将所述RAM容量的所述第二部分分配给所述第二计算主机,以响应于所述设备电源循环或重置事件而提供持久配置。
前述示例中的任一个可以与前述其它示例中的任何一个或多个组合以根据本发明产生新实施例。
附图说明
附图通过示例而非限制的方式一般地示出了本文论述的各种实施例。
图1示出示例性DRAM DIMM系统。此DRAM DIMM系统可包括JEDEC定义的DDR4或DDR5DIMM。DIMM通过DIMM插槽连接到主机或存储器控制器。
图2A至图2C示出各种类型的JEDEC DDR4 DIMM:UDIMM、RDIMM和LRDIMM。对于DDR4DIMM,只有一个访问端口或通道到存储器控制器或具有集成存储器控制器的主机。
图3A至图3C示出3种类型的JEDEC DDR5 DIMM:UDIMM、RDIMM和LRDIMM。与DDR4DIMM相比,每个DDR5 DIMM分为两个单独的通道(例如通道A、通道B),其中每个通道都有用于连接到一个存储器控制器或具有集成DD5存储器控制器的一个主机的一个访问端口,并且每个通道只能访问一半DIMM存储器容量。
图4A至图4C示出一个示例双数据速率(double data rate,DDR)吞吐量比较。图4示出从DDR到DDR5的不同DRAM技术和相关DIMM的密度、接口速度和带宽,以及下一代DDR6的一些预测。
图5示出差分DIMM,例如由OpenPower社区定义的DDR5 DDIMM,其中DIMM通过高速SerDes接口连接到存储器控制器或具有集成存储器控制器的主机并由此存储器控制器或主机访问。
图6A至图6E示出差分DIMM的示例性连接器和相关信息。图6A至图6E示出SNIASFF-TA-1002系列连接器,这可用于连接具有高速SerDes接口的差分DIMM和符合SFF-TA-1002的PCB连接器。SNIA SFF-TA-1002规范支持PAM4 SerDes高达112GT/s的接口速度。
图7示出从现有DDR4 DIMM到未来的DDR5 DIMM和DDR5之后的下一代(nextgeneration,NG)DIMM(DDIMM)的潜在演进路径。本发明的实施例可在NG DDIMM中实现。
图8示出示例性可组合基础设施体系结构,其中在存储器中,存储装置和加速器作为相应的资源池与CPU解耦,并按需分配给CPU以形成可组合服务器。
图9A和图9B示出其中DIMM、HDD/SSD存储装置和加速器本地连接到一个或多个CPU或处理器的当前服务器设计,以及其中可组合存储和加速通过网络结构远程连接到计算节点的可组合服务器设计。
图10示出具有封装上高带宽存储器(high bandwidth memory,HBM)的SoC的示例。
图11示出HBM技术的演进和性能特征。
图12示出TSMC SoC-HBM集成路线图,以及具有不同HBM配置的可行存储器容量和带宽。随着HBM的快速发展,可实现可组合存储器。
图13示出以共同封装的HBM作为主存储器的所设想的微处理器体系结构。
图14示出本发明在具有图13所示微处理器的新服务器体系结构设计中的应用示例。
图15示出本发明的另一应用示例,其中两个服务器节点共享双端口存储器模块以用于在两个服务器节点之间实现可组合存储器容量。
图16示出本发明的可组合基础设施的体系结构的应用示例,其中可组合存储器容量池通过互连结构连接到计算池。在这种可组合基础设施中,所公开的双端口存储器模块用在双端口存储器扩展板上。
图17示出所公开的双端口存储器模块的关键框图。
图18为所公开的双端口存储器模块的示例性方法的实施例的特征的流程图。
图19示出用于实现本发明实施例的计算系统的示例性实施例。
具体实施方式
在以下的描述中,参阅构成本说明书一部分的附图,其中通过图示示出可以实施的具体实施例。为了使本领域技术人员能够实践这些实施例,对这些实施例进行了足够详细的描述,并且应当理解,可以使用其他实施例,并且可以进行结构、逻辑、机械和电改变。因此,以下示例实施例的描述不具有限定意义。
本文描述的功能或算法可以在实施例中以软件实现。该软件可包括存储于计算机可读介质或计算机可读存储设备(例如一个或多个非瞬时性存储器或其它类型的基于硬件的本地或联网存储设备)中的计算机可执行指令。此外,这些功能对应于模块,这些模块可以是软件、硬件、固件或其任意组合。多个功能可以根据需要在一个或多个模块中执行,所描述的实施例仅仅是示意性的。软件可以在数字信号处理器、专用集成电路(application-specific integrated circuit,ASIC)、微处理器或在计算机系统上运行的其它类型的处理器上执行,所述计算机系统例如个人计算机、服务器或其它计算机系统,从而将此类计算机系统变成具体编程的机器。
机器可读非瞬时性介质,例如计算机可读非瞬时性介质,包括所有类型的计算机可读介质,包括磁存储介质、光存储介质和固态存储介质,特别要排除信号。软件可安装在如本文所教示处理存储器分配的设备中,并与这类设备一起销售。或者,可以获取软件并将其装载到这类设备中,包括通过光盘介质或从任何形式的网络或分配系统获取软件,包括例如从软件创作者拥有的服务器或从软件创作者未拥有但使用的服务器获取软件。例如,软件可以存储在服务器上,以便通过网络分配。
如本文所使用,术语“存储器模块”是指具有存储器控制集成电路的印刷电路板组件(printed circuit board assembly,PCBA),并且存储介质芯片安装在印刷电路板(printed circuit board,PCB)上。双列直插存储器模块(dual in-line memory module,DIMM)在PCB的每一侧都有单独的触点。存储器模块可具有32位数据路径、64位数据路径或使用其他数据路径大小。不同的存储器模块可具有不同数量的引脚(例如,72个引脚、100个引脚、144个引脚、278个引脚或288个引脚),并在不同的电压(例如,5.0V、3.3V、2.5V、1.8V、1.5V或1.2V)下工作。
主机通过在存储器模块的输入引脚上提供要读取的地址和读取命令信号而从存储器模块读取数据。存储器模块通过在存储器模块的输出引脚上提供读取的数据来响应。主机通过在存储器模块的输入引脚上提供要写入的地址和数据值而将数据写入存储器模块。如果是与主机具有SerDes接口的差分DIMM,则访问命令和数据将封装到通过SerDes接口传输的数据包中。
双通道存储器模块作为两个独立的通道工作,用于访问存储器。每个通道都有自己的一组输入和输出引脚。此外,双通道存储器模块上的存储器芯片在两个通道之间物理划分。因此,使用一个通道写入的数据无法使用另一个通道读取。制造后,通道之间的存储器分布也无法改变。
如本文所述,双端口存储器模块提供两组输入和输出引脚,但双端口存储器模块的存储器容量由双端口存储器控制器ASIC在各端口之间划分。因此,对每个端口的存储器模块存储器容量分配可在制造后改变。与双通道存储器模块相比,双端口存储器模块提供了更大的灵活性,允许更有效地利用计算资源,并使可组合存储器用于可组合计算。术语“多端口存储器模块”包括具有多于一个端口(例如,双端口存储器模块的两个端口、三端口存储器模块的三个端口、四端口存储器模块的四个端口等)的存储器模块。
如本文所使用,术语“存储介质芯片”是指用于数据存储的存储器模块的可字节寻址存储器集成电路。存储介质芯片包括DRAM、存储级存储器(storage class memory,SCM)、磁性RAM(magnetic RAM,MRAM)、自旋转移矩MRAM(spin-transfer torque MRAM,STT-MRAM)等。DRAM包括单数据速率(single data rate,SDR)DRAM、双数据速率(double data rate,DDR)DRAM和同步DRAM(synchronous DRAM,SDRAM)等。
可使用差分信令或单端信令提供进出存储器模块的信令。对于单端信令,使用单个引脚传输每个信号。将每个引脚的电压与接地电压进行比较,以确定信号是零还是一。例如,如果引脚上的电压至少高于接地电压一个阈值,则信号是逻辑一,而如果电压不满足阈值,则信号是逻辑零。对于差分信号,使用两个引脚传输每个信号。将一个引脚的电压与另一引脚的电压进行比较,以确定信号是零还是一。例如,如果两个引脚在彼此的阈值电压内,则信号为逻辑零,而如果差值超过阈值,则信号为逻辑零。
如本文所使用,术语“通信通道”是指一对数据传输连接,一个用于输入,一个用于输出。对于差分信号,存储器模块的每个通信通道使用四个引脚,两个用于输入差分信号,两个用于输出差分信号。
提高存储器模块数据传输速率的一种方法是增加通信通道的数量,从而允许在每个时钟周期并行发送或接收更多数据。然而,减小引脚大小会增加串扰,而在不减小引脚大小的情况下增加引脚数量会增加存储器模块的大小,这两种情况都是不可取的。
提高存储器模块数据传输速率的另一种方法是提高工作时钟频率,从而允许每通道每秒传输更多数据。计算主机与存储器模块之间的通信时钟频率可增加一个系数,通道数可除以同一系数,从而保持数据传输速率相同,同时减少存储器模块上的引脚数量。在连接的每一侧实现SerDes,以转换较低频率(例如,1Ghz)的宽数据(例如,64通道)与较高频率(例如,8GHz)的窄数据(例如,8通道)之间的数据信号。因此,来自多个通道(在本例中为八个)的数据被“串行化”,并顺序输出到一个通道上。在连接的另一侧,顺序接收的数据被“解串化”,并在多个通道(在本例中也是八个)上并行输出。在一些实施例中,可使用比信号复用更复杂的编码方案,例如8B/10B、64B/65B或128B/129B。
图1示出DRAM DIMM系统100的示例。系统100包括DRAM DIMM 110,该DRAM DIMM包括寄存器时钟驱动器(register clock driver,RCD)120和一定数量的DRAM设备130,例如用于纠错码(error correction code,ECC)DIMM的十八或三十六个DRAM设备。DRAM DIMM110可连接到DIMM插槽140,例如将DRAM DIMM 110连接到主机(中央处理器(centralprocessing unit,CPU)或SoC或DRAM控制器)。DRAM DIMM 110使用单端口单端高速信号连接到主机。DRAM数据速率已从1998年DDR1的200兆每秒传输(megatransfers per second,MT/s)演进到2020年JEDEC定义的6400MT/s DDR5。
图2A至图2C示出示例性DIMM配置200。DIMM配置200包括未注册DIMM(unregistered DIMM,UDIMM)210,其中DRAM芯片215的命令、地址、数据和时钟信号直接连接到主机而无需注册或再生。DIMM配置200包括注册DIMM(registered DIMM,RDIMM)220,其中主机与DRAM芯片225之间的命令和地址信号用寄存器缓冲,时钟信号用锁相环(phaselocked loop,PLL)再生,但数据信号未缓冲并直接连接到主机。DIMM配置200包括负载降低的DIMM(load-reduced DIMM,LRDIMM)230,其中主机与DRAM芯片235之间的命令、地址和数据信号用寄存器缓冲,时钟信号用PLL再生。
图3A至图3C示出JEDEC DRAM标准委员会定义的示例性双通道DDR5 DIMM 300。双通道DIMM 300包括通用双通道DIMM 310,该通用双通道DIMM包括独立通信通道A 312和另一独立通信通道B 314。双通道DIMM 300包括RDIMM 320,该RDIMM包括独立RDIMM通信通道A322和另一独立RDIMM通信通道B 324。双通道DIMM 300包括LRDIMM 330,该LRDIMM包括独立LRDIMM通信通道A332和另一独立LRDIMM通信通道B 334。
图4A至图4C示出示例性双数据速率(double data rate,DDR)吞吐量比较400。DDR吞吐量比较400包括DDR比较表410,该表对各种类型的DDR存储器的特征进行比较。如表中所示,288引脚的DDR4 DIMM包括UDIMM、RDIMM和LRDIMM,每个DIMM使用一个64+8位通道,数据速率高达3200MT/s。288引脚的DDR5 DIMM包括RDIMM和LRDIMM,但分为两个独立的32+8位通道,数据速率高达6400MT/s。这些DDR4和DDR5SDRAM DIMM与主机的数据传输速率可通过使用差分串行器和解串器(serializer and deserializer,SerDes)通信接口提高。如存储器容量提高图420所示,存储器密度随着存储器从DDR进展到DDR5而增加。如存储器接口改进图430所示,传输速率随着存储器从DDR进展到DDR5而增加。
图5示出差分DIMM 500,例如由OpenPower指定和实现的差分DIMM。差分DIMM 500包括通过主机接口连接器525上的SerDes接口520从主机CPU接收命令、地址、数据和时钟信号到主机计算机的差分DIMM控制器ASIC 510。差分DIMM控制器510从SerDes接口接收主机存储器访问命令,并提供对DRAM芯片530的存储器访问。差分DIMM 500可使用差分SerDes在CPU与DIMM 500之间提供提高的速度。DIMM外形规格可包括25G X8差分开放存储器接口(open memory interface,OMI)DDIMM,该OMI DDIMM可包括84引脚的连接器,该连接器将16个差分对用于8x25G SerDes,并留出20个引脚(例如,10个差分对)用于其他功能。
图6A至图6E示出用于差分DIMM的示例性连接器600和相关信息。连接器600基于存储网络行业协会(storage networking industry association,SNIA)协议,例如SNIA小型机(small form factor,SFF)技术附属(technology affiliate,TA)1002协议。SNIA-SFF-TA-1002表610示出各种连接器配置的特征。连接器可包括各种连接器配置,例如垂直连接器620、直角连接器630或边缘连接器640。SNIA-SFF-TA-1002生态系统650示出SFF外形规格652、差分存储器654和Gen-Z外形规格656之间的关系
图7示出示例性DIMM演进700。DIMM发展700包括联合电子器件工程委员会(jointelectron device engineering council,JEDEC)DDR4 DIMM 710,JEDEC DDR4 DIMM提供具有单端并行信令的64位通道,从而提供高达3200MT/s的吞吐量。JEDEC DDR4 DIMM 710之后是JEDEC DDR5 DIMM 720,JEDEC DDR5 DIMM提供具有单端并行信令的双32位通道,从而提供高达6400MT/s。JEDEC DDR5 DIMM 720之后可以是JEDEC建议的DDR5 DIMM 730,该DDR5DIMM提供具有差分SerDes信令的双32位通道,从而提供大于25千兆每秒传输(gigatransfers per second,GT/s)。如本文所使用,“高速差分信令”用于指提供25GT/s或更高的信令。
DIMM发展700的替代路径沿循JEDEC DDR4 DIMM 710后跟着由OpenPower定义的具有也能提供大于25GT/s的差分SerDes信令的OMI DIMM 740。此OMI DIMM 740可使用八个25Gbps SerDes通道与主机介接。DIMM发展700包括可提供112GT/s或更大的吞吐量的下一代(next generation,NG)DIMM 750;预期所公开的双端口存储器模块将是NG DIMM外形规格之一,以使可组合存储器能够用于可组合计算。
图8示出示例性可组合基础设施体系结构800,其中本发明可用作构建块来实现可组合存储器。可组合基础设施体系结构800包括通过互连器结构840连接到存储器池850、存储装置池860或加速器池870等各种资源池的多个计算设备810、820和830的池。各种资源池850、860和870内的资源可在组合器服务器软件控制下按需分配给计算池中的计算设备,以形成应用优化的服务器,从而实现可组合计算。
由于存储装置池860和加速器池870增加的访问延迟与CPU指令执行时间(例如,纳秒)相当,互连器结构840可为存储装置池860和加速器池870提供足够的访问速度。在以前的配置中,CPU本地的高速缓存或存储器必须足够大,以抵消结构增加的延迟。如图11和图12中所描述,可组合基础设施体系结构800利用具有大容量封装上HBM存储器的CPU提供改进性能,使得存储器池850不需要驻留在多个计算设备810、820和830中的每一个上。为了进一步降低互连延迟,可在计算池与存储器池850之间使用专用互连结构。
图9A和图9B示出与左侧的当前主流服务器设计910相比,右侧当前可行(或行得通)的可组合服务器体系结构920的示例。当前主流服务器体系结构910包括本地连接到CPU915的对应DDR4/DDR5存储器和PCIe接口的存储器、存储装置和加速器。可组合服务器体系结构920包括与结构940互连的计算池930、存储装置池950和加速器池960。与CPU直接连接的服务器设计910相比,可组合服务器体系结构920中的计算池930通过互连器结构940连接到存储装置池950和加速器池960。可组合服务器体系结构920提供了与存储装置池950或加速器池960所需的访问时间相比相对较小的结构相关延迟。在各种实施例中,互连器结构940可以是25/50/100GE上的融合以太网(RDMA over converged ethernet,RoCE)结构上的远程直接存储器访问(remote direct memory access,RDMA),或其他高速互连结构。
图10示出示例性高带宽存储器(high bandwidth memory,HBM)体系结构1000。HBM体系结构1000包括HBM堆栈1010,其中HBM堆栈1010使用三维集成电路(three-dimensionalintegrated circuit,3D IC)封装将多个DDR DRAM管芯1012垂直堆叠在逻辑管芯层1014上。HBM堆栈1010通过中介层1020连接到封装衬底1030。HBM堆栈1010还通过中介层1020连接到CPU/GPU/SoC 1040。
图11示出示例性HBM性能表1100。HBM性能表1100提供了包括HBM1、HMB2、HMB2E和HBM3在内的各种HBM配置之间的比较。图10中所示的HBM体系结构1000可使用可提供16GB–24GB的容量和大于每堆栈400GB/s的带宽的HBM2E。
图12示出示例性HBM发展1200。HBM发展1200包括按时间顺序的发展1210,示出从2011年的基线到TSMC预计2023年的12HBM堆栈的预计4倍的发展。HBM发展1200包括各种HBM配置的性能表1220。如性能表1220所示,其中每个堆栈以6.4Gbps的速度提供64GB运行的封装上12个HBM堆栈的配置最高可提供768Gb和9830TB/s。HBM存储器与CPU共封装提供的容量和性能使DRAM DIMM与计算节点解耦,形成通过互联结构与计算节点互连的存储器池,然后将DRAM容量分配给请求的计算节点,以便按需扩展。这提供了用于可组合计算的可组合存储器,这是所公开的双端口存储器模块的目标应用。
图13示出设想的可在2025–2030年的时间范围左右可用的处理器模块1300的示例,该处理器模块具有共同封装的HBM作为系统存储器。所设想的处理器模块1300包括处理器管芯1310、多个共同封装的HBM堆栈1320以及高速差分存储器扩展通道或可配置多协议端口1330以将存储器扩展到所公开的用于可组合存储器的双端口存储器模块上的DRAM、SCM、MRAM或其他RAM。处理器模块1300还可包括用于高速缓存一致对称多处理(symmetricmultiprocessing,SMP)、计算快速链路(compute express link,CXL)、外围组件互连快速(peripheral component interconnect express,PCIe)或附加可配置多协议端口的端口1340。处理器模块1300还可包括集成以太网接口1350、可选的专用PCIe端口1360和杂项接口1370(例如,USB、串行外围接口)。
图14示出所公开的双端口存储器模块在高速缓存一致双插槽计算节点体系结构1400中的应用示例。高速缓存一致双插槽计算节点体系结构1400包括连接到第二CPU 1420的第一CPU 1410,这两个CPU使用高速缓存一致性互连1430来维护高速缓存一致性协议控制消息,并使用专用SerDes接口访问所公开的双端口存储器模块1460上的存储器,该双端口存储器模块具有连到两个CPU中的每个CPU的一个SerDes端口1440。所公开的双端口存储器模块1460通过连接器1450连接到CPU,该连接器可以是但不限于符合SFF-TA-1002的连接器。
图15示出两个服务器节点可组合存储器体系结构1500的应用示例,其中一个或多个所公开的双端口存储器模块由同一PCB上的两个服务器节点共享,并且所公开的双端口存储器模块的存储器容量可按需分配给任一服务器节点。可组合存储器体系结构1500包括连接到第二服务器节点1520的第一服务器节点1510。第一服务器节点1510和第二服务器节点1520中的每一个可包括相应的处理器、引导ROM和管理、接口端口和网络端口。可组合存储器体系结构1500包括一个或多个双端口存储器扩展模块1560,其可提供对端口存储器扩展模块1560上的DRAM、SCM、MRAM或其他RAM的共享访问。该可组合存储器体系结构1500使用SerDes链路1540和SFF-TA-1002连接器1550提供从第一服务器节点1510和第二服务器节点1520到双端口存储器扩展模块1560的直接访问路径,双端口存储器模块1560的存储器容量可按需分配给任一服务器节点,以通过双端口差分存储器模块1560在服务器节点之间提供存储器容量。
图16示出所公开的用于可组合存储器体系结构1600的双端口存储器模块的另一应用示例。可组合存储器体系结构1600包括通过冗余互连结构1620连接到存储器池1630的计算节点池1610。存储器池1630包括所公开的多个双端口存储器模块1640,这些双端口存储器模块与两个互连ASIC 1660聚合并安装在双端口存储器板1650上。在一个应用场景中,每个双端口存储器模块1640包括每次通过两个互连ASIC连接到计算节点池1610内的一个或两个计算节点一次的两个基于SerDes的高速冗余访问端口,双端口存储器模块1640的存储器容量分配给与其两个端口中的一个端口连接的计算节点,这提供对每个双端口存储器模块1640的部分或全部存储器的访问。在另一个应用场景中,存储器池1630中所有所公开的双端口存储器模块1640由计算池1610中的所有或一些计算节点通过两条冗余访问路径共享。这种可组合存储器体系结构1600提供了存储器容量的可组合性、扩展性和共享性,从而提高存储器访问性能的增强。可组合存储器体系结构1600的细节不在本发明的范围之内。
图17示出所公开的其中可实现本发明的实施例的双端口差分存储器模块1700的示例。所公开的双端口存储器模块1700包括双端口存储器控制器ASIC 1740、通过N通道存储器接口1760连接到控制器ASIC 1740的多个存储介质芯片1775、由控制器ASIC 1740连接和访问的SPD以及诸如电源电路、时钟分配电路等其他组件,以及PCB 1780,所有设备都安装在该PCB上。在实施例中,PCB 1780还实现用于主机和管理接口的符合SNIA-SFF-TA-1002的PCB连接器。在实施例中,双端口差分存储器模块1700包括可用于直接为最多两个主机提供数据访问的第一数据访问端口1710和第二数据访问端口1720。第一数据访问端口1710和第二数据访问端口1720各自由一个或多个SerDes通道组成,例如使用两个、四个、八个或更多个SerDes通道。在实施例中,第一数据访问端口1710和第二数据访问端口1720中的每一个都具有差分时钟输入。第一数据访问端口1710和第二数据访问端口1720分别连接到双端口存储器控制器ASIC 1740的端口1和端口2。
双端口差分存储器模块1700可包括低速管理端口1730,用于与管理或组合器服务器通信以进行模块初始化、配置、监测、存储器容量分配和地址映射管理,但详细的管理命令和消息格式不在本发明的范围之内。管理端口1730连接到双端口存储器控制器ASIC1740的管理端口。管理端口1730可使用服务器消息块(server message block,SMB)协议、集成电路间(inter-integrated circuit,I2C/I3C)协议、控制器局域网(controller areanetwork,CAN)总线协议、以太网协议或其他联网协议进行通信。管理端口1730可用于将双端口差分存储器模块1700内的部分或全部存储器配置成主机可通过第一数据访问端口1710或第二数据访问端口1720访问。在端口上存在的地址与存储器芯片的地址之间的存储器容量分配和地址映射的这种配置可例如通过存储和检索存储器容量分配和地址映射配置而在双端口差分存储器模块1700的电源循环或重置事件中持久化。
第一数据访问端口1710和第二数据访问端口1720可在共同双端口存储器控制器专用集成电路(application-specific integrated circuit,ASIC)1740上实现。双端口存储器控制器ASIC 1740可包括由用于连接到多个存储介质芯片1775的N个存储介质接口通道1760组成的存储介质芯片接口1750。N的值可以是任何正整数,但通常为18或36,以支持ECC存储器模块,就像DDR4和DDR5 DIMM一样。存储介质芯片接口1750可以是单端JEDECDDR4、DDR5或任何其他未来的单端或差分存储介质芯片接口。
双端口存储器控制器ASIC 1740可根据填充的存储器芯片1775执行必要的存储器启动和配置操作,而不需要任何主机的干预。在实施例中,配置操作包括基于存储器配置信息进行配置,该存储器配置信息可包括填充的存储介质芯片类型、容量、配置、速度和填充在每个存储器接口通道上的存储器芯片的数量。双端口存储器控制器ASIC 1740可从串行存在检测(serial presence detect,SPD)设备等开启模块(on-module)检索存储器配置信息。如果已分配存储器容量并由管理或组合器服务器通过模块的管理接口启用数据访问端口,这些配置操作就可使双端口差分存储器模块1700准备好由主机通过第一数据访问端口1710或第二数据访问端口1720中的任一个访问。双端口存储器控制器ASIC 1740将请求量的存储器容量分配给第一数据访问端口1710和第二数据访问端口1720,并根据该双端口存储器控制器ASIC通过管理端口从管理或组合器服务器接收的指令,设置数据访问端口存储器地址与存储介质芯片1775的地址之间的适当地址映射。双端口存储器控制器ASIC 1740还根据其通过管理端口从管理或组合器服务器接收的指令启用或禁用第一数据访问端口1710或第二数据访问端口1720,一旦禁用,相应的数据访问端口将不响应接收到的任何主机请求。主机通过其连接的第一数据访问端口1710或第二数据访问端口1720,使用存储器语义LOAD(READ)和STORE(WRITE)存储器访问命令访问双端口存储器模块的存储器容量。借以传输主机存储器访问命令的通信协议可以是CXL、Gen-Z、OpenCAPI、PCIe或新兴的存储器语义协议。
在实施例中,双端口差分存储器模块1700的外形规格、电接口和数据访问协议选定与存储介质无关。这种存储器无关的体系结构使得各种类型的存储器(例如,DRAM、SCM、MRAM/STT-MRAM)可用于存储器芯片1775。
图18是双端口存储器模块(例如,图17的双通道DIMM 1700)的示例方法1800的实施例的特征的流程图。在操作1810中,在通电或重置事件时,双端口存储器控制器ASIC根据从SPD读取的模块和存储介质芯片信息初始化和配置双端口存储器模块。在操作1820中,双端口存储器控制器ASIC确定模块存储器容量是否已分配给数据访问端口,根据SPD或双端口存储器控制器ASIC内部或外部的其他永久存储器位置先前保存的配置启用相应的数据访问端口。
在操作1830中,如果数据访问端口(即主机)尚未被分配存储器容量并启用,则双端口存储器控制器等待并通过管理接口接收来自管理或组合器服务器的命令,并将存储器容量分配给一个或多个数据访问端口并启用这些端口。
在操作1840中,一旦一个或多个数据访问端口被配置和启用,双端口存储器控制器ASIC将为通过数据访问端口接收的来自一个或多个主机的请求提供服务。在操作1850中,双端口存储器控制器ASIC确定从主机接收的请求是包括读取请求还是写入请求。
响应于确定请求包括读取请求,在操作1860中,双端口存储器控制器ASIC通过从存储介质芯片的指定存储器位置读取数据,并通过请求主机连接到的数据访问端口将读取的数据返回到请求主机来服务主机读取请求。随后,方法1800包括返回到操作1840以服务下一个主机请求。
响应于确定请求包括写入请求,在操作1870中,双端口存储器控制器ASIC通过将来自主机的数据写入存储介质芯片的指定存储器位置并确认请求主机写入请求的完成来服务主机写入请求。随后,方法1800包括返回到操作1840以服务下一个主机请求。
图19示出用于实现本发明实施例的计算系统1900的示例性实施例。计算系统1900可包括通过总线1912彼此通信并与其他组件通信的处理器1904和存储器1908。总线1912可包括几种类型的总线结构中的任一种,包括但不限于使用各种总线体系结构中的任一种的存储器总线、存储器控制器、外围总线、本地总线和其任意组合。
存储器1908可包括各种组件(例如,诸如计算机可读介质的机器可读介质),包括但不限于随机存取存储器组件、只读组件和其任何组合。在示例中,基本输入/输出系统1916(basic input/output system,BIOS),包括例如在启动期间帮助计算系统1900内的元件之间传输信息的例程,可存储在存储器1908中。存储器1908还可包括(例如,存储在一个或多个机器可读介质中的)指令(例如,软件)1920,从而体现本发明的任一个或多个方面和/或方法。在另一示例中,存储器1908还可包括任意数量的程序模块,包括但不限于操作系统、一个或多个应用程序、其它程序模块、程序数据和其任意组合。
计算系统1900还可包括存储设备1924。存储设备的示例,例如存储设备1924,可包括但不限于硬盘驱动器、磁盘驱动器、与光学介质结合的光盘驱动器、固态存储器设备和其任何组合。存储设备1924可通过适当的接口(未示出)连接到总线1912。示例性接口包括但不限于SCSI、高级技术附件(advanced technology attachment,ATA)、串行ATA、通用串行总线(universal serial bus,USB)、IEEE 1394(火线接口)及其任意组合。在示例中,存储设备1924或其一个或多个组件可例如通过外部端口连接器(未示出)可移除地与计算系统1900介接。特别地,存储设备1924和相关联机器可读介质1928可为计算系统1900提供机器可读指令、数据结构、程序模块和/或其他数据的非易失性和/或易失性存储。在示例中,软件1920可完全或部分驻留在机器可读介质1928中。在另一示例中,软件1920可完全或部分驻留在处理器1904中。
计算系统1900还可包括输入设备1932。在一个示例中,计算系统1900的用户可通过输入设备1932将命令和/或其他信息输入到计算系统1900中。输入设备1932的示例包括但不限于字母数字输入设备(例如,键盘)、定点设备、操纵杆、游戏板、音频输入设备(例如,麦克风,语音应答系统等)、光标控制设备(例如,鼠标)、触摸板、光学扫描仪、视频捕获设备(例如,静止相机、摄像机)、触摸屏和其任意组合。输入设备1932可通过各种接口(未示出)中的任何接口与总线1912介接,这些接口包括但不限于串行接口、并行接口、游戏端口、USB接口、FIREWIRE接口、到总线1912的直接接口和其任何组合。输入设备1932可包括触摸屏接口,该触摸屏接口可以是显示器1936的一部分或与显示器分离,下文将进一步讨论。输入设备1932可用作用户选择设备,以如上所述在图形界面中选择一个或多个图形表示。
用户还可通过存储设备1924(例如,可移动磁盘驱动器、闪存驱动器等)和/或网络接口设备1940向计算系统1900输入命令和/或其他信息。网络接口设备,例如网络接口设备1940,可用于将计算系统1900连接到各种网络中的一个或多个网络,例如网络1944,以及网络上连接的一个或多个远程设备1948。网络接口设备的示例包括但不限于网络接口卡(例如,移动网络接口卡、LAN卡)、调制解调器和其任意组合。网络的示例包括但不限于广域网(例如,互联网、企业网络)、局域网(例如,与办公室、大楼、校园或其它相对较小的地理空间相关联的网络)、电话网络、与电话/语音提供商相关联的数据网络(例如,移动通信提供商数据和/或语音网络)、两个计算设备之间的直接连接和其任意组合。网络,例如网络1944,可采用有线和/或无线通信模式。大体上,可使用任何网络拓扑。信息(例如,数据、软件1920等)可通过网络接口设备1940传送到计算系统1900和/或从该计算系统传送。
计算系统1900还可包括视频显示适配器1952,用于将可显示图像传送到显示设备,例如显示器1936。显示设备的示例包括但不限于液晶显示器(liquid crystaldisplay,LCD)、阴极射线管(cathode ray tube,CRT)、等离子体显示器、发光二极管(lightemitting diode,LED)显示器和其任何组合。视频显示适配器1952和显示器1936可与处理器1904结合使用,以提供本发明的各方面的图形表示。除了显示设备之外,计算系统1900还可包括一个或多个其他外围输出设备,包括但不限于音频扬声器、打印机和其任何组合。这样的外围输出设备可通过外围接口1956连接到总线1912。外围接口的示例包括但不限于串行端口、USB连接、FIREWIRE连接、并行连接和其任何组合。
本主题可体现为许多不同的形式,不应解释为限于本文所述的实施例。事实上,该主题旨在涵盖这些实施例的包括在该主题的范围内的替代方案、修改和等同物。此外,在对本主题的详细说明中,提出许多具体细节,以提供对本主题的彻底理解。但是,本领域的普通技术人员将清楚,可以在没有这些具体细节的情况下实践本主题。
机器可读存储介质,例如计算机可读存储介质,排除传播的信号本身,可由计算机和/或处理器访问,并包括可移动和/或不可移动的易失性和非易失性内部和/或外部介质。对于计算机,各种类型的存储介质适于以任何适当的数字格式存储数据。可使用其他类型的计算机可读介质,例如压缩驱动器、固态驱动器、磁带、闪存卡、闪存驱动器、盒式磁带等,用于存储用于执行所公开体系结构的新颖方法(行为)的计算机可执行指令。
出于说明和描述的目的呈现对本发明的描述,但不旨在按照所发明形式对本发明穷举或限于本发明。在不脱离本发明范围的情况下,修改和变化对本领域普通技术人员来说是显而易见的。出于本文目的,与所公开的技术相关联的每个过程可连续地由一个或多个计算设备执行。过程中的每个步骤可以由与其它步骤中使用的计算设备相同或不同的计算设备执行,并且每个步骤不一定由单个计算设备执行。
虽然在此已经说明和描述了具体实施例,但本领域普通技术人员将理解,任何计算为实现相同目的的布置都可以取代所示的具体实施例。各种实施例使用本文描述的实施例的排列和/或组合。应当理解,上述描述旨在是说明性的,而不是限制性的,并且本文使用的措辞或术语是出于描述的目的。在研究上述描述后,上述实施例和其它实施例的组合对于本领域技术人员来说是显而易见的。
Claims (22)
1.一种用于访问计算机存储器的双端口存储器模块设备,其特征在于,所述设备包括:
多个存储介质芯片,提供随机存取存储器(random access memory,RAM)容量;
双端口存储器控制器专用集成电路(application-specific integrated circuit,ASIC),用于将所述RAM容量的第一部分分配给第一计算主机,并将所述RAM容量的第二部分分配给第二计算主机,所述双端口存储器控制器ASIC包括:
耦合到所述第一计算主机的第一接口端口;
耦合到所述第二计算主机的第二接口端口;
多个存储器接口通道,用于配置所述多个存储介质芯片、从所述多个存储介质芯片读取数据并向所述多个存储介质芯片写入数据。
2.根据权利要求1所述的设备,其特征在于,还包括用于从配置管理或组合器服务器接收模块配置和管理数据的管理端口,所述RAM容量的所述第一部分和所述RAM容量的所述第二部分的所述分配基于接收到的模块配置和管理数据。
3.根据权利要求1或2所述的设备,其特征在于,所述多个存储介质芯片包括DRAM、SRAM、HBM、STT-MRAM或PCM中的至少一种。
4.根据权利要求1至3中任一项所述的设备,其特征在于,还包括协议无关多通道连接器,所述协议无关多通道连接器用于:
将所述第一接口端口耦合到所述第一计算主机;
将所述第二接口端口耦合到所述第二计算主机;
将所述管理端口耦合到所述配置管理或组合器服务器。
5.根据权利要求1至4中任一项所述的设备,其特征在于,所述协议无关多通道连接器包括符合SFF-TA-1002的PCB连接器。
6.根据权利要求1至5中任一项所述的设备,其特征在于,利用存储器语义LOAD(READ)和STORE(WRITE)命令,所述第一计算主机访问所述RAM容量的所述第一部分并且所述第二计算主机访问所述RAM容量的所述第二部分。
7.根据权利要求1至6中任一项所述的设备,其特征在于,所述第一接口端口和所述第二接口端口各自包括由用于存储器访问协议通信的多个差分通道组成的串行和解串器(serial and deserializer,SerDes)端口。
8.根据权利要求1至7中任一项所述的设备,其特征在于,所述双端口存储器控制器ASIC还用于配置所述存储介质芯片以供所述第一计算主机和所述第二计算主机访问。
9.根据权利要求8所述的设备,其特征在于,还包括串行存在检测设备:
所述双端口存储器控制器ASIC从所述串行存在检测设备读取存储介质配置;
所述存储介质芯片的所述配置基于所述存储介质配置。
10.根据权利要求9所述的设备,其特征在于,所述存储介质配置包括存储介质类型、存储介质容量、存储介质速度或存储介质芯片数量中的至少一个。
11.根据权利要求1至10中任一项所述的设备,其特征在于,所述双端口存储器控制器ASIC还用于:
存储存储器使用分配数据,所述存储器使用分配数据指示所述RAM容量的所述第一部分分配给所述第一计算主机并且所述RAM容量的所述第二部分分配给所述第二计算主机;
响应于设备电源循环或重置事件:
检索所述存储器使用分配数据;
恢复将所述RAM容量的所述第一部分分配给所述第一计算主机以及将所述RAM容量的所述第二部分分配给所述第二计算主机,以响应于所述设备电源循环或重置事件而提供持久配置。
12.一种访问计算机存储器的方法,其特征在于,包括:
在双端口存储器模块的双端口存储器控制器专用集成电路(application-specificintegrated circuit,ASIC)的管理端口处接收模块配置请求,所述双端口存储器模块通过第一端口耦合到第一计算主机,并通过第二端口耦合到第二计算主机;
响应于接收到所述模块配置请求,将RAM容量的第一部分分配给所述第一计算主机并将所述RAM容量的第二部分分配给所述第二计算主机。
13.根据权利要求12所述的方法,其特征在于,还包括通过所述双端口存储器控制器ASIC处的管理端口从配置管理或组合器服务器接收模块配置和管理数据,根据接收到的所述模块配置和管理数据将所述RAM容量的所述第一部分分配给所述第一计算主机并将所述RAM容量的所述第二部分分配给所述第二计算主机。
14.根据权利要求13所述的方法,其特征在于,多个存储介质芯片包括DRAM、SRAM、HBM、STT-MRAM或PCM中的至少一种。
15.根据权利要求12至14中任一项所述的方法,其特征在于,所述双端口存储器控制器ASIC还包括协议无关多通道连接器,所述协议无关多通道连接器用于:
将所述第一接口端口耦合到所述第一计算主机;
将所述第二接口端口耦合到所述第二计算主机;
将所述管理端口耦合到所述配置管理或组合器服务器。
16.根据权利要求12至15中任一项所述的方法,其特征在于,所述协议无关多通道连接器包括符合SF-TA-1002的PCB连接器。
17.根据权利要求12至16中任一项所述的方法,其特征在于,利用存储器语义LOAD(READ)和STORE(WRITE)命令,所述第一计算主机访问所述RAM容量的所述第一部分并且所述第二计算主机访问所述RAM容量的所述第二部分。
18.根据权利要求12至17中任一项所述的方法,其特征在于,还包括:
在由用于访问协议通信的多个差分存储器通道组成的串行和解串器(serial anddeserializer,SerDes)端口上接收数据。
19.根据权利要求12至18中任一项所述的方法,其特征在于,还包括在所述双端口存储器控制器ASIC处配置所述存储介质芯片以供所述第一计算主机和所述第二计算主机访问。
20.根据权利要求19所述的方法,其特征在于,还包括在所述双端口存储器控制器ASIC处从串行存在检测设备读取存储介质配置,所述存储介质芯片的所述配置基于所述存储介质配置。
21.根据权利要求12至20中任一项所述的方法,其特征在于,所述存储介质配置包括存储介质类型、存储介质容量、存储介质速度或存储介质芯片数量中的至少一个。
22.根据权利要求12至21中任一项所述的方法,其特征在于,还包括:
存储存储器使用分配数据,所述存储器使用分配数据指示所述RAM容量的所述第一部分分配给所述第一计算主机并且所述RAM容量的所述第二部分分配给所述第二计算主机;
响应于设备电源循环或重置事件:
检索所述存储器使用分配数据;
恢复将所述RAM容量的所述第一部分分配给所述第一计算主机以及将所述RAM容量的所述第二部分分配给所述第二计算主机,以响应于所述设备电源循环或重置事件而提供持久配置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2021/018839 WO2022177573A1 (en) | 2021-02-19 | 2021-02-19 | Dual-port memory module design for composable computing |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116710905A true CN116710905A (zh) | 2023-09-05 |
Family
ID=74875307
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180090222.5A Pending CN116710905A (zh) | 2021-02-19 | 2021-02-19 | 适用于可组合计算的双端口存储器模块设计 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230350795A1 (zh) |
EP (1) | EP4278268A1 (zh) |
CN (1) | CN116710905A (zh) |
WO (1) | WO2022177573A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116319923B (zh) * | 2023-05-11 | 2023-09-12 | 三亚明熹一品信息技术服务有限公司 | 一种定制健康机器人多路采集信号的双网口控制系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070260841A1 (en) * | 2006-05-02 | 2007-11-08 | Hampel Craig E | Memory module with reduced access granularity |
US20190042511A1 (en) * | 2018-06-29 | 2019-02-07 | Intel Corporation | Non volatile memory module for rack implementations |
-
2021
- 2021-02-19 WO PCT/US2021/018839 patent/WO2022177573A1/en active Application Filing
- 2021-02-19 CN CN202180090222.5A patent/CN116710905A/zh active Pending
- 2021-02-19 EP EP21712310.8A patent/EP4278268A1/en active Pending
-
2023
- 2023-07-11 US US18/350,042 patent/US20230350795A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4278268A1 (en) | 2023-11-22 |
US20230350795A1 (en) | 2023-11-02 |
WO2022177573A1 (en) | 2022-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11755486B2 (en) | Shared buffered memory routing | |
TWI740897B (zh) | 具有窄帶寬中繼器通道的記憶體子系統 | |
US11317510B2 (en) | Load reduced memory module | |
US10725957B1 (en) | Uniform memory access architecture | |
US8930647B1 (en) | Multiple class memory systems | |
DE112013003248B4 (de) | Steuern einer physischen Verbindung von einem ersten Protokoll unter Verwendung einer erweiterten Funktionsstruktur eines zweiten Protokolls | |
US10163508B2 (en) | Supporting multiple memory types in a memory slot | |
US7895374B2 (en) | Dynamic segment sparing and repair in a memory system | |
TWI795354B (zh) | 動態分配記憶體的方法、裝置及系統 | |
US7952944B2 (en) | System for providing on-die termination of a control signal bus | |
US20100005214A1 (en) | Enhancing bus efficiency in a memory system | |
MX2012005934A (es) | Disco de estado solido (ssd) multi-interfaz, metodo de procesamiento y sistema del mismo. | |
US20240020247A1 (en) | Mechanism to autonomously manage ssds in an array | |
US20230350795A1 (en) | Dual-port memory module design for composable computing | |
CN117616406A (zh) | 用于管芯到管芯互连的边带接口 | |
US20190065272A1 (en) | Connecting accelerator resources using a switch | |
TW202016746A (zh) | 解聚電腦系統 | |
EP3822796B1 (en) | Memory interleaving method and device | |
US20220012173A1 (en) | Flexible configuration of memory module data width | |
US20150106547A1 (en) | Distributed memory systems and methods | |
US10216655B2 (en) | Memory expansion apparatus includes CPU-side protocol processor connected through parallel interface to memory-side protocol processor connected through serial link | |
EP4210099A1 (en) | Package routing for crosstalk reduction in high frequency communication | |
US20220229790A1 (en) | Buffer communication for data buffers supporting multiple pseudo channels | |
US20190303316A1 (en) | Hardware based virtual memory management | |
CN115858438A (zh) | 用于存储器模块数据宽度的灵活配置的使能逻辑 |
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 |