用于大容量异步流水线处理的电路和方法

文档序号:7525986阅读:550来源:国知局
专利名称:用于大容量异步流水线处理的电路和方法
说明对相关申请的交叉引用本申请要求于2000年4月25日提交的序列号为60/199,439的题为“用于高速DSP应用的细粒流水线异步加法器(Fine-Grain Pipelined Asynchronous Addersfor High-Speed DSP Applications)”的美国临时专利申请的优先权,且通过引用其全部结合在此处。
背景技术
发明领域本发明涉及用于异步流水线处理的电路和方法,更确切地说,是涉及提供高速缓冲和高吞吐量的流水线。
相关技术的背景对可进行千兆赫兹吞吐量的流水线设计有持续增长的需求。已为这些高速应用发展了几种新颖的异步流水线。比如,在波流水线中,在两个锁存器之间传播多种波的数据。但是,该方法需要对设计付出相当大的努力,从结构级到布线级,都需要对通路延迟(包括与数据相关的延迟)进行准确的平衡,而且这种系统一直非常容易因为处理、温度和电压的变化而损坏。其它的主动异步方法包括时钟延迟连锁、时滞容许连锁以及自行复位电路。这些方法需要复杂的时序约束条件且缺乏弹性。另外,这些电路的高速全局时钟分布还是一项重要的挑战。
用区域信号交换代替全局时钟的异步设计具有将高速设计变得更加可行的潜力。异步流水线避免与高速时钟的部分相关的问题,比如,浪费的时钟功率和对时钟滞后的管理。另外,由于流水线中数据项的数目允许随时间而改变,没有全局时钟赋予了流水线自然的弹性。最后,异步元件的固有灵活性允许流水线与以不同速度工作的可变环境进行连接;因此,异步流水线设计对于片上系统的设计是有用的。
一种现有技术的流水线是Williams的PSO双轨异步流水线(T.Williams,Self-Timed Rings and Their Applicantion to Division(自定时环及它们在分割上的应用),博士论文,斯坦福大学,1991年6月;T.Williams等人,″AZero-Overhead Self Timed 160ns 54b CMOS Divider(过零自定时160ns 54b COMS分割器)″,IEEE JSSC,26(11)1651-1661,1991年11月)。

