CN1902580A - 具有fifo流水线的电子电路 - Google Patents

具有fifo流水线的电子电路 Download PDF

Info

Publication number
CN1902580A
CN1902580A CNA2004800402983A CN200480040298A CN1902580A CN 1902580 A CN1902580 A CN 1902580A CN A2004800402983 A CNA2004800402983 A CN A2004800402983A CN 200480040298 A CN200480040298 A CN 200480040298A CN 1902580 A CN1902580 A CN 1902580A
Authority
CN
China
Prior art keywords
handshake
interface
output
req1
ack1
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
CNA2004800402983A
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 CN1902580A publication Critical patent/CN1902580A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种异步操作的FIFO流水线(10a-d)包括在功能上并联的多个握手链。通过根据数据项的值选择一条链而使每个连续数据项目通过。FIFO流水线(10a-d)包括连续的流水线级,每个流水线级具有多个握手链中的每一个的各个握手级(12、16)。协调电路(15)防止相互不同的握手链的握手彼此超越。优选地,四相握手协议与逻辑门(26、28)和设置-复位锁存器(20、22)一起使用,逻辑门(26、28)位于处于该级的输入上的请求线(REQ1_i、REQ0_i)和确认线(ACK1_i、ACK0_i)之间,设置-复位锁存器(20、22)具有耦合到逻辑门(26、28)的输出上的设置输入。该锁存器具有耦合到该级的输出上的请求线上的数据输出、耦合到该级的输出的确认线上的复位输入、以及耦合到协调电路(24)上的非数据输出。将协调电路(24)设置成当设置-复位锁存器(20、22)中的任何一个的非数据输出表示设置状态时,使流水线级中的所有握手级的逻辑门(26、28)的响应无效。

Description

