處理器設(shè)計(jì)的謬誤—第三部分
這個系列的深度報道文章統(tǒng)計(jì)了失敗的處理器種群。這些文章探索了造成每一種處理器種群死亡的主要設(shè)計(jì)錯誤。每一種主要的設(shè)計(jì)錯誤也以一或兩個例子進(jìn)行了闡述。前兩部分討論了支持特殊語言的高級計(jì)算機(jī)指令集架構(gòu)的發(fā)展;允許簡單機(jī)器仿效其長輩的中間ISA的使用等。除此之外,還有堆棧機(jī)、極端CISC和RISC處理器、VLIW機(jī)以及過度地迅速成長的流水線操作等,以及本文討論的不平衡的處理器設(shè)計(jì)
本文引用地址:http://m.butianyuan.cn/article/90483.htm錯誤3:不平衡的處理器設(shè)計(jì)
隨著處理器社群成為富有魅力的寵兒,處理器流水線似乎受到了人們不成比例的關(guān)注。然而,處理器的性能更多地取決于其執(zhí)行流水線。因?yàn)榫腿魏喂こ虒W(xué)科來說,優(yōu)良的處理器性能取決于平衡的設(shè)計(jì)。許多屬性均對處理器(或系統(tǒng))的整體性能有貢獻(xiàn),而這些因素當(dāng)中的任何一個均能對運(yùn)行實(shí)時應(yīng)用程序的“完美”流水線的運(yùn)行效率造成不良的影響,如果該流水線與其它的流水線處于不平衡狀態(tài)的話。設(shè)計(jì)工程師必須采用一種經(jīng)擴(kuò)展的設(shè)計(jì)決策配置以及各種新技術(shù)來產(chǎn)生平衡、有成本經(jīng)濟(jì)性的系統(tǒng)。
過去十年中,在處理器設(shè)計(jì)上的進(jìn)展包括兩個方面:1.在電路設(shè)計(jì)上的進(jìn)展,它造成時鐘速率從1985~2005年期間每年以大約30%的速度提高;2.在架構(gòu)上的改善—包括采用更寬的指令集、VLIW架構(gòu)以及經(jīng)深思熟慮的執(zhí)行,這使得微處理器發(fā)出指令的速率遠(yuǎn)遠(yuǎn)快于主存儲器帶寬增長的速率或者主存儲器存取延遲時間縮短的速率。因此,微處理器對大塊或主存儲器的存取暫時變得昂貴了,這種趨勢迫使架構(gòu)和系統(tǒng)級要做出的設(shè)計(jì)變更包括:
·對主存儲器的更寬連接(更多的引腳);
·更大和更高效率的指令以及數(shù)據(jù)高速緩沖存儲器;
·以存儲器為中心的系統(tǒng)架構(gòu)。
這些新方法當(dāng)中的每一種均帶來了各種好處并招致成本的提高。
在1997年有一篇文章把處理器的執(zhí)行時間分為三個時間段,它幫助解釋處理器的設(shè)計(jì)如何可能做到較佳的平衡。這三個時間段分別是:
·處理器時間:當(dāng)處理器被完全使用或部分使用并且因缺乏指令級的并行處理能力而造成部分的停止運(yùn)行時;
·延遲時間:在競爭之前損失的時間—存儲器延遲時間更短(在存儲器各個層級之間提高存儲帶寬無法縮短延遲時間);
·帶寬時間:在存儲器競爭之前的時間損失加上因存儲器各層級之間的存儲帶寬不足而引起的時間損失;
許多“現(xiàn)代”處理器設(shè)計(jì)技術(shù)加劇了上述所有三個執(zhí)行時間段所帶來的問題。不確定的軟件和硬件預(yù)取技術(shù)—通過確保當(dāng)需要時數(shù)據(jù)才實(shí)際處于高速緩沖存儲器之中—能夠改善處理器的性能,但是,這些技術(shù)會增加對主存儲器的流量,并且,當(dāng)它們預(yù)取不需要的數(shù)據(jù)、預(yù)取在被使用之前就被逐出的數(shù)據(jù)、或者預(yù)取在可被使用之前就被逐出處理器高速緩沖存儲器的其它數(shù)據(jù)(迫使該數(shù)據(jù)被重新抓取)時,會浪費(fèi)帶寬。多線程通過無論何時一個線程停止—因存儲器存取延遲時間太長或I/O操作時間太長—均切換至一個準(zhǔn)備就緒的線程而提高處理器的吞吐量,但是,頻繁的線程切換會搞亂高速緩沖存儲器以及TLB。因此,由多線程達(dá)到的好處可能因高速緩沖存儲器效率的降低而部分或完全受到抵消。
失去平衡
盲目地追逐高時鐘速率也驅(qū)使處理器的設(shè)計(jì)失去平衡。隨著處理器變得越來越快,它們以更快的速率占用指令和操作碼,這對主存儲器延遲以及帶寬的要求提出更大的壓力。最近朝著同類、具有一致的高速緩沖存儲器的多核處理器以及通用主存儲器發(fā)展的趨勢,也增加了主存儲器的延遲以及帶寬要求。試驗(yàn)顯示,把壓力放在處理器至主存儲器接口上的積極進(jìn)取的設(shè)計(jì)技術(shù),可能導(dǎo)致處理器停止工作并在多達(dá)50%的時間里等待存儲器。這樣的系統(tǒng)顯然是失去平衡的系統(tǒng)。
深亞微米以及納米電路的影響也驅(qū)使傳統(tǒng)的處理器設(shè)計(jì)失去平衡?;ミB延遲—以前不重要—現(xiàn)在在整個門延遲上占據(jù)主導(dǎo)地位,因?yàn)榫€延遲并不會隨著特征尺寸的縮小而縮短,除非線的截面積的寬高比發(fā)生變化。正如在以前的部分所討論的,Intel奔騰4微處理器—它達(dá)到了3.8GHz的商業(yè)時鐘速率—的設(shè)計(jì)工程師被迫把該處理器的20級執(zhí)行流水線投入于適應(yīng)片上的線延遲。
因?yàn)樯顏單⒚缀图{米設(shè)計(jì)規(guī)則已經(jīng)允許時鐘速率上升,微處理器設(shè)計(jì)工程師已經(jīng)采取進(jìn)一步降低內(nèi)核工作電壓的措施以期限制功耗的增加。然而,這么做需要采用具有更低閥值電壓的晶體管以適應(yīng)更低的內(nèi)核工作電壓。依次下來,在90nm及以下工藝級別,當(dāng)閥值電壓被降低到一定水平時,因泄漏引起的處理器功耗大致會等于它的動態(tài)功耗。這樣的處理器即使當(dāng)什么也不做時也會消耗大量的功率。
對高速緩沖存儲器的依賴
所有這些選擇和結(jié)果就是在處理器的架構(gòu)上迫使采取新的發(fā)展方向。首先,在這些新方向當(dāng)中的一個方向就是需要采用更加高效率的高速緩存。在目前的高速緩存中保存的那部分?jǐn)?shù)據(jù)當(dāng)中,有0.05%~33%是活躍的(在被逐出之前將被再次刷新)。那意味著處理器高速緩沖存儲器的大多數(shù)空間通常填滿了不流動、無用的數(shù)據(jù)以及指令。經(jīng)改善的高速緩沖存儲器的管理邏輯能夠把高速緩存與主存儲器之間的流量減少為原來的1/2乃至1/100,因此,對硅片是一種明智的支出。提高高速緩存效率的一個途徑就是以比高速緩存更精細(xì)的粒度來高速緩存各個對象,從而提高高速緩存標(biāo)簽的開銷但降低對帶寬的要求。
把處理器的主存儲器集成在同一顆處理器芯片上,能夠有效地把整個片上主存儲器做在高速緩存之中,從而消除存儲器的層次并充分減少存儲器的開銷。在這個方向上進(jìn)一步推進(jìn)設(shè)計(jì),就產(chǎn)生了把微處理器嵌入至獨(dú)立存儲器陣列的、以存儲器為中心的架構(gòu)。這就是MPSOC(多處理器系統(tǒng)級芯片)的領(lǐng)域,它尋求把整個處理負(fù)荷分布在大量小的、廉價的、以低速率運(yùn)行的處理器上。因此,MPSOC很可能成為未來高性能處理器的架構(gòu)。(本文譯自《微處理器報告》)
參考文獻(xiàn):
[1] BURGER D, GOODMAN J R, KAGI A. Limited Bandwidth to Affect Processor Design[J]. IEEE Micro, 1997(11-12), 55-62
[2] FLYNN M J, HUNG P, RUDD K W. Deep-Submicron Microprocessor Design Issues[J]. IEEE Micro, 1999(7-8), 2-13
[3] NURMI J. Processor Design: System-On-Chip Computing for ASICs and FPGAs[M[. [S.I.]. 2007
[4] FAGIN B, PATT Y, SIRNI V, etc. Compiling Prolog into Microcode: A Case Study Using the NCR/32-000. Proceedings of the 18th IEEE Microprogramming Workshop, 1985[C]
[5] Halfhill T. AMD K6 Takes On Intel P6[J/OL]. 1996(1). http://www.byte.com/art/9601/sec7/art1.htm/
評論