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