多阈值NULL约定逻辑设计

多阈值NULL约定逻辑(MTNCL):一种超低功耗异步电路设计方法

摘要

本文提出了一种超低功耗异步电路设计方法,称为多阈值NULL约定逻辑(MTNCL),也被称为睡眠约定逻辑(SCL)。该方法将多阈值CMOS(MTCMOS)与NULL约定逻辑(NCL)相结合,在避免同步电路应用MTCMOS所带来的各种缺点的同时,实现了显著的功耗降低。与其他通常导致较大面积开销的功耗降低技术不同,MTNCL电路的实际面积甚至小于原始NCL版本。MTNCL利用高阈值电压晶体管来控制低阈值电压逻辑块的电源和地线,从而在工作时实现快速切换,并在空闲时实现极低的漏电功耗。为了展示MTNCL的优势,采用1.2V IBM 8RF-LM 130nm CMOS工艺设计了多个32位IEEE单精度浮点协处理器进行对比:原始NCL、仅组合逻辑(C/L)休眠的MTNCL、逐位MTNCL(BWMTNCL)、组合逻辑(C/L)与完成逻辑均休眠的MTNCL、组合逻辑(C/L)、完成逻辑及寄存器均休眠的MTNCL、具有安全休眠架构的MTNCL,以及同步MTCMOS。这些设计在吞吐量、面积、动态能量和空闲功耗方面进行了比较,展示了各种MTNCL架构之间的权衡,并表明最佳的MTNCL设计在所有方面均远优于原始NCL设计,在面积、每次操作的能量和空闲功耗方面也远优于同步MTCMOS设计,尽管同步设计可以运行得更快。

关键词 :空约定逻辑(NCL);多阈值CMOS(MTCMOS);睡眠约定逻辑(SCL)

1. 引言

随着半导体器件不断向深亚微米区域缩小,过去较为次要的设计挑战如今变得日益重要。在过去,CMOS数字电路的功耗主要由动态开关功耗主导;然而近年来,随着电源和阈值电压的显著降低,漏电功耗显著增加,这对数字集成电路(IC)的设计方法提出了新的要求。漏电功耗的主要组成部分是亚阈值漏电,这是由于即使晶体管处于关闭状态,仍会有电流流过所致。亚阈值漏电随晶体管特征尺寸的减小呈指数级增长。

在深亚微米技术中,为控制或最小化漏电功耗而提出的众多技术中,多阈值CMOS(MTCMOS)[1]极具前景,该技术通过在空闲(或睡眠)模式下断开电路的电源以降低漏电功耗,同时在活动模式下保持高性能。MTCMOS在电路中集成了具有两种或更多不同阈值电压(Vt)的晶体管。低-Vt晶体管提供快速速度但具有高漏电流,而高-Vt晶体管速度较低但漏电流显著减少。MTCMOS通过利用低-Vt晶体管进行电路开关以保持性能,并采用高-Vt晶体管来门控电路电源,从而显著降低亚阈值漏电。

准延迟无关(QDI)空约定逻辑(NCL)电路[2]采用CMOS设计,由于仅在执行有工作时才发生切换,因此具有固有的空闲行为;然而,在空闲模式下仍然存在显著的漏电功耗。本文将MTCMOS技术与NCL相结合,在空闲模式下使NCL电路进入睡眠状态,以替代空周期,从而提出一种快速的超低功耗异步电路设计方法,称作多阈值NULL约定逻辑(MTNCL),也称为睡眠约定逻辑(SCL),该方法所需的面积比原始NCL电路更小。

第2节概述了NCL、多阈值CMOS以及先前的MTNCL实现。第3节提出了对MTNCL技术的改进,使得寄存和完成逻辑能够与组合逻辑(C/L)一同进入休眠状态。第4节比较了各种实现方式;第5节给出了结论。

2. 以往工作

2.1. NCL简介

NCL电路利用多轨逻辑(例如双轨)来实现延迟无关性。一个双轨信号D由两条导线D0和D1组成,每条导线的取值可以来自集合{DATA0, DATA1, NULL}中的任意值。DATA0状态(D0=1, D1=0)对应于布尔逻辑0,DATA1状态(D0=0, D1=1)对应于布尔逻辑1,而空状态(D0=0, D1=0)对应于空集,表示D的值尚不可用。这两条轨是互斥的,因此两条轨不可能同时被置位;这种状态被定义为非法状态。双轨逻辑是一种空间最优单热延迟无关编码,每个比特需要两条导线。

