能否讓微處理器過時現(xiàn)象成為歷史
——
能否讓微處理器過時現(xiàn)象成為歷史
在FPGA構(gòu)造中加入嵌入式軟處理器,是一種可有效地解決處理器過時問題的根本且穩(wěn)健的方案。
設(shè)計人員所面臨的最大的“過時”問題是微處理器和微控制器更新?lián)Q代迅速。變化快速的消費類市場以及處理器速度的不斷提高,使得處理器的生命周期變得前所未有地短暫,而且經(jīng)常是在短暫的停產(chǎn)通告之后就中斷了生產(chǎn)和供應(yīng)。此外,在消費類產(chǎn)品中,有時過時現(xiàn)象是故意的,目的是為了推出規(guī)劃中的平臺而鼓勵微處理器制造商放棄現(xiàn)有處理器,從而造成一種器件過時的連鎖反應(yīng)。即使對于用“C”代碼(即“可移植代碼”)編寫的設(shè)計,也總有一些結(jié)構(gòu)相關(guān)的指令和功能會妨礙從過時處理器向下一代器件的轉(zhuǎn)變。制造工藝的改變使這一過程更為困難,因為新工藝制造的器件往往會采用不同的封裝形式和I/O布局,從而可能需要對電路板進行重新設(shè)計。
在解決過時問題方面,傳統(tǒng)方法既耗時耗力且成本高昂,而且無法保護過去的開發(fā)投資。與傳統(tǒng)方法相比,軟處理器內(nèi)核可提供極具吸引力的替代解決方案。
傳統(tǒng)方法的問題
汽車信息設(shè)備設(shè)計人員所面臨的問題是此類問題中最具代表性的。盡管汽車信息設(shè)備系統(tǒng)的設(shè)計和開發(fā)時間已經(jīng)從五年這樣的尺度縮短到兩年,但生產(chǎn)過程仍然要持續(xù)多年,而且產(chǎn)品的實際壽命則還要長十多年。只要想到汽車中的每個電子控制單元(ECU)都包括至少一個處理器,而一輛汽車可能包含多達60個ECU,我們就可以想象每次有某種處理器在時間相對很短的停產(chǎn)通告后就很快停止供應(yīng)這種情況會帶來多大的麻煩了。
通常設(shè)計人員解決處理器過時問題的方案有幾種。特定解決方案的適用性依賴于幾個因素:應(yīng)用軟件的價值、系統(tǒng)的生命周期以及解決問題所需要的時間和費用。
最激進也最昂貴的解決方案是圍繞新的處理器對系統(tǒng)進行重新設(shè)計。根據(jù)代碼的規(guī)模,重新設(shè)計可能需要耗費數(shù)百人年的時間,其中相當(dāng)大的部分會花在驗證和測試階段。這種典型的“把孩子與洗澡水一起倒掉”的做法不僅損失了調(diào)試和優(yōu)化現(xiàn)有軟件時所做的大量投資,而且這樣獲得的解決方案本身也只能是“暫時較好地滿足了要求”。如果系統(tǒng)生命周期較長,那么同樣的問題每幾年便會重復(fù)出現(xiàn)一次。
另一種解決方案是LTB, 即最后一次購買(The Last Time Buy).表面看起來,這好象是最經(jīng)濟的選擇。但問題是這一方法要求必須估計在整個項目的生命周期中需要購買多少產(chǎn)品。如果估計錯誤,可能會面臨更困難的問題,可能會損失更大的投資,即不得不為估計錯誤付出巨大的代價。
采用新的處理器,并利用軟件在新的處理器上模擬已過時的處理器也是一種方法。然而盡管這一概念看起來很有吸引力,并且確實已經(jīng)有一定的應(yīng)用歷史,但目前其實際應(yīng)用并沒有理論上看起來那么好。這種方法保護了遺留軟件,因此整個過程相對便宜和快速。但這種解決方案并非永久性的。如果系統(tǒng)的生命周期很長,那么每隔幾年都必須重復(fù)開發(fā)一種新的解決方案。
更為重要的是,軟件仿真本質(zhì)上是一個串行過程。由于運行仿真過程需要消耗比應(yīng)用本身多得多的資源和處理能力,因此這種解決方案速度比較慢。經(jīng)驗表明,平均來說執(zhí)行每條所仿真的過時處理器指令需要大約20個新處理器時鐘周期。
此外,仿真還會帶來進一步的過時問題,由于用于仿真的處理器本身也會過時,因此可能需要完全重新編寫仿真器。
現(xiàn)成商用解決方案僅僅是以一種新問題代替了老的問題。假設(shè)我們需要一種處理器,要求有10個UART、一個中斷控制器并且可以訪問外部閃存模塊等功能。雖然有許多現(xiàn)成商用處理器可提供多個UART和其它所需要的外設(shè),但通常他們擁有許多其它系統(tǒng)中用不到的外設(shè)。因此,設(shè)計人員不僅要為這些額外的外設(shè)支付更多的成本,通常還需要小心地將此類處理器中的未使用外設(shè)置于安全模式,或者通過軟件禁止掉。 禁止掉用不到的外設(shè)為軟件設(shè)計小組帶來額外的負擔(dān),他們不僅要保證設(shè)計中用到的處理器外設(shè)正常工作,現(xiàn)在還必須為未用到的處理器外設(shè)編寫代碼。很明顯,在這種情況下購買成品解決方案不僅浪費初始成本,還會在設(shè)計階段浪費工程人員的時間。
解決方案:采用軟處理器
軟處理器解決方案可消除處理器過時問題并保護在遺留代碼和開發(fā)方面的多年投資。這種新方法就是采用軟處理器內(nèi)核并將其嵌入在FPGA器件中。這樣不僅可以將軟處理器內(nèi)核移植到多種FPGA平臺,而且還可‘設(shè)計’所需要的外設(shè)集合來準(zhǔn)確滿足設(shè)計要求,從而避免結(jié)構(gòu)折衷和浪費外設(shè)資源。
Xilinx MicroBlaze軟處理器可為您提供不同方法的靈活性。首先可以從處理器內(nèi)核開始,構(gòu)建能夠準(zhǔn)確滿足設(shè)計需要的外設(shè)集合。由于只需要實現(xiàn)自己所需要的部分,因此避免了芯片資源浪費。因為不需要編寫代碼來關(guān)閉/禁止不需要的處理器功能,因此降低了軟件設(shè)計復(fù)雜性。創(chuàng)建專用處理器配置的工作也成為一項簡單的任務(wù),而為了滿足技術(shù)規(guī)格的變化專用處理器配置隨時可能需要改變。
即使在實際應(yīng)用五到六年后,連FPGA硬件本身可能也已經(jīng)接近其生命期的終點時,只需要簡單的利用同樣的C代碼將軟處理器內(nèi)核移植到新的FPGA硬件中就可以了。硬件平臺或許需要一定的PCB修改,但遺留下的代碼仍然是可用的,不需要修改。
Xilinx公司同時提供32位MicroBlaze軟處理器內(nèi)核和8位PicoBlaze軟件內(nèi)核。PicoBlaze處理器運行速度為116 MHz,但占用芯片面積很小,僅需要35個可配置邏輯模塊(CLBs)。(參看圖1)

