CN101258463A - 异步脉动流水线 - Google Patents

异步脉动流水线 Download PDF

Info

Publication number
CN101258463A
CN101258463A CNA2006800323139A CN200680032313A CN101258463A CN 101258463 A CN101258463 A CN 101258463A CN A2006800323139 A CNA2006800323139 A CN A2006800323139A CN 200680032313 A CN200680032313 A CN 200680032313A CN 101258463 A CN101258463 A CN 101258463A
Authority
CN
China
Prior art keywords
request
data
signal
asserted
next stage
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.)
Pending
Application number
CNA2006800323139A
Other languages
English (en)
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN101258463A publication Critical patent/CN101258463A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • 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
    • G06F5/08Methods 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 having a sequence of storage locations, the intermediate ones not being accessible for either enqueue or dequeue operations, e.g. using a shift register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3871Asynchronous instruction pipeline, e.g. using handshake signals between stages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)
  • Advance Control (AREA)
  • Complex Calculations (AREA)

Abstract

一种异步脉动流水线具有多个级,每个级包括控制器(18)和寄存器(16)。所述控制器具有寄存器控制输出(21)以及组合确认和请求输出(20),以及请求输入(22)和确认输入(24)。所使用的协议包括单个信号,其在级(30)的组合确认和请求输出(20)上输出,用作向下一级(32)的请求以及向前一级(34)的确认。

Description

