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