具有FIFO流水线的电子电路
本发明涉及一种具有异步操作的FIFO流水线的电子电路。
异步操作的FIFO缓冲器在2001年Proc.International Conferenceon Computer Design第9-17页,Montek Singh和Steven M.Nowick的题为“MOUSETRAP:Ultra-High-Speed Transition-SignalingAsynchronous Pipelines”的文章中有介绍。MOUSETRAP提供与握手电路链并联的透明/保持锁存器链。握手电路用于保证没有新的数据项将锁存器中的前一数据项覆盖,直到该前一数据项目已经被处理为止。每个握手电路对应于相应的锁存器。每个握手电路与上游和下游握手电路进行握手处理。握手处理包括用于起动握手的请求信号和当已经处理该请求时的确认信号。
在MOUSETRAP中,当特定的握手电路接收请求信号并准备好处理请求信号时,这个特定的握手电路向回发送确认信号,切换其对应的锁存器以便保持并将另外的请求信号传输给下游的下一锁存器的握手电路。当下一锁存器的握手电路确认该另外的请求信号时,该特定的握手电路则准备接收下一请求信号并使其锁存器透明。
MOUSETRAP的握手电路使用条件选通(conditional pass)门和异或门。当握手电路准备好时,条件选通门将引入的请求传递到下游。特定握手电路的异或门用于控制条件选通门,从而在来自该特定握手电路和该链中的下一握手电路的请求信号之间存在差异时使这个选通电路阻挡引入的请求信号。因此异或门检测引入的请求是否已经进一步向下游传递,并在这种情况下,它命令条件选通门使后一引入请求通过。
速度是FIFO缓冲器的重要设计目标。速度的一个测量方式是循环时间,即,在以最大可能的数据速度输送连续数据项时,在锁存器的输出上施加连续数据信号之间所需的时间。在诸如MOUSETRAP的握手接口的情况下,循环时间由握手电路控制,而握手电路必须设计成使得它们给锁存器足够的建立(set-up)和保持时间。由握手电路实现的循环时间对应于连续请求信号之间的最短时间,并由产生请求信号的电路回路中的电路确定。
为了在MOUSETRAP中产生连续请求信号,信号必须传播通过一个回路,该回路包含特定握手电路的条件选通电路、下一握手电路的条件选通电路以及该特定握手电路的异或门。这个回路包括六个逻辑门:两个在特定握手电路的条件选通电路中,两个在下一握手电路的条件选通电路中,两个在异或门中。这些逻辑门的数量和它们的扇出因数确定了循环时间。大部分逻辑门具有两个驱动两个输出。然而,这些逻辑门中的一个逻辑门(特定握手电路的条件选通电路的最后逻辑门)必须驱动三个输入(下一握手电路的条件选通电路的输入,以及特定握手电路以及其前身(predecessor)的异或门的输入)。
在MOUSETRAP的情况下,这导致超过在MOUSETRAP中使用的锁存器的建立和保持时间的延迟。MOUSETRAP不建议在由握手电路实现的延迟中的另外减少的可能性,而且,如果它们不符合操作锁存器所需的最坏情况延迟,则这种减少是没用的。
其中,本发明的目的是为了减少异步操作的FIFO流水线的循环时间。
其中,本发明的目的是使得不需要对FIFO流水线的握手电路的循环时间进行限制,以便解决最坏情况延迟。
其中,本发明的目的是为了减少确定异步操作的FIFO流水线的循环时间的电路回路中的逻辑门的最大扇出。
本发明提供一种如权利要求1所述的电路。根据本发明,FIFO流水线包含并联的多个握手链(优选是两个)。通过将握手传输通过选择的一个握手链来代表数据项,所述链是在该数据项的值的控制下来选择的。流水线的连续级中的协调电路保证了不同链中的握手信号不彼此超越(overtake)。因此,不需要锁存器来表示用于选择该链的数据。因此,握手电路的最大可能速度可用于传输数据,而不需要使电路设计适于这些数据锁存器的延迟。
优选地,流水线没有在来自握手电路的定时控制下用于储存不同可能的数据值的锁存器链,即,所有数据都通过握手链的选择来通信。这就避免了与需要驱动用于数据锁存器的控制信号相关的延迟。然而,即使存在数据锁存器链,本发明也是有利的,例如,如果在握手链的任何一个中的一级中实现了握手,则每个数据锁存器对应于流水线的相应一级,并被计时。当至少一个位由握手链的选择来表示时,可以使一个链中对于给定数据宽度的数据锁存器的宽度较小。因此,减少了由于需要驱动数据锁存器的控制信号产生的延迟。
在流水线和产生用于流水线的数据项的数据源电路之间的接口,优选使用接口电路来选择握手链,通过该握手链,根据数据项的值来发送用于数据项的握手。同样,在流水线和使用(consume)来自流水线的数据项的数据接收电路之间的接口,优选使用接口电路根据用于实现握手的握手链来控制数据信号。数据源和/或接收电路可以是具有握手接口和附带的数据输入/输出的异步操作电路,和/或在中央时钟(对于源和接收电路可以不必是相同时钟)的控制下操作的同步操作电路。
本发明区别于使用多个握手链,每个握手链具有附带的锁存器,其中握手以数据独立的方式,例如,交替地,分配在不同握手链上。这提高了吞吐(throughput)速度,但是没有减少对锁存器的需求。在本发明的实施例中,所要求保护的多个链中的几个链可以以数据值独立分配方案来并联使用,从而该数据在多个链中选择一个链。
任何种类的握手协议都可用于交换握手,例如四相协议或两相协议,使用两条握手线(一条用于确认信号,一条用于请求信号)或不同数量握手线的协议等。实际上,在该握手链和/或在不同链中的不同级可以使用不同的协议。
在一个实施例中,采用四相握手协议,并且使用如在权利要求中所述的电路。这个电路减少了电路回路中的逻辑门的最大扇出,因而减少了FIFO流水线的循环时间。将使用以下附图介绍本发明的这些和其它有利方案。
图1示出FIFO流水线;
图2示出握手级;
图3示出在握手级中使用的信号;
图4a-b示出到FIFO流水线的异步接口电路;
图5a-b示出到FIFO流水线的同步接口电路。
图1示出由FIFO流水线耦合的数据源电路1和数据接收电路2,在所述FIFO流水线中已经串联连接了许多级10a-d。尽管以举例方式示出了四级,但是应该理解,可以串联连接任何数量的级。每一级10a-d包含第一和第二握手电路12、16。这些级的第一握手电路耦合在第一握手链中(尽管示出了单条线作为握手耦合,但是应该理解,每个握手耦合实际上可包含用于握手信号传输的一条以上的线)。这些级的第二握手电路耦合在第二握手链中。此外,每个级10a-d包含耦合在级10a-d的第一和第二握手电路之间的协调电路15。
在工作时,使用在成对的连续级10a-d之间的握手信号传输,将数据位通过流水线异步地传送。根据数据位的逻辑值(逻辑1和0),通过第一链或通过第二链来传递用于该数据位的相应握手。通过延迟来自级10a-d的握手电路12或16中的确认信号,直到来自第一或第二握手电路12、16的前一请求已经由下一级10a-d确认为止,协调电路15保证了不同链中用于逻辑1和0的握手不彼此超越。
众所周知,在两个电路之间进行的握手信号传输包括从一个电路向另一个电路发送请求信号,并且一旦另一电路准备好处理下一请求信号就响应请求信号从另一电路将确认信号发送回来。
可以使用实现请求和确认信号的不同形式(在所有级中都相同或甚至在不同级的对之间采用不同形式)。在四相协议中,例如,使用两条信号线,一条用于发送请求信号,而一条用于发送确认信号。请求信号通常通过升高请求线的逻辑电平来发送信号,而确认信号通常通过升高确认线的逻辑电平来发送信号。在确认该请求之后,降低请求线的逻辑电平,之后降低确认线上的逻辑电平。然后,该接口准备下一握手。
在两相握手协议中,作为另一例子,使用两条信号线,一条用于发送请求信号,而一条用于发送确认信号。请求信号通常通过改变请求线的逻辑电平来发送信号,而确认信号通常通过改变确认线的逻辑电平来发送信号。随后,该接口准备下一握手。在另一协议中,可使用单一信号线来代替两个信号线,请求通过升高逻辑电平、然后允许信号线上的电压电平为浮置来发送信号,确认通过降低该逻辑电平、然后允许信号线上的电压电平为浮置来发送信号。
图2示出使用四相协议的级的电路实施方式。该级具有四个握手接口:用于信号发送引入的逻辑1的握手的第一输入握手接口REQ1_i,ACK1_i,用于信号发送引入的逻辑0的握手的第二输入握手接口REQ0_i,ACK0_i,用于信号发送输出的逻辑1的握手的第一输出握手接口REQ1_o,ACK1_o,用于信号发送输出的逻辑0的握手的第二输出握手接口REQ0_o,ACK0_o。该级包含第一锁存器20、第二锁存器22、AND电路24以及第一和第二确认NAND门26、28。
第一确认NAND门26具有耦合到第一输入握手接口的请求线REQ1_i和AND电路24的输出端的输入端。第一确认NAND门26具有耦合到第一输入握手接口的确认线ACK1_i上的输出端。第一锁存器20具有设置和复位输入端以及数据和非数据输出端。第一确认NAND门26的输出端耦合到第一锁存器20的设置输入端。第一锁存器20的数据输出端耦合到第一输出握手接口的请求线REQ1_o。第一输出握手接口的确认线ACK1_o耦合到第一锁存器20的复位输入端。第一锁存器20的非数据输出端耦合到AND电路24的第一输入端。
该级的第二确认NAND门28、第二锁存器22、和第二输入和输出握手接口REQ0_i、ACK0_i、REQ0_o、ACK0_o以与该级的第一确认NAND门26、第一锁存器20、和第一输入和输出握手接口REQ1_i、ACK1_i、REQ1_o、ACK1_o相同的方式互连。第二锁存器22的非数据输出端耦合到AND电路24的第二输入端。例如,示出了第一和第二锁存器20、22实施为交叉耦合的NAND门200、202、220、222。
图3示出了表示该级的操作的信号。信号轨迹表示在第一输入握手接口的请求线REQ1_i、第一输入握手接口的确认线ACK1_i、第一输出握手接口的请求线REQ1_o、第一输出握手接口的确认线ACK1_i、以及AND电路24的AND输出端处的信号。在该图中,假设只有该级的一个输入握手接口是有效的,因而AND电路24的第二输入端在逻辑上为高。
第一输入握手接口的请求线REQ1_i上的信号的上升转换30表示开始握手循环的引入请求。当AND电路24的输出端上的信号是逻辑高时,REQ1_i上的上升转换使第一确认NAND门26在第一输入握手电路的确认输出ACK1_i上产生下降转换31(该下降转换表示对该引入请求的确认)。作为响应,前一级将降低第一输入握手接口的请求线REQ1_i上的信号,这将使ACK1_i升高。
第一输入握手接口的确认线ACK1_i上的这个下降转换设置锁存器20。当锁存器20被设置时,其非数据输出变为低,并且AND电路24的第一输入端的信号变为低。作为结果,AND输出变为低,这通过使确认线ACK1_i上的信号回升到高的值而终止确认脉冲(如果通过请求脉冲的终止,它还没有升高)。
当设置锁存器20时,其数据输出在第一输出握手接口的请求输出REQ1_o处驱动上升转换32,其代表输出请求。随后,在第一输出握手接口的确认线ACK1_o上的下降转换33表示下一级(未示出)对该输出请求的确认。下降转换33使锁存器20复位,使该电路返回到其初始状态。
当然,在锁存器20被复位之前,可以使新请求信号到达第一输入握手接口的请求线REQ1_i。在这种情况下所包括的信号被表示为跟随第一输入握手接口的请求线REQ1_i上的信号的上升转换35。在这种情况下,不确认引入的请求信号,直到已经接收到前一输出信号的确认36为止。这个确认使锁存器20复位,这使AND电路24的输出变为高,从而引入的请求将如在前述中所述那样被处理。
到目前为止已经介绍了用于第一输入和输出握手接口处的逻辑一的握手信号的操作。在工作时,用于第一输入和输出握手接口上的逻辑零的握手信号可以临时与用于逻辑一的这些握手混合。用于逻辑零的握手的处理与用于逻辑一的握手的处理相似。当设置第一或第二锁存器20、22时,表示已经在第一或第二输入握手接口REQ0_i、ACK0_i、REQ1_i、ACK1_i上接收到引入的握手,但是在第一或第二输出握手接口REQ0_o、ACK0_o、REQ1_o、ACK1_o上的相应输出握手还没有被确认,引入握手的确认被延迟,如由上升转换35发送信号的请求所示的,直到已经确认输出握手为止。
应当注意,确认信号的升高可以由AND门来驱动。因此,在理论上讲,在请求信号的相应下降之前,确认信号可以升高。然而,假设请求信号对确认信号下降的响应足够快,以便防止这一点发生。或者,可以添加附加电路,以便延迟确认信号的升高,直到请求信号已经下降为止。
接口的循环时间由包含特定级的第一确认NAND门26、特定级的第一锁存器20中的第一NAND门200、下一级的第一确认NAND门26、特定级的第一锁存器20中的第二NAND门202、以及该特定级的AND电路24的电路回路中的延迟来确定。这个电路回路包含串联连接的六个门(将AND电路24中的至少两个门计算在内)。应当注意的是,每个门被两个其它门加载(可能除了只被一个门加载的AND电路24中的内部NAND门以外)。因此实现了非常短的循环时间。
数据源电路1和数据接收电路2在内部各自可以是异步电路或同步电路(一个或两个由其自身时钟来计时,或者两个都由公共时钟来计时)。异步电路使用与握手接口相关联的数据信号线,以表示在该数据信号线上何时可获得有效数据。为了将数据从这个异步电路经过级10a-d传输出去,优选在异步信号源1和级10a-d之间插入转换电路。同样,为了经过级10a-d将数据传输到这个异步电路,优选在级10a-d和异步信号接收电路2之间插入转换电路。
图4a示出了在级10a和异步源电路1之间使用的接口电路,其中所述异步源电路1采用数据线D和握手线REQ、ACK以表示在数据线D上何时可获得数据。REQ1信号由REQ和D的逻辑“AND”形成,而REQ0信号由REQ和D的反相的逻辑“AND”而形成。返回的确认由确认信号ACK1_i和ACK0_i的逻辑NAND形成。与该链中的确认信号相比,返回到异步源电路的确认信号具有常规的四相信号发送电平,这意味着它们以逻辑高电平(有效高)来发送确认信号。
图4b示出在级10d和同步接收电路2之间使用的接口电路,所述同步接收电路2采用数据线D和握手线REQ、ACK以表示在数据线上何时可获得数据。REQ信号由REQ1_o和REQ0_o的逻辑“OR”形成,数据信号D由REQ1_o获得。返回的确认信号ACK(其优选使用常规的有效高信号发送)可以用于通过使ACK分别与数据信号D及其反相信号进行逻辑NAND而产生ACK1_o和ACK0_o(其是有效低的)。然而,如果可接受假的确认信号(不响应前一请求),则这个NAND操作可以被省略,如在图2的实施例的情况下。
当然,信号源电路1和/或信号接收电路2也可以是同步(中心地计时)电路。在这种情况下,接口电路,如在图4a、4b中所示的,可以与常规异步-同步转换电路组合使用,以便通过接口连接到这个信号源电路1和/或信号接收电路2。作为替换方式,可以通过经过在源侧上的延迟电路将ACK信号回送到REQ信号和/或通过将REQ信号回送到接收侧的ACK信号,可以产生相关时钟。
图5a示出了一种替换方式,其中使用成对的同步-异步接口电路50、52将同步源电路1连接到逻辑一和零握手接口REQ1_i、ACK1_i、REQ0_i、ACK 0_i上。在本实施例中,同步源电路1具有时钟CLK输入、有效输出“V”、使能输入“E”、和数据输出“D”(在FIFO缓冲器连接方面,V和E连接还被称为V=写,E=FIFO全)。在有效输出V上的信号用于以信号的形式表示有效数据的可获得性,而在使能输入上的信号用于以信号的形式表示接受数据的能力。同步源电路1耦合到各个同步-异步接口电路50、52,所述接口电路50、52各自具有与时钟输入CLK、“有效”输入V和使能输出E的同步接口,以及耦合到请求和确认线上的异步接口。同步-异步接口电路本身是已知的;可以采用任何类型的接口电路。来自同步源电路1的有效信号被选择性地导通到第一或第二同步-异步接口电路50、52,这取决于同步源电路1的数据输出上的数据值,并且使能电路由来自同步-异步接口电路50、52的使能信号的逻辑“AND”形成。
在工作时,如果数据源电路1具有可获得的数据并且该使能信号被肯定,则它在时钟周期中产生有效V信号。接口电路50、52响应V信号而产生请求,并响应确认而产生E信号。然而,应该认识到,也可以使用这种V、E接口以外的其它接口电路,例如,以下一种接口,其中,一旦数据源电路1具有可获得的数据(与使能信号无关),则其产生V信号,并且一旦E信号被肯定,则收回V信号。当源电路1在每个时钟周期中产生新数据并且可以提前确定FIFO缓冲器可以以时钟速度传输数据时,则可以省掉控制接口信号V和E的使用。
图5b示出与数据接收电路2相类似的接口,使用第一和第二异步-同步接口电路54、56。这里,数据接收电路2具有时钟CLK输入、数据输入D、有效输入V和使能输出(在FIFO接口的情况下,有效输入和使能输出可以表述为V=FIFO非空,和E=读取)。异步-同步接口电路54、56各具有分别耦合到逻辑一和逻辑零握手接口REQ1_o、ACK1_o、REQ0_o、ACK0_o上的异步接口。异步-同步接口电路54、56各具有与时钟输入CLK、有效输出V和使能输入E的同步接口。数据接收电路2的有效输入由异步-同步接口电路54、56的有效输出的逻辑OR形成,而数据接收电路2的数据输入由用于逻辑“1”的异步-同步接口电路54的有效输出形成。异步-同步接口电路54、56的使能输入由数据接收电路2的使能输出来驱动。然而,应该认识到,如在数据源电路的情况那样,也可以采用这种V、E接口以外的其他接口。
应该理解,这些图示出了提供一比特宽传输路径的电路。用几种方式可以实现多比特宽的传输路径。首先,通过使用用于多比特信号的每个可能值的并联的各个握手链,利用防止不同链上的握手信号彼此超越的协调电路。其次,可以并联使用用于逻辑一和逻辑零的各对链,每个用于该多比特信号的相应一个位。在这种情况下,只在到接收电路2的接口处需要所述多对链之间的协调,以便保证只在用于逻辑一和零的每对链的一条线上已经产生握手请求时产生到异步接收电路2的握手,或者到同步接收电路2的有效信号。如果在各个链之间的速度的扩展足够小,则甚至可以省掉协调。
此外,这些图表示了连续级10a-d之间的直接连接,不需要中间逻辑处理。当然,可以在连续级之间插入逻辑处理电路。
在一个实施例中,这种逻辑处理电路计算一个或多个输出比特值v,作为由级10a-d的握手接口发信号告知的比特值“b”和外部数据“e”的函数v=F(b,e)。在本实施例中,在外部电路“e”的影响下,逻辑处理电路选择它将把握手接口从前一级10a-d耦合到下一级10a-d(逻辑一或逻辑零接口)中的哪个握手接口上。例如,逻辑电路可以将用于逻辑一的握手接口和用于逻辑零的握手接口从前一级耦合到用于后一级的逻辑一的握手接口,或者交换逻辑一和逻辑零接口等。这种耦合可以根据外部信号“e”而改变。
在另一实施例中,其中使用用于逻辑一和逻辑零的多对握手接口,这种中间逻辑处理电路计算由这些对的各个对代表的比特的逻辑函数。原则上,这可以通过握手电路来实现,所述握手电路确定它将在下一级10a-d中的哪一个逻辑一或零握手接口上响应于来自用于逻辑一和逻辑零的多对握手接口的握手请求的组合而启动握手。
然而,优选地,这种中间逻辑处理电路将来自逻辑一和零接口的握手转换成具有伴随的握手的明确逻辑信号(例如使用图4a的电路),从该明确逻辑信号以及用于被转换信号的组合握手来计算逻辑函数,并将计算的逻辑值和组合的握手转换回分别代表逻辑一和零的握手信号。
尽管已经示出了单链的级10a-d,但是应该理解,这种链当然可以是叉状,等等,以便提供部分平行的流水线,每个流水线具有通过链选择而用于编码数据值的多个握手链。在这种情况下,数据项可以以数据独立的方式分配在不同流水线上。而且,尽管对于四相信号发送已经示出了握手电路,但是还应该理解,当然可以用其它类型的握手接口来以信号的形式发送逻辑一和零,如使用两相信号发送的接口。实际上,级10a-d的不同对之间的握手接口可以是不同类型的,并且甚至用于一和零的接口可以是不同类型的。
此外,应该理解的是,锁存器20、22一起用于代表请求是否在任何一个输出握手接口上未决。代替使用分开的锁存器,也可以用于该目的而使用公用的锁存器,或者可以使用用于表示级10a的状态的任何其它存储器。此外,应该理解的是,在不脱离本发明的情况下,伴随着AND和OR功能的交换,用于所有信号的逻辑高和低的含义可以交换。同样,在不脱离本发明的情况下,伴随着的逻辑功能的变化,这些信号的一部分的逻辑高和低的含义可以交换。

