用于对存储器响应进行排序的存储器设备、计算机系统及方法

文档序号:6497660阅读:125来源:国知局
用于对存储器响应进行排序的存储器设备、计算机系统及方法
【专利摘要】本发明提供可用于接收命令及对存储器响应进行排序的存储器设备。一种此存储器设备包含响应逻辑,所述响应逻辑通过多个通道耦合到多个存储器单元且可经配置以从所述多个存储器单元接收多个存储器响应。排序逻辑可耦合到所述响应逻辑且经配置以致使至少部分地基于系统协议依顺序提供所述响应逻辑中的所述多个存储器响应。举例来说,所述排序逻辑可对存储于所述响应逻辑中的所述多个存储器响应强制执行总线协议规则,以确保依正确顺序从所述存储器设备提供响应。
【专利说明】用于对存储器响应进行排序的存储器设备、计算机系统及方法
【技术领域】
[0001]本发明涉及存储器设备,且更明确地说,在一个实施例中,涉及允许同时使用多个存储器通道的存储器控制器。
【背景技术】
[0002]近年来,随着存储器装置的输入/输出速度已增加,较新的实施方案已开始接近性能限制,藉此耗尽常规架构的效用。
[0003]因此,为作出补偿,一些方法已转向采用多通道存储器架构,其中可经由分离、独立逻辑通道通过同时命令来存取存储器单元。这允许命令以较高效的速率穿过命令队列,因为通道一变成可用,就可提供命令。简而言之,将命令保持于队列中的时间量减小。
[0004]然而,这种方法不是不具备其缺陷的。传统上,通过存储器控制器对命令进行排序已在事务队列层级强制执行。就是说,排序逻辑已用以对所述命令队列强制执行特定排序规则,以将命令提供给存储器单元,使得从存储器单元传回响应的顺序是符合所要响应顺序。因此,按照此方案,多通道存储器存取方案的性能受阻于以下事实:一些命令甚至在通道可用时也不能提供(例如发出),因为在一些情况下,在可提供等待命令之前,必须从存储器单元接收对应于先前命令的响应。虽然此实施方案确保依正确顺序传回响应,但在存储器控制器等待从存储器单元接收所述响应时,可用的通道仍保持未被使用。
[0005]相应地,因此需要一种利用多通道存储器存取且无关于何时提供响应而经由可用通道将命令提供给存储器单元的改进的存储器设备及方法。
【专利附图】

