CN1799040A - 检测外部存储器模块之存在并向内部模块报告的存储器模块体系结构菊花链拓扑 - Google Patents

检测外部存储器模块之存在并向内部模块报告的存储器模块体系结构菊花链拓扑 Download PDF

Info

Publication number
CN1799040A
CN1799040A CNA2004800155219A CN200480015521A CN1799040A CN 1799040 A CN1799040 A CN 1799040A CN A2004800155219 A CNA2004800155219 A CN A2004800155219A CN 200480015521 A CN200480015521 A CN 200480015521A CN 1799040 A CN1799040 A CN 1799040A
Authority
CN
China
Prior art keywords
memory
port
memory agent
agent
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2004800155219A
Other languages
English (en)
Other versions
CN100483380C (zh
Inventor
P·福格特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN1799040A publication Critical patent/CN1799040A/zh
Application granted granted Critical
Publication of CN100483380C publication Critical patent/CN100483380C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Abstract

一种存储器代理可以包括第一端口和第二端口,其中所述存储器代理能够检测在所述第二端口上另一存储器代理的存在。一种方法可以包括在存储器代理的第一端口上执行存在检测操作,并且经由所述存储器代理的第二端口报告所述存在检测操作的结果。

Description

检测外部存储器模块之存在并向内部模块报告的 存储器模块体系结构菊花链拓扑
背景技术
图1图示了被俗称为RamLink的现有技术存储器系统,所述RamLink被作为电气与电子工程师协会(InStitute of Electricaland Electronics Engineers IEEE)的标准提出。所述标准被命名为IEEE Std 1596.4-1996并且被正式称为IEEE Standard for High-Bandwidth Memory Interface Based on Scalable CoherentInterface(SCI)Signaling Technology(RamLink)(用于基于可缩放的相关接口(Scalable Coherent Interface SCI)信令技术的高带宽存储器接口(RamLink)的IEEE标准)。图1的系统包括存储器控制器10和一个或多个存储器模块12。典型情况下存储器控制器10内置于处理器或装配在处理器的配套芯片组上。每个存储器模块12具有从属接口14,所述从属接口14具有一个链路输入和一个链路输出。所述组件依照RamLink信令拓扑来布置,所述RamLink信令拓扑被认为是在组件之间具有单向链路16的RingLink。每个模块上的控制接口18把从属接口14与存储装置20相对接。在图1所示出的系统中,在从属接口和存储装置之间使用被称为SyncLink的另一RamLink信令拓扑。
RamLink系统的目的在于向处理器提供对存储装置的高速访问。在存储器控制器和模块之间利用沿着RingLink循环的分组来转送数据。控制器负责产生所有的请求分组并且调度从属响应分组的返回。
当控制器把包括命令、地址、时间和数据的请求分组发送到特定模块时,开始写入事务。所述分组从一个模块传送到另一模块,直到它到达所计划的从属装置,然后所述从属装置把数据传送到存储装置之一以便存储。然后所述从属装置发送响应分组,所述响应分组从一个模块传送到另一个模块直到它到达控制器以便确认完成了写入事务。
当控制器把包括命令、地址、时间的请求分组发送到一模块时,开始读取事务。在该模块上的从属装置从一个存储装置获取所请求的数据并且在响应分组中把它返回到控制器,其中所述响应分组再从一个模块传送到另一模块直到它到达所述控制器。
图2图示了现有技术的RamLink从属接口电路。在图2的电路中,使用源同步选通来为输入数据信号计时。即,伴随输入数据信号的选通信号被用来采样所述输入数据。图2的电路使用锁相环(PLL)来根据基准时钟信号产生稳定的本地时钟信号,所述基准时钟信号被分送给其它从属接口电路。本地时钟信号用来为输出数据信号重新计时以免在沿着下游设备传送数据时所带来的累积抖动。
附图说明
图1图示了现有技术的RamLink存储器系统。
图2图示了现有技术的RamLink从属接口电路。
图3图示了依照本专利发明原理的存储器接口系统的实施例。
图4图示了依照本专利发明原理的存储器模块的实施例。
图5图示了依照本专利发明原理的存储器模块的另一实施例和存储缓冲器的实施例。
图6图示依照本专利发明原理的存储器系统、存储器模块和存储缓冲器的附加示例性实施例。
图7图示了依照本专利发明原理的存储缓冲器的另一示例性实施例。
图8图示了依照本专利发明原理的重新驱动电路的实施例。
图9图示了依照本专利发明原理的I/O单元的实施例。
图10图示了依照本专利发明原理的I/O单元的另一实施例。
图11图示了依照本专利发明原理的I/O单元的另一实施例。
图12图示了依照本专利发明原理的I/O单元的另一实施例。
图13图示了依照本专利发明原理的故障转移电路的实施例。
图14依照本专利发明原理图示了按正常模式操作的故障转移(fail-over)电路的另一实施例。
图15依照本专利发明原理图示了按故障转移模式操作的故障转移电路的另一实施例。
图16依照本专利发明原理图示了具有位路(bit lane)故障转移能力的存储缓冲器的实施例。
图17依照本专利发明原理图示了具有位路故障转移能力的存储器控制器的实施例。
图18依照本专利发明原理图示了用于执行改序状态图案的方法的实施例。
图19图示了依照本专利发明原理的改序图案产生器的实施例。
图20到23图示了依照本专利发明原理的状态图案的示例性实施例。
图24图示了依照本专利发明原理的存储器代理的实施例。
图25图示了依照本专利发明原理的轮询操作的实施例。
具体实施方式
本专利包含许多能够独立使用的发明。在某些情形下,当彼此之间以各种组合来利用某些原理,从而产生额外的发明也是有益的。可以在无数实施例中实现这些原理。尽管为了图示发明原理而示出了某些具体细节,然而依照本专利的发明原理可以设计许多其它配置。从而,发明原理不局限于这里所公开的具体细节。
图3图示了依照本专利发明原理的存储器接口系统的实施例。图3的系统包括存储器控制器50和一个或多个存储器模块52,其经由单向链路所组成的信道通信。所述信道具有包括一个或多个出站链路54的出站路径和包括一个或多个入站链路56的入站路径。每个模块在出站路径和入站路径上都能够把信号从一个链路重新驱动到另一链路。每个模块还能够有选择地禁止任何重新驱动部件,例如如果所述模块检测到它是最外层的模块,或者响应于来自存储器控制器的命令。
每个模块包括一个或多个存储装置58,其被配置成向和/或从一个或多个路径转送数据。例如,所述模块可以被配置成把来自出站路径的数据转送到存储装置,而把来自存储装置的数据转送到入站路径。一个或多个缓冲器可以被安排在一个或多个存储装置和一个或多个路径之间。所述模块和控制器不局限于任何特定的物理设备。例如,所述模决可以装配在与系统其余部分相分离的衬底上,可以与控制器和链路一起装配在共用衬底上,或者用任何其它物理设备实现。所述模块同样不限于任何特定类型的存储装置,例如只读存储器(ROM)、动态随机存取存储器(DRAM)、闪速存储器等。
图4图示了依照本专利发明原理的存储器模块的实施例。图4的模块包括两个重新驱动电路60和62,分别用于接收在单向链路54A和56A上的信号,并且重新驱动在单向链路54B和56B上的信号。一个或多个存储装置58被配置成向和/或从一个或多个重新驱动电路转送数据。
图4的模块不局限于任何特定的单向链路设备或任何特定的用于向和/或从重新驱动电路转送数据的设备。如果图4的模块用于诸如在图3中所示的存储器系统,那么重新驱动电路60可以被指定为出站重新驱动电路,并且被配置成接收并重新驱动在包括链路54A和54B的出站路径上的信号,而其它重新驱动电路62可以被指定为入站重新驱动电路,并且被配置成接收并重新驱动在包括链路56A和56B的入站路径上的信号。在此例子中,一个或多个存储装置58可以被布置成将数据从出站重新驱动电路60转送到(这些)存储装置,并且从所述(这些)存储装置转送到入站重新驱动电路62。
所述模决能够检测其是否是信道上的最外层模块,并且据此有选择地禁止任何重新驱动部件。例如,如果图4的模块用于诸如在图3中所示出的存储器系统,并且所述模块检测到其是最外层的模块,那么出站重新驱动电路接收在链路54A上的输入信号但是并不重新驱动它们。同样,入站重新驱动电路只驱动具有对应于从存储装置所接收数据的信号和/或可以由所述模块内部所产生其它信号的链路56B。作为选择,即使所述模块检测到其不是最外层的模块,那么它也可以被构造成能够好象是最外层模块那样来操作(例如,响应于来自存储器控制器的命令),在这种情况下,它可能会忽略在入站链路56A上所接收的信号,并且它可能不会把信号重新驱动到出站链路54B上。
图5图示了依照本专利发明原理的存储器模块的另一实施例和存储缓冲器的实施例。图5的模块包括存储缓冲器64,所述存储缓冲器64具有两个重新驱动电路60和62,分别用于接收在单向链路54A和56A上的信号,并且把所述信号重新驱动到单向链路54B和56B上。存储缓冲器还包括存储器接口66,被配置成向和从一个或多个存储装置58转送数据。所述缓冲器能够检测它是否是信道上的最后代理,并且据此有选择地禁止任何重新驱动部件。即便缓冲器不是信道上的最后代理,它也能好象是信道上的最后代理那样操作,例如,对来自存储器控制器的命令作出响应。如这里所用,代理指的是与信道相对接的任何存储器控制器(也称作主机)、模块、缓冲器等。
图5的模块和缓冲器不局限于任何特定的单向链路设备或任何特定的用于在存储器接口和重新驱动电路之间转送的设备。如果图5的模块用于诸如在图3中所示的存储器系统,那么重新驱动电路60可以被指定为出站重新驱动电路,并且被配置用于接收并重新驱动在包括链路54A和54B的出站路径上的信号,而其它重新驱动电路62可以被指定为入站重新驱动电路,并且被配置用于接收并重新驱动在包括链路56A和56B的入站路径上的信号。在此例子中,存储器接口可以被配置为接收来自出站重新驱动电路60的数据并且把数据发送到入站重新驱动电路62。
各种物理设备可以用来实现图4和5的存储器模块和/或缓冲器。例如,存储装置58、重新驱动电路60和62以及缓冲器64都可以实现为安装在共用的电路板或独立的电路板上的独立集成电路。组件的各种组合可以一起装配在共用的集成电路上,或者它们都可以装配在单个的集成电路上。一个或多个(如果存在的话)电路板能够被插入主板上的插槽中,与主板一体装配,或以任何其它方式布置。例如如果所述组件作为多芯片模块的一部分装配的话,可以没有电路板。依照本专利发明原理的存储缓冲器可以用来把除存储装置以外的装置与信道对接。例如,依照本专利发明原理的存储缓冲器可以用来把I/O控制器或桥接器与信道对接。
引用“入站(inbound)”和“出站(outbound)”路径、链路、重新驱动电路等描述了依照本专利发明原理的设备的附加实施例,以便于理解在诸如图3所示出的实施例之类的存储器系统中可以怎样利用这些设备。然而,这些设备并不局限于任何特定的单向链路设备、所示出的用于在链路及其它电路之间转送数据的特定设备或任何所示出的实施细节。
图6图示了依照本专利发明原理的存储器系统、存储器模块和存储缓冲器的附加示例性实施例。参照图6,一个或多个存储器模块52是基于印刷电路板的,所述印刷电路板沿着一个边缘的两侧具有接触片以便创建双列直插存储器模块(DIMM:dual inline memorymodule),其可以被插入到用于容纳系统其它组件的另一电路板上的连接器中。对于所述模块可以采用现有的波形系数(form-factor),例如DIMM波形系数用于双数据率II(DDR2:Double Data Rate II)动态随机存取存储器(DRAM)模块。
所述模块被装入存储装置58,例如,诸如DDR2DRAM之类的日用类型的DRAM。每个模块上的存储缓冲器64把存储装置与信道隔离,所述信道把所述模块与存储器控制器50(也被称为主机)对接。所述信道被接入点对点设备,所述点对点设备具有包括出站链路54的出站路径以及包括入站链路56的入站路径。所述链路可以由使用低压差分信号的并行单向位路来实现。
在图6的实施例中,没有任何附加的信号线路用于诸如命令、重置、初始化等功能。作为替代,在经由信道所发送的数据中直接编码这些功能。然而作为选择,许多附加的信号线路可以用来实现这种功能。
基准时钟信号REF CLK由被分送给主机和模块的时钟合成器76产生,可能经由时钟缓冲器78。这使准异步计时方案便于进行,其中本地产生的时钟信号被用来采样并重新驱动输入数据。因为共用的参考时钟可用于每个代理,所以在没有任何频率跟踪的情况下可以为数据信号计时。作为选择,可以独立于任何基准时钟产生本地时钟信号。作为另一候选,可以使用诸如源同步选通之类的同步计时模式。
在一个可能的实施例中,所述主机通过在分组或帧(这里可交换地使用这两个术语)中把数据发送到在出站路径上最内层的模块,来开始数据传送。最内层模块接收数据并把所述数据重新驱动到在出站路径上的下一模块。每个模块接收并重新驱动出站数据直到它到达最外层的模块。尽管最外层模块可能试图把数据重新驱动到“不存在的”出站链路,然而每个模块能够检测(或被指示)到它是最外层的模块并且禁止任何重新驱动电路以便降低不必要的功率消耗、噪声等。在此实施例中,由最外层模块在主机方向上(即,入站)开始数据传送。每个模块沿着入站路径接收并重新驱动入站数据直到它到达主机。
在物理信道上可以使用任何适当的通信协议。例如,可以指定主机开始并调度所有的入站和出站数据传送。作为选择,可以允许任何代理开始数据传送。数据帧可以被配置用于携带命令、读取数据、写入数据、状态信息、错误信息、初始化数据、空闲图案等或其任何组合。可以这样实现协议以便当主机沿着出站路径向目标模块发送命令帧时,所述目标模块通过沿着入站路径立即向主机发回响应帧来作出响应。在这种实施例中,目标模块并不重新驱动在出站路径上的命令帧。
在候选实施例中,目标模块接收所述命令帧继而重新驱动在出站路径上的命令帧。当最外层的模块接收命令帧时,它在入站路径上发起响应帧(可能只是空闲帧)。目标模块等待直到所述响应帧到达其入站接收器。然后目标模块例如通过用目标模块的真实响应帧来替换由最外层模块所发送的响应帧,来将其响应合并到入站数据流中。
图7图示了依照本专利发明原理的存储缓冲器的另一示例性实施例。图7的存储缓冲器包括出站重新驱动电路60,用于接收并重新驱动在包括链路54A和54B的出站路径上的信号,所述存储缓冲器还包括入站重新驱动电路62,用于接收并重新驱动在包括链路56A和56B的入站路径上的信号。存储器接口66把所述缓冲器与一个或多个存储装置相对接,也许通过存储器总线68。存储器接口可以包括诸如FIFO缓冲器之类的读取和/或写入缓冲器。把来自出站路径的数据与存储器接口耦合,可以通过抗扭斜(deskew)电路实现,如果出站路径具有一个以上的位路,那么所述抗扭斜电路70消除在数据位之间的扭斜。图案产生器72可以用来产生状态图案以便发送到入站路径上,例如如果缓冲器正巧是信道上的最外层代理时,在这种情况下,在输入入站链路56A上可能不会有任何正在接收的信号。多路复用器74有选择地把来自存储器接口或图案产生器的数据耦合到入站重新驱动电路。
存储器接口不局限于任何特定的设备,并且它可以与标准的存储装置兼容,特别是诸如DDR2DRAM之类的日用存储装置。整个存储缓冲器可以集成在单个集成电路上,可以集成到一个或多个存储装置中,其组成元件可以集成到分开的组件上,或可以使用任何其它的物理设备。在图7中所示出的实施例只是示例性的,并且依照本专利的发明原理其它实施例也是可以的。例如,示出的图7的实施例具有从出站重新驱动电路到存储器接口以及从存储器接口到入站重新驱动电路的单向数据流。然而此数据流可以是双向的,并且也可以考虑使用其它设备。即便图7的实施例用于其中存储器接口的数据只能如图7所示流动的信道系统,它仍然可以利用具有完整的双向数据访问的重新驱动电路来实现,这可以使例如实施内部自测(BIST:built-inself-test)功能便于进行,在这种情况下用于抗扭斜来自入站路径的数据的第二抗扭斜电路可能是有帮助的。
图8图示了依照本专利发明原理的重新驱动电路的实施例。图8的电路包括一个或多个输入/输出(I/O)单元74,每个接收输入数据信号RX,其可以作为输出数据信号TX而重新驱动。作为选择,I/O单元可以把读取数据信号RDX替换为或并入到输出数据信号。写入数据信号WDX也可以在被作为输出数据信号而重新驱动之前或者之后,从输入数据信号中取出。
在上述任何信号名中的“X”取决于重新驱动电路中的I/O单元数目,表明可以是多个类似的信号之一。例如,具有九个位路的重新驱动电路可能会具有九个I/O单元,其输入信号被命名为R0、R1...R8。在只具有单个I/O单元的重新驱动电路中,数据输入信号可能会是RO或只是R。术语RX用来一般地指代任何或所有输入数据信号。
为方便起见,术语“写入数据”用来表明从穿过I/O单元的数据流中所取出的任何数据。然而这并不意味着写入数据必须被导引到存储器接口或存储装置。同样,“读取数据”指的是任何输入到I/O单元的数据,并且读取数据可以来自任何源,而不只是存储装置或存储器接口。
再次参照图8,时钟发生器80响应于基准时钟信号REF CLK来产生许多相位时钟信号PCX和发送时钟信号TC。时钟发生器包括锁相环(PLL)82和相位时钟发生器84,所述锁相环(PLL)82产生发送时钟TC作为多个基准时钟信号REF CLK。在一个可能的实施例中,存在四个相位时钟信号PC0、PC1、PC2和PC3,它们相互之间间隔90度并且从发送时钟TC中导出。每个I/O单元可以使用一个或多个TC和PCX时钟信号来采样和/或重新驱动数据信号,和/或产生附加的本地时钟信号。在此实施例中,不会响应于任何输入数据信号RX的相位来调整相位时钟和发送时钟信号,所以在此意义上,所述相位时钟和发送时钟信号是稳定的信号。
图9图示了依照本专利发明原理的I/O单元的实施例。接收器86被配置成响应于采样时钟信号SC来接收数据信号RX并且把它作为数据信号TX重新驱动。由采样时钟发生器88来产生采样时钟信号,所述采样时钟发生器88能够响应于数据信号RX来调整所述采样时钟信号。写入数据信号WDX可以从接收器86的输入或输出中取出。如果如图9所示从接收器的输出中取出,那么采样时钟信号SC可以被用作或用于驱动写入数据的选通信号。如图9所示,采样时钟发生器的输入也可以取自不同于接收器输入之外的其余点。例如,它也可以取自接收器的输出。
图10图示了依照本专利发明原理的I/O单元的另一实施例。在图10的实施例中,利用插值器90和接收器跟踪部件(RTU:receivertracking unit)92来实现采样时钟发生器88。插值器通过响应于来自接收器跟踪部件的跟踪信号在多个相位时钟信号PCX(在这种情况下是相差90度的四个信号)之间进行内插来产生采样时钟信号。接收器跟踪部件观察数据信号RX并且调整跟踪信号,以便采样时钟信号使接收器在适当的时候采样并重新驱动所述数据信号。从而,采样时钟信号可以动态地跟踪所述数据信号。
在一个可能的实施例中,接收器跟踪部件通过过采样数据信号并且调整采样时钟信号,来观察数据信号RX中的转变,以便采样并重新驱动在数据眼(data eye)中央(即在数据信号转变之间的中间点)的数据信号。采样时钟发生器88可以包括环路滤波器,所述环路滤波器测量几个比特单元并且最后可以确定它应当调整采样时钟信号的相位以便捕获更接近于数据眼位置中央的数据。如图10所示,采样时钟发生器的输入也可以取自不同于接收器输入之外的点。例如,它也可以取自接收器的输出。
依照本专利发明原理的I/O单元的实施例可以被用于使I/O单元动态跟踪数据信号的模式。例如,如果图10的I/O单元被用作在图3中所示出的存储器模块之一,那么主机可以定期地把训练帧(trainingframe)发送到出站路径上。这些训练帧具有边缘密度,所述边缘密度足以保证接收器跟踪部件观察了数据信号中的足够多的转变以便能够调整采样时钟信号。同样,图3中的最外层模块可以定期地把训练帧发送到入站路径上。
图11图示了依照本专利发明原理的I/O单元的另一实施例。图11的实施例与图9的实施例类似,但是在数据信号路径中增加了缓冲器94。缓冲器94可以是用于补偿电压和温度感应效应的防止抖动或漂移补偿缓冲器。缓冲器使数据信号TX重新同步到发送时钟信号TC。并不依照采样时钟信号SC的方式响应于数据信号来调整发送时钟信号的相位,所以在此意义上,所述发送时钟信号是稳定的。
在图11的实施例中,缓冲器能够响应于模式信号以穿过模式或重新驱动模式操作。在穿过模式中,信号穿过而不被采样并重新驱动。在重新驱动模式中,响应于时钟信号,信号被采样并重新驱动。这使I/O单元能够在不同的重新驱动模式中操作。在一个可能的实施例中,如果模式信号被置为有效,那么缓冲器依照穿过模式操作。这被认为是重新采样模式并且可以产生较短的等待时间,这是因为数据信号正在被用于采样数据的相同时钟重新驱动。当模式信号没有被置为有效时,缓冲器依照重新驱动模式操作,以便使数据重新同步到发送时钟。这被认为是重新同步(resync)模式并且可能产生较长的等待时间,但是可以降低抖动。I/O单元可以被设计到存储缓冲器或模块中,所述存储缓冲器或模块具有用于接收模式信号的输入。如果存储缓冲器或模块将被用在到下一代理具有相对较短信号路径的系统上,那么可以把输入置为有效(或者取决于极性不置为有效)以便使I/O单元依照重新采样模式操作,这是因为在短信号路径上可以容许更大的抖动。另一方面,如果存储缓冲器或模块用在到下一代理具有相对较长信号路径的系统上,那么可以把输入置为无效以便使I/O单元依照重新同步模式操作,这是因为虽然可能需要耗费更长的等待时间,但是这降低了抖动。作为选择,一个被登记的标志可以用在存储缓冲器或模块上,或重新驱动电路中,或I/O单元本身中以便控制模式信号。
图12图示了依照本专利发明原理的I/O单元的另一实施例。在图12的实施例中,所接收和发送的数据信号RX和TX是差分信号,并且横断集成电路片的边缘,可以把I/O单元装配在所述集成电路片上。接收器86包括采样部件96和终止部件98。采样部件响应于采样时钟信号SC来采样输入数据信号,所述采样时钟信号SC由插值器90响应于来自采样时钟发生器的相位时钟信号而产生。终止部件提供了差分终止并且把差分数据信号转换为单端信号。防止抖动或漂移补偿缓冲器94响应于采样时钟信号SC或稳定的发送时钟信号TC来为数据计时。多路复用器100有选择地把来自缓冲器94或串行器102的数据信号耦合到发送锁存器104。在串行器102的I/O单元接收读取数据信号RDX[0...n]。另一多路复用器可以安排在缓冲器94和发送锁存器104之间,其一个输入端连接到缓冲器而另一个输入端连接到插值器的输出。
当I/O单元需要把读取数据并入数据流中时,多路复用器选择与串行器耦合的输入,以便发送锁存器响应于发送时钟信号TC为来自I/O单元的读取数据计时。否则,多路复用器选择来自缓冲器的数据信号,所述数据信号然后由发送锁存器重新驱动。发送数据信号在被驱动到下一单向链路之前,被发送器106转换回差分信号。写入数据从发送锁存器的输出中取出,在解串器108中被收集,继而被路由到抗扭斜电路、位路故障转移机制或其它电路。解串器还可以提供位线时钟信号BLC,用于表明何时写入数据WDX[0...n]有效,所述位线时钟信号BLC可以根据采样时钟信号导出。
本专利的一些发明原理涉及分别地抗扭斜来自重新驱动路径的信号。重新驱动路径由一个或多个组件定义,当信号被接收并重新驱动时,通过其进行传播。例如,在图9和10的实施例中,所述重新驱动路径包括接收器86。在图11的实施例中,所述重新驱动路径包括接收器86和缓冲器94。在图12的实施例中,重新驱动路径包括采样部件96、终止部件98、缓冲器94、多路复用器100、发送锁存器104和发送器106。
依照本专利的某些发明原理,可以把抗扭斜电路集成到重新驱动电路中以便把抗扭斜电路的单个位路包括在重新驱动路径中。从而,当在位路上的信号被沿着路径重新驱动时,可以在每个重新驱动电路中抗扭斜所述信号。然而作为选择,依照本专利发明原理的抗扭斜电路可以与重新驱动路径分离。例如,在图7的实施例中,所示出的抗扭斜电路不仅与重新驱动电路60中的重新驱动路径相分离,而且与整个重新驱动电路相分离。作为选择,可以把依照本专利发明原理的抗扭斜电路集成到重新驱动电路中,但是仍然与重新驱动路径相分离。例如,在图12的实施例中,一个或多个抗扭斜锁存器可以位于串行器102的输出端和/或解串器108的输入端。
如上所述用于分别抗扭斜来自重新驱动路径的信号的方法和设备实施例仅仅是示例性的而并不被限制为这些具体例子。此外,依照本专利与分别抗扭斜来自重新驱动路径的信号有关的原理与本专利的其它发明原理无关。例如,正如在图9-12中所图示的重新驱动电路实施例不局限于在具有独立的出站和入站路径的存储器系统中使用,同样依照本专利与分别抗扭斜来自重新驱动路径的信号有关的原理也可以被用于利用单向链路的其它类型的存储器体系结构,例如利用诸如RamLink之类的环状链路设备的体系结构。
本专利的某些发明原理涉及应对故障位路。例如,在图3、4、5、6或7中所示出的任何代理之间的任何单向链路可以具有一个以上的位路。依照本专利发明原理,一个或多个信号可以被重定向到位路上以便避免坏的位路。诸如存储器控制器(主机)、模块、缓冲器等任何代理能够重定向许多位路上的一个或多个信号。可以在链路的两端或者任一端重定向信号。任何代理能够自动地或借助另一代理来检测故障位路,并且任何代理能够响应于来自另一代理的命令来重定向信号。
图13图示了依照本专利发明原理的故障转移电路的实施例。只为说明目的,连同重新驱动电路112的实施例一起示出了图13的故障转移电路11O,但是本发明原理不局限于借助任何特定的重新驱动电路使用,故障转移电路也不局限于在图13中所示出的具体细节。重新驱动电路112包括许多位路,被配置成接收并重新驱动单向链路上的信号。每个位路被具体化为具有接收器116和发送器118的I/O单元114。
故障转移电路指的是能够把一个或多个信号重定向到多个位路或重定向来自多个位路的一个或多个信号的电路。在图13的实施例中,故障转移电路被实现为具有一个或多个多路复用器开关120的多路复用器。每个开关具有与一个位路耦合的第一输入和与邻近位路耦合的第二输入,以便它可以重定向从任一位路到其输出端的信号。在图13中所示出的实施例只示出了六个开关来服务于六个位路,但是可以使用任何数目的开关和位路,并且可以依照不同于所示出的邻近位路配置的各种配置来布置所述开关。
在正常操作模式期间,每个开关如图14所示把来自其第一输入的信号定向到其输出,以便写入数据信号WD0、WD1、WD2、WD3、WD4和WD5分别指向输出OUT0、OUT1、OUT2、OUT3、OUT4和OUT5。在这种实施例中,位路之一(例如,对应于WD5的位路)可以用于对其它位路上的数据进行错误检验。
如果检测到坏的位路,那么多路复用器可以依照故障转移模式操作,其中操纵一个或多个开关以便排除映射(map out)所述坏的位路。例如,如果与WD3相关联的位路没有适当地操作,那么如图15所示多路复用器开关可能把写入数据信号WD4和WD5分别重定向到输出OUT3和OUT4。在此模式中,损失了占有信号能力的一个位路。一个位路已经被指定用于错误检验,那么最初打算送到坏的位路的信号可以被经由错误检验路而重新路由,并且可以禁止错误检验功能。
故障转移电路的输出可以与存储器接口、存储装置或其它电路耦合。在图13的实施例中,所示出的故障转移电路与重新驱动电路分离,但是它也可以集成到重新驱动电路中。如同所示依照本专利发明原理故障转移电路可能利用简单的多路复用器来实现,但是诸如全交叉开关之类的其它设备也是可以的。
在图13中所示出的故障转移电路的实施例被配置成把来自位路的写入数据耦合到其输出。作为选择,依照本专利发明原理的故障转移电路的实施例可以被配置成在相反方向上转送数据,在这种情况下输出端OUTX可能会变为用于接收读取数据的输入端,多路复用器开关可以被认为是多路分解开关,并且每个I/O单元在发送器和接收器之间可以具有多路复用器以便把来自故障转移电路的读取数据并入到位路中。从而多路复用器既涉及多路复用器又涉及多路分解器。作为另一候选,依照本专利发明原理的故障转移电路的实施例可以被配置为用于在位路和存储装置、存储器接口或其它电路之间的双向数据流。
依照本专利发明原理,具有位路故障转移能力的存储缓冲器、存储器模块、存储器控制器(主机)或者其它代理也可以具有用于检测故障位路、重定向信号、排除映射坏的位路等各种能力。例如,具有在图13中所示出的故障转移电路实施例的代理可以被设计为,它可以例如通过观察由另一代理所发送的测试数据模式来检测到故障位路,并且重定向信号以便排除映射所述故障位路。作为选择,代理可以被设计成能够响应于来自另一代理的命令,来排除映射故障位路,所述另一代理例如用于指示存储器信道上的一个或多个代理的存储器控制器。作为选择,所述代理可以兼具此能力。
图16依照本专利发明原理图示了具有位路故障转移能力的存储缓冲器的实施例。图16的实施例与图7的实施例相似,只是还包括一在抗扭斜电路70和存储器接口66之间耦合的故障转移电路122。候选实施例也是可以的。例如,故障转移电路可以被安排在重新驱动电路60和抗扭斜电路之间,或集成到重新驱动电路中。图16的实施例还包括另一故障转移电路124,所述示出的故障转移电路124耦合在多路复用器74和重新驱动电路62之间,但是也可以被集成到重新驱动电路中或依照其它方式布置。作为选择,图16的存储缓冲器可以被具体化为存储器模块,在这种情况下存储器接口由存储装置代替。
图17依照本专利发明原理图示了具有位路故障转移能力的存储器控制器的实施例。图17的控制器包括具有多个位路的出站和入站单向链路接口126和128,在此实施例中,所述出站和入站单向链路接口126和128分别包括多个发送器和多个接收器。故障转移电路130和132分别与接口126和128中的位路耦合。在图17的实施例中,所示出的故障转移电路与链路接口分离,但是作为选择它们也可以与所述接口整合。控制器能够检测故障位路,在这种情况下故障转移电路可以排除映射所述故障位路。另外或作为替换,控制器能够发布命令,用于指示代理对故障位路排除映射。
现在将在完整的存储器信道系统的示例性实施例范围内描述依照本专利发明原理的附加的故障转移方法和设备,所述完整的存储器信道系统包括依照本专利发明原理的存储缓冲器、存储器控制器(主机)和存储器模块的附加实施例。然而,没有一个组件被限制为此示例性的系统或其中所描述的任何细节。
示例性的系统包括具有故障转移能力(如参考图17所描述的故障转移能力)的主机的实施例和具有缓冲器的一个或多个存储器模块的实施例,所述缓冲器具有诸如参考图16所描述的故障转移能力。在此例子中,依照具有诸如图7中所示出的出站和入站路径的信道配置来布置所述主机和模块,不过所述系统可以只包括一个模块。
在此例子中,主机和模块与被称为“SMBus”的系统管理总线相互连接,所述系统管理总线是用于管理系统中组件的串行总线系统。然而,SMBus的使用不必是本专利的发明原理,并且可以使用在组件之间的其它形式的通信,包括存储器信道路径本身。
用于在示例性系统中检测并排除映射故障位路的依照本专利发明原理方法的实施例如下进行。主机在出站路径的每个位路上发送测试图案。所述测试图案被每个模块上的缓冲器接收并沿着出站路径重新驱动,直到它到达最外层模块。然后最外层模块在入站路径的每个位路上发送测试图案。所述测试图案被每个模块上的缓冲器接收并沿着入站路径重新驱动,直到它到达主机。模块上的缓冲器和主机观察在入站和/或出站路径的每个位路上的测试图案以便检查适当的位路操作。可以同时测试在入站和出站路径中的位路。
通过经由SMBus向主机发送结果和/或通过经由信道向主机发送结果帧来报告故障位路。这种结果帧可以由最外层模块在入站路径上发起,并且其它模块(如果存在)可以把它们的结果信息合并到入站路径的数据中。如果来自每个模块的结果在一个以上位路上被冗余地发送,那么故障位路不可能妨碍报告结果。
一旦主机接收了所述结果,那么它可以经由SMBus、经由信道或经由任何其它形式的通信来向模块发布配置命令。所述配置命令指示所述模块哪些位路(如果有的话)是坏的并且应当被排除映射。所述模块通过操纵一个或多个故障转移电路以便重定向在坏位路周围的信号(如果有的话)并且重新配置任何内部功能以便调节位路损失,来响应所述配置命令。例如,如果指定一个位路用于错误检验数据,那么所述缓冲器或模决可以禁止错误检验功能。
上述故障转移方法和设备的实施例是仅仅示例性的,并且本专利的发明原理并不局限于这些具体例子。参考具有独立入站和出站路径的存储器系统(诸如图3的实施例)已经描述了依照本专利的故障转移方法和设备的原理,但是所述原理还可以应用于任何利用单向链路的存储器体系结构,例如利用诸如RamLink之类的环状链路设备的体系结构。
本专利的某些发明原理涉及改序(permuting)状态图案。在诸如参考图1和3的上述存储器系统中,其中在存储器代理之间转送存储器读取和写入数据,在存储器代理之间发送诸如空闲图案、警告图案之类的状态信息及其它状态信息也可能是有用的。这可以通过在用于连接存储器代理的相同的一个或多个链路上发送数据图案和状态图案来实现。依照本专利发明原理,所述状态图案可以随着时间的推移而改序。
例如,参照图3,存储器控制器50可以向一个或多个模块52发送具有诸如读取命令之类的数据图案的帧,所述模块52通过向所述控制器发回具有诸如读取数据之类的数据图案的帧来作出响应。一个或多个模块把具有空闲图案的帧发回到存储器控制器可能是有用的,例如如果所述模块不能足够快地从存储装置58获取读取数据时。预定数据图案可以被指定为空闲图案,以便如果存储器控制器接收了所述空闲图案,那么它知道不接收读取数据。然而如果实际的读取数据图案正巧与所指定的空闲图案相匹配,那么这可能会导致出现问题。
依照本专利发明原理,存储器控制器和一个或多个模块都能够依照可预测的方法来改序空闲图案以便所述空闲图案随时间改变。例如,每当发送和/或接收空闲帧时,存储器控制器和模块可以依照预定序列来改变所述空闲图案。在图18中图示了这种依照本专利发明原理方法的实施例。从而,如果存储器控制器发送读取命令帧(158)并且接收了具有当前空闲图案(162)的响应帧(160),那么它可以重新发送相同的读取命令(164)。如果第二响应帧(166)包含与第一响应帧(168)相同的图案,那么它把所述图案解释为实际读取数据(170)。然而如果第二响应帧中的图案与所改序的空闲图案(168)相匹配,那么存储器控制器知道所述第一响应帧是空闲帧(172)。
依照本专利发明原理,在状态图案中所发送的状态信息可以是空闲图案、警告图案及其它状态信息,诸如来自模块的命令错误信息、来自模块的热过载信息和用于表明模块在存储器信道的出站路径上检测到存在另一模块的信息。某些类型的状态图案可以被实现为互补图案。例如,警告图案(其可以用来向代理通知错误状态)可以被实现为空闲图案的逻辑补码。例如这可以通过允许存储器代理对于空闲和警告图案使用相同的图案产生器来简化实现。即便不使用改序图案,那么使用互补的状态图案也是有益的。
依照本专利发明原理的存储器代理还能够在状态图案中有意产生诸如循环冗余校验(CRC:cyclical redundancy check)错误之类的错误。这种技术可能用作用于区分数据模式和状态模式的候选或附加方法。例如,在某些存储器系统中,连同用于检查帧中数据完整性的CRC代码一起发送每个帧。
依照本专利发明原理,存储器代理可以有意地利用具有包含状态图案的帧来发送错误的CRC代码。然后接收代理可以把所述帧解释为状态帧而不是数据帧。某些存储器系统可以利用具有多余位路的一个或多个路径来携带CRC数据。如果这种系统能够依照故障转移模式操作,那么一个或多个代理如果不依照故障转移模式操作,那么可能只利用有意的CRC错误。如这里所用,术语CRC不仅涉及循环冗余校验,而且涉及用于校验帧或图案完整性的任何其它类型的错误检验方案。
尽管依照本专利发明原理状态图案改序和处理原理适用于任何类型的存储器代理,并且与本专利的其它发明原理无关,然而将相对于在图7中所示出的实施例之类的存储缓冲器,并且在诸如图6中所示出的实施例之类的系统范围内描述一些附加的方面。参照图6,如果存储缓冲器64是存储器信道上的最外层代理,那么每当它不发送数据时,能够不断地在入站链路56B上发送改序的空闲状态帧,其中主机从附于存储器接口68的任何存储装置请求所述数据。
图19图示了依照本专利发明原理的改序图案产生器的实施例。图19的实施例是具有多项式x12+x7+x4+x3+1的12位线性反馈移位寄存器(LFSR)。初始状态可以被设置为000000000001,并且LFSR在重复所述图案之前通过212-1状态(4095个帧)来循环。LFSR的每个位可以被映射到在数据路径上的链路中的位路,并且每个位可以用于在整个帧期间出现在相应位路上的所有转送。例如,在具有数据路径的系统(其中数据路径在每个链路中具有12个位路)中,可以把来自LFSR的每个阶段的输出映射到一个位路。附加路(例如第13个位路)可以通过利用来自由一个帧所延迟的LFSR最低有效位的值来调节。
图20图示了由图19的改序图案产生器所产生的第一状态图案的例子。在此例子中,帧是12个转送长度。图21-22分别图示了第二、第三和第四状态图案。通过在整个帧期间使用每个位路上的相同值,可以降低电磁干扰(EMI或噪声)。
以举例形式这里图示了按照12位转送帧的13位路,本专利的发明原理不局限于这些细节,也不局限于上述改序图案产生器的具体实施例。例如,不必利用诸如上述LFSR之类的专用逻辑电路来实现依照本专利发明原理的改序图案产生器。作为选择,其可以利用可编程序逻辑来实现,或被实现为在处理器或其它可编程状态机中的算法,所述处理器或其它可编程状态机可以用来监视和/或实现存储器接口中的逻辑或缓冲器或其它存储器代理的其它功能,所述其它存储器代理利用了改序的状态图案。
本专利的某些附加发明原理涉及利用一个以上位路来检测在存储器链路上存储器代理的存在。例如,在图7所示出的存储缓冲器的实施例中,缓冲器能够检测是否存在与出站链路54B耦合的另一存储器代理。这可以通过利用链路中的单个位路进行测试另一存储器代理的存在来实现。然而如果在链路中存在一个以上位路,那么一个以上位路可以用来检测依照本专利发明原理的另一存储器代理的存在。这可以防止坏位路的存在对存在检测操作的妨碍。
为方便起见,与利用一个以上位路来检测存储器代理存在有关的本专利发明原理将分别并一起被称为冗余的存在检测。冗余的存在检测可以应用于具有与多个位路对接的链路的任何类型的存储器代理。例如,在图13的实施例中所示出的任何两个或更多发送器118可以被认为是链路接口,在这种情况下是发送链路接口。同样,在图13的实施例中所示出的任何两个或更多接收器116可以被认为是链路接口,在这种情况下是发送链路接口。冗余的存在检测可以应用于这些链路接口中的任何一个,以及在图17的实施例中所示出的链路接口126和128中的任何一个。
作为例子再次返回到图7的实施例,存储缓冲器可以把在其入站发送链路56B上的三个位路驱动到预定存在检测的逻辑电平,例如电平一,以便当出现诸如重置之类的存在检测事件时向另一缓冲器发信号通知其存在。此外在存在检测事件期间,位于信道上第一缓冲器入站处的第二个这种存储缓冲器可以配置在其入站接收链路56A上的相应三个位路以便检测第一缓冲器的存在。在此例子中,第一存储缓冲器将被称为外部代理,而第二缓冲器将被称为内部代理。
用于配置位路以便检测另一代理存在的技术的例子是使该位路的接收器试图在所述位路上施加偏压电流,以便强制使位路与存在检测逻辑电平相反。如果在存在检测事件期间另一存储器代理与所述位路耦合,那么在该位路上的发送器可能会强制使所述位路成为存在检测的逻辑电平。
如果内部代理在三个位路中的两个上检测到存在检测的逻辑电平,那么它知道存在外部代理并且它可以保留其外部端口的全部或部分允许操作。(在此例子中,外部端口包括出站链路54B的链路接口和入站链路56A的链路接口。)如果内部代理没能在三个位路中的至少两个上检测到存在检测的逻辑电平,那么它可以决定不存在外部代理并且可以禁止其全部或部分外部端口。内部代理能够向另一代理报告外部代理的存在或不存在,例如响应于状态检查命令来向存储器控制器报告。
利用冗余的存在检测的代理还能够向另一代理发信号通知存在检测事件。例如,如果通过出站路径上的重置命令来把重置事件传递到图7的缓冲器,那么此命令可以由重新驱动电路60被中继到外部代理(如果有的话)。这可以把这两个代理置为存在检测模式。
依照本专利发明原理的冗余的存在检测不局限于上述具体实施例。例如,在上述例子中可以只使用两个位路来代替三个位路进行存在检测,在这种情况下内部代理可能只须在单个位路上检测存在检测的逻辑电平以便断定外部代理的存在。同样,冗余的存在检测可以应用于利用各种其它类型存储器体系结构的系统和组件,例如,利用诸如RamLink之类的环状链路设备的体系结构。
依照本专利的某些附加的发明原理涉及从存储器信道热插入和/或拔除组件——即,当存储器信道正在操作时添加和/或拔除组件。图24图示了依照本专利发明原理的存储器代理134的实施例。图24的实施例可以是存储器模块、存储缓冲器、存储器控制器等。代理包括第一端口136和第二端口138。仅仅为了说明,如果假定代理为存储器模块,诸如在图6的实施例中的一个模块52,那么第一端口可以被指定为内部端口,这是因为其可以被配置成与在存储器信道上的其它代理通信,所述其它代理位于更接近存储器控制器的地方。同样,第二端口可以被指定为外部端口,这是因为其可以被配置成与在存储器信道上位于更远离存储器控制器地方的代理通信。这些指定仅仅为了说明目的,并且本发明原理既不局限于存储器代理的这些细节,也不局限于在图6中所示出的特定存储器信道。这些原理还可以适用于其它存储器信道体系结构,诸如在图1中所示出的RamLink体系结构。
依照本专利发明原理的存储器代理的每个端口具有一个或多个链路接口。在图24的实施例中,每个端口兼有接收链路接口和发送链路接口。内部端口136具有接收链路接口140和发送链路接口142,所述接收链路接口140可以是作为重新驱动电路60一部分的一个或多个接收器,并且所述发送链路接口142可以是作为另一重新驱动电路62一部分的一个或多个发送器。外部端口分别具有接收和发送链路接口144和146,它们也分别是重新驱动电路62和60的一部分。链路接口140和146可以分别与出站链路54A和54B耦合,而链路接口142和144可以分别与入站链路56B和56A耦合。每个链路接口可以具有一个或多个位路,并且可以使用此术语的任何组合来涉及所述位路和接口。例如,接口142中的位路可以被认为是入站发送或入站Tx位路。接口144中的位路可以被认为是入站接收或入站Rx位路。
图24的实施例仅仅是示例性的,并且可以以不同的方式来具体化存储器代理和端口。例如,链路接口不必是重新驱动电路的一部分。这在图17所示出的存储器控制器的实施例中有所示出,其中端口可以包括不是重新驱动电路一部分的链路接口126和128。链路接口可以只包括一个或多个位路,并且端口可以只具有接收链路接口或发送接口。
依照本专利发明原理的存储器代理能够检测在其一个端口上另一存储器代理的存在,并且能够取决于另一存储器代理的存在或不存在进行各种动作。例如,如果另一存储器代理在所述端口不存在,那么图24的存储器代理能够禁止其全部或部分外部端口。它能够向另一代理(例如经由其内部端口向存储器控制器)报告外部代理的存在或不存在。图24的存储器代理能够执行存在检测操作,所述存在检测操作可以包括向外部端口上的潜在外部代理发信号通知存在检测事件。它还能够执行快速重置操作。
在存储器系统示例性实施例的范围内将描述某些附加的发明原理,其可以使依照本专利应用的热添加/拔除便于进行。在诸如图6实施例之类的存储器系统的范围内将参考图24的存储器代理来描述示例性实施例。在此示例性实施例中,假定图24的存储器代理用来实现图6中的一个或多个缓冲器,所述一个或多个缓冲器依次是具有存储装置的模块的一部分。然而,所有这些细节仅仅为了解释,并且本发明原理不局限于这些细节。
在示例性系统中,存储器代理能够执行快速重置操作、完全重置操作和/或各种轮询或存在检测操作。在示例性系统中,为了使在每个位路上所导出的时钟固定到数据流上,最小数目的时钟转变是必要的。从而,对于预定时段,存储器控制器(或主机)可以通过在出站路径中的一个或多个位路上发送一或零的连续流来开始重置操作。因为数据由所述路径上的每个缓冲器重新驱动,所以所有缓冲器接收重置命令或事件。在示例性系统中,可以使用三个最低有效位(LSB)路来发信号通知重置操作。接收代理可以通过感测在三个LSB中任何两个上的零或一流来检测重置事件。这可以确保存在一个故障位路不会妨碍重置操作,但是本发明原理不局限于这种实施方式,本发明原理甚至不要求一个以上的位路。
在示例性系统中,主机可以发送零的连续流来无限地使在信道上的所有代理(在此例子中为具有缓冲器的模块)保持在第一重置状态中,例如当主机按照外部条件被保持重置时。然后对于第一时间量(例如,两个帧周期),主机可以发送一的流,继而回到发送零的流以便发信号通知其它代理执行快速重置操作。作为选择,对于第二时间量(例如,两个以上的帧周期),主机可以发送一的流以便发信号通知其它缓冲器执行完全重置操作。完全重置可以包括各种内部校准操作,诸如链路上的阻抗匹配、在任何接收器或驱动电路中的电流源校准、接收器偏移抵消等。在执行了校准操作之后,主机然后可以发信号通知缓冲器转变到快速重置操作。
快速重置操作可以绕过在诸如校准操作之类的完全重置期间所执行的某些操作。快速重置操作可以始于存在检测操作。在存在检测操作期间,信道上的每个缓冲器可以在三个LSB入站Rx位路上施加电流以便把位强制为零,如果它们没有连接到外部代理的话。同样在存在检测操作期间,每个缓冲器可以把三个LSB入站Tx位路驱动到一。然后每个缓冲器可以检查其三个LSB入站Rx位路,并且如果它在三个路中的两上检测到一,那么它可以保留其外部端口启用并且据此更新状态寄存器。如果缓冲器没有检测到两个一,那么它可以假定没有外部代理,禁止所有或部分其外部端口,配置自身以便执行在信道上的最外层代理的功能,和/或据此更新状态寄存器。主机可以按照类似的存在检测操作来确定是否任何代理在信道上。缓冲器可以响应于来自主机的状态请求而在状态帧中把状态信息中继到所述主机。
在存在检测操作之后,示例性系统中的缓冲器可以在快速重置期间的各个其它操作转变,诸如用于把缓冲器上的本地时钟固定到数据流上的时钟校准状态,用于对准经由信道所发送帧的帧校准状态,用于检查所有位路的操作并且把缓冲器置于故障转移模式的位路测试(如果它们具有这种能力的话)等。此外,一旦主机知道有多少其它代理连接到信道,那么它可以调整帧大小、计时等以便容纳所有代理。
在示例性系统中,存储器代理还可以或备选地能够执行各种轮询操作以便检测信道上新添加代理的存在。例如,每个缓冲器如果是最外层缓冲器,那么它能够对其外部端口执行轮询操作以便确定是否把新的代理添加到所述信道。图25图示了依照本专利发明原理的这种轮询操作的实施例。
在148,代理可以禁止其所有或部分外部端口。如果代理是缓冲器或模块,那么它可以等待来自主机的轮询命令以便在150转变到热重置操作。如果代理是主机,那么它可以禁止其所有或外部端口并且等待来自系统环境的唤醒命令。当接收所述唤醒命令时,它可以启用其所有或部分外部端口并且转变到重置状态。
在150,代理可以启用其外部端口并且把零驱动到三个LSB出站Tx位路上以便向在其外部端口上潜在的新代理发送重置。然后在152所述代理可以转变到热校准操作。
在152,代理可以把一驱动到三个LSB出站Tx位路上以便通过包括校准操作的完全重置来强制潜在的新代理,这是因为新检测的代理往往需要被校准。然后在154所述代理可以转变到热检测操作。
在154,代理可以把零驱动到三个LSB出站Tx位路上并且在三个LSB入站Rx位路上施加偏压电流以便把没有连接到外部代理的位强制为零。然后所述代理可以检查三个LSB入站Rx位路,并且如果它检测到至少两个一,那么在155它可以决定外部代理存在并且在156转变到热代理存在操作。否则,在155代理可能决定外部代理不存在并且在148转变回睡眠操作。
在156,代理可以更新状态寄存器以便表明它检测到外部代理,继而例如响应于状态请求来把此信息中继到主机,或采取其它动作来把所述信息中继到主机或其它代理。所述代理还可以等待接收信道重置。
主机可以通过定期的状态请求或其它技术来发觉到新检测的代理,并且开始快速重置以便利用在信道上并且被容纳在信道计时中的新代理来重新初始化整个信道。
下面是依照本专利发明原理的热添加/拔除序列的某些附加实施例。在大型系统范围内,还参考在图6中所示出的存储器系统的实施例描述了这些附加的实施例,所述大型系统诸如具有用户接口和系统固件的服务器,其使用图6的存储器系统。然而由这些附加实施例所说明的发明原理不局限于这里所描述的具体细节。
依照本专利发明原理的热添加序列可以开始于用户把新的代理添加到存储器信道上,例如在最外层代理的外部端口上。所述用户可以通知系统固件已经添加了代理。然后所述固件可以向所添加的代理加电并且经由唤醒命令通知主机已经添加了代理。然后主机可以向先前的最外层代理发送轮询命令,然后所述最外层代理可以经由轮询操作来循环,诸如上述参考图25中的一。在轮询操作之后,先前的最外层代理可以报告存在新的外部代理。然后主机可以检测存在新的代理并且发布快速重置命令以便使新的代理进入操作并且重新定时整个信道。在新的代理可操作之后,主机可以中断系统固件以便报告所述新代理是可操作的。作为选择,主机可以等待系统固件来询问主机以便确定所述新的代理是否可操作。然后系统固件可以把主机配置为容纳由新的代理所给出的任何新硬件,如果所述代理是存储器模块或缓冲器那么所述新硬件诸如可能存在的新的存储装置。
依照本专利发明原理的热拔除序列可以开始于用户向系统通知将除去在存储器信道上的特定代理。所述系统可以从系统映射中除去相应的主机地址范围。如果系统使用镜像,那么系统可以把主机地址范围重新映射到代理镜像。如果还未镜像,那么系统可以把来自主机地址范围的数据拷贝或移动到其它位置。然后系统可以轮询直到完成所有未完成的事务。然后系统可以使主机向只是要除去的代理发送命令,这使得此代理假定它是所述信道上的最外层代理,借此使它禁止其外部端口,并且在随后的快速重置期间假定最外层代理的功能。(完全重置可能会覆盖此命令。)然后所述系统可以开始快速重置以便关闭所选择的代理和用于附于所选择代理的组件的任何信道接口。然后系统可以对所选择的代理断电并且向用户通知可以除去所述代理。
依照本专利发明原理的热替换序列可以开始于完成上述的热拔除序列。用户可以添加新的代理来替换所拔除的代理,继而向系统固件通知已经添加了新的代理。然后运行系统可以为新替换的组件准备主机并且向新组件供电。然后系统固件可以使主机向先前最外层代理发送命令以便使之得知它不应当再假定自己是最外层代理。这可能使先前的最外层代理响应于下一重置而启用其外部端口,并且等待轮询命令。然后固件可以指示主机向先前的最外层代理发送轮询命令,所述最外层代理然后可以执行轮询操作,诸如上述参考图25的一,借此初始化新的代理。然后先前的最外层代理可以报告存在新的外部代理。然后主机可以检测存在新的代理并且发布快速重置命令以便使新的代理进入操作并且重新定时整个信道。在新的代理可操作之后,主机可以中断系统固件以便报告所述新代理是可操作的。作为选择,主机可以等待系统固件来询问主机以便确定所述新的代理是否可操作。
在不脱离发明原理的情况下可以在布置和细节方面修改这里所描述的实施例。因此,这种改变和修改被认为落入下面权利要求的范围之内。

Claims (20)

1.一种存储器代理,包括:
第一端口;和
第二端口;
其中所述存储器代理能够检测在所述第二端口上另一存储器代理的存在。
2.如权利要求1所述的存储器代理,其中所述存储器代理能够把信号从所述第一端口重新驱动到所述第二端口。
3.如权利要求2所述的存储器代理,其中所述存储器代理能够把信号从所述第二端口重新驱动到所述第一端口。
4.如权利要求1所述的存储器代理,其中:
所述第一端口包括接收链路接口;并且
所述第二端口包括发送链路接口。
5.如权利要求1所述的存储器代理,其中:
所述第一端口包括第一发送链路接口和第一接收链路接口;并且
所述第二端口包括第二发送链路接口和第二接收链路接口。
6.如权利要求1所述的存储器代理,其中所述存储器代理能够执行轮询操作以便检测在所述第二端口上另一存储器代理的存在。
7.如权利要求1所述的存储器代理,其中所述轮询操作包括经由所述第二端口发信号通知存在检测事件。
8.如权利要求1所述的存储器代理,其中所述存储器代理能够经由所述第一端口报告在所述第二端口上另一存储器代理的存在。
9.如权利要求1所述的存储器代理,其中所述存储器代理能够执行快速重置操作。
10.如权利要求1所述的存储器代理,其中所述存储器代理包括存储缓冲器。
11.如权利要求1所述的存储器代理,其中所述存储器代理包括存储器模块。
12.如权利要求1所述的存储器代理,其中所述存储器代理能够禁止所有或部分第二端口。
13.一种系统,包括:
包括第一端口和第二端口的存储器代理,其中所述存储器代理能够检测在所述第二端口上另一存储器代理的存在;和
存储器控制器,与所述存储器代理的第一端口耦合。
14.如权利要求13所述的系统,其中:
所述存储器控制器能够向所述存储器代理发送存在询问;并且
所述存储器代理能够通过向所述控制器报告在所述第二端口上另一存储器代理存在或不存在来响应所述存在询问。
15.如权利要求13所述的系统,其中所述存储器代理能够执行轮询操作来检测在所述第二端口上另一存储器代理的存在。
16.如权利要求13所述的系统,其中所述存储器代理能够执行快速重置操作。
17.如权利要求13所述的系统,其中所述存储器代理能够禁止所有或部分第二端口。
18.一种方法,包括:
在存储器代理的第一端口上执行存在检测操作;并且
经由所述存储器代理的第二端口报告所述存在检测操作的结果。
19.如权利要求18所述的方法,还包括在所述存储器代理执行快速重置操作。
20.如权利要求18所述的方法,还包括禁止所有或部分第一端口。
CNB2004800155219A 2003-06-03 2004-05-20 检测外部存储器模块之存在的存储器代理、系统和方法 Expired - Fee Related CN100483380C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/454,399 US7194581B2 (en) 2003-06-03 2003-06-03 Memory channel with hot add/remove
US10/454,399 2003-06-03

Publications (2)

Publication Number Publication Date
CN1799040A true CN1799040A (zh) 2006-07-05
CN100483380C CN100483380C (zh) 2009-04-29

Family

ID=33489727

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004800155219A Expired - Fee Related CN100483380C (zh) 2003-06-03 2004-05-20 检测外部存储器模块之存在的存储器代理、系统和方法

Country Status (9)

Country Link
US (1) US7194581B2 (zh)
EP (1) EP1629392B1 (zh)
JP (1) JP4210300B2 (zh)
KR (1) KR100806445B1 (zh)
CN (1) CN100483380C (zh)
AT (1) ATE369589T1 (zh)
DE (1) DE602004008067T2 (zh)
TW (1) TW200502732A (zh)
WO (1) WO2004109525A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102055602A (zh) * 2009-10-28 2011-05-11 中国移动通信集团湖南有限公司 一种执行结果获取方法和装置及系统
CN101635679B (zh) * 2008-07-07 2013-12-18 英特尔公司 路由表的动态更新

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7010642B2 (en) * 2000-01-05 2006-03-07 Rambus Inc. System featuring a controller device and a memory module that includes an integrated circuit buffer device and a plurality of integrated circuit memory devices
US6502161B1 (en) * 2000-01-05 2002-12-31 Rambus Inc. Memory system including a point-to-point linked memory subsystem
US7404032B2 (en) * 2000-01-05 2008-07-22 Rambus Inc. Configurable width buffered module having switch elements
US7356639B2 (en) * 2000-01-05 2008-04-08 Rambus Inc. Configurable width buffered module having a bypass circuit
US7362697B2 (en) 2003-01-09 2008-04-22 International Business Machines Corporation Self-healing chip-to-chip interface
US7200787B2 (en) * 2003-06-03 2007-04-03 Intel Corporation Memory channel utilizing permuting status patterns
US8171331B2 (en) 2003-06-04 2012-05-01 Intel Corporation Memory channel having deskew separate from redrive
US7386768B2 (en) 2003-06-05 2008-06-10 Intel Corporation Memory channel with bit lane fail-over
US7392445B2 (en) * 2003-09-11 2008-06-24 International Business Machines Corporation Autonomic bus reconfiguration for fault conditions
US20050138267A1 (en) * 2003-12-23 2005-06-23 Bains Kuljit S. Integral memory buffer and serial presence detect capability for fully-buffered memory modules
US7417883B2 (en) * 2004-12-30 2008-08-26 Intel Corporation I/O data interconnect reuse as repeater
US7366931B2 (en) 2004-12-30 2008-04-29 Intel Corporation Memory modules that receive clock information and are placed in a low power state
JP4274140B2 (ja) * 2005-03-24 2009-06-03 日本電気株式会社 ホットスワップ機能付きメモリシステム及びその障害メモリモジュールの交換方法
JP4474648B2 (ja) * 2005-03-25 2010-06-09 日本電気株式会社 メモリシステム及びそのホットスワップ方法
KR101331569B1 (ko) * 2005-04-21 2013-11-21 바이올린 메모리 인코포레이티드 상호접속 시스템
US9582449B2 (en) 2005-04-21 2017-02-28 Violin Memory, Inc. Interconnection system
US9384818B2 (en) 2005-04-21 2016-07-05 Violin Memory Memory power management
US7539812B2 (en) * 2005-06-30 2009-05-26 Intel Corporation System and method to increase DRAM parallelism
US11328764B2 (en) 2005-09-26 2022-05-10 Rambus Inc. Memory system topologies including a memory die stack
US7464225B2 (en) 2005-09-26 2008-12-09 Rambus Inc. Memory module including a plurality of integrated circuit memory devices and a plurality of buffer devices in a matrix topology
US7562271B2 (en) 2005-09-26 2009-07-14 Rambus Inc. Memory system topologies including a buffer device and an integrated circuit memory device
US7652922B2 (en) 2005-09-30 2010-01-26 Mosaid Technologies Incorporated Multiple independent serial link memory
EP1932158A4 (en) 2005-09-30 2008-10-15 Mosaid Technologies Inc MEMORY WITH OUTPUT CONTROL
US11948629B2 (en) 2005-09-30 2024-04-02 Mosaid Technologies Incorporated Non-volatile memory device with concurrent bank operations
US7353316B2 (en) * 2006-03-24 2008-04-01 Micron Technology, Inc. System and method for re-routing signals between memory system components
US7660940B2 (en) * 2006-07-26 2010-02-09 International Business Machines Corporation Carrier having daisy chain of self timed memory chips
US7627711B2 (en) * 2006-07-26 2009-12-01 International Business Machines Corporation Memory controller for daisy chained memory chips
US7673093B2 (en) * 2006-07-26 2010-03-02 International Business Machines Corporation Computer system having daisy chained memory chips
US7617350B2 (en) * 2006-07-26 2009-11-10 International Business Machines Corporation Carrier having daisy chained memory chips
DE102006045113B3 (de) * 2006-09-25 2008-04-03 Qimonda Ag Speichermodul-System, Speichermodul, Buffer-Bauelement, Speichermodul-Platine, und Verfahren zum Betreiben eines Speichermoduls
US20080155149A1 (en) * 2006-12-20 2008-06-26 De Araujo Daniel N Multi-path redundant architecture for fault tolerant fully buffered dimms
US7688652B2 (en) * 2007-07-18 2010-03-30 Mosaid Technologies Incorporated Storage of data in memory via packet strobing
US20090063786A1 (en) * 2007-08-29 2009-03-05 Hakjune Oh Daisy-chain memory configuration and usage
US7913128B2 (en) * 2007-11-23 2011-03-22 Mosaid Technologies Incorporated Data channel test apparatus and method thereof
US7743375B2 (en) * 2008-06-27 2010-06-22 International Business Machines Corporation Information handling system including dynamically merged physical partitions
US8205138B2 (en) * 2008-08-07 2012-06-19 International Business Machines Corporation Memory controller for reducing time to initialize main memory
KR101728067B1 (ko) * 2010-09-03 2017-04-18 삼성전자 주식회사 반도체 메모리 장치
US8825967B2 (en) 2011-12-08 2014-09-02 Conversant Intellectual Property Management Inc. Independent write and read control in serially-connected devices
US9582223B2 (en) 2014-04-14 2017-02-28 International Business Machines Corporation Efficient reclamation of pre-allocated direct memory access (DMA) memory
US9818457B1 (en) 2016-09-30 2017-11-14 Intel Corporation Extended platform with additional memory module slots per CPU socket
US10216657B2 (en) 2016-09-30 2019-02-26 Intel Corporation Extended platform with additional memory module slots per CPU socket and configured for increased performance

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4567578A (en) * 1982-09-08 1986-01-28 Harris Corporation Cache memory flush scheme
US6112287A (en) * 1993-03-01 2000-08-29 Busless Computers Sarl Shared memory multiprocessor system using a set of serial links as processors-memory switch
IL96808A (en) * 1990-04-18 1996-03-31 Rambus Inc Introductory / Origin Circuit Agreed Using High-Performance Brokerage
US5241643A (en) 1990-06-19 1993-08-31 Dell Usa, L.P. Memory system and associated method for disabling address buffers connected to unused simm slots
JPH0715665B2 (ja) * 1991-06-10 1995-02-22 インターナショナル・ビジネス・マシーンズ・コーポレイション パーソナルコンピユータ
US6408402B1 (en) * 1994-03-22 2002-06-18 Hyperchip Inc. Efficient direct replacement cell fault tolerant architecture
AU700629B2 (en) * 1994-03-22 1999-01-07 Hyperchip Inc. Efficient direct cell replacement fault tolerant architecture supporting completely integrated systems with means for direct communication with system operator
US5475320A (en) * 1994-08-11 1995-12-12 Texas Instruments Incorporated Data processing with a self-timed approach to spurious transitions
US6154826A (en) * 1994-11-16 2000-11-28 University Of Virginia Patent Foundation Method and device for maximizing memory system bandwidth by accessing data in a dynamically determined order
US5867422A (en) * 1995-08-08 1999-02-02 University Of South Florida Computer memory chip with field programmable memory cell arrays (fpmcas), and method of configuring
US6006318A (en) * 1995-08-16 1999-12-21 Microunity Systems Engineering, Inc. General purpose, dynamic partitioning, programmable media processor
US5742840A (en) * 1995-08-16 1998-04-21 Microunity Systems Engineering, Inc. General purpose, multiple precision parallel operation, programmable media processor
US5860080A (en) * 1996-03-19 1999-01-12 Apple Computer, Inc. Multicasting system for selecting a group of memory devices for operation
US5860134A (en) * 1996-03-28 1999-01-12 International Business Machines Corporation Memory system with memory presence and type detection using multiplexed memory line function
US6047343A (en) * 1996-06-05 2000-04-04 Compaq Computer Corporation Method and apparatus for detecting insertion and removal of a memory module using standard connectors
US6125419A (en) * 1996-06-13 2000-09-26 Hitachi, Ltd. Bus system, printed circuit board, signal transmission line, series circuit and memory module
US6092229A (en) * 1996-10-09 2000-07-18 Lsi Logic Corporation Single chip systems using general purpose processors
US5922077A (en) * 1996-11-14 1999-07-13 Data General Corporation Fail-over switching system
JP3455040B2 (ja) * 1996-12-16 2003-10-06 株式会社日立製作所 ソースクロック同期式メモリシステムおよびメモリユニット
JP3127853B2 (ja) * 1997-04-30 2001-01-29 日本電気株式会社 メモリ集積回路並びにこれを用いた主記憶システム及びグラフィクスメモリシステム
US5898863A (en) * 1997-06-03 1999-04-27 Emc Corporation Method and apparatus for determining I/O size distribution of an input/output system and its use for load simulation
US6097520A (en) * 1997-06-30 2000-08-01 Microsoft Corporation Remote control receiver and method of operation
DE69836437T2 (de) 1997-12-05 2007-09-27 Intel Corporation, Santa Clara Speichersystem mit speichermodul mit einem speichermodul-steuerbaustein
US6970968B1 (en) 1998-02-13 2005-11-29 Intel Corporation Memory module controller for providing an interface between a system memory controller and a plurality of memory devices on a memory module
US6968419B1 (en) 1998-02-13 2005-11-22 Intel Corporation Memory module having a memory module controller controlling memory transactions for a plurality of memory devices
US6160423A (en) * 1998-03-16 2000-12-12 Jazio, Inc. High speed source synchronous signaling for interfacing VLSI CMOS circuits to transmission lines
US6327205B1 (en) * 1998-03-16 2001-12-04 Jazio, Inc. Signal latching of high bandwidth DRAM arrays when skew between different components is higher than signal rate
GB2352375B (en) * 1998-03-16 2003-06-04 Jazio Inc High speed signaling for interfacing VLSI CMOS circuits
US6209074B1 (en) * 1998-04-28 2001-03-27 International Business Machines Corporation Address re-mapping for memory module using presence detect data
US6504780B2 (en) * 1998-10-01 2003-01-07 Monolithic System Technology, Inc. Method and apparatus for completely hiding refresh operations in a dram device using clock division
EP1077412A3 (en) 1999-08-16 2004-12-15 Hewlett-Packard Company, A Delaware Corporation Bus system having improved control process
US6643752B1 (en) * 1999-12-09 2003-11-04 Rambus Inc. Transceiver with latency alignment circuitry
US6502161B1 (en) * 2000-01-05 2002-12-31 Rambus Inc. Memory system including a point-to-point linked memory subsystem
US6487102B1 (en) * 2000-09-18 2002-11-26 Intel Corporation Memory module having buffer for isolating stacked memory devices
US6369605B1 (en) * 2000-09-18 2002-04-09 Intel Corporation Self-terminated driver to prevent signal reflections of transmissions between electronic devices
US6449213B1 (en) * 2000-09-18 2002-09-10 Intel Corporation Memory interface having source-synchronous command/address signaling
US6317352B1 (en) * 2000-09-18 2001-11-13 Intel Corporation Apparatus for implementing a buffered daisy chain connection between a memory controller and memory modules
US6625687B1 (en) * 2000-09-18 2003-09-23 Intel Corporation Memory module employing a junction circuit for point-to-point connection isolation, voltage translation, data synchronization, and multiplexing/demultiplexing
US6493250B2 (en) * 2000-12-28 2002-12-10 Intel Corporation Multi-tier point-to-point buffered memory interface
US20020144173A1 (en) 2001-03-30 2002-10-03 Micron Technology, Inc. Serial presence detect driven memory clock control
TW542378U (en) * 2002-02-08 2003-07-11 C One Technology Corp Multi-functional electronic card capable of detecting a card insertion
US7016213B2 (en) * 2003-05-13 2006-03-21 Advanced Micro Devices, Inc. Method for initializing a system including a host and plurality of memory modules connected via a serial memory interconnect

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101635679B (zh) * 2008-07-07 2013-12-18 英特尔公司 路由表的动态更新
CN102055602A (zh) * 2009-10-28 2011-05-11 中国移动通信集团湖南有限公司 一种执行结果获取方法和装置及系统

Also Published As

Publication number Publication date
US7194581B2 (en) 2007-03-20
CN100483380C (zh) 2009-04-29
WO2004109525A3 (en) 2005-01-27
JP2006526846A (ja) 2006-11-24
DE602004008067D1 (de) 2007-09-20
EP1629392A2 (en) 2006-03-01
KR100806445B1 (ko) 2008-02-21
JP4210300B2 (ja) 2009-01-14
ATE369589T1 (de) 2007-08-15
DE602004008067T2 (de) 2007-11-22
TW200502732A (en) 2005-01-16
EP1629392B1 (en) 2007-08-08
WO2004109525A2 (en) 2004-12-16
US20040250024A1 (en) 2004-12-09
KR20060023983A (ko) 2006-03-15

Similar Documents

Publication Publication Date Title
CN1799040A (zh) 检测外部存储器模块之存在并向内部模块报告的存储器模块体系结构菊花链拓扑
CN102073606B (zh) 数据通路和存储器设备之间的数据累积
CN100511192C (zh) 用于具有位通道故障在线恢复的存储信道的方法、装置和系统
CN100498724C (zh) 针对部分帧的提早crc传送
CN1799038A (zh) 具有单向链路的存储信道
CN100470496C (zh) 用可变映射进行的通道测试
US9335373B2 (en) Memory channel having deskew separate from redrive
CN100440188C (zh) 用于区分状态信息与读数据的存储设备、系统和方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090429

Termination date: 20180520

CF01 Termination of patent right due to non-payment of annual fee