可配置處理器標(biāo)志著第四代微處理器設(shè)計(jì)的開(kāi)始,這種技術(shù)更加適合片上系統(tǒng)SoC的設(shè)計(jì)。每一代處理器持續(xù)大約十年時(shí)間,每個(gè)時(shí)代的處理器適合當(dāng)時(shí)的需要。大約在20世紀(jì)70年代出現(xiàn)了第一代處理器,這個(gè)時(shí)期的處理器設(shè)計(jì)只是簡(jiǎn)單地追求性能,從4位處理器到早期的16位和32位微處理器。這種性能的提升奠定了20世紀(jì)80年代PC和工作站的基礎(chǔ)。PC和工作站的增長(zhǎng)使得微處理器設(shè)計(jì)進(jìn)入了20世紀(jì)80年代的第二代微處理器研制時(shí)期。精簡(jiǎn)指令集RISC設(shè)計(jì)時(shí)代發(fā)生在20世紀(jì)90年代。在這個(gè)時(shí)期,即使像X86這樣堅(jiān)定的復(fù)雜指令集CISC處理器也假裝成精簡(jiǎn)指令集RISC體系結(jié)構(gòu)。在最初的這三代處理器的成長(zhǎng)和發(fā)展過(guò)程中,微處理器設(shè)計(jì)專家將處理器設(shè)計(jì)成固定的、單個(gè)的和可重用的模塊。但是,在20世紀(jì)90年代隨著專用集成電路ASIC和片上系統(tǒng)SoC制造技術(shù)的發(fā)展,為微處理器設(shè)計(jì)進(jìn)入第四代(即后RISC、可配置處理器)打下了堅(jiān)實(shí)的基礎(chǔ)。
以往的32位處理器核不能處理許多片上系統(tǒng)SoC設(shè)計(jì)中的大計(jì)算量任務(wù),比如多媒體和網(wǎng)絡(luò)通信。因此,片上系統(tǒng)SoC設(shè)計(jì)者必須采用硬件描述語(yǔ)言(Verilog或者VHDL)來(lái)實(shí)現(xiàn)這樣的任務(wù)。采用手工編寫(xiě)的RTL硬件模塊所帶來(lái)的問(wèn)題是驗(yàn)證時(shí)間主導(dǎo)了設(shè)計(jì)周期,這將增加設(shè)計(jì)的成本并延長(zhǎng)進(jìn)入市場(chǎng)的時(shí)間。
現(xiàn)在有一種替代RTL設(shè)計(jì)的方法。工程師可以使用可配置、可擴(kuò)展的處理器而不是RTL來(lái)完成系統(tǒng)設(shè)計(jì),這種方法設(shè)計(jì)時(shí)間更快,同時(shí)也更靈活地改變產(chǎn)品的標(biāo)準(zhǔn)和要求。Tensilica公司的Xtensa LX處理器可以為用戶提供輸入/輸出吞吐量和計(jì)算性能,而這些在以前通常是只有RTL設(shè)計(jì)方法才能提供。Xtensa LX核還為用戶提供增強(qiáng)的時(shí)鐘門(mén)控技術(shù)來(lái)降低系統(tǒng)功耗。為了進(jìn)一步提高片上系統(tǒng)設(shè)計(jì)者的能力來(lái)充分利用可配置處理器核的技術(shù),Tensilica還開(kāi)發(fā)了XPRES編譯器,該編譯器可以自動(dòng)分析用C或者C++語(yǔ)言寫(xiě)的應(yīng)用程序代碼,然后產(chǎn)生一個(gè)可配置處理器核,產(chǎn)生的處理器核是經(jīng)過(guò)優(yōu)化的,適合目標(biāo)代碼的運(yùn)行。這種設(shè)計(jì)方法非?,可以在大約1小時(shí)內(nèi)產(chǎn)生一個(gè)最佳處理器配置。有關(guān)XPRES編譯器的內(nèi)容,將在本文的最后進(jìn)行描述。
這種自動(dòng)化的、可配置微處理器技術(shù)于1999年被引入半導(dǎo)體行業(yè),用于片上系統(tǒng)SoC設(shè)計(jì)。這種技術(shù)的核心是Xtensa處理器生成器,該產(chǎn)生器基于服務(wù)器應(yīng)用程序,可以產(chǎn)生優(yōu)化的32位處理器核用于嵌入式應(yīng)用,用戶可以自己進(jìn)行功能擴(kuò)展定義,以建立針對(duì)片上系統(tǒng)SoC中某些特定任務(wù)應(yīng)用的微處理器核。
Xtensa處理器生成器可以增加新的功能來(lái)自動(dòng)產(chǎn)生用戶所需要的硬件,產(chǎn)生的硬件是經(jīng)過(guò)驗(yàn)證的RTL代碼格式。自動(dòng)產(chǎn)生的處理器RTL代碼可以和現(xiàn)在的SoC設(shè)計(jì)流程無(wú)縫結(jié)合,可以用于邏輯綜合。處理器生成器還可以建立與產(chǎn)生的處理器相匹配的系統(tǒng)軟件。
隨著對(duì)可配置處理器技術(shù)經(jīng)驗(yàn)的提高,片上系統(tǒng)SoC設(shè)計(jì)者開(kāi)始需要以下指標(biāo):更高的系統(tǒng)性能、更高的I/O帶寬和更高的功耗利用率。第六代可配置處理器Xtensa LX可解決以上問(wèn)題。Xtensa LX處理器核增加了幾項(xiàng)顯著改進(jìn),用于提高可配置處理器的性能。
可配置處理器突破I/O瓶頸
為了提高I/O帶寬,必須克服總線瓶頸。圖1給出了總線瓶頸的示意圖?偩瓶頸問(wèn)題是自從Intel在1971年引入第一個(gè)商用微處理器4004以來(lái)就存在的問(wèn)題。每個(gè)處理器都和系統(tǒng)總線上的其余部件進(jìn)行通信?偩上的流量由加載/存儲(chǔ)部件控制。由于總線的固有特性,在任何時(shí)候,只允許一小部分?jǐn)?shù)據(jù)在總線上和處理器進(jìn)行通信。另外,加載/存儲(chǔ)單元和處理器內(nèi)部執(zhí)行部件,以及處理器局部存儲(chǔ)器通過(guò)類(lèi)似有限的總線進(jìn)行通信。這種單一的、一次只能一個(gè)方向的處理器總線特性嚴(yán)重限制了微處理器的系統(tǒng)吞吐量。
Tensilica在Xtensa LX處理器中增加了一個(gè)特性來(lái)消除總線瓶頸問(wèn)題。這種新的特性稱為TIE(Tensilica指令擴(kuò)展)端口和隊(duì)列技術(shù)。采樣TIE端口和隊(duì)列技術(shù),設(shè)計(jì)者可以定義多達(dá)