首页> 中国专利> 全缓冲DIMM读数据替代写确认

全缓冲DIMM读数据替代写确认

摘要

存储控制器因单个无差错响应而使用某种方案从重放队列中引退两个条目。有利的是,可比常规系统更早地引退重放队列中的条目,从而使重放队列的大小为最小。

著录项

  • 公开/公告号CN101346708A

    专利类型发明专利

  • 公开/公告日2009-01-14

    原文格式PDF

  • 申请/专利权人 英特尔公司;

    申请/专利号CN200680049022.0

  • 申请日2006-12-11

  • 分类号G06F13/16;G06F13/42;

  • 代理机构中国专利代理(香港)有限公司;

  • 代理人朱海煜

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-17 21:23:40

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2012-03-21

    授权

    授权

  • 2009-03-04

    实质审查的生效

    实质审查的生效

  • 2009-01-14

    公开

    公开

说明书

技术领域

本发明一般涉及存储系统、组件和方法,特别是涉及有效地引退 (retire)重放队列中的条目的全缓冲存储控制器。

背景技术

通常使用存储模块来实现常规计算机存储子系统。计算机电路板 装配了具有集成存储控制器或耦合到独立存储控制器的处理器。具有 集成存储控制器或独立存储控制器的处理器通过存储器总线连接到一 个或多个存储模块电连接器(总线也可连接到永久地安装在电路板上 的附加存储器)。按照电连接器中插入的存储模块的数量和存储容量来 配置系统存储器。

当处理器速度增加时,将存储器总线速度压制到多点(通常称作 “多分支(multi-drop)”)存储器总线模型不再保持可行的点。参照图1, 一种现行解决方案使用“点对点”存储器总线模型,该模型使用缓冲 存储模块。在图1中,计算机系统100包括主处理器105,它通过前 端总线108与存储控制器110进行通信,存储控制器110将主处理器 耦合到各种外围装置(除系统存储器之外其余未示出)。存储控制器110 通过高速点对点总线112与第一缓冲存储模块0进行通信。当第二缓 冲存储模块1包含在系统100中时,它与第一存储模块0共享第二高 速点对点总线122。附加高速点对点总线和缓冲存储模块可链接(chain) 在存储模块1之后,以便进一步增加系统存储器容量。

缓冲存储模块0通常属于存储模块。存储模块缓冲器(MMB)146 将模块0连接到主机侧存储信道112和下游存储信道122。多个存储 设备(示出动态随机存取存储设备即“DRAM”、如DRAM 144)通过 存储设备总线(图1中未示出)连接到存储模块缓冲器146,以便为系统 100提供可寻址读/写存储器。作为一示范转储,考虑处理器105需要 访问与位于存储模块1上的物理存储器对应的存储器地址的情况。向 存储控制器110发出存储器请求,然后,存储控制器110在主存储信 道112上发出送往存储模块1的存储器命令。存储控制器110还将对 应于存储器命令的条目115指定到重放队列111中。与先前存储器命 令对应的先前条目可处于队列111中的条目115之前。

为了易处理的原因,仅在满足两个条件之后,才可从队列111中 引退条目115。首先,存储控制器110仅在接收到对应的无差错响应 之后才引退条目。其次,存储控制器110仅在已经引退所有先前条目 时才引退条目。

缓冲存储模块0的MMB 146接收该命令,必要时使它重新同步, 并在存储信道122上将它重新发送给缓冲存储模块1的MMB 148。 MMB 146检测到该命令被导向它自己,对该命令解码,并向那个缓冲 器所控制的DRAM传送DRAM命令和信令。如果转储是成功的,则 MMB 148通过存储模块0向存储控制器110回送无差错响应。在接收 到无差错响应之后,但是仅当还引退了所有先前条目时,存储控制器 110才从重放队列111中引退条目115。

由于经济性,重放队列111的大小受到限制。因此,需要尽可能 迅速地引退条目。由于高速点对点总线112的北行带宽限制,可能延 迟无差错响应、如写确认的接收。这样一种写确认的延迟接收转而可 延迟在条目115之后进入重放队列111的后续条目的引退。条目和后 续条目的延迟引退限制了重放队列111中对于新条目可用的空间量。

由于上述限制,存储控制器的重放队列中的自由空间量受到限制。 以下公开解决这个和其它问题。

附图说明

图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首先以起始地址开始读取数据。当 存储模块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 发送读数据,所以不存在存储模块0发送无差错响应205c的可用带宽。 包含读数据的无差错响应204c消耗北行方向的所有带宽。因此,存储 控制器200在这时不会观测到包含写确认的无差错响应。

在根据存储器命令204a读取数据之后,存储模块1开始根据存储 器命令204c读取数据。当存储模块1正读取数据时,它在无差错响应 206c中回送读数据。无差错响应206c消耗北行方向的所有带宽,并在 无差错响应204c之后立即被发送。根据常规FBD协议,存储控制器 200必须继续等待观测无差错响应205c,直到带宽可用为止。说明书 中所使用的“FBD协议”指的是例如用DEC网站的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。

最后,可接收包含写确认的无差错响应205c。因为已经发信号通 知存储控制器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开始读取数据。DIMM 0接收写命令205a, 并在T7与DIMM 1读取数据并发地开始写入数据。当DIMM 1正读 取数据时,从DIMM 1的传输204c在T7开始。传输204c继续进行到 T10,由此防止存储控制器200立即观测显式写确认205c。

同时,DIMM 1在T9从存储控制器200接收读命令206a,并开始 进行读取。紧接DIMM 1完成传输204c之后,传输206c在T11开始。 存储控制器200仍然无法观测显式写确认205c,因为传输204c和206c 消耗所有北行带宽。

同时,存储控制器200在T8开始从DIMM 1接收读数据传输204c。 当传输在T11完成时,存储控制器200从重放队列203中引退条目204b。 存储控制器200还响应接收到不对应无差错响应204c而从重放队列 203中引退条目205b。不对应无差错响应204c不响应存储器命令205a 而被发送,并且不对应于条目205b。然而,条目205b被引退。最后, 在T15,存储控制器200接收无差错响应206c,并引退条目206b。

无需使存储控制器200在第一开始(opening)T15观测写确认205c。 通过放弃显式观测写确认205c,可为其它传输节省带宽。

图4B示出按照与图2所示不同的传输系列的时序图。存储控制器 200使DIMM 1在T6开始第一读取以及DIMM 0在T7开始写入数据。 存储控制器200还使DIMM 0在T10开始第二读取。

存储控制器200在T8开始接收与第一读取对应的无差错响应。当 在T11接收到与第一读取对应的完整无差错响应时,与第一读取和所 述写入相关联的条目均被引退。换言之,响应不对应无差错响应而引 退与所述写入相关联的条目。最后,存储控制器200在T15引退与第二 读取相关联的条目。

以上所述的系统可使用执行操作的部分或全部的专用处理器系 统、微控制器、可编程逻辑设备或微处理器。以上所述操作的一部分 可通过软件来实现,而其它操作可通过硬件来实现。

为了方便起见,操作描述为各种互连功能块或不同的软件模块。 但是,这不是必要的,并且可能存在一些情况,其中以不清晰的界限 将这些功能块或模块等效地聚合到单个逻辑设备、程序或操作中。在 任何情况下,功能块和软件模块或者灵活界面的特征可单独实现,或 者结合硬件或软件中的操作来实现。

已经在本发明的优选实施例中描述和说明了本发明的原理,应当 清楚地知道,可在不背离这类原理的前提下,对本发明的设置和细节 进行修改。谨要求落入以下权利要求书的精神和范围之内的所有修改 和变更的权益。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号