图1示出了Williams的PSO流水线10。每个流水线级12a、12b和12c都由双轨功能块14a、14b、14c和完成检测器16a、16b、16c构成。完成检测器指示在相关功能块输出端的数据有效性或数据缺乏。
每个功能块14a、14b、14c使用动态逻辑来实现。每个级的预充电/运算控制输入,PC,都连接于下一级的完成检测器。比如,级12a的预充电/运算控制输入,PC,连接于级12b的完成检测器并通过线18a传递给功能块14a。由于预充电逻辑块即使在其输入复位时也能保持其数据输出,所以它还提供了内隐锁存的功能。因此,PSO级无外在的锁存器。图2(a)描绘了双轨与门是怎样在动态逻辑中实现的;比如双轨对f1和f0是怎样实现双轨输入a1a0和b1b0的。
在每个级12a、12b、12c的完成检测器16a、16b、16c分别发出完成计算和预充电的信号。数据输出的有效性或无效性由各个位通过对双轨或计算并随后使用C-元件结合所有的结果来检查(见图2(a))。C-元件是基本的异步状态保持元件。更确切地说,当所有的输入为高电平则n-输入C-元件的输出为高电平,当所有的输入为低电平则n-输入C-元件的输出也为低电平,否则它将保持先前的值。它通常由在上拉和下拉中带一系列堆栈并在输出有反相器(附带微弱反馈的反相器以保持状态)CMOS门来实现。
对Williams的PSO双轨流水线的流水线控制的顺序如下当级N+1完成运算后级N预充电。当级N+1完成复位时级N进行运算。实际的运算只有在已接收到来自级N-1的有效的数据输入之后才开始。该协议保证了连续的数据标记总是被复位标记或间隔分开。
通过观察信号数据标记是怎样流过初始为空的流水线而了解流水线级的整个周期的事件。从级12a的一个运算到下一个运算的事件顺序是(i)级12a运算,随后(ii)级12b运算,随后(iii)级12b的完成检测器16b检测运算的完成,并随后(iv)级12a预充电。与此同时,在完成步骤(ii)和(iii)的步骤之后,级12c运算,且(iv)级12c的完成检测器16c检测运算的完成,并初始化级12b的预充电,接着(v)级12b预充电,并最后(vi)级12b的完成检测器16b检测预充电的完成,从而释放级12a的预充电并使级12a再次运算。由此,对于一个级来说,在完整的周期中,从一个运算到下一个运算共有六个事件。
追踪以上,一个流水线级的完整周期由3个运算、2个完成检测和一个预充电组成。因此,分析的流水线周期时间,Tps0为Tps0=3.tEval+2.tCD+tPrech(1)其中,tEval和tPrech是各个级的运算和预充电时间,而tCD是经过每个完成检测器的延迟时间。
各个级的前等待时间L被定义为在初始为空的流水线中取得的从一个级的输出到下一个级的输出的第一数据标记的时间。对于PSO,前等待时间只是级运算的延迟时间Lps0=tEva(2)这种类型的无锁存异步动态流水线(比如,PSO)的缺点是,交替的级通过必须包含“间隔”或“复位标记”,它们将流水线的容量限止在50%。William流水线的另一缺点是,它在级之间需要几个异步点。另外,William的流水线通过约束流水线级的相互作用来保持数据的完整性,即,在邻近级中,级预充电和运算与特定事件同步。
最新的三种有竞争力的异步流水线提供了改进的性能,但却受到已被根据本发明的数字信号处理流水线装置除去的几个缺点的影响。
Renaudin的设计提供了大存储容量(M.Renaudin等人,″New AsynchronousPipeline SchemeApplication to the Design of a Self-Timed Ring Divider(新型异步流水线设计对自定时环分割器设计的应用),IEEE JSSC,31(7)1001-1013,1996年7月)。Renaudin的流水线在无额外锁存器或“同一性级”的情况下可达到100%的容量。他们的方法局部地操作动态门的内部结构以提供增加的容量。
但是,Renaudin的流水线有两个明显的缺点。首先,在Renaudin的流水线中,通过使用另外的晶体管将每个动态门的输出反相器改变为门控反相器来取得额外的锁存。Renaudin流水线的第二个缺点是相当低的吞吐量。特别是,Renaudin的流水线是基于PSO流水线更加保守的形式,被称为PCO。因此,它们的吞吐量当通过PCO时甚至比PSO的更差。
由Molnar等人设计的两种FIFO--asp*FIFO和微流水线FIFO-是文献中出现的最具竞争力的流水线之一,据报导在0.6um CMOS的工艺中可具有1.1Giga和1.7Giga项/秒的吞吐量(C.Molnar等人,″Two FIFO Ring PerformanceExperiments(双FIFO环性能试验)″,IEEE的会议录,87(2)297-307,1999年2月)。
Molnar的第一FIFO,asp*,具有显著的缺点。当向流水线级添加处理逻辑时,预计asp*FIFO的吞吐量相对于本文描述的流水线设计会有显著地减少。该性能损耗的发生是因为,asp*FIFO需要外在的锁存器来隔离逻辑块。锁存器对于设计是必需的;它们保证了协议不会造成数据的溢出。结果,在asp*中,用了不同于锁存器的组合逻辑,逻辑处理的性能损失就变得更加明显。另外,asp*FIFO具有复杂的还未被明确认识的定时序假设;实际上,早期的版本因为时序问题而不稳定。
Molnar的第二设计,微流水线FIFO也有几个缺点。首先,微流水线实际上由两个平行的“半速”FIFO组成,这两个“半速”FIFO只提供总吞吐量的一半(0.85Giga项/秒);因此,要获得1.7Giga项/秒的净吞吐量就只能以面积作为相当大的代价。其次,微流水线使用非常昂贵的暂态锁存器。微流水线FIFO的另一局限是,它根本无法完成逻辑处理;即,它只能被用作FIFO。该限制的原因是,它使用了复杂的锁存结构,在该结构中,每个锁存器的一部分在邻近的级之间共享。结果,便不可能在锁存器之间插入逻辑块。
文献中记载的最快设计之一的是IPCMOS流水线,它在0.18um的CMOS工艺中吞吐量为3.3-4.5GHz(S.Shuster等人,″Asynchronous Interlocked PipelinedCMOS Circuits Operating at 3.3-4.5GHz(以3.3-4.5GHz运行的异步互锁流水线CMOS电路)″,ISSCC会议录,2000年2月)。IPCMOS在电路和协议分级上都有缺点。首先,IPCMOS使用了既大又复杂的控制电路,具电路的延迟时间十分明显。第二,IPCMOS利用非常进取的电路技术,该技术需要对设计和检验化相当大的精力。比如,在其“选通脉冲”电路中的一个门可能在其上拉和下拉堆栈之间短路,这取决于从多数据流向两个堆栈输入的相对到达时间。他们的方法依靠堆栈的比值法以保证正确的输出。第三,在IPCMOS中,流水线级只有在有效数据输入到达以后才能进行运算。因此,级的前等待时间因为级的预充电释放的延迟而不够。
本发明的一个目的是通过对预充电和运算的控制的去耦合来提供高吞吐量和大存储容量。另一个目的是降低对邻近数据标记之间“复位”间隔的需要以提高存储容量。
本发明的一个目的是提供带协议且不需要外在锁存器的异步流水线。
本发明的一个目的是提供带简单单向时序约束的异步流水线,它可容易地被满足。
本发明的一个目的是提供具有功能块的异步流水线,该功能块可在数据到达之前进行运算。从而,插入空流水线中的数据可连续地通过每个级发生波动。
本发明的另一个目的是提供具有高数据完整性的异步流水线,其中,级可稳定地保持其输出,不管其输入上有什么变化。
本发明的还有一个目的是提供一种异步流水线,它具有减少的临界延迟、较小的芯片面积、较低的功率损耗的特性以及能减少溢出的简单、小巧和快速的控制电路。
本发明的另一个目的是提供能够合并多重输入数据流的异步流水线。

