• <menu id="sssag"></menu>
  • <menu id="sssag"></menu>
  • CPU長指令(VLIW)失敗的主要原因是什么,VLIW真的無藥可救嗎?

    朋友們可以關注下我的公眾號,獲得最及時的更新:

     

    software和hardware之間總是存在tradeoff:要么是hardware結構復雜,software靈活。要么是hardware結構保持簡潔清晰,software干一些臟活累活。VLIW就是屬于后一種。

    與Superscalar架構不同,VLIW將檢查指令依賴關系的工作全部交給了編譯器:編譯器將沒有依賴關系的指令打包成一個bundle,hardware不需要動態調度,只是負責取指、執行。

    VLIW創始人Josh Fisher于1983年發表的論文Very Long Instruction Word architectures and the ELI-512提出了VLIW的Trace Scheduling思想,優化代碼中最經常執行的路徑。不過當時很多科學家對這種方式持懷疑態度,也許從學術角度來看這種思想有點意思,但人們壓根不相信,可以建造一臺依靠software而不是hardware來提速的計算機。但是Josh Fisher一直相信VLIW架構遠遠超出了一個學術項目范疇,它有潛力改變所有的科學計算。(Josh Fisher也發明了Instruction-level Parallelism這個術語)

    Trace Scheduling

    第一個VLIW編譯器Bulldog由Josh Fisher和他的研究生John Ellis、Alex Nicolau和John Ruttenberg編寫。John Ellis在1984年發表了博士論文Bulldog: A Compiler for VLIW Architectures,這篇論文被評選為ACM年度最佳計算機科學論文。

    The Bulldog VLIW Compiler

    Multiflow

    也是1984年,Josh Fisher離開了耶魯大學創建了Multiflow公司。他認為,為了追求利潤,工業界會比固守計算機理論的學界同行對新技術更感興趣 。不過生意并沒有想象中的好做,這期間,計算機行業正在發生變化,硬件變得更便宜,以喬布斯的NeXT公司為代表生產的個人電腦可以運行許多科學應用,Multiflow公司遇到了嚴重的資金困難。到1990年公司關門為止,Multiflow一共只賣了125臺機器(數據來源:Multiflow),Josh Fishe也加入了惠普實驗室。

    但是,故事到這里遠遠沒有結束。

    Itanium

    當時,還有另外一家從事VLIW相關研究的公司Cydrome,在幾年的經營后,也發現無以為繼。其首席構架師以及聯合創始人Bob Rau也加入了惠普。Bob Rau和Josh Fisher兩個對處理器發展方向有著相同看法的人碰到了一起。他們依然相信,VLIW將成為未來主流的處理器指令集架構。

    當時惠普內部開始覺得自己單獨開發生產處理器的成本太高,于是找到了英特爾一起合作。當年英特爾有一個如鯁在喉的對手——AMD,促使英特爾其想跳出自己的X86構架,另辟道路發展。到1994年,英特爾和AMD兩家公司一家花費了約2億美元的法律費用,兩家公司已經勢如水火。此時惠普提出的新的處理器計劃采用了和市場上其他廠商完全不同的方案,當時的英特爾認為找到了新的市場來甩掉這些跟屁蟲。

    1994年英特爾和惠普簽訂協議,宣布共同開發面向高性能計算(HPC)的處理器,也就是后來的Itanium,安騰。他們以VLIW指令作為基礎,提出了顯式并行指令集運算EPIC( Explicitly parallel instruction computing)。

    由于這兩個企業影響力巨大,他們的聯合引起了整個行業的關注,各大軟硬件企業紛紛表示此后將支持這個新的構架。除了發起方惠普和英特爾以外,漸漸的包括IBM、Novell、微軟、Sun、甲骨文、紅帽、DELL等一眾企業都紛紛表示將支持新的構架。

    至此,Josh Fisher和Bob Rau終于完成了自己創業時未完成的使命,把自己的技術理想打造成了萬眾矚目的工業標準。

    但,這也是一段噩夢的開始。上面提到,VLIW將復雜的指令調度交給編譯器,處理器硬件只要在意性能,但英特爾和惠普忽略了在軟件構造上的巨大挑戰,這種難度完全超乎了想象。原計劃1997年發布的首個安騰版本一直拖到了2001年才發布。

    安騰最初的目的是通過降低硬件的復雜度大大提高硬件的效率,但是在實際開發中,發現軟件優化實在太難了,實際上安騰最后還是保留了之前希望砍掉的分支預測功能,以保證整個軟硬件系統協調運作。2002年,英特爾發布了第二代安騰處理器,有評論認為這是一款批著EPIC外衣的RISC處理器,安騰設計復雜度更高,功耗不降反升。

    從1994年到2002年,8年時間,安騰的發展舉步維艱,但是科技行業的發展瞬息萬變。

    2000年,AMD發布了基于X86的64位擴展技術AMD64,這個擴展允許64位和32位程序都可以在同一個處理器上運行。2003年,AMD推出面向服務器的產品Opteron(皓龍)的時候,大家似乎看到了新的希望。因為Opteron良好的性能,對原有32位程序的完美兼容,AMD很快打開了市場。

    而英特爾這時候意識到,安騰也許不是一條正確的道路。英特爾在內部搞起了現在互聯網公司常用的田忌賽馬戰術。2004年,英特爾宣布在其另外一條服務器產品線至強旗下引入 x86-64技術(實際上就是AMD64的翻版),以應對AMD的競爭。此時的英特爾,雖然還在履行和惠普的合約,繼續更新安騰,但多少已經心不在焉,主要精力都轉到主戰場至強上去了。

    安騰弱勢的表現,讓主流大廠商都已經停止對安騰的支持。而英特爾憑借強大技的術和生產制造能力,后來居上,最終將AMD再次碾壓,安騰對英特爾來說也沒有了價值。2010年,英特爾停止在自己新的C++編譯器里面添加安騰支持,這基本上是判了安騰的死刑。

    從1994年惠普和英特爾宣布啟動處理器合作項目開始,到最后一代安騰發布,整整經過了23年時間。這期間英特爾換了4個CEO,惠普換了6任CEO。

    回過頭來看,安騰有幾個比較嚴重的問題:

    • 不兼容。如果你想讓你的應用在IA64的安騰服務器上運行,你需要重新編譯一份IA64的應用。早期的安騰雖然兼容IA-32,但是性能很低。
    • 當處理器的執行寬度(execution width),指令執行延遲時間,執行單元個數(function unit)改變時,需要重新編譯程序來適應。但是Superscalar卻不需要。
    • 安騰緩慢的發展期間,AMD64的崛起,讓英特爾不得不調整方向。

    但是VLIW真的無藥可救嗎?現在可能無法下出定論。VLIW在DSP以及ATI GPU都有應用。后續如果有新的應用場景、其他技術的發展,說不定會重新帶動VLIW。Google的TPU也用到了VLIW,而且它用到的systolic array技術在1979年被H. T. Kung和Charles E. Leiserson在論文Introduction to VLSI Systems中描述,而早在1944年的Colossus Mark II就采取了類似的技術。

     

    (完)

    朋友們可以關注下我的公眾號,獲得最及時的更新:

    posted @ 2022-03-07 19:13  張雅宸  閱讀(85)  評論(0編輯  收藏  舉報
    国产在线码观看超清无码视频,人妻精品动漫H无码,十大看黄台高清视频,国产在线无码视频一区二区三区,国产男女乱婬真视频免费,免费看女人的隐私超爽,狠狠色狠狠色综合久久蜜芽