存储器系统、存储器模块及其方法与流程

文档序号:12176255阅读:309来源:国知局
存储器系统、存储器模块及其方法与流程

技术领域

本公开总体涉及一种用于计算机的存储器系统,更具体地讲,涉及一种高性能的基于事务的存储器系统。



背景技术:

同步DRAM(SDRAM)具有与存储器控制器的同步接口并以计算机的系统总线的速度同步响应存储器控制器。计算机的时钟信号用于驱动内部有限状态机(FSM),所述内部有线状态机对来自存储器控制器的输入命令进行流水线控制。SDRAM的数据存储被划分为几个体(bank),允许存储器控制器同时处理几个在各自的体中交叉的存储器存取命令。这允许比异步DRAM更高的数据存取率。

近期,基于事务的存储器系统以它们更高的存储容量、更高的带宽和设计灵活性而引起关注。基于事务的存储器系统的示例包括板载缓冲器类型(例如,扩展内存缓冲器(SMB))、混合存储立方体(例如,混合存储立方体(HMC))以及

不同于同步存储器系统,在基于事务的存储器系统中的存储器控制器不与DRAM直接通信。相反,计算机系统的存储器控制器(即,主控制器)通过点对点链路总线与DRAM控制器(即,从控制器)进行异步通信,DRAM控制器使用存储器命令(例如,联合电子设备工程委员会(JEDEC)标准化的双倍数据速率(DDR)存储器命令)通过存储器通道(例如,DDR存储器通道)与DRAM进行通信。标准存储器命令的示例包括激活、读、写、预充电和刷新。激活命令激活在特定体中的行。读和写命令初始化读和写数据串到激活的行。预充电命令关闭在特定体中的激活的行。刷新命令开始刷新操作。当刷新命令发出时,存储体被预充电。

在传统的基于事务的存储器系统设计中,主控制器和从控制器松散结合且交换很少的信息。松散结合的主控制器和从控制器提供了存储器系统的设计灵活性和高效的管理。然而,主控制器和从控制器之间的松散结合可导致非优化的性能。例如,区块(rank)/体(bank)交错和行缓冲器管理由从控制器单独处理。由于功率和成本问题,从控制器可具有包括小的缓冲器和简单的逻辑的有限的资源。在从控制器上的有限的资源可限制其调度和行缓冲器管理能力。另一方面,主控制器可具有大量的资源和缓冲器,使得潜在地能够通过克服从控制器的有限的能力来提高存储器系统的性能。



技术实现要素:

描述了包括主控制器、与主机计算机连接的接口以及被构造为与从控制器结合的链路总线的存储器系统。主控制器包括地址映射解码器、事务队列和调度器。地址映射解码器被构造为对结合到从控制器的存储器装置的地址映射信息进行解码。主控制器的调度器被构造为使用存储器装置的地址映射信息对在事务队列中的从主机计算机接收的存储器事务请求进行重新排序。存储器系统采用基于在主控制器的事务队列中的挂起的存储器事务请求的扩展的打开页策略。

根据一个实施例,存储器模块包括:从控制器,包括解码器、调度器、命令队列和读取返回队列;存储器装置。解码器被构造为接收存储器事务请求,基于存储器事务请求产生存储器命令以及将存储器命令放置到命令队列中。解码器还被构造为接收多个标志并基于所述多个标志对在命令队列中的存储器命令进行重新排序。

根据一个实施例,一种用于提高存储器系统的性能的方法包括:通过链路总线从从控制器接收存储器装置的地址映射信息;从主机计算机接收存储器事务请求;将存储器事务请求放置到事务队列中;使用存储器装置的地址映射信息对在事务队列中的存储器事务请求进行重新排序。

根据一个实施例,一种用于提高存储器系统的性能的方法包括:将存储器装置的地址映射信息通过链路总线发送到主控制器;接收存储器事务请求;对存储器事务请求进行解码并基于解码的存储器事务请求产生存储器命令;将存储器命令放置到命令队列;接收多个标志;基于所述多个标志对在命令队列中的存储器命令进行重新排序。

