新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 學(xué)習(xí)方法與實(shí)踐 > 轉(zhuǎn)變硬件成軟件:多核心環(huán)境的高效程序?qū)懽?/p>

轉(zhuǎn)變硬件成軟件:多核心環(huán)境的高效程序?qū)懽?/h1>
——
作者:Skip Hovsmith CriticalBlue 時(shí)間:2007-12-28 來(lái)源:ARM IQ雜志 收藏
        透過(guò)自動(dòng)化的處理器同步,我們能降低研發(fā)特殊應(yīng)用協(xié)同處理器所需的成本與時(shí)間,并透過(guò)以為中心的模式來(lái)開(kāi)發(fā)產(chǎn)品。

       的功能性建立之后,關(guān)鍵的工作可分擔(dān)給已針對(duì)該應(yīng)用進(jìn)行過(guò)最佳化的協(xié)同處理器來(lái)執(zhí)行。每個(gè)協(xié)同處理器都已針對(duì)效能、即時(shí)、以及空間等方面的要求進(jìn)行最佳化設(shè)計(jì),并且完全可化,因此在上市后還能進(jìn)行擴(kuò)充與優(yōu)化功能的動(dòng)作。協(xié)同處理器的簡(jiǎn)化與速度可以提供更大的機(jī)板設(shè)計(jì)空間,相同的軟件也可重新設(shè)定不同的目標(biāo)以因應(yīng)不同的產(chǎn)品價(jià)位與效能需求。

        業(yè)者必須運(yùn)用多核心架構(gòu)來(lái)因應(yīng)電子系統(tǒng)對(duì)于高效能與低功耗的需求。根據(jù)International Business Strategies(IBS)的研究顯示,軟件在90納米領(lǐng)域已成為一項(xiàng)主流設(shè)計(jì)模式。軟件如今主導(dǎo)SoC設(shè)計(jì)。 

       IBS的這項(xiàng)研究也發(fā)現(xiàn),架構(gòu)設(shè)計(jì)的工作投入現(xiàn)在出現(xiàn)大幅增加的趨勢(shì)。而大多數(shù)的投入是為了提升處理與通訊的效率,以確保能達(dá)成嵌入式軟件的效能目標(biāo)。即使針對(duì)開(kāi)發(fā)架構(gòu)的投入越來(lái)越多,設(shè)計(jì)的昂貴成本仍然限制業(yè)者進(jìn)行擴(kuò)大架構(gòu)開(kāi)發(fā)的意愿。

       隨著處理器同步技術(shù)的進(jìn)步,開(kāi)發(fā)特定應(yīng)用處理組件的時(shí)間與成本已被大幅降低,并創(chuàng)造出以軟件為中心的開(kāi)發(fā)模式。業(yè)者現(xiàn)在可以直接掌控更高比率的軟件研發(fā)工作,也可針對(duì)實(shí)際軟件的處理負(fù)荷進(jìn)行架構(gòu)最佳化的調(diào)整。特定應(yīng)用處理器可進(jìn)行同步以滿足各種功能系統(tǒng)的效能需求,并讓系統(tǒng)擁有最高的可化彈性。如此一來(lái),更多組件將可轉(zhuǎn)化成軟件,而不是背道而馳。

       分布式協(xié)同處理

       大多數(shù)工程師都熟悉單處理器的編程模式。但多個(gè)獨(dú)立運(yùn)作的核心讓這種編程模式變得更加復(fù)雜。為維持較簡(jiǎn)單的編程模式,可把一個(gè)或多個(gè)處理組件指派為全域的主控制器,而其它核心則視為協(xié)同處理組件,如圖一所示。

       在一個(gè)異質(zhì)化架構(gòu)中,系統(tǒng)功能被分散至各個(gè)協(xié)同處理組件以降低這些組件的耦合性。松散的耦合模式增加了平行處理的機(jī)率,但各組件的運(yùn)算負(fù)荷卻各有所異。每一個(gè)處理組件皆可進(jìn)行最佳化來(lái)配合其處理需求。 

               

                           圖一:分布式協(xié)同處理架構(gòu)。

       替代的協(xié)同處理組件包括從數(shù)碼訊號(hào)處理器(DSP),ㄧ直到固定功能的加速器等各種可化的核心。 

       應(yīng)用協(xié)同處理器是一種為特定應(yīng)用設(shè)計(jì)微架構(gòu)以快速執(zhí)行關(guān)鍵算法的可程序化處理器。這些客制化處理器具備最大化的編程效能,同時(shí)讓處理作業(yè)在內(nèi)部就能完成以維持較簡(jiǎn)單的編程模式。但客制化處理器昂貴的設(shè)計(jì)與驗(yàn)證成本,讓這種模式的推廣面臨極大的阻力。不過(guò)如今業(yè)界出現(xiàn)各種自動(dòng)化協(xié)同處理器合成工具,讓這種模式的吸引力持續(xù)攀升。

       應(yīng)用協(xié)同處理器同步 

       處理器同步工具必須針對(duì)應(yīng)用作業(yè)的需求,來(lái)開(kāi)發(fā)出處理器的實(shí)作方案。如圖二所示,串疊式的協(xié)同處理器同步流程采用一種修改后的VLIW模式。如同客制化的硬件設(shè)計(jì),暫存器分布在各執(zhí)行單元并以客制化的連結(jié)管道來(lái)連結(jié)關(guān)鍵應(yīng)用所需的資料流。而資料與指令快取是用來(lái)降低對(duì)外部存儲(chǔ)器的需求,圖二的范例顯示了兩個(gè)資料快取。由于協(xié)同處理器是針對(duì)特定應(yīng)用所設(shè)計(jì),因此合理的作法是運(yùn)用多個(gè)資料快取,并依據(jù)算法的資料需求來(lái)策略性配置每個(gè)快取的容量。選擇合適的指令編碼模式,可以增進(jìn)平行處理的效率并降低微碼(microcode)的長(zhǎng)度。

        

                             圖二:協(xié)同處理器架構(gòu)。

       一個(gè)或多個(gè)協(xié)同處理器可從應(yīng)用程序進(jìn)行同步,圖三顯示單一協(xié)同處理器的同步流程。 

       同步的進(jìn)入點(diǎn)是編譯過(guò)的二進(jìn)工藝序碼,軟件開(kāi)發(fā)人員運(yùn)用其正常的主處理器工具鏈來(lái)編譯其程序碼。我們可用對(duì)應(yīng)(profiling)與其它的效能分析工具來(lái)找出功能效能的關(guān)鍵點(diǎn)。在發(fā)現(xiàn)之后,這些功能將可轉(zhuǎn)移給特定應(yīng)用處理器來(lái)執(zhí)行。  

                  

                           圖三:協(xié)同處理器合成流程。

       從可執(zhí)行的二進(jìn)工藝序開(kāi)始,任何編譯語(yǔ)言以及其編譯的程序都可進(jìn)行加速。包括C語(yǔ)言以及經(jīng)過(guò)最佳化的組譯語(yǔ)言,而此階段不需要原始碼。

       二進(jìn)工藝序碼讀入系統(tǒng)后,便可選擇要分擔(dān)至協(xié)同處理器的功能。此時(shí)要建立二進(jìn)工藝序碼的模型并進(jìn)行模擬,詳細(xì)追蹤存儲(chǔ)器的使用模式以及關(guān)鍵的執(zhí)行線路。追蹤信息是用來(lái)分析不同的資料快取、執(zhí)行單元以及聯(lián)結(jié)的組合。產(chǎn)生各種不同效能、空間與耗電量組態(tài)的協(xié)同處理器實(shí)作方案。隨著實(shí)際的作業(yè)量的不同,規(guī)劃模型的工作會(huì)耗費(fèi)數(shù)分鐘到數(shù)小時(shí)。 

       在選擇協(xié)同處理器的組態(tài)后,會(huì)產(chǎn)生RTL層級(jí)的硬件描述以及在協(xié)同處理器上執(zhí)行的微碼指令。原始的二進(jìn)工藝序碼和微碼與通訊的驅(qū)動(dòng)程序?qū)⒁黄鸺尤胂到y(tǒng)。 

       架構(gòu)分析

       協(xié)同處理器同步可用來(lái)快速分析不同的系統(tǒng)架構(gòu)。應(yīng)用軟件可編譯至主處理器并連結(jié)各種功能,以將其處理工作分擔(dān)給多個(gè)協(xié)同處理器。圖四顯示一個(gè)當(dāng)影片、影像及音效功能都分擔(dān)到各個(gè)處理器的系統(tǒng)范例。 

        

                         圖四:加密協(xié)同處理器架構(gòu)分析。

       經(jīng)儲(chǔ)存后轉(zhuǎn)送的安全應(yīng)用提供一個(gè)協(xié)同處理器同步的實(shí)例。應(yīng)用透過(guò)網(wǎng)絡(luò)聯(lián)機(jī)會(huì)收到經(jīng)過(guò)加密的文件。經(jīng)過(guò)解密后加以檢查并加入特定的信息,最后把修改過(guò)的文件進(jìn)行加密再轉(zhuǎn)傳至下一個(gè)目的地。 

       本設(shè)計(jì)鎖定一個(gè)Actel M7 ProASIC3/E FPGA,此款組件內(nèi)含一個(gè)軟型ARM7TDMI核心,其內(nèi)有快閃組件的組態(tài)并嵌入額外的防護(hù)機(jī)制,以具有反制逆向工程的能力。模塊圖表如圖五所示: 

       

              圖五:儲(chǔ)存后轉(zhuǎn)送的安全架構(gòu),以AES加密標(biāo)準(zhǔn)作初始加密算法。

       一個(gè)開(kāi)放原始碼的程序被編譯到ARM7核心處理器,此程序碼經(jīng)過(guò)對(duì)應(yīng)并選擇了想要分擔(dān)的加密功能。經(jīng)過(guò)同步后,協(xié)同處理器產(chǎn)生的協(xié)同候選方案如圖六所示。 

           

                       圖六:AES加密協(xié)同處理器選項(xiàng)組合。

       AES算法的執(zhí)行速度比原始的ARM7功能加快了3.6倍。協(xié)同處理器需要45k個(gè)邏輯閘以及21k的存儲(chǔ)器作為資料與指令的快取存儲(chǔ)器。經(jīng)常等候加密單元的處理器模塊可分擔(dān)協(xié)同處理器的加密運(yùn)算作業(yè),讓ARM的整體處理負(fù)荷降低36%。 

       在設(shè)計(jì)AES協(xié)同處理器后,另一個(gè)需求就是加入支持額外加密的算法。Blowfish算法被直接編譯至AES協(xié)同處理器以提升ARM7 4.5倍的運(yùn)算速度。相較之下,針對(duì)Blowfish算法進(jìn)行同步的協(xié)同處理器,則提供加快4.7倍的加速效果。 

              

                       圖七:AES與Blowfish算法比較。

       客制化發(fā)展

       基本的協(xié)同處理器同步作業(yè)不需要處理器設(shè)計(jì)的專業(yè)能力。但是若想進(jìn)一步加快速度則必須在協(xié)同處理器的架構(gòu)中加入客制化的執(zhí)行單元,而軟件功能可直接對(duì)映至這些單元。在分擔(dān)這些功能的運(yùn)算負(fù)荷時(shí),僅須定義單元界面以及基本的流量與延遲時(shí)序。同步的協(xié)同處理器將納入這些客制化單元并和它們進(jìn)行聯(lián)結(jié)。業(yè)者可分析效能方面的利益,而若有需要也可完成這些客制化單元的硬件設(shè)計(jì)。 

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