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