CN100498724C - 针对部分帧的提早crc传送 - Google Patents
针对部分帧的提早crc传送 Download PDFInfo
- Publication number
- CN100498724C CN100498724C CNB2004800336820A CN200480033682A CN100498724C CN 100498724 C CN100498724 C CN 100498724C CN B2004800336820 A CNB2004800336820 A CN B2004800336820A CN 200480033682 A CN200480033682 A CN 200480033682A CN 100498724 C CN100498724 C CN 100498724C
- Authority
- CN
- China
- Prior art keywords
- frame
- data
- memory
- module
- bit
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Communication Control (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Dram (AREA)
- Memory System (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
存储器装置和方法在帧的第二部分结束传送之前,传送和接收用于所述帧的第一部分的CRC码。CRC可用于在帧的第二部分被完全接收之前检查所述帧的所述第一部分。可以使用所述帧的第一部分中的命令和其他信息,而无需等待帧的剩余部分到达。描述了其他的实施方案并且主张对它们的权利要求。
Description
背景
图1示出了一种非正式地称为RamLink的现有技术存储器***,电气与电子工程师学会(IEEE)建议以它作为标准。该标准被指定为IEEE标准1596.4-1996,正式地称为基于可伸缩相干接口(SCI)信令技术(RamLink)的高带宽存储器接口IEEE标准(High-bandwidth memory interface based on Scalable Coherent interface(SCI)signalingtechnology(RamLink))。图1的***包括存储器控制器10和一个或更多个存储器模块12。通常,存储器控制器10或者内建于处理器中,或者制造在处理器的配套芯片组上。每一个存储器模块12均具有从属接口(slave interface)14,从属接口14具有一个链路输入和一个链路输出。组件(component)安排在称为RingLink的RamLink信令拓扑中,在组件之间是单向链路16。每一个模块上的控制接口18作为从属接口14和存储器设备20的接口。在图1中所示的***中,在从属接口和存储器设备之间使用了称为SyncLink的另一种RamLink信令拓扑。
RamLink***的目的是给处理器提供对存储器设备的高速访问。数据在沿着RingLink循环的分组(packet)中在存储器控制器和模块之间转移。控制器负责产生所有的请求分组并调度从属响应分组的返回。
当控制器将包括命令、地址、时间和数据的请求分组发送到特定模块时,开始写事务(transaction)。所述分组从模块传递到模块,直到其到达预期的从属接口,然后,预期的从属接口将数据传递到存储器设备之一以进行储存。然后,所述从属接口发送响应分组,所述响应分组从模块传递到模块,直到其到达控制器,确认写事务已完成。
当控制器将包括命令、地址和时间的请求分组发送到模块时,开始读事务。该模块上的从属接口从存储器设备之一取回所请求的数据,并在响应分组中将其返回到控制器,所述响应分组再次从模块传递到模块,直到其到达控制器。
图2示出了一种现有技术RamLink从属接口电路。在图2的电路中,使用源同步选通给流入数据信号加时钟驱动。即,使用伴随流入数据信号的选通信号对流入数据进行采样。图2的电路使用锁相环(PLL)从参考时钟信号产生稳定的局部时钟信号,所述参考时钟信号被分发到其他的从属接口电路。使用所述局部时钟信号重新给流出数据信号加时钟驱动,以便当数据向下游传递时避免累积抖动(jitter)。
附图说明
图1示出了现有技术RamLink存储器***。
图2示出了现有技术RamLink从属接口电路。
图3示出了根据本专利的发明原理的存储器接口***的实施方案。
图4示出了根据本专利的发明原理的存储器模块的实施方案。
图5示出了根据本专利的发明原理的存储器模块的另一实施方案以及存储器缓冲器(buffer)的实施方案。
图6示出了根据本专利的发明原理的存储器***、存储器模块以及存储器缓冲器的额外的示例性实施方案。
图7示出了根据本专利的发明原理的存储器缓冲区的另一个示例性实施方案。
图8示出了根据本专利的发明原理的重驱动(redrive)电路的实施方案。
图9示出了根据本专利的发明原理的I/O单元的实施方案。
图10示出了根据本专利的发明原理的I/O单元的另一个实施方案。
图11示出了根据本专利的发明原理的I/O单元的另一个实施方案。
图12示出了根据本专利的发明原理的I/O单元的另一个实施方案。
图13示出了根据本专利的发明原理的失效备援电路(fail-over circuit)的实施方案。
图14示出了工作于正常模式中的根据本专利的发明原理的失效备援电路的另一个实施方案。
图15示出了工作于失效备援模式中的根据本专利的发明原理的失效备援电路的另一个实施方案。
图16示出了根据本专利的发明原理的具有位通道(bit lane)失效备援能力的存储器缓冲器的实施方案。
图17示出了根据本专利的发明原理的具有位通道失效备援能力的存储器控制器的实施方案。
图18示出了用于实施根据本专利的发明原理的序列改变状态模式(permuting statuspattern)的方法的实施方案。
图19示出了根据本专利的发明原理的序列改变式发生器的实施方案。
图20到图23示出了根据本专利的发明原理的状态式的示例性实施方案。
图24示出了根据本专利的发明原理的存储器代理(agent)的实施方案。
图25示出了根据本专利的发明原理的轮询操作(polling operation)的实施方案。
图26示出了根据本专利的发明原理的利用了数据累积的存储器模块的实施方案。
图27示出了根据本专利的发明原理的存储器模块的另一个实施方案以及利用了数据累积的存储器缓冲器的实施方案。
图28示出了根据本专利的发明原理的利用了数据累积的存储器缓冲器的另一个示例性实施方案。
图29示出了根据本专利的发明原理的帧的示例性实施方案。
图30示出了根据本专利的发明原理的用于传递跨过多个帧的CRC码的方案的示例性实施方案。
图31示出了根据本专利的发明原理的包含提早CRC传送和分布式CRC码的帧转移方案的实施方案。
图32示出了根据本专利的发明原理的存储器代理的实施方案,在这个实施例中假设所述存储器代理是存储器模块或缓冲器。
图33示出了根据本专利的发明原理的两种可能的位通道映射的示例性实施方案。
具体实施方式
本专利包含许多具有独立用途的发明。在某些情况下,当在各种相互组合中利用这些原理中的一些时,实现了额外的益处,从而导致额外的发明。可以在极多的实施方案中实现这些原理。尽管出于说明发明原理的目的示出了某些具体细节,但是根据本专利的发明原理,可以设计许多其他的结构。因此,该发明原理不局限于这里所公开的具体细节。
图3示出了根据本专利的发明原理的存储器接口***的实施方案。图3的***包括存储器控制器50以及通过由单向链路构成的信道进行通信的一个或更多个存储器模块52。所述信道具有向外通路(path)以及向内通路,所述向外通路包括一个或更多个向外链路54,所述向内通路包括一个或更多个向内链路56。每一个模块均能够在所述向外通路上从链路到链路地重新驱动信号,并能够在所述向内通路上从链路到链路地重新驱动信号。例如,如果模块检测到它是最外边的模块,或者响应于来自存储器控制器的命令,每一个模块还能够选择性地使得任何重驱动特征无效。
每一个模块包括一个或更多个存储器设备58,存储器设备58被安排成将数据转移到所述通路中的一个或更多个,和/或从所述通路中的一个或更多个转移数据。例如,模块可以被安排成使得来自向外通路的数据被转移到存储器设备,并且来自所述存储器设备的数据被转移到向内通路。在一个或更多个存储器设备和所述通路的一个或更多个之间可以***一个或更多个缓冲器。模块和控制器不限于任何特定的机械结构。例如,可以在和***的剩余部分分开的基底(substrate)上制造所述模块,它们可以和控制器以及链路一起制造在公共基底上,或者,它们可以用任何其他的机械结构来实现。模块也不限于任何特定类型的存储器设备,例如只读存储器(ROM)、动态随机访问存储器(DRAM)、闪存,等等。
图4示出了根据本专利的发明原理的存储器模块的实施方案。图4的模块包括两个重驱动电路60和62,分别用于在单向链路54A和56A上接收信号,并在单向链路54B和56B上重新驱动所述信号。一个或更多个存储器设备58被安排成将数据转移到所述重驱动电路中的一个或更多个,和/或从所述重驱动电路中的一个或更多个转移数据。
图4的模块不局限于单向链路的任何特定结构,或者任何用于将数据转移到所述重驱动电路和/或从所述重驱动电路转移数据的特定结构。如果要在例如图3中所示的存储器***中使用图4的模块,则重驱动电路60可以被指定为向外重驱动电路,并被安排成在包括链路54A和54B的向外通路上接收和重新驱动信号,而另一重驱动电路62可以被指定为向内重驱动电路,并被安排成在包括链路56A和56B的向内通路上接收和重新驱动信号。在这个实施例中,一个或更多个存储器设备58可以被安排成使得数据从向外重驱动电路60转移到存储器设备,并从存储器设备转移到向内重驱动电路62。
模块能够检测它是否是信道上最外边的模块,并因此选择性地使得任何重驱动特征无效。例如,如果要在例如图3中所示的存储器***中使用图4的模块,并且该模块检测到它是最外边的模块,则向外重驱动电路在链路54A上接收流入的信号却不重新驱动它们。同样地,向内重驱动电路仅仅针对和从存储器设备接收到的数据对应的信号和/或可能由模块在内部产生的其他信号来驱动链路56B。可替换地,即使模块检测到它并非最外边的模块,它也可以被构造为使其能够像它是最外边的模块那样工作(例如,响应于来自存储器控制器的命令),在这种情况下,它可以忽略在向内链路56A上接收到的信号,并且它可以不把信号重新驱动到向外链路54B上。
图5示出了根据本专利的发明原理的存储器模块的另一实施方案以及存储器缓冲器的实施方案。图5的模块包括存储器缓冲器64,存储器缓冲器64具有两个重驱动电路60和62,分别用于在单向链路54A和56A上接收信号,并在单向链路54B和56B上重新驱动所述信号。存储器缓冲器还包括存储器接口66,存储器接口66被安排成将数据转移到一个或更多个存储器设备58,并从一个或更多个存储器设备58转移数据。所述缓冲器能够检测其是否是信道上最后一个代理,并因此选择性地使得任何重驱动特征无效。即使所述缓冲器并不是信道上最后一个代理,例如响应于来自存储器控制器的命令,它也能够就像它是信道上最后一个代理那样工作。如这里所使用的,代理指任何与信道接口的存储器控制器(也称为主设备)、模块、缓冲器,等等。
图5的模块和缓冲器不局限于单向链路的任何特定结构或者任何用于在存储器接口和重驱动电路之间转移的特定结构。如果要在例如图3中所示的存储器***中使用图5的模块,则重驱动电路60可以被指定为向外重驱动电路,并被安排成在包括链路54A和54B的向外通路上接收和重新驱动信号,而另一重驱动电路62可以被指定为向内重驱动电路,并被安排成在包括链路56A和56B的向内通路上接收和重新驱动信号,在这个实施例中,所述存储器接口被配置成从向外重驱动电路60接收数据,并将数据发送到向内重驱动电路62。
可以使用各种机械结构来实施图4和图5的存储器模块和/或缓冲器。例如,存储器设备58、重驱动电路60和62,以及缓冲器64都可以被实现为安装在公共电路板或分开的电路板上的分开的集成电路。这些组件的各种组合可以被一起制造在公共集成电路上,或者,它们可以都被制造在单个集成电路上。如果存在电路板,则所述电路板能够***母板上的插座(socket)中、和母板制造成一体,或者用任何其他方式来安排。例如,如果组件被制造为多芯片模块的一部分,则可能不存在电路板。可以使用根据本专利的发明原理的存储器缓冲器将除了存储器设备以外的设备接口到信道。例如,可以使用根据本专利的发明原理的存储器缓冲器将I/O控制器接口到或桥接(bridge)到信道。
参考“向内”和“向外”通路、链路、重驱动电路等描述了根据本专利的发明原理的装置的额外的实施方案,以便帮助理解可以如何在例如图3中所示的存储器***中利用所述装置。但是,这些装置不局限于单向链路的任何特定结构、不局限于所示出的用于在链路和其他电路之间转移数据的特定结构,也不局限于任何示出的实现细节。
图6示出了根据本专利的发明原理的存储器***、存储器模块以及存储器缓冲器的额外的实施方案。参考图6,一个或更多个存储器模块52以沿着一条边缘的两侧都具有接触指的印刷电路板为基底,生成双列直插存储器模块(dual inline memory module,DIMM),所述存储器模块可以***位于容纳***其他组件的另一个电路板上的连接器。针对所述模块可以采用现有的形状系数(form-factor),例如用于双倍数据率II(DDR2)动态随机访问存储器(DRAM)模块的DIMM形状系数。
模块装有存储器设备58,例如商品型DRAM(如DDR2 DRAM)。每一个模块上的存储器缓冲器64将存储器设备与信道隔离,所述信道将模块接口到存储器控制器50,所述存储器控制器50也被称为主设备。信道按点对点的结构连线,具有包括向外链路54的向外通路和包括向内链路56的向内通路。可以利用使用低压差分信号的并行单向位通道来实现这些链路。
在图6的实施方案中,没有针对例如命令、复位、初始化等功能使用额外的信号线。反之,这些功能被直接编码于在所述信道上发送的数据中。但是,可以可替换地使用任意数量的额外信号线来实现这些功能。
参考时钟信号REF CLK由时钟合成器76产生,被分布到所述主设备和模块,可能通过了时钟缓冲器78。这促成了一种准异步时钟驱动(clocking)方案,在这种方案中,使用局部产生的时钟信号对流入的数据进行采样和重新驱动。因为在每一个代理处有公共参考时钟可用,所以可以给数据信号加时钟驱动而无需任何频率跟踪(frequency tracking)。可替换地,可以独立于任何参考时钟产生局部时钟信号。作为另一种选择,可以使用例如源同步选通的同步时钟驱动方案。
在一个可能的实施方案中,所述主设备通过将数据发送到向外通路上最里面的模块来开始数据转移,所述被发送的数据可能以分组或帧(这里可互换使用的术语)的形式。最里面的模块接收数据并将所述数据重新驱动到向外通路上的下一个模块。每一个模块接收并重新驱动所述向外的数据,直到它到达最外边的模块。尽管最外边的模块可能试图将数据重新驱动到“不存在的”向外链路,但是每一个模块能够检测(或者被指示)它是最外边的模块,并使任何重驱动电路无效以便降低不必要的功耗、噪声等。在这个实施方案中,沿着主设备的方向,即向内的方向的数据转移由最外边的模块开始。每一个模块接收向内的数据并沿着向内通路重新驱动向内的数据,直到其到达主设备。
在物理信道上可以使用任何合适的通信协议。例如,可以指定所述主设备开始和调度所有向内和向外的数据转移。可替换地,可以允许任何代理来开始数据转移。数据帧可以被配置成携带命令、读数据、写数据、状态信息、错误信息、初始化数据、空闲模式等,或者它们的任何组合。协议可以被实施成当主设备沿着向外通路将命令帧发送到目标模块时,所述目标模块通过立刻将响应帧沿着向内通路发送回主设备来进行响应。在这样的实施方案中,所述目标模块不在向外通路上重新驱动命令帧。
在替换的实施方案中,所述目标模块接收所述命令帧,然后在向外通路上重新驱动所述命令帧。当最外边的模块接收到所述命令帧时,它在向内通路上开始响应帧(可能只不过是个空闲帧)。所述目标模块一直等待直到响应帧到达其向内的接收者。然后,所述目标模块例如通过用目标模块的真实响应帧来替换由最外边的模块发送的响应帧,来将其响应并入向内的数据流,。
图7示出了根据本专利的发明原理的存储器缓冲器的另一个示例性实施方案。图7的存储器缓冲器包括向外重驱动电路60和向内重驱动电路62,重驱动电路60用于在包括链路54A和54B的向外通路上接收并重新驱动信号,重驱动电路62用于在包括链路56A和56B的向内通路上接收并重新驱动信号。存储器接口66将所述缓冲器接口到一个或更多个存储器设备,所述接口可能是通过存储器总线68。存储器接口可以包括例如FIFO缓冲器的读和/或写缓冲器。来自向外通路的数据被耦合到所述存储器接口,所述耦合可能通过去歪斜电路70,如果向外通路具有多于一个位通道,则去歪斜电路70消除数据位之间的歪斜。可以使用模式发生器72来产生用于传送到向内通路上的状态模式,例如,如果缓冲器恰好是信道上最外边的代理,则在这种情况下,在流入的向内链路56A上可能接收不到信号。复用器74选择性地将来自存储器接口或模式发生器的数据耦合到向内重驱动电路。
所述存储器接口不局限于任何特定的结构,并且它可以兼容标准的存储器设备,特别是例如DDR2 DRAM的商品存储器设备。整个存储器缓冲器可以集成在单个集成电路上,它可以集成在一个或更多个存储器设备中,它的组成元件可以集成在分开的组件上,或者可以采用任何其他的机械结构。图7中所示的实施方案仅仅是示例性的,并且,根据本专利的发明原理,其他的实施方案是可能的。例如,图7的实施方案示出具有从向外重驱动电路到存储器接口以及从存储器接口到向内重驱动电路的单向数据流动。但是这种数据流动可以是双向的,并且其他的结构也在预料之中。即使图7的实施方案要用在存储器接口的数据只需如图7中所示那样流动的信道***中,它仍然可以利用具有全双向数据访问的重驱动电路实现,因为这可以帮助实施例如内建自测试(BIST)功能,在这种情况下,对来自向内通路的数据去歪斜的第二去歪斜电路是有益的。
图8示出了根据本专利的发明原理的重驱动电路的实施方案。图8的电路包括一个或更多个输入/输出(I/O)单元74,每一个I/O单元74均接收输入数据信号RX,I/O单元74可以重新驱动输入数据信号RX作为输出数据信号TX。可替换地,I/O单元可以将读数据信号RDX代入或并入输出数据信号。在输入数据信号被重新驱动作为输出数据信号之前或者之后,可以从所述输入数据信号取出写数据信号WDX。
上面信号名中的任意一个里面的“X”指示它可能是多个类似信号其中的一个,取决于重驱动电路中I/O单元的数量。例如,具有9个位通道的重驱动电路将具有9个I/O单元,具有名为R0、R1...R8的输入数据信号。在只具有单个I/O单元的重驱动电路中,数据输入信号将是R0或者仅仅是R。使用术语RX一般指全部或者一些输入数据信号。
为了方便,使用术语“写数据”来指代从通过I/O单元传播的数据流中取出的任何数据。但是这并非暗示写数据必须被定向到存储器接口或者存储器设备。同样地,“读数据”指任何被输入I/O单元的数据,但是读数据可以来自任何来源而不只是存储器设备或者存储器接口。
再次参考图8,时钟发生器80响应于参考时钟信号REF CLK产生许多个相位时钟信号PCX和传送时钟信号TC。时钟发生器包括锁相环(PLL)82和相位时钟发生器84,锁相环82产生是参考时钟信号REF CLK的倍数的传送时钟信号TC。在一个可能的实施方案中,存在四个从传送时钟信号TC衍生出来的间隔开90度的相位时钟信号PC0、PC1、PC2和PC3。每一个I/O单元均可以使用TC和PCX时钟信号中的一个或更多个来对数据信号进行采样和/或重新驱动,和/或产生额外的局部时钟信号。在这个实施方案中,相位时钟和传送时钟信号就其不响应于任一输入数据信号RX的相位而被调整而言是稳定的信号。
图9示出了根据本专利的发明原理的I/O单元的实施方案。接收器86被安排成接收数据信号RX,并响应于采样时钟信号SC,将数据信号RX重新驱动作为数据信号TX。采样时钟信号由采样时钟发生器88产生,采样时钟发生器88能够响应于数据信号RX对采样时钟信号进行调整。可以从接收器86的输出或者输入取出写数据信号WDX。如果如图9中所示那样从接收器的输出取出,则采样时钟信号SC可以用做写数据的选通信号或者被用来导出写数据的选通信号。采样时钟发生器的输入可以从除了如图9中所示的接收器的输入以外的点取出。例如,它也可以被从接收器的输出取出。
图10示出了根据本专利的发明原理的I/O单元的另一种实施方案。在图10的实施方案中,利用内插器90和接收器跟踪单元(receiver tracking unit,RTU)92来实施采样时钟发生器88。内插器通过响应于来自接收器跟踪单元的跟踪信号,在许多个相位时钟信号PCX(在这种情况下是相位相差90度的4个信号)之间进行内插来产生采样时钟信号。接收器跟踪单元观测数据信号RX并对跟踪信号进行调整,以使采样时钟信号导致接收器在适当的时间对数据信号进行采样和重新驱动。因此,采样时钟信号可以动态地跟踪数据信号。
在一个可能的实施方案中,接收器跟踪单元通过对数据信号过采样并调整采样时钟信号来观测数据信号RX的转换,以便在数据眼图的中心,即数据信号的转换之间的居中点对数据信号进行采样和重新驱动。采样时钟发生器88可以包括环路滤波器,所述环路滤波器测量几个位单元,并且可以最终确定它应该对采样时钟信号的相位进行调整以便捕获更靠近数据眼图位置中心的数据。可以从除了如图10中所示的接收器的输入以外的点取出采样时钟发生器的输入。例如,它也可以被从接收器的输出取出。
根据本专利的发明原理的I/O单元的实施方案可以和训练I/O单元以便动态地跟踪数据信号的方案一起使用。例如,如果图10的I/O单元被用作图3中所示的存储器模块其中的一个,则主设备可以将训练帧周期性地发送到向外通路上。这些训练帧具有足以保证接收器跟踪单元观测到足够多的数据信号的转换以便能够对采样时钟信号进行调整的边缘密度(edge density)。同样地,图3中最外边的模块可以周期性地将训练帧发送到向内通路上。
图11示出了根据本专利的发明原理的I/O单元的另一种实施方案。图11的实施方案和图9的实施方案类似,但是在数据信号路径中添加了缓冲器94。缓冲器94可以是抖动避免或者补偿电压和温度引发的影响的漂移补偿缓冲器。所述缓冲器将数据信号TX重新同步到传送时钟信号TC。传送时钟信号就其相位不像采样时钟信号SC那样响应于数据信号进行调整而言是稳定的。
在图11的实施方案中,缓冲器能够响应于模式信号工作在通过模式或者重新驱动模式中。在通过模式中,信号通过而不被采样和重新驱动。在重新驱动模式中,响应于时钟信号,信号被采样并重新驱动。这使得I/O单元能够工作于不同的重新驱动模式。在一个可能的实施方案中,如果模式信号被断言(assert),则所述缓冲器工作于通过模式中。这被称为重采样模式,并且可能导致更短的延时(latency),因为数据信号被用来对数据进行采样的同一时钟重新驱动。当模式信号未被断言时,缓冲器工作于重新驱动模式,所以数据被重新同步到传送时钟。这被称为重同步模式,并且可能导致更长的延时,不过可以降低抖动。I/O单元可以被设计在存储器缓冲器中或具有用于接收模式信号的输入的模块中。如果要在具有相对较短的到下一代理的信号路径的***上使用所述存储器缓冲器或模块,则输入可以被断言(或不被断言,取决于极性),以便导致I/O单元工作于重采样模式,因为在较短的信号路径上可以容忍更多的抖动。在另一方面,如果要在具有相对较长的到下一代理的信号路径的***上使用所述存储器缓冲器或模块,则输入可以被解除断言,以便导致所述单元工作于重同步模式,因为这降低了抖动,尽管可能以更长的延时为代价。可替换地,可以在所述存储器缓冲器或模块上、或者在重驱动电路中、或者在I/O单元自身中使用注册标志来控制模式信号。
图12示出了根据本专利的发明原理的I/O单元的另一种实施方案。在图12的实施方案中,被接收和传送的数据信号RX和TX是差分信号,并被示出越过了上面可以制造所述I/O单元的集成电路管芯的边缘。接收器86包括采样单元96和终端单元(terminationunit)98。采样单元响应于采样时钟信号SC对流入的数据进行采样,内插器90响应于来自采样时钟发生器的相位时钟信号产生所述采样时钟信号SC。终端单元提供差分终端(differential termination)并将所述差分数据信号转换为单端信号。抖动避免或漂移补偿缓冲器94响应于采样时钟信号SC或稳定传送时钟信号TC给数据加时钟驱动。复用器100选择性地将来自缓冲器94或者串行器102的数据信号耦合到传送锁存器104。在I/O单元,读数据信号RDX[0...n]被在串行器102的I/O单元处接收。另一个复用器可以被置于缓冲器94和传送锁存器104之间,其中一个输入连接到缓冲器,而另一个输入连接到所述内插器的输出。
当I/O单元需要将读数据并入数据流时,复用器选择其耦合到串行器的输入,以使传送锁存器响应于传送时钟信号TC将读数据加时钟驱动出I/O单元。否则,复用器选择来自缓冲器的数据信号,然后所述数据信号被传送锁存器重新驱动。传送数据信号在被驱动到下一单向链路之前由传送器106转换回差分信号。写数据被从传送锁存器的输出取出、在解串器108中汇集,然后被路由到去歪斜电路、位通道失效备援机制,或者其他的电路。解串器也可以提供可从采样时钟信号导出的位线时钟信号BLC,用于指示写数据WDX[0...n]何时有效。
本专利的发明原理中的一些涉及和重驱动通路分开地对信号进行去歪斜。重驱动通路由一个或更多个组件定义,信号在其被接收和重新驱动时通过所述组件传播。例如,在图9和图10的实施方案中,重驱动通路包括接收器86。在图11的实施方案中,重驱动通路包括接收器86和缓冲器94。在图12的实施方案中,重驱动电路包括采样单元96、终端单元98、缓冲器94、复用器100、传送锁存器104以及传送器106。
根据本专利的发明原理,可以将去歪斜电路集成在重驱动电路中,以使去歪斜电路的各个位通道被包括在重驱动通路中。因此,位通道上的信号在其沿着通路被重新驱动时可以在每一个重驱动电路中去歪斜。但是,可替换地,根据本专利的发明原理的去歪斜电路也可以和重驱动通路分开。例如,在图7的实施方案中,示出去歪斜电路不仅与重驱动电路60中的重驱动通路分开,而且也和整个重驱动电路分开。可替换地,根据本专利的发明原理的去歪斜电路可以被集成在重驱动电路中,但是仍旧和重驱动通路分开。例如,在图12的实施方案中,一个或更多个去歪斜锁存器可以被放置在串行器102的输出和/或解串器108的输入。
如上所述的用于和重驱动通路分开地对信号进行去歪斜的装置和方法的实施方案仅仅是示例性的,并且不局限于这些具体实施例。而且,根据本专利涉及和重驱动通路分开地对信号进行去歪斜的原理独立于本专利的其他发明原理。例如,就像图9到图12中所示的重驱动电路的实施方案不局限于在具有分开的向外和向内通路的存储器***中使用那样,根据本专利涉及和重驱动通路分开地对信号进行去歪斜的原理也可以用于其他类型的采用单向链路的存储器体系结构,例如采用了环形链路结构的体系结构,如RamLink。
本专利的发明原理中的一些涉及处理失效的(failed)位通道。例如,在图3、4、5、6或7的实施方案中示出的任意代理之间的任意单向链路可以具有多于一个位通道。根据本专利的发明原理,在所述位通道上可以重定向一个或更多个信号以避开坏的位通道。例如存储器控制器(主设备)、模块、缓冲器等的任意代理能够在许多个位通道上重定向一个或更多个信号。可以在链路的某一端或者两端对信号重定向。任意代理能够自动地或者在另一代理的援助下检测失效的位通道,并且任意代理能够响应于来自另一代理的命令对信号重定向。
图13示出了根据本专利的发明原理的失效备援电路的实施方案。仅是为了说明的目的,将图13的失效备援电路110和重驱动电路112的实施方案一起示出,但是发明原理既不限于和任何特定的重驱动电路一起使用,所述失效备援电路也不局限于图13中所示的具体细节。重驱动电路112包括许多个被安排成在单向链路上接收并重新驱动信号的位通道。每一个位通道被具体实施为具有接收器116和传送器118的I/O单元114。
失效备援电路指能够重定向一个或更多个去往或来自多个位通道的信号的电路。在图13的实施方案中,失效备援电路被实施为具有一个或更多个复用器开关120的复用器。每个开关具有耦合到一个位通道的第一输入和耦合到相邻位通道的第二输入,因此它可以将来自任一位通道的信号重定向到其输出。图13中所示的实施方案被示出有6个开关给6个位通道服务,但是可以使用任意数量的开关和位通道,并且,可以用除了如所示那样的相邻位通道结构以外的各种结构来安排这些开关。
在正常工作模式期间,每一个开关将来自其第一输入的信号定向到其输出,如图14中所示,从而写数据信号WD0、WD1、WD2、WD3、WD4和WD5分别被定向到输出OUT0、OUT1、OUT2、OUT3、OUT4和OUT5。在这样的实施方案中,位通道中的一个,例如和WD5对应的位通道,可以用于对其他位通道上的数据进行错误检查。
如果检测到坏的位通道,则复用器可以工作于失效备援模式中,在这种模式中,操纵一个或更多个开关来找出坏的位通道。例如,如果和WD3相关联的位通道没有正确工作,则复用器开关可以将写数据信号WD4和WD5分别重定向到输出OUT3和OUT4,如图15中所示。在这种模式中,丧失了相当于一个位通道的信号容量。如果已经指定了位通道中的一条用于错误检查,则原定用于所述坏的位通道的信号可以在所述错误检查通道上重新路由,并且可以使所述错误检查功能无效。
失效备援电路的输出可以耦合到存储器接口、存储器设备或者其他的电路。在图13的实施方案中,失效备援电路被示为与重驱动电路分开,但是它也可以集成在重驱动电路中。可以利用如所示那样的简单复用器来实现根据本专利的发明原理的失效备援电路,但是例如全纵横开关(crossbar switch)的其他结构也是可能的。
图13中所示的失效备援电路的实施方案被安排成将来自位通道的写数据耦合到其输出。可替换地,根据本专利的发明原理的失效备援电路的实施方案也可以被安排成沿相反方向转移数据,在这种情况下,输出OUTX将变成接收读数据的输入,复用器开关可以被称为解复用器开关,并且每一个I/O单元在接收器和传送器之间可以具有复用器,用于将来自失效备援电路的读数据并入位通道。因此复用器既指复用器也指解复用器。作为另一种选择,根据本专利的发明原理的失效备援电路的实施方案可以被安排成用于位通道和存储器设备、存储器接口或其他电路之间的双向数据流动。
根据本专利的发明原理,存储器缓冲器、存储器模块、存储器控制器(主设备)或者具有位通道失效备援能力的其他代理还可以具有各种检测失效位通道、重定向信号、找出坏的位通道等能力。例如,具有图13中所示失效备援电路实施方案的代理可以被设计成使其能够通过例如观测由另一个代理发送的测试数据模式来检测失效的位通道,并重定向信号以便找出失效的位通道。可替换地,所述代理可以被设计成使其可以响应于来自另一代理(例如发指令给存储器信道上的一个或更多个代理的存储器控制器)的命令,找出失效的位通道。可替换地,所述代理可以两种能力都具有。
图16示出了根据本专利的发明原理的具有位通道失效备援能力的存储器缓冲器的实施方案。图16的实施方案和图7的实施方案类似,但是还包括耦合在去歪斜电路70和存储器接口66之间的失效备援电路122。替换的实施方案是可能的。例如,所述失效备援电路可以被置于重驱动电路60和去歪斜电路之间,或者,它可以集成在重驱动电路中。图16的实施方案还包括另一个失效备援电路124,失效备援电路124被示出耦合在复用器74和重驱动电路62之间,但是它也可以集成在重驱动电路中或以其他方式安排。可替换地,图16的存储器缓冲器可以被具体实施为存储器模块,在这种情况下,存储器接口由存储器设备替代。
图17示出了根据本专利的发明原理的具有位通道失效备援能力的存储器控制器的实施方案。图17的控制器包括具有多个位通道的向外和向内单向链路接口126和128,在这个实施方案中,所述位通道分别包括许多个传送器和许多个接收器。失效备援电路130和132分别耦合到接口126和128中的位通道。在图17的实施方案中,失效备援电路被示出和链路接口分开,但是可替换地它们也可以和接口集成为一体。控制器能够检测失效的位通道,在这种情况下,所述失效备援电路可以找出失效的位通道。可附加地或者可替代地,控制器能够发出指导代理找出失效的位通道的命令。
现在将在包括根据本专利的发明原理的存储器控制器(主设备)、存储器模块和存储器缓冲器的额外实施方案的完整存储器信道***的示例性实施方案的上下文中,描述根据本专利的发明原理的额外的失效备援方法和装置。但是任何组件都不局限于这个示例性***或者那里描述的任何细节。
所述示例性***包括具有失效备援能力的主设备的实施方案(如参考图17所描述的那些),以及一个或更多个具有拥有失效备援能力的缓冲器的存储器模块的实施方案,例如参考图16所描述的那些。在这个实施例中,主设备和模块被安排在具有如图7中所示那样的向外和向内通路的信道配置中,尽管该***可能仅包括一个模块。
在这个实施例中,利用称为“SMBus”的***管理总线来互连主设备和模块,SMBus是用来管理***中的组件的串行总线***。但是,对于本专利的发明原理,使用SMBus并非是必须的,并且可以使用其他形式的组件间的通信,包括存储器信道通路自身。
根据本专利的发明原理的用于检测和找出所述示例性***中的失效位通道的方法的实施方案如下进行。主设备在向外通路的每一个位通道上传送测试模式(test pattern)。所述测试模式被每一个模块上的缓冲器接收并被沿着向外通路重新驱动,直到其到达最外边的模块。然后,最外边的模块在向内通路的每一个位通道上传送测试模式。所述测试模式被每一个模块上的缓冲器接收并被沿着向内通路重新驱动,直到其到达主设备。主设备和模块上的缓冲器观测向内和/或向外通路的每一个位通道上的测试模式来检查正确的位通道操作。可以同时测试向内和向外通路内的位通道。
通过经SMBus将结果发送到主设备和/或通过经信道将结果帧传送到主设备来报告失效的位通道。这样的结果帧可以由最外边的模块在向内通路上开始,并且,如果有其他的模块,则其他的模块可以将它们的结果信息并入向内通路中的数据。如果来自每一个模块的结果在多于一个位通道上被冗余地传送,则失效的位通道不可能妨碍对结果的报告。
一旦主设备接收到结果,它可以在信道上通过SMBus向模块发出配置命令,或者通过任何其他形式的通信向模块发出配置命令。如果有坏通道的话,则配置命令指挥模块哪些位通道是坏的并且应该被找出。如果有坏通道,则模块通过操纵一个或更多个失效备援电路重定向信号绕过坏通道并重新配置任何内部功能以便应对位通道的损失来对配置命令作出响应。例如,如果一个位通道被指定用于错误检查数据,则缓冲器或模块可以使得错误检查功能无效
上述失效备援方法和装置的实施方案仅仅是示例性的,并且本专利的发明原理不局限于这些具体实施例。已经参考例如图3的实施方案的具有分开的向内和向外通路的存储器***描述了根据本专利的失效备援方法和装置的原理,但是这些原理也可以应用到任何采用单向链路的存储器体系结构,例如采用环形链路结构的体系结构,如RamLink。
本专利的发明原理中的一些涉及序列改变状态模式。在例如上述参考图1和图3描述的存储器***中,存储器读数据和写数据在存储器代理之间转移,在这样的***中,在存储器代理之间发送例如空闲模式、警告模式以及其他状态信息也是有益的。这可以通过在连接存储器代理的相同链路上发送数据模式和状态模式来完成。根据本专利的发明原理,状态模式可以随着时间做序列改变。
例如,参考图3,存储器控制器50可以将具有如读命令的数据模式的帧发送到一个或更多个模块52,模块52通过将具有例如读数据的数据模式的帧发送回控制器来作出响应。对于一个或更多个模块来说,例如如果模块不能从存储器设备58中足够快地取回读数据,则将具有空闲模式的帧发送回存储器控制器可能是有益的。可以将预先确定的数据模式指定为空闲模式,从而,如果存储器控制器接收到空闲模式,则它知道它并非在接收读数据。但是,如果实际的读数据模式恰好和被指定的空闲模式匹配,则这可能引起问题。
根据本专利的发明原理,存储器控制器和一个或更多个模块都能够以可预测的方式序列改变空闲状态,以使空闲模式随着时间改变。例如,每当发送和/或接收空闲帧时,存储器控制器和模块可以根据预先确定的序列来改变空闲模式。图18中示出了根据本专利的发明原理的这种方法的实施方案。因此,如果存储器控制器发送了读命令帧(158)并接收到具有当前空闲模式(162)的响应帧(160),则它可以重新发送相同的读命令(164)。如果第二响应帧(166)包含和第一个相同的模式(168),则它将该模式理解为实际的读数据(170)。但是,如果第二响应帧中的模式和被序列改变的空闲模式(168)匹配,则存储器控制器知道第一个响应帧是空闲帧(172)。
根据本专利的发明原理,在状态模式中发送的状态信息可以是空闲模式、警告模式,以及其他的状态信息,例如来自模块的命令错误信息、来自模块的热过载信息,以及指示模块已经检测到在存储器信道的向外通路上存在另一个模块的信息。某些类型的状态模式可以被实施为互补模式。例如,警告模式(它可以用来向代理通知错误状况)可以被实施为空闲模式的逻辑补。例如,这可以通过允许存储器代理将同一模式发生器用于空闲模式和警告模式来简化实施。即使不使用对模式做序列改变,使用互补状态模式也是有益处的。
根据本专利的发明原理的存储器代理还能够有意地在状态模式中产生例如循环冗余校验(CRC)错误的错误。这样的技术作为用于将数据模式与状态模式区别开的替代或者补充方法可能是有益的。例如,在某些存储器***中,将每一个帧和用来检查该帧中数据完整性的CRC码一起发送。
根据本专利的发明原理,存储器代理可以有意地将错误的CRC码与包含状态模式的帧一起发送。然后,接收代理可以将该帧理解为状态帧而非数据帧。某些存储器***可能利用具有额外的位通道的通路来携带CRC数据。如果这样的***能够工作于失效备援模式,则代理如果不工作于失效备援模式中则只能利用有意的CRC错误。如这里所使用的,术语CRC不仅指循环冗余校验,也指任何其他类型的用来验证帧或模式的完整性的错误检查方案。
尽管根据本专利的发明原理的状态模式序列改变和处理的原理可应用于任何类型的存储器代理,并且独立于本专利的其他发明原理,但是将针对例如图7中所示的实施方案的存储器缓冲器,并且在例如图6中所示实施方案的***的上下文(context)中描述某些额外的方面。参考图6,如果存储器缓冲器64是存储器信道上最外边的代理,则只要它不是正在发送主设备从附接到存储器接口66的任何存储器设备请求的数据,它就能够在向内链路56B上恒定地传送序列改变空闲状态帧。
图19示出了根据本专利的发明原理的序列改变模式发生器的实施方案。图19的实施方案是多项式为x12+x7+x4+x3+1的12位线性反馈移位寄存器(LFSR)。初始状态可以被设置为000000000001,并且该LFSR在模式被重复之前循环通过212—1个状态(4095帧)。该LFSR的每一位均可以映射到数据通路上的链路中的位通道,并且每一位可以用于整个帧期间在对应的位通道上发生的全部转移。例如,在具有每一链路中12个位通道的数据通路的***中,来自LFSR的每一级的输出可以映射到这些位通道中的一条。通过利用来自被延迟一帧的LFSR的最低有效位的值,可以容纳额外的通道,例如第13个位通道。
图20示出了图19的序列改变模式发生器产生的第一状态模式的实施例。在这个实施例中,帧有12次转移那么长。图21到22分别示出了第二、第三和第四状态模式。通过整个帧期间在每一个位通道上使用相同的值可以降低电磁干扰(EMI或者噪声)。
这里所示的13个位通道乘12位转移帧是举个例子,并且本专利的发明原理不局限于这些细节,也不局限于上述序列改变模式发生器的具体实施方案。例如,不需要利用例如上述LFSR的专用逻辑电路来实施根据本专利的发明原理的序列改变模式发生器。可替换地,它可以利用可编程逻辑实施,或者作为处理器或者其他可编程状态机中的算法,所述状态机可用来监视和/或实施存储器接口中的逻辑或者缓冲器或其他利用序列改变状态模式的存储器代理的其他功能。
本专利的某些额外的发明原理涉及利用多于一个位通道来检测在存储器链路上存在存储器代理。例如,在图7中所示的存储器缓冲器的实施方案中,缓冲器能够检测是否有另一个存储器代理耦合到向外链路54B。这可以通过利用链路中的单个位通道来测试另一个存储器代理的存在性来完成。但是,如果在链路中存在多于一个位通道,则根据本专利的发明原理,多于一个的位通道可被用来检测另一个存储器代理的存在。这可以防止坏的位通道的存在妨碍存在性检测操作。
为了方便,本专利的涉及利用多于一个的位通道来检测存储器代理的存在的发明原理将被个别及共同地称为冗余存在性检测。冗余存在性检测可以被应用于任何类型的具有拥有多个位通道的链路接口的存储器代理。例如,图13的实施方案中所示的传送器118中的任意两个或更多个可以被视为链路接口,在这种情况下是传送链路接口。同样地,图13中所示的接收器中的任意两个或更多个可以被视为链路接口,在这种情况下是接收链路接口。冗余存在性检测可以被应用于这些链路接口中的任意一种,以及图17的实施方案中所示的链路接口126和128中的任意一种。
返回图7的实施方案再作为例子,在例如复位的存在性检测事件发生时,存储器缓冲器可以将其向内传送链路56B上的三个位通道驱动到预先确定的存在性检测逻辑电平,例如1,以便向其他缓冲器发信号通知它的存在。还是在存在性检测事件期间,信道上位于第一个缓冲器以内的第二个这样的存储器缓冲器可以配置其向内接收链路56A上的三个位通道,以便检测第一缓冲器的存在。在这个实施例中,第一存储器缓冲器将被称为外代理(outer agent),而第二缓冲器将被称为内代理(inner agent)。
用于配置位通道以便检测另一个代理的存在的技术的实施例是让该位通道的接收器尝试在该通道上放置偏置电流,以便驱使该位通道达到存在性检测逻辑电平的相反值。如果另一个存储器代理在存在性检测事件期间耦合到该位通道,则其在该位通道上的传送器将把该位通道驱使到存在性检测逻辑电平。
如果内代理在三个位通道中的两个上检测到存在性检测逻辑电平,则它知道存在外代理,并且它可能让其全部或部分外端口被使能(enable)。(在这个实施例中,外端口包括向外链路54B的链路接口和向内链路56A的链路接口)。如果内代理未能在三个位通道中的至少两个上检测到存在性检测逻辑电平,则它可以确定不存在外代理,并且它可以使其全部或部分外端口失效。内代理能够向另一个代理报告存在或者不存在外代理,例如响应于状态检查命令向存储器控制器报告。
利用冗余存在性检测的代理也能够向另一代理发信号通知存在性检测事件。例如,如果通过向外通路上的复位命令向图7的缓冲器通报复位事件,则如果有外代理,该命令被重驱动电路60中继(relay)到所述外代理。这可以将两个代理都置入存在性检测模式。
根据本专利的发明原理的冗余存在性检测不局限于上述具体实施方案。例如,可以只有两个位通道用于存在性检测,而不像上面的实施例那样是三个,在这种情况下,内代理将只需检测单个位通道上的存在性检测逻辑电平来推断存在外代理。同样地,冗余存在性检测也可以应用于利用各种其他类型的存储器体系结构的组件和***,例如采用环形链路结构的体系结构,如RamLink。
一些额外的根据本专利的发明原理涉及从存储器信道热***和/或去除组件,即在存储器信道正在工作时添加和/或去除组件。图24示出了根据本专利的发明原理的存储器代理134的实施方案。图24的实施方案可以是存储器模块、存储器缓冲器、存储器控制器,等等。所述代理包括第一端口136和第二端口138。如果仅是为了说明的目的而假设所述代理是例如图6的实施方案中的模块52中的一个的存储器模块,则第一端口可以被指定为内端口,因为它可以被安排成和存储器信道上其他被放置得更靠近存储器控制器的代理进行通信。同样地,第二端口可以被指定为外端口,因为它可以被安排成和存储器信道上其他放置得更远离存储器控制器的代理进行通信。这些指定仅仅是为了说明的目的,并且发明原理既不局限于存储器代理的这些细节,也不局限于图6中所示的存储器信道的细节。这些原理也可以应用于其他的存储器信道体系结构,例如图1中所示的RamLink体系结构。
根据本专利的发明原理的存储器代理的每一个端口均可以具有一个或更多个链路接口。在图24的实施方案中,每一个端口既具有接收链路接口又具有传送链路接口。内端口136具有接收链路接口140和传送链路接口142,接收链路接口140可以是作为重驱动电路60的一部分的一个或更多个接收器,传送链路接口142可以是作为另一个重驱动电路62的一部分的一个或更多个传送器。外端口分别具有接收和传送链路接口144和146,它们也分别是重驱动电路60和62的一部分。链路接口140和146可以分别耦合到向外链路54A和54B,并且链路接口142和144可以分别耦合到向内链路56B和56A。每一个链路接口均可以具有一个或更多个位通道,并且可以使用这个术语的任意组合来称呼这些位通道和接口。例如,接口142中的位通道可以被称为向内传送或向内Tx位通道。接口144中的位通道可以被称为向内接收或向内Rx位通道。
图24的实施方案仅仅是示例性的,并且存储器代理和端口可以用不同的方式来具体实施。例如,链路接口不一定是重驱动电路的一部分。这在图17中示出的存储器控制器的实施方案中示出,其中,端口可以包括并非重驱动电路的一部分的链路接口126和128。链路接口可以只包括一个位通道或任意数量的位通道,并且端口可以只具有接收链路接口或者传送接口。
根据本专利的发明原理的存储器代理能够检测在其端口中的一个上存在另一个存储器代理,并且它能够依据存在或者不存在另一个存储器代理来采取各种动作。例如,如果在端口上不存在另一个存储器代理,则图24的存储器代理能够使其部分或者全部外端口无效。它能够向另一个代理报告存在或不存在外代理,例如通过其内端口向存储器控制器报告。图24的存储器代理能够执行存在性检测操作,这可以包括向外端口上的潜在外代理发信号通知存在性检测事件。它也能够执行快速复位操作。
将在存储器***的示例性实施方案的上下文中描述某些额外的发明原理,所述额外的发明原理能够辅助根据本专利申请的热添加/去除。将在例如图6的实施方案的存储器***的上下文中参考图24的存储器代理描述所述示例性实施方案。在这个示例性实施方案中,将假设图24的存储器代理被用来具体实施一个或更多个图6中的缓冲器,而图6中的缓冲器又是具有存储器设备的模块的一部分。但是,所有这些细节仅仅用于说明目的,并且发明原理不局限于这些细节。
在示例性***中,存储器代理能够执行快速复位操作、完全复位操作和/或各种轮询或存在性检测操作。在示例性***中,为了保持每一个位通道上的导出时钟锁定到数据流,最小数量的时钟转换可能是必要的。因此,存储器控制器(或主设备)可以通过在预先确定的时间段(period of time)内在向外通路中的一个或更多个位通道上发送连续的0或1的流来开始复位操作。由于数据被通道上的每一个缓冲器重新驱动,所以所有的缓冲器都接收到复位命令或者事件。在示例性***中,三个最低位(LSB)通道可以用来发信号通知复位操作。接收代理可以通过在所述三个LSB的任意两个上侦听0流或1流来检测复位事件。这可以保证一个失效位通道的存在不妨碍复位操作,但是发明原理甚至不要求多于一个位通道,所述发明原理不局限于这样的实施。
在示例性***中,例如主设备可以发送连续的0流将信道上所有的代理(在这个实施例中是具有缓冲器的模块)无限期地保持在第一复位状态,而所述主设备被外部条件保持复位。然后,主设备可以在第一时间量(例如两个帧周期)内发送1流,然后回到0,以便发信号通知其他的代理执行快速复位操作。
可替换地,主设备可以在第二时间量(例如多于两个帧周期)内发送1流,以便发信号通知其他的缓冲器执行完全复位操作。完全复位可以包括各种内部校准操作,例如链路上的阻抗匹配、各种接收器或驱动器电路中的电流源校准、接收器偏移消除等。在执行校准操作之后,主设备可以发信号通知缓冲器转变到快速复位操作。
快速复位操作可以旁路某些在完全复位期间执行的操作,例如校准操作。快速复位操作可以以存在性检测操作开始。在存在性检测操作期间,信道上的每一个缓冲器可以在三个LSB向内Rx位通道上放置电流,以便如果这些位没有连接到外代理则将这些位驱使到0。还是在存在性检测操作期间,每一个缓冲器可以将三个LSB向内Tx位通道驱使到1。然后,每一个缓冲器检查其三个LSB向内Rx位通道,并且,如果它在三个位通道的两个上检测到1,则它可以保持其外端口被使能,并相应地更新状态寄存器。如果缓冲器没有检测到两个1,它可以假设不存在外代理,使其全部或部分外端口无效,将其自己配置成执行信道上最外边代理的功能,和/或相应地更新状态寄存器。主设备可以仿效类似的存在性检测操作,以确定信道上是否有任何代理。缓冲器可以响应于来自主设备的状态请求,在状态帧中将状态信息中继到主设备。
在存在性检测以后,示例性***中的缓冲器在快速复位期间可以经历各种其他的操作,例如用于训练缓冲器上的局部时钟以便锁定到数据流的时钟训练状态、用于对齐在信道上发送的帧的帧训练状态、用于检查所有位通道的操作并在缓冲器具有失效备援能力的情况下将其置入失效备援模式的位通道测试,等等。而且,一旦主设备知道有多少其他代理连接到信道,则它可以调整帧尺寸、定时等等,以便容纳所有的代理。
在示例性***中,存储器代理还能够或者可替换地能够执行各种轮询操作,以便检测信道上新添加的代理的存在。例如,每一个缓冲器如果是最外边的缓冲器,则它能够在其外端口上执行轮询操作,以便确定新的代理是否已经被添加到信道。图25示出了根据本专利的发明原理的这种轮询操作的实施方案。
在148,代理可以使其全部或部分外端口无效。如果代理是缓冲器或者模块,则它可以等待来自主设备的轮询命令,以便在150转换到主设备复位操作。如果代理是主设备,则它可以使其全部或部分外端口无效,并等待来自***环境的苏醒命令。在接收到苏醒命令后,它可以使能其全部或部分外端口,并转换到复位状态。
在150,代理可以使能其外端口并将0驱动到三个LSB向外Tx位通道,以便将复位发送到其外端口上的潜在新代理。然后,所述代理在152可以转换到热校准操作。
在152,所述代理可以将1驱动到三个LSB向外Tx位通道,以便驱使潜在的新代理通过包括校准操作的完全复位,因为假设新检测到的代理将需要被校准。然后,所述代理可以在154转换到热检测操作。
在154,代理可以将0驱动到LSB向外Tx位通道,并在三个LSB向内Rx位通道上放置偏置电流,以便在这些位没有连接到外代理的情况下将其驱使到0。然后,代理可以检查三个LSB向内Rx位通道,并且,如果它检测到至少两个1,则它在155可以确定存在外代理,并在156转换到热代理存在操作。否则,所述代理可以在155确定不存在外代理,并且转换回148处的休眠操作。
在156,代理可以更新状态寄存器来指示它已经检测到外代理,然后,例如响应于状态请求,将这个信息中继到主设备,或者采取某种其他动作以便将信息中继到主设备或其他代理。所述代理也可以等待接收信道复位。
主设备可以通过周期性的状态请求或者其他技术来知晓新检测到的代理,并开始快速复位来重新初始化带有新代理的整个信道,所述新代理在信道上并被容纳在信道定时中。
下面是根据本专利的发明原理的热添加/去除序列的某些额外的实施方案。在例如具有用户接口和***固件的服务器的采用了图6的存储器***的较大***的上下文中,仍参考图6中所示的存储器***的实施方案描述了这些额外的实施方案。但是这些额外的实施方案所示出的发明原理不局限于这里所描述的具体细节。
当用户将新代理附加到存储器信道上时,例如附加在最外边代理的外端口上时,可以开始根据本专利的发明原理的热添加序列。用户可以通知***固件已经附加了代理。然后,固件可以导致将功率施加到所附加的代理,并通过苏醒命令通知主设备已经附加了代理。然后,主设备可以将轮询命令发送到先前的最外边的代理,然后所述代理可以循环通过轮询操作,例如上面参考图25所描述的那个。轮询操作以后,先前的最外边的代理可以报告新代理的存在。然后,主设备可以检测到新代理的存在,并发出快速复位命令以使新代理开始工作并对整个信道重新定时。在新代理可工作以后,主设备可以中断***固件以便报告新代理可工作。可替换地,主设备可以等待***固件查询主设备来确定新代理是否可工作。然后,***固件可以将主设备配置成容纳新代理所带来的任何新硬件,例如,如果代理是存储器模块或者缓冲器,则可能存在新存储器设备。
当用户通知***要去除存储器信道上的特定代理时,可以开始根据本专利的发明原理的热去除序列。***可以从***映射中去除对应的主设备地址范围。如果***使用镜像(mirroring),则***可以重新将主设备地址范围映射到代理镜像。然后,如果数据还未被镜像,则***可以将其从主设备地址范围复制或移动到其他位置。然后***可以轮询,直到完成了所有未完成的事务。然后,***可以导致主设备将命令发送到恰好在要被去除的代理以内的代理,所述命令导致这个代理它是信道上最外边的代理,由此导致它使其外端口无效并在后续快速复位期间承担最外边的代理的功能。(完全复位将忽略这个命令。)然后,***可以开始快速复位来关闭被选择的代理以及任何附接到所述被选择的代理的组件的信道接口。然后,***可以断开给所述被选择的代理的功率,并通知用户已经去除了所述代理。
当完成上述热去除序列时,可以开始根据本专利的发明原理的热替换序列。用户可以添加新代理,代替被去除的那个,然后通知***固件已经添加了新代理。然后,运行着的***使主设备为新替换的组件做好准备,并将功率提供给新组件。然后,***固件可以导致主设备发送命令到先前的最外边的代理,让其知道它不应再认为它是最外边的代理。这可以导致先前最外边的代理响应于下一个复位而使能其外端口,并等待轮询命令。然后,所述固件可以指挥主设备将轮询命令发送到先前最外边的代理,然后,所述先前最外边的代理可以执行如上面参考图25所描述的那一个轮询操作,由此初始化新代理。然后,先前最外边的代理可以报告新的外代理的存在。然后,主设备可以检测到新代理的存在,并且发出快速复位命令,使新代理开始工作并对整个信道重新定时。在新代理可工作以后,主设备可以中断***固件以便报告新代理可工作。可替换地,主设备可以等待***固件查询主设备来确定新代理是否可工作。
本专利的某些发明原理涉及在数据通路和存储器设备之间累积数据。图26示出了利用根据本专利的发明原理的数据累积的存储器模块的实施方案。图26的模块174包括一个或更多个存储器设备180以及重驱动电路176,重驱动电路176用于在点对点链路178A上接收一个或更多个信号,然后在点对点链路178B上重新驱动所述信号。数据累积器(accumulator)182被置于重驱动电路176和存储器设备之间。可选择的第二重驱动电路184被安排成在点对点链路186A上接收一个或更多个信号,并在点对点链路186B上重新驱动所述信号。在这个实施方案中,所述点对点链路被示出为单向链路,但是发明原理不局限于单向链路。
数据累积器182可以是先进先出(FIFO)数据结构,或者是其他类型的任何合适的队列或者缓冲器。使用数据累积器可以允许带宽不匹配。例如,具有高带宽突发模式的存储器设备可用于存储器设备180。为了减少引脚数、功耗以及制造和运转成本,由单向链路形成的数据通路的带宽可以低于存储器设备的突发模式。但是,为了在突发模式中正确工作,存储器设备可能需要以全带宽来接收数据。通过利用数据累积器,来自数据通路的写数据可以以低于存储器设备的突发速率的速率累积,然后以存储器设备的全突发速率传递到存储器设备。
图26的模块不局限于单向链路的任何特定结构或任何用于将数据转移到重驱动电路和/或从重驱动电路转移数据的特定结构。数据被示出通过数据累积器182从重驱动电路176流动到一个或更多个存储器设备180,但是该方向可以逆转,并且在重驱动电路和存储器设备之间可以添加额外的数据累积器。同样地,如果包括可选择的第二重驱动电路,则数据可以流动到存储器设备或者从存储器设备流动过来。在第二重驱动电路和存储器设备之间可以包括一个或更多个数据累积器,以便累积去往存储器设备的写数据和/或来自存储器设备的读数据。
图27示出了存储器模块的另一个实施方案以及利用根据本专利的发明原理的数据累积的存储器缓冲器的存储器缓冲器的实施方案。图27的模块174包括具有两个重驱动电路176和184的存储器缓冲器188,以及存储器接口190,存储器接口190被安排成将数据转移到一个或更多个存储器设备180或者从一个或更多个存储器设备180转移数据。和图26的模块一样,在图27的缓冲器中只需要其中一个重驱动电路。存储器接口190包括数据累积器182,所述数据累积器182可以被安排成当数据在重驱动电路176和存储器设备180之间流动时累积所述数据。数据流动可以沿任一方向,并且可以包括额外的累积器以便容纳沿两个方向的数据累积。同样地,如果包括第二重驱动电路184,则可以包括一个或更多个额外的数据累积器用于和所述第二重驱动电路接口。
图28示出了利用根据本专利的发明原理的数据累积的存储器缓冲器的另一个示例性实施方案。图28的缓冲器64和图7的类似,但是存储器接口66包括FIFO型写数据累积器192和FIFO型读数据累积器194。现在将参考图28的实施方案描述某些可能的实施细节,但是本专利的发明原理不局限于这些细节。
来自第一重驱动电路60的写数据被以一数据速率累积在写FIFO中,所述数据速率是向外通路工作恰好处于的任意数据速率。一旦累积了足够多的写数据,则它可以通过存储器总线68被以全突发速率写入一个或更多个存储器设备。读FIFO 194可以以全突发速率从存储器设备执行数据捕获,并在将读数据通过复用器74转移到第二重驱动电路62之前平坦化(levelize)所述数据。
写FIFO可以被构造成使其能够在将数据突发到存储器设备之前累积多个数据突发。这允许读—写—读存储器总线转换(turn around)损失被分摊到许多个写操作上。写FIFO也可以被构造成在数据被传递到存储器设备的同时额外的数据可以被加载到FIFO中。这允许FIFO的深度小于突发中转移的数量。作为进一步的优化,数据预累积器(pre-accumulator)可以被放置在写FIFO的前面,并设置成从数据通道推测性地捕获写数据而不管数据是否本来是针对这个特定的存储器缓冲器64。一旦目标存储器缓冲器被标识,如果该存储器缓冲器是预期的接收者,则预累积器中的数据可以被转移到写FIFO,否则可以将其简单地丢弃。
对于本专利中公开的其他存储器模块和/或缓冲器,参考图26到28描述的存储器模块和缓冲器的实施方案不局限于任何特定的物理结构,并且可以用来将除了存储器设备以外的设备接口到信道。
本专利的某些额外的发明原理涉及采用提早传递用于帧的一部分的CRC码的传送帧操作。图29示出了根据本专利的发明原理的帧的示例性实施方案。在这个实施例中,帧宽10位,12个转移长,但是可以使用任何其他的宽度和长度。行中被标识为转移“0”的位被首先转移,跟着是行中被标识为转移“1”的位,等等。当行“11”中的位被转移时帧完成。前四行(在阴影中显示)被任意地指定为帧的第一部分,而帧的剩余部分被指定为帧的第二部分。
在现有技术帧转移方案中,用于对整个帧进行错误检查的CRC码通常被放置在帧的末尾。根据本专利的发明原理,可以在第二部分的转移完成之前,甚至最好是在开始之前,就转移用于帧的第一部分的CRC码。这种对CRC的提早传递允许接收帧的存储器代理在完成帧的第二部分之前对帧的第一部分进行错误检查,并且最好开始利用那里面包含的任何信息。
例如,如果这种技术和具有这样的装置的存储器代理一起使用,即所述装置为存储器设备(例如DRAM芯片)提供相对于通信信道的缓冲,则DRAM命令可以被放置在帧的第一部分中,而数据有效载荷可以被放置在第二部分中。第一部分CRC的提早传递允许接收帧的存储器代理中的装置在第二部分中的数据有效载荷被接收之前,对第一部分中的命令进行错误检查,并且将其转发到DRAM芯片。
可以包括用于第一部分的CRC码作为帧的第一部分的一部分。它可以被放置在第一部分末尾、分布在整个第一部分、只部分地被包含在第一部分中,或者以任何其他适当的方式转移,以使其在第二部分结束之前被接收到。用于第一部分的CRC码可以和其他的CRC码组合以便生成复合码,或者,它可以是与帧内部及外部的其他码复合的结果。
使用在这里,第一部分不一定在帧中真的是开头的,而可以是任何被早于随后部分接收的部分。同样地,第二部分可以是开头以后接下来的部分,但是在第一和第二部分之间或者在第二部分以后也可能存在其他部分,并且第一和第二部分甚至可能重叠,只要效果是用于第一部分的CRC可以提早传递,以便可以在帧被完全转移之前开始第一部分的错误检查。
用于帧的第二部分的第二CRC码可以放置在第二部分末尾、分布在整个第二部分、只部分地被包含在第二部分中,或者以任何其他适当的方式转移。第二CRC码可以只覆盖帧的第二部分、可以覆盖整个帧,或者可以以其他方式与其他CRC码复合。
CRC不仅指循环冗余检查,而且还指任何其他类型的用来验证帧的完整性的错误检查方案。
本专利的某些额外的发明原理涉及跨过多个帧组织CRC码。图30示出了根据本专利的发明原理的用于传递跨过多个帧的CRC码的方案的示例性实施方案。在这个实施例中,帧宽10位,12个转移长,但是可以使用任何其他的宽度和长度。行中被标识为转移“0”的位被首先转移,跟着是行中被标识为转移“1”的位,等等。当行“11”中的位被转移时帧完成。图30中的帧被顺次转移,其中第N-1帧首先转移,跟着是第N帧。
用于第N-1帧的CRC码的一部分在第N-1帧中被任意地用阴影示出,处于第N-1帧中被标识为转移“4”到“11”的行中位“9”的位置。第N-1帧的CRC码的另一部分在第N帧中任意地用阴影示出,处于行“0”到“1”中位“9”到位“7”,以及行“2”到“3”中位“9”到位“6”。
第N-1帧的CRC码(它被示出分布在第N-1和第N帧中)可以被计划用于对第N-1帧的全部、仅仅第N-1帧的一部分,或者某个其他帧的全部或者部分进行错误检查。第N-1帧的不同部分的多个CRC码(或者CRC码的部分)也可以被包含在同一帧中,或者与来自其他帧的CRC码(或者CRC码的部分)组合,以便生成复合CRC码。
本专利申请涉及组织跨过多个帧组织CRC码的发明原理独立于涉及CRC的提早传递的那些发明原理。但是可以组合这些不同的原理从而导致额外的发明原理。图31示出了根据本专利的各种发明原理的包含提早CRC传递和分布式CRC码的帧转移方案的实施方案。许多实施细节将通过举例描述,但是发明原理不局限于这些细节。
在图31的示例性实施方案中,每一个帧还是宽10位,12个转移长,并且首先转移第N-1帧,跟着是第N帧。第N-1帧的前四行再次被任意地指定为第一部分,并将被称为命令部分,所述第一部分包括用于该第一部分的完整的CRC码。最后四行被任意地指定为第二部分,并将被称为数据部分。
命令部分包括在aC[23:0]字段中的24位命令信息、编码在F[1:0]字段中两个额外的命令信息位或者帧类型位、以及aE[13:0]字段中14位的复合CRC校验和。aC[23:0]字段和F[1:0]将被共同地称为“A”命令。aE[13:0]字段提供跨过F[1:0]、aC[23:0]和aE[13:0]字段的错误检测覆盖。
数据部分包括在B[71:0]字段中的72位数据,以及被标识为FE[21:0]的22位复合CRC校验和的一部分,所述B[71:0]字段可以用于额外的命令、命令扩展、数据转移等。所述22位的8个位于第N-1帧中(当前帧)的FE[21:14]字段中。其他14位位于FE[13:0]字段中,它在图31中被示出在帧的外面,因为校验和的这部分将被锁存并与第N帧(下一帧)中的CRC码复合。
为了在传送存储器代理处产生帧,由72位数据B[71:0]产生22位的CRC(被称为CRC22[21:0]或者“数据CRC”)。由26位的“A”命令F[1:0]aC[23:0]产生14位CRC(被称为CRC14[13:0]或者“命令CRC”)。22位数据CRC的8位被直接用作FE[21:14],并被置于当前帧的第10位通道中(位通道“9”)。22位数据CRC的剩余14位变成FE[13:0],并使用按位异或(XOR)函数和由下一帧中的26位“A”命令产生的14位CRC组合,以便生成将在下一帧中被传送的复合校验和aE[13:0]。当前帧中的复合14位校验和aE[13:0]通过这个帧的“A”命令14位CRC与由先前帧的72位数据产生的被锁存FE[13:0]的XOR操作产生。
为了在接收存储器代理处对帧解码,由26位命令产生14位命令校验和CRC14[13:0],并由当前帧中的72位数据产生22位数据校验和CRC22[21:0]。CRC22[13:0]被锁存为FE[13:0],用于将来下一帧中的复合CRC检查。通过先前帧的FE[13:0]与当前帧的新aE[13:0]的按位XOR产生测试复合校验和TESTaE[13:0]。如果所产生的测试复合校验和TESTaE[13:0]和被与当前帧一起传送的复合校验和aE[13:0]匹配,则当前帧的“A”命令中不存在错误。
为了完成先前帧的72位数据中的故障检测,由当前26位命令产生的14位命令校验和CRC14[13:0]被与当前帧的新aE[13:0]进行XOR,由此产生了与先前帧被锁存的FE[13:0]进行比较的结果。
为了开始在当前帧中转移的72位数据的故障检测,将和当前帧一起传送的FE[21:14]与由当前帧中的72位数据产生的新CRC22[21:14]进行比较。当下一帧到达时,在当前帧中转移的72位数据的故障检测完成。
在aE[13:0]中的失效指示不仅当前帧中的“A”命令可能有故障,而且先前帧中的72位数据也可能有故障。对被传送的FE[21:14]部分校验和的比较故障指示先前帧中的72位数据可能有故障。
只要接收到帧的前4个转移就可以检查“A”命令的CRC,并且可以立即使用“A”命令中的信息而无需等待帧的剩余部分到达。这种机制可以提供对先前帧的72位数据的强CRC保护,同时降低传递当前帧中“A”命令时的延时。
发明原理不局限于在参考图31描述的实施方案中示出的位的数量或者位置。已经将每一个帧的第一部分和第二部分称为命令部分和数据部分,但是在每一个部分中可以转移任何类型的信息,并且数据部分可以包含额外的命令、命令扩展,等等。所描述的任务不一定需要按照所描述的顺序执行。因此,可以修改图31的实施方案以便容纳不同的***要求或环境。
本专利的某些额外的发明原理涉及针对测试信道使用可变映射。图32示出了根据本专利的发明原理的存储器代理的实施方案,在这个实施例中假设是存储器模块或者缓冲器。图32的存储器代理包括可能具有一个或更多个接收器的接收链路接口140,以及可能具有一个或更多个传送器的传送链路接口142。可以是如这里所示的复用器或者其他类型的重定向设备的回送(loopback)单元196能够选择性地将接收位通道映射到传送位通道,以使存储器代理可以把从存储器控制器接收到的训练序列在传送位通道上作为返回序列传送回所述控制器。通过使用不同的映射将接收位通道选择性地重新映射到传送位通道,所述控制器可以分析返回序列,以便不仅识别是否存在失效的位通道,而且识别失效是在接收数据通路上还是在传送数据通路上,以及识别哪个接收或者传送位位置已经失效。
图32的实施方案用具有单向位通道的接收和传送链路接口示出,但是发明原理不局限于这种特定的接口结构或者通道类型。
图33示出了根据本专利的发明原理的两个可能的位通道映射的示例性实施方案。仅为了说明的目的,图33中所示的映射假设存储器代理在接收链路接口中具有10个位通道,在传送链路接口中具有14个位通道。使用映射A,回送单元将在接收位通道的低5位上接收到的训练序列重定向到传送位通道,以使低5位中的每一个均被重定向到多个传送位通道。使用映射B,在接收位通道的高5位上接收到的训练序列被重新发送到所述多个传送位通道。
训练序列可以包含映射指示器,用于指挥存储器代理使用哪个映射。训练序列还可以包含各种位传输组,所述位传输组给存储器代理提供测试参数,或者提供测试每一个通道的信号完整性的电应力模式(electrical stress pattern)。每一个位通道可以接收相同的训练序列,或者,不同的位通道可以接收不同的序列,例如具有不同电应力模式的序列。
存储器代理接收到的训练序列可以被不加修改地重新传送,因此它们起到返回序列的作用,或者,存储器代理可以修改这些序列或者生成完全不同的序列。例如,存储器代理可以将大多数训练序列作为返回序列重新传送而只修改序列内的一小组以便给存储器主设备提供识别或者状态信息。
例如,如果在如图3中所示的多代理配置中采用根据本专利的发明原理的具有多端口和可变映射能力的存储器代理,则这些代理可以被构造成在测试操作期间只有最外边的代理提供回送操作,而其他代理工作于通过模式。
不偏离发明原理,可以在结构和细节上修改这里所描述的实施方案。因此,这些变化和修改被视为落入所附权利要求书的范围内。
Claims (19)
1.一种传送来自存储器代理的帧的方法,包括:
传送所述帧的第一部分,其中所述帧的所述第一部分包括命令;
传送所述帧的第二部分;以及
在所述帧的所述第二部分结束传送之前,传送用于所述帧的所述第一部分的CRC码。
2.如权利要求1所述的方法,还包括在传送所述帧的所述第二部分之前传送所述CRC码。
3.如权利要求1所述的方法,其中所述帧的所述第一部分包括所述CRC码。
4.如权利要求3所述的方法,其中所述帧的所述第一部分包括所述CRC码的全部。
5.如权利要求1所述的方法,其中所述帧的所述第二部分包括用于所述帧的所述第二部分的第二CRC码。
6.如权利要求5所述的方法,其中所述帧的所述第二部分包括所述第二CRC码的一部分。
7.一种用于在存储器代理处接收帧的方法,包括:
接收所述帧的第一部分,其中所述帧的所述第一部分包括命令;
接收所述帧的第二部分;以及
在所述帧的所述第二部分被完全接收之前,接收用于所述帧的所述第一部分的CRC码。
8.如权利要求7所述的方法,还包括在接收所述帧的所述第二部分之前接收所述CRC码。
9.如权利要求7所述的方法,还包括在所述帧的所述第二部分被完全接收之前,使用所述CRC码来检查所述帧的所述第一部分。
10.如权利要求9所述的方法,还包括在所述帧的所述第二部分被完全接收之前,使用所述帧的所述第一部分中的信息。
11.如权利要求7所述的方法,其中所述帧的所述第二部分包括第二命令。
12.如权利要求7所述的方法,其中所述帧的所述第二部分包括存储器数据。
13.一种存储器代理,包括:
用于传送帧的第一部分的装置,其中所述帧的所述第一部分包括命令;
用于传送所述帧的第二部分的装置;以及
用于在所述帧的所述第二部分结束传送之前,传送用于所述帧的所述第一部分的CRC码的装置。
14.如权利要求13所述的存储器代理,还包括用于在传送所述帧的所述第二部分之前传送所述CRC码的装置。
15.一种存储器代理,包括:
用于接收帧的第一部分的装置,其中所述帧的所述第一部分包括命令;
用于接收所述帧的第二部分的装置;以及
用于在所述帧的所述第二部分被完全接收之前,接收用于所述帧的所述第一部分的CRC码的装置。
16.如权利要求15所述的存储器代理,还包括用于在接收所述帧的所述第二部分之前接收所述CRC码的装置。
17.如权利要求15所述的存储器代理,还包括用于在所述帧的所述第二部分被完全接收之前使用所述命令的装置。
18.一种存储器***,包括:
用于传送帧的第一部分的装置,其中所述帧的所述第一部分包括命令;
用于传送所述帧的第二部分的装置;
用于在所述帧的所述第二部分结束传送之前,传送用于所述帧的所述第一部分的CRC码的装置;
用于接收帧的第一部分的装置;
用于接收所述帧的第二部分的装置;以及
用于在所述帧的所述第二部分被完全接收之前,接收用于所述帧的所述第一部分的CRC码的装置。
19.如权利要求18所述的存储器***,还包括用于在接收所述帧的所述第二部分之前接收所述CRC码的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/714,025 US7219294B2 (en) | 2003-11-14 | 2003-11-14 | Early CRC delivery for partial frame |
US10/714,025 | 2003-11-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1882916A CN1882916A (zh) | 2006-12-20 |
CN100498724C true CN100498724C (zh) | 2009-06-10 |
Family
ID=34573868
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004800336820A Expired - Fee Related CN100498724C (zh) | 2003-11-14 | 2004-11-05 | 针对部分帧的提早crc传送 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7219294B2 (zh) |
EP (1) | EP1683017A2 (zh) |
JP (1) | JP4331756B2 (zh) |
CN (1) | CN100498724C (zh) |
TW (1) | TWI265525B (zh) |
WO (1) | WO2005050448A2 (zh) |
Families Citing this family (67)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6760772B2 (en) | 2000-12-15 | 2004-07-06 | Qualcomm, Inc. | Generating and implementing a communication protocol and interface for high data rate signal transfer |
US8812706B1 (en) | 2001-09-06 | 2014-08-19 | Qualcomm Incorporated | Method and apparatus for compensating for mismatched delays in signals of a mobile display interface (MDDI) system |
US7362697B2 (en) | 2003-01-09 | 2008-04-22 | International Business Machines Corporation | Self-healing chip-to-chip interface |
DE602004030236D1 (de) | 2003-06-02 | 2011-01-05 | Qualcomm Inc | Erzeugen und implementieren eines signalprotokolls und einer schnittstelle für höhere datenraten |
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 |
AU2004300958A1 (en) | 2003-08-13 | 2005-02-24 | Qualcomm, Incorporated | A signal interface for higher data rates |
CA2538308C (en) | 2003-09-10 | 2013-05-14 | Qualcomm Incorporated | High data rate interface |
KR20080052699A (ko) | 2003-10-15 | 2008-06-11 | 퀄컴 인코포레이티드 | 높은 데이터 레이트 인터페이스 |
KR100827573B1 (ko) | 2003-10-29 | 2008-05-07 | 퀄컴 인코포레이티드 | 높은 데이터 레이트 인터페이스 |
TWI381686B (zh) | 2003-11-12 | 2013-01-01 | Qualcomm Inc | 具有改良的鏈路控制之高資料速率介面 |
KR20060096161A (ko) | 2003-11-25 | 2006-09-07 | 콸콤 인코포레이티드 | 향상된 링크 동기화를 제공하는 고속 데이터 레이트인터페이스 |
KR100906319B1 (ko) | 2003-12-08 | 2009-07-06 | 퀄컴 인코포레이티드 | 링크 동기화를 갖는 고 데이터 레이트 인터페이스 |
US20050138267A1 (en) * | 2003-12-23 | 2005-06-23 | Bains Kuljit S. | Integral memory buffer and serial presence detect capability for fully-buffered memory modules |
CA2775734C (en) | 2004-03-10 | 2014-01-07 | Qualcomm Incorporated | High data rate interface apparatus and method |
RU2355121C2 (ru) | 2004-03-17 | 2009-05-10 | Квэлкомм Инкорпорейтед | Устройство и способ интерфейса с высокой скоростью передачи данных |
WO2005096594A1 (en) | 2004-03-24 | 2005-10-13 | Qualcomm Incorporated | High data rate interface apparatus and method |
DE102004044785A1 (de) * | 2004-04-10 | 2005-10-27 | Leica Microsystems Semiconductor Gmbh | Vorrichtung und Verfahren zur Bestimmung von Positionierkoordinaten für Halbleitersubstrate |
US8650304B2 (en) | 2004-06-04 | 2014-02-11 | Qualcomm Incorporated | Determining a pre skew and post skew calibration data rate in a mobile display digital interface (MDDI) communication system |
ATE518343T1 (de) | 2004-06-04 | 2011-08-15 | Qualcomm Inc | Schnittstellenvorrichtung und -verfahren für hohe datenraten |
US8699330B2 (en) | 2004-11-24 | 2014-04-15 | Qualcomm Incorporated | Systems and methods for digital data transmission rate control |
US8539119B2 (en) * | 2004-11-24 | 2013-09-17 | Qualcomm Incorporated | Methods and apparatus for exchanging messages having a digital data interface device message format |
US8667363B2 (en) * | 2004-11-24 | 2014-03-04 | Qualcomm Incorporated | Systems and methods for implementing cyclic redundancy checks |
US8723705B2 (en) * | 2004-11-24 | 2014-05-13 | Qualcomm Incorporated | Low output skew double data rate serial encoder |
US20060161691A1 (en) * | 2004-11-24 | 2006-07-20 | Behnam Katibian | Methods and systems for synchronous execution of commands across a communication link |
US8873584B2 (en) | 2004-11-24 | 2014-10-28 | Qualcomm Incorporated | Digital data interface device |
US8692838B2 (en) | 2004-11-24 | 2014-04-08 | Qualcomm Incorporated | Methods and systems for updating a buffer |
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 |
US7606166B2 (en) * | 2005-04-01 | 2009-10-20 | International Business Machines Corporation | System and method for computing a blind checksum in a host ethernet adapter (HEA) |
US7881332B2 (en) * | 2005-04-01 | 2011-02-01 | International Business Machines Corporation | Configurable ports for a host ethernet adapter |
US7586936B2 (en) * | 2005-04-01 | 2009-09-08 | International Business Machines Corporation | Host Ethernet adapter for networking offload in server environment |
US7706409B2 (en) * | 2005-04-01 | 2010-04-27 | International Business Machines Corporation | System and method for parsing, filtering, and computing the checksum in a host Ethernet adapter (HEA) |
US7697536B2 (en) * | 2005-04-01 | 2010-04-13 | International Business Machines Corporation | Network communications for operating system partitions |
US7903687B2 (en) * | 2005-04-01 | 2011-03-08 | International Business Machines Corporation | Method for scheduling, writing, and reading data inside the partitioned buffer of a switch, router or packet processing device |
US7577151B2 (en) | 2005-04-01 | 2009-08-18 | International Business Machines Corporation | Method and apparatus for providing a network connection table |
US7508771B2 (en) | 2005-04-01 | 2009-03-24 | International Business Machines Corporation | Method for reducing latency in a host ethernet adapter (HEA) |
US20060221953A1 (en) * | 2005-04-01 | 2006-10-05 | Claude Basso | Method and apparatus for blind checksum and correction for network transmissions |
US8692839B2 (en) | 2005-11-23 | 2014-04-08 | Qualcomm Incorporated | Methods and systems for updating a buffer |
US8730069B2 (en) | 2005-11-23 | 2014-05-20 | Qualcomm Incorporated | Double data rate serial encoder |
US7353316B2 (en) * | 2006-03-24 | 2008-04-01 | Micron Technology, Inc. | System and method for re-routing signals between memory system components |
US7627804B2 (en) * | 2006-06-30 | 2009-12-01 | Intel Corporation | Memory device with speculative commands to memory core |
US7774684B2 (en) | 2006-06-30 | 2010-08-10 | Intel Corporation | Reliability, availability, and serviceability in a memory device |
US7810013B2 (en) * | 2006-06-30 | 2010-10-05 | Intel Corporation | Memory device that reflects back error detection signals |
US7881303B2 (en) | 2006-12-13 | 2011-02-01 | GlobalFoundries, Inc. | Command packet packing to mitigate CRC overhead |
US7840873B2 (en) | 2006-12-13 | 2010-11-23 | Globalfoundries Inc. | Partial CRC insertion in data packets for early forwarding |
US7644344B2 (en) * | 2007-05-15 | 2010-01-05 | Intel Corporation | Latency by offsetting cyclic redundancy code lanes from data lanes |
JP5461414B2 (ja) * | 2007-10-26 | 2014-04-02 | アギア システムズ インコーポレーテッド | 部分的に崩壊したデータパケットからの値の抽出方法 |
US7913128B2 (en) * | 2007-11-23 | 2011-03-22 | Mosaid Technologies Incorporated | Data channel test apparatus and method thereof |
US8321778B2 (en) * | 2008-06-16 | 2012-11-27 | Intel Corporation | Efficient in-band reliability with separate cyclic redundancy code frames |
US8858698B2 (en) * | 2008-09-05 | 2014-10-14 | Mentor Worldwide Llc | Acellular matrix glue |
US8924836B2 (en) * | 2008-10-30 | 2014-12-30 | Kabushiki Kaisha Toshiba | Data receiving apparatus, data receiving method, and computer-readable recording medium |
JP4922279B2 (ja) * | 2008-10-30 | 2012-04-25 | 株式会社東芝 | データ受信装置、データ受信方法、及びデータ受信プログラム |
US8032804B2 (en) * | 2009-01-12 | 2011-10-04 | Micron Technology, Inc. | Systems and methods for monitoring a memory system |
KR101037559B1 (ko) | 2009-03-04 | 2011-05-27 | 주식회사 실리콘웍스 | 데이터 구동부의 모니터링 수단이 구비된 디스플레이 구동 시스템 |
US8381067B2 (en) * | 2010-01-29 | 2013-02-19 | International Business Machines Corporation | Apparatus, system, and method for specifying intermediate CRC locations in a data stream |
CN102340368B (zh) * | 2010-07-19 | 2014-07-02 | 中兴通讯股份有限公司 | 一种cpri链路误码监测方法、***和装置 |
US9106258B2 (en) | 2013-11-22 | 2015-08-11 | International Business Machines Corporation | Early data tag to allow data CRC bypass via a speculative memory data return protocol |
US9853772B2 (en) | 2016-02-23 | 2017-12-26 | Dell Products L.P. | Intelligent network checksum processing |
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 |
US10771364B2 (en) * | 2018-03-27 | 2020-09-08 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Network interface controller |
JP7215389B2 (ja) * | 2019-10-08 | 2023-01-31 | 株式会社デンソー | 電子制御装置 |
CN111177042A (zh) * | 2019-12-10 | 2020-05-19 | 中国航空工业集团公司西安航空计算技术研究所 | 一种帧处理方法和帧存储装置 |
KR20220052018A (ko) * | 2020-10-20 | 2022-04-27 | 삼성전자주식회사 | 스토리지 시스템 |
CN114220222B (zh) * | 2021-11-30 | 2023-09-05 | 杭州海兴电力科技股份有限公司 | 一种离线预付费电量充值方法和*** |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US6408402B1 (en) | 1994-03-22 | 2002-06-18 | Hyperchip Inc. | Efficient direct replacement cell fault tolerant architecture |
DE69529856D1 (de) | 1994-03-22 | 2003-04-10 | Hyperchip Inc | Massive Paralleldatenverarbeitungsvorrichtung mit photovoltaischen Zellen für die Absorption des Umgebungslichtes |
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 |
US5742840A (en) | 1995-08-16 | 1998-04-21 | Microunity Systems Engineering, Inc. | General purpose, multiple precision parallel operation, programmable media processor |
US6006318A (en) | 1995-08-16 | 1999-12-21 | Microunity Systems Engineering, Inc. | General purpose, dynamic partitioning, 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 |
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 |
AU1798999A (en) | 1997-12-05 | 1999-06-28 | Intel Corporation | Memory system including a memory module having a memory module controller |
US6029186A (en) | 1998-01-20 | 2000-02-22 | 3Com Corporation | High speed calculation of cyclical redundancy check sums |
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 |
BRPI9908836B1 (pt) | 1998-03-16 | 2017-04-18 | Jazio Inc | processo e sistema para detectar uma transição entre um sinal de entrada e um sinal prévio, sistema de comunicação, sistema de receptor de sinal para detectar uma transição de um sinal prévio para um sinal subseqüente, sistema de transmissão, e, processos para comparar um sinal de entrada a um sinal prévio, e para transmitir e receber uma pluralidade de sinais de terminação simples de pequena excursão |
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 |
US6160423A (en) | 1998-03-16 | 2000-12-12 | Jazio, Inc. | High speed source synchronous signaling for interfacing VLSI CMOS circuits to transmission lines |
US6964008B1 (en) * | 1999-11-12 | 2005-11-08 | Maxtor Corporation | Data checksum method and apparatus |
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 |
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 |
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 |
US6493250B2 (en) | 2000-12-28 | 2002-12-10 | Intel Corporation | Multi-tier point-to-point buffered memory interface |
US7055085B2 (en) * | 2002-03-07 | 2006-05-30 | Broadcom Corporation | System and method for protecting header information using dedicated CRC |
-
2003
- 2003-11-14 US US10/714,025 patent/US7219294B2/en not_active Expired - Fee Related
-
2004
- 2004-11-05 WO PCT/US2004/036966 patent/WO2005050448A2/en active Application Filing
- 2004-11-05 CN CNB2004800336820A patent/CN100498724C/zh not_active Expired - Fee Related
- 2004-11-05 EP EP04810428A patent/EP1683017A2/en not_active Withdrawn
- 2004-11-05 JP JP2006539675A patent/JP4331756B2/ja not_active Expired - Fee Related
- 2004-11-11 TW TW093134456A patent/TWI265525B/zh not_active IP Right Cessation
Non-Patent Citations (2)
Title |
---|
Rechnerverbindungsstrukturen. BERND SCHüRMANN,260-285,Wiesbaden Germany. 1997 |
Rechnerverbindungsstrukturen. BERND SCHüRMANN,260-285,Wiesbaden Germany. 1997 * |
Also Published As
Publication number | Publication date |
---|---|
WO2005050448A2 (en) | 2005-06-02 |
JP2007511011A (ja) | 2007-04-26 |
EP1683017A2 (en) | 2006-07-26 |
CN1882916A (zh) | 2006-12-20 |
US7219294B2 (en) | 2007-05-15 |
TWI265525B (en) | 2006-11-01 |
JP4331756B2 (ja) | 2009-09-16 |
WO2005050448A3 (en) | 2005-07-28 |
US20050108611A1 (en) | 2005-05-19 |
TW200516594A (en) | 2005-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100498724C (zh) | 针对部分帧的提早crc传送 | |
CN100470496C (zh) | 用可变映射进行的通道测试 | |
CN102073606B (zh) | 数据通路和存储器设备之间的数据累积 | |
CN100483380C (zh) | 检测外部存储器模块之存在的存储器代理、***和方法 | |
CN100511192C (zh) | 用于具有位通道故障在线恢复的存储信道的方法、装置和*** | |
CN100538682C (zh) | 存储设备、存储***和操作存储设备和存储***的方法 | |
CN100440188C (zh) | 用于区分状态信息与读数据的存储设备、***和方法 | |
US7212423B2 (en) | Memory agent core clock aligned to lane | |
US20050268061A1 (en) | Memory channel with frame misalignment |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090610 Termination date: 20191105 |