掌桥专利:专业的专利平台
掌桥专利
首页

内存模块、数据读写方法、装置、服务器和电子设备

文献发布时间:2023-06-28 06:30:04


内存模块、数据读写方法、装置、服务器和电子设备

技术领域

本申请涉及服务器技术领域,具体而言,涉及一种内存模块、数据读写方法、装置、服务器和电子设备。

背景技术

服务器作为一种高端计算机,具有强大的数据运算、分析和存储能力。随着云计算、大数据、元宇宙等业务的不断发展,需要进一步挖掘服务器的潜力。

CPU(Central Processing Unit,中央处理器)作为服务器的核心,始终与DIMM(Dual Inline Memory Module,双列直插内存模块)之间保持高速、密切的通信。由于DDR(Double Data Rate,双倍速率)颗粒的存储速率迟迟未有较大的突破,不能匹配CPU强大的运算速率,逐渐成为提升整体性能的一个瓶颈。虽然DDR5 DIMM的数据率有4800MT/s(Million Times per second,百万次每秒),依然无法匹配和发挥出CPU最强的计算效力。

为了进一步提高整体性能,就需要在CPU中集成更多的IMC(Integrated MemoryController,内存控制电路),同时在CPU外面连接更多的DIMM。例如:某型号CPU内部集成了4个IMC,每一个IMC可以控制2个内存通道,每一个内存通道又可以连接2个DIMM(Rank0和Rank1),所以该型号CPU最多可以连接16个DIMM。再例如某型号CPU内部集成了6个IMC,每一个IMC可以控制2个内存通道,每一个内存通道又可以连接2个DIMM,所以该型号CPU外部最多可以连接24个DIMM。

随着CPU外接DIMM的增多,服务器主板上将会布局更多的DIMM内存插槽,这就需要扩大主板的面积、增加主板的成本。

发明内容

本申请提供一种内存模块、数据读写方法、装置、服务器和电子设备,用以解决现有技术中通过布局更多的DIMM内存插槽来接入更多的DIMM,需要扩大主板面积的技术问题。

本申请提供一种内存模块,包括寄存器时钟驱动器、多个内存通道,以及各个内存通道对应的数据选择器和缓存器;所述内存通道包括多个内存列;

所述数据选择器的第一数据端与所述数据选择器对应的内存通道中的各个内存列连接,所述数据选择器的第二数据端与所述缓存器的第一数据端连接,所述数据选择器的控制输入端与所述寄存器时钟驱动器的第一控制输出端连接;

所述缓存器的第二数据端与处理器的数据读写端连接,所述缓存器的控制输入端与所述寄存器时钟驱动器的第二控制输出端连接;

所述寄存器时钟驱动器的控制输入端与所述处理器的控制输出端连接。

根据本申请提供的一种内存模块,所述内存模块包括2个内存通道;各个内存通道包括4个内存列。

根据本申请提供的一种内存模块,所述内存列包括多个内存芯片;所述内存芯片为双倍速率同步动态随机存储芯片。

根据本申请提供的一种内存模块,所述缓存器的最高读写速率是基于所述内存芯片的读写速率与所述内存通道的内存列数量确定的。

本申请还提供一种数据读写方法,应用于上述任一种所述内存模块,包括:

接收处理器发送的第一片选信号;

基于所述第一片选信号,从多个内存通道中确定数据写入通道,以及所述数据写入通道对应的内存列;

接收所述处理器发送的数据写入指令;

基于所述数据写入指令,控制数据选择器连接所述数据写入通道对应的内存列与缓存器;

控制所述缓存器将所述处理器发送的待写入数据存储至所述内存列中的内存芯片。

根据本申请提供的一种数据读取方法,所述将所述处理器发送的待写入数据存储至所述内存列中的内存芯片中之后,所述方法还包括:

接收所述处理器发送的第二片选信号;

基于所述第二片选信号,从多个内存通道中确定数据读取通道,以及所述数据读取通道对应的内存列;

接收所述处理器发送的数据读取指令;

基于所述数据读取指令,控制数据选择器连接所述数据读取通道对应的内存列与缓存器;