NCL电路由27种基本门电路[3]组成。这27种门电路构成了所有包含四个或更少变量的函数集合。此处,变量指的是多轨信号中的一条轨;因此,四变量函数不同于四个文字的函数(在双轨逻辑下,后者将包含八个变量)。如图1所示,主要类型的阈值门是THmn门,其中1 ≤ m ≤ n。THmn门具有n个输入,只有当n个输入中至少有m个被置位时,输出才会被置位;且无时钟逻辑阈值门设计具有迟滞状态保持能力,即所有已置位的输入必须先去激活,输出才会去激活。迟滞确保了在对下一波阵面的输入数据进行处理之前,所有输入完全返回到空状态。因此,THnn门等效于n输入C元件[4],而TH1n门等效于n输入或门。除了如图2所示的静态无时钟逻辑门实现外,还存在其他CMOS实现,详见[5,6]。在THmn门中,每个n个输入都连接到门的圆弧部分;输出从门的尖端引出;门的阈值m写在门内部。无时钟逻辑阈值门还可以包含一个复位输入,用于初始化输出。这些可复位门用于延迟无关寄存器的设计[7]。

示意图0

NCL系统至少包含两个延迟无关寄存器,一个位于输入端,一个位于输出端,并可通过插入额外的寄存器实现细粒度流水线,如图3所示。两个相邻的寄存器级通过它们的请求和应答信号Ki和Ko进行交互,以防止当前的数据波阵面覆盖前一个数据波阵面,确保两个数据波阵面始终被一个空波前隔开。应答信号在完成检测电路中被合并,以生成对前一级寄存器的请求信号,该过程采用全字或按位完成策略[7]。

为了确保延迟无关性,NCL电路必须满足以下条件:输入完备性和可观察性[8]。输入完备性要求,组合电路的所有输出在所有输入从空转变为数据之前,不得从空转变为数据,并且所有组合电路的输出在所有输入从DATA转变为NULL之前,不得从DATA转变为NULL。在具有多个输出的电路中,根据赛茨DI信号的“弱条件”[9],允许部分输出在没有完整的输入集的情况下发生转换,只要保证所有输出不会在所有输入到达之前发生转换即可。可观察性要求孤立信号不得通过门[10]传播。孤立信号定义为在当前数据波阵面期间发生转换但未参与输出判定的导线。孤立信号由导线分叉引起,只要不允许其跨越门边界,便可依据等时分叉假设[11,12]予以忽略。此可观察性条件也称为可指示性或稳定性,确保每个门的转换都能在输出端被观察到,即每一个发生转换的门都至少对一个输出的转换是必要的。

示意图1

示意图2

2.2. 多阈值CMOS简介

MTCMOS通过在空闲(或睡眠)模式下利用不同的晶体管阈值电压(Vt)[1]断开电路的电源来降低漏电功耗,同时在活动模式下保持高性能。低-Vt晶体管速度更快但漏电流较高,而高-Vt晶体管速度较慢但漏电流显著更低。MTCMOS结合了这两种晶体管,利用低-Vt晶体管进行电路开关以保持性能,并使用高-Vt晶体管来控制电路电源,从而显著减少亚阈值漏电。

一种MTCMOS方法在关键路径上使用低-Vt晶体管以保持高性能,而在非关键路径上使用速度较慢的高-Vt晶体管以降低漏电流。除了这种路径替换方法外,还有另外两种实现MTCMOS的架构。一种粗粒度技术在[13]中被研究,该技术对所有电路功能均采用低-Vt逻辑,并利用高-Vt睡眠晶体管(用虚线圆表示)来控制整个逻辑模块的电源,如图4所示。睡眠晶体管由一个Sleep信号控制。在活动模式期间,Sleep信号去激活,使两个高-Vt晶体管导通,从而为低-Vt逻辑提供虚拟电源和地。当电路处于空闲状态时,Sleep信号被置位,迫使两个高-Vt晶体管关断,切断低-Vt逻辑的电源,从而实现极低的亚阈值漏电流。该方法的一个主要缺点是,对于大规模电路而言,逻辑模块划分和睡眠晶体管尺寸设计较为困难。另一种细粒度架构如图5所示,其在每个门内部采用MTCMOS技术,其中上拉网络(PUN)和下拉网络(PDN)使用低-Vt晶体管,并通过一个高-Vt晶体管来控制两个网络之间的漏电流。另外两个低-Vt晶体管分别与PUN和PDN并联,用于在睡眠模式下维持这两个网络之间近似相等的电压电平(i.e.,X1约等于VDD,X2约等于GND)。将MTCMOS技术实现在每个门内部可解决逻辑块划分和睡眠晶体管尺寸设计的问题,因为每个门独立进行尺寸调整并构成门库的一部分;然而,这会导致较大的面积开销。

