能够找到开放命令周期以发出预充电包的存储器控制器的制作方法

文档序号:6760771阅读:108来源:国知局
专利名称:能够找到开放命令周期以发出预充电包的存储器控制器的制作方法
技术领域
本发明一般涉及存储器控制器。本发明尤其涉及极端数据速率(XDRextreme data rate)存储器控制器。更具体地说,本发明涉及一种能够找到开放命令周期以便向XDR存储器件发出预充电包的XDR存储器控制器。
背景技术
存储器控制器一般用来对存储器件(memory device)上来自各种请求设备的存取请求(即,读取和写入)进行管理。在接收到来自请求设备的存取请求以及地址和控制信息后,存储器控制器将地址信息解码为存储体、行和列地址。然后,存储器控制器将地址和控制信号发送到适当的存储器件,用于执行所请求的存储器操作。对于读取操作,存储器控制器发送读取命令,再将从存储器件中检索到的读取数据返回给请求设备。对于写入操作,存储器控制器将写入数据与写入命令一起发送到存储器件。
在执行读取或写入操作时,存储器控制器负责产生适当的控制信号序列,用于访问存储器件中的所需地址。用于操作的控制信号序列通常包括激活(或打开)存储器件内存储体的一行,然后在所激活的行中相对于所选列进行写入或读取,最后预充电(或关闭)所激活的行。
近年来,开发了若干种动态随机存取存储器(DRAM),比如双数据速率(DDR)DRAM、极端数据速率(XDR)DRAM等。有关XDR DRAM器件的细节可以参见Rambus所发表的XDR DRAM技术规范。XDR存储器控制器的设计者不仅要符合XDR DRAM技术规范,而且要符合诸如面积、功率、时序、性能等其他设计要求。“开放命令周期”(open command cycle)表示包可以在请求总线上发送到XDRDRAM,因为当前没有其他包占用该总线。通常,每个包有一个命令,不过明显的例外是两个预充电命令可以包含在一个预充电包(precharge packet)中。本公开提供了一种能够找到开放命令周期以便发出预充电包的XDR存储器控制器。

发明内容
根据本发明的一种优选实施方式,响应于并发地接收两个请求包,确定是否其中一个请求包包括非预充电命令而另一个请求包包括预充电命令。如果其中一个请求包包括非预充电命令而另一个请求包包括预充电命令,那么具有非预充电命令的请求包继续进行。另外,预充电命令被延迟并且其动态偏移被相应地调整。
从以下详述中可以看到本发明的所有特性和优点。


