弹性接口装置及其方法

文档序号:7592268阅读:150来源:国知局
专利名称:弹性接口装置及其方法
技术领域
本发明通常涉及数据处理系统,尤其是涉及在一个数据处理系统中动态或时钟控制的集成电路芯片之间的接口。
背景技术
现代数据处理系统需要在这个系统多个芯片内包含的动态、或时钟控制的电路之间传送数据。例如,数据可能需要在一个多CPU系统的中央处理单元(CPU)之间、或者是在一个CPU和可能包含一个存储控制器与芯片外高速缓存的存储器系统之间进行传送。数据传送是同步的,而且期望数据在一个预定的系统周期内被传送到芯片上的电路中。由于CPU速度已经提高,而通过这个接口的延迟时间超过了系统时钟周期,所以芯片间的接口速度(总线周期时间)已经成为了限制约束条件。为了保持系统同步化,系统设计员必须降低总线的速度,以使数据到达的周期是确定的。
通过参考图1A这可以得到进一步的理解,其中以方框图的形式描述了在一个数据处理系统中的两个集成电路芯片、芯片102和芯片104之间的一个现有技术接口。芯片102和104的每一个都接收一个连接到一个锁相回路PLL 108的参考时钟106。PLL 108产生一个锁定到参考时钟106的本地时钟,在芯片102中为时钟110而在芯片104中为时钟111。参考时钟106提供一个“时间零点”参考,并且取决于PLL 108的乘法,可以要求是本地时钟110和111的多个周期。总线时钟113由参考时钟通过将本地时钟110在除法器112中除以一个预定的整数N得到。从芯片102发送到芯片104的数据在分割后的本地时钟111的一个预定沿上进行锁存,并经由驱动器118发送到数据线116上。数据在接收器(RX)120中被接收,并且在芯片104分割后的本地时钟110的一个预定沿上被捕获到目标锁存器122里。由于芯片102和芯片104的物理分离,数据在目标锁存器122的输入端124出现时就已经发生了延迟。(由于RX120对该延迟时间的影响一般小于由于数据传输对该延迟的影响。)这个时间延迟被称为延迟时间,并且将结合图1B作进一步论述。
相似地,芯片104经由数据线126向芯片102传送数据。在将本地时钟111除以N的除法器130的输出信号的一个预定沿上,在锁存器128中对从芯片104发送的数据进行锁存。这个数据经由驱动器132被发送到数据线126上,并且经由接收器136被捕获到目标锁存器134中。输入到芯片102的数据,在也将本地时钟110除以N的除法器130的输出的一个预定沿上,被捕获到数据锁存器134中。
在图1B中,说明了一个根据现有技术用于图1A的接口100的示例性时序图。从芯片102发送到芯片104的数据115在总线时钟113的一个上升沿t1上被锁存到锁存器114中。总线时钟113是通过将本地时钟110在芯片102的除法器112和130中除以N产生的。在由延迟时间造成的一个延迟T1之后,数据117出现在目标锁存器122的一个输入端,并且在总线时钟123的上升沿t2上被锁存。总线时钟123是通过将本地时钟111在芯片104的除法器112和130中除以N产生的。因此,在根据图1B的现有技术中,数据125在它从芯片102发出一个总线周期之后出现在芯片104中。在图1B中,总线时钟113和总线时钟123之间没有偏移。
在图1A中的接口100中,如果总线时钟的频率增加,则延迟时间可能超过一个总线时钟周期。然后就可能导致图1C所示的示例性时序图。如前所述,数据115在总线时钟113的边沿t1上已经被锁存了。数据117在延迟时间T1之后出现在目标锁存器122的输入端124,这个延迟时间要比总线时钟113和总线时钟123的周期更长。数据117在芯片104的总线时钟123的边沿t3上被锁存从而在芯片104上提供数据125。如果芯片102和104之间的接口100表示在一个数据处理系统内部芯片102和其它多个芯片之间的多个接口中有最长延迟时间的那个接口,则在图1C所示的两个周期延迟时间表示在芯片之间、例如芯片102和芯片104之间传输和捕获数据的“目标”周期。目标周期是芯片期望数据到达的那个预定周期。根据现有技术,为了确保同步操作,具有一个较短延迟时间的接口可能需要被填充。这个填充确保在接口100中较快的路径具有大于一个总线时钟周期、而小于两个总线时钟周期的延迟时间,借此可以保持数据同步。
通过参考图1D可以得到进一步的理解,其中举例说明了芯片组101,包含芯片102、103和104。芯片102和芯片104在具有一个长延迟时间TS的“慢速”路径152上连接。芯片103与芯片102经由具有一个短延迟时间TF的“快速”路径154相连。一个连接芯片组101中的芯片102-105的“标称”路径有延迟时间TM,例如在芯片102和芯片105之间的路径156上的延迟时间。
图1E中的时序图提供了更详细的说明。图1E说明了一个类似于图1C的时序图,其中用于捕获数据到一个接收芯片中的目标周期是两个总线周期。在图1E中,标称延迟时间TM如图所示是1.5个总线周期,快速路径延迟时间TF是正好大于一个总线周期,且慢速路径延迟时间TS如图所示稍小于两个总线周期。在这种情况下,图1D中芯片组101的每一个都在目标周期、即数据发出之后两个总线周期上捕获数据。
然而,如果快速路径较短,用快速延迟时间来说明,则数据同步化就会丢失。在这种情况下,在芯片103总线时钟转换t2之前数据到达芯片103,如芯片103中数据117的虚线部分所示,并且在一个总线周期之后被锁存到芯片103中。这由芯片103中数据125的虚线部分来说明。为了恢复同步化,在芯片102和103之间的快速路径即路径154将会要求填充以增加快速路径延迟时间TF。因此,这样一种现有技术接口的时间安排适用于一个具体的工作范围、一个特定的接口长度,而且仅仅对那种进行时间控制和分析设计的技术是有效的。
同样地,增加图1D中的这些芯片的时钟速度将会导致同步化的丧失。这可以通过考虑一个明显的实例来理解。首先取本地时钟周期时间为1纳秒(ns)。总线时钟的周期将会是该本地时钟周期的固定倍数,这个倍数将会被取为2。使这个接口标称延迟TM为3ns+/-时间变化的0.99ns,即最好情况或者快速路径TF是2ns,而更坏情况或者低速路径TS是4ns。数据将会在二个纳秒之后、四个纳秒之前到达。从而该接口将在所有情况下操作,即数据保证在第一个总线周期之后并且在第二个总线周期之前到达。然而,如果芯片的速度增加到周期为0.9ns,则总线周期时间变为1.8ns。为了确保在更坏的情况下有足够的时间用于数据穿过接口传送,数据必须不能在2.5个总线周期、或者4.5ns之前被捕捉,因为两个总线周期小于慢速路径时间Ts、或者4ns。然后,为了在一个1.8ns总线周期上操作,最快数据能够到达的时间为1.5×1.8=2.7ns(提前一个总线周期),以确保所有情况数据在同一个周期上到达。然而,来自上述延迟数的最早数据能够经由快速路径用TF为3ns-0.99ns=2.01ns的时间到达。因此,以一个1.8ns的总线周期时间操作在一个传统的同步设计中不能得到支持。为了同步操作,该总线与处理器比必须慢到至少3∶1,而且以一个2.7ns周期时间进行操作(2.7ns×1.5个周期=4.05ns,且2.7ns×0.5个周期=1.35ns),这影响了本地时钟速度的增加。
因此,在本技术中就需要有一种在增加了时钟速率的一个数据处理系统内、调节芯片之间数据传输的装置和方法。尤其是,需要一种在数据处理系统内确保芯片之间数据同步化的方法和装置,其中该处理系统的路径延迟变化超过一个总线周期,而且该方法消除了对设计特定硬件填充的需要。
本发明的一个目的是提供一种克服上述缺点的技术。

