CN1902612A - 具有隐式到显示存储器命令扩展的带缓冲的存储器模块 - Google Patents
具有隐式到显示存储器命令扩展的带缓冲的存储器模块 Download PDFInfo
- Publication number
- CN1902612A CN1902612A CNA2004800403647A CN200480040364A CN1902612A CN 1902612 A CN1902612 A CN 1902612A CN A2004800403647 A CNA2004800403647 A CN A2004800403647A CN 200480040364 A CN200480040364 A CN 200480040364A CN 1902612 A CN1902612 A CN 1902612A
- Authority
- CN
- China
- Prior art keywords
- write
- command
- implicit
- memory module
- data
- 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.)
- Granted
Links
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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Dram (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Cylinder Crankcases Of Internal Combustion Engines (AREA)
- Communication Control (AREA)
- Information Transfer Systems (AREA)
Abstract
在实施方案之间包括了带缓冲的存储器模块一起使用的方法和装置。在示例性的系统中,存储器模块具有接收存储器命令和数据并且随后将那些命令通过分开的接口输送给物理存储器器件的缓冲器。所述缓冲器具有接收隐式存储器命令(即不包含全形存储器器件命令的命令)的能力,但另外指示存储器模块缓冲器形成一个或更多个全形存储器器件命令,以执行存储器操作。例如,使用指示存储器模块清除存储器的某一区域或在存储器中将一个区域拷贝到第二区域的命令,可以节省大量的存储器通道带宽。描述了其他实施方案并且主张了对它们的权利要求。
Description
发明领域
本发明一般地涉及存储器系统、组件和方法,并且更具体地,涉及带缓冲的存储器模块(buffered memory module)的功能性,所述带缓冲的存储器模块可以将隐式(implicit)命令扩展成指向存储器模块上的存储器器件的显式(explicit)命令。
背景
常规的计算机存储器子系统经常使用存储器模块来实现。计算机电路板装配有处理器,所述处理器具有集成的存储器控制器,或者耦合到分开的存储器控制器,所述存储器控制器通过存储器总线连接到一个或更多个存储器模块电气连接器(总线还可以连接到永久地安装在电路板上的附加的存储器)。根据插入电子连接器的存储器模块的数量和储存容量来配置系统存储器。
随着处理器速度已经增加,已经迫使存储器总线速度到了多点(常被称为“多分支(multi-drop)”)存储器总线模型(model)不再可行的程度。参照图1,目前的一个解决方案使用“点对点”存储器总线模型,所述总线模型采用带缓冲的存储器模块。在图1中,计算机系统100包括通过前端总线108与存储器控制器110通信的主机处理器105,所述存储器控制器110将主机处理器耦合到各种外设(除系统存储器外均未示出)。存储器控制器110通过高速点对点总线112与第一带缓冲的存储器模块120通信。当第二带缓冲的存储器模块130被包括在系统100中时,它与第一存储器模块120共享第二高速点对点总线122。额外的高速点对点总线和带缓冲的存储器模块,例如总线132和142以及存储器模块140和150,可以被链接在存储器模块130之后,以进一步增加系统存储器容量。
带缓冲的存储器模块140是典型的存储器模块。存储器模块缓冲器(MMB)146将模块140连接到主机端的存储器通道(channel)132和下游存储器通道142。多个存储器器件(示出动态随机访问存储器器件,或例如DRAM 144的“DRAM”)通过存储器器件总线(在图1中未示出)连接到存储器模块缓冲器146,用来为系统100提供可寻址的读/写存储器。
图2a和2b分别以顶视图和侧视图示出存储器模块140的双列直插式存储器模块(DIMM)实施方案的一个可能的物理外观。一组卡边缘连接器148为主机端和下游存储器通道提供电气连接、参考和电源电压、时钟信号等等。MMB 146位于模块140的一面的中央,每一侧各有4个DRAM器件144。还有10个DRAM器件占用模块140的反面。MMB 146管理关于DRAM的所有存储事务。
作为示例性的存储器传输,考虑处理器105需要访问对应于位于存储器模块140上的物理存储器的存储器地址的情况。存储器请求被发布(issue)到存储器控制器110,所述存储器控制器110随后在主机存储器通道112上发送出寻址到存储器模块140的命令。带缓冲的存储器模块120的MMB接收所述命令,如果必要的话对它重定时,并且在存储器通道122上将它重新发送到带缓冲的存储器模块130的MMB。带缓冲的存储器模块130的MMB紧接着接收所述命令,如果必要的话对它重定时,并且在存储器通道132上将它重新发送到存储器模块140上的MMB 146。MMB 146探测出命令是指向它的,对所述命令解码,并且将DRAM命令和信令传送到由该缓冲器控制的DRAM。
当由存储器模块140发布的命令是写命令时,所述命令包括写地址,并且伴有要写到该地址的数据。所述数据具有与存储器相同的“宽度”,其中宽度表示当对单个地址的写操作被发起时被储存的数据的位数。当由存储器模块140发布的命令是读命令时,所述命令包括读地址,并且期望存储器模块在几个时钟周期后返回从读地址读取的数据。
一些DRAM和模块缓冲器支持“突发写”和“突发读”操作。当支持突发操作(“Burst-Operation-Capable”)的DRAM接收到突发操作时,写和读地址被定义为多周期操作的起始地址。例如,在四个存储器宽度(four-memory-width)的突发写中,写数据在四个连续的时钟周期期间被提供给模块DRAM,并且期望每个DRAM将写数据储存在以写地址开始的四个连续地址中。在四个存储器宽度的突发读中,每个DRAM在四个连续时钟周期期间从四个连续地址读取数据并且传送所述数据。在这两种情况下,缓冲器146必须理解突发长度,以便在它的DRAM和主机端存储器通道132之间适当地引导突发数据。
附图简要说明
通过参考附图来阅读本公开可以最好地理解实施方案,其中:
图1示出现有技术计算机系统。
图2a和2b示出全缓冲双列直插式存储器模块(DIMM)的物理外观。
图3示意性地描述与两个分别的存储器器件组(bank)连接的两个存储器模块缓冲器。
图4根据本发明的实施方案,示出存储器模块缓冲器的内部体系结构。
图5示出能够响应隐式存储器命令的存储器模块缓冲器电路图。
实施方案详细说明
本说明详述使用带缓冲的存储器子系统来实现“隐式”存储器命令的各种计算机系统、存储器组件和方法。现有技术存储器访问命令可以被表征为“显式”存储器命令,因为每个命令包含DRAM所期望的全寻址和显式数据(如果命令是期望数据的命令)。尽管可以争论说突发操作包含针对除第一存储器宽度数据之外的所有数据的隐式寻址,但该寻址是显式的,因为它是全形(fully-formed)DRAM命令。在本申请的上下文中,“隐式”命令不包括全形DRAM命令,而取而代之的是指向存储器模块缓冲器的命令,指示存储器模块缓冲器形成一个或更多个全形DRAM命令以执行存储器操作。
可以以这种方式来开发带缓冲的存储器体系结构,从而为许多任务提高系统性能。在图1中,存储器通道112和/或前端总线108经常成为性能改善的瓶颈。当占用存储器通道112和处理器105的相对不重要的事务的数量减少时,开放额外的容量用于更重要的任务。例如,许多应用分配一块存储器并且期望该存储器被设置为某个状态,例如全0。如果可以指示存储器缓冲器一次,将所述存储器块设置为0状态,并且可以信任存储器缓冲器执行那样的操作,那么处理器不需要在软件中遍历(loop through)所述块,将0写入所述块的每个位置。处理器和主机存储器通道可以转移到更加复杂和多样化的任务,包括使用存储器通道来访问其他存储器模块。
另一个普遍的操作是从一个存储器位置到另一个的数据的块拷贝(block copy)。如果需要处理器“手动地”执行该操作,每个数据字(data word)必须经过主机存储器通道112两次。然而,在本发明的一些实施方案中,具有在同一存储器模块上的拷贝源(copy-from)和拷贝目标(copy-to)地址的块拷贝根本不需要占用主机存储器通道——如果在该模块上的缓冲器可以接受几个拷贝参数并且随后自己复制数据。
存在着隐式命令的许多其他的实施例,所述隐式命令对于本发明的实施方案是有用的,其中的一些将在更靠近本公开的结尾处被进一步研究。然而,对于理解现在将被介绍的硬件实施方案来说,这两个实施例足够了。
图3示出了能够利用MMB(例如图4的MMB 400)的部分存储器子系统配置的一般的电气示意图300。一个MMB 310通过它主机端的存储器通道(SB In和NB Out)连接到存储器控制器。第二MMB 320通过第二存储器通道连接到MMB 310(MMB 320的NB Out连接到MMB 310的NB In,并且MMB 310的SB Out连接到MMB 320的SB In)。其他MMB(未示出)可以连接到MMB 320的下游。
时钟缓冲器330创建时钟参考的多个复本,针对每个MMB有一个复本,并且将每个复本提供给各个MMB的RefClk输入。
MMB 310连接到存储器器件组340a-340i。产生DRAM地址/命令信号的两份拷贝来缓解总线负载问题。拷贝1被分发到存储器器件340a-340d,并且拷贝2被分发到存储器器件340e-340i。DRAM数据/选通信号总线的一部分被路由到每个存储器器件。例如,如图所示,DQ0:7和DS0:1(数据位0到7以及数据选通0和1)被路由到存储器器件340a,DQ8:15和DS1被路由到存储器器件340b,等等。存储器器件340e接收对应于在DQ0:63上提供的数据的ECC(纠错电路)数据的八位。
正如从图3可以意识到的,MMB 310具有对连接到存储器器件340a-340i的信号路径的独家访问权(sole access),并且MMB 320具有对连接到存储器器件350a-350i的信号路径的独家访问权。因此,从原则上来说,MMB的任一或两者能够与它们各自的存储器器件进行存储器事务,而其他通信量在南向/北向存储器通道上流动。
图4根据本发明的一些实施方案,示出存储器模块缓冲器400的框图。存储器模块缓冲器400维持很大数目的外部连接。到MMB 400的主机端连接包括参考时钟差分对输入端口和用于多达24个差分对的存储器通道端口,例如10个南向数据输入和14个北向输出。下游连接包括对应数目的差分对,例如10个用于南向数据输出和14个用于北向数据输入。存储器器件连接包括22位宽的DRAM地址/命令通道、存储器器件时钟控制(clocking)信号,以及具有18位数据选通信令的72位宽DRAM数据总线。各种缓冲器、触发器、接收器和驱动器便利了在这些连接上的信令,但是没有全部明确地示出,并且因为对于实施方案的理解不是关键,省略了对这些电路部件(element)的进一步描述。例如,时钟电路405包括锁相环、时钟复制器和驱动器等等,但这样的电路与现有技术中使用的电路没有不同。
剩下的已编号功能块将各自被依次描述。
传输缓冲器410通常从主机端存储器通道端口接收数据,并且在下游存储器信号端口重复输出该数据。在该实施例中,存储器通道端口比DRAM地址/命令端口和DRAM数据端口要窄得多(然而,在窄存储器通道上的时钟速率比DRAM端口上的时钟速率高得多)。因此,传输缓冲器410解复用沿着南向存储器通道传播的命令和数据。第二传输缓冲器420针对北向数据执行类似的重复功能,并且当读操作已被请求时,将来自复用器455的数据并入北向数据通道。
DRAM命令解码器/逻辑块430接收来自传输缓冲器的地址和命令,并且确定是否每个命令是指向缓冲器400的还是指向某个其他的缓冲器。当命令指向缓冲器400时,DRAM命令解码器/逻辑块430可以在DRAM通道上发起适当的信令,以执行被请求的命令。例如,如果命令是显式写命令,块430指引写数据累加器440接收来自传输缓冲器410的写数据,将写地址和命令加载到地址/命令缓冲器435,并且对将写地址和写数据驱动到DRAM器件的操作定时。对于显式读命令,读地址和命令被驱动到DRAM器件,并且读数据缓冲器450和复用器455被使能(enable),以将读数据传输回存储器控制器。
既然缓冲器400已经给DRAM器件提供了地址、命令和写数据,并且从DRAM器件读取数据,所有的操作都具有正确的定时,可以将该功能性增强(leverage)为从端口中南向数据之外的位置提供地址、命令和/或数据。在该实施方案中添加访问控制器460和写数据发生器470来提供DRAM信令内容的这样的替换性来源。
隐式命令按如下方式处理。DRAM命令解码器/逻辑430对命令解码,并且注意到它是隐式命令。如果隐式命令涉及写操作,写数据发生样式(mode)被信令到写数据发生器470。按需要将访问控制器460产生显式地址和/或命令所必需的参数传递到访问控制器460。访问控制器460产生适当的显式地址和/或命令,并且当要产生不止一个显式事务时,将步进信号发送到写数据发生器470。
图5包括根据一些实施方案的访问控制器460和写数据发生器470的进一步细节。首先参照访问控制器460,示出了包括控制/命令发生器462、地址发生器464和参数寄存器466的内部组件。控制/命令发生器462确定从已解码隐式命令接收到什么参数,并且将那些参数写到参数寄存器466中的适当的位置,就好像它们是由DRAM命令解码器/逻辑430提供的。控制/命令发生器462还触发地址发生器464来产生地址,给地址/命令缓冲器435提供适当的显式命令,并且信令DRAM命令解码器/逻辑430,以将命令以适当的定时驱动到DRAM器件。
地址发生器464接收来自控制/命令发生器的重置和步进信号,并且基于储存在参数寄存器466中的参数产生地址。一般地,地址发生器464工作为地址计数器,然而以下将解释更复杂的寻址功能。
参数寄存器466储存挂起的(pending)隐式命令所需的任何参数。示出了写起始地址、读起始地址、长度、跳跃长度和循环计数参数。一些显式命令可能需要其他参数,并且许多命令只需要被示出的那些参数的子集。其他变量,例如当前读地址和/或写地址,可以被维护在地址发生器中或被储存在寄存器466中。
优选地,写数据发生器470包括数据发生器472、模式(pattern)寄存器474和ECC(纠错码)计算器476。当隐式写命令挂起时,DRAM命令解码器/逻辑430给数据发生器提供样式。对于一些命令,所述样式可以伴有显式写数据值或模式。其他样式将指示数据发生器472在哪里寻找和/或如何计算这样的数据值或模式。
优选地,模式寄存器474储存与至少一个存储器数据宽度等值的写数据,并且在一些实施方案中可以储存多得多的数据。模式寄存器可以从许多来源接收数据,所述许多来源包括数据发生器472、ECC计算器476、读数据缓冲器450,或者可能甚至是处于循环样式的它本身。模式寄存器474可以被配置为响应于来自访问控制器460的步进信号步进的先进先出(FIFO)。
ECC计算器476在将ECC数据储存为每个写操作的一部分以允许检错和纠错的存储器系统中尤其有用。当写数据产生的方式不允许主机计算ECC值时,ECC计算器476的存在允许数据发生器472形成有效的存储器字。
现在将解释几个隐式命令,以描述可以如何使用图5的实施方案来产生显式存储器命令。第一个实施例是之前描述的初始化功能。隐式InitializeMemory命令提供Write StartAddress(写起始地址)、Length(长度)和Initialization Value(初始化值)。InitializationValue被传递到数据发生器472,所述数据发生器472将所述值写到模式寄存器474。WriteStart Address和Length被写到参数寄存器466,并且地址发生器464被初始化为Write StartAddress。地址发生器464给地址/命令缓冲器435提供地址,控制/命令发生器462给地址/命令缓冲器435提供显式写命令,并且模式寄存器474给写数据累加器440提供Initialization Value。DRAM命令解码器/逻辑430随后将写命令驱动到存储器器件。
地址发生器464递增到下一个地址,并且重复该循环,直到Length个地址已经被初始化。
以下介绍在InitializeMemory命令的几个变体。例如,一些命令可能涉及已经为缓冲器已知的初始化值,例如会将导致数据发生器472产生0数据值的样式信令到数据发生器472的InitializeMemoryZero命令,或者会执行相反的操作的InitializeMemoryOnes命令。还可以创建模式,即InitializeMemoryCheckers,它会导致数据发生器472在模式寄存器474中交替地置入全0和全1。除了“1”和“0”,所述值可以从配置寄存器、从存储器读或在命令本身中被提供。还可以使用指定的模式长度和要被重复的模式来指定更长的模式。
0038 InitializeMemoryCountUp命令可以导致数据发生器472针对每个连续的存储器位置增加整数起始值(以1或以指定的数量为增量),或者使数据值基于目前由地址发生器464产生的地址。
InitializeMemoryRegions命令可以与任何以上的概念组合来设置不相邻的地址块。提供参数Skip Length(跳跃长度)和Loop Count(循环计数),从而在Length个地址被写之后,地址发生器向前跳过Skip Length个地址,并且再次写Length个地址,直到它完成Loop Count次该操作。这样的功能可能是有用的,例如在图像着色中用于设置垂直条纹的颜色,或在电子表格和数据库表中用于清除表的列。
可替换地,可以提供具有不同长度和不相关的起始地址的两个或更多个子范围来作为同一隐式命令的部分。
同样地,ReadMemoryRegions命令可以使用读命令来完成同一事情,允许相关或不相关的被选择数据区域在单个操作中被读取。
ReadMemoryBlock命令可以指示Length个相邻存储器地址要被读取。虽然功能上类似于显式突发读命令,这样的命令可以被用来读取各种范围的期望长度的存储器块,甚至其中一些比突发读操作允许的那些要长的多。这样的隐式命令甚至可以在缓冲器中被实现,以使用多个显式突发读命令。
在一些实施方案中可以组合上述的读和写隐式功能,以形成例如CopyMemoryBlock命令的命令。该命令可以导致控制/命令发生器462在读和写上下文(context)之间切换,交替地通过读数据缓冲器450将数据读入模式寄存器474并且随后将来自模式寄存器474的该数据写到写数据累加器440,以在一个区域中复制存储器的另一个区域。如果读数据被指定为具有较小的大小,该命令可以被设置为将该读数据重复输入写块,直到所述写块满。
许多其他的命令和选项是可能的。例如,可以提供掩码(mask)来使能存储器区域中的部分数据宽度初始化。可以从DRAM命令解码器/逻辑430来实现“暂停”功能,如图5中所示。当正在执行隐式初始化或拷贝命令并且接收到第二显式存储器命令时,DRAM命令解码器/逻辑430设置Pause(暂停)信号,同时它执行主机所请求的显式存储器访问。随后,暂停信号被解断言,以允许本质上是“后台”操作的操作进行。当然,可能依赖于主机来确保这样的暂停操作不会导致不可预知的结果。可以以类似的方式实现取消功能。
防止不可预知的结果的一个方法可以是在完成寄存器中储存状态值,所述完成寄存器可从主机端存储器通道端口访问。随后主机可以在发布潜在地引起冲突的命令之前检查挂起的隐式存储器命令的进展。简单的完成寄存器可以被设置为当接收到新的隐式命令时指示“挂起的”,并且随后当所述命令完成时设置为“完成”。可替换地,可以提供地址发生器的值来指示目前处理隐式命令已经取得的进展。
当这些隐式存储器命令可用时,计算机语言编译器或解释器、可执行程序或运行时库可以被设计成通过形成用于处理简单的数据操作循环的隐式存储器命令来利用隐式存储器命令。当结果代码被执行时,隐式存储器命令被传送到带缓冲的存储器模块,用来扩展成可能另外已经被主机处理器以某种循环方式执行的显式存储器命令。
使用所描述的实施方案中的一些,可以以低开销(overhead)实现许多期望的软件技术。例如,在存储器块按需被分配给进程并且当不需要时被解除分配的动态存储器系统中,每当存储器被解除分配时,可以由操作系统发起隐式ClearMemoryBlock命令,从而当潜在敏感的数据被程序释放时,该数据不会遗留在物理存储器中。
本领域普通技术人员将意识到,本文教导的概念可以以许多其他有利的方式适于具体的应用。具体地,本领域技术人员将意识到,示出的实施方案仅仅是一旦阅读本公开将变得显而易见的许多替换的实现方式中的一个。例如,所描述的功能可以与存储器内置自检功能协作,或者是存储器内置自检功能的一部分。在缓冲器中产生的显式地址和命令可以直接传递给DRAM命令解码器/逻辑块以进行排序。所描述的实施方案举例说明的功能性不需要全部存在于任一实施方案中。同样地,通过使用本文教导的宽泛的概念,许多其他的隐式存储器命令是可能的。本说明书不想要作为所有可能隐式命令的一个目录。
许多本文中示出的特定特征是设计选择。本文描述的功能块和信号仅仅作为实施例来介绍。同样地,被示为在单个集成电路中实施的功能可以使用多个协作电路来实现,反之亦然。通道和总线宽度、信令频率、DIMM布图(layout)、存储器器件数目、控制总线协议等都仅作为实施例来介绍。DIMM可以具有多个存储器组和/或多个器件的存储器模块栈。这样的小的修改都被包括在本发明的实施方案中,并且想要落入权利要求书的范围之内。
前述的实施方案是示例性的。虽然在说明书的几个地方可能涉及到“an”、“one(一个)”、“另一个”或“一些”实施方案,这并不一定意味着每个这样的引用是指同一(同样的一些)实施方案,或特征只应用于单个实施方案。
Claims (31)
1.一种存储器模块缓冲器,包括:
主机端存储器通道端口和存储器器件通道端口;
命令解码器,所述命令解码器解码在所述主机端存储器通道端口接收的命令,所述命令包括至少一个隐式命令类型;以及
存储器器件访问控制器,所述存储器器件访问控制器通过产生对所述存储器器件通道端口的至少一个显式存储器访问命令来响应具有隐式命令类型的命令。
2.如权利要求1所述的存储器模块缓冲器,其中所述至少一个隐式命令类型包括具有指定要被写到的存储器的第一区域的命令格式的至少一个隐式写命令,并且包括比填满存储器的所述区域所需的显式写数据少的显式写数据,所述缓冲器还包括根据所述隐式写命令形成隐式写数据的写数据发生器。
3.如权利要求2所述的存储器模块缓冲器,其中所述至少一个隐式写命令包括指定要从中读取以形成所述隐式写数据的存储器的第二区域的拷贝命令,所述存储器器件访问控制器通过导致所述缓冲器从存储器的所述第二区域读取数据以形成所述隐式写数据,来响应所述拷贝命令。
4.如权利要求3所述的存储器模块缓冲器,其中当存储器的所述第二区域在大小上小于存储器的所述第一区域时,所述写数据发生器通过重复来自存储器的所述第二区域的至少一些数据来形成隐式写数据。
5.如权利要求2所述的存储器模块缓冲器,其中所述至少一个隐式写命令包括包含数据值的命令,并且其中所述写数据发生器通过针对遍及存储器的所述第一区域的多个地址重复所述数据值来形成隐式写数据。
6.如权利要求2所述的存储器模块缓冲器,其中所述至少一个隐式写命令包括指示预定的模式要被写到存储器的所述第一区域的命令,并且其中所述写数据发生器通过重复地产生所述预定的模式来形成隐式写数据。
7.如权利要求6所述的存储器模块缓冲器,还包括耦合到所述写数据发生器的模式寄存器,用来储存所述预定模式。
8.如权利要求6所述的存储器模块缓冲器,其中所述预定的模式至少部分地依赖于正被写到的地址,并且其中所述写数据发生器使用所述正被写到的地址的至少一部分来形成隐式写数据。
9.如权利要求2所述的存储器模块缓冲器,其中所述至少一个隐式写命令包括具有能够将存储器的所述第一区域指定为多个不连接的子区域的不相邻区域的格式的命令,所述存储器器件访问控制器具有依次将写操作引导到所述多个不连接的子区域中的每一个的能力。
10.如权利要求9所述的存储器模块缓冲器,所述存储器器件访问控制器具有这样的能力,即通过重复地将数据写到等于写长度的地址范围并且跳过等于跳跃长度的地址范围,直到等于指定的子区域数目的子区域数目已经被写,来响应指定起始地址、所述写长度、所述跳跃长度和所述子区域数目的命令格式。
11.如权利要求2所述的存储器模块缓冲器,其中所述写数据发生器包括能够产生作为隐式写数据字的一部分的纠错码的纠错码发生器。
12.如权利要求2所述的存储器模块缓冲器,所述存储器器件通道端口具有数据宽度,所述缓冲器还包括数据掩码发生器,当隐式命令指定部分宽度写命令时,所述数据掩码发生器在响应于隐式命令类型的写操作期间屏蔽所述数据宽度的一部分。
13.如权利要求1所述的存储器模块缓冲器,还包括暂停功能,在与具有隐式命令类型的第一命令有关的活动期间,当接收到要求访问所述存储器器件通道端口的第二命令时,所述暂停功能被所述命令解码器激活,所述存储器器件访问控制器通过在所述第二命令执行时暂停所述第一命令的执行来响应所述暂停功能。
14.如权利要求1所述的存储器模块缓冲器,还包括完成寄存器,所述存储器模块缓冲器设置所述完成寄存器来指示具有隐式命令类型的挂起命令的状态,其中储存在所述完成寄存器中的值可从所述主机端存储器通道端口访问。
15.如权利要求1所述的存储器模块缓冲器,所述存储器器件访问控制器具有这样的能力,即通过重复地从等于读长度的地址范围读取数据并且跳过等于跳跃长度的地址范围,直到等于指定的子区域数目的子区域数目已经被读取,来响应指定起始地址、所述读长度、所述跳跃长度和所述子区域数目的命令格式。
16.一种将数据写到带缓冲的存储器模块上的存储器的方法,所述方法包括:
在所述模块上的缓冲器上接收指定对所述存储器的隐式写的命令;
响应于所述隐式命令,为对所述存储器的显式写操作形成至少一个第一数据字/第一写地址的组合;以及
将所述数据字和写地址作为第一显式写命令的部分传送到所述存储器。
17.如权利要求16所述的方法,还包括:
响应于所述隐式命令,从所述存储器读取被储存的数据字;以及
使用所述被储存的数据字来形成所述至少一个数据字。
18.如权利要求17所述的方法,其中响应于所述隐式命令,针对多个存储器位置重复从所述存储器读取被储存的数据字以及使用所述被储存的数据字来形成所述至少一个数据字的操作。
19.如权利要求16所述的方法,其中为对所述存储器的显式写操作形成至少一个数据字/写地址的组合的操作包括针对多个写地址重复由所述隐式命令指定的数据值。
20.如权利要求19所述的方法,其中由所述隐式命令指定的所述数据值通过从模式寄存器读取值来确定。
21.如权利要求16所述的方法,其中形成至少一个数据字/写地址的组合的操作包括形成至少部分地依赖于所述写地址的数据字。
22.如权利要求16所述的方法,其中所述命令指定存储器的多个不相邻的子区域,所述方法还包括将第二数据字和第二写地址作为第二显式写命令的部分传送到所述存储器,所述第二写地址与所述第一写地址不相邻。
23.如权利要求16所述的方法,其中形成至少一个第一数据字的操作包括使用所述数据字产生要被写的纠错码。
24.一种带缓冲的存储器模块,包括:
多个存储器器件;以及
缓冲器,所述缓冲器连接到所述存储器器件,并且具有
主机端存储器通道端口,
命令解码器,所述命令解码器解码在所述主机端存储器通道端口接收的命令,所述命令包括至少一个隐式命令类型,以及
存储器器件访问控制器,所述存储器器件访问控制器通过产生至少一个显式存储器访问命令并将其传送到所述存储器器件来响应具有隐式命令类型的命令。
25.如权利要求24所述的带缓冲的存储器模块,其中所述至少一个隐式命令类型包括具有指定要被写到的存储器的第一区域的命令格式的至少一个隐式写命令,并且包括比填满存储器的所述区域所需要的显式写数据少的显式写数据,所述缓冲器还包括根据所述隐式写命令形成隐式写数据的写数据发生器。
26.如权利要求24所述的带缓冲的存储器模块,所述存储器器件访问控制器具有这样的能力,即通过重复地从等于读长度的地址范围读取数据并且跳过等于跳跃长度的地址范围,直到等于指定的子区域数目的子区域数目已经从所述存储器模块被读取,来响应指定起始地址、所述读长度、所述跳跃长度和所述子区域数目的命令格式。
27.一种制品,包括包含指令的计算机可读介质,当所述指令被处理器执行时导致所述处理器执行方法,所述方法包括:
形成隐式存储器命令;以及
将所述隐式存储器命令传送到带缓冲的存储器模块,以扩展成一个或更多个显式存储器命令。
28.如权利要求27所述的制品,其中所述隐式存储器命令指定起始地址、读长度、跳跃长度和要读取的子区域的数目,所述方法还包括在知道所述读和跳跃长度的情况下处理由所述带缓冲的存储器模块返回的读数据块。
29.如权利要求27所述的制品,其中所述隐式存储器命令指定写命令,并且指示在多个写周期所述带缓冲的存储器模块如何构建写数据和/或写地址。
30.一种计算设备,包括:
处理器;
第一带缓冲的存储器模块,所述第一带缓冲的存储器模块包括多个存储器器件和连接到所述存储器器件的缓冲器,所述缓冲器具有
主机端存储器通道端口,
命令解码器,所述命令解码器解码在所述主机端存储器通道端口接收的命令,所述命令包括至少一个隐式命令类型,以及
存储器器件访问控制器,所述存储器器件访问控制器通过产生至少一个显式存储器访问命令并将其传送到所述存储器器件来响应具有隐式命令类型的命令;以及
第一点对点存储器通道,所述第一点对点存储器通道将所述处理器耦合到所述带缓冲的存储器模块。
31.如权利要求30所述的计算设备,其中在所述第一带缓冲的存储器模块上的所述缓冲器还包括下游存储器通道端口,所述计算设备还包括:
具有主机端存储器通道端口的第二带缓冲的存储器模块;以及
第二点对点存储器通道,所述第二点对点存储器通道将所述第一带缓冲的存储器模块下游存储器通道端口连接到所述第二带缓冲的存储器模块主机端存储器通道端口;
所述计算设备具有这样的能力,即将隐式命令发布到所述第一存储器模块,并且当所述第一存储器模块响应于所述隐式命令正在执行显式命令时,通过所述第一存储器模块将另一个命令发布到所述第二存储器模块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/713,784 | 2003-11-13 | ||
US10/713,784 US7243205B2 (en) | 2003-11-13 | 2003-11-13 | Buffered memory module with implicit to explicit memory command expansion |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1902612A true CN1902612A (zh) | 2007-01-24 |
CN100559360C CN100559360C (zh) | 2009-11-11 |
Family
ID=34573813
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004800403647A Expired - Fee Related CN100559360C (zh) | 2003-11-13 | 2004-11-05 | 具有隐式到显示存储器命令扩展的带缓冲的存储器模块 |
Country Status (8)
Country | Link |
---|---|
US (1) | US7243205B2 (zh) |
EP (1) | EP1683129B1 (zh) |
CN (1) | CN100559360C (zh) |
AT (1) | ATE428163T1 (zh) |
DE (1) | DE602004020495D1 (zh) |
HK (1) | HK1086375A1 (zh) |
TW (1) | TWI292867B (zh) |
WO (1) | WO2005050599A2 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104486826A (zh) * | 2010-08-13 | 2015-04-01 | 索尼公司 | 关于激活和去激活终端的副小区的通信方法及电子装置 |
CN108044621A (zh) * | 2017-09-20 | 2018-05-18 | 广东拓斯达科技股份有限公司 | 一种计算机可读存储介质和应用该介质的机器人 |
CN110008147A (zh) * | 2018-01-04 | 2019-07-12 | 澜起科技股份有限公司 | 存储器控制器以及用于对存储模块进行访问的方法 |
US10929029B2 (en) | 2018-01-04 | 2021-02-23 | Montage Technology Co., Ltd. | Memory controller and method for accessing memory modules and processing sub-modules |
US11226768B2 (en) | 2018-01-04 | 2022-01-18 | Montage Technology Co., Ltd. | Memory controller and method for accessing memory module |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050138330A1 (en) * | 2003-12-23 | 2005-06-23 | Maxim Integrated Products, Inc. | MAXQ microcontroller |
US7221613B2 (en) * | 2004-05-26 | 2007-05-22 | Freescale Semiconductor, Inc. | Memory with serial input/output terminals for address and data and method therefor |
US7254663B2 (en) * | 2004-07-22 | 2007-08-07 | International Business Machines Corporation | Multi-node architecture with daisy chain communication link configurable to operate in unidirectional and bidirectional modes |
US7334070B2 (en) * | 2004-10-29 | 2008-02-19 | International Business Machines Corporation | Multi-channel memory architecture for daisy chained arrangements of nodes with bridging between memory channels |
US7417883B2 (en) * | 2004-12-30 | 2008-08-26 | Intel Corporation | I/O data interconnect reuse as repeater |
US7366931B2 (en) | 2004-12-30 | 2008-04-29 | Intel Corporation | Memory modules that receive clock information and are placed in a low power state |
US20070005834A1 (en) * | 2005-06-30 | 2007-01-04 | Intel Corporation | Memory chips with buffer circuitry |
US11328764B2 (en) | 2005-09-26 | 2022-05-10 | Rambus Inc. | Memory system topologies including a memory die stack |
US7562271B2 (en) | 2005-09-26 | 2009-07-14 | Rambus Inc. | Memory system topologies including a buffer device and an integrated circuit memory device |
TWI446356B (zh) | 2005-09-30 | 2014-07-21 | Mosaid Technologies Inc | 具有輸出控制之記憶體及其系統 |
US7652922B2 (en) | 2005-09-30 | 2010-01-26 | Mosaid Technologies Incorporated | Multiple independent serial link memory |
US20070165457A1 (en) * | 2005-09-30 | 2007-07-19 | Jin-Ki Kim | Nonvolatile memory system |
US20070076502A1 (en) * | 2005-09-30 | 2007-04-05 | Pyeon Hong B | Daisy chain cascading devices |
KR100747467B1 (ko) * | 2005-10-01 | 2007-08-09 | 엘지전자 주식회사 | 로그 관리 객체를 이용한 장치관리 시스템 및 해당시스템에서의 로깅 데이터 생성 및 제어 방법 |
US20070130374A1 (en) * | 2005-11-15 | 2007-06-07 | Intel Corporation | Multiported memory with configurable ports |
US7990737B2 (en) * | 2005-12-23 | 2011-08-02 | Intel Corporation | Memory systems with memory chips down and up |
US7673111B2 (en) * | 2005-12-23 | 2010-03-02 | Intel Corporation | Memory system with both single and consolidated commands |
US7349233B2 (en) * | 2006-03-24 | 2008-03-25 | Intel Corporation | Memory device with read data from different banks |
US7721010B2 (en) * | 2007-10-31 | 2010-05-18 | Qimonda North America Corp. | Method and apparatus for implementing memory enabled systems using master-slave architecture |
WO2009089301A1 (en) * | 2008-01-07 | 2009-07-16 | Rambus Inc. | Variable-width memory module and buffer |
US7941637B2 (en) * | 2008-04-15 | 2011-05-10 | Freescale Semiconductor, Inc. | Groups of serially coupled processor cores propagating memory write packet while maintaining coherency within each group towards a switch coupled to memory partitions |
US8959288B1 (en) * | 2010-07-29 | 2015-02-17 | Violin Memory, Inc. | Identifying invalid cache data |
US20120254588A1 (en) * | 2011-04-01 | 2012-10-04 | Jesus Corbal San Adrian | Systems, apparatuses, and methods for blending two source operands into a single destination using a writemask |
US20120254592A1 (en) * | 2011-04-01 | 2012-10-04 | Jesus Corbal San Adrian | Systems, apparatuses, and methods for expanding a memory source into a destination register and compressing a source register into a destination memory location |
US8527836B2 (en) | 2011-07-01 | 2013-09-03 | Intel Corporation | Rank-specific cyclic redundancy check |
US9436629B2 (en) * | 2011-11-15 | 2016-09-06 | Marvell World Trade Ltd. | Dynamic boot image streaming |
US9721641B2 (en) | 2012-11-30 | 2017-08-01 | Intel Corporation | Apparatus, method and system for memory device access with a multi-cycle command |
US9665496B2 (en) | 2013-01-30 | 2017-05-30 | Hewlett Packard Enterprise Development Lp | Non-volatile memory write mechanism |
US9530468B2 (en) | 2014-09-26 | 2016-12-27 | Intel Corporation | Method, apparatus and system to manage implicit pre-charge command signaling |
US10459660B2 (en) | 2014-11-20 | 2019-10-29 | Rambus Inc. | Memory systems, modules, and methods for improved capacity |
US10482008B2 (en) | 2015-01-23 | 2019-11-19 | Hewlett Packard Enterprise Development Lp | Aligned variable reclamation |
US9818457B1 (en) | 2016-09-30 | 2017-11-14 | Intel Corporation | Extended platform with additional memory module slots per CPU socket |
US10216657B2 (en) | 2016-09-30 | 2019-02-26 | Intel Corporation | Extended platform with additional memory module slots per CPU socket and configured for increased performance |
US10733782B2 (en) * | 2018-10-05 | 2020-08-04 | Arm Limited | Graphics processing systems |
CN111240581B (zh) | 2018-11-29 | 2023-08-08 | 北京地平线机器人技术研发有限公司 | 存储器访问控制方法、装置和电子设备 |
CN113704144A (zh) * | 2020-05-22 | 2021-11-26 | 澜起科技股份有限公司 | 存储器控制器以及用于控制对存储模块的访问的方法 |
US11567868B2 (en) * | 2020-11-13 | 2023-01-31 | Taiwan Semiconductor Manufacturing Company, Ltd. | Method for copying data within memory device, memory device, and electronic device thereof |
CN115794692A (zh) * | 2021-09-09 | 2023-03-14 | 瑞昱半导体股份有限公司 | 存取内存的电子装置及数据写入方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6112287A (en) | 1993-03-01 | 2000-08-29 | Busless Computers Sarl | Shared memory multiprocessor system using a set of serial links as processors-memory switch |
IL96808A (en) * | 1990-04-18 | 1996-03-31 | Rambus Inc | Introductory / Origin Circuit Agreed Using High-Performance Brokerage |
WO1999030240A1 (en) | 1997-12-05 | 1999-06-17 | Intel Corporation | Memory system including a memory module having a memory module controller |
US6970968B1 (en) | 1998-02-13 | 2005-11-29 | Intel Corporation | Memory module controller for providing an interface between a system memory controller and a plurality of memory devices on a memory module |
US6968419B1 (en) | 1998-02-13 | 2005-11-22 | Intel Corporation | Memory module having a memory module controller controlling memory transactions for a plurality of memory devices |
US6820087B1 (en) * | 1998-07-01 | 2004-11-16 | Intel Corporation | Method and apparatus for initializing data structures to accelerate variable length decode |
US6934795B2 (en) * | 1999-09-23 | 2005-08-23 | Netlogic Microsystems, Inc. | Content addressable memory with programmable word width and programmable priority |
US6643752B1 (en) * | 1999-12-09 | 2003-11-04 | Rambus Inc. | Transceiver with latency alignment circuitry |
US6523098B1 (en) * | 1999-12-22 | 2003-02-18 | Intel Corporation | Mechanism for efficient low priority write draining |
US6502161B1 (en) * | 2000-01-05 | 2002-12-31 | Rambus Inc. | Memory system including a point-to-point linked memory subsystem |
US6369605B1 (en) * | 2000-09-18 | 2002-04-09 | Intel Corporation | Self-terminated driver to prevent signal reflections of transmissions between electronic devices |
US6625687B1 (en) * | 2000-09-18 | 2003-09-23 | Intel Corporation | Memory module employing a junction circuit for point-to-point connection isolation, voltage translation, data synchronization, and multiplexing/demultiplexing |
US6317352B1 (en) * | 2000-09-18 | 2001-11-13 | Intel Corporation | Apparatus for implementing a buffered daisy chain connection between a memory controller and memory modules |
US6493250B2 (en) * | 2000-12-28 | 2002-12-10 | Intel Corporation | Multi-tier point-to-point buffered memory interface |
US7032158B2 (en) * | 2001-04-23 | 2006-04-18 | Quickshift, Inc. | System and method for recognizing and configuring devices embedded on memory modules |
EP1396792B1 (en) * | 2002-09-06 | 2005-06-15 | Sun Microsystems, Inc. | Memory copy command specifying source and destination of data executed in the memory controller |
-
2003
- 2003-11-13 US US10/713,784 patent/US7243205B2/en not_active Expired - Fee Related
-
2004
- 2004-11-05 CN CNB2004800403647A patent/CN100559360C/zh not_active Expired - Fee Related
- 2004-11-05 WO PCT/US2004/036964 patent/WO2005050599A2/en active Application Filing
- 2004-11-05 DE DE602004020495T patent/DE602004020495D1/de active Active
- 2004-11-05 EP EP04810426A patent/EP1683129B1/en not_active Not-in-force
- 2004-11-05 AT AT04810426T patent/ATE428163T1/de not_active IP Right Cessation
- 2004-11-11 TW TW093134439A patent/TWI292867B/zh not_active IP Right Cessation
-
2006
- 2006-07-29 HK HK06108457.3A patent/HK1086375A1/xx not_active IP Right Cessation
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104486826A (zh) * | 2010-08-13 | 2015-04-01 | 索尼公司 | 关于激活和去激活终端的副小区的通信方法及电子装置 |
CN104486826B (zh) * | 2010-08-13 | 2018-12-04 | 索尼公司 | 关于激活和去激活终端的副小区的通信方法及电子装置 |
CN108044621A (zh) * | 2017-09-20 | 2018-05-18 | 广东拓斯达科技股份有限公司 | 一种计算机可读存储介质和应用该介质的机器人 |
CN110008147A (zh) * | 2018-01-04 | 2019-07-12 | 澜起科技股份有限公司 | 存储器控制器以及用于对存储模块进行访问的方法 |
CN110007850A (zh) * | 2018-01-04 | 2019-07-12 | 澜起科技股份有限公司 | 存储器控制器以及用于对存储模块进行访问的方法 |
US10929029B2 (en) | 2018-01-04 | 2021-02-23 | Montage Technology Co., Ltd. | Memory controller and method for accessing memory modules and processing sub-modules |
CN110007850B (zh) * | 2018-01-04 | 2021-12-03 | 澜起科技股份有限公司 | 存储器控制器以及用于对存储模块进行访问的方法 |
US11226768B2 (en) | 2018-01-04 | 2022-01-18 | Montage Technology Co., Ltd. | Memory controller and method for accessing memory module |
Also Published As
Publication number | Publication date |
---|---|
WO2005050599A3 (en) | 2006-04-20 |
EP1683129A2 (en) | 2006-07-26 |
TW200528983A (en) | 2005-09-01 |
TWI292867B (en) | 2008-01-21 |
WO2005050599A2 (en) | 2005-06-02 |
ATE428163T1 (de) | 2009-04-15 |
EP1683129B1 (en) | 2009-04-08 |
HK1086375A1 (en) | 2006-09-15 |
US20050108469A1 (en) | 2005-05-19 |
DE602004020495D1 (de) | 2009-05-20 |
US7243205B2 (en) | 2007-07-10 |
CN100559360C (zh) | 2009-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100559360C (zh) | 具有隐式到显示存储器命令扩展的带缓冲的存储器模块 | |
CN101341473B (zh) | 具有共享存储体的多处理器电路 | |
US6185654B1 (en) | Phantom resource memory address mapping system | |
US6088772A (en) | Method and apparatus for improving system performance when reordering commands | |
US5323489A (en) | Method and apparatus employing lookahead to reduce memory bank contention for decoupled operand references | |
US20090240895A1 (en) | Systems and methods for coalescing memory accesses of parallel threads | |
US8392669B1 (en) | Systems and methods for coalescing memory accesses of parallel threads | |
CN1684200A (zh) | 半导体存储装置 | |
CN1669012A (zh) | 支持不同脉冲时间存取而无须变更模式寄存器中脉冲时间设定的dram | |
US6041393A (en) | Array padding for higher memory throughput in the presence of dirty misses | |
US9354823B2 (en) | Memory system including variable write burst and broadcast command scheduling | |
US5333291A (en) | Stride enhancer for high speed memory accesses with line fetching mode and normal mode employing boundary crossing determination | |
CN115698970A (zh) | 具有近存储器地址生成的存储器访问命令 | |
JP4531223B2 (ja) | 集合的メモリを共有する複数のプロセッサを備えたデータ処理装置 | |
Li et al. | GPU matrix multiplication | |
US20080005726A1 (en) | Methods and systems for modifying software applications to implement memory allocation | |
US20230031680A1 (en) | Balancing Memory-Portion Accesses | |
CN112631955A (zh) | 数据处理方法、装置、电子设备以及介质 | |
EP1125191A1 (en) | Controlling access to a primary memory | |
CN1307556C (zh) | 信息处理装置 | |
Michelogiannakis et al. | Collective memory transfers for multi-core chips | |
US20240078046A1 (en) | Computer system and method for data access | |
Isaila et al. | Mapping Functions and Data Redistribution for Parallel Files. | |
CN116483536B (zh) | 数据调度方法、计算芯片及电子设备 | |
Raju et al. | Performance enhancement of CUDA applications by overlapping data transfer and Kernel execution |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20091111 Termination date: 20181105 |