示意图3

示意图4

通常,MTCMOS在同步电路中的广泛应用受到三个严重缺点的阻碍[13]:(1)Sleep信号的生成是时序关键的,通常需要复杂的逻辑电路;(2)在睡眠模式下电源晶体管关闭时,同步存储元件会丢失数据,尽管这可以通过特殊的寄存器设计来解决;(3)对于粗粒度方法而言,逻辑块划分和晶体管尺寸调整非常困难,而这对于电路正确运行至关重要,而细粒度方法则需要较大的面积开销。然而,通过将NCL与MTCMOS技术结合使用,这三个缺点均可被消除。

2.3. MTNCL简介

MTNCL最初在[15–19]期间开发,总结如下,而本文对原始MTNCL概念提供了重大改进。

2.3.1. 早完成输入不完整(ECII)MTNCL架构

NCL阈值门比基本布尔门更大且实现的功能更复杂,因此在实现任意函数时通常所需的阈值门数量少于布尔门;然而,NCL实现往往需要更多的晶体管。因此,在每个阈值门内部集成MTCMOS便于进行睡眠晶体管尺寸设计,而无需带来过大的面积开销。由于浮空节点可能导致下一阶段产生显著的短路功耗,因此采用类似于图5所示的MTCMOS结构,在睡眠模式下将输出节点拉至地。当流水线级中的所有MTNCL门均处于睡眠模式,使得所有门输出均为逻辑0时,该状态等效于该流水线级处于空状态。因此,在每次数据周期之后,可通过断言睡眠控制信号强制该流水线级中的所有MTNCL门输出逻辑0,而不必在整个级中传播空波前,从而确保在睡眠模式期间不丢失数据。

由于完成检测信号Ko用于指示相应的流水线级是否准备好进行数据或空周期,Ko可以自然地用作睡眠控制信号,而无需任何额外的硬件,这与同步MTCMOS电路所需的复杂Sleep信号生成电路相反。遗憾的是,直接使用常规方法实现这一想法存在困难。

NCL完成信号会破坏延迟无关性[18]。为了解决这一问题,可以使用早完成[20]代替常规完成,如图6所示,其中每个完成信号都被用作后续流水线级中所有阈值门的睡眠信号。早完成利用寄存器i-1的输入以及向寄存器i−1发出的Ki请求,而非像常规完成那样仅使用寄存器i-1的输出,来生成向寄存器 i−2发出的请求信号Koi−1。组合逻辑不会立即进入睡眠状态,直到所有输入都为空且该级正在请求空;因此,空波前已准备好通过该级传播,此时该级可进入睡眠模式而不破坏延迟无关性。该级将保持在睡眠模式,直到所有输入都为数据且该级正在请求数据,从而准备进行求值。这种被称为ECII的早完成MTNCL架构通过睡眠机制确保了输入完备性(即,仅当所有输入为空时电路才进入睡眠,此时所有门同时被强制为逻辑0;仅当所有输入为数据时才开始求值),使得可以使用输入不完备的逻辑函数来设计电路,从而减小面积和功耗,并提高速度。需要注意的是,用使组合逻辑进入睡眠代替传播空波前会降低可观察性,导致所有输出不作为下一级寄存器输入的C/L门均不可观察。尽管这使得该架构在理论上不再完全延迟无关,但在实际应用中,只要睡眠树的构造保证了C/L输出门与内部门之间的睡眠延迟不大,则这种额外的延迟敏感性不会引起问题。这种睡眠树的时序要求很容易实现。

示意图5

2.3.2. 面向ECII架构的MTNCL阈值门设计

