新聞中心

XMOS重新定義晶圓

——
作者:Tom R. Halfhill 時間:2007-11-10 來源:電子產(chǎn)品世界 收藏

  初創(chuàng)企業(yè)尋求更新半導(dǎo)體技術(shù)與工藝的努力從未中斷。當(dāng)然,傳統(tǒng)器件的缺點眾所周知,ASIC 的開發(fā)昂貴,費時,并且風(fēng)險大;ASSP接近大眾,但是很難做到器件的差異化;FPGA大量購買十分昂貴,并且編程十分困難。

  XMOS Semiconductor,一家位于英國Bristol成立兩年的無晶圓半導(dǎo)體公司, 正努力推動一種名為“軟件定義晶圓”的新技術(shù)。在這種技術(shù)中,通用嵌入處理器核的多核陣列采用硬件多線程在嚴(yán)格實時限制下運行控制軟件及應(yīng)用軟件。同時,另有單獨的線程驅(qū)動芯片引腳仿真所要求I/O接口(以太網(wǎng),USB,UART, I2C 等)。這種多核集成,多線程確定性,和軟件定義I/O的組合使通用微處理器可執(zhí)行SoC功能,但是沒有定制的加速軟件或?qū)俚腎/O控制器。

  “軟件定義晶圓”的基本概念并不是新的。幾年前,Ubicom(硅谷一家小公司)推出的芯片采用確定性硬件多線程來進行數(shù)據(jù)包處理和軟件定義I/O。Ubicom的MASI (Multithreaded Architecture for Software I/O)為標(biāo)準(zhǔn)晶圓產(chǎn)品帶來更多的靈活性。 XMOS希望將軟件定義這一概念在集成度與性能方面(當(dāng)然,還有銷售業(yè)績)提升到一個更高的水平。 至少一些XMOS芯片將具有多核設(shè)計, 其可在運行實時操作系統(tǒng)和進行數(shù)字信號處理時,在軟件中實現(xiàn)100Mb/s以太網(wǎng)甚至更快的I/O接口。

  這次XMOS對于其麾下的XCore微處理器架構(gòu)透露甚少。直到7月,XMOS才走出了秘密開發(fā)階段,開始大致描述其技術(shù)。XMOS計劃在今年的更晚時候,當(dāng)?shù)谝粋€晶圓從工廠到貨后,透露更多細(xì)節(jié)。最早出產(chǎn)的芯片將是是采用標(biāo)準(zhǔn)90nmCMOS工藝生產(chǎn)的多核芯片。XMOS計劃明年開始銷售芯片,售價大概在1美元至10美元。這種價位,相對于ASSP和FPGA將頗具競爭力。 此外,作為標(biāo)準(zhǔn)產(chǎn)品,他們可以使一些用戶免去開發(fā)ASIC的需要。

  無需RTL或匯編語言

  XMOS技術(shù)核心是特為硬件多線程,軟件驅(qū)動I/O和高級語言設(shè)計的32-bitCPU專利架構(gòu)。 盡管有些XMOS工程師來自ARM及其他處理器公司,XMOS表示其CPU架構(gòu)沒有模仿任何已有架構(gòu), 其產(chǎn)品架構(gòu)為全新設(shè)計,并為其任務(wù)進行了優(yōu)化,此外XMOS表示并不打算使用匯編語言或RTL語言編程。甚至設(shè)備驅(qū)動及其他XMOS將提供的低級語言軟件將以C,C++及 其衍生品XMOS C(XC)編寫。

  XC加入了時序描述,硬件I/O運算,硬件并行性,及符合ANSI C標(biāo)準(zhǔn)的其它延伸。例如, XC允許程序員規(guī)定某一運算可以一固定間隔執(zhí)行,比如每隔20ms。一種新選擇語句與case語句類似,只是無論何時當(dāng)芯片自I/O接口收到特定事件時,其向量將執(zhí)行程序特定塊。這些及其他延伸對于硬實時確定性及可編程I/O是必要的, 這也是軟件定義晶圓的中心理念。圖1示出了XC程序的一個實例。

圖1 UART傳輸功能

  XC并沒有像近來其他C變種(如System C)那樣走的那么遠(yuǎn)。它仍是一種主要寫軟件的語言,而非描述硬件(除了I/O接口)。 程序員可以使用標(biāo)準(zhǔn)C或C++來寫不要求嚴(yán)格時序的軟件。實際上,如圖2所示,按照程序的作用,一個典型的項目將具有以C, C++及XC所寫的模塊。XMOS將提供新的軟件開發(fā)工具, 其在基于單Eclipse的集成開發(fā)環(huán)境中可以處理所有的程序。

