多时钟域微处理器的制作方法

文档序号:6478434阅读:209来源:国知局
专利名称:多时钟域微处理器的制作方法
技术领域
本发明涉及微处理器,更具体地说,涉及具有多个时钟域的微处理器。
背景技术
近年来,对更高的微处理器性能的不断需求已导致时钟频率的空前增长。尽管2000年奔腾III微处理器突破了1GHz大关,但是,当前出货的奔腾IV处理器已2GHz了。现在,由于可靠性和性能问题,在连续的工艺代(process generation)中,连线尺寸不能象晶体管尺寸那样被缩小。这些频率和尺寸的发展趋势的结果是微处理器的时钟频率日益受到线路延迟的限制,以至于最近某些微处理器(例如,奔腾IV[14])已使用专门用于在整个芯片中移动信号的流水线级。此外,在将来的系统中存在一个日益增长的挑战,即,要在不断变大的管芯中分发时钟,以增加锁存器的数目,同时满足日益降低的时钟偏斜预算(clock skew budget)。工业研究人员会不可避免地得出结论为了继续时钟频率增加的当前步伐,微处理器设计者将最终不得不放弃单时钟全局同步系统(singly clocked globally synchronous system),进而选择某些异步形式[8,24]。
尽管单纯的异步系统与对等的同步系统相比,具有更高的性能和更低的功耗这种潜力,但是,主要的公司还是不愿意完全迁移到异步设计方法。不情愿这样作的两个主要原因在于相对于同步域中的设计工具而言异步设计工具尚不成熟;放弃已成功地用来创造了许多代微处理器产品的成熟设计基础设施的费用和风险。然而,许多现有的同步设计的确采用了有限数量的异步设计。例如,数种微处理器系统以与处理器核心不同的频率运行存储器总线,以便允许单个系统容纳多个不同频率的处理器。在这种双时钟域系统中,每个双时钟域中的逻辑是使用传统的同步设计方法设计的。公知的高可靠的技术被用来同步两个域之间的通信,虽然存在额外的延迟代价。
由于连线缩放的两难状况还导致另一种趋势用仅需要本地连线的替换方法来替换需要长的全局连线的微体系结构技术。该方法既提高了时钟频率,也提高了将来工艺代中设计的可扩展性。例如,在包括Alpha 21164和21264[11,20]、以及UltraSPARC III[17]在内的许多微处理器中,使用全局连线来停滞多个前流水线级(early pipelinestage)已被取消指令和再起动流水线的重放阱(replay trap)的使用所替代。尽管以此方式清除流水线需要额外的重加载周期,但是,由于不再需要全局连线,所以获得了较高的时钟频率,和更易扩展的实现。UltraSPARC III的设计者通过创建6个消除了单元之间的大多长连线、彼此相对独立运行的功能块,从而完全采用了这种方法[17]。
括号中的标号参考下面的参考文献[1]D.H.Albonesi.Dynamic IPC/Clock Rate Optimization.Proceedings of the 25th International Symposium on ComputerArchitecture,282页-292页,1998年6月。
F.Bellosa.OS-Directed Throttling of Processor Activity forDynamic Power Management.Technical Report TR-I4-3-99,C.S.Dept.,University of Erlangen,Germany,1999年6月. F.Bellosa.The Benefits of Event-Driven Energy Accountingin Power-Sensitive Systems.In Proceedings of the 9th ACMSIGOPSEuropean Workshop,2000年9月。
L.Benini,A.Bogliolo,S.Cavallucci,and B.Ricco.Monitoring System Activity for OS-directed Dynamic PowerManagement.In Proceedings of the International Symposium onLow-Power Electronics and Design,1998年8月。
D.Brooks,V.Tiwari,and M.Martonosi.WattchAFrame-work for Architectural-Level Power Analysis andOptimizations.h Proceedings of the 27th International Symposium onComputer Architecture,2000年6月。
D.Burger and T.Austin.The Simplescalar Tool Set,Version2.0.Technical Report CS-TR-97-1342,University of Wisconsin,Madison,Wisconsin,1997年6月。
J.Casmira and D.Grunwald.Dynamic InstructionScheduling Slack.In Proceedings of the Kool Chips Workshop,inconjunetion with the 33rd International Symposium onMicroarchitecture(MICRO-33),2000年12月。
B.Chappell.The fine art of IC design. IEEE Spectrum,36(7)30-34,1999年7月。
B.R.Childers,H.Tang,and R.Melhem.Adapting ProcessorSupply Voltage to Instrnction-Level Parallelism.In Proceedings of theKool Chips Workshop,in conjunction with the 33rdInternationallSymposium on Microarchitecture(MICRO-33),2000年12月。
L.T.Clark.Circuit Design of XScaleTM Microprocessors.In2001 Symposium on VLSI Circuits,Short Course on Physical Designfor Low-Power and High-Performance Microprocessor Circuits.IEEESolid-LState Circuits Society,2001年6月。
J.H.Edmondson et al. Internal Organization of the Alpha21164,a 300-MHz 64-bit Quad-issue CMOS RISC Microprocessor.Digital Technical Journal,7(1)119-135,1995.Special Edition. B.Fields,S.Rubin,and R.Bodik.Focusing ProcessorPolicies via Critical-Path Prediction.In Proceedings of the 28thInternational Symposium on Computer Architecture,2001年7月。
M.Fleischmann.LongrunTM power management.Technicalreport,Transmeta Corporation,2001年1月。
P.N.Glaskowsky.Pentium 4(Partially)Previewed.Microprocessor Report,14(8)1,11-13,2000年8月。
K.Govil,E.Chang,and H.Wasserman.ComparingAlgorithms for Dynamic Speed-Setting of a Low-Power CPU.InProceedings of the 1st ACM/IEEE International Conference onMobile Computing and Networking,13页-25页,1995年11月。
T.R.Halfhill.Transmeta breaks x86 low-power barrier.Microprocessor Report,14(2),2000年2月。
T.Horel and G.Lauterbach.UltraSPARC IIIDesigningThird-Generation 64-Bit Performance.IEEE Micro,19(3)73-85,1999年5/6月。
C.-H.Hsu,U.Kremer,and M.Hsiao.Compiler-DirectedDynamic Frequency and Voltage Scaling.In Proceedings of theWorkshop on Power-Aware Computer Systems,in conjunction withthe 9th International Conference on Arehitectural Support forProgfamming Languages and Operating Systems(ASPLOS-IX),2000年11月。
C.J.Hughes,J.Srinivasan,and S.V.Adve.Saving Energywith Architectural and Frequency Adaptations for MultimediaApplications.In Proceedings of tAze 34th Annual InternationalSymposium on Microarchitecture(MICRO-34),2001年12月。
R.E.Kessler,E.J.McLellan,and D.A.Webb.The Alpha21264 Microprocessor Architecture.In Proceedings of theInternational Conference on Computer Design,90页-95页,Austin,Texas,1998年10月.IEEE Computer Society. S.Leibson.XScale(StrongArm-2)Muscles In.Microprocessor Report,14(9)7-12,2000年9月。
T.Li and C.Ding.Instruction Balance,EnergyConsumption and Program Performance.Technical ReportUR-CS-TR-739,Computer Science Dept.,University of Rochester,2000年12月.2001年2月修改。
D.Marculescu.On the Use of Microarchitecture-DrivenDynamic Voltage Scaling.In Proceedings of the Workshop onComplexity-Effective Design,in conjunction with the 27thInternational Symposium on Computer Architecture,2000年6月。
D.Matte.Will Physical Scalability Sabotage PerformanceGains?IEEE Computer,30(9)37-39,1997年9月。
T.Pering,T.Burd,and R.W.Brodersen.The Simulationand Evaluation of Dynamic Voltage Scaling Algorithms.InProceedings of the International Symposium on Low-PowerElectronics and Design,1998年8月。
R.Pyreddy and G.Tyson.Evaluating Design Tradeoffs inDual Speed Pipelines.In Proceedings of the Workshop onComplexity-Effective Design,in conjunction with the 28thInternational Symposium on Computer Architecture,2001年6月。
L.F.G.Sarmenta,G.A.Pratt,and S.A.Ward.RationalClocking.In Proceedings of the International Conference onComputer Design,Austin,Texas,1995年10月. A.E.Sjogren and C.J.Myers.Interfacing Synchronous andAsynchronous Modules Within A High-Speed Pipeline.In Proceedingsof the 17th Conference on Advanced Research in IzLSI,pages 47-61,Ann Arbor,Michigan,1997年9月。
G.Sohi.Instruction Issue Logic for High-PerformanceInterruptible,Multiple Functional Unit,Pipelined Computers.ACMTransactions on Computer Systems,39(3)349-359,1990年3月。
TSMC Corp.TSMC Technology Roadmap,2001年7月。
M.Weiser,A.Demers,B.Welch,and S.Shenker.Scheduling for Reduced CPU Energy.In Proceedings of the IstUSENIX Symposium on Operating Systems Design andImplementation,1994年11月。