多阈值CMOS结构被集成在每个NCL阈值门内部,实际上导致许多原有的晶体管不再需要。如图7a所示,复位电路不再需要,因为门输出现在将通过MTCMOS睡眠机制强制为“空”,而不是通过所有输入变为逻辑0来实现。保持1用于确保一旦门被置位,在所有输入去激活之前始终保持置位状态,以保证相对于空波前的输入完备性;然而,由于ECII架构通过睡眠机制保证了输入完备性,如第2.3.1节所述,因此NCL门的迟滞特性不再需要。因此,保持1电路及其对应的NMOS晶体管被移除,同时移除PMOS晶体管以维持CMOS逻辑的互补特性(即,置位和保持0互为补),从而确保门永远不会悬空。

示意图6 将多阈值CMOS集成到NCL阈值门中;(b) SMTNCL门结构;(c) TH23实现)

由直接的MTCMOS NCL阈值门实现改进而来[15],类似于图5所示结构,一种改进的静态MTNCL阈值门结构(称为SMTNCL)如图7b所示。该改进通过将电源门控的高-Vt晶体管移至下拉网络并移除两个旁路晶体管,从而消除了输出唤醒时的毛刺。除输出反相器外的所有PMOS晶体管均为高-Vt,因为它们仅在门进入睡眠模式且输入变为逻辑0时导通,并在门退出睡眠模式期间保持导通状态,直到该门的置位条件为真。在这两种情况下,门的输出已经为逻辑0;因此,这些PMOS晶体管的速度不会影响性能,故采用高-Vt晶体管以降低漏电流。在活动模式期间,Sleep信号为逻辑0,而Sleep为逻辑1,使得该门正常工作。在睡眠模式期间,Sleep为逻辑1,Sleep为逻辑0,从而使输出低-Vt下拉晶体管快速导通,将输出拉至逻辑0,同时关断高-Vt NMOS门控晶体管以减少漏电流。注意,由于内部节点(位于置位和保持0之间)在睡眠模式期间为逻辑1,且输出为逻辑0时,输出反相器中的NMOS晶体管不再位于关键路径上,因此可以采用高-Vt晶体管。例如,图7c展示了静态TH23门的SMTNCL实现。

2.3.3. 面向ECII架构的MTNCL阈值门设计

将ECII架构与SMTNCL门结构结合,会导致延迟敏感性问题,如图8所示。在一个数据周期之后,如果大部分但并非全部输入变为空信号,该部分空信号(PN)波阵面可能通过该级的输入寄存器,因为后续级正在请求空信号,从而导致该级所有输出都变为空信号,而此时并非所有输入都已为空信号,且该级尚未进入睡眠状态,这是因为SMTNCL门中已移除了hold1逻辑。这种情况违反了第2.1节中讨论的输入完整性准则,可能导致后续级在前一级输入仍为部分空信号时就请求下一个数据周期,使得前一波阵面中仍为数据的位被保留并在后续操作中被使用,从而破坏了延迟无关性,类似于在MTNCL[18]中使用常规完成而非早完成时所出现的问题。

示意图7

解决此问题有两种方案,一种在架构级,另一种在门级。由于该问题是由于部分空信号通过寄存器引起的,因此可以在架构级加以解决,即确保只有当所有寄存器输入都为空时,才允许空波前通过寄存器。这可以通过使用级的取反的睡眠信号作为其输入寄存器的Ki信号来轻松实现。这种固定提前完成输入不完整(FECII)架构如图9所示。与ECII相比,FECII速度较慢,因为寄存器必须等待所有输入变为数据/空后才能锁存。需要注意的是,部分数据波阵面通过寄存器不会造成问题,因为该级将保持在睡眠模式,直到所有输入都为数据,从而确保所有级输出在所有输入都为数据之前保持为空。

示意图8

该问题也可以在门级通过将hold1逻辑重新添加到每个SMTNCL门中来解决,以确保相对于空信号的输入完备性,从而防止部分空波前导致所有输出均变为空。注意,这需要重新添加位于hold0和VDD之间的PMOS晶体管,以防止当hold1和hold0同时置位时,从VDD到地形成直流通路。另外,注意那些未与set条件共享的hold1晶体管可以采用高Vt晶体管,因为它们不在关键路径上。这种带有hold1的静态MTNCL实现如图10所示,并被记为SMTNCL1。

示意图9 SMTNCL1门结构; (b) TH23实现)