圖2

  在源代碼中,程序員明確將線程指定給各種硬件I/O及軟件任務(wù)。其效果為這些指定操作手工將Xcore處理資源進行了分割。處理器保證每個線程的最低水平性能,這些線程在空閑時不消耗電力。在周期精確軟件模擬器的幫助下,程序員可以在設(shè)計時決定特定I/O或軟件任務(wù)是否達(dá)到了預(yù)期的性能。如果某一任務(wù)未能達(dá)到性能指標(biāo),程序員可為其指派附加的線程。如果即便是調(diào)動其所有線程后, 當(dāng)前使用的Xcore芯片仍無法完成所需性能,開發(fā)人員可選擇更高性能的Xcore芯片,該芯片擁有更多的處理器核或可運行于更高的頻率。

  XMOS正在開發(fā)軟件庫,其可幫助開發(fā)員實現(xiàn)常用的I/O接口及執(zhí)行普通軟件任務(wù)。XMOS也正在嘗試對XCore輸出現(xiàn)有的軟件庫。在依賴嚴(yán)格時序的架構(gòu)上保留可用高級語言的編程能力是XMOS技術(shù)重要的一部份。我們將拭目以待XMOS開發(fā)工具及程序庫如何有效實現(xiàn)這一目標(biāo)。

  硬件多線程至關(guān)重要

  為保證硬實時性能,XCore處理器采用硬件多線程,而不是傳統(tǒng)的操作系統(tǒng)實現(xiàn)的多線程。實質(zhì)上,硬件多線程是處理器級別的確定性時間片段。處理器可以對各種任務(wù)傾注特定量的執(zhí)行時間。

  每個XCore處理器可以同時執(zhí)行八個線程并且在每個時鐘周期切換線程上下文。盡管XMOS還沒有發(fā)布XCore架構(gòu)細(xì)節(jié),但其他處理器通過為每個線程維持重復(fù)寄存器文件來實現(xiàn)硬件多線程。該處理器并非在上下文切換中保存并儲存寄存器文件內(nèi)容,而僅僅是改變指向合適注冊文件的指針。對于從一個線程切換至另一線程并沒有存儲和回復(fù)的動作。XCore幾乎肯定會采用這個技術(shù)。

  線程以循環(huán)方式執(zhí)行,處理器為每個線程分配相等的時間。如果同時運行八個線程,每個線程得到12.5%的處理器執(zhí)行時間。如果同時運行四個線程,每個線程得到25%的處理器執(zhí)行時間,以此類推。注意在本文中,一個“線程”不一定必須是多線程程序中的子進程, 可以是單線程進程。例如,一個線程可以是一個器件的驅(qū)動,它可以驅(qū)動一個 I/O引腳以定義UART。另外一個線程可能是控制程序,如實時操作系統(tǒng)。另外的線程可以是單線程應(yīng)用程序。還有另外的線程可以是多線程應(yīng)用程序中的一個子進程。

  有些進程對性能的要求可能比單個線程所能提供的要高。在這種情況下,程序員可能在兩個線程中分割任務(wù)。如一個線程可能用于處理低級I/O操作,而另一個線程則處理接口協(xié)議和緩沖。所有線程均以嚴(yán)格的循環(huán)方式執(zhí)行。有些多線程處理器,如新出現(xiàn)的MIPS32 74K具有可編程的線程優(yōu)先政策,它可以不同的方式實現(xiàn)硬件多線程。兩種方法都是可行的。XMOS方法更簡單并與Ubicom模型更相似。

  簡單是重要的, 因為XCore程序員必須在設(shè)計時依靠XMOS軟件開發(fā)工具的幫助,靜態(tài)地將線程分配給特定任務(wù)。借助XCore處理器,性能的基本單位為一個線程,而不是一個時鐘周期。因此,理解每個線程可實現(xiàn)的性能對于程序員和開發(fā)工具來說是關(guān)鍵的。

  但是,在軟件的控制下,在運行時動態(tài)重指定線程及重新平衡工作量是可能的。這種能力使一切成為可能。例如,如果一個應(yīng)用在一段時間不需要使用特定的I/O接口, 其可將相關(guān)線程轉(zhuǎn)向其他任務(wù)。僅僅通過交換設(shè)備驅(qū)動即可將I2C接口演化為UART。XMOS芯片將匹配端口和1,4,8,16位寬的寄存器,從而減少或免除低級掩碼的需要。

  在XMOS測試其第一個晶圓前,XMOS不愿發(fā)布性能細(xì)節(jié)。但是他們表示初始XCore的性能足夠在軟件中實現(xiàn)100Mb/s以太接口或更高速的USB2.0接口(480Mb/s)。對于DSP應(yīng)用,16-tap有限脈沖響應(yīng)(FIR)濾波器每秒將可以處理七百萬采樣。

  多處理器使性能倍增

  有些應(yīng)用可能要求比單個XCore處理器所提供性能要高,因此該技術(shù)的另一個重要方面是對多核芯片及多芯片系統(tǒng)的支持。XMOS被稱為Xlink的專利連接可以允許多XCore處理器之間通訊。XLink網(wǎng)絡(luò)可以協(xié)調(diào)一個核上多線程,多核上的多線程,或不同芯片的多線程。

  XMOS計劃今年秋天發(fā)布更多關(guān)于XLink的細(xì)節(jié)。如圖3所示,XLink為一交叉總線,將兩個或多個處理器以緊密的關(guān)系連接起來。編譯的目標(biāo)代碼與位置無關(guān),所以開發(fā)員無須知道特定的線程將在哪個核上運行-軟件能夠在運行時間分配線程。但是, 如果程序員愿意,他們可以事先將特定的線程指派給特定的核。