异步脉动流水线
技术领域
本发明涉及一种异步脉动(ripple)流水线(pipeline)及其控制方法。
背景技术
流水线提供对数据流的存储和频繁处理,图1示出了线性流水线的基本实现。
多个连续级10中的每一个均包括存储器12,并且可以在如示意性示为处理器14的级之间进行处理。
如果流水线不进行处理,则也可以认为它是先入先出(FIFO)存储器设备。如果实现为线性流水线,则结构包括串联的相同级,其中每个级能够存储一个字的数据。
可以使用两种定时方法(公知为同步或异步)中的一种来实现流水线。同步定时使用全局时钟来在流水线的连续级之间传送数据。利用同步流水线,从输入到输出的传播延迟等于N个时钟周期,其中N是流水线的级数,被公知为深度。
异步流水线不具有全局时钟,取而代之的是,利用握手信令(handshake signaling)在连续级之间传播数据。作为异步方法的结果,数据-令牌和孔以自定时的方式脉动(ripple)经过流水线(FIFO)。输入到输出的传播延迟与流水线的级数N成正比。由于级到级的脉动延迟(ripple delay)比时钟周期小一到两个数量级,因此异步流水线可以具有较好的传播延迟。
异步流水线也具有如下益处,即在没有全局时钟的情况下,输入和输出可以以不同和/或变化的时钟速度运行。
US6067109中给出了具有处理的流水线的现有技术实现,其在一个方向上传输指令包,并在相反方向上传输结果。提供逻辑,通过确保不能从相邻级同时释放指令和结果,以防止指令包和结果包彼此旁路。然而,该实现相对复杂。
本发明旨在提供异步流水线的简化实现以及用于在这样的流水线中传送数据的方法。
发明内容
第一方面中,本发明涉及一种在流水线中的级和下一级之间传送数据的方法,该流水线具有用于将数据从该级传输到下一级的数据传送线路,用于将指示数据路径保持有效数据的请求信号从该级传输到下一级的请求线路,和用于将表明下一级被占用的确认信号从下一级传输到该级的确认线路,所述方法包括重复下列步骤:
(i)在请求信号和确认信号均被断言或者请求信号和确认信号均未被断言时,等候两个数据传送条件均为真,其中第一数据传送条件是数据路径保持有效数据,第二数据传送条件是下一级为空;
(ii)在请求信号被断言而确认信号被解除断言时,在级之间传送数据,然后断言确认信号;
(iii)在请求信号被断言且确认信号被断言时,迅速地解除断言请求信号;
(iv)在确认信号被断言而请求信号被解除断言时,等候两个数据传送条件之一被满足。
所述方法可以包括重复步骤(i)到(iv)以传送数据项,其中在步骤(i)的至少一种情况下,请求信号和确认信号均被断言,在步骤(i)的至少另外一种情况下,请求信号和确认信号均未被断言。
在级之间传送数据的步骤可以在在级之间传送数据时处理所述数据。在此情况下,所述方法进一步包括延迟从该级到下一级传送的请求信号,以在被断言的请求信号到达下一级之前预留时间进行处理。
根据本发明的第二方面,提供一种流水线,包括:
级;
下一级;
至少一个数据传送线路,用于将数据从该级传输到下一级;
请求线路,用于将指示数据传送线路保持有效数据的请求信号从该级传输到下一级;和
确认线路,用于将表明下一级被占用的确认信号从下一级传输到该级;以及
级中的控制器,所述控制器被配置为进行下列协作:
(i)在请求信号和确认信号均被断言或者请求信号和确认信号均未被断言时,等候两个数据传送条件均为真,其中第一数据传送条件是数据路径保持有效数据,第二数据传送条件是下一级为空;
(ii)在请求信号被断言而确认信号被解除断言时,沿数据传送线路向下将数据从该级传送到下一级,然后断言确认信号;
(iii)在请求信号被断言且确认信号被断言时,解除断言请求信号;以及
(iv)在确认信号被断言而请求信号被解除断言时,等候两个数据传送条件之一被满足。
本发明提供高速、鲁棒的流水线,它特别简单而且不丧失功能性。这种简单使得其实现起来毫不费力而且成本相对较低。
从级到下一级的数据线路可以包括用于处理数据的处理单元,而且所述请求线路可以包括至少一个延迟组件,延迟组件被配置为延迟从级传输到下一级的请求信号。
附图说明
为了更好地理解本发明,将参考附图仅仅通过举例的方式描述实施例,附图中:
图1示意性示出了流水线;
图2示出了本发明第一实施例的示意图;
图3是第一实施例的操作的时序图;
图4是第一实施例的操作的信号传输图;
图5示出了第一实施例的一个级中实现控制功能的电路;
图6示出了当操作根据本发明的方法时在图5电路中各个点处的波形;
图7示出了本发明的第二实施例,其中在流水线中进行处理;和
图8示出了本发明的第三实施例,其中在接收来自一个以上级的输入的流水线中进行处理。
注意,附图是示意性的,并未按比例绘制。在不同的图中,相同或相似的组件以相同的附图标记表示。
具体实施方式
图1中提供了脉动流水线FIFO的方框图。每一个级10可以在寄存器16中保持一个字,并且还包括控制器18,其中所述寄存器16以锁存器的实施例构造。接下来的描述将着重于单个级30、以及它与下一级32和前一级34的相互作用。本领域技术人员可以理解,在实际设备中,将有可变数目的级,例如3到50个,并且第一和最后一个级将与其它组件连接。
每个级具有单个确认和请求输出20以及两个控制输入,即请求输入22和确认输入24。这些均连接至控制器18。此外,控制器具有寄存器控制输出21,它沿着内部控制线路17将寄存器控制信号“G”从控制器提供给寄存器16。
数据总线26直接将数据从寄存器16提供给下一级32的寄存器。因此所述级具有数据输入15和数据输出19,其间具有寄存器16,虽然应当注意,在所描述的实施例中数据输入和输出只是到数据总线26的物理连接;每个寄存器16直接将信号提供给下一级。
每一对级通过控制线路28连接,控制线路28之一是用于向后传输确认信号的确认线路25,另一线路是用于向前传输请求信号的请求线路23。所述确认和请求输出通过请求线路23连接至下一级32的请求输入22,并通过确认线路25连接至前一级34的确认输入24。以同样的方式,所讨论的级30的确认输入24连接至下一级的确认和请求输出20,并且请求输入22连接至前一级34的确认和请求输出20。
沿控制线路28发送的控制信号被称为请求(R)和确认(A)。它们形成握手对(handshake pair)。当数据总线包含有效的数据-令牌时,请求被发送至下一级。当该数据-令牌已经被捕获时,确认被反向发送回来。根据4阶段握手协议,通过握手控制信号的转换,对所述请求和确认事件进行编码。
存在两种类型的确认事件:A的上升转换,它指示数据已经被复制到下一级,从而下一级为满;以及A的下降转换,它意味着下一级为空。
因此,在每一对相邻级之间,传送请求和确认信号。
注意,返回至前一级的确认A0和到下一级R1的请求由单个输出信号实现。
虽然所描述的实施例具有单个组合的请求和确认输出20,但是在其它实施例中,在级30上具有一对物理组合的请求和确认输出通常是方便的,一个连接至下一级32,一个连接至前一级34,两个输出在控制器18处连接至公共驱动器。
操作中,如图3所示,出现多个阶段。图3示出了级30和下一级32之间的信号。第一波形代表在级30的组合的请求和确认输出22上传输的信号R。第二个曲线图表示在级的确认输入24上接收的信号输入A,其由下一级的组合的请求和确认输出22所传输。第三条线表示什么时候数据在级和下一级之间的数据线路上是有效的,并且第四条线表示什么时候将数据从级传送到下一级。为了适用于随后的讨论,这些信号将分别被标记为R1和A1
下面给出四个阶段的序列的详细描述:
阶段1:
为了数据传送,必须满足联合条件:(A)在数据总线上必须存在数据-令牌,并且(B)下一级32的锁存器必须为空,以便它可以记录令牌。
在第一阶段1中,信道等候这两个要素中的第二个。因此,如果下一级为空,但是数据总线上尚没有来自前一级的令牌,则可以出现第一阶段。在此情况下,控制呈现为A1=0,R1=0。
或者,如果下一级未准备好接收数据,而前一级上存在数据令牌,则此阶段中的信号为R1=1,A1=1。
阶段2:
当数据传送条件为真R1=1,A1=0时,该阶段开始。数据被从级30传送至下一级。当下一级在确认和请求输出20上断言其输出信号A1=1时,在该级记录数据之后不久该级结束。至此,寄存器16将已经存储了来自前一级的数据。
阶段3:
在该阶段中R1=1,A1=1。级对确认信号A1=1的接收通知该级数据已经被捕获。然后,前一级停止断言它的请求,引发阶段4。
阶段4:
该阶段的编码是R1=0,A1=1。该系统在此阶段中等候两个数据传送条件中的第一个适用。
阶段4可以结束的一种方法是下一级变为空,并且在此情况下确认信号被解除断言A1=0,结束阶段4并返回阶段1。在此情况下,阶段1中的信道是两种选择中的第一种(R1=0,A1=0)。
可选地,在从下一级接收确认(R1=1,A1=1)之前,当再次出现向级1传送数据的请求时,阶段4可以结束。这与阶段1的两种情况中的第二种相对应。
当由下一级发送回确认A1=1时,阶段2结束,并且所讨论的级紧接在接收到该确认之后解除断言其输出请求R1=0,直接移动至阶段4,并接收下一数据项。
此握手协议不同于在异步电路中十分常见的、广为人知的4-阶段协议。特别地,第一阶段由于具有两种可能的编码,而有所不同。两者都示于图3中,前两个传送对应于第一种阶段1,而最后的传送对应于第二种。
此外,在第一阶段和第三阶段都可能出现组合R=1,A=1。
在每个级中通过控制器实现所述协议。请注意,为了正确的实现,需要不同的定时假设。与同步实现不同,所述定时不由时钟控制。特别地,重要的是,在信号到达并移动数据之前所有数据不变且有效。
图3中用虚线示出了一个替换方式。在此替换配置中,控制器具有附加功能。在阶段3中控制器确定数据是否在级(30)中已经准备好,并且如果准备好了,则控制器将数据送到线路上,并直接移动至改进的阶段1,而不经过阶段4。在以阶段2传送数据之前,所述改进的阶段1只等候指示下一级(32)为空的确认信号。在阶段3中数据尚未准备好的情况下,控制器解除断言请求,并正常地继续移动至阶段4。
回到不作替换的实施例,每个级可以由有限状态机(FSM)描述,有限状态机实现对脉动流水线级的控制。图4示出了信号转换图(STG),图5示出了控制器18实现信号转换的电路实现。
重要的是考虑级的输入和输出之间的耦合数量。通过减少耦合可以提高流水线的速度,虽然耦合要对于流水线运行而言足够也是重要的。
寄存器控制信号G代表两个状态,透明状态(G=1)和不透明状态(G=0)。在不透明状态下,已经从前一状态接收到数据令牌,但是还未传递,因此级30不能用于接收新数据。在透明状态下,级30可以用于接收新数据。在透明状态下,所述级自动接收在其数据输入上出现的数据。
可以想到,控制需要5个信号,即两个握手对(R0、A0和R1、A1)以及寄存器控制信号G。第一握手对(R0、A0)代表前一级34和所讨论的级30之间的请求和确认信号,而第二握手对(R1、A1)代表所讨论的级30和下一级32之间的请求和确认信号。
但是,由于所选择的信道协议,信号A0和R1可以仅用一个信号(即A0R1)实现。对下一级的请求与对前一级的确认耦合。这简化了每个级的设计。
图4中示出的信号转换图(STG)表明了级控制器18所需的行为。该操作旨在从它的输入端取数据并试图经由它的输出端在流水线中尽快将数据转发至下一级,从而级之间的信道使用前述(改进的)4-阶段握手协议。
为了实现快速操作,在空的时候,级的锁存寄存器被设定为透明(G=1),使得数据在到达时立即被捕获。假设并且在数据令牌到达时,数据路径中的锁存器需要被切换为不透明(保持)模式。
级的操作包括两个内部状态变量X和Y,其跟踪输入和输出信道处的事件。
编码如下:如果级为空(准备接受数据令牌),则变量X为高(X+)。注意,本说明书中,括号中的符号是右手侧信号转换图中的符号。
在等候请求时,不断言所述请求输入信号(R0-)。当请求到达时(R0+),意味着在级的输入处存在有效数据,X返回为零(X-),使得信号G变得不透明(G-),并将请求/确认(A0R1+)发送至下一级和前一级。
当下一级为空时,即在向下一级传送令牌的过程中,变量Y被设定为高(Y+)。当所述传送已经完成时,这由来自下一级的确认(A1+)通知,G被置位(G+),请求/确认被复位(A0R1-),X被置位(X+),而Y被复位(Y-)。在此状态下,由于X被断言(X+),则当来自前一级的请求(R0+)到达时,FSM准备再次捕获令牌。
图5中示出了实现图4的STG的电路。所述电路具有两个输入,即请求输入22和确认输入24,以及两个输出,即组合的请求和确认输出20以及寄存器控制输出21。
在电路中央的是ANDOR门50,其组合对应于变量X和Y的信号以及输入A1。正如可以看到的,在此实施例中,ANDOR门50由非ANDOR门接反相器所实现。
变量/信号X和Y由晶体管组56、58的置位/复位状态元件产生。在这些组中,P分支置位变量,N分支复位变量。如果P分支和N分支都不起作用,则“总线保持器”保持信号不变。
第一总线保持器52保持它的输入/输出端60恒定,除非它被X晶体管组56改变。输入/输出端60上的信号代表X信号。第一总线保持器52与X晶体管组56结合构成第一(X)锁存器52、56,其状态在下面被标记为X。
与之类似,第二总线保持器54具有输入/输出端62,其代表Y信号。它也保持恒定,除非被迫由Y晶体管组58的操作所改变。第二总线保持器也具有反相输出64,反相输出64被连接以控制X晶体管组56中的门之一。第二总线保持器54和Y晶体管组58构成第二(Y)锁存器54、58,其状态在下面被标记为Y。
ANDOR门50对来自确认输入24和Y锁存器的信号进行AND操作,然后将其与来自X锁存器的信号进行NOR,并将其反相。因此中央ANDOR门50(包括串联示出的反相器)的输出对应于信号((A1AND Y)OR X)。该输出直接连接至寄存器控制输出21,以产生寄存器控制信号G。
因此,当在确认输出24上接收到确认信号时,寄存器控制输出21上的输出由门50的组合逻辑直接改变,而无需改变由锁存器X和Y表示的内部状态变量。这确保了寄存器控制信号G迅速被解除断言。本发明人已经意识到,这是加快流水线的操作的重要延迟,下面将对其进行更为详细的描述。
反相器66具有连接至寄存器控制输出21的输入和连接至组合请求/确认信号输出20的输出,以对信号G进行反相,在输出20上产生组合的请求/确认信号。
锁存器的电路和操作如下。
X晶体管组56的N分支包括一对串联的N型晶体管70、72。其中之一的基极通过反相器84连接至输出20处的组合请求/确认信号,另一个的基极直接连接至请求输入22。如果请求被断言,而且组合的请求/确认信号未被断言,则该N分支复位X总线保持器52上的X信号。
与之类似,X晶体管组56的P分支包括一对晶体管74、76。一个的基极连接至输出20处的组合的请求/确认信号,另一个的基极连接至Y总线保持器54上的反相输出64。由于晶体管是P型的,因此它们在与N分支中的N型晶体管相反的条件下被接通,即如果它们的输入为低,从而如果Y信号被断言,而且组合的请求/确认信号未被断言,则晶体管74、76置位X总线保持器52处的X信号。
Y晶体管组58以类似的方式操作。N分支(复位侧)只包含一个晶体管78,其基极连接至反相器84,并因此如果组合的请求/确认信号未被断言,则复位Y总线保持器54上的Y信号。
P分支(置位侧)包含一对晶体管80、82,所述晶体管之一的基极连接至确认输入24,而另一个的基极连接至寄存器控制输出21,如果寄存器控制输出和确认输入一起都未被断言,则Y信号。
在使用中,流水线中出现的任何令牌将沿流水线自动脉动,直到所有被写入流水线的字由于现有的字而不能再移动为止。因此,所有令牌在流水线的输出侧一起成组。从流水线的输出端读取字会导致空位置向写入侧的方向脉动。因此,在FIFO已满的情况下,流水线中的所有字有效地向输出侧的方向移动一个位置。
图6示出了在4个数据-令牌传送的情况下(内部)信号的波形。左边的情况对应于空FIFO,右边的对应于FIFO已经变满的情况。下面将分别对空和满FIFO中的事件顺序进行更为详细的描述。如上对波形进行标记,信号D代表由级读取的数据(存在于输入处的数据),信号Q代表存在于输出总线26上的数据。
注意,与图3不同,图6考虑了由各个门和反相器的有限响应时间造成的延迟。所给出的实施例提供足够延迟,以允许寄存器18记录和发送信号。例如,当数据被接收时,在阶段2的开始处,电路首先改变锁存器52、56上的变量X,然后通过ANDOR门50改变G,之后通过反相器66自动断言组合输出A0R1,以指示数据已经被接收。由这些步骤引发的延迟足以确保寄存器存储呈现给它的数据,从而实际上产生组合输出A0R1,而无需任何关于数据是否真在寄存器中的特殊检查。
首先考虑空流水线的情况。最初,锁存寄存器16为空,因此寄存器控制信号控制寄存器16为透明(G=1),作为初始状态。从而在此情况下,任何到达的数据-令牌直接传递通过级,如在第一传送中所述的。在输出处出现数据之后,寄存器控制信号G改变,从而使寄存器不透明(G=0),确认被发送至前一级,请求被发送至下一级(A0R1=1)。
当下一级已经接受数据时,它发送回确认(A1=1)。其结果是,寄存器控制信号G再次被设定为透明,并且请求/确认被解除断言(A0R1=0)。注意,在数据已经进入级之后,将X解除断言,而在X已经被传送至下一级时,断言X。此外,在已经请求下一级之后断言Y,当X已经被断言时解除断言Y。总而言之,控制路径中的请求-请求延迟由下列轨迹给出:R0+→X-→G-→A0R1+。
如果FIFO级包含数据,则该级的寄存器被置为不透明模式(G=0),其用作保持模式。
现在,将进一步讨论在流水线为满而且FIFO的所有级都包含数据的情况下的事件序列。在此情况下,从流水线的末端读取字使得空位置从后脉动到前。图6中右手侧的波形与该情形对应。
所述轨迹以A1上的负转换开始,所述负转换指示下一级中的空位置。其结果是,Y被断言。由于已经断言A0R1,则立即开始向下一级的数据传送。当A1变为高电平时,所述传送结束。由于Y被断言,则A1的正转换导致G升高。因此该级开始从前一级复制数据(如果有的话)。在此传送阶段中,A0R1为低。在一定时间量之后,复制阶段停止。在此情况下,组合路径G+→A0R1-→Y-→G-确定传送的时间。接下来,A0R1变高,这意味着向下一级的请求和向前一级的确认。其结果是,将在级的输入处提供新数据(R0-→R0+)。
注意,对于A0R1-→Y之间的短时间来说,X锁存器的置位分支和复位分支同时起作用。这是因为当下一级的确认到达时已经存在有效数据(R0=1)。其结果是,变量X被断言,并立即被解除断言。
总而言之,反方向的确认-确认延迟由下列轨迹给出:A1+→G+→A0R1-→Y-→G-→A0R1+。
对于FIFO的正确操作,需要控制路径和数据路径之间的延迟匹配。幸运的是,这只需要具有较少比特数的晶体管的恰当尺寸。任何较大宽度(每个字更多比特)或(字的)不同深度的示例在功能上也是恰当的。
为了延迟匹配,两个脉动现象很重要。第一个是通过空FIFO向前传输数据,第二个是通过(部分)满FIFO向后传输空位置。
在前面的(空)情况下,数据路径中通过锁存器的数据比特的传播速度需要比请求事件的级-级传播速度快。对于通过任意数目级的传播(从写入侧界面开始),该延迟限制成立。控制路径中请求事件的级-级传播速度由下列转换给出:R0+→X-→G-→A0R1+。当锁存器为透明时,数据路径中的延迟由通过锁存器从D到Q的传播延迟所给出。在请求路径中(当然考虑转换方向)增加额外的延迟使得余量增加。
在孔的向后传播情况下,G信号的脉冲宽度需要足够宽。在此脉冲期间,数据路径中的锁存器必须能够捕获新数据。要想更鲁棒,可以通过缩小控制器特别是晶体管的栅极(即栅极84)来延长该脉冲,所述控制器负责G信号的负沿,所述晶体管负责驱动A0N的上升沿。有关的信号转换为:G+→A0R1-→Y-→G-。
为了正确的操作,必须实现两个其它的定时限制。
第一个限制涉及在确认之后立即清除请求。根据所述协议,紧接在接收确认之后,必须立即解除断言请求,否则下一控制器将认为所述请求是新的一个,而它仍然是前一个。这个问题尤其会发生在空FIFO的情况下,因为已确认的令牌被立即传播至下一级,这使得级即刻准备接受新令牌。为了校验该定时限制的余量,在空FIFO情况下的请求R0-和A0N+之间的延迟应当足够大。
第二个定时限制涉及Y的断言。当A1和G都低而且A0R1高时,变量Y被置位。到(响应于请求A0R1+)信号A1变高时,Y应当被置位。因此Y+和A1+之间的延迟(这在空FIFO中最为关键)需要十分确定。否则控制器将不对A1(其指示确认)的上升沿不起作用,并且产生死锁情况。
第一和第二定时限制都可以通过选择合适的晶体管尺寸而实现。
从图6中应注意,所述控制以特殊序列操作。而且,应注意,从锁存器16到控制器没有控制信号,当已经使用合适条件(G低而R0高)时假设锁存器锁存电路已经接收了数据。
特别地,通过实现来满足多个定时限制。
首先,在循环开始处,数据锁存器必须在数据被捕获之前关闭。这要求在满足第二条件(R0=1,A1=0)而要开始数据传送与G变为解除断言之间有一定延迟。第二,在开始向级中传送数据(R0=1,A1=0)和向下一级断言请求(A0R1=1)之间的延迟需要足够以用于由数据锁存器断言下一数据线路上的数据。第三,对于要完成的实现,在从下一级接收确认(A1=1)之前,必须置位Y。第四,在传递数据令牌并且级变空之前,必须已经将R0解除断言。
请注意,数据快速通过本质上是不可能的,因为有如下设计:A0R1=1未被断言,直到G已经被解除断言。
所述实现满足了这些定时限制,并由此确保了正确的操作。
所讨论的实现具有超过当前方案的优势:它非常高速,并且依旧鲁棒。后者对于制造领域是重要的。在异步流水线领域中,过去已经提出了许多方案。在工业应用的背景下,这些方案中的每一个都表现出具有缺点。这里所提出的方案鲁棒、简单并且可以比任何已知的方案更快。特别地,向后传播(它是脉动FIFO的最重要延迟参数)较快,因为在从下一级接收确认(A1+)和将锁存寄存器从不透明改变为透明模式(G+)之间的延迟只是一个组合门延迟(不需要状态变量的改变)。
如上所述,FIFO流水线有许多应用领域。首先,流水线可在芯片上用作整体异步局部同步(GALS)系统的基础构造块。在这样的系统中,根据本实施例的FIFO流水线可以利用不同的时钟信号链接芯片上的不同区域。另一个应用是在芯片上用于多频同步系统上交叉的时钟范围。所述流水线也可以简单地用于存储流动的数据。
本领域技术人员可以理解,具有多级的流水线可以由上述级构成。第一和最后级将需要稍微的修改(这对于本领域技术人员公知),以提供合适的输入和输出。
上述说明涉及不进行处理的空流水线。然而,本发明还可用于在流水线上进行处理的情况。
图7示出了一对级30、32,两者之间在数据路径上有处理单元100。为了保证处理时间,在请求线路中设有多个延迟级102,以延迟请求信号。每个延迟级包括NOR门,NOR门在一个输入上具有反相器,并在该输入上获取来自前一级的请求信号,在另一输入上获取来自确认线路的信号。每个级的输出连接至下一级的请求输入。NOR门旨在延迟从级30传输至下一级32的请求信号R,但是当确认信号被传输回来时在每个门处迅速打开所述请求信号R。以此方式,在下一级处请求信号未被断言,直到数据被处理并在下一级处可用。门的实际数量取决于处理单元的组合延迟。通过所述延迟门的传输时间必须比通过处理单元的信号传播延迟长。
图8示出了从分开的流水线级110、112取两个操作数的处理。这些数据在处理单元122中被组合并被发送至目标流水线级124。
为了处理握手,流水线级110的请求输出通过延迟线路114连接至AND门120。延迟线路114由如图7的配置中的延迟级102构成。类似地,级112的请求输出通过单独的延迟线路116被传递至AND门120,其组合来自两个级110、112的请求,并将所述请求信号传递至目标级124。因此,在两个级110、112上断言请求信号之后的一定延迟后,在目标级124处断言请求信号,以给处理单元122提供处理数据的时间。
在目标级124和级110、112之间直接设有确认信号线路25。本领域技术人员可以想到对上述实施例进行修改。本发明可以以任何适当的方式实现,特别包括作为部分集成电路来实现本发明。
上述信号由归结为“1”和“0”的信号电平的特殊意义所描述。本领域技术人员可以理解不同的电压可以归结为不同的意义,例如任何一个或所有信号线路的意义都可以被颠倒。因此,例如在替换实施例中,确认信号可以被断言为“0”信号,而非“1”信号。

