亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        逆向超線程技術(shù)走向?qū)嵱没?/h1>
        2016-05-14 16:30:57黃博文
        微型計(jì)算機(jī) 2016年8期
        關(guān)鍵詞:線程寄存器指令

        黃博文

        近年來(lái)多核心CPU的發(fā)展勢(shì)頭非常迅猛,在消費(fèi)級(jí)PC市場(chǎng)上4-8核心處理器產(chǎn)品已成為很常見(jiàn)的產(chǎn)品,同時(shí)再加上像超線程這類新技術(shù)的出現(xiàn)與幫助,使得普通用戶就能享受到8~16 CPU線程同時(shí)運(yùn)算的快感,處理器的多線程計(jì)算性能得到極大的提升。然而另一方面則是CPU單線程性能長(zhǎng)時(shí)間的“毫無(wú)作為”,雖然CPU單線程性能也在進(jìn)步,但與多線程性能的進(jìn)步幅度相比則可謂不值一提。同時(shí)很多消費(fèi)級(jí)軟件對(duì)CPU單線程的依賴,如大量游戲、PhotoShop圖片處理等也使得用戶深感CPU單線程性能的不足。為此,廣大用戶非??是驝PU的單線程性能也能獲得大幅升級(jí),甚至在去年很多人為Skylake處理器“幻想”出了一個(gè)可以聯(lián)合多個(gè)CPU線程,用于執(zhí)行單一任務(wù)的“逆向超線程”新技術(shù)。

        而令人興奮的是,從本刊在2015年10月下刊《解析CPU逆向超線程技術(shù)可行性》一文中的分析,可以看到要想大幅提升CPU單線程性能并非不可能,逆向超線程技術(shù)并非完全虛構(gòu),很多科技人員早就在從事這項(xiàng)研究。而近期一家名為SoftMachines的公司更拿出了切實(shí)的解決方案,號(hào)稱能實(shí)現(xiàn)IPC倍增式的提高,接下來(lái)就讓我們走進(jìn)CPU單線程性能的提升利器——VISC CPU架構(gòu)。

        不簡(jiǎn)單的“新人”Soft Machines和VISC

        IPC倍增式的提高,這樣的豪言壯語(yǔ)究竟出自何方神圣?可能很多人是頭—次聽(tīng)說(shuō)Soft Machines公司的大名。這是一家位于硅谷的創(chuàng)業(yè)公司,在2006、2007年左右成立。一般來(lái)說(shuō)初創(chuàng)階段的公司會(huì)刻意在相當(dāng)長(zhǎng)的一段時(shí)間里保持低調(diào),也就是所謂的“秘密階段”(Stealth mode),在具有一定成果了之后,突然釋放出爆炸性消息來(lái)吸引關(guān)注,當(dāng)年設(shè)計(jì)超長(zhǎng)指令字結(jié)構(gòu)+動(dòng)態(tài)二進(jìn)制翻譯的全美達(dá)公司也曾玩過(guò)這個(gè)手段,其公司網(wǎng)站曾在兩年半的時(shí)間里面只掛著一句話“網(wǎng)頁(yè)還沒(méi)建好”(This web page is not yet here.),然而私下里卻簽署了超過(guò)2000份保密協(xié)議來(lái)確保公司的技術(shù)和商業(yè)目標(biāo)不被泄露。從這點(diǎn)上來(lái)說(shuō),Soft Machines選擇了和當(dāng)年全美達(dá)類似的路線,直到2014年才脫離“秘密創(chuàng)業(yè)階段”(Stealth mode),走向前臺(tái)。這家公司迄今為止收到了一億多美元的投資,投資者包括三星、GlobalFoundries、AMD,擁有75項(xiàng)專利,大約250名雇員,包括前Intel、AMD、高通公司的工程師。Soft Machines試圖通過(guò)推動(dòng)CPU單線程性能的增長(zhǎng),使用全新的結(jié)構(gòu)(被稱為VISC)來(lái)達(dá)到IPC倍增。

        這一目標(biāo)不可不謂宏大,加之先前的刻意保密形成的助推,Soft Machines公司剛剛走入公眾視線就是大紅大紫的狀態(tài),特別是IPC倍增的高調(diào)聲明尤為吸引眼球。日前該公司召開(kāi)了一次媒體發(fā)布會(huì),公布了一些可供玩味的資料,使得我們可以窺探其結(jié)構(gòu)內(nèi)部的細(xì)節(jié)、初步分析該技術(shù)的前景。

        變化不大 指令翻譯依賴軟件層

        讓我們先來(lái)分析一下Soft Machines提出VISC的技術(shù)背景,一個(gè)要讓IPC倍增的結(jié)構(gòu)應(yīng)該長(zhǎng)成什么樣子?這是不是在吹牛?

        無(wú)數(shù)歷史經(jīng)驗(yàn)表明,一個(gè)全新的結(jié)構(gòu)如果想要獲取軟件層面的支持,修改指令集層面是需要慎之又慎的,指令集保持不變才能最大限度地兼容現(xiàn)有的種種軟件,包括操作系統(tǒng)和普通應(yīng)用程序。所以在VISC的結(jié)構(gòu)框架里,所有的軟件線程需要原封不動(dòng)地在整個(gè)系統(tǒng)棧中向下傳遞,這是Soft Machines唯一的選擇,不出意外地,我們最終看到Soft Machines設(shè)計(jì)的VISC也的確是原封不動(dòng)地接受上層軟件的代碼。但是這樣一來(lái)就限制了后繼優(yōu)化的發(fā)揮,如何從這些原封不動(dòng)的軟件線程中抽取指令級(jí)并行度呢?

        包括全美達(dá)在內(nèi)的一批上世紀(jì)90年代的先驅(qū)者們已經(jīng)探索出一條路線:指令翻譯層。在VISC的執(zhí)行框架中,既有指令集的指令會(huì)被一個(gè)中間翻譯層翻譯為VlSC硬件特有的硬件指令格式。目前Soft Machines確認(rèn)支持將兩種上層指令集翻譯成VISC專屬的硬件格式,其中之一是ARMv8,另外一個(gè)坊間傳聞可能是x86,但是Soft Machines未予確認(rèn)。這個(gè)軟件翻譯層會(huì)帶來(lái)多大的翻譯開(kāi)銷是一個(gè)對(duì)性能至關(guān)重要的問(wèn)題,但此次并未在公開(kāi)資料中提及。

        這個(gè)中間翻譯層和Intel的 ClSC x86指令轉(zhuǎn)RlSC uops指令格式不同,Intel的翻譯是完全基于硬件完成,優(yōu)勢(shì)是翻譯速度,缺點(diǎn)是喪失了靈活性。也就是說(shuō)如果翻譯部分需要更新,就需要修改硬件,只能等待下一代芯片,而全美達(dá)和VISC都選擇把翻譯層做在軟件上,好處是降低了設(shè)計(jì)復(fù)雜度,允許軟件層面的補(bǔ)丁來(lái)持續(xù)更新翻譯部分,壞處是性能會(huì)受到影響,畢竟每一條指令都要經(jīng)過(guò)翻譯。為了減少這一負(fù)面影響,全美達(dá)使用了兩種技術(shù),也就是動(dòng)態(tài)翻譯代碼緩存和分層的反饋式代碼優(yōu)化來(lái)解決這個(gè)問(wèn)題,這項(xiàng)技術(shù)后來(lái)也被NVIDIA做進(jìn)了丹佛計(jì)劃中的自研核心上。Soft Machines在這個(gè)問(wèn)題上則處理得比較含糊,在VISC的媒體通氣會(huì)上公布的一頁(yè)P(yáng)PTA出現(xiàn)了與全美達(dá)和丹佛類似的Dynamic optimization動(dòng)態(tài)優(yōu)化流程,但是沒(méi)有更進(jìn)一步披露的情況下,也無(wú)法確認(rèn)這個(gè)設(shè)計(jì)是否暗示著采用了與全美達(dá)和丹佛類似的流程。

        但是可以確定的是,即便這個(gè)動(dòng)態(tài)優(yōu)化流程存在,也沒(méi)有設(shè)計(jì)得如同全美達(dá)和丹佛那樣激進(jìn)。據(jù)外媒報(bào)道,Soft Machines曾表態(tài)不應(yīng)該在軟件層面上投入過(guò)多的優(yōu)化精力來(lái)追求性能。這是一句非常耐人尋味的話。為什么Soft Machines沒(méi)有選擇和以往的幾個(gè)設(shè)計(jì)一樣,在軟件層面做大量的優(yōu)化來(lái)追求性能呢?這就是VISC結(jié)構(gòu)最有意思的地方:Soft Machines雖然吸收了前輩們的經(jīng)驗(yàn)引入了軟件翻譯層,但是卻不在軟件層面上做性能優(yōu)化,它的秘密武器藏在硬件微結(jié)構(gòu)上。

        實(shí)現(xiàn)指令切分與核心融合 VISC核心微結(jié)構(gòu)解析

        在Soft Machines設(shè)計(jì)的這種執(zhí)行框架下,軟件翻譯層翻譯完的指令會(huì)通過(guò)一個(gè)全局共享的硬件前端(Global Front End),指令序列會(huì)在這里被切分成多個(gè)虛擬硬件線程,然后繼續(xù)遞交給多個(gè)執(zhí)行核心。endprint

        指令序列如何切分呢?我們可以看看這個(gè)直觀的例子,以下四條指令看似是只能逐一執(zhí)行的單線程任務(wù),但通過(guò)指令切分,VISC結(jié)構(gòu)可以讓它實(shí)現(xiàn)部分并行運(yùn)算。

        1.寄存器1=寄存器2+寄存器3

        2.寄存器4=寄存器2+寄存器4

        3.將地址01的值裝入寄存器1

        4.寄存器仁寄存器1+寄存器4

        首先在允許寄存器重命名的情況下,前三條指令可以單獨(dú)開(kāi)辟一個(gè)硬件線程來(lái)執(zhí)行。我們來(lái)分析一下為什么:第一條指令之前沒(méi)有任何指令,肯定可以獨(dú)立開(kāi)來(lái)并行執(zhí)行;第二條指令只需要讀取寄存器2的值,只要寄存器堆的讀寫(xiě)端口足夠多,同時(shí)讀一個(gè)寄存器的值沒(méi)有問(wèn)題,因此也可以獨(dú)立開(kāi)來(lái)并行執(zhí)行,第三條指令需要對(duì)寄存器1做寫(xiě)操作,看上去與指令1有沖突,但是通過(guò)寄存器重命名可以將第一條指令的寄存器1和第三條指令的寄存器1分別重命名成兩個(gè)不同的物理寄存器,因此也可以獨(dú)立開(kāi)來(lái)并行執(zhí)行。但是第四條指令需要用到寄存器1的最新值,也就是剛剛從地址01裝載上來(lái)的值,這是一個(gè)真實(shí)的數(shù)據(jù)相關(guān)關(guān)系,不能通過(guò)寄存器重命名變換來(lái)消除掉,所以第四條指令不再能夠并行。

        這個(gè)例子演示了最簡(jiǎn)單的一個(gè)硬件指令切分,從上個(gè)世紀(jì)60年代開(kāi)始,業(yè)界就在苦苦追求能夠進(jìn)行全程序范圍的指令分析,從而設(shè)計(jì)出并行度達(dá)到理論最大值的架構(gòu),這種架構(gòu)被稱為數(shù)據(jù)流架構(gòu)(Dataflow architecture)。但是截至目前為止,數(shù)據(jù)流架構(gòu)仍然沒(méi)有在CPU這個(gè)層面邁向?qū)嵱没聦?shí)上,傳統(tǒng)硬件亂序多發(fā)射也正是這樣分析指令相關(guān)性、抽取指令級(jí)并行度的,但是硬件受限于規(guī)模,只能在有限的范圍內(nèi)做這樣的相關(guān)性分析,這個(gè)范圍被稱為亂序執(zhí)行窗口的大小。在Intel的最新一代的Skylake微結(jié)構(gòu)上,這個(gè)窗口大小約為200多條指令,也就是說(shuō),即便考慮進(jìn)指令融合,目前的硬件分析處理極限也就是在200~300多條指令的范圍上。因此,現(xiàn)在廣泛流行的硬件亂序多發(fā)射實(shí)際上是一個(gè)經(jīng)過(guò)弱化、分析范圍受到極大限制的數(shù)據(jù)流架構(gòu)?;谲浖姆治隹梢钥朔布治龇秶蛔愕膯?wèn)題,目前的軟件分析可以借助自身的靈活性去分析幾乎無(wú)窮大范圍的指令序列,相關(guān)的一些優(yōu)化也做進(jìn)了標(biāo)準(zhǔn)的編譯優(yōu)化流程里,只是分析速度會(huì)比硬件有數(shù)量級(jí)程度的落后。

        那么VISC的這個(gè)解決方案最厲害的部分在哪里呢?注意框架圖中的全局共享前端部件,它畫(huà)在Virtual Cores的框架內(nèi)部,也就是說(shuō)它同樣是通過(guò)硬件進(jìn)行指令分析。這個(gè)硬件分析流程能做到多快的分析速度,能分析多大范圍的指令,在公開(kāi)資料中都沒(méi)有披露,但筆者仍為此感到興奮,因?yàn)檫@個(gè)設(shè)計(jì)有著暗含的一層意思:如果VISC的設(shè)計(jì)方案,沒(méi)有信心在指令級(jí)并行度的抽取范圍上超越傳統(tǒng)的硬件亂序多發(fā)射,他們就不會(huì)選擇把這個(gè)關(guān)鍵部件做在硬件上,否則就失去了創(chuàng)新技術(shù)的意義??梢詷?lè)觀地估計(jì),VISC的設(shè)計(jì)將可以在指令級(jí)并行度的抽取能力上大大超越傳統(tǒng)框架下的亂序多發(fā)射,可能更加逼近數(shù)據(jù)流架構(gòu)的完全形態(tài),亦或者是業(yè)界長(zhǎng)期困擾無(wú)法解決的線程級(jí)推測(cè)執(zhí)行的硬件實(shí)現(xiàn)版。無(wú)論這個(gè)設(shè)計(jì)方案最后能否達(dá)到設(shè)計(jì)預(yù)期,都是一個(gè)非常值得欽佩,也非常值得關(guān)注的大膽嘗試。

        除了硬件切分以外,這個(gè)核心微結(jié)構(gòu)里面還存在著另一個(gè)亮點(diǎn)。在全局共享前端切分了執(zhí)行序列以后,被分隔開(kāi)的各個(gè)獨(dú)立執(zhí)行線程可以被動(dòng)態(tài)地分配給下面的多個(gè)物理執(zhí)行核心,分配粒度達(dá)到了幾個(gè)時(shí)鐘周期的級(jí)別,并且含糊地提到了可以動(dòng)態(tài)地追蹤各個(gè)核心中的數(shù)據(jù)流向。這是令筆者感到興奮的第二個(gè)亮點(diǎn):業(yè)界一直在探索的另外一個(gè)方向,核心融合,在VISC的微結(jié)構(gòu)中現(xiàn)身了?!昂诵娜诤稀睂?shí)際上就是坊間流傳很久的“逆向超線程”技術(shù),將多個(gè)核心的執(zhí)行資源合并成一個(gè)來(lái)使用,也是VISC結(jié)構(gòu)的重點(diǎn)。在往期的《微型計(jì)算機(jī)》也曾介紹過(guò),核心融合技術(shù)的一大難題是如何實(shí)現(xiàn)各個(gè)核心問(wèn)的低延遲通信。在上面的那個(gè)指令切分例子中,如果我們把前三條指令放到三個(gè)不同核心上執(zhí)行,到了第四條指令的時(shí)候,就要把負(fù)責(zé)指令1的核心和負(fù)責(zé)指令3的核心中產(chǎn)生的新數(shù)據(jù)傳遞給負(fù)責(zé)指令4的核心,如果低延遲通信不能實(shí)現(xiàn),逆向超線程實(shí)際上也就是鏡中花水中月。Soft Machines宣稱可以在幾個(gè)周期的延遲下通過(guò)寄存器堆和一級(jí)緩存交換數(shù)據(jù),尤為令人震驚。

        另一個(gè)值得關(guān)注的問(wèn)題是推測(cè)執(zhí)行(Speculative Execution)?,F(xiàn)代高性能微結(jié)構(gòu)大量地使用推測(cè)執(zhí)行來(lái)提高性能,例如往期介紹過(guò)的訪存地址反別名的推測(cè)性分析,以及分支預(yù)測(cè)。如何進(jìn)行精準(zhǔn)的推測(cè),以及如何從錯(cuò)誤推測(cè)中快速回退也是非常重要的高性能設(shè)計(jì)技術(shù)。Soft Machines披露,VISC結(jié)構(gòu)可以在個(gè)位數(shù)的執(zhí)行周期中從錯(cuò)誤預(yù)測(cè)的分支中回退,但是除此以外沒(méi)有披露其他有用的信息。從核心內(nèi)部的流水線上來(lái)看,分派(Dispatch)、寄存器讀與執(zhí)行和傳統(tǒng)流水線區(qū)別并不大,但是整個(gè)流水線的前半段才是VISC的不同之處。硬件虛擬線程的形成(formation)、執(zhí)行資源的分配(aIlocation)、調(diào)度(scheduling)花了9-12個(gè)周期的時(shí)間,對(duì)比傳統(tǒng)的硬件亂序多發(fā)射流水線,指令從取出到解碼、重命名、推入保留站也需要大約十個(gè)時(shí)鐘周期左右,從流水線深度上來(lái)說(shuō)VISC與傳統(tǒng)解決方案可能是互相持平。Soft Machines認(rèn)為自己的設(shè)計(jì)應(yīng)該算是短流水,對(duì)此筆者不敢茍同,在流水線深度上來(lái)說(shuō)VISC結(jié)構(gòu)并不占優(yōu)勢(shì)。硬件虛擬線程的處理也是頗為核心的要素,可惜的是Soft Machines到目前為止也沒(méi)有公布更多的信息,使得外界的判斷多半流于猜測(cè)。雖然許多關(guān)鍵細(xì)節(jié)缺失,但從目前已知的信息來(lái)看,VISC的這個(gè)設(shè)計(jì)基本已經(jīng)靠攏了大家想象中的“逆向超線程”,由一個(gè)全局共享前端對(duì)一個(gè)單線程的指令切分成多個(gè)虛擬硬件線程,然后多核心的執(zhí)行資源互相協(xié)作執(zhí)行,允許低延遲地相互傳遞數(shù)據(jù),可以說(shuō)“逆向超線程”是描述這種設(shè)計(jì)的最好解釋。

        可信度不高 疑云重重的測(cè)試數(shù)據(jù)

        從設(shè)計(jì)框架上來(lái)看,VISC確實(shí)非常超前,實(shí)踐了至少兩個(gè)目前仍處于探索階段、未見(jiàn)大規(guī)模工業(yè)化量產(chǎn)的結(jié)構(gòu)設(shè)計(jì)點(diǎn),那么它的實(shí)測(cè)性能如何呢?從VISC開(kāi)始放出消息到現(xiàn)在,許多人為它宣稱的IPC成倍提高感到震驚,后來(lái)更是由震驚轉(zhuǎn)而懷疑。Soft Machines于今年向媒體公布了一組測(cè)試數(shù)據(jù),但是仍未能打消懷疑,反而引來(lái)了更多外界的質(zhì)疑。如上一頁(yè)右下圖,這組數(shù)據(jù)的橫軸是SPEC2006的性能測(cè)試分?jǐn)?shù),縱軸是這個(gè)SPEC分?jǐn)?shù)水平背后對(duì)應(yīng)的單位能量消耗。乍看之下,VISC的新設(shè)計(jì)似乎在性能和能耗上完全碾壓了現(xiàn)有亂序多發(fā)射設(shè)計(jì)中的幾個(gè)代表性樣本,但實(shí)際上并非如此。這張圖被詬病最多的一點(diǎn)就是:圖中的SPEC2006測(cè)試分?jǐn)?shù)不是SPECint也不是SPECfp,而是SPECin和SPECfp的幾何平均數(shù),使得其真實(shí)性能水平被蓋上了一層偽裝。endprint

        SPECint和SPECfp是SPECCPU基準(zhǔn)測(cè)試程序中的兩大組件,包括截然不同的一批測(cè)試項(xiàng)目,分別統(tǒng)計(jì)整數(shù)性能和浮點(diǎn)性能。由于整數(shù)和浮點(diǎn)測(cè)試集的性能特征差別太大,一般來(lái)說(shuō)這兩個(gè)分?jǐn)?shù)是各自獨(dú)立計(jì)算的。Soft Machines將這兩者混合統(tǒng)計(jì)是一個(gè)明顯、不可辨駁的錯(cuò)誤,也讓外界對(duì)VISC產(chǎn)品的性能解讀變得更加困難。當(dāng)年基于超長(zhǎng)指令字結(jié)構(gòu)的安騰系列CPU就是在浮點(diǎn)上領(lǐng)先同時(shí)代其他硬件的亂序多發(fā)射設(shè)計(jì),但是整數(shù)性能則十分孱弱。筆者懷疑Soft Machines的這個(gè)錯(cuò)誤是為了掩蓋整數(shù)性能的落后,而有意為之。

        即便忽視了混合SPECint和SPECfp這個(gè)嚴(yán)重錯(cuò)誤,SoftMachines的測(cè)試仍舊如同篩子一樣滿是疑點(diǎn)和漏洞。Soft Machines聲稱所有的參測(cè)CPU都按照某種“業(yè)界標(biāo)準(zhǔn)”把測(cè)試分?jǐn)?shù)按照Last-Level-Cache(即處理器的最后一級(jí)緩存,如普通CPU的三級(jí)緩存)1MB大小的設(shè)定進(jìn)行了調(diào)整。筆者從未聽(tīng)說(shuō)過(guò)有這個(gè)“業(yè)界標(biāo)準(zhǔn)”的存在,SPEC測(cè)試集中的測(cè)試程序有的對(duì)Last-LeveI-Cache極其敏感,如429.mcf,在一定Last-Level-Cache容量范圍以內(nèi)它的執(zhí)行性能幾乎是隨著容量呈現(xiàn)線性增長(zhǎng)的,也有的如同403.gcc,在不同的Last-LeveI-Cache大小下性能只有個(gè)位數(shù)百分點(diǎn)的小幅波動(dòng),幾乎可以忽略不計(jì)。這個(gè)“業(yè)界標(biāo)準(zhǔn)”就算是真的存在,又要如何去處理這種情況呢?對(duì)不同的測(cè)試子項(xiàng)進(jìn)行不同的加權(quán)處理嗎?

        另外,目前Soft Machines已經(jīng)有了TSMC 28nm工藝生產(chǎn)的第一代產(chǎn)品原型,運(yùn)行頻率為500MHz,可以啟動(dòng)Linux系統(tǒng),也就是說(shuō)可以肯定Soft Machines已經(jīng)脫離了紙面設(shè)計(jì)的階段,至少有了可以完整工作的初步原型。但是Soft Machines的所有性能測(cè)試都是基于RTL仿真進(jìn)行的,即便我們大度地假定這個(gè)RTL仿真是加入了完整正確時(shí)序信息的后仿真、并且忽視后仿真和實(shí)際流片之間的差距,這個(gè)測(cè)試方法也令人難以接受。目前Soft Machines手上只有500MHz的原型,在這個(gè)節(jié)點(diǎn)上使用簡(jiǎn)單的插值推算2GHz及其以上性能水平是很危險(xiǎn)的做法。主頻的跨越式提高往往需要借助結(jié)構(gòu)設(shè)計(jì)與邏輯的變動(dòng),但是這樣的變動(dòng)也同時(shí)意味著IPC的值會(huì)同時(shí)發(fā)生變化。具體變動(dòng)幅度有多大,只有做完了高主頻設(shè)計(jì)、再重新進(jìn)行測(cè)試評(píng)估才能知道。Soft MachiDes認(rèn)為這樣的仿真測(cè)試與真實(shí)設(shè)計(jì)之間只會(huì)有5%~10%的差距,在沒(méi)有進(jìn)一步證據(jù)予以佐證的情況下,筆者認(rèn)為這一點(diǎn)存在不可回避的漏洞。

        基于這一份公開(kāi)數(shù)據(jù),Soft Machines的VISC概念和原型系統(tǒng)是無(wú)法說(shuō)服業(yè)界的,甚至由于數(shù)據(jù)的呈現(xiàn)方式上出現(xiàn)了重大錯(cuò)誤,不由得讓人懷疑這樣的數(shù)據(jù)背后是不是有著某種掩飾性的考量,所以這次的性能披露非但沒(méi)有說(shuō)明什么問(wèn)題,反而是令Soft Machines的公信力蒙受損失。

        保持樂(lè)觀態(tài)度 如何看待Soft Machines?

        雖然測(cè)試數(shù)據(jù)無(wú)法令人信服,結(jié)構(gòu)設(shè)計(jì)的要點(diǎn)也是存有模糊,但是筆者仍然堅(jiān)持認(rèn)為對(duì)于Soft Machines以及它的VISC產(chǎn)品抱持寬容態(tài)度。為什么呢?這要從微結(jié)構(gòu)的發(fā)展歷史與目前的行業(yè)現(xiàn)狀來(lái)解釋一番。

        微結(jié)構(gòu)設(shè)計(jì)和研發(fā),直觀地說(shuō),其實(shí)非常像是在一片泥濘不堪、布滿深坑和陷阱的地域上尋找埋藏的寶藏。在上世紀(jì)八九十年代,業(yè)界剛剛開(kāi)始邁過(guò)高性能微結(jié)構(gòu)門(mén)檻的時(shí)候(九十年代初才誕生第一個(gè)基于CMOS的多發(fā)射設(shè)計(jì)),可以說(shuō)整個(gè)業(yè)界對(duì)這片地域是所知不多的,當(dāng)時(shí)的微結(jié)構(gòu),即便是量產(chǎn)化的工業(yè)級(jí)設(shè)計(jì),背后的實(shí)驗(yàn)支持和理論分析都遠(yuǎn)沒(méi)有今天這么雄厚,因此帶有很強(qiáng)的探索性質(zhì)?;仡^翻閱當(dāng)時(shí)的發(fā)展歷史不難看出,有無(wú)數(shù)瘋狂的概念設(shè)計(jì)倒在了初步模擬實(shí)驗(yàn)的階段,未能更進(jìn)一步,頗具代表性的例子就是值預(yù)測(cè)(Value Prediction)技術(shù)的研究。這種技術(shù)期望于通過(guò)程序執(zhí)行地址、循環(huán)執(zhí)行次數(shù)等信息,在實(shí)際計(jì)算完成前就預(yù)測(cè)計(jì)算結(jié)果,但由于準(zhǔn)確率確實(shí)不佳,至今未能得到主流認(rèn)可,投入在這個(gè)方向上的大量經(jīng)費(fèi)和結(jié)構(gòu)設(shè)計(jì)專家的人力資源可以說(shuō)算是掉進(jìn)坑里了。但是這些投入完全沒(méi)有任何意義嗎?

        不盡然。這些不成功的設(shè)計(jì)有兩個(gè)作用:其一,明確告訴后人,這里有坑,謹(jǐn)慎繞行;其二,從中可以抽取出有用的實(shí)驗(yàn)數(shù)據(jù)并加以分析,有可能得到意外收獲。例如在值預(yù)測(cè)這個(gè)大坑旁邊,光筆者所知就有至少兩個(gè)被證明有價(jià)值的礦點(diǎn):訪存地址反別名分析(memorv disambiguation)以及循環(huán)指令緩存(loop cache)的執(zhí)行次數(shù)預(yù)測(cè)。

        隨著時(shí)間推移,越來(lái)越多的實(shí)驗(yàn)數(shù)據(jù)和理論分析積累,有一個(gè)大礦點(diǎn)被系統(tǒng)地發(fā)掘出來(lái),其附近地域也被公認(rèn)為安全地帶。這個(gè)大礦點(diǎn)就是由上世紀(jì)60年代的CDC6600首創(chuàng),IBM 360/91加強(qiáng)的硬件亂序多發(fā)射設(shè)計(jì)框架。在硬件亂序多發(fā)射優(yōu)勢(shì)尚不穩(wěn)固的時(shí)候,亦有一批先驅(qū)者奔向其他可能的礦區(qū)開(kāi)始試探性采掘,這里面最有代表性的例子就是超長(zhǎng)指令字(VLIW)結(jié)構(gòu)。而隨著Intel Itanium系列的失敗,這片礦點(diǎn)就被公認(rèn)為價(jià)值不如硬件亂序多發(fā)射,只在少量場(chǎng)合下繼續(xù)使用。隨著越來(lái)越多的資源投入到對(duì)硬件亂序多發(fā)射的開(kāi)掘,這片礦區(qū)的身價(jià)進(jìn)一步水漲船高,最終超越了所有其他選擇,并且在大多數(shù)應(yīng)用場(chǎng)景下至今仍保持壓倒性優(yōu)勢(shì)。截止到這個(gè)時(shí)間點(diǎn)上,硬件亂序多發(fā)射框架就變成了事實(shí)上的第一選擇以及近乎是唯一選擇。除了屈指可數(shù)的幾個(gè)異類以外(全美達(dá)、NVIDlA丹佛、Intel安騰,IBM Power6),硬件亂序多發(fā)射變成了高性能CPU的立足點(diǎn)。脫離這個(gè)框架,踩在其他區(qū)域嘗試探索起步的設(shè)計(jì)幾乎最后都宣告失敗。只有踩在硬件亂序多發(fā)射圈定范圍內(nèi)的設(shè)計(jì)才能存活,頗有點(diǎn)《切爾諾貝利:晴空》那片輻射變異地帶里安全區(qū)的味道。

        從2005年前后開(kāi)始,硬件亂序多發(fā)射的增長(zhǎng)潛力開(kāi)始放緩。從Dothan到Merom到Nehalem到最近的Skylake,主體結(jié)構(gòu)基本上沒(méi)有出現(xiàn)多少變化,性能的增長(zhǎng)只是來(lái)源于在同一個(gè)結(jié)構(gòu)框架下的小幅調(diào)優(yōu),每年帶來(lái)10%上下的改進(jìn),僅此而已。這片安全區(qū)仍然安全,能夠保證設(shè)計(jì)框架的大方向不會(huì)出現(xiàn)重大錯(cuò)誤,但是寶藏也挖空了。

        從這個(gè)尺度上來(lái)說(shuō),在傳統(tǒng)硬件亂序多發(fā)射框架以外進(jìn)行探索的這些努力就顯得特別珍貴。并不是每個(gè)研究機(jī)構(gòu)、公司都有這樣的信心去挑戰(zhàn)傳統(tǒng)硬件亂序多發(fā)射框架幾十年積累下來(lái)的優(yōu)勢(shì),嘗試做出一些顛覆性的改變。在這幾十年中,偏離硬件亂序多發(fā)射框架的“探路者”們其實(shí)數(shù)目不少,但是做得有聲有色、一度曾讓人燃起希望的則少之又少。像VISC這樣的個(gè)例,盡管已經(jīng)顯露出有很大的不靠譜可能性,但是筆者仍然堅(jiān)持推崇其探索的努力,在挑戰(zhàn)傳統(tǒng)這件事情上,失敗是常態(tài),成功是偶爾。

        也有一些外界批評(píng)認(rèn)為,VISC目前的第一代產(chǎn)品原型只能運(yùn)行在500MHz的頻率上,這是否說(shuō)明其結(jié)構(gòu)設(shè)計(jì)的流水化存在問(wèn)題,使得頻率暴降?這的確有可能,要讓多個(gè)物理核心同時(shí)追蹤較大范圍的指令相關(guān)性,低頻可能是不可避免的,但同時(shí)也要看到,作為原型設(shè)計(jì)推出的東西,而且又是第一代,往往不是以性能為第一設(shè)計(jì)考量。原型系統(tǒng)的第一目的是測(cè)試整個(gè)執(zhí)行框架是否可工作、是否可行,時(shí)序只要收斂就好,并不太追求高頻率,以原型系統(tǒng)的頻率來(lái)評(píng)判其量產(chǎn)頻率是不對(duì)的。如果Soft Machines后繼的幾代系統(tǒng)都只能工作在低頻下,才能比較有力地說(shuō)明其結(jié)構(gòu)流水線確實(shí)存在問(wèn)題。以新結(jié)構(gòu)為賣點(diǎn)的創(chuàng)業(yè)公司尤為艱難,當(dāng)年的全美達(dá)公司幾乎一直處于燒錢(qián)狀態(tài),盈利很少,希望Soft Machines能堅(jiān)持下去。同時(shí)筆者也希望Soft Machines如果萬(wàn)一也不幸走到失敗地步,能夠以更加開(kāi)放一些的態(tài)度提供更加詳細(xì)的結(jié)構(gòu)設(shè)計(jì)資料和測(cè)試數(shù)據(jù),為可能出現(xiàn)的下一個(gè)、下一批勇敢闖出安全區(qū)的人亮起一座燈塔。endprint

        猜你喜歡
        線程寄存器指令
        聽(tīng)我指令:大催眠術(shù)
        Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
        ARINC661顯控指令快速驗(yàn)證方法
        LED照明產(chǎn)品歐盟ErP指令要求解讀
        分簇結(jié)構(gòu)向量寄存器分配策略研究*
        淺談linux多線程協(xié)作
        坐標(biāo)系旋轉(zhuǎn)指令數(shù)控編程應(yīng)用
        Linux線程實(shí)現(xiàn)技術(shù)研究
        高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
        一種可重構(gòu)線性反饋移位寄存器設(shè)計(jì)

        亚洲av综合色区无码一区| 久久青青草原国产精品最新片| 一区二区特别黄色大片| 国产午夜精品视频在线观看| 国产成人亚洲综合| 国产成人综合亚洲精品| 亚洲AV无码成人精品区天堂| 亚洲一级天堂作爱av| 老熟女的中文字幕欲望| 50岁熟妇大白屁股真爽| 在线观看亚洲AV日韩A∨| 日本久久黄色高清视频| 亚洲av片无码久久五月| 熟女人妻在线视频| 亚洲地区一区二区三区| 亚洲女人毛茸茸的视频| 国产区精品一区二区不卡中文| 又色又污又爽又黄的网站| 国产91第一页| 久久精品国产免费一区二区三区| 午夜裸体性播放| 色婷婷七月| 一本久久a久久精品综合| 人妖av手机在线观看| 乱人伦中文无码视频在线观看| 日韩成人无码v清免费| 中文字幕精品一区二区三区av| 麻豆亚洲av熟女国产一区二 | 精品无码专区久久久水蜜桃| 免费a级毛片无码a∨免费| 日韩麻豆视频在线观看| 免费看av在线网站网址| 亚洲欧美欧美一区二区三区| 色av色婷婷18人妻久久久| 久久亚洲av无码精品色午夜| 乱码精品一区二区三区| 欧美成人a视频免费专区| 日韩精品视频高清在线| 欧美日韩视频在线第一区| 老熟妇Av| 免费人妻精品一区二区三区|