【附图说明】
[0006]图1是根据本发明的实施例的存储器设备的框图。
[0007]图2是根据本发明的实施例的包含可用于图1中的存储器控制器的存储器设备的框图。
[0008]图3是根据本发明的实施例的排序逻辑单元的框图,所述排序逻辑单元可用于图2的存储器控制器中。
[0009]图4是说明根据本发明的实施例的存储器设备的操作期间的各种信号的时序图。
[0010]图5是根据本发明的替代实施例的存储器设备的框图。
[0011]图6是根据本发明的实施例的计算机系统的框图。
【具体实施方式】
[0012]下文陈述特定细节以提供对本发明的实施例的充分理解。然而,所属领域的技术人员将明白,可在不具备这些特定细节的情况下实践本发明的实施例。此外,本文描述的本发明的特定实施例是以实例方式提供,且不应被用以将本发明的范围限于这些特定实施例。在其它例子中,并未详细展示众所周知的电路、控制信号、时序协议及软件操作,以免不必要地模糊本发明。
[0013]图1说明根据本发明的一个实施例的存储器设备100。存储器设备可为单个存储器装置(例如)或单独装置的组合。存储器设备可为单个半导体裸片或裸片的组合的形式,且可位于单个封装中或封装的组合中。存储器设备100可包含存储器控制器102,其耦合到分别用以接收数据、地址及命令信号的数据总线110、地址总线112及命令总线114。所述存储器控制器可进一步经由通信总线120耦合到多个存储器单元104。所述存储器控制器经配置以执行各种存储器功能(例如将存储器命令提供给存储器单元104),响应于此,存储器单元104产生对应的存储器响应。所述存储器控制器进一步经配置以至少部分地基于通过系统总线协议指定的顺序提供存储器响应。在至少一个实施例中,存储器响应可包括对应于读取命令的读取数据及/或对应于写入命令的写入确认数据。存储器响应可进一步包括其它类型的数据且不受本文中的描述限制。
[0014]存储器单元104可包括任何数目个存储器单元,且进一步可包括任何数目个逻辑存储器分区。此外,通信总线120可包括任何数目个位线及任何数目个逻辑通道。举例来说,在一个实施例中,每一存储器单元可对应于相同数目个逻辑通道,例如每单元8个通道。此外,在至少一个实施例中,可通过(例如)增加或减少用以控制存储器单元104的独立芯片选择信号的数目来改变存储器单元104中的逻辑存储器分区的数目及/或通信总线120的逻辑通道的数目。所属领域的技术人员将了解,还可在不脱离本发明的范围的情况下使用其它实施方案,例如经配置以增加或减少与每一存储器单元104相关联的通道的数目的单独控制逻辑单元。
[0015]在操作中,存储器控制器102可经由命令总线114接收命令,并将接收到的命令提供给存储器单元104。举例来说,可通过系统总线从属装置(未图示)经由命令总线114将命令提供给存储器控制器102。也可通过其它装置提供命令。可将存储器控制器102所接收的每一命令排入队列,并随后通过排序逻辑针对读取/写入危险冲突检查每一命令。危险冲突可指代由特定的命令顺序(例如序列)所致的操作错误,例如提供给存储器单元104的相同行的读取命令与写入命令之间的页冲突。所述排序逻辑可包含于存储器控制器102中,且在替代实施例中,所述排序逻辑可与存储器控制器102分离。
[0016]除危险检查以外,存储器控制器102中的排序逻辑可确定排入队列的命令是否遵循屏障命令。响应于屏障命令的接收,所述排序逻辑可延迟将随后接收到的命令提供给存储器单元104,直到对应于在接收到所述屏障命令之前接收到的命令的响应已依如受控于存储器控制器102中的排序逻辑的所需顺序从存储器单元104提供给所述系统总线从属装置(或将命令提供给存储器控制器102的其它装置)为止。最后,排序逻辑还可确定排入队列的命令是否可产生页命中。就是说,存储器控制器102可确定是否可通过两个或两个以上排入队列的命令来存取存储器单元104的同一行,而在将每一命令提供给存储器单元104之间不关闭且重新开启所述行。如果检测到页命中,那么所述排序逻辑可对队列中的命令进行排序(例如重新排序),例如使所述队列中一或多个命令提前或延迟,以减少必须开启且关闭特定行的次数。
[0017]如先前描述,假设所接收命令不产生危险冲突或页命中或不遵循屏障命令,那么存储器控制器102可经配置以至少部分地基于系统总线协议对存储器响应进行排序(例如重新排序),且存储器控制器102可经配置以如经由命令总线114接收命令般将命令提供给存储器单元104。因此,存在以下可能性:从存储器单元104提供给存储器控制器102的存储器响应可能不匹配其中将对应的命令提供给存储器单元104的顺序,也不匹配系统协议所需的顺序。为了根据所需顺序将存储器响应提供给装置(例如系统总线从属装置),而无关于将响应从存储器单元104提供给存储器控制器102的顺序,存储器控制器102可控制通过所述存储器控制器提供响应的顺序,使得依所述所需顺序传回响应。
[0018]如下文将更详细地阐释,除了一些命令(例如危险、页命中及屏障命令)以外,命令可在其排入队列之后即刻提供给存储器单元104,因为所述排序逻辑允许命令实际上以任何序列提供给存储器单元104。简而言之,对应于存储器单元104的存储器通道一可用,就可将命令提供给存储器单元104。在至少一个实施例中,因为每一单元通常对应于多个通道,所以可同时将多个存储器命令提供给同一存储器单元104。
[0019]存储器控制器102所接收的命令可包含主装置识别位(主装置ID),其指示请求发出命令的系统总线主装置;及事务识别位(事务ID),其指示请求主装置内的事务流。如果系统总线主装置通过系统总线从属装置202 (图2)将多个命令提供给存储器控制器102,那么由于所述命令对应于相同的事务流,请求系统总线主装置在不依赖于其中提供响应的顺序的情况下可不能够区分响应。就是说,所述响应的顺序应对应于所述主装置所指定以使正确操作发生的所需顺序。因此,如果在将命令提供给存储器单元104之后,对应的存储器响应并未依所述所需顺序从存储器单元104提供给存储器控制器102,那么存储器控制器102在将响应提供给系统总线从属装置202时应对所述响应进行重新排序。
[0020]图2说明根据本发明的实施例的存储器设备200。存储器设备200可包含存储器控制器201,存储器控制器201在至少一个实施例中可用于图1的存储器设备100中。存储器控制器201可包含耦合到储库状态机206及排序逻辑210的队列204。队列204经配置以经由命令总线214从系统总线从属装置202接收命令。储库状态机206可通过通信总线220耦合到存储器单元208a到208η。此外,存储器控制器201可进一步包括响应逻辑212及读取数据缓冲器218a到218η。读取数据缓冲器218a到218η可通过通信总线225分别耦合到存储器单元208a到208η,且每一读取数据缓冲器218a到218η也可通过缓冲器总线230进一步耦合到响应逻辑212。最后,响应逻辑212可通过响应总线235耦合到系统总线从属装置202。在至少一个实施例中,响应总线235可与其它总线物理上分离,或可与例如命令总线214等其它总线多路复用。
[0021]在操作中,可经由命令总线214将命令从系统总线从属装置202提供给存储器控制器201的队列204。在那点上,排序逻辑210可针对如先前描述的危险冲突、屏障命令及页命中检查所接收到的命令。在至少一个实施例中,例如在图2中描述的实施例中,可使用队列204来存储用于多个存储器单元208a到208η的所接收命令。在另一实施例中,每一存储器单元208a到208η可耦合到相应队列204a到204η。
[0022]排入队列的命令可提供给存储器库状态机206,其中一旦通道变为可用于待存取的存储器单元208a到208η,就可将每一命令提供给存储器单元208a到208η。在一个实施例中,储库状态机206可含有控制逻辑以确定通道是否可用,或在另一实施例中,储库状态机206可从外部控制逻辑接收指示特定通道可用于命令的信号。此外,在一个实施例中,可使用多个储库状态机206。举例来说,存储器控制器201可包含对应于每一存储器库208a到208η的每一通道的储库状态机206。存储器控制器201可替代地每一通道使用任何数目个储库状态机206。
[0023]一旦已将命令提供给存储器单元208,存储器单元208就可将响应提供给对应的读取数据缓冲器218。虽然在一个实施例中,每一存储器单元208a到208η可对应于读取缓冲器218a到218η,但是在另一实施例中,存储器单元208a到208η可与单个读取数据缓冲器218 (未图示)耦合,并将响应提供给所述读取数据缓冲器218。所属领域的技术人员将了解,可在不脱离本发明的范围的情况下,对读取数据缓冲器218a到218η的实施方案作出变动,且实施例并不受本文陈述的特定实施例限制。
[0024]可经由缓冲器总线230从读取数据缓冲器208a到208η提供响应,且通过响应逻辑212接收所述响应。如上文所述,一旦通过响应逻辑212接收到所述响应,排序逻辑210就可致使所述响应排序,使得所述响应放成请求系统总线主装置所需的顺序(例如序列)。举例来说,排序逻辑210可经配置以对存储于响应逻辑212中的响应强制执行总线协议规贝U,以确保响应依正确顺序首先经由响应总线235提供给系统总线从属装置202,且最终提供给请求系统总线主装置。排序逻辑210可致使响应逻辑212所接收的响应至少部分地基于独立于其中响应逻辑212接收所述响应的顺序的顺序而提供。
[0025]图3是说明根据本发明的实施例的排序逻辑300的框图。排序逻辑300可用作图2的存储器设备200中的排序逻辑210。排序逻辑300可包含排序控制逻辑301、接收队列310及响应队列312,其全部可耦合到响应逻辑305。接收队列310可经配置以存储主装置ID、事务ID及读取识别位(读取ID),且响应队列312可经配置以存储通道选择位及读取ID。此外,在至少一个实施例中,接收队列310可实施为移位缓冲器。
[0026]在操作中,当系统总线从属装置202将命令提供给队列204时(图2),接收队列310也可接收所述命令,并存储对应于所述命令的主装置ID及事务ID。此外,接收队列310可产生所述命令的唯一读取ID,进而允许将所述命令从对应于同一主装置ID及事务ID的命令区分开。随着提供命令给存储器单元208a到208η且如上所述般提供对应响应,可将每一响应存储在响应逻辑305中。此外,可将对应于每一响应的读取ID及通道选择位提供给响应队列312,进而识别每一响应所对应的命令,以及提供所述响应的通道。因为一些命令可需要使用多个通道,所以通道选择位的使用允许响应队列312确保提供对每一命令的完整响应。在一些实施例中,通道选择位可经一位热码编码(one-hot encode)或可使用二进制来进行通道识别。
[0027]如上文所述,随着响应在响应逻辑305中累积,排序控制逻辑301可致使响应逻辑305至少部分地基于请求主装置所需的顺序将响应提供给系统总线从属装置202。举例来说,在至少一个实施例中,如果存储在响应逻辑305中的响应包括相同的主装置ID及事务ID,那么仅可基于在存储器控制器201接收到命令时产生的读取ID来区分所述响应。应将以此方式区分的响应依所需顺序提供给系统总线从属装置202,因为请求主装置将无法以其它方式对所述响应彼此区分。
[0028]图4是说明根据本发明的一实施例的图2的存储器设备200的操作的时序图。系统总线从属装置202 (图2)可经由命令总线214分别将可在时间Ttl及T1接收的命令401及命令402提供给存储器控制器201。可将所述命令提供给存储器单元208a到208η,且随后在时间T2可经由缓冲器总线230在响应逻辑212处接收响应403作为对命令401的响应。[0029]响应410可对应于命令402,且如图4中分别在时间T3_、T3及T3+的响应410所说明,可在时间T2之前、同时或之后,经由缓冲器总线230通过响应逻辑212接收响应410。在例如图4中所示的一个实施例中,响应逻辑212可在响应403之前(例如在时间T3-)接收响应410。在另一实施例中,响应逻辑212可在响应403之后(例如在时间T3+)接收响应410。在又一实施例中,可近似同时(例如,在时间T3)接收响应410及403。
[0030]如上文所述,可依如通过存储器控制器201接收命令的顺序将命令提供给存储器单元208a到208η,且可依请求主装置所需的顺序将响应提供给系统总线从属装置202。因此,无关于通过响应逻辑212相对于响应403接收响应410的时间,经由响应总线235将响应提供给系统总线从属装置202的顺序可保持相同。举例来说,响应420及421可对应于依请求主装置所需的顺序重新排序的响应403及410,且分别在时间T4及T5提供。就是说,无关于其中通过响应逻辑212从存储器单元208a到208η (例如在时间Τ3-、Τ3或T3+)接收响应403及410的顺序,可依如图4中说明的顺序提供响应420及421。此外,如先前所描述,无需以接收对应命令的顺序提供响应。举例来说,在另一实施例中,如果需要,那么可将响应420及421提供给系统总线从属装置,使得在响应420之前提供响应421。
[0031]图5说明根据本发明的替代实施例的存储器设备500。存储器设备500包含先前已关于图2的存储器设备进行描述的元件。图5使用图2中使用的相同参考数字展示那些元件,且共用元件的操作如先前所述。因此,为简洁起见,将不会重复这些元件的操作的详细描述。
[0032]与存储器设备200形成对比,存储器设备500进一步包括可耦合到存储器单元208a到208η且经配置以存储写入响应的写入缓冲器518a到518η。写入缓冲器518a到518η可进一步耦合到响应逻辑212,且在一个实施例中,可分别对应于存储器单元208a到208η的每一单元。在另一实施例中,写入缓冲器518a到518η可对应于每一通道。在又一实施例中,单个写入缓冲器518 (未图示)可耦合到所有存储器单元208a到208η及响应逻辑212。所属领域的技术人员将了解,也可在不脱离本发明的范围的情况下使用其它实施方案,例如经配置以存储读取及写入响应二者的单个缓冲器。
[0033]在操作中,可向存储器单元208a到208η提供写入命令,且继而提供写入响应。随后可将每一写入响应提供给写入缓冲器518,写入缓冲器518继而可将所述响应提供给响应逻辑212。响应逻辑212可依所需顺序将所述写入响应提供给系统从属装置总线202。在一个实施例中,排序逻辑210可致使响应逻辑212独立于提供读取响应的顺序将写入响应提供给系统总线从属装置202。在另一实施例中,排序逻辑210可至少部分地基于提供读取响应的顺序提供与入响应。
[0034]图6说明根据本发明的一实施例的计算系统600。计算系统600可包含经配置以执行各种计算功能的处理器605,以及存储器设备603。存储器设备603可通过总线606耦合到处理器605,且可进一步包含通过通信总线620耦合的存储器控制器601及存储器单元608。在至少一个实施例中,存储器控制器601可为图2中说明的实施例中的存储器控制器201。在一些实施例中,计算系统600可包括桌上型计算机、膝上型计算机、电话、个人数字助理(PDA)、媒体播放器(即,MP3播放器)、服务器、电器、游戏装置、连网装置(即,路由器)、电视机或可经配置以执行本文描述的过程中的任一过程的至少一部分的其它装置。计算系统600也可包括这些装置的任何组合。[0035]在操作中,如上文参考图2所描述,系统总线从属装置(未图示)可从系统总线主装置(未图示)接收存储器命令。如上文参考图2所描述,存储器控制器601可从系统总线从属装置接收所述命令,且将所述命令提供给存储器单元608。在一些实施例中,系统总线主装置可包含于处理器605中,或者可包含于系统控制器(未图示)中,且从处理器605接收命令。此外,在至少一个实施例中,存储器控制器601也可包含于系统控制器中。
[0036]从前述内容将了解,虽然本文已出于说明的目的描述了本发明的特定实施例,但可在不脱离本发明的精神及范围的情况下进行各种修改。举例来说,虽然在对存储器控制器中的响应进行排序的上下文中阐释本发明的实施例,但是将理解,一旦从存储器控制器提供给系统总线,就可对响应进行排序。因此,除了受所述权利要求限制以外,本发明不受限制。
【权利要求】
1.一种存储器设备,其包括: 响应逻辑,其经配置以接收多个存储器响应;以及 排序逻辑,其耦合到所述响应逻辑且经配置以致使所述多个存储器响应至少部分地基于协议进行排序。
2.根据权利要求1所述的设备,其中所述多个存储器响应中的个别存储器响应包括读取识别位,且所述排序逻辑进一步经配置以致使所述多个响应至少部分地基于所述相应识别位进行排序。
3.根据权利要求1所述的设备,其进一步包括: 队列,其耦合到所述排序逻辑,所述排序逻辑进一步经配置以致使所述队列中的多个命令至少部分地基于检测到页命中及危险冲突中的至少一者进行排序。
4.根据权利要求3所述的设备,其进一步包括: 储库状态机,其耦合到所述队列且经配置以从所述队列接收所述多个命令,所述储库状态机进一步经配置以至少部分地基于多个存储器单元中的至少一者具有可用通道而将所述多个命令中的至少一者提供给所述多个存储器单元中的所述至少一者。
5.根据权利要求1所述的设备,其进一步包括: 多个缓冲器,其耦合到 所述响应逻辑且经配置以将所述多个响应提供给所述响应逻辑。
6.根据权利要求1所述的设备,其进一步包括以下各项中的至少一者: 读取缓冲器,其耦合到所述响应逻辑且经配置以提供读取存储器响应;以及 写入缓冲器,其耦合到所述响应逻辑且经配置以提供写入存储器响应。
7.根据权利要求1所述的设备,其中所述响应逻辑进一步经配置以存储读取及写入存储器响应。
8.根据权利要求7所述的设备,其中所述排序逻辑进一步经配置以致使依独立于所述响应逻辑接收所述响应的顺序的顺序而提供所述响应逻辑所接收的读取及写入存储器响应。
9.一种计算系统,其包括: 多个存储器单元; 系统总线从属装置;以及 存储器控制器,其耦合到所述存储器单元及所述系统总线从属装置,所述存储器控制器包括: 响应逻辑,其经配置以依顺序从所述多个存储器单元接收多个响应;及排序逻辑,其耦合到所述响应逻辑且经配置以致使依独立于所述响应逻辑接收所述多个响应的顺序的顺序将所述多个响应提供给所述系统总线从属装置。
10.根据权利要求9所述的计算系统,其中所述存储器控制器通过包括多个逻辑通道的总线耦合到所述多个存储器单元。
11.根据权利要求10所述的计算系统,其中所述多个存储器单元中的每一者对应于相应的逻辑通道。
12.根据权利要求9所述的计算系统,其中所述系统总线从属装置耦合到系统总线主装置,且经配置以从所述系统总线主装置接收命令并将响应提供给所述系统总线主装置。
13.根据权利要求9所述的计算系统,其中所述多个响应对应于相应的多个命令。
14.根据权利要求9所述的计算系统,其中所述多个响应包括读取响应及写入响应,所述读取响应包括读取数据,且所述写入响应包括写入确认数据。
15.根据权利要求9所述的计算系统,其中至少部分地响应于对所述响应逻辑所接收到的所述多个响应进行重新排序而将所述多个响应提供给所述系统总线主装置。
16.一种计算系统,其包括: 处理器;以及 存储器设备,其耦合到所述处理器,所述存储器设备经配置以产生多个存储器响应,所述存储器设备进一步经配置以依独立于所述存储器设备产生所述存储器响应的顺序的顺序将所述多个存储器响应提供给所述处理器。
17.根据权利要求16所述的计算系统,其中所述存储器设备包括: 多个存储器单元,其经配置以产生所述多个存储器响应;以及 存储器控制器,其耦合到所述存储器单元,所述存储器控制器经配置以至少部分地基于排序逻辑而接收所述多个存储器响应并对其进行排序。
18.根据权利要求16所述的计算系统,其中所述处理器包括系统总线主装置,所述系统总线主装置经配置以将存储器命令提供给总线并从所述总线接收所述多个存储器响应。
19.根据权利要求16所述的计算系统,其进一步包括系统控制器,所述系统控制器耦合到所述处理器及所述存储器设备,所述系统控制器经配置以从所述处理器接收命令并将所述命令提供给所述存储器控制器。
20.根据权利要求19所述的计算系统,其中所述存储器控制器包括系统总线从属装置及系统总线主装置中的至少一者。
21.一种对存储器响应进行排序的方法,其包括: 产生对应于提供给存储器单元的多个命令的多个存储器响应; 独立于将所述命令提供给所述存储器单元的顺序对所述多个响应进行排序;以及 至少部分地基于所述排序将所述多个响应提供给系统总线。
22.根据权利要求21所述的方法,其中所述多个命令中的至少一者产生危险冲突及页命中的至少一者。
23.根据权利要求21所述的方法,其中所述多个命令中的至少一者是缓冲器命令。
24.根据权利要求21所述的方法,其进一步包括: 其中对所述多个响应进行排序包括至少部分地基于系统协议对所述多个响应进行排序。
25.根据权利要求21所述的方法,其中所述多个命令中的至少一者是读取命令。
26.根据权利要求21所述的方法,其中将所述多个响应提供给系统总线包括:将所述多个响应提供给系统总线从属装置。
27.一种对存储器响应进行排序的方法,其包括: 接收第一命令及第二命令; 产生对应于所述第一命令的第一响应及对应于所述第二命令的第二响应; 对所述第一响应及所述第二响应强制执行排序逻辑;以及 将对应于所述第一响应的第一经排序响应及对应于所述第二响应的第二经排序响应提供给输出。
28.根据权利要求27所述的方法,其中所述将对应于所述第一响应的第一经排序响应及对应于所述第二响应的第二经排序响应提供给输出包括: 将所述第二经排序响应提供给系统总线;以及 在所述提供所述第二经排序响应之后,将所述第一经排序响应提供给所述系统总线。
29.根据权利要求27所述的方法,其进一步包括: 在所述接收第一命令及第二命令之后,将所述第一命令及所述第二命令中的至少一者提供给存储器单元。
30.根据权利要求29所述的方法,其中所述提供所述第一命令及所述第二命令中的至少一者包括: 开启所述存储器单元的行; 存取所述存储器单元中对应于所述第一命令的第一数据集合; 存取所述存储器单元中对应于所述第二命令的第二数据集合;以及 关闭所述存储器单元 的所述行。
【文档编号】G06F13/14GK103999159SQ201280061777
【公开日】2014年8月20日 申请日期:2012年11月2日 优先权日:2011年12月13日
【发明者】罗伯特·M·沃克 申请人:美光科技公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1