控制所述缓存器将所述内存列中内存芯片中的待读取数据发送至所述处理器。

本申请还提供一种服务器,包括控制板卡;所述控制板卡上配置有多个内存插槽;

所述内存插槽与上述任一项所述的内存模块插拔式连接。

根据本申请提供的一种服务器,所述服务器还包括:

处理器,设置于所述控制板卡上,与所述内存模块通信连接;

所述处理器的倍频系数是基于所述内存模块中内存通道的内存列数量确定的。

本申请还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述数据读写方法。

本申请还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述数据读写方法。

本申请提供的内存模块、数据读写方法、装置、服务器和电子设备,通过设置缓存器可以使高速工作的处理器与内存模块之间进行数据的协调和缓存;通过设置数据选择器,并将数据选择器和缓存器的数据端相连接,可以将缓存器发送的多个数据进行拆分并将拆分的各个数据同时发送至对应的内存通道,或者接收从内存通道发送的多个数据并将该多个数据进行合并发送至缓存器,提高了数据的读写效率;通过设置缓存器和数据选择器可以在内存通道中设置多个内存列,支持各个内存通道中外接更多的内存芯片,即相当于在增加数据存储需求的情况下,无需在服务器主板上布局更多的DIMM内存插槽来增加处理器外接DIMM的数量,服务器在有限的内存插槽下也能增加内存列和内存芯片,无需增加服务器主板面积即可提升服务器的数据读写效率,提高了数据读写效率,降低了服务器主板成本。

附图说明

为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请提供的内存模块的结构示意图之一;

图2是本申请提供的内存模块的结构示意图之二;

图3是本申请提供的数据读写方法的流程示意图;

图4是本申请提供的服务器的结构示意图;

图5是本申请提供的电子设备的结构示意图。

附图标记:

100:内存模块;110:寄存器时钟驱动器;120:内存通道;121:内存列;130:数据选择器;140:缓存器;

400:服务器;410:控制板卡;420:内存插槽;

510:处理器;520:通信接口;530:存储器;540:通信总线。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

需要说明的是,本申请中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

图1是本申请提供的内存模块的结构示意图之一;如图1所示,该内存模块100包括:

寄存器时钟驱动器110、多个内存通道120,以及各个内存通道120对应的数据选择器130和缓存器140;内存通道120包括多个内存列121;

数据选择器130的第一数据端与数据选择器130对应的内存通道120中的各个内存列121连接,数据选择器130的第二数据端与缓存器140的第一数据端连接,数据选择器130的控制输入端与寄存器时钟驱动器110的第一控制输出端连接;

缓存器140的第二数据端与处理器150的数据读写端连接,缓存器140的控制输入端与寄存器时钟驱动器110的第二控制输出端连接;

寄存器时钟驱动器110的控制输入端与处理器200的控制输出端连接。

具体地,寄存器时钟驱动器(Register Clock Driver,RCD)用于确定内存通道和内存列,以及控制数据选择器和缓存器使得处理器可以对内存模块进行数据读写。

内存通道(Channel)用于数据的传输,一个内存模块中可以包括多个独立的内存通道,以内存模块为DDR5 DIMM为例,一个DDR5DIMM中可以包括Channel A和Channel B这两个内存通道,其中,Channel A和Channel B相互独立。

各个内存通道内均包括多个内存列(Rank),例如,Channel A中可以包括Rank0、Rank1、Rank2和Rank3,Channel B中也可以包括Rank0、Rank1、Rank2和Rank3。

数据选择器(Multiplexer,MUX)用于接收缓存器发送的多个数据,并将该多个数据进行拆分,将拆分后的各个数据同时发送至对应的内存通道,或者接收从内存通道发送的多个数据并将该多个数据进行合并发送至缓存器。

缓存器(Buffer)包括输入缓存器和输出缓存器。输入缓存器用于将处理器发送的数据暂时存放,以便数据选择器将该数据取出;输出缓存器用于暂时存放数据选择器发送至处理器的数据。可以通过缓存器使高速工作的处理器与内存模块之间进行数据的协调和缓存,实现数据传送的同步。

