经由存储器的误差信号训练存储器信号的方法和装置的制作方法

文档序号:6738449阅读:203来源:国知局
专利名称:经由存储器的误差信号训练存储器信号的方法和装置的制作方法
技术领域
本发明的实施例通常涉及存储器控制器的领域。更具体地说,本发明的实施例涉及用于经由来自存储器的命令-地址(C/A)奇偶校验误差信号来训练C/A存储器信号的方法和装置。
背景技术
在计算机系统的典型的存储器系统中 ,存储器控制器有利于计算机系统中存储器模块的访问。存储器模块可以包括一个或多个存储器。这些一个或多个存储器也叫做排列(rank)。存储器控制器将包括地址信号、控制信号、时钟信号等等的大量的信号传送到排列,以从排列访问数据或将数据发送到排列。为了将正确数据发送到排列并且从排列接收正确的数据,存储器控制器相对于时钟信号训练(修改)命令-地址(C/A)信号。典型地,存储器控制器通过相对于时钟信号将特定C/A信号传送到排列并然后分析来自每个排列的响应,以查明排列是否正确地接收特定C/A信号,从而来训练C/A信号。在有来自排列的成功/正确响应时,存储器控制器相对于时钟信号延迟特定C/A信号的相位并接着将具有延迟的相位的延迟的特定C/A信号重新传送到排列。存储器控制器接着分析来自排列的响应,以查明排列是否正确地接收到延迟的特定C/A信号。如果没有接收到从排列到存储器控制器的响应(或是接受到不正确的响应),则存储器模块转变至导致非功能存储器模块的未知状态(不确定状态)。在存储器控制器和具有排列的存储器模块之间的双倍数据率3 (DDR3)存储器接口的情况下,通过电子设备工程联合委员会(JEDEC)标准化的初始化过程将存储器模块的未知状态转化为已知状态。JEDEC标准化的初始化过程导致重置存储器。JEDEC标准化的初始化过程是费时的过程,所述过程花费若干毫秒用于存储器控制器将存储器模块恢复到已知功能状态。由于用户的计算要求正变得更加密集使用存储器,存储器系统中的任何误差,例如由C/A信号(其具有导致从存储器模块到存储器控制器的访问不正确数据的相对于时钟信号的相位)引起的误差,导致因基于DDR3的存储器接口所要求的费时的JEDEC标准化的初始化过程引起的时间损失。此外,因为对存储器系统的更快的引导的需求正在增加,这样的误差可以导致如在基于DDR3的存储器接口中所经历的引导时间的无法忍受的延长。