发明内容
本发明的一个目的是要克服上述现有技术的不足。本发明的另一个目的是提供一种方法,其考虑到将来的频率快速增长,仍维持同步设计方法,并且探索使功能块更自治的趋势。
为了实现上述和其他目的,本发明选择了多时钟域(MCD)微体系结构,其使用全局异步,本地同步(GALS)时钟方式。在MCD微处理器中,每个功能块利用独立产生的时钟运行,并且同步电路确保可靠的域内通信。这样,在每个域的设计中使用完全同步设计实践。尽管域内同步增加了运行给定的应用所要求的时钟周期数目,但是与单时钟设计相比,MCD微处理器提供了许多潜在的优点●全局时钟分布网络非常简单,只要求将外部生成的时钟分布到每个域中的本地锁相环(PLL)。每个本地域时钟独立意味着不需要全局时钟偏斜,这潜在允许每个时钟域中具有更高的频率,以及在将来的工艺代中更大的可扩展能力。
●每个域的设计人员不再受其他域中的关键路径的速度制约,这在每个域中向他们提供了更大的自由度,来最优化时钟速度、迟延和利用复杂的硬件结构来实施应用的并行度之间的权衡。
●在每个域中使用分离的电压输入,外部电压变压器和可控时钟频率电路允许获得比用单时钟、单核心电压系统可以实现的更精细的电压和频率缩放(scaling)、以及从而获得更低的能量。
●利用每个时钟域中的动态调整大小结构并警报时钟速度的能力,可以使IPC/时钟速率折衷适应每个独立的域中的应用特性,从而提高性能和能量效率。
在本申请中,我们描述了MCD微处理器的初步实现,其是单时钟同步动态超标量设计的前向扩展。通过对域内同步精确建模,我们刻画出了所要求的同步电路的性能和能耗特征。然后,我们探索了每个域动态电压和频率缩放的潜在好处。我们的结果证明,对于包括计算繁重和存储繁重应用的一组基准,具有20%的能量-延迟乘积平均改善。不象基于速率的多媒体应用,这些基准传统上不是电压和频率缩放的候选。
我们公开了多时钟域(MCD)微体系结构,其使用全局异步、本地同步(GALS)时钟方式,以及动态电压和频率缩放,以便对于给定的应用最大化性能和能量效率。我们的设计在超标量处理器核心中使用现有的队列结构来以最小化域内同步需求的方式隔离不同的时钟域。
从标准基准套件得到的应用的性能结果指出将处理器划分为多个域导致小于4%的平均基线性能开支。同时,通过动态并独立地缩放不同域中的频率和电压,我们可以实现近20%的平均能量-延迟乘积改善。相反,在单时钟微处理器中达到可比性能下降的全局电压缩放只能实现3%的平均能量-延迟改善。
我们当前的分析使用离线算法来确定在其处不同的域应当改变频率和电压的程序中的点。本发明范围内的变化包括高效的在线算法,包括高效的前端缩放方法,以及用较低等待时间传送片上可调的电压和频率的能力。
下面的文章描述本发明,并且整体结合到本公开中作为参考Semeraro等,“Energy-Efficient Processor Design Using MultipleClock Domains with Dynamic Voltage and Frequency Scaling”,HighPerformance Computer Architecture(HPCA),2002年2月。