包括实施方式的各种新颖细节和各种事项的组合的上述描述和其他有优选的特征,将参照附图更详细的描述并在权利要求中指出。将理解,在此描述的特定的系统和方法仅以示出的目的,而不是限制的目的而被示出。如本领域的普通技术人员将理解,在不脱离本公开的范围的情况下,在此描述的原理和特征可被采用于许多不同的实施例中。

附图说明

作为本说明书的一部分而包括的附图示出了当前优选实施例,并结合上面给出的概括描述和下面给出的优选实施例的详细描述来解释和教导在此描述的原理。

图1示出传统的基于事务的存储器系统的框图。

图2A示出主缓冲器和从缓冲器之间的存储器映射的对比示例。

图2B示出根据一个实施例的主缓冲器和从缓冲器之间的示例性的存储器映射。

图3A示出从控制器的页打开策略的对比示例。

图3B示出根据一个实施例的所述基于事务的存储器系统的页打开策略的示例,以及

图4示出根据一个实施例的示例性的基于事务的存储器系统。

附图不一定是按比例绘制,并且贯穿附图始末,为了说明的目的相同的标号通常表示相同的结构或功能的元件。附图只是为了便于在此描述的各种实施例的描述。附图不会描述公开于此的示教的每一个方面且不局限于权利要求的范围。

具体实施方式

在此公开的每个特征和教导可单独使用或与其他特征和教导结合使用来提供基于事务的存储器系统以及驱动所述系统的方法。参照附图,进一步详细描述单独和结合使用这些附加特征和教导中的许多特征和教导的代表性的示例。该详细描述仅仅为了教导本领域的普通人员本教导的更多实践方面的细节,而不是为了限制权利要求的范围。因此,详细描述中公开的特征的组合可不必在最广泛的意义上实践所述教导,而是仅仅具体的描述本教导的代表性示例。

在下面的描述中,仅为了解释,提出了特定的命名法来提供本公开的全面理解。然而,对于本领域的普通技术人员明显的是,这些特定的细节不需要实践本公开的教导。

在此详细描述的一些部分是根据在计算机存储器中的数据位上的操作的算法和符号表示提出的。这些算法描述和表示被数据处理领域的普通技术人员使用来有效地将他们工作的本质传达给本领域的其他普通技术人员。一般来讲,所述算法在此被构思为步骤的顺序前后一致以达到预期的结果。这些步骤需要物理量的物理操作。通常,但不必要地,这些量采用能够被存储、传输、组合、比较以及其他操作的电信号或磁信号的形式。已经证明,有时,尤其因为常用的用法,将这些信号表示为比特、值、元素、符号、字符、术语、标号等比较方便。

然而,应该牢记,全部这些和相同的术语是与适当的物理量相关联的并且仅仅是应用于这些量的方便的标签。除非在下面的讨论中有明确相反的限定,否则可以理解为贯穿描述始末,讨论使用术语“处理”、“运算”、“计算”、“显示”等来表示计算机系统或相似的电子运算装置的操作和流程,对在计算机系统的寄存器和存储器中的表示为物理(电子)量的数据进行操作并转换成在计算机系统存储器或寄存器或其他此类信息存储、传输或显示装置中的表示为物理量的其他相似数据。

各种这样的系统所需的结构将在下面的描述中出现。如在此描述的,各种编程语言可被用于实现本公开的教导。

另外,为了提供本教导的附加的有用的实施例,代表性示例的各种特征和依赖的权利要求可以以未特别和明确列举的方式组合。还明确指出,为了原始公开的目的以及为了限制权利要求的主体的目的,实体的组的所有值范围或标志公开每一个可能的中间值或中间体。还明确指出,在图中示出的组件的尺寸和形状被设计为帮助理解本示教如何实施,但不在于限制在示例中示出的尺寸和形状。

本公开提供了一种能够提供高性能的基于事务的存储器系统以及驱动所述系统的方法。所述基于事务的存储器系统克服了存储器装置的地址映射信息没有传递到主控制器的松散结合的主控制器和从控制器设计的限制。所述基于事务的存储器系统的主控制器深入参与了通常由从控制器处理的调度和行缓冲器管理。与只依赖于从控制器相比,通过具有更深的缓冲器和更复杂的逻辑,主控制器可提供更好的调度和存储器管理决策。具体地讲,如在后面的示例和实施例中进一步详细解释的,所述基于事务的存储器系统提供更好的通道/区块(rank)/体交错(即,更并行化),以及更有效的行缓冲器管理(即,更多的页点击)。