根据下面给出的详细的描述并且根据本发明的各个实施例的附图将更充分地理解本发明的实施例,然而,本发明的各种实施例不应理解为将本发明限制到特定实施例,而是仅用于解释和理解。图I是根据本发明的一个实施例的、包括可操作以经由误差信号训练命令-地址(C/A)信号的存储器控制器以及耦合到存储器控制器的存储器模块的存储器系统。图2是根据本发明的一个实施例的、可操作以经由误差信号训练C/A信号的存储器控制器。图3示出了根据本发明的一个实施例的、用于相对于时钟信号训练C/A信号的奇偶校验误差信号的响应。图4是根据本发明的一个实施例的、用于响应于来自存储器模块的误差信号训练C/A信号的高层方法流程图。图5A是根据本发明的一个实施例的、用于响应于来自存储器模块的误差信号训练C/A信号的详细方法流程图。图5B是根据本发明的一个实施例的、用于为具有多个排列的存储器模块训练C/A信号的另一个流程图。
图6是根据本发明的一个实施例的、实现用于响应于来自存储器模块的误差信号训练C/A信号的方法的计算机系统。
具体实施例方式本发明的实施例涉及用于经由存储器的误差信号训练存储器信号的方法和装置。在一个实施例中,存储器是具有一个或多个存储器的存储器模块的一部分。在一个实施例中,存储器信号是命令-地址(C/A)信号并且对应的误差信号是奇偶校验误差信号。在一个实施例中,奇偶校验误差信号的电压电平指示在存储器模块中是否存在误差,该误差要求重新训练C/A信号以解决误差而无需启动JEDEC标准化的初始化过程。在本发明的一个实施例中,存储器模块包括同步动态随机存取存储器(SDRAM)、动态随机存取存储器(DRAM)、RAMBUS动态随机存取存储器(RDRAM)、双倍数据率四SDRAM (DDR4)、以及任何其他类型的随机存取存储器设备。为了不使本发明的实施例难以理解,参考具有一个或多个SDRAM (也被称作排列)的双列直插式存储器模块(DIMM)来讨论本文中的实施例,其中DIMM经由DDR4 I/O接口以通信方式耦合到存储器控制器。在一个实施例中,DIMM包括布置为一个、两个、或四个排列的SDRAM (—个或多个)。在其他实施例中,可以使用SDRAM排列的其他布置。然而,上述实施例并未限制实施例。在不改变本发明的本质的情况下,可以使用具有不同的存储器模块(不同于DIMM)、没有存储器模块的排列、以及(比DDR4 I/O接口更新的)其他I/O接口的其他实施例。在下面描述中,讨论了许多细节以提供本发明的实施例的更详尽的解释。然而,对本领域技术人员来说,这将是显而易见的,本发明的实施例可以在没有这些具体细节的情况下实施。在其他实例中,以框图的形式而不是在细节上示出众所周知的结构和设备,以便避免使本发明的实施例难以理解。注意到在实施例的对应的附图中,用线条来代表信号。一些线条可以更粗,以指示更多的组成信号路径,和/或在一个或多个端具有箭头,以指示主要信息流方向。这样的指示并非意于是限制性的。相反地,连同一个或多个示范的实施例使用线条以便于更容易地理解电路或逻辑单元。如由设计需要或优先选择所决定的那样,任何表示的信号可以实际上包括可以在任一方向上传播的一个或多个信号并且可以用任何适合类型的信号方案(例如,差分对、单端等等)来实现。图I是根据本发明的一个实施例的存储器系统100,所述存储器系统100包括可操作以经由误差信号105训练C/A信号104的存储器控制器101,以及耦合到存储器控制器的存储器模块102。在一个实施例中,存储器控制器101集成在微处理器(CPU)内。在其他实施例中,存储器控制器101是主板上的单独的集成电路(IC)并且耦合到CPU(未示出)以及存储器模块102。在本发明的一个实施例中,存储器模块102包括DRAM(111,—X )、寄存器设备、缓冲设备等等。在一个实施例中,存储器控制器101经由信号与存储器模块102通信,所述信号包括,但不限于,C/A信号104、C/A奇偶校验误差信号105、控制信号107、数据信号108、时钟信号109、奇偶校验信号110、以及引起存储器控制器101和存储器模块102之间的通信的任何其他信号。在本发明的一个实施例中,当存储器控制器101将命令信号(例如,读取、写入等等)传送到存储器模块102时,存储器控制器101经由奇偶校验发生器106计算命令信号的地址信号位和命令信号位的奇偶校验。在一个实施例中,基于计算的奇偶校验和奇偶校验位信号的组合的偶校验或奇校验,奇偶校验发生器106确定奇偶校验位信号110。在一个实施例中,奇偶校验发生器106为信号提供奇偶校验,所述信号包括但不限于,行地址选通脉冲(RAS)信号、列地址选通脉冲(CAS)信号、允许写入(WE)信号、地址总线信号、以及存·储器模块102的组件(bank)选择信号。在一个实施例中,当从存储器控制器101将命令发送/传送到存储器模块102时,存储器控制器101提供奇偶校验位信号作为奇偶校验信号110的其中之一。在一个实施例中,当接收到命令信号和它的对应的奇偶校验信号时,存储器模块102可操作以检测或确定接收到的命令信号是否具有任何C/A奇偶校验误差。本文中可互换地使用术语命令信号和命令。在一个实施例中,当存储器模块102在接收到的命令信号中检测到奇偶校验误差时,它忽略接收到的命令信号并且将接收到的命令信号的命令位和地址位存储在模式寄存器中。在一个实施例中,当检测到接收到的命令信号中的奇偶校验误差时,存储器模块102向存储器控制器101表明误差信号105。在一个实施例中,误差信号105是奇偶校验误差信号,所述奇偶校验误差信号是从存储器模块102到存储器控制器101的反馈。在一个实施例中,奇偶校验误差信号105是存储器控制器101和存储器模块102之间的DDR4 I/O接口的ALERT#信号。在一个实施例中,存储器控制器101包括训练逻辑单元103,所述训练逻辑单元103可操作以从存储器模块102接收奇偶校验误差信号105以及根据奇偶校验误差信号105确定在接收到的命令中是否存在奇偶校验误差。在一个实施例中,奇偶校验误差信号105是C/A奇偶校验误差信号。在一个实施例中,触发误差处置机制来从错误命令(因为奇偶校验误差)恢复,并且训练逻辑单元103开始训练C/A信号104而无需启动存储器系统100的重新引导或JEDEC标准化的初始化过程。为了不使本发明的实施例难以理解,本文中的实施例将奇偶校验误差信号105称作C/A奇偶校验误差信号105以指示奇偶校验误差是C/A奇偶校验误差。使用存储器模块102中的C/A奇偶校验支持,改进了存储器系统100的性能,这是因为既不需要重新引导存储器系统100也不需要启动JEDEC标准化的初始化过程,以便从存储器模块102接收的错误命令恢复存储器系统100并且重新训练C/A信号104。经由本文的实施例的C/A信号104的训练过程比不具有对C/A奇偶校验误差信号105的支持的存储器系统快得多。例如,与利用没有对C/A奇偶校验的支持的存储器模块训练C/A信号的数毫秒或更多相比,在数毫微秒(例如,大约200毫微秒)内经由本文的实施例完成了 C/A信号104的训练,即本文中讨论的实施例在训练C/A信号的速度上有数量级的差异。C/A信号104训练更快是因为避免了重置序列,所述重置序列如果经由软件(例如,基本输入输出系统(BIOS))启动可以花费高达数秒钟。尽管将存储器系统100示出为具有连续C/A信号104的飞越式(fly_by)存储器拓扑,但在不改变本发明的实施例的实质的情况下,可以使用其他拓扑。图2示出了根据本发明的一个实施例的、可操作以经由C/A奇偶校验误差信号105训练C/A信号104的存储器控制器101的逻辑级别图表200。存储器控制器101包括训练逻辑单元103,所述训练逻辑单元103可操作以相对于时钟信号109训练C/A信号104。在 一个实施例中,时钟信号109由时钟发生器206生成。在一个实施例中,训练逻辑单兀103包括误差检测逻辑201,所述误差检测逻辑201可操作以检测来自图I的存储器模块102的C/A奇偶校验误差信号105。在一个实施例中,存储器控制器101还包括I/O收发器204,所述I/O收发器204可操作以传送数据信号108到存储器模块102并且从存储器模块102接收数据信号108。在一个实施例中,I/O收发器204是基于DDR4的I/O收发器。在一个实施例中,存储器控制器101经由基于DDR4的I/O接口将C/A信号104传送到存储器模块102的排列丨I I在一个实施例中,存储器控制器101经由接收器从存储器模块102接收奇偶校验误差信号105。在一个实施例中,训练逻辑单元103还包括相位调节逻辑单元202,所述相位调节逻辑单元202可操作以相对于时钟信号109调节C/A信号104的相位。在另一个实施例中,相位调节逻辑单元202可操作以相对C/A信号104的相位调节时钟信号109的相位。在一个实施例中,通过经由延迟单元(未示出)相对于彼此延迟C/A信号104和/或时钟信号109来调节C/A信号104的相位和/或时钟信号109的相位。在一个实施例中,延迟单元包括具有相位内插器(PD的延迟锁定环(DLL)以相对于彼此调节C/A信号104和/或时钟信号109的相位。本文中的术语延迟指代时域中的正和负延迟,其中正延迟指在时域中相对于另一个信号添加延迟到信号,而负延迟指在时域中相对于另一个信号拉入(pull in)信号。为了不使实施例的本质难以理解,本文中不讨论怎样相对于彼此调节(正地和/或负地延迟)C/A信号104或者时钟信号109的相位的细节。在一个实施例中,相位调节逻辑单元202可操作以通过相对于时钟信号109 (正地和/或负地)延迟C/A信号104的相位来调节C/A信号104,以生成调节的C/A信号。在一个实施例中,经由传送器将调节的C/A信号(也被称为信号104)传送到存储器模块102。在一个实施例中,响应于所传送的调节的C/A信号104,通过误差检测逻辑单元201监测C/A奇偶校验信号105。如果误差检测逻辑单元201没有检测到误差,则相位调节逻辑单元202进一步延迟调节的C/A信号104的相位以生成另一个调节的C/A信号(也被称为104),所述另一个调节的C/A信号接着被传送到存储器模块102的排列i H t 在上述实施例中,重复相对于时钟信号109延迟(正地和/或负地)C/A信号104的相位的过程,直到误差检测逻辑单元201在C/A奇偶校验信号105中检测到误差为止。在那时,训练逻辑单元103确定C/A信号104的相位设置并且C/A信号104的训练完成。在一个实施例中,训练逻辑单元103还包括相位设置逻辑单元203,所述相位设置逻辑单元203可操作以计算经由传送器205传送到存储器模块102的所有正确接收的C/A信号的相位的平均值,其中相位的平均值用于计算C/A信号104的相位设置。图3示出了根据本发明的一个实施例的、相对于时钟信号109训练C/A信号104的过程300。参考图I和图2的实施例示出了过程300。过程300被分为三个情形301、302、和303。为了减少在描述三个情形中的冗余,过程300示出了相对时钟信号109正地延迟C/A信号304。在训练过程期间还在时域(未示出)中相对于时钟信号109负地延迟(即,拉入)了 C/A信号304。在第一情形301中,通过图2的相位调节逻辑单元202使C/A信号304 (与信号104相同但示出为眼图)位于时钟信号109的左边。在这个情形中,C/A奇偶校验误差信号 105从逻辑高电平转变到逻辑低电平以指示存在C/A奇偶校验误差。在一个实施例中,相位设置逻辑单元203记录导致由C/A奇偶校验误差信号105指示的误差的对C/A信号304的延迟设置。在第二情形302中,相位调节逻辑单元202调节C/A信号304以便时钟信号109的转变点位于C/A信号304的眼中间。在这种情形中,C/A奇偶校验误差信号105保持不变,其指示在C/A奇偶校验中没有误差。在一个实施例中,相位设置逻辑单元203记录没有导致由C/A奇偶校验误差信号105指示的误差的对C/A信号304的延迟设置。在第三情形303中,相位调节逻辑单元202调节C/A信号304以便使时钟信号109的转变点向C/A信号304的眼右边位移。在这种情形中,C/A奇偶校验误差信号105从逻辑高电平转变到逻辑低电平,这指示了在C/A奇偶校验中的误差。在一个实施例中,相位设置逻辑单元203记录导致由C/A奇偶校验误差信号105指示的误差的对C/A信号304的延迟设置。尽管用从逻辑高电平转变到逻辑低电平以指示C/A奇偶校验误差的C/A奇偶校验误差信号105示出上述过程300,但是在不改变本发明的实施例的实质的情况下,当C/A奇偶校验误差信号105从逻辑低电平转变到逻辑高电平时,备选的实施例可以指示C/A奇偶校验误差。返回参考图2,在一个实施例中,相位设置逻辑单元203可操作以计算传送到存储器模块102的所有正确地接收的C/A信号的相位的平均值,其中相位的平均值用于计算导致相对于时钟信号109训练C/A信号104的用于C/A信号104的新相位设置。在另一个实施例中,相位设置逻辑单元203可操作以计算相对时钟信号109为C/A信号104提供最多时间余量的相位设置。在一个实施例中,相位设置逻辑单元203可操作以计算相位设置,所述相位设置通过调节(提高或降低)接收C/A信号104的输入接收器的参考电压(Vref)电平,为接收C/A信号104的存储器的输入接收器提供最多电压余量。在其他实施例中,考虑到没有导致C/A奇偶校验误差的C/A信号104的相位,可使用不同的准则以相对于时钟信号109将相位设置分配给C/A信号104。在一个实施例中,一旦相位设置逻辑单元203计算出相位设置,将相位设置分配到用于存储器模块的所有存储器(也被称为排列)的C/A信号104。
图4是根据本发明的一个实施例的、用于响应于误差信号105训练C/A信号104的高层方法流程图400。关于图1-2的实施例讨论流程图。在块401,存储器控制器101将C/A信号104传送到存储器模块102。本领域技术人员将认识到存储器模块102中的所有存储器(也被称为排列)接收到相同的C/A信号104。在块402,根据经由存储器模块102的误差引脚(pin)的误差信号(奇偶校验误差信号105),存储器控制器101经由误差检测逻辑单元201确定存储器模块102中的误差,其中误差与传送到存储器模块102的C/A信号104相关联。如上面所提及的,在一个实施例中误差引脚对应于奇偶校验误差引脚。在一个实施例中,误差引脚是DDR4 I/O接口的ALERT#引脚。在块403,存储器控制器101响应于确定存储器模块102中的误差训练C/A信号104。图5A是根据本发明的一个实施例的、用于响应于误差信号105训练(修改)C/A信号104的详细方法流程图500。关于图1-3的实施例讨论该流程 图。在块501,存储器控制器101通过调节C/A信号104训练C/A信号104。如上面所讨论的,通过相位调节逻辑单元202调节C/A信号104,所述相位调节逻辑单元202可操作以相对于时钟信号109延迟C/A信号的相位。在块502,存储器控制器101将调节的C/A信号104传送给存储器模块102。在块503,根据经由存储器模块102的误差引脚的误差信号,存储器控制器101确定存储器模块102中的误差,其中误差与传送到存储器模块102的调节的C/A信号相关联。在块504,响应于确定存储器模块102中的误差(参考图2和图3讨论的),相位设置逻辑单元203确定用于C/A信号的相位设置。在一个实施例中,相位设置指示相位内插器的设置(参考图2讨论的)。返回参考图5A,在块505,相位设置逻辑单元203计算由存储器控制器101传送到存储器模块102的所有正确地接收的C/A信号104的相位的平均值。在一个实施例中,在训练C/A信号104之前训练控制信号以隔离在C/A信号104的训练期间检测到的误差一该误差不是由控制信号引起的,因为所述控制信号是在C/A信号104的训练之前训练的。在一个实施例中,控制信号是片选(chip-select)信号。在一个实施例中,训练控制信号的方法包括将时钟信号转变边沿放置在控制信号的相位的时间点中途。在一个实施例中,响应于时钟信号转变边沿的放置,训练控制信号的方法还包括响应于该放置,存储器控制器101发出控制信号到存储器模块。在一个实施例中,响应于存储器控制器发出控制信号,只要存储器模块正确地接收控制信号,存储器控制器101相对时钟信号转变边沿调节控制信号的相位。在一个实施例中,响应于调节控制信号的相位,存储器控制器101确定导致存储器模块不正确地接收控制信号的控制信号的相位。在一个实施例中,响应于确定控制信号的相位,存储器控制器101相对时钟信号转变边沿放置控制信号的相位。在这样的实施例中,相对时钟信号转变边沿的控制信号的相位的放置包括基于存储器模块正确地接收的控制信号的所有调节的相位的平均值来放置控制信号的相位。尽管针对存储器模块102中的单个存储器单元(排列)讨论图4和图5A的方法,但如图5B所示,针对存储器模块102中的每个排列(图I的I II1^ )重复方法以获得用于应用到存储器模块102中的所有排列(图I的HIin)的C/A信号的、共同的训练的相位设置。
图5B不出根据本发明的一个实施例的、用于为具有多个排列(例如,图I的I 11 |js+)的存储器模块训练C/A信号104的方法流程图510。关于图1-2的实施例讨论流程图。在块511,存储器控制器101标识存储器模块102的第一排列I I 用于C/A训练目的。如上面所提及的,C/A训练过程包括通过相位调节逻辑单元202相对于时钟信号109调节C/A信号104的相位。在块512,相位调节逻辑单元202针对存储器模块102的第一选定排列Ih,相对于时钟信号109设置或调节C/A信号104的相位。在块513,传送器将调节的C/A信号(例如,具有它的对应的地址的读取命令信号)传送到存储器模块102的第一排列〗Ht。在块514和515,误差检测逻辑单元201确定奇偶校验误差信号105是否指示了C/A信号104的调节的相位引起的奇偶校验误差。如果误差检测逻辑单元201检测到奇偶校验误差,则在块516误差恢复过程开始。作为误差恢复过程的一部分,在块517,由存储 器控制器101的重置逻辑单元(未示出)重置或清空存储器控制器内的奇偶校验误差寄存器并且过程移动到块518。在块518,存储器控制器确定相位调节逻辑单元202是否已经调节C/A信号104的所有相位。如果已经调节C/A信号104的所有相位并且存储器控制器101已经确定每个调节的相位的奇偶校验误差,则在块520将所有有效或正确C/A相位保存在存储器模块102的选定排列I〗h的存储器或寄存器中。如上面参考图3所提及的,有效或正确的C/A相位指的是导致奇偶校验误差信号105的逻辑高状态的C/A相位。如果相位调节逻辑单元202还没有调节C/A信号的所有相位,则在块519相位调节逻辑单元202通过相对时钟信号109延迟C/A信号104的相位,来调节C/A信号104的相位。过程控制接着转移到块513,其中传送器将C/A信号104 (例如,具有其对应的地址的读取命令信号)传送到存储器模块102的第一排列11 h。重复上述过程513-519直到已经调节了 C/A信号104的所有相位并且检查了对应的相位误差信号105的任何奇偶校验误差。一旦已经调节了 C/A信号104的所有相位并且检查了对应的相位误差信号105的任何奇偶校验误差,就完成了对于第一排列I丨h的C/A信号104训练。如上面所提及的,调节C/A信号104的相位指的是相对时钟信号109正地和/或负地延迟C/A信号104的相位。在块521,存储器控制器101确定C/A信号104的训练是否针对存储器模块102的所有排列丨丨丨I—S完成。如果还没有完成针对存储器模块的任意排列的C/A信号104的训练,则在块522标识那个排列。如上面参考为排列11 I .训练C/A信号104所讨论的那样,针对那个排列训练C/A信号104的过程从块512开始。如果针对存储器模块102的所有排列Ii I M完成了 C/A信号训练,则在块523存储器控制器101的相位设置逻辑单元203为所有排列I I h—N计算用于C/A信号104的相位的设置。C/A信号104的这样的计算的相位允许C/A对所有排列丨I I ^正确地工作。在一个实施例中,相位设置逻辑计算用于C/A信号104的相位的最佳的设置以用于所有排列I ilu。如参考图2的实施例所讨论的,相位设置逻辑单元203计算平均值设置作为针对所有排列丨I h—X的C/A信号104的相位的最佳的设置。接着对具有排列丨H I.—X的存储器模块102设定用于C/A信号104的相位的计算的设置。在这时,完成了对C/A信号104的训练而无需启动费时的JEDEC标准化的初始化过程。如上面所提及的,本文实施例的C/A训练过程比要求系统重新引导和/或JEDEC标准化的初始化过程的C/A训练过程快了一个数量级。还经由存储在机器可读存储介质上的可编程计算机-可执行指令实现本发明的实施例。例如,图3_4和图5A-B的方法是通过计算机可编程并可执行的。机器可读存储介质可以包括但不限于,闪速存储器、光盘、CD-ROM、DVD ROM、RAM、EPROM、EEPROM、磁卡或光卡、或适合于存储电子器件或计算机-可执行的指令的其他类型的机器可读存储媒体。例如,可以将本发明的实施例作为计算机程序下载,所述计算机程序可以以数据信号的方式经由通信链路(例如,调制解调器或网络连接)从远程计算机(例如,服务器)转移到请求计算机(例如,客户端)。图6示出根据本发明的一个实施例实现本文所公开的方法的系统600。在一个实施例中,系统600包括,但不限于,台式计算机、膝上型计算机、上网本、笔记本式计算机、个人数字助理(PDA)、服务器、工作站、蜂窝式电话、移动计算设备、信息家电(Internetappliance)或任何其他类型的计算设备。在另一个实施例中,用于实现本文所公开的方法的系统600可以是片上系统(system on chip, S0C)系统。 在一个实施例中,处理器610具有执行系统600的指令的处理核心612。在一个实施例中,处理核心612包括,但不限于,用以取指令的预取逻辑、用以译码指令的译码逻辑、用以执行指令的执行逻辑等等。在一个实施例中,处理器610具有用以高速缓冲系统600的指令和/或数据的高速缓冲存储器616。在一个实施例中,高速缓冲存储用以执行图3-4和图5A-B的方法的指令。在本发明的另一个实施例中,高速缓冲存储器616包括一级、二级以及三级高速缓冲存储器,或处理器610内的任何其他配置的高速缓冲存储器。存储器控制器101 (也被称为存储器控制中心(memory control hub,MCH)614)可操作以执行使处理器610能够访问存储器630并与存储器630通信的功能,所述存储器630包括易失性存储器632和/或非易失性存储器634。易失性存储器632包括,但不限于,同步动态随机存取存储器(SDRAM)、动态随机存取存储器(DRAM)、RAMBUS动态随机存取存储器(RDRAM)、和/或任何其他类型的随机存取存储器设备。非易失性存储器634包括,但不限于,NAND闪速存储器、相变存储器(PCM)、只读存储器(ROM)、电可擦写可编程只读存储器(EEPROM)、或任何其他类型的非易失性存储器设备。存储器630存储通过处理器610执行的信息和指令。在一个实施例中,当处理器610正执行指令时存储器630还可以存储临时变量或其他中间信息。在一个实施例中,芯片组620经由点对点(PtP)接口 617和622与处理器610相连接。在一个实施例中,芯片组620使处理器610能够连接到系统600中的其他模块。在本发明的一个实施例中,接口 617和622根据PtP通信协议(例如Intel 快速通道互联(QPI)等等)操作。在一个实施例中,芯片组620经由接口 626连接到显示设备640。在一个实施例中,显示设备640包括,但不限于,液晶显示器(LCD)、阴极射线管(CRT)显示器、或任何其他形式的视觉显不设备。在本发明的一个实施例中,处理器610和芯片组620被合并入S0C。另外,芯片组620连接到一个或多个总线650和655,所述一个或多个总线650和655使各个模块674、660、662、664以及666互相连接。在一个实施例中,如果在总线速度或通信协议中存在失配,则总线650和655可以经由总线桥672相互连接在一起。在一个实施例中,芯片组620经由接口 624耦合于,但不限于,非易失性存储器660、大容量存储设备(一个或多个)662、键盘/鼠标664以及网络接口 666。
在一个实施例中,大容量存储设备662包括,但不限于,固态驱动器、硬盘驱动器、通用串行总线闪速存储器驱动器、或任何其他形式的计算机数据存储介质。在一个实施例中,通过任何类型的众所周知的网络接口标准实现网络接口 666,所述网络接口标准包括,但不限于,以太网接口、通用串行总线(USB)接口、外围部件互连(PCI)快速接口、无线接口和/或任何其他适合的类型的接口。在一个实施例中,无线接口根据,但不限于,IEEE802. 11标准及其有关的家族、家用插塞AV( Home Plug AV,HPAV)、超宽带(UWB)、蓝牙、WiMax、或任何形式的无线通信协议操作。尽管将图6中示出的模块描绘为系统600内的独立块,但这些块中的一些执行的功能可以被集成到单个半导体电路内或可以使用两个或更多独立的集成电路来实现。例如,尽管将高速缓冲存储器616描绘为处理器610内的独立块,但高速缓冲存储器616相应地可以被并入到处理器核心612。在一个实施例中,系统600可以包括在本发明的另一个实施例中的超过一个处理器/处理核心。
本文所使用的术语可操作意味着当设备、模块、系统或逻辑单元在断电状态时,设备、模块、系统、逻辑单元、协议等等能够操作或适合于为它的期望的功能性而操作。在说明书中提及“实施例”、“一个实施例”、“一些实施例”或“其他实施例”意味着连同实施例描述的特定特征、结构、或特性包括在至少一些实施例中,但不一定是所有实施例。“实施例”、“一个实施例”或“一些实施例”的各个出现不一定都指相同的实施例。如果本说明书陈述“可以”、“可能”、或“能够”包括组件、特征、结构、或特性,则不必需包括那个特定组件、特征、结构、或特性。如果本说明书或权利要求书提及“一”或“一个”元件,则那不意味着只有元件中的一个。如果本说明书或权利要求书提及“附加的”元件,则那不排除存在超过一个的附加元件。尽管已经结合本发明的特定实施例描述了本发明,但对本领域技术人员来说,根据前面的描述这样的实施例的很多备选方案、修改和变型将是显而易见的。例如,可以将具有误差引脚而不是奇偶校验误差引脚(ALERT#)的存储器模块用于训练(修改)C/A信号而无需启动JEDEC标准化的初始化过程。在一个实施例中,没有将存储器排列I 11限制在存储器t旲块内。本发明的实施例意于包括所有这样的备选方案、修改、和变型以落入在所附的权利要求书的广泛范围内。
权利要求
1.ー种方法,所述方法包括 从存储器控制器传送命令-地址(C/A)信号到存储器模块; 通过所述存储器控制器,经由来自所述存储器模块的误差引脚的误差信号来确定所述存储器模块中的误差,所述误差与传送到所述存储器模块的C/A信号相关联;以及 响应于确定所述存储器模块中的误差,通过 所述存储器控制器修改所述C/A信号。
2.如权利要求I所述的方法,其中所述误差引脚是所述存储器模块的奇偶校验误差引脚。
3.如权利要求I所述的方法,其中所述存储器模块包括双倍数据率4(DDR4)接ロ。
4.如权利要求I所述的方法,其中所述存储器模块是具有动态随机存取存储器(DRAM)的双列直插式存储器模块(DIMM)。
5.如权利要求I所述的方法,其中响应于确定所述存储器模块中的误差,通过所述存储器控制器修改所述C/A信号包括 通过相对于所述存储器控制器的时钟信号延迟所述C/A信号的相位来调节所述C/A信号; 从所述存储器控制器传送所调节的C/A信号到所述存储器模块;以及 通过所述存储器控制器,经由来自所述存储器模块的误差信号来确定所述存储器模块中的误差,所述误差与传送到所述存储器模块的调节的C/A信号相关联。
6.如权利要求5所述的方法,还包括 响应于确定与传送到所述存储器模块的C/A信号和调节的C/A信号相关联的所述存储器模块中的误差,确定用于所述C/A信号的相位设置;以及 通过所述存储器控制器相对于所述存储器控制器的时钟信号将所述相位设置分配到所述C/A信号。
7.如权利要求6所述的方法,其中所述相位设置是所述存储器控制器传送到所述存储器模块的所有正确地接收的C/A信号的相位的平均值,接收的C/A信号包括所述C/A信号和所调节的C/A信号。
8.如权利要求I所述的方法,还包括通过所述存储器控制器重置与所述存储器模块中的误差相关联的误差寄存器。
9.如权利要求I所述的方法,还包括在修改所述C/A信号之前通过所述存储器控制器修改控制信号。
10.如权利要求9所述的方法,其中所述控制信号是片选信号。
11.一种存储器控制器,所述存储器控制器包括 传送器,所述传送器可操作以传送命令-地址(C/A)信号到存储器模块;以及 训练逻辑单元,所述训练逻辑单元可操作以 通过误差检测逻辑单元,经由来自所述存储器模块的误差引脚的误差信号来确定所述存储器模块中的误差,所述误差与传送到所述存储器模块的C/A信号相关联;以及 响应于确定所述存储器模块中的误差,通过相位调节逻辑单元修改所述C/A信号。
12.如权利要求11所述的存储器控制器,其中所述误差引脚是所述存储器模块的奇偶校验误差引脚。
13.如权利要求11所述的存储器控制器,其中所述存储器模块包括双倍数据率4(DDR4)输入输出接ロ。
14.如权利要求11所述的存储器控制器,其中所述存储器模块是具有动态随机存取存储器(DRAM)的双列直插式存储器模块(DIMM)。
15.如权利要求11所述的存储器控制器,其中所述训练逻辑单元可操作以通过所述相位调节逻辑单元修改所述C/A信号,所述相位调节逻辑单元可操作以通过相对于时钟信号延迟所述C/A信号的相位来调节所述C/A信号。
16.如权利要求14所述的存储器控制器,其中所述传送器还可操作以将所调节的C/A信号传送到所述存储器模块。
17.如权利要求16所述的存储器控制器,其中所述训练逻辑单元还可操作以 通过所述误差检测逻辑単元,经由来自所述存储器模块的误差信号来确定所述存储器模块中的误差,所述误差与传送到所述存储器模块的调节的C/A信号相关联; 响应于确定与传送到所述存储器模块的C/A信号和调节的C/A信号相关联的所述存储器模块中的误差,通过相位设置逻辑单元确定用于所述C/A信号的相位设置;以及 相对于时钟信号将所述相位设置分配到所述C/A信号。
18.如权利要求17所述的存储器控制器,其中所述相位设置逻辑单元还可操作以计算所述存储器控制器传送到所述存储器模块的所有正确地接收的C/A信号的相位的平均值以确定所述相位设置,所述接收的C/A信号包括所述C/A信号和所调节的C/A信号。
19.如权利要求11所述的存储器控制器,还包括重置逻辑单元,所述重置逻辑单元可操作以重置与所述存储器模块中的误差相关联的误差寄存器。
20.如权利要求11所述的存储器控制器,其中所述训练逻辑单元还可操作以在修改所述C/A信号之前,修改控制信号。
21.—种系统,所述系统包括 存储器模块,所述存储器模块具有误差引脚;以及 存储器控制器,所述存储器控制器以通信方式耦合到所述存储器模块,所述存储器控制器包括 传送器,所述传送器可操作以将命令-地址(C/A)信号传送到所述存储器模块;以及 训练逻辑单元,所述训练逻辑单元可操作以 通过误差检测逻辑单元,经由来自所述存储器模块的误差引脚的误差信号来确定所述存储器模块中的误差,所述误差与传送到所述存储器模块的C/A信号相关联;以及 响应于确定所述存储器模块中的误差,通过相位调节逻辑单元修改所述C/A信号。
22.如权利要求21所述的系统,其中所述误差引脚是所述存储器模块的奇偶校验误差引脚。
23.如权利要求21所述的系统,其中所述存储器控制器经由双倍数据率4(DDR4)输入输出接ロ以通信方式耦合到所述存储器模块。
24.如权利要求21所述的系统,其中所述存储器模块是具有动态随机存取存储器(DRAM)的双列直插式存储器模块(DIMM)。
25.如权利要求21所述的系统,其中所述训练逻辑单元可操作以通过所述相位调节逻辑单元修改所述C/A信号,所述相位调节逻辑单元可操作以通过相对于时钟信号延迟所述C/A信号的相位,调节所述C/A信号。
26.如权利要求24所述的系统,其中所述传送器还可操作以将所调节的C/A信号传送到所述存储器模块。
27.如权利要求24所述的系统,其中所述训练逻辑单元还可操作以 通过误差检测逻辑单元,经由来自所述存储器模块的误差信号来确定所述存储器模块中的误差,所述误差与传送到所述存储器模块的调节的C/A信号相关联; 响应于确定与传送到所述存储器模块的C/A信号和调节的C/A信号相关联的所述存储器模块中的误差,通过相位设置逻辑单元确定用于所述C/A信号的相位设置;以及 相对于所述时钟信号将所述相位设置分配给所述C/A信号。
28.如权利要求27所述的系统,其中所述相位设置逻辑单元还可操作以计算所述存储器控制器传送到所述存储器模块的所有正确地接收的C/A信号的相位的平均值,以确定所述相位设置,所述接收的C/A信号包括所述C/A信号和所调节的C/A信号。
29.如权利要求21所述的系统还包括重置逻辑单元,所述重置逻辑单元可操作以重置与所述存储器模块中的误差相关联的误差寄存器。
30.如权利要求21所述的系统,其中所述训练逻辑单元还可操作以在修改所述C/A信号之前修改控制信号。
全文摘要
本文描述了用于经由存储器的误差信号训练存储器信号的方法和装置。该方法包括从存储器控制器传送命令-地址(C/A)信号到存储器模块;通过存储器控制器,经由来自存储器模块的误差引脚的误差信号来确定存储器模块中的误差,该误差与传送到存储器模块的C/A信号相关联;以及响应于确定存储器模块中的误差,通过存储器控制器修改C/A信号,其中误差引脚是存储器模块的奇偶校验误差引脚,并且其中存储器模块包括双倍数据率4(DDR4)接口。
文档编号G11C29/42GK102959639SQ201180031921
公开日2013年3月6日 申请日期2011年6月20日 优先权日2010年6月28日
发明者S.乔扈里, J.H.萨尔蒙, K.S.拜恩斯 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1