总之,ECII架构仅与包含hold1功能的SMTNCL1门配合使用。FECII架构则可同时支持SMTNCL和SMTNCL1门;然而,通常会将SMTNCL门与FECII配合使用,因为它们所需的晶体管更少。此外,当两者使用相同的MTNCL门时,ECII架构比FECII架构更快。

2.3.4. 位级MTNCL

位级MTNCL(BWMTNCL)在[19]中被提出,旨在为位级流水线[7] NCL系统提供一种超低功耗方法。直接将MTNCL概念(即,利用早完成和睡眠门电路替代空周期)应用于位级流水线NCL系统会导致过高开销[19]。因此,BWMTNCL采用如图3所示的常规NCL架构,以及如图7a所示的常规NCL门设计,并对其进行修改,使其使用最少数量的高-Vt晶体管,从而保证从VDD到地的所有路径都包含一个高-Vt晶体管。例如,BWMTNCL TH23门如图11所示。

尽管BWMTNCL最初是为位级流水线NCL系统开发的,但BWMTNCL门也可用于全字长流水线NCL系统,如[19]中所展示,并在本文中作为对比包含进来。

示意图10

3. MTNCL 的增强

如图10所示,之前的SMTNCL1门需要大量额外的晶体管来实现 hold1功能;然而,额外晶体管的数量可以显著减少。此外,之前的MTNCL架构仅允许组合逻辑(C/L)进入休眠状态,而本文提出了两种改进的MTNCL架构,其中(1)完成逻辑也可以休眠;(2)寄存和完成逻辑都可以休眠。

3.1. 新型SMTNCL1门

图12展示了新型SMTNCL1门,它仅比SMTNCL门多需要两个晶体管。图12中的新型 SMTNCL1门与图10中先前版本的不同之处在于,保持1逻辑已被移除。反馈NMOS晶体管足以将输出保持在逻辑1,而无需保持1电路,因为这确保了一旦门输出由于当前数据波阵面被置位后,只有当门进入睡眠状态(即所有电路输入为空)时才会被去激活,而不会由于部分前空沿而被去激活。

示意图11

3.2. 睡眠完成与寄存逻辑

第2.3节描述了MTNCL架构,其中通过使NCL电路的C/L进入睡眠模式来替代空周期,从而显著降低漏电功耗。然而,在睡眠模式下,电路的完成与寄存逻辑仍然保持活动状态,而对于细粒度流水线电路而言,这部分逻辑可能占据较大比例。因此,若能同时将完成与寄存逻辑也进入睡眠状态将会非常有益。通过修改ECII架构(如图6所示),在完成逻辑中增加睡眠输入,并使用SMTNCL1门来实现完成逻辑(分别如图13和图14所示),即可实现完成逻辑的睡眠。注意,最后的反相TH22门是一个普通的NCL门,不会进入睡眠状态。这与空周期的情况一致,即内部完成组件的所有门均为逻辑0,除了最后的反相TH22门外。

示意图12

示意图13

在空周期期间,寄存器输出也是空,因此也可以使其进入睡眠状态,如图15所示。无需使用两个SMTNCL1 TH22门来实现寄存器,而是可以将每条轨的睡眠晶体管合并,使得双轨寄存器被实现为单个组件,以减少面积,如图16a所示。请注意,该架构类似于图9所示的 FECII架构,其不允许部分空信号通过寄存器传播,因此C/L可以使用更小的SMTNCL门而不是SMTNCL1门来实现。

示意图14

3.3. 将SECRII与BWMTNCL结合

在SECRII架构中使用的SMTNCL门需要同时具备睡眠和Sleep输入,每个输入都需要一个大型缓冲树。因此,消除其中一个输入将减少面积和能量消耗。通过将图7中的SMTNCL架构与图11中的BWMTNCL架构结合,如图16b和图17所示,可以从SMTNCL门中消除Sleep(nsleep)输入。不再使用高Vt晶体管来控制从地端接入的置位逻辑,而是对置位逻辑进行以BWMTNCL方式实现,使用最少数量的高-Vt晶体管,使得所有通过置位功能到地的路径都包含一个高-Vt晶体管。

示意图15

示意图16

3.4. 安全的SECRII架构

