存储器模块中独立受控的虚拟存储器设备的制作方法

文档序号:6750002阅读:140来源:国知局
专利名称:存储器模块中独立受控的虚拟存储器设备的制作方法
技术领域
本发明实施例涉及存储器模块,并且具体地,涉及被配置为允许包括一个或多个存储器芯片的单独虚拟存储器设备的独立控制的存储器模块。
背景技术
在现代计算机系统中,对于存储器容量和带宽的需求保持增长。微处理器的近来的性能扩展取决于增加每芯片内核的数量,并且多核和很多内核的单芯片多处理器 (“CMP”)通过每处理器多个存储器控制器而要求甚至更高的存储器带宽和容量。因此,主存储器模块的功率预算变得与当前计算机系统中的处理器的功率预算相似,或者甚至高于当前计算机系统中的处理器的功率预算。然而,典型的存储器模块是能量低效的。例如,每存储器访问激活太多比特,并且被访问的多数比特在未使用的情况下被存储回去,浪费了动态功率。通过利用访问模式的局部性,可以通过编译器或存储器控制器组合多个时间上邻近的存储器访问,以便每存储器激活使用更多的比特,但这些努力在具有不规则访问模式的应用中获得有限的成功。由于来自多个线程的独立存储器访问请求是交错的,因此这种方法的效率受到一般应用中的存储器访问的随机性质的限制并且在CMP存储器系统中甚至恶化。期望的是在不明显地牺牲系统性能的情况下节省能量的使得能够对存储在存储器系统中的信息进行访问的存储器系统。

发明内容
本发明的各个实施例涉及多核存储器模块。在一个实施例中,存储器模块包括至少一个虚拟存储器设备以及电子地连接到该至少一个虚拟存储器设备和存储器控制器的多路分配器(demultiplexer)寄存器。多路分配器寄存器从存储器控制器接收标识该至少一个虚拟存储器设备之一的命令,且将该命令发送到该命令标识的虚拟存储器设备。该至少一个虚拟存储器设备中的每一个包括至少一个存储器芯片。