Claims (19)

1、一种在流水线中的级(30)和下一级(32)之间传送数据的方法,所述流水线具有:用于将数据从该级(30)传输到下一级(32)的至少一个数据传送线路(26),用于将指示数据路径保持有效数据的请求信号从该级(30)传输到下一级(32)的请求线路(23),以及用于将表明下一级被占用的确认信号从下一级(32)传输到该级(30)的确认线路(25),所述方法包括重复下列步骤:
(i)在请求信号和确认信号均被断言或者请求信号和确认信号均未被断言时,等候两个数据传送条件均为真,其中第一数据传送条件是至少一个数据传送线路(26)保持有效数据,第二数据传送条件是下一级(32)准备好接收数据;
(ii)在请求信号被断言而确认信号被解除断言时,在级(30、32)之间传送数据,然后断言确认信号;
(iii)在请求信号被断言且确认信号被断言时,解除断言请求信号;
(iv)在确认信号被断言而请求信号被解除断言时,等候两个数据传送条件之一被满足。
2、根据权利要求1的方法,其中所述方法包括重复步骤(i)到(iv)以传送数据项,其中在步骤(i)的至少一种情况下,请求信号和确认信号均被断言,在步骤(i)的至少另外一种情况下,请求信号和确认信号均未被断言。
3、根据权利要求1或2的方法,其中从该级(30)到下一级(32)的所述请求信号是也被传输至前一级的组合请求和确认信号。
4、根据权利要求1、2或3的方法,进一步包括当第一和第二数据传送条件适用时,在下一级(32)中产生寄存器控制信号,以促使下一级(32)中的锁存寄存器(16)接受来自数据线路(26)的数据,并且
其中在步骤(iii)中,响应于确认信号的接收,通过使确认信号传递经过一个或多个逻辑门,以由组合逻辑直接产生解除断言的寄存器控制信号,级(30)将寄存器控制信号解除断言。
5、根据权利要求4的方法,进一步包括在下一级(32)中根据下一级中的寄存器控制信号来产生确认信号,以便在所捕获的数据在下一级中的锁存寄存器的输出处存在/变为有效之后,断言所述确认信号。
6、根据前述任一权利要求的方法,其中所述在级之间传送数据的步骤在数据在级之间被传送时处理所述数据,所述方法还包括延迟从该级(30)到下一级(32)传输的被断言的请求信号,以提供在被断言的请求信号到达下一级之前执行处理的时间。
7、根据前述任一权利要求的方法,其中当在步骤(iii)中数据在该级(30)中可用于送入至少一个数据线路(26)时,步骤(iii)包括将数据送入数据线路(26)并立即进行步骤(i),忽略步骤(iv)。
8、一种流水线,包括:
级(30);
下一级(32);
至少一个数据传送线路(26),用于将数据从该级(30)传输到下一级(32);
请求线路(23),用于将指示数据传送线路(26)保持有效数据的请求信号从该级(30)传输到下一级(32);和
确认线路(25),用于将表明下一级被占用的确认信号从下一级(32)传输到该级(30);
以及级中的控制器(18),所述控制器被配置为进行下列协作:
(i)在请求信号和确认信号均被断言或者请求信号和确认信号均未被断言时,等候两个数据传送条件均为真,其中第一数据传送条件是数据路径保持有效数据,第二数据传送条件是下一级为空;
(ii)在请求信号被断言而确认信号被解除断言时,沿数据传送线路(26)从该级(30)到下一级(32)向下传送数据,然后断言确认信号;
(iii)在请求信号被断言且确认信号被断言时,解除断言请求信号;以及
(iv)在确认信号被断言而请求信号被解除断言时,等候两个数据传送条件之一被满足。
9、根据权利要求8的流水线,其中所述级(30)包括:
锁存寄存器(16);
数据输入(15),用于将来自紧接前一级的数据项接收到寄存器(16)中;
数据输出(19),用于将数据项从寄存器(16)输出至下一级;
确认输入(24),用于从下一级(32)接收确定数据项已经被接收的确认信号;
请求输入(22),用于从前一级接收指示前一级准备好传输数据项的请求信号;和
组合请求和确认输出(20),被配置为向下一级(32)的请求输入输出组合请求信号,并向前一级(34)的确认输入输出确认信号,以确认从前一级接收数据项并请求向下一级传输数据项。
10、根据权利要求9的流水线,其中所述控制器(18)被配置为:
(i)通过等候如下条件:(a)请求输入上的请求信号被断言,和(b)组合请求和确认输出上的组合请求和确认信号被解除断言,来等候两个数据传送条件均为真,并且当条件适用时,将数据从前一级读入寄存器;
(ii)当数据已经被传送时,将组合请求和确认信号断言为确认信号;以及
(iii)当在确认输入从下一级接收到确认信号时,解除断言所述组合请求和确认信号。
11、根据权利要求8或9的流水线:
其中所述控制器(18)具有寄存器控制输出(21),其连接至从控制器到寄存器(16)的寄存器控制线路(17),以在寄存器控制信号被断言时控制寄存器接受数据;
其中所述控制器(18)被配置为:
在请求输入上的请求信号被断言,并且组合请求和确认输出上的组合请求和确认信号被解除断言的条件之后,断言寄存器控制信号,以及
在确认输入(24)处从下一级接收到确认信号之后,解除断言所述寄存器控制信号。
12、根据权利要求11的流水线,包括至少一个逻辑门(50),该逻辑门(50)具有连接至确认输入(24)的一个输入和直接连接至寄存器控制输出(21)的输出,所述逻辑门被配置为响应于确认信号的接收,通过使确认信号传递经过一个或多个逻辑门,以产生解除断言的寄存器控制信号,来解除断言所述寄存器控制信号。
13、根据权利要求9、10、11或12的流水线,其中所述控制器包括:
第一锁存器(52、56),具有置位和复位状态;和
第二锁存器(54、58),具有置位和复位状态;
其中所述控制器被配置为:
当请求输入上的请求信号被断言,并且组合请求和确认输出上的组合请求和确认信号被解除断言的条件适用时,复位第一锁存器;
当在确认输入(24)上从下一级接收的确认信号未被断言并且条件适用时,置位第二锁存器;
当第二锁存器被置位并且组合请求和确认信号未被断言时,置位第一锁存器(52、56);以及
当组合请求和确认信号未被断言时,复位第二锁存器(54、58)。
14、根据从属于权利要求12的权利要求13的流水线,其中所述逻辑门(50)是ANDOR门(50),其AND输入连接至第二锁存器(54、58)和确认输入(24),OR输入连接至第一锁存器(52、56),输出连接至寄存器控制信号输出(21),并且当AND输入均被断言或者当OR输入被断言时,在第一状态输出寄存器控制信号。
15、根据权利要求14的流水线,进一步包括反相器(66),其输入连接至寄存器控制输出(21),输出连接至组合请求和确认信号输出(20),以对寄存器控制信号进行反相,来在组合请求和确认信号输出上提供信号。
16、根据权利要求13、14或15的流水线,
其中所述第一锁存器(52、56)包括
第一锁存器复位侧电路(70、72),其输入连接至请求输入(22)并通过反相器(84)连接至组合请求和确认输出(20),以在请求输入被断言而组合请求和确认输出未被断言的情况下复位第一锁存器;
第一锁存器置位侧电路(74、76),其输入连接至组合请求和确认输出(20)和第二锁存器(64)的反相输出,以在组合请求和确认输出未被断言而第二锁存器被断言的情况下置位第一锁存器;以及
第一锁存器总线保持器(52),被配置为如果第一锁存器复位侧电路和第一锁存器置位侧电路都不工作,则保持第一锁存器的输出。
17、根据权利要求13、14、15或16的流水线,
其中第二锁存器(54、58)包括
第二锁存器复位侧电路(78),其输入通过反相器(84)连接至组合请求和确认输出(20),以在组合请求和确认输出未被断言的情况下复位第二锁存器;
第二锁存器置位侧电路(80、82),其输入连接至确认输入(24)及寄存器控制信号输出(21),以在确认输入被断言而且控制信号输出被断言的情况下置位第二锁存器;以及
第二锁存器总线保持器(54),被配置为如果第二锁存器复位侧电路(78)和第二锁存器置位侧电路(80、82)都不工作,则保持第二锁存器的输出。
18、根据权利要求8-17中任一权利要求的流水线,
其中从所述级(30、110、112)到下一级(32、124)的数据线路(26)包括用于处理数据的处理单元(100、122);和
请求线路(23)包括至少一个延迟组件(102、114、116),用于延迟从所述级(30、110、112)传输到下一级(32、124)的请求信号。
19、根据权利要求8-18中任一权利要求的流水线,其中所述控制器被配置为在解除断言所述组合请求和确认信号之前,判断级(30)中的数据是否可用于送入至少一个数据线路(26),如果级(30)中的数据可用则将有用的数据送到数据线路(26)上,以等候下一级为空,然后传送数据,无需解除断言请求信号。
CNA2006800323139A 2005-09-05 2006-09-04 异步脉动流水线 Pending CN101258463A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP05108127 2005-09-05
EP05108127.1 2005-09-05