Claims (9)

1、一种电子电路,包括异步操作的FIFO流水线(10a-d),该FIFO流水线(10a-d)包括在功能上并联的多个握手链,用于通过使握手经过所述握手链中的被选的一个握手链而使每个连续数据项通过,根据所述数据项的值来选择的所述被选的一个握手链,所述FIFO流水线(10a-d)包括连续的流水线级,每个流水线级包括所述多个握手链中的每一个的各个握手级(12、16),以及协调电路(15),其设置成防止相互不同的握手链中的握手彼此超越。
2、根据权利要求1所述的电子电路,包括:
具有用于以信号的形式发送所述数据项的值的数据输出(D)的数据源电路(1);
耦合在该源电路(1)和所述FIFO流水线(10a-d)之间的接口电路,该接口电路具有耦合到所述握手链中的相应一个上的多个输出握手接口((REQ1_i、ACK1_i)、(REQ0_i、ACK0_i)),以及耦合到所述数据输出(D)的接口选择输入,用于在所述值的控制下选择在其上开始为该值进行握手处理的所述输出握手接口((REQ1_i,ACK1_i)、(REQ0_i,ACK0_i))之一。
3、根据权利要求1所述的电子电路,包括:
具有用于接收所述数据项的值的数据输入(D)的数据接收电路(2);
耦合在所述FIFO流水线(10a-d)和所述接收电路(2)之间的接口电路,该接口电路具有耦合到所述握手链中的相应一个上的多个输入握手接口((REQ1_o、ACK1_o)、(REQ0_o、ACK0_o)),该接口电路设置成:在所述输入握手接口((REQ1_o,ACK1_o)、(REQ0_o,ACK0_o))中的任何一个上接收到相应的握手时,向所述数据输入(D)施加数据信号,该接口电路根据接收所述相应握手的所述输入握手接口((REQ1_o,ACK1_o)、(REQ0_o,ACK0_o))来控制所述数据信号的值。
4、根据权利要求1所述的电子电路,其中所述握手级中的至少一个不耦合到具有数据输入的任何锁存器的定时输入上,所述锁存器用于储存所述数据项的值。
5、根据权利要求1所述的电子电路,其中特定流水线级(10a-d)的所述协调电路(15)设置成当输出握手请求在所述握手级(12、16)的任何一个上未决时,延迟所述特定流水线级(10a-d)的所述握手级(12、16)的任何一个上的引入请求的确认。
6、根据权利要求1所述的电子电路,其中每个流水线级(10a-d)包括:
并联的多个输入握手接口((REQ1_i,ACK1_i),(REQ0_i,ACK0_i)),各自用于处理来自所述握手链中的相应一个的引入请求;
并联的多个输出握手接口((REQ1_o,ACK1_o)、(REQ0_o,ACK0_o)),各自用于在所述握手链中的相应一个中产生输出请求;
耦合到所述输入握手接口((REQ1_i,ACK1_i),(REQ0_i,ACK0_i))和输出握手接口((REQ1_o,ACK1_o)、(REQ0_o,ACK0_o))的存储器电路(20、22),用于表示将请求从任何一个输入握手接口((REQ1_i,ACK1_i),(REQ0_i,ACK0_i))传输到任何一个输出握手接口((REQ1_o,ACK1_o)、(REQ0_o,ACK0_o))是否尚未完成;
所述协调电路(24),具有耦合到所述存储器电路(20、22)的输入和耦合到所述输入握手接口((REQ1_i,ACK1_i),(REQ0_i,ACK0_i))的输出,以便防止在所述存储器电路(20、22)表示输出握手未决时对引入握手进行确认。
7、根据权利要求1所述的电子电路,其中在所述握手链中使用四相信号发送,每个握手级包括:
请求线和确认线的输入组合((REQ1_i,ACK1_i),(REQ0_i,ACK0_i)),用于处理来自所述握手链中的相应一个的引入请求;
请求线和确认线的输出组合((REQ1_o,ACK1_o),(REQ0_o,ACK0_o)),用于处理对所述握手链中的相应一个的输出请求;
逻辑门(26、28),其具有分别耦合到所述输入组合的所述请求线(REQ1_i,REQ0_i)和所述确认线(ACK1_i,ACK0_i)的第一逻辑输入和逻辑输出;
设置-复位锁存器(20、22),其具有耦合到所述逻辑门(26、28)的所述输出的设置输入、耦合到所述输出组合的所述请求线(REQ1_o,REQ0_o)的数据输出、耦合到所述输出组合的所述确认线(ACK1_o,ACK0_o)的复位输入和耦合到所述协调电路(24)的非数据输出;
其中将所述协调电路(24)设置成:在所述流水线级的所述设置-复位锁存器(20、22)中的任何一个的所述非数据输出表示设置状态时,使所述流水线级中的所有握手级的所述逻辑门(26、28)的响应无效。
8、根据权利要求7所述的电子电路,其中分别使用互相相反的有效电平用于所述请求线(REQ1_i,REQ1_o,REQ0_i,REQ0_o)和确认线(ACK1_i,ACK1_o,ACK0_i,ACK0_o)上的请求和确认信号。
9、根据权利要求1所述的电子电路,其中所述多个握手链由用于使数据项的二进制值通过的两个握手链构成。
CNA2004800402983A 2004-01-13 2004-12-29 具有fifo流水线的电子电路 Pending CN1902580A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP04100087 2004-01-13
EP04100087.8 2004-01-13