将参考附图详细描述本发明的优选实施方式,其中图1示出了多时钟域处理器框图;图2示出了队列结构;图3示出了Full标志;图4示出了同步定时;图5示出了性能下降结果;图6示出了节能结果;图7示出了能量-延迟改善结果;图8A和图8B分别示出了针对Transmeta和XScale的动态1%配置,用我们的离线算法所生成的针对art的频率变化;和图9A和图9B分别示出了针对Transmeta和XScale的动态5%配置,用离线工具选择出的间隔的概括统计。
具体实施例方式
Matzke估计,随着技术扩展到0.1μm特征尺寸,在单个时钟周期中,只有16%的管芯可达[24]。假设芯片多处理器(chipmultiporcess)每个管芯具有两个处理器,每个处理器需要至少3个等尺寸的时钟域。优选实施方式使用4个时钟域,其中的一个包括L2缓存,以便这些域大小可以在某种程度上变化,并且仍旧能够被单个时钟所覆盖。在效果上,我们把主存储器接口作为第五个时钟域对待,该时钟域在MCD处理器的外部,并且总是全速运行。
在选择域之间的边界时,我们试图标识出下述点,其中(a)已存在用于对不同的流水线功能解耦合的队列结构,或(b)几乎不存在功能内通信。在图1的体系结构100中示出的我们选择出的四个域包括前端110(包括指令缓存112、取回缓存114和分支预测、重命名和分派116);整数产生/执行120(包括整数产生队列122和整数算术逻辑单元和寄存器列(register file)124);浮点数产生/执行130(包括浮点数产生队列132和浮点数算术逻辑单元和寄存器列134)和加载/存储产生/执行140(包括加载/存储单元142、L1D缓存144和既与主存储器接口150通信也与前端110的缓存112通信的L2缓存146)。尽管我们最初关注的是实现分离的加载/存储和整数域的性能影响,但是我们发现额外的同步开支(penalty)并未使性能降低太多。此外,由于我们未发现通过使指令读取从重命名/分派解耦合能节能,所以我们将这些区域组合为单个的取回/重命名/分派域,以消除它们的域内同步开销。最后,同一类型的执行单元(例如,整数单元)被组合到单个域中,以避免使这些单元中的旁路和寄存器列数据路径同步而需要的高代价。作为这种划分的结果,对于机器的流水线组织来说,并没有明显的变化。我们也相信,这些划分将导致用于MCD处理器的可物理实现的布图(floorplan)。
MCD处理器的主要缺点在于由于域内同步所导致的性能开销。在这部分中,我们讨论执行这种同步所需要的电路。并且在下面讨论如何对其性能进行建模。
某些同步方案限制时钟的相位关系和相对频率,从而不需要硬件仲裁[27]。遗憾的是,这些方案对可能的频率选择施加了极大的限制。另外,控制时钟的相位关系意味着要求全局时钟同步。我们的设计专门识别出与不具有已知时钟相位关系的独立时钟相关的开销。我们相信在MCD处理器中这种开销是不可避免的该设计的动机之一是认识到将来传统的全局时钟分派将日益变得困难。
整数、浮点数和加载/存储域(加载/存储单元中的加载/存储队列)中的产生队列与前端域中的重排序缓冲区(ROB)一起用来对传统处理器的前端和后端进行解耦合。选择这些队列作为域内同步点具有下述优点只要队列不是满也不是空,就隐藏了同步成本(将在下面描述)。
我们用于域内通信的一般队列结构在图2中示出。Full标志断言向生产者(producer)指示不能再写入该队列,直到该标志被反断言(deasserted)(Full),而当Empty标志被断言时则指示没有有效的数据可由消费者从该队列中读取。消费者在再次读取之前一直等待,直到Empty被反断言。
对这种接口使用完全握手协议要求生产者/消费者在每次操作之后检查Full/Empty标志,以避免队列写溢出,或者读空队列。这种要求使该接口极大地慢下来,从而降低了性能。此外,我们假设Full标志和Empty标志提前产生得足够早,以使得在每个时钟周期写和读都能够发生,而不上溢(overflow)或下溢(underflow)该队列。换而言之,Full标志被生成的足够早,以便每个周期的写突发都将刚好在最后剩余队列条目已被写入时终止(由于生产者识别出Full标志断言)。对于队列的消费者一侧,也存在类似的情况,尽管我们的特定的队列在这一点上不同,后面将会讨论。注意,这种方案在特定的情况下会导致队列利用不充分。例如,如果发起Full标志的断言的写位于突发的末尾,则下次生产者将数据写入该队列时在该队列中将存在为空但又不可用的条目(因为Full标志将已被断言)。
为了避免不能充分利用队列,我们假定在最坏的情况下使额外的队列条目缓冲起来以后写入,以便原始数目的队列条目可以被充分利用。在MCD设计中,最坏情况发生在生产者以最大频率(max_freq)工作,而消费者以最低频率(min_freq)工作时。由于需要比较来自不同时钟域的队列头指针和队列尾指针,以生成Full和Empty标志,所以会导致发生额外的复杂性。在这种情况下,并且假定用于生产者的额外周期识别出Full信号,则要求(max_freq/min_freq)+1个额外的条目。我们的结论未考虑这些额外条目的性能优点和能耗。
即使对每个接口使用完全独立的时钟,在某些条件下该队列结构也能够全速进行读和写操作。这种并发要求允许同时对不同的SRAM单元执行读和写周期的双端口SRAM结构。只要这些接口被设计得符合与Full和Empty标志相关联的协议,该队列结构就不需要支持对同一SRAM单元同时执行读和写访问。只要队列未满(如上所述),生产者就可以在Clockw的每个上升沿连续不断地写数据(图3)。类似地,只要队列未空,消费者就可以在Clockr的每个上升沿连续。因此,只要队列部分满,两个接口都全速运行,尽管可能直到一个同步周期后消费者才能识别出新写入的条目。一旦队列变为满,队列状态Full只能从在数据从读接口被读出时而产生。当该事件发生时,读域中的队列指针必须与写域时钟(Clockw)同步,以便反断言Full。在由于向空队列写而导致生成Empty条件的情况下,类似的去同步化延迟发生。
我们用作同步点的许多队列具有与上述接口不同的接口。对于产生队列,例如,每个条目都具有Valid和Ready标志,调度器使用它们来确定条目是否应当被读取(产生)。设计调度器将永远不会产生多于队列中的有效并就绪的条目的数目的条目。然而,注意,由于同步,在调度器看到新写入的队列数据之前存在延迟。与跨越时钟域接口相关联的延迟是下述内容的函数●时钟仲裁电路的同步时间,Ts,其代表为了使信号成功地被锁存到目的地而在源和目的地时钟之间所需要的最小时间。我们假设由Siogren和Myers所开发的仲裁和同步电路[28]检测源和目的地时钟边沿是否充分分开(最小,Ts),以使得源生成的信号可以在目的地处被成功定时。目的地时钟只在这些情况下被使能。我们假设Ts为最高频率周期的30%。
●接口时钟的频率的比率。
●接口时钟的相对相位。
通过研究考察时序图(图4)可以最好地理解这种延迟,图4示出了源时钟F1和目的地时钟F2。考虑队列最初为空的情形。在F1的上升沿(边沿1)数据被写入队列。最早在F2的下一个上升沿数据就可以被读出队列。如果T≤Ts,则最早数据可以在一个F2周期之后被读出(边沿3)。这种额外的延迟表示由于同步而导致的性能下降的一个原因。T的值由F1和F2的相对频率和相位、以及时钟源的相对抖动确定,并且也可能随时间而变化。同步的代价由T和Ts之间的关系控制,Ts的大小的影响程度较小。当队列为Full时,也存在类似的情形,只是在上述讨论中用Full代替Empty、用边沿2代替边沿1、并且用边沿4代替边沿3。
将在下面讨论的我们的仿真器精确地考虑到了域内开销。
我们的仿真测试器基于具有Wattch[5]功率估计扩展的SimpleScalar工具集[6]。原始的SimpleScalar模型支持使用集中化的寄存器更新单元(RUU)的无序执行[29]。我们已经修改了这种结构,以更逼真地对Alpah 21264微处理器[20]的微体系结构进行建模。具体地说,我们将RUU分离为独立的重排序缓冲区(ROB)、产生队列和网络寄存器列结构。在表1中给出了我们的仿真参数的概括。
表I仿真处理器的体系结构参数分支预测器双峰(bimodal)和2级PAg的组合级11024个条目,历史10;级21024个条目;双峰预测器大小 1024;组合预测器大小 4096;BTB4096组,双通路;分支误预测开支 7解码宽度 4产生宽度 6退出宽度 11L1数据缓存 64KB,2通路组联合L1指令缓存 64KB,2通路组联合L2统一缓存 1MB,直接映射的L1缓存迟延 2个周期L2缓存迟延 12个周期整数ALU4+1乘/除单元浮点数ALU 2+1乘/除/平方单元整数产生队列大小 20个条目浮点数产生队列大小15个条目加载/存储队列大小 64物理寄存器列大小 72个整数,72个浮点数记录器缓冲区大小 80我们从MediaBench、Olden和SPEC2000基准测试套件中选择出计算繁重(compute-bound)应用、存储繁重应用和多媒体应用的混和。表2指出了与仿真指令的窗口一起使用的基准。我们示出了adpcm、epic和g721的编码和解码阶段的统计数据,以及mipmap、osdemo和mesa的texgen阶段的统计数据。
表2基准

