专利名称:用于校准随机存取存储器的方法和装置的制作方法
技术领域:
本发明一般涉及数据缓冲器,更具体地说,涉及重新使用存储器接口单元中的可操作的数据缓冲器来校准存储器。
背景技术:
在传统的动态随机存取存储器(DRAM)中,数据同步很困难。然而,随着引入极限数据速率(Extreme Date Rate,XDRTM)DRAM,其可以从位于E1Camino Real,Los Altos,California 94022的Rambus公司获得,数据与时钟的片上对准是可能的。XDRTMDRAM(XDRAM)使用一种灵活的体系结构,其允许自动对准数据和时钟的中心。具有这种动态相位对准系统减少了当设计控制硬件时对于精确的印刷电路板(PCB)定时约束和PCB线(trace)长度匹配的需要。
相位对准体系结构的一部分使用结合了校准的初始化硬件。参考附图的图1,标号100通常指描述传统XDRAM校准的流程图。
使用这种校准技术,模式加载是需要的,为的是动态相位对准可以通过对准来自所加载的模式的预定结果来发生。在步骤102,校准过程通过校准差分输入/输出(I/O)设备的电流和阻抗开始。校准差分I/O设备的时间周期被称为ICAL-ZCAL周期。一旦差分I/O设备已经被校准,串行和模式加载发生在步骤104。外部XDRAM被串行加载,并且用该模式加载存储器控制器。基于所加载的串行数据和所加载的模式,接收数据的校准(RX_CAL)发生在步骤106。然后,发送数据的校准(TX_CAL)发生在步骤108。
然而,就像许多其他的DRAM和半导体设备那样,XDRAM力争以高度的灵活性来节省面积。特别地,用于校准的模式缓冲器空间可占据大量的硅。因此,这需要一种方法和/或设备使得XDRAM校准更为有效,却需要更少的面积来解决至少一些有关传统XDRAM校准的问题。
发明内容
本发明提供一种方法、设备和计算机程序,使用数据模式和命令来实现随机存取存储器(RAM)的校准。至少一个提供数据和命令的存储队列被建立。然后,队列被重新生效以允许保存灵活的地址和数据到模式缓冲器,由此,灵活的地址和数据可以被重新使用以区别校准的阶段和重复(iteration)。
为了更完整的理解本发明和及其优点,参考以下结合附图的描述,其中,图1是描述传统XDRAM校准的流程图;图2A是描述所修改的XDRAM存储器单元的方框图;图2B是描述所修改的XDRAM存储器单元的XIO控制器的方框图;图3是描述用于切换写到读的前端电路的方框图;图4是描述前端电路操作的流程图,以及;图5是描述所修改的XDRTM输入/输出单元(XIO)操作的流程图。
具体实施例方式
在下面的讨论中,陈述一些特定细节以提供对本发明的完整理解。然而,那些本领域技术人员将意识到本发明没有这些特定细节也是可实现的。在其他情况下,已知要素已经以原理图或方框图的形式阐明,使得不必要的细节不致于混淆本发明。此外,关于网络通信、电磁信号传输(signalling)等细节在很大程度上已被省略,这是因为这些细节不被认为对获得本发明的完全理解是必要的,而被认为在相关领域一般技术人员的理解范围之内。
进一步需要注意,除非指出,否则这里描述的所有功能可以用硬件或者软件或者它们的某些组合来完成。然而,在优选的实施例中,除非指出,否则这些功能由处理器,例如计算机,或电子数据处理器,按照代码,例如计算机程序代码,以及软件和/或被编码来执行这些功能的集成电路来执行。
参考附图的图2A,标号200通常指所修改的XDRAM存储器单元。存储器单元200包括芯片202和XDRAM 204。命令通过单向总线220从芯片202发送到XDRAM 204。串行数据通过双向串行链路224从芯片202发送到XDRAM204。然而,在芯片和XDRAM 204之间通过双向总线222来互通数据。
特别地,为使存储器工作,芯片202上的组件彼此之间以及和XDRAM 204通信。芯片202包括存储器接口单元206和XIO 208。XIO 208执行芯片202和XDRAM 204之间的通信,其中包含命令、数据和串行数据。然而,存储器接口单元206通过单向总线216发送命令到XIO 208,而数据通过两个单向总线218在XIO 208和存储器接口单元206之间发送。
存储器单元200和更为传统的存储器单元之间的区别在于存储器接口单元。存储器控制单元包括地址和保持控制210、XIO控制器212和数据流模式缓冲器214。更具体地讲,缓冲器在读和写的校准中使用,但是,在所修改的存储器中,特别指定给读或写的一类缓冲器全部被去掉。存储器接口单元206转而使用用于所有操作阶段的存储路径。在正常操作中,存储器接口单元206具有用于32条高速缓存线(每个有128字节)或总共4096字节的数据和地址。
在传统的存储器中,校准发生在三个不同的阶段。在第一阶段,伴随意向中的两个功能而发生数据加载。第一个功能是加载模式数据到传统的存储器接口单元(未示出)。第二个功能是使存储器控制单元(未示出)发送命令到XDRAM,例如XDRAM 204,以便串行加载数据到XDRAM,例如,XDRAM 204,然后发送写来提交数据到存储器。此校准数据可占据一些或全部32条高速缓存线。
在第二和第三个阶段,执行接收和发送校准。接收校准在第二个阶段执行,其中存储器控制单元(未示出)找到读命令的源并且提供期望的数据来校准XIO(未示出)。发送校准发生在第三阶段,其中存储器控制单元(未示出)存储数据并为读命令提供期望的数据。
相反地,被修改的存储器200重新排列次序。存储器控制单元206重新排列次序,使得串行加载的数据首先被加载,以便数据通过单次写提交给XDRAM。被修改的存储器206发送串行模式到XDRAM 204并使用命令总线216和220来提交数据到XDRAM 204的核心。这些命令是具有XDRAM寻址宽度的正常存储。一旦所有的数据已经被存储到XDRAM,存储,包括地址和模式数据,就被加载并且保持在等待模式中以预期接收校准。存储地址和数据分别由地址和保持控制210以及数据流模式缓冲器214包含。
然后,在第二个阶段中可以发生接收校准。当XIO 208要执行接收重复时,XIO控制器212将存储变为预期读(read with expect)。因此,每个存储变成读。新的读将在正确的时间发送所预期的数据到XIO 208。对于32条高速缓存线而言,XIO控制器212变存储为读、并发起新的读的过程将持续。然后,XIO 208将再次启动这个过程直到校准完成。
一旦接收校准完成,阶段三就可以被启动以执行发送校准。XIO 208通知XIO控制器212执行发送校准序列。XIO控制器212从地址控制210中取得存储地址,并发送来自数据流模式缓冲器214中的存储数据。一旦存储了所有的模式高速缓存线,XIO控制器212就通知控制210再次发送地址并把存储地址变为预期读。将来自XDRAM 204的数据与来自数据流模式缓冲器214的数据进行比较。这将反复必要的若干次直到校准完成。
为了执行从存储到读的命令的改变,使用附加逻辑。参考附图的图2B,标号212通常指XIO控制器。XIO控制器212包括前端电路252、命令寻址逻辑254、写路径256、读路径258,XIO命令生成逻辑260以及初始化逻辑262。
XIO控制器的操作由提供给前端电路252的信息启动。前端电路252通过通信通道264从图2A中的地址和保持控制210接收信息。然后,前端电路252改变写命令为读命令,并提供控制信号给其它组件。特别地,前端电路252通过通信通道266、270、276和274分别提供控制信息到写路径256、读路径258、命令寻址逻辑254以及生成逻辑260。
然后,XIO控制器212中每个剩余组件在正常操作中执行特定功能。命令寻址逻辑通过通信通道278提供信息到图2A中的XIO 208。初始化逻辑262通过通信通道282接收模式使能和类型信号,并发送模式标记信号到图2A中的XIO 208。写路径256和读路径258通过通信通道284和286提供存储和读控制到图2A中的数据流模式缓冲器214。此外,生成逻辑260通过通信通道268和272分别提供控制信息到写路径256和读路径258。
然而,在使用预期读的情况下,剩余组件具有稍微不同的功能。写路径256使用针对所预期的数据的定时参数来启动图2A中的数据流模式缓冲器214的数据写出(write-data-out)。读路径258存储信息但并不功能性地使用它。最初,生成逻辑260被前端电路252告知执行读;然而,来自前端电路252的变化信号通知生成逻辑260在正确时间启动对于所预期的数据的写。
然后,前端电路252的功能在XIO控制器的操作中变得重要。参考附图的图3,标号300通常指切换写到读的前端电路。电路300包含在图2B的XIO控制器212中,并且包括一个状态机302,八个锁存器306、312、316、318、320、324、334和336,五个与门304、310、314、330和332,以及四个操作模块308、322、326和328。
状态机302是逻辑300中的主要组件,其帮助生成适当的信号。状态机302通过通信通道344输出控制信号到操作模块308。基于该控制信号,操作模块308能够使能读操作或写操作。如果操作是写操作,那么信号通过通信通道340输出到与门304。此外,通过通信通道338信号从状态机302输出到与门304。一旦被使用(engaged),与门304通过通信通道339输出信号到锁存器306。然后,锁存器306能够通过通信通道342提供数据位置有效信号来启动写数据操作。然而,如果操作是预期读操作,那么,信号通过通信通道346从操作模块308被传达到与门310。状态机302也通过通信通道348发送信号到与门310。变写为读的信号也通过通信通道350被传达到与门310。基于与门310的输入,与门310可以通过通信通道352输出信号到锁存器312。然后,锁存器312通过通信通道354提供针对预期读的数据位置有效信号。
除了为数据位置有效信号提供控制以外,状态机302也转发所获得的命令。所获得的命令通过通信通道341从状态机302中输出。与门314除了通过通信信道358接收另一个信号以外,还接收命令已获得信号。然后,锁存器316通过通信通道356接收与门信号来锁存所获得的命令,以便通知地址和控制210命令已经被获得。组序列锁存器318也接收命令已执行信号来启动一个或一系列操作。
然而,为了使状态机302工作,命令的指示被转发到状态机302。锁存器320通过通信通道372从图2A中的地址控制210接收针对操作类型的控制数据。然后,锁存器320通过通信通道370转发控制数据到操作模块322,该模块是写到读模块。基于输入信号,操作模块322通过通信通道368输出控制信号到状态机302、组序列锁存器324、命令计数器(未示出)、以及两个操作模块326和328。
基于来自操作模块322的控制信号,写或读操作可被启动。如果操作模块322指示读操作,那么读模块328通过通信通道366输出信号到与门332。与门332也从通信通道341接收命令已获得信号。然后,与门332可以通过通信通道360转发信号到锁存器336,以提供读先进先出(First-In-First-Out,FIFO)控制。
另一方面,如果操作模块322指示写操作,则不同的逻辑被使用。写操作的指示通过通信通道368发送到写模块326。基于该指示,写模块326通过通信通道364发送控制信号到与门330。与门330也通过通信通道341接收所获得的命令。然后,信号通过通信通道362从与门330转发到锁存器334。锁存器334反映写启动操作。
参考附图的图4,标号400通常指图3中前端电路300的简化操作。
在操作的一开始,要确定在步骤402中要执行的操作。特别地,有三类操作可以被执行写操作、读操作和预期读。每个操作分别具有不同的过程。
对于写操作,特定的组件、路径和过程被使用。在步骤404中,来自图2A中的地址保持控制210的写操作被使用。在步骤406中,正常写参数被使用,并且在步骤408中正常写命令被发送。
对于读操作,其他的组件、路径和过程被使用。在步骤410中,来自图2A中的地址保持控制210的读操作被使用。在步骤412中正常读参数被使用,并且在步骤414中正常读命令被发送。
对于预期读,来自写和读操作的组件、路径和过程的组合被使用。在步骤416中,来自图2A中的地址保持控制210的预期读被使用。在步骤418中,来自图2A中的地址保持控制210的写操作被使用。在步骤420中预期写参数被使用,并且在步骤414中正常读命令被发送。
参考附图的图5,标号500通常指图2中的XIO控制器212的操作。在步骤502中,XIO控制器212以空闲状态开始。然后,在步骤504中,要确定发生接收校准还是发送校准。
在接收校准的情况下,在操作之前状态机302在步骤506和508中等待来自XIO 208的适当定时。一旦所有定时参数满足,存储数据就转换成预期读数据并被发送到XIO 208。一旦准备就绪,写到读信号在步骤510被传递,其中数据从XDRAM 204中读出。模式使能信号在步骤520和524中转变为逻辑低以指示校准循环的完成。当校准完成时,延迟的刷新在步骤522中执行,并且XIO控制器212在步骤502中返回空闲。
当要完成发送校准时,没有存储数据要转换。在步骤512中有一个等待周期,使得所有XDRAM参数被满足。在步骤514中,一旦校准准备就绪,在步骤516中数据就写到XDRAM 204。其次,写到读信号在步骤518中被传递,其中数据从XDRAM 204中读取并与来自数据流模式缓冲器214的数据进行对比。模式使能信号在步骤520和524中转变为逻辑低以指示校准循环的完成。当校准完成时,延迟的刷新在步骤522中执行,并且XIO 212在步骤502中返回空闲。
可以理解的是本发明可以使用许多形式和实施例。因此,可以对前述的内容进行若干变化,而不偏离本发明精神或范围。这里概述的能力考虑了多种编程模型的可能性。这个公开的内容不应被当作倾向于任何具体的编程模型,而应针对可于其上构建编程模型的根本机制。
已经通过参考某优选的实施例描述了本发明,需要注意的是,公开的实施例是说明性的而不是在本质上进行限制的,并且宽泛的变化、修改、改变和代替在前述公开的内容中是可以预期的,在某些情况下,本发明的某些特征可在没有其他特征的相应使用下被使用。很多这样的变化和修改被本领域技术人员基于对优选实施例的先前描述的回顾认为是合意的。因此,广泛地并以与本发明范围一致的方式构建所附权利要求是合适的。
权利要求
1.一种使用数据模式和命令实现随机存取存储器(RAM)校准的方法,其包括建立至少一个存储队列以提供数据和命令;以及使队列重新有效以允许存储灵活的地址和数据到模式缓冲器,由此灵活的地址和数据可以被重新使用以区分校准的阶段和重复。
2.如权利要求1所述的方法,其中该方法进一步包括,存储校准模式在至少一个存储队列中,其中校准模式包括多个项。
3.如权利要求2所述的方法,其中使重新有效步骤进一步包括确定校准是否是接收校准,如果校准是接收校准,转换多个校准模式项为多个预期读命令;以及执行校准。
4.如权利要求2所述的方法,其中使重新有效步骤进一步包括确定校准是否是发送校准,如果校准是发送校准,转换多个校准模式项为多个写命令,然后为多个预期读命令;以及执行校准。
5.一种用于实现RAM校准的存储器接口单元,其包括至少一个队列,其至少被配置用于存储校准模式,其中校准模式包括多个项;以及前端电路,其至少被配置成把多个项中的至少一个项从写项切换到读项。
6.如权利要求5所述的存储器接口单元,其中前端电路进一步包括状态机,其至少被配置成提供控制信号。
7.如权利要求5所述的存储器接口单元,其中前端电路进一步包括写数据启动器,其至少被配置成启动写数据发送。
8.如权利要求7所述的存储器接口单元,其中写数据启动器进一步包括逻辑门,其至少被配置成使能写数据发送;以及锁存器,其至少被配置成由逻辑门使能。
9.如权利要求5所述的存储器接口单元,其中前端电路进一步包括读数据验证器,其至少被配置成读数据的接收。
10.如权利要求9所述的存储器接口单元,其中读数据验证器进一步包括逻辑门,如果有变写为读信号的时候,其至少被配置成使能读数据的接收;以及锁存器,至少被配置成由逻辑门使能。
11.如权利要求5所述的设备,其中前端电路进一步包括读先进先出(FIFO)控制,其被配置成在读操作期间被警告。
12.如权利要求5所述的设备,其中前端电路进一步包括写启动器控制,其被配置成反映写操作。
13.一种用于利用数据模式和命令来实现RAM校准的计算机程序产品,RAM,该计算机程序产品包括在其上实施计算机程序的介质,该计算机程序包括用于建立至少一个存储队列以提供数据和命令的计算机代码;以及用于使队列重新有效以允许存储灵活的地址和数据到模式缓冲器中的、由此灵活的地址和数据可以被重新使用以区分校准的阶段和重复的计算机代码。
14.如权利要求13所述的计算机程序产品,其中计算机程序产品进一步包括用于存储校准模式到至少一个存储队列的计算机代码,其中校准模式包括多个项。
15.如权利要求14所述的计算机程序产品,其中用于使重新有效的计算机代码进一步包括用于确定校准是否是接收校准的计算机代码,如果校准是接收校准,计算机代码转换多个校准模式的项为多个预期读命令;以及用于执行校准的计算机代码。
16.如权利要求14所述的计算机程序产品,其中用于使重新有效的计算机代码进一步包括用于确定校准是否是发送校准的计算机代码,如果校准是发送校准,计算机代码转换多个校准模式的项为多个预期读命令;以及用于执行校准的计算机代码。
17.一种用于使用数据模式和命令来实现极限RAM的校准的处理器,包含计算机程序的该处理器包括用于建立至少一个存储队列以提供数据和命令的计算机代码;以及用于使队列重新有效以允许存储灵活的地址和数据到模式缓冲器、由此灵活的地址和数据可以被重新使用以区分校准的阶段和重复的计算机代码。
18.如权利要求17所述的计算机程序,其中计算机程序进一步包括用于存储校准模式到至少一个存储队列中的计算机代码,其中校准模式包括多个项。
19.如权利要求18所述的计算机程序,其中用于使重新有效的计算代码进一步包括用于确定校准是否是接收校准的计算机代码,如果校准是接收校准,计算机代码用于转换多个校准模式的项为多个预期读命令;以及用于执行校准的计算机代码。
20.如权利要求18所述的计算机程序,其中用于使重新有效的计算机代码进一步包括用于确定校准是否是发送校准的计算机代码,如果校准是发送校准,计算机代码用于转换多个校准模式的项为多个写命令,然后为多个预期读命令;以及用于执行校准的计算机代码。
全文摘要
提供一种方法、设备和计算机程序以重新使用可操作的数据缓冲器。使用极限数据速率(Extreme Data Rate,XDR
文档编号G06F3/06GK1776597SQ20051012544
公开日2006年5月24日 申请日期2005年11月17日 优先权日2004年11月18日
发明者马克·D·贝洛斯, 肯特·H·哈兹尔霍斯特, 保罗·A·甘菲尔德, 托尔加·奥兹格纳 申请人:国际商业机器公司