专利名称:全缓冲dimm读数据替代写确认的制作方法
技术领域:
本发明一般涉及存储系统、组件和方法,特別是涉及有效地引退 (retire)重放队列中的条目的全緩沖存储控制器。
背景技术:
通常使用存储模块来实现常规计算机存储子系统。计算机电路板 装配了具有集成存储控制器或耦合到独立存储控制器的处理器。具有 集成存储控制器或独立存储控制器的处理器通过存储器总线连接到一 个或多个存储模块电连接器(总线也可连接到永久地安装在电路板上 的附加存储器)。按照电连接器中插入的存储;f莫块的数量和存储容量来 配置系统存储器。
当处理器速度增加时,将存储器总线速度压制到多点(通常称作 "多分支(multi-drop)")存储器总线模型不再保持可行的点。参照图1, 一种现行解决方案使用"点对点"存储器总线模型,该模型使用緩沖 存储模块。在图1中,计算机系统100包括主处理器105,它通过前 端总线108与存储控制器110进行通信,存储控制器110将主处理器 耦合到各种外围装置(除系统存储器之外其余未示出)。存储控制器110 通过高速点对点总线112与第一緩冲存储才莫块0进行通信。当第二緩 冲存储模块1包含在系统100中时,它与第一存储才莫块O共享第二高 速点对点总线122。附加高速点对点总线和緩沖存储片莫块可链接(chain) 在存储模块l之后,以便进一步增加系统存储器容量。
緩冲存储模块0通常属于存储模块。存储模块緩沖器(MMB)146 将冲莫块0连接到主机侧存储信道112和下游存储信道122。多个存储 设备(示出动态随机存取存储设备即"DRAM"、如DRAM 144)通过
存储设备总线(图1中未示出)连接到存储模块緩冲器146,以便为系统 100提供可寻址读/写存储器。作为一示范转储,考虑处理器105需要 访问与位于存储才莫块1上的物理存储器对应的存储器地址的情况。向 存储控制器IIO发出存储器请求,然后,存储控制器IIO在主存储信 道112上发出送往存储模块1的存储器命令。存储控制器110还将对 应于存储器命令的条目115指定到重放队列111中。与先前存储器命 令对应的先前条目可处于队列111中的条目115之前。
为了易处理的原因,仅在满足两个条件之后,才可从队列111中 引退条目115。首先,存储控制器110仅在接收到对应的无差错响应 之后才引退条目。其次,存储控制器IIO仅在已经引退所有先前条目 时才引退条目。
緩冲存储才莫块0的MMB 146接收该命令,必要时使它重新同步, 并在存储信道122上将它重新发送给緩冲存储模块1的MMB 148。 MMB 146检测到该命令^皮导向它自己,对该命令解码,并向那个緩冲 器所控制的DRAM传送DRAM命令和信令。如果转储是成功的,则 MMB 148通过存储模块0向存储控制器110回送无差错响应。在接收 到无差错响应之后,但是仅当还引退了所有先前条目时,存储控制器 IIO才从重放队列111中引退条目115。
由于经济性,,重放队列111的大小受到限制。因此,需要尽可能 迅速地引退条目。由于高速点对点总线112的北行带宽限制,可能延 迟无差错响应、如写确认的接收。这样一种写确认的延迟#~收转而可 延迟在条目115之后进入重放队列111的后续条目的引退。条目和后 续条目的延迟引退限制了重放队列111中对于新条目可用的空间量。
由于上述限制,存储控制器的重放队列中的自由空间量受到限制。 以下7>开解决这个和其它问题。
图1是示出常规存储控制器的简图。
图2是响应单个无差错响应而从重放队列中引退两个条目的存储 控制器的简图。
图3是示出图2的存储控制器如何引退条目的流程图。
图4A是示出图2所示的操作的时序图。
图4B是示出图2的存储控制器的备选操作的时序图。
具体实施例方式
图2示出按照单个无差错响应来引退两个重放队列条目的存储控 制器200的一个示例。存储控制器200包括发出引擎(issue engine)201、 存储器202和重放队列203。发出引擎201执行图3的流程图中所描 述的功能。在图4a的时序图中示出图2所示的信号的时间安排。
存储控制器200向存储模块1发送存储器命令204a。在这个示例 中,存储器命令204a是突发长度八的读命令,该读命令包括多循环读 操作的起始地址。在其它示例中,存储器命令是任何类型的读命令。 在重放队列203中创建与存储器命令204a对应的条目204b。在接收 到存储器命令204a时,存储模块1首先以起始地址开始读取数据。当 存储^f莫块1正读取数据时,该才莫块在无差错存储器响应204c中回送读 数据。
随后,存储控制器200向位于存储模块1的北方的存储模块0发 送存储器命令205a。在这个示例中,存储器命令205a是突发长度四的 写命令,该写命令在四个连续选通脉沖期间向存储才莫块0提供写数据。 在其它示例中,存储器命令205a是任何类型的写命令。在重放队列 203中创建与存储器命令205a对应的条目205b。条目205b是相对于 条目204b的连续条目。在接收到存储器命令205a时,存储模块0开 始写入^皮提供存储器命令205a的数据。存储模块0与存储才莫块1根据 存储器命令204b读取数据并发地开始写入数据。
存储控制器200向位于存储模块0的南方的存储模块1发送存储 器命令206a。存储器命令206a是与存储器命令204a相似的突发读命
令。在重放队列203中创建与存储器命令206a对应的条目206b。
存储模块0根据突发长度四的写命令205a来完成写入数据。但是, 因为存储模块1仍然正经由存储模块0的存储模块緩沖器(MMB)245 发送读数据,所以不存在存储模块O发送无差错响应205c的可用带宽。 包含读数据的无差错响应204c消耗北行方向的所有带宽。因此,存储 控制器200在这时不会观测到包含写确认的无差错响应。
在根据存储器命令204a读取数据之后,存储纟莫块1开始根椐存储 器命令204c读取数据。当存储才莫块l正读取数据时,它在无差错响应 206c中回送读数据。无差错响应206c消耗北行方向的所有带宽,并在 无差错响应204c之后立即被发送。根据常规FBD协议,存储控制器 200必须继续等待观测无差错响应205c,直到带宽可用为止。说明书 中所使用的"FBD协议"指的是例如JEDEC网站的FBD规范的任何 修订版本。无差错响应205c可包括显式信号,例如空闲模式或写确认。
存储控制器200接收无差错响应204c。从重放队列203中引退条 目204b,因为不存在未决的先前条目。虽然存储控制器200没有接收 到与条目205b对应的显式无差错响应205c,但是,存储控制器200 还可响应不对应无差错响应204c而引退条目205b。这与常规FBD协 议形成对照,其中存储控制器200必须继续等待无差错响应205c。因 此,可响应单个无差错响应204c而引退两个条目。
由于以下事件,在接收到不对应无差错响应204c时,可引退条目 205b。第一,条目205b对应于对位于被读取的存储模块的北方的存储 模块的写入。第二,写入与从南方的存储模块中的读取并发地发生。 第三,没有接收到与存储器命令205a对应的告警。与存储器命令205a 对应的告警会获得高于无差错响应204c的优先级。因此,无差错响应 204c的接收隐式地发信号通知存储控制器200关于没有发出告警以及 存储器命令205a应当已经成功。因此,可有利地在接收到对应无差错 响应205c之前及早引退条目205b。
随后,接收到无差错响应206c。可有利地立即引退条目206b,因
为存储器队列203中不存在先前条目。如果存储控制器200在引退条 目205b之前等待对应无差错响应205c,则先前条目会存在,从而引 起引退206b中的迟延。因此,与常规存储控制器相比,存储控制器 200及早引退条目205b和206b。
最后,可接收包含写确认的无差错响应205e。因为已经发信号通 知存储控制器200关于存储器命令205a是成功的,所以存储控制器 200可放弃观测显式无差错响应205c。任选地,由于存在上述事件而 放弃显式写确认205c有利地增加南行占用率。南行占用率的增加使最 大带宽增加超过具有相似重放队列限制的常规系统的多达50%。
上述过程如图3的流程图所示。参照图3,在框300,存储控制器 200发出读命令,以便使第一存储模块被读取。在框301,发出写命令, 以便使比第 一存储模块更向北的第二存储模块被并发地写入。随后, 在框302,存储控制器200在重放队列203中创建与读命令对应的第 一条目。在框303,创建与写命令对应的第二条目。
随后,在框304,存储控制器200等待与读命令对应的无差错响 应。如果在框305接收到无差错响应,则在框306A,存储控制器200 引退两个条目。如果没有接收到无差错响应,则在框306B,存储控制 器200重置该分支,然后对重放队列203的内容进行重放。
图4A示出图2所示系统的时序图。DIMM 1从存储控制器200 接收读命令204a,并在T6开始读取数据。DIMM0接收写命令205a, 并在T7与DIMM 1读取数据并发地开始写入数据。当DMM 1正读 取数据时,从DIMM1的传输204c在T7开始。传输204c继续进行到 T10,由此防止存储控制器200立即观测显式写确认205c。
同时,DIMM 1在T9从存储控制器200接收读命令206a,并开始 进行读取。紧接DIMM 1完成传输204c之后,传输206c在T 开始。 存储控制器200仍然无法^L测显式写确i人205c,因为传输204c和206c 消耗所有北行带宽。
同时,存储控制器200在T8开始从DIMM 1接收读数据传输204c。
当传输在Tu完成时,存储控制器200从重放队列203中引退条目204b。 存储控制器200还响应接收到不对应无差错响应204c而从重放队列 203中引退条目205b。不对应无差错响应204c不响应存储器命令205a 而被发送,并且不对应于条目205b。然而,条目205b被引退。最后, 在丁15,存储控制器200接收无差错响应206c,并引退条目206b。
无需使存储控制器200在第一开始(opening)Tu观测写确认205c。 通过放弃显式观测写确认205c,可为其它传输节省带宽。
图4B示出按照与图2所示不同的传输系列的时序图。存储控制器 200使DMM 1在T6开始第一读取以及DIMM 0在T 开始写入数据。 存储控制器200还使DIMM 0在TK)开始第二读取。
存储控制器200在T8开始4妾收与第一读取对应的无差错响应。当 在Tn接收到与第一读取对应的完整无差错响应时,与第一读取和所 述写入相关联的条目均被引退。换言之,响应不对应无差错响应而引 退与所述写入相关联的条目。最后,存储控制器200在T!5引退与第二 读取相关联的条目。
以上所述的系统可使用执4亍操作的部分或全部的专用处理器系 统、微控制器、可编程逻辑设备或微处理器。以上所述操作的一部分 可通过软件来实现,而其它操作可通过硬件来实现。
为了方便起见,操作描述为各种互连功能块或不同的软件;漠块。 但是,这不是必要的,并且可能存在一些情况,其中以不清晰的界限 将这些功能块或才莫块等效地聚合到单个逻辑设备、程序或操作中。在 任何情况下,功能块和软件模块或者灵活界面的特征可单独实现,或 者结合硬件或软件中的操作来实现。
已经在本发明的优选实施例中描述和说明了本发明的原理,应当 清楚地知道,可在不背离这类原理的前提下,对本发明的设置和细节 进行修改。谨要求落入以下权利要求书的精神和范围之内的所有修改 和变更的4又益。
权利要求
1.一种存储控制器,包括控制逻辑,响应通过点对点存储器总线从存储模块发送的单个响应而引退一引退队列中的至少两个条目。
2. 如权利要求l所述的存储控制器,其中 所述至少两个条目的第一条目对应于使第一存储才莫块进行读取的第一存储器命令;以及所述至少两个条目的第二条目对应于使第二存储模块进行写入的 第二存储器命令。
3. 如权利要求2所述的存储控制器,其中,所述第一存储模块是 所述存储^^莫块并且位于所述第二存储才莫块的南方。
4. 如权利要求3所述的存储控制器,其中,所述单个响应对应于 所述第 一条目和所述第 一存储器命令。
5. 如权利要求4所述的存储控制器,其中,所述单个响应包括从 所述第 一存储才莫块中读取的数椐。
6. 如权利要求5所述的存储控制器,其中,所述第一存储器命令 指导所述第二存储才莫块与所述第一存储才莫块读取并发地进行写入。
7. —种方法,包括发送使第 一存储坤莫块进行读取的第 一存储器命令;发送使第二存储4莫块进行写入的第二存储器命令,所述第二存储 模块比所述第一存储冲莫块更向北;指定与所述第 一存储器命令对应的第 一队列条目以及与所述第二 存储器命令对应的第二队列条目;以及响应从所述第一存储才莫块始发的响应而引退两个队列条目。
8. 如权利要求7所述的方法,其中,所述响应包括从所述第一存 储模块中读取的数据。
9. 如权利要求7所述的方法,其中,所述响应不对应于所述第二存储器命令。
10. 如权利要求7所述的方法,其中,没有接收到响应所述第二 存储器命令的写确认。
11. 如权利要求7所述的方法,还包括与所述第一存储才莫块读 取并发地将数据写入所述第二存储;^莫块。
12. 如权利要求7所述的方法,其中,所述第一存储器命令包括 突发长度八的读取或者一对紧接的开放页突发长度四的读取。
13. —种存储装置,包括接收南行存储器读命令的控制逻辑,所述控制逻辑将所述南行存 储器读命令转发给存储模块的存储模块緩沖器,接收存储器写命令,向存储控制器转发与所述存储器读命令对应的北行响应,以及确定是 否发送与所述存储器写命令对应的无差错响应。
14. 如权利要求13所述的存储装置,其中,所述存储控制器根据 所述北行响应来确定发生写入。
15. 如权利要求13所述的存储装置,其中,所述响应包括从所述 存储模块中读取的数据。
16. 如权利要求13所述的存储装置,其中,所述存储控制器响应 所述北行响应而引退重放队列中的两个条目,所述北行响应包括从所 述存储^t块中读取的数据。
17. —种系统,包括向第 一存储模块发送第 一存储器命令的控制逻辑;响应所述第 一存储器命令而进行读取的所述第 一存储冲莫块;向第二存储模块发送第二存储器命令的所述控制逻辑,所述第二存储模块比所述第 一存储才莫块更向南;响应所述第二存储器命令而进行写入的所述第二存储才莫块; 指定与所述第一存储器命令对应的第一队列条目和与所述第二存储器命令对应的第二队列条目的所述控制逻辑;以及响应从所述第一存储^^莫块始发的响应而引退两个队列条目的所述 控制逻辑。
18. 如权利要求17所述的系统,其中,所述响应包括从所述第一存储才莫块中读取的数据。
19. 如权利要求17所述的系统,其中,所迷响应不对应于所述第 二存储器命令。
20. 如权利要求17所述的系统,其中,没有接收到响应所述第二 存储器命令的写确认。
21. 如权利要求17所述的系统,还包括与所述笫一存储模块读 取并发地将数据写入所述第二存储模块的所述控制逻辑。
22. 如权利要求18所述的系统,其中,所述第一存储器命令包括 突发长度八的读取或者一对紧接的突发长度四的读取。
全文摘要
存储控制器因单个无差错响应而使用某种方案从重放队列中引退两个条目。有利的是,可比常规系统更早地引退重放队列中的条目,从而使重放队列的大小为最小。
文档编号G06F13/42GK101346708SQ200680049022
公开日2009年1月14日 申请日期2006年12月11日 优先权日2005年12月28日
发明者B·A·克里斯藤森, J·W·亚历山大, K·程, R·阿加瓦尔 申请人:英特尔公司