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