在结合附图阅读时,通过参照以下举例实施方式的详述,可以最好地理解本发明本身以及优选使用方式及其目的和优点,其中图1是一种体现本发明的优选实施方式的存储器子系统的框图;图2是根据本发明的优选实施方式的图1中的存储器子系统中的存储器控制器的一部分的框图;和图3是根据本发明的优选实施方式的图2中的存储器控制器找到开放命令周期以发出预充电包的方法的高级流程图。
具体实施例方式
下面,参照附图尤其参照图1,描述体现本发明的优选实施方式的极端数据速率(XDR)的存储器子系统的框图。如图所示,XDR存储器子系统10包括XDR存储器控制器12和XDR输入/输出单元(cell)15以及两个DRAM器件14a-14b。输入/输出单元15提供了存储器控制器12与XDR通道之间的物理层接口,并可以被看作是用于本发明的串行化器/去串行化器。有关输入/输出单元15的细节可以参见Rambus所发表的XIO技术规范,其相关内容在此作为参考。如本领域技术人员所知的,图中示出了例如在数据处理系统中XDR存储器子系统10通过总线与处理器11连接。DRAM器件14a-14b最好是XDR DRAM器件。有关XDR DRAM器件14a-14b的细节可以参见Rambus所发表的XDRDRAM技术规范,其相关内容在此作为参考。
下面参照图2,描述了根据本发明的优选实施方式的存储器控制器12的一部分的框图。如图所示,存储器控制器12包括多个片21a-21f。由于片21a-21f实际上彼此完全相同,因此只进一步详述片21a。片21a包括存储体序列器22和命令编码器23。命令编码器23将存储体序列器22和命令网格器(mesher)24发出的DRAM命令指示转换成对应的请求包。来自片21a-21f的请求包随后由命令网格器24进行处理,以形成要发送到输入/输出单元(比如图1中的输入/输出单元15)并进一步发送到DRAM器件(比如图1中的DRAM器件14a-14b)的请求包。
通常,DRAM器件允许自动预充电,这意味着DRAM器件在读取或写入操作的最后列命令之后,自动对行预充电一段最小时间。由于XDR体系结构不支持自动预充电,因此它需要一个明确的预充电命令以便在行被存取后“关闭”该行。因此,DRAM器件14a-14b能接收预充电和刷新预充电命令。此外,DRAM器件14a-14b使得预充电和刷新预充电命令可以有动态偏移。动态偏移允许预充电命令或刷新预充电命令在XDR DRAM器件内以比存储器控制器发出该命令的时间稍后的时间被执行(这取决于动态偏移的值)。对于预充电命令,动态偏移可以是+3、+2、+1或+0。同样,对于刷新预充电命令,动态偏移也可以是+3、+2、+1或+0。于是,预充电或刷新预充电命令在执行之前在DRAM器件14a-14b内部先延迟这么多(3、2、1或0)个命令周期。动态偏移特性使得存储器控制器12可以具有更大的调度灵活性。对于其他的非预充电命令,存储器控制器12不使用这种动态偏移能力(也就是说,诸如激活、读取、写入等命令的动态偏移值都是+0)。
存储体序列器22可以在适当的时候发出预充电+3或刷新预充电+3命令指示。这些命令指示最好采取可被发送到命令编码器23和命令网格器24的脉冲形式。存储器控制器内部的有效行断言(row-asserted)时间(即tRAS)计数器和寄存器设置可以控制预充电+3脉冲和刷新预充电+3脉冲的时序(timing)。
对于本实施方式中的XDR DRAM器件,在四个连续的命令周期内总有至少一个不用于Act(即,激活或刷新激活)命令或Col(即,读取、写入或掩蔽写入)命令的命令周期。因此,行预充电(ROWP)包可以在此刻被发送。ROWP包可以包括一个或两个预充电命令。例如,一个ROWP包中的两个预充电命令可能在“写入后的早期读取”周转时间(Early Read After Write turnaround)中是必要的(“写入后的早期读取”是一种可以用来改善性能的XDR DRAM特性)。其他请求包类型只包括一个命令。
由于在储存器控制器12内的存储体序列器之间没有交互作用,因此片21a中的存储体序列器22并不知道片21b-21f中的存储体序列器的操作。这样,冲突检测和避免的责任(即,必要时的预充电命令延迟)便落在命令网格器24上。如果两个预充电命令(或一个预充电命令和一个刷新预充电命令)同时出现,那么命令网格器24将它们合并成一个行预充电(ROWP)包。
命令网格器24包括预充电合并逻辑,用于按如下方式处理预充电和刷新预充电命令(1)如果两个预充电命令同时到达,那么将预充电命令之一移动到ROWP包的刷新预充电字段(即,POP字段到ROP字段);和(2)如果一个预充电命令和一个刷新预充电命令同时到达,那么不必做专门处理。
最终,利用逻辑OR功能将两个预充电命令合并成一个ROWP包。两个预充电命令可以在启用了早期读取的写入-读取周转时间中同时到达。由于两个刷新预充电命令永远不会同时到达命令网格器24,因此可以不考虑这种情况。
下列从存储体序列器22到命令网格器24的输出用于冲突检测(1)Do Non-预充电命令(1比特)用任一Do Act或Do Col指示来断言。这一输出用于预充电命令与Act或Col(即非预充电)命令之间的冲突检测。它还用于避免合法Col包的比特被预充电合并逻辑所移动(因为它没有预充电字段)。
(2)Do Any Col(1比特)用任一Do Col指示来断言。在命令编码器23内建立与此等价的信号。在命令编码器23内,这一等价信号用于中断ROWP包的产生,这是因为存储体序列器22可与“极端”配置中的Col命令脉冲同时发出预充电+3脉冲。当然,预充电+3与Col命令的冲突将被检测到,并且Col命令将获胜,而预充电+3将变成预充电+2并再作尝试(如下所述)。在命令网格器24内,这一断言的信号用于防止从同一片输入的请求包被阻塞(在这种情况下它将是Col命令)。
下面参照图3,描述了根据本发明的优选实施方式的图2中的存储器控制器找到开放命令周期以发送预充电包的方法的高级流程图。从步骤30开始,来自总线的读取和写入命令以及来自定时器的刷新请求被(图2中的)存储体序列器转换成适当的DRAM命令指示。然后,来自存储体序列器和命令网格器的DRAM命令指示被(图2中的)命令编码器转换成请求包,如块32中所示。判断是否两个命令同时到达命令网格器24,如块33中所示。如果只有一个命令,那么将请求包发送到(图1中的)输入/输出单元15,如块34中所示,然后过程返回到块32。
否则,如果两个命令同时到达命令网格器24,那么判断是否两个命令之一是非预充电命令(意味着Act命令或Col命令)而另一个命令是预充电或刷新预充电命令,如块35中所示。如果两个命令之一是非预充电命令而另一个命令是预充电或刷新预充电命令,那么允许非预充电命令继续进行而预充电或刷新预充电命令被延迟一个命令周期,如块36中所示。此外,递减预充电或刷新预充电命令的动态偏移,如块36中所示。例如,预充电+3命令变为预充电+2命令,预充电+2命令变为预充电+1命令,或者预充电+1命令变为预充电+0命令。同样,刷新预充电+3命令变为刷新预充电+2命令,刷新预充电+2命令变为刷新预充电+1命令,或者刷新预充电+1命令变为刷新预充电+0命令。
否则,如果两个命令都是预充电命令,那么又判断是否一个命令是预充电命令而另一个命令是刷新预充电命令,如块37中所示。如果一个命令是预充电命令而另一个命令是刷新预充电命令,那么两个命令被合并成一个请求包,如块31中所示,然后发送到(图1中的)输入/输出单元15。
否则,判断是否两个命令都是预充电命令,如块38中所示。如果两个命令都是预充电命令,那么改变请求包之一(即,POP字段移动到ROP字段),如块39中所示,然后命令被合并成一个请求包,如块31中所示,然后发送到(图1中的)输入/输出单元15。否则,不将任何请求包发送到输入/输出单元15,并且过程返回到块32。
如上所述,本发明提供了一种能够找到开放命令周期以便发出预充电包的存储器控制器。本发明的存储器控制器在必要时执行冲突检测和合并预充电命令。本发明的存储器控制器通过以较复杂的命令网格器为代价来实现更简单、更小的独立存储体序列器。本发明的存储器控制器不包括进行检查来确保满足相同存储体组的预充电-预充电时间(即tPP)和不同存储体组的预充电-预充电时间(即tPP-D)。这种智能位于存储器控制器的前端,不过这超出了本发明的范围。
尽管以上具体地参照一种优选实施方式说明和描述了本发明,然而,本领域技术人员可以理解,在不背离本发明的精神和范围的前提下,本发明其形式和细节可以作出各种变化。
权利要求
1.一种用于存储器控制器找到开放命令周期以在当前没有其他包占用总线时发出预充电包的方法,所述方法包括响应于并发接收两个请求包,确定是否其中一个所述请求包包括非预充电命令而另一个所述请求包包括预充电命令;和在确定其中一个所述请求包包括非预充电命令而另一个所述请求包包括预充电命令时,立即将具有非预充电命令的所述请求包发送到输入/输出单元;将具有预充电命令的所述请求包延迟一个命令周期;和改变所述预充电命令的动态偏移。
2.权利要求1的方法,其中所述方法还包括确定是否两个所述请求包都包括预充电命令;在确定两个所述请求包都包括预充电命令时,改变其中一个所述请求包中的至少一个命令字段;和合并请求包并将所述合并的请求包发送到所述输入/输出单元。
3.权利要求1的方法,其中所述方法还包括确定是否其中一个所述请求包包括预充电命令而另一个所述请求包包括刷新预充电命令;和在确定其中一个所述请求包包括预充电命令而另一个所述请求包包括刷新预充电命令时,合并请求包并将所述合并的请求包发送到所述输入/输出单元。
4.权利要求1的方法,其中所述非预充电命令是Act或Col命令。
5.权利要求1的方法,其中所述预充电命令是预充电+3命令、预充电+2命令或预充电+1命令。
6.权利要求1的方法,其中所述存储器控制器用于控制极端数据速率(XDR)存储器。
7.一种用于存储器控制器找到开放命令周期以在当前没有其他包占用总线时发出预充电包的方法,所述方法包括响应于并发接收两个请求包,确定是否其中一个所述请求包包括非预充电命令而另一个所述请求包包括刷新预充电命令;和在确定其中一个所述请求包包括非预充电命令而另一个所述请求包包括刷新预充电命令时,立即将具有非预充电命令的所述请求包发送到输入/输出单元;将具有刷新预充电命令的所述请求包延迟一个命令周期;和改变所述刷新预充电命令的动态偏移。
8.权利要求7的方法,其中所述非预充电命令是Act或Col命令。
9.权利要求7的方法,其中所述刷新预充电命令是刷新预充电+3命令、刷新预充电+2命令或刷新预充电+1命令。
10.权利要求7的方法,其中所述存储器控制器用于控制极端数据速率(XDR)存储器。
11.一种存储器控制器,它能够找到开放命令周期以便在当前没有其他包占用总线时发出预充电包,所述存储器控制器包括用于响应于并发接收两个请求包,确定是否其中一个所述请求包包括非预充电命令而另一个所述请求包包括预充电命令的装置;和在确定其中一个所述请求包包括非预充电命令而另一个所述请求包包括预充电命令时,用于立即将具有非预充电命令的所述请求包发送到输入/输出单元的装置;用于将具有预充电命令的所述请求包延迟一个命令周期的装置;和用于改变所述预充电命令的动态偏移的装置。
12.权利要求11的存储器控制器,其中所述存储器控制器还包括用于确定是否两个所述请求包都包括预充电命令的装置;在确定两个所述请求包都包括预充电命令时,用于改变其中一个所述请求包中的至少一个命令字段的装置;和用于合并请求包并将所述合并的请求包发送到所述输入/输出单元的装置。
13.权利要求11的存储器控制器,其中所述存储器控制器还包括用于确定是否其中一个所述请求包包括预充电命令而另一个所述请求包包括刷新预充电命令的装置;和在确定其中一个所述请求包包括预充电命令而另一个所述请求包包括刷新预充电命令时,用于合并请求包并将所述合并的请求包发送到所述输入/输出单元的装置。
14.权利要求11的存储器控制器,其中所述非预充电命令是Act或Col命令。
15.权利要求11的存储器控制器,其中所述预充电命令是预充电+3命令、预充电+2命令或预充电+1命令。
16.权利要求11的存储器控制器,其中所述存储器控制器用于控制极端数据速率(XDR)存储器。
17.一种存储器控制器,它能够找到开放命令周期以便在当前没有其他包占用总线时发出预充电包,所述存储器控制器包括用于响应于并发接收两个请求包,确定是否其中一个所述请求包包括非预充电命令而另一个所述请求包包括刷新预充电命令的命令网格器;和在确定其中一个所述请求包包括非预充电命令而另一个所述请求包包括刷新预充电命令时,用于立即将具有非预充电命令的所述请求包发送到输入/输出单元的命令网格器;用于将具有刷新预充电命令的所述请求包延迟一个命令周期的延时装置;和用于改变所述刷新预充电命令的动态偏移的装置。
18.权利要求17的存储器控制器,其中所述非预充电命令是Act或Col命令。
19.权利要求17的存储器控制器,其中所述刷新预充电命令是刷新预充电+3命令、刷新预充电+2命令或刷新预充电+1命令。
20.权利要求17的存储器控制器,其中所述存储器控制器用于控制极端数据速率(XDR)存储器。
全文摘要
公开了一种存储器控制器,它能够找到开放命令周期以便向极端数据速率(XDR)动态随机存取存储器(DRAM)器件发出预充电包。响应于并发接收两个请求包,确定是否其中一个请求包包括非预充电命令而另一个请求包包括预充电命令。如果其中一个请求包包括非预充电命令而另一个请求包包括预充电命令,那么具有非预充电命令的请求包继续进行。另外,预充电命令被延迟,并相应地调整其动态偏移。
文档编号G11C11/4063GK1917084SQ20061009977
公开日2007年2月21日 申请日期2006年6月30日 优先权日2005年8月16日
发明者赖安·A.·赫肯多夫, 马克·D.·贝洛斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1