Publications (1)

Publication Number Publication Date
CN1902580A true CN1902580A (zh) 2007-01-24

Family

ID=34778215

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2004800402983A Pending CN1902580A (zh) 2004-01-13 2004-12-29 具有fifo流水线的电子电路

Country Status (7)

Country Link
US (1) US20070113049A1 (zh)
EP (1) EP1714209B1 (zh)
JP (1) JP2007518178A (zh)
CN (1) CN1902580A (zh)
AT (1) ATE442623T1 (zh)
DE (1) DE602004023127D1 (zh)
WO (1) WO2005069121A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102929830A (zh) * 2012-11-08 2013-02-13 浙江绍兴苏泊尔生活电器有限公司 一种软件模拟快速通信协议
CN103874968A (zh) * 2011-08-03 2014-06-18 康奈尔大学 用于高性能异步电路的节能流水线电路模板
CN109976704A (zh) * 2019-03-29 2019-07-05 西安电子科技大学 一种基于fpga的级联fifo模块的设计方法
CN113489482A (zh) * 2021-07-06 2021-10-08 北京中科芯蕊科技有限公司 基于Mousetrap的异步微流水线数据流控制器

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005106687A1 (en) * 2004-04-28 2005-11-10 Koninklijke Philips Electronics N.V. Circuit with asynchronous/synchronous interface
WO2007029168A2 (en) * 2005-09-05 2007-03-15 Nxp B.V. Asynchronous ripple pipeline
US8074053B2 (en) 2006-07-11 2011-12-06 Harman International Industries, Incorporated Dynamic instruction and data updating architecture
WO2008008661A2 (en) * 2006-07-11 2008-01-17 Harman International Industries, Incorporated Interleaved hardware multithreading processor architecture and dynamic instruction and data updating architecture
US8429384B2 (en) 2006-07-11 2013-04-23 Harman International Industries, Incorporated Interleaved hardware multithreading processor architecture
US9141567B2 (en) 2006-07-11 2015-09-22 Harman International Industries, Incorporated Serial communication input output interface engine
CN115800992B (zh) * 2023-02-07 2023-06-02 浪潮电子信息产业股份有限公司 一种握手信号的拆分电路、方法、装置、设备及存储介质
CN116384309B (zh) * 2023-05-31 2023-08-11 华中科技大学 一种应用于低功耗芯片设计的四相锁存异步握手电路

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6381692B1 (en) * 1997-07-16 2002-04-30 California Institute Of Technology Pipelined asynchronous processing
US6226698B1 (en) * 1997-11-10 2001-05-01 Sun Microsystems, Inc. Method and apparatus for dynamically calculating degrees of fullness of a synchronous FIFO
US6128678A (en) * 1998-08-28 2000-10-03 Theseus Logic, Inc. FIFO using asynchronous logic to interface between clocked logic circuits
CA2407491A1 (en) * 2000-04-25 2001-11-01 The Trustees Of Columbia University In The City Of New York Circuits and methods for high-capacity asynchronous pipeline processing
US6850092B2 (en) * 2000-06-09 2005-02-01 The Trustees Of Columbia University Low latency FIFO circuits for mixed asynchronous and synchronous systems
US6590424B2 (en) * 2000-07-12 2003-07-08 The Trustees Of Columbia University In The City Of New York High-throughput asynchronous dynamic pipelines
US6356117B1 (en) * 2000-09-29 2002-03-12 Sun Microsystems, Inc. Asynchronously controlling data transfers within a circuit
KR100783687B1 (ko) * 2000-10-23 2007-12-07 더 트러스티스 오브 콜롬비아 유니버시티 인 더 시티 오브 뉴욕 래치 제어기를 갖는 비동기 파이프라인
US20020078328A1 (en) * 2000-12-14 2002-06-20 International Business Machines Corporation Pulse-controlled micropipeline architecture
US6557161B2 (en) * 2001-06-28 2003-04-29 Sun Microsystems, Inc. Method for prototyping asynchronous circuits using synchronous devices
WO2004111860A2 (en) * 2003-06-16 2004-12-23 Koninklijke Philips Electronics N.V. Data processing circuit with multiplexed memory

