如果您認(rèn)為CPU對(duì)片上系統(tǒng)(SoC)而言就像汽車的引擎一樣,你知道你不會(huì)將大眾汽車的發(fā)動(dòng)機(jī)放在悍馬車上,并期望它能發(fā)揮作用。同樣,法拉利發(fā)動(dòng)機(jī)也不適合。盡管法拉利可以為悍馬發(fā)動(dòng)機(jī)提供類似的馬力,但由于缺少扭矩,它可能會(huì)失效。
對(duì)馬力的簡單評(píng)估與在汽車世界中一樣,在選擇CPU時(shí)會(huì)產(chǎn)生誤導(dǎo)。有針對(duì)所需功能的最佳解決方案。SoC中的CPU選擇也是如此。很多時(shí)候,設(shè)計(jì)人員僅根據(jù)系統(tǒng)架構(gòu)師對(duì)特定CPU的知識(shí)和過去的經(jīng)驗(yàn)來選擇CPU。
在決定使用哪個(gè)CPU時(shí),設(shè)計(jì)人員應(yīng)考慮總體系統(tǒng)指標(biāo),例如:總體設(shè)計(jì)的復(fù)雜性,設(shè)計(jì)重點(diǎn),保護(hù),性能,功耗,尺寸,成本,工具和中間件可用性。
設(shè)計(jì)的復(fù)雜性有助于確定要使用哪個(gè)CPU。例如,如果設(shè)計(jì)要求部署一臺(tái)狀態(tài)機(jī),并帶有來自少量外圍設(shè)備的中斷,則小型CPU和/或微控制器(例如8051或Z80)可能是最佳選擇。許多系統(tǒng)(例如尋呼機(jī))最初可能適合此類別。內(nèi)存占用空間小,信號(hào)緩慢,電池消耗必須非常低。
算法及其相互作用將決定設(shè)計(jì)的復(fù)雜性,也可能確定其是否需要實(shí)時(shí)操作系統(tǒng)(RTOS)。通常,隨著應(yīng)用程序復(fù)雜性的增加,對(duì)更大位寬處理器的需求也隨之增加。
設(shè)計(jì)正在被重視,并且復(fù)雜性不斷增加;那個(gè)2000年的傳呼機(jī)可能需要在2003年播放MP3,因此8位CPU可能不足以應(yīng)付當(dāng)前的任務(wù)。設(shè)計(jì)包含的接口數(shù)量是一個(gè)很好的指標(biāo)。例如,在我們的傳呼機(jī)中,最初有兩個(gè)主要界面,用戶界面和無線電鏈接。在添加MP3播放器的設(shè)計(jì)中,我們將需要添加用于存儲(chǔ)和傳輸數(shù)據(jù)的內(nèi)存接口,以及用于播放數(shù)據(jù)的音頻接口。在這個(gè)例子中,系統(tǒng)的復(fù)雜性從最初的概念開始就大大增加了,如果我們考慮將來可以將設(shè)計(jì)部署到哪里,我們可以重用許多相同的設(shè)計(jì)。
確保您留有增長空間。今天,您的8位設(shè)計(jì)可能適合MP3播放器。但是,當(dāng)在具有更高帶寬外圍設(shè)備的機(jī)頂盒應(yīng)用程序中重用設(shè)計(jì)時(shí),您可能需要重新設(shè)計(jì)完整的解決方案,以遷移到基于ARM,MIPS或PowerPC的應(yīng)用程序。體系結(jié)構(gòu)以應(yīng)對(duì)新的約束。
系統(tǒng)可能需要保護(hù)自己免受外部攻擊,甚至免受自身攻擊,這意味著CPU可能需要包含內(nèi)存管理單元(MMU)來解決此問題。虛擬內(nèi)存允許受約束的程序訪問整個(gè)系統(tǒng),而不受信任的程序只能訪問分配給它們的內(nèi)存。3G手機(jī)(具有Internet連接的手機(jī))是需要保護(hù)的典型示例。由于惡意程序會(huì)使您的手機(jī)崩潰,因此設(shè)計(jì)人員不再能夠使用缺少M(fèi)MU的CPU。盡管MMU并沒有消除潛在的系統(tǒng)故障,但它減少了難以發(fā)現(xiàn)的系統(tǒng)故障的數(shù)量和頻率。
三種主要的CPU體系結(jié)構(gòu)圍繞具有16位,24位和32位地址總線的8位,16位和32位數(shù)據(jù)寄存器構(gòu)建。這些體系結(jié)構(gòu)之間的主要區(qū)別在于,一個(gè)特定的寄存器可以容納的信息量以及可以直接尋址的信息量,如下所示:使用8位數(shù)據(jù)寄存器和16位地址總線,CPU可以擁有64k的地址空間;一個(gè)帶有16位數(shù)據(jù)寄存器和24位地址的地址空間可以具有16兆字節(jié)的地址空間;而具有32位數(shù)據(jù)的32位地址將具有4 GB的地址空間。
為什么嵌入式系統(tǒng)曾經(jīng)需要訪問4 GB的地址空間?答案很簡單:由于要求系統(tǒng)執(zhí)行更復(fù)雜的任務(wù),因此運(yùn)行的代碼的大小和復(fù)雜性都會(huì)增加。Z80上CPM的早期使用了存儲(chǔ)內(nèi)存和頁面交換的過程來運(yùn)行8位計(jì)算機(jī)上更復(fù)雜的程序。由于64k的空間不足,設(shè)計(jì)人員通過覆蓋內(nèi)存和頁面以使更多CPU占用空間,使系統(tǒng)變得更加復(fù)雜。
對(duì)于許多設(shè)計(jì)而言,24位地址總線似乎已足夠。但是,有幾個(gè)因素將設(shè)計(jì)人員驅(qū)使到32位地址空間,包括保護(hù)和指針。為了進(jìn)行保護(hù),具有虛擬內(nèi)存的CPU可以使用整個(gè)地址范圍將物理內(nèi)存劃分為單獨(dú)的虛擬空間,從而可以保護(hù)指針免受錯(cuò)誤的侵害。無需索引即可使任何寄存器成為指向內(nèi)存的指針的功能簡化了軟件。
選擇CPU會(huì)對(duì)整個(gè)系統(tǒng)的性能產(chǎn)生極大的影響。具體來說,緩存,MMU,流水線,分支預(yù)測和超標(biāo)量體系結(jié)構(gòu)等功能都會(huì)影響系統(tǒng)的速度。根據(jù)SoC的需求,可能需要使用這些功能來實(shí)現(xiàn)系統(tǒng)的最佳性能。
SoC的最終用途將決定您的設(shè)計(jì)消耗多少功率。如果您的設(shè)計(jì)是電池供電的,則CPU將需要盡可能節(jié)省功耗。例如,某些CPU具有睡眠。這些模式允許CPU在空閑時(shí)通過關(guān)閉CPU的數(shù)量來暫停操作并消耗更少的功率。不同的CPU執(zhí)行同一任務(wù)的結(jié)果不同。
CPU的成本可以通過幾種方法來衡量。首先,存在IP成本,其中包括為SoC和任何衍生產(chǎn)品獲得IP的成本。然后是系統(tǒng)集成成本,其中包括可用于SoC設(shè)計(jì)和實(shí)現(xiàn)的工具。最后,您必須確定CPU變體是否經(jīng)過硅驗(yàn)證,以及在SoC使用的總線體系結(jié)構(gòu)中是否可用。
RTOS和中間件的可用性也可能決定您的選擇。例如,在設(shè)計(jì)PDA時(shí),您可能需要適用于Linux的中間件,但是選擇虛擬操作系統(tǒng)將決定您要從小型非MMU CPU遷移。
此外,如果設(shè)計(jì)需要圖形系統(tǒng)或文件系統(tǒng),則RTOS的選擇將決定CPU的類型。許多RTOS供應(yīng)商針對(duì)特定的家庭,而其他人則保持不變。大多數(shù)8位CPU都具有簡單的調(diào)度程序,盡管這些調(diào)度程序適合于消耗很少的外包代碼的小型設(shè)計(jì),但不適用于消耗任何數(shù)量的外包代碼的設(shè)計(jì)。解決方案的外包將確定要使用的RTOS,進(jìn)而決定將支持哪些CPU。
其他考慮因素包括:您需要哪些工具來進(jìn)行設(shè)計(jì),并且它們可用于您可能使用的標(biāo)準(zhǔn)ANSI C / C ++編譯器嗎?您將如何在硬件/軟件協(xié)同仿真環(huán)境或SoC中調(diào)試設(shè)計(jì)?是否存在JTAG端口,CPU是使用該通道進(jìn)行調(diào)試還是調(diào)試需要專用的串行端口?選擇更高級(jí)的語言(例如C ++)或從UML中的設(shè)計(jì)生成的代碼也可能表明您需要更高的總線寬度和時(shí)鐘頻率來處理代碼的大小和復(fù)雜性。
如果將SoC劃分為幾個(gè)通過松散連接的FIFO或串行通道進(jìn)行通信的處理器子系統(tǒng),則可能會(huì)更好。許多設(shè)計(jì)都集成了數(shù)字信號(hào)處理器和RISC CPU,以分擔(dān)工作量并簡化每個(gè)處理器域的設(shè)計(jì)。
現(xiàn)代SoC設(shè)計(jì)為系統(tǒng)架構(gòu)師提出了新的挑戰(zhàn)。選擇CPU不再是瑣碎的事情。通過使用諸如總體設(shè)計(jì)的復(fù)雜性,設(shè)計(jì)重用,保護(hù),性能,功耗,尺寸,成本,工具和中間件可用性之類的指南,設(shè)計(jì)人員可以簡化決策。
責(zé)任編輯:tzh
-
微控制器
+關(guān)注
關(guān)注
48文章
7565瀏覽量
151593 -
處理器
+關(guān)注
關(guān)注
68文章
19334瀏覽量
230186 -
發(fā)動(dòng)機(jī)
+關(guān)注
關(guān)注
33文章
2482瀏覽量
69425 -
cpu
+關(guān)注
關(guān)注
68文章
10876瀏覽量
212124
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論