處理器市場最終會被統(tǒng)一嗎?
· ARM 32位架構(gòu)現(xiàn)在是淘汰8位架構(gòu)的最強大候選人。
本文引用地址:http://m.butianyuan.cn/article/201610/309253.htm· 由于32位處理器依賴于更小的工藝結(jié)點,因此增加了獲得相同價格與能效的機會。
· 每種處理器大小與類型都能最好地服務(wù)于一個特定的問題領(lǐng)域,確定了獲得最佳目標(biāo)設(shè)備與軟件的開銷。
· 創(chuàng)新可以來自任何方式—甚至可能包括為提高速度而減小尺度。
· 單一開發(fā)方案可能會限制那些可能發(fā)現(xiàn)并解決新機會的類型。
某個處理器會一統(tǒng)天下嗎?這種想法是否是一個好主意?
嵌入式計算的生態(tài)系統(tǒng)非常類似于《指環(huán)王》中的中土大陸,只不過其中沒有精靈、矮人、霍比特人和人類自身, 而是棲息著所有類型的處理架構(gòu)。各種微處理器、數(shù)字信號處理器以及微控制器的優(yōu)化組合,滿足了設(shè)計人員龐大的設(shè)計需求。
我的這一類比源于最近讀的一些文章和在線討論??傮w上,它們都問著兩個問題:是否8位處理器正在消亡?ARM是否在贏得處理器大戰(zhàn)?這兩個問題潛意識都在期望著一種統(tǒng)一的架構(gòu)。這些文章和討論都認(rèn)為,ARM架構(gòu)將成為較小位寬微控制器棺材上的最后一根釘子,甚至可能在一些應(yīng)用中擠占其它32位微處理器的空間。在這個快速變幻的生態(tài)系統(tǒng)中,ARM架構(gòu)確實可以一統(tǒng)天下嗎?
這種類比只是對這些問題及相關(guān)討論中普遍蘊含的統(tǒng)一架構(gòu)主題的一種描述,而不意味著對所討論處理器架構(gòu)或支持這些架構(gòu)的生態(tài)系統(tǒng)公司的一種斷言。但至少對我來說,這種類比提供了一個可見且?guī)缀跤|手可及的圖像,從中可以看出,不久以后的某天,單一處理器架構(gòu)可能最終宣告8位和16位架構(gòu)的死亡,并可能搶奪傳統(tǒng)上歸屬于32位和更大微處理器的應(yīng)用。
這種處理架構(gòu)的一統(tǒng)天下是可能的嗎?這是我們想要的結(jié)果嗎?
讓我們開始如下的演練:約定就成本、工作負(fù)荷能力及功耗等方面而言, 某款3 2 位處理器已經(jīng)獲得或超越了用于某特定工作負(fù)荷的某款8位處理器的性能。在這里用“約定”這個措辭,并非要避免數(shù)據(jù)表爭議,而是為了強調(diào)任何處理器對其它處理器的替代都是基于個例完成的,是以顯式工作負(fù)荷(預(yù)期或已經(jīng)實現(xiàn))為背景,在顯式替代者之間做的區(qū)分。當(dāng)替代者超過現(xiàn)有實現(xiàn)者時,就存在著一個向替代者遷移的機會。
然而,在工作負(fù)荷以及可用處理選擇生命周期內(nèi)將某個工作負(fù)荷遷移到一款替代器件上,并不等同于將它遷移到一個特定的替代器件上,因為現(xiàn)有處理器的寬度或架構(gòu)實現(xiàn)都會被逐步廢棄。
舉個例子,考慮長期以來有關(guān)FPGA的類似爭議,即所謂FPGA會把DSP逼上絕路。過去已經(jīng)反復(fù)多次證明了,F(xiàn)PGA可以任意完成廣泛的信號處理工作,比專用DSP更快也更高效。但對確定的工作負(fù)荷,如果某種處理器包含了用于特定工作負(fù)荷實現(xiàn)的最優(yōu)執(zhí)行單元類型與數(shù)量,則FPGA將不再具備性能與效率的優(yōu)勢。
事實上,當(dāng)前信號處理工作的真實情況是這樣的:最初,某個待開發(fā)的工作負(fù)荷是在一個高性能微處理器或DSP上,以仿真和原型方式用軟件實現(xiàn)。隨著工作負(fù)荷實現(xiàn)的變動與不確定性趨于穩(wěn)定,開發(fā)人員會將其遷移到一個FPGA,做性能、價格與功耗的優(yōu)化。一旦設(shè)計人員使工作負(fù)荷適應(yīng)了很多大批量設(shè)計,半導(dǎo)體公司就可能決定生產(chǎn)一種專用處理器或協(xié)處理器,其中包含了用于特定工作負(fù)荷的微處理器或DSP;而這個開發(fā)工作也將決定工作負(fù)荷的另一次遷移,這次是將軟件實現(xiàn)遷移到上述器件上。這些遷移沒有一條是造成微處理器、FPGA 或DSP趨于過時的原因。
最有效點
實現(xiàn)這些不同的處理(微處理器、DSP和FPGA)的真實體驗是,其中的“最佳選擇”要取決于目標(biāo)處理的類型,因此在相同設(shè)計中,它們通常是平等的。同樣地,“8 位何時死亡”這個問題也是指不同環(huán)境嗎?
借助于各種處理的最有效點的分布圖(圖1)有助于給出這些遷移事件可能出現(xiàn)差異的方式與原因。圖中將每種處理器的架構(gòu)映像到一個二維空間,將一個設(shè)計的處理復(fù)雜性表示為計算或工作強度與一個系統(tǒng)必須管理的環(huán)境量的函數(shù)。
工作強度表示在橫軸,可以表示在一個單位時間或能量內(nèi),系統(tǒng)需要的處理性能峰值、總量或持續(xù)量。處于分布范圍最左端的工作負(fù)荷優(yōu)化到了一個有限的能量預(yù)算,而最右端的則優(yōu)化為有限的完成時間預(yù)算。
豎軸表示一個系統(tǒng)必須管理的環(huán)境量,可以是系統(tǒng)內(nèi)部狀態(tài)、系統(tǒng)輸入輸出數(shù)量(無論結(jié)構(gòu)上是分級還是匯聚),甚至可以是系統(tǒng)必須支持的可能狀態(tài)或條件控制流水平。
對兩種復(fù)雜性的量度使得主要處理器架構(gòu)能夠映射到它們最適于工作的區(qū)域內(nèi)。盡管這一范圍為每種類型處理架構(gòu)選擇都給出了特定區(qū)域,但各個區(qū)域的邊界之間通常有明顯的重疊,圖1中各區(qū)之間的重疊未明確標(biāo)示出,是為了不使本已繁復(fù)的圖像顯得更凌亂。在每個確定的區(qū)域內(nèi),落在該區(qū)內(nèi)的處理方法都有相同的架構(gòu)特性,不同于其它區(qū)域中的器件(見附文:“架構(gòu)的差異”)。
與已確定的最有效點區(qū)不同的是,不同處理器的位寬并非互斥到專門的處理器架構(gòu)上(圖2)。但顯然,4位和8位處理器僅落在微控制器區(qū)(FPGA中用作微控制器的8位軟核是技術(shù)例外),特別是32位微控制器,它被認(rèn)為篡奪了8位微控制器的地位,因此也強化了8位處理器正趨死亡問題的正確性。
4位處理器位于最有效點分布的左下方(圖2),它們被顯式包含的原因是,各家公司都仍在批量制造4位處理器,盡管缺乏供應(yīng)商與用戶的公開營銷。事實上,各公司對4位市場的參與都遮遮掩掩,主要是出于競爭原因。但我通過與業(yè)內(nèi)人士的深入交流,梳理出了一些不為人知的有用內(nèi)幕。
這些公司并不向公共開發(fā)人員社區(qū)售賣自己的4位處理器,這不同于8位、16位和32位處理器通常的市場營銷方式。與那些提供技術(shù)前沿處理器(在分布圖的最右邊)的公司一樣,4位處理器提供商也會主動地尋找并辨識那些能最好地利用自己處理器的設(shè)計人員,而忽視其他人。一家4位處理器提供商會去接近一位潛在的開發(fā)人員,研究特定的實現(xiàn)細節(jié),證明其4位器件可以為該開發(fā)人員的設(shè)計與最終產(chǎn)品提供差異化特點。
4位處理器只為特定的大批量產(chǎn)品而生產(chǎn)。有些(甚至所有)4位處理器僅以ROM器件方式提供。為適應(yīng)驗證掩膜套件的高強度人工勞動,這類器件供應(yīng)商限制只供給那些會有超大批量的客戶。
此外,4位處理器僅以匯編語言編程。軟件開發(fā)工具的費用在1萬美元區(qū)間,而那些告知我這些信息的公司說,供應(yīng)商會向其客戶出租開發(fā)工具,而不是出售工具。
4 位處理器的最有效點是單電池應(yīng)用,其典型壽命為10年,器件也許只在1%的時間內(nèi)工作,而其它99%的時間都是處于待機模式。4位處理器一個有意思的差異化因素是它們可以在0.6V下工作,這樣就擁有了較8位處理器的功耗優(yōu)勢。另外,4位處理器自1990年以來就已經(jīng)能支持能量采集設(shè)計,而8位、16位和32位處理器供應(yīng)商在近幾年才剛剛開始提供開發(fā)與演示套件。
努力獲得正確的尺寸
我們正看到32位微控制器的價格與能耗都達到了與8位微控制器相同的水平,甚至已在這些參數(shù)上超越后者,這是可能的嗎?
先看價格。32位器件的生產(chǎn)采用了最新的工藝尺度,而8位器件仍使用較大工藝結(jié)點,在基本被棄用的工廠里制造。雖然32位核心的總線要寬四倍,但當(dāng)兩個工藝結(jié)之間的距離增加時,每個CPU所消耗的相對硅片面積卻幾乎相同。另外,在較大器件中,核心本身占用硅片份額表現(xiàn)出減少趨勢,內(nèi)存與外設(shè)會占據(jù)主要的硅片面積。事實上,32位微控制器在多年前就突破了1美元屏障,而最小的器件甚至突破了50美分的價格點,達到了與8位微控制器相當(dāng)?shù)膬r格區(qū)間。
不過,有些成本是32位微控制器必須負(fù)擔(dān),而8位器件可以避免的。我們提到過生產(chǎn)設(shè)施的折舊。此外,由于我們假設(shè)的32位器件是一款A(yù)RM微控制器,其價格還必須包含使用ARM IP(知識產(chǎn)權(quán))的授權(quán)費用,這進一步削減了相對邊際。
還有個事實也有相同效果,那就是32位器件要有更集中的支持,因此使用32位IP使半導(dǎo)體公司通過與其它公司共享開發(fā)資源,以均衡某些支持成本。8位器件的支持成本較低,因為目標(biāo)應(yīng)用無論在范圍和規(guī)模上都很簡單,工作在“低”時鐘速率,并且除供應(yīng)商以外,還有極具專業(yè)和合作性的開發(fā)者/用戶社區(qū)支持。簡言之,當(dāng)一款32位器件因價格均等而展現(xiàn)出真實威脅時,可能有多個領(lǐng)域讓8位供應(yīng)商仍躊躇在價格與制造上。
當(dāng)32 位處理器達到或超過8 位微控制器的功耗性能時,情況會怎樣?此時,32位器件會采用一種雙重打擊法去挑戰(zhàn)8位器件:代碼密度,以及完成一次喚醒/睡眠循環(huán)的時間。
恩智浦半導(dǎo)體公司微控制器業(yè)務(wù)架構(gòu)與系統(tǒng)高級總監(jiān)Rob Cosaro表示,該公司的基準(zhǔn)測量研究表明,當(dāng)在一只Cortex-M0級處理器上運行一個8051 上的相同算法時,代碼密度下降了50%。但如果基準(zhǔn)測試不能反映出設(shè)計實際使用的代碼,那就只是個花招而已。例如,EEMBC(嵌入微處理器基準(zhǔn)聯(lián)盟)的Coremark中包含了用于測試8位、16位和32位CPU的函數(shù),但你不會考慮在一只8位器件上運行像雙鏈接表和矩陣運算這類函數(shù)。
當(dāng)一只8 位處理器的使用超出了其理想?yún)^(qū)域時, 32 位甚至16 位處理器就有了提供更好代碼密度的機會,例如運行數(shù)據(jù)大于8位(因為需要多次數(shù)據(jù)訪問才能操作一個數(shù)據(jù));工作數(shù)據(jù)集超過了16KB~64KB地址空間;工作在高時鐘速率(高于20MHz~50 MHz ),甚至要支持繁重的網(wǎng)絡(luò)通信棧。在這些情況下,應(yīng)用可能無法與8位處理器相配合,因為幾年來,與維護有關(guān)的功能增長已經(jīng)逐漸進入了系統(tǒng)。
在能量敏感的嵌入式設(shè)計中,微控制器大部分時間處于小功率的睡眠模式, 定期喚醒來完成其任務(wù)。與代碼密度情況類似,如果8位微控制器做的任務(wù)失配,32位微控制器就能夠以足夠快的速度做喚醒并完成任務(wù),然后返回睡眠狀態(tài),而消耗的能量少于8位器件。
8位微控制器較可能替代它的32位處理器有一個關(guān)鍵性優(yōu)點,這就是8位器件能夠以一個高的成本效率和能效水平完成工作,而這方面32位要替代8位器件還有幾年時間。小型處理器細分市場的興奮點定位在最小處理器,把成本與能耗推到了可能的極限。我們所稱的小功率是一個不斷在變化的目標(biāo)。在支持那些小型任務(wù)方面,較小數(shù)據(jù)寬度將總是明顯領(lǐng)先于較寬的數(shù)據(jù)寬度。
在相同價格和功耗性能的8位和32位器件之間做選擇時,還有一個數(shù)據(jù)表上沒有,卻有一定影響的因素:行業(yè)專業(yè)知識。雖然做8位器件編程可能要熟練掌握匯編甚至C語言,但一名開發(fā)人員最重要的還是行業(yè)知識。
想想為什么COBOL程序仍有需求,盡管大多數(shù)人把COBOL看作一種已被淘汰的編程語言。這種語言很直觀,易于理解。對專業(yè)COBOL程序員的假設(shè)(也是他們的價值所在)是他們了解COBOL程序要解決的商務(wù)問題。
同樣,8位微控制器所面對的問題不同于32位器件,并且32位系統(tǒng)開發(fā)人員面臨的行業(yè)領(lǐng)域也不同于8位開發(fā)人員。例如,一個正確的8位應(yīng)用不存在難以處理的存儲器限制,因為應(yīng)用能完全理解并填滿架構(gòu)的自然極限。32位應(yīng)用可以處理多得多的不確定性,可以通過動態(tài)存儲方式利用和管理更大的存儲空間,而8位開發(fā)人員根本不用考慮這種方式。
數(shù)據(jù)的大小應(yīng)反映出處理器的自然位數(shù),對一款并未設(shè)計浮點運算的器件,不應(yīng)用于密集地處理大量浮點運算。8位處理器最適合用于簡單或約束性任務(wù)。采用操作系統(tǒng)和中間件的系統(tǒng)是為了提高開發(fā)人員效率,因為系統(tǒng)太復(fù)雜,不能從頭開發(fā),而從頭建立一個簡單的日程表則相對簡單直接。
最終,每種類型的處理器架構(gòu)都需要設(shè)計者在建立系統(tǒng)時采用一種不同的思考過程。只要存在著盡可能獲得更低能耗預(yù)算的新開發(fā)需求,只要處理供應(yīng)商還會積極地提供這些小寬度器件的設(shè)計支持,8位器件就有市場,哪怕是臨時性的。如果我們不把低功耗、小數(shù)據(jù)寬度處理器與較大的32位處理器等同起來,事件就會容易得多,因為它們解決的是不同問題。
附文:架構(gòu)的差異
圖1通過計算負(fù)荷與環(huán)境量的關(guān)系反映了處理器最有效點的特性。工作負(fù)荷可以是峰值大小、總量,或在給定時間或能量情況下, 系統(tǒng)需要維持的處理性能數(shù)量。環(huán)境量可以表示內(nèi)部系統(tǒng)狀態(tài)、系統(tǒng)輸入輸出數(shù),或系統(tǒng)必須支持的可能環(huán)境量。
各種確定的處理器類型都會以不同進度隨時代演進,每種類型都會對一個或多個性能度量做出折中權(quán)衡以獲得最大的一個或多個性能指標(biāo)。
微控制器是專用處理器,它以犧牲靈活性和工作負(fù)荷處理量為代價,提供了成本與能效上的優(yōu)勢。它們提供成本優(yōu)勢的方法是在一個封裝內(nèi)集成存儲器與外設(shè)。
它們提供能效優(yōu)勢的部分方法是面向那些以較低時鐘速率運行的工作負(fù)荷,另外也是由于它們僅用電路實現(xiàn)的最小集合來完成控制處理工作。如果一個設(shè)計需要有靈活性,如更多或更少存儲器、不同外設(shè)集,或更高的時鐘速率,則設(shè)計者必須換用一種不同的處理器。有些微控制器通過放棄緩存或流水線的方法,提供了確定性的運算與操作。微控制器通常面向那些有頻繁和優(yōu)先級環(huán)境切換的系統(tǒng)控制工作負(fù)荷。
DSP也以工作負(fù)荷靈活性為代價,專注于獲得最佳成本與能效。它們犧牲了處理環(huán)境轉(zhuǎn)換的效率,以最大限度獲得連續(xù)計算和可重復(fù)計算的性能。它們并不集成很多外設(shè),因為它們的結(jié)構(gòu)本身就不適合用于處理環(huán)境切換,而這是很多外設(shè)的可能要求。最常用的集成外設(shè)是ADC,DSP用它獲取一個真實世界數(shù)據(jù)流,供自己做處理。
DSP采用多總線和多存儲器結(jié)構(gòu),這樣它們就可以完成同步存儲器操作,支持連續(xù)的單周期乘法/累加操作。
它們采用了專用寄存器,以盡量減少存儲器訪問時間,能夠?qū)崿F(xiàn)零開銷循環(huán)。DSP用于那些有連續(xù)數(shù)據(jù)流的系統(tǒng),用于完成連續(xù)的信號處理,通常結(jié)合使用硬件加速器或FPGA,以分擔(dān)繁重的密集計算負(fù)荷。
DSC(數(shù)字信號控制)專注于優(yōu)化成本和能效上的方法是將DSP功能與微控制器結(jié)合在一只處理器中,能夠勝任同時處理環(huán)境切換與信號處理的工作。這些器件提供較DSP更好的工作負(fù)荷靈活性,同時針對連續(xù)數(shù)據(jù)流,仍然保持了高效完成重復(fù)性工作負(fù)荷的能力。
FPGA提供了一種高度靈活的可編程硬件平臺,可以充分利用任意寬度的信號處理算法,并用做硬件加速塊。FPGA能很好地完成信號處理工作,此時它有較少的決策狀態(tài),以及大量的數(shù)據(jù)點處理工作。
協(xié)處理器類別依賴于硬件,加快工作負(fù)荷的處理速度, 減少能耗。協(xié)處理器通常不是單獨使用,而是與其它處理器相連接,或共同集成到一個封裝內(nèi)(如與DSP或微處理器)。
微處理器采用通用架構(gòu),能夠完成相當(dāng)大范圍的處理工作,極具工作負(fù)荷的靈活性。它們處理環(huán)境切換時不如微控制器那么快或那么確定,同時做循環(huán)處理時也不如DSP快速和有效率。但當(dāng)要處理那些未知內(nèi)容時,例如一個支持用戶加載應(yīng)用的系統(tǒng),微處理器就是最理想選擇。
微處理器通常能支持大量的存儲地址空間,采用大規(guī)模的片上緩存,以補償訪問片外存儲器所帶來的時間損失。當(dāng)成本與能效的重要性低于短時間開發(fā)周期時,它們很適合于做“臨時應(yīng)急”的原型,或概念驗證研究。
微處理器
ARM處理器在移動設(shè)備中的爆炸性發(fā)展,使一些人產(chǎn)生了疑問:是否在其它市場中,ARM也會替代其它微處理器架構(gòu)。不過,現(xiàn)有的微處理器架構(gòu)也擁有類似于8位微控制器的秘密武器,這就是行業(yè)知識,它深深地埋藏在當(dāng)前架構(gòu)以及生態(tài)系統(tǒng)之中。
想想某個微處理器架構(gòu)的特殊變型,其特性已經(jīng)過開發(fā)、測試和微調(diào),因此該變型特別適用于目標(biāo)應(yīng)用的特定需求。再考慮為既定市場服務(wù)的軟件實體,一個強大的既有微處理器架構(gòu)非常類似于8位微控制器,它周圍是一個強大而成熟的生態(tài)系統(tǒng),包括開發(fā)人員、工具、操作系統(tǒng)以及中間件,這是現(xiàn)有處理器應(yīng)對挑戰(zhàn)者的緩沖器。
有關(guān)當(dāng)前處理器優(yōu)勢有一個特殊例子,就是哪款微處理器架構(gòu)將最終贏得平板電腦世界。ARM架構(gòu)現(xiàn)在擁有顯然的優(yōu)勢,因為很多平板設(shè)計將其當(dāng)作一部大型智能手機, 而ARM架構(gòu)在智能手機市場有著多年的軟硬件支持史,擁有很多相關(guān)設(shè)計知識。如果平板電腦繼續(xù)保持智能手機模式,則ARM架構(gòu)就是最佳定位。不過現(xiàn)在也有基于其它微處理器的平板產(chǎn)品,它們對平板的定義是有差異的。例如,如果微軟可以重新調(diào)整平板電腦市場,充分利用自己Windows OS的生態(tài)系統(tǒng),則今天的平板市場就可能完全是不同面貌了。
據(jù)一些估計,過去數(shù)十年來,供應(yīng)商提出了超過200種處理器架構(gòu)。其中大多數(shù)已經(jīng)銷聲匿跡,或被其它架構(gòu)吸收?,F(xiàn)在只有10 個左右架構(gòu)仍在為開發(fā)人員提供工具和方法,以創(chuàng)建出今天包含處理器與開發(fā)工具復(fù)雜生態(tài)系統(tǒng)的應(yīng)用,并且有行業(yè)針對性的工程與軟件支持。如果再從這些里面精選幾個,開發(fā)人員市場是否能得到更好的服務(wù)呢?
處理器市場這種巨大混沌的狀態(tài)說明,要找到服務(wù)該市場的正確方式是多么的復(fù)雜和困難。不確定性并非源于過去,今天的技術(shù)相當(dāng)大一部分也存在著不確定性。這種不確定性的一種表示就是關(guān)于8位是否死亡的無盡問題。
我最近剛知道,有些公司正在悄悄地探索能明顯提高原生處理性能的方式,即在某些DSP應(yīng)用中減少數(shù)據(jù)的大小。一部分挑戰(zhàn)是要做出可接受的權(quán)衡,一方面是短字長所帶來的問題,另一方面是較低功耗下組合較高性能的好處。今天有些DSP支持在較大執(zhí)行引擎內(nèi)的8 × 8 MAC(乘法累加)。簡言之,我們的未來會有8位DSP嗎?你永遠不知道下一個好想法來自哪里。如果你可選的處理器架構(gòu)不多,產(chǎn)生瘋狂思想的機會也就不多,例如冒出來一個8位DSP。
很多評論家爭辯說,如果我們的架構(gòu)選擇少,軟件代碼會更容易維護,因為有更龐大的開發(fā)人員群體來獲取、使用和維護它。那么,一個統(tǒng)一架構(gòu)會改進現(xiàn)有行業(yè)知識的可轉(zhuǎn)移性嗎?更重要的是,能有利于新行業(yè)知識的發(fā)展嗎?
據(jù)我所觀察的大型半導(dǎo)體公司的所作所為,我很懷疑,有限的架構(gòu)選擇會導(dǎo)致更慢的創(chuàng)新,因為在開發(fā)支持生態(tài)系統(tǒng)中,有足夠多的資源來解決最大批量應(yīng)用的工程化問題。這可能對發(fā)現(xiàn)新興應(yīng)用的努力造成負(fù)面影響,這種努力可能代替現(xiàn)有的大批量應(yīng)用。
正如中土地球的不同競爭一樣,每個現(xiàn)有處理器架構(gòu)都包含著自己獨特的行業(yè)文化或開發(fā)生態(tài)系統(tǒng),使之在完成某些任務(wù)方面優(yōu)于其它替代品。大多數(shù)設(shè)計已經(jīng)采用了多處理器,而廣泛的處理器選擇使開發(fā)人員能夠在自己的設(shè)計中挑選并使用同類最佳器件與軟件。單一架構(gòu)成功地一統(tǒng)天下,也許會是提升開發(fā)人員生產(chǎn)力的關(guān)鍵,但也可能成為一種桎梏,過分強求一致性, 卻限制了創(chuàng)新的方向與機會。
評論