Cited By (7)

* 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
CN102929830A (zh) * 2012-11-08 2013-02-13 浙江绍兴苏泊尔生活电器有限公司 一种软件模拟快速通信协议
CN109976704A (zh) * 2019-03-29 2019-07-05 西安电子科技大学 一种基于fpga的级联fifo模块的设计方法
CN113489482A (zh) * 2021-07-06 2021-10-08 北京中科芯蕊科技有限公司 基于Mousetrap的异步微流水线数据流控制器
CN113489482B (zh) * 2021-07-06 2023-10-20 北京中科芯蕊科技有限公司 基于Mousetrap的异步微流水线数据流控制器

Also Published As

Publication number Publication date
JP2007518178A (ja) 2007-07-05
EP1714209B1 (en) 2009-09-09
WO2005069121A1 (en) 2005-07-28
EP1714209A1 (en) 2006-10-25
US20070113049A1 (en) 2007-05-17
ATE442623T1 (de) 2009-09-15
DE602004023127D1 (de) 2009-10-22

Similar Documents

Publication Publication Date Title
CN1060166A (zh) 共用每个周期的动态总线仲裁与授权
CN1902580A (zh) 具有fifo流水线的电子电路
US4965793A (en) Method and apparatus for interfacing a system control unit for a multi-processor
US6590424B2 (en) High-throughput asynchronous dynamic pipelines
US8259755B2 (en) Alignment and deskew for multiple lanes of serial interconnect
US7971038B2 (en) Asynchronous ripple pipeline
CN1514968A (zh) 同步到异步到同步接口
CN1767048A (zh) 锁存时钟生成电路及串并行变换电路
US8774305B1 (en) Bit slip circuitry for serial data signals
US6055597A (en) Bi-directional synchronizing buffer system
JPS62236065A (ja) マルチプロセツサ計算機システム
JPS6142049A (ja) デ−タ処理システム
TW200423135A (en) Semiconductor memory device having advanced data strobe circuit
US9426082B2 (en) Low-voltage differential signaling or 2-wire differential link with symbol transition clocking
CN1950796A (zh) 流水线异步指令处理器电路
US5592685A (en) Synchronous/asynchronous partitioning of an asynchronous bus interface
CN1166059C (zh) 用于在所需的时序改变脉宽调制的装置
EP1588276A1 (en) Processor array
CN101038573A (zh) 总线仲裁方法
CN1661580A (zh) 直接存储器访问传输装置及其方法
US6708282B1 (en) Method and system for initiating computation upon unordered receipt of data
CN1687908A (zh) 通过总线进行数据读取的装置和方法
CN1251464C (zh) 信息处理系统
JPS60235548A (ja) 信号フレ−ムの伝送方式
CN2567678Y (zh) 低速率装置与高速率装置间的同步介面电路

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
AD01 Patent right deemed abandoned

Effective date of abandoning: 20070124

C20 Patent right or utility model deemed to be abandoned or is abandoned