CN101084505B - 用于保护数据处理和传送安全的方法和设备 - Google Patents
用于保护数据处理和传送安全的方法和设备 Download PDFInfo
- Publication number
- CN101084505B CN101084505B CN2005800437883A CN200580043788A CN101084505B CN 101084505 B CN101084505 B CN 101084505B CN 2005800437883 A CN2005800437883 A CN 2005800437883A CN 200580043788 A CN200580043788 A CN 200580043788A CN 101084505 B CN101084505 B CN 101084505B
- Authority
- CN
- China
- Prior art keywords
- key
- mode
- local memory
- processor
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims abstract description 168
- 238000000034 method Methods 0.000 title claims abstract description 60
- 230000005540 biological transmission Effects 0.000 title description 5
- 230000015654 memory Effects 0.000 claims abstract description 208
- 238000012546 transfer Methods 0.000 claims abstract description 92
- 230000008569 process Effects 0.000 claims abstract description 21
- 238000012795 verification Methods 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 7
- 230000000977 initiatory effect Effects 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 23
- 230000006870 function Effects 0.000 description 15
- 238000003860 storage Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 8
- 238000007667 floating Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 8
- 238000013459 approach Methods 0.000 description 7
- 238000013519 translation Methods 0.000 description 6
- 244000035744 Hura crepitans Species 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 239000000758 substrate Substances 0.000 description 4
- 230000004888 barrier function Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 241000700605 Viruses Species 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 235000003642 hunger Nutrition 0.000 description 2
- 230000009249 intrinsic sympathomimetic activity Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000037351 starvation Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- JBRZTFJDHDCESZ-UHFFFAOYSA-N AsGa Chemical compound [As]#[Ga] JBRZTFJDHDCESZ-UHFFFAOYSA-N 0.000 description 1
- 229910001218 Gallium arsenide Inorganic materials 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- FTWRSWRBSVXQPI-UHFFFAOYSA-N alumanylidynearsane;gallanylidynearsane Chemical compound [As]#[Al].[As]#[Ga] FTWRSWRBSVXQPI-UHFFFAOYSA-N 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
- Information Transfer Systems (AREA)
Abstract
公开了用于将处理单元置于多个操作模式的一个或多个中的方法和设备,其中:该设备包括本地存储器;总线,可操作来将信息携带到该本地存储器或者从该本地存储器中携带出信息;一个或多个算术处理单元,可以操作来处理数据并且可操作地连接到该本地存储器;以及安全电路,可以操作来将该设备置于操作模式中,其中所述多种操作模式包括:该设备和外部装置可以启动通过总线的、到或者来自存储器的数据传送的第一模式,该设备和外部装置都不可以启动通过总线的、到或者来自存储器的数据传送的第二模式,和该设备可以启动通过总线的、到或者来自存储器的数据传送而外部设备不能启动通过总线的、到或者来自存储器的数据传送的第三模式。
Description
技术领域
本发明涉及使用多处理器架构来保护数据处理安全以在例如宽带环境中保护数据处理安全的方法和设备。
背景技术
实时、多媒体、网络应用正在变得越来越重要。这些网络应用需要诸如每秒许多千兆比特数据之类的非常快速的处理速度。诸如因特网之类的传统网络架构和在例如现在在Java模型中实现的编程模型已经使得非常难于达到这种处理速度。
从原则上来说,针对单机(stand-alone)计算设计了传统计算机网络(例如,在办公网络中所使用的局域网(LAN)和诸如因特网之类的全球网络)的计算机和计算装置。在计算机网络上共享数据和应用程序(应用)不是这些计算机和计算装置的原则性设计目标。通常还使用由许多不同制造商(例如,摩托罗拉、英特尔、德州仪器、索尼等)所制造的许多种不同处理器来设计这些计算机和计算装置。这些处理器的每一种都具有其自己特定的指令集和指令集架构(ISA),即,其自己的汇编语言指令的特殊集和用于主要计算单元以及用于执行这些指令的存储器单元的结构。因此,需要程序员理解每种处理器的指令集和ISA以为这些处理器编写应用。在今天的计算机网络上的计算机和计算装置的这种异构组合使得数据和应用的处理和共享变得复杂。而且,通常需要相同应用的多个版本以适应这种异构环境。
连接到全球网络(特别是因特网)的计算机和计算装置的类型是非常广泛的。除个人计算机(PC)和服务器之外,这些计算装置还包括蜂窝电话、移动计算机、个人数字助理(PDA)、机顶盒、数字电视等。在这些种类的计算机和计算装置之间共享数据和应用存在严重的问题。
作为克服这些问题的努力已经使用了许多技术。这些技术包括高级接口和复杂编程技术等。这些解决方案通常需要显著增加处理能力以进行实施。它们还常常导致处理应用和在网络上传送数据所需要的时间的增加。
通常,将数据与对应的应用分离地址因特网上进行传送。这种方式避免了与应用对应的所传送的数据的每个集一起来发送应用的需要。虽然这种方法将所需要的带宽量最小化,但是其通常导致用户之间的失望。在客户计算机上可能不能获得用于所传送的数据的正确应用或者最新的应用。这种方法还需要为在网络上的处理器所使用的多个不同ISA和指令集编写每个应用的几个版本。
Java模型试图解决这种问题。该模型使用符合严格安全协议的小应用(“小应用程序(applet)”)。将小应用程序从服务器计算机通过网络进行发送以由客户计算机(“客户机”)运行。为了避免必须发送不同版本的相同的小应用程序给使用不同ISA的客户机,所有Java小应用程序都在客户机的Java虚拟机上运行。Java虚拟机是模仿具有Java ISA和Java指令集的计算机的软件。然而,该软件运行在客户机的ISA和客户机的指令集上。针对客户机的每种不同ISA和指令集提供Java虚拟机的版本。因此不需要每种小应用程序的多个不同版本。每个客户机仅仅下载用于其特定ISA和指令集的正确Java虚拟机以运行所有Java小程序。
虽然对必须为每种不同ISA和指令集编写不同版本的应用的问题提供了解决方案,但是Java处理模型需要客户计算机上的额外层的软件。该额外层的软件显著降低处理器的处理速度。这种速度的降低对于实时、多媒体应用特别显著。下载的Java小应用程序还可能包含病毒、处理误操作等。这些病毒和误操作可以破坏客户机的数据库并且导致其他损坏。虽然在Java模型中所使用的安全协议试图通过实施软件“沙箱(sandbox)”(即Java小应用程序超过其就不能写数据的客户机存储器中的空间)来克服这种问题,但是这种软件驱动的安全模型在其实施中常常是不安全的,甚至需要更多的处理。
因此,在现有技术中需要用于在单元(cell)架构中保护数据的处理安全的新方法和设备。
发明内容
已经开发了新的计算机(和网络)架构来克服至少某些上述问题。根据这种新的计算机架构,从公共计算机模块(或者单元)中构造计算机网络的所有成员,即网络的所有计算机和计算装置。这种公共计算机模块具有相容结构并且最好使用相同的ISA。网络的成员可以是例如使用计算机处理器的客户机、服务器、PC、移动计算机、游戏机、PAD、机顶盒、电器、数字电视等设备。该相容模块结构使得能够由网络成员有效、高速地处理应用和数据,以及在网络上快速传送应用和数据。这种结构还简化了各种规模和处理能力的网络成员的建造以及用于这些成员的处理的应用的准备。
新的计算机架构还使用新的编程模型,其提供用于在网络上传送数据和应用并且用于在网络成员之间处理数据和应用。这种编程模型针对任何网络成员的处理使用在网络上传送的软件单元。每个软件单元具有相同的结构并且可以包含应用和数据两者。作为模块计算机架构所提供的高速处理和传送速度的结果,可以快速地处理这些单元。用于应用的代码最好基于相同的公共指令集和ISA。每个软件单元最好包含全局标识(全局ID)和描述该单元的处理所需要的计算机资源量的信息。由于所有计算资源都具有相同的基本结构并且使用相同的ISA,所以执行这种处理的特定资源可以位于网络上的任何位置并且进行动态分配。
基本处理模块是处理器元件(PE)。PE最好包括处理单元(PU)、直接存储器存取控制器(DMA)和多个附连处理单元(attached processing unit,APU)(诸如四个APU),它们都在公共接口地址和数据总线上连接。PU和APU与共享的动态随机存取存储器(DRAM)互动,该DRAM可以具有纵横架构(cross-bararchitecture)。PU调度和配合APU的数据和应用的处理。APU以并行和独立的方式执行该处理。DMAC控制PU和APU对共享DRAM中所存储的数据和应用的存取。
根据该模块结构,由网络成员所使用的PE数量基于该成员所需要的处理能力。例如,服务器可以使用四个PE,工作站可以使用两个PE,而PAD可以使用一个PE。分配用于处理特定软件单元的PE的APU的数量依赖于该单元内的程序和数据的复杂度和量级。
多个PE可以与共享DRAM相关联,并且可以将DRAM分隔为多个部分,这些部分中的每一个分隔为多个存储体(memory bank)。可以由存储体控制器来控制DRAM的每个部分,而且PE的每个DMAC可以存取每个存储体控制器。在这种结构中,每个PE的DMAC可以存取共享DRAM的任何部分。
DRAM可以包括沙盒以提供针对正在由一个APU所处理的程序的数据对正在由另一个APU所处理的程序的数据的损坏的安全级别。每个沙盒定义共享DRAM的一个区域,特定APU或者APU组不能超出该区域读写数据。
虽然沙盒的使用提供针对数据破坏的某种安全措施,但是其不应对故意的软件盗版的问题。由于在给定PE内的多个APU通过公共内部总线连接,所以在一个APU上运行的软件可以由另一个APU监视。在宽带网络的情况中,最好在给定PE内的两个和多个APU运行不同的应用程序。为了确保高系统灵活性,最好允许这些软件程序从诸如不同软件开发公司之类的不同的实体获得。在某些实例下,软件开发公司可以保证其软件应用是安全的,而且不被复制或者另外地监视。
根据本发明的一个或多个方面,设备包括:本地存储器;总线,可操作来将信息携带到该本地存储器或者从该本地存储器中携带出信息;一个或多个算术处理单元,可以操作来处理数据并且可操作地连接到该本地存储器;以及安全电路,可以操作来将该设备置于多个可操作模式中的至少一个中,包括该设备和外部装置可以启动通过总线的、到或者来自存储器的信息传送的第一模式,该设备和外部装置都不启动通过总线的、到或者来自存储器的信息传送的第二模式,和该设备可以启动通过总线的、到或者来自存储器的信息传送而外部设备不能启动通过总线的、到或者来自存储器的信息传送的第一模式的第三模式。
根据本发明的进一步一个或者多个方面,可以操作安全电路以将该设备置于两种操作模式中的至少一种中,其中该两种操作模式包括以下之一:(i)该设备和外部装置可以启动通过总线的、到或者来自存储器的信息传送的第一模式,和该设备可以启动通过总线的、到或者来自存储器的信息传送而外部设备不能启动通过总线的、到或者来自存储器的信息传送的第三模式;和(ii)该设备和外部装置都不启动通过总线的、到或者来自存储器的信息传送的第二模式,以及该第三模式。
该安全电路最好包括在该安全电路之外的装置不可存取的秘密数据区域,而且该秘密数据区域包含第一密钥和第二密钥。该安全电路还最好包括该安全电路之外的装置可以存取的可存取数据区域。进一步,该安全电路包括逻辑电路,其可以操作以在该设备处于第二模式中时将第一密钥的复制件置于可存取数据区域中。最好,将第一密钥和第二密钥在受控过程中存储在秘密数据区域中,从而在使用该设备之间维持安全性。
最好当该设备运行验证例程时该安全电路将该设备置于第二模式中,该例程包括执行解密程序并且执行验证程序,该验证程序包括第二密钥的复制件,而根据第一密钥已经加密了该验证程序。该设备执行解密程序,使得在可存取数据区域中所包含的第一密钥的复制件用于解密验证程序。
该安全电路的逻辑电路最好响应于验证程序的执行将第二密钥的复制件置于可存取数据区域中;以及该逻辑电路进行关于在验证程序内所包含的第二密钥的复制件是否匹配于在可存取数据区域中所包含的第二密钥的复制件的确定。
可以操作该安全电路以在验证程序内所包含的第二密钥的复制件匹配于可存取数据区域中所包含的第二密钥的复制件时将该设备置于第三模式。
根据本发明的进一步的一个或多个方面,将多个上述设备放置在单装置中。
根据本发明的进一步的一个或多个方面,方法包括将设备置于多个可操作模式中的至少一个中,其中:该设备包括本地存储器;总线,可操作来将信息携带到该本地存储器或者从该本地存储器中携带出信息;一个或多个算术处理单元,可以操作来处理数据并且可操作地连接到该本地存储器;以及安全电路,可以操作来将该设备置于操作模式;以及多个操作模式包括该设备和外部装置可以启动通过总线的、到或者来自存储器的信息传送的第一模式,该设备和外部装置都不启动通过总线的、到或者来自存储器的信息传送的第二模式,和该设备可以启动通过总线的、到或者来自存储器的信息传送而外部设备不能启动通过总线的、到或者来自存储器的信息传送的第一模式的第三模式。
根据本发明的进一步的一个或多个方面,设备包括:主处理单元;多个附连处理单元,每个包括本地存储器和译码单元,并且每个可以操作来进入普通操模式或者安全操作模式;和共享存储器,其中:当旁路解密单元的附连处理单元中给定的一个处于普通模式时,该主处理单元能够启动共享存储器和该给定附连处理单元之间的数据传送,以及该主处理单元不能:(i)启动从该给定附连处理单元到共享存储器的数据传送;或者(ii)当该给定附连处理单元处于安全模式时,启动从共享存储器到旁路解密单元的该给定附连处理单元的数据传送。
附连处理单元最好能够启动与共享存储器的数据传送,而不论它们处于普通操模式还是安全操作模式中。可以操作附连处理单元以在硬件重置条件和开机条件中至少一个时进入安全操模式。
每个附连处理单元最好包括包含基本上唯一的密钥的安全存储器,可以只由该给定附连处理单元的解密单元的至少一个存取该存储器。每个附连处理单元的解密单元最好使用密钥来解密从共享存储器传送到本地存储器的数据,这种数据传送是当该给定附连处理单元处于安全操模式时由主处理单元所启动的。每个附连处理单元与基本上唯一的ID关联,至少一个该给定附连处理单元是外部的实体和该设备可以知道该ID。
最好由该设备外部的安全实体加密经加密的数据,授权该安全实体使用该给定附连处理单元的密钥。该安全实体可以包括包含参与的附连处理单元的ID和密钥的数据库,用于给定附连处理单元的每个ID和密钥彼此关联。在不安全实体提供与密钥关联的ID给该安全实体之后,利用用给定附连处理单元的密钥,该安全实体加密从不被授权使用给定附连处理单元的密钥的不安全实体接收来的数据。
最好,该安全实体可以操作来将加密的数据提供给不安全实体;可以操作不安全实体以提供加密的数据给该设备以存储在共享存储器中;可以操作主处理单元以启动从共享存储器到给定附连处理单元的加密数据的传送,使得加密的数据输入到解密单元中;以及可以操作给定附连处理单元的解密单元以使用给定附连处理单元的密钥来解密所加密的数据,使得数据存储在给定附连处理单元的本地存储器中。
替代地,不被授权来使用给定附连处理单元的密钥的不安全实体提供加密的数据给安全实体,并且将与给定附连处理单元相关联的ID提供给安全实体。该安全实体最好使用第二对称密钥来解密不安全实体所提供的经加密的数据,并且使用与从不安全实体接收来的ID相关联的给定附连处理单元的密钥来加密数据。
不安全实体最好使用第一对称密钥来加密给定附连处理器单元的数据和ID,并且将经加密的数据/ID提供给安全实体。最后,可以操作安全实体以使用第二对称密钥加密经加密的数据,并且提供经过加密的经加密数据给不安全实体;可以操作不安全实体来使用第一对称密钥解密经过加密的经加密数据以获得使用给定附连处理单元的密钥所产生的经加密数据,并且提供经加密的数据给设备以存储在共享存储器中;可以操作主处理单元以启动从共享存储器到给定附连处理单元的加密数据的传送,使得将经加密的数据输入到解密单元;以及,可以操作给定附连处理单元的解密单元以使用给定附连处理单元的密钥来解密经加密的数据,使得数据存储在给定附连处理单元的本地存储器中。
在进一步的替代方式中,数据是解密程序;不被授权使用给定附连处理单元的密钥的不安全实体使用第一对称密钥加密该解密程序,提供经加密的解密程序给安全实体,并且提供与给定附连处理单元相关联的ID给安全实体;以及,安全实体使用第二对称密钥解密由不安全实体所提供的经加密的解密程序,并且使用与从不安全实体接收来的ID相关联的给定附连处理单元的密钥来加密解密程序和第二对称密钥。不安全实体最好使用第一对称密钥来加密解密程序和给定附连处理单元的ID,并且提供经加密的解密程序/ID给安全实体。
最好,安全实体可以操作来使用第二对称密钥加密经加密的解密程序和第二对称密钥,并且提供经过加密的经加密的解密程序/第二对称密钥给不安全实体;不安全实体可以操作来使用第一对称密钥对经过加密的经加密的解密程序/第二对称密钥进行解密,以获得使用给定附连处理单元的密钥所产生的经加密的解密程序/第二对称密钥,并且提供经加密的解密程序/第二对称密钥给设备以存储在共享存储器中;主处理单元可以操作来启动经加密的解密程序/第二对称密钥从共享存储器到给定附连处理单元的传送,以便经加密的解密程序/第二对称密钥输入到解密单元;以及,给定附连处理单元的解密单元可以操作来使用给定附连处理单元的密钥对经加密的解密程序/第二对称密钥进行解密,以便解密程序和第二对称密钥存储在给定附连处理单元的本地存储器中。
进一步,不安全实体可以操作来使用第一对称密钥加密数据,并且将经加密的数据提供给设备以存储在共享存储器中。给定附连处理单元能够将来自共享存储器的经加密的数据接收到旁路解密单元的本地存储器中。当从给定存储器将经加密的数据接收到本地存储器时,给定附连处理单元可以处于普通模式或者安全模式。给定附连处理单元可以操作来使用解密程序和第二对称密钥对经加密的数据进行解密。主处理单元可以操作来启动经加密的数据从共享存储器到旁路解密单元的给定附连处理单元的本地存储器的传送。
当结合附图理解下面描述时,本发明的其他方面、特点和优点将对于本领域的技术人员显而易见。
附图说明
为了示例的目地,在附图中示出了现在优选的形式,但是应该理解,本发明不限于所示的确切安排和措施。
图1示出了根据本发明的一个或者多个方面的示例计算机网络的总体架构;
图2示出了根据本发明的一个或者多个方面的多处理器系统的框图;
图3是示出根据本发明的一个或者多个方面的图2的系统的安全电路的结构的框图;
图4是示出根据本发明的一个或者多个方面,可以由图2的系统执行以实现验证例程的过程步骤的一部分的流程图;
图5是示出根据本发明的一个或者多个方面,可以由图2的系统执行以实现验证例程的过程步骤的一部分的流程图;
图6是示出根据本发明的一个或者多个方面,可以由图2的系统执行以实现验证例程的过程步骤的一部分的流程图;
图7是示出可以用于实施本发明的一个或者多个方面的优选处理器元件(PE)的框图;
图8是示出根据本发明的进一步一个或多个方面可以适应的图7的系统的示例子处理单元(SPU)的结构的框图;
图9是示出根据本发明的进一步一个或者多个方面可以适应的图7的系统的示例处理单元(PU)的结构的框图;
图10是根据本发明的一个或者多个方面具有安全特点的处理器的框图;
图11是使用图10的处理器以使用本发明的特定安全特点的系统的框图;
图12是使用图10的处理器以使用根据本发明的进一步的安全特点的系统的框图;
图13是使用图10的处理器以使用根据本发明的再进一步的安全特点的系统的框图;
图14示出图13的系统的进一步细节;
图15是使用图10的处理器以使用根据本发明的再进一步的安全特点的系统的框图;
图16是使用图10的处理器以使用根据本发明的再进一步的安全特点的系统的框图;
图17示出图16的系统的进一步细节;和
图18是使用根据本发明的进一步的一个或多个方面的多个处理器的系统的框图。
具体实施方式
在图1中示出了根据本发明的计算机系统1的总体架构。系统1包括多个计算机和计算装置连接到其上的网络4。网络4可以是LAN、诸如因特网之类的全球网络或者其他任何计算机网络。
连接到网络4的计算机和计算装置(网络的“成员”)包括(例如)客户计算机6、服务器计算机8、个人数字助理(PDA)10、数字电视(DTV)12和其他有线或者无线计算机和计算装置。由网络4的成员所使用的处理器通过相同的公共计算模块进行构建。这些处理器还最好都具有相同的ISA,并且根据相同的指令集执行处理。在任何特定处理器中所包括的模块的数量依赖于该处理器所需要的处理能力。
例如,由于系统1的服务器8比客户机6执行更多的数据和应用处理,所以服务器8包含比客户机6更多的计算模块。另一方面,PDA 10在本例中执行少量处理。因此,PDA 10包含最少数量的计算模块。DTV 12执行客户机6和服务器8之间的处理量级。因此,DTV 12包含介于客户机6和服务器8的计算模块数量之间的计算模块数量。如下所讨论的那样,每个计算模块包含处理控制器和用于对在网络4上所传送的数据和应用执行并行处理的多个相同处理单元。
系统1的这种同构配置有助于适应性、处理速度和处理效率。因为系统1的每个成员都使用一个或多个(或者某部分的)相同计算模块来执行处理,所以执行数据和应用的实际处理的特定计算机或者计算装置不重要。而且,特定应用和数据的处理可以在网络的成员之间共享。通过唯一地标识包括在整个系统中由系统1所处理的数据和应用的单元,可以将处理结果传送到请求处理的计算机或者计算装置,而不论发生处理的位置。因为执行这种处理的模块具有共同的结构而且使用共同的ISA,所以避免了在添加软件层以处理器之间的兼容的计算负担。这种架构和编程模型有助于执行例如实时、多媒体应用所需要的处理速度。
为了利用系统1所改进的处理速度和效率,可以将该系统所处理的数据和应用打包唯一标识的、统一格式化的软件单元2中。每个软件单元2包含,或者可以包含应用和数据两者。每个软件单元还包含ID以全局标识在整个网络4和系统1中的单元。软件单元结构的这种一致性和软件单元在整个网络中的唯一标识有助于在网络的计算机或者计算装置上对应用和数据进行处理。例如,客户机6可以配置(formulate)软件单元2,但是因为客户机6的有限处理能力,其将该软件单元传送到服务器8以进行处理。因此,软件单元2可以在整个网络4上进行迁移以根据网络4的处理资源的可用性进行处理。
系统1的处理器和软件单元2的同构结构还避免了现今异构网络的许多问题。例如,避免了低效编程模型,该模型使用任何指令集(例如,诸如Java虚拟机之类的虚拟机)寻求允许在任何ISA对应用进行处理。因此,系统1可以比传统网络更加有效和更高效率地实施宽带处理。
参照图2,示出处理系统100的至少一部分,其可以被适应来执行本发明的一个或者多个特点。为了简洁和清楚的目地,将把图2的框图在这里描述并且称为所示的处理系统100,但是应该理解,这种描述可以以相等的效力应用于方法的各个方面。
处理系统100包括多个处理器102A、102B、102C和102D,应该理解,在不偏离本发明的精神和范围的情况下,可以使用任何数量的处理器。处理系统100还可以包括多个本地存储器104A、104B、104C、104D和共享存储器106。最好至少将处理器102、本地存储器104和共享存储器106(直接或者间接地)通过总线系统108彼此连接,该总线系统108可以操作来根据适当的协议向或者从每个部件传送数据。
每个处理器102可以具有类似的构造或者不同的构造。可以利用任何已知技术来实施该处理器,所述已知技术能够从共享存储器106(或者系统)请求数据并且操控数据以实现所期望的结果。例如,处理器102可以使用任何已知微处理器来实施,该微处理器能够执行软件和/或固件,其包括标准微处理器、分布式微处理器等。通过示例,一个或多个处理器102可以是图形处理器,其能够请求和操控诸如像素数据之类的数据(包括灰度级信息、颜色信息、纹理数据、多边形信息、视频帧信息等)。
系统100的一个或多个处理器102可以充当主(或者管理)处理器的角色。主处理器可以调度和协调其他处理器对数据的处理。
共享存储器106最好是通过存储器接口电路(未示出)连接到处理器102的动态随机存取存储器(DRAM)。虽然共享存储器106最好是DRAM,但是还可以使用例如静态随机存取存储器(SRAM)、磁随机存取存储器(MRAM)、光学存储器、全息存储器之类的其他装置来实施存储器106。
每个处理器102最好包括处理器核以及在其中执行程序的一个相关联的本地存储器104。这些部件可以集成地放置在公共半导体基底上,也可以根据设计者的要求而分离地放置。最好使用处理流水线(pipeline)来实施处理器核,在该处理流水线中以流水线方式处理逻辑指令。虽然可以将流水线分割为处理指令的任何数量的级,但是流水线通常包括取回一个或多个指令、对指令进行译码、检查指令之间的依赖性、发布指令和执行指令。从这方面来说,处理器核可以包括指令缓冲器、指令译码电路、依赖性检查电路、指令发布电路和执行级。
每个本地存储器104经由总线连接到其相关联的处理器核102,并且最好与处理器核位于相同的芯片(相同的半导体基底)上。本地存储器104最好不是传统的硬件高速缓冲存储器,这是因为不存在用以实施硬件高速缓冲存储器功能的芯片内(on-chip)或者与芯片外(off-chip)硬件高速缓存电路、高速缓冲寄存器、高速缓冲存储器控制器等。因为芯片上的空间通常有限,所以本地存储器的大小可以比共享存储器106小得多。
处理器102最好提供数据存取请求以通过总线系统108将数据(其可以包括程序数据)从共享存储器106复制到它们相应的本地存储器104,以进行程序执行和数据操控。帮助数据存取的这种机制可以利用例如直接存储器存取(DMA)技术之类的任何已知技术来实施。最好由存储器接口电路来执行这种功能。
参照图3,一个或多个处理器102还最好包括安全电路150,其可以进行操作以将处理器102置于多个操作模式中的至少一个中。安全电路150包括秘密数据区域152、可存取数据区域154和逻辑电路156。最好在安全电路150之外的任何装置都不能存取秘密数据区域152。在安全电路150以外的装置最好可以存取可存取数据区域154。可以将秘密数据区域152和/或可存取数据区域154实施为本地存储器106的相应部分、相应寄存器、和或诸如ROM之类的其他相应存储装置。
最好,在使用处理器102之前的受控过程中,将第一密钥KEY 1和第二密钥KEY 2存储在安全电路150的秘密数据区域152中,以在该区域中维持安全性。确实,考虑将利用KEY 1和KEY2来验证处理器102并且将其确定为信任装置。因此,最好当处理器102在使用中或者在使用之前(例如在制造期间),KEY 1和KEY 2保持秘密状态并且在授权方的控制下。
最好将秘密数据区域152、可存取数据区域154和逻辑电路156通过连接线158彼此连接,可以使用总线配置来实施该连接线158。最好通过一条或者多条数据线160将逻辑电路156连接到寄存器,该数据线160也可以使用总线配置来实施。
如上所述,最好安全电路150可以操作来将处理器102置于多个操作模式中的一个中。这些模式可以包括:第一模式(普通模式),其中处理器102和任何外部装置可以启动信息到或者从处理器102的传送,例如,到或者从本地存储器104的信息传送。操作模式还最好包括第二模式(隔离模式),其中处理器102和任何外部装置都不可以启动到或者从处理器102的信息传送。操作模式还最好包括第三模式(安全模式),其中处理器102可以启动到或者从处理器102的信息传送,但是任何外部装置都不可以启动到或者从处理器102的信息传送。
可以参照图4-6来更好地理解安全电路150的操作,图4-6是示出根据本发明的处理器102的特定安全性能力的流程图。从这方面来说,假设处理器102对于操作的第一操作模式即普通操作模式是默认的(动作200)。回忆在第一模式中,处理器102和任何外部装置或(诸如另一个处理器之类的)装置可以启动到或者从处理器102的本地存储器104的信息传送。注意,在本发明的替代实施方式中,处理器102在初始化时(例如,开机)不可以进入到操作的第一模式中,或者只可以短时间地进入到该模式中以有利于将在下面讨论的第二或者第三操作模式。
在动作202,处理器102可以运行验证例程以获得信任状态。可以通过从处理器102上运行的应用程序的调用或者通过从在处理器102外部执行的程序的调用来启动验证例程(动作202)。在本发明的替代实施方式中,作为默认情况,处理器102可以在初始化或者在其之后马上运行验证例程,而不必要求来自应用程序的调用。响应于启动验证例程,处理器102最好执行解密程序。注意,可以从其中放置处理器102的模块内的适当存储器获得解密程序,或者可以从模块外部的源获得该解密程序。这种外部源的例子包括可以在其中放置模块的较大系统中包含的适当存储器,或者诸如执行管理功能等的服务器8(图1)之类的连接到网络4的另一个装置。在本发明的一种或者多种实施方式中,解密程序可以包含在诸如闪存ROM之类的安全非易失ROM中。
在动作206,在处理器102执行解密程序之前、期间或者作为其结果,处理器102最好进入到操作的第二操作模式即隔离操作模式。回忆在第二操作模式中,处理器102或者任何外部装置都不可以启动到或者从本地存储器104的信息传送。
在动作208,处理器102最好接收在验证例程期间所使用的验证例程。注意,处理器102接收经加密的验证程序时的定时是不严格的,确实,可以在执行验证例程之前或期间的任何适当时间接收经加密的验证程序。最好根据KEY 1来加密验证程序,使得仅仅能够以被授权的方式利用该程序。进一步,验证程序最好包括标识验证程序的KEY 2。例如,KEY 2可以是序列号、散列结果等。
最好,将经加密的验证程序存储在处理器102、包含处理器102的模块内的适当存储器中,或者存储在处理器102或者模块外部的存储器中。最好将经加密的验证程序存储在包含处理器102的模块以外但是在其中包含该模块的装置内的存储器中。还最好由授权实体在受控过程中执行在适当存储器中的验证程序的加密及其存储。确实,最好在所有时候都维持验证程序的完整性以确保在验证处理器102及其任何程序中该验证程序的使用是有效的。在本发明的一种或者多种实施方式中,验证程序可以包含在诸如闪存ROM之类的安全非易失ROM中。
在动作210,解密程序的执行最好使得KEY 1的安全复制件从秘密数据区域152读取并且存储在安全电路150内的可存取数据区域154中。通过示例的方式,最好可以操作逻辑电路156以响应于在处理器102的寄存器(未示出)内的特定数据的存在,将KEY 1的复制件从秘密数据区域152传送到可存取数据区域154。由于处理器102处于第二操作模式即隔离操作模式中,所以可存取数据区域154内的KEY 1的复制件的存在不表示安全的破坏。确实,处理器102或者任何外部设备都不可以启动通过本地存储器104等将KEY 1传送出处理器102。
在动作212,解密程序最好利用KEY 1来解密经加密的验证程序,使得其可以由处理器102执行。在执行验证程序期间,最好将在秘密数据区域152内所包含的KEY 2的复制件写入到可存取数据区域154(动作214)。通过示例的方式,逻辑电路156可以操作来响应于根据验证程序可能写入到寄存器中的特定数据,而将KEY 2的复制件从秘密数据区域152传送到可存取数据区域154。
在动作216,最好进行关于可存取数据区域154内的KEY 2的复制件是否匹配于验证程序内所包含的KEY 2的复制件的确定。回忆验证程序包含KEY 2的复制件,当解密验证程序时使得其可用(动作212)。通过示例的方式,可以将验证程序内所包含的KEY 2的复制件临时存储在本地存储器104中,或者根据其自己的验证程序的执行而写入到可存取数据区域154中。再次,这不表示安全性的破坏,这是因为在该过程期间处理器处于隔离模式,而且因此,在处理器102之外的非授权装置都不可以获得KEY 2的复制件。
如果在验证程序中所包含的KEY 2的复制件不匹配于从秘密数据区域152获得的KEY 2的复制件,则验证处理器102的过程终止(动作218)。然而当KEY 2的这些复制件匹配时,最好清除在可存取数据区域154中所包含的KEY 1和KEY 2的复制件,而且处理器102最好进入第三操作模式即安全操作模式(动作220)。通过示例的方式,逻辑电路156可以从可存取数据区域154中清除KEY1和KEY 2的密钥,并且可以使得处理器102进入到第三安全操作模式。
回忆在第三操作模式即安全操作模式中,处理器102可以启动到或者从本地存储器104的信息传送。换句话说,在第三操作模式即安全操作模式中,处理器102可以启动到或者从处理器102的信息传送,但是处理器外部的任何装置都不能启动这种数据传送。一旦处理器102进入到第三操作模式即安全操作模式,就认为其是能够执行操作和操控数据的信任装置,而不必担心非授权实体可能获得这种数据。确实,如没有处理器102自己启动,甚至其他处理器也不能获得对处理器102内的数据的存取权。
有利地,信任处理器102可以提供许多有用功能,诸如在图1中所示的分布系统中的那些。这些功能包括提供具有只能被授权装置存取的存储器区域的安全外部存储器控制器、只可以由授权装置修改的安全时钟装置、信任请求机制和能够(例如,使用基于公钥的验证等)验证引导代码的安全处理元件。
根据本发明的一个和多个方面,包括主处理器的其他处理器102可以使用信任处理器102以执行解密操作。通过示例的方式,处理器102之一可以寻求具有由信任处理器102所解密的主存储器106中所存储的数据。因此,处理器可以发送指示在主存储器106中数据所位于的至少一个位置和指示要执行的解密例程的参数的请求给信任处理器102。(替代地,解密例程可以被预定因此可以省略这些参数)。响应于该请求信任处理器102可以将加密数据从主存储器106中读取到其本地存储器104中,并且执行解密过程。如果在其他处理器102的请求之前信任处理器102不具有解密密钥(诸如KEY 1或者KEY 2),则最好也由请求处理器102提供这种解密密钥或者关于如何获得这种密钥的信息。然后最好将解密数据写回到主存储器106和/或写入到请求处理器102的本地存储器104中。
现在将提供对用于多处理器系统的优选计算机架构的描述,该架构适合于执行这里所讨论的一个或者多个特点。在一种或多种实施方式之外,可以将多处理器系统实施为可以操作用于侧重于媒体的应用(例如,游戏系统、家用终端、PC系统、服务器系统和工作站)的单机和/或分布处理的单个芯片解决方案。在诸如游戏系统和家用终端之类的某些应用中,可能需要实时计算。例如,在实时、分布式游戏应用中,必须足够快速地执行网络图像解压、3D计算机图形、音频产生、网络通信、物理仿真和人工智能过程中的一个或多个,以将实施体验的感觉提供给用户。因此,在多处理器系统中的每个处理器必须在短的并且可预测的时间中完成任务。
至此,并且根据这种计算机架构,多处理计算机的所有处理器都从公共计算机模块(或者单元)中构建。这种公共计算模块具有相容结构并且最好使用相同指令集架构。可以由一个或者多个使用计算机处理器的客户机、服务器、PC、移动计算机、游戏机、PDA、机顶盒、电器、数字电视等形成多处理计算机系统。
如果需要,多个计算机系统还可以式网络的成员。相容模块结构使得多处理计算机系统能够进行对应用和数据的有效高速的处理,而且如果使用网络,还能够进行通过网络的对应用和数据的快速传送。这种结构还简化了各种大小和处理能力的网络的成员的建构以及这些成员处理应用的准备。
参照图7,基本处理模块式处理器元件(PE)300。PE 330包括I/O接口302、处理器单元(PU)304和多个子处理单元308,即,子处理单元308A、子处理单元308B、子处理单元308C和子处理单元308D。本地(或者内部)PE总线312在PU 304、子处理单元308和存储器接口311之间传送数据。本地PE总线312可以具有例如传统架构,或者可以被实施为分组交换网络。如果实施为分组交换网络,虽然需要更多硬件,但是增加了可用带宽。
可以使用用于实施数字逻辑的各种方法来构建PE 300。然而,最好将PE 300构建为在硅基底上使用互补金属氧化物半导体(CMOS)的单个集成电路。用于基底的替代材料包括砷化镓、砷化镓铝和其他使用各种掺杂材料的所谓III-B化合物。PE 300还可以使用例如快速单通量量子(rapid single-flux-quantum,RSFQ)逻辑的超导材料来实施。
PE 300通过高带宽存储器连接316与共享(主)存储器314紧密关联。虽然存储器314最好是动态随机存取存储器(DRAM),但是还可以使用例如静态随机存取存储器(SRAM)、磁随机存取存储器(MRAM)、光存储器、全息存储器等的其他装置来实施。
PU 304和子处理单元308最好每个都连接到包括直接存储器存取DMA功能的存储器流控制器(MFC),其与存储器接口311组合有助于DRAM 314和子处理单元308和PE 300的PU 304之间的数据传送。注意,DMAC和/或存储器接口311可以关于子处理单元308和PU 304集成地或者分离地放置。确实,DMAC功能和/或存储器接口311的功能可以与子处理单元308和PU 304的一个或者多个(最好全部)进行集成。还要注意,DRAM 314可以关于PE 300集成或者分离地放置。例如,如所示图示所暗示的那样,可以与芯片分离地放置DRAM 314,或者可以以集成方式将DRAM 314放置在芯片上。
PU 304可以是例如能够对数据和应用进行单机处理的标准处理器。在操作中,PU 304最好调度和协调子处理单元对数据和应用的处理。子处理单元最好是单指令、多数据(SIMD)处理器。在PU 304的控制下,子处理单元以并行和独立的方式对这些数据和应用执行处理。最好使用PowerPC核来实施PU 304,其是使用简化指令集计算(RISC)技术的微处理器架构。RISC使用简单指令的组合来执行更加复杂的指令。因此,用于处理器的定时可以基于更加简单和快速的方式,使得微处理器能够以给定时钟速度执行更多指令。
注意,可以通过充当调度和协调子处理单元对数据和应用进行的处理的主处理单元角色的子处理单元308之一来实施PU 304。进一步,在处理器元件300内可以实施多于一个PU。
根据该模块结构,由特定计算机系统所使用的PE 300的数量基于系统所需要的处理能力。例如,服务器可以使用四个PE 300,工作站可以使用两个PE 300而PDA可以使用一个PE 300。分配来处理特定软件单元的PE 300的子处理单元的数量依赖于单元内程序和数据的复杂度和量级。
图8示出了子处理单元(SPU)308的优选结构和功能。SPU 308架构最好填补通用处理器(其被设计来在许多应用上实现高的平均性能)和特殊目的处理器(其被设计来在单个应用上实现高性能)之间的空白。设计SPU 308以实现关于游戏应用、媒体应用、宽带系统等的高性能,并且提供高级控制给实时应用程序员。SPU 308的某些能力包括图形几何流水线、表面细分、快速傅立叶变换、图像处理关键字、流处理、MPEG编码/译码、加密、解密、装置驱动器扩展、建模、游戏物理(game physics)、内容创建和音频合成及处理。
子处理单元308包括两个基本功能单元,即SPU核310A核存储器流控制器(MFC)310B。SPU核310A执行程序执行、数据操控等,而MFC310B执行与系统的SPU核310A和DRAM 314之间的数据传送有关的功能。
SPU核310A包括本地存储器350、指令单元(IU)352、寄存器354、一个或多个浮点执行级356以及一个或多个定点执行级358。本地存储器350最好使用诸如SRAM之类的单端口随机存取存储器来实现。虽然大多数处理器通过使用高速缓存来减少对存储器的延迟,但是SPU核310A实施相对小的本地存储器350而不是高速缓存。确实,为了将相容和可预测的存储器存取延迟提供给实时应用(和在这里所提及的其他应用)的程序员,最好不用SPU 308A之内的高速缓存架构。高速缓存存储器的高速缓存命中/错过(hit/miss)特征导致易失性存储器存取时间,其在几个周期到几百个周期之间变动。这种易失性破坏了在例如实时应用编程中所期望的存取时间可预测性。可以通过将DMA传送与数据计算进行重叠在本地存储器SRAM 350中实现延迟隐藏(latency hiding)。这提供高级控制给实时应用的编程。因为与DMA传送关联的延迟和指令开销超过用于高速缓存错过的延迟的,所以当DMA传送大小足够大并且足够可预测(例如,在需要数据之前发布DMA命令)时,SRAM本地存储器方法更具优势。
在给定的一个子处理单元308上运行的程序使用本地地址引用所管理的本地存储器350,然而,本地存储器350的每个位置也都分配有总体系统的存储器映像图之内的实际地址(RA)。这允许优先软件将本地存储器350映射到过程的有效地址(EA),以帮助一个本地存储器350和另一个本地存储器350之间的DMA传送。PU 304还可以使用有效地址来直接存取本地存储器350。在优选实施方式中,本地存储器350包含356千字节的存储量,并且寄存器352的容量是128×128比特。
SPU核304最好使用处理流水线来实施,在该处理流水线中以流水线方式来处理逻辑指令。虽然可以将流水线分割为在其上可以处理指令的任何数量的级,但是流水线通常包括取回一个或多个指令、译码指令、检查指令之间的依赖性、发布指令和执行指令。从这方面来说,IU 352包括指令缓冲器、指令译码电路、依赖性检查电路和指令发布电路。
指令缓存器最好包括多个寄存器,这些寄存器连接到本地存储器350并且操作来临时存储它们取回的指令。指令缓冲器最好进行操作来使得所有指令将寄存器保留为一个组,即,基本上同时地。虽然指令缓存器可以是任何大小,但是最好其大小不大于两个或三个寄存器。
通常,译码电路分解指令并且产生执行对应指令的功能的逻辑微操作。例如,逻辑微操作可以指定算术和逻辑操作,装载和存储操作、寄存器源操作数和/或中间数据操作数到本地存储器350。译码电路还可以指示指令使用哪些资源,例如目标寄存器地址、结构资源、功能(function)单元和/或总线。译码电路可以提供指示其中需要资源的指令流水线级的信息。最好操作指令译码电路以基本上同时地译码码与指令缓存器的寄存器数量相等数量的指令。
依赖性检查电路包括数字逻辑,其执行测试以确定给定指令的操作数是否依赖于流水线中其他指令的操作数。如果是,则不应该执行给定指令,直到这种其他操作数被更新(例如,通过允许其他指令完成执行)为止。最好依赖性检查电路同时确定从译码器电路112发送来的多个指令的依赖性。
指令发布电路可以操作来将指令发布给浮点执行级356和/或定点执行级358。
最好将寄存器354实施为相对大的统一的寄存器文件,例如128个条目的寄存器文件。这允许深度流水线化的高频实施而不要求寄存器重新命名以避免寄存器饥饿(starvation)。重新命名硬件通常在处理系统中消耗非常大部分的区域和能力。因此,当通过软件循环解开(unrolling)或者其他交织技术来覆盖延迟时,可以实现有利的操作。
最好,SPU核310A是超标量架构,使得每个时钟周期可以发布多于一个指令。SPU核310A最好作为超标量操作到与从指令缓存器发送来的同时指令数量对应的程度,比如在2和3之间(意味着每个时钟周期发布两个或者三个指令)。依赖于所需要的处理能力,可以使用更多或更少数量的浮点执行级356和定点执行级358。在优选实施方式中,浮点执行级356在每秒32十亿浮点运算的速度上进行操作(32GFLOPS),而且定点执行级358在每秒32十亿运算的速度上操作(32GOPS)。
MFC 310B最好包括总线接口单元(BIU)364、存储器管理单元(MMU)362和直接存储器存取控制器(DMAC)360。在除了DMAC 360的情况下,MFC310B最好在与SPU核310A和总线312相比一半频率(一半速度)上运行以满足低功率散热设计目标。MFC 310B可以操作来处理从总线312来到SPU 308的数据和指令,提供地址转换给DMAC,以及用于数据相干的监听操作(snoopoperation)。BIU 364在总线312与MMU 362和DMAC 360之间提供接口。因此,SPU 308(包括SPU核310A和MFC 310B)和DMAC 360物理和/或逻辑地连接到总线312。
最好MMU 362可以操作来将有效地址(从DMA命令中取得)转换为用于存储器存取的实际地址。例如,MMU 362可以将有效地址的较高位转换位实际地址。然而,较低位最好是不可转换的并且被从逻辑和物理上进行考虑以用来形成实际地址和请求对存储器的存取。在一种或者多种实施方式中,MMU 362可以基于64位存储器管理模型实施,并且可以提供具有4K-、64K-、1M-和16M-字节页大小和256MB段大小的264字节的有效地址空间。最好,可以操作MMU362以支持多至265字节的虚拟存储器,和用于DMA的242(4兆兆字节)字节的物理存储器。MMU 362的硬件可以包括8入口完全相关联的SLB(8-entry,fullyassociation SLB)、256入口4向设置相关联d TLB和用于TLB的4×4代替管理表(RMT)-用于硬件TLB错过处理。
DMAC 360最好可以操作来管理来自SPU核310A和诸如PU 304和/或其他SPU之类的一个或多个其他装置的命令。可能存在三种类别的DMA命令:放置命令,其操作来将数据从本地存储器350移动到共享存储器314;取得命令,其操作来将数据从共享存储器314移动到本地存储器;和存储控制命令,其包括SLI命令和同步命令。同步命令可以包括基本(atomic)命令、发送信号命令和专用障碍命令。响应于DMA命令,MMU 362将有效地址转换为实际地址,并且实际地址被转发到BIU 364。
SPU核310A最好使用信道接口和数据接口以同DMAC 360内的接口通信(发送DMA命令、状态等)。SPU核310A将DMA命令通过信道接口发送到DMAC 360中的DMA队列。一旦DMA命令处于DMA队列中,就由DMAC 360内的发布和完成逻辑来处理它。当完成用于DMA命令的所有总线交易时,通过信道接口将完成命令发送回SPU核310A。
图9示出了PU 304的优选结构核功能。PU 304包括两个基本功能单元,PU核304A和存储器流控制器(MFC)304B。PU核304A执行程序执行、数据操控、多处理器管理功能等,而MFC 304B执行与PU核304A和系统100的存储器空间之间的数据传送有关的功能。
PU核304A可以包括L1高速缓存器370、指令单元372、寄存器374、一个或多个浮点执行级376以及一个或多个定点执行级378。L1高速缓存提供数据高速缓存功能给从共享存储器106、处理器102或者存储器控制的其他部分通过MFC 304B接收来的数据。因为PU核304A最好实施为超流水线,所以最好将指令单元372实施为带有许多级的指令流水线,包括取回、译码、依赖性检测、发布等。PU核304A还最好是超标量配置,从而每个时钟周期从指令单元372发布多于一个指令。为了实现高处理能力,浮点执行级376和定点执行级378在流水线配置中包括多个级。依赖于所需要的处理能力,可以使用更多或者更少数量的浮点执行级376和定点执行级378。
MFC 304B包括总线接口单元(BIU)380、L2高速缓存存储器、不可高速缓存单元(NCU)384、核接口单元(CIU)386和存储器管理单元(MMU)388。大多数MFC 304B在与PU核304A和总线108相比较一半的频率(一半的速度)上运行以满足低功耗散热设计目标。
BIU 380提供总线108和L2高速缓存382和NCU 384逻辑块之间的接口。至此,BIU 380充当总线108上的主装置和从装置,以执行完全相干的存储器操作。作为主装置,其可以代表L2高速缓存382和NCU 384源装载/存储对总线108的请求。BIU 380还可以实施用于限制可以被发送到总线108的总命令数量的命令的流控制机制。在总线108上的数据操作可以设计来采用8拍(beat),因此,BIU 380最好设计在128字节高速缓存线周围,而且相干和同步粒度(granularity)是128KB。
最好将L2高速缓存存储器382(和支持的硬件逻辑)设计为高速缓存312KB的数据。例如,L2高速缓存382可以处理可高速缓存的负载/存储、数据预取回、指令取回、指令预取回、高速缓存操作和障碍操作。L2高速缓存382最好是8向设置相关联系统。L2高速缓存382可以包括匹配6个数据转换(castout)队列(例如,6个RC机器)的6个重新装载队列,和8个(64字节宽)存储队列。L2高速缓存382可以操作来提供L1高速缓存370中的数据的某些或者全部的备份复制件。有利地,当热插拔处理节点时,这对于恢复状态是有用的。这种配置还允许L1高速缓存370以更少的端口更快地操作,而且允许更快的高速缓存对高速缓存传送(因为请求可能在L2高速缓存382停止)。这种配置还提供用于将高速缓存相干性管理提供给L2高速缓存存储器382的机制。
NCU 384与CIU 386、L2高速缓存存储器382和BIU 380对接,并且通常用作用于PU核304A和存储器系统之间的不可高速缓存的操作的队列/缓冲电路。NCU 384最好处理与PU核304A的通信,这种通信不由L2高速缓存382处理,例如高速缓存禁止装载/存储、障碍操作和高速缓存相干性操作。NCU 384最好以一半的速度运行以满足上述功率耗散目标。
将CIU 386放置在MFC 304B和PU核304A的边界上,并且充当用于来自执行级376、378、指令单元372和MMU单元388并且前进到L2高速缓存382和NCU 382的请求的路由、判决和流控制。PU核304A和MMU 388最好全速运行,而L2高速缓存383和NCU 382可以以2∶1的速度比操作。因此,在CIU386上存在频率边界,而且其功能之一用于适当处理频率交叉(frequencycrossing),这是因为其转发请求并且重新装载两个频域之间数据。
CIU 386包括三个功能块:装载单元、存储单元和重新装载单元。此外,数据预取回功能由CIU 386执行而且最好是装载单元的功能部分。以:(i)接收装载和存储来自PU核304A和MMU 388的请求;(ii)将请求从全速时钟频率转换为半速(2∶1时钟频率转换);(iii)将可高速缓存的请求路由到L2高速缓存382,并且将不可高速缓存的请求路由到NCU 384;(iv)在对L2高速缓存383和NCU 384的请求之间进行公平地判决;(v)通过分派(dispatch)将流控制提供给L2高速缓存382和NCU 384,以便在目标窗口中接收请求并且避免溢出;(vi)接收装载返回数据并且将其路由到执行级376、378、指令单元372或者MMU 388;(vii)将监听请求传送到执行级376、378、指令单元372或者MMU388;和(viii)将装载返回数据和监听通信量从半速转换为全速。
MMU 388最好通过诸如第二级地址转换措施之类的方式,提供用于PU核340A的地址转换。最好通过可能比MMU 388更小和更快的分离指令和数据ERAT(effective to real address translation,对实际地址转换有效),在PU核304A中提供第一级转换。
在优选实施方式中,PU 304以64位实现在46GHz、10F04下操作。寄存器最好是64位长(虽然一个或者多个特殊目的寄存器可以更小)并且有效地址是64位长。最好使用PowerPC技术来实施指令单元370、寄存器372和执行级374以实现(RISC)计算技术。
可以在美国专利第6,526,491中找到关于该计算机系统的模块结构的附加的详情,通过参考将其整个公开合并于此。
现在参照图10,该图是根据本发明的一个或者多个进一步方面的处理器500的框图。在该实施方式中,处理器500还包括解密单元502和安全存储器504。安全存储器504包含不可见密钥(IKi),其中i表示第i个处理器。可以操作解密单元502以将流自存储器流控制器310B的数据(使用不可见密钥IKi)解密到本地存储器350。最好,不可见密钥IKi是对于给定处理器500基本上唯一的密钥,应该理解,在系统中的每个处理器都包括唯一的不可见密钥。解密单元502可以使用诸如简单XOR算法或者更加复杂的算法之类的任何已知技术。
处理器500最好可以操作来使用上述技术或者利用其他技术进入到安全操模式。最好,处理器500在硬件复位条件或者开机条件时进入到操作的安全模式。当在非安全模式中时,PU 304能够启动共享DRAM 314和本地存储器350之间的数据传送而不必经过解密单元502。类似地,当处理器500处于非安全模式中时,PU 304能够启动从处理器500到共享DRAM 314的数据传送。然而,当在安全模式中时,PU 304不能在不将这种数据发送经过译码单元502的情况下,启动从共享存储器314到本地存储器350的数据传送。在安全模式中不允许PU 304所启动的从本地存储器350的数据传送。因此,由PU 304(或者任何其他外部实体)所启动的任何数据传送都会导致数据被使用不可见密钥IKi而经历解密。然而,无论是否在操作的安全模式中,处理器500都能够启动本地存储器350和共享存储器314之间的数据传送。
只有处理器500的解密单元502或者一些其他被授权的实体能够存取在安全存储存储器504中所存储的不可见密钥IKi。最好,即使实体被授权能够知道特定处理器500的不可见密钥IKi,也必须以除了从处理器500的安全存储器504中获得密钥以外的某种方式将对不可见密钥IKi的存取权给予这种实体。例如,在处理器500的制造过程期间,最好将不可见密钥IKi存储在安全存储器504中,而且同时或者大概同时使得被授权获得信息的那些实体知道不可见密钥IKi。
处理器500还最好包括基本上唯一的ID,例如序列号或者其他识别指示。然而,与不可见密钥IKi不同,最好具有利用处理器500的安全特点的兴趣的任何实体都知道处理器500的ID。因此,可以将ID认为是可见密钥VKi,其中i表示第i个处理器500。
参照图11,示出了其中可以使用处理器500的安全特点的系统。该系统包括处理器500、中间实体510和安全实体(或者服务器)512。安全实体512包括认证服务器514和数据库516,下面将对其进行更加详细地讨论。注意,虽然图11示出了本发明某些方面的结构,但是其还示出了数据/过程流。因此,这里使用图11以讨论本发明的设备和方法的详情。
中间实体510可以是想要以安全方式传送数据到处理器500或者对处理器500传送和执行程序的任何实体。回忆处理器500可以是共享DRAM 314的多个附连处理单元中的一个。因此,可以将从中间实体510传送到处理器500的数据至少临时地存储在共享DRAM 314中。在某些情况下,这可能导致数据经历其他处理器的盗取。然而根据本发明,中间实体510可以以只有处理器500可以获得对数据的存取权和使用数据的方式而将数据传送到处理器500。
具体地说,中间实体510获得与处理器500相关联的可见密钥VKi。中间实体510将数据(例如要在处理器500上被执行的远端程序)和可见密钥VKi传送到安全服务器512。利用诸如通过因特网或者其他网络、通信链路、或者通过人工介入之类的任何已知技术来进行这种传送。安全服务器512从该传送中获得可见密钥VKi,并且使用认证服务器514来搜索数据库516,该数据库包含多个可见密钥-不可见密钥对。可见和不可见密钥对通过它们对诸如处理器500之类的特定处理器的相互关系彼此关联。如果在从中间实体510接收来的可见密钥VKi和在数据库516中所存储的可见密钥之一之间获得匹配,则认证服务器514最好使用与可见密钥VKi和处理器500相关联的不可见密钥IKi来加密数据(在本例中,远端程序)。然后,安全服务器512例如使用因特网将经加密的数据传送到中间实体510。
虽然中间实体510获得其提供到安全服务器512的数据的加密版本,但是中间实体510不具有关于处理器500的不可见密钥IKi的任何信息。从这方面来说,安全实体512是被授权实体,这是因为其知道在处理器500的安全存储器504中所包含的不可见密钥IKi。虽然诸如中间实体510之类的任何实体可以知道任何给定处理器的可见密钥VKi,但是仅仅诸如安全服务器512之类的被授权实体会知道不可见密钥IKi和/或其与特定可见密钥VKi的关联。
然后,中间实体510通过诸如因特网或者任何其他适当机制将经加密的数据传送到处理器500。根据处理器500的运算能力,PU 304帮助来自中间实体510的经加密数据的接收和其在共享DRAM 314中的存储。最好在PU 304使得经加密的数据存储在共享DRAM 314的同时或者大概同时,处理器500处于操作的安全模式。因此,当PU 304启动经加密的数据从共享DRAM 314到处理器500的本地存储器350的传送时,这种经加密的数据必须通过解密单元502。因此,解密单元502使用处理器500的安全存储器504中所存储的不可见密钥IKi来解密经加密的数据。有利地,由中间实体510所起始的经解密的数据以安全方式存储在处理器500的本地存储器350中。确实,在安全模式中,PU 304或者任何其他外部实体都不能获得来自本地存储器350的数据,而且处理器500可以操控这些数据而不被经历盗取。
现在参照图12,其是使用用于利用处理器500的安全特点的替代方法的图11的系统的框图。与上面参照图11所讨论的方法相同,中间实体510获得与处理器500相关联的可见密钥VKi。然而与该方法不同的是,中间实体510使用对称密钥key1解密至少数据(例如,远端程序)。通过示例方式,由中间实体510使用的加密技术可以是公知的先进加密标准(AES),其使得能够使用一个或者多个对称密钥来加密和解密敏感数据。注意,中间实体510可以利用对称密钥key1来加密数据以及可见密钥VKi。在这种情况下,中间实体510最好将经加密的数据(以及可见密钥VKi)传送到安全实体512。认证服务器514最好操作来接收经加密的数据和可见密钥VKi,并且利用对称密钥key2来对其进行解密。
一旦认证服务器514已经获得了经解密的数据和可见密钥VKi,其就搜索数据库514以寻找可见密钥-不可见密钥对。如果获得了从中间实体510接收来的可见密钥VKi和在数据库516中所存储的可见密钥之一之间的匹配,则认证服务器514最好使用与可见密钥VKi和处理器500相关联的不可见密钥IKi来加密数据。认证服务器514还利用对称密钥key2加密经加密的数据以获得加密过的经加密的数据。然后,安全实体512将加密过的经加密数据传送到中间实体510。
中间实体510最好接收加密过的经加密数据,并且利用对称密钥key1对其解密以获得不可见密钥IKi所加密的数据。然后,中间实体500可以通过诸如因特网或者其他适当机制将经加密的数据传送到处理器510。PU 304帮助从中间实体510接收经加密的数据以及其在共享DRAM 314中的存储。最好,在PU 304使得经加密的数据存储在共享DRAM 314的同时或者大概同时,处理器500处于操作的安全模式中。当PU 304启动经加密的数据从共享DRAM 314到处理器500的本地处理器350的传送时,这种经加密的数据必须通过解密单元502。因此,解密单元502利用处理器500的安全存储器504中所存储的不可见密钥IKi来解密经加密的数据。有利地,源于中间实体510的经解密的数据以安全的方式存储在处理器500的本地存储器350中。在安全模式中,PU 304和任何其他外部实体都不能在没有处理器500的授权的情况下从本地存储器350获得数据。因此,处理器500可以操控这种数据而不必经历盗取。
现在参照图13-14,它们是使用进一步替代方法来利用处理器500的安全特点的图11的系统的框图。根据本发明的该实施方式,数据包括解密程序和对称密钥(例如,根据RSA协议)。中间实体510利用对称密钥key1(其最好是中间实体510和其他信任实体知道的秘密密钥)来对解密程序和对称密钥key2进行加密。注意,中间实体510也可以将处理器的可见密钥VKi与解密程序和对称密钥key2一同加密。在任何情况下,中间实体510将经加密的解密程序/对称密钥key2以及可见密钥VKi传送到安全服务器512。认证服务器514最好操作来利用对称密钥key2解密经加密的数据以获得解密程序和可见密钥VKi(假设也使用解密程序来对其进行加密)。密钥key2最好是公钥,这是因为其他方也可以知道key2的详情。(还要注意,认证服务器514所适用于的公钥key2可以与用描述程序所加密的公钥key2不同。)然后,认证服务器514搜索数据库516以获得匹配所接收到的可见密钥VKi的可见密钥-不可见密钥对。如果获得匹配,则认证服务器514最好使用与可见密钥VKi和处理器500相关联的不可见密钥IKi来对解密程序和对称密钥key2进行加密。认证服务器514还最好利用对称密钥key2(例如,例如RSA加密技术)来加密经加密的数据。然后安全服务器512例如使用因特网将加密过的经加密的数据(例如,解密程序和对称密钥key2)传送到中间实体510。
中间实体510最好利用对称(秘密)密钥key1来解密加密过的经加密的数据以获得经加密的数据。在该点,中间实体510具有解密程序和对称密钥(公钥)key2,它们都已经被通过不可见密钥key1解密。然后,中间实体510可以通过诸如因特网将经加密的数据(解密程序和对称密钥key2)传送到处理器500。与之前的实施方式相同,PU 304帮助来自中间实体510的经加密的数据的接收、其在共享DRAM 314中的存储和通过解密单元502传送经加密的数据,使得以安全的方式将解密程序和对称密钥key2存储在处理器500的本地存储器350中。
在该点,将处理器置于“安全模式”,例如,上述第三模式。更具体地说,在第三模式中,处理器500可以启动信息到和从处理器500的传送,而外部装置(诸如PU 304)则不能够这么做。
虽然这有利地允许处理器500以安全方式来操控解密程序和对称密钥key2,但是其还允许后面以简化的方式保护数据传送安全,这将参照图14更加详细地进行描述。
中间实体510最好利用对称密钥(公钥)key1加密进一步的数据,并且利用因特网或者任何其他适当机制将该数据发送到处理器500。注意,中间实体510使用来加密进一步的数据的私钥key1不必与用于对译码程序进行加密以传送到安全服务器512的私钥key1相同。PU 304帮助来自中间实体510的经加密数据的接收以及其在共享DRAM 314中的存储。注意,在本发明的该实施方式中,处理器500不必处于操作的“隔离模式”中。根据上面描述,考虑在隔离模式(第二模式中),处理器500或者任何外部装置都不可以启动到或者从处理器500的信息的传送。确实,处理器500或者PU 304可以启动经加密的数据从共享DRAM 314到旁路解密单元502的本地存储器350的传送。这样是因为利用对称密钥(私钥)key1来加密进一步的数据,而且PU 304或者任何其他外部实体都不知道安全地存储在本地存储器350中的译码程序或者对称密钥(公钥)key2,或者不能对其进行存取。然后,处理器500可以利用解密程序和对称密钥key2来对经加密的进一步的数据进行解密。有利地,处理器500以安全方式接收进一步的数据,而且可以以相同方式接收在进一步的数据而不必要求恢复到操作的安全模式。
现在参照图15,其是可以操作来通过因特网或者任何其他适当通信信道或者机制彼此通信的两个处理器500A和500B的框图。根据本发明的该实施方式,每个处理器500A、500B最好利用上面参照图13所讨论的方法接收加密/解密程序和对称密钥。更具体地说,处理器500A最好接收加密/译码程序和对称密钥key2,而处理器500B接收加密/解密程序和对称密钥key1。最好,加密/译码程序和对称密钥符合AES加密方法。
现在将更加详细地讨论处理器500A和处理器500B之间的数据的安全传送(也称为对等通信)。具体地说,处理器500B可以利用本地存储器350B内的加密/解密程序和对称密钥key1来加密进一步的数据。然后处理器500B可以将经加密的进一步的数据从本地存储器350B传送到共享DRAM 314B。然后PU 304B可以通过因特网将经加密的进一步的数据从共享DRAM 314B传送到与处理器500A相关联的PU 304A。然后,PU 304A可以将传送在与处理器500A相关联的共享DRAM 314A中的经加密的进一步的数据。然后,处理器500A或者PU304A可以将经加密的进一步的数据从共享DRAM 314A传送到旁路解密单元502A的本地存储器350A。一旦在本地存储器350A中,可以利用加密/解密程序和对称密钥key2来解密经加密的进一步的数据。有利地,可以在处理器500A和处理器500B之间传送进一步的数据而不用以中间实体510(图13)进行进一步通信。
还可以利用与上面讨论的基本上类似的技术来将在进一步的数据从处理器500A传送到处理器500B。确实,处理器500A可以利用加密/解密程序和对称密钥key2来加密进一步的数据,并且将其传送到共享DRAM 314A。PU 304A可以经由因特网将这种加密的进一步的数据从共享DRAM 314A传送到与处理器500B相关联的PU 304B。然后,处理器500B或者PU 304B将经加密的进一步的数据从共享DRAM 314B传送到本地存储器350B,其中利用加密/解密程序和对称密钥key1来对其进行解密。再次,可以在不使用中间实体510或者安全服务器512(图13)的情况下,进行再进一步的数据从处理器500A到处理器500B的安全传送。
现在参照图16-17,其是与图11和/或图12的系统基本上类似的系统的框图,其中使用进一步替代方法来利用几个处理器500的安全特点。更加本发明的该实施方式,中间实体510(其可以是分布服务器)最好通过如上面讨论的安全路径将解密(或者译码)程序和对称密钥key2传送到安全服务器512。中间实体510还最好以安全的方式传送与要参加进一步的数据的传送的每个处理器相关联的相应可见密钥VKi。安全服务器512将译码程序和对称密钥key2的经加密版本传送到中间实体510,其中用与所接收到的可见密钥VKi的对应的一个相关联的特定不可见密钥IKi来加密每个版本。然后,中间实体510将经加密的译码程序和对称密钥key2的相应版本传送到相应处理器500A、500B、…、500i。每个处理器最好在操作的安全模式中,以便经加密的译码程序和对称密钥key2的相应版本必须通过相应解密单元502A、502B、…、502i。因此,每个处理器500A、500B、…、500i在其相关联的本地存储器350A、350B、…、350i中获得译码程序和对称密钥key2。
之后,中间实体510可以将进一步的数据的一个版本(诸如分发程序,其已经通过对称密钥key1进行加密)传送到每个处理器500(图17)。然后,每个处理器500可以利用位于其相应本地存储器350中的译码程序和对称密钥key2来解密经加密的进一步的数据。有利地,可以用安全方式来传送进一步的数据而不必要求用于每个参与处理器500的不同版本。从这方面来书,将译码程序认为是用户的“许可”,其允许特定处理器500接收诸如电影、音乐、游戏程序之类的进一步的数据。因为许可只对特定处理器500(用户)有效,所以只有该用户可以接收和解密经加密的分布程序。然而,分布服务器510只需要准备分布程序的一个版本,虽然该版本被加密但是也可以通过被授权的处理器进行解密。
从上面说明中应该理解,可以独立地或者组合地使用本发明的各种实施方式以实现各种安全操作,例如信任代码的处理和分发。确实,可以确认信任代码的源,并且进行关于是否已经窜改了信任代码的确定。此外,可以使用本发明来验证数据内容、安全地分发数据内容、管理系统特权、处理电子商务支付、管理对等通信和管理客户机对服务器验证。再进一步,可以使用本发明来通过验证和确认在引导(boot up)之前还没有窜改操作系统。还没有穷尽本发明的应用;确实,本领域的普通技术人员应该理解本发明的应用非常多以至不能全部列出。
现在将参照图18,其示出了如何根据本发明的各种方面来使用处理器协作的进一步例子。更具体地说,图18示出了在数据总线、网络和/或任何其他通信链路上彼此通信的多个处理器600A、600B、…、600F的框图。至少一个处理器600是“隔离的”,这是因为在没有同意的情况下不能够获得在其本地存储器中的数据。换句话说,一个或多个处理器600处于如上所述的操作的安全模式中。在图18所示的例子中,处理器600A、600B、600D和600E处于操作的安全模式中,而处理器600C和600F处于非安全操作模式中。除非另外允许,否则安全或者非安全处理器都不能从安全处理器的本地存储器中接收数据。因此,非安全处理器600C不能单方面地从安全处理器600B的本地存储器中获得数据。相反地,任何处理器600都可以单方面地从非安全处理器的本地存储器中获得数据。然而当已经获得了允许时,通过诸如相互协作,服务器处理器(例如,处理器600A)可以允许另一个处理器(例如,处理器600B)单方面地从其本地存储器中获得数据。
可以将上述系统用于多方商业合营的管理中,因为在这种情况下数据的安全很重要。例如,处理器600A和600B可以管理包含专有内容和/或提供验证功能给在合营机构中的其他方的实体。因此,处理器600D和600E可以使用处理器600A和/或处理器600B来验证内容,例如,确认和/或加密用于后来分发或者处理的内容。从这方面来说,可以将处理器600D和600E当作被许可者的管理实体。进一步,可以第三方内容可以在非安全处理器600C和600F上获得和/或在其上进行处理。
虽然已经参照特定实施方式在这里描述了本发明,但是应该理解,这些实施方式只是本发明的原理和应用的说明。因此应该理解,在不偏离所附权利要求所限定的本发明的精神和范围的情况下,可以对这些说明性实施方式进行各种变型而且也可以考虑其他安排方式。
产业的可利用性
可以将本发明应用于使用多处理器保护数据处理安全的技术。
Claims (9)
1.一种用于保护数据处理和传送安全的设备,包括:
本地存储器;
总线,可操作来将信息携带到该本地存储器或者从该本地存储器中携带出信息;
一个或多个算术处理单元,可操作来处理数据并且可操作地连接到该本地存储器;以及
安全电路,可操作来将该设备置于两种可操作模式中的至少一个中,其中所述两种可操作模式包括下列之一:
(i)该设备和外部装置可以启动通过总线的、到或者来自该本地存储器的信息传送的第一模式,和该设备可以启动通过总线的、到或者来自该本地存储器的信息传送而外部装置不能启动通过总线的、到或者来自该本地存储器的信息传送的第三模式,和
(ii)该设备和外部装置都不可以启动通过总线的、到或者来自本地存储器的信息传送的第二模式,和该第三模式;
其中,
所述安全电路包括该安全电路以外的装置不可存取的秘密数据区域,该秘密数据区域包含第一密钥和第二密钥;
所述安全电路包括可由安全电路以外的装置存取的可存取数据区域;和
所述安全电路包括逻辑电路,该逻辑电路可操作来在所述设备处于第二模式时将第一密钥的复制件置于可存取数据区域中;
其中当所述设备运行验证例程时,安全电路将该设备置于第二模式;
该例程包括执行解密程序并且执行验证程序,该验证程序包括第二密钥的复制件,而根据第一密钥已经加密了该验证程序;和该设备执行解密程序,使得在可存取数据区域中所包含的第一密钥的复制件用于解密验证程序;
该安全电路的逻辑电路响应于验证程序的执行而将第二密钥的复制件置于可存取数据区域中;以及该逻辑电路进行关于在验证程序内所包含的第二密钥的复制件是否匹配于在可存取数据区域中所包含的第二密钥的复制件的确定。
2.根据权利要求1所述的设备,其中在受控过程中将第一密钥和第二密钥存储在秘密区域中,以便在使用所述设备之前维持安全性。
3.根据权利要求1所述的设备,其中,可操作该安全电路以在验证程序内所包含的第二密钥的复制件匹配于可存取数据区域中所包含的第二密钥的复制件时,将该设备置于操作的第三模式。
4.根据权利要求1所述的设备,其中,在将该设备置于第三模式之前,清除在可存取数据区域中所包含的第一和第二密钥的复制件。
5.一种放置于单独设备中的多个处理单元,所述处理单元中至少两个包括:
本地存储器;
总线,可操作来将信息携带到该本地存储器或者从该本地存储器中携带出信息;
一个或多个算术处理单元,可操作来处理数据并且可操作地连接到该本地存储器;以及
安全电路,可操作来将该设备置于两种可操作模式中的至少一个中,其中所述两种可操作模式包括下列之一:
(i)该设备和外部装置可以启动通过总线的、到或者来自本地存储器的信息传送的第一模式,和该设备可以启动通过总线的、到或者来自本地存储器的信息传送而外部装置不能启动通过总线的、到或者来自本地存储器的信息传送的第三模式,和
(ii)该设备和外部装置都不可以启动通过总线的、到或者来自本地存储器的信息传送的第二模式,和该第三模式;
其中,
所述安全电路包括该安全电路以外的装置不可存取的秘密数据区域,该秘密数据区域包含第一密钥和第二密钥;
所述安全电路包括可由安全电路以外的装置存取的可存取数据区域;和
所述安全电路包括逻辑电路,该逻辑电路可操作来在所述设备处于第二模式时将第一密钥的复制件置于可存取数据区域中;
其中当所述设备运行验证例程时,安全电路将该设备置于第二模式;
该例程包括执行解密程序并且执行验证程序,该验证程序包括第二密钥的复制件,而根据第一密钥已经加密了该验证程序;和该设备执行解密程序,使得在可存取数据区域中所包含的第一密钥的复制件用于解密验证程序;
该安全电路的逻辑电路响应于验证程序的执行而将第二密钥的复制件置于可存取数据区域中;以及该逻辑电路进行关于在验证程序内所包含的第二密钥的复制件是否匹配于在可存取数据区域中所包含的第二密钥的复制件的确定。
6.一种用于保护数据处理和传送安全的方法,包括:
将设备置于多个操作模式中的至少一个中,其中:
该设备包括本地存储器;总线,可操作来将信息携带到该本地存储器或者从该本地存储器中携带信息;一个或多个算术处理单元,可操作来处理数据并且可操作地连接到该本地存储器;以及安全电路,可以操作来将该设备置于所述多个操作模式中的至少一个中;以及
所述多个操作模式包括下列之一:
(i)该设备和外部装置可以启动通过总线的、到或者来自本地存储器的信息传送的第一模式,和该设备可以启动通过总线的、到或者来自本地存储器的数据传送而外部装置不能启动通过总线的、到或者来自本地存储器的信息传送的第三模式,和
(ii)该设备和外部装置都不可以启动通过总线的、到或者来自本地存储器的信息传送的第二模式,和该第三模式;
其中:
所述安全电路包括该安全电路以外的装置不可存取的秘密数据区域,该秘密数据区域包含第一密钥和第二密钥,而且所述安全电路包括可由安全电路以外的装置存取的可存取数据区域;和
该方法还包括在所述设备处于第二模式时将第一密钥的复制件置于可存取数据区域中;
当该设备运行验证例程时,将该设备置于第二模式中;
当该设备运行验证例程时将该设备置于第二模式中,其中该例程包括执行解密程序并且执行验证程序,该验证程序包括第二密钥的复制件,而根据第一密钥已经加密了该验证程序;和
执行解密程序,使得在可存取数据区域中所包含的第一密钥的复制件用于解密验证程序;
响应于验证程序的执行而将第二密钥的复制件置于可存取数据区域中;以及
确定在验证程序内所包含的第二密钥的复制件是否匹配于在可存取数据区域中所包含的第二密钥的复制件。
7.根据权利要求6所述的方法,还包括在受控过程中将第一密钥和第二密钥存储在秘密区域中,以便在使用所述设备之前保持安全性。
8.根据权利要求6所述的方法,其中,可以进入三种模式之一,而且该方法还包括在验证程序内所包含的第二密钥的复制件匹配于可存取数据区域中所包含的第二密钥的复制件时,将该设备置于第三模式中。
9.根据权利要求6所述的方法,还包括在将该设备置于第三模式之前,清除在可存取数据区域中所包含的第一和第二密钥的复制件。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/985,354 US7502928B2 (en) | 2004-11-12 | 2004-11-12 | Methods and apparatus for secure data processing and transmission |
US10/985,354 | 2004-11-12 | ||
PCT/JP2005/021177 WO2006052017A2 (en) | 2004-11-12 | 2005-11-11 | Methods and apparatus for secure data processing and transmission |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101523231A Division CN101615233B (zh) | 2004-11-12 | 2005-11-11 | 用于保护数据处理和传送安全的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101084505A CN101084505A (zh) | 2007-12-05 |
CN101084505B true CN101084505B (zh) | 2010-04-21 |
Family
ID=35709177
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005800437883A Active CN101084505B (zh) | 2004-11-12 | 2005-11-11 | 用于保护数据处理和传送安全的方法和设备 |
CN2009101523231A Active CN101615233B (zh) | 2004-11-12 | 2005-11-11 | 用于保护数据处理和传送安全的方法和设备 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101523231A Active CN101615233B (zh) | 2004-11-12 | 2005-11-11 | 用于保护数据处理和传送安全的方法和设备 |
Country Status (7)
Country | Link |
---|---|
US (2) | US7502928B2 (zh) |
EP (2) | EP1836635B1 (zh) |
JP (2) | JP4386883B2 (zh) |
KR (1) | KR100924043B1 (zh) |
CN (2) | CN101084505B (zh) |
TW (1) | TWI284811B (zh) |
WO (1) | WO2006052017A2 (zh) |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060026417A1 (en) * | 2004-07-30 | 2006-02-02 | Information Assurance Systems L.L.C. | High-assurance secure boot content protection |
US20060155955A1 (en) * | 2005-01-10 | 2006-07-13 | Gschwind Michael K | SIMD-RISC processor module |
US7516315B2 (en) * | 2005-03-18 | 2009-04-07 | Research In Motion Ltd. | Electronic device having an alterable configuration and methods of manufacturing and configuring the same |
US20060288209A1 (en) * | 2005-06-20 | 2006-12-21 | Vogler Dean H | Method and apparatus for secure inter-processor communications |
US8189788B2 (en) * | 2005-07-15 | 2012-05-29 | Tyfone, Inc. | Hybrid symmetric/asymmetric cryptography with user authentication |
US8477940B2 (en) * | 2005-07-15 | 2013-07-02 | Tyfone, Inc. | Symmetric cryptography with user authentication |
FR2892838B1 (fr) * | 2005-10-28 | 2008-04-25 | Michael Vergoz | Gestionnaire specialise de flux entre le processeur et la memoire a acces aleatoire |
US8688856B2 (en) * | 2006-01-24 | 2014-04-01 | Novell, Inc. | Techniques for managing a network delivery path of content via a key |
KR100891093B1 (ko) | 2006-05-09 | 2009-03-31 | 삼성전자주식회사 | 보안 데이터의 안전한 이동을 제공하는 장치 및 방법 |
US7949130B2 (en) * | 2006-12-28 | 2011-05-24 | Intel Corporation | Architecture and instruction set for implementing advanced encryption standard (AES) |
EP2164020B1 (en) * | 2007-05-11 | 2014-02-26 | Nagrastar L.L.C. | Apparatus for controlling processor execution in a secure environment |
US8625793B2 (en) | 2007-06-11 | 2014-01-07 | Qualcomm Incorporated | Resynchronization for push message security using secret keys |
KR100915589B1 (ko) * | 2007-07-12 | 2009-09-07 | 엔에이치엔비즈니스플랫폼 주식회사 | 보안 인증 시스템 및 방법 |
US8515052B2 (en) * | 2007-12-17 | 2013-08-20 | Wai Wu | Parallel signal processing system and method |
US8826037B2 (en) * | 2008-03-13 | 2014-09-02 | Cyberlink Corp. | Method for decrypting an encrypted instruction and system thereof |
US8959200B2 (en) * | 2008-07-01 | 2015-02-17 | Ortho-Clinical Diagnostics, Inc. | Event-based communication in a clinical diagnostic analyzer |
US8566286B1 (en) | 2009-05-15 | 2013-10-22 | Idera, Inc. | System and method for high speed database backup using rapidly adjusted dynamic compression ratios controlled by a feedback loop |
US8646050B2 (en) * | 2011-01-18 | 2014-02-04 | Apple Inc. | System and method for supporting JIT in a secure system with randomly allocated memory ranges |
EP3229436B1 (en) * | 2011-11-09 | 2018-07-25 | Huawei Technologies Co., Ltd. | Retrieving data stored securely in the cloud |
US8832374B1 (en) * | 2011-11-14 | 2014-09-09 | Union Supply Company, Inc. | Providing electronic content to residents of controlled-environment facilities |
US9672574B2 (en) | 2012-03-20 | 2017-06-06 | Facebook, Inc. | Bypass login for applications on mobile devices |
US9154568B2 (en) * | 2012-03-20 | 2015-10-06 | Facebook, Inc. | Proxy bypass login for applications on mobile devices |
US20130305388A1 (en) * | 2012-05-10 | 2013-11-14 | Qualcomm Incorporated | Link status based content protection buffers |
FR2998689B1 (fr) * | 2012-11-27 | 2014-12-26 | Oberthur Technologies | Ensemble electronique comprenant un module de desactivation |
US10410003B2 (en) | 2013-06-07 | 2019-09-10 | Apple Inc. | Multiple containers assigned to an application |
CN103400086B (zh) * | 2013-07-30 | 2016-12-07 | 东莞宇龙通信科技有限公司 | 一种终端 |
CN103402019B (zh) * | 2013-07-30 | 2016-04-06 | 东莞宇龙通信科技有限公司 | 终端和数据处理方法 |
US9170957B2 (en) | 2013-08-29 | 2015-10-27 | Qualcomm Incorporated | Distributed dynamic memory management unit (MMU)-based secure inter-processor communication |
JP6265783B2 (ja) * | 2014-03-06 | 2018-01-24 | キヤノン株式会社 | 暗号化/復号化システム及びその制御方法、並びにプログラム |
KR102297383B1 (ko) * | 2014-09-25 | 2021-09-03 | 삼성전자주식회사 | 보안 데이터 처리 |
EP3048776B2 (en) * | 2015-01-22 | 2021-03-17 | Nxp B.V. | Methods for managing content, computer program products and secure element |
KR101666746B1 (ko) * | 2015-04-30 | 2016-10-17 | 성균관대학교산학협력단 | 컴퓨팅 장치의 도난 및 부정 접근으로부터 컴퓨팅 장치 내의 데이터를 안전하게 보호할 수 있는 데이터 보호 시스템 및 방법 |
US10102391B2 (en) * | 2015-08-07 | 2018-10-16 | Qualcomm Incorporated | Hardware enforced content protection for graphics processing units |
TWI560575B (en) * | 2015-10-15 | 2016-12-01 | Via Tech Inc | Microprocessor and method for securely executing instructions therein |
KR102385552B1 (ko) | 2015-12-29 | 2022-04-12 | 삼성전자주식회사 | 시스템-온-칩 및 이를 포함하는 전자 장치 |
US10209907B2 (en) * | 2016-06-14 | 2019-02-19 | Microsoft Technology Licensing, Llc | Secure removal of sensitive data |
JP6852604B2 (ja) * | 2017-07-12 | 2021-03-31 | 住友電気工業株式会社 | 車載装置、管理方法および管理プログラム |
CN109960943A (zh) * | 2019-04-02 | 2019-07-02 | 山东渔翁信息技术股份有限公司 | 一种密码设备 |
US10846413B2 (en) | 2019-04-18 | 2020-11-24 | Advanced New Technologies Co., Ltd. | Data processing method and device |
KR102147912B1 (ko) | 2019-08-13 | 2020-08-25 | 삼성전자주식회사 | 프로세서 칩 및 그 제어 방법들 |
FR3118504B1 (fr) * | 2020-12-28 | 2024-05-17 | St Microelectronics Rousset | Système électronique comprenant plusieurs microprocesseurs |
TWI847921B (zh) * | 2023-11-22 | 2024-07-01 | 立鴻半導體股份有限公司 | 記憶體內二進位浮點乘法裝置及其操作方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4633388A (en) * | 1984-01-18 | 1986-12-30 | Siemens Corporate Research & Support, Inc. | On-chip microprocessor instruction decoder having hardware for selectively bypassing on-chip circuitry used to decipher encrypted instruction codes |
EP0308219A2 (en) * | 1987-09-18 | 1989-03-22 | General Instrument Corporation | Microcomputer with internal RAM security during external program mode |
CN1350382A (zh) * | 2001-11-29 | 2002-05-22 | 东南大学 | 基于pki的vpn密钥交换的实现方法 |
CN1506845A (zh) * | 2002-12-10 | 2004-06-23 | 英特尔公司 | 异构代理高速缓存一致性和限制数据传输的方法和装置 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7133845B1 (en) * | 1995-02-13 | 2006-11-07 | Intertrust Technologies Corp. | System and methods for secure transaction management and electronic rights protection |
US6708273B1 (en) * | 1997-09-16 | 2004-03-16 | Safenet, Inc. | Apparatus and method for implementing IPSEC transforms within an integrated circuit |
US7225333B2 (en) * | 1999-03-27 | 2007-05-29 | Microsoft Corporation | Secure processor architecture for use with a digital rights management (DRM) system on a computing device |
US7600131B1 (en) | 1999-07-08 | 2009-10-06 | Broadcom Corporation | Distributed processing in a cryptography acceleration chip |
US7124170B1 (en) * | 1999-08-20 | 2006-10-17 | Intertrust Technologies Corp. | Secure processing unit systems and methods |
US6938164B1 (en) | 2000-11-22 | 2005-08-30 | Microsoft Corporation | Method and system for allowing code to be securely initialized in a computer |
JP2002163239A (ja) | 2000-11-22 | 2002-06-07 | Toshiba Corp | マルチプロセッサシステムおよびその制御方法 |
US6959346B2 (en) * | 2000-12-22 | 2005-10-25 | Mosaid Technologies, Inc. | Method and system for packet encryption |
US6526491B2 (en) * | 2001-03-22 | 2003-02-25 | Sony Corporation Entertainment Inc. | Memory protection system and method for computer architecture for broadband networks |
US6826662B2 (en) | 2001-03-22 | 2004-11-30 | Sony Computer Entertainment Inc. | System and method for data synchronization for a computer architecture for broadband networks |
US20030037237A1 (en) * | 2001-04-09 | 2003-02-20 | Jean-Paul Abgrall | Systems and methods for computer device authentication |
EP1329787B1 (en) | 2002-01-16 | 2019-08-28 | Texas Instruments Incorporated | Secure mode indicator for smart phone or PDA |
JP3866597B2 (ja) | 2002-03-20 | 2007-01-10 | 株式会社東芝 | 内部メモリ型耐タンパプロセッサおよび秘密保護方法 |
JP2003281071A (ja) | 2002-03-20 | 2003-10-03 | Seiko Epson Corp | データ転送制御装置、電子機器及びデータ転送制御方法 |
US7603550B2 (en) | 2002-04-18 | 2009-10-13 | Advanced Micro Devices, Inc. | Computer system including a secure execution mode-capable CPU and a security services processor connected via a secure communication path |
US20040003321A1 (en) * | 2002-06-27 | 2004-01-01 | Glew Andrew F. | Initialization of protected system |
US7322042B2 (en) | 2003-02-07 | 2008-01-22 | Broadon Communications Corp. | Secure and backward-compatible processor and secure software execution thereon |
JP4945053B2 (ja) | 2003-03-18 | 2012-06-06 | ルネサスエレクトロニクス株式会社 | 半導体装置、バスインターフェース装置、およびコンピュータシステム |
US7475257B2 (en) * | 2003-09-25 | 2009-01-06 | International Business Machines Corporation | System and method for selecting and using a signal processor in a multiprocessor system to operate as a security for encryption/decryption of data |
-
2004
- 2004-11-12 US US10/985,354 patent/US7502928B2/en active Active
-
2005
- 2005-11-11 EP EP05806776.0A patent/EP1836635B1/en active Active
- 2005-11-11 CN CN2005800437883A patent/CN101084505B/zh active Active
- 2005-11-11 EP EP19158500.9A patent/EP3514723B1/en active Active
- 2005-11-11 CN CN2009101523231A patent/CN101615233B/zh active Active
- 2005-11-11 KR KR1020077013169A patent/KR100924043B1/ko active IP Right Grant
- 2005-11-11 JP JP2005327282A patent/JP4386883B2/ja active Active
- 2005-11-11 TW TW094139946A patent/TWI284811B/zh active
- 2005-11-11 WO PCT/JP2005/021177 patent/WO2006052017A2/en active Application Filing
-
2009
- 2009-01-13 US US12/352,817 patent/US8001377B2/en active Active
- 2009-06-22 JP JP2009147826A patent/JP4756718B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4633388A (en) * | 1984-01-18 | 1986-12-30 | Siemens Corporate Research & Support, Inc. | On-chip microprocessor instruction decoder having hardware for selectively bypassing on-chip circuitry used to decipher encrypted instruction codes |
EP0308219A2 (en) * | 1987-09-18 | 1989-03-22 | General Instrument Corporation | Microcomputer with internal RAM security during external program mode |
CN1350382A (zh) * | 2001-11-29 | 2002-05-22 | 东南大学 | 基于pki的vpn密钥交换的实现方法 |
CN1506845A (zh) * | 2002-12-10 | 2004-06-23 | 英特尔公司 | 异构代理高速缓存一致性和限制数据传输的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
JP4386883B2 (ja) | 2009-12-16 |
EP1836635B1 (en) | 2019-02-27 |
TWI284811B (en) | 2007-08-01 |
US20090125717A1 (en) | 2009-05-14 |
CN101615233B (zh) | 2011-12-28 |
US8001377B2 (en) | 2011-08-16 |
WO2006052017A3 (en) | 2006-08-24 |
JP2006139785A (ja) | 2006-06-01 |
EP1836635A2 (en) | 2007-09-26 |
EP3514723A1 (en) | 2019-07-24 |
KR20070086051A (ko) | 2007-08-27 |
CN101615233A (zh) | 2009-12-30 |
KR100924043B1 (ko) | 2009-10-27 |
JP2009217845A (ja) | 2009-09-24 |
US7502928B2 (en) | 2009-03-10 |
WO2006052017A2 (en) | 2006-05-18 |
CN101084505A (zh) | 2007-12-05 |
EP3514723B1 (en) | 2020-12-23 |
JP4756718B2 (ja) | 2011-08-24 |
TW200636488A (en) | 2006-10-16 |
US20060112213A1 (en) | 2006-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101084505B (zh) | 用于保护数据处理和传送安全的方法和设备 | |
US7958371B2 (en) | Methods and apparatus for secure operating system distribution in a multiprocessor system | |
US11163911B2 (en) | Secure public cloud with protected guest-verified host control | |
US8001592B2 (en) | Methods and apparatus for accessing resources using a multiprocessor in a trusted mode | |
US11989332B2 (en) | Secure public cloud with protected guest-verified host control | |
US11520611B2 (en) | Secure public cloud using extended paging and memory integrity | |
US8001390B2 (en) | Methods and apparatus for secure programming and storage of data using a multiprocessor in a trusted mode | |
US10877806B2 (en) | Method and apparatus for securely binding a first processor to a second processor | |
JP2023514484A (ja) | マルチテナント環境における暗号コンピューティング | |
US20080282341A1 (en) | Methods and apparatus for random number generation in a multiprocessor system | |
KR20120099472A (ko) | 보안 애플리케이션 실행을 제공하는 방법 및 장치 | |
WO2011149986A1 (en) | Virtual machine memory compartmentalization in multi-core architectures | |
US8726041B2 (en) | Methods and apparatus for generating a random number in one or more isolated processors | |
Pott et al. | Firmware Security Module: A Framework for Trusted Computing in Automotive Multiprocessors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |