CN1514968A - 同步到异步到同步接口 - Google Patents
同步到异步到同步接口 Download PDFInfo
- Publication number
- CN1514968A CN1514968A CNA028035305A CN02803530A CN1514968A CN 1514968 A CN1514968 A CN 1514968A CN A028035305 A CNA028035305 A CN A028035305A CN 02803530 A CN02803530 A CN 02803530A CN 1514968 A CN1514968 A CN 1514968A
- Authority
- CN
- China
- Prior art keywords
- asynchronous
- circuit
- clock
- signal
- synchronous
- 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.)
- Granted
Links
- 230000001360 synchronised effect Effects 0.000 title claims abstract description 97
- 238000012546 transfer Methods 0.000 claims abstract description 19
- 230000005540 biological transmission Effects 0.000 claims description 14
- 238000000034 method Methods 0.000 claims description 11
- 238000006243 chemical reaction Methods 0.000 claims 4
- 230000008878 coupling Effects 0.000 claims 1
- 238000010168 coupling process Methods 0.000 claims 1
- 238000005859 coupling reaction Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000002349 favourable effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 239000003638 chemical reducing agent Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Logic Circuits (AREA)
- Information Transfer Systems (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Communication Control (AREA)
Abstract
一种同步和异步数据传送之间的接口,包括彼此耦合的多个级以形成数据传送管线。这多个级包括进行同步到异步数据传送的第一级,进行异步到异步数据传送的至少一个中间级以及进行异步到同步数据传送的最末级。一个同步时钟路径使定时信号传输穿过这多个级,以在该定时信号出现在那级时启动第一级和最末级进行操作。
Description
技术领域
本发明涉及数据传送,更具体地说,涉及经由同步到异步到同步接口传送数据的***和方法。
背景技术
互锁管线互补金属氧化物半导体(IPCMOS)电路和技术在美国专利6,182,233中被公开。描述这些IPCMOS电路在一试验场地应用结果的文章在发表于ISSCC2000技术文摘第17集的逻辑与***中可以中找到,该文章为WA17.3,作者是Schuster等,标题为“3.3-4.5GHz的异步互锁管线CMOS电路”,以下称ISSCC文章。在此ISSCC文章中,采用0.18微米1.5V体CMOS技术,异步互锁的局部产生的时钟以高达4.5GHz的频率驱动一个路径,该路径穿过一个浮点乘法器(FPM)的3至2压缩器树。估计用这些IPCMOS技术,可以减少2倍以上的功率。
在上文引用的美国专利申请6,182,233中,公开了用于正向和反向异步互锁块的电路和技术,这些异步互锁块的信号交换开销极小。这使得有可能达到很高的性能。
同步管线通常受到时钟摆动(slew)问题的影响,它可能造成管线中不希望的延迟。如果以异步时钟和电路代替现有的同步设计的一些部分,从而实现更高的性能和更低的功率,那将是有利的。然而,可能难于实现***的同步部分和异步部分之间的接口。
所以,需要有可能以可靠的方式和以不同的频率从同步操作方式进到异步操作方式然后再回到同步方式的接口。
发明内容
根据本发明,提供了一种同步到异步到同步接口,包含:彼此耦合的多个级以形成用于数据传送的管线,这多个级包括进行同步到异步数据传送的第一级,进行异步到异步数据传送的至少一个中间级以及进行异步到同步数据传送的最末级;以及同步时钟路径,它使定时信号传输穿过这多个级,以在该定时信号出现在那级时启动该第一级和最末级进行操作。
本发明进一步提供了同步到异步到同步数据传送的方法,包含如下步骤:提供彼此耦合的多个级以形成管线,这多个级包括进行同步到异步数据传送的第一级,进行异步到异步数据传送的至少一个中间级以及进行异步到同步数据传送的最末级;只有当是进行一个操作时才启动这多个级的第一级和最末级之一以允许数据传送,第一级和最末级由这多个级中每一级所包括的时钟电路产生的局部时钟信号启动,该局部时钟信号由同步时钟信号和定时信号产生。
本发明进一步提供了一个同步时钟选通接口,包含:彼此耦合的多个同步级,以形成管线;以及与这多个级的每一级耦合的时钟电路,它基于同步时钟信号和定时信号为相应级产生局部时钟信号,其中当是由相应级进行一个操作时,该局部时钟信号启动该相应级。
附图说明
现在将以举例方式参考附图描述本发明的实施例,其中:
图1是显示根据本发明一个实施例的同步到异步到同步接口的示意图;
图2A是为图1所示接口的同步到异步级产生局部时钟的时钟使能电路的示意图;
图2B是一预充电时钟电路的意示图,该电路根据一应答信号为图1所示接口的同步到异步级产生预充电时钟脉冲;
图2C是一有效电路示意图,该电路为图1所示接口的同步到异步级产生一有效信号;
图3A是一时钟使能电路的示意图,该电路为图1所示接口的异步到同步级产生一局部时钟;
图3B是一预充电时钟电路的示意图,该电路根据一应答信号为图1所示接口的异步到同步级产生预充电时钟脉冲;
图3C是一出错电路的示意图,该电路为图1所示接口的异步到同步级产生一出错信号;
图4是一六级接口或管线的示意图;
图5是图4所示接口以2.5GHz,2周e比特延时运行的时序图;
图6是图4所示接口以2.0GHz,2周e比特延时的行时时序图;
图7是图4所示接口以2.0GHz,1周e比特延时的行时时序图,显示出由于定时不匹配产生的错误;
图8是比较传统的同步电路与互锁管线CMOS电路的功率与切换因子关系图;
图9A显示两个同步浮点乘法器(FPM);
图9B显示一个同步到异步到同步IPCMOS FPM,它代替图9A的两个FPM;
图10是根据本发明另一实施例的细粒度同步时钟选通接口的示意图;
图11是比较传统的同步电路、实施本发明的互锁管线CMOS电路及实施本发明的细粒度时钟选通(FG CLK选通)的功率与切换因子的关系图;
图12是时钟复位电路的示意图,该电路为图1所示接口的同步到异步级产生复位时钟信号;
图13是局部时钟电路的示意图,该电路使用一个e比特为图1所示接口的异步到同步级提供减小了的延时;以及
图14是利用图12和图13电路的一个仿真接口的时序图。
具体实施方式
应该理解,图中所示部件可以由各种形式的硬件、软件或它们的组合来实现。优选地,这些部件以硬件形式在一个或多适当编程的通用集成电路上实现,这些集成电路可以包括处理器、存储器和输入/输出接口。
现在参考附图,图中类似的数字代表相同或相似的部件,首先参考图1,图中显示根据本发明一个实施例的同步(SYN)到异步(ASYN)到同步(SYN)接口10。同步定时路径11包括由CLKSYN信号定时的1比特宽的锁存器12,这些锁存器12有称作e比特的信号作为输入。由于这些锁存器级12每个由CLKSYN定时,所以一个e比特通过锁存器12所用的时间是在路径或管线11中锁存器级12的个数及CLKSYN的频率或周期的函数。
“e”比特路径11(例如图1中的级90a、90b、90c)是一个同步定时链。如果数据被引入该异步路径供机器的同步部分处理,则在这个链的第一级(90a)中引入一个“1”。对于没有被引入这种数据的任何同步周期,进入90a的e比特将为0。在图1中,在一个给定的同步周期上引入级90a的一个e比特将在一个同步周期之后传送到级90b,并将在它引入级90a之后整整2个同步周期时到达级90c。这样,该e比特以2个同步周期延时传输通过它的定时链。因为在级90c中的“1”将表明数据已准备好是被放入机器的同步部分,所以必须在该e比特定时链中提供足够多的级以允许数据传输通过整个异步管线。于是,在图1中意味着数据能在2个同步周期内通过该异步管线。
该接口的总体操作如下所述。当由机器的同步部分把数据呈现给异步部分时,一个“1”被放入级90a中。这作为启动级22a的局部时钟CLKE1的信号。然后,数据以由异步时钟CLKE1、CLKE2和CLKE3控制的方式传输通过22a、22b和22c到达22d,而这些异步时钟CLKE1、CLKE2及CLKE3又由链接这些级的时钟块30、31a及31b的VALID(有效)和ACK(应答)信号(例如互锁信号)控制。与此同时,在级90a引入的“1”已被传输到级90b并出现在级90c的输入端。在下一个同步时钟上(现在在数据被引入机器的异步部分之后已是2个同步周期),该e比特用于把该同步时钟选通到CLKE4中,从而完成***的再同步。
请注意,这意味着是满足某些关系,首先,为e比特路径提供的延时级数应使得在最高的同步时钟操作频率时,在e比特路径中的总延时不少于通过该异步路径的延时。这是与一个同步级的正常定时需求(即需要时钟周期不小于通过该级逻辑的延时加上用于锁存器建立、保持和时钟脉冲相位差的容差)类似的定时需求。如果是用一个异步管线代替先前的同步管线,则提供与原来同步管线中的级数对应的延时作为该e比特延时通常是适当的。在这种情况中,应该在该异步管线中提供如在原来同步管线中一样多的锁存器级,以在从异步管线中移出数据时存在延时的情况下能提供空间保持全部管线数据。
最后,请注意,因为引入级90a的e比特被用于启动级22a的异步时钟CLKE1,而时钟CLKE1又依次启动CLKE2和CLKE3,而且到达级90c输入端的同一个e比特启动CLKE4,当没有新的数据呈现于异步管线供处理时,该管线的那些时钟自动地和平滑地关闭。
此外,有用于数据的并行路径20,包括具有三种不同接口类型的多级22a-22d。首先,有同步到异步接口24,它是在第一级22a中实现的,此时CLKSYN和e比特相“与”(AND)在一起产生局部时钟CLKE1。接下来,有中间级22b-22c,那里发生异步到异步传送。这些异步到异步接口在下列文献中详细描述:美国专利6,182,233,前述ISSCC文章以及共同转让给Cook等的美国系列号09/746,647的申请(题为“异步管线控制接口”,2000年12月21日申请),在这里以参考方式引入它们。在最末级22d中实现异步到同步接口28。在级22d,e比特已传输通过同步1比特锁存器12并与同步时钟CLKSYN相“与”,以产生局部时钟CLKE4。CLKE2和CLKE3提供给级22b和22c。当下文中描述每个接口类型的电路时,将包括第一级22a和最末级22d之间的电路差别。一个有效路径35被包括其中,以跟踪数据路径20的数据传送和确认数据路径20中各级之间有效数据的接收。
每个锁存器18由局部时钟使能信号CLKE(CLKE1-CLKE4)启动,以允许数据从前一级向后传送。这些级是互锁的。这意味着产生应答(ACK)和有效(VALID)数据信号并在相邻级之间传送,以保证数据有效并在管线的每级之间被接收。有利的作法是:如在前述ISSCC文章中描述的那样,异步中间级电路10成管线连接并沿向前和向后方向互锁。管线级22可以包括逻辑电路17。
参考图1和图2A-2B,同步到异步第一级局部时钟电路30在电路32中实现对e比特和CLKSYN的“与”(AND)功能(与门33),为下游异步级产生VALID信号并为这第一级产生预充电时钟CLKP,如图2B中所示。全局同步时钟CLKSYN和输入到1比特宽锁存器级12的e比特二者的“与”(AND)启动第一级的局部时钟CLKE(CLKE1),如图2A的电路中所示。尽管CLKSYN是连续运行的,但由于只当是进行由e比特指出的操作时才启动CLKE1,从而造成显著地降低功率。
参考图2A,图1的电路30包括“与”门32用于逻辑组合e比特和CLKSYN以提供使能时钟信号CLKE。在所示实施例中,电路32利用NFETS41、PFETS43以及反相器47。参考图2B,在图1的电路30中包括的电路50产生第一级22a的局部预充电时钟CLKP1。预充电时钟电路50有一异步应答信号ACK(也参见图1)作为其输入,该异步应答信号ACK来自下游级,指出数据已被接收而新数据加上全局同步时钟CLKSYN可被发送。只在CLKSYN(及CLKE1)变为低状态之后局部预充电时钟才被启动,以避免出现使能时钟和预充电时钟二者同时工作的情况。如果只使用异步产生的应答信号ACK以产生局部预充电时钟CLKP,则有这种可能性,特别是在较低频率情况下。
在该实施例中所示电路50利用NFETS41、PFETS43、锁存器45及反相器47。其它电路配置也可用于提供下述功能。在一个周期的开始,CLKPD为高状态,节点n3为高状态,而节点n2为低状态。当有一个应答时,在ACK输入端将出现一个变为高状态的脉冲。ACK的这一转变将在节点n3和n2处被俘获,使n3变为低状态而n2变为高状态。如果CLKSYN已经变为低状态,节点n1将变为高状态,使n4变为低状态。如果CLKSYN仍为高状态,节点n1将为低状态,而节点n4将保持为高状态直至CLKSYN转变为低状态。节点n4放电之后将跟随两个反相器42的延时之后的CLKP放电及两个反相器44的延时之后的CLKPD放电。CLKPD上的低状态将使节点n3预放电高。然后这将使节点n4变为高状态,然后CLKP变为高状态,最后CLKPD变为高状态。到此时,异步应答ACK脉冲已经有了充裕的时间转变为低状态,而另一周期已准备开始了。
参考图2C,图1的电路30包括一有效电路60,它产生一个VALID(有效)信号,该信号仿真通过第一级22a的逻辑17的一种最坏情况路径。逻辑62仿真级22a的逻辑17的延时特性。逻辑62根据这些延时仿真产生用于该有效信号的定时。通过有效电路60造成的延时加上相邻异步信号交换块31a的选通电路(“与”门)32中产生CLKE所用的时间等于最后数据到达时间加上考虑数据路径20和有效路径35之间的容许偏差的某些余量。如图2C中所示,CLKE启动该有效信号,而CLKP复位这一信号。在产生CLKE的每个时钟周期产生VALID(有效)信号。
图1中的中间级22b-22c的异步到异步传送可以由上文所述参考文献的互锁方法实现。其它异步到异步传送技术也可采用。现在将描述图1中所示异步到同步传送所需要的电路和概念。
再次参考图1,异步到同步最末级局部时钟电路70更详细地示于图3A-3C。局部时钟电路70的电路包括使能时钟电路74(图3A)、预充电时钟电路76(图3B)以及出错电路78(图3C)。
参考图3A,使能时钟CLKE由电路74产生,此时CLKSYN变为高状态而且在与图1中最末级22d对应的那个1比特高同步寄存器12中有一个e比特(高)。电路74包括锁存器45和缓冲器47并带有3个反相器,以提供对其输出的CLKE的驱动。
图3A的异步到同步使能时钟电路74类似于图2A的同步到异步使能时钟电路32。两个电路32和74都使同步全局时钟CLKSYN与e比特相“与”。然而,在使能时钟电路74中,e比特已被延时了几个周期。延时的周期数等于e比特传输通过1比特高同步寄存器12所用的周期数。在图1中显示一个2周期延时。应该理解,这不是一个固定的延时,而是依赖于同步全局时钟频率。所示实施例中固定的是周期数但不是时间。这意味着一旦设计成管线,即使频率改变,数据也总是在固定周期数之后出现在管线的输出端。该周期数也是可以改变的。
参考图3B,预充电时钟CLKP由用于这一级的电路76产生。用于异步到同步级的预充电电路76产生“已从上游级收到数据”的应答信号ACK以及异步到同步级需要的预充电时钟CLKP。两个信号ACK和CLKP都被设计成在CLKSYN和CLKE交换为低状态之后发生。该电路是一个单稳电路,由CLKSYN变为低状态触发,它使节点n12变为高状态。CLKE也将变为低状态,但被CLKSYN通过图3A的CLKE电路74的路径延时。所以,当CLKSYN变为低状态时,CLKE和节点n11将为高状态,而节点n13将变为低状态。ACK将变为高状态而CLKP将下降。当CLKE下降时,节点n11也将下降,ACK将变为低状态而CLKP将上升。ACK和CLKP的脉冲宽度由节点n12上升和节点n11下降之间的延时确定,这一延时的大部分来自CLKE电路74。
参考图3C,当使能e比特和CLKSYN变为高状态以及因此CLKE变为高状态但数据尚未到达时,出错电路78被启动。除非定时有错,否则这是不应发生的。出错电路78的输入是CLKE以及来自该传输级的数据有效信号VALID。对于正确的定时,当CLKE变为高状态而启动数据路径20的锁存器18(图1)时,在这一异步到同步级的输入端的新数据应是有效的。这由低状态的VALID信号表明。如果VALID仍为高状态而没有转变为低状态,但CLKE已经变为高状态,则ERROR(出错)输出信号将变为高状态,表明已发生了错误。
为验证同步到异步到同步接口的电路和概念,构成了电路100,如图4中所示,并由反相器仿真。电路100包括六级101-106,它们包括参考图1、2A-2C、3A-3C描述的特性。级101包括同步到异步接口(S2A)。这一S2A级的电路包括图2A-2C的电路。级102至105可以包括上文引述的参考文献中描述的异步到异步接口(A2A)。级106是异步到同步接口(A2S)。A2S级106的电路是图3A-3C所示的那些电路。
参考图5,同步时钟信号CLKSYN以及级101的锁存器(例如图1的锁存器12)的e比特[e]-SA(同步到异步)和级106的锁存器(例如见图1的锁存器12)的e比特[e]-AS(异步到同步),它们产生使能和预充电时钟及出错信号(Error)。该e比特以2.5GHz传输通过该同步定时路径,从级101的同步到异步接口达到级106的异步到同步接口有两周期延时。请注意,“[e]-SA”是引入同步到异步接口的e比特,而“[e]-AS”是出现在该e比特延时路径的最末级输入端的被延时了的e比特。只有信号“[e]-SA”需要从外部环境提供给该接口,以表明实际存在要被处理的数据。
正确的操作是两个相继的e比特,后面是两周期的间隙,在此之后是另一个e比特。这是在同步路径([e]-SA和[e]-AS)中的2周期延时。如图中所示,有两个相继的同步周期,在其中有要被处理的数据出现在异步管线,后跟两个相继的同步周期,在其中没有出现供处理的数据,后跟另一个同步周期,其中有数据被处理。请注意,[e]-AS表现出与[e]-SA相同的模式,但通过e比特延时链延时了2个同步周期。
对每级101-106分别显示出使能时钟信号CLKE1-CLKE6。对该六级管线测出的延时是880ps,它对应于两个400ps周期加上产生使能时钟时的延时。在图6的波形中重复该完全相同的条件,唯一不同是频率为2.0GHz。再次显示出同步到异步到同步接口的正确操作,但有某些额外的余量,因为操作频率较低。
参考图7,现在e比特延时减小为1周期,而其它条件与图6中的条件相同。对于e比特中1周期延时的这一情况,管线的延迟时间大于该单周期e比特延时,于是出错电路信号Error变为高状态,表明已发生定时错误。请注意。这代表一个不正确的设计,以说明通过出错电路和“Error”信号检测定时错误。在这一测试情况中引入的设计错误是故意提供一个e比特延时链,它比通过异步管线的延时短。
估计表明,芯片功率的70%左右消耗在时钟和锁存器中。所以,显著降低功率来源于只当存在一个e比特或是进行的操作时才启动时钟,即来源于切换因子,如同步到异步到同步接口的图5、6、7波形中看到的那样。降低功率的直接的方式是以同步到异步接口代替一个同步***中现有的管线级,例如乘法器中的管线级。这一同步到异步路径将比传统的同步方法显著地降低功率。首先,因为只当有要进行的操作时才启动时钟,其次,因为降低了时钟负载。时钟负载的降低源于只有当锁存器输入端处的数据有效时才启动互锁操作和时钟。
在(同步)周期的一部分中给定的宏或功能单元实际被给予数据以进行处理,这一部分称作“宏切换因子”或切换因子。请注意,如果那个宏是使用这里描述的技术作为异步管线实现的,则宏切换因子将与进入该宏的同步到异步接口的e比特设为1的那部分周期相同。由此导出使用这里描述的技术时对***中功率的一个简单估计,因为只有当实际需要时局部产生的时钟才工作。
参考图8,图中显示对于传统的同步方法(同步的)和实现本发明的IPCMOS(IPCMOS)两种情况功率与宏切换因子的变化关系(假定约70%功率是在时钟和锁存器中)。大多数宏的切换因子在约10%至约20%。
在图9A和9B的实例中显示达到高速度和低功率的另一途径。在图9A中,两个同步浮点乘法器(FPM)FRM1和FPM2已由图9B中的单一同步到异步到同步FPM单元200代替。其需求是这一单一异步FPM200的运行频率为现有同步乘法器FPM1和FPM2运行频率的2倍。
这种异步方法实现较高的速度,这是由于互锁管线局部时钟的产生和由于简单的锁存器结构,这是只当数据有效时才启动时钟的结果。已经描述的同步到异步到同步接口不限于这种乘法器应用,而是使用于需要高速度和低功率的任何地方。本发明对于高度管线级的应用特别有用。
已经举例说明了利用IPCMOS实现同步到异步到同步接口的概念和定义。以本发明能实现更高的速度和更低的功率。
参考图10,图中显示根据本发明另一实施例的细粒度时钟选通电路300。如图10中所示,上述概念能被修改成提供同步***中的细粒度时钟选通。在电路301中,一个e比特与每级302的同步时钟CLKSYN相“与”,以产生局部使能信号(CLKE)。该e比特传输通过1比特宽的寄存器301。如果在一级没有e比特(e=0)则将没有用于那一级的局部使能时钟CLKE。与图2A中所示电路类似的一个电路将用于在电路301中完成“与”功能。如图11中所示,与传统的同步方法相比,这一细粒度时钟选通造成显著的功率降低。然而,与IPCMOS的情况相比,由于更复杂的锁存器,使功率约为IPCMOS情况的两倍。
如前所述,以实现更低功率和更高性能为目标,希望能以异步设计代替一部分现有的同步设计。一个问题是***中同步和异步部分之间的接口。
再参考图1,提供了两个并行的路径,一个是同步到异步到同步路径20,由一个并行的同步路径11计时。同步路径11包括1比特宽锁存器,它们由同步全局时钟CLKSYN定时。选择这一路径中的级数以对应于在最高操作频率时同步到异步到同步路径的延时周期数。由于每个e比特锁存器级由CLKSYN定时,所以一个e比特传输通过这些锁存器所用时间是管线中锁存器级数和CLKSYN频率或周期的函数。如果有一操作要进行,则该e比特被置为“1”,相应地,如果没有任何操作,则该e比特将被置为“0”。
当该e比特被置为“1”时,该e比特在同步到异步级产生使能时钟,把数据沿此路径向下游发送。这同一个e比特在其传输通过1比特锁存器的同步定时路径之后还提供定时信号以在该管线的异步到同步的最末级中产生使能时钟。如果该e比特为“0”,则表明没有要进行的操作。对于这种情况,该“0”e比特仍将传输通过1比特定时锁存器,但在同步到异步到同步并行路径中不启动局部时钟。这样,当e比特为“1”时局部时钟工作,而当e比特为“0”时不工作。
这两个路径的定时包括数据传输通过该异步路径,该数据在最末级的局部使能时钟之间到达。以这种解决方式,全局时钟歪斜和抖动的影响只发生一次而不是在每级上都发生。1比特宽同步e比特路径是每个周期由同步时钟启动一次。然而,同步到异步到同步路径每级的局部时钟(它们是多比特宽)是有要进行的操作时才被启动。这造成显著降低功率,除非每个周期都有操作。此外,通过异步IPCMOS路径的延迟时间小于传统的同步路径的延迟时间。这是对每级定时的结果,该定时不必像传统情况那样都是相同的,但能与该级的逻辑相匹配。
参考图12,一个同步到异步复位电路402俘获该周期中早些时候由异步下游选通电路(例如电路31a)发出的应答(ACK),但在CLKSYN变为低状态之前电路402不被启动。这能保证如果发生应答而CLKSYN仍工作时进行适当的操作。电路402可以用于代替图2B中的电路50。电路402的工作方式与图2B中描述的电路50类似。电路402包括一个晶体管404,它由一个“加电”复位(POR)信号启动,当电源接通时,该信号初始化该电路中的各个状态。图中所示节点n5用于表示晶体管43的输入端,它与图12中的CLKP相连。
对于这些异步电路,由于CLKE是较短的脉冲,保证在该周期的早些时候发生应答时适当的操作不成问题。在异步到同步接口处,由于该e比特在每个同步周期只要传输通过一个锁存器而不是通过整个逻辑,所以在该周期的早些时候e比特将是有效的。
参考图13,在该周期早些时刻有效的这个e比特能用于在产生异步到同步级的CLKE时使延时最小。图13显示的电路502把分别在图3A和3B中描述的电路74和76的功能组合在一起。电路502利用了上文中参考图12描述的“加电”复位(POR)信号。电路502利用该e比特、CLKSYN及POR作为输入,并输出ACK信号和CLKE。通过利用电路502,由于利用了该周期中早些时候使用的e比特,有利地减小了延时。
参考图14,如图4中那样以7级构成一个管线模型,以测试用于同步到异步到同步信号交换的图12和13的电路。POR、时钟(CLKE1-7)、数据(DATA_IN和DATA_OUT)、e比特(分别为在级1和级7的E1和E7)以及ERROR(出错)的仿真波形示于图14中。从级1到级7的e比特延时选为6个同步周期,与级数相同。如波形图所示,此例中数据以快得多的速率传输通过管线而且必须等待e比特到达。当该e比特到达时,随着数据从管线中移出,局部产生的时钟沿相反方向运行。在同步e比特路径中的延时周期数能被缩短。
已经描述了用于同步到异步到同步接口的***和方法的优选实施例(这是要作为举例说明而不是限制),但应该指出,借助上文的说明,本领域技术人员能进行各种修改和变化。所以,应该理解,在所公开说明的本发明具体实施例中可以进行各种改变,它们是在所附权利要求概述的本发明的范围和精神之内。
Claims (10)
1.一个同步到异步到同步接口,包含:
彼此耦合的多个级,以形成数据传送管线;
这多个级包括:
第一级,它进行步到异步数据传送;
至少一个中间级,它进行异步到异步数据传送;以及
最末级,它进行异步到同步数据传送;以及
同步时钟路径,它在这多个级上传送一个定时信号,以在该定时信号出现在那级时启动第一级和最末级进行操作。
2.如权利要求1所述的接口,其中第一级和最末级包括局部时钟电路,该局部时钟电路包括一个“与”门以使定时信号和同步时钟信号相“与”。
3.如权利要求2所述的接口,其中定时信号是由一个1比特宽同步寄存器传输的。
4.如权利要求2所述的接口,其中与第一级对应的局部时钟电路进一步包含一个与该第一级耦合的预充电电路,其中当从至少一个中间级收到数据已被接收的信号交换应答时该预充电电路产生一个预充电脉冲。
5.如权利要求4所述的接口,其中与第一级对应的局部时钟电路进一步包含一个有效数据信号,它在局部时钟信号变换时产生并在预充电脉冲变换时复位,该有效数据信号被发送到这至少一个中间级,以表明可以得到有效数据。
6.如权利要求2所述的接口,其中与最末级对应的局部时钟电路进一步包含一个与该最末级耦合的预充电电路,其中该预充电电路产生一个预充电脉冲和一个应答脉冲,该应答脉冲由同步时钟变换启动并由最末级的局部时钟信号变换终止。
7.如权利要求2所述的接口,其中与最末级对应的局部时钟电路进一步包含一个出错信号,这是当此局部时钟和来自那至少一个中间级的有效数据信号表明该数据无效时产生的。
8.如权利要求1所述的接口,其中这至少一个中间级包括多个级,它们构成管线并且沿正向和反向互锁。
9.一种用于同步到异步到同步数据传送的方法,包含如下步骤:
提供彼此耦合的多个级,以形成数据传送管线,这多个级包括进行同步到异步数据传送的第一级,进行异步到异步数据传送的至少一个中间级以及进行异步到同步数据传送的最末级;以及
只有当要进行一个操作时才启动这多个级中的第一级和最末级之一以允许数据传送,该第一级和最末级由这多个级的每一级所包括的时钟电路产生的局部时钟信号启动,该局部时钟信号由同步时钟信号和定时信号产生。
10.一个同步时钟选通接口,包含:
彼此耦合的多个同步级,以形成管线;以及
耦合到这多个级的每一级的时钟电路,它基于同步时钟信号和定时信号为其相应级产生局部时钟信号,其中当要由相应级进行一个操作时,该局部时钟信号启动该相应级。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/794,467 | 2001-02-27 | ||
US09/794,467 US6848060B2 (en) | 2001-02-27 | 2001-02-27 | Synchronous to asynchronous to synchronous interface |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1514968A true CN1514968A (zh) | 2004-07-21 |
CN1270231C CN1270231C (zh) | 2006-08-16 |
Family
ID=25162698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB028035305A Expired - Fee Related CN1270231C (zh) | 2001-02-27 | 2002-02-20 | 同步到异步到同步接口 |
Country Status (11)
Country | Link |
---|---|
US (1) | US6848060B2 (zh) |
EP (1) | EP1366413B1 (zh) |
JP (1) | JP3777160B2 (zh) |
KR (1) | KR20030084923A (zh) |
CN (1) | CN1270231C (zh) |
AT (1) | ATE288104T1 (zh) |
AU (1) | AU2002233528A1 (zh) |
CA (1) | CA2436410A1 (zh) |
DE (1) | DE60202749T2 (zh) |
TW (1) | TW550473B (zh) |
WO (1) | WO2002069164A2 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108694146A (zh) * | 2017-04-11 | 2018-10-23 | 华大半导体有限公司 | 一种异步/同步接口电路 |
CN115048889A (zh) * | 2022-08-16 | 2022-09-13 | 井芯微电子技术(天津)有限公司 | 基于后端时序收敛仿真的异步路径提取方法及*** |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7418574B2 (en) * | 2002-10-31 | 2008-08-26 | Lockheed Martin Corporation | Configuring a portion of a pipeline accelerator to generate pipeline date without a program instruction |
US7260753B2 (en) * | 2003-07-14 | 2007-08-21 | Fulcrum Microsystems, Inc. | Methods and apparatus for providing test access to asynchronous circuits and systems |
US7047468B2 (en) * | 2003-09-25 | 2006-05-16 | International Business Machines Corporation | Method and apparatus for low overhead circuit scan |
EP1728151A2 (en) * | 2004-03-10 | 2006-12-06 | Koninklijke Philips Electronics N.V. | Instruction pipeline |
CN100442223C (zh) * | 2004-03-10 | 2008-12-10 | Nxp股份有限公司 | 管线电路 |
US7076682B2 (en) * | 2004-05-04 | 2006-07-11 | International Business Machines Corp. | Synchronous pipeline with normally transparent pipeline stages |
US20060041693A1 (en) * | 2004-05-27 | 2006-02-23 | Stmicroelectronics S.R.L. | Asynchronous decoupler |
US20060085781A1 (en) * | 2004-10-01 | 2006-04-20 | Lockheed Martin Corporation | Library for computer-based tool and related system and method |
US8055821B2 (en) * | 2004-11-17 | 2011-11-08 | International Business Machines Corporation | Apparatus, system, and method for converting a synchronous interface into an asynchronous interface |
JP4676888B2 (ja) * | 2005-01-25 | 2011-04-27 | パナソニック株式会社 | データ処理装置 |
US7724027B2 (en) * | 2005-03-31 | 2010-05-25 | Rozas Guillermo J | Method and system for elastic signal pipelining |
US7639764B2 (en) * | 2005-08-17 | 2009-12-29 | Atmel Corporation | Method and apparatus for synchronizing data between different clock domains in a memory controller |
WO2008008629A2 (en) | 2006-06-28 | 2008-01-17 | Achronix Semiconductor Corporation | Reconfigurable logic fabrics for integrated circuits and systems and methods for configuring reconfigurable logic fabrics |
US8086936B2 (en) * | 2007-08-31 | 2011-12-27 | International Business Machines Corporation | Performing error correction at a memory device level that is transparent to a memory channel |
US7840748B2 (en) * | 2007-08-31 | 2010-11-23 | International Business Machines Corporation | Buffered memory module with multiple memory device data interface ports supporting double the memory capacity |
US8082482B2 (en) * | 2007-08-31 | 2011-12-20 | International Business Machines Corporation | System for performing error correction operations in a memory hub device of a memory module |
US7865674B2 (en) * | 2007-08-31 | 2011-01-04 | International Business Machines Corporation | System for enhancing the memory bandwidth available through a memory module |
US7899983B2 (en) | 2007-08-31 | 2011-03-01 | International Business Machines Corporation | Buffered memory module supporting double the memory device data width in the same physical space as a conventional memory module |
US7861014B2 (en) * | 2007-08-31 | 2010-12-28 | International Business Machines Corporation | System for supporting partial cache line read operations to a memory module to reduce read data traffic on a memory channel |
US7818497B2 (en) * | 2007-08-31 | 2010-10-19 | International Business Machines Corporation | Buffered memory module supporting two independent memory channels |
US7584308B2 (en) * | 2007-08-31 | 2009-09-01 | International Business Machines Corporation | System for supporting partial cache line write operations to a memory module to reduce write data traffic on a memory channel |
US7558887B2 (en) * | 2007-09-05 | 2009-07-07 | International Business Machines Corporation | Method for supporting partial cache line read and write operations to a memory module to reduce read and write data traffic on a memory channel |
US8019919B2 (en) * | 2007-09-05 | 2011-09-13 | International Business Machines Corporation | Method for enhancing the memory bandwidth available through a memory module |
US8065647B2 (en) * | 2007-10-19 | 2011-11-22 | The University Of Utah Research Foundation | Method and system for asynchronous chip design |
US8527797B2 (en) * | 2007-12-26 | 2013-09-03 | Qualcomm Incorporated | System and method of leakage control in an asynchronous system |
US7770077B2 (en) * | 2008-01-24 | 2010-08-03 | International Business Machines Corporation | Using cache that is embedded in a memory hub to replace failed memory cells in a memory subsystem |
US7930469B2 (en) | 2008-01-24 | 2011-04-19 | International Business Machines Corporation | System to provide memory system power reduction without reducing overall memory system performance |
US7925826B2 (en) * | 2008-01-24 | 2011-04-12 | International Business Machines Corporation | System to increase the overall bandwidth of a memory channel by allowing the memory channel to operate at a frequency independent from a memory device frequency |
US7925825B2 (en) * | 2008-01-24 | 2011-04-12 | International Business Machines Corporation | System to support a full asynchronous interface within a memory hub device |
US7930470B2 (en) * | 2008-01-24 | 2011-04-19 | International Business Machines Corporation | System to enable a memory hub device to manage thermal conditions at a memory device level transparent to a memory controller |
US8140936B2 (en) * | 2008-01-24 | 2012-03-20 | International Business Machines Corporation | System for a combined error correction code and cyclic redundancy check code for a memory channel |
US7925824B2 (en) * | 2008-01-24 | 2011-04-12 | International Business Machines Corporation | System to reduce latency by running a memory channel frequency fully asynchronous from a memory device frequency |
TWI407744B (zh) * | 2008-02-04 | 2013-09-01 | Realtek Semiconductor Corp | 網路信號處理裝置 |
DE102009000698A1 (de) * | 2009-02-06 | 2010-08-12 | Ihp Gmbh - Innovations For High Performance Microelectronics / Leibniz-Institut Für Innovative Mikroelektronik | Prüfschaltung zur Prüfung einer Durchführung eines Handshake-Protokolls und Verfahren zur Prüfung einer Durchführung eines Handshake-Protokolls |
US7900078B1 (en) * | 2009-09-14 | 2011-03-01 | Achronix Semiconductor Corporation | Asynchronous conversion circuitry apparatus, systems, and methods |
US8928386B1 (en) * | 2013-03-12 | 2015-01-06 | Xilinx, Inc. | Circuits for and methods of asychronously transmitting data in an integrated circuit |
US10289186B1 (en) * | 2013-10-31 | 2019-05-14 | Maxim Integrated Products, Inc. | Systems and methods to improve energy efficiency using adaptive mode switching |
US9594395B2 (en) * | 2014-01-21 | 2017-03-14 | Apple Inc. | Clock routing techniques |
US20150341032A1 (en) * | 2014-05-23 | 2015-11-26 | Advanced Micro Devices, Inc. | Locally asynchronous logic circuit and method therefor |
US11960898B2 (en) | 2020-12-18 | 2024-04-16 | Red Hat, Inc. | Enabling asynchronous operations in synchronous processors |
US20240160593A1 (en) * | 2022-11-16 | 2024-05-16 | STMicroelectronics S.r..l. | Asynchronous Controller for Processing Unit |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5187800A (en) | 1985-01-04 | 1993-02-16 | Sun Microsystems, Inc. | Asynchronous pipelined data processing system |
US4837740A (en) | 1985-01-04 | 1989-06-06 | Sutherland Ivan F | Asynchronous first-in-first-out register structure |
GB9114513D0 (en) * | 1991-07-04 | 1991-08-21 | Univ Manchester | Condition detection in asynchronous pipelines |
JPH05233380A (ja) * | 1992-02-20 | 1993-09-10 | Fujitsu Ltd | 並列実行性能測定処理方法 |
WO1993019529A1 (en) * | 1992-03-19 | 1993-09-30 | Vlsi Technology Inc. | Asynchronous-to-synchronous synchronizers, particularly cmos synchronizers |
US5939898A (en) * | 1997-06-24 | 1999-08-17 | International Business Machines Corporation | Input isolation for self-resetting CMOS macros |
US6038656A (en) * | 1997-09-12 | 2000-03-14 | California Institute Of Technology | Pipelined completion for asynchronous communication |
US6128678A (en) * | 1998-08-28 | 2000-10-03 | Theseus Logic, Inc. | FIFO using asynchronous logic to interface between clocked logic circuits |
US6182233B1 (en) | 1998-11-20 | 2001-01-30 | International Business Machines Corporation | Interlocked pipelined CMOS |
US6247134B1 (en) * | 1999-03-31 | 2001-06-12 | Synopsys, Inc. | Method and system for pipe stage gating within an operating pipelined circuit for power savings |
US6393579B1 (en) * | 1999-12-21 | 2002-05-21 | Intel Corporation | Method and apparatus for saving power and improving performance in a collapsable pipeline using gated clocks |
US6611920B1 (en) * | 2000-01-21 | 2003-08-26 | Intel Corporation | Clock distribution system for selectively enabling clock signals to portions of a pipelined circuit |
-
2001
- 2001-02-27 US US09/794,467 patent/US6848060B2/en not_active Expired - Fee Related
-
2002
- 2002-02-19 TW TW091102845A patent/TW550473B/zh not_active IP Right Cessation
- 2002-02-20 EP EP02700456A patent/EP1366413B1/en not_active Expired - Lifetime
- 2002-02-20 AU AU2002233528A patent/AU2002233528A1/en not_active Abandoned
- 2002-02-20 DE DE60202749T patent/DE60202749T2/de not_active Expired - Lifetime
- 2002-02-20 WO PCT/GB2002/000752 patent/WO2002069164A2/en not_active Application Discontinuation
- 2002-02-20 CA CA002436410A patent/CA2436410A1/en not_active Abandoned
- 2002-02-20 CN CNB028035305A patent/CN1270231C/zh not_active Expired - Fee Related
- 2002-02-20 KR KR10-2003-7010518A patent/KR20030084923A/ko not_active Application Discontinuation
- 2002-02-20 JP JP2002568218A patent/JP3777160B2/ja not_active Expired - Fee Related
- 2002-02-20 AT AT02700456T patent/ATE288104T1/de not_active IP Right Cessation
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108694146A (zh) * | 2017-04-11 | 2018-10-23 | 华大半导体有限公司 | 一种异步/同步接口电路 |
CN108694146B (zh) * | 2017-04-11 | 2021-03-12 | 华大恒芯科技有限公司 | 一种异步/同步接口电路 |
CN115048889A (zh) * | 2022-08-16 | 2022-09-13 | 井芯微电子技术(天津)有限公司 | 基于后端时序收敛仿真的异步路径提取方法及*** |
CN115048889B (zh) * | 2022-08-16 | 2022-11-01 | 井芯微电子技术(天津)有限公司 | 基于后端时序收敛仿真的异步路径提取方法及*** |
Also Published As
Publication number | Publication date |
---|---|
EP1366413A2 (en) | 2003-12-03 |
CN1270231C (zh) | 2006-08-16 |
US20020120883A1 (en) | 2002-08-29 |
ATE288104T1 (de) | 2005-02-15 |
CA2436410A1 (en) | 2002-09-06 |
TW550473B (en) | 2003-09-01 |
DE60202749D1 (de) | 2005-03-03 |
WO2002069164A3 (en) | 2002-11-21 |
EP1366413B1 (en) | 2005-01-26 |
JP3777160B2 (ja) | 2006-05-24 |
WO2002069164A2 (en) | 2002-09-06 |
AU2002233528A1 (en) | 2002-09-12 |
DE60202749T2 (de) | 2005-12-29 |
KR20030084923A (ko) | 2003-11-01 |
JP2004526241A (ja) | 2004-08-26 |
US6848060B2 (en) | 2005-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1270231C (zh) | 同步到异步到同步接口 | |
US9111051B2 (en) | Asynchronous protocol converter | |
Ferretti et al. | Single-track asynchronous pipeline templates using 1-of-N encoding | |
CN106897238B (zh) | 一种数据处理装置及方法 | |
CN109815619B (zh) | 一种将同步电路转化为异步电路的方法 | |
CN1767048A (zh) | 锁存时钟生成电路及串并行变换电路 | |
CN100521540C (zh) | 通用时钟同步器及通用时钟同步方法 | |
CN116582113B (zh) | 异步边沿检测电路、从机电路及芯片 | |
CN111199277A (zh) | 一种卷积神经网络加速器 | |
Alhussien et al. | A scalable delay insensitive asynchronous NoC with adaptive routing | |
CN108694146B (zh) | 一种异步/同步接口电路 | |
US7213090B2 (en) | Data transfer apparatus for serial data transfer in system LSI | |
Simatic et al. | New asynchronous protocols for enhancing area and throughput in bundled-data pipelines | |
CN111985174B (zh) | 一种rt锁存器及锁存方法 | |
US5274628A (en) | Multisignal synchronizer with shared last stage | |
US6698001B2 (en) | Method for generating register transfer level code | |
CN112035399A (zh) | 一种基于fpga的spi从机模块实现方法 | |
US8707080B1 (en) | Simple circular asynchronous clock domain crossing technique for digital data | |
KR100873159B1 (ko) | 전송선과 스위칭수를 줄이는 하이브리드 터너리 인코딩전송 방법 및 이 방법을 이용하는 래퍼 회로 | |
KR101454802B1 (ko) | 비동기식 파이프라인 시스템, 스테이지 및 데이터 전송 방법 | |
CN202217036U (zh) | 分布式测试节点链及其多链*** | |
Oliveira et al. | An Interface with Two-Phase Delay-Insensitive Global Communication for GALS Systems | |
CN1313900C (zh) | 同步化逻辑电路接口及其同步化方法 | |
CN118503190A (zh) | 一种兼容i2c和spi的从机复用电路 | |
CN1183596C (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20060816 Termination date: 20190220 |