对于基线(baseline)处理器,我们假设1GHz时钟和1.2V电源,其基于针对即将来临的CL010LP TSMC低功率0.1μm工艺[30]而计划的工艺。对于具有动态电压和频率缩放的配置,我们假设32个频率点分布在从1GHz下降到250MHz的线性范围上。对应于这些频率点的是从1.2V下降到0.65V的线性电压范围。在Wattch中,我们使用2.0~1.0833V的电压范围来仿真1.2~0.65V的效果,这是因为Wattch假设2.0V的电源。我们的电压范围比XScale(1.65~0.75V)的电压范围更紧凑,这反映出了随着相对于阈值电压来说电源连续被极大地缩放的将来对电压范围的压缩。另外,满频率范围是满电压范围的两倍。我们将在下面演示,这些因素限制了利用传统的动态电压和频率缩放所能实现的节能。
我们假定两个用于动态电压和频率缩放的模型XScale模型和Transmeta模型,这两个模型都基于来自各个公司的公布的信息[10,13l。对于这两个模型,我们假定当转变到较低的频率和电压时可以立即发起频率变化,而所期望的电压则必须在增加频率之前达到。对于Transmeta模型,我们假定总共32个独立的电压阶梯,每个间隔28.6mV,每个阶梯的电压调节时间为20μms。频率改变要求PLL重新锁定(re-lock)。直到其实现,域保持空闲。我们将PLL建模为具有范围为10-20μm、平均时间为15μm的正态分布锁定电路。对于XScale模型,我们假定电压一改变,频率改变就立即发生,即,随着电压改变,频率也相应地改变。由于域正处于空闲状态等待PLL,所以没有开支;电路通过该改变而执行。为了实现近似平滑的转变,我们使用320个阶梯,每个2.86mV,从一个阶梯转变到另一个阶梯需要0.1718μm。在Transmeta模型中穿过整个电压范围需要640μm,而在XScale模型中需要55μm。
处理器重配置判决(选择时间、频率和电压)原则上可以通过使用从统计分析、在线分析或者基于反馈的概况描述而以硬件、软件或者这二者的某些组合实现。出于当前研究的目的,我们已试图标识出用好的质量控制算法可能实现的节能,而没必要确定那些算法看起来应当如何。更具体地说,我们利用对在应用全速运行期间所收集的轨迹进行分析的离线工具,试图确定在不显著增加执行时间的情况下,在运行的各个部分期间各个域可能使用的最小频率和电压。然后,这些频率和电压以及它们被应用的时间的列表被反馈回我们的处理器仿真器,在第二(动态缩放运行)期间,来获得对能量和性能的精确估计。
目前尚不清楚这种试验方法将会过估还是低估现实的在线控制算法可能实现的好处我们的基于反馈的系统原理上可以使用将来的知识,但是其不能证明是最优的可以想象,好的在线策略可以作的更好。该方法所提供的是存在证据用我们的分析工具所选择出的频率和电压,可以期望实现下述能量节省。
下面的两个小节分别描述我们的多时钟域仿真器和用来选择重配置点的分析工具。
多时钟域的缺点在于在一个时钟域中产生在另一个时钟域中需要的数据必须跨越域边界,潜在导致如第二段所述的同步成本。为了对这些成本进行精确地建模,我们考虑下述事实通过基于逐个周期对时钟的独立的抖动、以及变化进行建模,驱动每个域的时钟是独立的。我们的模型假设均值为0的正态分布的抖动。标准偏差为110ps,由100ps的外部锁相环(PLL)抖动(基于对可用IC的调查)和由内部PLL导致的10ps组成。这些值假定从公用的外部100MHz的时钟源产生1GHz的片上时钟。尽管公用外部时钟,但是因为本地时钟源是独立的,所以各个域内的时钟偏斜不是计算域内开支的因素。
我们的仿真器基于域时钟的缩放因素和抖动值,逐周期追踪所有域时钟之间的关系,所有时钟的开始时间都是随机的。为了确定域中的下一个时钟脉冲的时间,域周期时间被添加到开始时间,并且从分布获得那个周期的抖动(其可以是正值,也可以是负值),并且将其加到该和。通过逐周期地对一个周期上的所有域执行这种计算,所有时钟边沿之间的关系被追踪。这样,我们可以精确地考虑由于违背T>Ts关系,或者域内时钟速率差别所导致的同步成本。
对于所有的配置,我们假设所有的电路在不使用时都由时钟选通。我们当前并不能估计从不使用向所有的芯片锁存器提供低偏斜时钟的传统全局时钟分布树获得的能量节省或时钟频率优点(由于减少了的偏斜)。
为了在给定的应用中选择动态缩放的时间和值,我们的重配置工具通过以最大的速度在仿真器上运行应用开始。在此初始运行期间,我们收集所有原子事件(在单个时钟域中由硬件执行的由单条指令表示的时间上相邻的操作)、以及这些事件中的功能和数据依赖(datadependence)的轨迹。例如,存储器指令(加载/存储)被分割为5个事件取回、分派、地址计算、存储器访问和提交。数据依赖以时间顺序链接这些事件。功能依赖将每个事件链接到使用相同硬件单元的签名的事件和随后的事件(不同指令中的)。其他功能依赖捕捉有限的结构大小,例如,取回队列、产生队列和重排序缓冲区。在取回队列中,例如,事件n依赖于事件n-k,其中k是队列的大小。
我们使用我们的追踪信息来针对每50K周期间隔构造依赖引导无环图(DAG)(该间隔的长度被选择为使DAG适于在我们的仿真服务器上的缓存中的最大值)。一旦已构造了DAG,我们进行两个额外的分析阶段。第一分析阶段使用DAG为输入,并且将其工作限定在单个间隔内。其目的是“拉伸”(扩展)不在应用的关键执行路径上的各个事件,就象它们可以以较低的频率逐指令被执行一样。最后的阶段使用来自第一阶段的概况统计,以将间隔串成较大的相邻的时间段,每个都有统一的时钟速率。
无论依赖DAG中的事件具有两个还是多个进入弧,可能,实际上很可能一个弧组成关键路径,而其他的弧将具有“松弛(slack)”。这个松弛指示出前面的操作完成的早于必须。如果事件的所有离去弧都具有松弛,则我们就有机会(假设缩放代价为0)通过以较低的频率和电压执行该事件来节能。我们向DAG中的每个事件关联一个功率因子,其初始值基于对应的时钟域的相对功耗,由Wattch中的参数确定。当我们拉伸事件时,相应地扩展其功率因子。计算是相对的、假定能量与时钟频率的平方成正比做出的。我们的重配置工具的拉伸阶段使用“摇动器(shaker)”算法来尽可能统一地分布松弛边和扩展边。由于SimpleScalar象任何真的处理器一样尽可能快的执行要经受依赖和危险的事件,所以松弛总是出现在原始执行轨迹中的非关键路径的末尾。这样,摇动器算法从其50K周期间隔的末尾开始,并且工作起来反向通过DAG。当其遇到其离去弧都具有松弛的事件时,该摇动器算法检查该事件的功率因子是否超过某一阈值,该阈值最初被设置为稍低于图中的任何事件的最大功率。如果如此(这是一个高功率事件),则摇动器算法扩展该事件,直到其消耗了所有可用的松弛,或者其功率因子下降到低于当前阈值。如果任何松弛还存在,该事件在时间上被移动到稍后,以使尽可能多的松弛被移动到其进入边。当其到达DAG的开始时,该摇动器算法倒转方向,将其功率阈值减少较小的量,并且做出新的遍历前向通过该DAG,扩展高功率事件并将松弛移动到离去边。该算法重复该过程,交替地前向或者后向遍历过DAG,每次都减少其功率阈值,直到所有可用的松弛都被用掉,或者直到与松弛边相邻的所有事件已被缩小为降至它们的原始频率的四分之一。当该算法针对给定的50K周期间隔完成了其工作,该摇动器算法针对每个时钟域构造概况直方图。针对XScale模型中的320个频率阶梯中的每个频率阶梯的每个直方图指示出域中的事件的总周期数,以及已被缩放为以那一频率或者接近的频率运行的间隔。
遗憾的是,就事件之间的依赖来说,已证明难以捕捉前端的行为。不象例如浮点数域中的加的开始和结束之间的时间,取回和分派之间的时间不是恒定的周期数。另外,手动选择重配置点的试验显示前端的缩放很少象其他域的缩放一样有好处。结果,我们选择以稳定的1GHz运行前端,并且选择只对其他3个域中的事件应用摇动器算法。由于前端一般消耗全部芯片能量的20%,这种选择意味着我们所能获得的任何能量改善都必须来自这剩余的80%。进一步试图解决前端的问题可以产生比这里所报告的更大的节省。
最后,我们的4个离线分析工具的集中(clustering)阶段识别出频率不能逐指令立即改变。这也导致一定数量的性能下降。使用利用摇动器算法所生成的直方图,我们针对每个时钟域和间隔计算出在不超过d%时间扩大的情况下准许域完成其工作的最小频率f,其中d是分析的参数。更具体地说,我们如此选择频率(从Transmeta的32个可能频率中,以及从XScale的320个可能的频率中),以使得以所选择出的频率执行那些事件(对直方图中的较高的条中的所有事件)所要求的额外时间的和小于或等于间隔的长度的d%。这种计算是近似的。其忽略了域中的ILP其假设在相同的域中的分离事件的扩大将具有累积效果。此时,其忽略了大多数跨域的依赖其假设在不同域中的扩大将是独立的。作为此规则的例外,我们将加载/存储域的事件添加到整数域的直方图中。这种特定情形确保当存储活动高时有效的地址计算可以快速发生。对于大多应用,全部时间扩大的估计证明相当精确图5~7和8A~9B示出了性能下降(相对于MCD基线),该性能下降跟随d。
尽管摇动器算法假设重配置是即时并自由的,但是集中算法必须建模重配置时间和成本。对于给的域的每对相邻的间隔,其逐条合并直方图,并且计算这样的最小频率该频率允许我们以单个频率运行较大的、组合的间隔。对于Transmeta功率模型,我们要求太慢的事件的时间扩大和在间隔边界处重配置所要求的时间合起来不超过全部执行事件的d%。由于其消除了一次重配置,Transmeta模型下的合并间隔通常允许我们以较低的频率和电压运行合并的间隔,从而节省能量。大多XScale模型下的合并发生在相邻间隔具有相同或近似相似的目标频率时。集中算法递归地连续执行合并,只要就能量的观点来这样作是有利的。
当集中算法完成合并时,其计算重配置必须开始的时间,以在目标时间达到目标频率和电压。如果不可以重配置,例如,由于花费比可用间隔长的时间(由于减少或增加电压的时间)的频率大波动,则避免重配置。由于Transmeta模型中的转变每个电压级别花费20μm,这导致不能容纳具有大频率变化的短间隔。该算法通过写下这样的日志文件来结束其工作该日志文件指明应用本应请求改变各个域中的频率和电压的有利时间。然后,在第二、动态配置运行期间处理器仿真器读取该文件。
在此部分中,我们比较MCD微体系结构和传统的单时钟系统的的性能、能量、和能量延迟积。基线配置为没有动态电压和频率缩放的单时钟1GHz的Alpha 21264类系统。基线MCD配置被分离为如第2部分中所述的4个时钟域,但是所有时钟的频率被设置为稳定在1GHz。这种配置用于量化域内同步的性能和能量成本。动态1%和动态5%配置与基线MCD相同,除了它们支持每个时钟域内的动态电压和频率缩放之外。对于动态1%情形,我们的离线重配置工具的集中阶段使用1%性能下降目标(超过基线MCD的);对于动态5%情形,其使用5%的目标。最后,全局配置对添加了对其单电压和频率进行动态缩放的基线配置进行建模,并且用于量化多时钟域的好处。
全局配置的频率被如此设置,以使全部性能下降等于动态5%配置的性能下降,并且其电压相应地被减少。全局配置的能量节省通过在使用减少了频率和电压值的SimpleScalar和Wattch下运行每个应用而计算出。这种方法准许针对相同级别的性能下降,将MCD方法的能量节省与传统电压和频率缩放的能量节省相比较。我们清楚地检查了通过比较Wattch结果所得到的全局配置的能量结果与相对于电压比值的平方缩放的基线配置的能量的简单计算,从而发现结果在2%以内。
图5、图6和图7示出了在频率和电压缩放的XScale模型下,动态1%、动态5%和全局配置相对应基线配置的性能下降、能量节省和基线MCD的能量×延迟的改变。Transmeta模型产生远小于XScale模型的希望结果。因为在Transmeta模型下重锁定PLL需要大约15μm,这种模型下的重配置远远没有在XScale模型下的重配置有利可图,能量改善更少。在详细讨论XScale结果之后我们将返回去比较Transmeta模型和XScale模型。
只使用多个时钟域而没有电压和频率缩放的基线MCD设计在1.5%平均能耗的情况下显示出了小于4%的平均性能下降。结果对能量-延迟乘积的影响对于adpcm接近-10%,整体接近-5%。注意,由于这些算法引入的任何开销直接加到这种基线MCD开销。例如,平均动态5%性能开销相当于给定超过基线MCD 5%的目标下降所预期的开销的大约10%。
我们的第二个观察结果是全局方法的整体能量节省类似于其性能下降,并且对于所有16个基准平均小于12%。这种结果某种程度上是违反直觉的,因为频率和电压二者都线性减少相同的百分比时,性能下降与频率成线性关系,而能量下降与电压成二次方关系。但是,回想在我们的模型中,频率四折(four-fold)改变(从1GHz下降到250MHz)导致小于二折的电压改变(从1.2V下降到0.65V,在Wattch中建模为2.0V到1.0833V)。如上所述,这种差别是由于在后续工艺代中电压范围相对应频率范围的压缩所导致的,随着电压相对于阈值电压缩小,而频率则放大。电压曲线的斜坡已变得远没频率曲线的斜坡陡峭,这极大地减少了电压减少对能量的二次方的影响。
相反,MCD方法相对应,利用相对小的性能下降基线配置实现了极大的能量和能量×延迟改善。例如,在XScale模型下,5%动态配置相对于基线配置实现了27%的平均总能量减少,以及大约20%的能量×延迟改善,而在所有16个基准上只导致了小于10%的性能下降。试图牺牲能量节省来更严格地限制性能下降的动态1%算法牺牲了极大的能量节省来实现该目标,结果得到了大约13%能量×延迟改善。经管如此,这仍旧远远超过了用全局方法所获得的3%的能量×延迟改善。
在多种情形中,隐藏迟延于缓存未命中之后的机会允许实际性能下降远小于从利用动态算法选择的频率所预测的。具体地说,与L1数据缓存未命中相关联的松弛常常允许我们的重配置工具缩放整数和浮点数域,而不太大地影响总的性能(由于可用ILP不足够完全隐藏未命中迟延),即使当这些域的利用率较高时。当然,由于第二级缓存在相同的域中(除非我们也有许多第二级缓存未命中),加载/存储域必须高频连续运行,以尽可能快地服务这些未命中。未命中的影响可以在gcc(动态1%)中看到,其中缓存未命中率较高(12.5%),并且整数域的平均频率下降到大约920MHz,但是总的性能下降小于1%。
相反,分支预测错误未提供动态缩放的机会在整数域中,发展来解决分支的依赖链排除了整数域中大的频率减少,有时在加载/存储域中也如此。经历高分支预测错误率的应用可能表现出根据频率降低的性能下降。这种效果可以在swim中看到,其中能量节省刚刚超过性能下降(在这里,因为高利用率,浮点数域必须也保持高频)。
在g721中,动态算法对于全局电压缩放执行的最差。这是一个整数基准,其具有良好平衡的指令混和,高整数域和加载/存储域利用率,低缓存未命中率,低分支预测错误率和高基线MCD开销。其IPC相对较高(高于2),并且整数域和加载/存储域必须以接近最大速度运行,以维持这点。当然,浮点数域可以被缩放回250MHz,但是由于在其他域中的高活动水平,与在大多数其他整数应用中相比,结果能量节省是全部处理器能量的较小一部分。
比较图5~7与在Transmeta缩放模型下的对应结果(未示出),我们发现,对于给的级别的性能下降,XScale模型使我们能够实现极高的能量节省。在图8A和图8b示出了这个结果的原因,其示出了在目标性能下降1%的情况下,针对30ms间隔的art基准,由我们的重配置工具选择出的频率设置。在对图8A和图8B进行比较中请注意,在XScale模型下(图8B),我们既可以做出较大数量的频率改变,也可以在宽广的频率范围上做出那些改变。具体地说,尽管art是浮点数密集应用,但是存在许多指令间隔,在此期间我们可以安全地缩放回浮点数域。由于它的10~20μm的PLL重锁定开支,所以Transmeta模型不允许我们捕捉这种相对来说短期的行为。
图9A和图9B在Transmeta模型和XScale模型下,在全部16个应用中由我们的重配置工具选择出的间隔的概括统计。那些图分别示出了分别对于Transmeta和XScale重配置数据的动态5%配置,由我们的离线分析工具选择出的间隔的概括统计。对于整数域、加载/存储域和浮点数域,实心条指示出每1百万条指令所请求的重配置的数目。这些条上面的点指示针对那些域选择出的平均频率。其中示出的“错误条”指示针对该域的动态频率范围。尽管针对整数域、加载/存储域和浮点数域选择出的平均频率在两幅图中相似,但是在Transmeta模型下重配置总数少多了,并且频率范围更窄。
图8A到图9B都示出了在不同时钟域中使用不同频率的值通过独立控制这些频率,我们可以维持对性能关键的域中的要求的频率,同时积极对那些对性能不关键的域进行缩放。具体地说,在许多应用中浮点数域可以被缩放回最低的可用频率,所述应用包括某些包括大量浮点数运算的应用。然而,注意,由于时钟选通,浮点数域常常不是用于整数程序的能量消耗的最大源整数域常常是最大的源,并且从而即使适度调整其域电压也会产生极大的能量节省。此外,尽管期望也可以动态缩放来减少静态功率,但我们尚未量化其对能量节省的相应贡献。动态电压选通可以实现额外的节省(给定对保存/恢复关键处理器状态的适当的支持),并且可以看作是将来研究的最有希望的方向。
数家生产商,尤其是Intel[21]和Transmeta[16],已开发出来能够全局动态频率和电压缩放的处理器。由于最小工作电压大约与频率成正比,并且功率大约正比于电压的平方,这种动态缩放可以是具有实时限制的应用中的最主要的好处,其中,对于此,处理器作为一个整体被过度设计了例如,视频渲染。Marculescu[23]和Hsu等[18]使用缓存未命中作为触发器,在最小限度损失性能的情况下对使用整个芯片动态电压缩放进行了评估[23]。其他工作[7,26]也已开始试图指引指令到以不同速度静态运行的流水线和功能单元,以利用程序中的调度松弛来节能。我们的贡献在于演示了具有多个时钟域的微处理器提供了下述机会通过减少对当前应用级的关键路径不具有太大贡献的域中的频率和电压,从而在没有太大性能影响的情况下,减少多种不同应用上的功耗。
Govil等[15]和Weiser等[31]描述了一种基于间隔的策略来基于CPU利用而调整CPU速度。其目标是通过在不使任务完成时间延迟太多的情况下试图保持处理器被100%利用,从而减少能量消耗。基于在先前的间隔中的利用的历史被用来预测工作量,从而在无工作积压的情况下调整速度。Pering等[25]将类似的原理应用到实时应用和多媒体应用。类似地,Hughes等[19]针对基于帧的多媒体应用使用指令计数预测来动态改变处理器的全局电压和频率,同时容忍较低百分比的未命中帧限期。Bellosa[2,3]出于降温和电池寿命的目的,描述了一种方案来将能量使用模式与每个进程相关联,以便控制能耗。缓存和存储器行为,以及进程优选级被用作输入,以驱动能量控制探索法(heuristics)。Benini等[4]给出了一种系统,用于监控系统活动,并且向管理系统功率的OS模块提供信息。它们使用这种监控系统,以演示如何设置用来将盘置于低功率模式的阈值空闲时间。我们的工作不同于此,我们试图只使不在应用的关键路径上的那些处理器的部分慢下来。
Fields等[12]使用与我们的类似、但是动态(on the fly)构造的依赖图来标识出应用的关键路径。他们的目标是在集群体系结构中的指令导向,并且通过只选择性地将其应用到关键指令来改善值预测。我们离线使用我们的图来是非关键程序路径慢下来。Li等[22]探索了假设程序和机器都是完全可调整的时理论上的能耗下限。假定在所有硬件组件中能量消耗相等,他们示出了在所有组件上具有均衡的负载的程序比在所有组件上具有极大变化的程序消耗较少的能量。
Childers等[9]提出用于时钟频率的交换IPC(trade IPC)。用户从系统请求具体的服务质量(在MIPS中表示的),并且处理器使用基于间隔的方法来监控IPC,并相应地调整频率和电压。在他们的工作中,具有高IPC的进程将在较低的时钟频率运行,而具有较低IPC的进程将以较高的时钟频率运行,这与某些应用所要求的相反(例如,当低IPC是由于高未命中率所导致的时)。我们的技术工作来实现刚好相反的情况,以便在最小能量的情况下提供最大性能。
尽管上面已描述了本发明的优选实施方式,但是,查看了本公开的本领域技术人员将容易地认识到,本发明范围内的其他实施方式也可以被重实现。例如,数值和制造技术是说明性的,而不是限制性的。另外,尽管已公开了4个域,但是,也可以实现具有多于或少于这些域并且在这些域间可以具有不同的边界。本发明的其他可能的变化已在上面提到。因此,本发明应当理解为仅由所附权利要求限制。
权利要求
1.一种多时钟域微处理器,包括多个域;和对于所述多个域中的每个域的时钟,所述时钟用于分离地为那个域生成时钟信号。
2.如权利要求1所述的微处理器,其中,每个所述时钟包括锁相环,并且其中所述微处理器还包括用于接收外部生成的时钟信号并用于将所述外部生成的时钟信号提供给每个所述锁相环的装置。
3.一种用于操作微处理器的方法,所述方法包括在所述微处理器中提供多个域;分离地向所述域中的每个域提供时钟;和操作所述微处理器,以使得每个域同步运行,同时所述多个域彼此异步运行。
全文摘要
本发明提供了一种多时钟域(MCD)微体系结构(100)。所述微体系结构使用全局异步、本地同步(GALS)时钟方式。在MCD微处理器中,每个功能块(110、120、130和140)利用单独生成的时钟运行,并且同步电路确保可靠的域内同步。这样,在每个域的设计中使用完全同步设计实践。
文档编号G06F1/06GK1759368SQ200480006290
公开日2006年4月12日 申请日期2004年1月23日 优先权日2003年1月23日
发明者大卫·阿尔博尼斯, 格莱格·梅拉罗, 格里格里欧斯·玛格克里斯, 迈克尔·L·斯高特, 雷吉弗·巴拉苏布拉默尼安, 桑德亚·德瓦尔卡达斯 申请人:罗切斯特大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1