发明内容
本发明的这些和其它目的可根据本发明的原理,通过异步数字流水线电路来达到,该电路允许在流水线中有较密集的包装数据标记,从而提供更大的存储或缓冲容量。其它有益的特征包括少的前等待时间和容易满足需要的单向时序约束。
具有无锁存动态逻辑的异步数字流水线电路,具有第一处理级,被设置用以驱动经过由第一预充电阶段、其后的第一运算阶段及其后的第一隔离阶段组成的周期阶段。在第一隔离阶段中,第一处理级的输出与其输入中的变化相隔离,但将其所存储的数据值保持在其输出。第一处理级响应第一预充电控制信号以及第一运算控制信号以完成三个循环的操作。第一级的控制器响应暂态信号并向第一处理级提供第一和第二去耦合的控制信号。
所配置第二处理级用以驱动经过由第二预充电阶段、其后的第二运算阶段及其后的第二隔离阶段组成的周期阶段,它仅仅响应第二预充电控制信号和第二运算控制信号。第二处理级提供表示其阶段的暂态信号。在第一处理级和第二处理级之间设置互相连接,使得由第一级控制器接收的第一暂态信号能驱动第一处理级在预充电阶段、运算阶段和隔离阶段之间循环,同时第二处理级保持在运算阶段和隔离阶段中的一个。在这种情况下,第一处理级和第二处理级都能够在没有间隔隔离的条件下存储不同的数据标记。
在第一处理级和第二处理级之间设置单独的外在同步点。当确认了表示第二处理级阶段的暂态信号时,可使第一处理级开始预充电、运算和隔离的循环。这个单独的外在同步点提高了运作的并行性。但是当没有确认表示第二处理级阶段的暂态信号时,就无指令改变第一处理级的阶段。
本发明的其它特征,它的性质和多种优点将从附图和以下对较佳实施例的的详细描述中变得更加明显。
附图简述图1描绘了现有技术的流水线。
图2(a)描绘了图1现有技术流水线的功能块的电路。
图2(b)描绘了图1现有技术流水线的完成检测器。
图3是根据本发明异步数字流水线电路的框图。
图4是根据本发明图3框图的门电路的示意图。
图5描绘了根据本发明的异步数字流水线电路的阶段的顺序和各级的互相影响。
图6(a)描绘了典型流水线级控制器的典型Petri(佩特里)网说明。
图6(b)描绘了根据本发明流水线级控制器的Petri(佩特里)网说明。
图7(a)是根据本发明在图3中描绘的异步数字流水线电路的级控制器的逻辑图。
图7(b)是根据本发明在图7(a)中描绘的级控制器一部分的电路图。
图8是根据本发明异步数字流水线电路的流水线级的可替换实施例的框图。
图9是根据本发明典型实施例的简化框图。
图10是根据本发明图9实施例一部分的框图。
图11是根据本发明另一实施例的简化框图。
较佳实施例的详细描述根据本发明的异步数字流水线电路对在每个处理级中的上拉和下拉的控制去耦合。动态门只受两个隔离的输入,pc和eval的控制。使用这两个输入,驱动级依次通过三个不同的阶段运算、隔离和预充电,这将在此处进行更详细的描述。在隔离阶段,一个级稳定地保持其输出,不管其输入的任何变化。结果,邻近的流水线级就可以存储不同的数据项,从而获得100%的存储容量。
图3描绘了根据本发明流水线100的简化框图。描绘了三个典型的级102a/102b/102c,当然也可预期有更多或更少的级。每个级102a/102b/102c可分别包含三个部件功能块104a/104b/104c、完成发生器106a/106b/106c以及控制器108a/108b/108c。每个功能块104a/104b/104c可交替地产生数据标记和下一级的复位间隔,且其完成发生器106a/106b/106c表示级运算或预充电的完成。第三个部件,级控制器108a/108b/108c,产生控制各个功能块104a/104b/104c和完成发生器106a/106b/106c的pc和eval信号。以下对这些部件进行更详细的讨论。
使用被称为捆扎数据的通用异步设计以实现信号轨异步数据路径。更确切地说,线110a/110b/110c上的控制信号,Req,表示到达各个级102a/102b/102c的新输入。比如,线110b上的信号Req是完成发生器106b的输入,也是完成发生器106a的输出。Req的高值表示新数据的达到,即,前一级已完成了运算。另一方面,Req的低值表示间隔的到来,即,前一级已完成了预充电。为了正确运作,必须满足简单的时序约束Req必需在输入给级的数据稳定且有效后到达。这个要求可通过插入“匹配的延迟”元件112a/112b/112c来满足,插入的元件通过功能块104a/104b/104c提供了大于或等于最差情况延迟的延迟。本方法的优点是,数据路径本身可使用标准的信号轨(同步型)功能块来制造。
有几种实现匹配延迟的通用方法,诸如匹配的延迟元件112a/112b/112c。一种较佳的技术是如技术中已知的使用反相器链。另外,可使用传输门电路链,其中门电路的数目和它们晶体管的大小决定了总延迟。一种可替换技术是复制逻辑块在最差情况下的关键路径,并将之用作延迟线。捆扎数据已被广泛应用,包括已商品化的异步Philips 80C51微控制器芯片。
在图4中更详细地描述了部分功能块104a/104b/104c。更特别的是,图4显示了流水线级中功能块104a/104b/104c的一个门电路。(当省略后缀a、b和c时,描述的特征适用于所有具有相同标号的部件。)线114上的pc输入控制着上拉堆栈115(即,预充电),且线116上的eval输入控制着下拉堆栈117的“基脚”。当pc被确认为低电平且eval不被确认为低电平时发生预充电。当eval被确认为高电平且pc不被确认为高电平时发生运算。当两种信号都不能确认时,门电路输出有效地与门电路输入隔离;从而,它进入了“隔离阶段”。为了防止短路,pc和eval从来不能同时被确认的。
继续参考图3,完成发生器106是一非对称C-元件,aC。非对称C-元件通常具有三种类型的输入被标上“+”的,被标上“-”的,以及不被标号的第三种类型。当所有未标号的输入和所有“+”的输入变成高电平时,aC的输出被设为高电平。相反,当所有未标号的输入和所有“-”的输入变成低电平时,aC输出被复位成低电平。对于所有其它的组合,aC保持其输出值。完成发生器106具有来自级控制器108的正输入eval 116和负输入pc 114以及来自前一级的正输入Req。
在根据本发明的流水线100中,完成发生器106的输出,Done被设置在线120上。当级102已开始运算时,即,当两种情况发生时(1)级102已进入其运算阶段,也就是说,eval为高电平,和(2)前一级已提供了有效的数据输入,也就是说,前一级的完成信号Req为高电平,则输出Done设置为高电平。Done只有当级可进行预充电,即,pc被确认为低电平时被复位。从而,级的预充电将即时复位Done,同时只有当级处于运算阶段且有效数据已到达时运算才复位。
在线120上的完成发生器106的输出通过匹配的延迟元件112传输,该匹配的元件(当与完成发生器相结合时)匹配通过功能块104的最差情况的路径。对于非常密集粒或“门级”的流水线来说,匹配的延迟不是必须的,因为由完成发生器106本身所产生的aC延迟经常已经匹配了功能块104的延迟,所以便不需要另外的匹配延迟了。
最后,线120上的完成信号Done被分成三路并输送给三个部件(i)线122上的前一级控制器108,指示当前级的状态,比如,通过线122b连接的级控制器108a;(ii)当前级的级控制器108,比如,通过线124b连接的级控制器108b(通过匹配的元件112b);以及(iii)下一级的完成发生器106,比如,通过线110c连接的完成发生器106c(通过匹配的延迟元件112b)。
继续参考图3,级控制器108产生用于功能块104和完成发生器106的控制信号pc。级控制器108本身接收两个输入(1)通过线124的当前级的延迟Done信号(即,Req),此后被称为信号S,比如,信号S可通过线124b到达级控制器108b,以及(2)下一级的Done信号,此后被称为信号T,比如,信号T通过线122c到达级控制器108b。级控制器108产生两个去耦合控制信号,pc和eval。此处将对级控制器的协议和实现的详情作更详细的描述。
如图5所示,流水线100中的每个级102都要循环三个阶段。循环200a示出了第一个级N,而循环200b示出了邻近的级N+1。在级N完成其运算阶段202a之后,它便进入隔离阶段204a并通常不进行预充电阶段206a,直到它从级N+1收到信号,正如以下将要描述的。只要预充电阶段206a一完成,它就重新再次进入运算极端202a,即完成了循环。(同样地,级N+1如虚线所表示地完成运算202b、隔离204b和预充电206b阶段。)在级N和级N+1之间有一个外在的同步点或互相连接。如虚线210所示,一旦级N+1已完成其运算阶段202b,它便可使前一级N完成其整个下一循环即,新数据项的预充电阶段206a、运算阶段202a以及隔离阶段204a。如虚线211所示,还有一个内隐的同步点级N+1的运算阶段202b取决于其前一级N’的运算阶段202a。级不能产生新的数据,直到它已从其前一级接收到有效的输入。在图5中通过因果弧线示出了两个同步点。
一旦一个级完成运算,它便通过自复位操作将自身与其输入隔离。该级进入隔离阶段,不管该级是否被允许进入其预充电阶段。结果,因为当前级将保持隔离,所以前一级不仅能预充电,甚至还可可靠地运算下一数据标记。比如,当级N+1完成其运算阶段202a时,它便进入了隔离阶段204a,同时级N可预充电206a并运算202a而不会影响级N+1的输出。
该协议有两个益处(a)较高的吞吐量,因为级N甚至可以在级N+1已开始预充电以前运算下一数据项;以及(b)相同原因带来的较高容量,由于邻近的流水线级现在能够同时保持不同的数据标记,而不需要由间隔分离。
在图6(a)中以佩特里网(Petri-net)(一种著名的用于描述并发行为的图示法)的形式给出了级控制器的格式说明。它由以标号事件表示的晶体管和存储以黑点表示的标记的位置组成。当它所有的输入弧都有标记时启动暂态,随后这些暂态被存放在它所有的输出弧上。(在Tadao Murata中进一步讨论了有关佩特里网的详细情况,″Petri NetsProperites,Analysis andApplications,(佩特里网特性、分析和应用)″,IEEE,77(4)的会议录,1989年4月;L.Y.Rosenblum和A.V.Yakolev,″Signal GraphsFrom Self-Timed toTimed Ones,(信号图从自定时到定时的″,关于定时佩特里网的国际工作会议录,托里诺,意大利,199-207页,1985年7月;Tam-Anh Chu,″On the Modelsfor Designing VLSI Asynchronous Digital Circuits(设计VLSI异步数字电路的模型″,论文集,VLSI杂志,4(2)99-113,1986年6月,通过参考结合于此。)级控制器108的佩特里网说明可从级循环中阶段的顺序推断出来,如以上的图5所示。级N的控制器具有两个输入S和T,它们分别是级N和级N+1的Done输出(见图3),且它具有两个输出,pc和eval,这两个信号驱动级N。
图6(a)描绘了级控制器预先设计的佩特里网。图6(a)中所示的说明有几个缺点,此处进行详细分析。在级N 302处预充电的使能条件可以是不确定的级N已完成一数据项的运算并正进入304处的隔离阶段(信号S124为高电平),且级N+1已在306处运算了相同的数据项(信号T122为高电平)。如果级N+1被阻断或减慢则会产生问题,级N+1会继续保持其高电平的T122的输出,同时级N处理完全新的数据输入(预充电随后运算)。在该情况下,信号S124和T122再次都为高电平,但现在级N和级N+1具有不同的标记。在这种情况下,由于级N+1还未吸收到新的数据,级N是不能被预充电的。
获取解决该问题的途径是添加一状态可变的通过级控制器中的非对称C元件实现的ok2pc 117(见图6(b))。图6(b)中的说明大体与图6(a)中的说明相同,此处只描述不同的地方。有效改变的ok2pc 153记录级N+1是否已吸收了数据项。如佩特里网350所示的ok2pc 153在级N在352处预充电之后马上复位(信号S124为低电平),且只有在N+1已在354处经历了随后的预充电之后才会被再次复位(信号T122为低电平)。
图7(a)和图7(b)显示了图6(b)控制器的实现。实现包括两个输入信号,T122和S124,且产生三个输出信号——pc114、eval116和ok2pc153——每个信号都使用单独的门电路来实现。控制器直接实现上述以及在前一级子段中的条件。
更确切地说,信号eval116是反相器150在S信号124上的输出。参考结合了图3和图5的图7(a),当eval116在无任何其它输入的情况下不能确认为低电平,级104从运算阶段202循环到隔离阶段204。在实施例中,在级204运算完之后,信号eval116通过线120a经过完成检测器,并通过匹配的延迟元件112。匹配延迟元件112的输出是线124上的S信号。在经过了级控制器108的反相器150之后,eval信号116不能确认为低电平,从而可允许级进入隔离阶段204。
ok2pc信号153的发生是通过非对称C元件152来完成,以图7(b)来作更详细的描述。由于ok2pc153在级N+1已完成运算之后被设为高电平,且T122为低电平,所以添加反相器156以接收T信号122。虽然ok2pc的产生是向通向pc114的控制路径添加了额外的门电路延迟,但图6的协议却是在关键路径之外完成了该运算,即,ok2pc被设为“背景模式”,从而op2pc在T122获得确认以前通常被设定了。结果,pc114的关键路径只有一个门电路延迟从输入T122通过3输入NAND3门电路154到达输出pc114。
图8根据本发明的另一实施例描绘了一个完整的流水线级401。更确切地说,图3中所示的流水线级102的完成发生器106和功能块104已被结合入组合功能块405。级401还包括匹配的延迟元件412和级控制器408(由虚线表示)。功能块405的输出419被传递到下一级(未在图8中显示)。完成发生器(未显示)的输出420被分成两种信号,一部分被传递到匹配延迟元件412,另一部分变成信号422a,并被传递到前一级或到外界。匹配延迟元件412的输出为S信号424。如上所示,与级控制器1008有关的级控制器408的输入是来自下一级(未显示)的S信号424和T信号422b。
可参考图3和图5追踪级N的完整循环的事件。从级N的一个运算到下一个运算,循环由三部分操作组成步骤(i)级N运算,步骤(ii)级N+1运算,它依照使能级N’的控制器来确认N的预充电输入(pc=低电平),步骤(iii)级N预充电,完成后传递到级N’的控制器,使N再次运算(eval确认为高)。参考图3和图5中的标号,过程处理如下步骤(i)级102a运算202a并提前到隔离阶段204a并等待。随后,在步骤(ii),级102b运算202b,且一旦完成级102b的运算之后,级控制器108a接收T信号112b并确认pc114a。在步骤(iii),级102a预充电206a,且被启动再次运算。
如上所述,对于门级的流水线,可不需要额外的匹配延迟,因为完成检测器和其它延迟已匹配了门电路的运算和预充电。接着,在早期引入的标志中,步骤(i)的延迟是tEval,步骤(ii)的延迟是taC+tNAND3,而步骤(iii)的延迟是tPrech+tINV。此处,tNAND3和tINV分别是通过图7(a)的NAND3154和反相器150的延迟。因而,分析的流水线循环时间为THC=tEval+tPrech+taC+tNAND3+tINV(3)级的等待时间只是级的运算延迟LHC=tEval(4)根据本发明的流水线100需要单向时序约束以保证正确运作。一旦当前级已进行了运算,且下一级已进行了预充电(S-1,T=0),则ok2pc信号153变为高电平。随后,作为下一级运算的结果,信号T变为高电平。为了正确运作,ok2pc信号必须在T信号变为高电平之前完成其上升过渡tok2pc<tEval+tINV(5)在实际操作中,该约束是非常容易满足的。
必须保证获得充足的预充电宽度。在该设计中,约束的部分是由捆扎约束实施的aC元件和(任意的)匹配延迟一起,必须具有大于功能块最差情况预充电时间的延迟。因此,图7(a)中到NAND3154的S信号将适当地保持。
在预充电上有附加的约束到NADN3154的T信号肯定不能被确认。比如,在T信号被确认为高电平的情况中,级102a的NAND3154a开始102a的预充电(在图3中)。同时,T信号122b只有在通过级102c的完成发生器106c的非对称C元件(aC),通过级控制器108b的NAND3154,以及通过级102b的完成发生器106b的非对称C元件(aC),并最终通过级控制器108a的NAND3154a的路径之后才被复位tNAND3+tPrechN≤taC+tNAND3+taC+tNAND3---(6)]]>假设所有的级都是相同的,该约束变成tPrechN≤taC+taC+tNAND3---(7)]]>该时间约束也是容易满足的。
图7(a)中的反相器150被用于在其运算后使能级的隔离。捆扎约束已保证隔离阶段不会开始得太早。
例子作为研究的情况,使用文中描述的流水线模拟门电平流水线的加法器。例子显示了流水线级的多重输入流可怎样被一起合并进单一的输出流。
选择32位的脉动进位加法器,因为它的设计简单且顺应非常密集的流水线。加法器的结构适合于高吞吐量的应用,诸如用于多媒体处理的DSP应用。
图9描绘了脉动进位加法器的典型级500。加法器的每个级是全加器,它有三个数据输入-A502,B504,进位输入Cin506-以及两个输出—进位输出Cout508与和510。逻辑等式为Sum=ABCin,且 (8)Cout=AB+ACin+BCin(9)双轨和单轨编码的混合被用于表示加法器的数据路径。由于异或逻辑操作不仅需要其操作数的真值还需要补码值,双轨被用于根据动态逻辑应用来表示每个数据输入A,B和Cin。此外,由于级的Cout是下一级的Cin,所以它也用双轨表示。另一方面,Sum只使用单轨表示,因为它不需要补码。完整的数据路径是捆扎的数据路径,并且因此可被当作单轨,虽然某些信号使用双轨表示。
分别用a1a0、b1b0、 以及 表示A502、B504、Cin506和Cout508,加法器的等式被写为Sum=(a1b0+a0b1)cin0+(a1b1+a0b0)cin1,---(10)]]>cout1=a1b1+(a1+b1)cin1,]]>以及(11)cout0=a0b0+(a0+b0)cin0,---(12)]]>在实施例中,三个输出,Sum, 和 中的每个都使用单一动态门实现。从而,每级只有一个逻辑电平。
不像此处描述的流水线结构,流水线的加法器是非线性的结构。级500可合并三个不同的输入流,即,两个数据操作数和进位输入。因此,此处描述流水线结构可处理多源的可替换实施例。特别是,由于每个全加器表示多输入流的同步点,所以它必须具有处理多重捆扎输入的能力(即,“request(请求)”信号)。
输入A502和B504可被当作属于一个具有共用捆扎信号reqab523的共享数据流。Cin输入与进位输入reqc525一起形成了其它的流。因此,假设只有两个输入流数据操作数和进位输入。在实际操作中,这在许多操作数来自同一来源的应用中是合理的假设。如果该假设不成立,则我们的方法可被延伸以处理三个独立的线程。
图10描绘了完成发生器506的另一实施例。完成发生器506在数据输入reqab523和进位输入reqc525上都是同步的。每个添加的请求信号都是通过向完成发生器的非对称C元件552的下拉堆栈添加一个晶体管来提供的。得到的Done输出信号520可派生成三个用途,即,作为发送进位输入的级的“确认”,作为发送操作数的级的“确认”,以及作为下一级的“请求”。
最后,在图11中示出了整个加法器的结构。移位寄存器568a、567b和568c分别向每个加法器级500a、500b和500c提供操作数位。与每个加法器级500a、500b和500c分别连接的移位寄存器570a、570b和570c累积了来自该级的和的位数流。一旦提供了加法操作的所有和的位,它们就可以并行的方式从每个移位寄存器读出每一位。移位寄存器本身可根据此处描述的实施例被制成异步流水线。
32位的脉动进位加法器是采用HSPICE以0.6μm HP CMOS工艺在3.3V电源和300°K的操作条件下进行模拟的。要特别注意优化用于高吞吐量的晶体管尺寸。每个动态门电路中的预充电PMOS晶体管具有18λ/2λ的W/L比。运算堆栈中的NMOS晶体管也如此设计尺寸,从而使n-堆栈的有效宽度为p-堆栈的1/3。另外,对于每个设计,均保证时序约束可获得令人满意的满足。
表1概括了模拟结果。