其中,内存通道、数据选择器和缓存器的数量相同,且相互之间一一对应。

数据选择器的第一数据端与数据选择器对应的内存通道中的各个内存列连接,数据选择器的第二数据端与缓存器的第一数据端连接,缓存器的第二数据端与处理器的数据读写端连接。

第一数据端和第二数据端均用于传输数据。处理器可以在内存模块中写入数据,具体过程为通过数据读写端发送多个数据至缓存器,缓存器将该多个数据发送至数据选择器,数据选择器对多个数据进行拆分,并将拆分的各个数据发送至对应的内存通道中内存列的各个内存芯片中。

处理器还可以通过从内存模块中读取数据。具体过程为控制内存芯片发送多个数据至数据选择器,数据选择器将该多个数据进行合并,并将合并的数据发送至缓存器,缓存器将该合并的数据发送至处理器。

此外,寄存器时钟驱动器的第一控制输出端连接数据选择器的控制输入端,寄存器时钟驱动器的第二控制输出端连接缓存器的控制输入端;寄存器时钟驱动器的控制输入端与处理器的控制输出端连接。

处理器可以发送信号至寄存器时钟驱动器,该信号包括控制信号和地址信号,寄存器时钟驱动器基于该信号选定数据待发送的具体位置,该具体位置包括内存通道和内存列。进一步的,寄存器时钟驱动器控制数据选择器连接数据传输的内存通道对应的内存列与缓存器,并控制缓存器发送数据。

其中,寄存器时钟驱动器与数据选择器和缓存器可以是三个独立的设备,也可以结合在一起构成一个设备。

本申请实施例提供的内存模块,通过设置缓存器可以使高速工作的处理器与内存模块之间进行数据的协调和缓存;通过设置数据选择器,并将数据选择器和缓存器的数据端相连接,可以将缓存器发送的多个数据进行拆分并将拆分的各个数据同时发送至对应的内存通道,或者接收从内存通道发送的多个数据并将该多个数据进行合并发送至缓存器,提高了数据的读写效率;通过设置缓存器和数据选择器可以在内存通道中设置多个内存列,支持各个内存通道中外接更多的内存芯片,即相当于在增加数据存储需求的情况下,无需在服务器主板上布局更多的DIMM内存插槽来增加处理器外接DIMM的数量,服务器在有限的内存插槽下也能增加内存列和内存芯片,无需增加服务器主板面积即可提升服务器的数据读写效率,提高了数据读写效率,降低了服务器主板成本。

图2是本申请提供的内存模块的结构示意图之二;如图2所示,内存模块包括2个内存通道;各个内存通道包括4个内存列。

例如,2个内存通道为Channel A和Channel B,处理器为CPU,内存模块为DDR5DIMM。

Channel A中包括Rank0、Rank1、Rank2和Rank3,Channel B中也包括Rank0、Rank1、Rank2和Rank3。

与现有技术相比,本申请实施例将DDR5 DIMM扩容一倍,DDR5DIMM由原来的Rank0和Rank1升级成为Rank0、Rank1、Rank2和Rank3,从而实现物理上的内存条合二为一,能够减少服务器主板上DIMM内存插槽的数量。

进一步的,在DDR5 DIMM的Channel A和Channel B上各增加一个高速Buffer和一个MUX。其中,高速Buffer的一端连接CPU,另一端连接MUX。

CPU在读取DDR5 DIMM中的数据时,内存芯片可以将多个数据发送至MUX,MUX将该多个数据进行合并,并将合并的数据发送至高速Buffer,高速Buffer通过数据总线将该合并的数据发送至CPU。

CPU向DDR5 DIMM中写入数据时,CPU可以通过数据总线发送多个数据至高速Buffer,高速Buffer发送多个数据至MUX,MUX将该多个数据今次那个拆分,并将拆分的各个数据同时发送给Rank0、Rank1、Rank2和Rank3,从而提高了DIMM数据的写入速率。

