如何利用嵌入式軟件設計SoC
美國Globalpress公司舉辦的2007電子高峰會議上,舉辦了一場SoC(系統芯片)的專題討論會:設計師如何利用嵌入式軟件作為SoC器件設計的關鍵。會議上的專家各抒己見。
完整方案比單個硬件重要
主持人: Gartner公司的高級分析師John Barber
軟件在嵌入式產品中的份量越來越重。自2000年來,價值觀念發生了巨大的變化,2000年以前,主張是器件,即讓我們的器件與競爭對手的性能、品質進行對比具有優勢,這就是那時形成鮮明特色的關鍵。現今,制造商和客戶需要的是解決方案,而不僅僅是器件。我的價值主張,我的鮮明特色,必須是完整的解決方案,包括與硬件一塊推出的可以立即投入大批量制造的軟件棧。
硬件與軟件將設法整合到單個流程
Mentor Graphics系統級設計總監Bill Chown
我們過去所從事的是硬件設計,現在則還需要輔以軟件應用方面的大量工作。但這兩者的“婚姻”卻并不幸福。在兩者之間,我們需要填補在基礎架構方面的鴻溝,如今的硬件不是從頭設計的,需要進行基礎架構的復用。需要復用的包括處理單元、內存、接口器件... ...許多基礎設計事先已經被人們所了解、得到了分析和預先進行了配置。我們需要把它插入到系統中,提供針對硬件的軟件能力,以及針對具體應用的軟件能力。在用戶對硬件和應用軟件的使用目標的這兩個空間之間,我們必須確保能讓他們尋求到與他們的具體需求相應的問題所在,但是最大限度減小他們花在兩個空間之間的工作量。
EDA代表電子設計自動化,但我們有時候會迷失,而忘卻了“自動化”一詞正是我們在這個空間中應該完成的工作。我們應該回顧在這個流程中應該實現自動化的對象是什么?那并不僅僅意味著工具的改進,而且意味著我們能通過標準化來簡化問題。
總結一下,我們能讓人們去做的事情,是從一個在系統空間中的概念設計,一直到完成整個流程。概念設計上的革新是關鍵,我們需要靈活多樣;隨著設計的進行,我們需要嘗試不同的解決方案。如果我不知道我在做什么,就無法去嘗試替代方案。所以良好的分析將告訴我,我所做的工作將會把我帶向何方。這些不同的任務中的每一項,都對應著每一個團隊所從事的領域。因此,這是一個復雜的世界,但我們將設法將其整合到一起。在實現整合的過程中,我們應該能加速、改動,并將來自于不同領域的軟件與硬件、系統與驗證集成到單個流程中。
軟件的關鍵作用是保證批量
MIPS Technologies公司市場行銷副總裁Jack Browne
在SoC設計時,我們所面臨的挑戰是多方面的。首先我們希望能向市場上推出種類多樣的產品。以MIPS公司為例,有3種不同的微架構系列,10種不同的處理器內核。我們必須具有某種能讓我們能投入制造的業務模式,因為本公司的業務模式是基于IP(知識產權)使用費的,我們的年收入的一半來自于授權和版權使用費。客戶的產品要達到制造批量,交貨則需要3~4年;他們拿到所設計出的芯片,要2年,然后他們再讓OEM來設計出系統,而這又要花上2年。所以,該供應鏈有一個問題:如果我的收入嚴格取決于制造批量,你應該如何來支付這些開發的費用?費用的支付要延后4年,財經界是不能容忍戰略性項目上的虧損的,你必須展示出業務的良好性。
另外一個挑戰是,你希望進入不同的、類型各異的市場。其中每個市場的成功的臨界數量(客戶數量)是不同的。同時你還必須支持不同的OS(操作系統)。你必須有解決所有這些問題的方案。我們的做法是,承認人們有一個平臺。軟件,無論是Linux還是其他的實時操作系統,一直到應用層次。我們所追求的關鍵一點,是使用硬件抽象層。從根本上來說,如果我有兩家不同的客戶,他們決定購買不同的套裝,或者甚至不同的USB控制器,則通過硬件抽象層,如你的PC中的BIOS,我可以實現不同的偏好,而不用移植操作系統。
你去考察供應鏈上的不同玩家的商業模式的話,就會發現,將操作系統移植到另一個硬件平臺上的工作并不能提供多少余地。如果你所選擇的應用不對路的化,則很難實現足夠的產量。如果你考察如今的標準數字電視的話,就會發現其中有些采用了300萬行的軟件。而你將看到2年后的HDTV將采用500萬行的軟件,而且其中有16個處理器,用于處理不同的任務。
所以軟件的關鍵作用就是保證批量。如何找到一個合理的財經運作模式,是EDA、IP公司、半導體公司、軟件公司共同努力解決的挑戰。
多處理器的軟件設計法
Tensilica公司市場行銷副總裁Steve Roddy
軟件的重要性到底有多高?有人認為市場規模尚小,有些人認為它很重要,另一些人則主張我們處在一個臨界階段,許多軟件都實現了移植。
3種觀點也許都是正確的,具體取決于其市場。但我想退一步思考一下處理器也許倒也無妨。一個有趣的問題是,如今和未來的應用應該需要多少個處理器?這里借用ITRS(國際半導體技術發展路線圖),來展示在每個工藝節點對應著的、每個SoC上平均使用的處理器的數量(圖2)。當前,ITRS宣稱每個SoC上平均有32個可編程器件。我們知道,有些可能數量會多些,有些則少些。Tensilica與Cisco合作,推出了基于130nm節點的、采用192個處理器的設計。所以處理器的數量會出現迅速增長。而軟件正是在此之上運行的。
圖2 2005 IRTS MPSoC 發展圖可看出,多核設計時代來到了
是的,軟件的復雜程度和架構的復雜程度都正在增加。即便處理器的數量在增長,它們并不全都一模一樣。這些器件上將出現多樣化的處理器。
關于嵌入式的設計,很明顯的一點是,軟件的形式必然迥異于普通的通用型軟件。事實上,嵌入式世界迥異于與通用型軟件世界。在通用型應用的世界中,如Intel和AMD,在處理器上運行的軟件在器件開始推出時尚不為人所知。因此一般采用通用型的計算,對于通用型的計算,人們采用通用的SMP Die Bucket 架構。在嵌入式世界中,如果你設計用于路由器的芯片的話,它就是供路由器專用的。優點就在于你知道器件的用途,所以其設計會針對具體應用進行優化,讓人們能利用專用的處理器,如可重構的和可擴展的處理器,以節省面積、成本和功耗。因此兩者的設計之道大相徑庭。擁有許多可重編程的處理器,并不意味著你有一個全新的世界。系統架構和硬件架構研發者努力解決這個問題已經有幾十年了。他們將其稱為SoC,現在人們以處理器為單位進行設計,而不是硬件模塊,他們在系統中引入了許多軟件的東西。但這并不意味著在設計這些東西的方式上會遇到什么危機。
設計這些系統的風格,仍然具有一個SoC只有一個處理器的年代的SoC設計、架構所具備的那種多樣性。你可以讓處理器間具有一個看起來非常傳統的聯系,采用SMP通用型架構,你可以讓處理器之間根據具體應用來建立互動關系,你可以在處理器間建立硬件風格的數據流。事實上,某些處理器甚至根本都不清楚芯片上有其他處理器的存在。這些東西的實現有多種多樣的途徑,成功的關鍵是功能劃分,人們可以在功能模塊中放入標準、API,事實上,在這些系統上運行的軟件,可以造成復雜性極大增長,而我們在實現上仍然感受不到危機的存在,通過功能劃分,經過優化的處理器、經過優化的API將通用型的程序與軟件的所有復雜性隔離開來。
圖3 隨著處理器復雜度上升軟件比例上升
設計者完全可以利用直截了當的設計方法來掌握如此復雜的,設計數百萬行程序的軟件工作。
軟件發揮至關重要的作用
Wipro公司半導體/消費事業單位副總裁Siby Abraham
今天,推動半導體業發展的仍然是摩爾定律。對我來說,在設計中如何放入更多的邏輯、在一定的芯片面積上能放入多少個晶體管這一問題所帶來的痛苦和挑戰—這是技術經理和工程師們關心的問題,倒還比不上呈指數化增長的IC設計成本。源程序的復雜性的日益增長,而成本的上漲幅度超過了硬件的。
如今,邏輯電路的80%都被復用。這意味著SoC上只有20%的邏輯是用來體現其不同之處的。這也就是利用軟件來實現SoC鮮明特色的地方。我們所看到的趨勢是,根據我們過去4年所從事的項目,我們在軟件和半導體業摸爬滾打了多年,SoC的未來在于多核架構方面的改進,而這正是軟件發揮其效用的地方。
如今,我們的軟件還不能有效而自然地利用好多架構帶來的優勢。挑戰在于,軟件工程師如何能利用眾多核架構帶來的優點。我們已經看到了在SoC中對軟件的多方面的應用。軟件的挑戰,可以認為與硬件工程師們所面臨的挑戰是一樣的。
我們今天所看到的更重要的一點是,現在需要那些不僅僅把自己劃入硬件工程師或軟件工程師等類別的工程師們,他們了解更多的專業,從而能利用眾多領域的知識。我們看到一個大挑戰,有的客戶要求在產品供貨時就能提供軟件。
我們所看到的技術上的挑戰,價格、性能、功耗,而如今軟件團隊也將承擔相應的責任。如果沒有可調試性,硬件團隊將困難重重。
注1:關于此次討論的詳細報道及記者問答,將刊登在10月出版的專刊—《嵌入式系統開發》上;
注2:迎九根據此次會議的錄音整理
評論