專利名稱:細(xì)胞處理器的安全操作的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的實施例涉及細(xì)胞處理器,更具體地說,涉及在網(wǎng)絡(luò)上安全地操作多個細(xì)胞處理器。
背景技術(shù):
細(xì)胞處理器是利用并行處理的一類微處理器。細(xì)胞處理器的基本配置包括“Power處理器單元”(“PPE”)(有時稱為“處理單元”或“PE”)和多個“協(xié)處理單元”(“SPE”)。PPE和SPE通過復(fù)制(dubbed)的內(nèi)部高速總線“單元互連總線”(“EIB”)鏈接在一起。細(xì)胞處理處理器設(shè)計成可伸縮的,以便用在從手持裝置到主機(jī)計算機(jī)的各種應(yīng)用中。
在某些細(xì)胞處理器中,SPE提供單片執(zhí)行環(huán)境。每個SPE具有隔離良好的執(zhí)行集合或上下文,便于在細(xì)胞處理器上運行的各種應(yīng)用的便攜性和網(wǎng)絡(luò)透明性。這種便攜式SPE應(yīng)用被稱為SPUlet或APUlet。但是,有些與SPUlet的相同執(zhí)行環(huán)境大小相關(guān)聯(lián)的缺點。具體地說,SPUlet僅有單一的粒度。普通的現(xiàn)有技術(shù)SPUlet可能只是應(yīng)被加載到單個SPE中的單個可執(zhí)行文件映象。由于各種應(yīng)用期望有更多的資源供執(zhí)行所用,因此將這些資源分成多個SPUlet是不太有效的,特別是當(dāng)這種SPUlet需在網(wǎng)絡(luò)上傳送而同時要保持安全性時。
所以,在該領(lǐng)域需要一種具有較大尺寸遷移部件的數(shù)據(jù)結(jié)構(gòu),以使細(xì)胞處理器應(yīng)用能被封裝和遷移,從而在網(wǎng)絡(luò)內(nèi)和網(wǎng)絡(luò)上安全地操作和相互操作。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的一方面,提供了一種用于安全操作細(xì)胞處理器的方法,所述細(xì)胞處理器具有Power處理器部件(PPU)、主內(nèi)存以及一個或多個協(xié)處理器引擎(SPE),其中每個SPE包括協(xié)處理部件(SPU)、局部存儲器以及內(nèi)存流控制器(MFC),所述方法包括以下步驟在主機(jī)裝置的細(xì)胞處理器(主機(jī)細(xì)胞處理器)上接收來自客戶機(jī)裝置的安全文件映象,其中所述安全文件映象包括加密的SPU映象。
根據(jù)本發(fā)明的另一方面,提供了一種處理器可讀介質(zhì),其中實施有代表用于細(xì)胞處理器的安全SPUlet的數(shù)據(jù),所述細(xì)胞處理器具有Power處理部件(PPU)、一個或多個協(xié)處理引擎(SPE)以及連接到所述PPU和SPE的主內(nèi)存,其中每個SPE包括協(xié)處理部件(SPU)和局部儲存器,所述安全SPUlet包括加密的SPU映象。
根據(jù)本發(fā)明的又一方面,提供了一種細(xì)胞處理器,具有Power處理部件(PPU)、一個或多個協(xié)處理引擎(SPE)以及連接到所述PPU和SPE的主內(nèi)存,其中每個SPE包括協(xié)處理部件(SPU)和局部儲存器,所述細(xì)胞處理器在所述主內(nèi)存或局部儲存器中實施有代表安全SPUlet的數(shù)據(jù),所述安全SPUlet包括加密的SPU映象。
通過結(jié)合附圖考慮以下詳細(xì)說明,就可以很容易地理解本發(fā)明的內(nèi)容,其中附圖包括圖1為按照本發(fā)明實施例實現(xiàn)安全SPUlet的細(xì)胞寬帶引擎架構(gòu)的示意圖。
圖2A為按照本發(fā)明實施例的細(xì)胞處理器的示意圖。
圖2B為按照本發(fā)明實施例的安全SPE的示意圖。
圖3示出按照本發(fā)明實施例的擴(kuò)展SPUlet的框圖。
圖4示出按照本發(fā)明實施例的擴(kuò)展SPUlet的執(zhí)行流程圖。
圖5A示出在執(zhí)行階段期間擴(kuò)展SPUlet的內(nèi)存分配的框圖。
圖5B示出在不同的執(zhí)行階段期間擴(kuò)展SPUlet內(nèi)存分配的框圖。
具體實施例方式
雖然為作說明在以下詳細(xì)說明中包含有許多具體細(xì)節(jié),但所屬領(lǐng)域的技術(shù)人員應(yīng)理解,對以下細(xì)節(jié)的許多變更和改變都在本發(fā)明的范圍之內(nèi)。因此,闡述下述本發(fā)明示范實施例對所要求的本發(fā)明絲毫不影響其一般性,也不對其加有任何限制。
在本發(fā)明的實施例中,細(xì)胞處理器可以加載、存儲和保存有關(guān)該細(xì)胞處理器的一個或多個SPE操作的信息在遷移部件中,在本文中稱為擴(kuò)展SPUlet。和現(xiàn)有技術(shù)的SPUlet不同,按照本發(fā)明實施例的擴(kuò)展SPUlet可包括兩個或更多個SPU映象,或者一個或多個SPU映象以及有關(guān)多個SPU操作的附加信息,例如,共享的初始化數(shù)據(jù)。一般來說,共享數(shù)據(jù)由執(zhí)行擴(kuò)展SPUlet的兩個或更多個PPE共享。為了隔離執(zhí)行上下文,需要避免PPU存取共享數(shù)據(jù)。然而,為了進(jìn)行管理,例如暫停和恢復(fù),PPU可能要這么做。在擴(kuò)展SPUlet和管理PPU之間的通信可以為此目的通過特別設(shè)置的內(nèi)存消息框區(qū)域來完成。擴(kuò)展SPUlet提供了大于現(xiàn)有技術(shù)SPUlet的粒度。擴(kuò)展SPUlet可以處理以下問題設(shè)置多個SPE;為共享初始化數(shù)據(jù)、附加代碼等提供附加內(nèi)存;以及在SPE和系統(tǒng)主內(nèi)存之間的內(nèi)存映射。
細(xì)胞處理器通??砂ㄋ膫€獨立類型的功能組件PowerPC處理器單元(PPE)、協(xié)處理器部件(SPU)、內(nèi)存流控制器(MFC)以及內(nèi)部中斷控制器(IIC)。符合CBEA的處理器中的計算部件是PPE和SPU。每個SPU必須具有專用局部存儲器、具有其關(guān)聯(lián)的內(nèi)存管理部件(MMU)的專用MFC以及置換管理表(RMT)。這些組件的組合稱為SPU單元(SPE)。細(xì)胞處理器可以是單個芯片、一個(或多個)多芯片模塊、或在母板或其它二級封裝上的多個單芯片模塊,視所用的技術(shù)以及所需設(shè)計點的成本/性能特征而定。
用舉例的方式且沒有限制性,圖1示出了一種類型的細(xì)胞處理器100,其特征在于一種稱為符合細(xì)胞寬帶引擎架構(gòu)(CBEA)的處理器的架構(gòu)。細(xì)胞處理器可包括多組PPE(PPE組)和多組SPE(SPE組),如在此實例中所示的。備選的是,細(xì)胞處理器可僅具有只有單個SPE和單個PPE的單個SPE組和單個PPE組。硬件資源可在一組中的部件之間共享。但SPE和PPE必須對于軟件呈現(xiàn)為獨立的單元。
在圖1所示的實例中,細(xì)胞處理器100包括許多組SPE,即SG_0...SG_n,以及許多組PPE,即PG_0...PG_p。每個SPE組包括許多SPE,即SPE0...SPEg。細(xì)胞處理器100還包括主內(nèi)存MEM和輸入/輸出功能I/O。本文所述類型的一個或多個擴(kuò)展SPUlet 102可以存儲在主內(nèi)存MEM中。
每個PPE組包括許多PPE,即PPE_0...PPE_g SPE。在此實例中,一組SPE共享單個高速緩存SL1。高速緩存SL1是第一級高速緩存,用于在局部存儲器和主存儲器之間的直接內(nèi)存存取(DMA)傳送。一組中的每個PPE具有其自己的第一級(內(nèi)部)高速緩存L1。此外,一組中的PPE共享單個第二級(外部)高速緩存L2。雖然在圖1中示出了用于SPE和PPE的高速緩存,但對于一般的細(xì)胞處理器,特別是CBEA,它們是可選的。
單元互連總線EIB連接以上列出的各種組件。每個SPE組的SPE和每個PPE組的PPE都可通過總線接口部件BIU訪問EIB。細(xì)胞處理器100還包括處理器中通??梢姷膬蓚€控制器內(nèi)存接口控制器MIC,它控制EIB和主內(nèi)存MEM之間的數(shù)據(jù)流;以及總線接口控制器BIC,它控制I/O和EIB之間的數(shù)據(jù)流。雖然對于不同的實現(xiàn)方案對MIC、BIC、BIU和EIB的要求可大相徑庭,但所屬領(lǐng)域的技術(shù)人員會很熟悉用于實現(xiàn)它們的功能和電路。
每個SPE作成包括SPU(SPU0...SPUg)。SPE組中的每個SPU具有其自己的局部存儲區(qū)LS以及專用內(nèi)存流控制器MFC,該MFC包括相關(guān)聯(lián)的內(nèi)存管理部件MMU,該MMU可保持和處理內(nèi)存保護(hù)和存取許可信息。
PPE可以是具有相關(guān)聯(lián)高速緩存的64位PowerPC處理器部件(PPU)。符合CBEA的系統(tǒng)在PPE中包括矢量多媒體擴(kuò)展部件。PPE是通用處理部件,它們可以存取系統(tǒng)管理資源(例如,內(nèi)存保護(hù)表)。在CBEA中定義的硬件資源被顯式映射到由PPE所見的實際地址空間。所以,通過使用適當(dāng)?shù)挠行У刂分?,任何PPE都可直接尋址任何這些資源。PPE的一個主要功能是對系統(tǒng)中的SPE管理和分配任務(wù)。
與PPE相比,SPU是不那么復(fù)雜的計算部件,因為它們不執(zhí)行任何系統(tǒng)管理功能。它們通常具有單指令多數(shù)據(jù)(SIMD)能力,且通常處理數(shù)據(jù)并啟動任何所需的數(shù)據(jù)傳送(由PPE設(shè)置的存取屬性所決定),以便執(zhí)行它們的所分配任務(wù)。SPU的目的是啟動需要較高計算部件密度并能有效使用所提供的指令集的一些應(yīng)用。系統(tǒng)中由PPE管理的大量SPU允許在各種各樣的應(yīng)用上進(jìn)行成本合算的處理。SPU實現(xiàn)一種新的指令集架構(gòu)。
MFC組件實質(zhì)上是數(shù)據(jù)傳送引擎。MFC提供用于數(shù)據(jù)傳送、保護(hù)以及在細(xì)胞處理器的主存儲器和SPE的局部存儲器之間同步的主要方法。MFC命令說明要執(zhí)行的傳送。MFC的首要架構(gòu)目的是以盡可能快和盡可能合理的方式執(zhí)行這些數(shù)據(jù)傳送操作,從而最大化細(xì)胞處理器的總通過量。用于傳送數(shù)據(jù)的命令稱為MFC DMA命令。這些命令被變換成在局部存儲域和主存儲域之間的DMA傳送。
每個MFC通??赏瑫r支持多個DMA傳送,并能維持和處理多個MFC命令。為達(dá)此目的,MFC維持和處理MFC命令隊列。MFC可將多個傳送請求排隊,且并行地發(fā)出它們。每個MFC提供一個隊列用于關(guān)聯(lián)的SPU(MFC SPU命令隊列),以及一個隊列用于其它處理器和裝置(MFC代理命令隊列)。邏輯上,MFC隊列的一個集合總是與細(xì)胞處理器中的每個SPU相關(guān)聯(lián),但該架構(gòu)的一些實現(xiàn)方案可以在多個SPU、例如一個SPU組之間共享單個物理MFC。在這種情況下,所有的MFC設(shè)施對于軟件而言必須呈現(xiàn)為對每個SPU是獨立的。每個MFC DMA數(shù)據(jù)傳送命令請求涉及局部存儲器地址(LSA)和有效地址(EA)二者。局部存儲器地址僅能直接尋址其關(guān)聯(lián)SPU的局部存儲區(qū)。有效地址具有更通用的應(yīng)用,因為它能參考主存儲器,包括所有SPU局部存儲區(qū),如果它們都被混疊到實際地址空間中的話(即如果將MFC_SR1[D]設(shè)置為‘1’)。
MFC呈現(xiàn)兩種類型的接口一個接至SPU,而另一個接至處理組中的所有其它處理器和裝置。SPU使用一個通道接口來控制MFC。在這種情況下,在SPU上運行的代碼只能存取用于該SPU的MFC SPU命令隊列。其它處理器和裝置通過使用內(nèi)存映射的寄存器來控制MFC。系統(tǒng)中的任何處理器和裝置都有可能控制MFC,并代表SPU發(fā)出MFC代理命令請求。MFC還支持帶寬保留和數(shù)據(jù)同步特性。為了便于SPU之間和/或SPU和PPU之間的通信,SPE和PPE可包括依附信令事件的信號通知寄存器。通常,PPE和SPE通過星形拓?fù)溥B接,其中PPE作為向SPE傳輸消息的路由器。這種拓?fù)洳惶峁㏒PE之間的直接通信。而是,每個SPE和每個PPE都有一個單向信號通知寄存器,稱為郵箱。該郵箱可用于SPE,以主持OS同步。
IIC組件管理著對PPE給出的中斷的優(yōu)先權(quán)。IIC的主要目的是允許來自處理器中其它組件的中斷將被處理,而不使用主系統(tǒng)中斷控制器。IIC實際上是一個二級控制器。它旨在處理符合CBEA的處理器內(nèi)部的或在符合CBEA的處理器的多處理器系統(tǒng)內(nèi)的所有中斷。系統(tǒng)中斷控制器通常將處理細(xì)胞處理器外部的所有中斷。
在細(xì)胞處理器系統(tǒng)中,軟件常必須首先檢查IIC,以確定中斷是否源自外部系統(tǒng)中斷控制器。IIC并不旨在代替主系統(tǒng)中斷控制器來處理來自所有I/O裝置的中斷。
在細(xì)胞處理器中有兩種類型的存儲域局部存儲域和主存儲域。SPE的局部存儲器存在于局部存儲域中。所有其它設(shè)施和內(nèi)存都在主存儲域中。局部存儲器由內(nèi)存存儲器的一個或多個分開區(qū)域組成,每個區(qū)域與一個特定的SPU相關(guān)聯(lián)。每個SPU只能執(zhí)行來自其自己關(guān)聯(lián)的局部存儲域中的指令(包括數(shù)據(jù)加載和數(shù)據(jù)存儲操作)。所以,發(fā)至或來自系統(tǒng)中其它地方的存儲器的任何所需數(shù)據(jù)傳送必須總是通過發(fā)出MFC DMA命令以在(各個SPU的)局部存儲域和主存儲域之間傳送數(shù)據(jù)而執(zhí)行,除非啟動了局部存儲器混疊。
SPU程序使用局部地址參考其局部存儲域。但是,特權(quán)軟件通過將MFC_SR1的D位設(shè)置為‘1’,可允許SPU的局部存儲域被混疊到主存儲域。每個局部存儲區(qū)被分配了一個在主存儲域內(nèi)的實際地址。(實際地址是系統(tǒng)內(nèi)存中的一個字節(jié)的地址,或者是I/O裝置上的一個字節(jié))。這就允許特權(quán)軟件將局部存儲區(qū)映射到應(yīng)用的有效地址空間,以允許在一個SPU的局部存儲器和另一SPU的局部存儲器之間進(jìn)行DMA傳送。
可存取主存儲域的其它處理器或裝置可直接存取局部存儲區(qū),該局部存儲區(qū)已混疊到主存儲域中,其使用了已通過轉(zhuǎn)換方法映射到由主存儲域所代表的實際地址空間的有效地址或I/O總線地址。
使用混疊在主存儲域中的局部存儲區(qū)的數(shù)據(jù)傳送應(yīng)在高速緩存被禁止時這么做,因為這些存取與在其局部存儲域中的SPU局部存儲器存取(即,SPU加載、存儲、指令取出)不相干。將局部存儲區(qū)混疊到主存儲域的實際地址空間中允許可存取主存儲區(qū)的任何其它處理器或裝置直接存取局部存儲器。但是,由于混疊的局部存儲器必須視為不可高速緩存的,因此使用PPE加載和存儲指令傳送大量數(shù)據(jù)可導(dǎo)致不良的性能。在局部存儲域和主存儲域之間的數(shù)據(jù)傳送應(yīng)使用MFCDMA命令,以避免阻塞。
在CBEA中主存儲器的尋址與在PowerPC架構(gòu)中定義的尋址兼容。CBEA構(gòu)建在PowerPC架構(gòu)的概念上,并將它們擴(kuò)展到由MFC對主存儲器的尋址。
在SPU上或在任何其它處理器或裝置中執(zhí)行的應(yīng)用程序使用有效地址來存取主內(nèi)存。當(dāng)PPE執(zhí)行加載、存儲、分路或高速緩存指令時,以及當(dāng)它取下一序列指令時,就計算有效地址。SPU程序必須提供有效地址作為MFC命令中的一個參數(shù)。按照在PowerPC架構(gòu)冊III中地址轉(zhuǎn)換概述中所述的過程,將有效地址轉(zhuǎn)換成實際地址。實際地址是由已轉(zhuǎn)換的有效地址參考的主存儲器中的位置。主存儲器由系統(tǒng)中的所有PPE、MFC和I/O裝置共享。在這級存儲器中保持的所有信息對所有處理器以及系統(tǒng)中的所有裝置都是可見的。該存儲區(qū)在結(jié)構(gòu)上是統(tǒng)一的,或者是分級高速緩存結(jié)構(gòu)的一部分。程序使用有效地址參考這級存儲器。
系統(tǒng)的主內(nèi)存通常包括通用和非易失性存儲器,也包括專用硬件寄存器或用于諸如系統(tǒng)配置、數(shù)據(jù)傳送同步、內(nèi)存映射I/O以及I/O子系統(tǒng)等功能的陣列。有許多不同的可能配置可用于主內(nèi)存。用舉例的方式且沒有限制性,表1列出了主內(nèi)存中的地址空間大小,用于稱為細(xì)胞寬帶引擎架構(gòu)(CBEA)的特定細(xì)胞處理器實現(xiàn)方案。
表1
細(xì)胞處理器100可包括可選的設(shè)施,用于管理處理器和系統(tǒng)中的臨界資源。在細(xì)胞處理器下目標(biāo)為用于管理的資源是轉(zhuǎn)換后備緩沖器(TLB)以及數(shù)據(jù)和指令高速緩存。這些資源的管理由根據(jù)實現(xiàn)方案而定的表來控制。
用于管理TLB和高速緩存的表稱為置換管理表RMT,該表可與每個MMU相關(guān)聯(lián)。雖然這些表是可選的,但為每個臨界資源提供一個表常常是很有用的,臨界資源可能是系統(tǒng)中的一個瓶頸。SPE組還可包含可選的高速緩存分級、SL1高速緩存,它們代表用于DMA傳送的第一級高速緩存。SL1高速緩存還可包含可選的RMT。
以上旨在提供在細(xì)胞處理器實現(xiàn)方案中使用的術(shù)語的簡介和說明。以上討論還旨在按照本發(fā)明的實施例闡述用于數(shù)據(jù)結(jié)構(gòu)的上下文和方法。這些實施例并不限于在具有上述架構(gòu)的細(xì)胞處理器上實現(xiàn)或用其實現(xiàn)。但是,下述任何或所有實施例的實現(xiàn)都可使用這種細(xì)胞架構(gòu)作為可能遇到和使用擴(kuò)展SPUlet的環(huán)境。
圖2示出用擴(kuò)展SPUlet操作的細(xì)胞處理器200的實例。出于說明目的,該細(xì)胞處理器包括主內(nèi)存202、單個PPE 204和8個SPE 206。但是,細(xì)胞處理器可配置有任何數(shù)量的SPE。參閱圖2,內(nèi)存、PPE和SPE可以在環(huán)形單元互連總線210上互相通信以及與I/O裝置208通信。安全SPUlet 212可存儲在主內(nèi)存202中,例如經(jīng)由I/O裝置208和網(wǎng)絡(luò)214被傳送到其它細(xì)胞處理器,或被分段加載到構(gòu)成該細(xì)胞處理器的各種SPE 206中。
在本發(fā)明的實施例中,至少一個SPE 206是安全SPE,如下所述。如圖2B所示,安全SPE 220包括SPU 221、局部儲存器224以及一些用于調(diào)用安全模式的構(gòu)件。這些構(gòu)件可以用硬件、軟件或硬件和軟件的某種組合來實現(xiàn)。用于調(diào)用安全模式的構(gòu)件傳遞例如存儲在外部存儲器中、主機(jī)處理器的主內(nèi)存202中或主機(jī)處理器上某個其它SPE的局部儲存器中的加密代碼的地址。按照本發(fā)明的實施例,有可能將單個SPE、所有SPE或SPE的任何子集固定在主機(jī)處理器上。在安全模式中,安全SPE 220的局部儲存器224的安全部分222被阻止由主機(jī)細(xì)胞處理器200的其它處理器(PPE或其它SPE)存取,有一個窗口226除外,通過這個窗口,安全SPE可讀入和/或?qū)懗鲞m合于非安全傳輸?shù)拇a和/或數(shù)據(jù)。適合于非安全傳輸?shù)拇a和/或數(shù)據(jù)的實例包括例如已被加密的代碼或數(shù)據(jù)。
安全部分222加載有可信代碼228。在本文中使用的術(shù)語“可信代碼”是指已被加密、認(rèn)證或簽名的代碼。本發(fā)明的實施例不限于任何特定形式的加密、認(rèn)證或簽名。任何適合方式的加密、認(rèn)證或簽名都可使用。另外,可信代碼包括具有兩個或更多個加密、認(rèn)證或簽名的某種組合的代碼。用舉例的方式且沒有限制性,可信代碼228可包括加密器-解密器-加載器,其可將加密的代碼和/或數(shù)據(jù)加載到安全區(qū),解密已加密的代碼/數(shù)據(jù),并在通過窗口226發(fā)送出去以前,重新加密數(shù)據(jù)。
如上所述,安全SPUlet 102、212通常包括一個或多個SPU映象和附加數(shù)據(jù),例如未初始化的數(shù)據(jù),或者它們可包括兩個或更多個SPU映象。圖3示出可構(gòu)成包括有加密部分301的安全SPUlet 300的數(shù)據(jù)排列。加密部分可包括但不限于一個或多個加密的SPU映象302、加密的共享初始化數(shù)據(jù)304、有關(guān)未初始化數(shù)據(jù)306的加密信息。安全SPUlet 300還可包括消息框308。安全SPUlet 300可選地包括文件標(biāo)題310,文件標(biāo)題310可包括或可不包括加密信息。
加密的SPU映象302通常包含加密形式的細(xì)胞處理器中SPE局部儲存器的內(nèi)容??梢栽诳蛻魴C(jī)裝置上運行的過程期間,從SPE收集SPU映象,或者可以在客戶機(jī)裝置上接收它們,供在主機(jī)細(xì)胞處理器上進(jìn)行處理。加密的SPU映象302可包含已由SPU處理的數(shù)據(jù)、要由SPU處理的數(shù)據(jù)、和/或用SPU處理數(shù)據(jù)的代碼。當(dāng)擴(kuò)展SPUlet 300被暫停時,加密的SPU映象302還可包含關(guān)于MFC的DMA狀態(tài)以及SPE的硬件狀態(tài)的數(shù)據(jù)。加密的初始化數(shù)據(jù)304是已建立了可存儲在主內(nèi)存中和/或可在執(zhí)行特定過程的幾個SPE之間共享的值的數(shù)據(jù),取決于配置。相反,加密的未初始化數(shù)據(jù)沒有預(yù)先建立的值,但關(guān)于該數(shù)據(jù)的參數(shù)是已知的。例如,有關(guān)未初始化數(shù)據(jù)306的信息可以指數(shù)據(jù)類型、該數(shù)據(jù)所需內(nèi)存空間的大小和位置。
對安全SPUlet 300的操作要求解密其加密成分。這樣,SPU映象可包含用于解密代碼和/或數(shù)據(jù)的SPUlet特定代碼,然后它才可在安全SPE的安全區(qū)中運行。此外,在安全SPE可將信息寫入主內(nèi)存或任何其它地方之前,數(shù)據(jù)通常被重新加密,然后再通過窗口226發(fā)送出去。
重要的是要注意安全SPUlet的具體內(nèi)容取決于上下文。例如,當(dāng)安全SPUlet已被保存到主內(nèi)存中時,系統(tǒng)內(nèi)存中擴(kuò)展SPUlet 300的映象包括加密的SPU映象302、加密的共享初始化數(shù)據(jù)304、有關(guān)未初始化數(shù)據(jù)306的加密信息以及消息框308。數(shù)據(jù)單元的這種組合稱為系統(tǒng)內(nèi)存中安全SPUlet的加密映象。但是,當(dāng)將安全SPUlet 300從客戶機(jī)裝置傳送到細(xì)胞處理器(此處稱為主機(jī)處理器)時,可將文件標(biāo)題310與加密的SPU映象302和加密的初始化數(shù)據(jù)304相組合。數(shù)據(jù)單元(此處稱為加密的文件映象)的這種組合就是被傳送的內(nèi)容。
文件標(biāo)題310可包括能告訴主機(jī)細(xì)胞處理器有關(guān)安全SPUlet的加密信息。這種信息可包括加密格式標(biāo)識符、加密版本號,或標(biāo)識解密安全SPUlet 300所需解密類型的其它信息。標(biāo)題信息可分類為執(zhí)行信息或擴(kuò)展SPUlet信息。執(zhí)行信息可包括主機(jī)資源、連接要求、以及描述SPUlet應(yīng)運行的環(huán)境的其它標(biāo)準(zhǔn)。擴(kuò)展SPUlet信息描述如內(nèi)存布局、映射、開始偏置和其它初始化、消息框配置等情況。
這種信息可包括,例如內(nèi)存可用性(即需要多少內(nèi)存來運行擴(kuò)展SPUlet)、SPU可用性(即需要多少SPU來運行擴(kuò)展SPUlet)、用于擴(kuò)展SPUlet的網(wǎng)絡(luò)等待時間和帶寬以及系統(tǒng)頻率要求、控制流信息(例如,主機(jī)或客戶機(jī)是否有權(quán)中斷和暫停擴(kuò)展SPUlet)、內(nèi)存偏置、一個或多個SPU映象的斷點、一個或多個SPU映象的大小、內(nèi)存映射信息、消息框布局、消息框能力等等。應(yīng)理解,標(biāo)題還可定義有關(guān)以下各項的信息用戶、ID、系統(tǒng)、功能、數(shù)據(jù)類型、通道、標(biāo)記、密鑰、密碼、協(xié)議、可在其中建立系統(tǒng)或操作的目標(biāo)或簡檔或任何量度,其中它們可涉及擴(kuò)展SPUlet或從那指向,并包括但不限于配置、初始化、操作的更改或同步,涉及到滿足應(yīng)用的總目標(biāo)的任何程序或系統(tǒng)或模塊或?qū)ο?,其中擴(kuò)展SPUlet操作以服務(wù)于該應(yīng)用的總目標(biāo)。這種應(yīng)用可包括與安全有關(guān)的應(yīng)用和協(xié)議、編碼、解碼和代碼變換應(yīng)用、事務(wù)處理等等。文件標(biāo)題310可由客戶機(jī)裝置在傳輸之前創(chuàng)建,并與SPU映象和初始化數(shù)據(jù)一起傳輸。備選的是,文件標(biāo)題310可以是文件映象的一部分,并作為堆棧傳輸?shù)囊徊糠职l(fā)送出去。
一般來說,SPU不能存取特權(quán)SPU控制。結(jié)果,SPUlet 300常常需要用適當(dāng)?shù)拇a加載每個SPE,這可在加載時就開始。而且,為了進(jìn)行通信,SPUlet 300最好包括內(nèi)存映射信息,該信息將所涉及的SPE相互映射,并映射到主內(nèi)存的任何共享部分。圖4示出使用安全SPUlet安全操作細(xì)胞處理器的通用方法400。
在主機(jī)裝置200能加載SPUlet 300之前,主機(jī)處理器優(yōu)選使用認(rèn)證的加載器來加載安全SPUlet 300。為了提供認(rèn)證的加載器,可以執(zhí)行驗證步驟401A、主機(jī)認(rèn)證401B以及客戶機(jī)認(rèn)證401C。
在驗證步驟401A,主機(jī)PPE接收來自客戶機(jī)的、運行安全SPUlet(其可以是安全擴(kuò)展SPUlet)的請求??蛻魴C(jī)將驗證參數(shù)傳遞到主機(jī)(例如,安全格式ID、版本號、或標(biāo)識解密客戶機(jī)想要發(fā)送給主機(jī)細(xì)胞處理器的加密代碼所需的解密構(gòu)件的其它信息)。這種信息可包括運行安全SPUlet所需的SPU數(shù)。主機(jī)使用此信息來驗證它具有處理安全SPUlet的能力,并通知客戶機(jī)。
在主機(jī)認(rèn)證步驟401B,主機(jī)處理器然后確定客戶機(jī)是否可信,例如通過交換證書。
在客戶機(jī)認(rèn)證步驟401C,客戶機(jī)確定主機(jī)可信,例如通過發(fā)送證書,例如加密代碼和/或需要通過安全SPE認(rèn)證的數(shù)據(jù)。證書必須以某種方式依附于用于安全SPUlet的加密格式,但可以是不同于用來解密安全SPUlet的格式。主機(jī)接收證書,用安全SPE處理它,并產(chǎn)生某種結(jié)果,此結(jié)果被發(fā)送回客戶機(jī)??蛻魴C(jī)可根據(jù)對可信主機(jī)的預(yù)期結(jié)果來檢查此結(jié)果。
一旦客戶機(jī)滿意,即主機(jī)可信,那么在步驟402,安全SPUlet 300就作為安全文件映象從客戶機(jī)裝置傳送到主機(jī)裝置。安全文件映象可包含加載器-加密器-解碼器代碼。在主機(jī)和客戶機(jī)細(xì)胞處理器之間傳送文件映象可在任何網(wǎng)絡(luò)或總線上進(jìn)行,包括但不限于安全和不安全網(wǎng)絡(luò)、局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)或公眾網(wǎng)如因特網(wǎng)。在一些實施例中,客戶機(jī)機(jī)器可將文件標(biāo)題310發(fā)送到主機(jī)機(jī)器,然后發(fā)送其余的安全SPUlet。主機(jī)機(jī)器可以分析文件標(biāo)題中的信息,用作接受標(biāo)準(zhǔn),例如主機(jī)機(jī)器或SPUlet所指向的另一裝置是否為已知的,或已確定有足夠的SPU、安全權(quán)限、權(quán)利、配置、內(nèi)存等可用于運行安全SPUlet。主機(jī)機(jī)器然后可決定是否接受該安全SPUlet,或?qū)⒋税踩玈PUlet傳遞到SPUlet所指向的另一裝置或目標(biāo)機(jī)器。
如果主機(jī)機(jī)器接受該安全SPUlet,那么在步驟404,它為擴(kuò)展SPUlet分配系統(tǒng)內(nèi)存。主機(jī)機(jī)器可使用文件標(biāo)題中的信息來為加密SPU映象302和加密的共享初始化數(shù)據(jù)304分配內(nèi)存塊的大小和數(shù)據(jù)類型。一旦已分配了內(nèi)存空間,那么在步驟406,主機(jī)處理器可將安全SPUlet 300的加密SPU映象302和加密的初始化數(shù)據(jù)304加載到主機(jī)細(xì)胞處理器的主內(nèi)存中。主機(jī)細(xì)胞處理器然后可分配用于加密的未初始化數(shù)據(jù)(如果有的話)以及消息框的區(qū)域。優(yōu)選的是,在PPU的主內(nèi)存中分配內(nèi)存。但是,專門的SPUlet應(yīng)用可在PPU中和/或在一個或多個SPU局部存儲器中配置內(nèi)存,視專門的SPUlet應(yīng)用而定。一般來說,在主內(nèi)存中分配內(nèi)存,以滿足用于復(fù)雜處理如視頻代碼變換的擴(kuò)展到達(dá)內(nèi)存要求。圖5A-5B示出了用于主機(jī)裝置的細(xì)胞處理器(主機(jī)細(xì)胞處理器)上的擴(kuò)展SPUlet的數(shù)據(jù)組織。如圖5A所示,主機(jī)處理器接收包含加密的SPU映象302、加密的初始化數(shù)據(jù)304以及文件標(biāo)題310(它可包括加密信息)的加密文件映象。通常,只有加密的SPU映象302和加密的初始化數(shù)據(jù)304被存儲在主機(jī)細(xì)胞處理器的主內(nèi)存中。這些形成安全SPUlet 300的主內(nèi)存覆蓋區(qū)。標(biāo)題310中的數(shù)據(jù)一旦主機(jī)處理器用完它之后就可被丟棄。
在步驟408,主機(jī)細(xì)胞處理器可分配其主內(nèi)存中的區(qū)域用于未初始化的數(shù)據(jù)506和消息框508。如圖5A所示,SPU映象302、初始化數(shù)據(jù)304以及分配用于未初始化數(shù)據(jù)506和消息框508的區(qū)域的組合構(gòu)成用于擴(kuò)展SPUlet 300的主機(jī)細(xì)胞處理器主內(nèi)存中的映象。在步驟410,主機(jī)處理器為擴(kuò)展SPUlet 300分配SPE 510(如圖5B所示)。在步驟411,主機(jī)的SPE被設(shè)置為安全模式,如以上結(jié)合圖2A所述的。用可信的加載器-加密器-解密器512來加載安全SPE,這允許安全SPE將加密的代碼和/或數(shù)據(jù)通過窗口加載到安全區(qū)域,解密解碼代碼和/或數(shù)據(jù),以使其能由安全SPE運行,并加密要通過窗口發(fā)送到安全SPE以外的任何信息。
一旦SPE 510被分配并設(shè)置為安全模式,則在步驟412,加密的SPU映象302就被加載到所分配的SPE 510中。然后在步驟414,使用加密器-解密器-加載器代碼512,SPE可運行在安全模式。
客戶機(jī)不必是一個單元??蛻魴C(jī)可以是個人計算機(jī)(PC)??蛻魴C(jī)僅需要它發(fā)送到細(xì)胞處理器的加密文件映象和/或標(biāo)題。最好使細(xì)胞處理器免遭用戶訪問的危險,防止用戶竄改主機(jī)處理器。SPE包括用于調(diào)用安全模式的構(gòu)件。
雖然以上是對本發(fā)明優(yōu)選實施例的全部說明,但可以使用各種備選、更改和等效物。所以,本發(fā)明的范圍不應(yīng)參閱以上說明來確定,而是應(yīng)參閱所附權(quán)利要求書,以及它們?nèi)糠秶牡刃飦泶_定。本文所述的任何特性,不論其優(yōu)選與否,都可與本文所述的任何其它特性相組合,不論其優(yōu)選與否。在以下的權(quán)利要求書中,不定冠詞“一個”指該冠詞后的一個或多個項目的量,除非另有明確說明。所附權(quán)利要求書不應(yīng)被解釋為包括“構(gòu)件加功能”的限制,除非這種限制是在給定權(quán)利要求中使用短語“用于...的構(gòu)件”作了明顯敘述。
權(quán)利要求
1.一種用于安全操作細(xì)胞處理器的方法,所述細(xì)胞處理器具有Power處理器部件(PPU)、主內(nèi)存以及一個或多個協(xié)處理器引擎(SPE),其中每個SPE包括協(xié)處理部件(SPU)、局部存儲器以及內(nèi)存流控制器(MFC),所述方法包括以下步驟在主機(jī)裝置的細(xì)胞處理器(主機(jī)細(xì)胞處理器)上接收來自客戶機(jī)裝置的安全文件映象,其中所述安全文件映象包括加密的SPU映象。
2.如權(quán)利要求1所述的方法,還包括將所述主機(jī)細(xì)胞處理器的一個或多個所述SPE設(shè)置為工作在安全模式。
3.如權(quán)利要求2所述的方法,其中在所述安全模式,安全SPE的局部儲存器的第一部分被阻止由所述主機(jī)細(xì)胞處理器的所述PPU或其它SPU存取。
4.如權(quán)利要求2所述的方法,其中在所述安全模式,所述安全SPUlet通過窗口被加載到所述局部儲存器中,其中只有適合于非安全傳輸?shù)拇a和/或數(shù)據(jù)通過所述窗口被讀入和/或?qū)懗觥?br>
5.如權(quán)利要求2所述的方法,其中將所述主機(jī)細(xì)胞處理器的一個或多個所述SPE設(shè)置為工作在安全模式包括將解密器-加密器-加載器代碼加載到一個或多個SPE的所述局部儲存器中。
6.如權(quán)利要求5所述的方法,其中加密器-加載器-解碼器代碼配置成僅讀入和/或?qū)懗鲞m合于非安全傳輸?shù)拇a和/或數(shù)據(jù)。
7.如權(quán)利要求1所述的方法,其中所述安全文件映象還包括加密的共享初始化數(shù)據(jù)。
8.如權(quán)利要求1所述的方法,其中所述安全文件映象包括兩個或更多個加密的SPU映象。
9.如權(quán)利要求1所述的方法,還包括為所述加密的SPU映象分配所述主機(jī)細(xì)胞處理器的主內(nèi)存(主機(jī)主內(nèi)存)中的空間。
10.如權(quán)利要求2所述的方法,還包括將所述加密的SPU映象加載到所述主機(jī)主內(nèi)存中的所分配空間中。
11.如權(quán)利要求1所述的方法,還包括為未初始化數(shù)據(jù)和消息框分配所達(dá)主機(jī)細(xì)胞處理器的主內(nèi)存(主機(jī)主內(nèi)存)中的區(qū)域。
12.如權(quán)利要求1所述的方法,還包括將加密的文件映象數(shù)據(jù)加載到所述主機(jī)細(xì)胞處理器的SPU中。
13.如權(quán)利要求1所述的方法,還包括在傳送所述文件映象之前,驗證所述主機(jī)處理器能運行安全過程。
14.如權(quán)利要求1所述的方法,還包括在所述主機(jī)細(xì)胞處理器上接收來自所述客戶機(jī)裝置的運行安全SPUlet的請求。
15.如權(quán)利要求12所述的方法,還包括用所述主機(jī)細(xì)胞處理器根據(jù)從所述客戶機(jī)接收的信息確定是否接受所述安全SPUlet。
16.一種處理器可讀介質(zhì),其中實施有代表用于細(xì)胞處理器的安全SPUlet的數(shù)據(jù),所述細(xì)胞處理器具有Power處理部件(PPU)、一個或多個協(xié)處理引擎(SPE)以及連接到所述PPU和SPE的主內(nèi)存,其中每個SPE包括協(xié)處理部件(SPU)和局部儲存器,所述安全SPUlet包括加密的SPU映象。
17.一種細(xì)胞處理器,具有Power處理部件(PPU)、一個或多個協(xié)處理引擎(SPE)以及連接到所述PPU和SPE的主內(nèi)存,其中每個SPE包括協(xié)處理部件(SPU)和局部儲存器,所述細(xì)胞處理器在所述主內(nèi)存或局部儲存器中實施有代表安全SPUlet的數(shù)據(jù),所述安全SPUlet包括加密的SPU映象。
18.如權(quán)利要求17所述的細(xì)胞處理器,其中至少一個所述SPE是安全SPE。
19.如權(quán)利要求17所述的細(xì)胞處理器,其中所述安全SPE的局部儲存器包括不能由所述細(xì)胞處理器的所述PPU、其它SPE或其它處理器存取的安全部分以及窗口,通過所述窗口可將加密的代碼和/或數(shù)據(jù)傳送入和傳送出安全部分。
20.如權(quán)利要求19所述的細(xì)胞處理器,其中所述局部儲存器還包括可信代碼。
21.如權(quán)利要求20所述的細(xì)胞處理器,其中所述可信代碼是加密的、認(rèn)證的或簽名的。
全文摘要
公開了細(xì)胞處理器的安全操作。細(xì)胞處理器在主機(jī)裝置的細(xì)胞處理器(主機(jī)細(xì)胞處理器)上接收來自客戶機(jī)裝置的安全文件映象,其中安全文件映象包括加密的SPU映象。
文檔編號G06F21/00GK1941780SQ20061014230
公開日2007年4月4日 申請日期2006年9月27日 優(yōu)先權(quán)日2005年9月27日
發(fā)明者巖本達(dá)也 申請人:索尼電腦娛樂公司