Publications (1)

Publication Number Publication Date
CN101258463A true CN101258463A (zh) 2008-09-03

Family

ID=37775264

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2006800323139A Pending CN101258463A (zh) 2005-09-05 2006-09-04 异步脉动流水线

Country Status (5)

Country Link
US (1) US7971038B2 (zh)
EP (1) EP1927045A2 (zh)
JP (1) JP2009507415A (zh)
CN (1) CN101258463A (zh)
WO (1) WO2007029168A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103874968A (zh) * 2011-08-03 2014-06-18 康奈尔大学 用于高性能异步电路的节能流水线电路模板
CN105393211A (zh) * 2013-09-06 2016-03-09 华为技术有限公司 具有流水线式算术逻辑单元的异步处理器的系统和方法

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7568118B2 (en) * 2005-09-20 2009-07-28 Intel Corporation Deterministic operation of an input/output interface
DE102008004857B4 (de) * 2008-01-17 2013-08-22 Entropic Communications, Inc. Verfahren zur Übertragung von Daten zwischen wenigstens zwei Taktdomänen
WO2010039312A2 (en) * 2008-06-27 2010-04-08 The University Of North Carolina At Chapel Hill Systems, pipeline stages, and computer readable media for advanced asynchronous pipeline circuits
US9170819B2 (en) * 2013-01-09 2015-10-27 Arm Limited Forwarding condition information from first processing circuitry to second processing circuitry
US9720880B2 (en) * 2013-09-06 2017-08-01 Huawei Technologies Co., Ltd. System and method for an asynchronous processor with assisted token
US20150074353A1 (en) * 2013-09-06 2015-03-12 Futurewei Technologies, Inc. System and Method for an Asynchronous Processor with Multiple Threading
US9325520B2 (en) * 2013-09-06 2016-04-26 Huawei Technologies Co., Ltd. System and method for an asynchronous processor with scheduled token passing
US20150082006A1 (en) * 2013-09-06 2015-03-19 Futurewei Technologies, Inc. System and Method for an Asynchronous Processor with Asynchronous Instruction Fetch, Decode, and Issue
WO2015035339A1 (en) * 2013-09-06 2015-03-12 Huawei Technologies Co., Ltd. System and method for an asynchronous processor with heterogeneous processors
US9385717B1 (en) * 2014-05-30 2016-07-05 Altera Corporation Level-sensitive two-phase single-wire latch controllers without contention
WO2015192062A1 (en) 2014-06-12 2015-12-17 The University Of North Carolina At Chapel Hill Camera sensor with event token based image capture and reconstruction
EP3714370B1 (en) * 2017-11-24 2022-01-12 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Data bus with multi-input pipeline

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB917853A (en) * 1959-04-03 1963-02-06 Int Computers & Tabulators Ltd Improvements in or relating to information storage apparatus
NL7105512A (zh) * 1971-04-23 1972-10-25
US4390969A (en) * 1980-04-21 1983-06-28 Burroughs Corporation Asynchronous data transmission system with state variable memory and handshaking protocol circuits
JP3059016B2 (ja) * 1992-12-25 2000-07-04 富士写真フイルム株式会社 画像読取方法
US5513224A (en) 1993-09-16 1996-04-30 Codex, Corp. Fill level indicator for self-timed fifo
EP0787327B1 (en) * 1995-08-23 2002-06-12 Koninklijke Philips Electronics N.V. Data processing system comprising an asynchronously controlled pipeline
US6212566B1 (en) * 1996-01-26 2001-04-03 Imec Interprocess communication protocol system modem
US5937177A (en) 1996-10-01 1999-08-10 Sun Microsystems, Inc. Control structure for a high-speed asynchronous pipeline
AU8495098A (en) * 1997-07-16 1999-02-10 California Institute Of Technology Improved devices and methods for asynchronous processing
US5920899A (en) * 1997-09-02 1999-07-06 Acorn Networks, Inc. Asynchronous pipeline whose stages generate output request before latching data
US6038656A (en) * 1997-09-12 2000-03-14 California Institute Of Technology Pipelined completion for asynchronous communication
DE69935924T2 (de) * 1998-07-22 2008-01-10 California Institute Of Technology, Pasadena Umgeordnete kommunikationsprozesse in asynchronen schaltkreisen mit pipelines
CN1306393C (zh) * 2000-10-23 2007-03-21 纽约市哥伦比亚大学托管会 具有锁存控制器的异步管线
EP1714209B1 (en) * 2004-01-13 2009-09-09 Koninklijke Philips Electronics N.V. Electronic circuit with a fifo pipeline
US20080164929A1 (en) * 2005-03-22 2008-07-10 Koninklijke Philips Electronics, N.V. Electronic Circuit Wherein an Asynchronous Delay is Realized
TW200717519A (en) * 2005-10-28 2007-05-01 Univ Nat Chiao Tung Asynchronous first-in-first-out cell

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103874968A (zh) * 2011-08-03 2014-06-18 康奈尔大学 用于高性能异步电路的节能流水线电路模板
CN103874968B (zh) * 2011-08-03 2016-10-26 康奈尔大学 用于高性能异步电路的节能流水线电路模板
US9633157B2 (en) 2011-08-03 2017-04-25 Cornell University Energy-efficient pipeline circuit templates for high-performance asynchronous circuits
CN105393211A (zh) * 2013-09-06 2016-03-09 华为技术有限公司 具有流水线式算术逻辑单元的异步处理器的系统和方法
CN105393211B (zh) * 2013-09-06 2018-11-30 华为技术有限公司 具有流水线式算术逻辑单元的异步处理器的系统和方法
US10318305B2 (en) 2013-09-06 2019-06-11 Huawei Technologies Co., Ltd. System and method for an asynchronous processor with pepelined arithmetic and logic unit