本申请实施例提供的内存模块,通过将内存模块进行扩容,增加内存列的数量,可以在服务器主板不增加内存插槽的情况下,即可增加内存芯片,通过增加高速缓存器和数据选择器,可以提升数据的读写效率。

作为一种可选实施例,内存列包括多个内存芯片;内存芯片为双倍速率同步动态随机存储芯片。

具体地,内存芯片可以用于数据读取和写入,内存列中可以包括多个内存芯片。

内存芯片可以为双倍速率同步动态随机存储芯片(Double Data RateSynchronous Dynamic Random Access Memory,DDR SDRAM),数据的读取和写入可以通过双倍速率同步动态随机存储芯片独立进行,双倍速率同步动态随机存储芯片的数据的读取和写入速率可以与CPU的数据的读取和写入速率相同,数据传输效率高。

本申请实施例提供的内存模块,内存列包括多个内存芯片,内存芯片为双倍速率同步动态随机存储芯片,可以提高数据的读写效率。

作为一种可选实施例,缓存器的最高读写速率是基于内存芯片的读写速率与内存通道的内存列数量确定的。

可以将内存芯片的读写速率与内存通道的内存列数量相乘,得到缓存器的最高读写速率。

如图2所示,MUX与DDR5 DIMM之间的读写速率为图2中标记的“x1”,为了与该实施例中的DDR5 DIMM的读写速率匹配,缓存器的最高读写速率可达4倍的DDR5 DIMM通信速率,得到高速Buffer,CPU数据总线的读写速率可以倍频达到DDR5 DIMM频率的4倍。CPU使用4倍频与高速Buffer进行数据传输,即图2中标记的“x4”。图2的实施例可以将DDR5 DIMM的带宽提高4倍,提高了数据的读写效率。

以图2的实施例为例,CPU在读取DIMM中的数据时,内存芯片通过x1的读写速率发送数据至MUX,MUX合并数据并转发给高速Buffer,高速Buffer以x4的读写速率发送合并的数据至CPU,从而将DIMM带宽提高4倍。

CPU向DIMM中写入数据时,CPU以x4的读写速率发送数据至高速Buffer,高速Buffer发送数据至MUX,MUX将该数据拆分成4个数据,然后以x1的读写速率将4个数据同时发送给4个Rank,从而提高了DIMM数据的写入速率。

本申请实施例提供的内存模块,通过内存芯片的读写速率与内存通道的内存列数量可以确定缓存器的最高读写速率,将缓存器和处理器的读写速率设置成最高读写效率,可以最大限度地提升数据的读写效率。

图3是本申请提供的数据读写方法的流程示意图,如图3所示,数据读写方法可以应用于上述任一实施例提供的内存模块,该数据读写方法包括步骤310、步骤320、步骤330、步骤340和步骤350。

步骤310,接收处理器发送的第一片选信号。

步骤320,基于第一片选信号,从多个内存通道中确定数据写入通道,以及数据写入通道对应的内存列。

步骤330,接收处理器发送的数据写入指令。

步骤340,基于数据写入指令,控制数据选择器连接数据写入通道对应的内存列与缓存器。

步骤350,控制缓存器将处理器发送的待写入数据存储至内存列中的内存芯片。

具体地,本申请实施例提供的数据读写方法适用于终端设备,该终端设备包括各种具有数据读写功能的手持设备、车载设备、可穿戴设备、计算设备、服务器、元宇宙设备或其它处理设备,例如,手机、平板、台式笔记本以及可以运行应用程序的智能设备等。

本申请实施例的执行主体为寄存器时钟驱动器。

第一片选信号用于触发寄存器时钟驱动器确定数据写入通道,以及选择该数据写入通道对应的内存列。

数据写入指令包括操作命令码、地址码和奇偶校验码等指令。数据写入通道为待写入数据将要存储的内存通道。

处理器可以发送第一片选信号至寄存器时钟驱动器,寄存器时钟驱动器响应于该第一片选信号,确定数据写入通道,以及选择该数据写入通道的内存列。例如,寄存器时钟驱动器响应于该第一片选信号确定Channel A或Channel B,选择Channel A或Channel B的Rank0、Rank1、Rank2或Rank3。

