專利名稱:多處理器系統(tǒng)中的通信禁用的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的領(lǐng)域一般涉及計(jì)算機(jī)系統(tǒng)安全性,特別是涉及軟件限定的安全系統(tǒng)。
背景技術(shù):
人的基本需求之一是安全性,即感覺有保證的需求。不幸的是,在各個(gè)時(shí)代,在世界上都存在想要傷害、例如偷盜或損害財(cái)產(chǎn)、破壞或損壞組織或政府等的實(shí)體。他們的動(dòng)機(jī)從尋求個(gè)人好處到政治原因不等。隨著社會(huì)進(jìn)入數(shù)字時(shí)代并且通信和信息之間的邊界進(jìn)一步模糊化,安全性和達(dá)到可量化的保證級(jí)別的方法對(duì)于保持當(dāng)前的生活水平變得十分關(guān)鍵。商業(yè)信息安全性要求背后的驅(qū)動(dòng)力是對(duì)于在任何時(shí)間或地點(diǎn)與數(shù)字世界進(jìn)行通信和連接的欲望。向著普遍存在的通信和計(jì)算方案演進(jìn)的這種環(huán)境早期由電信部門驅(qū)動(dòng)。該部門分解成消費(fèi)、工業(yè)、醫(yī)療、公共安全、政府和軍事部門。軍事在常規(guī)上在技術(shù)方面引領(lǐng)該領(lǐng)域。但是,由于工業(yè)通過該新能力的實(shí)現(xiàn)接受和演進(jìn)它們的操作實(shí)踐,因此,消費(fèi)、工業(yè)/企業(yè)和醫(yī)療市場(chǎng)現(xiàn)在面臨類似的挑戰(zhàn)。因此,希望提高安全性。
發(fā)明內(nèi)容
以下提供通過多處理器結(jié)構(gòu)確保系統(tǒng)的安全的各種實(shí)施例。多處理器結(jié)構(gòu)可包括多個(gè)處理器和多個(gè)通信元件。各通信元件可以是可動(dòng)態(tài)配置的,并且/或者可包括多個(gè)通信端口、存儲(chǔ)器和/或路由引擎以及其它的可能的元件。各處理器可包括至少一個(gè)算術(shù)邏輯單元、指令處理單元和/或多個(gè)處理器端口以及其它的可能的元件。通信元件和處理器可以以散布的方式被耦合在一起。例如,對(duì)于處理器中的每一個(gè)處理器,多個(gè)處理器端口可被配置為用于耦合多個(gè)通信元件的第一子集,并且,對(duì)于通信元件中的每一個(gè)通信元件,通信端口的第一子集可被配置為用于耦合多個(gè)處理器的子集,并且,通信端口的第二子集可被配置為用于耦合多個(gè)通信元件的第二子集。在一個(gè)實(shí)施例中,可例如在多處理器結(jié)構(gòu)或包括多處理器結(jié)構(gòu)的系統(tǒng)的引導(dǎo)過程中自動(dòng)地接收用于多處理器結(jié)構(gòu)的配置。該配置可規(guī)定處理器和/或通信元件中的一個(gè)或更多個(gè)之間的通信路徑的禁用。例如,該配置可規(guī)定一個(gè)或更多個(gè)處理器和一個(gè)或更多個(gè)通信元件、一個(gè)或更多個(gè)處理器和一個(gè)或更多個(gè)其它的處理器和/或一個(gè)或更多個(gè)通信元件與一個(gè)或更多個(gè)其它的通信元件之間的通信路徑的禁用。作為幾個(gè)例子,該配置可規(guī)定多處理器結(jié)構(gòu)的第一部分和多處理器結(jié)構(gòu)的第二部分之間的通信的禁用,以例如在操作過程中隔離第一部分與第二部分。作為另一例子,該配置可規(guī)定多處理器結(jié)構(gòu)的第二部分對(duì)多處理器結(jié)構(gòu)的第一部分的存儲(chǔ)器訪問的禁用,例如,使得第二部分不能在操作過程中訪問包括于第一部分中的存儲(chǔ)器。作為響應(yīng),可自動(dòng)地在硬件中配置多處理器結(jié)構(gòu),以禁用由該配置規(guī)定的通信路徑。因此,可以操作多處理器結(jié)構(gòu)以根據(jù)該配置執(zhí)行軟件應(yīng)用。在一個(gè)實(shí)施例中,該配置可包括設(shè)定與一個(gè)或更多個(gè)處理器和/或一個(gè)或更多個(gè)通信元件對(duì)應(yīng)以禁用由該配置規(guī)定的通信路徑的寄存器值。在一個(gè)實(shí)施例中,在配置之后,不能通過軟件恢復(fù)禁用的通信路徑。作為替代方案,或者,另外,以上討論的配置可基于加載到多處理器結(jié)構(gòu)中的軟件或代碼被加載。例如,可首先加載包括配置的認(rèn)證的代碼。在一個(gè)實(shí)施例中,認(rèn)證的代碼可包括可在整個(gè)操作過程中使用的多個(gè)配置或配置的修改。例如,可從認(rèn)證的代碼接收第二配置,并且,可對(duì)于第二配置執(zhí)行以上討論的自動(dòng)配置。
當(dāng)結(jié)合以下附圖考慮優(yōu)選實(shí)施例的以下的詳細(xì)描述時(shí),可以獲得對(duì)本發(fā)明的更好的理解,其中,圖1示出可利用本發(fā)明的實(shí)施例的示例性計(jì)算機(jī)系統(tǒng);圖2 圖6B不出多處理器系統(tǒng)的不例性實(shí)施例;圖7和圖8是示出根據(jù)一些實(shí)施例的用于禁用多處理器系統(tǒng)中的通信的方法的流程圖;圖9 圖16與用于確保多處理器系統(tǒng)的安全的特定實(shí)施例對(duì)應(yīng)。雖然可對(duì)本發(fā)明提出各種修改和替代形式,但是,作為例子在附圖中表示并且在這里詳細(xì)描述其特定的實(shí)施例。但是,應(yīng)當(dāng)理解,附圖及其詳細(xì)的描述不是要將本發(fā)明限于公開的特定的形式,相反,本發(fā)明要覆蓋落在由所附的權(quán)利要求限定的本發(fā)明的精神和范圍的所有修改、等同和替代方案。
具體實(shí)施例方式作為參考加入在這里就如同全部和完整在這里闡述的一樣加入以下的專利的全部?jī)?nèi)容作為參考:在2003年6月24 日提交的、發(fā)明名稱為“Processing System with InterspersedStall Propagating Processors and Communication Element,,的美國(guó)專利 N0.7415594,其發(fā)明人是 Michael B.Doerr、WiIIiam H.Hallidy>David A.Gibson 以及 Craig M.Chase。術(shù)語(yǔ)以下的在本申請(qǐng)中使用的術(shù)語(yǔ)的詞匯表:存儲(chǔ)器介質(zhì)——各種類型的存儲(chǔ)器裝置或存儲(chǔ)裝置中的任一種。術(shù)語(yǔ)“存儲(chǔ)器介質(zhì)”要包括:安裝介質(zhì),例如,CD-ROM、快擦寫盤104或磁帶裝置;計(jì)算機(jī)系統(tǒng)存儲(chǔ)器或隨機(jī)存取存儲(chǔ)器,諸如DRAM、DDR RAM,SRAM,EDO RAM,Rambus RAM等;或者非易失性存儲(chǔ)器,諸如磁介質(zhì),例如,硬盤驅(qū)動(dòng)器、光學(xué)存儲(chǔ)裝置或ROM、EPROM、FLASH等。存儲(chǔ)器介質(zhì)還可包括其它類型的存儲(chǔ)器或者它們的組合。另外,存儲(chǔ)器介質(zhì)可位于其中執(zhí)行程序的第一計(jì)算機(jī)中,并且/或者可位于在諸如因特網(wǎng)的網(wǎng)絡(luò)上與第一計(jì)算機(jī)連接的第二個(gè)不同的計(jì)算機(jī)上。在后一種情況下,第二計(jì)算機(jī)可向第一計(jì)算機(jī)提供用于執(zhí)行的程序指令。術(shù)語(yǔ)“存儲(chǔ)器介質(zhì)”可包括可駐留于不同的位置中,例如駐留于在網(wǎng)絡(luò)上連接的不同的計(jì)算機(jī)中的兩個(gè)或更多個(gè)存儲(chǔ)器介質(zhì)。載體介質(zhì)一上述的存儲(chǔ)器介質(zhì)以及物理傳輸介質(zhì),諸如總線、網(wǎng)絡(luò)和/或傳輸諸如電信號(hào)或光學(xué)信號(hào)的信號(hào)的其它物理傳送介質(zhì)??删幊逃布话ㄍㄟ^可編程或硬接線互連而連接的多個(gè)可編程功能塊的各種硬件裝置。例子包括FPGA (場(chǎng)可編程門陣列)、PLD (可編程邏輯器件)、FPOA (場(chǎng)可編程對(duì)象陣列)和CPLD (復(fù)雜PLD)??删幊坦δ軌K的范圍從細(xì)粒的(組合邏輯或查找表)到粗粒的(算術(shù)邏輯單元或處理器芯)??删幊逃布部杀环Q為“可重新配置邏輯”。專用集成電路(ASIC)——該術(shù)語(yǔ)要具有其普通意思的整個(gè)寬度。術(shù)語(yǔ)ASIC要包括對(duì)于特定應(yīng)用定制的集成電路,而不是通用的可編程器件,但ASIC可包括作為構(gòu)建塊的可編程處理器芯。移動(dòng)電話單元、MP3播放器芯片和許多其它單一功能IC是ASIC的例子。通常以諸如Verilog或VHDL的硬件描述語(yǔ)言描述ASIC。程序一術(shù)語(yǔ)“程序”要具有其普通意思的整個(gè)寬度。術(shù)語(yǔ)“程序”包括:1)可存儲(chǔ)于存儲(chǔ)器中并且可通過處理器被執(zhí)行的軟件程序;或2)可用于配置可編程硬件元件或ASIC的硬件配置程序。軟件程序一術(shù)語(yǔ)“軟件程序”要具有其普通意思的整個(gè)寬度,并且包括可存儲(chǔ)于存儲(chǔ)器介質(zhì)中并且通過處理器被執(zhí)行的任何類型的程序指令、代碼、腳本和/或數(shù)據(jù)或它們的組合。示例性軟件程序包括:以諸如C、C++、PASCAL、FORTRAN、COBOL、JAVA、匯編語(yǔ)言等的基于文本的編程語(yǔ)言書寫的程序;圖形程序(以圖形編程語(yǔ)言書寫的程序);匯編語(yǔ)言程序;被編譯成機(jī)器語(yǔ)言的程序;腳本;和其它類型的可執(zhí)行軟件。軟件程序可包括以一些方式交互操作的兩個(gè)或更多個(gè)軟件程序。硬件配置程序一可用于編程或配置可編程硬件元件或ASIC的程序,例如,網(wǎng)表或位文件。計(jì)算機(jī)系統(tǒng)——各種類型的計(jì)算或處理系統(tǒng)中的任一種,包括個(gè)人計(jì)算機(jī)系統(tǒng)(PC)、大型機(jī)計(jì)算機(jī)系統(tǒng)、工作站、網(wǎng)絡(luò)家電、因特網(wǎng)家電、個(gè)人數(shù)字助理(PDA)、網(wǎng)絡(luò)計(jì)算系統(tǒng)或其它裝置或裝置的組合。一般地,術(shù)語(yǔ)“計(jì)算機(jī)系統(tǒng)”可被廣泛地定義為包括具有執(zhí)行來自存儲(chǔ)器介質(zhì)的指令的至少一個(gè)處理器的任何裝置(或裝置的組合)。自動(dòng)——指的是在沒有直接規(guī)定或執(zhí)行動(dòng)作或操作的用戶輸入的情況下由計(jì)算機(jī)系統(tǒng)(例如,由計(jì)算機(jī)系統(tǒng)執(zhí)行的軟件)或裝置(例如,電路、可編程硬件元件,ASIC等)執(zhí)行的動(dòng)作或操作。因此,術(shù)語(yǔ)“自動(dòng)”與由用戶手動(dòng)執(zhí)行或規(guī)定的操作相反,在該手動(dòng)中,由用戶提供輸入以直接執(zhí)行操作。可通過由用戶提供的輸入啟動(dòng)自動(dòng)過程,但是,隨后的“自動(dòng)”執(zhí)行的動(dòng)作不被用戶規(guī)定,即,不是用戶規(guī)定執(zhí)行的各動(dòng)作的“手動(dòng)”執(zhí)行。例如,通過選擇各欄并提供規(guī)定信息的輸入(例如,通過鍵入信息、選擇復(fù)選框、無線電選擇等)填寫電子表格的用戶正在手動(dòng)填寫表格,盡管計(jì)算機(jī)系統(tǒng)必須響應(yīng)用戶動(dòng)作更新表格??捎捎?jì)算機(jī)系統(tǒng)自動(dòng)填寫表格,這里,計(jì)算機(jī)系統(tǒng)(例如,在計(jì)算機(jī)系統(tǒng)上執(zhí)行的軟件)分析表格的欄并在沒有規(guī)定欄的答案的任何用戶輸入的情況下填充表格。如上所述,用戶可調(diào)用表格的自動(dòng)填寫,但是不進(jìn)行表格的實(shí)際填寫(例如,用戶不手動(dòng)規(guī)定欄的答案,而是自動(dòng)完成它們)。本說明書提供響應(yīng)用戶采取的動(dòng)作自動(dòng)執(zhí)行的操作的各種例子。系統(tǒng)安全性不存在提供信息安全性的單個(gè)特征或功能。安全性是系統(tǒng)的特性,是用戶、協(xié)議、軟件和硬件的組合的特性。信息安全性的總目標(biāo)是在授權(quán)的用戶之間處理和傳輸信息并防止對(duì)于該信息的未授權(quán)的訪問。
可通過解決以下的安全性目標(biāo)分解和滿足信息安全性目標(biāo):1.(僅對(duì)于預(yù)期使用而言系統(tǒng)和數(shù)據(jù)的)可用性??捎眯允谴_保系統(tǒng)迅速工作并且不對(duì)授權(quán)用戶拒絕服務(wù)的要求。該目標(biāo)保護(hù)不受以下方面中的任一項(xiàng)的有意或偶然嘗試:執(zhí)行數(shù)據(jù)的未授權(quán)刪除或者另外導(dǎo)致拒絕服務(wù)或數(shù)據(jù);和出于未授權(quán)的目的嘗試使用系統(tǒng)或數(shù)據(jù)??捎眯越?jīng)常是組織的最重要的安全性目標(biāo)。2.(系統(tǒng)和數(shù)據(jù)的)完整性。完整性具有兩個(gè)方面:數(shù)據(jù)完整性(數(shù)據(jù)在處于存儲(chǔ)中時(shí)、在處理過程中或者在傳輸中不以未授權(quán)的方式被修改的特性)或系統(tǒng)完整性(系統(tǒng)在以不受未授權(quán)的操控、無損害的方式執(zhí)行期望的功能時(shí)具有的質(zhì)量)。完整性一般是可用性之后的組織的最重要的安全性目標(biāo)。3.(數(shù)據(jù)和系統(tǒng)信息的)機(jī)密性。機(jī)密性是私人或機(jī)密信息不公開給未授權(quán)個(gè)人的要求。機(jī)密性適用于存儲(chǔ)中、處理過程中以及傳送中的數(shù)據(jù)。對(duì)于許多的組織,機(jī)密性在重要性方面通常在可用性和完整性之后。而對(duì)于一些系統(tǒng)以及對(duì)于大多數(shù)系統(tǒng)(例如,認(rèn)證器)中的特定類型的數(shù)據(jù),機(jī)密性是極其重要的。4.(到個(gè)人級(jí)別的)責(zé)任性。責(zé)任性是實(shí)體的動(dòng)作可唯一地追溯到該實(shí)體的要求。責(zé)任性常常是組織政策要求,并且直接支持不可抵賴性、制止(deterrence)、錯(cuò)誤隔離、侵入檢測(cè)和防止和事后恢復(fù)和法律動(dòng)作。5.(充分地滿足其它四個(gè)目標(biāo)的)保證性。保證性是當(dāng)要保護(hù)系統(tǒng)及其處理的信息時(shí)技術(shù)和操作上的安全性措施如預(yù)期的起作用的信心的基礎(chǔ)。在以下情況下通過特定的實(shí)現(xiàn)已充分地滿足其它的四個(gè)安全性目標(biāo)(完整性、可用性、機(jī)密性和責(zé)任性):存在并且正確地實(shí)現(xiàn)需要的功能、存在對(duì)于(用戶或軟件的)無意錯(cuò)誤的對(duì)充分的保護(hù),并且存在足夠的對(duì)于有意的滲透或繞過的抵抗。在沒有就不能滿足其它目標(biāo)的情況下,保證性是必需的。但是,保證性是統(tǒng)一體;需要的保證性的量在系統(tǒng)之間改變。這里描述的實(shí)施例涉及支持系統(tǒng)開發(fā)方法并且可滿足以上討論的目標(biāo)中的一些或全部的信息安全性開發(fā)框架。這里描述的實(shí)施例包括用于創(chuàng)建安全系統(tǒng)的開發(fā)過程。實(shí)施例還包括可在信息安全性目標(biāo)保證水平質(zhì)量的設(shè)計(jì)和開發(fā)中引導(dǎo)架構(gòu)師和/或工程師的相關(guān)聯(lián)的軟件和硬件開發(fā)工具套件??赏ㄟ^限定并滿足以上討論的目標(biāo)中的每一個(gè)目標(biāo)中的功能要求,實(shí)現(xiàn)該目標(biāo)保證水平。實(shí)現(xiàn)的保證水平允許系統(tǒng)不僅提供期望的功能,而且確保不出現(xiàn)不希望的動(dòng)作。術(shù)語(yǔ)“開發(fā)方法學(xué)”可指的是概括引起并引導(dǎo)信息安全性開發(fā)過程的定義的一組規(guī)則和假定的根本原因和一組哲學(xué)假定。術(shù)語(yǔ)“開發(fā)過程”可指的是基于方法學(xué)的開發(fā)的生命周期。在粗的級(jí)別上,它描述如何通過設(shè)計(jì)、實(shí)現(xiàn)、驗(yàn)證、部署和維護(hù)驅(qū)動(dòng)用戶要求和約束。如上所述,這里描述的開發(fā)工具套件是可執(zhí)行以引導(dǎo)用戶或開發(fā)人員通過開發(fā)過程從而實(shí)施方法學(xué)并且可在任何可能的情況使步驟和步驟的多個(gè)部分自動(dòng)化的一組的一個(gè)或更多個(gè)軟件程序。圖1—示例性計(jì)算機(jī)系統(tǒng)圖1示出實(shí)現(xiàn)本發(fā)明的實(shí)施例的示例性計(jì)算機(jī)系統(tǒng)。可以在諸如標(biāo)準(zhǔn)桌面計(jì)算平臺(tái)(例如,PC或Mac)、服務(wù)器、移動(dòng)通信裝置、智能電話等的各種計(jì)算機(jī)系統(tǒng)中的任一個(gè)中實(shí)現(xiàn)本發(fā)明的實(shí)施例。計(jì)算機(jī)系統(tǒng)優(yōu)選包括基于Hyper 技術(shù)的處理器。在以上作為參考加入的美國(guó)專利N0.7415594中描述了 HyperX處理器。圖2和圖3——示例性多處理器系統(tǒng)圖2示出可稱為“HyperX架構(gòu)”的多處理器系統(tǒng)的示例性實(shí)施例。多處理器系統(tǒng)或結(jié)構(gòu)是包括多個(gè)處理器、(統(tǒng)一式和/或分布式)存儲(chǔ)器和通信(或通信網(wǎng)絡(luò))資源的并行計(jì)算平臺(tái)。示例性多處理器系統(tǒng)包括多個(gè)處理器,其中,各處理器與至少一個(gè)其它的處理器耦合,并且,在相應(yīng)的處理器之間存在多個(gè)通信機(jī)制。多處理器系統(tǒng)可包括與處理器耦合的多個(gè)存儲(chǔ)器。例如,存儲(chǔ)器可散布于處理器之中。具體而言,多處理器系統(tǒng)可包括散布于處理器中的多個(gè)通信單元,其中,各通信單元包括存儲(chǔ)器和路由邏輯。如這里使用的那樣,術(shù)語(yǔ)“耦合”意味著直接或間接連接。多處理器系統(tǒng)可以或者可以不體現(xiàn)于單個(gè)集成電路、單個(gè)印刷電路板或單個(gè)系統(tǒng)上。例如,多處理器系統(tǒng)可體現(xiàn)為多個(gè)集成電路、多個(gè)印刷電路板、多個(gè)系統(tǒng)或它們的一些組合。這種多處理器系統(tǒng)的例子是在以上參照的美國(guó)專利N0.7415594中公開的多芯HyperX架構(gòu)。在一個(gè)實(shí)施例中,HyperX架構(gòu)的中心芯構(gòu)建塊是稱為HyperSlice的可改變尺寸的基于單位單元的硬件結(jié)構(gòu)??赏ㄟ^復(fù)制該芯的單位單元以創(chuàng)建多芯并行處理系統(tǒng),從而形成硬件架構(gòu)。各HyperSlice可包括一個(gè)或更多個(gè)DMR (數(shù)據(jù)存儲(chǔ)器和路由器,也稱為“通信元件”)和處理元件(PE)。DMR可向處理資源提供用于快速路由服務(wù)的數(shù)據(jù)存儲(chǔ)器、控制邏輯、寄存器和路由器。通過將HyperSlice結(jié)合在一起從而形成芯片上存儲(chǔ)器網(wǎng)絡(luò),來創(chuàng)建硬件架構(gòu)。該芯片上存儲(chǔ)器網(wǎng)絡(luò)對(duì)于處理資源獨(dú)立并且透明地操作。它可通過支持功能或系統(tǒng)實(shí)現(xiàn)的任意網(wǎng)絡(luò)拓?fù)涞腍yperSlice之間的實(shí)時(shí)可編程和可適應(yīng)通信結(jié)構(gòu)提供按需帶寬??稍谲浖刂葡隆霸谶\(yùn)行中(on-the-fly)”形成和改造HyperSlice的協(xié)調(diào)組。這種動(dòng)態(tài)修改用于評(píng)價(jià)功能的硬件的量的能力允許最佳地應(yīng)用硬件資源以減輕處理瓶頸。DMR可跨芯片以及在芯片之間提供最近鄰居、區(qū)域性和全球通信。DMR可通過四個(gè)不同的傳送模式執(zhí)行這一點(diǎn):存儲(chǔ)器到存儲(chǔ)器、存儲(chǔ)器到寄存器、寄存器到存儲(chǔ)器和寄存器到寄存器。每個(gè)傳送模式可在物理上使用DMR資源以根據(jù)數(shù)據(jù)的位置和軟件算法要求以不同的方式發(fā)送數(shù)據(jù)/消息??梢栽O(shè)置“快速端口 ”設(shè)施以將數(shù)據(jù)字從處理器向任何地方迅速地傳送。對(duì)于塊傳送,DMR內(nèi)的直接存儲(chǔ)器訪問(DMR)引擎可用于管理跨存儲(chǔ)器和路由結(jié)構(gòu)的數(shù)據(jù)移動(dòng)。對(duì)于最近鄰居通信,使用共享的存儲(chǔ)器和寄存器會(huì)是最有效的數(shù)據(jù)移動(dòng)方法。對(duì)于區(qū)域性和全球數(shù)據(jù)移動(dòng),使用路由結(jié)構(gòu)可以是最有效的方法。通信信道可以是動(dòng)態(tài)或者靜態(tài)的??蓪?duì)于數(shù)據(jù)傳送設(shè)置動(dòng)態(tài)路由,并且在完成傳送時(shí)切斷它,以為其它數(shù)據(jù)傳送釋放路由資源。靜態(tài)路由在整個(gè)程序執(zhí)行過程中保持在適當(dāng)?shù)奈恢蒙希⑶抑饕糜诟邇?yōu)先級(jí)和關(guān)鍵的通信??稍谲浖绦蚩刂葡逻M(jìn)行數(shù)據(jù)傳送和通信信道的選擇。可以存在多個(gè)通信信道,以支持任何發(fā)送器和接收器之間的同時(shí)數(shù)據(jù)傳送。DMR的架構(gòu)可允許在多處理器結(jié)構(gòu)中使用不同的可互換PE,以對(duì)于特定的應(yīng)用優(yōu)化系統(tǒng)。HyperX多處理器系統(tǒng)可包括PE的異質(zhì)或同質(zhì)陣列。PE可以是常規(guī)的處理器,或者,作為替代方案,PE可以不符合處理器的常規(guī)的定義。PE對(duì)于某些邏輯功能可以只是用作硬接線處理器的邏輯門的集合,其中,可編程性被用于換取更高的性能、更小的面積和/或更低的功率。圖2示出示例性HyperX系統(tǒng)的處理元件(PE)和數(shù)據(jù)存儲(chǔ)器路由器(DMR)的網(wǎng)絡(luò)的示圖。PE被示為框,而DMR被示為圓。DMR之間的路由信道示為虛線。實(shí)心三角形表示離網(wǎng)通信,而實(shí)線表示DMR之間的活動(dòng)數(shù)據(jù)通信。計(jì)算任務(wù)由其數(shù)值標(biāo)識(shí)符表示,并且被置于執(zhí)行它的PE上。被用于通信的數(shù)據(jù)變量由其名稱表示,并被置于包括它的DMR上。圖3示出包括于芯片上的示例性多處理器系統(tǒng)。如圖所示,與以上關(guān)于圖2描述的實(shí)施例類似,芯片可包括芯片外面的多個(gè)I/o路由器以及內(nèi)部多處理器結(jié)構(gòu)。如圖所示,處理器架構(gòu)可包括固有的多維度,但是,如圖2 圖4A所示,在其當(dāng)前的裸片實(shí)現(xiàn)中在物理上被平坦化。處理器架構(gòu)可具有高的能量效率特性,并且還可基本上是可縮放的并且是可靠的一代表安全和可靠的意思。使得處理器架構(gòu)能夠?qū)崿F(xiàn)無先例的性能的方面包括流線型處理器、存儲(chǔ)器網(wǎng)絡(luò)和靈活的10。處理元件(PE)或芯可以是完全就緒的DSP/GPP,并且基于由可動(dòng)態(tài)擴(kuò)展執(zhí)行管線的可變寬度指令字指令組結(jié)構(gòu)保持的存儲(chǔ)器到存儲(chǔ)器(無高速緩存)結(jié)構(gòu),以保持產(chǎn)出率,同時(shí)使硬件資源的使用最大化。例如,根據(jù)一個(gè)實(shí)施例,單個(gè)指令可在單個(gè)循環(huán)中開始多于40個(gè)的常規(guī)的RISC操作。圖4、圖5、圖6A和圖6B示出多處理器架構(gòu)的HW/SW操作堆棧的另一示圖。存儲(chǔ)器網(wǎng)絡(luò)(DMR)可按需提供自治和瞬時(shí)的帶寬,該帶寬又可向執(zhí)行模型提供兩個(gè)特征。首先,存儲(chǔ)器網(wǎng)絡(luò)可使得能夠?qū)崿F(xiàn)混合存儲(chǔ)器編程模型。在歷史上,由于硬件和編程模型限制,編程模型限于完全分布或完全共享執(zhí)行存儲(chǔ)器模型。這導(dǎo)致硬件適應(yīng)性和可重新配置性的低效率?;旌洗鎯?chǔ)器模型可實(shí)時(shí)地對(duì)于軟件運(yùn)行的改變的動(dòng)態(tài)和需要做出反應(yīng)。第二,通信網(wǎng)絡(luò)可在邏輯上具有拓?fù)洫?dú)立性,例如,實(shí)時(shí)的適應(yīng)和可重新配置。該獨(dú)立性可允許創(chuàng)建適當(dāng)?shù)挠布負(fù)?,以支持算?系統(tǒng)的自然并行性,由此不將算法/系統(tǒng)約束到特定的拓?fù)?。這些特征可使得能夠?qū)崿F(xiàn)任何系統(tǒng)的自然效率。并且,多處理器系統(tǒng)可以是固有地可縮放的、可自我同步的,并且,如果系統(tǒng)需要的話,可有效地支持自治的存儲(chǔ)器一致性。在一個(gè)實(shí)施例中,該系統(tǒng)可分布于在硬件和軟件中支持?jǐn)?shù)以百計(jì)到數(shù)以千計(jì)的處理器的許多裸片/芯片上。在一個(gè)特定的實(shí)施例中,這里描述的軟件限定的安全系統(tǒng)(SDS2)的能力可被描述如下:存在例如密鑰管理和產(chǎn)生、加密/解密、認(rèn)證、可編程引導(dǎo)、物理和邏輯隔離等的能力(例如,圖5所示)的工具箱。另外,存在具有支持固定功能、可配置性、可重新配置性和可編程性的特性的硬件。通過開發(fā)過程,開發(fā)人員能夠通過使用結(jié)合硬件的能力的工具箱創(chuàng)建安全系統(tǒng)的行為或者將其編程。系統(tǒng)一旦被編程,就可被配置為重新使用工具箱和硬件,該系統(tǒng)從工具箱和硬件被創(chuàng)建以便以安全的方式表現(xiàn)行為。在常規(guī)上,安全系統(tǒng)是從與執(zhí)行期望的安全行為的資源分開的資源產(chǎn)生的,并且這兩個(gè)導(dǎo)致以零散的方式開發(fā)安全系統(tǒng),從而導(dǎo)致方案的低效率?;谙到y(tǒng)視角的全盤方案,該新的能力可使得(I)能夠?qū)τ谛枰煌愋偷陌踩缘母鞣N系統(tǒng)創(chuàng)建定制的安全方案、(2)靜態(tài)和動(dòng)態(tài)地兩者地優(yōu)化安全系統(tǒng)的行為和性能以及
(3)從硬件和軟件交互作用本原的限定的行為從底層設(shè)計(jì)系統(tǒng)。這導(dǎo)致開發(fā)可證明的安全系統(tǒng)的潛在能力。圖6A示出示例性軟件架構(gòu),而圖6B示出可受上述的工具箱影響的架構(gòu)的部分。圖7——配置多處理器系統(tǒng)圖7示出用于禁用多處理器系統(tǒng)中的通信的方法??膳c以上的圖表示的計(jì)算機(jī)系統(tǒng)或裝置的任何一種以及其它的裝置結(jié)合使用圖6所示的方法。在各種實(shí)施例中,可以同時(shí)執(zhí)行、以與表示的次序不同的次序執(zhí)行或者可省略所表示的方法要素中的一些。也可根據(jù)需要執(zhí)行附加的方法要素。如圖所示,該方法可如下操作。在702中,可以例如自動(dòng)接收用于多處理器系統(tǒng)或結(jié)構(gòu)的配置。如上所述,多處理器結(jié)構(gòu)可包括多個(gè)處理器和多個(gè)通信元件。各通信元件可被動(dòng)態(tài)配置并且/或者可包括多個(gè)通信端口、存儲(chǔ)器和/或路由引擎以及其它的可能的元件。各處理器可包括至少一個(gè)算術(shù)邏輯單元、指令處理單元和/或多個(gè)處理器端口以及其它可能的元件。通信元件和處理器可以以散布的方式被耦合在一起。例如,對(duì)于處理器中的每一個(gè)處理器,多個(gè)處理器端口可被配置為用于與多個(gè)通信元件的第一子集耦合,并且,對(duì)于通信元件中的每一個(gè)通信元件,通信端口的第一子集可被配置為用于與多個(gè)處理器的子集耦合,并且,通信端口的第二子集可被配置為用于與多個(gè)通信元件的第二子集耦合。該配置可規(guī)定禁用處理器和/或通信元件中的一個(gè)或更多個(gè)之間的通信路徑。例如,該配置可規(guī)定禁用一個(gè)或更多個(gè)處理器和一個(gè)或更多個(gè)通信元件、一個(gè)或更多個(gè)處理器和一個(gè)或更多個(gè)其它的處理器和/或一個(gè)或更多個(gè)通信元件和一個(gè)或更多個(gè)其它的通信元件之間的通信路徑。作為幾個(gè)例子,該配置可規(guī)定禁用多處理器結(jié)構(gòu)的第一部分與多處理器結(jié)構(gòu)的第二部分之間的通信,以例如在操作過程中隔離第一部分與第二部分。作為另一例子,該配置可規(guī)定禁用多處理器結(jié)構(gòu)的第二部分對(duì)于多處理器結(jié)構(gòu)的第一部分的存儲(chǔ)器訪問,例如,使得第二部分不能在操作過程中訪問包括于第一部分中的存儲(chǔ)器。因此,例如,為了確保多處理器結(jié)構(gòu)的各個(gè)部分的安全,該配置可禁用多處理器結(jié)構(gòu)中的各種通信路徑。例如,該配置可允許確保多處理器結(jié)構(gòu)的一部分的安全,并對(duì)于多處理器結(jié)構(gòu)的剩余部分提供安全性功能。作另一例子,多處理器結(jié)構(gòu)的隔離或限制部分可被用于執(zhí)行需要針對(duì)多處理器結(jié)構(gòu)的其它部分(例如,在多處理器結(jié)構(gòu)的其它部分上執(zhí)行的可能具有惡意的其它軟件)的篡改確保安全的重要的功能。在一個(gè)實(shí)施例中,該配置可規(guī)定多處理器結(jié)構(gòu)的第一部分可能能夠向多處理器結(jié)構(gòu)的剩余部分提供數(shù)據(jù),但不接收數(shù)據(jù)。作為替代方案,該部分的進(jìn)入數(shù)據(jù)可限于可根據(jù)安全方法(例如,在多處理器結(jié)構(gòu)的隔離部分上執(zhí)行)處理或分析的端口的某個(gè)子集。為了增加結(jié)構(gòu)和/或在結(jié)構(gòu)上執(zhí)行的軟件的安全性,該配置可根據(jù)需要在多處理器結(jié)構(gòu)中規(guī)定各種障礙中的任一種。還應(yīng)注意,該配置可規(guī)定諸如以下描述的安全性措施的其它的安全性措施。因此,該配置可規(guī)定在圖7和圖8中描述的通信路徑的禁用,但也可規(guī)定其它的安全性措施??筛鶕?jù)各種方式接收配置。例如,可在多處理器結(jié)構(gòu)或包括多處理器結(jié)構(gòu)的系統(tǒng)的引導(dǎo)過程中接收該配置。具體而言,在一個(gè)實(shí)施例中,該配置可被存儲(chǔ)于諸如只讀存儲(chǔ)器或非易失性存儲(chǔ)器的安全存儲(chǔ)器中。作為替代方案,或者,另外,可通過使用安全性措施(例如,比較圖像的散列與預(yù)期的散列以及其它各種可能)驗(yàn)證和/或認(rèn)證該配置(或包括該配置的圖像/存儲(chǔ)器)。作為替代方案,或者,另外,配置(或包括該配置的圖像/存儲(chǔ)器)可以以加密的形式被存儲(chǔ),并且當(dāng)被接收時(shí)可被解密。在另一實(shí)施例中,可從主機(jī)系統(tǒng)接收配置(例如,諸如圖1所示的計(jì)算機(jī)系統(tǒng),例如,當(dāng)測(cè)試多處理器系統(tǒng)的軟件和/或操作以執(zhí)行任務(wù)時(shí))。在一些實(shí)施例中,配置可包括用于在多處理器系統(tǒng)上執(zhí)行的軟件或者結(jié)合其一起使用。例如,配置可作為可如上面討論的那樣驗(yàn)證、認(rèn)證和/或解密的封裝的一部分被接收。因此,配置可規(guī)定多處理器結(jié)構(gòu)的第一部分的隔離或安全化,且驗(yàn)證的軟件可被部署到該第一部分。因此,在一個(gè)實(shí)施例中,可通過該配置確保該第一部分的硬件/軟件組合的安全。作為響應(yīng),在704中,多處理器結(jié)構(gòu)可根據(jù)該配置在硬件中被自動(dòng)配置,以例如禁用由該配置規(guī)定的通信路徑。因此,多處理器結(jié)構(gòu)可被配置為根據(jù)該配置執(zhí)行軟件應(yīng)用(或軟件應(yīng)用的一部分)。在一個(gè)實(shí)施例中,配置可包括設(shè)定與一個(gè)或更多個(gè)處理器和/或一個(gè)或更多個(gè)通信元件對(duì)應(yīng)的寄存器值,以禁用由該配置規(guī)定的通信路徑。在一個(gè)實(shí)施例中,在配置之后,禁用的通信路徑可能不能通過軟件被恢復(fù)。在706中,多處理器結(jié)構(gòu)可通過使用該配置操作,例如,從而執(zhí)行一個(gè)或更多個(gè)軟件應(yīng)用。例如,如果多處理器結(jié)構(gòu)的第一部分通過以上的配置相對(duì)于多處理器結(jié)構(gòu)的另一部分被確保安全或者被隔離,那么它可在整個(gè)操作中保持被確保安全或者被隔離。在一個(gè)實(shí)施例中,以上描述的方法可被執(zhí)行以確保系統(tǒng)的安全,并可“鎖定下來”或者確保安全,直到系統(tǒng)被復(fù)位(例如,重新引導(dǎo)或者掉電)。因此,在一個(gè)實(shí)施例中,可通過使用以上接收的配置靜態(tài)地確保系統(tǒng)的安全。注意,以下例如關(guān)于“障礙”和/或其它安全性操作的創(chuàng)建而提供關(guān)于該方法的其它的細(xì)節(jié)。圖8—?jiǎng)討B(tài)禁用多處理器系統(tǒng)中的通信圖8示出用于動(dòng)態(tài)禁用多處理器系統(tǒng)中的通信的方法??山Y(jié)合在以上的圖中表示的計(jì)算機(jī)系統(tǒng)或裝置的任何一種或其它裝置使用圖6所示的方法。具體而言,以上關(guān)于圖7的方法描述的各種細(xì)節(jié)也適用于該方法。但是,如下面討論的那樣,作為以上討論的靜態(tài)配置的替代,可以以動(dòng)態(tài)的方式執(zhí)行多處理器系統(tǒng)的配置。在各種實(shí)施例中,可以同時(shí)執(zhí)行、以與所表示的次序不同的次序執(zhí)行或者可省略所表示的方法要素中的一些。也可根據(jù)需要執(zhí)行附加的方法要素。如圖所示,該方法可如下操作。在802中,可以例如自動(dòng)接收用于多處理器系統(tǒng)或結(jié)構(gòu)的第一配置。與以上情況類似,第一配置可規(guī)定禁用處理器和/或通信元件中的一個(gè)或更多個(gè)之間的通信路徑,以例如向多處理器系統(tǒng)和/或在多處理器系統(tǒng)上執(zhí)行的軟件提供安全性。但是,第一配置也可規(guī)定諸如以下討論的安全性措施的其它安全性措施以及其它的可能性。如上所述,第一配置可包括用于在多處理器系統(tǒng)上執(zhí)行的軟件或者結(jié)合其一起使用。例如,第一配置可作為可如上面討論的那樣驗(yàn)證的封裝的一部分被接收。因此,該配置可規(guī)定多處理器結(jié)構(gòu)的第一部分的隔離或安全化,且驗(yàn)證的軟件可被部署到至少該第一部分。因此,在一個(gè)實(shí)施例中,可通過該配置確保該第一部分的硬件/軟件組合的安全??筛鶕?jù)各種方式接收第一配置。例如,可在多處理器結(jié)構(gòu)或包括多處理器結(jié)構(gòu)的系統(tǒng)的引導(dǎo)過程中接收第一配置。在一個(gè)實(shí)施例中,第一配置可被存儲(chǔ)于諸如在引導(dǎo)時(shí)被自動(dòng)加載的只讀存儲(chǔ)器或非易失性存儲(chǔ)器的安全存儲(chǔ)器中。作為替代方案,或者,另外,可通過使用安全性措施(例如,比較圖像的散列與預(yù)期的散列以及其它各種可能)驗(yàn)證和/或認(rèn)證該配置(或包括該配置的圖像/存儲(chǔ)器)。作為替代方案,或者,另外,該配置(或包括該配置的圖像/存儲(chǔ)器)可以以加密的形式被存儲(chǔ),并且當(dāng)被接收時(shí)可被解密。因此,不是只被讀取,而是可通過使用各種安全性措施驗(yàn)證、認(rèn)證和/或解密該配置和/或軟件。與以上的704類似,在804中,多處理器結(jié)構(gòu)可根據(jù)該配置在硬件中被自動(dòng)配置,以例如禁用由該配置規(guī)定的通信路徑。因此,多處理器結(jié)構(gòu)可被配置為根據(jù)該配置執(zhí)行軟件應(yīng)用(或軟件應(yīng)用的一部分)。在806中,與以上的706類似,多處理器結(jié)構(gòu)可通過使用該配置操作,例如,從而執(zhí)行一個(gè)或更多個(gè)軟件應(yīng)用。例如,如果多處理器結(jié)構(gòu)的第一部分通過以上的配置相對(duì)于多處理器結(jié)構(gòu)的另一部分被確保安全或者被隔離,那么它可在整個(gè)操作中保持被確保安全或者被隔離。在一些實(shí)施例中,在808中,例如,在多處理器結(jié)構(gòu)的操作過程中可多次地以動(dòng)態(tài)的方式執(zhí)行圖7的方法(702 706)。例如,可以使用第一配置以用執(zhí)行認(rèn)證的代碼的多處理器系統(tǒng)的安全部分配置系統(tǒng)。在一個(gè)實(shí)施例中,認(rèn)證的代碼可包括可在整個(gè)操作中使用的多個(gè)配置或這些配置的修改。例如,可從認(rèn)證的代碼接收第二配置,并且可對(duì)于第二配置執(zhí)行以上討論的自動(dòng)配置。在本例子中,初始配置可確保系統(tǒng)被適當(dāng)?shù)卮_保安全并且代碼被適當(dāng)?shù)仳?yàn)證。因此,源自包括其它的配置的代碼的其它的重新配置和操作可繼續(xù)在多處理器系統(tǒng)的整個(gè)操作中是安全的。換句話說,一旦被配置,在多處理器系統(tǒng)上執(zhí)行的代碼就能夠在執(zhí)行過程中動(dòng)態(tài)重新配置多處理器系統(tǒng)。假定初始軟件被驗(yàn)證并且是安全的,那么多處理器系統(tǒng)的操作可因此仍保持安全。用于確保多處理器系統(tǒng)的安全的示例性細(xì)節(jié)以下提供用于確保諸如以上描述的那些的多處理器系統(tǒng)的安全的示例性細(xì)節(jié)。這些細(xì)節(jié)僅作為例子被提供,并且不是要限制這里描述的實(shí)施例的范圍。以下的描述與圖9 圖15對(duì)應(yīng)。分層或分階段的開發(fā)和驗(yàn)證過程可利用一套軟件和軟件可限定硬件,以創(chuàng)建可證明的安全(通過包括正常方法)信息安全性方案,例如,解決:第三方IP保護(hù)、安全引導(dǎo)、數(shù)字權(quán)利管理(DRM)和安全處理(紅/黑)。這里描述的實(shí)施例提供用于通過分層或分階段的開發(fā)和驗(yàn)證過程創(chuàng)建可證明的安全信息安全性方案的單個(gè)框架。該過程的一部分可被用于確保軟件IP的安全并用于例如在單個(gè)裸片上執(zhí)行黑/紅處理。與以上的討論類似,本發(fā)明的實(shí)施例可在結(jié)構(gòu)中提供隔離/安全性區(qū)域的硬件實(shí)現(xiàn)的物理分離。例如,圖9示出示例性處理資源和DMR以及例如以上關(guān)于圖7和圖8描述的可被禁用的端口??稍谟布薪⒆柚箶?shù)據(jù)和控制的流動(dòng)并且可提供處理器微架構(gòu)的區(qū)域/分區(qū)及其之間的隔離的隔離/安全性障礙。障礙可被用于創(chuàng)建包封與特定的過程或用戶相關(guān)聯(lián)的處理、存儲(chǔ)器和通信資源的安全性分區(qū)。障礙可具有一個(gè)或更多個(gè)受控訪問點(diǎn)。障礙可跨越多個(gè)芯片,但一般被約束于單個(gè)芯片內(nèi),以避免芯片間探測(cè)(特殊的模塊封裝可提供針對(duì)這種探測(cè)的保護(hù))。另外,可在每個(gè)處理芯上得到用于安全性的高性能處理。這包括但不限于(I)RSA密鑰產(chǎn)生(不對(duì)稱)、(2)隨機(jī)數(shù)產(chǎn)生、(3)散列產(chǎn)生、(4)加密和解密和(5) RSA密鑰(和其它數(shù)據(jù))存儲(chǔ)。SDS2系統(tǒng)可引導(dǎo)設(shè)計(jì)人員/開發(fā)人員通過保護(hù)有價(jià)值或敏感信息(數(shù)據(jù)或軟件)在其存儲(chǔ)中以及從其在一個(gè)位置傳送到另一位置時(shí)不被竊取或者篡改的過程。同時(shí),需要使得授權(quán)的用戶可迅速地并且以最少的代價(jià)量得到有價(jià)值的信息??赏ㄟ^集成有協(xié)議、應(yīng)用軟件和(硬件輔助的和軟件限定的)硬件功能的信息安全性系統(tǒng)和操作員訓(xùn)練滿足這些有時(shí)沖突的要求。SDS2系統(tǒng)可通過引導(dǎo)開發(fā)過程在軟件的控制下向軟件可編程硬件特征提供該跨層軟件堆棧(協(xié)議、位置軟件等)開發(fā)方法,以使得能夠?qū)崿F(xiàn)安全性方案。以下的部分更詳細(xì)地描述系統(tǒng)的示例性實(shí)施例。用于信息安全性的相關(guān)聯(lián)的工具箱:為了提供信息安全處理,可能需要幾個(gè)概念。以下的段落描述用于信息安全性概念的工具箱中的一些??删幊痰奈锢砗瓦壿嫺綦x安全性障礙可通過從障礙內(nèi)控制訪問的物理或邏輯隔離/障礙來提供確保芯片的多個(gè)部分的安全并對(duì)其進(jìn)行驗(yàn)證的能力。這允許已被解密的代碼和數(shù)據(jù)以防止由不安全的代理的外部訪問的方式駐留于芯片上并在其上面運(yùn)行。它可支持在芯片復(fù)位、上電或安全性違反時(shí)將存儲(chǔ)器清零,或者在這些事件中圍繞受保護(hù)的數(shù)據(jù)重新構(gòu)建相同的安全墻,由此確保受保護(hù)的代碼/數(shù)據(jù)決不留在不安全區(qū)域以被對(duì)于裝置具有非認(rèn)證的編程訪問的任何人訪問。密鑰產(chǎn)生和管理密鑰產(chǎn)生和管理可包括在芯片上在系統(tǒng)水平上不能被非認(rèn)證的用戶讀取或修改的易失性或非易失性存儲(chǔ)器中存儲(chǔ)解密密鑰。它可為系統(tǒng)集成器提供在生產(chǎn)時(shí)間創(chuàng)建或加載這些密鑰并且確保它們的安全的能力??梢蕴峁┓椒ǎ詫⑦@些密鑰永久地鎖定于安全存儲(chǔ)裝置中,而沒有任何重新編程,或者以允許它們被暫時(shí)鎖定并在以后被安全、認(rèn)證的用戶修改。在這里的描述中,為了在進(jìn)一步的解釋需要細(xì)節(jié)時(shí)提供參照,參照基于能夠基于硬件的物理特性或者基于硬件環(huán)振蕩器的隨機(jī)數(shù)產(chǎn)生器(RNG)產(chǎn)生適當(dāng)?shù)目芍貜?fù)唯一熵的物理上不可克隆功能(PUF)的一次可編程(OTP)類型存儲(chǔ)器或隨機(jī)數(shù)產(chǎn)生??稍谟布谢蛘咄ㄟ^軟件這二者支持隨機(jī)數(shù)產(chǎn)生。加密和解密代碼和數(shù)據(jù)兩者均可在加密的流中被加載到芯片中,并且使其在芯片上被解密以供使用。一旦被解密,即使在芯片復(fù)位之后,也可保護(hù)其不受外部訪問或修改??赏ㄟ^硬件引擎完成這一點(diǎn),但是,為了保持完全的軟件定義,可使用通過可編程引導(dǎo)機(jī)制加載的軟件引擎。這使該實(shí)現(xiàn)保持與硬件輔助的軟件模型方法學(xué)一致。認(rèn)證通過提供一些類型的公共密鑰類型信息(例如,軟件密鑰、硬件密鑰、計(jì)量生物信息等),可以使用受保護(hù)的代碼來認(rèn)證用戶并允許訪問使用現(xiàn)有的編程或者在更高的安全性級(jí)別以修改它。這可以是可通過可編程引導(dǎo)訪問的軟件或硬件實(shí)現(xiàn)。例如,該特征可被用于實(shí)現(xiàn)數(shù)字權(quán)利管理功能??删幊桃龑?dǎo)(支持安全和非安全)安全引導(dǎo)提供可定制軟件可限定引導(dǎo)序列,從而以芯片(和系統(tǒng))完全受保護(hù)和被確保安全的方式引導(dǎo)芯片(和系統(tǒng))。一旦啟用安全引導(dǎo),則對(duì)于芯片的引腳的物理訪問可能是不可能的。訪問或改變芯片上或(加載到芯片上的)系統(tǒng)中的安全的代碼或數(shù)據(jù)中的任一個(gè)可能需要認(rèn)證。系統(tǒng)復(fù)位或者功率循環(huán)可導(dǎo)致芯片運(yùn)行該模式并在允許任何用戶級(jí)訪問之前確保所有需要的代碼和數(shù)據(jù)的安全。模式可被編程為其中弓I導(dǎo)代碼可被永久鎖定或者被允許由認(rèn)證的用戶改變。圖1lA和圖1lB提供安全引導(dǎo)系統(tǒng)的示例性總體框圖。從這些圖可見提供的基本安全性塊并且可以看到它們?nèi)绾芜B接到其它的芯片硬件。該設(shè)計(jì)可使用DMR中的可用的存儲(chǔ)器作為存儲(chǔ)器緩沖器,以供處理安全引導(dǎo)代碼中使用。通過該功能,PE還能夠在任務(wù)模式中使用DMR用于緩沖可通過所提供的硬件塊加密、解密、簽署或認(rèn)證的數(shù)據(jù)。另外,可在于存儲(chǔ)器中設(shè)置串行總線命令序列時(shí)使用存儲(chǔ)器緩沖器,以通過DMR中的DMR信道向串行總線控制器發(fā)送。該過程可提高需要這些功能的算法的總效率,并且DMR使用可對(duì)于其它的關(guān)鍵的處理任務(wù)釋放PE。圖1lB示出示例性數(shù)據(jù)流動(dòng),其中還示出一些小的控制流動(dòng)。更詳細(xì)地,圖1lA和圖1lB示出HyperX高級(jí)安全性框圖。注意,在圖中,存在對(duì)于描繪的OTP的幾個(gè)不同的使用。從架構(gòu)的觀點(diǎn)來看,根據(jù)特定的實(shí)現(xiàn)的需要,這些存儲(chǔ)器可以在尺寸和數(shù)量上具有不同的配置。主存儲(chǔ)器(程序存儲(chǔ)區(qū))在表示的組中是最大的。除此之外,存在較小的存儲(chǔ)器,一個(gè)用于用戶/安全性暫存器,而另一個(gè)用于可多次編程(MTP)仿真。它可被用于將主存儲(chǔ)器配置成多個(gè)可重新映射的頁(yè),使得可以校正錯(cuò)誤并且/或者可修改或替代密鑰。這可通過可編程位配置,使得某些頁(yè)可被永久鎖定,并且其它的頁(yè)可被程序控制的認(rèn)證的用戶訪問。如果希望的話,這允許需要的安全性以及場(chǎng)可升級(jí)代碼/密鑰。注意,這些存儲(chǔ)器的功能和使用可基于所使用的不同的非易失性存儲(chǔ)器稍微改變。例如,這里使用許多工作和邏輯以用OTP仿真可多次編程性。在可多次編程非易失性技術(shù)(諸如FLASH)的情況下,該工作和邏輯可被重新引向固有可重寫存儲(chǔ)器的鎖定。使用IO禁用信號(hào)以在安全引導(dǎo)過程中保持芯片IO禁用,使得在構(gòu)建安全性墻之前不允許外部訪問,由此使得不需要引腳級(jí)別的安全性保護(hù)。一種選項(xiàng)是即使在引導(dǎo)過程的剩余部分中也保持其被斷言(10禁用)(除了一旦安全部分完成就需要在外部繼續(xù)引導(dǎo)的SPI引腳以外)。在OTP寄存器中支持的另一特征是一旦芯片被完全制造測(cè)試,就關(guān)斷全芯片掃描端口的能力。這在系統(tǒng)級(jí)上提供附加的安全性級(jí)別。例如,對(duì)于適當(dāng)?shù)墓δ?,芯片可使用幾個(gè)模式??捎蓤D1lA和圖1lB所示的可寫入、非易失性存儲(chǔ)裝置(熔絲)[可配置]來控制這些模式。可以提供附加的非易失性存儲(chǔ)裝置以作為后備密鑰(BUK)使用。PUF可以是RNGl電路的組成部分。還可在任務(wù)模式中對(duì)于隨機(jī)數(shù)訪問它。對(duì)于任務(wù)模式還提供附加的隨機(jī)數(shù)產(chǎn)生器(RNG2)。它可與RNGl具有不同的硬件設(shè)計(jì),以提供替代性的方法,例如,硬件環(huán)振蕩器。還可存在具有電池支持的選項(xiàng)(通過封裝選項(xiàng)提供)的小的RAM,如果該RAM易失的話。該存儲(chǔ)器可被用作系統(tǒng)配置/提供信息的電池支持的存儲(chǔ)、任選的密鑰存儲(chǔ)、AC位的存儲(chǔ),或者甚至可包含用于小的引導(dǎo)操作的足夠的引導(dǎo)代碼(足以編程PE或這兩者)。在一個(gè)實(shí)施例中,如果檢測(cè)到篡改,那么該RAM可被歸零。安全弓I導(dǎo)控制部分可提供狀態(tài)機(jī)控制,以初始化安全弓I導(dǎo)硬件并執(zhí)行安全引導(dǎo)序列。它還可提供控制,以配置IP塊的操作模式并基于可配置的硬件設(shè)置啟用/禁用這些塊。篡改檢測(cè)篡改檢測(cè)輸入(與另一個(gè)多路復(fù)用或者單獨(dú)的)可發(fā)出檢測(cè)到篡改的信號(hào)。這可以在芯片內(nèi)使用,以發(fā)出如下信號(hào),即變化是功能上希望的?;谟脩艟幊?,它可導(dǎo)致存儲(chǔ)器的“歸零”(或存儲(chǔ)器被置于不定狀態(tài)),并任選地將引導(dǎo)模式轉(zhuǎn)換回其中不再?gòu)腛TP讀取安全代碼的狀態(tài),由此使得裝置對(duì)于板上的安全代碼沒有功能。在該點(diǎn)上,看到安全代碼的僅有的方式可以是物理讀取可純粹通過選擇供使用的非易失性存儲(chǔ)器的安全本質(zhì)控制的位位置。通過程序控制基于該信號(hào)啟用或禁用其它的特征。除了該引腳以外,封裝的蓋子如果被去除的話也可提供篡改檢測(cè)信令。軟件開發(fā)過程圖10示出支持SDS2方法學(xué)和過程的示例性HyperX開發(fā)系統(tǒng)??稍趫D10所示的下層能力上構(gòu)建軟件開發(fā)過程,這里,系統(tǒng)約束擴(kuò)展以識(shí)別各階段的安全性要求、所選擇的實(shí)現(xiàn)方法(SW和HW特征)、用于證明保證的常見方法、通過完全可編程和可定制安全性開發(fā)環(huán)境方案由完全仿真和測(cè)試支持的系統(tǒng)功能和性能的驗(yàn)證。啟用硬件特征HyperX系統(tǒng)可包括基于軟件的方案。因而,可以以與該模型一致的方式實(shí)現(xiàn)安全性實(shí)現(xiàn)(障礙、密鑰管理、認(rèn)證、解密等)并且保持其作為在HyperX平臺(tái)上運(yùn)行的軟件。這可防止最多提供可能方案的較小子集的定制硬件的設(shè)計(jì)和實(shí)現(xiàn)。HyperX硬件/處理器可包括允許設(shè)計(jì)和實(shí)現(xiàn)這些軟件方案的硬件“鉤環(huán)(hook)”。因而,在一個(gè)實(shí)施例中,該設(shè)計(jì)可被視為“基于硬件輔助軟件的、可驗(yàn)證的、安全性”。它可提供純硬件方案所需要的基本要素和伴隨它一起到來的、具有軟件方案的可重新配置性而沒有其固有的安全性漏洞的安全性。例子可選擇ΡΕ_0_0 (或特定的處理元件)作為安全性實(shí)現(xiàn)的開始點(diǎn)。在不改變?cè)O(shè)計(jì)的意圖的情況下,可基于其它的設(shè)計(jì)考慮選擇附加或不同的PE。一次可編程(OTP)類型存儲(chǔ)器與可通過ΡΕ_0_0和DAP (通過引導(dǎo)控制器)訪問的相關(guān)聯(lián)的空路由器(Null Router)寄存器總線連接以用于編程。注意,這是通向OTP存儲(chǔ)器的兩個(gè)可能的讀取/寫入路徑。這不意味著將該設(shè)計(jì)僅限于兩個(gè)路徑,而是對(duì)于當(dāng)前的設(shè)計(jì)點(diǎn)僅選擇為兩個(gè)。在所有情況下,對(duì)于每個(gè)路徑,可在編程結(jié)構(gòu)內(nèi)單獨(dú)地確保它的訪問的安全。一旦被編程,OTP就可被鎖定,使得它不再可被ΡΕ_0_0或DAP寫入或讀取。該行為可通過系統(tǒng)設(shè)計(jì)人員將編程。這將其保護(hù)為安全區(qū)域,并允許在這里存儲(chǔ)解密密鑰(密鑰加密密鑰或KEK和加密的主機(jī)密鑰)以及安全的非加密的代碼兩者??稍诿總€(gè)頁(yè)的基礎(chǔ)上完成OTP的該編程和保護(hù)。頁(yè)在其安全性信息被配置之前可通過PE或引導(dǎo)控制器寫入和讀取。這允許它被驗(yàn)證為正確。寫入可選擇的安全性位允許對(duì)于所有用戶或者僅對(duì)于非認(rèn)證的用戶完全鎖定或者部分鎖定讀取/寫入訪問的控制。這與在什么頁(yè)開始引導(dǎo)的可編程值一起允許通過使用OTP的新頁(yè)用新代碼替代引導(dǎo)代碼。在該OTP的編程之前,芯片在正常操作中表現(xiàn)行為,并且從SPI (如果這些管腳被這樣配置的話)弓丨導(dǎo)并允許通過正常的端口實(shí)現(xiàn)并行引導(dǎo)模式訪問。一旦OTP被編程,那么在復(fù)位時(shí),芯片就可使得所有的并行端口和DAP被禁用,并且安全引導(dǎo)控制器邏輯可從板上OTP存儲(chǔ)器引導(dǎo)芯片。該引導(dǎo)可完全確保區(qū)域的安全,并加載可用于通過芯片上的端口認(rèn)證用戶的解密引擎。注意,在安全引導(dǎo)部分中不允許外部訪問。因此,引腳訪問不需要保護(hù)。一旦該部分被確保安全,就將引導(dǎo)轉(zhuǎn)交給標(biāo)準(zhǔn)的引導(dǎo)控制器邏輯,并且端口全部被啟用?,F(xiàn)在,可正常地加載非安全代碼。由于它是完全可編程的,因此,安全引導(dǎo)部分也可加載小的安全的解密引擎,該解密引擎然后通過ΡΕ_0_0處理引導(dǎo)過程的剩余部分?,F(xiàn)在,完全加密的代碼和數(shù)據(jù)可從芯片外加載并且當(dāng)其被加載到芯片上時(shí)通過該引擎解密。與小的OTP相比,這允許芯片的更大的部分在安全的模式中運(yùn)行??梢灾С侄鄠€(gè)安全引導(dǎo)圖像。這允許生產(chǎn)芯片在制造時(shí)具有加載到自身中的一些預(yù)先配置的安全性代碼,以在傳輸時(shí)增強(qiáng)芯片的基本安全性特征。該特征的一種可能的使用是在復(fù)位時(shí)提供存儲(chǔ)器“歸零”(或者置于不定狀態(tài))的功能,使得所有存儲(chǔ)器內(nèi)容在用戶級(jí)別(引腳)訪問被啟用之前被清零。還存在其它的可能的使用。通過芯片上的 當(dāng)前的SPI端口,安全引導(dǎo)模式的仿真是可用的。它可被用于對(duì)于安全性算法的提出和調(diào)試模擬0ΤΡ,而不需要將OTP編程。這可允許開發(fā)環(huán)境完全通過現(xiàn)有端口測(cè)試安全系統(tǒng),然后,一旦完全開發(fā)和調(diào)試,就將OTP編程一相對(duì)于OTP模式支持不修改以在仿真模式中運(yùn)行。用于將OTP編程的替代性方法是通過外部DAP。在該模式以及前面描述的ΡΕ_0_0編程訪問的方法兩者中,存儲(chǔ)器中的一個(gè)或更多個(gè)頁(yè)可保持不受保護(hù)并允許對(duì)于加密的密鑰數(shù)據(jù)的存儲(chǔ)的ΡΕ_0_0訪問。對(duì)于ΡΕ_0_0和DAP這二者,能夠單獨(dú)地選擇讀取和寫入訪問保護(hù)?;跐撛诘氖褂们闆r,按兩個(gè)分組處理和組織以下的特征。第一組主要基于對(duì)于支持靜態(tài)安全性結(jié)果的關(guān)注。換句話說,區(qū)域一旦被確保安全就可保持有效,直到出現(xiàn)芯片復(fù)位或電力循環(huán)。雖然它對(duì)于實(shí)現(xiàn)安全處理是必要的功能并且對(duì)于潛在的應(yīng)用的子集是足夠的,但是,它不是對(duì)于所有的安全性需要的完整的方案。第二區(qū)域基于支持動(dòng)態(tài)安全性障礙和/或靜態(tài)和動(dòng)態(tài)安全性障礙的組合并且有利于高層安全性概念。靜態(tài)安全性障礙以下的特征、工具提供用于支持靜態(tài)安全性操作需要的基線。為了澄清,提供被視為必要的說明。存儲(chǔ)器總線設(shè)計(jì)、啟動(dòng)定序(復(fù)位…)、MTP仿真、寄存器規(guī)范(位定義)和配置位的示例性使用和數(shù)量。下表示出示例寄存器規(guī)范:表1:示例寄存器規(guī)范
權(quán)利要求
1.一種用于禁用多處理器結(jié)構(gòu)中的通信的方法,該方法包括: 接收用于所述多處理器結(jié)構(gòu)的配置,其中,所述多處理器結(jié)構(gòu)包括多個(gè)處理器和多個(gè)通信元件,其中,所述多個(gè)通信元件中的每一個(gè)通信元件包括存儲(chǔ)器,其中所述配置規(guī)定禁用以下中的一個(gè)或更多個(gè)之間的通信路徑: 一個(gè)或更多個(gè)處理器和一個(gè)或更多個(gè)通信元件; 一個(gè)或更多個(gè)處理器和一個(gè)或更多個(gè)其它的處理器;或 一個(gè)或更多個(gè)通信元件和一個(gè)或更多個(gè)其它的通信元件; 自動(dòng)地在硬件中配置所述多處理器結(jié)構(gòu),以禁用由所述配置規(guī)定的通信路徑; 操作所述多處理器結(jié)構(gòu),以執(zhí)行軟件應(yīng)用,其中,所述多處理器結(jié)構(gòu)根據(jù)所述配置操作。
2.根據(jù)權(quán)利要求1的方法,其中,所述自動(dòng)配置所述多處理器結(jié)構(gòu)包括設(shè)定與所述一個(gè)或更多個(gè)處理器和/或所述一個(gè)或更多個(gè)通信元件對(duì)應(yīng)的寄存器值,以禁用由所述配置規(guī)定的通信路徑。
3.根據(jù)前面的權(quán)利要求中的任一項(xiàng)的方法,其中,在所述自動(dòng)配置之后,禁用的通信路徑不能通過軟件被恢復(fù)。
4.根據(jù)前面的權(quán)利要求中的任一項(xiàng)的方法,其中,所述配置規(guī)定所述多處理器結(jié)構(gòu)的第一部分與所述多處理器 結(jié)構(gòu)的第二部分之間的通信的禁用,其中,在操作過程中,所述第一部分與所述第二部分隔離。
5.根據(jù)前面的權(quán)利要求中的任一項(xiàng)的方法,其中,所述配置規(guī)定所述多處理器結(jié)構(gòu)的第二部分對(duì)所述多處理器結(jié)構(gòu)的第一部分的存儲(chǔ)器訪問的禁用,其中,在操作過程中,所述第二部分不能訪問包括于所述第一部分中的存儲(chǔ)器。
6.根據(jù)權(quán)利要求1和權(quán)利要求3 5中的任一項(xiàng)的方法,還包括: 將認(rèn)證的代碼加載到所述多處理器結(jié)構(gòu)中,其中,所述配置從所述認(rèn)證的代碼被接收; 從所述認(rèn)證的代碼接收第二配置;和 基于所述第二配置執(zhí)行所述自動(dòng)配置。
7.根據(jù)前面的權(quán)利要求中的任一項(xiàng)的方法,其中,在所述多處理器結(jié)構(gòu)的引導(dǎo)過程中自動(dòng)執(zhí)行所述接收。
8.根據(jù)前面的權(quán)利要求中的任一項(xiàng)的方法,其中,所述多個(gè)通信元件包括動(dòng)態(tài)可配置通信元件,每個(gè)動(dòng)態(tài)可配置通信元件包括多個(gè)通信端口、第一存儲(chǔ)器和路由引擎。
9.根據(jù)前面的權(quán)利要求中的任一項(xiàng)的方法,其中,對(duì)于所述處理器中的每一個(gè)處理器,多個(gè)處理器端口被配置為用于與所述多個(gè)通信元件的第一子集耦合; 其中,對(duì)于所述通信元件中的每一個(gè)通信元件,通信端口的第一子集被配置為用于與所述多個(gè)處理器的子集耦合,并且,通信端口的第二子集被配置為用于與所述多個(gè)通信元件的第二子集耦合。
10.根據(jù)前面的權(quán)利要求中的任一項(xiàng)的方法,其中,所述多個(gè)處理器和所述多個(gè)通信元件以散布的布置被耦合在一起。
11.一種被配置為實(shí)現(xiàn)權(quán)利要求1 10中的任一項(xiàng)的計(jì)算機(jī)程序。
12.—種系統(tǒng),包括:多處理器系統(tǒng),其中,所述多處理器系統(tǒng)包括多個(gè)處理器和多個(gè)通信元件,其中所述多個(gè)通信元件中的每一個(gè)通信元件包括存儲(chǔ)器,其中,所述多處理器結(jié)構(gòu)被配置為執(zhí)行權(quán)利要求I 7中的任一項(xiàng)。
13.根據(jù)權(quán)利要求12的系統(tǒng),其中,各處理器包括至少一個(gè)算術(shù)邏輯單元、指令處理單元和多個(gè)處理器端口。
14.根據(jù)權(quán)利要求12和13的系統(tǒng),其中,每個(gè)通信元件包括動(dòng)態(tài)可配置通信元件,每個(gè)動(dòng)態(tài)可配置通信元件包括多個(gè)通信端口、第一存儲(chǔ)器和路由引擎。
15.根據(jù)權(quán)利要求12 14中的任一項(xiàng)的系統(tǒng),其中,對(duì)于所述處理器中的每一個(gè)處理器,多個(gè)處理器端口被配置為用于與所述多個(gè)通信元件的第一子集耦合; 其中,對(duì)于所述通信元件中的每一個(gè)通信元件,通信端口的第一子集被配置為用于與所述多個(gè)處理器的子集耦合,并且,通信端口的第二子集被配置為用于與所述多個(gè)通信元件的第二子集耦合。
全文摘要
禁用多處理器結(jié)構(gòu)中的通信。多處理器結(jié)構(gòu)包括多個(gè)處理器和多個(gè)通信元件,并且,多個(gè)通信元件中的每一個(gè)通信元件包括存儲(chǔ)器??蓪?duì)于多處理器結(jié)構(gòu)接收配置,該配置規(guī)定禁用以下中的一個(gè)或更多個(gè)之間的通信路徑一個(gè)或更多個(gè)處理器和一個(gè)或更多個(gè)通信元件;一個(gè)或更多個(gè)處理器和一個(gè)或更多個(gè)其它的處理器;或一個(gè)或更多個(gè)通信元件和一個(gè)或更多個(gè)其它的通信元件。因此,可自動(dòng)地在硬件中配置多處理器結(jié)構(gòu),以禁用由配置規(guī)定的通信路徑??梢圆僮鞫嗵幚砥鹘Y(jié)構(gòu),以根據(jù)配置執(zhí)行軟件應(yīng)用。
文檔編號(hào)G06F21/71GK103154925SQ201180049630
公開日2013年6月12日 申請(qǐng)日期2011年10月14日 優(yōu)先權(quán)日2010年10月15日
發(fā)明者M·B·多爾, C·S·多比斯, M·B·索爾卡, M·R·特羅西諾, D·A·吉布森 申請(qǐng)人:相干邏輯公司