图IA示出具有八个存储器芯片的存储器模块的等距视图。图IB示出电路板上安装的存储器模块和存储器控制器的等距视图。图2示出构成存储器芯片的八个存储体(bank)的示意性表示。图3A示出传统存储器模块的示意性表示。图;3B示出将命令广播到传统存储器模块的所有存储器芯片的示例。图4A示出根据本发明实施例配置的单个多核存储器模块的等距视图。图4B示出根据本发明实施例的电路板上安装的多核存储器模块和存储器控制器的等距视图。图5A示出根据本发明的实施例配置的多核、双列直插(dual in-line)存储器模块的一般示意性表示。图5B示出根据本发明的某些实施例配置的第一多路分配器寄存器的示意性表示。图5C-D示出根据本发明的其他实施例配置的第二多路分配器寄存器的示意性表示。图6A-6D示出根据本发明的实施例配置的多核、双列直插存储器模块和两个相关的多路分配器寄存器的第一示例的示意性表示。图7A-7D示出根据本发明的实施例配置的多核、双列直插存储器模块和两个相关的多路分配器寄存器的第二示例的示意性表示。图8示出根据本发明的实施例的配置成支持纠错码的多核、双列直插存储器模块的示意性表示。图9示出根据本发明的实施例的用于控制包含至少一个虚拟存储器设备的存储器模块的方法的控制流程图。
具体实施例方式本发明的各种实施例涉及多核存储器模块,该存储器模块设计为在对系统性能具有较小影响的情况下改善存储器系统的能量效率。存储器模块包括存储器芯片,存储器芯片被划分成称为“虚拟存储器设备”(“VMD”)的一个或多个存储器芯片的组。存储器芯片可以是动态随机存取存储器(“DRAM”)芯片。每个VMD具有其自己的数据路径且可以以时分复用的方式通过命令总线接收分离的存储器请求。结果,与传统存储器模块相比,每存储器访问涉及更少的存储器芯片,并且更少的比特被存储回去。存储器芯片可以不经任何修改地使用,且几乎没有功能性变化被添加到存储器模块寄存器以向每个VMD提供不同的命令。详细描述被如下组织。在第一子部分中描述传统存储器模块和相关的能量低效的一般描述。在第二子部分中提供存储器模块实施例和能量效率增强的描述。^mmtmm诸器φ的能χ氏效
存储器模块典型地包括形成被称为“双列直插存储器模块”(“DIMM”)的存储单元的印制电路板上安装的若干DRAM芯片。图IA示出包括八个DRAM芯片的单个DIMM的等距视图。 然后在电路板上安装一个或多个DIMM,并且由存储器控制器控制该一个或多个DIMM。图IB 示出电路板106上安装的存储器102和存储器控制器104的等距视图。存储器102由插入四个DIMM插槽112-115的四个DIMM 108-111组成。存储器控制器104是计算机芯片或多核微处理器芯片的部分,其管理发送到DIMM 108-111以及从DIMM 108-111发送的命令和数据流,并且将存储器102与计算机系统的其他主要组件(例如中央处理单元)对接。每一 DIMM经由接口 118与存储器控制器104进行电通信。接口 118是载送从存储器控制器104 到存储器102的时钟信号和命令以及DMM 108-111与存储器控制器104之间的数据信号的总线。数据信号在DIMM 108-111中的DRAM芯片与存储器控制器104之间并行地发送。 接口 118可以支持单数据率(“SDR”)、双数据率(“DDR”)以及更高的数据率传送。SDR指的是每时钟周期发送数据一次,以及DDR指的是在计算机系统时钟信号的上升沿和下降沿都发送数据。存储器控制器104和DIMM 108-111可以被配置为根据SDR和DDR发送并且接收数据。在DDR中通过使用时钟的两个沿,数据信号在相同的极限频率操作,相比单数据率传输使得数据传输率加倍。DRAM芯片将比特存储在由晶体管和电容器组成的被称为DRAM存储器单元的结构中。单个DRAM芯片中存在数十亿个单元,以及可以以被称为“存储体”的许多二维阵列的二维布置组织这些单元。图2示出构成DRAM芯片200的标为0_7的八个存储体的示意性表示。如图2的示例中所示,每一存储体经由交叉信号线连接到行解码器、感测放大器以及列解码器。例如,存储体0经由与χ轴平行走线的信号线(例如信号线204)连接到行解码器202。存储体0还经由与y轴平行走线的信号线(例如信号线210)连接到感测放大器 206和列解码器208。存储器单元位于信号线交点处。例如,存储器单元212位于信号204 和210交叉的点处。从存储器控制器104发送到存储器102的命令包括READ(读)、WRITE(写)、ACTIVATE (激活)、REFRESH (刷新)和PRECHARGE (预充电)。命令由控制信号和地址信号组成。控制信号表示命令执行的操作,以及地址信号标识在其执行命令的DRAM芯片中的存储体地址和行地址或列地址。例如,ACTIVATE命令由激活控制信号和标识在DRAM芯片内的哪个存储体和行执行ACTIVATE命令的存储体地址和行地址组成。READ和WRITE命令由读取和写入控制信号以及标识在DRAM芯片中的哪个存储体和列执行READ和WRITE命令的存储体地址和列地址组成。在两个步骤中访问DRAM芯片200的存储体中存储的数据。首先,存储器控制器(未示出)发送指定DRAM芯片200的行地址和存储体地址的ACTIVATE命令。将典型地是存储体的8K比特或16K比特的行中的所有比特激活到存储体内的感测放大器中。其次,发送指定存储体地址和列地址的一个或多个READ/WRITE命令。数据总线的大小和突发长度确定每READ/WRITE事务传送的比特的数量。突发长度是控制在数据块的单个突发事务或高速传输中执行的READ/WRITE操作的数量的常见的存储器有关的基本输入/输出系统设置。典型地,将突发长度设置为4或8。当DRAM芯片接收到例如存储器READ请求时,芯片通过跨接口 118的信号线提供数据来进行响应。突发长度确定响应于存储器READ请求发送的数据块的大小。具有64比特宽的数据总线(即64个单端信号线或1 个差分信号线)和被配置为支持4的突发长度的DRAM芯片的存储器模块响应于来自存储器控制器的单个READ请求发送32字节(4x64比特=32字节)的数据块。另一方面,具有64比特宽的数据总线和被配置为支持8的突发长度的DRAM芯片的存储器模块响应于来自存储器控制器的单个READ 请求发送64字节(8x64比特=64字节)的数据块。当在DRAM芯片的同一存储体中的两个不同行中读取数据时,在可以读取第二行中的数据之前,必须写回第一行,对位线充电,以及通过PRECHARGE命令以及ACTIVATE命令锁存第二行。PRECHARGE命令将该行写回到DRAM存储体,因为ACTIVATE命令破坏性地读取,所以这是必须的。在READ命令、WRITE命令、ACTIVATE命令和PRECHARGE命令中,存储体地址由小数量的比特给出。在同一存储体中,在第一 ACTIVATE和第二 ACTIVATE命令之间,这些命令操作一般花费大约50ns。因此,除非ACTIVATE命令与PRECHARGE命令之间存在很多READ/WRITE命令,否则命令/地址/数据总线经常保持空闲。然而,如果在不同存储体中读取数据,则因为两个不同存储体之间的ACTIVATE至ACTIVATE时间短了大约8ns, 所以可以流水线化到不同存储体的命令。因此,通过交错不同存储体中的请求可以实现更高的吞吐量,当ACTIVATE和PRECHARGE命令对之间不存在很多READ/WRITE命令时尤其如此。图3A示出包括其中每一个具有8比特数据总线的8个DRAM芯片的传统DMM 300 的示意性表示。方向箭头302表示从存储器控制器(未示出)发送到称为寄存器304的可选设备的命令的分送。寄存器304位于存储器控制器与DRAM芯片之间的总线上。寄存器 304锁存来自存储器控制器的命令信号,然后以更好的信号质量和定时裕度将它们转发到每一 DRAM芯片,以减少存储器控制器上的电负载并且保持命令信号的稳定性。寄存器304 也可以缓冲命令,并且将时钟信号广播到DRAM芯片,以在每存储器控制器具有多个DIMM的系统中促进对不同DIMM的交叠访问。寄存器304通过总线将命令广播到所有8个DRAM芯片,如通过分支方向箭头306和308指示的那样。在其它传统存储器模块中,将命令广播到 DRAM芯片而不用寄存器304。图:3B示出传统DIMM操作的示例。如图的示例中所示,DIMM 300内的所有DRAM 芯片从存储器控制器接收相同命令,并且激活阴影区域310表示的每一 DRAM芯片中的相同行。结果,DIMM 300内的所有DRAM芯片充当具有更宽数据路径和更大行的单个DRAM芯片。如上参照图2描述的那样,DRAM芯片行的大小典型地是8(或16K比特)。为了读取缓存线或者将缓存线写入DIMM,将READ/WRITE命令广播到所有DRAM芯片,并且每一 DRAM 芯片激活相同行。换句话说,在由8个DRAM芯片组成的典型DIMM中,每一 DRAM芯片激活包括8K比特的相同行地址。因此,一次激活DI匪的DRAM单元的8x8K比特或64Κ比特,其大于待读取或写入的缓存线的大小。典型缓存线在64字节或512比特的量级。因此,因为典型地使用少于1%的激活的DRAM单元在一个缓存线中读取或写入READ和WRITE命令,所以对于单个READ或WRITE事务未使用超过99%的激活的DRAM单元,这是能量的低效使用。本发明的实施例
本发明的存储器模块实施例引入用于从存储器控制器接收命令的多路分配器寄存器 (“多路分配器寄存器”)。存储器芯片可以被一起分组为VMD且与多路分配器寄存器一起安装在印刷电路板上以形成称为“多核双列直插存储器模块”(“MCDMM”)的单个存储单元。 在某些实施例中,存储器芯片可以是DRAM芯片。图4A示出根据本发明的实施例配置的包含布置在电路板412上的8个DRAM芯片401-408和多路分配器寄存器410的单个MCDMM 400的等距视图。DRAM芯片410-408可以分组成包含一个或多个DRAM芯片的VMD,其示例在下面更详细地描述。与传统DMM类似,一个或多个MCDMM可以安装在电路板上且由存储器控制器控制。图4B示出根据本发明的实施例的安装在电路板似4上的存储器420和存储器控制器 422的等距视图。存储器420包含分别插入DIMM插槽430-433的MCDIMM 426-429 MCDIMM 400具有存储器控制器422和存储器模块426-429的多路分配器寄存器之间的接口 434。 接口 434包括从存储器控制器422到存储器420载送命令信号的总线以及在存储器控制器 422和存储器420之间载送数据信号的数据总线。在该架构中,存储器控制器422发送的命令并不广播到存储器420的DRAM芯片。相反,存储器控制器420向MCDMM似6_似9的多路分配器寄存器发送命令。MCDIMM似6-4四中的每一个包括使得多路分配器寄存器能够直接向VMD发送命令的命令总线。图5A示出根据本发明的实施例配置的MCDMM 500的一般示意性表示。MCDMM500包括/ 个VMD,其中/ 是代表MCDIMM 500中的VMD的数目的整数。8个VMD被表示在图 5A中且由VMDi标记,其中下标左是范围从0到/7-1的整数。MCDMM 500配置成使得每个 VMD经由信号线的分离集合连接到多路分配器寄存器502。下面参考图5B和5C描述用于多路分配器寄存器502的两个不同实施例。例如,VMDc^VMD1.VMDpVMDhpVMDt2和VMDyrf经由信号线集合504-509连接到多路分配器寄存器502。连接VMD和多路分配器寄存器502的组合的信号线集合被称为“命令总线”。每个VMD可以由一个或多个存储器芯片(诸如DRAM 芯片)组成。从存储器控制器(未示出)发送到MCDIMM 500的命令通过称为“命令路径”的信号线集合510到达多路分配器寄存器502。每个VMD在图5A中由双头箭头(诸如双头箭头511)标识的分离数据总线上与存储器控制器交换数据。图5B示出根据本发明的实施例配置的第一多路分配器寄存器525的示意性表示。 多路分配器寄存器525由寄存器512和多路分配器514组成。多路分配器寄存器525经由图5A的命令路径510从存储器控制器接收命令。命令是时分复用的。换句话说,每个命令被编码在比特流中,所述比特流在固定的持续时间时隙中从存储器控制器发送到多路分配器寄存器525。在图5B中,时分复用的命令的时隙由一系列矩形515-520表示。图5B中表示的每个命令包括意欲接收命令的图5A中的VMD的索引。命令被发送到多路分配器寄存器525的顺序由存储器控制器确定。因而,在图5B中,命令以该顺序出现。嵌入在命令中的是标识待执行的特定种类的操作的控制信号、标识存储体、行或列的地址信号以及标识由存储器控制器分配为接收命令的特定VMD的VMD地址。例如,当命令要被发送到特定 VMD时,存储器控制器创建包括标识该VMD的VMD地址的命令。一般而言,VMD地址是包含 Iog2/ 个比特的比特串。寄存器512是接收且临时存储命令的缓冲器。多路分配器514包括两个输入。如方向箭头522和5M所表示的,寄存器向一个输入发送命令且向另一输入发送VMD地址。多路分配器514使用VMD地址来选择通向由VMD地址标识的VMD的命令总线的信号线的适当集合。在图5B中,命令总线的信号线的η个集合中的6个通过对应于信号线集合504-509 的方向箭头504-509表示,且使用图5Α中示出的相关VMD的索引进行标记。注意,在处理后续命令之前,每个命令在特定时间间隔内被多路分配器寄存器525单独处理。例如参考图5Α-5Β,考虑存储器控制器向VMDiS送命令519。在图5Α中,命令左-1 519沿着命令路径510发送到多路分配器寄存器525。如图5Β所示,寄存器512接收且临时存储命令A-I 519,且VMD地址和命令被发送到多路分配器514,其然后选择信号线的适当集合506来向图5Α中的VMDiS送命令519。在发送命令519之后,下一命令1 518以类似的方式被处理。如图5B所示,多路分配器寄存器525可选地包括与每个信号线集合相关的计数器。当VMD的DRAM芯片不能支持与缓存线的READ或WRITE事务相关的长突发长度时,可能需要计数器。多路分配器寄存器将缓存线划分为缓存线片段且将命令转换为多个命令,每个命令对应于缓存线片段。因而,由计数器发送的对应命令在发送到VMD的每个缓存线片段之前。例如,当不能将VMD的一个或多个DRAM芯片的突发长度设置得足够长以覆盖缓存线时,计数器将列级别命令(例如READ或WRITE)转换为用于每一缓存线片段的若干READ/ WRITE命令,从而可以分离地READ每一缓存线片段或将每一缓存线片段WRITEN到DRAM芯片。每一计数器包括跟踪为划分的缓存线生成的命令的数量的计数设备。计数器执行的转换节省了来自存储器控制器的命令带宽。图5C示出根据本发明的实施例配置的第二多路分配器寄存器527的示意性表示。 多路分配器寄存器527包含标为0至/7-1的/7个命令选择器以及广播总线528,对于图5A 中示出的《个VMD中的每一个都有一个命令选择器。如上面参考图5B所描述的,存储器控制器在命令路径510上向多路分配器寄存器527发送时分复用命令515-520。命令选择器经由支路529-534电子地连接到广播总线528,且每个命令选择器经由命令总线中的某个信号线集合连接到VMD之一。在图5C中,命令总线中的信号线的η个集合中的6个由对应于信号线集合504-509的方向箭头504-509表示且使用图5Α示出的相关VMD的索引进行标记。如图5C所示,每个命令被广播到所有的/7个命令选择器。每个命令选择器配置成提取嵌入在命令中的VMD地址以确定命令是否要被转发到对应的VMD或命令是否被寻址到不同VMD,在命令被寻址到不同VMD的情况下,命令被丢弃。因而,对于广播到所有个命令选择器的每个命令而言,该命令仅被命令选择器之一发送到对应的VMD。例如,多路分配器寄存器527接收命令/7-2 520且将其广播到所有/7个命令选择器0至/7-1。然而,因为命令 η-2 520包括VMDyrf的地址,所以命令选择器/7-2通过信号线集合508将命令/7-2 520发送到VMDyrf且其他命令选择器丢弃命令/7-2 520。注意,在处理后续命令之前,每个命令在特定时间间隔内被多路分配器寄存器527单独处理。图5D示出根据本发明的实施例配置的示例性命令选择器/7-2的示意性表示。其他的/7-1个命令选择器被类似配置。命令选择器/7-2包含AND (与)门530、寄存器/计数器532以及随机存取存储器(“RAM”)定时控制534。命令在支路533上被输入到命令选择器/7-1。AND门530提取嵌入在每个命令中的VMD地址且接收系统时钟信号。AND门530配置成在提取的VMD地址匹配对应的VMDn_2的地址时向寄存器/计数器532发送选择信号。 寄存器/计数器接收时钟信号以确定寄存器/计数器何时锁存命令,且可以配置成在每个上升和/或下降时钟沿对选择信号执行动作。寄存器/计数器532是在从AND门530接收到选择信号时临时存储命令且向对应的VMDyrf发送命令的缓冲器。寄存器/计数器532还包括如上面参考图5B所描述的执行缓存线和命令划分的计数器。RAM定时控制534控制寄存器/计数器532的计数器部分。一般而言,AND门在所有输入信号对应于比特“1”时输出对应于比特“1”的信号且在输入信号中的至少一个对应于比特“0”时输出对应于比特“0”的信号,其中比特“1”和 “0”可以分别代表信号的高和低电压。命令选择器0至/7-1的AND门可以包括某些输入信号线上的反相器。反相器将与比特“0”相关的信号转变成与比特“ 1,,相关的信号且反之亦然。AND门包括某些输入信号线上的反相器以将代表对应VMD的VMD地址转变成包含全“1” 比特的比特流。AND门然后向寄存器/计数器532输出对应于比特“1”的选择信号。例如, 假设VMD _2的VMD地址包含比特流1L··· 1101。AND门530包括反相器536,其反转在线538 上进入AND门530的信号的电压。因而,如图5D所示,当嵌入在命令中的VMD地址匹配地址1Ρ··1101时,地址被转变成11··· 1111,且AND门530向寄存器/计数器532输出代表比特“1”的选择信号,当由时钟指示时,寄存器/计数器532锁存命令到信号线集合508。对于其他地址,进入AND门530的比特流包括至少一个“0”比特,且AND门530不输出信号或者输出对应于比特“0”的低信号。因而,寄存器/计数器532不锁存命令到信号线集合 508。
下面参考图6至8描述若干不同的MCDIMM实施例。每个实施例代表不同的多路分配器寄存器和命令总线配置且绝非意欲穷尽可以根据本发明的实施例配置的不同多路分配器寄存器和命令总线的数目。图6A-6B分别示出根据本发明的实施例配置的MCDIMM 600和相关的多路分配器寄存器602的示意性表示。如图6A所示,MCDIMM 600包括8个VMD,每个VMD包含标记为 1-8的单个DRAM芯片。命令总线由连接DRAM 1-8的每个与多路分配器寄存器602的信号线的八个集合604-611组成。命令在命令路径612上从存储器控制器(未示出)发送到多路分配器寄存器602。根据Iog2/ ,其中等于8,DRAM 1_8的每个可以被分配三比特VMD地址000、001、010、011、100、101、110和111中的一个,它们被包括在从存储器控制器发送到多路分配器寄存器602的命令中。DRAM芯片1-8的每个通过命令总线接收不同命令且经由如双头箭头(诸如双头箭头613)所表示的其自己的数据总线独立于其他DRAM芯片传输数据。在某些实施例中,图6B的多路分配器寄存器602包含寄存器614和多路分配器 616。存储器控制器将每个命令准备成具有对应于要接收该命令的DRAM芯片的VMD地址。 如图6B的示例中所示,每个命令被时分复用且由标记有与DRAM芯片1-8之一相关的整数的矩形表示。寄存器614串行地接收每个命令,读取VMD地址,且如方向箭头618和620所示,分别向多路分配器616的分离的输入发送VMD地址和命令。多路分配器616使用VMD 地址来选择载送命令到VMD的信号线的合适集合604-611。多路分配器寄存器602可选地包括计数器,当VMD不能支持长突发缓存线时可以实施该计数器。发送命令到MCDIMM 600的示例开始于存储器控制器沿命令路径612向多路分配器寄存器602发送意欲用于DRAM芯片3的命令。如图6B所示,寄存器614接收命令3 624 且沿着信号线618和620向多路分配器716发送DRAM芯片3的VMD地址和命令。基于VMD 地址,多路分配器616选择信号线集合606以发送命令到DRAM芯片3。在其他实施例中,图6C的多路分配器寄存器602包含标为0_7的8个命令选择器。每个命令被广播到所有7个命令选择器。每个命令选择器配置成提取嵌入在命令中的 VMD地址以确定命令是否要被转发到对应VMD或者命令是否被寻址到不同VMD且被丢弃。 例如,图6C的多路分配器寄存器602接收命令3且通过广播总线6 将其广播到所有7个命令选择器。然而,因为命令3 6 包括VMD3的地址,所以命令选择器3在信号线集合607 上向VMD3S送命令3 624,且其他命令选择器丢弃命令3 624。图6D示出根据本发明的实施例配置的命令选择器3的示意性表示。命令选择器 3包含AND门628、寄存器/计数器630和RAM定时控制632。其他命令选择器被类似地配置。命令在支路634上被输入到命令选择器3。AND门6 提取每个命令的VMD地址部分且确定何时选择寄存器/计数器630。当VMD地址被输入到AND门6 时,反相器636对在线638上进入AND门6 的比特值进行反相。因而,当嵌入在命令中的VMD地址匹配VMD2 的三比特地址011时,该地址被转变成111,且AND门6 输出对应于比特“1”的选择信号, 否则,没有选择信号被发送到寄存器/计数器630。时钟信号也被输入到寄存器/计数器 630,使得寄存器/计数器630在时钟信号的上升和/或下降沿锁存命令。在图6A-6B的示例MCDIMM 600中,每存储器访问请求仅涉及一个DRAM芯片。DRAM 芯片的阴影区域代表与不同命令相关的不同独立存储器请求。每个DRAM芯片通过命令总线接收命令且独立地使用其自己的数据总线传输数据。因而较少的比特被激活,节省了用于激活和预充电的能量。然而,与传统DIMM相比,因为数据总线大小小于传统DIMM中的数据总线大小,可能需要更多的时间来传送数据。为了传输数据,数据可以被划分成串行化的较小数据部分,其中每个部分单独地从VMD发送到存储器控制器。然而,与从传统DMM向存储器控制器发送数据相比,串行化数据扩展了发送数据需要的时间量。该附加的串行化延时问题可能对于系统性能具有不利影响。串行化延时问题可以通过将MCDIMM配置成具有包含两个或更多DRAM芯片的VMD来缓解。图7A-7B示出根据本发明的实施例配置的MCDIMM 700和相关的多路分配器寄存器702的示意性表示。如图7A所示,MCDIMM 700包括由VMDi标识的4个VMD,其中k是范围从1至4的整数。每个VMD包含2个DRAM芯片。命令总线由连接每个VMD到多路分配器寄存器702的信号线的四个集合704-707组成。命令沿着命令路径708从存储器控制器 (未示出)发送到多路分配器寄存器702。根据Iog2/ ,其中等于4,每个VMD可以被分配两比特VMD地址00、01、10和11之一,这些地址被包括在命令中以标识意欲接收该命令的 VMD。每个VMD通过命令总线接收不同的命令且经由双头箭头(诸如双头箭头709 )所表示的其自己的数据总线独立于其他VMD传输数据。在图7B中,多路分配器寄存器702包含寄存器710和多路分配器712。每个命令被时分复用且由标记有标识MCDIMM 700中的VMD之一的整数的矩形表示。寄存器701串行地接收每个命令,读取DRAM地址,且分别沿着信号线714和716将DRAM地址和命令发送到多路分配器712。多路分配器712使用VMD地址在信号线集合704-707中的合适集合上向VMD发送命令。在图7C中,多路分配器寄存器702包含标为0_3的4个命令选择器。每个命令通过广播总线718被广播到所有4个命令选择器,命令选择器提取嵌入在命令中的VMD地址以确定命令是否要被转发到对应VMD或者命令是否要被丢弃。图7D示出根据本发明的实施例配置的命令选择器2的示意性表示。命令选择器 2包含AND门720、寄存器/计数器722以及RAM定时控制724。命令在支路7 上被输入到命令选择器2。AND门720提取每个命令的VMD地址部分以确定何时选择寄存器/计数器722。当VMD地址匹配两比特VMD地址10时,该地址被转变成11,且AND门720向寄存器/计数器722输出对应于比特“1”的选择信号,否则没有选择信号被发送到寄存器/计数器722且命令被丢弃。输入到寄存器/计数器722的时钟信号在时钟信号的上升和/或下降沿锁存命令。在图7A-7B的示例MCDMM 700中,每存储器访问请求涉及由DRAM芯片的等同地画阴影的区域表示的两个DRAM芯片。每个VMD的DRAM芯片通过命令总线接收命令且独立地使用相关数据总线传输数据。因而,和传统DI匪相比,较少的比特被激活,但是与MCDI匪 600类似,串行化问题仍可能发生,且和传统DIMM相比可能需要更多的时间来传输该相同量的数据。注意,当需要多个突发来写缓存线时,多路分配器寄存器702也可选地包括计数
οDRAM芯片还可以被分组在一起以支持纠错码(“ECC”)以便保护数据和数据传输免受软错误,软错误通常是各个存储器单元的破坏。典型地可以通过针对数据的每8个比特添加ECC比特(通常通过并行地访问9的倍数的DRAM芯片而不是8的倍数的DRAM芯片(a multiple of 8 DRAM chips))来实施ECC。因而,在某些实施例中,各个DRAM芯片可以配置有附加数据单元和在9比特数据路径而不是8比特数据路径上输出的总线比特。在其他实施例中,一部分芯片地址范围可以专用于ECC比特且多路分配器寄存器的相同命令转换特征可用于按组传输数据和ECC比特。在另外的其他实施例中,分离的较低存储容量DRAM芯片可以与每VMD的多个DRAM 芯片配对。图8示出根据本发明的实施例的配置成支持ECC的MCDIMM 800的示意性表示。 如图8的示例所示,MCDIMM 800包括通过命令路径804从存储器控制器(未示出)接收命令的多路分配器寄存器802且包括含有四个信号线集合806-809的命令总线。每个信号线集合向每个VMD载送命令。MCDIMM 800几乎与MCDIMM 700相同,除了每个VMD包括附加的小容量DRAM芯片。例如,VMD2包括用于存储数据的两个常规DRAM芯片810和811以及用于存储ECC比特的附加的相对较小存储容量的DRAM芯片812。每个VMD的数据和ECC比特可以在数据总线上被单独读出。图9示出根据本发明的实施例的用于控制包括至少一个虚拟存储器设备的存储器模块的方法的控制流程图。在步骤901,存储器控制器准备要由存储器模块的VMD之一接收的命令,方式是通过在该命令中编码该VMD的分配的地址。在步骤902,存储器控制器将命令发送到存储器模块的多路分配器寄存器。如上面参考图5A所描述的,多路分配器寄存器通过命令路径接收命令。在步骤903,多路分配器寄存器包括寄存器,所述寄存器读取命令的VMD地址且确定哪个VMD要接收命令,如上面参考图5B所描述的。在步骤904,寄存器向多路分配器发送命令和地址,多路分配器基于该地址选择命令总线中的信号线的合适集合,在该信号线的合适集合上放置发送到VMD的命令,如上面参考图5A-5B所描述的。在步骤905,方法返回且针对下一存储器请求重复步骤901-904。为了解释的目的,前面的描述使用特定词汇来提供本发明的透彻理解。然而,本领域技术人员应理解,为了实践本发明,并不需要具体细节。给出本发明具体实施例的前面描述,目的是进行说明和描述。它们并非意欲穷尽本发明或者将其限制为所公开的精确形式。 显然,根据以上教导,很多修改和变化是可能的。示出并且描述实施例,以最佳地解释本发明的原理及其实际应用,由此使得本领域其他技术人员能够最佳地利用本发明以及具有适于所考虑的特定使用的各个修改的各个实施例。本发明的范围意欲由所附权利要求及其等同物所定义。
权利要求
1.一种存储器模块(500),包含至少一个虚拟存储器设备,其包括至少一个存储器芯片;以及多路分配器寄存器(502),其电子地连接到该至少一个虚拟存储器设备和存储器控制器,其中,该多路分配器寄存器从该存储器控制器接收标识该至少一个虚拟存储器设备之一的命令且将该命令发送到在该命令中标识的虚拟存储器设备。
2.根据权利要求1所述的存储器模块,其中该存储器芯片还包含动态随机存取存储器芯片(401-408)。
3.根据权利要求1所述的存储器模块,其中该命令以时分复用的方式从存储器控制器发送到多路分配器寄存器,使得在固定持续时间间隔(515-520)中每个命令到达多路分配器寄存器且被发送到命令中标识的虚拟存储器设备。
4.根据权利要求1所述的存储器模块,其中该多路分配器寄存器(525)还包含寄存器(512),其配置成接收命令且确定命令中标识的虚拟存储器设备的虚拟存储器设备地址;以及多路分配器(514),其配置成从该寄存器接收命令和地址且选择通过其向虚拟存储器设备发送该命令的一组信号。
5.根据权利要求4所述的存储器模块,其中该多路分配器寄存器502还包含计数器, 所述计数器将命令转换成多个命令以使得缓存线能够由多路分配器寄存器划分成缓存线片段,其中每个命令与缓存线片段之一相关且所述多个命令和相关的缓存线片段串行地被发送到虚拟存储器设备。
6.根据权利要求1所述的存储器模块,其中该多路分配器寄存器还包含至少一个命令选择器,每个命令选择器电子地连接到该至少一个虚拟存储器设备之一;以及广播总线(5观),其配置成向该至少一个命令选择器广播命令,其中每个命令选择器配置成提取嵌入在命令中的虚拟存储器设备地址且在该地址匹配连接的虚拟存储器设备的地址时向连接的虚拟存储器设备转发该命令,否则命令选择器丢弃该命令。
7.根据权利要求6所述的存储器模块,其中该命令选择器还包含AND门,其配置成从命令中提取虚拟存储器设备地址且在该地址匹配连接的虚拟存储器设备的地址时产生选择信号;寄存器/计数器,其配置成在AND门提供选择信号时接收命令并将其发送到连接的虚拟存储器设备,否则寄存器/计数器丢弃命令;以及RAM定时控制,其控制缓存线和命令到较小缓存线片段的划分。
8.根据权利要求1所述的存储器模块,其中电子地连接到该至少一个虚拟存储器设备的多路分配器寄存器(502)还包含布置在该多路分配器寄存器和该至少一个虚拟存储器设备之间的命令总线,其中该命令总线包含连接该至少一个虚拟存储器设备的每一个到多路分配器寄存器(502 )的信号线的分离集合(504-509 )。
9.根据权利要求1所述的存储器模块,还包含连接存储器控制器到多路分配器寄存器(502)的命令路径(510)。
10.根据权利要求1所述的存储器模块,其中该至少一个虚拟存储器设备还包含配置成存储纠错码信息的存储器芯片(812)。
11.一种用于控制包含至少一个虚拟存储器设备的存储器模块的方法,该方法包含 在存储器控制器处准备(901)命令以包括对应于该至少一个虚拟存储器设备之一的地址;将该命令从存储器控制器发送(902)到存储器模块的多路分配器寄存器; 确定(903)该至少一个虚拟存储器设备中的哪一个被该地址标识;以及发送(904)该命令到该地址标识的虚拟存储器设备。
12.根据权利要求11所述的方法,其中将该命令从存储器控制器发送到多路分配器寄存器还包含时分复用该命令以在固定持续时间间隔(515-520)中到达该多路分配器寄存器且被发送到该命令中标识的虚拟存储器设备。
13.根据权利要求1所述的方法,其中确定该至少一个虚拟存储器设备中的哪一个被该地址标识还包含读取嵌入在该命令中的虚拟存储器设备地址。
14.根据权利要求11所述的方法,其中该虚拟存储器设备还包含至少一个存储器芯片(401-408)。
15.根据权利要求11所述的方法,其中发送该命令到该地址标识的虚拟存储器设备还包含将该命令转换成多个命令;以及将该命令分配到缓存线片段。
全文摘要
本发明的各个实施例涉及多核存储器模块。在一个实施例中,存储器模块(500)包括至少一个虚拟存储器设备和布置在该至少一个虚拟存储器设备和存储器控制器之间的多路分配器寄存器(502)。该多路分配器寄存器从该存储器控制器接收标识该至少一个虚拟存储器设备之一的命令且将该命令发送到标识的虚拟存储器设备。另外,该至少一个虚拟存储器设备包括至少一个存储器芯片。
文档编号G11C8/00GK102177550SQ200880131469
公开日2011年9月7日 申请日期2008年8月8日 优先权日2008年8月8日
发明者B. 莱弗里奇 J., P. 朱皮 N., 安廷镐 申请人:惠普开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1