图1示出传统的基于事务的存储器系统的框图。基于事务的存储器系统100包括主控制器110(例如,主机存储器控制器)、从控制器120(例如,DRAM控制器)和存储器装置130(例如,DRAM)。主控制器110从CPU接收请求以对存储器装置130进行存取并对与该请求对应的CPU进行响应。主控制器110包括编码器111、调度器112、解码器113、事务队列115以及读返回队列116。

编码器111对CPU请求进行编码并将编码的请求放置在事务队列115中。编码的请求可包括从存储器装置130的地址块或地址的存储器读取和对于所述地址块或地址的存储器写入。主控制器的调度器112按请求在事务队列115中放置的顺序对请求进行封包并将封包的请求通过主控制器110和从控制器120之间的链路总线的请求链路发送到从控制器120。

从控制器120包括编码器121、调度器122、封包器123、命令队列125以及读取返回队列126。解码器121对从主控制器110通过请求链路接收的包进行解码,产生相应的存储器命令并将存储器命令放置在命令队列125中。调度器122将存储器命令和相关联的存储器地址发送给存储器装置130并从存储器装置130接收数据。从控制器120将来自存储器装置130的读取数据放置在读取返回队列126中。封包器123对从存储器装置130接收的响应(例如,从存储器地址读取的数据)进行封包并将封包的响应通过主控制器110和从控制器之间的链路总线的响应链路发送到主控制器110。

主控制器110的解码器113对从从控制器120通过响应链路接收的包进行解码,将解码的包放置在读取返回队列116中,并按读取的数据在读取返回队列116中放置的顺序将数据发送回CPU。主控制器110和从控制器120之间的通信仅限于通过链路总线的包的交换。从控制器120不与主控制器110共享DRAM 130的地址映射信息,因此,当向从控制器120发送请求包时,主控制器110的调度器112不能预调度在事务队列115中的挂起的请求(pending request)。

图2A示出主缓冲器和从缓冲器之间的存储器映射的对比示例。参照图1的传统的基于事务的存储器系统100的示例,主控制器110仅将编码的CPU请求放置在事务队列115中。例如,在事务队列115中的请求以及相关联的存储器地址和/或数据被存储在先进先出(FIFO)缓冲器,调度器112将编码的CPU请求和存储器地址/数据按请求在FIFO缓冲器中放置的顺序一起发送到从控制器120。由于主控制器110不具有DRAM 130的地址映射信息,因此主控制器110在没有进行体交错(bank interleaving)的前提下将CPU请求按CPU请求在事务队列115中放置的顺序发送到从控制器120。

主控制器110具有主缓冲器201,而从控制器120具有小于主缓冲器201的从缓冲器202。就本示例而言,主缓冲器201被示出为8条目深度且一次只能存储8个请求队列,而从缓冲器202为四条目深度且一次只能存储四个请求队列。然而,应该指出的是主缓冲器201和从缓冲器202在不脱离本公开的范围的情况下可以是任意缓冲器大小。

放置在主缓冲器201中的请求中的一些请求可包括与相同体映射的请求。在本示例中,在主缓冲器201中的请求包括四个连续的Bank 0请求,随后是Bank 1请求、Bank 2请求、Bank 3请求以及Bank 4请求。这里Bank请求可以是读请求或写请求。主控制器110的调度器112基于在从缓冲器202中的可用条目的数量将放置在主缓冲器201中的请求发送到从缓冲器202并将剩余的条目在主缓冲器201推上。初始地,从缓冲器202为空,所以主缓冲器201的包括四个连续的Bank 0请求的开始的四个缓冲条目被发送到从控制器并放置在从缓冲器202中。由于到达从缓冲器202的请求仅包括四个连续的Bank 0请求,所以从控制器不能执行体交错。因此,从控制器120的一个核沿行对体0进行四次存取(读或写),而从控制器120的其他核闲置,其在其他情况下能够存取其他体。这导致引起低的响应时间的体冲突。

