CN101213534B - 用于对延时不敏感的fifo信令协议的方法和设备 - Google Patents

用于对延时不敏感的fifo信令协议的方法和设备 Download PDF

Info

Publication number
CN101213534B
CN101213534B CN2006800243721A CN200680024372A CN101213534B CN 101213534 B CN101213534 B CN 101213534B CN 2006800243721 A CN2006800243721 A CN 2006800243721A CN 200680024372 A CN200680024372 A CN 200680024372A CN 101213534 B CN101213534 B CN 101213534B
Authority
CN
China
Prior art keywords
data
territory
signal
fifo
memory storage
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
Application number
CN2006800243721A
Other languages
English (en)
Other versions
CN101213534A (zh
Inventor
肯尼思·艾伦·多克塞尔
维克托·罗伯茨·奥格斯堡
詹姆斯·诺里斯·迪芬德尔费尔
杰弗里·托德·布里奇斯
罗伯特·道格拉斯·克兰西
托马斯·安德鲁·萨托里乌斯
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN101213534A publication Critical patent/CN101213534A/zh
Application granted granted Critical
Publication of CN101213534B publication Critical patent/CN101213534B/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
    • G06F13/38Information transfer, e.g. on bus
    • 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/12Indexing scheme relating to groups G06F5/12 - G06F5/14
    • G06F2205/126Monitoring of intermediate fill level, i.e. with additional means for monitoring the fill level, e.g. half full flag, almost empty flag

Abstract

将来自以第一数据速率操作的源域(311)的数据传送到以不同数据速率操作的另一域(313)中的FIFO(319)。所述FIFO(319)在将数据传送到数据宿之前缓冲数据以便进一步处理或存储。源侧计数器(325)跟踪所述FIFO中的可用空间。在所揭示实例中,初始计数器值对应于FIFO深度。所述计数器(325)响应于来自所述源域(311)的数据就绪信号而无延迟地递减。所述计数器(325)响应于来自所述数据宿域(313)的从所述FIFO(319)读出数据的信令而递增。因此,递增经受域之间的信令延时。所述源(315)可在所述计数器(325)指示所述FIFO(319)满时发送又一个数据拍。从所述源连续发送最后的数据拍,直到指示FIFO位置变为可用为止,从而有效地提供一个或一个以上FIFO位置。

Description

用于对延时不敏感的FIFO信令协议的方法和设备
技术领域
本发明主旨涉及用于信令和控制的协议,涉及经由实施此类信令协议的先入先出(FIFO)存储装置和设备进行数据传送。 
背景技术
先入先出(FIFO)存储装置用于涉及在不同域之间进行数据传送的处理器和通信应用,通常其中所述域可以不同数据速率操作。尽管数据速率在域之间不同或常常变化,但域之间的信号可相对于同一基础时钟频率而定时(即,同步),或相对于不同基础时钟频率而定时(即,异步)。在同步应用中,由FIFO提供的缓冲补偿了两个域的数据速率的差。在异步应用中,由FIFO提供的缓冲补偿了两个域的数据速率和时钟频率两者的差。在任一情况下,缓冲均有助于避免由于在接收域无法处理数据的时间或速度下的数据传送带来的数据损失,和/或避免因为接收域期望并准备好接收额外数据而发送域仍在传送前一数据所带来的数据复制。 
然而,多数FIFO实施方案受到实施FIFO缓冲器的存储器或寄存器的有限大小或深度的限制。举例来说,如果当FIFO存储装置已经装满等待传送到接收域中的数据宿的数据时发送域发送更多数据,那么数据仍将丢失。已开发各种技术以将关于FIFO的填充水平和/或写入状态的信息从接收域或数据宿域馈送到发送或源域。然而在此种技术中仍需要进一步改进。 
发明内容
计数器跟踪FIFO中可用的空间,且源侧使用计数来控制数据传送。为了增强传送控制,计数器实施于源侧而FIFO实施于接收器侧。计数器响应于源侧上的信号,所述信号表示用于传送的数据的就绪状态,例如新数据已载入源侧的寄存器中并可被FIFO存储装置所用。因为计数器在源侧,所以在接收和响应此信号时不会引起任何传播延迟(即,当前循环内的延迟)或延时(即,一个或一个以上循环的延迟)。计数器还响应于(例如)当数据从FIFO存储装置输出且清出FIFO存储装置中的空间时发送的信号,所述信号表示FIFO存储装置中的空间变为可用。然而,此稍后的信号是从数据宿域发送到源域,且计数器操作经受在域之间传送信号中引起的任何延时。 
示范性方法使得可实现在以第一数据速率操作的源域与以不同于所述第一数据速率的第二数据速率操作的数据宿域之间经由所述数据宿域中的先入先出(FIFO)存储装置传送数据。所述方法要求当源有数据准备传送时,将数据载入所述源域中的寄存器以使所述数据可被所述数据宿域使用,并提供数据就绪信号。在此实例中,响应于所述数据就绪信号而递减维持在所述源域中的计数器中的表示所述FIFO存储装置中可用空间的值。所述方法还包含基于所述数据就绪信号向所述数据宿域发出数据就绪状态的信号。一旦在所述数据宿域中接收到所述数据就绪状态的信令,就启动所述FIFO存储装置以将所述可用数据从所述源域中的寄存器载入到所述FIFO存储装置中。在某个时点,将数据从所述FIFO存储装置输出到数据宿,因此清出所述FIFO存储装置中的空间。所述方法还要求向所述源域中的所述计数器发出清出了所述FIFO存储装置中的空间的信号。响应于接收到此信令,计数器递增表示所述FIFO存储装置中的可用空间的值。响应于维持在所述源域中的所述计数器中的表示所述FIFO存储装置中可用的空间的值,控制将就绪数据载入所述源域中的所述寄存器中以使所述数据可被所述数据宿域使用。 
揭示两种不同的信令技术或协议。一种技术包含向数据宿域中的寄存器发送数据就绪脉冲信号。尽管每一脉冲由单一循环组成,但数据宿域中的寄存器保持脉冲,并提供连续的就绪指示,直到在将新数据载入FIFO存储装置中完成之后清除为止。 
另一揭示的技术利用“乒乓”信令。其要求将信令寄存器状态从先前有效数据就绪状态改变为交替有效数据就绪状态。本质上,寄存器在新的数据拍连续可用于传送时输出在所述两个有效数据就绪状态之间的交替(乒乓)。数据宿侧的多路复用器(MUX)或类似物响应于两个交替状态之间的每一转变而指示新数据拍就绪。数据宿侧的控制元件使用来自MUX的此数据就绪指示来控制对FIFO的输入。 
用于传送数据的方法的另一实例涵盖在源域与数据宿域之间传送的多个可能重叠的循环。通常在多个时钟循环内发生的每一传送循环均要求:将数据从源载入所述源域中的寄存器中;向所述数据宿域发出数据就绪的信号;将所述数据从所述源域中的所述寄存器载入所述数据宿域中的先入先出(FIFO)存储装置中;将数据从所述FIFO存储装置输出到数据宿装置并在所述FIFO存储装置中为数据清出空间;以及向所述源域发出数据输出和清出所述FIFO存储装置中的空间的信号。响应于每次将数据载入所述源域中的所述寄存器中,以第一方式修改(例如递减或递增)维持在所述源域中的计数值。响应于每次向所述源域发出清出所述FIFO存储装置中的空间的信号,以相反的方式修改(例如递增或递减)所述计数值。在连续的传送循环中,控制将数据从所述源载入所述源域中的所述寄存器中是基于所述计数器的值的当前状态。将数据从源寄存器载入FIFO中的步骤还可包含通过一个或一个以上中间寄存器传送数据和就绪信号,其通常 将在从源寄存器向FIFO的传送无法在单一时钟循环中实际完成时进行。 
用于在域之间传送数据的方法的又一实例包含许多步骤的重复,其包含:将数据从源载入所述源域中的寄存器中,并使所述数据可被所述数据宿域使用;当所述数据宿域中的先入先出(FIFO)存储装置中的空间可用时,将所述数据从所述源域中的所述寄存器载入所述FIFO存储装置中;以及将数据从所述FIFO存储装置输出到数据宿装置以在所述FIFO存储装置中为数据清出空间。此方法还包含维持所述源域中表示所述FIFO存储装置中的可用空间的计数。响应于每次将数据载入所述源域中的所述寄存器中并响应于从所述数据宿域发出每次清出了所述FIFO存储装置中的空间的信令来维护所述计数。对于将数据载入源域中的寄存器中的步骤的每一重复,存在基于所述计数的当前状态控制将数据从所述源载入所述寄存器中的相关步骤。而且,在所述计数指示所述FIFO存储装置充满的情况中,所述方法允许将下一可用数据拍载入所述源域中的所述寄存器中并保持所述数据拍,使得所述数据拍连续可被所述FIFO存储装置使用,以便在空间变为可用时载入所述FIFO存储装置中。 
还揭示使用这些或类似控制和信令技术在域之间传送数据的特定设备。此设备的实例可能包含源域中的读取数据寄存器,其用于从源接收数据并提供所接收数据以用于传送到所述数据宿域。数据宿域中的先入先出(FIFO)存储装置接收来自所述读取数据寄存器的数据以用于传送到数据宿。所述设备还包含源域中的计数器。所述计数器响应于将数据载入所述读取数据寄存器和从所述FIFO存储装置卸载数据。维持在计数器中的值表示所述FIFO存储装置中的可用空间。所述设备进一步包含源域中的控制装置,其用于控制响应于所述计数值而将数据载入所述读取数据寄存器中用于传送到所述数据宿域。 
在一个方面中,一旦所述计数器中的计数值指示所述FIFO存储装置充满,那么所述控制器就允许将下一可用数据拍载入所述读取数据寄存器中。读取数据寄存器保持所述数据拍,使得所述数据拍连续提供到所述FIFO存储装置,以便在空间变为可用时载入所述FIFO存储装置中。 
在另一方面中,所述设备包含信令装置,其用于在读取数据寄存器中的数据用于传送到FIFO存储装置时向数据宿域发出信号以控制FIFO存储装置的数据接收。揭示适当信令技术的若干实例。 
在随后的描述中将部分陈述目的、优点和新颖特征,且所属领域的技术人员在检视以下内容和附图之后或可通过实例的产生或操作而了解所述目的、优点和新颖特征的一部分。通过实践或使用所附权利要求书中特定指出的方法、手段和组合,可实现和获得 本发明教示的目的和优点。 
附图说明
附图图式根据本发明教示,仅通过实例而不是限制来描绘一个或一个以上实施方案。图式中,相同参考标号指代相同或类似元件。 
图1是在域之间经由先入先出(FIFO)缓冲器传送数据的元件以及用于信令和控制数据交换的元件的功能框图。 
图2(A)到2(C)是用于理解图1系统中的数据交换的时序图。 
图3是在域之间经由先入先出(FIFO)缓冲器传送数据的元件以及稍微不同的一组用于信令和控制数据交换的元件的功能框图。 
图4(A)和4(B)是用于理解图3系统中的数据交换的时序图。 
具体实施方式
在以下具体实施方式中,借助于实例陈述许多具体细节以便提供对相关教示的详尽理解。然而,所属领域的技术人员应了解,可在没有这些细节的情况下实践本发明的教示。在其它实例中,以相对高的层次描述而不是详细描述众所周知的方法、程序、组件和电路,以便避免不必要地使本发明教示的各方面模糊。 
本文揭示的技术涉及用于有关向先入先出(FIFO)存储装置传送和从FIFO存储装置传送数据的信令和控制的协议,以及使用这些协议的设备。现详细参考附图中说明且下文论述的实例。图1说明实施有关FIFO的信令协议的系统的第一实例。 
所说明的系统包含两个不同域中的元件,所述两个域为期望发送数据的源域11和希望接收数据的数据宿域13。本质上,由数据源15一般表示的域11中的元件具有可用数据,且由数据宿17一般表示的域13中的元件需要接收所述数据以用于进一步处理、存储等。 
所述两个域通过由虚线D-D表示的域边界而分隔。两个域可为由一边界区分隔的单一半导体芯片的不同区,例如一处理器芯片的不同核心部分。不同域也可为不同的芯片,或经由布线、通过一系列一个或一个以上寄存器或其它接口装置连接的不同装置,或经由局域网或广域网通信的两个单独系统。两个域中电路的操作可相对于同一基础时钟频率而定时(即,同步),或相对于不同基础时钟频率而定时(即,异步)。 
为了便于论述,假定两个域同步且表示越过边界直接连接在一起的紧密靠近的元件,例如一处理器芯片的越过芯片边界区互连或耦合在一起的两个区段。所述两个区段的分隔可为物理的,例如芯片的两个单独部分或区域,或该分隔可为纯逻辑的,即只是 处于以第一域的数据速率操作的组件与以第二域的数据速率操作的组件之间。 
因此,两个域的数据速率不同。源域11中的元件以一个数据速率操作,而数据宿域13中的元件以另一略微不同的数据速率操作。数据宿域13的数据速率且因此数据宿装置17可能慢于或快于域11中的源15的数据速率。而且,数据速率且因此数据速率的差可随时间变化,例如随着源15和数据宿17的处理操作变化而变化。在示范性时序图(图2(A)到2(C))中,数据宿数据速率略微慢于源数据速率。尽管在实例中时钟速率相同,但使用所属领域的技术人员已知的技术,当时钟不同时仍可获得益处。 
参看图1,为了补偿越过边界D-D的域11与13的数据速率差,数据宿域13包含先入先出(FIFO)存储装置19,其本质上用于缓冲从源域11接收的数据。该缓冲补偿了两个域11与13的数据速率的差,避免由于在接收域无法处理数据的时间或速度时的数据传送带来的数据损失,和/或避免因为接收域13期望并准备好接收额外数据而发送域11仍在传送前一数据所带来的数据复制。 
可在各种各样的物理结构(例如,寄存器或存储器)中的任一者中实施FIFO存储装置19。为了论述目的,方便地将FIFO 19考虑为接收到的数据移动穿过的寄存器系列或堆栈。然而,FIFO装置常常利用存储器并通过适当操纵在读取和写入操作期间使用的存储器寻址来提供先入先出操作。当将新的一拍数据(在此实例中为128字节)载入或写入FIFO存储装置19时填充一个寄存器或位置。当将一拍数据从FIFO存储装置19卸载或读出到数据宿17时清出一个寄存器或位置。 
在源或发送侧11,数据源15将一拍数据(在此实例中为128位的数据)供应到寄存器21(有时称为读取数据寄存器)。在实例中,将寄存器21指定为读取数据(ReadData)寄存器。ReadData寄存器21保持所述128位的数据并在线上提供所述数据位以用于将数据越过边界D-D传送到FIFO存储装置19的输入。尽管图中未图示,但在读取数据寄存器之后和FIFO之前可存在额外的逻辑。当寄存器21保持新的一拍(128字节)数据时,数据在线上到被FIFO存储装置19的输入使用。然而,当新的一拍数据第一次载入寄存器21中时,在数据出现于数据宿域13中的FIFO存储装置19的输入处之前存在一些传播延迟。 
FIFO控制装置23控制到达和通过ReadData寄存器21的数据流。FIFO控制装置23是有限状态机。所述状态机可实施为可编程处理器,但通常由用于响应于特定输入而产生期望输出,即为实施特定的源侧控制算法的电路和/或逻辑块形成。当源15有新数据要发送时,如果如寄存器使用计数器25指示,FIFO存储装置19中存在可用于最后一拍数据的空间,那么FIFO控制装置23促使ReadData寄存器21提供新数据。计数器 的范围或初始值对应于FIFO的深度。因此,控制装置23可通过检查计数器的状态,例如计数是否仍不为负(无空间可用)来确定FIFO中是否存在可用空间。如下文进一步论述,有利的是计数器25是源域11中的元件。尽管图示为一单独元件,但计数器25可集成为用作FIFO控制装置23的状态机的一部分。 
当FIFO控制装置23促使ReadData寄存器21提供新数据以用于输入到FIFO存储装置19时,FIFO控制装置23通过产生在实例中称为读取数据就绪(ReadDataReady)信号的就绪脉冲来向数据宿域13发信号。此信号通常是针对单一时钟循环宣告的脉冲,此意味着其并非在数据由ReadData寄存器21保持可用的时间内保持为高(或低)的状态信号。在数据宿域中,将ReadDataReady脉冲信号施加到在示范性图中指定为就绪(Rdy)寄存器的寄存器27。当寄存器27接收到就绪脉冲时,其提供一状态信号,表示数据准备好传送到数据宿域13中的FIFO控制装置29。寄存器27维持就绪状态(保持脉冲),直到由FIFO控制装置29清除为止。 
在数据宿域13中,FIFO控制装置29是另一有限状态机。所述状态机可实施为可编程处理器,但通常由用于响应于特定输入而产生期望输出,即为实施特定的数据宿侧控制算法的电路和/或逻辑块形成。FIFO控制装置29(例如)将“写入”和“读取”信号提供到FIFO存储装置19以控制到达FIFO存储装置19的输入(写入)和来自FIFO存储装置19的输出(读取)。读取功能清出空间以接收新数据。如所提及,寄存器27响应于来自源域控制装置23的就绪脉冲而将就绪状态信号提供到FIFO控制装置29。如果FIFO存储装置19中有空间可用于接收就绪数据,那么控制装置29产生写入信号,促使FIFO存储装置19接受来自源域11中ReadData寄存器21的数据输入。FIFO控制装置29在其产生写入信号时,即在其指示FIFO存储装置19接受来自源的一拍数据(128位)时,对就绪状态寄存器27定时(即,基于ReadDataReady信号的值使其更新)。 
如所说明,用作ReadDataReady信号的脉冲使计数器25递减,指示FIFO存储装置19中少了一个寄存器位置。在此方面,计数器25响应于同一域11中产生的就绪脉冲而递减,而对于两个域11与13之间的信号传送没有任何延迟或延时。来自数据宿侧FIFO控制装置29的读取信号指示FIFO存储装置19将数据从其寄存器位置之一输出到数据宿17并清出装置19中的所述位置。因此,从数据宿域13越过边界D-D供应读取信号的脉冲以递增计数器25。 
在控制装置29发出读取信号与在源域11中计数器25处的作为FIFO条目空闲(FIFOentry free)指示的相应信号的出现之间将存在一些延时。信令延时可能是由于穿过芯片发送信号所需的时间。然而,在读取信号与FIFO条目空闲之间可存在额外的状态由路, 在图中由延迟/时序元件28一般性表示。尽管在数据宿域13中展示,但电路28可物理存在于所述域中的一者或两者中。通常为一个或一个以上触发器的额外电路确保域之间的边界D上的适当的信号电平和时序对准。然而,额外电路28将对控制装置29发出读取信号与在计数器25处作为FIFO条目空闲指示的相应信号的出现之间的延时增加一个或一个以上循环的延迟。尽管为了方便而未图示,但所属领域的技术人员将认识到,如果提供这种额外电路,那么在两个域之间的其它线(例如,ReadData线与ReadDataReady线)上将提供类似的延迟/时序元件。 
计数器25将FIFO空闲空间计数供应到源域11中的FIFO控制装置23,以供其对越过边界D-D传输新数据的确定。通过在每次数据可被FIFO 19使用时递减计数且在每次清出一位置时(在将数据读出FIFO 19时)递增计数,计数器25的值跟踪FIFO存储装置19中可用或空闲的空间的量(寄存器位置的数目)。然而,因为计数器25在源域11中,所以递减稍微超前于ReadDataReady信号的接收以及数据宿域13中对其的响应。在越过边界D-D将脉冲信号传送到寄存器27时存在某一延迟或延时。相反地,由于在越过边界D-D传送读取信号中的延迟或延时,源域11中计数器25的递增稍微落后于或拖后于从数据宿域13中的FIFO存储装置19读取数据。 
当源初始具有可用于传送到数据宿17的数据时,FIFO控制装置23也响应于由数据源15设定的一位寄存器31中的数据有效性旗标(V)。换句话说,源15设定寄存器31中的旗标V以通知FIFO控制装置23:存在有效的新数据可用于载入到ReadData寄存器21中。FIFO控制装置23将时钟(启用)信号提供到所述一位寄存器以用作数据有效性旗标(V)31。当数据成功传送到数据宿域中的FIFO 19时,FIFO控制装置23提供时钟(启用)信号以装载寄存器31,且因此提供有效性旗标(V)的状态。在操作中,将源有效位从寄存器31发送到源FIFO控制装置23,以告知此FIFO控制装置23:数据准备好发送。当数据已发送时从寄存器31清出所述位,除非新数据同时从源15移入。以此方式,FIFO控制装置23控制寄存器31中的V旗标以允许源15在计数器25指示存在可用于新的一拍数据的空间时设定旗标(并向ReadData寄存器21输入新的一拍数据)。 
为了解图1系统中的数据传送,参看图2(A)到2(C)中描绘的简单时序图考虑系统操作的特定时序可能有帮助。每幅图中的顶部行提供时钟循环的编号,且在下一行中展示时钟的脉冲。在实例中,时钟在两个域中是相同的。第三行表示进入ReadData寄存器21的数据,且第四行表示ReadDataReady信号(信号图中简化为DataRdy)。 
现考虑图2(A)作为第一实例。在此实例中,为了简单,FIFO由单一行(Fifo[0]) 组成。计数(第五行所示)表示可发送的数据拍的数目。计数以FIFO位置的数目加一开始。此额外的拍表示可保持“运行中”的数据(ReadData寄存器中)。零的计数指示需要从前一循环保持源数据。因此,在此一循环中不能宣告DataReady信号。由于图2(A)的实例仅具有一个FIFO位置,因此初始将计数设定为2。 
在循环2中,当数据Q0首先出现于ReadData寄存器21中时,FIFO控制装置23首先宣告ReadDataReady信号(DataRdy)。在下一循环中,因为其已接收ReadDataReady信号,所以计数器将其对可用的FIFO缓冲器位置的计数递减1。在实例中,在图的第五行中,计数在第三循环中降到1。 
为此实例的论述假定在FIFO中有空间可用。响应于循环2中的ReadDataReady信号,FIFO接受第一拍数据Q0并将其移动到下一循环(即,循环3)中的行Fifo[0]。同时在此实例中,数据宿就绪且在此循环中接受所述数据拍(图的底部行),因此FIFO控制装置29宣告读取信号(图中倒数第二行)以允许将所述数据拍从FIFO读出到数据宿中。 
在此第一实例中,系统在域之间展现单一循环的延时。由于域之间的延时,来自FIFO控制装置29的读取信号在下一(第四)循环中到达计数器,如图1所示的FIFO条目空闲信号或图2(A)中的箭头。此信号表示从FIFO清除条目,这通常将引起计数器递增。然而,新的一拍数据在同一循环中也可用,如继续的ReadDataReady信号指示。响应于ReadDataReady信号的递减抵消响应于读取信号的递增偏移,因此计数保持于1(如计数行中的阴影所示)。以类似方式,计数在循环11中保持于1,即只要新数据变为可用且正从数据宿域中的FIFO读取数据便保持于1。 
在循环10中,将最后一拍数据Q8载入ReadData寄存器,且ReadDataReady信号(DataRdy)保持为高。然而在循环11中,当所述数据拍移动到FIFO时,没有新的数据拍可用。控制装置23解除宣告ReadDataReady(图2(A)中的DataRdy)信号。在下一循环中,当来自控制装置29的读取信号到达计数器时,计数器递增(没有相应递减的需要,因为没有新数据可用)。在此简单实例中,在最后数据拍已通过FIFO移动到数据宿之后,计数在循环12中返回直到2。 
图2(B)展示一类似实例的时序,其中FIFO深度为三行(位置Fifo[0]、Fifo[1]和Fifo[2]),且在两个域之间的信令上存在两个循环的延时,如额外的FIFO条目空闲行所表示。额外的延时可能是由于在来自控制装置29的读取信号与计数器25的FIFO条目空闲信号输入之间包含额外的状态电路28,例如触发器。鉴于相似性,所属领域的技术人员将了解由此图中所示的信令图表示的操作。 
图2(C)是类似于图2(A)的另一单一循环延时实例,然而在图2(C)中FIFO深度为三行(位置Fifo[0]、Fifo[1]和Fifo[2])。而且,图2(C)展示数据宿的读取较慢且因此数据移动通过FIFO的行较慢。再一次,图的顶部行提供时钟循环的编号,且下一行中展示时钟的脉冲。第三行表示进入ReadData寄存器21的数据。注意到,当在源处数据可用且在FIFO中空间可用时,例如在循环2、3和4中,数据在一个循环中移入ReadData寄存器并在下一循环中从寄存器移出到FIFO。举例来说,数据拍Q0、Q1和Q2在寄存器中仅驻留一个循环。然而当数据在ReadData寄存器中,但在FIFO中空间不可用时,一数据拍在寄存器中保留两个或两个以上循环。在实例中,以Q3开始的数据拍在寄存器中驻留至少两个循环。 
再一次,计数(第五行所示)表示可发送的数据拍的数目。计数以FIFO位置的数目加一开始,即对于图2(C)的三行FIFO实例来说为4。此额外的拍表示可在ReadData寄存器中保持“运行中”的数据。零的计数指示需要从前一循环保持源数据,如寄存器中将以Q3开始的每一数据拍保持至少两个循环所表示。再一次,在计数为0时的循环中不得宣告DataReady信号。 
如所提及,在此实例中,FIFO由三行组成,因此初始将第五行所示的计数设定为4。在循环2中,当数据Q0首先出现在寄存器21中时,FIFO控制装置23首先宣告图的第四行所示的ReadDataReady信号(DataRdy)。在下一循环(循环3)中,因为其已接收来自源域控制装置23的ReadDataReady信号,所以计数器25将其对可用的缓冲器位置的计数递减1。在实例中,在图的第五行中,计数在第三循环中降到3。初始地,FIFO行为空,因此第一数据拍可移入FIFO并在第三循环中直接移动到FIFO的底部行,即移入行Fifo[0]。数据宿未准备好接收所述数据,直到稍后某个时间为止(例如循环6中),如图的底部所示。因此,Fifo[0]将第一数据拍Q0保持几个循环。 
然而在循环3中,第二数据拍Q1移入ReadData寄存器,且源侧控制装置23保持ReadDataReady(DataRdy)信号为高。由于计数器仍未从数据宿域接收到读取或FIFO条目空闲信号,因此在此情况下计数器在循环4中再一次将计数递减到值2。在实例中此点处,FIFO行中的两行为空,因此第二数据拍可移入FIFO并在第四循环中直接移动到FIFO的倒数第二行,即移入行Fifo[1]。数据宿仍未准备好接收数据,直到稍后某个时间为止(例如循环6中),如图的底部所示。因此,Fifo[1]将第二数据拍Q1保持几个循环。 
在循环4中,第三数据拍Q1移入ReadData寄存器,且源侧控制装置23保持ReadDataReady(DataRdy)信号为高。再一次,计数器在下一循环中仍未从数据宿域接 收到读取或FIFO条目空闲信号,因此在此情况下在循环5中计数器将计数进一步递减1而到达值1。在实例中此点处,FIFO行中的一行为空,因此第二数据拍可在第五循环中在行Fifo[0]处移入FIFO。数据宿仍未准备好接收所述数据,直到稍后某个时间为止,因此,Fifo[0]初始保持第三数据拍Q2。 
在循环5中,另一数据拍Q3移入ReadData寄存器,且源侧控制装置23保持ReadDataReady(DataRdy)信号为高。此时,由于没有数据移出FIFO,因此在循环6中计数器将计数进一步递减到值0。在实例中此点处,FIFO行中没有行为空,且在ReadData寄存器中存在数据。因此,在此循环中不宣告DataReady信号。然而,第四数据拍Q3在ReadData寄存器中保持为“运行中”。 
在实例中,数据宿首先在第六循环(图的底部行)中准备好接受数据拍,因此FIFO控制装置29宣告读取信号(图中倒数第二行)以允许将所述数据拍从Fifo[0]读出到数据宿中。在此实例中,系统在域之间展现单一循环的延时。由于域之间的延时,来自FIFO控制装置29的读取信号在下一(第七)循环中到达计数器,如图1所示的FIFO条目空闲信号或图2(C)中的箭头。此信号表示从FIFO清除条目,这引起计数器递增回到值1。 
当在循环6中第一数据拍Q0移入数据宿时,在Fifo[0]中释放空间,因此FIFO中的其它数据在循环7中向下移动(Q1移到Fifo[0]且Q2移动到Fifo[1])。顶部行Fifo[2]为空且现可从ReadData寄存器接收下一数据拍,即在实例中此点处为拍Q3。因为拍Q3 已移动到FIFO,所以ReadData寄存器现接受下一数据拍Q4。 
在实例中,数据宿每隔一个循环接受来自FIFO底部的数据,因此类似于循环6和7操作的操作交替,例如,使得在计数器交替递减并接着递增时计数在1与0之间交替。如图示,数据寄存器(DataRegister)保持每一新数据拍“运行中”历时两个连续循环,即直到FIFO中空间变为可用为止。以此方式,ReadData寄存器本质上为额外的FIFO行,但其在源域内提供此功能。 
如上文所述,计数器25与源15一起位于域11中而不是与FIFO 19本身一起位于域13中。这是有利的,因为对于从FIFO到源的信号来说通常存在延时,意味着源在FIFO变为就绪之后的某一数目的循环之前无法发送数据。在所说明实例中,计数器25不提供FIFO 19中内容的时间上的真实快照,因为计数器导致针对递增的延时代价。然而,FIFO空间空信号可立即用于源FIFO控制装置23(无延时)。因此对于典型条件,可认为计数器25“吃掉”域11与13之间的必要信令的延时。 
这里的代价在于计数器25可能不顺利,因为当实际上在FIFO存储装置19中存在空间时其可能有时称无法发送数据,因为来自控制装置29的空闲信号仍未传播到计数 器25。然而,在所说明设计中可通过根据“空闲”信号延时来设计FIFO深度的大小,使得可连续传送数据来克服此情况。也可能通过控制装置23的逻辑的适当设计或通过将计数器大小设计为N+1(其中N为FIFO深度,例如FIFO 19中位置的数目)而能够在源侧控制装置23相信FIFO 19充满时发送一个最后数据拍,来赢得少许带宽。 
依靠本地计数器和FIFO的深度,源15可连续发送数据。因此,通过适当设计FIFO的大小,可无视信号延时而进行传送,因此,系统大体上“对延时不敏感”。注意到,尤其在目的地或数据宿侧没有足够快地汲取FIFO 19,且系统丢失等于延时的缓冲时,延时可能在这里起作用。可通过使FIFO 19较深以涵盖汲取FIFO 19的典型数据速率来补偿此情况。因此,在典型条件中数据被连续传送。 
而且,系统不必准确地在其递减计数器25时从FIFO 19读出数据。而是,用以递减计数器的信号可引起读取,以便稍微较早地递减计数器,只要时序和延时可保证在源侧可响应并转发新数据之前数据宿侧将从FIFO装置19读出一拍数据并为新数据清出空间。 
如上文所述,通过适当设计FIFO深度的大小,可能在两个域之间提供大体上连续的数据传送。出于此目的,FIFO深度应至少与往返行程信令延时一样大,即,从ReadDataReady直到在源处可见FIFO空间空(FIFO Space Empty)的循环计数。此数目受到ReadData寄存器21与FIFO 19之间的任何介入级以及FIFO与来自数据宿的读取请求之间的介入延时的影响。 
当数据宿无法与源侧发送数据一样快地读取数据时,FIFO的大小设计可能较复杂。举例来说,数据宿可能以数据发源的速率的一半速率来消耗数据。所增加级的数目取决于一次性(即,一个突发)发送的数据量、往返行程信令延时以及数据宿的消耗速率。最多将需要将FIFO大小增加突发的大小(循环计数)。然而,由于在数据宿读取数据时,额外空间将在FIFO中可用,因此实际FIFO将稍微较小。在突发大小和突发之间的间隔变化的情况下,确定最优大小可能要求用各种FIFO深度进行模拟以实现两个域之间期望的连续数据传送。 
将计数器初始化为FIFO存储装置19的大小,并在数据输入到FIFO存储装置19时递减和从FIFO存储装置19输出时递增。因此,允许的计数值范围对应于位置的数目N,即FIFO存储装置19的深度。即使当计数器称没有空闲空间(0计数)时,控制装置23将允许源将数据载入寄存器21并将额外的一组128位数据施加于FIFO输入线。控制装置将供应保持在寄存器27中的ReadDataReady脉冲。有效地,寄存器21和传送线提供用于FIFO存储装置19的额外的寄存器位置。而且,此机制本质上采用FIFO来 遮蔽(在典型情况中)源与数据宿之间的信令延时。 
在图1的实例中,源侧的FIFO控制装置23提供单一脉冲作为指示新的有效数据拍可用且准备好传送到FIFO 19的信号。然而,代替此从源域到数据宿域的ReadDataReady状态的脉冲信令,概念可适合于利用其它技术,例如乒乓信令方法。此乒乓信令方法在源FIFO控制装置与数据宿就绪(Sink Ready)逻辑之间采用两个信号。最多这两个信号中的一者为真。当数据被发送通过时,宣告第一信号。在宣告第二信号时,下一数据拍促使第一信号被清除。在宣告第一信号时,下一数据拍促使第二信号被清除,等等。数据宿侧知道在一个信号上接收数据之后查看交替信号。此方法具有的优点在于,当在源相信FIFO充满后发送额外数据拍时,信号保持宣告,直到计数器递增且另一数据拍发送为止。因此,不需要捕捉脉冲。本质上,当有效数据就绪且可用于传送到FIFO时越过指示的边界宣告一连续信号。 
图3是一系统的功能框图,所述系统大体类似于图1的系统,但利用乒乓信令技术。类似于第一实例,此第二说明系统包含处于两个不同域中的元件,源域311期望发送数据且数据宿域313希望接收数据。本质上,由数据源315一般表示的域311中的元件有数据可用,且由数据宿317一般表示的域313中的元件需要接收所述数据以用于进一步处理、存储等。 
所述两个域通过由虚线D-D表示的域边界而分隔。再一次,两个域可为单一半导体芯片、不同芯片、或经由布线、通过一系列一个或一个以上寄存器或其它接口装置连接的不同装置的不同区,或经由局域网或广域网通信的两个单独系统。如早先论述,两个域中电路的操作可相对于同一基础时钟频率而定时(即,同步),或相对于不同基础时钟频率而定时(即,异步)。 
为了便于论述,再一次假定两个域同步且表示越过边界直接连接在一起的紧密靠近的元件,例如一处理器芯片的越过芯片边界区互连或耦合在一起的两个核心区段。所述两个区段的分隔可为物理的,例如芯片的两个单独部分或区域,或该分隔可为纯逻辑的,即只是处于以第一域的数据速率操作的组件与以第二域的数据速率操作的组件之间。 
如前,两个域以不同的数据速率操作。为了补偿越过边界D-D的域311与313的数据速率差,数据宿域313包含先入先出(FIFO)存储装置319,其本质上用于缓冲从源域311接收的数据。再一次,可在各种各样的物理结构(例如,寄存器或存储器)中的任一者中实施FIFO存储装置。为了论述目的,方便地将FIFO 319考虑为接收到的数据移动穿过的一系列寄存器或寄存器堆栈。当将一新的数据拍载入或写入装置319时填充一个寄存器或位置,且当将一数据拍从装置319卸载或读出到数据宿317时清出一个寄 存器或位置。 
在源或发送侧311上,数据源315将一数据拍(在此实例中为128位数据)供应到寄存器321(有时称为读取数据寄存器)。在实例中,将寄存器321指定为读取数据(ReadData)寄存器。ReadData寄存器321保持所述128位的数据并在线上提供所述数据位以用于将数据越过边界D-D传送到FIFO存储装置319的输入。尽管图中未图示,但在读取数据寄存器之后和FIFO之前可存在额外的逻辑。在寄存器321保持新的数据拍时,数据在线上可供FIFO存储装置319的输入使用。然而,当新的数据拍第一次载入寄存器321中时,在数据出现于数据宿域313中FIFO存储装置319的输入处之前存在一些传播延迟。 
FIFO控制装置323控制到达和经过ReadData寄存器321的数据流。FIFO控制装置323是有限状态机,其类似于图1中的控制装置23,但控制装置323的状态机的逻辑稍微不同,如下文论述将明了。当源315有新数据要发送时,源315设定寄存器331中的(V)旗标,且如果如源域321中的寄存器使用计数器325指示,FIFO存储装置319中存在可用于最后数据拍的空间,那么FIFO控制装置323促使ReadData寄存器321提供新数据。计数器325的初始值(且因此计数值的允许范围)对应于FIFO 319中位置的数目,即FIFO的深度。控制装置323可通过检查计数的状态(例如查看计数是否非负)来确定FIFO存储装置319中是否存在空间来接收一新的数据拍。尽管图示为一单独元件,但计数器325可集成为用作FIFO控制装置323的状态机的一部分。 
当FIFO控制装置323促使ReadData寄存器321提供新数据以用于输入到FIFO存储装置319时,FIFO控制装置323再一次需要向数据宿域313发信号。然而在此情况中,控制装置323将ReadDataReady信号供应到源域311中的乒乓寄存器326。乒乓寄存器326本质上是例如使用两个或两个以上触发器实施的2位寄存器。寄存器326经控制以具有如下三种有效状态。0,0状态指示仍没有有效数据就绪。0,1状态为指示存在数据准备好传送到FIFO 319的两种可能有效状态中的第一种。1,0状态为指示存在数据准备好传送到FIFO 329的两种可能有效状态中的第二种。如下文论述,通过0,1与1,0状态之间的转变来依次指示数据就绪状态。注意到,控制装置323和寄存器326经配置以便不产生1,1状态,因为所述状态在此协议中不是有效的信令状态。 
在数据变为可用于传送时,源域311中的FIFO控制装置323提供ReadDataReady脉冲信号以驱动乒乓寄存器326的状态。FIFO控制装置323还将ReadDataReady脉冲信号供应到FIFO空间使用计数器325的递减输入(-)。当没有数据可用或准备好发送时,且计数器指示在FIFO中存在足够的空间用于发送的最后数据时,FIFO控制装置323 清出乒乓寄存器326(成为0,0状态)。现假定一拍数据在当前循环中变为可用,且较多数据在稍后循环中变为可用。如果在前一循环中没有数据可用,且在FIFO中存在足够的空间用于前一传送,那么寄存器326处于0,0状态。接着,ReadDataReady信号的第一脉冲促使寄存器326改变为0,1数据就绪状态,ReadDataReady信号的第二脉冲促使寄存器326改变为1,0数据就绪状态,ReadDataReady信号的第三脉冲促使寄存器326改变回到0,1数据就绪状态,等等。以此方式,ReadDataReady信号的连续脉冲促使寄存器326在两个有效数据就绪状态之间交替或“乒乓”,直到FIFO控制装置323在源315没有新数据可用于传送且所有先前数据已被捕捉时清出寄存器326为止。 
寄存器326维持每一状态,直到其从FIFO控制装置323接收到新的脉冲信号或清除命令。如此,每一状态将连续出现在寄存器326的2位输出线上,只要FIFO控制装置323不改变寄存器326的状态便可。寄存器326的输出线将2位有效数据状态信息越过边界D-D供应到数据宿域313中的多路复用器(MUX)327。MUX 327将状态数据供应到数据宿域313中的FIFO控制装置329,且MUX操作由FIFO控制装置329控制。在来自数据宿域FIFO控制装置329的控制下,MUX 327在每次其输入上出现转变时在其输出上提供1,直到FIFO捕获数据;即,其在每次源域311指示存在新的一拍数据或仍存在待捕捉的旧数据准备好发送到FIFO存储装置19时提供1。如果MUX在其输入上接收到0,0状态(没有有效数据准备好发送),那么其总是输出0。 
在数据宿域313中,FIFO控制装置329是另一有限状态机。所述状态机类似于控制装置29,但状态机的逻辑稍微不同,如下文论述将明了。FIFO控制装置329(例如)将“写入”和“读取”信号提供到FIFO存储装置319以控制到达FIFO存储装置319的输入(写入)和来自FIFO存储装置319的输出(读取)数据。如所提及,MUX 327响应于来自源域控制装置323中寄存器326的每一新的乒乓状态(指示新的一拍数据可用于传送)而将1信号提供到FIFO控制装置329。如果FIFO存储装置319中有空间可用于接收就绪数据,那么控制装置329产生写入信号,促使FIFO存储装置319接收来自源域311中的ReadData寄存器321的数据输入。 
可用单一位信号实施乒乓信令的替代形式。在此情况中,位的切换指示新数据的传递。此方案消除了0,0状态,用不转变来将其代替。可通过用互斥OR门代替图3的MUX来将切换转变为脉冲。对于存在待由FIFO捕捉的数据的每一循环,无论是新数据还是仍未捕捉的旧数据,互斥OR的输出都将为真。 
如在早先的实例中,用作ReadDataReady信号的脉冲使计数器325递减,指示FIFO存储装置319中少了一个寄存器位置。在此方面,计数器325响应于同一域311中产生 的就绪脉冲而递减,而对于两个域311与313之间的信号传送没有任何延迟或延时。来自数据宿侧的FIFO控制装置329的读取信号指示FIFO存储装置319将数据从其寄存器位置之一输出到数据宿317并清出装置319中的所述位置。因此,从数据宿域313越过边界D-D供应读取信号的脉冲以递增计数器325。 
在控制装置329发出读取信号与相应的信号在源域311中计数器325处作为FIFO条目空闲指示出现之间将存在一些延时。信令延时可能是由于信令跨越芯片所需的时间所致。然而,在读取信号与FIFO条目空闲之间可存在额外的状态电路,在图中一般由延迟/时序元件328表示。尽管在数据宿域313中展示,但电路328可实际存在于所述域中的一者或两者中。通常为一个或一个以上触发器的额外电路确保越过域之间的边界D的适当的信号电平和时序对准。然而,额外电路328将给控制装置329宣告读取信号与相应的信号在计数器325处作为FIFO条目空闲指示出现之间的延时增加一个或一个以上延迟循环。尽管为了方便而未图示,但所属领域的技术人员将认识到,如果提供这种额外电路,那么在两个域之间的其它线(例如,ReadData线与ReadDataReady线)上将提供类似的延迟/时序元件。 
计数器325将FIFO空闲空间计数供应到源域311中的FIFO控制装置323,以供其用于确定越过边界D-D传输新数据。通过在每次数据可用于FIFO 319时递减计数且在每次清出一位置时(在将数据读出FIFO 319时)递增计数,计数器325的值跟踪FIFO存储装置319中可用或空闲空间的量(寄存器位置的数目)。然而,因为计数器325在源域311中,所以递减稍微超前于对来自寄存器326的状态信息的接收以及数据宿域313中对其的响应。在越过边界D-D将2位状态信息传送到MUX 327时存在某一延迟或延时。相反地,由于在越过边界D-D传送读取信号中有延迟或延时,源域311中计数器325的递增稍微落后于或拖后于从数据宿域313中的FIFO存储装置319读取数据。 
当源初始具有可用于传送到数据宿317的数据时,FIFO控制装置323也响应于由数据源315设定的一位寄存器331中的数据有效性旗标(V)。换句话说,源315设定寄存器331中的旗标V以通知FIFO控制装置323存在有效的新数据可用于载入到ReadData寄存器321中。FIFO控制装置323将一时钟(启用)信号提供到所述一位寄存器以用作数据有效性旗标(V)31。当数据成功传送到数据宿域中的FIFO 319时,FIFO控制装置323提供一时钟(启用)信号以装载寄存器331,且因此提供有效性旗标(V)的状态。在操作中,将源有效位从寄存器331发送到源FIFO控制装置323,以告知此FIFO控制装置323数据准备好发送。当数据已发送时从寄存器331清出所述位,除非新数据同时从源315移入。以此方式,FIFO控制装置323控制寄存器331中的V旗标 以允许源315在计数器325指示存在可用于新的一拍数据的空间时设定旗标(并向ReadData寄存器321输入新的一拍数据)。 
图4(A)和4(B)是图3系统的操作的简单实例的时序图。一般地,这些实例类似于上文相对于图2(A)和2(C)所论述的实例,但这里来自源域的读取数据就绪的信令采用如图4(A)和4(B)的第四和第五行所示的“乒”和“乓”信号的形式。如图所示,向两个有效乒乓状态之一(向0,1或1,0)的每一转变发出寄存器中数据就绪的信号。 
在这些实例中,计数再一次表示可发送的数据拍的数目,且计数以FIFO位置的数目加一开始(参见这些图中每一图中的第五行)。此额外的拍表示可在源域中的ReadData寄存器中保持“运行中”的数据。零的计数指示需要从前一循环保持源数据。因此,在乒乓协议实例中,在此一循环中一定不会发生状态改变。 
如上文所述,计数器325与源315一起位于域311中而不是与FIFO319本身一起位于域313中。如上文论述和图3所示,第二实例类似地依赖于源域中的计数器325以跟踪FIFO存储装置319中空间的使用。与第一实例几乎相同,计数器有效地“吃掉”域311与313之间的信令的延时。数据在可用时经由寄存器321立即被施加,且在该处保持可用于FIFO,直到读入FIFO为止,其本质上为FIFO寄存器堆栈提供一额外的存储位置。计数器325导致针对递增的延时代价,但可立即用于源侧。 
这里的代价在于计数器325可能不顺利,因为当实际上在FIFO存储装置319中存在空间时其可能有时称无法发送数据,因为空闲信号仍未传播到计数器325。可通过根据“空闲”信号延时来设计FIFO深度的大小,使得可连续传送数据来克服此情况。也可能通过逻辑323的适当设计或通过将计数器大小设定为N+1(其中N为FIFO深度,例如FIFO 319中位置的数目)而能够在源由于其他原因相信FIFO充满时经由寄存器321发送一个最后数据拍,来赢得少许带宽。 
依靠本地计数器和FIFO的深度,源315可连续发送数据。因此,通过适当设定FIFO 319的大小,可无视信号延时而进行传送,且处理大体上“对延时不敏感”。注意到,尤其在目的地没有足够快地汲取FIFO 319且丢失等于延时的缓冲时,延时可能在这里起作用。可通过使FIFO 319较深以涵盖汲取FIFO 319的典型数据速率来补偿此情况。因此,在典型条件中数据被连续传送。用以实现域之间大体上连续的数据传送的FIFO深度将类似于上文相对于图1的实例论述的FIFO深度。 
而且,系统不必准确地在其递减计数器325时从FIFO 319读出数据。而是,用以递减计数器的信号可引起读取,以便稍微较早地递减计数器,只要时序和延时可保证在源侧可响应并转发新数据之前数据宿侧将从FIFO装置319读出一拍数据并为新数据清 出空间便可。 
第二实例的这些优点大体上类似于第一实例的优点。然而,乒乓信令计数增加了一些独特益处。通过乒乓方法,当在源相信FIFO充满之后发送额外数据拍时,信号保持宣告,直到计数器325递增且另一拍被发送为止。因此,不需要在数据宿侧捕捉和保持ReadDataReady脉冲。 
尽管上文已描述考虑的最佳模式和/或其它实例,但应了解可在其中做出各种修改,且可以各种形式和实例实施本文揭示的主旨,且所述教示可应用于许多应用中,本文仅描述了这些应用中的某些应用。希望由所附权利要求书来主张落在本发明教示的真实范围内的任何和所有应用、修改和变更。 

Claims (14)

1.一种方法,其包括:
在第二域中的存储装置的输入处从第一域接收数据,其中所述第一域和所述第二域以不同的数据速率操作;
响应于从所述第一域接收的第一信号,在所述第二域中的控制器处接收连续就绪信号,所述第一信号指示所述数据在所述存储装置的输入端处可用;
响应于所述连续就绪信号,将所述数据载入到所述存储装置中;
在将所述数据载入到所述存储装置中的同时清除所述连续就绪信号;及
当数据条目从所述存储装置读出时,发送第二信号以使所述第一域中的计数器递增;
其中,当所述存储装置中没有可用空间存储所述数据时,所述第一域中的第一寄存器在所述第二域中的所述存储装置的所述输入处保持所述数据,直到所述存储装置存储所述数据,及
其中,所述第二域中的第二寄存器提供所述连续就绪信号,所述第二寄存器经配置以接收所述第一信号;且其中,清除所述连续就绪信号包含从所述控制器提供清除信号到所述第二寄存器。
2.根据权利要求1所述的方法,其中所述存储装置是FIFO存储装置。
3.根据权利要求1所述的方法,其中所述第一域和所述第二域是由边界层分开的单一半导体芯片的不同区域。
4.根据权利要求1所述的方法,其中所述第一信号包含对应于所述第一域的单一时钟周期的脉冲。
5.一种方法,其包括:
在第二域中的存储装置的输入处从第一域接收数据,其中所述第一域和所述第二域以不同的数据速率操作;
响应于从所述第一域接收的第一信号而在所述第二域中的控制器处接收就绪信号,所述第一信号指示所述数据在所述存储装置的所述输入处可用;
响应所述就绪信号而将所述数据载入到所述存储装置中;及
当数据条目从所述存储装置读出时发送第二信号以调整所述第一域的计数器;
其中,当所述存储装置中空间不可用以存储所述数据时,所述数据由所述第一域中的第一寄存器在所述第二域中的所述存储装置的所述输入处保持直到所述存储装置在空间可用后存储所述数据;
其中在所述控制器处连续接收所述就绪信号直到所述数据被载入到所述存储装置中,及
其中所述第一信号包含对应于所述第一域的单一时钟周期的脉冲,且其中从所述第二域中的第二寄存器接收所述就绪信号,所述第二寄存器经配置响应接收所述脉冲而连续地提供所述就绪信号。
6.根据权利要求5所述的方法,其进一步包括:
在发送所述第二信号后,在所述存储装置的所述输入处从所述第一寄存器接收第二数据;及
其中,当所述存储装置中空间不可用以存储所述第二数据时,所述第二数据由所述第一寄存器在所述存储装置的所述输入处保持直到空间变为可用以便所述存储装置存储所述第二数据。
7.根据权利要求5所述的方法,其中所述第一寄存器和所述存储装置直接连接且包含在单一处理设备中。
8.一种方法,其包括:
从数据源载入第一数据到第一域中的寄存器;
从所述寄存器提供所述第一数据到第二域中的FIFO存储装置的输入,所述第二域具有与所述第一域的数据速率不同的数据速率;
当所述FIFO存储装置不具有可用空间以存储所述第一数据时,在所述FIFO存储装置的所述输入处保持所述第一数据直到所述第一数据随后保存到所述FIFO存储装置,其中所述寄存器在所述FIFO存储装置的输入处保持所述第一数据;
控制所述第一域中的计数器以指示所述FIFO存储装置的可用存储空间的减少;
发送第一信号到所述第二域,所述第一信号指示所述第一数据对所述FIFO存储装置可用,所述第一信号是提供到所述第二域的多路复用器的第一输入的连续信号;
当来自所述数据源的第二数据可用且所述计数器指示所述FIFO存储装置中的空间可用时:
载入所述第二数据到所述寄存器;及
发送第三信号到所述多路复用器的第二输入以指示所述第二数据对所述FIFO存储装置可用。
9.根据权利要求8所述的方法,其进一步包括:
从所述第二域接收第二信号,所述第二信号对应于所述FIFO存储装置的所述可用存储空间的增加;及
响应于所述第二信号而调整所述计数器。
10.根据权利要求9所述的方法,其中递减所述计数器以指示所述可用存储空间的减少,且其中响应于所述第二信号而使所述计数器递增。
11.根据权利要求10所述的方法,其进一步包括在所述第一信号和所述第二信号间交替以指示从所述数据源载入到所述寄存器的持续数据脉冲。
12.一种方法,其包括:
在第二域中的存储装置的输入处从第一域接收数据,其中所述第一域和所述第二域以不同的数据速率操作;
响应于从所述第一域接收的第一信号而在所述第二域中的控制器处接收连续就绪信号,所述第一信号指示所述数据在所述存储装置的所述输入处可用;
响应所述连续就绪信号而载入所述数据到所述存储装置;
在载入所述数据到所述存储装置的同时清除所述连续就绪信号;
当数据条目从所述存储装置读出时发送第二信号以使所述第一域中的计数器递增;
从所述第一域接收第三信号;
其中所述第一信号和第三信号都对应于所述第一域中的第一寄存器的数据可用状态;
其中所述第二域中的多路复用器提供所述连续就绪信号,所述多路复用器经配置以在第一输入处接收所述第一信号且在第二输入处接收所述第三信号,其中清除所述连续就绪信号包含从所述第二域中的所述控制器发送控制信号到所述多路复用器;
其中,当所述存储装置中没有可用空间以存储所述数据时,所述第一寄存器在所述存储装置的所述输入处保持所述数据直到所述存储器保存所述数据。
13.一种设备,其包括:
寄存器,其经配置以存储来自数据源的数据且连续地提供所述数据到存储装置的输入,其中所述寄存器位于以第一数据速率操作的第一域中以及所述存储装置位于以不同于所述第一数据速率的第二数据速率操作的第二域中;
计数器,其在所述第一域中,所述计数器经配置以指示所述存储装置中的可用存储空间的数量;
控制器,其经配置响应所述计数器而使所述寄存器从所述数据源载入数据且产生第一信号以指示何时所述数据可用,其中所述计数器指示所述存储装置具有可用存储空间;
用于向所述第二域发送数据就绪状态的信号的装置,其响应于所述第一信号,向所述第二域发送数据就绪状态的信号;
用于向所述计数器发送第二信号的装置;
其中,所述计数器经配置响应所述第一信号而指示所述可用存储空间的减少的数量以及响应从所述第二域接收的所述第二信号而指示所述可用存储空间的增加的数量;及
其中,所述用于发送所述数据就绪状态的信号的装置包含2位寄存器,所述2位寄存器经配置以发送第一数据就绪状态信号、第二数据就绪状态信号和无数据状态信号到所述第二域,其中所述第一数据就绪状态和所述第二数据就绪状态中的每一者对应于所述寄存器的状态。
14.根据权利要求13所述的设备,其中当在所述寄存器处接收持续数据脉冲时,配置所述2位寄存器以在发送所述第一数据就绪状态信号和所述第二数据就绪状态信号间交替。
CN2006800243721A 2005-05-11 2006-05-08 用于对延时不敏感的fifo信令协议的方法和设备 Expired - Fee Related CN101213534B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/128,135 2005-05-11
US11/128,135 US7454538B2 (en) 2005-05-11 2005-05-11 Latency insensitive FIFO signaling protocol
PCT/US2006/017899 WO2006124410A2 (en) 2005-05-11 2006-05-08 Latency insensitive fifo signaling protocol

Publications (2)

Publication Number Publication Date
CN101213534A CN101213534A (zh) 2008-07-02
CN101213534B true CN101213534B (zh) 2012-02-15

Family

ID=37420511

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800243721A Expired - Fee Related CN101213534B (zh) 2005-05-11 2006-05-08 用于对延时不敏感的fifo信令协议的方法和设备

Country Status (8)

Country Link
US (2) US7454538B2 (zh)
EP (1) EP1880299A4 (zh)
JP (2) JP4681046B2 (zh)
KR (1) KR100965356B1 (zh)
CN (1) CN101213534B (zh)
BR (1) BRPI0608975A2 (zh)
IL (1) IL187298A0 (zh)
WO (1) WO2006124410A2 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7613909B2 (en) * 2007-04-17 2009-11-03 Xmos Limited Resuming thread to service ready port transferring data externally at different clock rate than internal circuitry of a processor
JP5532724B2 (ja) * 2009-07-30 2014-06-25 株式会社リコー インタフェース回路及びそれを備えた半導体装置
KR20110061189A (ko) * 2009-12-01 2011-06-09 삼성전자주식회사 데이터 프로세싱 시스템에서의 비동기 통합 업사이징 회로
TWI466016B (zh) * 2011-07-01 2014-12-21 Realtek Semiconductor Corp 先入先出裝置及其實現方法
CN104038306B (zh) * 2013-03-05 2017-09-29 上海航天测控通信研究所 低延时实时传输多码率位流数据的方法及其异步fifo
US9880961B2 (en) * 2013-11-27 2018-01-30 Arm Limited Asynchronous bridge circuitry and a method of transferring data using asynchronous bridge circuitry
US10360169B2 (en) 2015-03-30 2019-07-23 Sony Semiconductor Solutions Corporation Asynchronous interface
TWI639159B (zh) 2015-05-28 2018-10-21 東芝記憶體股份有限公司 Semiconductor device
CN108280437B (zh) * 2018-01-30 2021-06-15 四川新先达测控技术有限公司 脉冲信号处理方法、装置及用户终端
CN111008002B (zh) * 2019-12-06 2022-04-08 苏州盛科通信股份有限公司 自动计算并更新fifo深度的装置和方法
CN113220607B (zh) * 2021-05-26 2023-05-12 浙江赛思电子科技有限公司 一种基于fifo的数据处理方法
CN114443524A (zh) * 2022-01-28 2022-05-06 山东云海国创云计算装备产业创新中心有限公司 一种数据传输方法、系统、存储介质及设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6115760A (en) * 1998-08-24 2000-09-05 3Com Corporation Intelligent scaleable FIFO buffer circuit for interfacing between digital domains
CN1391227A (zh) * 2001-06-07 2003-01-15 扬智科技股份有限公司 非同步fifo控制器

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3213345C2 (de) * 1982-04-08 1984-11-22 Siemens Ag, 1000 Berlin Und 8000 Muenchen Datenübertragungseinrichtung zwischen zwei asynchron gesteuerten Datenverarbeitungssystemen
US4525649A (en) * 1982-07-12 1985-06-25 Gte Products Corporation Drive scheme for a plurality of flourescent lamps
JPS62219390A (ja) * 1986-03-20 1987-09-26 Fujitsu Ltd Fifoメモリ
JPS63308447A (ja) * 1987-06-10 1988-12-15 Nec Corp 送信fifoメモリ制御装置
US5098139A (en) * 1988-12-20 1992-03-24 Larsson Leif T High security lock and latch for sliding doors
US5513224A (en) 1993-09-16 1996-04-30 Codex, Corp. Fill level indicator for self-timed fifo
US5604866A (en) * 1993-09-30 1997-02-18 Silicon Graphics, Inc. Flow control system having a counter in transmitter for decrementing and incrementing based upon transmitting and received message size respectively for indicating free space in receiver
US5506969A (en) * 1993-11-29 1996-04-09 Sun Microsystems, Inc. Method and apparatus for bus bandwidth management
JP3093583B2 (ja) * 1994-11-04 2000-10-03 沖電気工業株式会社 メモリ制御回路
JPH0997164A (ja) * 1995-10-02 1997-04-08 Oki Electric Ind Co Ltd 非同期バーストデータ受信回路
US6101329A (en) 1997-02-18 2000-08-08 Lsi Logic Corporation System for comparing counter blocks and flag registers to determine whether FIFO buffer can send or receive data
US6098139A (en) 1998-05-27 2000-08-01 3Com Corporation Frequency independent asynchronous clock crossing FIFO
US6389489B1 (en) * 1999-03-17 2002-05-14 Motorola, Inc. Data processing system having a fifo buffer with variable threshold value based on input and output data rates and data block size
US6529570B1 (en) * 1999-09-30 2003-03-04 Silicon Graphics, Inc. Data synchronizer for a multiple rate clock source and method thereof
US6389469B1 (en) * 2000-03-27 2002-05-14 Targetize Innovative Solutions Ltd. System and method for customized content delivery
JP3815948B2 (ja) * 2000-04-20 2006-08-30 シャープ株式会社 Fifoメモリ制御回路
JP3525867B2 (ja) * 2000-07-07 2004-05-10 日本電気株式会社 通信装置および通信端末
DE60022186T2 (de) * 2000-08-17 2006-06-08 Texas Instruments Inc., Dallas Unterhaltung einer entfernten Warteschlange unter Benutzung von zwei Zählern in der Verschiebesteuerung mit Hubs und Ports
US7729302B2 (en) 2001-05-15 2010-06-01 The United States Of America As Represented By The Secretary Of The Navy Adaptive control of multiplexed input buffer channels

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6115760A (en) * 1998-08-24 2000-09-05 3Com Corporation Intelligent scaleable FIFO buffer circuit for interfacing between digital domains
CN1391227A (zh) * 2001-06-07 2003-01-15 扬智科技股份有限公司 非同步fifo控制器

Also Published As

Publication number Publication date
US7454538B2 (en) 2008-11-18
CN101213534A (zh) 2008-07-02
JP4681046B2 (ja) 2011-05-11
US20060259669A1 (en) 2006-11-16
JP2008541623A (ja) 2008-11-20
JP4976537B2 (ja) 2012-07-18
KR100965356B1 (ko) 2010-06-23
IL187298A0 (en) 2009-02-11
EP1880299A2 (en) 2008-01-23
WO2006124410A3 (en) 2007-09-20
BRPI0608975A2 (pt) 2010-02-17
US20080281996A1 (en) 2008-11-13
JP2011101390A (ja) 2011-05-19
WO2006124410A2 (en) 2006-11-23
KR20080007506A (ko) 2008-01-21
EP1880299A4 (en) 2009-07-08
US7725625B2 (en) 2010-05-25

Similar Documents

Publication Publication Date Title
CN101213534B (zh) 用于对延时不敏感的fifo信令协议的方法和设备
US6522170B1 (en) Self-timed CMOS static logic circuit
EP1124179B1 (en) An apparatus for signal synchronization between two clock domains
US3953838A (en) FIFO Buffer register memory utilizing a one-shot data transfer system
CN102576303B (zh) 伪同步时分复用
CN101548328B (zh) 用于捕获串行输入数据的设备和方法
SE450055B (sv) Anleggning for att tilldela access till en behovsdelad anleggningsdel
US3153776A (en) Sequential buffer storage system for digital information
US8001409B2 (en) Synchronization device and methods thereof
CN105975246B (zh) 无需同步器的自填充多时钟fifo
EP1927045A2 (en) Asynchronous ripple pipeline
US11386025B2 (en) Daisy chain complex commands
US20060047754A1 (en) Mailbox interface between processors
US8391433B2 (en) Flow controlled pulsed serial link
US3735365A (en) Data exchange system
CN105607874A (zh) Sata协议加速模块、主机与硬盘通信方法及固态硬盘控制器
CN101923524B (zh) 一种基于clb总线的存储器接口方法
CN101634956A (zh) 多核处理器消息调度方法及调度器
US3531776A (en) Means for synchronizing equal but unsynchronized frame rates of received signal and receiver
CN100395680C (zh) 一种异步时钟域参数的配置方法及装置
CN204595845U (zh) 一种基于双线总线的单向通讯控制装置
CN103840801B (zh) 延迟电路
SU1238088A1 (ru) Устройство дл сопр жени электронно-вычислительной машины с абонентом
CN103885905A (zh) 基于双缓存选通发送技术的硬件定时通信数据响应装置及方法
US7924049B1 (en) Accelerated programming technique for integrated circuits

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1120141

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1120141

Country of ref document: HK

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: 20120215

Termination date: 20190508