处理器发送操作命令码、地址码和奇偶校验码等指令至寄存器时钟驱动器,寄存器时钟驱动器响应于该指令控制数据选择器连接已选定的内存通道、内存列、内存芯片和对应的缓存器,并控制缓存器将处理器发送的待写入数据存储至内存列中的内存芯片中。

本申请实施例提供的数据读写方法,根据第一片选信号可以从多个内存通道中确定数据写入通道,以及数据写入通道对应的内存列;根据数据写入指令,可以控制数据选择器连接数据写入通道对应的内存列与缓存器,可以将多个数据同步写入到各个内存芯片中,数据的写入效率高。

基于上述实施例,步骤350之后,该方法还包括:

接收处理器发送的第二片选信号;

基于第二片选信号,从多个内存通道中确定数据读取通道,以及数据读取通道对应的内存列;

接收处理器发送的数据读取指令;

基于数据读取指令,控制数据选择器连接数据读取通道对应的内存列与缓存器;

控制缓存器将内存列中内存芯片中的待读取数据发送至处理器。

具体地,第二片选信号用于触发寄存器时钟驱动器确定数据读取通道,以及选择该数据读取通道对应的内存列。

数据读取指令包括操作命令码、地址码和奇偶校验码等指令。数据读取通道为待读取数据所在的内存通道。

处理器可以发送第二片选信号至寄存器时钟驱动器,寄存器时钟驱动器响应于该第二片选信号,从多个内存通道中确定数据读取通道,以及确定该数据读取通道的内存列。

处理器发送操作命令码、地址码和奇偶校验码等指令至寄存器时钟驱动器,寄存器时钟驱动器响应于该指令,控制数据选择器连接已选定的内存通道、内存列、内存芯片和对应的缓存器,并控制缓存器将内存芯片中的待读取数据发送至处理器。

本申请实施例提供的数据读写方法,根据第二片选信号可以从多个内存通道中确定数据读取通道,以及数据读取通道对应的内存列;根据数据读取指令,可以控制数据选择器连接数据读取通道对应的内存列与缓存器,可以将多个数据进行合并并发送至处理器,数据的读取效率高。

图4是本申请提供的服务器的结构示意图,如图4所示,本申请实施例的服务器400包括控制板卡410;控制板卡410上配置有多个内存插槽420;内存插槽420与上述任一实施例提供的内存模块100插拔式连接。

具体地,服务器可以是提供各种服务的服务器,例如对用户利用终端设备所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户查询请求等数据进行分析等处理,并将处理结果(例如根据用户查询请求获取或生成的网页、信息或数据等)反馈给终端设备。

需要说明的是,图4中内存插槽的数量仅仅是示意性的。可以根据实现需要在控制板卡上配置任意数量的内存插槽。

基于上述实施例,服务器还包括:

处理器,设置于控制板卡上,与内存模块通信连接;

处理器的倍频系数是基于内存模块中内存通道的内存列数量确定的。

具体的,处理器的倍频系数可以与内存模块中内存通道的内存列数量的数值相同。例如内存模块中各个内存通道的内存列数量均为4,则处理器的倍频系数可设置为4,以使处理器达到最大读写速率,提高数据的读写效率。

本申请实施例提供的服务器可以实现上述数据读写方法,其具体的实施方式与前述方法实施方式一致,且可以达到相同的有益效果,此处不再赘述。

基于上述任一实施例,图5是本申请提供的电子设备的结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(Communications Interface)520、存储器(memory)530和通信总线540(Communication Bus),其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行数据读写方法,该方法包括:

接收处理器发送的第一片选信号;

基于第一片选信号,从多个内存通道中确定数据写入通道,以及数据写入通道对应的内存列;

接收处理器发送的数据写入指令;

基于数据写入指令,控制数据选择器连接数据写入通道对应的内存列与缓存器;

控制缓存器将处理器发送的待写入数据存储至内存列中的内存芯片。

此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

另一方面,本申请还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时可以实现上述各实施例提供的方法。

又一方面,本申请还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时可以实现上述各实施例提供的方法。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

技术分类

06120116016539