专利名称:细胞处理器的安全操作的制作方法
技术领域:
本发明的实施例涉及细胞处理器,更具体地说,涉及在网络上安全地操作多个细胞处理器。
背景技术:
细胞处理器是利用并行处理的一类微处理器。细胞处理器的基本配置包括“Power处理器单元”(“PPE”)(有时称为“处理单元”或“PE”)和多个“协处理单元”(“SPE”)。PPE和SPE通过复制(dubbed)的内部高速总线“单元互连总线”(“EIB”)链接在一起。细胞处理处理器设计成可伸缩的,以便用在从手持装置到主机计算机的各种应用中。
在某些细胞处理器中,SPE提供单片执行环境。每个SPE具有隔离良好的执行集合或上下文,便于在细胞处理器上运行的各种应用的便携性和网络透明性。这种便携式SPE应用被称为SPUlet或APUlet。但是,有些与SPUlet的相同执行环境大小相关联的缺点。具体地说,SPUlet仅有单一的粒度。普通的现有技术SPUlet可能只是应被加载到单个SPE中的单个可执行文件映象。由于各种应用期望有更多的资源供执行所用,因此将这些资源分成多个SPUlet是不太有效的,特别是当这种SPUlet需在网络上传送而同时要保持安全性时。
所以,在该领域需要一种具有较大尺寸迁移部件的数据结构,以使细胞处理器应用能被封装和迁移,从而在网络内和网络上安全地操作和相互操作。
发明内容
根据本发明的一方面,提供了一种用于安全操作细胞处理器的方法,所述细胞处理器具有Power处理器部件(PPU)、主内存以及一个或多个协处理器引擎(SPE),其中每个SPE包括协处理部件(SPU)、局部存储器以及内存流控制器(MFC),所述方法包括以下步骤在主机装置的细胞处理器(主机细胞处理器)上接收来自客户机装置的安全文件映象,其中所述安全文件映象包括加密的SPU映象。
根据本发明的另一方面,提供了一种处理器可读介质,其中实施有代表用于细胞处理器的安全SPUlet的数据,所述细胞处理器具有Power处理部件(PPU)、一个或多个协处理引擎(SPE)以及连接到所述PPU和SPE的主内存,其中每个SPE包括协处理部件(SPU)和局部储存器,所述安全SPUlet包括加密的SPU映象。
根据本发明的又一方面,提供了一种细胞处理器,具有Power处理部件(PPU)、一个或多个协处理引擎(SPE)以及连接到所述PPU和SPE的主内存,其中每个SPE包括协处理部件(SPU)和局部储存器,所述细胞处理器在所述主内存或局部储存器中实施有代表安全SPUlet的数据,所述安全SPUlet包括加密的SPU映象。
通过结合附图考虑以下详细说明,就可以很容易地理解本发明的内容,其中附图包括图1为按照本发明实施例实现安全SPUlet的细胞宽带引擎架构的示意图。
图2A为按照本发明实施例的细胞处理器的示意图。
图2B为按照本发明实施例的安全SPE的示意图。
图3示出按照本发明实施例的扩展SPUlet的框图。
图4示出按照本发明实施例的扩展SPUlet的执行流程图。
图5A示出在执行阶段期间扩展SPUlet的内存分配的框图。
图5B示出在不同的执行阶段期间扩展SPUlet内存分配的框图。
具体实施例方式
虽然为作说明在以下详细说明中包含有许多具体细节,但所属领域的技术人员应理解,对以下细节的许多变更和改变都在本发明的范围之内。因此,阐述下述本发明示范实施例对所要求的本发明丝毫不影响其一般性,也不对其加有任何限制。
在本发明的实施例中,细胞处理器可以加载、存储和保存有关该细胞处理器的一个或多个SPE操作的信息在迁移部件中,在本文中称为扩展SPUlet。和现有技术的SPUlet不同,按照本发明实施例的扩展SPUlet可包括两个或更多个SPU映象,或者一个或多个SPU映象以及有关多个SPU操作的附加信息,例如,共享的初始化数据。一般来说,共享数据由执行扩展SPUlet的两个或更多个PPE共享。为了隔离执行上下文,需要避免PPU存取共享数据。然而,为了进行管理,例如暂停和恢复,PPU可能要这么做。在扩展SPUlet和管理PPU之间的通信可以为此目的通过特别设置的内存消息框区域来完成。扩展SPUlet提供了大于现有技术SPUlet的粒度。扩展SPUlet可以处理以下问题设置多个SPE;为共享初始化数据、附加代码等提供附加内存;以及在SPE和系统主内存之间的内存映射。
细胞处理器通常可包括四个独立类型的功能组件PowerPC处理器单元(PPE)、协处理器部件(SPU)、内存流控制器(MFC)以及内部中断控制器(IIC)。符合CBEA的处理器中的计算部件是PPE和SPU。每个SPU必须具有专用局部存储器、具有其关联的内存管理部件(MMU)的专用MFC以及置换管理表(RMT)。这些组件的组合称为SPU单元(SPE)。细胞处理器可以是单个芯片、一个(或多个)多芯片模块、或在母板或其它二级封装上的多个单芯片模块,视所用的技术以及所需设计点的成本/性能特征而定。
用举例的方式且没有限制性,图1示出了一种类型的细胞处理器100,其特征在于一种称为符合细胞宽带引擎架构(CBEA)的处理器的架构。细胞处理器可包括多组PPE(PPE组)和多组SPE(SPE组),如在此实例中所示的。备选的是,细胞处理器可仅具有只有单个SPE和单个PPE的单个SPE组和单个PPE组。硬件资源可在一组中的部件之间共享。但SPE和PPE必须对于软件呈现为独立的单元。
在图1所示的实例中,细胞处理器100包括许多组SPE,即SG_0...SG_n,以及许多组PPE,即PG_0...PG_p。每个SPE组包括许多SPE,即SPE0...SPEg。细胞处理器100还包括主内存MEM和输入/输出功能I/O。本文所述类型的一个或多个扩展SPUlet 102可以存储在主内存MEM中。
每个PPE组包括许多PPE,即PPE_0...PPE_g SPE。在此实例中,一组SPE共享单个高速缓存SL1。高速缓存SL1是第一级高速缓存,用于在局部存储器和主存储器之间的直接内存存取(DMA)传送。一组中的每个PPE具有其自己的第一级(内部)高速缓存L1。此外,一组中的PPE共享单个第二级(外部)高速缓存L2。虽然在图1中示出了用于SPE和PPE的高速缓存,但对于一般的细胞处理器,特别是CBEA,它们是可选的。
单元互连总线EIB连接以上列出的各种组件。每个SPE组的SPE和每个PPE组的PPE都可通过总线接口部件BIU访问EIB。细胞处理器100还包括处理器中通常可见的两个控制器内存接口控制器MIC,它控制EIB和主内存MEM之间的数据流;以及总线接口控制器BIC,它控制I/O和EIB之间的数据流。虽然对于不同的实现方案对MIC、BIC、BIU和EIB的要求可大相径庭,但所属领域的技术人员会很熟悉用于实现它们的功能和电路。
每个SPE作成包括SPU(SPU0...SPUg)。SPE组中的每个SPU具有其自己的局部存储区LS以及专用内存流控制器MFC,该MFC包括相关联的内存管理部件MMU,该MMU可保持和处理内存保护和存取许可信息。
PPE可以是具有相关联高速缓存的64位PowerPC处理器部件(PPU)。符合CBEA的系统在PPE中包括矢量多媒体扩展部件。PPE是通用处理部件,它们可以存取系统管理资源(例如,内存保护表)。在CBEA中定义的硬件资源被显式映射到由PPE所见的实际地址空间。所以,通过使用适当的有效地址值,任何PPE都可直接寻址任何这些资源。PPE的一个主要功能是对系统中的SPE管理和分配任务。
与PPE相比,SPU是不那么复杂的计算部件,因为它们不执行任何系统管理功能。它们通常具有单指令多数据(SIMD)能力,且通常处理数据并启动任何所需的数据传送(由PPE设置的存取属性所决定),以便执行它们的所分配任务。SPU的目的是启动需要较高计算部件密度并能有效使用所提供的指令集的一些应用。系统中由PPE管理的大量SPU允许在各种各样的应用上进行成本合算的处理。SPU实现一种新的指令集架构。
MFC组件实质上是数据传送引擎。MFC提供用于数据传送、保护以及在细胞处理器的主存储器和SPE的局部存储器之间同步的主要方法。MFC命令说明要执行的传送。MFC的首要架构目的是以尽可能快和尽可能合理的方式执行这些数据传送操作,从而最大化细胞处理器的总通过量。用于传送数据的命令称为MFC DMA命令。这些命令被变换成在局部存储域和主存储域之间的DMA传送。
每个MFC通常可同时支持多个DMA传送,并能维持和处理多个MFC命令。为达此目的,MFC维持和处理MFC命令队列。MFC可将多个传送请求排队,且并行地发出它们。每个MFC提供一个队列用于关联的SPU(MFC SPU命令队列),以及一个队列用于其它处理器和装置(MFC代理命令队列)。逻辑上,MFC队列的一个集合总是与细胞处理器中的每个SPU相关联,但该架构的一些实现方案可以在多个SPU、例如一个SPU组之间共享单个物理MFC。在这种情况下,所有的MFC设施对于软件而言必须呈现为对每个SPU是独立的。每个MFC DMA数据传送命令请求涉及局部存储器地址(LSA)和有效地址(EA)二者。局部存储器地址仅能直接寻址其关联SPU的局部存储区。有效地址具有更通用的应用,因为它能参考主存储器,包括所有SPU局部存储区,如果它们都被混叠到实际地址空间中的话(即如果将MFC_SR1[D]设置为‘1’)。
MFC呈现两种类型的接口一个接至SPU,而另一个接至处理组中的所有其它处理器和装置。SPU使用一个通道接口来控制MFC。在这种情况下,在SPU上运行的代码只能存取用于该SPU的MFC SPU命令队列。其它处理器和装置通过使用内存映射的寄存器来控制MFC。系统中的任何处理器和装置都有可能控制MFC,并代表SPU发出MFC代理命令请求。MFC还支持带宽保留和数据同步特性。为了便于SPU之间和/或SPU和PPU之间的通信,SPE和PPE可包括依附信令事件的信号通知寄存器。通常,PPE和SPE通过星形拓扑连接,其中PPE作为向SPE传输消息的路由器。这种拓扑不提供SPE之间的直接通信。而是,每个SPE和每个PPE都有一个单向信号通知寄存器,称为邮箱。该邮箱可用于SPE,以主持OS同步。
IIC组件管理着对PPE给出的中断的优先权。IIC的主要目的是允许来自处理器中其它组件的中断将被处理,而不使用主系统中断控制器。IIC实际上是一个二级控制器。它旨在处理符合CBEA的处理器内部的或在符合CBEA的处理器的多处理器系统内的所有中断。系统中断控制器通常将处理细胞处理器外部的所有中断。
在细胞处理器系统中,软件常必须首先检查IIC,以确定中断是否源自外部系统中断控制器。IIC并不旨在代替主系统中断控制器来处理来自所有I/O装置的中断。
在细胞处理器中有两种类型的存储域局部存储域和主存储域。SPE的局部存储器存在于局部存储域中。所有其它设施和内存都在主存储域中。局部存储器由内存存储器的一个或多个分开区域组成,每个区域与一个特定的SPU相关联。每个SPU只能执行来自其自己关联的局部存储域中的指令(包括数据加载和数据存储操作)。所以,发至或来自系统中其它地方的存储器的任何所需数据传送必须总是通过发出MFC DMA命令以在(各个SPU的)局部存储域和主存储域之间传送数据而执行,除非启动了局部存储器混叠。
SPU程序使用局部地址参考其局部存储域。但是,特权软件通过将MFC_SR1的D位设置为‘1’,可允许SPU的局部存储域被混叠到主存储域。每个局部存储区被分配了一个在主存储域内的实际地址。(实际地址是系统内存中的一个字节的地址,或者是I/O装置上的一个字节)。这就允许特权软件将局部存储区映射到应用的有效地址空间,以允许在一个SPU的局部存储器和另一SPU的局部存储器之间进行DMA传送。
可存取主存储域的其它处理器或装置可直接存取局部存储区,该局部存储区已混叠到主存储域中,其使用了已通过转换方法映射到由主存储域所代表的实际地址空间的有效地址或I/O总线地址。
使用混叠在主存储域中的局部存储区的数据传送应在高速缓存被禁止时这么做,因为这些存取与在其局部存储域中的SPU局部存储器存取(即,SPU加载、存储、指令取出)不相干。将局部存储区混叠到主存储域的实际地址空间中允许可存取主存储区的任何其它处理器或装置直接存取局部存储器。但是,由于混叠的局部存储器必须视为不可高速缓存的,因此使用PPE加载和存储指令传送大量数据可导致不良的性能。在局部存储域和主存储域之间的数据传送应使用MFCDMA命令,以避免阻塞。
在CBEA中主存储器的寻址与在PowerPC架构中定义的寻址兼容。CBEA构建在PowerPC架构的概念上,并将它们扩展到由MFC对主存储器的寻址。
在SPU上或在任何其它处理器或装置中执行的应用程序使用有效地址来存取主内存。当PPE执行加载、存储、分路或高速缓存指令时,以及当它取下一序列指令时,就计算有效地址。SPU程序必须提供有效地址作为MFC命令中的一个参数。按照在PowerPC架构册III中地址转换概述中所述的过程,将有效地址转换成实际地址。实际地址是由已转换的有效地址参考的主存储器中的位置。主存储器由系统中的所有PPE、MFC和I/O装置共享。在这级存储器中保持的所有信息对所有处理器以及系统中的所有装置都是可见的。该存储区在结构上是统一的,或者是分级高速缓存结构的一部分。程序使用有效地址参考这级存储器。
系统的主内存通常包括通用和非易失性存储器,也包括专用硬件寄存器或用于诸如系统配置、数据传送同步、内存映射I/O以及I/O子系统等功能的阵列。有许多不同的可能配置可用于主内存。用举例的方式且没有限制性,表1列出了主内存中的地址空间大小,用于称为细胞宽带引擎架构(CBEA)的特定细胞处理器实现方案。
表1
细胞处理器100可包括可选的设施,用于管理处理器和系统中的临界资源。在细胞处理器下目标为用于管理的资源是转换后备缓冲器(TLB)以及数据和指令高速缓存。这些资源的管理由根据实现方案而定的表来控制。
用于管理TLB和高速缓存的表称为置换管理表RMT,该表可与每个MMU相关联。虽然这些表是可选的,但为每个临界资源提供一个表常常是很有用的,临界资源可能是系统中的一个瓶颈。SPE组还可包含可选的高速缓存分级、SL1高速缓存,它们代表用于DMA传送的第一级高速缓存。SL1高速缓存还可包含可选的RMT。
以上旨在提供在细胞处理器实现方案中使用的术语的简介和说明。以上讨论还旨在按照本发明的实施例阐述用于数据结构的上下文和方法。这些实施例并不限于在具有上述架构的细胞处理器上实现或用其实现。但是,下述任何或所有实施例的实现都可使用这种细胞架构作为可能遇到和使用扩展SPUlet的环境。
图2示出用扩展SPUlet操作的细胞处理器200的实例。出于说明目的,该细胞处理器包括主内存202、单个PPE 204和8个SPE 206。但是,细胞处理器可配置有任何数量的SPE。参阅图2,内存、PPE和SPE可以在环形单元互连总线210上互相通信以及与I/O装置208通信。安全SPUlet 212可存储在主内存202中,例如经由I/O装置208和网络214被传送到其它细胞处理器,或被分段加载到构成该细胞处理器的各种SPE 206中。
在本发明的实施例中,至少一个SPE 206是安全SPE,如下所述。如图2B所示,安全SPE 220包括SPU 221、局部储存器224以及一些用于调用安全模式的构件。这些构件可以用硬件、软件或硬件和软件的某种组合来实现。用于调用安全模式的构件传递例如存储在外部存储器中、主机处理器的主内存202中或主机处理器上某个其它SPE的局部储存器中的加密代码的地址。按照本发明的实施例,有可能将单个SPE、所有SPE或SPE的任何子集固定在主机处理器上。在安全模式中,安全SPE 220的局部储存器224的安全部分222被阻止由主机细胞处理器200的其它处理器(PPE或其它SPE)存取,有一个窗口226除外,通过这个窗口,安全SPE可读入和/或写出适合于非安全传输的代码和/或数据。适合于非安全传输的代码和/或数据的实例包括例如已被加密的代码或数据。
安全部分222加载有可信代码228。在本文中使用的术语“可信代码”是指已被加密、认证或签名的代码。本发明的实施例不限于任何特定形式的加密、认证或签名。任何适合方式的加密、认证或签名都可使用。另外,可信代码包括具有两个或更多个加密、认证或签名的某种组合的代码。用举例的方式且没有限制性,可信代码228可包括加密器-解密器-加载器,其可将加密的代码和/或数据加载到安全区,解密已加密的代码/数据,并在通过窗口226发送出去以前,重新加密数据。
如上所述,安全SPUlet 102、212通常包括一个或多个SPU映象和附加数据,例如未初始化的数据,或者它们可包括两个或更多个SPU映象。图3示出可构成包括有加密部分301的安全SPUlet 300的数据排列。加密部分可包括但不限于一个或多个加密的SPU映象302、加密的共享初始化数据304、有关未初始化数据306的加密信息。安全SPUlet 300还可包括消息框308。安全SPUlet 300可选地包括文件标题310,文件标题310可包括或可不包括加密信息。
加密的SPU映象302通常包含加密形式的细胞处理器中SPE局部储存器的内容。可以在客户机装置上运行的过程期间,从SPE收集SPU映象,或者可以在客户机装置上接收它们,供在主机细胞处理器上进行处理。加密的SPU映象302可包含已由SPU处理的数据、要由SPU处理的数据、和/或用SPU处理数据的代码。当扩展SPUlet 300被暂停时,加密的SPU映象302还可包含关于MFC的DMA状态以及SPE的硬件状态的数据。加密的初始化数据304是已建立了可存储在主内存中和/或可在执行特定过程的几个SPE之间共享的值的数据,取决于配置。相反,加密的未初始化数据没有预先建立的值,但关于该数据的参数是已知的。例如,有关未初始化数据306的信息可以指数据类型、该数据所需内存空间的大小和位置。
对安全SPUlet 300的操作要求解密其加密成分。这样,SPU映象可包含用于解密代码和/或数据的SPUlet特定代码,然后它才可在安全SPE的安全区中运行。此外,在安全SPE可将信息写入主内存或任何其它地方之前,数据通常被重新加密,然后再通过窗口226发送出去。
重要的是要注意安全SPUlet的具体内容取决于上下文。例如,当安全SPUlet已被保存到主内存中时,系统内存中扩展SPUlet 300的映象包括加密的SPU映象302、加密的共享初始化数据304、有关未初始化数据306的加密信息以及消息框308。数据单元的这种组合称为系统内存中安全SPUlet的加密映象。但是,当将安全SPUlet 300从客户机装置传送到细胞处理器(此处称为主机处理器)时,可将文件标题310与加密的SPU映象302和加密的初始化数据304相组合。数据单元(此处称为加密的文件映象)的这种组合就是被传送的内容。
文件标题310可包括能告诉主机细胞处理器有关安全SPUlet的加密信息。这种信息可包括加密格式标识符、加密版本号,或标识解密安全SPUlet 300所需解密类型的其它信息。标题信息可分类为执行信息或扩展SPUlet信息。执行信息可包括主机资源、连接要求、以及描述SPUlet应运行的环境的其它标准。扩展SPUlet信息描述如内存布局、映射、开始偏置和其它初始化、消息框配置等情况。
这种信息可包括,例如内存可用性(即需要多少内存来运行扩展SPUlet)、SPU可用性(即需要多少SPU来运行扩展SPUlet)、用于扩展SPUlet的网络等待时间和带宽以及系统频率要求、控制流信息(例如,主机或客户机是否有权中断和暂停扩展SPUlet)、内存偏置、一个或多个SPU映象的断点、一个或多个SPU映象的大小、内存映射信息、消息框布局、消息框能力等等。应理解,标题还可定义有关以下各项的信息用户、ID、系统、功能、数据类型、通道、标记、密钥、密码、协议、可在其中建立系统或操作的目标或简档或任何量度,其中它们可涉及扩展SPUlet或从那指向,并包括但不限于配置、初始化、操作的更改或同步,涉及到满足应用的总目标的任何程序或系统或模块或对象,其中扩展SPUlet操作以服务于该应用的总目标。这种应用可包括与安全有关的应用和协议、编码、解码和代码变换应用、事务处理等等。文件标题310可由客户机装置在传输之前创建,并与SPU映象和初始化数据一起传输。备选的是,文件标题310可以是文件映象的一部分,并作为堆栈传输的一部分发送出去。
一般来说,SPU不能存取特权SPU控制。结果,SPUlet 300常常需要用适当的代码加载每个SPE,这可在加载时就开始。而且,为了进行通信,SPUlet 300最好包括内存映射信息,该信息将所涉及的SPE相互映射,并映射到主内存的任何共享部分。图4示出使用安全SPUlet安全操作细胞处理器的通用方法400。
在主机装置200能加载SPUlet 300之前,主机处理器优选使用认证的加载器来加载安全SPUlet 300。为了提供认证的加载器,可以执行验证步骤401A、主机认证401B以及客户机认证401C。
在验证步骤401A,主机PPE接收来自客户机的、运行安全SPUlet(其可以是安全扩展SPUlet)的请求。客户机将验证参数传递到主机(例如,安全格式ID、版本号、或标识解密客户机想要发送给主机细胞处理器的加密代码所需的解密构件的其它信息)。这种信息可包括运行安全SPUlet所需的SPU数。主机使用此信息来验证它具有处理安全SPUlet的能力,并通知客户机。
在主机认证步骤401B,主机处理器然后确定客户机是否可信,例如通过交换证书。
在客户机认证步骤401C,客户机确定主机可信,例如通过发送证书,例如加密代码和/或需要通过安全SPE认证的数据。证书必须以某种方式依附于用于安全SPUlet的加密格式,但可以是不同于用来解密安全SPUlet的格式。主机接收证书,用安全SPE处理它,并产生某种结果,此结果被发送回客户机。客户机可根据对可信主机的预期结果来检查此结果。
一旦客户机满意,即主机可信,那么在步骤402,安全SPUlet 300就作为安全文件映象从客户机装置传送到主机装置。安全文件映象可包含加载器-加密器-解码器代码。在主机和客户机细胞处理器之间传送文件映象可在任何网络或总线上进行,包括但不限于安全和不安全网络、局域网(LAN)、广域网(WAN)或公众网如因特网。在一些实施例中,客户机机器可将文件标题310发送到主机机器,然后发送其余的安全SPUlet。主机机器可以分析文件标题中的信息,用作接受标准,例如主机机器或SPUlet所指向的另一装置是否为已知的,或已确定有足够的SPU、安全权限、权利、配置、内存等可用于运行安全SPUlet。主机机器然后可决定是否接受该安全SPUlet,或将此安全SPUlet传递到SPUlet所指向的另一装置或目标机器。
如果主机机器接受该安全SPUlet,那么在步骤404,它为扩展SPUlet分配系统内存。主机机器可使用文件标题中的信息来为加密SPU映象302和加密的共享初始化数据304分配内存块的大小和数据类型。一旦已分配了内存空间,那么在步骤406,主机处理器可将安全SPUlet 300的加密SPU映象302和加密的初始化数据304加载到主机细胞处理器的主内存中。主机细胞处理器然后可分配用于加密的未初始化数据(如果有的话)以及消息框的区域。优选的是,在PPU的主内存中分配内存。但是,专门的SPUlet应用可在PPU中和/或在一个或多个SPU局部存储器中配置内存,视专门的SPUlet应用而定。一般来说,在主内存中分配内存,以满足用于复杂处理如视频代码变换的扩展到达内存要求。图5A-5B示出了用于主机装置的细胞处理器(主机细胞处理器)上的扩展SPUlet的数据组织。如图5A所示,主机处理器接收包含加密的SPU映象302、加密的初始化数据304以及文件标题310(它可包括加密信息)的加密文件映象。通常,只有加密的SPU映象302和加密的初始化数据304被存储在主机细胞处理器的主内存中。这些形成安全SPUlet 300的主内存覆盖区。标题310中的数据一旦主机处理器用完它之后就可被丢弃。
在步骤408,主机细胞处理器可分配其主内存中的区域用于未初始化的数据506和消息框508。如图5A所示,SPU映象302、初始化数据304以及分配用于未初始化数据506和消息框508的区域的组合构成用于扩展SPUlet 300的主机细胞处理器主内存中的映象。在步骤410,主机处理器为扩展SPUlet 300分配SPE 510(如图5B所示)。在步骤411,主机的SPE被设置为安全模式,如以上结合图2A所述的。用可信的加载器-加密器-解密器512来加载安全SPE,这允许安全SPE将加密的代码和/或数据通过窗口加载到安全区域,解密解码代码和/或数据,以使其能由安全SPE运行,并加密要通过窗口发送到安全SPE以外的任何信息。
一旦SPE 510被分配并设置为安全模式,则在步骤412,加密的SPU映象302就被加载到所分配的SPE 510中。然后在步骤414,使用加密器-解密器-加载器代码512,SPE可运行在安全模式。
客户机不必是一个单元。客户机可以是个人计算机(PC)。客户机仅需要它发送到细胞处理器的加密文件映象和/或标题。最好使细胞处理器免遭用户访问的危险,防止用户窜改主机处理器。SPE包括用于调用安全模式的构件。
虽然以上是对本发明优选实施例的全部说明,但可以使用各种备选、更改和等效物。所以,本发明的范围不应参阅以上说明来确定,而是应参阅所附权利要求书,以及它们全部范围的等效物来确定。本文所述的任何特性,不论其优选与否,都可与本文所述的任何其它特性相组合,不论其优选与否。在以下的权利要求书中,不定冠词“一个”指该冠词后的一个或多个项目的量,除非另有明确说明。所附权利要求书不应被解释为包括“构件加功能”的限制,除非这种限制是在给定权利要求中使用短语“用于...的构件”作了明显叙述。
权利要求
1.一种用于安全操作细胞处理器的方法,所述细胞处理器具有Power处理器部件(PPU)、主内存以及一个或多个协处理器引擎(SPE),其中每个SPE包括协处理部件(SPU)、局部存储器以及内存流控制器(MFC),所述方法包括以下步骤在主机装置的细胞处理器(主机细胞处理器)上接收来自客户机装置的安全文件映象,其中所述安全文件映象包括加密的SPU映象。
2.如权利要求1所述的方法,还包括将所述主机细胞处理器的一个或多个所述SPE设置为工作在安全模式。
3.如权利要求2所述的方法,其中在所述安全模式,安全SPE的局部储存器的第一部分被阻止由所述主机细胞处理器的所述PPU或其它SPU存取。
4.如权利要求2所述的方法,其中在所述安全模式,所述安全SPUlet通过窗口被加载到所述局部储存器中,其中只有适合于非安全传输的代码和/或数据通过所述窗口被读入和/或写出。
5.如权利要求2所述的方法,其中将所述主机细胞处理器的一个或多个所述SPE设置为工作在安全模式包括将解密器-加密器-加载器代码加载到一个或多个SPE的所述局部储存器中。
6.如权利要求5所述的方法,其中加密器-加载器-解码器代码配置成仅读入和/或写出适合于非安全传输的代码和/或数据。
7.如权利要求1所述的方法,其中所述安全文件映象还包括加密的共享初始化数据。
8.如权利要求1所述的方法,其中所述安全文件映象包括两个或更多个加密的SPU映象。
9.如权利要求1所述的方法,还包括为所述加密的SPU映象分配所述主机细胞处理器的主内存(主机主内存)中的空间。
10.如权利要求2所述的方法,还包括将所述加密的SPU映象加载到所述主机主内存中的所分配空间中。
11.如权利要求1所述的方法,还包括为未初始化数据和消息框分配所达主机细胞处理器的主内存(主机主内存)中的区域。
12.如权利要求1所述的方法,还包括将加密的文件映象数据加载到所述主机细胞处理器的SPU中。
13.如权利要求1所述的方法,还包括在传送所述文件映象之前,验证所述主机处理器能运行安全过程。
14.如权利要求1所述的方法,还包括在所述主机细胞处理器上接收来自所述客户机装置的运行安全SPUlet的请求。
15.如权利要求12所述的方法,还包括用所述主机细胞处理器根据从所述客户机接收的信息确定是否接受所述安全SPUlet。
16.一种处理器可读介质,其中实施有代表用于细胞处理器的安全SPUlet的数据,所述细胞处理器具有Power处理部件(PPU)、一个或多个协处理引擎(SPE)以及连接到所述PPU和SPE的主内存,其中每个SPE包括协处理部件(SPU)和局部储存器,所述安全SPUlet包括加密的SPU映象。
17.一种细胞处理器,具有Power处理部件(PPU)、一个或多个协处理引擎(SPE)以及连接到所述PPU和SPE的主内存,其中每个SPE包括协处理部件(SPU)和局部储存器,所述细胞处理器在所述主内存或局部储存器中实施有代表安全SPUlet的数据,所述安全SPUlet包括加密的SPU映象。
18.如权利要求17所述的细胞处理器,其中至少一个所述SPE是安全SPE。
19.如权利要求17所述的细胞处理器,其中所述安全SPE的局部储存器包括不能由所述细胞处理器的所述PPU、其它SPE或其它处理器存取的安全部分以及窗口,通过所述窗口可将加密的代码和/或数据传送入和传送出安全部分。
20.如权利要求19所述的细胞处理器,其中所述局部储存器还包括可信代码。
21.如权利要求20所述的细胞处理器,其中所述可信代码是加密的、认证的或签名的。
全文摘要
公开了细胞处理器的安全操作。细胞处理器在主机装置的细胞处理器(主机细胞处理器)上接收来自客户机装置的安全文件映象,其中安全文件映象包括加密的SPU映象。
文档编号G06F21/00GK1941780SQ20061014230
公开日2007年4月4日 申请日期2006年9月27日 优先权日2005年9月27日
发明者岩本达也 申请人:索尼电脑娱乐公司