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