嵌入式开发在过去20年中是如何演变的
嵌入式開(kāi)發(fā)在過(guò)去20年中是如何演變的
How embedded development has evolved over the past two decades
與任何開(kāi)發(fā)領(lǐng)域一樣,嵌入式系統(tǒng)開(kāi)發(fā)就像大海:深海洋流基本上保持不變,而表面卻很少如此。冒著淹沒(méi)在比喻中的風(fēng)險(xiǎn),觀(guān)點(diǎn)是,嵌入式開(kāi)發(fā)的基礎(chǔ)現(xiàn)在基本上是一樣的,那時(shí)工程師必須在硬接線(xiàn)微型計(jì)算機(jī)上打開(kāi)開(kāi)關(guān)來(lái)運(yùn)行機(jī)器代碼。像那些工程師一樣,仍在努力監(jiān)控外部事件并做出適當(dāng)?shù)姆磻?yīng)。到那里的方式一直在變化。
或者使用最少的硬件和方法來(lái)構(gòu)建更好的嵌入式系統(tǒng)。作為對(duì)這種變化的某種程度上的衡量,Embedded 1999年、2009年和2019年的調(diào)查提供了過(guò)去20年嵌入式開(kāi)發(fā)是如何演變的一個(gè)快照。
事實(shí)上,每個(gè)調(diào)查的問(wèn)題本身都反映了這種變化。1999年的調(diào)查中,有大量的問(wèn)題涉及交叉編譯器、面向?qū)ο蟮脑O(shè)計(jì)方法和在線(xiàn)仿真器,但對(duì)操作系統(tǒng)的問(wèn)題則相對(duì)較少。到了2009年,這項(xiàng)調(diào)查已經(jīng)放棄了那些特定的部分,包括了更多關(guān)于多處理器設(shè)計(jì)、操作系統(tǒng)和特別是嵌入式Linux的內(nèi)容,但是像物聯(lián)網(wǎng)(IoT)和人工智能(AI)這樣的話(huà)題并沒(méi)有被任何人關(guān)注。在2019年的調(diào)查中,這些主題以及安全性都表現(xiàn)出廣泛的興趣和積極的使用。
很難嘗試比較這些調(diào)查的細(xì)節(jié),因?yàn)榈?009年,調(diào)查方法發(fā)生了重大變化。在某些情況下,同一個(gè)一般問(wèn)題被擴(kuò)展到多項(xiàng)選擇題,允許有多個(gè)答案。這增加了任何解釋的不確定性。在設(shè)計(jì)功能的討論中可以看到這一點(diǎn)。另外,下面的一些結(jié)果缺乏1999年調(diào)查的相應(yīng)數(shù)據(jù),所以只需看看2009年和2019年的數(shù)據(jù)。最后,請(qǐng)記住,結(jié)果的誤差范圍通常在3%到6%以上,因此詳細(xì)的比較是有風(fēng)險(xiǎn)的。最后,作為一個(gè)研究過(guò)統(tǒng)計(jì)操縱的令人遺憾的深度(又一個(gè)隱喻)的人,在以前的職業(yè)生涯中做過(guò)定量調(diào)查研究和系統(tǒng)性能基準(zhǔn)測(cè)試,這些數(shù)字僅用于娛樂(lè)目的。當(dāng)然覺(jué)得是這樣的。
應(yīng)用程序重點(diǎn)和功能
在過(guò)去的十年里,嵌入式設(shè)計(jì)的主要應(yīng)用領(lǐng)域發(fā)生了怎樣的變化?盡管工業(yè)和消費(fèi)類(lèi)產(chǎn)品仍排在前五位,但汽車(chē)和物聯(lián)網(wǎng)應(yīng)用的設(shè)計(jì)已經(jīng)開(kāi)始占據(jù)主導(dǎo)地位(表1)。2009年,稱(chēng)之為datacomm的設(shè)計(jì)在2019年被歸入通信領(lǐng)域,這可能是一個(gè)穩(wěn)妥的賭注。
Table 1: Top 5 Application segments (% respondents)
表1:前5大應(yīng)用領(lǐng)域(受訪(fǎng)者百分比)
在過(guò)去的二十年里,設(shè)計(jì)的本質(zhì)是如何改變的?1999年的調(diào)查提出了多個(gè)關(guān)于將Web技術(shù)融入設(shè)計(jì)的問(wèn)題。在研究1999年的調(diào)查中特別有趣的是,43%的受訪(fǎng)者表示不打算這么做,但14%的人說(shuō)確實(shí)打算這么做。不知道這個(gè)問(wèn)題中“Web技術(shù)”到底是什么意思,但希望沒(méi)人試圖在系統(tǒng)中嵌入httpd服務(wù)器。
更一般地說(shuō),表2顯示了三個(gè)關(guān)鍵設(shè)計(jì)能力是如何演變的。唯一真正的變化是互聯(lián)設(shè)計(jì)的巨大提升,從千年之初的35%上升到10年前的90%多一點(diǎn)。(認(rèn)為調(diào)查方法讓網(wǎng)絡(luò)化和無(wú)線(xiàn)化成為可能互換的,但從統(tǒng)計(jì)上看,2009年和2019年的聯(lián)網(wǎng)設(shè)計(jì)水平相同。)
類(lèi)似地,嵌入式開(kāi)發(fā)人員已經(jīng)開(kāi)發(fā)了至少10年的電池供電設(shè)計(jì)。有時(shí),業(yè)界忘記了電池供電的設(shè)計(jì)早在物聯(lián)網(wǎng)和可穿戴設(shè)備興起之前就已經(jīng)存在了。
Table 2: Key design capabilities (% respondents)
表2:關(guān)鍵設(shè)計(jì)能力(%受訪(fǎng)者)
程序設(shè)計(jì)語(yǔ)言
記住C/C++不一定是嵌入式開(kāi)發(fā)的主要語(yǔ)言(圖1)。考慮到每項(xiàng)調(diào)查中隱藏的其一些響應(yīng),而且高性能處理器的出現(xiàn)很可能減少了對(duì)匯編級(jí)代碼的需求。好吧,而且事實(shí)上,只有37%的項(xiàng)目如期完工——盡管2009年曾表示希望修復(fù)開(kāi)發(fā)過(guò)程,但這一數(shù)字在2019年并沒(méi)有顯著變化(見(jiàn)下圖1)。
圖1:頂級(jí)開(kāi)發(fā)語(yǔ)言(%受訪(fǎng)者)。
到2009年底,開(kāi)源操作系統(tǒng)(OS)開(kāi)始取代商業(yè)操作系統(tǒng)的使用。到2019年,這一趨勢(shì)仍在繼續(xù)。開(kāi)放源碼軟件的興起并不僅僅是因?yàn)殚_(kāi)源操作系統(tǒng)的興起。定制/內(nèi)部開(kāi)放源碼軟件也繼續(xù)得到更多的使用(圖2)。
圖2:操作系統(tǒng)類(lèi)型(%受訪(fǎng)者)。
處理器體系結(jié)構(gòu)
盡管在過(guò)去的十年中,32位體系結(jié)構(gòu)的使用保持不變,但64位體系結(jié)構(gòu)卻得到了顯著的提高(圖3)。有人可能會(huì)懷疑,這是一個(gè)簡(jiǎn)單的進(jìn)化趨勢(shì),因?yàn)殚_(kāi)發(fā)人員在尋找更高的處理器性能和更高效的內(nèi)存周期(包括指令獲取),而開(kāi)發(fā)人員轉(zhuǎn)向更寬的位寬度(從8位到16位、32位到64位)。
圖3:處理器架構(gòu)(%受訪(fǎng)者)。
獨(dú)立處理器與多核設(shè)備
也許2010年最明顯的趨勢(shì)是從多處理器芯片到多核設(shè)備的設(shè)計(jì)縮減——從具有相同處理器的多個(gè)芯片到同質(zhì)的多核設(shè)備,或者從具有不同處理器的多個(gè)芯片到異構(gòu)多核設(shè)備(圖4)。
圖4:單個(gè)處理器芯片與多核處理器(受訪(fǎng)者百分比)。
處理器決策驅(qū)動(dòng)程序
二十年來(lái),驅(qū)動(dòng)處理器選擇的主要因素沒(méi)有改變(圖5)。軟件開(kāi)發(fā)工具的可用性仍然是首選。在面板上切換機(jī)器代碼并不是任何人認(rèn)為的好時(shí)機(jī)。有趣的是,自本世紀(jì)初以來(lái),對(duì)體系結(jié)構(gòu)的熟悉已經(jīng)失去了重要意義,而且成本和IO/外圍設(shè)備能力的重要性也在不斷下降。
圖5:處理器選擇因素(%受訪(fǎng)者)。
技術(shù)挑戰(zhàn)
最后,對(duì)于即將到來(lái)的重大技術(shù)挑戰(zhàn),人的看法發(fā)生了怎樣的變化?如果看看2009年和2019年調(diào)查中列出的前五大挑戰(zhàn),集成、代碼復(fù)雜性和軟件工具仍然是主要關(guān)注的問(wèn)題。有趣的是,在過(guò)去的十年里,人對(duì)開(kāi)發(fā)過(guò)程的擔(dān)憂(yōu)已經(jīng)消退,取而代之的是對(duì)低功耗和安全性的擔(dān)憂(yōu)。事實(shí)上,安全擔(dān)憂(yōu)的上升和為緩解威脅而采取的措施構(gòu)成了2019年調(diào)查的一大組成部分。2009年,只有3%的受訪(fǎng)者表示擔(dān)心安全問(wèn)題。如前所述,2009年和2019年在統(tǒng)計(jì)上類(lèi)似的低準(zhǔn)時(shí)率表明,2019年開(kāi)發(fā)過(guò)程中相對(duì)重要性的轉(zhuǎn)變與這方面的任何明顯成功關(guān)系不大,而更多的是與出現(xiàn)更多關(guān)鍵問(wèn)題有關(guān)。
圖6:最大的技術(shù)挑戰(zhàn)(%受訪(fǎng)者)。
那么這對(duì)2020年意味著什么呢?
可以從這些結(jié)果推斷出軟件開(kāi)發(fā)工具和代碼大小管理等問(wèn)題仍然很重要,處理器特性(如性能和外圍設(shè)備)的相對(duì)重要性將下降。另一方面,在2020年出現(xiàn)的一些新技術(shù),如無(wú)代碼開(kāi)發(fā)工具、量子計(jì)算和支持現(xiàn)場(chǎng)可訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型的人工智能核,似乎會(huì)導(dǎo)致設(shè)計(jì)挑戰(zhàn)的巨大轉(zhuǎn)變。但是會(huì)嗎?
嵌入式系統(tǒng)仍然需要工具來(lái)編寫(xiě)(或生成)代碼,對(duì)于更復(fù)雜的異構(gòu)多處理器硬件設(shè)計(jì),可能需要這樣做。這些設(shè)計(jì)仍然需要與物理世界接口,但接口的性質(zhì)可能會(huì)遠(yuǎn)離傳感器或協(xié)作對(duì)等設(shè)備的硬連線(xiàn)接口。對(duì)更多功能的需求將繼續(xù)上升,從而推動(dòng)對(duì)能夠運(yùn)行更復(fù)雜應(yīng)用程序的硬件的更高性能和增強(qiáng)功能的需求。最終,新十年的嵌入式系統(tǒng)設(shè)計(jì)仍然需要更有效地與數(shù)據(jù)源進(jìn)行接口,以最小的延遲執(zhí)行更復(fù)雜的代碼,并應(yīng)對(duì)更復(fù)雜的安全威脅,所有這些都需要消耗來(lái)自超低功率源的最小電流。可能會(huì)使用截然不同的方法,但目標(biāo)將保持不變。
總結(jié)
以上是生活随笔為你收集整理的嵌入式开发在过去20年中是如何演变的的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 混合装置实现了24/7的能量收集和储存
- 下一篇: 推理芯片的性能建立在优化的存储子系统设计