异步脉动流水线的制作方法

文档序号:6568789阅读:468来源:国知局
专利名称:异步脉动流水线的制作方法
技术领域
本发明涉及一种异步脉动(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) 在请求信号被断言且确认信号被断言时,解除断言请求信 号;以及在确认信号被断言而请求信号被解除断言时,等候两个数 据传送条件之一被满足。本发明提供高速、鲁棒的流水线,它特别简单而且不丧失功能性。 这种简单使得其实现起来毫不费力而且成本相对较低。从级到下一级的数据线路可以包括用于处理数据的处理单元,而 且所述请求线路可以包括至少一个延迟组件,延迟组件被配置为延迟 从级传输到下一级的请求信号。


为了更好地理解本发明,将参考附图仅仅通过举例的方式描述实 施例,附图中图1示意性示出了流水线;图2示出了本发明第一实施例的示意图;图3是第一实施例的操作的时序图;图4是第一实施例的操作的信号传输图;图5示出了第一实施例的一个级中实现控制功能的电路;图6示出了当操作根据本发明的方法时在图5电路中各个点处的波形;图7示出了本发明的第二实施例,其中在流水线中进行处理;和 图8示出了本发明的第三实施例,其中在接收来自一个以上级的输入的流水线中进行处理。注意,附图是示意性的,并未按比例绘制。在不同的图中,相同或相似的组件以相同的附图标记表示。
具体实施方式
图1中提供了脉动流水线FIFO的方框图。每一个级IO可以在寄 存器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的下降转换,它意味着下一级 为空。因此,在每一对相邻级之间,传送请求和确认信号。 注意,返回至前一级的确认A。和到下一级&的请求由单个输出 信号实现。虽然所描述的实施例具有单个组合的请求和确认输出20,但是在 其它实施例中,在级30上具有一对物理组合的请求和确认输出通常是 方便的, 一个连接至下一级32, 一个连接至前一级34,两个输出在控 制器18处连接至公共驱动器。操作中,如图3所示,出现多个阶段。图3示出了级30和下一级 32之间的信号。第一波形代表在级30的组合的请求和确认输出22上 传输的信号R。第二个曲线图表示在级的确认输入24上接收的信号输 入A,其由下一级的组合的请求和确认输出22所传输。第三条线表示 什么时候数据在级和下一级之间的数据线路上是有效的,并且第四条 线表示什么时候将数据从级传送到下一级。为了适用于随后的讨论, 这些信号将分别被标记为R,和A,.下面给出四个阶段的序列的详细描述阶段1:为了数据传送,必须满足联合条件(A)在数据总线上必须存在数据一令牌,并且(B)下一级32的锁存器必须为空,以便它可以记 录令牌。在第一阶段l中,信道等候这两个要素中的第二个。因此,如果 下一级为空,但是数据总线上尚没有来自前一级的令牌,则可以出现 第一阶段。在此情况下,控制呈现为A,二O, ^ = 0。或者,如果下一级未准备好接收数据,而前一级上存在数据令牌, 则此阶段中的信号为& = 1, A,二l。ii阶段2:当数据传送条件为真R,二l, A,二0时,该阶段开始。数据被从 级30传送至下一级。当下一级在确认和请求输出20上断言其输出信 号A, = l时,在该级记录数据之后不久该级结束。至此,寄存器16 将已经存储了来自前一级的数据。阶段3:在该阶段中R,二1, A, = l。级对确认信号A,二1的接收通知该级 数据已经被捕获。然后,前一级停止断言它的请求,引发阶段4。 阶段4:该阶段的编码是R,二O, A! = l。该系统在此阶段中等候两个数据 传送条件中的第一个适用。阶段4可以结束的一种方法是下一级变为空,并且在此情况下确 认信号被解除断言A,二0,结束阶段4并返回阶段1。在此情况下, 阶段1中的信道是两种选择中的第一种(R, = 0, A, = 0)。可选地,在从下一级接收确认(R, = l, A,二l)之前,当再次出 现向级l传送数据的请求时,阶段4可以结束。这与阶段l的两种情 况中的第二种相对应。当由下一级发送回确认A,二1时,阶段2结束,并且所讨论的级 紧接在接收到该确认之后解除断言其输出请求& =(),直接移动至阶 段4,并接收下一数据项。此握手协议不同于在异步电路中十分常见的、广为人知的4一阶 段协议。特别地,第一阶段由于具有两种可能的编码,而有所不同。 两者都示于图3中,前两个传送对应于第一种阶段1,而最后的传送 对应于第二种。此外,在第一阶段和第三阶段都可能出现组合R-1, A=l。 在每个级中通过控制器实现所述协议。请注意,为了正确的实现, 需要不同的定时假设。与同步实现不同,所述定时不由时钟控制。特 别地,重要的是,在信号到达并移动数据之前所有数据不变且有效。图3中用虚线示出了一个替换方式。在此替换配置中,控制器具 有附加功能。在阶段3中控制器确定数据是否在级(30)中己经准备好,并且如果准备好了,则控制器将数据送到线路上,并直接移动至改进的阶段l,而不经过阶段4。在以阶段2传送数据之前,所述改进 的阶段l只等候指示下一级(32)为空的确认信号。在阶段3中数据 尚未准备好的情况下,控制器解除断言请求,并正常地继续移动至阶 段4。回到不作替换的实施例,每个级可以由有限状态机(FSM)描述, 有限状态机实现对脉动流水线级的控制。图4示出了信号转换图 (STG),图5示出了控制器18实现信号转换的电路实现。重要的是考虑级的输入和输出之间的耦合数量。通过减少耦合可 以提高流水线的速度,虽然耦合要对于流水线运行而言足够也是重要 的。寄存器控制信号G代表两个状态,透明状态(G=l)和不透明状 态(G = 0)。在不透明状态下,已经从前一状态接收到数据令牌,但 是还未传递,因此级30不能用于接收新数据。在透明状态下,级30 可以用于接收新数据。在透明状态下,所述级自动接收在其数据输入 上出现的数据。可以想到,控制需要5个信号,即两个握手对(RQ、 Ao和R" A,)以及寄存器控制信号G。第一握手对(Ro、 Ao)代表前一级34 和所讨论的级30之间的请求和确认信号,而第二握手对(R。 A》 代表所讨论的级30和下一级32之间的请求和确认信号。但是,由于所选择的信道协议,信号Ao和R,可以仅用一个信号 (即AqR,)实现。对下一级的请求与对前一级的确认耦合。这简化了 每个级的设计。图4中示出的信号转换图(STG)表明了级控制器18所需的行为。 该操作旨在从它的输入端取数据并试图经由它的输出端在流水线中尽 快将数据转发至下一级,从而级之间的信道使用前述(改进的)4一阶 段握手协议。为了实现快速操作,在空的时候,级的锁存寄存器被设定为透明 (G=l),使得数据在到达时立即被捕获。假设并且在数据令牌到达 时,数据路径中的锁存器需要被切换为不透明(保持)模式。级的操作包括两个内部状态变量X和Y,其跟踪输入和输出信道 处的事件。编码如下如果级为空(准备接受数据令牌),则变量X为高(X + )。注意,本说明书中,括号中的符号是右手侧信号转换图中的符号。 在等候请求时,不断言所述请求输入信号(Ro—)。当请求到达时(Ro+),意味着在级的输入处存在有效数据,X返回为零(X—), 使得信号G变得不透明(G—),并将请求/确认(A。R, + )发送至下 一级和前一级。当下一级为空时,即在向下一级传送令牌的过程中,变量Y被设 定为高(Y+)。当所述传送已经完成时,这由来自下一级的确认(Aj + )通知,G被置位(G+),请求/确认被复位(A()R, — ), X被置位 (X+),而Y被复位(Y—)。在此状态下,由于X被断言(X+), 则当来自前一级的请求(Ro+)到达时,FSM准备再次捕获令牌。图5中示出了实现图4的STG的电路。所述电路具有两个输入, 即请求输入22和确认输入24,以及两个输出,即组合的请求和确认 输出20以及寄存器控制输出21。在电路中央的是ANDOR门50,其组合对应于变量X和Y的信 号以及输入A,。正如可以看到的,在此实施例中,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 (包括串联示出的反相器)的输出对应于信号 ((A1 ANDY) ORX)。该输出直接连接至寄存器控制输出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自动断言组合输出AoRp以指示数据已经被接收。 由这些步骤引发的延迟足以确保寄存器存储呈现给它的数据,从而实 际上产生组合输出Ao&,而无需任何关于数据是否真在寄存器中的特 殊检查。首先考虑空流水线的情况。最初,锁存寄存器16为空,因此寄存 器控制信号控制寄存器16为透明(G=l),作为初始状态。从而在此 情况下,任何到达的数据一令牌直接传递通过级,如在第一传送中所 述的。在输出处出现数据之后,寄存器控制信号G改变,从而使寄存 器不透明(G = 0),确认被发送至前一级,请求被发送至下一级(AoR, 二l)。当下一级已经接受数据时,它发送回确认(Al = l)。其结果是, 寄存器控制信号G再次被设定为透明,并且请求/确认被解除断言 (AoR,二O)。注意,在数据已经进入级之后,将X解除断言,而在X 已经被传送至下一级时,断言X。此外,在已经请求下一级之后断言Y,当X己经被断言时解除断言Y。总而言之,控制路径中的请求一请求延迟由下列轨迹给出R0 + —X——G—~^AoR, + 。如果FIFO级包含数据,则该级的寄存器被置为不透明模式(G 二0),其用作保持模式。现在,将进一步讨论在流水线为满而且FIFO的所有级都包含数 据的情况下的事件序列。在此情况下,从流水线的末端读取字使得空 位置从后脉动到前。图6中右手侧的波形与该情形对应。所述轨迹以Ai上的负转换开始,所述负转换指示下一级中的空位 置。其结果是,Y被断言。由于已经断言AoRp则立即开始向下一级 的数据传送。当A,变为高电平时,所述传送结束。由于Y被断言, 则A,的正转换导致G升高。因此该级开始从前一级复制数据(如果 有的话)。在此传送阶段中,AoR,为低。在一定时间量之后,复制阶 段停止。在此情况下,组合路径G+—AoR, — "—~^G —确定传送的 时间。接下来,AoR,变高,这意味着向下一级的请求和向前一级的确 认。其结果是,将在级的输入处提供新数据(R。一~^Ro+)。注意,对于A。R, — "^Y之间的短时间来说,X锁存器的置位分支 和复位分支同时起作用。这是因为当下一级的确认到达时已经存在有 效数据(R。=l)。其结果是,变量X被断言,并立即被解除断言。总而言之,反方向的确认一确认延迟由下列轨迹给出A, + —G + — AoR一一Y— —G— — AoR! + 。对于FIFO的正确操作,需要控制路径和数据路径之间的延迟匹 配。幸运的是,这只需要具有较少比特数的晶体管的恰当尺寸。任何 较大宽度(每个字更多比特)或(字的)不同深度的示例在功能上也 是恰当的。为了延迟匹配,两个脉动现象很重要。第一个是通过空FIFO向 前传输数据,第二个是通过(部分)满FIFO向后传输空位置。在前面的(空)情况下,数据路径中通过锁存器的数据比特的传 播速度需要比请求事件的级一级传播速度快。对于通过任意数目级的 传播(从写入侧界面开始),该延迟限制成立。控制路径中请求事件的 级一级传播速度由下列转换给出RQ + —X—~—"^AoR, + 。当锁存器为透明时,数据路径中的延迟由通过锁存器从D到Q的传播延迟所 给出。在请求路径中(当然考虑转换方向)增加额外的延迟使得余量 增加。在孔的向后传播情况下,G信号的脉冲宽度需要足够宽。在此脉 冲期间,数据路径中的锁存器必须能够捕获新数据。要想更鲁棒,可 以通过缩小控制器特别是晶体管的栅极(即栅极84)来延长该脉冲, 所述控制器负责G信号的负沿,所述晶体管负责驱动A0N的上升沿。 有关的信号转换为G + —AoR, — "—^^G—。为了正确的操作,必须实现两个其它的定时限制。第一个限制涉及在确认之后立即清除请求。根据所述协议,紧接 在接收确认之后,必须立即解除断言请求,否则下一控制器将认为所 述请求是新的一个,而它仍然是前一个。这个问题尤其会发生在空 FIFO的情况下,因为己确认的令牌被立即传播至下一级,这使得级即 刻准备接受新令牌。为了校验该定时限制的余量,在空FIFO情况下 的请求Ro —和AON +之间的延迟应当足够大。第二个定时限制涉及Y的断言。当A,和G都低而且AoR,高时, 变量Y被置位。到(响应于请求AoR, + )信号A"变高时,Y应当被 置位。因此Y+和A, +之间的延迟(这在空FIFO中最为关键)需要 十分确定。否则控制器将不对Ai (其指示确认)的上升沿不起作用, 并且产生死锁情况。第一和第二定时限制都可以通过选择合适的晶体管尺寸而实现。从图6中应注意,所述控制以特殊序列操作。而且,应注意,从 锁存器16到控制器没有控制信号,当己经使用合适条件(G低而Ro 高)时假设锁存器锁存电路已经接收了数据。特别地,通过实现来满足多个定时限制。首先,在循环开始处,数据锁存器必须在数据被捕获之前关闭。 这要求在满足第二条件(RQ=1, A,-0)而要开始数据传送与G变为 解除断言之间有一定延迟。第二,在开始向级中传送数据(R。=l, A1 = 0)和向下一级断言请求(AoR,-l)之间的延迟需要足够以用于 由数据锁存器断言下一数据线路上的数据。第三,对于要完成的实现,18在从下一级接收确认(A,二l)之前,必须置位Y。第四,在传递数据令牌并且级变空之前,必须巳经将Ro解除断言。请注意,数据快速通过本质上是不可能的,因为有如下设计AoR,二1未被断言,直到G己经被解除断言。所述实现满足了这些定时限制,并由此确保了正确的操作。所讨论的实现具有超过当前方案的优势它非常高速,并且依旧 鲁棒。后者对于制造领域是重要的。在异步流水线领域中,过去已经 提出了许多方案。在工业应用的背景下,这些方案中的每一个都表现 出具有缺点。这里所提出的方案鲁棒、简单并且可以比任何已知的方案更快。特别地,向后传播(它是脉动FIFO的最重要延迟参数)较 快,因为在从下一级接收确认(A, + )和将锁存寄存器从不透明改变 为透明模式(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,其组合来自两个级IIO、 112的请求,并将所述请求信号传递 至目标级124。因此,在两个级IIO、 112上断言请求信号之后的一定 延迟后,在目标级124处断言请求信号,以给处理单元122提供处理 数据的时间。在目标级124和级110、 112之间直接设有确认信号线路25。本 领域技术人员可以想到对上述实施例进行修改。本发明可以以任何适 当的方式实现,特别包括作为部分集成电路来实现本发明。上述信号由归结为"1"和"0"的信号电平的特殊意义所描述。 本领域技术人员可以理解不同的电压可以归结为不同的意义,例如任 何一个或所有信号线路的意义都可以被颠倒。因此,例如在替换实施 例中,确认信号可以被断言为"0"信号,而非"1"信号。
权利要求
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、 根据权利要求l、 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)上,以等候下一级为空, 然后传送数据,无需解除断言请求信号。
全文摘要
一种异步脉动流水线具有多个级,每个级包括控制器(18)和寄存器(16)。所述控制器具有寄存器控制输出(21)以及组合确认和请求输出(20),以及请求输入(22)和确认输入(24)。所使用的协议包括单个信号,其在级(30)的组合确认和请求输出(20)上输出,用作向下一级(32)的请求以及向前一级(34)的确认。
文档编号G06F5/08GK101258463SQ200680032313
公开日2008年9月3日 申请日期2006年9月4日 优先权日2005年9月5日
发明者保罗·维拉吉 申请人:Nxp股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1