发明内容
根据本发明,我们提供了一种接口装置,它包含一个第一存储设备,用于存储第一组数据值;一个第二存储设备,用于存储第二组数据值;与所述第一和第二存储设备相连的电路,用于根据至少一个控制信号、顺序地从所述第一存储设备中输出一个第一数据值以及从所述第二存储设备中输出一个第二数据值,其中所述第一和第二存储设备保持数据值持续一个预定数目的第一时钟周期时间,以及第一和第二选择电路每一个具有分别连接到相应所述第一和第二存储设备输入端的输出端,所述第一和第二选择电路每一个具有可操作用于接收数据流的第一输入端,和一第二输入端连接到所说第一和第二存储设备的一相应输出端,其中所说第一和第二选择电路根据第一和第二控制信号可操作用于选择输出在所述第一和第二输入端的一个上的信号。
此外根据本发明,我们提供了一种连接集成电路设备的方法,它包含以下步骤在一个第一存储元件中存储第一组数据值,其中每个所述第一组数据值都存储一个预定数目的第一时钟周期时间;在第二组存储元件中存储第二组数据值,其中每个所述第二组数据值都存储一个预定数目的第一时钟周期时间;


为了对本发明以及其优点有更完整的理解,结合附图参考下列描述,其中附图为图1A说明了一个根据现有技术的芯片接口;图1B根据现有技术示意性地说明了图1A所示芯片接口的一个实施例时序图;图1C依据现有技术说明了图1A所示芯片接口的另一个实施例时序图;图1D说明了在一个数据处理系统中多个相互连接的芯片;图1E示意性地说明了图1D多个相互连接芯片的一个实施例时序图;图2以方框图的形式说明了用于实践本发明的一个代表性硬件环境;图3以方框图的形式说明了根据本发明一个实施例的一个芯片接口;图4A以方框图的形式说明了根据本发明一个实施例的一个弹性接口;图4B示意性地说明了图3A所示的本发明实施例的一个时序图;图5说明了根据本发明的一个芯片接口的一个替换实施例;图6A说明了根据本发明的一个弹性接口的另一个替换实施例;图6B示意性地说明了图5A所示弹性接口的一个时序图;图7A说明了根据本发明一个弹性接口的另一个替换实施例;图7B示意性地说明了图7A所示实施例的一个时序图;图8A以方框图的形式说明了根据本发明的弹性接口的又一个替换实施例;以及图8B示意性地说明了图8A所示实施例的一个时序图。
具体实施例方式
本发明提供了一种弹性接口机制,它实现了在一个数据处理系统中多个数据处理芯片之间的数据同步化。而且不需要填充就完成了数据同步化,否则填充将使物理布线变得复杂,而且增加了硬件设计的复杂性。该接口的"弹性"用于解决在系统中连接数据处理芯片的路径之间的物理差别。通过把该接收的数据捕获到多个存储元件中,并且有选择地控制锁存的数据,就在一个其中延迟变化超过一个总线时钟周期的数据处理系统中提供了数据同步化。通过在通电时、或者在重置之后,执行一个初始化调整过程,可以动态地建立同步化。这样,根据本发明的原理,就可以实现数据的同步化而不需要底板设计的一个时序分析和快速路径填充。
在下面的描述中,对诸如总线时钟频率以及同步化周期、时钟脉冲沿等等大量具体细节进行了阐述,以提供对本发明的彻底理解。然而,对本领域技术人员来说,显然可以实践本发明而不需要这样的细节。为了不因为不必要的细节而模糊了本发明,在其他的实例中,以方框图的形式显示了众所周知的电路。
现在参考图2-9,其中描述的元素没有必要按比例显示,而且在这几个视图中,类似或者相似的元件被指定了同样的标记号。
在图2中描述了一个用于实践本发明的代表性硬件环境,它说明了根据本发明的数据处理系统213的一个典型硬件配置,其中具有中央处理单元(CPU)210,例如一个传统的微处理器,以及多个经由系统总线212相互连接的其他单元。数据处理系统213包含随机存取存储器(RAM)214;只读存储器(ROM)216;以及输入/输出(I/O)适配器218,用于将外围设备诸如磁盘单元220以及磁带驱动器240连接到总线212;用户界面适配器222,用于将键盘224、鼠标226、及/或其他用户界面设备诸如一种触摸屏设备(没有显示)连接到总线212上;通信适配器234,用于将工作站213连接到一个数据处理网络中;以及显示适配器236,用于将总线212连接到显示设备238。CPU210可以包含此处没有显示的其他电路,其中将包含在一个微处理器内通常能够找到的电路,例如,执行单元、总线接口单元、算术逻辑单元等等。本发明的接口可以包含在CPU 210中。此外,本发明可以包含在存储设备、例如RAM 214(它可能包含此处没有显示的存储器控制电路)中。CPU 210也可以驻留在单个集成电路上。
现在参考图3,其中说明了根据本发明的一个接口300。接口被包含在芯片302和芯片304的每一个中,其中这两个芯片分别经由各自的一个接口300相互传递数据。(尽管在一个芯片到芯片接口的环境中描述了本发明的该实施例,但是本发明的原理可以包含在任何时钟控制的锁存器对之间的一个接口中。)数据以一个由一总线时钟、总线时钟306和308所确定的速度,在芯片302和304之间进行传输。总线时钟306和308标称具有同一频率,而且都源自于被提供给一个锁相回路PLL、即每个芯片302和304中的PLL312的参考时钟310。在本发明的一个实施例中,参考时钟310可以是一个系统时钟。每个PLL 312输出一个本地时钟,在芯片302中为本地时钟314,而在芯片304中为本地时钟316,它们锁定为和参考时钟310同相,而且可以是参考时钟310的周期的一个预选整数M倍。本地时钟314由驱动器318进行缓存以提供来自芯片302的总线时钟306。相似地,本地时钟316由驱动器320进行缓存以提供来自芯片304的总线时钟308。
该总线时钟与从芯片传递的数据一起提供。来自芯片302的数据322被锁存到输出锁存器324中,然后由驱动器326进行驱动和缓存。该数据在本地时钟314的一个预选沿上被锁存。经由多路复用器(MUX)328接收该数据。MUX 328还接收一个和调整过程相结合的预定的同步化模式。这些将在下面作进一步描述。
由接收器(RX)330缓存数据322并将其提供给一个弹性接口单元332。由RX334缓存与数据322一起发送的总线时钟306,RX334的输出形成I/O时钟336,也提供给弹性接口332。来自芯片304的数据与总线时钟308一起被发送给芯片302,然后类似地由芯片302中的接口300接收,而且应当明白以下描述的弹性设备332同样适用于由芯片302从芯片304中接收数据。
目标周期单元339设置数据在接收芯片中被本地时钟锁存、例如在芯片304中被本地时钟316锁存时所处的目标周期。结合图4A/B详细地讨论目标周期,用来说明一个具有双弹性的接口322。对于具有一个弹性E的一个接口来说,目标周期单元可以包含一个E次分频电路。另外,目标周期单元339可以包含一个程序寄存器用于保留预定的目标周期值,它可以经由目标程序341载入。在芯片302的目标周期单元339中程控的目标周期,可以与在芯片304的目标周期单元339中程控的目标周期不同。目标周期单元339,取决于接口单元332的实施例以及相应的弹性E,输出可以包含多个信号的选择控制343。结合说明了接口单元332实施例的图4A-8B,进一步对选择控制343进行描述。
现在参考图4A,它说明了根据本发明的一个弹性接口单元332的一个实施例。单元332包含MUX 402,它具有一个从RX 330接收数据的输入端404。MUX 402的输出端406与锁存器408的数据(D)输入端相连。锁存器408由I/O时钟336进行时钟控制。锁存器408在时钟436的一个上升沿上锁存在该D输入端的数据,并且保持该数据直到时钟336的下一个上升沿为止。锁存器408的输出端410被反馈到MUX 402的第二输入端即输入端412。根据门控414,MUX 402在输入404和输入412之间进行选择用于在输出406上输出。
门控414源自于总线时钟306,并且周期是总线时钟306的两倍。可以使用一个延迟锁定回路(DLL)产生门控414。可以在本发明中使用的一个DLL的一个实施例,在名为"Dynamic Wave Pipe1inedInterface Apparatus and Method Therefor"的待审申请中公开了,在此作为参考。门控414的相位在以下讨论的初始化调整过程期间进行设置,并且将结合图4B进一步描述门控414的操作。
来自于RX330的数据也并行地输入到第二MUX即MUX416的输入端418上。MUX416的输出420与第二锁存器即锁存器422的一个D输入端相连,该锁存器也由I/O时钟336进行时钟控制,而且在I/O时钟336的一个上升沿上锁存数据,并且保持该数据直到这个时钟的一个后续上升沿为止。锁存器422的输出424与MUX416的第二输入端即输入端426相连。
MUX 416根据门控414的补码、即门控428,在输入418和输入426之间进行选择。这样,当选择MUX 402和416中的一个用于从RX330接收数据时,另一个被选择用于在它相应的锁存器、即锁存器408和422中的一个内保持数据。这样,先前保存在锁存器408和422其中之一内的一个数据位可以多保持一个I/O时钟336周期。
因此,就创建了两个数据流,每个的有效期为二个I/O时钟336周期。由于门控414和门控428之间的相位相反,因此这两个数据流彼此相互偏移一个数据值的临时宽度,即一个I/O时钟336周期。
通过参考图4B,其中说明了根据图4A中的弹性接口单元332的一个时序图,这可以得到更进一步的理解。如前所述,保持在输出锁存器324中的数据325以与芯片202中本地时钟314同步的方式进行发送。如在上文中结合图ID所讨论的那样,在芯片202的接收机230上接收的数据即数据322,由在芯片202和204之间的路径所代表的延迟时间所延迟。在I/O时钟336的上升沿t1上,数据322的数据值“a”经由MUX 402的输出406被锁存器408所捕获。因为要求了门控414,或者说是“开启”,因此在输入404上来自于RX330的数据被选择用于由MUX402输出。(当相应的MUX选择输入以接收输入的数据流时,门控将在术语上被称为开启。尽管在图4的实施例中,这与一个“高”逻辑状态相关,但是应当明白其中开启的门控对应于一个“低”逻辑电平的替换实施例是在本发明精神和范围内。)相反地,门控428是负的。作为响应,MUX 416选择一个先前保持在锁存器422中的数据值,它通过MUX 416被反馈到锁存器422的D输入端。这样,保持在锁存器422中的数据值就多保留一个I/O时钟336周期,该时钟为锁存器408和322都提供了时钟信号,如结合图4A所描述的那样。
如图3所示,I/O时钟336从总线时钟306处获得。如图4B说明的那样,假定在启动时,总线时钟306集中在一个数据有效窗口中。在名为“Dynamic Wave Pipelined Interface Apparatus andMethod Therefor”的待审批申请中描述了总线时钟对中,此处作为参考。总线时钟306正如数据那样,在经过接口时经历一次延迟。在芯片304中总线时钟306的延迟可以比得上T1,这反映到I/O时钟336中,因此时钟336相对位于数据322的中心。
这样产生门控414以保证门控414的沿与I/O时钟336的下降沿相位相干。在I/O时钟336的沿t2,门控414处于下降沿t3。作为响应,MUX 402选择与MUX402的输入端412相连的锁存器408的输出410,用于在输出406上输出。因为门控414为负,于是就要求了门控428,由此MUX 416选择在输入端418上来自于RX 330的数据,用于在输出420上输出。这和锁存器422的D输入端相连。从RX 330接收的数据现在相当于数据322的数据值“b”。
在I/O时钟336的沿t4上,锁存器408和422锁存在它们各自的D输入端上的数据。在锁存器408中,这相当于先前保持的数据值即数据322的值a,然后它被多保持一个本地时钟416周期。锁存器422经由MUX 416锁存其D输入端上的数据值b到输出424。
在I/0时钟336的下一个跃迁t7上,数据值“c”被捕获。因为在沿t7上要求了门控414,因此数据322中的数据值c出现在MUX 402的输出端406上。因为作为门控414补码的门控428为负,因此数据值b被保持在锁存器422中。由于一个数据流在数据322上连续抵达,这样弹性设备332分别在锁存器408和422的输出端410和424上连续地产生两个数据流。如图4B所示,这两个数据流包含在数据422上抵达的输入数据流的交替部分,其有效期为两个本地时钟416周期。
通过与本地时钟416同步的方式从这两个数据流中交替地选择数据值,可以恢复该输入数据流的结构。选中一个本地时钟目标周期。本地时钟目标周期是数据由该本地时钟、例如图3和4中的本地时钟316捕获到一个目标锁存器中时所处的周期。通过分析来确定该目标周期。该目标周期必须迟于穿过接口的最坏情况的延迟时间。例如,在图4B描述的实施例中,对应于沿t8,目标周期已经设置为3个本地时钟316周期。如先前结合图1A中的参考时钟106描述得那样,该目标周期从由参考时钟310确定的零时基准开始计算。在图4A/B的双弹性实施例中,数据抵达可以比该目标周期早两个本地时钟周期。在这样一个实施例中,图3的目标周期单元339中包含一个二次分频电路。
在该目标周期设置下,根据本地时钟316,经由MUX 432,选择数据以捕获到目标锁存器430中。MUX432具有一对输入端,434和436。输入端434与锁存器408的输出端410相连,且输入端436与锁存器422的输出端424相连。根据选择控制343,MUX 422选择输出由锁存器408和422的输出端代表的这二个数据流中的一个。在图4B的实施例中,当选择控制343有第一逻辑状态“高”时,MUX432把在输入端434上的数据提供到锁存器430的D输入端,而且在图4B的实施例中,当选择控制343具有第二预定逻辑状态“低”时,在MUX 432输入端436上的数据被提供到锁存器430的D输入端。选择控制343的周期是本地时钟316周期的两倍,而且与本地时钟316相位同步,从而使选择控制343具有第一逻辑状态,而且在该目标周期上对中。因此,在图4B中,在本地时钟316的沿t8上,输出410上的数据值a经由MUX 432被连接到锁存器430的D输入端,而且由本地时钟316的沿t8进行锁存。在本地时钟316的下一个上升沿t9上,发送的数据流的下一部分被锁存到目标锁存器430中。选择控制343在相位上提前半个周期,因此具有第二逻辑状态,借此锁存器422的输出424经由MUX 432和锁存器432的D输入端相连。在沿t9上,锁存器422的输出端424上的数据值b被锁存到锁存器432中,然后数据值b出现在数据输出338上。在本地时钟316的后续周期中,弹性接口332通过在锁存器408的输出410与锁存器422的输出424之间进行交替选择,来恢复数据流225。
在数据能够穿过弹性接口322进行传送之前,必须对门控414(以及附随的补码、即门控428)进行初始化。因为穿过该接口的延迟能够有超过一个本地时钟周期的变化,必须用合适的相位对门控414进行初始化。如前所述,门控414的周期是I/O时钟336以及本地时钟316的两倍。门控414与I/O时钟316相位同步,从而使门控414的平顶部分以I/O时钟336的预选沿为中心,在图4B的实施例中,该沿为上升沿。
在本发明的一个实施例中,通过在接通电源或者重置时传送一个同步化(sync)模式,可以对门控414进行初始化。再次参考图3,作为对该数据处理系统重置或者通电的响应,要求初始化调整过程(IAP)模式信号340,借此MUX 328选择输出一个预定的同步模式。在本发明的一个实施例中,根据在ROM 216包含的BIOS指令,通过CPU 210可以要求IAP模式信号340。
在图4A说明的弹性接口单元332实施例中,如前所述,数据能够在一个两周期窗口内到达而不会产生同步问题。在图4A中的弹性接口单元332被称为具有双弹性。在IAP中,要求同步化模式是周期性的,而且其周期P等于或大于该弹性设备的弹性。这样,对图4B中的弹性接口单元332来说,一个适合的同步化模式将是在“1”和“0”之间交替的多个位,有一个初始位为"1"。下面将描述具有两个弹性以上的弹性接口实施例,该同步化模式也将进行相应的修改。例如,对一个具有N弹性的弹性接口(结合图8A/B讨论如下)来说,一个适合的模式将是一个初始位“1”、继之以N-1位的“0”,然后重复该模式。也可以使用其他的位模式。例如,做为选择,可以使用以上所述示例模式的位模式补码。
在设置门控414的相位时,当同步模式正被发送时可以对锁存器408的输出410进行采样。门控414用一个预选的相位进行初始化。对以上所述的、用于具有双弹性的弹性接口单元332的同步模式来说,如果在输出410检测到一个“1”,则门控414以及相伴的门控428被恰本地定相。否则,门控414以及相应的门控428的相位应该移动二分之一个I/O时钟336周期。如前所述,可以使用一个DLL产生门控414,在前面已引用过的、名为“Dynamic Wave PipelinedInterface Apparatus and Method Therefor”的待审批申请中公开了一个DLL的一个实施例,在此作为参考。
根据本发明原理的一个弹性接口、例如弹性接口300的操作,现在通过参考图5可以得到更进一步的理解。在图5中,芯片302象图3中那样和芯片304交换数据,另外还与芯片306交换数据。根据本发明的一个实施例,芯片302包含两个接口300,其中一个经由包含在芯片304内的一个接口300将芯片302连接到芯片304,而第二个将芯片302连接到芯片306,其中芯片306中也包含一个接口300。连接芯片302和304的路径502可以是一条快速路径,类似于在图1D中的路径154,具有一个延迟时间TF;且连接芯片302到芯片306的路径504可以是一条慢速路径,例如在图1D中的路径152,具有一个延迟时间TS。在根据现有技术的一个接口中,如果在路径502和504之间的延迟差别超过一个总线时钟周期,如先前所述,为了保持数据的同步化,将要求对路径502进行填充。然而,接口300包括弹性接口单元332用来调节路径502和504之间的延迟时间差别。如上文所述,通过设置芯片304和306中每一个弹性接口332的目标周期为同一周期,就可以保持芯片302、304和306之间的数据同步。
可以实现本发明的替换实施例。具有双弹性的接口单元332的一个替换实施例如图6A所示。如同在图4A中所示的弹性接口332实施例一样,在图6A所示的弹性接口232实施例包含MUX402和416以驱动锁存器408和422。然而,除了相当于图4A所示实施例中的锁存器430的锁存器630之外,图6A的接口单元232还包含一个第二捕获锁存器即锁存器628,由本地时钟316进行时钟控制。另外,在图6A的接口单元332实施例中,对应于图4A中的MUX432的输出MUX632,已经移动到该捕获锁存器的下游。
这降低了通过接口本身的延迟时间。锁存器628和630的D输入端分别与锁存器422和408的输出424和410相连。在锁存器628和630的D输入端上的数据由本地时钟316进行时钟控制进入到锁存器中。这样,数据在MUX 632之前由本地时钟316捕获。在选择控制343的控制下,通过经由MUX 632选择锁存器628和630的输出634和636中的一个,来恢复数据流322。这类似于图4A的实施例中输出MUX 432的动作,然而同图4A中的选择控制343相比,选择控制343相移了半个周期。在图6A接口322的实施例中,在本地时钟316的一个上升沿锁存该数据。然而,本领域的普通技术人员都应当明白假如其他的控制信号在相位上进行了适本地调整,替换实施例可以在一个下降沿锁存数据。例如,在一个其中锁存器628和630在本地时钟316的下降沿上锁存数据的实施例中,选择控制343将相移半个周期。
现在通过参考图6B所示的一个时序图,可以更进一步理解图6A中接口单元332实施例的操作。因为MUX 402和416,以及锁存器408和422,还有I/O时钟336和本地时钟316与图4A和4B中接口单元332的实施例相同,为了简洁起见,在图6B中所示的与那些结构相关的时序图部分将不再讨论。
集中注意图6B中与锁存器628和630,以及MUX 632有关的时序图部分,在本地时钟316的沿t8’上,数据值a被锁存到锁存器630的输出634上。相似地,在本地时钟316的沿t9’上数据值b被锁存到锁存器628的输出636上。为了使数据在目标周期出现在数据输出338上,选择控制343的上升沿必须延迟到本地时钟316的沿t9’,这和该目标周期相一致。这样,在选择控制343的沿t10上来自MUX632数据值a出现在数据输出338上。因此,选择控制343和本地时钟316相位同步,其平顶居中于本地时钟316的上升跃迁之间。相似地,数据值b在选择控制343的下降沿t11上出现在数据输出338上,而且此后数据流322在选择控制343的后续跃迁上继续被恢复。
另外,本发明可以实现具有其他预定弹性的弹性接口232实施例。这些可以包含半个周期的弹性。本发明一个具有1.5个周期弹性的实施例如图7A所示。数据322被连接到锁存器702和704的D输入端。锁存器702和704是“极性保持”,或者是“刷新”锁存器。这种锁存器还可以被称为“透明”锁存器。当锁存器702中的时钟(C)具有第一预定逻辑状态或电平时,在D输入端上的数据迅速流到输出端706。在该时钟从第一状态变换到一个预定的第二逻辑状态时,锁存器702锁存在D输入端上的数据,并且在输出端706上的数据被保持到时钟从第二状态到第一状态的后续变换为止。(在图7的实施例中,第一状态对应于一个“低”逻辑电平,而第二状态对应于一个“高”逻辑电平,由此转换包含一个上升沿。然而,具有相反逻辑状态的一个替换实施例也将在本发明的精神和范围内。)当锁存器704的时钟C具有第二逻辑电平时,它使其D输入端上的数据迅速流到输出端708。在该时钟从第二逻辑电平变换到第一逻辑电平上时,该数据被锁存,并且保持该数据到该时钟从第二逻辑电平变换到第一逻辑电平为止,在图7的实施例中第一逻辑电平为“低”。迅速流通特性允许数据立刻变得可用,而不需要等到一个锁存器被时钟控制为止,由此就实现了接口单元332的一个“低延迟-低弹性”实施例。
在图7A所示的弹性接口322实施例中,锁存器702和704由I/O时钟726进行时钟控制。图7A的弹性接口322是一个双倍数据速率(DDR)设备,其中在I/O时钟726的每个变换上,数据被锁存到锁存器702和704的一个中,而且I/O时钟726的周期是本地时钟即本地时钟314和本地时钟316、以及总线时钟306周期的两倍。总线时钟306置于一个宽为两个本地时钟周期的数据窗口的中心。
通过参考图7B所示的相应时序图,可以进一步理解图7A中的弹性接口单元332的实施例。当数据值a到达弹性接口单元332时,因为I/O时钟726在“平顶”752上为低,它就迅速流到锁存器702的输出端706。换句话说,数据值a在I/O时钟726的沿t1之前就出现在锁存器702的输出端706上。
数据部分a比变换t1超前四分之一个I/O时钟336周期,它相当于半个本地时钟316周期。如前所述,I/O时钟336源自于总线时钟,而且相对于启动时的总线时钟,相移了芯片之间路径的延迟时间。另外,I/O时钟336给定为一个超前四分之一周期的相位。在沿t1上,数据值a被锁存,并被保持一个本地时钟316周期。
相似地,当数据值b从RX 230到达弹性接口单元332时,因为I/O时钟716在平顶754为高,它就迅速流到锁存器704的输出端708。然后数据值b在I/O时钟716的下降沿t2上保持在输出端708上。数据值b保持一个本地时钟316周期。这样,数据值在锁存器702和704的输出端706和708上分别出现了1.5个本地时钟周期,这就是图7A所示弹性接口332的实施例的弹性。
由锁存器710和712、以及MUX 714在输出端338重构数据流332。由输出端706和708表示的这两个数据流分别被本地时钟316锁存到锁存器710和712里。数据在本地时钟316一个预定的沿(在图7的实施例中为上升沿)上被锁存,如前所述,目标周期可以设置为在数据值a的1.5个周期弹性内的任何时候发生。因此,依据图7B中的时序图,根据选择控制343数据值a在本地时钟316的沿t3上被锁存到锁存器710里,然后经由MUX 714切换到数据338上。根据选择控制343有第一预定值时从锁存器710中选出数据,而且当选择控制343具有第二预定值时从锁存器712中选出数据。在图7的实施例中,第一值为“高”且第二值为“低”,然而应当明白其他的预定值也在本发明的精神和范围内。在本地时钟316的沿t4上,根据选择控制343具有第二值,数据值b被锁存到锁存器712里,并且被切换到数据338上。如同在图7B中说明那样,通过经由MUX 714交替选择来自于锁存器710和712的输出,后续的数据值顺序地在输出端338上输出。
另外,根据本发明原理的弹性接口是可扩展的,借此通过增加控制和存储元件,可以增加弹性。在图8A中说明了具有一个N-1个总线时钟周期弹性的一个弹性接口实施例。接口单元32包含了N个MUX 802。每个MUX中的第一输入端704接收来自于RX 330的数据流322。第二输入端806接收由锁存器808-818中的相应一个输出的一个信号。锁存器808-818中的每一个都包含一个锁存器对。在锁存器808、812和816中,该锁存器对有一个该对第一个锁存器的内部输出以主-从的方式和该对第二个锁存器的内部输入相连。锁存器808、812和816从从属部分提供一个输出820到相应MUX 802的一个输入端806。锁存器808、812和816的从属部分在I/O时钟336的一个上升沿上锁存其D输入端上的数据。锁存器808、812、和816各自的D输入端分别与一个相应的MUX 802的输出端相连。锁存器810、814和818将来自于该锁存器对第一个的输出端822连接到相应MUX 802的输入端806。该锁存器对中的第一个是透明的,而且在I/O时钟336的一个“平顶”上,第一输入端828上的数据迅速流到输出端822。在每一个锁存器810、814和818中的输入端828都从该锁存器对的第二个连接到一个相应的输出端826。另外,该对的第二个的一个输入端830与相应的MUX 802的一个输出端相连。该锁存器对中的第二个也是透明的,并且在I/O时钟336的一个平顶上迅速流过数据。形成锁存器810、814和818的该锁存器对的第一个和第二个,在具有反向极性的I/O时钟336的平顶上迅速流过数据。
MUX802根据一个相应的门控信号,门控832-842,在输入端804和806上的信号之间进行选择。结合图8B所示的一个时序图对门控信号832-840作进一步讨论。
经由数据锁存器844,数据被本地时钟锁存,其中每个数据锁存器844从相应的一个锁存器808-818接收一个输出信号。数据由本地时钟316锁存到数据锁存器844里。锁存器808、812和816的输出端824提供给一个相应的数据锁存器844的D输入端。如前所述,输出824从透明的锁存器808、812和816的主要部分处获得。数据锁存器844的剩余部分在它们的D输入端上接收来自于锁存器对中的第二个的输出826的信号,其中该锁存器对形成相应的锁存器810、814和818。该锁存器对中的第二个也是一个透明的锁存器,它在一个与该锁存器对中的第一个迅速通过数据时的I/O时钟336的极性相反的一个极性上,迅速通过数据。
MUX 846选择多个保持在数据锁存器844中的信号中的一个用于输出。每一个数据锁存器844的一个输出与一个相应的输入、输入848-858中的一个相连。该信号在MUX 846的输出860上被输出到芯片,例如芯片302或者304中。MUX 846经由选择控制343在输入848-858中进行选择。选择控制343包含k个信号,其中2k等于N。
使用图8A中所示的电路来实现一个具有N倍弹性的替换实施例。通过将数据锁存器844的相应D输入端连接到一个相应的锁存器808、812和816的输出820上,以及连接到一个相应的锁存器810、814和818的输出826(而不是如图8A所示的输出824和822)上,就可以获得N倍弹性。其他图8A中的接口单元332的电路不用改变。
现在参考图8B,其中说明了用于图8A中所示的接口单元332的一个时序图。在该接口延迟T1之后,数据值a在数据322上到达数据流中,然后根据对提供给一个相应MUX 802的门控832的要求,由“平顶”862表示,数据值a穿过相应的MUX 802到达锁存器808的D输入端。在I/O时钟336的沿tx上,锁存器808保持数据值a,它在锁存器808的输出820上被反馈到相应的一个MUX802的输入806。在门控832的沿t2上,相应的MUX 802选择输入806上的信号,它有数据值a。在N-1个总线时钟306周期内,门控832为负,借此数据值a被保持在锁存器808的D输入端,因此也保持在锁存器808的输出824上。在门控832的变换t4使相应的MUX 802选择数据322上的数据流之后,数据值a被I/O时钟336的变换t3多保持一个总线时钟306周期,借此在I/O时钟336的沿t5上,在数据2上的第(N+2)个数据值被锁存到锁存器808里。在本地时钟316的沿t6上,数据值a被捕获到接收锁存器808的输出824的数据锁存器844里,然后出现在输出848上。数据值a在输出848上被保持N个总线时钟306周期。
在数据332中的下一个数据值,数据值b被类似地在与锁存器810相连的数据锁存器844中被保持N个总线时钟306周期。当数据值b到达单元332时,要求门控834,这由“平顶”864表示,并且在相应MUX 802的输入804上选择数据332。数据值b出现在锁存器810的输入830,并且由I/O时钟336的沿t7锁存,借此数据值b出现在锁存器810的输出826上。锁存器810的输出826被反馈到锁存器810的输入828。因为在沿t7之后I/O时钟336为负,锁存器10的输出826上的数据值b不能输出到锁存器810的输出822,其中输出822被反馈到相应MUX 802的输入806。在I/O时钟336的沿t8,数据值b被保持在锁存器810的输出822上。在门控834的沿t9上,相应的MUX 802切换并且选择输入806,用于将锁存器810的输出822上所保持的数据值b输出到锁存器810的输入830里。 然后数据值b不能输出到810的输出826,其中输出826反馈到锁存器810的输入828,并且数据值b继续反馈到接收门控信号834的相应MUX的输入806。这样,数据值b在锁存器810的输出826上保持总线时钟306的N+1个周期,一个时钟周期在门控834变换沿t10之后。
门控836相对于门控834在相位上延迟了一个I/O时钟336周期,而且类似地,每一个后续的门控信号838-842在相位上相对于该链中先前的门控信号都延迟了一个I/O时钟836周期。这样,每个后续的锁存器808-818存储数据332中后续的数据值,并且将该数据值保持N+1个总线时钟306周期。然后,在相应锁存器808-810中的每个数据值在每个本地时钟316周期上锁存到相应的数据锁存器44中。这样,在本地时钟316的沿t11上,数据值b锁存到相应的数据锁存器844中,并且出现在输出850上,然后同样地,在本地时钟316的沿t12上,数据值c被时钟控制,进入到它相应的数据锁存器844中,并且出现在输出852上。最后的数据锁存器844,与锁存器818相连,在本地时钟316的沿t13上锁存第(N+1)个数据值。
根据包含了k个信号的选择控制343,从MUX 846中输出数据。选择控制343的每个k信号都是周期性的。一个“第0个”信号,用S(0)表示,其周期为总线时钟306周期的一半。第(k-1)个信号周期为N个总线时钟周期的一半。按顺序在S(0)和S(N)之间的每个信号的周期是前一个信号周期的两倍。保存在锁存器844中的数据值,出现在MUX 846的一个相应输入848-858上,是根据选择控制343进行时钟控制,顺序地输出到数据输出860上。在具有一个N-1倍弹性的目标周期中,在选择控制343中的S(N)沿t14上输出数据值a。根据在选择控制343中的k信号的循环变换,顺序地输出剩余的数据值。尽管构成选择控制343的信号已经显示为在上升沿上相位同步,本领域的普通技术人员应当明白在一个替换实施例中可以使用相反的相位。
如先前结合图4在上文中所述的那样,在一个IAP期间,初始化图8中所示的单元332。对于一个具有N-1个弹性的实施例,对应于在图8中说明的单元332的实施例的弹性,一个适宜的初始化模式可以具有N-1个周期。如上所述,对于一个具有N弹性的替换实施例,同步模式可具有N个周期。在初始化期间,对于具有一个“1”、继之以多个“0”的一个同步模式,当在选择343中的信号被适本地排序时,在锁存器808中必须对“1”进行采样。
这样,提供了在一个数据处理系统中用以保持通过接口时的数据同步性的一种机构。接收的数据被捕获到多个存储元件中,并且在一个与芯片时钟同步的预定目标周期上,有选择地输入到接收芯片中。通过执行一个IAP动态地建立初始同步。本发明的机构提供了在延迟变化超过一个总线时钟的一个数据处理系统中的数据同步化。
权利要求
1.一个接口装置包含一个第一存储设备,可操作用于存储第一组数据值;一个第二存储设备,可操作用于存储第二组数据值;以及与所述第一和第二存储设备相连的电路,用于根据至少一个控制信号,顺序地从所述第一存储设备输出第一数据值、以及从所述第二存储设备输出第二数据值,其中所述第一和第二存储设备保持数据值持续一个预定数目的第一时钟周期。
2.如权利要求1所示的装置,其特征在于所述输出和第二时钟同步。
3.如权利要求2所示的装置,其特征在于所述第二时钟的周期等于所述第一时钟的周期。
4.如先前任一权利要求所述的装置,其特征在于所述第一和第二存储设备可操作用于接收一个包含多个数据值的数据流。
5.在先前任一权利要求所述的装置,其特征在于所述第一存储设备在第二时钟的第一预定沿上锁存数据,并且所述第二存储设备在所述第二时钟的第二预定沿上锁存数据。
6.如权利要求5所述的装置,其特征在于所述第二时钟源自于一个从一个发送设备所接收的时钟信号。
7.如先前任一权利要求所述的装置,进一步包含第一和第二选择电路,每个都有一个输出端分别与所述第一和第二存储设备的相应输入端相连;所述第一和第二选择电路中的每一个都有一个第一输入端,可操作用于接收一个数据流,而且都有一个第二输入端与所述第一和第二存储设备的相应输出端相连,其中所述第一和第二选择电路,根据第一和第二控制信号,可操作用于选择输出在所述第一和第二输入中的一个上的信号。
8.如权利要求7所述的装置,其特征在于所述第一和第二控制信号每一个的周期都是所述第一时钟周期的两倍;其中所述第二控制信号是所述第一控制信号的补码。
9.如权利要求7所述的装置,其特征在于所述第一和第二选择电路分别包含第一和第二多路复用器。
10.如权利要求1所述的装置,其中所述电路可操作用于有选择地顺序输出第一和第二数据值,该电路包含一个多路复用器(MX),它具有一个第一输入端可操作用于接收所述第一数据值,以及一个第二输入端可操作用于接收所述第二数据值,其中所述MX根据一个选择控制信号选择输出所述第一和第二数据值中的一个,其中选择控制信号的周期是所述第一时钟周期的一个预定倍数。
11.如权利要求10所示的装置,其特征在于所述选择控制信号的所述周期是所述第一时钟周期的两倍。
12.如权利要求1所述的装置,其特征在于所述电路可操作用于有选择地顺序输出第一和第二数据值,该电路包含具有一个输入端的第一锁存器,可操作用于接收所述第一数据值;具有一个输入端的第二锁存器,可操作用于接收所述第二数据值;以及一个多路复用器(MX),其第一输入端与所述第一锁存器的一个输出端相连,其第二输入端与所述第二锁存器的一个输出端相连,所述MX根据一个选择控制信号选择输出所述第一和第二数据值中的一个,其中选择控制信号的周期是所述第一时钟周期的一个预定倍数,而且其中所述第一和第二锁存器在所述第一时钟的第一和第二预定电平上锁存数据。
13.如权利要求12所述的装置,其特征在于所述第一存储元件包含第三锁存器,而且所述第二存储元件包含第四锁存器,所述第三锁存器是一个透明锁存器,它在第二时钟的第一预制电平上保持数据,以及所述第四锁存器是一个透明锁存器,它在与所述第一预定时钟电平互补的电平上保持数据。
14.如权利要求13所述的装置,进一步包含第三和第四MX,其输出端分别与所述第三和第四锁存器相连,所述第三和第四MX具有第一输入端可操作用于接收一个数据值流,以及第二输入端分别与所述第三和第四锁存器的一个输出端相连,所述第三MX可操作用于根据第一门控信号在所述第一和第二输入之间进行选择,以及所述第四MX可操作用于根据与所述第一门控信号互补的第二门控信号在所述第一和第二输入之间进行选择。
15.一个接口装置包含M个第一多路复用器(MX),每一个都具有第一输入端可操作用于接收一个数据流,以及一个输出端;M个第一锁存器,每一个都具有一个输入端与相应的第一MX的一个输出端相连,每个所述第一锁存器都具有第一输出端,以及第二输出端与所述相应的第一MX的一个第二输入端相连;M个第二MX,其每一个都具有第一输入端可操作用于接收所述数据流,以及一个输出;M个第二锁存器,每一个第二锁存器都包含一个锁存器对,其中所述对的第一个的一个输入与一个相应的第二MX的输出端相连,还有一个输出端,而且所述对的第二个有一个输入与所述对的所述第一个的所述输出端相连,以及一个输出端与所述相应的第二MX的一个第二输入端相连;多个第三锁存器,具有一个输入端与一个相应的所述第一锁存器的所述第一输出端相连,以及一个输出端与一个第三MX的一个相应输入端相连;多个第四锁存器,一个输入端与所述锁存器对的所述第一个的所述输出端相连,以及一个输出端与所述第三MX的一个相应输入端相连,所述第三MX用于根据一个选择控制输出一个数据值列的操作,所述选择控制包含k个信号,其中所述k个信号的第一信号的半周期等于一个第一时钟周期,其中所述第一和第二锁存器中的每一个根据第二时钟信号进行操作,第二时钟信号的半周期等于所述第一时钟周期,其中所述第三锁存器中的每一个根据第一时钟进行操作。
16.如权利要求15所述的装置,其特征在于所述第一时钟包含一个本地芯片时钟,以及所述第二时钟包含一个输入/输出(I/O)时钟。
17.如权利要求15所述的装置,其特征在于2(k-1)等于M。
18.一种连接集成电路设备的方法,包含以下步骤在第一存储元件中存储第一组数据值,其中所述第一组中的每个数据值都被存储一个预定数目的第一时钟周期;在第二组存储元件中存储第二组数据值,其中所述第二组中的每个数据值都存储一个预定数目的第一时钟周期;以及根据至少一个控制信号,顺序地从所述第一存储设备中输出第一数据值以及从所述第二存储设备中输出第二数据值。
19.如权利要求18所述的方法,其特征在于所述第一组和第二组数据值包含多个在一个数据流中收到的数据值。
20.如权利要求18所述的方法,其特征在于所述顺序地输出第一数据值的步骤包含如下步骤连接第一选择电路到所述第一和第二存储设备;向所述选择电路提供一个控制信号,其中所述控制信号的周期是所述第一时钟周期的预定倍数。
21.如权利要求20所述的方法,进一步包含步骤在第一和第二选择电路的一个输入端上接收一个数据流;根据第一选择信号,向所述第一存储元件输出来自于所述第一选择电路的所述第一组数据值中的每一个数据;根据第二选择信号,向所述第二存储单元输出来自于所述选择电路的所述第二组数据值中的每一个数据;
22.如权利要求21所述的方法,其特征在于所述第一和第二选择信号是互补信号。
23.如权利要求21所述的方法,其特征在于所述第一和第二选择信号的周期是所述第一时钟周期的两倍。
24.如权利要求21所述的方法,其特征在于所述第一和第二选择信号的周期是所述第一时钟周期的预定倍数。
25.如权利要求21所述的方法,进一步包含步骤初始化所述的第一和第二选择信号。
26.如权利要求25的方法,其特征在于所述初始化所述第一和第二选择信号的步骤,包含如下步骤发送一个预选的的数据流;以及根据所述预选数据流调整所述第一和第二选择信号中的每一个的相位。
27.如权利要求26所述的方法,其特征在于所述调整所述选择信号中的每一个的所述相位的步骤进一步包含选择一个相位的步骤,其中在所述数据流中的第一预定数据值被捕获到所述第一存储元件中,而且第二预定数据值被捕获到所述第二存储元件中。
28.如权利要求26所述的方法,其特征在于所述数据流包含一个同步化(同步)模式。
29.一个数据处理系统,包含第一数据处理装置;以及第二数据处理装置,经由一个弹性接口与所述第一数据处理装置相连,所述弹性接口包含权利要求1-14任一个中的装置。
全文摘要
实现了一种弹性接口装置和方法。该弹性接口包含多个存储单元用以一个存储数据值流,其中每个存储单元顺序地存储各个数据值组的成员。每一个数据值被存储一个预定数目的本地时钟周期。选择电路可以与存储单元相连,从数据流中选择相应的数据值以存储到相应的存储单元中。在本地时钟的目标周期上,数据以与本地时钟同步的方式从每个存储单元中顺序地输出。
文档编号H04L7/00GK1343335SQ0080468
公开日2002年4月3日 申请日期2000年3月3日 优先权日1999年3月5日
发明者D·M·德雷普斯, F·D·费莱奥洛, K·C·高尔 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1