當(dāng)主控芯片架構(gòu)不斷變化時(shí),系統(tǒng)研發(fā)團(tuán)隊(duì)真正需要什么樣的開發(fā)平臺(tái)?
摘要:在開發(fā)新一代嵌入式系統(tǒng)時(shí),越來越多的主控系統(tǒng)級(jí)芯片(SoC)正在從單一內(nèi)核轉(zhuǎn)向多內(nèi)核與異構(gòu)架構(gòu),這促使系統(tǒng)研發(fā)工程師更希望得到一個(gè)能“覆蓋快速變化”的統(tǒng)一開發(fā)平臺(tái)。工欲善其事必先利其器,系統(tǒng)開發(fā)的新挑戰(zhàn)正在迫使研發(fā)團(tuán)隊(duì)重新思考工具的能力、形態(tài)和管理,因?yàn)檫@本質(zhì)上也是研發(fā)效率的一部分。這些挑戰(zhàn)也傳導(dǎo)到領(lǐng)先的開發(fā)工具廠商,并推動(dòng)其一方面持續(xù)提升開發(fā)平臺(tái)的功能和性能,另一方面其商業(yè)模式也開始從“一次性買斷”轉(zhuǎn)向持續(xù)的創(chuàng)新支撐服務(wù),從而最終讓開發(fā)工具成為研發(fā)團(tuán)隊(duì)可以持續(xù)依賴的“定海神針”。
嵌入式系統(tǒng)領(lǐng)域內(nèi)的競(jìng)爭(zhēng)正在變得日趨激烈,一方面各種新的控制器、處理器和加速器被集成到主控SoC中,另一方面客戶需要研發(fā)團(tuán)隊(duì)能夠更加敏捷地協(xié)助他們?nèi)ラ_發(fā)新功能和充分發(fā)揮主控性能,第三是終端市場(chǎng)的生態(tài)化運(yùn)作使相同的功能需要被用于諸如家居、汽車和穿戴等多種功能安全環(huán)境及不同功耗等制約場(chǎng)景。這些要求對(duì)研發(fā)人員來說,除了找到合適的主控芯片,開發(fā)工具是否好用、是否穩(wěn)定、是否能跟得上芯片變化,也成為了最現(xiàn)實(shí)的問題,也是真正影響項(xiàng)目進(jìn)度的關(guān)鍵。過去幾年,嵌入式研發(fā)人員面對(duì)的最大變化之一,就是芯片架構(gòu)和系統(tǒng)復(fù)雜度的快速演進(jìn)。
從單一內(nèi)核,到多內(nèi)核與異構(gòu)系統(tǒng)成為常態(tài)
以往項(xiàng)目的開發(fā)場(chǎng)景相對(duì)簡(jiǎn)單:一個(gè)MCU、一個(gè)內(nèi)核、一套工具鏈,問題基本都發(fā)生在此范圍內(nèi)。但今天的情況已經(jīng)明顯不同:
· Arm仍然廣泛存在,并持續(xù)演進(jìn)高端系列
· RISC-V正在快速進(jìn)入主流芯片路線
· 部分廠商仍在使用或擴(kuò)展自有內(nèi)核
· 多核、甚至異構(gòu)多核架構(gòu)越來越常見
在一顆SoC芯片中,同時(shí)存在不同類型內(nèi)核、不同軟件子系統(tǒng),已經(jīng)不再是少數(shù)高端產(chǎn)品的特例,而正在成為越來越多項(xiàng)目的現(xiàn)實(shí)需求。對(duì)于研發(fā)人員來說,軟件復(fù)雜度的提升速度,遠(yuǎn)遠(yuǎn)快于傳統(tǒng)單核項(xiàng)目復(fù)雜度的增長(zhǎng)速度。
當(dāng)系統(tǒng)進(jìn)入多核或異構(gòu)架構(gòu)后,問題往往不再是“代碼能不能跑”,而是:
· 不同內(nèi)核之間如何協(xié)同開發(fā)
· 不同軟件模塊如何并行調(diào)試
· 問題到底出在哪里
· 性能、實(shí)時(shí)性和穩(wěn)定性如何同時(shí)滿足
如果開發(fā)團(tuán)隊(duì)需要為不同內(nèi)核分別使用不同工具鏈,實(shí)際體驗(yàn)往往是:
· 工具切換頻繁,開發(fā)效率下降
· 調(diào)試方式不一致,問題定位成本上升
· 系統(tǒng)集成階段風(fēng)險(xiǎn)顯著增加
因此,隨著芯片復(fù)雜度的提升,開發(fā)平臺(tái)本身的統(tǒng)一性和系統(tǒng)級(jí)能力,和編譯性能同樣重要。
研發(fā)人員更希望的是:一個(gè)能“覆蓋變化”的統(tǒng)一平臺(tái)
站在研發(fā)人員的角度,理想的開發(fā)平臺(tái)應(yīng)該具備幾個(gè)特征:
· 不依賴于單一內(nèi)核或單一芯片選擇
· 能夠在同一環(huán)境中支持多種內(nèi)核架構(gòu)
· 在架構(gòu)升級(jí)或芯片切換時(shí),盡量減少額外學(xué)習(xí)和遷移成本
IAR平臺(tái)正是基于這樣的研發(fā)需求進(jìn)行設(shè)計(jì)。通過統(tǒng)一的開發(fā)環(huán)境,研發(fā)人員可以在同一套工具體系下,完成不同內(nèi)核的開發(fā)、編譯、調(diào)試和分析工作,而不必隨著芯片變化頻繁更換工具鏈。這種一致性,在多核和異構(gòu)系統(tǒng)開發(fā)中尤為重要。當(dāng)系統(tǒng)規(guī)模擴(kuò)大、復(fù)雜度提升時(shí),研發(fā)仍然能夠掌控軟件行為,而不是被未知的工具問題牽著走。
工具管理,本質(zhì)上也是研發(fā)效率的一部分
很多研發(fā)人員都經(jīng)歷過:項(xiàng)目進(jìn)行到一半,突然發(fā)現(xiàn)某個(gè)工具版本不一致、某個(gè)授權(quán)不夠用,甚至不清楚當(dāng)前項(xiàng)目到底“該用哪一套工具”。當(dāng)授權(quán)類型復(fù)雜、工具體系分散時(shí),這些問題幾乎不可避免。
這些開發(fā)過程中的痛點(diǎn)也傳導(dǎo)給了領(lǐng)先的開發(fā)工具提供商,也迫使他們?nèi)タ焖夙憫?yīng)研發(fā)人員的需求,以新的工具產(chǎn)品形態(tài)和服務(wù)模式讓其客戶實(shí)現(xiàn)投資收益和開發(fā)效率的最大化,開發(fā)工具平臺(tái)化成為了領(lǐng)先嵌入式開發(fā)團(tuán)隊(duì)與工具提供商最新的協(xié)同方式。以領(lǐng)先的嵌入式開發(fā)工具提供商IAR為例,通過平臺(tái)化的方式,該公司將其開發(fā)工具的使用和管理進(jìn)行了簡(jiǎn)化,讓研發(fā)人員不必頻繁關(guān)注工具本身,而是將注意力集中在軟件開發(fā)與問題解決上。
為什么開發(fā)平臺(tái)需要持續(xù)演進(jìn),而不是“一次性買斷”
從研發(fā)人員視角來看,開發(fā)工具并不是一次性投入,而是伴隨芯片和軟件長(zhǎng)期演進(jìn)的基礎(chǔ)設(shè)施。芯片在變,內(nèi)核在升級(jí),多核和異構(gòu)設(shè)計(jì)不斷出現(xiàn),應(yīng)用場(chǎng)景也在推陳出新,如果工具無(wú)法同步演進(jìn),研發(fā)團(tuán)隊(duì)最終仍然需要為新需求引入新的工具體系。這不僅消耗了嵌入式系統(tǒng)廠商的經(jīng)濟(jì)資源,而且開發(fā)團(tuán)隊(duì)還需要投入大量的精力去尋找、評(píng)估、學(xué)習(xí)和用好僅能在一個(gè)階段解決特定問題的工具,或者深陷開源工具或者廠商工具集成到整個(gè)開發(fā)環(huán)境的事務(wù)性工作中。
IAR通過平臺(tái)化的交付方式,將對(duì)主流內(nèi)核的支持、工具能力的演進(jìn)以及未來架構(gòu)的適配,統(tǒng)一在同一體系中。對(duì)研發(fā)人員而言,可以在不確定的技術(shù)環(huán)境中,保持相對(duì)穩(wěn)定的開發(fā)體驗(yàn):
· 不必為每一次芯片變化重新更換工具
· 不必為不同內(nèi)核反復(fù)學(xué)習(xí)不同開發(fā)環(huán)境
· 可以在同一平臺(tái)上,持續(xù)應(yīng)對(duì)未來的不確定性
寫在最后:讓工具成為研發(fā)的“定海神針”
在嵌入式開發(fā)中,芯片和架構(gòu)的變化往往不可避免。真正可控的,是研發(fā)團(tuán)隊(duì)選擇什么樣的開發(fā)平臺(tái)作為其長(zhǎng)期基礎(chǔ)。一個(gè)能夠覆蓋多內(nèi)核、適配復(fù)雜系統(tǒng)、并持續(xù)演進(jìn)的平臺(tái),可以讓研發(fā)團(tuán)隊(duì)在面對(duì)變化時(shí)更加從容。