无nsleep的SECRII架构将MTNCL的优势发挥到极致,提供了最小、最快且能耗最低的 MTNCL架构,如第4节所述。然而,由于在阶段休眠与下一阶段锁存DATA之间可能存在竞争条件,SECRII架构对时序更为敏感。例如,当寄存器i的输入为DATA,并且下一阶段正在请求该DATA时,寄存器i的休眠式早期完成组件输出将从逻辑1变为逻辑0,从而唤醒寄存器i以锁存DATA。如果前一级寄存器(寄存器i−1)的输入已经是空,则寄存器i的休眠式早期完成组件从1到0的跳变将导致寄存器i−1的休眠式早期完成组件输出从逻辑0变为逻辑1,从而使寄存器i之前的C/L进入睡眠状态。因此,在寄存器i锁存DATA之前,存在一个竞争条件:即必须在其前面产生该DATA的C/L被休眠而变为空之前完成锁存。这意味着,当寄存器i的sleep输入从1跳变为0后,DATA通过该寄存器所需的时间必须小于寄存器i−1的休眠式早期完成反相TH22输出门从0跳变为1所需时间,再加上使寄存器i之前的C/L进入睡眠状态变为空所需的时间。第一条路径仅包含一个MTNCL门(即寄存器),而第二条路径则由一个NCL TH22门、一个反相器和一个MTNCL门串联组成;因此,这种潜在的竞争条件很容易避免。需要注意的是,在实际中,这两条路径通常还都包含用于睡眠信号的缓冲树,因此需要对每个睡眠网络进行简单分析,以确保其时序不会引发有问题的竞争条件。

这种潜在的问题性竞争条件可以通过使用[21]中描述并在图18中所示的安全SECRII架构来避免。该安全架构要求数据波阵面在使当前级进入睡眠状态之前完全通过下一级,从而避免了竞争条件。这可以通过将下一级完成树输出端的信号(在最终的反相TH22门之前,如图14中所指的Kobc)用作当前级的早期完成/睡眠生成电路的Ko输入来轻松实现。该信号在图18中作为每个早期完成组件的附加输出显示,并且在连接到前一个早期完成组件的Ko输入之前必须进行反相。这种安全架构的主要缺点是会显著降低性能。

示意图17

4. 仿真结果

为了比较各种MTNCL架构,采用1.2V IBM 8RF-LM 130 nm CMOS工艺设计了多个四级流水线32位IEEE单精度浮点协处理器,这些协处理器执行加法、减法和乘法[22],如图19所示,并在插入缓冲器后使用Cadence的UltraSim仿真器在混合信号模式下进行晶体管级仿真,仿真中使用VerilogA控制器,针对每次加/减和乘法操作分别采用25组随机选择的浮点数,其结果取平均值生成表1中的数据。注意,所有设计(包括异步和同步)中的所有晶体管均为最小尺寸,缓冲器除外。表1列出了MTNCL的结果,并与全部使用低-Vt晶体管和全部使用高-Vt晶体管的常规NCL实现以及同步MTCMOS设计进行了比较。需要注意的是,同步MTCMOS设计仅在接收到预设数量的相同输入数据集后才进入睡眠状态,这需要一个小型电源管理单元 (PMU)来比较相邻数据集并统计连续相同的数量[23]。该浮点协处理器具有两个不同的数据路径:加减法单元和乘法器,它们具有不同的吞吐量,因此每条路径的数据分别列出,也可取平均值得到综合结果。TDD是平均DATA加上空处理时间,相当于同步电路的时钟周期。为了与同步MTCMOS设计进行比较,设定时钟以匹配最快的MTNCL设计的速度,即使该同步设计可以运行得更快(小于2倍)。TDD和每操作能量是在电路以其最高速度运行时计算的,而空闲功耗则是在流水线被全空输入清空后的异步电路以及PMU使同步电路进入睡眠状态后通过直流分析计算得到的。请注意,PMU必须始终保持激活状态,不能进入睡眠,因为它需要持续监控输入数据以检测其变化,从而唤醒其余电路处理新数据。因此,对于异步电路而言,空闲功耗等同于漏电功耗,且不依赖于之前的操作类型(即,无论是加/减还是乘法),因为后续的睡眠状态是相同的(即,两条流水线均为全空)。然而,对于同步设计,加/减与乘法之间的空闲功耗略有不同,因为它们的时钟周期不同。

