CN1306393C - 具有锁存控制器的异步管线 - Google Patents
具有锁存控制器的异步管线 Download PDFInfo
- Publication number
- CN1306393C CN1306393C CNB018177948A CN01817794A CN1306393C CN 1306393 C CN1306393 C CN 1306393C CN B018177948 A CNB018177948 A CN B018177948A CN 01817794 A CN01817794 A CN 01817794A CN 1306393 C CN1306393 C CN 1306393C
- Authority
- CN
- China
- Prior art keywords
- signal
- data
- latch
- level
- invalid
- 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
Links
- 230000007704 transition Effects 0.000 claims abstract description 36
- 238000012790 confirmation Methods 0.000 claims description 69
- 238000012545 processing Methods 0.000 claims description 23
- 238000012546 transfer Methods 0.000 claims description 12
- 230000001934 delay Effects 0.000 claims description 7
- 230000014759 maintenance of location Effects 0.000 claims description 6
- 230000000630 rising effect Effects 0.000 claims description 4
- 230000008676 import Effects 0.000 claims description 3
- 238000013461 design Methods 0.000 abstract description 37
- 238000000034 method Methods 0.000 description 30
- 238000005516 engineering process Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 16
- 102000029749 Microtubule Human genes 0.000 description 13
- 108091022875 Microtubule Proteins 0.000 description 13
- 230000008901 benefit Effects 0.000 description 13
- 210000004688 microtubule Anatomy 0.000 description 13
- 230000004907 flux Effects 0.000 description 9
- 238000005457 optimization Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000004088 simulation Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 230000000295 complement effect Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000006399 behavior Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- INQLNSVYIFCUML-QZTLEVGFSA-N [[(2r,3s,4r,5r)-5-(6-aminopurin-9-yl)-3,4-dihydroxyoxolan-2-yl]methoxy-hydroxyphosphoryl] [(2r,3s,4r,5r)-5-(4-carbamoyl-1,3-thiazol-2-yl)-3,4-dihydroxyoxolan-2-yl]methyl hydrogen phosphate Chemical compound NC(=O)C1=CSC([C@H]2[C@@H]([C@H](O)[C@@H](COP(O)(=O)OP(O)(=O)OC[C@@H]3[C@H]([C@@H](O)[C@@H](O3)N3C4=NC=NC(N)=C4N=C3)O)O2)O)=N1 INQLNSVYIFCUML-QZTLEVGFSA-N 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000011056 performance test Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 108091006146 Channels Proteins 0.000 description 1
- 101100001676 Emericella variicolor andK gene Proteins 0.000 description 1
- 101100001678 Emericella variicolor andM gene Proteins 0.000 description 1
- 101000694017 Homo sapiens Sodium channel protein type 5 subunit alpha Proteins 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 239000000956 alloy Substances 0.000 description 1
- 229910045601 alloy Inorganic materials 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003556 assay Methods 0.000 description 1
- 230000002146 bilateral effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- ZPUCINDJVBIVPJ-LJISPDSOSA-N cocaine Chemical compound O([C@H]1C[C@@H]2CC[C@@H](N2C)[C@H]1C(=O)OC)C(=O)C1=CC=CC=C1 ZPUCINDJVBIVPJ-LJISPDSOSA-N 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000021615 conjugation Effects 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000036039 immunity Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 239000012212 insulator Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000002203 pretreatment Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 230000036962 time dependent Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3871—Asynchronous instruction pipeline, e.g. using handshake signals between stages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Information Transfer Systems (AREA)
Abstract
一种可高速操作的异步管线在其数据通路中使用简单的透明锁存器和在每一管线级上使用了小型锁存控制器。利用请求信号和确认信号进行彼此通信。请求信号上的每一个跃迁表示新数据项的到达。每一管线级包括:数据锁存器,其正常可使数据通过;及锁存控制器,其可使数据锁存器有效和无效。请求信号和数据输入到数据锁存器中。一旦管线级锁存数据,就产生完成信号,其被发送至锁存控制器,作为确认信号发送至前一级,作为请求信号发送至下一级。锁存控制器在接收到完成信号时可使锁存器无效,从下一级接收到确认信号时可使数据锁存器重新有效。对于正确的操作是,输入数据稳定后,请求信号必须到达级。异步管线可合并逻辑元件便于组合数据,还可合并用于请求、确认和完成信号的匹配的延迟元件。异步管线还可合并时钟CMOS逻辑门。在异步管线设计中还可提供分支和连接结构。
Description
相关申请的交叉参考
本申请要求于2000年10月23日提交的申请号为No.60/242,587的美国临时专利申请,题目为“捕鼠器:利用跃迁信号协议的高通量异步管线结构”的优先权,这里通过参考将其全部内容合并到本申请中。
技术领域
本发明涉及异步管线,尤其涉及用于使用静态逻辑块来处理数据,及用简单透明锁存器来分离数据项的高速应用的异步管线。
背景技术
有些异步管线已应用于高通量应用。在波形管线中,数据的多波在两个锁存器中传播。(参照如,D.Wong,G.Demicheli,和M.Flynn,“使用波管线设计高性能的数字电路”IEEE TCAD,12(1):24-46,1993年1月;W.Liu,C.T.Gray,D.Fan,W.J.Farlow,T.A.Hughes,和R.K.Cavin,“2-μm CMOS中的250-MHz波管线加法器”IEEE JSSC,29(9):1117-1128,1994年9月;及A.Mukherjee,R.Sudhakar,M.Marek_Sadowska,和S.Long,“YADD中的波控制:一种新颖的非迭代的合成和布置技术”Proc.DAC,1999.)。然而,这种方法需要丰富的设计经验,从结构水平到布图水平,需要精确的平衡这种方法需要丰富的设计经验,从结构水平到布图水平,需要精确的平衡通路延迟(包括与数据相关的延迟),并保持对操作、温度和电压变化有很高的脆弱性。另一积极的方法包括时钟延迟的多米诺(参照G.Yee和C.Sechen,“加法器的时钟延迟多米诺和联合逻辑设计”Proc.ICCD,1996年10月),非对称容限多米诺(参见D.Harris和M.Horowitz,“非对称容限多米诺电路”IEEE JSSC,32(11):1702-1711,1997年11月;A.Dooply和K.Yun,“对高性能自重置多米诺管线的最佳时钟控制及增强的易测性”ARVLSI’99),及自动复置电路(参见V.Natayanan,B.Chappell,及B.Fleischer,“自重置电路的静态定时分析”Proc.ICCAD,1996;A.Dooply and K.Yun,“对高性能自重置多米诺管线的最佳时钟控制及增强的易测性”ARVLSI’99)。这些设计需要复杂而难以确定的定时约束。它们还缺少弹性且还需要高速全时钟分布。
此外,已提出了许多异步管线。这种常规的异步管线称作微管线(参见I.E.Sutherland,“微管线”Communications of the ACM,32(6):720-738,June1989)。这种结构用于一流的控制,但其低速而复杂的捕获-通过锁存器妨碍了其性能。
还提出了许多使用交替控制和锁存器结构的变化(参见P.Day和J.V.Woods,“微管线锁存器设计结构的研究”IEEE TVLSI,3(2):264-272,1995年6月;K.Yun,P.Beerel,and J.Arceo,“高性能异步管线电路”Proc.Intl.Symp.Adv.Res.Async.Circ.Syst.(ASYNC),1996;and C.Molnar,I.Jones,W.Coates,J.Lexau,S.Fairbanks,和I.Sutherland,“两个FIFO环形性能实验”Proceedings of the IEEE,87(2):297-307,Feb.1999),但每一种情况其性能都因过量的控制延迟或相当大的锁存器延迟而受到限制。
这些管线的设计可分为两类:(1)使用相位变换的管线,和(2)不使用相位变换的管线。上面引述的Sutherland“微管线”及Day和Woods,“微管线锁存器设计结构的研究”,及C.Molnar和I.W.Jones,“为复杂原因工作的简单电路”Proc.Intl.Symp.Adv.Res.Async.Circ.Syst.(ASYNC),pp.138-149,2000年4月,都使用了相位变换。相反,在S.B.Furber and P.Day,“四相位微管线锁存器控制电路”IEEE TVLSI,4(2):247-253,1996年6月,及K.Yun,Beerel,和J.Arceo,“高性能异步管线电路”中所引用的管线都没有使用相位变换。
Sutherland(参见图14)和Day and Woods(参见图10)的微管线使用了相位变换。如图1所示,微管线N级10使用了跃迁信号和透明锁存器12。在数据输入端14从N-1级(图1中没有示出)接收数据并且在数据输出端16将数据传送到N+1级(图1中没有示出)。锁存器12的控制是复杂的,至少由三个元件来执行:C-元件18、异NOR元件(XNOR)20和触发器器件22。C元件18的输出为doneN35,和从N+1级所接收的ackN32一起输入到XNOR 20。XNOR 20的输出En 36可使锁存元件12有效。触发器元件16把从其输入端21上所接收的跃迁信号交替发送到两个输出端24和26其中之一,首先是输出端26,并将其用点进行标记。输出26作为reqN+130被发送到N+1级和作为ackN-131被发送到N-1级。这些设计的缺点是关键路径很长:(1)从由N-1级所接收到的请求信号reqN28至传送到N+1级的请求信号reqN+130,有四个元件延迟,即从C-元件18、XNOR 20、锁存器12和触发器22的延迟;和(2)从由N+1级所接收到的确认信号ackN32至C-元件18的输入33(使其半有效),有三个元件延迟,即从XNOR20、锁存器12和触发器22的延迟。
如上面所引用的“为复杂原因工作的简单电路”文章中,由Molnar和Jones所描述的管线也使用了相位变换。所述管线称作“Charlie boxes”并包括更简单的设计,如在其文章中所描述的S结构。然而,这些设计产生相对迟的完成信号。而且,这些设计没有提出进一步处理复杂管线,如分支管线和接合管线,他们也没有公开“波形”策略、通过双轨控制来消除关键反相器或使用时钟CMOS结构。
还有若干种没有使用相位变换的可替换的管线设计。在上面所引用的由Furber和Day所著的“四相位微管线锁存器控制电路”中,提出了用于异步管线的三个不同的4-相位协议:(1)完全去耦,(2)长保持和(3)半去耦。这些设计有若干缺点:在前两个协议中,管线控制是复杂的。这些设计中最好的,即,半去耦,其引进了高度并发协议,使得在关键路径上四个元件最小。这些元件全是C-元件,其中两个有三个栈深,所暗指的其余反相器用于校正极性。
最终的替换方法是保持跃迁信号协议控制,但用双边触发的D-flip-flops(DETDFF′s)来替换透明的锁存器,如上面所引用的由K.Yun,P.Beerel,and J.Arceo,所著的“高性能异步管线电路”。根据该设计,每当触发锁存器控制时,就会锁存数据。在这种方法避免了相位转换的系统开销的同时,由于DETDFF′S明显比透明锁存器慢,也比锁存器大许多,从而严重降低了其性能。
已提出了一种称作“Gasp”的新的管结构,其具有很高的通量(参见I.Sutherland and S.Fairbanks,″GasP:一种最小限度的FIFO控制″Proc.Intl.Symp.Adv.Res.Async.Circ.Syst.(ASYNC),pp.46-53.IEEE Computer SocietyPress,2001年三月;及J.Ebergen,″Squaring the FIFO in GasP,″Proc.Intl.Symp.Adv.Res.Async.Circ.Syst.(ASYNC),pp.194-205,IEEE Computer SocietyPress,2001年三月)。然而,这种方法针对细晶粒晶体管,以便在控制电路中对所有门实现延迟均等化,及协议具有更复杂的定时约束。
发明内容
本发明的一个目的是提供一种具有简单控制,并可减小控制延迟和锁存器延迟的管线。
本发明的另一目的是提供一种不需要延迟均等化的管线。
本发明的另一目的是提供一种具有单侧定时约束的管线。
本发明的另一目的是提供一种可提供进一步处理管如分叉管或接合管的管线。
本发明的另一目的是提供一种可提供锁存器转换优化的管线。
本发明的另一目的是提供一种具有很细晶粒结构的管线,所述细晶粒结构特别适合产生高通量。
本发明的内容包括:
一种在环境中用于处理数据的异步数字管线电路,所述环境提供用于处理的数据和第一请求信号,所述电路包括:
第一处理级,所述第一处理级包括:
第一锁存控制器,其用于响应从环境中所接收的第二确认信号和从第一数据锁存器接收的第一完成信号,锁存控制器设计为:当接收到第二确认信号时,用来确定第一有效信号有效,及当接收到第一完成信号时,用来确定第一有效信号无效;
第一数据锁存器,其具有建立时间,并设计为从环境中接收数据和第一请求信号,其中,第一请求信号上的每一信号跃迁表示为一个新数据项,第一数据锁存器通过响应第一有效信号而具有有效相和无效相,其中,在有效相中,数据锁存器有效,以便使数据通过第一数据输出端,及在无效相中,数据锁存器无效,因此,在有效相中,通过数据输出端的数据还将第二请求信号传递到环境中,将第一确认信号传递到环境中,及将第一完成信号传递到锁存控制器中。
其中,延迟时间包括接收第一请求信号至传递第一完成信号treqN-doneN,与第一锁存控制器无效第一有效信号相关的延迟时间tLCNl,及数据锁存器的建立时间tsu,其关系可由下式给出:
本发明的内容还包括:
一种在环境中用于处理数据的异步数字管线电路,所述环境提供用于处理的数据和第一请求信号,所述电路包括:
第一处理级,所述第一处理级包括:
第一锁存控制器,其用于响应从第二处理级中所接收的第二确认信号和从第一数据锁存器接收的第一完成信号,锁存控制器设计为:当接收到第二确认信号时,用来确定有效信号有效,及当接收到第一完成信号时,用来确定第一有效信号无效;
第一数据锁存器,其设计为从环境中接收数据和第一请求信号,其中,第一请求信号上的每一信号跃迁表示为一个新数据项,第一数据锁存器通过响应第一有效信号而具有有效相和无效相,其中,在有效相中,第一数据锁存器有效,以便使数据从数据输入端传递到数据输出端,及在无效相中,第一数据锁存器无效,其中,在有效相中,从第一数据锁存器传递到数据输出端的数据还将第一确认信号传递到环境中,及将第一完成信号传递到第一锁存控制器和第一延迟元件中,
第一逻辑块,其设计为用于从第一数据输出中接收数据,对数据进行组合操作,及将数据传递到第二处理级,和
第一延迟元件,其设计为用于从第一数据锁存器接收第一完成信号,将延迟应用到第一完成信号,及将延迟的第一完成信号作为第二请求信号传递到第二处理级,和
第二处理级包括:
第二锁存控制器,其用于响应从环境中所接收的第三确认信号和从第二数据锁存器接收的第二完成信号,锁存控制器设计为:当接收到第三确认信号时,用来确定第二有效信号有效,及当接收到第二完成信号时,用来确定第二有效信号无效;
第二数据锁存器,其设计为从第一处理级接收数据和第二请求信号,其中,第二请求信号上的每一信号跃迁表示为一个新数据项,第二数据锁存器通过响应第二有效信号而具有有效相和无效相,其中,在有效相中,第二数据锁存器有效,以便使数据从数据输入端传递到数据输出端,及在无效相中,第二数据锁存器无效,其中,在有效相中,从第二数据输入端传递到第二数据输出端的数据还将第二确认信号传递到第一处理级中,及将第二完成信号传递到第二锁存控制器和第二延迟元件中,
第二逻辑块,其设计为用于从第二数据输出中接收数据,对数据进行组合操作,及将数据传递到环境,和
第二延迟元件,其设计为用于从第二数据锁存器接收第二完成信号,将延迟应用到第二完成信号,及将延迟的第二完成信号作为第三请求信号传递到环境中;
其中,第一数据锁存器时延迟时间tLtN-1,第一逻辑块的延迟时间tlogicN-1,第一锁存控制器的上升沿时间tLCN-1t,第二锁存控制器的下降沿时间tLCNt,及保持时间thold,其关系可由下式给出。
本发明的内容还包括:
一种在环境中用于处理数据的异步数字管线电路,所述环境提供用于处理的数据和第一请求信号和第二请求信号,所述电路包括:
第一处理级包括:
第一锁存控制器,其设计为:当从第三处理级接收到第三确认信号时,用来确定第一有效信号有效,及当从第一数据锁存器接收到第一完成信号时,用来确定第一有效信号无效;
第一数据锁存器,其设计为从环境中接收数据和第一请求信号,其中,第一请求信号上的每一信号跃迁表示为一个新数据项,第一数据锁存器通过响应第一有效信号而具有有效相和无效相,其中,在有效相中,第一数据锁存器有效,以便使数据从第一数据输入端传递到第一数据输出端,及在无效相中,数据锁存器无效,其中,在有效相中,数据从第一数据输入端传递到第一数据输出端可使第一确认信号传递到环境中,及使第一完成信号传递到第一锁存控制器和第一延迟元件中,
第一逻辑块,其设计为用于从第一数据输出中接收数据,对数据进行组合操作,及将数据传递到第三处理级,和
第一延迟元件,其设计为用于从第一数据锁存器接收第一完成信号,将延迟应用到第一完成信号,及将延迟的第一完成信号作为第三请求信号传递到第三处理级,和
与第一处理级平行的第二处理级,包括:
第二锁存控制器,其设计为:当从第三处理级接收到第三确认信号时,用来确定第二有效信号有效,及当从第二数据锁存器接收到第二完成信号时,用来确定第二有效信号无效;
第二数据锁存器,其设计为从环境中接收数据和第二请求信号,其中,第二请求信号上的每一信号跃迁表示为一个新数据项,第二数据锁存器通过响应第二有效信号而具有有效相和无效相,其中,在有效相中,第二数据锁存器有效,以便使数据从第二数据输入端传递到第二数据输出端,及在无效相中,第二数据锁存器无效,其中,在有效相中,数据从第二数据输入端传递到第二数据输出端还可使第二确认信号传递到环境中,及使第二完成信号传递到第二锁存控制器和第二延迟元件中,
第二逻辑块,其设计为用于从第二数据输出中接收数据,对数据进行组合操作,及将数据传递到环境,和
第二延迟元件,其设计为用于从第二数据锁存器接收第二完成信号,将延迟应用到第二完成信号,及将延迟的第二完成信号作为第四请求信号传递到第三处理级中;
第三处理级,包括:
第三锁存控制器,其设计为:当从环境中接收到第五确认信号时,用来确定第三有效信号有效,及当从第三数据锁存器接收到第三完成信号时,用来确定第三有效信号无效;
顺序逻辑元件,其设计为用于接收第三有效信号、第三请求信号及第四请求信号,并传递第三完成信号;
第三数据锁存器,其设计为从第一处理级和第二处理级接收数据,并通过响应第三有效信号而具有有效相和无效相,其中,在有效相中,第三数据锁存器有效,以便使数据从第三数据输入端传递到第三数据输出端,及在无效相中,第三数据锁存器无效。
通过本申请所公开的内容,本发明的上述目的和其它目的将变得显而易见,并且可通过可在环境中处理数据的异步数字管线电路来实现,所述异步数字管线电路包括至少一个处理级。
处理级包括锁存控制器和数据锁存器。锁存控制器可包括XNOR元件。锁存控制器设计为:当从环境或次处理级接收到第二确认信号时,用来确
定到数据锁存器的有效信号有效,及当从数据锁存器中接收到第一完成信号时,用来确定使有效信号无效。
数据锁存器设计为用来从环境中或前一级中接收数据和第一请求信号。数据锁存器通过响应接收来自锁存控制器的有效信号具有有效相(即透明)和无效相(即不透明)。在有效相中,数据锁存器有效,以便使数据传送到第一数据输出端,及在无效相中,数据锁存器无效。在有效相中,数据传递到第一数据输出端的过程中还会传递第二请求信号到环境中或次级中,传递第一确认信号到环境中或前一级中,及传递第一完成信号到锁存控制器中。
一旦锁存器有效,并在其输入端接收到新数据(和请求信号),必须保持透明足够长时间,以保证数据通过。这种操作需要时间约束,其满足:包括接收第一请求信号至传递第一完成信号的延迟时间treqN-doneN,与XNOR元件相关的使第一有效信号无效的延迟时间tXNORN,及数据锁存器的建立时间tsu,其关系可由下式给出。
处理级还包括逻辑块,其设计用来从第一数据输出端接收数据,对数据进行组合逻辑,并将数据传递到环境中或第二处理级中,延迟元件设计用来从数据锁存器中接收第一完成信号,将延迟应用到第一完成信号,并将延迟的第一完成信号作为第二请求信号传递到环境中或第二处理级中。若在设计中出现第二处理级,第二处理级还包括锁存控制器和数据锁存器。第二处理级还可包括逻辑块和延迟元件。
第二定时约束应确保数据在前级所产生新数据前由级获得,其关系如下:第一数据锁存器的延迟时间tLtN-1,第一逻辑块的延迟时间tlogicN-1,有效第一数据锁存器的时间tXNORN-1,无效第二数据锁存器的时间tXNORN1和保持时间thold,其关系可由下面的方程表示:
在进一步的实施例中,异步管线可用作宽数据通路。在另一实施例中,异步管线还包括:分支管线,其中,单个处理级将数据提供到两个平行的次处理级;或接合管线,其中,单个处理级从两个平行的前处理级接收数据。
根据本发明,已满足了上述的目的,并满足了现有技术中对具有高通量和低过量运行的数字管线电路的要求。参照附图,通过对本发明的示意性实施例的详细描述,本发明的另外一些特点及其优点将变得更加明显。
附图说明
图1为部分现有技术管线的示意图;
图2为根据本发明的管线的第一实施例的示意图;
图3(a)为根据本发明的图2的部分管线的更详细的示意图;
图3(b)为根据本发明的图3(a)所示的部分管线的另一实施例;
图4为根据本发明的管线的第二实施例的示意图;
图5-7为现有技术逻辑门结构的示意图;
图8为根据本发明的管线的第三实施例的示意图;
图9为根据本发明的图8的部分管线的更详细的示意图;
图10为根据本发明的管线的第四实施例的示意图;
图11为根据本发明的管线的第五实施例的示意图;
图12为根据本发明的图11的部分管线的更详细的示意图;
图13-14为根据本发明的图12所示的部分管线的详细的示意图;
图15为根据本发明的图11所示的部分管线的另一详细的示意图;
图16为根据本发明的图15所示的部分管线的详细的示意图;
图17为根据本发明的管线的第六实施例的示意图;
图18为根据本发明的管线的第七实施例的示意图:
图19所示为根据本发明的图2的管线的若干信号的时间曲线图;
具体实施方式
根据本发明的管线设计为可提供极高通量。特别是,当这些管线应用到粗晶粒管线的同时,所述管线尤其适合细晶粒、或“门水平”的管线,每一级只有一个门深。在这种粒度上,可获得最短的周期时间:关键周期包括单逻辑门加小部分控制逻辑(如2-3个元件延迟)。当有额外的优化时,如下面所详细说明的那样,关键周期还可通过组合逻辑和存储元件、利用称作时钟-逻辑或时钟CMOS(C2MOS)的电路结构而进一步缩短。该技术的优点是减小关键延迟、较小的芯片面积和较低的功耗。在每一种情况中,可使用高度并发协议;结果,根据本发明基本FIFO管线的周期仅有5-6个CMOS门延迟(3-4个元件)。根据本发明的管线是“最小开销、超高速跃迁信号异步管线”,也称作MOUSETRAP管线。
图2示出了没有逻辑处理的基本管线100的结构。有若干理由选择异步或无时钟电路结构。首先,同步设计者同时能够实现数千兆时钟分布及面对不同的时间域,所述时钟分布这个任务涉及不断增加的设计时间、校验工作、时钟脉冲相位差和时钟功率管理的挑战。其次,由于异步管线没有全局时钟,具有自然弹性,即,可允许管线中数据项的数目有所变化,及在每一接口的速度也可不同。因此,管线可以与以不同的速率操作的各种环境相接,从而便于模块化和可重用设计。最后,异步管线的定位控制可与很高的通路细颗粒数据路径相匹配。
管线100与“左”环境150和“右”环境160相互作用。(尽管在以后的图中没有明确画出左环境和右环境,但应注意到,在图的端部所接收的信号来自环境中,或发自级的信号发送到环境中。而且,管线100的结构可应用到在左环境和右环境之间(或一般来说,“环境中”)相接合的单级上。)新管线的特征在于其结构和操作的简单性,及易于设计。数据通路使用小而快的标准透明锁存器,及控制包括在每个管线级上的单个门。所示的三个管级,即N-1级102a、N级102b和N+1级102c。每个级102a、102b和102c包括数据锁存器104a、104b和104c和锁存控制器106a、106b和106c。如下面的更加详细的说明,管线级仅与中间邻接的管线级通信,定时约束为局部、简单和单侧。
级102a、102b和102c利用信号,即“请求”reqN-1108a、reqN108b和reqN+1108c和“确认”ackN-1110a、ackN110b和ackN+1110c进行相互通信。(请求信号reqN-1108a来自左环境150,reqN+2108d被传送至右环境160。同样,确认信号ackN-2110’被传送到左环境150,确认信号ackN+110c来自右环境160。)
如图3(a)所示,数据锁存器104a、104b和104c是简单的锁存器,其通常是透明的,即,“有效的”,可使到达各个数据输入112a、112b和112c的新数据快速传递到数据输出114a、114b和114c。(数据输入112a从左环境150接收数据,及数据输出器114c将数据传递到右环境160中。通过锁存有效信号120a可使锁存器104a有效或无效。锁存器104a通常包括反相器对150。)当各个级102a、102b和102c完成锁存新数据时,数据锁存器104a、104b和104c还分别产生为输入信号reqN-1108a、reqN108b和reqN+1108c的锁存形式的“完成”信号doneN-1116a、doneN116b和doneN+116c。每个锁存器用于每一数据位,及每一锁存器用于产生对每一级的完成信号。图3(a)示出了锁存器104a,对其进行了优化,以便增加抗噪声度。图3(b)示出了锁存器184a的另一实施例,对所述锁存器184a进行优化,用来减小延迟。
一种常用的被称作“捆数据”的异步方案用于编码数据通路。(更详细的内容可参照下列文献:C.L.Seitz,“系统定时”,Introduction to VLSISystems,chapter 7.(C.A.Mead et al.,eds.,Addison-Wesley 1980),and A.Daviset al.,“异步电路设计:动机、背景和方法”Asynchronous Digital CircuitDesign,(G.Birtwistle et al.,eds.,Workshops in Computing,Springer-Verlag,1995)pp.1-49,”通过参照上述两个文献的全部内容将其合并到本申请中。)根据捆数据方案,当数据输入112b稳定后,请求控制信号reqN108b必须到达N级102b。(若数据在到达N级102b前通过逻辑块,那么必须适当延迟reqN108b。这方面内容将在下进行详细说明。)一旦N级102b获得新数据,就产生完成信号doneN116b,并将所述完成信号doneN116b发送至其锁存控制器106b中,还将其作为确认信号ackN-110a发送至N-1级102a中,及作为请求信号reqN+1108c发送至N+1级102c中。
锁存控制器106a、106b和106c可利用有效信号EnN-1120a、EnN120b、EnN+1120c使各个数据锁存器104a、104b和104c有效或无效,所述锁存控制器包括异NOR门,即XNOR门118a、118b和118c,其具有两个输入端:来自当前级的完成信号,及来自次级的的确认信号。例如,XNOR门118b从N级102b接收完成信号doneN116b,及从N+1级102c接收ackN110b。
现在说明图2的管线100的操作过程。开始,当管线100为空时,所有的锁存器104a、104b和104c为透明的,所有的完成信号doneN-1116a、doneN116b、doneN+1116c,所有请求信号reqN-1108a、reqN108b和reqN+1108c,及所有确认信号ackN-1110a、ackN110b和ackN+110c均为低电平。管线100使用称为“跃迁信号”的已知发信号方法。因此,当第一数据项流经管线的各个级时,将会精确翻转所有信号的值一次(如高电平)。接着,第二数据项再次翻转所有的信号(如低电平)。每一次跃迁,无论上升或下降,都表示一个明确的事件,即,新数据项的到达。
一旦数据项经过级的锁存器,将并发三个动作:(i)数据和相应请求信号离开所在的级到下一级,以便作进一步处理;(ii)从所在级向前一级发送确认信号,以便使前一级处理下一数据项;和最后(iii)级的锁存器本身快速关闭(即,使不透明),以便使当前数据不被前一级的新数据所覆盖。接着,当级收到下一级的确认信号时,级的锁存器再次被有效(即,使透明)。例如,一旦数据项通过N级102b的锁存器114b,就会并发下面的动作:(i)数据和相应请求reqN+1108c到达N+1级102c,以便作进一步处理;(ii)将确认信号ackN-1110a发送到N-1级102a;和(iii)关闭N级102b的锁存器114b,以便使当前数据不被N-1级102a所产生的新数据所覆盖。接着,当从N+1级102c中接收到确认信号ackN110b时,可使N级102b中的锁存器114b重新有效。
如上所述,当数据流使用跃迁信号,即每一数据项的每一req/done/ack上的一个跃迁,锁存器104a、104b、104c对每个数据项需要两个跃迁:(i)一个用来获得数据(使不透明)和(ii)一个用来释放数据(使透明)。锁存控制器106a、106b、106c根据下面的输入来控制各个锁存器104a、104b、104c:完成信号和确认信号。例如,当数据通过锁存器104b时(即,完成信号doneN116b的值变化时),就会在N级102b上产生第一跃迁;当相同的数据通过下一级(N+1级102c)时(即,确认信号ackN110b的值变化时),就会在N级102b上产生第二跃迁。因此,每一锁存控制器106a、106b、106c上的XNOR门118a、118b、118c的作用象一个相位转换器,在某种意义上,其将跃迁信号完成信号和确认信号转换成用于透明锁存器的电平控制。
包括XNOR门118a、118b、118c的锁存控制器104a、104b、104c被分别设置为“平等测试者”。当两个连续的级,如N级102b和N+1级102c,具有相同的数据项时,根据锁存控制器可以认为第一级,即N级102b,为有效的“空”,及其锁存器是有效的(即为透明的)。当连续的级具有不同的数据项时,根据锁存控制器可以认为第一级,即N级102b,为有效的“满”,即其锁存器是无效的(即为不透明的)。利用XNOR比较N和N+1级中的数据,若相同,使锁存器有效(即保持透明),若不相同,关闭锁存器(即使不透明),所述XNOR检验两个数据请求的相位是否相同。
因此,管线级锁存动作广泛地类似于家用的捕鼠器,某种意义上,在数据到达之前,锁存器有效(即保持透明)。接着,一旦数据通过,就关闭锁存器(即使不透明)。这种行为与绝大多数的同步管线和许多异步管线的仅当新数据到达后开启锁存器不同。
必须满足局部定时约束,以便正确操作。由于完成信号doneN116b的跃迁也是确认信号ackN-110a的跃迁,在无效N级102b的锁存器104b和从N-1级102a上接收新数据之间存在“竞赛”条件。为了确保N级102b中的内容不被破坏,N级102b的锁存器104b必须“足够快”的被无效,即,在N-1级102a提供新数据之前被无效。如下面所详细描述的那样,在实际应用中可容易地满足简单的单侧定时约束。
选择混合协议—用于握手信号的跃迁发信号,及用于锁存器有效信号的电平发信号—具有两个发信号方案的优点。第一,由于没有无用的“返回—到—零”相,所以具有明显少的握手开销。第二,由于它们是电平控制的,所以可使用小而快的透明锁存器。已提出了若干跃迁发信号方案。某些这种方案具有相位转换(如,I.E.Sutherland,″微管线″,Communicationsof the ACM,32(6):720-738,June 1989.,and P.Day et al.,″微管线锁存器设计方案的研究″IEEE TVLSI,3(2):264-272,June 1995,以上两个文献的内容通过参考合并到本申请中),及其它的方案没有相位转换(如,K.Yun et al.,″高性能异步管线电路″Proc.Intl.Symp.Adv.Res.Async.Circ.Syst.(ASYNC),1996,其内容通过参考合并到本申请中)。然而,如本申请所述,本申请中所讨论的管线100具有更小的开销。
如上所述,根据本发明的管线协议是非常简单的,且所产生的操作是非常快的。由于所有的锁存器初始是透明的,空管的前向等待时间很小。由于管线是高度同步的,所以管线的周期很短:一旦数据进入N级,N-1级释放其整个下一周期。
在管线的另一实施例中,可将逻辑处理添加到管线中。第一,在第二实施例中,公开了带有显式锁存器的基本器件。接着在第三实施例中,门电平管线可认为是不带显式锁存器的,其中,每一级仅有单级门深。
图4示出了管线的第二实施例,参照管线200,其中增加了逻辑处理。管线200与管线100基本相同,这里仅关注不同点。如同管线100,管线200具有若干级,即N-1级202a、N级202b和N+1级202c。如同管线100,每一级202a、202b和202c包括数据锁存器204a、204b和204c和锁存控制器206a、206b和206c。锁存控制器206a、206b和206c包括XNOR元件218a、218b和218c。在管线200中,组合逻辑块230a、230b和230c和匹配延迟元件232a、232b和232c插入在邻接的管级之间。例如,若级实现两个32-位操作数A0,…A31和B0,…B31的32位宽OR功能,那么,该逻辑电路将包括32个双输入端OR门用于计算A0+B0和A1+B1等等。对于级(如N-1级202a)的数据通路包括从数据输入端212a、通过锁存器204a、至数据输出端214a、并通过混合逻辑230a至下一级(即N级202b)的数据输入端212b的数据通路。所述级202a、202b、202c利用信号,即“完成”doneN-1216a、doneN216b和doneN+1216c,“请求”reqN-1208a、reqN208b和reqN+1208c和“确认”ackN-1210a、ackN210b和ackN+1210c进行相互通信。(匹配延迟元件232a、232b和232c的延迟施加到完成信号216a、216b和216c上,以便产生相应的请求请求信号208a、208b和208c。)上述的标准异步″捆-数据″方案还可用于管线200中。如同管线100,当到达级的数据输入212b稳定后,请求信号reqN208b必须到达N级202b。因此,延迟元件232a的等待时间必须与通过组合逻辑块230a的最坏情况延迟相匹配。本方法的优点为数据通路本身可使用标准单轨(同步模式)块,所述方法允许有危险,即,当数据稳定后,只要请求信号到达,就可允许数据212b的跃迁假信号。
有若干普通方法可实现匹配延迟元件232a、232b和232c。优选的技术是利用反相串。另一种方案,使用一串跃迁门,众所周知,数据的数量和晶体管的尺寸测定决定了总延迟。另一优选技术复制组合逻辑块230a、230b、230c的最坏情况关键路径,并利用它作为延迟线(延迟元件的更详细说明,如S.Furber,“无时钟计算:微管线ARM处理器”,AsynchronousDigital Circuit Design,Workshops in Computing(eds.G.Birtwistle et al.),Springer-Verlag,1995,pp.211-262 and S.M.Nowick et al.,“SpeculativeCompletion for the Design of High-Performance Asynchronous DynamicAdders,Proc.Intl.Symp.Adv.Res.Async.Circ.Syst.,IEEE Computer SocietyPress,April 1997,pages 210-223,”,通过参考将其全部内容合并至本申请中)。若复制的关键路径设置在逻辑块的附近,即使在环境较大变化和过程变化的情况下,它也可提供良好的延迟跟踪。然而,这项技术比使用一串反相器或其它标准门需要更大的面积。捆数据已有广泛的应用,包括商用Philips 80C51异步微控制器(更详细的描述如,H.v.Gageldonk et al.,“异步低功率80C51微控制器,Proc.Intl.Symp.Adv.Res.Async.Circ.Syst.,(ASYNC),1998,pp.96-107,”其内容通过参考合并到本申请中)。
根据本发明的第三实施例,极高通量的目标可通过“门-电平管线”来实现。在本实施例中,数据通路被分成最细晶粒级,每一个级包括不带有显式锁存器的单电平逻辑。作为其它的优点,没有锁存器可节省芯片区域和功耗。
被称作“时钟CMOS”或“C2MOS”的“时钟逻辑”为门电平管线的特别有吸引力的方法。(更详细的时钟CMOS电路描述如,M.Borah et al.,″使用时钟CMOS电路的高通路和低功率DSP,Proc.Intl.Symp.OnLow-Power Design,1995,pp.139-144,″其内容通过参考合并到本申请中。)在C2MOS方案中,消除了单个显式的锁存器。而时钟可直接应用到逻辑门。图5-7示出了若干例子C2MOS的结构。例如,图5示出了一般C2MOS门300,其具有上拉电路302和下拉电路304,逻辑输入端306和308,及逻辑输出端310。时钟输入En312直接通过两个晶体管来控制门300,一个晶体管316在上拉电路302中及另一个晶体管318在下拉电路304中。当En312无效(即,其补码
En314有效)时,门300在输出端310上保持其输出值。通常,将提供弱反馈的反相器对320安装在门输出端310上,以便提供更稳定的保持操作。同样,图6示出了C2MOS AND门300,具有上拉电路332和下拉电路334,其对输入端A336和输入端B338提供AND函数功能。图7示出了C2MOS锁存器360,具有上拉电路362和下拉电路364,其对输入端A366起到同门的作用。在现有技术中以前提出的C2MOS方案与同步技术一样。然而,如下面所详细说明的那样,根据本发明,利用握手信号来替换时钟适合高速异步管线。
图8示出管线400,其为根据本发明的管线的C2MOS器件。管线400基本上与管线100和200相同,下面仅关注不同的部分。如同管线100和200,管线400具有若干级,即N-1级402a、N级402b和N+1级402c。与管线100和200相比,消除了显式数据锁存器。然而,每一级402a、402b和402c具有“锁存”控制器406a、406b和406c,其用来分别控制C2MOS门404a、404b和404c。门404a、404b和404c其中之一可包括适当的组合逻辑,如门300(图5所示的)、门330(图6所示的)、门360(图7所示的)。
在管线400中使用了同门对405a、405b和405c,其与上所述的门360基本相同。在输入请求信号和输出完成信号时,使用第一同门。在输入请求信号的补和输出完成信号的补时,使用第二同门。更具体而言,如图8所示,有效信号和其补420a、420b和420c相应于图8的有效信号En314和其补信号
En312。在两个同门的第一个同门中,图8中的请求信号reqN-1408a、reqN408b和reqN+1408c和完成信号doneN-1416a、doneN416b和doneN+1416c分别相应于图7中的输入信号366和输出信号310。在两个同门的第二个同门中,请求信号的补
reqN-1408a、
reqN408b和
reqN+1408c是输入信号366,完成信号的补
doneN-1416a、
doneN416b和
doneN+1416c是输出信号310。用于级如N-1级402a的数据通路包括从数据输入端412a,通过C2MOS门404a至数据输出414a,及至下一级如N级402b的数据输入412b的数据通路。C2MOS门404a、404b、404c既提供逻辑也提供锁存功能。
涉及图5-7的用于上述C2MOS门的“时钟”输入实际上是局部产生的En信号,即,锁存控制器的输出。对于管线400,如图8所示,有效信号En和其补
En402a、402b、402c是锁存控制器406a、406b和406c的输出。两个有效信号En和
En用于控制C2MOS门404a、404b和404c。
由于对C2MOS门404a、404b和404c的控制使用了真和补有效En和
En,可使锁存控制器406a、406b和406c的XNOR 418a、418b和418c作为单调双轨门,及提供异OR(即XOR)和NOR(即XNOR)输出。(如本专业技术人员所知,图8通过斜杠“/”和数字“2”示出异了双轨信号)。如同上述的管线100,级402a、402b和402c利用信号,即,“完成信号”doneN-1416a、doneN416b和doneN+1416c,“请求信号”reqN-1408a、reqN408b和reqN+1408c和“确认信号”ackN-1410a、ackN410b和ackN+1410c进行相互通信。然而,XNOR 418a、418b和418c设置为具有双轨输入一(done,
done)和(ack,
ack)一和双轨输出(En,
En)。当这种方法增加总的控制区域时,其可直接提高性能:从临界周期中(从XNOR输入和其输出)消除了两个反相器。
图9示出了双轨锁存器460a的优化结构,其替代了上述的同门405a对。因此,锁存器460a接收双轨数据输入in 412a和其补
in 412′a,及锁存器有效En 420a和其补
En 420′a,产生双轨数据输出out 414a和其补out 414′a。单个双轨锁存器460a具有较小的区域及还可减小双轨输出之间之间的非对称性。
下面将描述两个管线的性能和定时约束的分析评价。现在说明管线的性能的两个关键度量:前向等待时间和周期。
第一,前向等待时间是数据项通过起始空管线所花费的时间。由于空管线中的所有的锁存器是透明的,每一级L的管线等待时间简单地为级锁存器延迟tLt加上逻辑延迟tlogic:
L=tLt+tlogic [1]
与上述Sutherland和Day/Woods的设计相比,本发明的管线在第一通路上仅有单个锁存器延迟,及在第二通路上仅有XNOR延迟。与上述Furber和Day管线相比,本发明的管线在临界周期上仅有3个元件(2个锁存器和一个XNOR),没有3个堆栈深度,没有暗示的反相器,及避免了4-相通信的过量的转换动作。
第二,周期是指当管线以最大速度操作时两个连续数据项出现在管线中的时间间隔。从级锁存器的当前有效到下一个有效的级N的周期包括三个事件:(i)新数据通过锁存器和级逻辑块,即,tLt+tlogic。(ii)数据项通过N+1级锁存器,即,产生ackN的tLt(iii)ackN引起N级锁存控制器再次有效N级锁存器,即,tXNOR1。因此,分析周期T为
T=tLt+tlogic+tLt+tXNOR1 [2]
=2tLt+tlogic+tXNOR1 [3]
其中,tlogic是通过逻辑块的延迟,及tXNOR1是XNOR门有效锁存器所花费的时间。
上述的功能度量适合管线100、200和400。对于C2MOS管线的情况,如管线400,没有显式锁存器。若通过C2MOS门的延迟由tC2MOS来表示,等待时间和周期可由下式给出:
如下面的详细说明,方程3和5的周期相当好,且同步方案很难胜过。例如,带有由补时钟控制的交替锁存器和在每一邻接锁存器对之间具有逻辑的标准同步管线将具有至少2tLt+tlogic+余量的周期,以便补偿时钟不对称和波动。
必须满足两个单边定时约束,以便管线的正确操作:建立时间和数据超量运行。至于建立时间,一旦锁存器在其输入端有效并接收新数据(及req信号),锁存器必须对数据保持足够长时间的透明,以便数据通过。因此,从reqN到En不确认(XNOR转换到低电平)的通路必须比锁存器的建立时间tsu长,而建立时间在锁存器有效后和锁存器无效前需要额外的延迟:
由于从reqN到doneN的延迟通常超过建立时间tsu,所以,这种约束是容易得到满足的。
应该注意到,可用相同的逻辑构成锁存控制器的XNOR元件,在这种情况下,与不确定第一有效信号相关的延迟时间为tLCNt,且单边定时约束的更一般的表示形式为:
由于从reqN到doneN的延迟通常超过建立时间tsu,所以,方程[6]和[6a]的约束是容易得到满足的。
至于数据超量运行,一旦数据进入级,在新数据由前一级所产生之前,应该确保获得数据。若不满足这个条件,则N级的数据将会被新数据所覆盖。因此,由于ackn-1和donen是并行产生的,所以从ackn-1到N级的数据输入的通路必须大于到关闭N级锁存器的时间+保持时间thold,其中,这里所定义的保持时间为锁存器无效后和免受锁存器数据输入的改变所需的延迟:
若管线中存在数据的话,左侧各项表示从XNOR到由N-1级新数据到达的最短路径,即,包括N-1级的锁存器延迟和逻辑延迟。右侧各项表示无效N级锁存器的通路。可将方程重写为简单的约束:
假定
可以消去右边圆括号中的表达式。结果为简单的保持定时约束,由于通过N-1级的锁存和逻辑延迟通常超过保持时间,所以这种约束很容易满足。
如同上面的方程[6a],应该注意到,锁存控制器中XNOR元件可用相同的逻辑来构成,因此,在N-1级锁存控制器中的XNOR的上升跃迁时间为tXNORN-1l,其更一般形式表示为tLCN-1l。同样,在N级锁存控制器中XNOR的下降跃迁时间为tXNORN1,其更一般形式表示为tLCN1。方程[8]的一侧定时约束可表示更一般的形式如:
考虑到处理很宽的数据通路是很重要的,控制信号必须必须传播到许多锁存器。这种控制分布在关键路径中可引起相当大的延迟、减慢了管线的操作。对宽数据通路的有效管线数据处理,这里提出两种解决方法;(i)数据通路分割,和(ii)控制器件
根据第一种方法,即,数据通路分割,将宽数据通路分为若干小的独立流。对每一独立流进行重复的管线控制,及每一独立流具有其自身完全产生器的序列和匹配延迟。结果,所需求的缓冲就大大减少了:在每一级中,锁存控制器产生可传播到仅少数量位上的锁存器有效信号,如,传播到位于分割组内的位上。这种方法常规应用于位片数据通路,如,简单的FIFO′s和逻辑功能单元(如,逐位AND,OR等等。)。
第二种处理宽数据通路的方法称作控制器件,使数据通路与控制不对称(在以下文献中公开了更详细的控制器件,K.Yun,P.Beerel,and J.Arceo,″高性能异步管线电路,Proc.Intl.Symp.Adv.Res.Async.Circ.Syst.,(ASYNC),1996;and C.Molnar,I.Jones,W.Coates,J.Lexau,S.Fairbanks,and I.Sutherland,″两个FIFO环性能实验″Proceedings of the IEEE,87(2):297-307,Feb.1999,通过参考,以上两篇文献的内容合并到本申请中)。与第一种方法相比,没有使用分割;而是插入缓冲器,以便足以放大驱动数据通路锁存器的锁存器有效信号。然而,用于完全发生器的锁存器有效信号不需要这种放大;可将它们在缓冲器前面进行简单的分接。结果,隐藏了将锁存器有效信号传播到数据通路的许多开销,与其它管线操作并发工作。
图10示出了如何实现第二种方法,如,对于FIFO管线500,其基本上与管线100相同,这里仅关注不同之处。如上面所述的管线100,管线500包括若干级:N-1级502a、N级502b和N+1级502c,每一级具有锁存器504a、504b和504c,及锁存控制器506a、506b和506c。每一级502a、502b和502c的数据通路包括数据输入端512a、512b和512c,锁存器504a、504b和504c,输出端514a、514b和514c。管线500还包括缓冲器530a、530b和530c,其分别插入在锁存器有效信号EnN-1520a、EnN520b和EnN+1520c上。通常可用一串反相器来实现缓冲器530a、530b和530c,所述反相器可放大信号。如图10所示,分接完成信号doneN-1516a、doneN516b和doneN+1516c后,插入缓冲器530a、530b和530c。(由于在本实施例中没有延迟,请求信号reqN+1508c和确认信号ackN510b与完成信号doneN516b相同。)结果,插入缓冲器530a、530b和530c仅延迟了数据通路的获得(及没有获得)。每一级reqN-1508a、reqN508b和reqN+1508c的请求信号所产生的缓冲器延迟比输出端514a、514b和514c所产生的缓冲器延迟要早。由于在所有级上的具有相同的缓冲器,对于窄的数据通路,图10的管线500具有相同的周期和如方程[1]-[8]所导出的定时约束。
在稳态操作时,根据本发明所使用的低电平电路优化还进一步提高了管线的性能,即,“定形”XNOR输出。上述管线100、200、400和500的管线性能的基本瓶颈是各个锁存控制器中的XNOR对每一流经管线的数据项必须转换两次,这样就引起了锁存器重复关闭和开启。
所提出的方法是为了防止XNOR的输出(即,锁存器有效En)下降到“0”值,因此在稳态操作时就避免了完全关闭锁存器。这种作用可通过晶体管的尺寸来减小XNOR下降时间来实现。因此,在稳态操作下,XNOR的关键上升沿和锁存器的重新有效因减小了电压摆动而具有较短的延迟。
这种优化在概念上类似于建筑物入口滑动门的行为:有意减慢门的关闭动作,当有稳定的人流通过门口时,门从不完全关闭,这样就会使人们加速通过。因此,减慢了一个动作,即减慢了锁存器无效时间tXNORN1,加速了管线的总的工作。
必须考虑到这种电路优化对定时约束的作用,以便防止关于方程8所描述的数据过量运行。这种优化可能使数据过量运行定时约束更加难以满足。具体而言,减慢了锁存器无效,即增加了tXNORN1,并加快了锁存器有效,即减小了tXNORN-1。使项(tXNORN1-tXNORN-1)是非零正量。结果,某种程度上减小了适合满足不等式方程[8]的容限。实际上,尽管实验表明这种约束可完全满足。(下面将提供更详细的内容)
如下面更详细描述的那样,纯效果是稳态性能象波动管线那样快。(现有技术中已知的和所描述的波动管线,如,D.Wong,G.DeMicheli,andM.Flynn,″使用波动管线设计高性能数字电路″IEEE TCAD,12(1):24-46,Jan.1993;and O.Hauck,M.Garg,and S.A.Huss,″两相异步波动管线及其在2-D-DCT的应用″Proc.Intl.Symp.Adv.Res.Async.Circ.Syst.,(ASYNC),Apr.1999.)与波动管线相比,根据本发明的新管线更加稳定和要求更简单的定时要求。考虑到管线100与其右环境160的的接口(图1)。不管右环境160突然停止或加速,管线100能够处理这种变化。更具体而言,若右环境太慢并且不能对确认信号ackN+1110c作出反应,则最右管级102c很快使锁存器104c不透明(由于其XNOR118c没有接收到确认信号ackN+1110c),因此,防止了左侧级102b的超量运行。若右环境160很快,由于右环境160等待级的请求信号108d,所述右环境160应适当的停止,直到最右级102c为右环境160提供数据。相同的理由也可应用到管线的中间级,还可使管线稳定内部延迟变化。
前述讨论是针对线性原理,其具有许多实际的应用,尤其可应用于FIFO或处理器管线。然而,在复杂的系统结构中,还经常需要非线性管线,如图11所示的管线600的结构。管线600并合了两个简单的、新颖的、原来的—“分支”和“接合”—其延伸了根据本发明所述管线的应用性。管线600具分支结构620,及接合结构630。分支结构620包括级602a,其将数据输出到两个级602b和602c。接合结构630包括级602d,其接收来自级602e和602f的输入。应该注意到,根据具体应用的需要,管线可合并或多或少的分支和接合。
图12更详细地示出了管线600的示范分支结构620。级602a设置为提供数据输出到两目的级602b、602c。级602b和602c与上述的级202a是相同的。级602a基本上与上述的级202a相同,这里仅关注不同处。锁存控制器606a包括XNOR 618a和Müller C-元件619a。锁存控制器606a产生有效信号En620a,其可使锁存器604a无效和有效。级602a接收请求信号reqN608a和来自左环境或前级(没有示出)的数据输入612a。可将所提供完成信号doneN616a输入到锁存控制器606a中的XNOR 618a,及还为左环境提供确认信号ackN-1610a。还提供组合逻辑630a和匹配的延迟元件632a。
在分支结构中,数据输出612b、612c和相应的请求信号reqN+1(1)608b和reqN+1(2)608c(具有由匹配延迟元件632a所施加的匹配延迟的“匹配的完成输出”)两者分支为两个或多个目的级602b、602c。接着,通过锁存控制器606a中的C-元件619a将两个或多个确认信号ackN(1)610b和ackN(2)610c组合。如图13-14所示,确认信号ackN(1)610b和ackN(2)610c在顺序元件中组合成,所述顺序元件如Müller C-元件619a,以便产生输出611a。C-元件619a可包括弱反相器、或“保持器”613a。如现有技术中所公知的内容,C-元件是“事件加法器”,即当其所有的输出完全变化一遍时,它就会产生一次跃迁。(有关C-元件更详细的内容已由如Sutherland,″微管线″描述过,通过参考将其合并上面的内容中)。C-元件619a的输出端611a和完成信号doneN-1616a作为XNOR 118a的输入。
图15更详细地示出了管线600的示范连接结构630。级602e和602f与级202a是相同的。级602d基本上与上述的级202a和级602a相同,这里仅关注不同处。级602d包括锁存器604d和锁存控制器606d,所述锁存控制器606d包括XNOR元件618d,并提供有效信号En620d。XNOR元件618d具有接收来自右环境的第一输入端ack610f和接收来自C-元件640d的第二输入端done616f。
确认信号是简单的分支线,可使确认信号ackN-1(1)610e和ackN-1(2)610f与发送级(即,级602e和602f)的锁存控制器606e和606f进行通信。请求信号reqN(1)608e和reqN(2)608f(即如上所的述匹配的完成输入)和其从级602e和602f接收的伴随数据输入612e和612f组合如下:数据输入612e和612f被简单地合成一个数据流并锁存在一起。如图16所示。在“锁存器有效”信号En 620d的控制下,利用顺序元件(如“门控”C-元件640d)组合请求信号reqN(1)608e和reqN(2)608f。不管“锁存器有效”信号En620d是否保持,当组合的请求信号reqN(1)608e和reqN(2)608f其中全部为1时,门控C-元件640d的输出(即done616f)为1,及当组合的请求信号reqN,(1)608e和reqN(2)608f其中全部为0时,门控C-元件640d的输出为0。在其它情况,即,(a)当不确定“锁存器有效”信号En620d时,或(b)当组合的请求信号reqN(1)608e和reqN(2)608f不相等时,门控的C-元件640d简单地保持其值。锁存有效信号620d传递到锁存器604d。在晶体管标准中,下拉电路是单级栈,其具有用于每一个请求的一个晶体管,也是用于“锁存器有效”的晶体管。同样,上拉电路是单级栈,其具有用于每一个请求的晶体管;及用于补“锁存器有效”的晶体管。
本发明的另一实施例是如图17所示的管线100′。除了管线100′使用了用于请求、完成和确认信号的双轨结构外,管线100′基本与上述的管线100相同。更具体而言,处理请求、完成和确认信号的锁存器104′a、104′b、104′c基本上与上述图9所示的双轨锁存器460a相同。同样,锁存控制器106′a、106′b、106′c包括XNOR元件118′a、118′b、118′c,其可由单调的双轨门来实现,并提供现有技术中所知的异OR(即XOR)和异NOR(即XNOR)输出。如同上述的管线100,包括输入112′a、112′b、112′c和数据输出114′a、114′b、114′c的数据通路本身具有单轨结构。
本发明的另一实施例是图18所示的管线200′。除了管线200′使用了用于处理请求、完成和确认信号的双轨结构外,管线200′基本与上述的管线200相同。处理请求、完成和确认信号的锁存器204′a、204′b、204′c基本上与上述图9所示的双轨锁存器460a相同。同样,锁存控制器206′a、206′b、206′c包括XNOR元件218′a、218′b、218′c,其可利用单调的双轨门来实现,并提供现有技术中所知的异OR(即XOR)和异NOR(即XNOR)输出。如同上述的管线200,数据通路具有单轨结构。
例子
利用HSPICE,对基本管线如上述的管线100,就本申请所描述的若干管线形式进行了模拟。在16-位宽数据通路上模拟了(没有逻辑处理)简单的10-级FIFO。在两种不同的CMOS技术中进行设计和模拟FIFO:(i)现有技术已知的,台湾半导体制造公司(TSMC)0.25微米CMOS工艺,和(ii)现有技术已知的,0.6μm惠普(HP)CMOS 14TB工艺。对于第一种技术,仅使用了非优化的管线结构:我们不包括上述的“波形”优化。对于第二种技术,对优化的和非优化的形式的管线进行了模拟。在每一种情况,使用仔细的晶体管尺寸来提高其性能。
假设2.5V电源、300K温度及标准工艺角(如现有技术中所公知的,其含义为假设制造条件将产生“平均速度”的芯片,即,与由“标准工艺”模拟的预期相比,由铸造厂所产生的接近一半的芯片将具有较高的速度,而另一半具有较低的速度),利用0.25μm TSMC工艺进行第一种模拟。简单的用户单元设计为:选通门XNOR/XOR对的互补,及标准6晶体管选通门动态D-锁存器。
表1总结了预先设计模拟的结果。给定总的管周期T、将周期细分为锁存器延迟tL1和控制器门延迟tXNOR1和tXNOR1。初始提供3.51千兆赫的通量。
表1.MOUSETRAP FIFO的性能(0.25μm TSMC技术)
管设计 | 锁存器延迟tL1(ps) | XNOR延迟 | 周期T | 通量(千兆赫) | ||
tXNOR1(ps) | TXNOR1(ps) | 解析式 | (ps) | |||
100 | 110 | 63 | 63 | 2tL1+tXNOR1 | 285 | 3.51 |
这些数据优于S.Schuster,W.Reohr,P.Cook,D.Heidel,M.Immediato,andK.Jenkins,″Asynchronous Interlocked Pipelined CMOS Circuits Operating at3.3-4.5GHz,:Proc.ISSCC,February 2000″的IPCMOS结构。然而,他们所报道的3.3GHz的结果是用于高性能IBM0.18μm工艺,所述IBM0.18μm工艺在实际中显著比本申请中所使用的0.25μm TSMC要快。(IBM工艺是高性能的铜互连的工艺,而TSMC是用于互相连接合金的较低级工艺。与常规“散装半导体”的TSMC相比,IBM处理是高级的“绝缘体上的硅晶体”(SOI)处理。)当与本申请的管线相比时,IPCMOS关键路径由12级CMOS逻辑加上选通门组成。相反,本申请所描述的管线在关键路径上仅有5-6级CMOS逻辑(若在数据通路有分支和接合,则再加上2级)。此外,本申请所描述的管线具有更简单电路元件和定时约束的优点。
进行第二模拟来便评价上述的波形优化。当前,仅对0.6μmHP CMOS技术,在3.3V电源,300K温度,标准工艺角下进行模拟。模拟表明了波形方法的优点。用优化和非优化进行评价了简单FIFO。一旦将XNOR/XOR对设计为具有选通门,将锁存器设计为时钟CMOS结构(图6)。
表2示出了第二模拟的结果。非优化的FIFO的通量为1.67GHz,及优化的FIFO的通量为1.92GHz,性能提高15%。此外,更容易满足方程8(数据超量运行)定时约束:tLt=0.20ns,tlogic=0ns,tXNORt-tXNOR1=0.06ns。
表2.利用时钟CMOS逻辑的
MOUSETRAP FIFO性能(0.6μm HP技术)
管设计 | C2MOS逻辑延迟tC2mos(ns) | XNOR延迟 | 周期T | 通量(千兆赫) | ||
tXNOR1(ns) | tXNOR1(ns) | 解析式 | (ns) | |||
100 | 0.22 | 0.16 | 0.13 | 2tC2mos+tXNOR1 | 0.60 | 1.67 |
100优化 | 0.20 | 0.12 | 0.18 | 2tC2mos+tXNOR1 | 0.52 | 1.92 |
图16示出了在0.25μm TSMC技术中FIFO单模拟的3个邻接级(N-1,N和N+1)的波形。模拟包括用于每一级的done信号和用于N级(即,级控制器的输出)的“锁存器有效”。该波形702相应于管线100的信号116a,波形704相应于信号116b,及波形706相应于信号116c。波形708相应于管线100的信号120b。波形702、704、706和708都是随时间变化的曲线。在模拟中,对于每一数据项,一旦N级通过波形704(交替为1和0值)表示已完成,锁存器有效波形708表示N级锁存器无效(enable=0)。同样,对每一数据项,一旦N+1级表示完成时,可使N级锁存器有效信号再次有效(enable=1)。即使没有处理逻辑(这种逻辑将提高容限):如模拟的右侧所示,在N-1级产生新数据标记前(完成保持),使N级锁存器有效信号无效约45皮秒。
应该理解,上面仅是对本发明的原理进行了示意性的描述,在不偏离本发明的范围和实质的情况下,本专业技术人员就可对本发明进行各种不同的改变。
Claims (20)
1.一种在环境中用于处理数据的异步数字管线电路,所述环境提供用于处理的数据和第一请求信号,所述电路包括:
第一处理级,所述第一处理级包括:
第一锁存控制器,其用于响应从环境中所接收的第二确认信号和从第一数据锁存器接收的第一完成信号,锁存控制器设计为:当接收到第二确认信号时,用来确定第一有效信号有效,及当接收到第一完成信号时,用来确定第一有效信号无效;
第一数据锁存器,其具有建立时间,并设计为从环境中接收数据和第一请求信号,其中,第一请求信号上的每一信号跃迁表示为一个新数据项,第一数据锁存器通过响应第一有效信号而具有有效相和无效相,其中,在有效相中,数据锁存器有效,以便使数据通过第一数据输出端,及在无效相中,数据锁存器无效,因此,在有效相中,通过数据输出端的数据还将第二请求信号传递到环境中,将第一确认信号传递到环境中,及将第一完成信号传递到锁存控制器中。
其中,延迟时间包括接收第一请求信号至传递第一完成信号treqN-doneN,与第一锁存控制器无效第一有效信号相关的延迟时间tLCNl,及数据锁存器的建立时间tsu,其关系可由下式给出:
2.根据权利要求1所述的异步数字管线电路,其中,第一锁存控制器包括具有第二确认信号作为第一输入、第一完成信号作为第二输入、及第一锁存器有效信号作为输出的两输入XNOR元件。
3.根据权利要求2所述的异步数字管线电路,其特征在于,XNOR元件为单调双轨门,第一完成信号和第二确认信号为双轨输入,第一有效信号为双轨输出,及第一数据锁存器设计为用来接收作为双轨输入的第一有效信号。
4.根据权利要求1所述的异步数字管线电路,还包括:第一缓冲器,用于放大第一有效信号。
5.一种在环境中用于处理数据的异步数字管线电路,所述环境提供用于处理的数据和第一请求信号,所述电路包括:
第一处理级,所述第一处理级包括:
第一锁存控制器,其用于响应从第二处理级中所接收的第二确认信号和从第一数据锁存器接收的第一完成信号,锁存控制器设计为:当接收到第二确认信号时,用来确定有效信号有效,及当接收到第一完成信号时,用来确定第一有效信号无效;
第一数据锁存器,其设计为从环境中接收数据和第一请求信号,其中,第一请求信号上的每一信号跃迁表示为一个新数据项,第一数据锁存器通过响应第一有效信号而具有有效相和无效相,其中,在有效相中,第一数据锁存器有效,以便使数据从数据输入端传递到数据输出端,及在无效相中,第一数据锁存器无效,其中,在有效相中,从第一数据锁存器传递到数据输出端的数据还将第一确认信号传递到环境中,及将第一完成信号传递到第一锁存控制器和第一延迟元件中,
第一逻辑块,其设计为用于从第一数据输出中接收数据,对数据进行组合操作,及将数据传递到第二处理级,和
第一延迟元件,其设计为用于从第一数据锁存器接收第一完成信号,将延迟应用到第一完成信号,及将延迟的第一完成信号作为第二请求信号传递到第二处理级,和
第二处理级包括:
第二锁存控制器,其用于响应从环境中所接收的第三确认信号和从第二数据锁存器接收的第二完成信号,锁存控制器设计为:当接收到第三确认信号时,用来确定第二有效信号有效,及当接收到第二完成信号时,用来确定第二有效信号无效;
第二数据锁存器,其设计为从第一处理级接收数据和第二请求信号,其中,第二请求信号上的每一信号跃迁表示为一个新数据项,第二数据锁存器通过响应第二有效信号而具有有效相和无效相,其中,在有效相中,第二数据锁存器有效,以便使数据从数据输入端传递到数据输出端,及在无效相中,第二数据锁存器无效,其中,在有效相中,从第二数据输入端传递到第二数据输出端的数据还将第二确认信号传递到第一处理级中,及将第二完成信号传递到第二锁存控制器和第二延迟元件中,
第二逻辑块,其设计为用于从第二数据输出中接收数据,对数据进行组合操作,及将数据传递到环境,和
第二延迟元件,其设计为用于从第二数据锁存器接收第二完成信号,将延迟应用到第二完成信号,及将延迟的第二完成信号作为第三请求信号传递到环境中;
其中,第一数据锁存器时延迟时间tLtN-1,第一逻辑块的延迟时间tlogicN-1,第一锁存控制器的上升沿时间tLCN-1t,第二锁存控制器的下降沿时间tLCNt,及保持时间thold,其关系可由下式给出。
6.根据权利要求5所述的异步数字管线电路,其中,第一锁存控制器还包括两输入XNOR元件,其具有作为第一输入的第二确认信号、作为第二输入的第一完成信号、及作为输出的第一有效信号。
7.根据权利要求5所述的异步数字管线电路,其中,第二锁存控制器还包括两输入XNOR元件,其具有作为第一输入的第三确认信号、作为第二输入的第二完成信号、及作为输出的第二有效信号。
8.根据权利要求5所述的异步数字管线电路,其中,第一数据锁存器为C2MOS门。
9.根据权利要求5所述的异步数字管线电路,其中,第二数据锁存器为C2MOS门。
10.根据权利要求5所述的异步数字管线电路,其中,第一锁存控制器为单调双轨门,第一完成信号和第二确认信号为双轨输入,及第一有效信号为双轨输出。
11.根据权利要求5所述的异步数字管线电路,其中,第一锁存控制器还设计为:用于响应从与第二处理级平行的第三处理级中所接收的第四确认信号,其中,第一逻辑块还设计为:将数据传递到第三处理级,其中,第一延迟元件还设计为将延迟的第一完成信号作为第四请求信号传递到第三处理级,所述电路还包括:
与第二处理级平行的第三处理级,包括:
第三锁存控制器,和
第三数据锁存器。
12.根据权利要求11所述的异步数字管线电路,其中,第一锁存控制器还包括:
顺序元件,其设计为从第二处理级接收第二确认信号作为第一输入和从第三处理级接收第四确认信号作为第二输入,及提供第一顺序元件输出,
两元件XNOR元件,其设计为接收第一顺序元件输出作为第一输入和第一完成信号作为第二输入,及提供第一锁存有效信号作为输出。
13.根据权利要求12所述的异步数字管线电路,其中,顺序元件设计为:当第二确认信号和第四确认信号被确认时,从而确认第一C-元件输出,当第二确认信号和第四确认信号没有被确认时,就不确认第一C-元件输出,否则就保持第一C-元件输出值。
14.根据权利要求12所述的异步数字管线电路,其中,顺序元件为Müller C-元件。
15.一种在环境中用于处理数据的异步数字管线电路,所述环境提供用于处理的数据和第一请求信号和第二请求信号,所述电路包括:
第一处理级包括:
第一锁存控制器,其设计为:当从第三处理级接收到第三确认信号时,用来确定第一有效信号有效,及当从第一数据锁存器接收到第一完成信号时,用来确定第一有效信号无效;
第一数据锁存器,其设计为从环境中接收数据和第一请求信号,其中,第一请求信号上的每一信号跃迁表示为一个新数据项,第一数据锁存器通过响应第一有效信号而具有有效相和无效相,其中,在有效相中,第一数据锁存器有效,以便使数据从第一数据输入端传递到第一数据输出端,及在无效相中,数据锁存器无效,其中,在有效相中,数据从第一数据输入端传递到第一数据输出端可使第一确认信号传递到环境中,及使第一完成信号传递到第一锁存控制器和第一延迟元件中,
第一逻辑块,其设计为用于从第一数据输出中接收数据,对数据进行组合操作,及将数据传递到第三处理级,和
第一延迟元件,其设计为用于从第一数据锁存器接收第一完成信号,将延迟应用到第一完成信号,及将延迟的第一完成信号作为第三请求信号传递到第三处理级,和
与第一处理级平行的第二处理级,包括:
第二锁存控制器,其设计为:当从第三处理级接收到第三确认信号时,用来确定第二有效信号有效,及当从第二数据锁存器接收到第二完成信号时,用来确定第二有效信号无效;
第二数据锁存器,其设计为从环境中接收数据和第二请求信号,其中,第二请求信号上的每一信号跃迁表示为一个新数据项,第二数据锁存器通过响应第二有效信号而具有有效相和无效相,其中,在有效相中,第二数据锁存器有效,以便使数据从第二数据输入端传递到第二数据输出端,及在无效相中,第二数据锁存器无效,其中,在有效相中,数据从第二数据输入端传递到第二数据输出端还可使第二确认信号传递到环境中,及使第二完成信号传递到第二锁存控制器和第二延迟元件中,
第二逻辑块,其设计为用于从第二数据输出中接收数据,对数据进行组合操作,及将数据传递到环境,和
第二延迟元件,其设计为用于从第二数据锁存器接收第二完成信号,将延迟应用到第二完成信号,及将延迟的第二完成信号作为第四请求信号传递到第三处理级中;
第三处理级,包括:
第三锁存控制器,其设计为:当从环境中接收到第五确认信号时,用来确定第三有效信号有效,及当从第三数据锁存器接收到第三完成信号时,用来确定第三有效信号无效;
顺序逻辑元件,其设计为用于接收第三有效信号、第三请求信号及第四请求信号,并传递第三完成信号;
第三数据锁存器,其设计为从第一处理级和第二处理级接收数据,并通过响应第三有效信号而具有有效相和无效相,其中,在有效相中,第三数据锁存器有效,以便使数据从第三数据输入端传递到第三数据输出端,及在无效相中,第三数据锁存器无效。
16.根据权利要求15所述的异步数字管线电路,其中,第一锁存控制器还包括两输入XNOR元件,其具有作为第一输入的第三确认信号、作为第二输入的第一完成信号及作为输出的第一有效信号。
17.根据权利要求15所述的异步数字管线电路,其中,第二锁存控制器还包括两输入XNOR元件,其具有作为第一输入的第三确认信号、作为第二输入的第二完成信号、及作为输出的第二有效信号。
18.根据权利要求15所述的异步数字管线电路,其中,第三锁存控制器还包括两输入XNOR元件,其具有作为第一输入的第五确认信号、作为第二输入的第三完成信号、及作为输出的第三有效信号。
19.根据权利要求15所述的异步数字管线电路,其中,顺序元件设计为:当第三有效信号、第三请求信号和第四请求信号被确认时,从而确认第三完成信号,及当第三有效信号被确认,且第三请求信号和第四请求信号没有被确认时,就不确认第三完成信号,否则就保持第三完成信号的值。
20.根据权利要求19所述的异步数字管线电路,其中,顺序元件为Müller C-元件。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US24258700P | 2000-10-23 | 2000-10-23 | |
US60/242,587 | 2000-10-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1471668A CN1471668A (zh) | 2004-01-28 |
CN1306393C true CN1306393C (zh) | 2007-03-21 |
Family
ID=22915393
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB018177948A Expired - Fee Related CN1306393C (zh) | 2000-10-23 | 2001-09-21 | 具有锁存控制器的异步管线 |
Country Status (7)
Country | Link |
---|---|
US (1) | US6958627B2 (zh) |
EP (1) | EP1330706A1 (zh) |
KR (1) | KR100783687B1 (zh) |
CN (1) | CN1306393C (zh) |
AU (1) | AU2001292980A1 (zh) |
CA (1) | CA2424572C (zh) |
WO (1) | WO2002035346A1 (zh) |
Families Citing this family (94)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3695428B2 (ja) * | 2002-07-17 | 2005-09-14 | 日本電気株式会社 | 論理回路の遅延最適化システムおよびその最適化方法ならびに制御プログラム |
US7096438B2 (en) * | 2002-10-07 | 2006-08-22 | Hewlett-Packard Development Company, L.P. | Method of using clock cycle-time in determining loop schedules during circuit design |
US7000137B2 (en) * | 2002-10-07 | 2006-02-14 | Hewlett-Packard Development Company, L.P. | System for and method of clock cycle-time analysis using mode-slicing mechanism |
US7436861B2 (en) * | 2002-10-09 | 2008-10-14 | Sun Microsystems, Inc. | Asynchronous control circuit with symmetric forward and reverse latencies |
CN100419673C (zh) | 2003-01-24 | 2008-09-17 | 皇家飞利浦电子股份有限公司 | 流水线同步设备以及相应的方法 |
US7260001B2 (en) * | 2003-03-20 | 2007-08-21 | Arm Limited | Memory system having fast and slow data reading mechanisms |
US7278080B2 (en) * | 2003-03-20 | 2007-10-02 | Arm Limited | Error detection and recovery within processing stages of an integrated circuit |
US8650470B2 (en) | 2003-03-20 | 2014-02-11 | Arm Limited | Error recovery within integrated circuit |
US8185812B2 (en) | 2003-03-20 | 2012-05-22 | Arm Limited | Single event upset error detection within an integrated circuit |
EP1604281B1 (en) * | 2003-03-20 | 2006-08-09 | ARM Limited | Systematic and random error detection and recovery within processing stages of an integrated circuit |
WO2005069121A1 (en) * | 2004-01-13 | 2005-07-28 | Koninklijke Philips Electronics N.V. | Electronic circuit with a fifo pipeline |
WO2005091130A2 (en) * | 2004-03-10 | 2005-09-29 | Koninklijke Philips Electronics N.V. | Instruction pipeline |
JP2007528550A (ja) * | 2004-03-10 | 2007-10-11 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 電子回路 |
KR100619880B1 (ko) * | 2004-07-01 | 2006-09-08 | 엘지전자 주식회사 | 이동통신 단말기의 전원 관리 장치 및 방법 |
TWI287727B (en) * | 2004-07-02 | 2007-10-01 | Tatung Co | Programmable logic block applied to non-synchronous circuit design |
US7366942B2 (en) * | 2004-08-12 | 2008-04-29 | Micron Technology, Inc. | Method and apparatus for high-speed input sampling |
US7584449B2 (en) * | 2004-11-22 | 2009-09-01 | Fulcrum Microsystems, Inc. | Logic synthesis of multi-level domino asynchronous pipelines |
JP4368320B2 (ja) * | 2005-03-16 | 2009-11-18 | 富士通株式会社 | 情報処理システム,パイプライン処理装置,ビジー判定プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体 |
US7576580B2 (en) * | 2005-04-27 | 2009-08-18 | University Of Connecticut | Energy efficient clock deskew systems and methods |
US8150994B2 (en) * | 2005-06-03 | 2012-04-03 | Microsoft Corporation | Providing flow control and moderation in a distributed message processing system |
US7971038B2 (en) * | 2005-09-05 | 2011-06-28 | Nxp B.V. | Asynchronous ripple pipeline |
US20070123792A1 (en) * | 2005-11-17 | 2007-05-31 | Charlotte-Mecklenburg Hospital Authority D/B/A Carolinas Medical Center | System and method for determining airway obstruction |
CN100465970C (zh) * | 2005-11-17 | 2009-03-04 | 大同股份有限公司 | 可用于非同步电路设计的可程序化逻辑电路 |
US7505304B2 (en) * | 2006-04-27 | 2009-03-17 | Achronix Semiconductor Corporation | Fault tolerant asynchronous circuits |
US7504851B2 (en) * | 2006-04-27 | 2009-03-17 | Achronix Semiconductor Corporation | Fault tolerant asynchronous circuits |
US8044585B2 (en) * | 2006-05-02 | 2011-10-25 | Chain Technology Consultant Inc. | Light emitting diode with bumps |
US8086832B2 (en) | 2006-05-19 | 2011-12-27 | International Business Machines Corporation | Structure for dynamically adjusting pipelined data paths for improved power management |
US7913007B2 (en) * | 2007-09-27 | 2011-03-22 | The University Of North Carolina | Systems, methods, and computer readable media for preemption in asynchronous systems using anti-tokens |
US8065647B2 (en) * | 2007-10-19 | 2011-11-22 | The University Of Utah Research Foundation | Method and system for asynchronous chip design |
US7667497B2 (en) * | 2007-10-30 | 2010-02-23 | President And Fellows Of Harvard College | Process variation tolerant circuit with voltage interpolation and variable latency |
US7971043B2 (en) * | 2007-11-22 | 2011-06-28 | Andes Technology Corporation | Electronic system and method for changing number of operation stages of a pipeline |
US7917793B2 (en) * | 2008-02-11 | 2011-03-29 | National Chung Cheng University | Apparatus providing locally adaptive retiming pipeline with swing structure |
US8171386B2 (en) * | 2008-03-27 | 2012-05-01 | Arm Limited | Single event upset error detection within sequential storage circuitry of an integrated circuit |
KR100933813B1 (ko) * | 2008-04-11 | 2009-12-24 | 주식회사 하이닉스반도체 | 반도체 메모리장치 및 이의 파이프입력 신호 생성방법 |
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 |
US8362802B2 (en) * | 2008-07-14 | 2013-01-29 | The Trustees Of Columbia University In The City Of New York | Asynchronous digital circuits including arbitration and routing primitives for asynchronous and mixed-timing networks |
US7759974B1 (en) | 2008-07-17 | 2010-07-20 | Xilinx, Inc. | Pipelined unidirectional programmable interconnect in an integrated circuit |
US7743175B1 (en) | 2008-07-17 | 2010-06-22 | Xilinx, Inc. | Methods of initializing routing structures in integrated circuits |
US8161367B2 (en) * | 2008-10-07 | 2012-04-17 | Arm Limited | Correction of single event upset error within sequential storage circuitry of an integrated circuit |
TWI403745B (zh) * | 2009-01-17 | 2013-08-01 | Univ Nat Taiwan | 非同步掃描鍊電路 |
US7948265B1 (en) * | 2009-04-02 | 2011-05-24 | Xilinx, Inc. | Circuits for replicating self-timed logic |
US7746105B1 (en) | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Merging data streams in a self-timed programmable integrated circuit |
US7746103B1 (en) | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Multi-mode circuit in a self-timed integrated circuit |
US9411554B1 (en) | 2009-04-02 | 2016-08-09 | Xilinx, Inc. | Signed multiplier circuit utilizing a uniform array of logic blocks |
US7746112B1 (en) | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Output structure with cascaded control signals for logic blocks in integrated circuits, and methods of using the same |
US7746108B1 (en) | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Compute-centric architecture for integrated circuits |
US7746110B1 (en) | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Circuits for fanning out data in a programmable self-timed integrated circuit |
US8527572B1 (en) | 2009-04-02 | 2013-09-03 | Xilinx, Inc. | Multiplier architecture utilizing a uniform array of logic blocks, and methods of using the same |
US7746111B1 (en) | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Gating logic circuits in a self-timed integrated circuit |
US7982496B1 (en) | 2009-04-02 | 2011-07-19 | Xilinx, Inc. | Bus-based logic blocks with optional constant input |
US7746104B1 (en) | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Dynamically controlled output multiplexer circuits in a programmable integrated circuit |
US7746101B1 (en) | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Cascading input structure for logic blocks in integrated circuits |
US9002915B1 (en) | 2009-04-02 | 2015-04-07 | Xilinx, Inc. | Circuits for shifting bussed data |
US7746102B1 (en) | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Bus-based logic blocks for self-timed integrated circuits |
US7746106B1 (en) | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Circuits for enabling feedback paths in a self-timed integrated circuit |
US7746109B1 (en) | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Circuits for sharing self-timed logic |
US8706793B1 (en) | 2009-04-02 | 2014-04-22 | Xilinx, Inc. | Multiplier circuits with optional shift function |
US7733123B1 (en) * | 2009-04-02 | 2010-06-08 | Xilinx, Inc. | Implementing conditional statements in self-timed logic circuits |
US8351489B2 (en) * | 2009-06-08 | 2013-01-08 | King Fahd University Of Petroleum And Minerals | Two-phase return-to-zero asynchronous transceiver |
US8188765B2 (en) | 2010-09-15 | 2012-05-29 | International Business Machines Corporation | Circuit and method for asynchronous pipeline processing with variable request signal delay |
US8913601B1 (en) | 2010-10-01 | 2014-12-16 | Xilinx, Inc. | Programmable integrated circuit and method of asynchronously routing data in a circuit block of an integrated circuit |
US8294490B1 (en) | 2010-10-01 | 2012-10-23 | Xilinx, Inc. | Integrated circuit and method of asynchronously routing data in an integrated circuit |
US8358148B1 (en) | 2010-10-01 | 2013-01-22 | Xilinx, Inc. | Programmable integrated circuit and method of asynchronously routing data in an integrated circuit |
US8402164B1 (en) | 2010-10-27 | 2013-03-19 | Xilinx, Inc. | Asynchronous communication network and methods of enabling the asynchronous communication of data in an integrated circuit |
US8493120B2 (en) | 2011-03-10 | 2013-07-23 | Arm Limited | Storage circuitry and method with increased resilience to single event upsets |
WO2013020114A1 (en) * | 2011-08-03 | 2013-02-07 | Cornell University | Energy-efficient pipeline circuit templates for high performance asynchronous circuits |
US8644318B2 (en) * | 2011-09-21 | 2014-02-04 | Qualcomm, Incorporated | Systems and methods for asynchronous handshake-based interconnects |
US9182782B2 (en) * | 2011-09-22 | 2015-11-10 | Oracle International Corporation | Synchronizing timing of communication between integrated circuits |
US8612815B2 (en) * | 2011-12-16 | 2013-12-17 | International Business Machines Corporation | Asynchronous circuit with an at-speed built-in self-test (BIST) architecture |
CN102880744A (zh) * | 2012-08-30 | 2013-01-16 | 西安欣创电子技术有限公司 | 逻辑时序单元及基于该时序单元的自动化设计平台 |
US8773166B1 (en) * | 2012-11-01 | 2014-07-08 | Xilinx, Inc. | Self-timed single track circuit |
US8773164B1 (en) * | 2012-11-01 | 2014-07-08 | Xilinx, Inc. | Programmable interconnect network |
US9164794B2 (en) * | 2013-08-20 | 2015-10-20 | Netronome Systems, Inc. | Hardware prefix reduction circuit |
US9325520B2 (en) * | 2013-09-06 | 2016-04-26 | Huawei Technologies Co., Ltd. | System and method for an asynchronous processor with scheduled token passing |
CN105431819A (zh) * | 2013-09-06 | 2016-03-23 | 华为技术有限公司 | 异步处理器消除亚稳态的方法和装置 |
CN103873031B (zh) * | 2014-03-06 | 2016-06-01 | 无锡力芯微电子股份有限公司 | 非时钟触发寄存器 |
US9558309B2 (en) * | 2014-05-09 | 2017-01-31 | University Of Southern California | Timing violation resilient asynchronous template |
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 |
CN105740177B (zh) * | 2014-12-08 | 2019-05-21 | 台湾积体电路制造股份有限公司 | 信号传输的控制方法和装置、以及信号锁存装置 |
US9628077B2 (en) | 2015-03-04 | 2017-04-18 | Qualcomm Incorporated | Dual power swing pipeline design with separation of combinational and sequential logics |
US9928202B2 (en) | 2015-04-21 | 2018-03-27 | Fermi Research Alliance, Llc | Time-division multiplexing data bus |
US10152565B2 (en) | 2015-06-03 | 2018-12-11 | Altera Corporation | Methods for performing register retiming operations into synchronization regions interposed between circuits associated with different clock domains |
US10162918B1 (en) | 2016-04-27 | 2018-12-25 | Altera Corporation | Integrated circuit retiming with selective modeling of flip-flop secondary signals |
US10727825B2 (en) | 2017-04-12 | 2020-07-28 | Sandisk Technologies Llc | Circuits for optimizing skew and duty cycle distortion between two signals |
US10426424B2 (en) | 2017-11-21 | 2019-10-01 | General Electric Company | System and method for generating and performing imaging protocol simulations |
KR102508309B1 (ko) * | 2018-04-23 | 2023-03-10 | 에스케이하이닉스 주식회사 | 파이프 래치, 이를 이용하는 반도체 장치 및 반도체 시스템 |
CN109327206B (zh) * | 2018-09-30 | 2020-09-25 | 天津大学 | 功耗平坦化标准集成电路 |
US11151287B2 (en) * | 2018-12-07 | 2021-10-19 | Stmicroelectronics Sa | System and method for managing requests in an asynchronous pipeline |
US11469919B2 (en) * | 2020-09-17 | 2022-10-11 | Analog Devices International Unlimited Company | Bidirectional communication circuit and a method for operating a bidirectional communication circuit |
KR102415074B1 (ko) * | 2020-11-30 | 2022-06-29 | 서울대학교산학협력단 | 지연 회로 및 비동기 파이프라인 제어기, 이의 제어 방법, 및 이를 갖는 회로 |
CN112667292B (zh) * | 2021-01-26 | 2024-04-05 | 北京中科芯蕊科技有限公司 | 一种异步微流水线控制器 |
CN113489482B (zh) * | 2021-07-06 | 2023-10-20 | 北京中科芯蕊科技有限公司 | 基于Mousetrap的异步微流水线数据流控制器 |
US11886885B2 (en) * | 2021-08-10 | 2024-01-30 | Nvidia Corporation | High-throughput asynchronous data pipeline |
CN115985356B (zh) * | 2021-10-15 | 2024-09-13 | 长鑫存储技术有限公司 | 数据合成器 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0913768A2 (en) * | 1997-10-17 | 1999-05-06 | Sun Microsystems, Inc. | Control of pipelines carrying data using pipelines carrying control signals |
US6028453A (en) * | 1996-07-24 | 2000-02-22 | Lg Semicon Co., Ltd. | Charge recycling differential logic (CRDL) circuit having true single-phase clocking scheme |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US69347A (en) * | 1867-10-01 | Improved sad-iron heater | ||
US6867620B2 (en) | 2000-04-25 | 2005-03-15 | The Trustees Of Columbia University In The City Of New York | Circuits and methods for high-capacity asynchronous pipeline |
AU2001257403A1 (en) | 2000-04-26 | 2001-11-07 | The Trustees Of Columbia University In The City Of New York | A low latency fifo circuit for mixed clock systems |
CA2412438A1 (en) | 2000-06-09 | 2001-12-13 | The Trustees Of Columbia University In The City Of New York | 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 |
-
2001
- 2001-09-21 CA CA2424572A patent/CA2424572C/en not_active Expired - Fee Related
- 2001-09-21 US US10/380,137 patent/US6958627B2/en not_active Expired - Fee Related
- 2001-09-21 EP EP01973395A patent/EP1330706A1/en not_active Withdrawn
- 2001-09-21 WO PCT/US2001/029721 patent/WO2002035346A1/en active Application Filing
- 2001-09-21 KR KR1020037005583A patent/KR100783687B1/ko not_active IP Right Cessation
- 2001-09-21 CN CNB018177948A patent/CN1306393C/zh not_active Expired - Fee Related
- 2001-09-21 AU AU2001292980A patent/AU2001292980A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6028453A (en) * | 1996-07-24 | 2000-02-22 | Lg Semicon Co., Ltd. | Charge recycling differential logic (CRDL) circuit having true single-phase clocking scheme |
EP0913768A2 (en) * | 1997-10-17 | 1999-05-06 | Sun Microsystems, Inc. | Control of pipelines carrying data using pipelines carrying control signals |
Also Published As
Publication number | Publication date |
---|---|
CN1471668A (zh) | 2004-01-28 |
US20040046590A1 (en) | 2004-03-11 |
KR20040005844A (ko) | 2004-01-16 |
EP1330706A1 (en) | 2003-07-30 |
WO2002035346A1 (en) | 2002-05-02 |
AU2001292980A1 (en) | 2002-05-06 |
CA2424572A1 (en) | 2002-05-02 |
KR100783687B1 (ko) | 2007-12-07 |
CA2424572C (en) | 2010-12-07 |
US6958627B2 (en) | 2005-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1306393C (zh) | 具有锁存控制器的异步管线 | |
Harris | Skew-tolerant circuit design | |
Ferretti et al. | Single-track asynchronous pipeline templates using 1-of-N encoding | |
US20020069347A1 (en) | High-throughput asynchronous dynamic pipelines | |
US20050156633A1 (en) | Circuits and methods for high-capacity asynchronous pipeline processing | |
KR20030084923A (ko) | 동기/비동기/동기 인터페이스 | |
US20110029941A1 (en) | Multi-level domino, bundled data, and mixed templates | |
WO2007046749A3 (en) | Method for avoiding deadlock in data flow machine | |
WO2004099917A3 (en) | Stochastically generating facility and well schedules | |
US20070255987A1 (en) | Control signal synchronization of a scannable storage circuit | |
US20150341032A1 (en) | Locally asynchronous logic circuit and method therefor | |
WO2022152051A1 (zh) | 处理器和计算系统 | |
US6724231B2 (en) | Clock signal propagation gate and semiconductor integrated circuit including same | |
US6107852A (en) | Method and device for the reduction of latch insertion delay | |
Banning et al. | Treatment of transverse maxillary deficiency with emphasis on surgically assisted-rapid maxillary expansion. | |
Zhou et al. | An efficient asynchronous circuits design flow with backward delay propagation constraint | |
US20120062300A1 (en) | Circuit and method for asynchronous pipeline processing with variable request signal delay | |
Ferretti | Single-track asynchronous pipeline template | |
Roy et al. | Evolving challenges and techniques for nanometer SoC clock network synthesis | |
US20060048084A1 (en) | System and method for repairing timing violations | |
Ozcan et al. | Generation and verification of timing constraints for fine-grain pipelined asynchronous data-path circuits | |
Huang et al. | Minimum inserted buffers for clock period minimization | |
Dimou et al. | Performance-driven clustering of asynchronous circuits | |
US20030160797A1 (en) | Globally clocked interfaces having reduced data path length | |
CN117422028A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070321 Termination date: 20140921 |
|
EXPY | Termination of patent right or utility model |