Also Published As

Publication number Publication date
WO2007029168A3 (en) 2007-10-11
JP2009507415A (ja) 2009-02-19
EP1927045A2 (en) 2008-06-04
US7971038B2 (en) 2011-06-28
US20080294879A1 (en) 2008-11-27
WO2007029168A2 (en) 2007-03-15

Similar Documents

Publication Publication Date Title
CN101258463A (zh) 异步脉动流水线
Cortadella et al. Synthesis of synchronous elastic architectures
CN101213534B (zh) 用于对延时不敏感的fifo信令协议的方法和设备
CN100461147C (zh) 具有异步/同步接口的电路
CN105975246B (zh) 无需同步器的自填充多时钟fifo
EP1468372B1 (en) Asynchronous crossbar with deterministic or arbitrated control
JP2003344506A (ja) テスト回路を有する自己同期型論理回路および自己同期型論理回路のテスト方法
CN103049323A (zh) 一种在fpga中实现的多中断均衡管理方法
US5663994A (en) Two cycle asynchronous FIFO queue
EP1729199B1 (en) Method for improving the data transfer in semi synchronous clock domains integrated circuits at any possible M/N clock ratio
CN1926799B (zh) 包括相互异步电路模块的电路
EP0337993A1 (en) STATE ADJUSTMENT FOR PARALLEL PROCESSING.
CN113570050B (zh) 一种双向异步同步先进先出适配器
EP0651319A1 (en) System for transferring data
CN102722143A (zh) 采用复杂可编程逻辑器件扩展数字信号处理器端口的方法
JPH05101208A (ja) データフロー型システムにおけるパケツト収集回路
Shams et al. Asynchronous circuits
Wodey et al. LOTOS code generation for model checking of STBus based SoC: the STBus interconnection
CN101160566A (zh) Ram控制设备和使用该设备的存储设备
Jusoh et al. An FPGA implementation of shift converter block technique on FIFO for UART
US20030121009A1 (en) Method for generating register transfer level code
KR102415074B1 (ko) 지연 회로 및 비동기 파이프라인 제어기, 이의 제어 방법, 및 이를 갖는 회로
Clark et al. The verification of asynchronous circuits using CCS
EP1099159A1 (en) Layered counterflow pipeline processor with anticipatory control
Shang Asynchronous communication circuits: Design, test, and synthesis

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20080903