当主控制器具有存储器装置的地址映射信息和存储器配置信息(例如,输入的请求的通道ID、区块ID、体ID以及行ID时,主控制器可对CPU请求进行重新排序并将重新排序的(或交错的)请求发送到从控制器。参照图2A,因为主控制器不具有地址映射信息,所以主控制器201不具有体ID信息。因此,主控制器110仅如请求存储在主缓冲器201中的那样发送请求。根据本公开的一个实施例,由主控制器基于地址映射信息的重新排序可实现更有效的体交错存取。

图2B示出根据本公开的一个实施例的主缓冲器和从缓冲器之间的存储器映射的示例。与图2A的示例相似,主缓冲器251包括四个连续的Bank 0请求,随后为Bank 1请求、Bank 2请求、Bank 3请求以及Bank 4请求。初始地,从缓冲器202为空,所以主控制器被允许为将在主缓冲器251中的四个请求发送到从控制器。已知存储器装置的地址映射信息,主控制器可对在主缓冲器251中的请求重新排序来包括第一Bank 0请求、Bank 1请求、Bank2请求和Bank 3请求替换主缓冲器251中的开始的四个请求。在这种情况下,从控制器可使用从控制器的可用的核通过同时访问Bank 0请求、Bank 1请求、Bank 2请求以及Bank 3请求来执行体交错。

根据一个实施例,主控制器和从控制器可在系统启动时间交换地址映射选项,且用户可决定使用哪个地址映射方案。地址映射方案可保持不变直到系统重新启动或用户在系统运行中重新配置地址映射方案。当在系统启动时间选择地址映射方案时,存储器系统可配置在存储器控制器内部的硬件解码器。硬件解码器可将输入的地址解码为在DRAM中的与通道、区块、体和行ID对应的物理地址。

关闭页在每个存储器存取(即,读和写)之后以预充电命令开始。由于关闭的页必须在行缓冲器命中(hit)的情况下再次被打开,因此关闭页减少对于行缓冲器清除(miss)的延迟,但可增加对于行缓冲器命中的延迟。打开页延迟预充电直到清除。打开页最小化对于行缓冲器命中的延迟,但可增加对于行缓冲器清除的延迟。根据行缓冲器清除和命中的比率,从控制器确定何时关闭、打开和预充电。

本公开的基于事务的存储器系统提供了一种成熟的打开页策略。在传统的存储器系统中,从控制器扫描从缓冲器,且如果没有找到局域性(locality)则关闭页。换句话说,虽然可能有得益于打开页的挂起的请求,但是页打开和关闭仅仅取决于从缓冲器的局域性。因为从控制器通常具有小的从缓冲器,从控制器不能通过预见来自主控制器的即将来临的请求,来应用成熟的打开页策略。在这个意义上说,仅仅由从控制器实施并被从缓冲器的大小限制的打开页策略常常导致打开页的过早关闭。

根据一个实施例,主控制器可扫描主缓冲器251并将关于页打开和关闭的信息提供给从控制器。如果在主缓冲器251中没有找到局域性,则主控制器使从控制器关闭打开的页。因为主控制器具有更深的缓冲区并可提前预见更多的请求,所以主控制器可提供更有效的打开页策略和行缓冲器管理。

图3A示出从控制器的页打开策略的对比示例。每个请求由它的体号和行缓冲器号表示。例如,Bn:Rm表示体号n和行缓冲器号m。每个体具有它自己专用的行缓冲器。在体中有多个行。通过打开行,将数据从行放置到与体相关联的行缓冲器。行缓冲器在DRAM中作为快速的高速缓冲存储器。行存取激活DRAM的体的行(页)并复制来自行缓冲器中的激活的行(打开的页)的数据。列存取选择激活的行的列并返回与激活的行和选择的列对应的数据的块。预充电在对激活的行进行存取之前对DRAM的体进行充电。刷新周期性地读取和写入DRAM来维护在DRAM中的数据。

主控制器将在主缓冲器201中的事务队列的一部分发送到从控制器,且从控制器将接收到的队列放置在从缓冲器202中。初始地,示例从控制器202的四个条目深度为空,所以在主缓冲器201中的四个队列被复制到从缓冲器202。复制到从缓冲器202的队列仅包括一个对于B0:R0的页的队列,所以从控制器打开对于B0:R0的页并在对于B0:R0的队列被完成之后关闭打开的页。由于主控制器与从控制器不共享信息(例如,在主缓冲器201中的队列),因此当在从缓冲器202中不再有对于打开页的请求等待时,从控制器关闭打开的页。在这种情况下,对于保持页打开以及关闭页的确定仅仅取决于基于从缓冲器202中的可用的队列的从控制器的逻辑。

图3B示出根据本公开是一个实施例的所述基于事务的存储器系统的页打开策略的示例。所述基于事务的存储器可通过参照主缓冲器251中的队列来扩展页打开策略。初始地,从缓冲器252为空,所以在主缓冲器251中的四个队列被复制到从缓冲器252中。被复制到从缓冲器252中的队列仅包括对于B0:R0的页的一个队列。然而,主缓冲器251包括对于B0:R0的页的挂起的队列。因此,由于请求相同页的挂起的队列将紧跟其后,主控制器可将指令(例如,标志)发送给从控制器来保持B0:R0的页打开。响应于主控制器的指令,从控制器可保持页打开直到请求相同页的等待队列到达以及相应的存储器事务完成。参照图4,将进一步详细的解释用于扩展的页打开策略的主控制器和从控制器之间交换的标志。

图4示出根据一实施例的基于事务的存储器系统的示例。与图1的存储器系统100相似,基于事务的存储器系统400包括主控制器410(例如,存储器控制器)、从控制器420(例如,DRAM控制器)以及存储器装置430(例如,DRAM)。主控制器410从CPU接收请求来对存储器装置430进行存取,并对与该请求对应的CPU进行响应。

虽然主控制器410、从控制器420和存储器装置430在分离的块中示出,但是应该理解主控制器410、从控制器420和存储器装置430可以以各种方式实施和配置。根据一个实施例,从控制器420可存在于存储器装置430中,以及存储器装置430可被配置为插入主机的存储器插槽中。根据另一个实施例,从控制器420可存在于主机的主控制器410中。

主控制器410可包括编码器411、调度器412、解码器413、地址映射解码器414以及标志构造器417。地址映射解码器414可存储存储器装置430的包括通道、区块、体和行信息的地址映射信息并将地址映射信号应用到具有通道ID、区块ID、体ID和行ID的编码的事务队列。因为地址映射解码器414可如图2B的示例所示基于地址映射信息对编码的事务队列进行重新排序,所以主控制器410可保持与从控制器420相同的地址映射。例如,当新的存储器装置被插入时,从控制器420在系统启动期间将新的存储器装置430的地址映射信息发送到主控制器410。地址映射解码器414对请求进行解码以进行交错和行缓冲器管理。

调度器412可采用各种调度方案来对体、区块、DIMM和XOR交错进行优化。调度的示例包括(但不局限于)通道轮循、区块轮循以及体轮循。标志构造器417可设置附加的标志来促进主控制器410和从控制器420之间的信息的交换。这些标志可用于保持基于如参照图3B的示例所解释的扩展页打开策略的页打开。附加的标志的示例包括(但不局限于)需要激活(requireACT)和需要预充电(requirePRE)。这些标志可与事务队列415中的请求一起被封包。

从控制器420包括解码器421、调度器422、封包器423以及刷新处理器424。解码器421可基于requireACT和requirePRE标志将直接的请求包(straightforward request packet)转化为存储器命令。当需要时,刷新处理器424可基于requireACT和requirePRE标志执行简单的刷新处理。从控制器420的刷新控制器(未示出)继续处理刷新操作。刷新处理器424可负责处理刷新情况。例如,刷新处理器424基于标志来中断标准的刷新操作,并在处理刷新情况之后从刷新操作之前的状态中恢复到刷新操作。

表1描述了由标志构造器417构造的两个附加的标志,即,requireACT和requirePRE。当包需要全地址(行和列地址)时,requireACT标志被设置为“真(true)”。使用包的全地址,从控制器420将接收到的包解码为行地址选择(RAS)-列地址选择(CAS)(或RAS-CAS写(CASW))。另一方面,当包仅需要部分地址(例如,仅行地址)时,requireACT标志被设置为“假(false)”。在这种情况下,从控制器420具有激活的行(RAS)并将数据包解码为CAS(或CASW)。

当主控制器410确定在主缓冲器中不存在行空间局域性时,requirePRE标志被设置为“真”。从控制器420将预充电命令附加到先前的命令来准备关闭打开的页并打开新的页。另一方面,当行空间局域性存在时,requirePRE标志被设置为“假”。在这种情况下,从控制器420不将预充电命令附加到先前命令,并使打开的页保持打开直到requirePRE标志被设置为“真”时关闭打开的页。

表1

下面伪代码提供了主控制器410如何构造和管理requireACT和requirePRE标志的示例指令。主控制器410包括在伪代码中被称为inputBuffer的事务队列415。requireACT和requirePRE标志二者初始地均被设置为“真”。主控制器410可扫描在事务队列415中的输入请求。当输入请求(incoming request)具有与在事务队列415中的挂起的请求相同的通道、区块、体和行时,挂起的请求的requirePRE标志被设置为“假”。“假”的requirePRE标志使相应的页打开直到输入请求被处理。同时,输入请求的requireACT标志和requirePRE标志分别被设置为“假”和“真”。一旦从尾部在队列中找到匹配,则扫描处理可停止。这是因为找到匹配之后的继续扫描处理可能造成对于其他挂起的请求的不必要的改变以及挂起的请求的标志的修改。当没有匹配时,requireACT标志和requirePRE标志不改变并被设置为“真”,以使从控制器420可以自由关闭打开的页。

利用主控制器410提供的标志,从控制器420可基于requireACT和requirePRE标志的状态将输入的包转换为存储器命令。表2示出从控制器420的解码器421可基于requireACT和requirePRE标志的状态从来自主控制器410的输入包产生的存储器命令的示例。当requireACT标志和requirePRE标志二者均为“真”时,解码器421可发布RAS-CAS-PRE或RAS-CASW-PRE命令。当requireACT标志为“真”,但是requirePRE标志为“假”时,解码器421可发布没有附加PRE命令的RAS-CAS或RAS-CASW命令。当requireACT标志和requirePRE标志二者均为“假”时,解码器421可不激活行或附加PRE命令而发布CAS或CASW命令。当requireACT标志为“假”,但requirePRE标志为“真”时,解码器421可发布没有激活行的CAS-PRE或CASW-PRE命令。

表2

从控制器420不同地处理刷新处理来适应主控制器410的变化,特别是由于两个附加标志(即,requireACT和requirePRE)的实施。下面的伪代码示例说明了从控制器420的刷新处理器424如何处理刷新命令。当页被打开时,刷新处理器424可确定何时以及如何提早强制执行预充电命令。当当前体状态不在激活的行状态下且最后命令为预充电命令时,刷新处理器424可确定强制预充电。为了强制执行预充电,激活命令和预充电命令可被插入。预充电命令首先被发布,刷新命令被隐含发布,然后激活命令被发布。当刷新命令被完成时,激活命令重新打开行。当刷新计数器到达零时,每一个体都处于闲置状态,并且刷新命令被发布。

根据一个实施例,调度器412可对主控制器410的事务队列415和从控制器420的命令队列425进行调度,来优化交错存储器事务。调度器412可通过主控制器410和从控制器420维持请求依赖性。当对存储器装置430进行存取时,调度器412可进一步通过从控制器420维持存储器命令依赖性同时遵循时间约束。调度器412可通过对在主控制器410的事务队列415中的挂起的请求进行重新排序,来优化存储器性能。主控制器410试图能够使并行化最大化地尽快发送请求,从而提高存储器系统400的性能。

在从控制器420中的挂起的命令可以以从控制器420可尽可能快地发送命令来优化性能的方式被重新排序。只要请求依赖性被维持(例如,读写顺序),以及命令依赖性被维持(例如,RAS CAS顺序),且如果存在资源可用(例如,体不忙),则调度器412可保持发布与输入请求相关联的命令。例如,调度器可接收命令的序列来对Bank 1、Bank 1、Bank 1和Bank 2进行存取。调度器412可对命令进行重新排序,以使体序列变为1、2、1和1。换句话说,对于访问Bank 2的命令,调度器412不需要等待所有的先前命令都被完成。只要请求和命令依赖性满足以及资源是可用的,则调度器412可对输入请求进行重新调度并尽可能快地发送重新调度的请求来优化性能。

根据一个实施例,存储器系统包括主控制器、与主机计算机连接的接口以及被构造为与从控制器结合的链路总线。主控制器包括地址映射解码器、事务队列以及调度器。地址映射解码器被构造为对结合到从控制器的存储器装置的地址映射信息进行解码。主控制器的调度器被构造为使用存储器装置的地址映射信息对在事务队列中的从主机计算机接收到的存储器事务请求进行重新排序。存储器系统采用基于在主控制器的事务队列中的挂起的存储器事务请求的扩展的打开页策略。

地址映射信息可包括通道ID、区块ID、体ID以及行ID。

主控制器还可包括标志构造器,且主控制器可将标志构造器构造的多个标志通过链路总线发送到从控制器。

所述多个标志可包括需要激活标志和需要预充电标志。

标志构造器可被构造为:当从主机计算机接收的输入存储器事务请求包括在事务队列中的挂起的存储器事务请求的通道ID、区块ID、体ID和行ID时,设置需要预充电标志来使存储器装置的激活的页打开。

根据一个实施例,存储器模块包括:包含解码器、调度器、命令队列和读取返回队列的从控制器;存储器装置。解码器被构造为接收存储器事务请求,基于存储器事务请求产生存储器命令,并将存储器命令放置在命令队列中。解码器还被构造为接收多个标志并基于所述多个标志对在命令队列中的存储器命令进行重新排序。

从控制器还可包括刷新处理器,该刷新处理器被构造为改变并基于多个标志改变和重新排序在命令队列中的存储器命令,并基于改变的和重新排序的存储器命令处理对于存储器装置的刷新操作。

调度器可被构造为基于在命令队列中的存储器命令将存储器命令和与存储器命令相关联的地址发送到存储器装置。

存储器模块还可包括封包器和读取返回队列。从存储器装置接收的数据可被放置在读取返回队列,封包器可被构造为产生包括数据的包并将包通过链路总线发送到主控制器。

从控制器还可包括第二调度器,该第二调度器被构造为将存储器命令和与存储器命令相关联的地址按放置在命令队列中的存储器命令的顺序发送到存储器装置。

根据一个实施例,一种用于提高存储器系统的性能的方法包括:通过链路总线从从控制器接收存储器装置的地址映射信息;从主机计算机接收存储器事务请求;将存储器事务请求放置在事务队列中;使用存储器装置的地址映射信息对在事务队列中的存储器事务请求进行重新排序。

地址映射信息可包括通道ID、区块ID、体ID和行ID。

所述方法还可包括构造多个标志并将多个标志通过链路总线发送到从控制器。

多个标志可包括需要激活标志和需要预充电标志。

所述方法还可包括:当从主机计算机接收的输入存储器事务请求包括事务队列中的挂起的存储器事务请求的通道ID、区块ID、体ID和行ID时,设置需要预充电标志来使存储器装置的激活的页打开。

根据一个实施例,一种用于提高存储器系统的性能的方法包括:将存储器装置的地址映射信息通过链路总线发送到主控制器;接收存储器事务请求;对存储器事务请求进行解码并基于解码的存储器事务请求产生存储器命令;将存储器命令放置在命令队列中;接收多个标志;基于所述多个标志对在命令队列中的存储器命令进行重新排序。

所述方法还可包括基于所述多个标记改变并重新排序在命令队列中的存储器命令,并基于改变和重新排序的存储器命令处理对于存储器装置的刷新操作。

所述方法还可包括基于在命令队列中的存储器命令将存储器命令和与存储器命令相关联的地址发送到存储器装置。

所述方法还可包括将从存储器装置中接收的数据放置在读取返回队列中,产生包括数据的包,以及将包通过链路总线发送到主控制器。

所述方法还可包括将存储器命令和与存储器命令相关联的地址按放置在命令队列中的存储器命令的顺序发送到存储器装置。

已如上描述了上述示例实施例以示出实施用于经由主存储器系统的协处理器和输入/输出装置的接口连接的系统和方法的各种实施例。对于本领域普通技术人员将发生公开示例实施例的各种修改和偏离。试图落在本发明的范围内的主题将由权利要求阐述。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1