【導(dǎo)讀】專家預(yù)言:“顯然數(shù)十年來的硬體與編譯器研發(fā),已經(jīng)能有效掌握RISC與CISC架構(gòu),而且兩者在未來訴求節(jié)能的創(chuàng)新應(yīng)用中擁有平等地位。”真是這樣的嗎?
如果你是少數(shù)仍認為指令集架構(gòu)(instruction set architectures,ISA)是精簡(RISC)或復(fù)雜(CISC),會對應(yīng)用處理器之設(shè)計的功耗或性能有顯著影響的軟件或硬件設(shè)計工程師,放棄這種想法吧!它是不正確的,因為更重要的是處理器的微架構(gòu)(microarchitecture),也就是指令被硬布線(hardwired)到處理器中的方法,以及有什么被添加入以協(xié)助它們達成特定目標(biāo)。
以上結(jié)論來自于學(xué)術(shù)期刊《ACM計算機系統(tǒng)學(xué)報(ACM Transactions on Computer Systems)》的一篇論文“指令集架構(gòu)之戰(zhàn):了解ISA是CISC或RISC的關(guān)聯(lián)性(ISA Wars: Understanding the Relevance of ISA being CISC or RISC)”,作者為Emily Blem、Jakrishnan Menon、Thiruvengadam Vijayaraghavan以及 Karthhikeyan Sankaralingam;該論文報告了過去四年美國威斯康辛大學(xué)(University of Wisconsin)垂直研究小組(Vertical Research Group,VRG)所做的一項研究結(jié)果。
報告作者之一Vijayaraghavan 表示,該研究是到目前為止針對三大處理器架構(gòu)——英特爾(Intel) x86架構(gòu)、ARM處理器以及現(xiàn)屬于Imagination 的MIPS處理器——的設(shè)計、實作等所有角度的最完整分析。“雖然在過去,RISC與CISC指令集架構(gòu)也許有一些差異,但我們鎖定的參數(shù)——性能(performance)、功耗(power)與能源效益(energy)現(xiàn)在肯定沒有。”另一位報告作者Sankaralingam 表示:“ISA缺乏的地方,微架構(gòu)就會補強它,反之亦然。”
RISC、CISC指令集架構(gòu)研究所采用的處理器平臺
Sankaralingam指出,現(xiàn)在只有一種處理器是真正的RISC架構(gòu)——MIPS,是以美國史丹佛大學(xué)開發(fā)的RISC架構(gòu)為基礎(chǔ);至于x86處理器架構(gòu)一開始是純CISC設(shè)計,但過去幾年來越來越朝類RISC結(jié)構(gòu)發(fā)展。ARM處理器架構(gòu)近似RISC,但采用更多CISC功能,包括增加的Thumb 1與Thumb 2指令集架構(gòu)。
他表示:“所以我們的研究基本上是在目前的市場環(huán)境,比較今日的Intel、ARM與MIPS處理器;幾乎每一個我們的量測結(jié)果,都與指令集架構(gòu)無關(guān)。”以往的比較研究會因為處理器系統(tǒng)的軟體與硬體資源不同而有缺陷,但VRG團隊盡力確保其量測是在條件幾乎相同的平臺與同等的環(huán)境中完成,為了區(qū)分出實作與ISA效果,他們盡可能讓所使用的各種ISA芯片,都具備類似的微架構(gòu)。
此研究將比較樣本局限在ARM Cortex-A8或更高等級的處理器,較不注重Cortex-M系列元件;Sankaralingam解釋:“原因很簡單,我們的目標(biāo)之一是要有能比較與量化的平臺,因此我們沒必要去看A9以下的處理器,以及相對應(yīng)的競爭架構(gòu)。”在Cortex-M0的環(huán)境下,ARM是與1~20MHz與2~50mWatt的8位MCU競爭,其運作是架高在x86指令集之上,不適用其研究。
該研究小組的評估,是以一顆MIP處理器(中國開發(fā)的龍芯- Loongson處理器)、三個ARM平臺(Cortex- A8、Cortex-A9與Cortex-A15),以及三個x86架構(gòu)設(shè)計(Atom、Bobcat與Sandybridge i7)來進行;他們也使用了相同的作業(yè)系統(tǒng)——Linux 2.6 LTS,還有以gss 4.4為基礎(chǔ)的交叉編譯器前端(cross compiler front end)。
在移動設(shè)備客戶端的工作負載方面,他們使用CoreMark與Webkit性能基準(zhǔn);在桌上型應(yīng)用方面,則是采用SPECCPU2006基準(zhǔn)。至于服務(wù)器工作負載的性能基準(zhǔn),則是使用包括lightpd與CLucerne等性能基準(zhǔn)。
RISC、CISC指令集架構(gòu)研究的發(fā)現(xiàn)
研究所采用的實作樣本,包括不同ISA以及相同ISA、不同微架構(gòu);Sankaralingam表示:“整體看來,我們選擇的平臺條件具備合理的平等,而且我們執(zhí)行了詳細的分析,分別得出各微架構(gòu)與技術(shù)的效果。”
VRG團隊確實進行了處理器在執(zhí)行時間(execution time)、工作周期(cycle count)、指令數(shù)目(instruction count)、指令格式與結(jié)構(gòu)(instruction format and mix)、微架構(gòu)以及ISA對微架構(gòu)影響的比較;功耗與能源效益的分析量測也很全面,包括平均功耗、平均技術(shù)獨立功耗(technology independent power),以及平均能源效益等等。
Sankaralingam表示,他們的報告結(jié)論是,雖然ISA與支援不同特殊應(yīng)用(例如虛擬化、加速器、浮點運算..)的功耗與性能有關(guān),但無論ISA是RISC或CISC,其實大都與今日成熟的微處理器設(shè)計領(lǐng)域沒有什么關(guān)系。“根據(jù)這項研究,開發(fā)工程師能簡單根據(jù)工程設(shè)計觀點,放心考慮針對不同性能等級最佳化的ARM、MIPS或x86處理器;”Sankaralingam指出:“不同ISA的能源效益基本上并沒有差別。”
如該報告最后一段所寫:“顯然數(shù)十年來的硬體與編譯器研發(fā),已經(jīng)能有效掌握RISC與CISC架構(gòu),而且兩者在未來訴求節(jié)能的創(chuàng)新應(yīng)用中擁有平等地位。”