微處理器和多處理器片上系統(tǒng)MPSOC設(shè)計(jì)的新紀(jì)元
當(dāng)今的系統(tǒng)開(kāi)發(fā)工具已經(jīng)非常先進(jìn),完全可以允許設(shè)計(jì)人員根據(jù)具體的應(yīng)用目標(biāo)任務(wù)來(lái)定制微處理器核。處理器定制可以在非常短的時(shí)間內(nèi),甚至是幾分鐘就可以根據(jù)具體應(yīng)用完成片上系統(tǒng)處理器核的設(shè)計(jì)。由于根據(jù)具體任務(wù)來(lái)定制處理器的速度非???,因此可配置處理器可以具有非常優(yōu)異的高性能來(lái)構(gòu)建片上系統(tǒng)的設(shè)計(jì),并且經(jīng)常用于快速建立一些功能模塊,而這些功能模塊如果采用人工RTL方式設(shè)計(jì)的話,則可能需要幾個(gè)月的時(shí)間。正是由于可配置處理器技術(shù)的高性能和快速開(kāi)發(fā)能力,使得許多最終產(chǎn)品在多個(gè)可配置處理器核的基礎(chǔ)上實(shí)現(xiàn)了片上系統(tǒng)SOC(多處理器片上系統(tǒng)SOC或者簡(jiǎn)寫(xiě)為MPSOC)。這些最終產(chǎn)品的范圍從最大和最小的網(wǎng)絡(luò)路由器一直到諸如便攜式攝像機(jī)、打印機(jī)和低成本視頻游戲機(jī)等消費(fèi)類(lèi)電子產(chǎn)品。
兩種最新的開(kāi)發(fā)技術(shù)已經(jīng)嵌入到可配置處理器甚至片上系統(tǒng)SOC設(shè)計(jì)中,即全自動(dòng)化的、專(zhuān)用指令集定制技術(shù)和對(duì)處理器內(nèi)部執(zhí)行部件的多口訪問(wèn)技術(shù)。前者允許片上系統(tǒng)設(shè)計(jì)人員更加專(zhuān)注系統(tǒng)體系結(jié)構(gòu)方面的問(wèn)題,而通過(guò)依賴(lài)自動(dòng)化設(shè)計(jì)工具來(lái)完成某些單一功能模塊以達(dá)到性能方面的目標(biāo)。后者則永遠(yuǎn)克服了以前那種存在已久的總線瓶頸問(wèn)題,而這種總線瓶頸問(wèn)題從1971年第一個(gè)微處理器出現(xiàn)以來(lái)就一直阻礙微處理器性能的提高。
自動(dòng)化處理器定制
十多年來(lái),硬件設(shè)計(jì)人員一直在努力用C或者C++對(duì)系統(tǒng)進(jìn)行描述進(jìn)而轉(zhuǎn)換成有效的硬件。最初的系統(tǒng)說(shuō)明通常是用C或者C++寫(xiě)成的,因?yàn)椴捎眠@些高級(jí)語(yǔ)言描述的系統(tǒng)可以在廉價(jià)的PC上進(jìn)行執(zhí)行和評(píng)價(jià)。然而,即使是廉價(jià)的PC也不適合許多嵌入式系統(tǒng)的設(shè)計(jì),尤其是在消費(fèi)電子領(lǐng)域,因?yàn)槠涔奶?。因此,設(shè)計(jì)人員開(kāi)始希望找到一種工具來(lái)將用C或者C++寫(xiě)成的系統(tǒng)描述轉(zhuǎn)換成硬件。
許多像“行為綜合”、“C語(yǔ)言硬件綜合”和“ESL”等詞匯描述的設(shè)計(jì)方法都有一些缺陷,因?yàn)樗鼈兌际窃噲D解決在本質(zhì)上很復(fù)雜的問(wèn)題:用時(shí)序可執(zhí)行語(yǔ)言寫(xiě)成的系統(tǒng)描述轉(zhuǎn)換成并行互操作和非可編程的硬件模塊。
Tensilica的XPRES編譯器采用一種更加簡(jiǎn)單、更加直接的方法來(lái)解決這一設(shè)計(jì)問(wèn)題。XPRES編譯器不是試圖從頭開(kāi)始進(jìn)行與應(yīng)用相關(guān)的硬件設(shè)計(jì),而是從一個(gè)完整的功能處理器核開(kāi)始設(shè)計(jì),然后以添加硬件執(zhí)行部件和相應(yīng)的機(jī)器指令的方式來(lái)增加硬件,以加速處理器上目標(biāo)應(yīng)用程序的執(zhí)行速度。因此,XPRES編譯器從一個(gè)正在工作的硬件(Xtensa微處理器核)開(kāi)始設(shè)計(jì),同時(shí)使得目標(biāo)程序代碼運(yùn)行得更快。這種搜索的結(jié)果是完成一個(gè)微處理器的配置,此配置有一個(gè)性能/硬件開(kāi)銷(xiāo)的特性曲線,如圖1所示。
圖1: XPRES編譯器為設(shè)計(jì)者提供一系列微處理器配置。隨著硅片面積的增加也使得與應(yīng)用相關(guān)的系統(tǒng)性能得到提升。
性能優(yōu)化的三種技術(shù)途徑
XPRES編譯器采用三種技術(shù)來(lái)建立優(yōu)化的Xtensa處理器配置:操作數(shù)融合、單指令流多數(shù)據(jù)流SIMD(向量化)和FLIX(可變長(zhǎng)度指令擴(kuò)展)。操作數(shù)融合技術(shù)記錄程序循環(huán)語(yǔ)句中簡(jiǎn)單操作出現(xiàn)的頻度。XPRES編譯器將這些指令序列合并成一條增強(qiáng)型指令,這種增強(qiáng)型指令通過(guò)減少循環(huán)內(nèi)部的指令條數(shù)來(lái)加速程序代碼的執(zhí)行。圖2表示由XPRES編譯器產(chǎn)生的數(shù)據(jù)流操作,圖中用灰色表示出融合操作。
圖2:由XPRES編譯器產(chǎn)生的數(shù)據(jù)流圖表示出一系列融合操作。當(dāng)減法操作、取絕對(duì)值操作、加法操作和位域抽取操作融合成一條新的指令后,由XPRES編譯器進(jìn)行評(píng)估需要增加474個(gè)邏輯門(mén)。
評(píng)論