表1
表1列出了总的循环时间及其分解的各个部分级运算时间(tEval),级预充电时间(tPrech),通过完成块的延迟(taC),以及通过控制门电路的延迟(tNAND3和tINV)。最后,表以每秒有多少百万次操作列出了每个加法器的吞吐量。发现加法器的吞吐量为每秒1023百万次操作。
可以理解的是,上述只是描绘了本发明的原理,对于技术熟练人士,可以在不脱离本发明的范围和精神的条件下作出多种修改。
权利要求
1.一种无锁存的动态异步数字流水线电路,包括第一处理级,被设置能驱动经过由第一预充电阶段、其后的第一运算阶段及其后的第一隔离阶段组成的周期阶段,它只响应于第一预充电控制信号和第一运算控制信号,其中,第一处理级的输出当处于第一隔离阶段时与其输入的变化相隔离,且其中,第一预充电控制信号与第一运算控制信号去耦合第一级控制器,响应于表示第二处理级阶段的暂态信号,且被设置成向第一处理级提供第一预充电控制信号和第一运算控制信号;第二处理级,设置能驱动经过由第二预充电阶段、其后的第二运算阶段及其后的第二隔离阶段组成的周期阶段,它只响应于第二预充电控制信号和第二运算控制信号;完成发生器,被设置成一旦完成第二运算阶段时提供表示第二处理级阶段被确认的暂态信号,其中,在第一处理级和第二处理级之间提供一个互相连接,从而由第一级控制器接收到的表示第二处理级阶段的暂态信号,当表示第二处理级阶段的暂态信号被确认时,启动第一处理级以进行预充电阶段、运算阶段以及隔离阶段的循环。
2.如权利要求1所述的无锁存动态异步数字流水线电路,其特征在于,还包括第一完成发生器,被设置成向第一级控制器提供表示第一处理级阶段的第一暂态信号。
3.如权利要求2所述的无锁存动态异步数字流水线电路,其特征在于,当第一级控制器确认第一运算控制信号并不能确认第一预充电控制信号时,第一处理级进入第一运算阶段。
4.如权利要求2所示的无锁存动态异步数字流水线电路,其特征在于,当第一级控制器不能确认第一运算控制信号和不能确认第一预充电控制信号时,第一处理级进入第一隔离阶段。
5.如权利要求2所述的无锁存动态异步数字流水线电路,其特征在于,当第一级控制器不能确认第一运算控制信号且确认第一预充电控制信号时,第一处理级进入第一预充电阶段。
6.如权利要求2所述的无锁存动态异步数字流水线电路,其特征在于,当第一处理级已进入运算阶段且前一级已向第一处理级提供了有效的输出时,第一暂态信号被确认。
7.如权利要求2所述的无锁存动态异步数字流水线电路,其特征在于,当第一处理级已进入预充电阶段时,第一暂态信号不能被确认。
8.一种无锁存的动态异步数字流水线电路,包括第一处理级,被设置能驱动经过由第一预充电阶段、其后的第一运算阶段及其后的第一隔离阶段组成的周期阶段,它只响应于第一预充电控制信号和第一运算控制信号第一级控制器,响应于暂态信号,且向第一处理级提供第一预充电控制信号和第一运算控制信号,其中,第一预充电控制信号与第一运算控制信号去耦合;以及第二处理级,被设置能驱动经过由第二预充电阶段、其后的第二运算阶段及其后的第二隔离阶段组成的周期阶段,它只响应于第二预充电控制信号和第二运算控制信号,其中,第二处理级当处于第二隔离阶段时,其输出与其输入上的变化相隔离,且其中,第二处理级向第一级控制器提供表示其阶段的暂态信号,其中,在第一处理级和第二处理级之间提供一个互相连接,从而由第一级控制器接收到的暂态信号使能第一处理级进行第一预充电阶段、第一运算阶段以及第一隔离阶段的循环,同时,第二处理级保留于第二隔离阶段,使得第一处理阶段和第二处理阶段可存储两个分开的标记而不需要由预充电阶段来分隔。
9.权利要求8所述的无锁存动态异步数字流水线电路,其特征在于,还包括第一完成发生器,被设置成向第一级控制器提供表示第一处理级阶段的第一暂态信号。
10.如权利要求9所述的无锁存动态异步数字流水线电路,其特征在于,当第一级控制器确认第一运算控制信号并不能确认第一预充电控制信号时,第一处理级进入第一运算阶段。
11.如权利要求9所示的无锁存动态异步数字流水线电路,其特征在于,当第一级控制器不能确认第一运算控制信号和不能确认第一预充电控制信号时,第一处理级进入第一隔离阶段。
12.如权利要求9所述的无锁存动态异步数字流水线电路,其特征在于,当第一级控制器不能确认第一运算控制信号且确认第一预充电控制信号时,第一处理级进入第一预充电阶段。
13.如权利要求9所述的无锁存动态异步数字流水线电路,其特征在于,当第一处理级已进入运算阶段且前一级已向第一处理级提供了有效的输出时,第一暂态信号被确认。
14.如权利要求9所述的无锁存动态异步数字流水线电路,其特征在于,当第一处理级已进入预充电阶段时,第一暂态信号不能被确认。
15.一种在无锁存动态异步数字电路中的处理级,具有无锁存的动态逻辑,该处理级包括级控制器,被设置成提供预充电控制信号和运算控制信号,其中,预充电控制信号与运算控制信号去耦合;以及功能块,它具有输入和输出,被设置能驱动经过由预充电阶段、其后的运算阶段及其后的隔离阶段组成的周期阶段,并返回到预充电阶段,它只响应于来自级控制器的预充电控制信号和运算控制信号,其输出当处于隔离阶段时与其输入的变化相隔离。
16.如权利要求15所述的在无锁存动态异步数字电路中的处理级,其特征在于,当第一运算控制信号被确认并不能确认第一预充电控制信号时,第一处理级进入第一运算阶段。
17.如权利要求15所示的在无锁存动态异步数字电路中的处理级,其特征在于,当第一运算控制信号不能被确认且第一预充电控制信号被不能确认时,第一处理级进入第一隔离阶段。
18.如权利要求15所述的在无锁存动态异步数字电路中的处理级,其特征在于,当第一运算控制信号不能确认且第一预充电控制信号被确认时,第一处理级进入第一预充电阶段。
19.一种无锁存动态异步数字流水线电路,包括第一处理级,它包括第一功能块,它包括由第一预充电控制信号控制的上拉堆栈,由第一运算控制信号控制的下拉堆栈,第一数据输入和第一数据输出,它被设置能驱动经过由第一预充电阶段、其后的第一运算阶段及其后的第一隔离阶段组成的周期阶段,它只响应于第一预充电控制信号和第一运算控制信号,其中,当第一预充电控制信号和第二预充电控制信号在第一隔离阶段中都不能确认时,第一数据输出与第一数据输入中的变化相隔离;第一完成发生器,它包括非对称C元件,设置该发生器以接收作为输入的第一预充电控制信号、第一运算控制信号以及有效数据输入信号,其中,非对称C元件产生第一暂态信号,该信号当第一运算控制信号和有效数据输入都被确认时才被确认,而当第一预充电控制信号被确认时则不能被确认;第一匹配延迟元件,它包括多个反相器,设置该元件以接收作为输入的第一暂态信号并产生作为输出的第一延迟暂态信号;第一级控制器,它包括一个反相器,设置该反相器以从第一匹配延迟元件接收作为输入的第一延迟暂态信号并产生作为输出的第一运算控制信号,非对称的C元件,设置该元件以从第二处理级接收作为输入的第一延迟暂态信号和第二暂态信号并产生中间控制信号,该信号当第一延迟暂态信号不能被确认时不能被确认,当第一暂态信号被确认且第二暂态信号被确认时被确认,以及NAND门电路,设置该门电路以接收作为输入的第一延迟暂态信号、第二暂态信号和中间控制信号,并产生作为输出的第一预充电信号;以及第二处理级,它包括第二功能块,它包括由第二预充电控制信号控制的上拉堆栈,由第二运算控制信号控制的下拉堆栈,第二数据输入和第二数据输出,它被设置能驱动经过由第二预充电阶段、其后的第二运算阶段及其后的第二隔离阶段组成的周期阶段,它只响应于第二预充电控制信号和第二运算控制信号,其中,当第二预充电控制信号和第二预充电控制信号在第二隔离阶段中都不能被确认时,第二数据输出与第二数据输入中的变化相隔离;第二完成发生器,它包括非对称C元件,设置该发生器以接收作为输入的第二预充电控制信号、第二运算控制信号以及第一延迟暂态信号输入,其中,非对称C元件产生第二暂态信号,该信号当第二运算控制信号和有效数据输入都被确认时才被确认,而当第二预充电控制信号被确认时则不能被确认;第二匹配延迟元件,它包括多个反相器,设置该元件从接收作为输入的第二暂态信号并产生作为输出的第二延迟暂态信号;第二级控制器,它包括一个反相器,设置该反相器可从第二匹配延迟元件接收作为输入的第二延迟暂态信号并产生作为输出的第二运算控制信号,非对称的C元件,设置该元件以从外界接收作为输入的第二延迟暂态信号和第三暂态信号并产生中间控制信号,该信号当第二延迟暂态信号不能确认时则不能被确认,当第一延迟暂态信号被确认且第二暂态信号被确认时才被确认,以及NAND门电路,设置该门电路以接收作为输入的第一延迟暂态信号、第二暂态信号和中间控制信号,并产生作为输出的第二预充电信号。
20.一种用无锁存的动态异步流水线处理无锁存动态异步数字流水线的方法,该方法包括提供第一处理级,设置该处理级能驱动经过由第一预充电阶段、其后的第一运算阶段及其后的第一隔离阶段组成的周期阶段,它只响应于第一预充电控制信号和第一运算控制信号;提供第二处理级,设置该处理级能驱动经过由第二预充电阶段、其后的第二运算阶段及其后的第二隔离阶段组成的周期阶段,它只响应于第二预充电控制信号和第二运算控制信号,其中,第二处理级的输出当处于隔离阶段时与其输入上的变化相隔离;在第一处理级执行第一运算阶段;在第二处理级执行第二运算阶段,并且向第一级控制器提供表示第二处理级阶段的暂态信号;通过第一级控制器响应暂态信号,向第一处理级提供第一预充电控制信号和第一运算控制信号;以及执行第一处理级的预充电阶段、第一运算阶段以及第一隔离阶段,同时第二处理级保持第二运算阶段和第二隔离阶段中的一个阶段,从而第一处理阶段和第二处理阶段可存储两个分开的标记而不需要由预充电阶段来分隔。
全文摘要
一种无锁存的动态异步数字流水线电路提供了上拉和下拉的去耦合控制。使用两个去耦合输入,驱动能依次经过运算、隔离和预充电这三个不同的阶段。在隔离阶段,级稳定地保持输出而不管其输入上的任何变化。邻近的流水线级能不用间隔而存储不同的数据项。
文档编号H03K19/00GK1432152SQ01810532
公开日2003年7月23日 申请日期2001年4月25日 优先权日2000年4月25日
发明者M·辛格, S·M·诺维克 申请人:纽约市哥伦比亚大学托管会
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1