VLIW結(jié)構(gòu)體系逐漸成為嵌入式系統(tǒng)設(shè)計(jì)的主流
VLIW的特點(diǎn)是它能從應(yīng)用程序中提取高度并行的指令數(shù)據(jù),并把這些機(jī)器指令均勻地分配給芯片中的眾多執(zhí)行單元。實(shí)際上采用VLIW技術(shù)的芯片設(shè)計(jì)要比相應(yīng)的超標(biāo)量設(shè)計(jì)簡(jiǎn)單得多,采用VLIW后,花少量的力氣能做更多的事。 典型的VLIW芯片中具有上文提及的數(shù)量眾多的執(zhí)行單元,這些執(zhí)行單元被布放在整齊的網(wǎng)格上,在每個(gè)時(shí)鐘周期內(nèi)能執(zhí)行多條指令。不過(guò)下文我們將會(huì)看到,VLIW還需要智能化的編譯軟件配合以安排這些指令的執(zhí)行。 關(guān)于VLIW技術(shù)可以追朔到80年代早期,當(dāng)時(shí)許多微型計(jì)算機(jī)公司,其中最有名的要數(shù)Cydrome和Multiflow公司,聯(lián)合起來(lái)企圖設(shè)計(jì)出基于VLIW的大型系統(tǒng)。但該技術(shù)當(dāng)時(shí)沒(méi)有得到過(guò)充分認(rèn)證,也沒(méi)有廣泛的市場(chǎng)基礎(chǔ),因此這次嘗試以失敗告終。 雖然如此,上述公司的一些主要設(shè)計(jì)師一直沒(méi)有停止過(guò)VLIW技術(shù)的研究工作,他們默默無(wú)聞地做著技術(shù)改進(jìn)工作。同時(shí)他們還招聘了許多硬件和軟件工程師專職從事VLIW的開(kāi)發(fā)工作,由此也可看出軟件與硬件在VLIW設(shè)計(jì)中具有同等的重要性。(VLIW開(kāi)發(fā)一直是在惠普實(shí)驗(yàn)室的Josh Fisher和Robert Rau領(lǐng)導(dǎo)下進(jìn)行的)。 今天,VLIW芯片技術(shù)的研究成果已經(jīng)展現(xiàn)在我們面前,無(wú)論是服務(wù)器領(lǐng)域,還是桌面領(lǐng)域或嵌入式領(lǐng)域都呈現(xiàn)了VLIW技術(shù)的勃勃生機(jī)。而對(duì)于嵌入式設(shè)計(jì)師來(lái)說(shuō),重要的是必須能區(qū)分大型VLIW和小型VLIW,因?yàn)槟壳暗腣LIW技術(shù)實(shí)現(xiàn)作為獲得更佳性能的一種手段似乎仍遵循著發(fā)明者最初的想法-簡(jiǎn)單化。 實(shí)際上,英特爾公司的EPIC IA-64結(jié)構(gòu)最能體現(xiàn)大型VLIW的特點(diǎn),它要比該公司生產(chǎn)的同類(lèi)32位系列微處理器復(fù)雜得多。雖然這里不對(duì)它作詳細(xì)討論,但這是千真萬(wàn)確的。 由于VLIW在嵌入式應(yīng)用中有上佳的表現(xiàn),市場(chǎng)上已經(jīng)出現(xiàn)了好幾種采用VLIW技術(shù)的最新處理器。首先進(jìn)入市場(chǎng)的是具有VLIW概念的媒體處理器,比如飛利浦公司的TriMedia和Chromatic公司的Mpact媒體引擎。 緊隨其后,德州儀器公司(TI)也發(fā)布了基于VLIW技術(shù)的稱為VelociTI的C6X系列數(shù)字信號(hào)處理器(圖1),該處理器主要用于蜂窩電話及相關(guān)設(shè)備。為了使?jié)撛谟脩舸_信芯片的C編譯器能將并行指令數(shù)據(jù)發(fā)送給DSP,TI公司花費(fèi)了大量的時(shí)間與精力。在C6X系列處理器發(fā)布一年后,TI的努力終于取得了巨大成效。在DSP領(lǐng)域,還有其它競(jìng)爭(zhēng)廠家如Ananlog Devices和StarCore(后者是摩托羅拉公司與朗訊公司的一家合資公司)也先后加入了VLIW陣營(yíng)。 而在做傳統(tǒng)嵌入式系統(tǒng)設(shè)計(jì)的廠家中,也許要數(shù)Transmeta公司推出的Crusoe系列處理器最值得關(guān)注了。 VLIW技術(shù)的發(fā)展趨勢(shì) 展望未來(lái),VLIW將會(huì)在嵌入式芯片設(shè)計(jì)中扮演重要角色。當(dāng)然,也會(huì)面臨來(lái)自系統(tǒng)級(jí)芯片、DSP和多內(nèi)核芯片的挑戰(zhàn)。值得注意的是,這并不是非它即你的唯一選擇,因?yàn)橐粋€(gè)采用VLIW技術(shù)的設(shè)計(jì)同樣也能通過(guò)系統(tǒng)級(jí)芯片技術(shù)來(lái)完成。 那么VLIW芯片究竟是如何實(shí)現(xiàn)的呢?結(jié)構(gòu)(或理論)上的描述相對(duì)來(lái)說(shuō)比較簡(jiǎn)單,但真正實(shí)現(xiàn)起來(lái)還有許多困難(就是說(shuō),在家中嘗試做這樣的工作是不現(xiàn)實(shí)的)。 VLIW芯片的基本原理與超標(biāo)量芯片截然相反,建立VLIW處理器時(shí)不需要花費(fèi)太多的時(shí)間和硅片來(lái)決定做什么和什么時(shí)候做,所需的硬件只要能完成簡(jiǎn)單的計(jì)算就能在每個(gè)時(shí)鐘周期執(zhí)行大量的操作。 因此根據(jù)VLIW支持者的觀點(diǎn),VLIW芯片的布局結(jié)構(gòu)會(huì)更加合理。比如說(shuō),片上的單元是可重復(fù)利用的(多重運(yùn)算單元),單元相互間排列非常整齊,并且靠得很緊密。 另外一個(gè)優(yōu)點(diǎn)是,與超標(biāo)量處理器相比VLIW處理器的硬件設(shè)計(jì)周期會(huì)縮短很多。然而VLIW技術(shù)的根本優(yōu)點(diǎn)還在于這樣的事實(shí):它具有足夠的智能來(lái)安排并行指令數(shù)據(jù)的執(zhí)行。根據(jù)定義,術(shù)語(yǔ)VLIW是指一個(gè)寬-位-長(zhǎng)的字,該字中必須預(yù)先封裝入不同的命令或操作碼,并且在下一個(gè)時(shí)鐘周期由VLIW處理器并行執(zhí)行所有的指令。也就是說(shuō),在做VLIW設(shè)計(jì)時(shí)設(shè)計(jì)師可以預(yù)先知道可以并行處理的任務(wù),并直接指示硬件去并行執(zhí)行。 這種指令的安排是由被稱為跟蹤調(diào)度(trace scheduling)的編譯器完成的。這樣的編譯器綜合了多種技術(shù),通過(guò)大量可能分支預(yù)測(cè)出數(shù)量巨大的操作順序,最終完成并行任務(wù)的執(zhí)行調(diào)度。 而超標(biāo)量芯片的指令安排都是在運(yùn)行期間進(jìn)行的,因此VLIW具有無(wú)可比擬的優(yōu)勢(shì)。由于在一條VLIW指令的執(zhí)行過(guò)程中,數(shù)據(jù)打包與調(diào)度都由編譯器預(yù)先做好了,因此無(wú)需在運(yùn)行期間做出最終的調(diào)度,而這樣的調(diào)度需要在關(guān)鍵路徑上耗費(fèi)大量的硅片空間和時(shí)間。 那些反對(duì)VLIW的人認(rèn)為,能夠有效調(diào)度這么多并行指令的任何編譯器都將是十分復(fù)雜而且難以編寫(xiě)。單從這一點(diǎn)來(lái)看,確實(shí)很難說(shuō)他們是對(duì)還是錯(cuò),因?yàn)閂LIW軟件(稱為編譯器)的絕大部分要比它所控制的硬件落后好幾年(DSP是例外)。只有VLIW編譯軟件達(dá)到了所要求的完善程度,VLIW才能生存下來(lái)并得到發(fā)展,否則它只是二十幾年后的一場(chǎng)夢(mèng)。 不過(guò),一些著名的計(jì)算機(jī)專家相信他們已經(jīng)克服了******跟蹤調(diào)度編譯器設(shè)計(jì)中的大部分難題。另外,不斷有編譯器編寫(xiě)人員接受跟蹤調(diào)度研究機(jī)構(gòu)如Rice大學(xué)、Cornell大學(xué)和史丹弗大學(xué)的培訓(xùn),并即將學(xué)有所成。事實(shí)上,這些人中有一些正在Fisher領(lǐng)導(dǎo)下的小組工作,另外一些在惠普實(shí)驗(yàn)室Palo Alto工作組的Rao領(lǐng)導(dǎo)下工作。IBM公司位于Yorktown Heights的研究中心也在悄悄地從事著VLIW的開(kāi)發(fā)。任何想測(cè)試其代碼的人都可以上網(wǎng)免費(fèi)下載被稱為T(mén)rimaran編譯器的實(shí)驗(yàn)型編譯器。 VLIW技術(shù)面臨的挑戰(zhàn) 盡管VLIW具有很多優(yōu)點(diǎn),但它仍有一個(gè)致命的弱點(diǎn)使其尚不能走出實(shí)驗(yàn)室進(jìn)入實(shí)用領(lǐng)域。這種弱點(diǎn)表現(xiàn)為在單一格式下不能提供與已有芯片兼容的目標(biāo)代碼。舉例來(lái)說(shuō),一個(gè)帶3個(gè)執(zhí)行單元的VLIW處理器不能兼容于帶5個(gè)執(zhí)行單元的處理器,同樣,這二種處理器都不能兼容帶10個(gè)執(zhí)行單元的第三種處理器。 雖然解決這一兼容性問(wèn)題的進(jìn)程在過(guò)去幾十年中進(jìn)展非常緩慢,但目前已有所突破。事實(shí)上,Transmeda公司設(shè)計(jì)的Crusoe芯片之所以這么受青睞就是因?yàn)樗捎昧舜a形態(tài)技術(shù)CMT(code morphing technology),從而使它能運(yùn)行x86代碼。 目前,圍繞著是否盡快將該技術(shù)投入實(shí)際使用以及如何使它成為主流技術(shù)的問(wèn)題仍有不斷的爭(zhēng)論。支持者堅(jiān)信VLIW會(huì)給那些一開(kāi)始就具有大量?jī)?nèi)含并行指令的應(yīng)用帶來(lái)良好的收益,特別是當(dāng)它用來(lái)處理像素和聲音時(shí)將更加得心應(yīng)手。實(shí)際上,多媒體應(yīng)用是最有可能獲益的重要領(lǐng)域。 但是,VLIW還面臨著若干技術(shù)性挑戰(zhàn),最重要的挑戰(zhàn)莫過(guò)于如何解決預(yù)測(cè)出錯(cuò)的問(wèn)題,這種問(wèn)題常發(fā)生在處理器在程序分支前預(yù)先處理了某條指令,并希望該指令確實(shí)需要執(zhí)行。然而,有時(shí)候會(huì)出現(xiàn)指令非法的錯(cuò)誤,結(jié)果是程序停止運(yùn)行,最壞情況下將導(dǎo)致程序出錯(cuò)。 另外一個(gè)問(wèn)題是超標(biāo)量CPU擁有VLIW芯片所不能提供的一個(gè)重要性能,它也是超標(biāo)量芯片的一個(gè)突出優(yōu)點(diǎn),即在運(yùn)行過(guò)程中能隨時(shí)改變指令執(zhí)行條件。而VLIW處理器不能作這樣的調(diào)整,除非它采用增加了某些超標(biāo)量單元的混合結(jié)構(gòu)才有這樣的可能。 再有像CPU死機(jī)的問(wèn)題,可以通過(guò)預(yù)截取等手段達(dá)到最小化,不過(guò)有時(shí)候也失效。例如設(shè)計(jì)師正在截獲一個(gè)包含有下一步所需內(nèi)容地址的指針時(shí),就可能被困住。所以說(shuō)要準(zhǔn)確預(yù)測(cè)出下一步所需內(nèi)容的地址就困難重重。 但對(duì)于圖像處理來(lái)說(shuō)情況又有所不同,此時(shí)VLIW芯片的表現(xiàn)是上乘的,這是因?yàn)閳D像數(shù)據(jù)通常都是按線性地址空間排列的,可以簡(jiǎn)化象塊挎貝這類(lèi)操作的處理。這也是DSP成為嵌入式VLIW芯片初露峰芒的重要原因 |