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