圖3

  片上互連接與芯片之間的互聯(lián)要求不同。為滿足多芯片系統(tǒng)片上連接的微小距離及板級間距離的要求,Xlink在不同物理接口運行單一邏輯協(xié)議。XMOS開發(fā)工具需要網(wǎng)絡(luò)延遲的知識來智能分配線程。這些開發(fā)工具將可能依賴設(shè)計軟件模擬來估計多芯片或多系統(tǒng)網(wǎng)絡(luò)中Xlink延遲。

  芯片不是全部

  盡管XMOS現(xiàn)在還未透露其專利CPU架構(gòu),但這些細(xì)節(jié)并不那么重要。如果XMOS能實現(xiàn)其承諾,客戶將無須關(guān)注那些細(xì)節(jié),因為XCore設(shè)計為可在線程級別進行高級語言編程。當(dāng)然,了解XMOS如何利用這個難得的機會來創(chuàng)造為多核芯片上硬件多線程優(yōu)化的CPU架構(gòu)是十分有趣的。但是,考慮到軟件定義晶圓并不是新概念,關(guān)鍵問題是XMOS是否可以創(chuàng)造一個有用,價格適中,且足以支持處理器核,內(nèi)連接,及軟件開發(fā)工具的芯片。

  XC是一個障礙。程序員不希望廠商制定化的軟件模式向C語言擴展,特別是當(dāng)這些擴展將他們的軟件與一個初創(chuàng)企業(yè)開發(fā)的專利CPU架構(gòu)綁定時。XMOS認(rèn)識到了這個障礙,并且在XC中編寫低級設(shè)備系統(tǒng)庫和I/O接口,這樣開發(fā)員可以采用標(biāo)準(zhǔn)、可移植的C或C++來寫大多數(shù)的應(yīng)用軟件。另外,XMOS希望為XCore輸入一些廣泛應(yīng)用的軟件庫。XMOS說他們創(chuàng)造XC擴展僅僅是因為沒有業(yè)界標(biāo)準(zhǔn)的開放的可替代品—一個常見的抱怨。

  XMOS的另外一個障礙是軟件開發(fā)工具。XMOS對于工具許愿很多。如果線程配置不是那么簡單,隨著集成水平的上升,麻煩將迅速失去控制。XMOS已經(jīng)在討論“核陣列”—暗示初始的多核芯片將發(fā)展為很多核或大量并行XCore設(shè)計。對于顧客,軟件開發(fā)工具的質(zhì)量很快便變得比硬件的能力更為重要。

  幸運的是, 軟件定義晶圓的基本概念根本上是可靠的。實質(zhì)上,計算的演化主要是一個將更多的功能從硬件轉(zhuǎn)移到軟件上的過程。隨著處理器成長地更為強大,曾要求專屬硬件(芯片上或外)的I/O功能可以由軟件得心應(yīng)手地操作。專屬硬件在高流量應(yīng)用中仍十分有效, 但是很多終端用戶產(chǎn)品從來沒達(dá)到那樣的流量。激烈的競爭是一個因素—在一個產(chǎn)品將其昂貴的ASIC費用回收前,大量的模仿者就常常出現(xiàn)了。另外一個因素是快速的市場更新-許多消費電子產(chǎn)品的貨架時間是以月來計算的,而不是年。業(yè)界標(biāo)準(zhǔn)也在持續(xù)進步。一個可編程的,在設(shè)計時甚至是運行時可變換其I/O接口的芯片可延遲過早過時。

  因此,XMOS的前景取決于公司執(zhí)行其戰(zhàn)略各方面的好壞。設(shè)計一個多線程的處理器幾乎是最容易的部分。XMOS成敗將體現(xiàn)在其多核集成,軟件開發(fā)工具,擴展C語言,及系統(tǒng)軟件上。(本文摘自美國《微處理器報告》,馬志強譯)



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