為了降低晶體管尺寸,提高性能,降低功耗和提供安全,芯片制造商越來越重視軟件建模。
回溯半導(dǎo)體產(chǎn)業(yè)軟件建模的演變,可以追溯到上世紀(jì)90年代的軟硬件聯(lián)合設(shè)計(jì),當(dāng)時的大型芯片制造商和系統(tǒng)公司采取了這種方案。尤其是隨著客戶對芯片需求的日益增加,這些日益復(fù)雜的SoC就必須內(nèi)置驅(qū)動和嵌入式代碼,引致軟件的流行。
而隨著晶體管尺寸的變小,帶來了芯片功耗和熱量的問題,除了大公司,很多小公司也開始將目光投向了半導(dǎo)體產(chǎn)業(yè)的軟件建模。
有幾個因素引致了技術(shù)“方程”的轉(zhuǎn)變:
(1)主流的工藝節(jié)點(diǎn)已經(jīng)集中在65nm以下,這就讓漏電電流成為產(chǎn)業(yè)關(guān)注的首要問題;
(2)越來越多依賴于電池供電的移動設(shè)備,讓芯片功耗成為關(guān)注重點(diǎn);
(3)很多芯片采用了異構(gòu)系統(tǒng)設(shè)計(jì),讓其整體的功耗預(yù)算比過往更緊張,而新時代的設(shè)備需要頻繁的與外界通信,傳輸數(shù)據(jù),這無疑加劇了功耗問題。
最初,我們解決問題的方式增加芯片的核心數(shù),但這會引致一個新的問題,那就是對大多數(shù)應(yīng)用來說,究竟多少個核心才是正確的選擇?在很多的應(yīng)用方案里,即使在現(xiàn)在強(qiáng)調(diào)多線程和并行計(jì)算的大潮流下,兩個或者四個核心是最優(yōu)的選擇。
從某個方面看,根據(jù)硬件內(nèi)部“交流”方式的不同,可以引致軟件的改變。例如可以在一個處理器周期內(nèi),通過軟件讓芯片執(zhí)行更多的工作。同時它也能有兩個核心,有可能多大八個核心。尤其當(dāng)其中的一些工作能夠被解析成不同的操作,這就方案就更有效了。
同時軟件還能提供更高的彈性和可靠性,在設(shè)計(jì)周期早期階段介入,給設(shè)計(jì)提供幫助,并在產(chǎn)品上市之前清理掉這些代碼,而不是通過通過后期添加補(bǔ)丁的方式實(shí)現(xiàn)。
Cadence的Frank Schirrmeister表示,軟件建模的目的是構(gòu)造軟件和硬件互相影響的新模式。例如包含了重組序列,減少緩存的重載。而這會對功耗造成很大的影響。
軟件建模也會對設(shè)計(jì)流程產(chǎn)生重要的影響。軟件的改善能夠影響芯片設(shè)計(jì)過程中的資源的選擇。這包括了存儲類型、處理器類型和硬件加速器。這種模型同樣能夠使得軟件和硬件之間的“交流”變得更加高效。
而根據(jù)eSilicon Mike Gianfagna的觀點(diǎn),當(dāng)中的關(guān)鍵就是系統(tǒng)級別的軟硬件平衡。
“功耗將會是大家持續(xù)關(guān)注的問題,他們在上面做了很多的分析和改變。而在關(guān)于軟件如何影響硬件上面,也有很多不同的做法和觀點(diǎn),所以說仿真在最近幾年才變得越來越重要?!盡ike接著說。
Mike認(rèn)為,這將會是非常有用的。
相比于過去,現(xiàn)在的“消防演習(xí)”將會越來越少,尤其是在大型設(shè)計(jì)里面,客戶的要求越來越復(fù)雜,且他們對于系統(tǒng)的需求也很具體,對于晶圓級別的功耗也有很明確的要求。這就推動了復(fù)雜的軟硬件聯(lián)合設(shè)計(jì)的發(fā)展。
對系統(tǒng)的重新思考
在這種軟件潮流背后,是一股轉(zhuǎn)向更多系統(tǒng)級設(shè)計(jì)的趨勢,而這種趨勢已經(jīng)在軟件和硬件領(lǐng)域持續(xù)已久。但在很多例子中,軟硬件的并向進(jìn)步比兩者的聯(lián)合解決更受歡迎。但物聯(lián)網(wǎng)的出現(xiàn),推動了新的轉(zhuǎn)變。
在物聯(lián)網(wǎng)中,由于大多數(shù)情況下資源都是有限的,同時對這些設(shè)備來說,cost down的需求是很重要的。解決這些問題的一個重要方式就是提供系統(tǒng)本身的效率,這樣就可以讓架構(gòu)師去設(shè)計(jì)更低成本的微處理器,轉(zhuǎn)變存儲的混合類型。
Mentor Graphics的Darrell Teegarden表示,這種轉(zhuǎn)來的不是說有更多更酷、更快的處理器,更重要的是這種方式對行業(yè)造成的影響。
現(xiàn)在有越來越多的高級別平臺,這些平臺通常都包括了計(jì)算硬件、傳感器、執(zhí)行硬件、控制傳感器和執(zhí)行器的軟件,平臺的戰(zhàn)爭也即將點(diǎn)燃。因此你需要對這些有一個大概的了解,為自己尋找最合適的解決方案。
Cadence的Schirrmeister也認(rèn)同這種觀點(diǎn)。他認(rèn)為這種方式對某些應(yīng)用來說非常有效。但對另一部分的應(yīng)用,這可能就沒那么強(qiáng)大了。假設(shè)你關(guān)注邊緣計(jì)算,這就需要一個軟件模型,一個營建模型,或者一個軟硬件結(jié)合的模型。
這種軟硬件模型的分析和探索已經(jīng)存在一段時間了,但直到最近才流行起來的。
“有很多公司已經(jīng)打造了應(yīng)用負(fù)載模式,利用其去實(shí)現(xiàn)應(yīng)用處理和通信需求”,Synopsys的Pat Sheridan說。當(dāng)中包含了相關(guān)性、每個任務(wù)有不同處理器的處理器周期,還有對不同區(qū)域的執(zhí)行讀或?qū)懙膬?nèi)存訪問等并行任務(wù)。
這類工具的一個好處就是它能夠提高抽象層的級別,這些的話在功能測試的時候就不需要針對軟件建模。當(dāng)中的關(guān)鍵就是能將應(yīng)用負(fù)載需求和resources分離開。你可以將任務(wù)映射到resources上,同時你也可以聯(lián)合不同的CPU和加速器。
物聯(lián)網(wǎng)和安防
工具供應(yīng)商表示,最初這些工具只是為移動市場準(zhǔn)備,現(xiàn)在他們開始將其推廣到其他市場,當(dāng)中包括了汽車、物聯(lián)網(wǎng)和服務(wù)器應(yīng)用。
特別是在物聯(lián)網(wǎng)領(lǐng)域,由于對安全有很高的需求,所以他們特別關(guān)注軟件建模。
現(xiàn)在的軟件涵蓋了高端到低端。而那些經(jīng)過驗(yàn)證的高端軟件開始逐漸“入侵”簡單的設(shè)備。 ARM的Bill Neifert說。在物聯(lián)網(wǎng)領(lǐng)域,這主要是安全驅(qū)動的。這些軟件能夠加強(qiáng)對攻擊的防御。
安全問題是全球IC設(shè)計(jì)者關(guān)注的問題,它能夠影響軟件的每個層級。例如在一個通信芯片里,包括整個通信棧、IP、I/O、硬件元器件,還有芯片內(nèi)外的存儲和總線,都會有可能面臨安全威脅。
安全和效率問題來到IoT上面,給開發(fā)者帶來的問題更多了。這就帶來了新一代MCU的設(shè)計(jì)。這些MCU能夠應(yīng)對多樣化設(shè)計(jì)產(chǎn)品的功能需求和成本壓力。
ARM的Neifert表示,在過去一年,MCU領(lǐng)域的軟件建模需求快速增長。由于功耗限制,你在設(shè)計(jì)芯片的時候?qū)PA有嚴(yán)格的需求,另外還要著重考慮安全問題。
當(dāng)然,關(guān)于軟件建模和硬件聯(lián)合設(shè)計(jì)能給設(shè)計(jì)帶來多大的效率提升這個問題,是沒有明確的答案的。三星在十幾年曾經(jīng)做過一個測試,測試結(jié)果顯示性能提升了50%。從三星當(dāng)時的報(bào)告開始,業(yè)界正在改變,但基本規(guī)則是不變,
而安全是方程式需要平衡的另一個方面。由于現(xiàn)在逐漸開始流行的智能汽車和健康醫(yī)療對安全有更高的需求,安全也逐漸被導(dǎo)進(jìn)到軟件建模里。
在汽車電子里,考慮安全的話,芯片的設(shè)計(jì)有時候會比較冗余,有時候會導(dǎo)致芯片的集成電路的設(shè)計(jì)規(guī)模大50%。再過去的話,你可能會做這樣的一個設(shè)計(jì)。但是現(xiàn)在,你需要確定你將要用哪一個版本的ASIL(汽車安全集成級別),再將其與性能、成本匹配,然后實(shí)現(xiàn)自己的目標(biāo)。
大數(shù)據(jù)中心和高性能計(jì)算
發(fā)展到現(xiàn)在,半導(dǎo)體軟件建模在大數(shù)據(jù)中心上起的作用也越來越重要。這主要是由需要在低功耗的情況下處理飛速增長的數(shù)據(jù)現(xiàn)狀密切相關(guān)。
Cadence的Schirrmeister表示,他們正在針對包括大數(shù)據(jù)在內(nèi)的某些特別任務(wù)做負(fù)載優(yōu)化,而硬件和軟件建模結(jié)合的模式很方便解決這個問題。
現(xiàn)在有很多人討論FPGA在大數(shù)據(jù)中心的應(yīng)用,因?yàn)樵谀抢铮浖陀布穆?lián)合設(shè)計(jì)并不需要預(yù)先集成到芯片里。你可以額外添加一個數(shù)據(jù)處理算法到硬件架構(gòu)里。當(dāng)然在存儲那邊,也有操作的空間,因?yàn)槟憧梢灾貥?gòu)存儲架構(gòu),改變數(shù)據(jù)出入的方式,這也可以稱之為軟件建模。
由于可以當(dāng)做一個定制的加速器平臺使用,F(xiàn)PGA近年來在大數(shù)據(jù)的應(yīng)用越來越廣泛。Rambus的Steven Woo說。FPGA的優(yōu)勢在于其有足夠大的內(nèi)存,其符合rack-scale架構(gòu)。
在大數(shù)據(jù)中心,需要很多服務(wù)器。傳統(tǒng)的配置會有CPU、I/O、硬盤和內(nèi)存,這樣會帶來很大的成本。但這些服務(wù)器的負(fù)載并沒有完美匹配,這樣就會造成低效率的影響。因此如果能夠完美匹配軟件和硬件,并在兩者之間做外媒的配置,那么大數(shù)據(jù)中心的效率就會顯著提高。這就解析了為什么谷歌和Facebook這樣的公司都在設(shè)計(jì)自己的硬件架構(gòu)。例如谷歌的TPU,F(xiàn)acebook的Open Compute Project。
總結(jié)
軟件和硬件的聯(lián)合設(shè)計(jì)在過去二十多年,一直是產(chǎn)業(yè)界關(guān)注的重點(diǎn)。從技術(shù)角度看,這種結(jié)合能夠帶來更好的性能提升,更低的功率損耗。但隨之而來也會帶來新的問題,那就是很難去衡量。
在很多的芯片公司,軟件工程師是遠(yuǎn)超過硬件工程師的,他們對于通過購買什么類型的工具去協(xié)助改善功耗、性能和成本有重點(diǎn)的關(guān)注和見解。
最終的目標(biāo)是降低時間和功耗。而最好的效果就是當(dāng)你從Fab里把硬件拿回來的時候,所有的驅(qū)動就已經(jīng)都內(nèi)置好了。所以說,軟件建模,機(jī)會來了。