比较各种MTNCL设计表明,带hold1的新MTNCL门(SMTNCL1)在[18]中比前一版本所需的面积、能量和功耗更小,且速度略快。将完成逻辑与C/L一同进入睡眠状态可略微减少面积、能量和漏电功耗,并显著提高速度;而将C/L、完成逻辑和寄存器全部进入睡眠状态则显著降低面积、能量和漏电功耗,并略微提升速度。不带nsleep的SMTNCL与SECRII结合设计融合了SMTNCL与SECRII以及BWMTNCL架构,在略微增加漏电功耗的代价下进一步减少了面积和能量,并提高了速度。需要注意的是,FECII电路比ECII电路更快,因为FECII设计采用了速度更快的SMTNCL门。

示意图18

电路类型 晶体管数量 TDD(ns) 每次操作能量(皮焦) 空闲功率(纳瓦)
加法/减法 乘法 加法/减法
NCL 低-Vt 158059 14.1 14.4 27.4
NCL 高-Vt 158059 32.7 33.4 28.5
BWMTNCL 158059 17.9 16.2 27.1
带 FECII 的 SMTCNL 111506 11.6 15.3 14.9
原始 SMTNCL1 带 ECII 130476 12.5 16.7 16.0
带 ECII 的新型 SMTNCL1 119706 12.1 15.7 14.7
带 SECII 的 SMTNCL1 119244 10.7 15.4 14.6
带 SECRII 的 SMTNCL 96640 11.1 14.8 13.5
带 SECRII 的 SMTNCL 无nsleep 90041 10.0 13.9 12.1
带 SECRII 的 SMTNCL 无nsleep (安全架构) 90049 13.4 16.6 12.3
同步MTCMOS 104571 10.0 13.9 124.3

最佳的MTNCL设计,SMTNCL with SECRII without nsleep,相比常规低Vt NCL设计,面积减少43%,能量降低34%,漏电功耗低两个数量级,速度提高19%;相比常规高Vt NCL设计,漏电功耗降低46%;在与同步MTCMOS设计相同速度下运行时,面积减少14%,能量降低86%,空闲功耗低三个数量级,尽管同步MTCMOS设计可以运行得更快(更少低于2倍)。需要注意的是,同步电路的空闲功耗主要来自其仍在运行的PMU所产生的动态功耗,该PMU在协处理器空闲时持续工作以确定何时唤醒协处理器。正如上文所述,这就是其空闲功耗远高于异步设计的原因。由于异步设计采用握手机制,在空闲时完全不会发生切换,因此无需额外电路即可实现极低功耗。因此,如果添加用户控制的睡眠输入,则同步电路将不再需要PMU,其空闲功耗将仅由漏电功耗构成。对于基于MTCMOS的电路,漏电功耗与门的数量成正比,因此此时同步电路的漏电功耗将与MTNCL异步设计处于相同的数量级。

因此,本文提出的无nsleep的带 SECRII 的 SMTNCL架构在面积、速度、能量和漏电功耗等所有方面均远优于传统NCL,并且在面积、能量和空闲功耗方面显著优于同步MTCMOS架构。最后,为了提高时序鲁棒性,可选择使用安全SMTNCL带SECRII无nsleep架构,该架构保留了普通SMTNCL带SECRII无nsleep架构的所有面积和功耗优势,但性能有所降低。

5. 结论

本文介绍了对超低功耗MTNCL方法的改进,该方法最初在[15–19]中提出。具体而言,设计了一种具有保持1功能的新MTNCL门,其面积更小、速度更快,且功耗低于[18]中的前一版本。此外,还开发了两种新的MTNCL架构,允许在C/L进入睡眠状态的同时,使完成逻辑也进入睡眠状态;以及使C/L、完成逻辑和寄存均能同时进入睡眠状态;该新架构与[19]中的 BWMTNCL架构相结合,通过移除Sleep缓冲树进一步减少了面积和能耗,并提高了速度。基于1.2V IBM 8RF-LM 130 nm CMOS工艺对四级流水线32位IEEE单精度浮点协处理器进行晶体管级仿真表明,这种在没有Sleep缓冲树的情况下使C/L、完成逻辑和寄存均进入睡眠状态的新架构在所有方面(即,面积、速度、能量和漏电功耗)均优于之前的MTNCL架构,在所有指标上远超传统NCL,并在面积、能耗和空闲功耗方面显著优于MTCMOS同步架构,尽管 MTCMOS同步设计能够实现更高的运行速度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值