新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 在SoC器件中如何平衡嵌入式軟件的關鍵作用?

        在SoC器件中如何平衡嵌入式軟件的關鍵作用?

        —— ——“SoC軟件應用討論會”精彩問答
        作者:Mentor,MIPS,Tensilica,Wipro 時間:2007-12-04 來源:電子產品世界 收藏

        嵌入式系統開發主要有板級、芯片級與臺式機三大領域。在本???,主要探討了應用MCU、微處理器、DSP進行板級開發的工具。但是在美國,嵌入式開發主要指芯片級的SoC(系統芯片)。
        在本刊7月期108~110頁上,曾介紹了美國“2007電子高峰會議”上的“SoC軟件設計討論會”。在此報道的基礎上,這里薈萃了會上的部分精彩問答。

        會場:從左至右代表來自:Mentor,MIPS,Tensilica,Wipro
        會議舉辦地——美國加州Monterey風景

        多核環境vs并行化

          主持人:Gartner的John Barber:對于那些利用了并行化的架構的設計,多核環境構成了一大挑戰。如果我們能克服這一挑戰,Tensilica的多核推想就可能成真?
          Tensilica - Steve Roddy:我認為關鍵在于我們整個行業嘗試并應用通用型計算的架構,還是去應用更適合于嵌入式計算的技術。我曾經對兩種情況進行了比較:分別將一個嵌入了Pentium內核的器件和一個嵌入式設計提交流片前的對比。嵌入式設計利用了如下的優勢,即功能度可以劃分為獨立的小系統,并在獨立的模塊中實現,從而能實現優化的功能度。過往,這些都是硬件上的模塊,你在通用型的主控上有軟件API(應用程序接口),讓編程者訪問這些硬件上存在的資源。如果你嘗試過一個20~30萬門陣列模塊,這是一種很正常的設計風格。正是因為這些模塊可能恰好是處理器,用處理器進行設計將具有更高的效率,而且用處理器進行設計將更寬容一些,你如果以處理器作為設計的基礎引擎的話,則在交付流片后還可以對其進行重新編程。你有更多的處理器,也不必改變使用的模式,并不意味著你現在要面對另外的15個處理器,而你必須了解另外15種可編程設計。如果你給編程者所提供的是定義良好的API,以便訪問內核-內核的資源。一般的編程者都可以輕松地應對這樣的編程任務,只有SoC設計者需要知道某個模塊是處理器,了解并行化軟件的內核是如何運作的。
          Wipro - Siby Abraham:我與你們的看法有一點不同。如今,談到工程,為了利用好多核架構,你必須擁有編譯器、編程語言。隨著你進入更高性能水平,這些工具顯得更為重要。在功能被清晰劃分的地方,我同意你們的看法。但是,我們越來越多地看到,應用中所采用的處理器數量增長很快,而性能如何提高也將成問題。
          Tensilica – Steve:隨著時間的推移,軟件的工作變得愈來愈重要。那些目前業界的標準化組織正在著手進行標準的制定,多核組織已經建立了一個工作組,著手制定關于API的標準,使之能根據多核的特點來分配workload。隨著時間的推移,人們必須推出基礎架構,使開發者不必去面對多核帶來的復雜性,不必讓一個半導體公司的客戶、軟件工程師,打開說明書去查清其芯片架構的每一個細節,我們不能強迫每個工程師去了解清楚芯片上的每一個細節。
          MIPS科技 - Jack Browne:我認為,如果你考察器件的復雜性,130nm的SoC上市前成本是1300~1500萬美元;90nm時,成本是3000萬美元。人們推出了ASSP,他們不是針對某個具體問題進行定制的ASIC。在今天的65nm和45nm節點上,人們的設計方法是大量地復用。所以80%的設計是復用的。我們需要API來推進這些開發工作,我們可以劃分各種東西,劃分音頻Codec(編/解碼器),此后,我可以將其放到任何一個設計中。但是,除了API,還應該有一個平臺化的架構,以便保證你的上市時間。
          為了實現這一點,我們需要廠商能提供電子系統級的模型,這樣軟件人員不用去讀說明書。只要有一張CD,上面有可執行的芯片模型,它的運行速度足夠快。所以,你能夠實現你的應用。于是,當芯片被取回來時,你就有相應的軟件了。你可以解決芯片上存在的缺陷。而你可以實現相應的并行化,讓芯片上的各個部分能工作。

        代碼編寫人力不足?

          問:的代碼的行數每年以46%的速度增長。而編寫代碼所動用的人力,則以7.5%的年均增長率成長。你看,這里的障礙在于人力的缺乏。

        {{分頁}}
          MIPS – Jack:人們解決這個問題的方式,同樣是復用。每一件產品不能從一張白紙起步——公司采取這種策略的話,就會倒閉。你必須推出相互間有繼承性的產品線。一個好的例子就是802.11。它最早是以小帶寬的b開始的,而g則成為主流,而去年圣誕節,802.11n也降低到了100美元的價位,達到了消費類的空間。軟件也是這樣運作的。復雜性在于,你必須讓數據包能四處移動,而且讓吞吐率提高2個數量級。如果你第一個軟件行不通的話,你在開發第二款產品時就必須重新編寫,而這樣的公司是沒法生存的。我們這個行業對于那些策略上犯錯誤的公司是很殘酷的。
          Mentor – Bill Chown:我繼續擴展這個話題,80%的程序是復用的。但是并不是每個軟件都有那么高的復用率。隨著軟件的開發,越來越多的軟件形成了軟件包、軟件棧,從而能被方便地復用。因此,并不需要人力也增長46%來解決這個問題。我發現復用的一個問題是,我的手機包含了手機廠商從1990年以來編寫的所有軟件——這里面實在有些是垃圾。

          問:軟件46%的增長速度與人力7.5%的增長速度間的差距將會逐年增大,你們最終會遇到人力方面的問題?
          Mentor – Bill:我們會發現類似的情況曾經發生過,在硬件空間中,如今的自動化技術已經無法進一步產生動力了。我們就必須引入新的人力,以便在硬件上能進一步提升其層次。看看軟件領域,頭號的軟件工具是什么?是VI。VI中不是全套的自動化工具,它的自動化是在不斷提升的,當然不一定與你提到的人力的增長速度同步。它的發展速度當然與軟件代碼的行數的增加是一致的。在軟件空間中,自動化是一個非常開放的領域,作為我們這樣的自動化廠商來說,軟件業已經習慣了VI的價格,試圖說服他們,自動化的價格與VI的價格不太一樣,將是一項有趣的挑戰。
          Tensilica - Steve:正如Bill提到的那樣,也許現在復用是過多了,這會影響到用戶的體驗。

        協議棧已成熟?

          問:當Jack提及802.11時,實際上談論的是兩種不同的軟件。他所說的是協議棧,與Paul實際談到的軟件是不一樣的。這個說法對嗎?協議?,F在是一個比較成熟的技術了。
          MIPS – Jack:隨著程序的行數,例如電視的操作系統軟件從100萬行程序進步到300~800萬行,我再添加50萬行,就可以形成相應的環境中間件,則我一旦編寫完一套軟件包,就可以在其他任何地方使用。你應該看到的挑戰是——上市的時間。設計工程師們要完成足夠好的設計。我進行的設計滿足了客戶的需求,而Steve所做的設計超出了用戶的需求,其設計開銷也是我的2倍,而且所花的時間更長,則在市場上我將會取勝。我經常遇到同行談技術上挑戰的困惑:我的設計更好,但為什么我的競爭對手能賣出去,而我卻不能?當設計足夠好的時候,客戶就愿意為任何別的東西付錢。這就是為什么以前人們為了努力將程序縮小20%而付錢的時代早已一去不復返的原因,因為內存已經很便宜了。我在買新手機時,只要花20美元就可以買到一張1GB的內存卡。

        低功耗標準化

          問:軟件對于SoC的低功耗來說已經成為一個關鍵性的因素?,F在低功耗的標準化吸引了人們的密切關注,幾家組織已經希望我們能在不久的將來制定出大家都同意的標準。
          MIPS – Jack:影響功耗的問題有兩個:一是泄漏,為了保證晶體管的速度,現在的柵疊層只有3個分子厚。芯片上一半的功耗都可歸結為漏電?,F在有許多制造方面的信息,用于解決漏電問題。另一方面,是多核和單核之間的差別。一個雙倍頻運行的處理器內核,其功耗將低于多個以一半的頻率運行的內核的總功耗。如果你能把任務分解為若干部分,我可以在多個內核上分配這些任務,我可以關閉其中的若干個內核 。我的手機可以通過802.11網絡來實現,我不需要開啟GSM無線部分。這些系統的定義都可以由客戶通過OEM(委托制造)來完成。你可以看到許多其他的重點,可以是標準化,等等。我們之所以從事這些工作,其原因就是設法賺錢。客戶可不愿意付錢,但他們的確需要解決方案。隨著時間飛輪的轉動,我想,我們今天卻沒有我們所需要的吸引力。
          Tensilica – Steve:我認為要降低功耗,現在的層的劃分太過于分明。在EDA界對共用的流程的討論,通過信息的交換,一個針對具體架構的設計實現,可以快速優化,以便實現功耗的降低,但是在架構層次上實現,這里是實現大幅度節能的地方,無論他是像Jack所說的那樣,可以把任務分配給多個更小的處理器,并針對特定的功能對處理器進行任何優化,我們對數據流的架構進行設計,提供ESL層次的建模,如果你灌入總線的數據太多,而且影響到了速度,這就也許在不同的模塊間實現直接連接。通過硬件和軟件方面的建模而實現更高層次上的建模,則可以實現極大的節約,并了解你的架構選擇的影響,以及它是否合適。

        互操作和可移植的標準化

          問:如何看待開放標準架構的發展潮流,因為這實現了系統間的互操作性,尤其在嵌入式系統間的互操作性和可移植性方面?

        {{分頁}}
          Tensilica – Steve:這的確是開放式架構的事,這又回到了并行化的問題?;ゲ僮餍哉嬲鹱饔玫牡胤?,趨向于我們首先要解決的部分,互操作性在實踐中突出的地方,是我們的具體應用間的通信機制,而不是這些應用間的互作用機制,完全在系統層次上。是否要實現某種程度上的互操作,不妨去看看流程流向哪里。
          MIPS – Jack:另一個推動互操作性發展的動力是如下的事實:軟件的品質要達到可以投產的程度。一旦我擁有802.11解決方案,所有的協議都已經解決。我經過驗證,證明其不會丟失包,或者失去對某些包的存儲。這就是我們的下一件產品努力的對象。我要在我的膝上機上裝上無線LAN,我希望我的手機裝上無線LAN,我希望我的照相機也裝上無線LAN。但是一天結束時,我不用為多出來的價值而付費。所以我希望軟件能夠工作,我并不太在乎它有點過大。因為我面臨的挑戰,是保證推向市場的產品能像我所宣稱的那樣工作。
          如果我有高品質的代碼,我就可以更快地上市。那就是業界的情況,因為人們所使用的這些裝置是可以互操作的,知道它們能正常工作。在座的人有多少向自己的PC上下載過東西?當你直接下載到硬件上時,會導致其他部分的崩潰。當我們不能提供相應的性能時,就設法繞開它,這就違反了規則。系統已經變得如此復雜,以至于你必須進行有序的設計,因此人人都必須遵守規則。

        軟件適配器

          問:關于軟件的復用性。Siby說,軟件對于性能、內存占用、功耗、效率、對駭客的抵御能力和可視化來說,應該負更多的責任。最終則還是要依賴于硬件來實現。那么,如果你不斷改動模塊的架構,并改變相應的硬件,那么你如何保證軟件的復用性?
          MIPS - Jack:我們必須有一個軟件適配層。也就是說,我可以改變USB端口。我在這個產品上沒有USB,而在其他產品上有5個,最終使軟件并不會在意,因為它是在平臺上運行的。

        問:通過適配層能否改動軟件的架構?
          MIPS – Jack:是的,你所希望做到的是,建立若干個出色的孤島,而我不希望過問這些島的互操作性,我不希望過問芯片上的多個處理器。你不用過問芯片本身,不用過問操作系統,不用去管編程手冊。這些島都極為出色,是供應鏈上的頂級廠商所開發的。我們的最佳的產品將通過把這些串聯起來而形成產品,將其推向產品,而且能工作。所以,它們是獨立的,但人們必須遵循某種規則,他們必須能信任對方——這些產品是可用的。
          Wipro - Siby:我們必然看到軟件的復用越來越多,而且我們會看到還會推出具有鮮明特色的軟件,體現在硬件架構上。
          Tensilica – Steve:我認為達到那一點的途徑是找出哪里放置抽象層才具有意義。而對那一點進行標準化,的確能提供互操作性。形成先進的功能劃分,并保證其性能模塊間的互操作性,對其進行優化,重新設定其架構,或者任何其他的工作,使之能更好地完成其工作,而不必擔心它與系統的其他部分的互操作能力如何。因為你已經從這件任務中解放出來。復用本身并不能實現復用。

        自動代碼生成器

          問:從汽車電子應用的角度來看,自動代碼生成器一直得到廣泛的應用。它有可能成為未來的解決方案嗎?
          MIPS – Jack:我想,汽車業追求的一點是駕乘的完美性。在某些汽車上,裝備了100多個處理器。而有些汽車所能用到的處理器更少,這是因為人機接口的應用很糟糕。因此客戶無法在對汽車進行保養后,通過原先的編程來將座椅回復原位。現在是有很多變革,但人們必須在編程語言的層次上開展工作,而我們現在還找不出產出率比C++更高的編程語言。我認為那就是挑戰的一部分。
          Mentor – Bill:但我的確看到汽車工業是一個高度講求安全性、品質的行業。新一代代碼的推出也必須滿足法規和標準,而且通過采用這些條文的運用來進行修正。汽車、醫療等行業都要按規章來實行,并通過長時間的執行來獲得專業水準,這樣才能承擔任務。因此這些規則將逐步轉化成標準和法規。汽車電子業推出了許多標準。而在各個模塊間實現標準化的時候,代碼生成器才能真正得到應用。但它也會限制革新。

          問:在Bosch,80%的代碼是由代碼生成器生成的。
          Mentor – Bill:我的確看到了很多這些例子。有趣的一點是,在20%的軟件上仍然能夠實現鮮明特色。

        產業斷層

          問:我看到了現在有這么多的架構和產品,人們使用了大量的IP內核、IP處理器,而從架構的角度來看,你所看到的架構隨著應用的不同而有較大的差異。在10多年內,這會導致大兼并嗎?這個會不會導致專業的分化,于是會出現大的公司,而且出現一些從軟件上支持他們的、專業化的小公司?
          MIPS – Jack:我在參加一個EDA會議時,一家小公司曾問了同樣的問題。半導體業和電子業是存在斷層的行業,它們是由一批獨立的公司來領導的。但是同時,為了獲得最大收入,你必須遵守一些規則,但是如果我的軟件1990年有這些軟件的話,因為我用的是Nokia,但是,我買了個新手機后,我所得到的是一張白紙,不用再忍受20年前的程序中的那些錯誤。獨立的空間是有的。當新產品和新標準推出后,你會感到斷層,要考慮如何得到足夠的批量,以保證商業模式的可行性。這也就是適者生存,我們希望存在競爭的原因。


        (迎九根據此次會議的錄音整理)



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 常德市| 科技| 海伦市| 应城市| 东宁县| 夏河县| 福清市| 松潘县| 钦州市| 津市市| 东阳市| 英吉沙县| 大港区| 威远县| 固镇县| 肃宁县| 郁南县| 准格尔旗| 鸡西市| 庆阳市| 桦川县| 三台县| 克什克腾旗| 宝鸡市| 阿拉善右旗| 荔浦县| 额敏县| 辽阳县| 将乐县| 临沂市| 伊川县| 无棣县| 福贡县| 营山县| 北流市| 黄山市| 壶关县| 谢通门县| 天祝| 大关县| 衡阳市|