對于多處理器系統(tǒng)的實時分析和控制的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明的領(lǐng)域一般設(shè)及對于諸如計算機、數(shù)字信號處理器值S巧和該種嵌入式實 例之類的數(shù)字電子系統(tǒng)的軟件開發(fā)、自動測試W及分析,更具體地說,設(shè)及對于多處理器系 統(tǒng)的實時分析和控制。
【背景技術(shù)】
[0002] 新數(shù)字電子產(chǎn)品的開發(fā)需要大量的測試、測量和表征來驗證其中的硬件和軟件。 對于復(fù)雜的數(shù)字電子產(chǎn)品,驗證成本可能是總開發(fā)項目成本的最大一部分。存在用于降低 測試和驗證成本的幾種方式或技術(shù)。
[0003] -種方式是可測性設(shè)計值FT),其中產(chǎn)品設(shè)計包括對簡化測試的技術(shù)的規(guī)定。其包 括提高產(chǎn)品及其組成設(shè)備的內(nèi)部狀態(tài)的可控性和可觀察性的測試點的規(guī)定。測試點的潛在 問題是,它們的位置在系統(tǒng)中變?yōu)榇_定的,并且在最終產(chǎn)品中可能無法改變。另一個問題可 能是,來自測試點的原始數(shù)據(jù)速率超過系統(tǒng)消費或處理數(shù)據(jù)的容量,所W產(chǎn)品可能必須W 慢于正常速度的速度運行W執(zhí)行測試。
[0004] 降低測試和驗證成本的另一方式是自動測試,因為如果不需要人類操作者來進行 測試,則每單位時間可W執(zhí)行更多的測試,導(dǎo)致捕獲故障的可能性更高。然而,在應(yīng)用軟件 的開發(fā)和自動測試期間,(交互式地)支持在短周期內(nèi)程序員的增加的設(shè)計和測試是有益 的。
[0005] 另一方法是W對產(chǎn)品的正常操作具有可忽略的劣化的方式把測試儀器構(gòu)建到產(chǎn) 品中。內(nèi)置的測試儀器炬uilt-inTestInstrumentation, 6口1)的范圍可W從高速注入 和收集復(fù)雜信號W探查信號處理的高級探測器到諸如統(tǒng)計和圖形顯示之類的分析能力。該 方法的問題是缺少足夠的處理資源來全速地消費原始數(shù)據(jù)。
[0006] 另一方式是內(nèi)置自測試化uit-inself-test,BIST)。BIST可W利用大量的自動 內(nèi)部測試,每個自動內(nèi)部測試產(chǎn)生被添加到當(dāng)前和(runningsum)的二進制模式結(jié)果。在 所有測試結(jié)束時,當(dāng)前和是簽名,該簽名可W被輸出并且與在設(shè)計和仿真期間生成的已知 好簽名進行比較。BIST還可W產(chǎn)生更詳細(xì)的報告,例如哪些(如果有的話)測試失敗的報 告。
[0007]BIST和BITI該兩者都可W在產(chǎn)品的使用期期間用來增強其可維護性??蒞在同 一設(shè)備上使用該些技術(shù)的組合。
[0008]W上技術(shù)中的每種技術(shù)都需要對細(xì)節(jié)有相當(dāng)多的關(guān)注,并且計算機用于跟蹤該些 細(xì)節(jié)。此外,每個產(chǎn)品的細(xì)節(jié)是不同的,因此,可能需要相當(dāng)多的工作來對計算機進行編程 W獲得每次產(chǎn)品驗證所必需的測試、測量和表征數(shù)據(jù)。
[0009] 使用該些技術(shù)的益處通常大于實現(xiàn)它們的成本;然而,在行業(yè)中,改進是可能的并 且不斷發(fā)展。
[0010] 可各種方式降低成本,例如,通過使測試設(shè)置和編程過程利用可重用的、經(jīng)參 數(shù)化的模塊,所述模塊可W容易地被組合W成為用于每個產(chǎn)品的自定義測試系統(tǒng)。
[0011] 可WW各種方式增多益處,例如,通過使測試操作W更高的速度運行,使得每單位 時間可W執(zhí)行更多的測試,從而增大應(yīng)用的狀態(tài)空間的覆蓋范圍W驗證適當(dāng)?shù)牟僮鳎ɑ蛘?在產(chǎn)品到達(dá)客戶之前發(fā)現(xiàn)漏洞)。
[0012] 越來越多地,諸如計算機、數(shù)字信號處理器值S巧和嵌入在封裝設(shè)備中的那些系 統(tǒng)之類的數(shù)字電子系統(tǒng)利用一個或更多個多處理器陣列(multiprocessorarrays,MPA), 其中所述封裝設(shè)備諸如是;無線電電話、政府服務(wù)無線電、消費者無線設(shè)備(諸如蜂窩電 話、智能電話和平板計算機)、蜂窩基站設(shè)備、視頻處理和廣播設(shè)備、對象識別設(shè)備、超光譜 圖像數(shù)據(jù)處理等。MPA可W被寬松地定義為多個處理元件(P巧、支持存儲器(SM)和高帶寬 互連網(wǎng)絡(luò)(1腳。如本文中所使用的,術(shù)語"處理元件"是指處理器或CPU(中央處理單元)、 微處理器或處理器內(nèi)核。MPA中的詞語"陣列"在其最寬泛的意義上用于意指由網(wǎng)絡(luò)互連的 多個計算單元(每個包含處理資源和存儲器資源),所述網(wǎng)絡(luò)具有在包括圓形維度(回路或 環(huán)路)的一個、兩個、=個或更多個維度上可用的連接。注意,較高維度的MPA可W映射到 具有較少維度的制造介質(zhì)上。例如,具有四維(4D)超立方體的形狀的IN中的MPA可W映 射到娃集成電路(1C)巧片的3D疊層上,或者映射到單個2D巧片或者甚至計算單元的1D 線上。此外,低維度的MPA可W映射到較高維度的介質(zhì)。例如,計算單元的1D線可婉 艇的形狀被布局到1C巧片的2D平面上,或者被盤卷成巧片的3D疊層。MPA可W包含多種 類型的計算單元W及處理器和存儲器的散置布置。MPA在廣義上還包括MPA的層次結(jié)構(gòu)和 嵌套布置,尤其是由互連的1C巧片構(gòu)成的MPA,其中所述1C巧片包含還可W具有更深層次 結(jié)構(gòu)的一個或更多個MPA。
[0013]MPA對于軟件開發(fā)方法和工具呈現(xiàn)出新的問題和機會。因為MPA可W擴展到數(shù)千 個PE,所W需要管理大量的軟件來操作該陣列,并且需要W高效的方式測試、調(diào)試和重構(gòu)該 種軟件。一般地,該需要模塊化、層次結(jié)構(gòu)、可適應(yīng)模塊復(fù)用和自動構(gòu)建方法。雖然該些思 想已經(jīng)出現(xiàn)在傳統(tǒng)的軟件開發(fā)系統(tǒng)中,但是它們尚未W支持一般化模塊的方式集成到開發(fā) 工具中,所述一般化模塊可W根據(jù)性能要求或者不同的形狀或拓?fù)湟蠖o態(tài)地和/或動 態(tài)地適應(yīng)不同數(shù)量的PE和其他資源,該些要求又取決于資源可用性或應(yīng)用要求。
[0014]軟件開發(fā)項目是用于生成使某產(chǎn)品或服務(wù)根據(jù)開發(fā)團隊采用的要求進行操作的 軟件的人和機器工作的組合。一般地,更多的設(shè)計和測試自動化是有益的,因為它允許對所 生成的軟件進行更多的測試,從而消除更多的漏洞。
[0015]在圖1中繪出了用于嵌入式系統(tǒng)的傳統(tǒng)現(xiàn)有技術(shù)的軟件開發(fā)環(huán)境。除人類軟件工 程師和程序員之外,開發(fā)環(huán)境還具有S個主要部分一-該些是可包括工作站的測試平臺和 最終產(chǎn)品,就如所示出的,但是在某些現(xiàn)有技術(shù)的開發(fā)系統(tǒng)中,工作站可W被認(rèn)為與測試平 臺分離。
[0016]最終產(chǎn)品的最小表示是技術(shù)要求列表。對于測試平臺的最小要求是生成用于被測 設(shè)備(deviceundertest,DUT)的測試模式輸入的裝置、W及捕捉DUT的輸出并且與已知 的好模式進行比較的方式。DUT與最終產(chǎn)品匹配得越接近,所開發(fā)的軟件在最終產(chǎn)品中將按 照所預(yù)期的那樣操作的置信度越高。
[0017]工作站的最小要求是具有對大容量存儲器的細(xì)節(jié)、設(shè)計數(shù)據(jù)的數(shù)據(jù)庫、W及讀寫 項目數(shù)據(jù)庫的一組(或一套)設(shè)計工具進行管理的操作系統(tǒng)(0巧的臺式或膝上型計算機。 可W存在多于一個的項目和多于一個的項目數(shù)據(jù)庫,并且工具和庫可W在它們之間共享, w降低開發(fā)成本。
[0018] 一般來說,用于計算機和數(shù)字信號處理器值SP)的存儲器按該樣的層次結(jié)構(gòu)組 織;頂部是快速存儲器,層次向下每級是更慢卻更高容量的存儲器。在MPA中,在層次結(jié)構(gòu) 頂部的支持存儲器位于每個PE附近。每個支持存儲器可W??谥槐3种噶罨蛑槐3?jǐn)?shù)據(jù)。 特定PE的支持存儲器可W對該PE是私有的或者與其他PE共享。
[0019] 存儲器層次結(jié)構(gòu)再往下可W具有更大的共享存儲器,該共享存儲器典型地由半導(dǎo) 體同步動態(tài)隨機存取存儲器(SDRAM)組成,所述半導(dǎo)體SDRAM具有比與每個PE相鄰的支持 存儲器的位容量大許多倍的位容量。存儲器層次結(jié)構(gòu)再往下是閃存、磁盤和光盤。
[0020] 如上所述,多處理器陣列(MPA)包括處理元件(P巧、支持存儲器(SM)W及支持陽 和/或存儲器間的高帶寬數(shù)據(jù)通信的主互連網(wǎng)絡(luò)(PIN或僅僅IN)的陣列。在圖2和圖3 示出了例示性的MPA,下面會進行描述。一般地,PE具有用于緩沖輸入數(shù)據(jù)和輸出數(shù)據(jù)的寄 存器、指令處理單元(IPU)W及用于對數(shù)據(jù)執(zhí)行算術(shù)和邏輯功能的裝置,外加用于與系統(tǒng) 的其他部分通信的若干交換器和端口。IPU從存儲器取得指令,對它們進行解碼,并設(shè)置適 當(dāng)?shù)目刂菩盘朩移動數(shù)據(jù)進出PEW及對數(shù)據(jù)執(zhí)行算術(shù)和邏輯功能。僅因為每個包含大MPA 的1C巧片的陽數(shù)量大,所W適合于大MPA的PE-般比通用處理器(GP巧能效更高。
[0021] 如本文所使用的,術(shù)語MPA覆蓋了相對同構(gòu)的處理器陣列W及在所謂的"平臺1C" 巧片上集成的通用和專用處理器的異構(gòu)集合該兩者。平臺1C巧片可W包含典型地與共享 存儲器或許還有巧片上的網(wǎng)絡(luò)互連的幾個至許多個處理器。在MPA和"平臺1C"巧片之間 可W存在或可W不存在差異。但是,"平臺1C"巧片可W被推銷為針對特定垂直市場中的特 定技術(shù)需求。
[0022] 示例性MPA架構(gòu)是在美國專利No. 7415594中公開的HyperX?架構(gòu)。在HyperiC? 架構(gòu)的一個實施例中,尺寸范圍寬的多處理器陣列可W由基于單元格的硬件構(gòu)造(網(wǎng))組 成,其中,每個格被稱為超切片(HyperSlice)。該硬件構(gòu)造可W通過在網(wǎng)格上布置單元格并 且使相鄰的格互連來形成。每個超切片可W包括一個或更多個數(shù)據(jù)存儲器和路由器(data memo巧androuter,DMR)W及一個或更多個處理元件(P巧。在美國專利No. 7415594中, DMR被稱為可動態(tài)配置通信值CC)元件,PE被稱為可動態(tài)配置處理值(P)元件。DMR可W 為其相鄰的PE提供支持存儲器,W及為互連網(wǎng)絡(luò)(1腳提供路由器和鏈路。
[0023] 可W通過將超切片鄰接在一起來創(chuàng)建硬件構(gòu)造,所述將超切片鄰接在一起設(shè)及使 超切片對齊W形成正確的電連接。該些連接包括到DMR的鏈路和到電源網(wǎng)格的連接。復(fù)制 超切片、使它們對齊W及通過鄰接進行連接的技術(shù)是集成電路(1C)巧片,尤其是用互補金 屬氧化物半導(dǎo)體(CM0巧電路技術(shù)制造的1C的超大規(guī)模集成(VLSI)的公知技術(shù)。該種硬 件結(jié)構(gòu)具有對于處理元件獨立地且透明地操作的PIN,并且可W通過支持任意通信網(wǎng)絡(luò)拓 撲的超切片之間的能實時地編程和改編的通信通路(可W被稱為路由或通道)的整體來提 供按需帶寬。經(jīng)協(xié)調(diào)的超切片組可W在軟件控制下"飛速地"形成和改造。動態(tài)地改變用 于評估功能的硬件的量的該種能力允許最佳地應(yīng)用硬件資源來緩解處理瓶頸。在所述硬件 構(gòu)造的邊緣,鏈路可W連接到專用于存儲器層次結(jié)構(gòu)更往下的存儲器類型或者專用于集成 電路(1C)巧片的邊緣處的I/O的電路。
[0024] 互連的DMR可W提供跨巧片的W及巧片之間的最近鄰、區(qū)域和全局通信。該些通 信模式中的每種通信模式可W物理地使用DMR資源來根據(jù)數(shù)據(jù)的所在地和軟件算法要求 而不同地發(fā)送數(shù)據(jù)/消息。"快速端口(QuickPort)"設(shè)施可W被提供W支持一個或更多 個字的數(shù)據(jù)從處理器到任何網(wǎng)絡(luò)目的地的低等待時間傳輸。對于塊傳輸,DMR內(nèi)的直接存 儲器存取值irectMemcxryAccess,DMA)引擎可用于管理跨越存儲器和路由結(jié)構(gòu)的數(shù)據(jù)移 動。對于PE之間的最近鄰?fù)ㄐ牛褂霉蚕泶鎯ζ骱图拇嫫骺赡苁亲罡咝У臄?shù)據(jù)移動方法。 對于區(qū)域和全局的數(shù)據(jù)移動,使用路由構(gòu)造(PIN)可能是最高效的方法。通信通路(或路 由)可W是動態(tài)的,或者靜態(tài)的。動態(tài)路由可W針對數(shù)據(jù)傳輸而建立,并且當(dāng)傳輸完成時被 拆除W釋放PIN資源,W便用于其他路由和數(shù)據(jù)傳輸。靜態(tài)路由可W在整個程序執(zhí)行期間 保持原樣,并且主要用于高優(yōu)先級的和關(guān)鍵的通信。通信通路的物理位置和跨越它們的數(shù) 據(jù)傳輸?shù)亩〞r可W在軟件程序控制下??蒞存在多個通信通路W支持任何發(fā)送器和接收器 之間的同時數(shù)據(jù)傳輸。
[00巧]DMR的架構(gòu)可W允許在多處理器構(gòu)造中使用不同的可互換陽W針對具體應(yīng)用來 優(yōu)化系統(tǒng)。HyperX?多處理器系統(tǒng)可W包括同構(gòu)或異構(gòu)的PE陣列。PE可W是傳統(tǒng)的處理 器,或者可替代地,陽可W不符合處理器的傳統(tǒng)定義。陽可W簡單地是用作用于某些邏輯 功能的硬連線的處理器的邏輯口的集合,其中為了更高的性能、更小的面積和/或更低的 功率而犧牲可編程性。
[0026]圖2例示了依照現(xiàn)有技術(shù)的示例性曲口6巧"系統(tǒng)的處理元件(P巧和數(shù)據(jù)存儲器 路由器值MR)的網(wǎng)絡(luò)的視圖。PE被示為矩形塊,DMR被示為圓圈。DMR之間的路由通道被 示為點線。實線=角形表示網(wǎng)外通信,實線表示DMR之間的活動數(shù)據(jù)通信。計算任務(wù)由其 數(shù)字標(biāo)識符示出,并且被放置在正執(zhí)行它的PE上。用于通信的數(shù)據(jù)變量由其名稱示出,并 且被放置在包含它的DMR上。在本示例性示例中,左上方的PE被分配了具有任務(wù)ID62的 任務(wù),并且可W經(jīng)由與該PE相鄰的各個DMR與其他PE或存儲器進行通信,所述DMR由通信 路徑變量t、w和U指定。如還示出的,在本實施例中,活動通信通道經(jīng)由被標(biāo)記為"X"的相 鄰DMR把被指定為71 (例如,另一任務(wù)ID)的陽連接到網(wǎng)外的通信路徑或端口。
[0027] 圖3例示了依照現(xiàn)有技術(shù)的在巧片上實現(xiàn)的示例性多處理器系統(tǒng)。如所示的,類 似于圖2的示例性系統(tǒng),該巧片包括用于與巧片外的設(shè)備進行通信的多個I/O路由器、W及 內(nèi)部多處理結(jié)構(gòu)。HyperX?處理器架構(gòu)可W包括固有的多維度,但是可所示的平面實現(xiàn) 來物理地實現(xiàn)。處理器架構(gòu)可W具有高能效特性,并且還可W是在根本上可擴展的(擴展 為大陣列)且可靠的一一代表既低功率又可信賴的概念。使得處理器架構(gòu)能夠?qū)崿F(xiàn)前所未 有的性能的方面包括最新型的處理器、存儲器網(wǎng)絡(luò)和靈活的10。處理元件(P巧可W是成熟 的DSP/GPP,并且基于由可變寬度指令字指令集架構(gòu)維持的存儲器至存儲器(無高速緩存) 架構(gòu),所述可變寬度指令字指令集架構(gòu)可W動態(tài)地擴充執(zhí)行管線W在最大化硬件資源的使 用的同時保持吞吐量。
[002引在圖4中更詳細(xì)地示出了根據(jù)現(xiàn)有技術(shù)的DMR硬件結(jié)構(gòu)的示例,其中,中央數(shù)據(jù)存 儲器值M)被表示路由器的八角環(huán)包圍。注意,所示的八角形形狀僅僅是象征性的,實際形 狀可能是不同的,例如,可W是矩形??蒞看出,DMR周圍是表示到其他DMR和PE的數(shù)據(jù)路 徑的若干雙向箭頭。該些雙向數(shù)據(jù)路徑可W用在每個端的實際的雙向收發(fā)器來實現(xiàn),或者 被實現(xiàn)為方向相反的一對單向路徑。
[0029] 圖4中的路由器和數(shù)據(jù)存儲器之間的單向箭頭表示存儲器和路由器之間的單向 數(shù)據(jù)路徑。該些箭頭附近的小正方形表示DMA引擎,即,支持從DM讀出的DMA讀取器值MAR) 和/或支持將數(shù)據(jù)寫到DM的DMA寫入器值MAW)。DMAR引擎產(chǎn)生用于存儲器的地址信號, 典型地跨緩沖區(qū)遞增,讀取要從鏈路發(fā)送到另一個DMR的數(shù)據(jù)。類似地,DMAW引擎產(chǎn)生用 于存儲器的地址信號,典型地跨緩沖區(qū)遞增,寫入它從鏈路接收到的數(shù)據(jù)。每個DMA引擎比 PE小得多,并且使用更少的功率,所W它們對于用于存儲器的塊的讀寫是有吸引力的。DMA 引擎可W通過對DM存儲器空間中的相關(guān)聯(lián)的配置寄存器的陽寫入來進行配置。對特定地 址的寫入觸發(fā)DMA開始遞增。當(dāng)DMA完成一塊地址的從頭到尾的遞增時,它停止一一除非 被配置為無限地繼續(xù)循環(huán)。
[0030] 軟件是操作計算機或其他存儲有程序的設(shè)備所需的指令(也被稱為程序代碼)的 整體。軟件可W根據(jù)其用途進行分類。針對具體用途(諸如文字處理、網(wǎng)上沖浪、視頻或蜂 窩電話信號處理等)為終端用戶操作計算機的軟件可W被稱為應(yīng)用軟件。應(yīng)用軟件包括 由人類程序員編寫的源程序和腳本、各種中間編譯形式,并且被稱為運行時軟件(runtime software)的最終形式可W由目標(biāo)設(shè)備(PE、微處理器或CPU)執(zhí)行。運行時軟件也可W由 仿真器執(zhí)行,所述仿真器是出于調(diào)試(錯誤消除)的目的而被設(shè)計為相比實際的目標(biāo)設(shè)備 提供目標(biāo)設(shè)備的內(nèi)部狀態(tài)的更多可見性的設(shè)備。
[0031] 開發(fā)軟件(一組或一套軟件開發(fā)工具)是用于產(chǎn)生應(yīng)用軟件的軟件?;鹃_發(fā)工 具包括如圖5中所指示的編譯器、匯編器和鏈接器,其中圖5例示了根據(jù)現(xiàn)有技術(shù)的用于基 于MPA的系統(tǒng)的示例性軟件設(shè)計和開發(fā)流程。用戶借W用高級編程語言(例如,C或C++) 寫源代碼的編輯器也可W被認(rèn)為是基本開發(fā)工具。人類工程師或程序員典型地設(shè)計程序, 并用高級編程語言將其翻譯成由圖5的被標(biāo)記為"完整設(shè)計"的文檔表示的源代碼,所述文 檔可W經(jīng)由程序編輯器來創(chuàng)建。在被標(biāo)記為"語言編譯/匯編"的方框中,編譯器用于將源 代碼翻譯成模塊化的地址可重定位的目標(biāo)代碼;然后匯編器用于創(chuàng)建模塊化的機器代碼; 最后,鏈接器用于創(chuàng)建整個程序的可執(zhí)行二進制映像。如所示出的,還可W在該些階段的任 何階段中和在該些階段中的任何階段之間執(zhí)行優(yōu)化。該個被標(biāo)記為"對設(shè)計進行處理W創(chuàng) 建巧片編程文件"的編譯、匯編和鏈接(生成二進制映像)的包括優(yōu)化的過程可W用存儲在 "make文件(makefiles)"中的對操作系統(tǒng)的指令來自動進行。為了測試程序,二進制映 像一般被加載到目標(biāo)設(shè)備的存儲器中(在圖5中通過向"處理器1C巧片"提供和實現(xiàn)"巧 片編程信息",即"對巧片進行編程"來表示),并被執(zhí)行(即,"運行程序")。其他常見的軟 件工具包括調(diào)試器(用于加載、啟動、暫停、轉(zhuǎn)儲(dump)和反匯編來自目標(biāo)PE的二進制映 像)、W及周期精確的仿真器。周期精確的仿真器提供處理器內(nèi)部狀態(tài)的完全可見性,但是 它們運行得比目標(biāo)硬件慢得多,例如,慢上許多個數(shù)量級。
[0032] 對于多處理器系統(tǒng),與單處理器系統(tǒng)相比,存在重要的額外步驟,該步驟是將特定 的處理任務(wù)或模塊分配到特定的物理資源一一該些物理資源是陽、支持存儲器、W及陽與 系統(tǒng)I/O端口之間和各自間的通信資源。通信資源可W包括路由器、路由器之間的鏈路、包 括交替的路由器和鏈路的串的路徑、支持存儲器、W及置于支持存儲器和路由器(或鏈路) 之間的DMA引擎。注意,資源分配可W包括將數(shù)據(jù)變量分配到存儲器資源上,因為共享的和 局部的存儲器的分配可能對PE和通信資源的分配有影響,反之亦然。在圖5中,該額外步驟 由被標(biāo)記為資源分配(也可W被稱為物理設(shè)計)的方框表示。所述流程的資源分配部分可 W利用布置和路由工具,該布置和路由工具可W用來將任務(wù)分配給陣列中的特定PE,W及 選擇IN中的具體端口和通信通路(路徑)。注意,整個系統(tǒng)的物理設(shè)計不需要馬上全部進 行;特別地,可w在w后、在應(yīng)用軟件開