圖1,Xilinx PicoBlaze和MicroBlaze軟件處理器性能定位
MicroBlaze 32位軟處理芯核運行速度為150 MHz,性能達100 D-MIPS。采用RISC架構(gòu)和哈佛結(jié)構(gòu)的獨立32位指令和數(shù)據(jù)總線,可以全速度執(zhí)行存儲在片上存儲器和外部存儲器中的程序并訪問其中的數(shù)據(jù)。支持CoreConnect總線的標(biāo)準(zhǔn)外設(shè)集合為MicroBlaze設(shè)計人員提供了兼容性和重利用能力。
開發(fā)工具支持
Xilinx及其分銷合作伙伴提供包括軟處理核心和標(biāo)準(zhǔn)外設(shè)集合在內(nèi)的Xilinx嵌入式開發(fā)套件(EDK)。該套件包括基于GNU的全套軟件工具,包括編譯器、匯編器、調(diào)試器和鏈接器。Xilinx及其分銷合作伙伴提供的MicroBlaze EDK還包括支持Virtex-E、 Virtex-II、Spartan-II和Spartan-IIE 系列FPGA的開發(fā)板。
設(shè)計人員所面臨的最大的“過時”問題是微處理器和微控制器更新?lián)Q代迅速。變化快速的消費類市場以及處理器速度的不斷提高,使得處理器的生命周期變得前所未有地短暫,而且經(jīng)常是在短暫的停產(chǎn)通告之后就中斷了生產(chǎn)和供應(yīng)。此外,在消費類產(chǎn)品中,有時過時現(xiàn)象是故意的,目的是為了推出規(guī)劃中的平臺而鼓勵微處理器制造商放棄現(xiàn)有處理器,從而造成一種器件過時的連鎖反應(yīng)。即使對于用“C”代碼(即“可移植代碼”)編寫的設(shè)計,也總有一些結(jié)構(gòu)相關(guān)的指令和功能會妨礙從過時處理器向下一代器件的轉(zhuǎn)變。制造工藝的改變使這一過程更為困難,因為新工藝制造的器件往往會采用不同的封裝形式和I/O布局,從而可能需要對電路板進行重新設(shè)計。
在解決過時問題方面,傳統(tǒng)方法既耗時耗力且成本高昂,而且無法保護過去的開發(fā)投資。與傳統(tǒng)方法相比,軟處理器內(nèi)核可提供極具吸引力的替代解決方案。
傳統(tǒng)方法的問題
汽車信息設(shè)備設(shè)計人員所面臨的問題是此類問題中最具代表性的。盡管汽車信息設(shè)備系統(tǒng)的設(shè)計和開發(fā)時間已經(jīng)從五年這樣的尺度縮短到兩年,但生產(chǎn)過程仍然要持續(xù)多年,而且產(chǎn)品的實際壽命則還要長十多年。只要想到汽車中的每個電子控制單元(ECU)都包括至少一個處理器,而一輛汽車可能包含多達60個ECU,我們就可以想象每次有某種處理器在時間相對很短的停產(chǎn)通告后就很快停止供應(yīng)這種情況會帶來多大的麻煩了。
通常設(shè)計人員解決處理器過時問題的方案有幾種。特定解決方案的適用性依賴于幾個因素:應(yīng)用軟件的價值、系統(tǒng)的生命周期以及解決問題所需要的時間和費用。
最激進也最昂貴的解決方案是圍繞新的處理器對系統(tǒng)進行重新設(shè)計。根據(jù)代碼的規(guī)模,重新設(shè)計可能需要耗費數(shù)百人年的時間,其中相當(dāng)大的部分會花在驗證和測試階段。這種典型的“把孩子與洗澡水一起倒掉”的做法不僅損失了調(diào)試和優(yōu)化現(xiàn)有軟件時所做的大量投資,而且這樣獲得的解決方案本身也只能是“暫時較好地滿足了要求”。如果系統(tǒng)生命周期較長,那么同樣的問題每幾年便會重復(fù)出現(xiàn)一次。
另一種解決方案是LTB, 即最后一次購買(The Last Time Buy).表面看起來,這好象是最經(jīng)濟的選擇。但問題是這一方法要求必須估計在整個項目的生命周期中需要購買多少產(chǎn)品。如果估計錯誤,可能會面臨更困難的問題,可能會損失更大的投資,即不得不為估計錯誤付出巨大的代價。
采用新的處理器,并利用軟件在新的處理器上模擬已過時的處理器也是一種方法。然而盡管這一概念看起來很有吸引力,并且確實已經(jīng)有一定的應(yīng)用歷史,但目前其實際應(yīng)用并沒有理論上看起來那么好。這種方法保護了遺留軟件,因此整個過程相對便宜和快速。但這種解決方案并非永久性的。如果系統(tǒng)的生命周期很長,那么每隔幾年都必須重復(fù)開發(fā)一種新的解決方案。
更為重要的是,軟件仿真本質(zhì)上是一個串行過程。由于運行仿真過程需要消耗比應(yīng)用本身多得多的資源和處理能力,因此這種解決方案速度比較慢。經(jīng)驗表明,平均來說執(zhí)行每條所仿真的過時處理器指令需要大約20個新處理器時鐘周期。
此外,仿真還會帶來進一步的過時問題,由于用于仿真的處理器本身也會過時,因此可能需要完全重新編寫仿真器。
現(xiàn)成商用解決方案僅僅是以一種新問題代替了老的問題。假設(shè)我們需要一種處理器,要求有10個UART、一個中斷控制器并且可以訪問外部閃存模塊等功能。雖然有許多現(xiàn)成商用處理器可提供多個UART和其它所需要的外設(shè),但通常他們擁有許多其它系統(tǒng)中用不到的外設(shè)。因此,設(shè)計人員不僅要為這些額外的外設(shè)支付更多的成本,通常還需要小心地將此類處理器中的未使用外設(shè)置于安全模式,或者通過軟件禁止掉。 禁止掉用不到的外設(shè)為軟件設(shè)計小組帶來額外的負擔(dān),他們不僅要保證設(shè)計中用到的處理器外設(shè)正常工作,現(xiàn)在還必須為未用到的處理器外設(shè)編寫代碼。很明顯,在這種情況下購買成品解決方案不僅浪費初始成本,還會在設(shè)計階段浪費工程人員的時間。
解決方案:采用軟處理器
軟處理器解決方案可消除處理器過時問題并保護在遺留代碼和開發(fā)方面的多年投資。這種新方法就是采用軟處理器內(nèi)核并將其嵌入在FPGA器件中。這樣不僅可以將軟處理器內(nèi)核移植到多種FPGA平臺,而且還可‘設(shè)計’所需要的外設(shè)集合來準(zhǔn)確滿足設(shè)計要求,從而避免結(jié)構(gòu)折衷和浪費外設(shè)資源。
Xilinx MicroBlaze軟處理器可為您提供不同方法的靈活性。首先可以從處理器內(nèi)核開始,構(gòu)建能夠準(zhǔn)確滿足設(shè)計需要的外設(shè)集合。由于只需要實現(xiàn)自己所需要的部分,因此避免了芯片資源浪費。因為不需要編寫代碼來關(guān)閉/禁止不需要的處理器功能,因此降低了軟件設(shè)計復(fù)雜性。創(chuàng)建專用處理器配置的工作也成為一項簡單的任務(wù),而為了滿足技術(shù)規(guī)格的變化專用處理器配置隨時可能需要改變。
即使在實際應(yīng)用五到六年后,連FPGA硬件本身可能也已經(jīng)接近其生命期的終點時,只需要簡單的利用同樣的C代碼將軟處理器內(nèi)核移植到新的FPGA硬件中就可以了。硬件平臺或許需要一定的PCB修改,但遺留下的代碼仍然是可用的,不需要修改。
Xilinx公司同時提供32位MicroBlaze軟處理器內(nèi)核和8位PicoBlaze軟件內(nèi)核。PicoBlaze處理器運行速度為116 MHz,但占用芯片面積很小,僅需要35個可配置邏輯模塊(CLBs)。(參看圖1)

圖1,Xilinx PicoBlaze和MicroBlaze軟件處理器性能定位
MicroBlaze 32位軟處理芯核運行速度為150 MHz,性能達100 D-MIPS。采用RISC架構(gòu)和哈佛結(jié)構(gòu)的獨立32位指令和數(shù)據(jù)總線,可以全速度執(zhí)行存儲在片上存儲器和外部存儲器中的程序并訪問其中的數(shù)據(jù)。支持CoreConnect總線的標(biāo)準(zhǔn)外設(shè)集合為MicroBlaze設(shè)計人員提供了兼容性和重利用能力。
開發(fā)工具支持
Xilinx及其分銷合作伙伴提供包括軟處理核心和標(biāo)準(zhǔn)外設(shè)集合在內(nèi)的Xilinx嵌入式開發(fā)套件(EDK)。該套件包括基于GNU的全套軟件工具,包括編譯器、匯編器、調(diào)試器和鏈接器。Xilinx及其分銷合作伙伴提供的MicroBlaze EDK還包括支持Virtex-E、 Virtex-II、Spartan-II和Spartan-IIE 系列FPGA的開發(fā)板。
評論