CN103154925A - 多处理器系统中的通信禁用 - Google Patents
多处理器系统中的通信禁用 Download PDFInfo
- Publication number
- CN103154925A CN103154925A CN2011800496302A CN201180049630A CN103154925A CN 103154925 A CN103154925 A CN 103154925A CN 2011800496302 A CN2011800496302 A CN 2011800496302A CN 201180049630 A CN201180049630 A CN 201180049630A CN 103154925 A CN103154925 A CN 103154925A
- Authority
- CN
- China
- Prior art keywords
- processor
- communication
- configuration
- communication device
- security
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17337—Direct connection machines, e.g. completely connected computers, point to point communication networks
- G06F15/17343—Direct connection machines, e.g. completely connected computers, point to point communication networks wherein the interconnection is dynamically configurable, e.g. having loosely coupled nearest neighbor architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/177—Initialisation or configuration control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4405—Initialisation of multiprocessor systems
-
- 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
-
- 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
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
Abstract
禁用多处理器结构中的通信。多处理器结构包括多个处理器和多个通信元件,并且,多个通信元件中的每一个通信元件包括存储器。可对于多处理器结构接收配置,该配置规定禁用以下中的一个或更多个之间的通信路径:一个或更多个处理器和一个或更多个通信元件;一个或更多个处理器和一个或更多个其它的处理器;或一个或更多个通信元件和一个或更多个其它的通信元件。因此,可自动地在硬件中配置多处理器结构,以禁用由配置规定的通信路径。可以操作多处理器结构,以根据配置执行软件应用。
Description
技术领域
本发明的领域一般涉及计算机系统安全性,特别是涉及软件限定的安全系统。
背景技术
人的基本需求之一是安全性,即感觉有保证的需求。不幸的是,在各个时代,在世界上都存在想要伤害、例如偷盗或损害财产、破坏或损坏组织或政府等的实体。他们的动机从寻求个人好处到政治原因不等。随着社会进入数字时代并且通信和信息之间的边界进一步模糊化,安全性和达到可量化的保证级别的方法对于保持当前的生活水平变得十分关键。
商业信息安全性要求背后的驱动力是对于在任何时间或地点与数字世界进行通信和连接的欲望。向着普遍存在的通信和计算方案演进的这种环境早期由电信部门驱动。该部门分解成消费、工业、医疗、公共安全、政府和军事部门。军事在常规上在技术方面引领该领域。但是,由于工业通过该新能力的实现接受和演进它们的操作实践,因此,消费、工业/企业和医疗市场现在面临类似的挑战。因此,希望提高安全性。
发明内容
以下提供通过多处理器结构确保系统的安全的各种实施例。多处理器结构可包括多个处理器和多个通信元件。各通信元件可以是可动态配置的,并且/或者可包括多个通信端口、存储器和/或路由引擎以及其它的可能的元件。各处理器可包括至少一个算术逻辑单元、指令处理单元和/或多个处理器端口以及其它的可能的元件。通信元件和处理器可以以散布的方式被耦合在一起。例如,对于处理器中的每一个处理器,多个处理器端口可被配置为用于耦合多个通信元件的第一子集,并且,对于通信元件中的每一个通信元件,通信端口的第一子集可被配置为用于耦合多个处理器的子集,并且,通信端口的第二子集可被配置为用于耦合多个通信元件的第二子集。
在一个实施例中,可例如在多处理器结构或包括多处理器结构的系统的引导过程中自动地接收用于多处理器结构的配置。该配置可规定处理器和/或通信元件中的一个或更多个之间的通信路径的禁用。例如,该配置可规定一个或更多个处理器和一个或更多个通信元件、一个或更多个处理器和一个或更多个其它的处理器和/或一个或更多个通信元件与一个或更多个其它的通信元件之间的通信路径的禁用。
作为几个例子,该配置可规定多处理器结构的第一部分和多处理器结构的第二部分之间的通信的禁用,以例如在操作过程中隔离第一部分与第二部分。作为另一例子,该配置可规定多处理器结构的第二部分对多处理器结构的第一部分的存储器访问的禁用,例如,使得第二部分不能在操作过程中访问包括于第一部分中的存储器。
作为响应,可自动地在硬件中配置多处理器结构,以禁用由该配置规定的通信路径。因此,可以操作多处理器结构以根据该配置执行软件应用。
在一个实施例中,该配置可包括设定与一个或更多个处理器和/或一个或更多个通信元件对应以禁用由该配置规定的通信路径的寄存器值。在一个实施例中,在配置之后,不能通过软件恢复禁用的通信路径。
作为替代方案,或者,另外,以上讨论的配置可基于加载到多处理器结构中的软件或代码被加载。例如,可首先加载包括配置的认证的代码。在一个实施例中,认证的代码可包括可在整个操作过程中使用的多个配置或配置的修改。例如,可从认证的代码接收第二配置,并且,可对于第二配置执行以上讨论的自动配置。
附图说明
当结合以下附图考虑优选实施例的以下的详细描述时,可以获得对本发明的更好的理解,其中,
图1示出可利用本发明的实施例的示例性计算机系统;
图2~图6B示出多处理器系统的示例性实施例;
图7和图8是示出根据一些实施例的用于禁用多处理器系统中的通信的方法的流程图;
图9~图16与用于确保多处理器系统的安全的特定实施例对应。
虽然可对本发明提出各种修改和替代形式,但是,作为例子在附图中表示并且在这里详细描述其特定的实施例。但是,应当理解,附图及其详细的描述不是要将本发明限于公开的特定的形式,相反,本发明要覆盖落在由所附的权利要求限定的本发明的精神和范围的所有修改、等同和替代方案。
具体实施方式
作为参考加入
在这里就如同全部和完整在这里阐述的一样加入以下的专利的全部内容作为参考:
在2003年6月24日提交的、发明名称为“Processing System withInterspersed Stall Propagating Processors and CommunicationElement”的美国专利No.7415594,其发明人是Michael B.Doerr、William 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)、服务器、移动通信装置、智能电话等的各种计算机系统中的任一个中实现本发明的实施例。计算机系统优选包括基于HyperTM技术的处理器。在以上作为参考加入的美国专利No.7415594中描述了HyperX处理器。
图2和图3——示例性多处理器系统
图2示出可称为“HyperX架构”的多处理器系统的示例性实施例。多处理器系统或结构是包括多个处理器、(统一式和/或分布式)存储器和通信(或通信网络)资源的并行计算平台。示例性多处理器系统包括多个处理器,其中,各处理器与至少一个其它的处理器耦合,并且,在相应的处理器之间存在多个通信机制。多处理器系统可包括与处理器耦合的多个存储器。例如,存储器可散布于处理器之中。具体而言,多处理器系统可包括散布于处理器中的多个通信单元,其中,各通信单元包括存储器和路由逻辑。如这里使用的那样,术语“耦合”意味着直接或间接连接。多处理器系统可以或者可以不体现于单个集成电路、单个印刷电路板或单个系统上。例如,多处理器系统可体现为多个集成电路、多个印刷电路板、多个系统或它们的一些组合。
这种多处理器系统的例子是在以上参照的美国专利No.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所示,在其当前的裸片实现中在物理上被平坦化。处理器架构可具有高的能量效率特性,并且还可基本上是可缩放的并且是可靠的——代表安全和可靠的意思。使得处理器架构能够实现无先例的性能的方面包括流线型处理器、存储器网络和灵活的IO。处理元件(PE)或芯可以是完全就绪的DSP/GPP,并且基于由可动态扩展执行管线的可变宽度指令字指令组结构保持的存储器到存储器(无高速缓存)结构,以保持产出率,同时使硬件资源的使用最大化。例如,根据一个实施例,单个指令可在单个循环中开始多于40个的常规的RISC操作。
图4、图5、图6A和图6B示出多处理器架构的HW/SW操作堆栈的另一示图。存储器网络(DMR)可按需提供自治和瞬时的带宽,该带宽又可向执行模型提供两个特征。首先,存储器网络可使得能够实现混合存储器编程模型。在历史上,由于硬件和编程模型限制,编程模型限于完全分布或完全共享执行存储器模型。这导致硬件适应性和可重新配置性的低效率。混合存储器模型可实时地对于软件运行的改变的动态和需要做出反应。第二,通信网络可在逻辑上具有拓扑独立性,例如,实时的适应和可重新配置。该独立性可允许创建适当的硬件拓扑,以支持算法/系统的自然并行性,由此不将算法/系统约束到特定的拓扑。这些特征可使得能够实现任何系统的自然效率。并且,多处理器系统可以是固有地可缩放的、可自我同步的,并且,如果系统需要的话,可有效地支持自治的存储器一致性。在一个实施例中,该系统可分布于在硬件和软件中支持数以百计到数以千计的处理器的许多裸片/芯片上。
在一个特定的实施例中,这里描述的软件限定的安全系统(SDS2)的能力可被描述如下:存在例如密钥管理和产生、加密/解密、认证、可编程引导、物理和逻辑隔离等的能力(例如,图5所示)的工具箱。另外,存在具有支持固定功能、可配置性、可重新配置性和可编程性的特性的硬件。通过开发过程,开发人员能够通过使用结合硬件的能力的工具箱创建安全系统的行为或者将其编程。
系统一旦被编程,就可被配置为重新使用工具箱和硬件,该系统从工具箱和硬件被创建以便以安全的方式表现行为。在常规上,安全系统是从与执行期望的安全行为的资源分开的资源产生的,并且这两个导致以零散的方式开发安全系统,从而导致方案的低效率。基于系统视角的全盘方案,该新的能力可使得(1)能够对于需要不同类型的安全性的各种系统创建定制的安全方案、(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描述的可被禁用的端口。可在硬件中建立阻止数据和控制的流动并且可提供处理器微架构的区域/分区及其之间的隔离的隔离/安全性障碍。障碍可被用于创建包封与特定的过程或用户相关联的处理、存储器和通信资源的安全性分区。障碍可具有一个或更多个受控访问点。障碍可跨越多个芯片,但一般被约束于单个芯片内,以避免芯片间探测(特殊的模块封装可提供针对这种探测的保护)。
另外,可在每个处理芯上得到用于安全性的高性能处理。这包括但不限于(1)RSA密钥产生(不对称)、(2)随机数产生、(3)散列产生、(4)加密和解密和(5)RSA密钥(和其它数据)存储。
SDS2系统可引导设计人员/开发人员通过保护有价值或敏感信息(数据或软件)在其存储中以及从其在一个位置传送到另一位置时不被窃取或者篡改的过程。同时,需要使得授权的用户可迅速地并且以最少的代价量得到有价值的信息。可通过集成有协议、应用软件和(硬件辅助的和软件限定的)硬件功能的信息安全性系统和操作员训练满足这些有时冲突的要求。SDS2系统可通过引导开发过程在软件的控制下向软件可编程硬件特征提供该跨层软件堆栈(协议、位置软件等)开发方法,以使得能够实现安全性方案。以下的部分更详细地描述系统的示例性实施例。
用于信息安全性的相关联的工具箱:
为了提供信息安全处理,可能需要几个概念。以下的段落描述用于信息安全性概念的工具箱中的一些。
可编程的物理和逻辑隔离
安全性障碍可通过从障碍内控制访问的物理或逻辑隔离/障碍来提供确保芯片的多个部分的安全并对其进行验证的能力。这允许已被解密的代码和数据以防止由不安全的代理的外部访问的方式驻留于芯片上并在其上面运行。它可支持在芯片复位、上电或安全性违反时将存储器清零,或者在这些事件中围绕受保护的数据重新构建相同的安全墙,由此确保受保护的代码/数据决不留在不安全区域以被对于装置具有非认证的编程访问的任何人访问。
密钥产生和管理
密钥产生和管理可包括在芯片上在系统水平上不能被非认证的用户读取或修改的易失性或非易失性存储器中存储解密密钥。它可为系统集成器提供在生产时间创建或加载这些密钥并且确保它们的安全的能力。可以提供方法,以将这些密钥永久地锁定于安全存储装置中,而没有任何重新编程,或者以允许它们被暂时锁定并在以后被安全、认证的用户修改。在这里的描述中,为了在进一步的解释需要细节时提供参照,参照基于能够基于硬件的物理特性或者基于硬件环振荡器的随机数产生器(RNG)产生适当的可重复唯一熵的物理上不可克隆功能(PUF)的一次可编程(OTP)类型存储器或随机数产生。可在硬件中或者通过软件这二者支持随机数产生。
加密和解密
代码和数据两者均可在加密的流中被加载到芯片中,并且使其在芯片上被解密以供使用。一旦被解密,即使在芯片复位之后,也可保护其不受外部访问或修改。可通过硬件引擎完成这一点,但是,为了保持完全的软件定义,可使用通过可编程引导机制加载的软件引擎。这使该实现保持与硬件辅助的软件模型方法学一致。
认证
通过提供一些类型的公共密钥类型信息(例如,软件密钥、硬件密钥、计量生物信息等),可以使用受保护的代码来认证用户并允许访问使用现有的编程或者在更高的安全性级别以修改它。这可以是可通过可编程引导访问的软件或硬件实现。例如,该特征可被用于实现数字权利管理功能。
可编程引导(支持安全和非安全)
安全引导提供可定制软件可限定引导序列,从而以芯片(和系统)完全受保护和被确保安全的方式引导芯片(和系统)。一旦启用安全引导,则对于芯片的引脚的物理访问可能是不可能的。访问或改变芯片上或(加载到芯片上的)系统中的安全的代码或数据中的任一个可能需要认证。系统复位或者功率循环可导致芯片运行该模式并在允许任何用户级访问之前确保所有需要的代码和数据的安全。模式可被编程为其中引导代码可被永久锁定或者被允许由认证的用户改变。
图11A和图11B提供安全引导系统的示例性总体框图。从这些图可见提供的基本安全性块并且可以看到它们如何连接到其它的芯片硬件。该设计可使用DMR中的可用的存储器作为存储器缓冲器,以供处理安全引导代码中使用。通过该功能,PE还能够在任务模式中使用DMR用于缓冲可通过所提供的硬件块加密、解密、签署或认证的数据。另外,可在于存储器中设置串行总线命令序列时使用存储器缓冲器,以通过DMR中的DMR信道向串行总线控制器发送。该过程可提高需要这些功能的算法的总效率,并且DMR使用可对于其它的关键的处理任务释放PE。图11B示出示例性数据流动,其中还示出一些小的控制流动。
更详细地,图11A和图11B示出HyperX高级安全性框图。注意,在图中,存在对于描绘的OTP的几个不同的使用。从架构的观点来看,根据特定的实现的需要,这些存储器可以在尺寸和数量上具有不同的配置。主存储器(程序存储区)在表示的组中是最大的。除此之外,存在较小的存储器,一个用于用户/安全性暂存器,而另一个用于可多次编程(MTP)仿真。它可被用于将主存储器配置成多个可重新映射的页,使得可以校正错误并且/或者可修改或替代密钥。这可通过可编程位配置,使得某些页可被永久锁定,并且其它的页可被程序控制的认证的用户访问。如果希望的话,这允许需要的安全性以及场可升级代码/密钥。注意,这些存储器的功能和使用可基于所使用的不同的非易失性存储器稍微改变。例如,这里使用许多工作和逻辑以用OTP仿真可多次编程性。在可多次编程非易失性技术(诸如FLASH)的情况下,该工作和逻辑可被重新引向固有可重写存储器的锁定。
使用IO禁用信号以在安全引导过程中保持芯片IO禁用,使得在构建安全性墙之前不允许外部访问,由此使得不需要引脚级别的安全性保护。一种选项是即使在引导过程的剩余部分中也保持其被断言(IO禁用)(除了一旦安全部分完成就需要在外部继续引导的SPI引脚以外)。
在OTP寄存器中支持的另一特征是一旦芯片被完全制造测试,就关断全芯片扫描端口的能力。这在系统级上提供附加的安全性级别。
例如,对于适当的功能,芯片可使用几个模式。可由图11A和图11B所示的可写入、非易失性存储装置(熔丝)[可配置]来控制这些模式。可以提供附加的非易失性存储装置以作为后备密钥(BUK)使用。
PUF可以是RNG1电路的组成部分。还可在任务模式中对于随机数访问它。对于任务模式还提供附加的随机数产生器(RNG2)。它可与RNG1具有不同的硬件设计,以提供替代性的方法,例如,硬件环振荡器。
还可存在具有电池支持的选项(通过封装选项提供)的小的RAM,如果该RAM易失的话。该存储器可被用作系统配置/提供信息的电池支持的存储、任选的密钥存储、AC位的存储,或者甚至可包含用于小的引导操作的足够的引导代码(足以编程PE或这两者)。在一个实施例中,如果检测到篡改,那么该RAM可被归零。
安全引导控制部分可提供状态机控制,以初始化安全引导硬件并执行安全引导序列。它还可提供控制,以配置IP块的操作模式并基于可配置的硬件设置启用/禁用这些块。
篡改检测
篡改检测输入(与另一个多路复用或者单独的)可发出检测到篡改的信号。这可以在芯片内使用,以发出如下信号,即变化是功能上希望的。基于用户编程,它可导致存储器的“归零”(或存储器被置于不定状态),并任选地将引导模式转换回其中不再从OTP读取安全代码的状态,由此使得装置对于板上的安全代码没有功能。在该点上,看到安全代码的仅有的方式可以是物理读取可纯粹通过选择供使用的非易失性存储器的安全本质控制的位位置。通过程序控制基于该信号启用或禁用其它的特征。除了该引脚以外,封装的盖子如果被去除的话也可提供篡改检测信令。
软件开发过程
图10示出支持SDS2方法学和过程的示例性HyperX开发系统。可在图10所示的下层能力上构建软件开发过程,这里,系统约束扩展以识别各阶段的安全性要求、所选择的实现方法(SW和HW特征)、用于证明保证的常见方法、通过完全可编程和可定制安全性开发环境方案由完全仿真和测试支持的系统功能和性能的验证。
启用硬件特征
HyperX系统可包括基于软件的方案。因而,可以以与该模型一致的方式实现安全性实现(障碍、密钥管理、认证、解密等)并且保持其作为在HyperX平台上运行的软件。这可防止最多提供可能方案的较小子集的定制硬件的设计和实现。
HyperX硬件/处理器可包括允许设计和实现这些软件方案的硬件“钩环(hook)”。因而,在一个实施例中,该设计可被视为“基于硬件辅助软件的、可验证的、安全性”。它可提供纯硬件方案所需要的基本要素和伴随它一起到来的、具有软件方案的可重新配置性而没有其固有的安全性漏洞的安全性。
例子
可选择PE_0_0(或特定的处理元件)作为安全性实现的开始点。在不改变设计的意图的情况下,可基于其它的设计考虑选择附加或不同的PE。一次可编程(OTP)类型存储器与可通过PE_0_0和DAP(通过引导控制器)访问的相关联的空路由器(Null Router)寄存器总线连接以用于编程。注意,这是通向OTP存储器的两个可能的读取/写入路径。这不意味着将该设计仅限于两个路径,而是对于当前的设计点仅选择为两个。在所有情况下,对于每个路径,可在编程结构内单独地确保它的访问的安全。一旦被编程,OTP就可被锁定,使得它不再可被PE_0_0或DAP写入或读取。该行为可通过系统设计人员将编程。这将其保护为安全区域,并允许在这里存储解密密钥(密钥加密密钥或KEK和加密的主机密钥)以及安全的非加密的代码两者。可在每个页的基础上完成OTP的该编程和保护。页在其安全性信息被配置之前可通过PE或引导控制器写入和读取。这允许它被验证为正确。写入可选择的安全性位允许对于所有用户或者仅对于非认证的用户完全锁定或者部分锁定读取/写入访问的控制。这与在什么页开始引导的可编程值一起允许通过使用OTP的新页用新代码替代引导代码。
在该OTP的编程之前,芯片在正常操作中表现行为,并且从SPI(如果这些管脚被这样配置的话)引导并允许通过正常的端口实现并行引导模式访问。一旦OTP被编程,那么在复位时,芯片就可使得所有的并行端口和DAP被禁用,并且安全引导控制器逻辑可从板上OTP存储器引导芯片。该引导可完全确保区域的安全,并加载可用于通过芯片上的端口认证用户的解密引擎。注意,在安全引导部分中不允许外部访问。因此,引脚访问不需要保护。一旦该部分被确保安全,就将引导转交给标准的引导控制器逻辑,并且端口全部被启用。现在,可正常地加载非安全代码。
由于它是完全可编程的,因此,安全引导部分也可加载小的安全的解密引擎,该解密引擎然后通过PE_0_0处理引导过程的剩余部分。现在,完全加密的代码和数据可从芯片外加载并且当其被加载到芯片上时通过该引擎解密。与小的OTP相比,这允许芯片的更大的部分在安全的模式中运行。
可以支持多个安全引导图像。这允许生产芯片在制造时具有加载到自身中的一些预先配置的安全性代码,以在传输时增强芯片的基本安全性特征。该特征的一种可能的使用是在复位时提供存储器“归零”(或者置于不定状态)的功能,使得所有存储器内容在用户级别(引脚)访问被启用之前被清零。还存在其它的可能的使用。
通过芯片上的当前的SPI端口,安全引导模式的仿真是可用的。它可被用于对于安全性算法的提出和调试模拟OTP,而不需要将OTP编程。这可允许开发环境完全通过现有端口测试安全系统,然后,一旦完全开发和调试,就将OTP编程——相对于OTP模式支持不修改以在仿真模式中运行。
用于将OTP编程的替代性方法是通过外部DAP。在该模式以及前面描述的PE_0_0编程访问的方法两者中,存储器中的一个或更多个页可保持不受保护并允许对于加密的密钥数据的存储的PE_0_0访问。对于PE_0_0和DAP这二者,能够单独地选择读取和写入访问保护。
基于潜在的使用情况,按两个分组处理和组织以下的特征。第一组主要基于对于支持静态安全性结果的关注。换句话说,区域一旦被确保安全就可保持有效,直到出现芯片复位或电力循环。虽然它对于实现安全处理是必要的功能并且对于潜在的应用的子集是足够的,但是,它不是对于所有的安全性需要的完整的方案。
第二区域基于支持动态安全性障碍和/或静态和动态安全性障碍的组合并且有利于高层安全性概念。
静态安全性障碍
以下的特征、工具提供用于支持静态安全性操作需要的基线。为了澄清,提供被视为必要的说明。
存储器总线设计、启动定序(复位…)、MTP仿真、寄存器规范(位定义)和配置位的示例性使用和数量。
下表示出示例寄存器规范:
表1:示例寄存器规范
可编程引导序列
这是通过编程控制引导定序的能力。可通过OTP中的位控制它,但是,如果是要在没有OTP的情况实现最小设计,那么可通过具有特殊的复位逻辑的一些寄存器位控制它。它可支持芯片可引导并且重新编程其引导序列并然后重新引导它的能力。这可允许在芯片上没有non-vol位的情况出现一些安全仿真。
一种实现的方法是构建与在OTP中计划的表类似的引导地址表,以允许不同的引导序列运行,一些在起作用时如同它们是安全的并且来自OTP,并然后传送到“正常”引导过程(除了不是来自地址0、CS0,原因是这一个被用于引导初始化序列以使其全部开始)。
当寄存器位置被写入时,引导控制器可基于其当前的编程重新启动。作为缺省,它可以是与由芯片复位处的引脚控制的引导相同的引导。如果可编程引导部分已被编程,那么引导可在通过软件如被编程的一样进行。这允许引导过程的许多s/w控制以及安全引导仿真。
存储器分区/寻址
图12示出示例存储器分区/寻址寄存器映射。图12表示256K字OTP存储器空间的示例存储器映射。这些寄存器在地址0x30000处开始。由于它们需要首先编程,因此,使得10位指针寄存器初始化到这些寄存器的高次地址位或0x300是有意义的。
如图所示,这些18个地址位可提供256K字存储器空间,128K程序存储在空间的前面一半以及剩余部分如图所示。对于MTP仿真部分使用10位指针可提供存储器的210或1024块,这里,各块包含128个16位字。(128字*1024块=128K字)。如果在各指针处使用附加的6个位的控制,那么它们可具有16位的长度,并且可在MTP表中存在用于512个条目的空间。
对于NR总线上的地址,可存在加载于“正常”地址空间中的10位指针寄存器。总线上的可用的8个位的地址现在被用作地址映射的剩余部分的偏移。每个“页”可以为256个字。如前面提到的那样将该指针初始化到0x300可对于映射的寄存器空间给出初始的扩展的寻址。
能够使需要的所有的寄存器在“正常”0x1Exx存储器空间中,在这种情况下,可能不需要该映射的扩展的“其它寄存器”。可通过使用0x1Dxx NR总线空间中的NR总线上的扩展映射访问扩展的空间。在完成这一点时,OTP寄存器应被移动以在扩展的地址0x30000处开始。
预计存储器为一次读取和写入32位的类型,并且,可通过总线控制器完成附加的地址翻译。寄存器接口也要被确定,并且映射仅是位置保持器。
IO禁用逻辑
IO禁用具有用于SPI的信号和用于所有其它的端口的一个信号。这支持仿真。当“仿真”位被设定时,并且从芯片外而不是OTP出现引导。一旦OTP引导被启用,SPI禁用切换IO禁用的剩余部分。
Rd/Wrt锁定控制
包括/支持DAP和PE_00_00控制。
NR总线接口
NR寄存器总线接口具有可用的8位地址总线。DMR将所有这些地址映射到0x1Exx空间。如果需要的话,在该空间中存在几个孔,并且存在从0x40到0xFF的整个映射,以用于扩展到用于可编程引导的引导控制器。需要可用于通过NR寄存器总线访问存储器组中的新存储器的256字(8位)的连续地址空间。要做到这一点,可以利用从0x1D00到0x1DFF的空间。该部分的1E到1D可向h/w发出存在OTP存储器交易的信号。
使用与来自新寄存器的10位存储器组地址联结的来自NR总线的8位地址,可存在能够根据需要访问256K字空间的18位存储器地址(参见存储器地址映射上的部分)。为了无论当前的存储器组指针值如何都提供访问,该存储器组寄存器可驻留于0x1Exx空间中。
命令
命令用于支持引导特征:NR、SB和DAP等。命令的类型包括:NR命令、SB命令和DAP命令。
安全性/锁定OTP
篡改检测和动作
篡改检测支持归零存储器和停止引导、操作等的动作。
OTP功率选项
如果OTP是没有功能的,并且仍在非安全引导模式中使用芯片,那么OTP部分可被关断。
安全引导仿真
通过使用标准引导模式仿真安全引导模式。这允许在将代码编程到非常有限的可重新编程OTP存储器并完成安全引导之前在开发系统上开发和调试整个程序。
硬件RNG支持
在硬件上支持的真正的随机数产生器(RNG)提供高的安全性级别。也提供密钥产生。
芯片上安全性障碍——创建和验证
禁用全扫描
配置寄存器(OTP)中的位控制芯片的全扫描功能,因此,它可在安全模式中被禁用。
顶部金属中的篡改信号
存在于在顶层金属中路由信号的芯片上的篡改引脚,其被破坏时会发出篡改的信号并禁用安全功能(芯片处于缺省的3100模式中),这意味着看到安全代码的仅有的方式是物理读取在OTP中的位。在存在时,其也可被设置为“归零”代码。
封装篡改信号
可编程的,因此,封装盖子的去除也发出篡改的信号,并且进行必要的禁用(参见其它的篡改信息)。
归零存储器
提供强制引导代码的特定片段一直运行使得在出现任何其它情况之前使所有的主芯片存储器归零的能力(使用多引导序列)。也可出于其它的目的使用该特征。
篡改处理
通过程序人员控制,作为OTP中的配置位的一部分。
完全禁用安全引导逻辑并且使芯片永久为非安全芯片;强制重新加载所有安全引导代码(将其置于串行总线上,因此会被检测和读取);运行归零代码以将所有动态存储器归零。
场可重新编程性
支持器件的在场重新编程,如果系统设计人员希望启用该功能的话。可通过讨论的认证技术控制这一点。
暂存器密钥存储
支持保护数据不受除了由认证的用户控制的安全处理器之外的任何的读取/写入访问的暂存器OTP区域。
页模式OTP访问
JTAG
JTAG可能不能被用于获得对于芯片上的禁用安全性。或者,JTAG可被完全禁用。
软件篡改信号
提供软件可向安全引导控制器发出“篡改”的信号,使得可以采取动作的方法。可单独地在可编程的动作上选择各篡改信号(不同的安全性级别,基于篡改类型的严重性)。
部分复位
在具有以及不具有安全性的情况下,支持芯片的部分复位。示例使用是象限可动态供电。
动态安全性障碍
以下的特征、工具提供对于动态安全性操作需要的支持的关注。为了澄清,提供被视为必要的说明。
动态障碍
用于允许在芯片运行时移动、去除、构建或者另外修改障碍的方法。这允许更多的OS类型操作。
受信任(安全)的处理器
与安全性分区修改类似,以阐述运行的处理器是受信任的并允许其指令在允许访问不受信任的处理器不能完成的事项的一些类型的“监管”模式中运行的方式标记运行的处理器的方法。许多这样做的方法,包括通过具有向标记其为受信任的PE(在程序控制下)发送安全令牌的能力的安全引导完成。
运行时间安全引导
提供如果检测(或仅处于s/w控制下)到一些类型的损害(篡改或其它)则安全引导代码可重新运行以重新确保芯片的该部分的安全的方式。这很可能需要与动态障碍大多相同的逻辑。
篡改可见代码
提供引导代码(内部和外部两者)可识别是否出现代码的变化的方法。它然后发出引导是否是完全w/o错误等的信号。
受信任的SB命令
为了将安全区域重新编程,一种方法是在受信任的/安全命令模式中使用串行总线。这允许实时编辑运行时间/动态重新配置的安全性设置。这仅旨在由受信任的处理器发出。DAP/SPI(外部)命令在本例子是不受信任的。
安全代码段
使代码段以某种方式被标记为阐释其只能在芯片的安全区域内的安全/受信任的处理器上执行的思想。
SB安全支持
支持多投放/多打开/广播类型功能以提供代码的更有效的归零的方法。可以使用串行总线。可一次对于写入打开所有存储器并且一次发送零。示例序列是:打开全部、向DM发送0的4K块、向IM发送0的2K块;关闭全部。这会花费约210微秒以500MHz出现。
引导的软件控制
这允许安全/受信任的处理器具有控制引导流动的能力。允许两个或更多个级别的引导过程,这里,出于允许基于极高级别的认证的场修改的目的支持各种级别的安全性。可提供多个加密/解密级别等。
引导JMP指令
允许引导控制器跳转到新的地址以继续加载。提高多/安全引导代码中的一些的效率。
其它的非易失性存储器(例如,FLASH)
丰富的潜在使用
安全性算法加速
在基本水平上提供附加的加速,这里,对于安全性算法的一些方面不会牺牲并行性。
代码确证
在代码加载(在硬件中)过程中支持处理的方法(检验和、散列算法或类似的一些事项)的方法,该方法可确证代码在引导加载过程中未被篡改或者没有出现错误。
串行总线强化
使得安全引导过程更安全的方法。例子是复制串行总线逻辑的多个部分,并导致出现正常编程开关的“负”版本,由此使功率印迹不清楚,从而使得更加难以从芯片外感测编程。它可在非安全应用中被关断以节省电力,并允许更容易地确证由特征提供的安全性。其它的例子包括加宽串行总线等。
示例性使用情景
第三方IP保护
需要提供机制,使得第三方知识产权(IP)应用可被开发并出售给使用HyperX硬件的系统开发人员,同时保护IP所有人的所有权和IP的机密性。对于这种系统的两种主要要求是,可能需要:由IP的购买者在系统软件开发中模拟IP的方法;和在仍保护访问时在认证的运行硬件系统中传输和安装IP的方法(例如,通过仅在运行时间被解密并且具有基于许可令牌的运行控制的加密二进制)。
在以下的段落中讨论使用前面概述的特征的三个潜在的情景。还可存在其它的潜在的模型。目的是硬件钩环和软件可编程性允许所有区域的创新。这三种情景的不同在于如何执行开发模拟。
基于硬件的协同模拟
对于该情景,IP被预先编程到HyperX芯片的非易失性存储器,或者以加密二进制形式被设置在文件中以被传输给系统/软件开发人员。
对于预先编程的情况,IP可引导到芯片的一部分中并确保其安全,使得它不能从芯片被读取。块的接口被扩展到HyperX IO端口,并使得可在加载受保护的IP之后通过可通过模拟器加载的附加的引导代码而由模拟器访问。模拟器现在在模拟中运行开发人员代码,同时通过板上的硬件接口对接对IP块的调用。这提供以IP的用户从不具有文件形式的二进制的复制的方式确保IP的安全。
对于第二种方法,IP以加密二进制形式被传输。“标准”解密引擎可被事先编程到HyperX中,并向IP用户提供密钥。可通过使用软件解密引擎和提供的密钥加载和解密IP。使用相同的方法以将接口扩展到芯片IP并对接到模拟器中。这需要Coherent Logix与IP提供者之间的更多的开发和协作,以开发标准或定制的解密引擎供使用。
该协同模拟情景提供通过使用受保护的IP开发的方式,除了对于在支持协同模拟的开发系统的硬件上的接口定义插座层以外,该方法对于现有的模拟环境需要非常少的改变。但是,这确实需要对所有模拟使用开发系统硬件。
对于两种方法,一旦完成系统开发,就在没有附加的协同模拟包装(wrapper)的情况下对于系统的生产使用与开发所使用的相同的IP二进制。这提供系统可起作用的极高的信心。
仅软件模拟
对于该情景,以与以上对于协同模拟版本描述的方式基本相同的方式传输IP以供生产。但是,对于开发过程中的模拟,提供加密的模拟二进制(可能仍能够使用相同的二进制)。模拟器在模拟过程中支持该IP的解密和保护。保护在模拟器被启用,就像在芯片中,以在一旦IP代码被解密和加载时防止在IP代码内的抛弃、分解、跟踪、断点等。解密的代码可能决不驻留于非安全区域中。
该方法提供在不使用开发系统硬件的情况下的模拟。
应用代码分布
在使用这些情景时,加密的二进制文件是用于IP的主要传输机制,并且,可存在将该加密的二进制图像链接到应用代码目标文件中同时保持IP的机密性和认证要求的方法。这些方法可能需要在相同的目标文件内支持来自多个售主的IP模块(如果一个IP模块基于另一IP模块,可能是嵌入的IP)。系统中的HyperX处理器的引导序列可如前面的部分描述的那样通过使用在模拟中使用的相同的密钥处理解密和认证过程。这些密钥可存储于在芯片上,如下面的部分描述的那样在DMR中。
安全引导
可能需要引导系统的方法,这里,引导流不能在HyperX的任何引脚上以非加密的形式的读取。通过可编程引导执行这一点。通过该能力,代码可在引导时间被加载,而芯片的引脚被完全禁用。一旦代码被加载,就可通过用提供的硬件钩环在其周围构建安全性障碍确保其安全。明码文本位流可能决不存在于器件的引脚上,并且,一旦在阵列中在其周围形成安全障碍时,不能被读出。可通过安全性障碍内的编程完全控制对于安全区域向里或者向外的访问。
对于一些使用情况,整个程序可能配合于芯片上的非易失性存储器内。在这是不足的情况下,可在引导时间加载简单的解密引擎。该引擎可与公共密钥和加密二进制一起使用,以通过较大的程序图像加载芯片。这提供用于安全引导的机制,这里,实际芯片编程驻留于芯片外,但仅以加密的形式。
为了进一步保护编程,提供可与可编程引导功能一起使用的篡改检测,以导致从存储器去除、通过新的引导重新保护受保护的代码,或者,在极端的情况下,简单地导致芯片变得完全没有功能。在系统的编程时间,通过非易失性寄存器位,这完全在系统编程人员的控制之下。
示例性安全引导(例如,与图11A和图11B对应)
芯片可被配置为通过可配置编程或安全引导仿真模式而用于安全引导。用于安全引导的数据路径可来自芯片外FLASH。
安全引导过程(使用认证和解密)如下:
1)引导控制器被配置为使用SPI以从FLASH加载激活代码(AC)。任选地,引导控制器可被配置为从电池支持的RAM加载AC。
2)该AC在ACI总线上被发送到PUF H/W,并在那里被用于重新产生安全密钥,该安全密钥通过KO总线被发送到AES/GCM,以供在解密和认证中使用。如果PUF未认证AC,那么引导会失败并且处理会中止。这被视为s/w篡改检测,并且,可以执行对于该篡改选择的动作。PUF是安全密钥材料的一个来源。还能够配置h/w,以使用已被存储于电池支持的SRAM或eFUSE阵列中的密钥而不是由使用AC的PUF提供的密钥。这些芯片上密钥也可以与来自PUF的密钥XOR,以用于安全密钥的又一版本。
3)引导流的开始跟随AC(如果使用的话)或者开始于在选择的引导存储的开始时,并且,引导控制器现在开始加载第一加密的和签署数据流段。来源可选择为芯片外FLASH或者芯片上来源。为了是安全的,控制器一次一个地加载段,解密并在DMR存储器缓冲器中存储它们,因此,它们在被认证之前不能被用于将器件存储器编程。
4)来自FLASH或电池支持的RAM的流以适当的块尺寸被直接发送到AES/GCM引擎,以用于解密和用于认证的散列产生。
5)AES引擎可解密在段中的各块,并且将其存储在当前的DMR存储器缓冲器中。为了防止段重新排序,各段中的第一命令可包含序列编号命令。作为前进到DMR缓冲器的替代,该命令被发送到控制,以确保所有段被依次加载。如果检测到次序颠倒的段,则引导会失败并且可能发出s/w篡改的信号。
6)AES/GCM引擎可并行重构块的序列的签名散列。当完成序列时,最终的散列与在引导段结束时提供的签名相比。
7)如果签名匹配,那么该段被认证,并且控制可设置DMR以将命令的该流复制到串行总线控制器(SBC),从而对器件进行编程。如果任何签名都不能匹配,那么流被视为不安全的,并且,芯片会停止引导过程,并且可能发出s/w篡改的信号。
8)当该段被发送时,另一段可从引导存储器来源被读取,如以上那样被处理并存储于双缓冲器的另一半中。这可在这些缓冲器之间来回继续,直到完成引导。该双缓冲方法允许仅通过第一缓冲器的处理的额外延时加上由讨论的逻辑在各段的处理中插入任何的代价,将引导流完全处理并加载到芯片上。
安全引导可支持器件的安全行为的编程和在器件上运行的应用的加载这二者。
数字权利管理(DMR)
数字权利管理在这里被用作任何类型的动态用户认证的各种类型,诸如密码、计量生物数据、智能卡、安全ID、可下载许可密钥等认证的类型。芯片的一部分可通过安全引导方法在引导时间加载和保护的认证代码。此外,可以使用芯片上的非易失性存储器以提供静态密钥存储。提供可通过用于非易失性存储的多程序仿真更新静态密钥的机构。在密钥加密密钥被设置在安全存储装置中并且其它的权利管理密钥以加密的形式被发送到芯片中以供后面的解密的情况下,多层认证也是可能的。这允许DMR密钥的大的芯片外存储。
可通过使用提供的方法的组合以加密的形式确保(例如,一直)HyperX与其它器件之间的数据移动的安全。这通过限制对重要的数据的明文文本访问使安全性最大化。
安全处理(红/黑)
从前面给出的情景,已经很清楚芯片的多个部分可“被隔开”并且保护其不受非认证的访问。通过使用这些区域中的一个或更多个,芯片可被分成数据可仅以加密的形式移动(在安全区域外面)或者在安全区域中以解密形式移动的部分,由此通过总体系统设计人员控制在单个芯片上提供黑区域处理和红区域处理。
对于安全区域的访问和/或去往或者来自该安全区域的数据移动可完全置于在该区域中运行的受信任的代码的控制之下。可在引导时间从芯片上非易失性存储器加载该代码并确保其安全,由此,即使对于HyperX的引脚访问未被确保安全,也使不使经受任何引脚窥探。
示例性系统
以下的图提供使用概括的特征的示例系统。
图13示出安全性要求的概要以及它们如何要被处理。
图14和图15是表示系统和系统的逻辑块的示例性框图。
图17示出操作中的示例系统应用。
结论
这里描述的信息安全性方案可完全是基于软件的,从而向设计人员/开发人员提供以下方面的完全的控制和定制:
1.(仅对于预期使用而言系统和数据的)可用性
2.(系统和数据的)完整性
3.(数据和系统信息的)机密性
4.(到个人层级的)责任性
5.(充分地满足其它四个目标的)保证性
基于此,HyperX处理器芯片和相关联的系统的安全性级别可被增强以远高于FIPS级别。
本发明的实施例
以下的带标号的段落描述以上描述的系统和方法的实施例。
1.一种用于禁用多处理器结构中的通信的方法,该方法包括:接收用于多处理器结构的配置,其中,多处理器结构包括多个处理器和多个通信元件,其中,多个通信元件中的每一个通信元件包括存储器,其中该配置规定禁用以下中的一个或更多个之间的通信路径:一个或更多个处理器和一个或更多个通信元件;一个或更多个处理器和一个或更多个其它的处理器;或一个或更多个通信元件和一个或更多个其它的通信元件;自动地在硬件中配置多处理器结构,以禁用由该配置规定的通信路径;操作多处理器结构,以执行软件应用,其中,多处理器结构根据该配置操作。
2.前面的段落中的任一个的方法,所述自动配置多处理器结构包括设定与一个或更多个处理器和/或一个或更多个通信元件对应的寄存器值,以禁用由配置规定的通信路径。
3.前面的段落中的任一个的方法,其中,在所述自动配置之后,禁用的通信路径不能通过软件被恢复。
4.前面的段落中的任一个的方法,其中,配置规定多处理器结构的第一部分与多处理器结构的第二部分之间的通信的禁用,其中,在操作过程中,第一部分与第二部分隔离。
5.前面的段落中的任一个的方法,其中,配置规定多处理器结构的第二部分对多处理器结构的第一部分的存储器访问的禁用,其中,在操作过程中,第二部分不能访问包括于第一部分中的存储器。
6.前面的段落中的任一个的方法,还包括:将认证的代码加载到多处理器结构中,其中,该配置从认证的代码被接收;从认证的代码接收第二配置;和基于第二配置执行所述自动配置。
7.前面的段落中的任一个的方法,其中,在多处理器结构的引导过程中自动执行所述接收。
8.前面的段落中的任一个的方法,其中,多个通信元件包括动态可配置通信元件,每个动态可配置通信元件包括多个通信端口、第一存储器和路由引擎。
9.前面的段落中的任一个的方法,其中,对于处理器中的每一个处理器,多个处理器端口被配置为用于与多个通信元件的第一子集耦合;其中,对于通信元件中的每一个通信元件,通信端口的第一子集被配置为用于与多个处理器的子集耦合,并且,通信端口的第二子集被配置为用于与多个通信元件的第二子集耦合。
10.前面的段落中的任一个的方法,其中,多个处理器和多个通信元件以散布的配置被耦合在一起。
存储可执行以执行以上的段落中的任一个的程序指令的存储器介质。
计算机程序被配置为执行以上的段落中的任一个。
11.一种系统,包括:多处理器结构,其中,多处理器结构包括多个处理器和多个通信元件,其中,多个通信元件中的每一个包括存储器、配置逻辑,其中,配置逻辑被配置为:接收用于多处理器结构的配置,其中,该配置规定禁用以下中的一个或更多个之间的通信路径:一个或更多个处理器和一个或更多个通信元件;一个或更多个处理器和一个或更多个其它的处理器;或一个或更多个通信元件和一个或更多个其它的通信元件;和在硬件中自动配置多处理器结构以禁用由该配置规定的通信路径,其中,在所述自动配置之后,禁用的通信路径不能通过软件被恢复,其中,在所述配置之后,多处理器结构被配置为执行软件应用,其中,多处理器结构根据该配置操作。
12.前面的段落中的任一个的系统,所述自动配置多处理器结构包括设定与一个或更多个处理器和/或一个或更多个通信元件对应的寄存器值,以禁用由配置规定的通信路径。
13.前面的段落中的任一个的系统,其中,在所述自动配置之后,禁用的通信路径不能通过软件被恢复。
14.前面的段落中的任一个的系统,其中,该配置规定多处理器结构的第一部分与多处理器结构的第二部分之间的通信的禁用,其中,在操作过程中,第一部分与第二部分隔离。
15.前面的段落中的任一个的系统,其中,该配置规定多处理器结构的第二部分对多处理器结构的第一部分的存储器访问的禁用,其中,在操作中,第二部分不能访问包括于第一部分中的存储器。
16.前面的段落中的任一个的系统,其中,配置逻辑被配置为:将认证的代码加载到多处理器结构中,其中,该配置由认证的代码规定;从认证的代码接收第二配置;和基于第二配置执行所述自动配置。
17.前面的段落中的任一个的系统,其中,在多处理器结构的引导过程中自动执行所述接收。
18.前面的段落中的任一个的系统,其中,各处理器包括至少一个算术逻辑单元、指令处理单元和多个处理器端口。
19.前面的段落中的任一个的系统,其中,各通信元件包括动态可配置通信元件,每个动态可配置通信元件包括多个通信端口、第一存储器和路由引擎。
20.前面的段落中的任一个的系统,其中,对于处理器中的每一个处理器,多个处理器端口被配置为用于与多个通信元件的第一子集耦合;其中,对于通信元件中的每一个通信元件,通信端口的第一子集被配置为用于与多个处理器的子集耦合,并且,通信端口的第二子集被配置为用于与多个通信元件的第二子集耦合。
虽然相当详细地描述了以上的实施例,但是,本领域技术人员在完全理解以上的公开之后可以想到各种变化和修改。以下的权利要求应被解释为包括所有这些变化和修改。
Claims (15)
1.一种用于禁用多处理器结构中的通信的方法,该方法包括:
接收用于所述多处理器结构的配置,其中,所述多处理器结构包括多个处理器和多个通信元件,其中,所述多个通信元件中的每一个通信元件包括存储器,其中所述配置规定禁用以下中的一个或更多个之间的通信路径:
一个或更多个处理器和一个或更多个通信元件;
一个或更多个处理器和一个或更多个其它的处理器;或
一个或更多个通信元件和一个或更多个其它的通信元件;
自动地在硬件中配置所述多处理器结构,以禁用由所述配置规定的通信路径;
操作所述多处理器结构,以执行软件应用,其中,所述多处理器结构根据所述配置操作。
2.根据权利要求1的方法,其中,所述自动配置所述多处理器结构包括设定与所述一个或更多个处理器和/或所述一个或更多个通信元件对应的寄存器值,以禁用由所述配置规定的通信路径。
3.根据前面的权利要求中的任一项的方法,其中,在所述自动配置之后,禁用的通信路径不能通过软件被恢复。
4.根据前面的权利要求中的任一项的方法,其中,所述配置规定所述多处理器结构的第一部分与所述多处理器结构的第二部分之间的通信的禁用,其中,在操作过程中,所述第一部分与所述第二部分隔离。
5.根据前面的权利要求中的任一项的方法,其中,所述配置规定所述多处理器结构的第二部分对所述多处理器结构的第一部分的存储器访问的禁用,其中,在操作过程中,所述第二部分不能访问包括于所述第一部分中的存储器。
6.根据权利要求1和权利要求3~5中的任一项的方法,还包括:
将认证的代码加载到所述多处理器结构中,其中,所述配置从所述认证的代码被接收;
从所述认证的代码接收第二配置;和
基于所述第二配置执行所述自动配置。
7.根据前面的权利要求中的任一项的方法,其中,在所述多处理器结构的引导过程中自动执行所述接收。
8.根据前面的权利要求中的任一项的方法,其中,所述多个通信元件包括动态可配置通信元件,每个动态可配置通信元件包括多个通信端口、第一存储器和路由引擎。
9.根据前面的权利要求中的任一项的方法,其中,对于所述处理器中的每一个处理器,多个处理器端口被配置为用于与所述多个通信元件的第一子集耦合;
其中,对于所述通信元件中的每一个通信元件,通信端口的第一子集被配置为用于与所述多个处理器的子集耦合,并且,通信端口的第二子集被配置为用于与所述多个通信元件的第二子集耦合。
10.根据前面的权利要求中的任一项的方法,其中,所述多个处理器和所述多个通信元件以散布的布置被耦合在一起。
11.一种被配置为实现权利要求1~10中的任一项的计算机程序。
12.一种系统,包括:
多处理器系统,其中,所述多处理器系统包括多个处理器和多个通信元件,其中所述多个通信元件中的每一个通信元件包括存储器,其中,所述多处理器结构被配置为执行权利要求1~7中的任一项。
13.根据权利要求12的系统,其中,各处理器包括至少一个算术逻辑单元、指令处理单元和多个处理器端口。
14.根据权利要求12和13的系统,其中,每个通信元件包括动态可配置通信元件,每个动态可配置通信元件包括多个通信端口、第一存储器和路由引擎。
15.根据权利要求12~14中的任一项的系统,其中,对于所述处理器中的每一个处理器,多个处理器端口被配置为用于与所述多个通信元件的第一子集耦合;
其中,对于所述通信元件中的每一个通信元件,通信端口的第一子集被配置为用于与所述多个处理器的子集耦合,并且,通信端口的第二子集被配置为用于与所述多个通信元件的第二子集耦合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610565613.9A CN106227693B (zh) | 2010-10-15 | 2011-10-14 | 多处理器系统中的通信禁用 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US39359410P | 2010-10-15 | 2010-10-15 | |
US61/393,594 | 2010-10-15 | ||
PCT/US2011/056438 WO2012051577A1 (en) | 2010-10-15 | 2011-10-14 | Disabling communication in a multiprocessor system |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610565613.9A Division CN106227693B (zh) | 2010-10-15 | 2011-10-14 | 多处理器系统中的通信禁用 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103154925A true CN103154925A (zh) | 2013-06-12 |
CN103154925B CN103154925B (zh) | 2016-08-24 |
Family
ID=44872628
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610565613.9A Active CN106227693B (zh) | 2010-10-15 | 2011-10-14 | 多处理器系统中的通信禁用 |
CN201180049630.2A Active CN103154925B (zh) | 2010-10-15 | 2011-10-14 | 多处理器系统中的通信禁用 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610565613.9A Active CN106227693B (zh) | 2010-10-15 | 2011-10-14 | 多处理器系统中的通信禁用 |
Country Status (5)
Country | Link |
---|---|
US (5) | US8880866B2 (zh) |
EP (2) | EP2628090B1 (zh) |
JP (1) | JP5815717B2 (zh) |
CN (2) | CN106227693B (zh) |
WO (1) | WO2012051577A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107615285A (zh) * | 2015-03-05 | 2018-01-19 | 美国亚德诺半导体公司 | 包括物理不可克隆功能和阈值加密的认证系统和装置 |
US10771267B2 (en) | 2014-05-05 | 2020-09-08 | Analog Devices, Inc. | Authentication system and device including physical unclonable function and threshold cryptography |
US10958452B2 (en) | 2017-06-06 | 2021-03-23 | Analog Devices, Inc. | System and device including reconfigurable physical unclonable functions and threshold cryptography |
Families Citing this family (96)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8989705B1 (en) | 2009-06-18 | 2015-03-24 | Sprint Communications Company L.P. | Secure placement of centralized media controller application in mobile access terminal |
US8782434B1 (en) | 2010-07-15 | 2014-07-15 | The Research Foundation For The State University Of New York | System and method for validating program execution at run-time |
US8782435B1 (en) | 2010-07-15 | 2014-07-15 | The Research Foundation For The State University Of New York | System and method for validating program execution at run-time using control flow signatures |
JP5815717B2 (ja) | 2010-10-15 | 2015-11-17 | コーヒレント・ロジックス・インコーポレーテッド | マルチプロセッサシステムにおける通信の無効化 |
DE102011081421A1 (de) * | 2011-08-23 | 2013-02-28 | Siemens Ag | System zur sicheren Übertragung von Daten und Verfahren |
US9027102B2 (en) | 2012-05-11 | 2015-05-05 | Sprint Communications Company L.P. | Web server bypass of backend process on near field communications and secure element chips |
US8862181B1 (en) | 2012-05-29 | 2014-10-14 | Sprint Communications Company L.P. | Electronic purchase transaction trust infrastructure |
US9282898B2 (en) | 2012-06-25 | 2016-03-15 | Sprint Communications Company L.P. | End-to-end trusted communications infrastructure |
US9066230B1 (en) | 2012-06-27 | 2015-06-23 | Sprint Communications Company L.P. | Trusted policy and charging enforcement function |
US8649770B1 (en) | 2012-07-02 | 2014-02-11 | Sprint Communications Company, L.P. | Extended trusted security zone radio modem |
US8667607B2 (en) | 2012-07-24 | 2014-03-04 | Sprint Communications Company L.P. | Trusted security zone access to peripheral devices |
US8863252B1 (en) | 2012-07-25 | 2014-10-14 | Sprint Communications Company L.P. | Trusted access to third party applications systems and methods |
US9183412B2 (en) | 2012-08-10 | 2015-11-10 | Sprint Communications Company L.P. | Systems and methods for provisioning and using multiple trusted security zones on an electronic device |
US9215180B1 (en) | 2012-08-25 | 2015-12-15 | Sprint Communications Company L.P. | File retrieval in real-time brokering of digital content |
US8954588B1 (en) | 2012-08-25 | 2015-02-10 | Sprint Communications Company L.P. | Reservations in real-time brokering of digital content delivery |
US9015068B1 (en) | 2012-08-25 | 2015-04-21 | Sprint Communications Company L.P. | Framework for real-time brokering of digital content delivery |
US9122873B2 (en) | 2012-09-14 | 2015-09-01 | The Research Foundation For The State University Of New York | Continuous run-time validation of program execution: a practical approach |
US9235732B2 (en) * | 2012-10-16 | 2016-01-12 | Truedata Systems, Inc. | Secure communication methods |
CN109240704B (zh) | 2012-11-06 | 2022-06-14 | 相干逻辑公司 | 用于设计重用的多处理器编程工具包 |
CN104813306B (zh) * | 2012-11-21 | 2017-07-04 | 相干逻辑公司 | 具有散布处理器dma‑fifo的处理系统 |
JP6317365B2 (ja) * | 2012-12-06 | 2018-04-25 | コーヒレント・ロジックス・インコーポレーテッド | 同期命令を含む処理システム |
WO2014093862A1 (en) | 2012-12-13 | 2014-06-19 | Coherent Logix, Incorporated | Reconfiguration of clock generation circuitry |
WO2014092968A1 (en) | 2012-12-13 | 2014-06-19 | Coherent Logix, Incorporated | Multiprocessor system with improved secondary interconnection network |
US9578664B1 (en) | 2013-02-07 | 2017-02-21 | Sprint Communications Company L.P. | Trusted signaling in 3GPP interfaces in a network function virtualization wireless communication system |
US9161227B1 (en) | 2013-02-07 | 2015-10-13 | Sprint Communications Company L.P. | Trusted signaling in long term evolution (LTE) 4G wireless communication |
US9104840B1 (en) | 2013-03-05 | 2015-08-11 | Sprint Communications Company L.P. | Trusted security zone watermark |
US9613208B1 (en) | 2013-03-13 | 2017-04-04 | Sprint Communications Company L.P. | Trusted security zone enhanced with trusted hardware drivers |
US8881977B1 (en) | 2013-03-13 | 2014-11-11 | Sprint Communications Company L.P. | Point-of-sale and automated teller machine transactions using trusted mobile access device |
US9049013B2 (en) | 2013-03-14 | 2015-06-02 | Sprint Communications Company L.P. | Trusted security zone containers for the protection and confidentiality of trusted service manager data |
US9049186B1 (en) | 2013-03-14 | 2015-06-02 | Sprint Communications Company L.P. | Trusted security zone re-provisioning and re-use capability for refurbished mobile devices |
US9191388B1 (en) | 2013-03-15 | 2015-11-17 | Sprint Communications Company L.P. | Trusted security zone communication addressing on an electronic device |
US9374363B1 (en) | 2013-03-15 | 2016-06-21 | Sprint Communications Company L.P. | Restricting access of a portable communication device to confidential data or applications via a remote network based on event triggers generated by the portable communication device |
US8984592B1 (en) | 2013-03-15 | 2015-03-17 | Sprint Communications Company L.P. | Enablement of a trusted security zone authentication for remote mobile device management systems and methods |
US9021585B1 (en) | 2013-03-15 | 2015-04-28 | Sprint Communications Company L.P. | JTAG fuse vulnerability determination and protection using a trusted execution environment |
US9324016B1 (en) | 2013-04-04 | 2016-04-26 | Sprint Communications Company L.P. | Digest of biographical information for an electronic device with static and dynamic portions |
US9454723B1 (en) | 2013-04-04 | 2016-09-27 | Sprint Communications Company L.P. | Radio frequency identity (RFID) chip electrically and communicatively coupled to motherboard of mobile communication device |
US9171243B1 (en) | 2013-04-04 | 2015-10-27 | Sprint Communications Company L.P. | System for managing a digest of biographical information stored in a radio frequency identity chip coupled to a mobile communication device |
US9838869B1 (en) | 2013-04-10 | 2017-12-05 | Sprint Communications Company L.P. | Delivering digital content to a mobile device via a digital rights clearing house |
US9443088B1 (en) | 2013-04-15 | 2016-09-13 | Sprint Communications Company L.P. | Protection for multimedia files pre-downloaded to a mobile device |
WO2014178854A1 (en) | 2013-04-30 | 2014-11-06 | Hewlett-Packard Development Company, L.P. | Memory network to route memory traffic and i/o traffic |
US9195575B2 (en) | 2013-05-17 | 2015-11-24 | Coherent Logix, Incorporated | Dynamic reconfiguration of applications on a multi-processor embedded system |
US9069952B1 (en) | 2013-05-20 | 2015-06-30 | Sprint Communications Company L.P. | Method for enabling hardware assisted operating system region for safe execution of untrusted code using trusted transitional memory |
US9560519B1 (en) | 2013-06-06 | 2017-01-31 | Sprint Communications Company L.P. | Mobile communication device profound identity brokering framework |
US9183606B1 (en) | 2013-07-10 | 2015-11-10 | Sprint Communications Company L.P. | Trusted processing location within a graphics processing unit |
US10761155B2 (en) * | 2013-07-16 | 2020-09-01 | Siemens Aktiengesellschaft | Hybrid averaging method for specific absorption rate supervision |
US9208339B1 (en) | 2013-08-12 | 2015-12-08 | Sprint Communications Company L.P. | Verifying Applications in Virtual Environments Using a Trusted Security Zone |
US9436844B2 (en) * | 2013-08-29 | 2016-09-06 | Microsoft Technology Licensing, Llc | Access enablement security circuit |
US9716708B2 (en) | 2013-09-13 | 2017-07-25 | Microsoft Technology Licensing, Llc | Security certificates for system-on-chip security |
US9185626B1 (en) | 2013-10-29 | 2015-11-10 | Sprint Communications Company L.P. | Secure peer-to-peer call forking facilitated by trusted 3rd party voice server provisioning |
US9191522B1 (en) | 2013-11-08 | 2015-11-17 | Sprint Communications Company L.P. | Billing varied service based on tier |
US9161325B1 (en) | 2013-11-20 | 2015-10-13 | Sprint Communications Company L.P. | Subscriber identity module virtualization |
US9118655B1 (en) | 2014-01-24 | 2015-08-25 | Sprint Communications Company L.P. | Trusted display and transmission of digital ticket documentation |
US9226145B1 (en) | 2014-03-28 | 2015-12-29 | Sprint Communications Company L.P. | Verification of mobile device integrity during activation |
US9230085B1 (en) | 2014-07-29 | 2016-01-05 | Sprint Communications Company L.P. | Network based temporary trust extension to a remote or mobile device enabled via specialized cloud services |
US9779232B1 (en) | 2015-01-14 | 2017-10-03 | Sprint Communications Company L.P. | Trusted code generation and verification to prevent fraud from maleficent external devices that capture data |
US9838868B1 (en) | 2015-01-26 | 2017-12-05 | Sprint Communications Company L.P. | Mated universal serial bus (USB) wireless dongles configured with destination addresses |
US9473945B1 (en) | 2015-04-07 | 2016-10-18 | Sprint Communications Company L.P. | Infrastructure for secure short message transmission |
US9819679B1 (en) | 2015-09-14 | 2017-11-14 | Sprint Communications Company L.P. | Hardware assisted provenance proof of named data networking associated to device data, addresses, services, and servers |
US10044514B1 (en) * | 2015-09-25 | 2018-08-07 | Xilinx, Inc. | Secure external key storage for programmable ICS |
US10282719B1 (en) | 2015-11-12 | 2019-05-07 | Sprint Communications Company L.P. | Secure and trusted device-based billing and charging process using privilege for network proxy authentication and audit |
US9817992B1 (en) | 2015-11-20 | 2017-11-14 | Sprint Communications Company Lp. | System and method for secure USIM wireless network access |
EP3381128B1 (en) | 2015-11-24 | 2020-01-01 | Coherent Logix, Incorporated | Memory management and path sorting in a polar code successive cancellation list decoder |
JP6933648B2 (ja) | 2015-12-28 | 2021-09-08 | コーヒレント・ロジックス・インコーポレーテッド | Fecの符号化および復号を加速するプロセッサ命令 |
US10586048B2 (en) * | 2016-06-23 | 2020-03-10 | Vmware, Inc. | Efficient reboot of an operating system |
US10534935B2 (en) * | 2016-07-01 | 2020-01-14 | Intel Corporation | Migration of trusted security attributes to a security engine co-processor |
US11797994B2 (en) * | 2016-07-15 | 2023-10-24 | Maxim Integrated Products, Inc. | Systems and methods for a secure payment terminal without batteries |
US10700968B2 (en) * | 2016-10-19 | 2020-06-30 | Rex Computing, Inc. | Optimized function assignment in a multi-core processor |
US10355975B2 (en) | 2016-10-19 | 2019-07-16 | Rex Computing, Inc. | Latency guaranteed network on chip |
DE102016120768A1 (de) * | 2016-10-31 | 2018-05-03 | HTV Cyperion GmbH | Serversystemanordnung und Verfahren zum Betrieb einer Serversystemanordnung |
DE102016120767A1 (de) * | 2016-10-31 | 2018-05-03 | HTV Cyperion GmbH | Computersystemanordnung, Verfahren zum Betrieb einer Computersystemanordnung und Verfahren zur Übertragung von Daten bei einer Computersystemanordnung |
US10699189B2 (en) | 2017-02-23 | 2020-06-30 | Cerebras Systems Inc. | Accelerated deep learning |
EP3376482B1 (en) * | 2017-03-17 | 2022-06-22 | Wincor Nixdorf International GmbH | Document of value processing device and method for operating a document of value processing device |
WO2018193370A1 (en) | 2017-04-17 | 2018-10-25 | Cerebras Systems Inc. | Task activating for accelerated deep learning |
US11488004B2 (en) | 2017-04-17 | 2022-11-01 | Cerebras Systems Inc. | Neuron smearing for accelerated deep learning |
US10614357B2 (en) | 2017-04-17 | 2020-04-07 | Cerebras Systems Inc. | Dataflow triggered tasks for accelerated deep learning |
US10499249B1 (en) | 2017-07-11 | 2019-12-03 | Sprint Communications Company L.P. | Data link layer trust signaling in communication network |
KR20200052277A (ko) | 2017-08-03 | 2020-05-14 | 넥스트 실리콘 리미티드 | 설정가능한 하드웨어 런타임 최적화 |
US10817344B2 (en) | 2017-09-13 | 2020-10-27 | Next Silicon Ltd | Directed and interconnected grid dataflow architecture |
WO2019090032A1 (en) | 2017-11-03 | 2019-05-09 | Coherent Logix, Inc. | Memory network processor |
DE102017220764A1 (de) * | 2017-11-21 | 2019-05-23 | Audi Ag | Ein-Chip-System für ein Fahrzeug |
US10873754B2 (en) | 2017-12-12 | 2020-12-22 | Coherent Logix, Incorporated | Low latency video codec and transmission with parallel processing |
US10706179B2 (en) * | 2018-01-10 | 2020-07-07 | General Electric Company | Secure provisioning of secrets into MPSoC devices using untrusted third-party systems |
US10755201B2 (en) | 2018-02-14 | 2020-08-25 | Lucid Circuit, Inc. | Systems and methods for data collection and analysis at the edge |
US11245520B2 (en) | 2018-02-14 | 2022-02-08 | Lucid Circuit, Inc. | Systems and methods for generating identifying information based on semiconductor manufacturing process variations |
AU2019287432A1 (en) * | 2018-06-11 | 2021-01-07 | Lucid Circuit, Inc. | Systems and methods for autonomous hardware compute resiliency |
WO2020044152A1 (en) | 2018-08-28 | 2020-03-05 | Cerebras Systems Inc. | Scaled compute fabric for accelerated deep learning |
WO2020044208A1 (en) | 2018-08-29 | 2020-03-05 | Cerebras Systems Inc. | Isa enhancements for accelerated deep learning |
US11328208B2 (en) | 2018-08-29 | 2022-05-10 | Cerebras Systems Inc. | Processor element redundancy for accelerated deep learning |
WO2020163287A1 (en) | 2019-02-04 | 2020-08-13 | Coherent Logix, Inc. | A comprehensive system design to address the needs for virtual segmentation of the coaxial cable plant |
US10839121B1 (en) * | 2019-04-30 | 2020-11-17 | Xilinx, Inc. | Data processing engine (DPE) array detailed mapping |
US11456855B2 (en) * | 2019-10-17 | 2022-09-27 | Arm Limited | Obfuscating data at-transit |
US11803643B2 (en) * | 2020-02-07 | 2023-10-31 | Intel Corporation | Boot code load system |
US11269526B2 (en) | 2020-04-23 | 2022-03-08 | Next Silicon Ltd | Interconnected memory grid with bypassable units |
US20220100504A1 (en) * | 2020-09-25 | 2022-03-31 | Advanced Micro Devices, Inc. | Shared data fabric processing client reset system and method |
CN112306782B (zh) * | 2020-11-24 | 2022-04-26 | 中国人民解放军军事科学院国防科技创新研究院 | 面向调测试的操作系统内核引导与加载硬件及方法 |
US20230078058A1 (en) * | 2021-09-10 | 2023-03-16 | Ampere Computing Llc | Computing systems employing a secure boot processing system that disallows inbound access when performing immutable boot-up tasks for enhanced security, and related methods |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040103265A1 (en) * | 2002-10-16 | 2004-05-27 | Akya Limited | Reconfigurable integrated circuit |
US20040117519A1 (en) * | 2001-05-08 | 2004-06-17 | Smith Winthrop W. | Autonomous signal processing resource for selective series processing of data in transit on communications paths in multi-processor arrangements |
CN101055532A (zh) * | 2006-04-13 | 2007-10-17 | 国际商业机器公司 | 对并行计算机执行全局收集操作的方法及其并行计算机 |
US7415594B2 (en) * | 2002-06-26 | 2008-08-19 | Coherent Logix, Incorporated | Processing system with interspersed stall propagating processors and communication elements |
Family Cites Families (69)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5459846A (en) | 1988-12-02 | 1995-10-17 | Hyatt; Gilbert P. | Computer architecture system having an imporved memory |
US4493048A (en) | 1982-02-26 | 1985-01-08 | Carnegie-Mellon University | Systolic array apparatuses for matrix computations |
US4873630A (en) | 1985-07-31 | 1989-10-10 | Unisys Corporation | Scientific processor to support a host processor referencing common memory |
US4945479A (en) | 1985-07-31 | 1990-07-31 | Unisys Corporation | Tightly coupled scientific processing system |
US4739476A (en) | 1985-08-01 | 1988-04-19 | General Electric Company | Local interconnection scheme for parallel processing architectures |
US4720780A (en) | 1985-09-17 | 1988-01-19 | The Johns Hopkins University | Memory-linked wavefront array processor |
US4807183A (en) | 1985-09-27 | 1989-02-21 | Carnegie-Mellon University | Programmable interconnection chip for computer system functional modules |
US4933836A (en) | 1986-10-29 | 1990-06-12 | United Technologies Corporation | n-Dimensional modular multiprocessor lattice architecture |
DE3750839T2 (de) | 1986-10-29 | 1995-05-04 | United Technologies Corp | Modulare Multiprozessor-N-Dimensionsgitterarchitektur. |
US5963746A (en) | 1990-11-13 | 1999-10-05 | International Business Machines Corporation | Fully distributed processing memory element |
US5630162A (en) | 1990-11-13 | 1997-05-13 | International Business Machines Corporation | Array processor dotted communication network based on H-DOTs |
US5689719A (en) | 1991-06-28 | 1997-11-18 | Sanyo Electric O., Ltd. | Parallel computer system including processing elements |
JPH05257709A (ja) | 1992-03-16 | 1993-10-08 | Hitachi Ltd | 並列化判別方法およびそれを用いた並列化支援方法 |
JP2642039B2 (ja) | 1992-05-22 | 1997-08-20 | インターナショナル・ビジネス・マシーンズ・コーポレイション | アレイ・プロセッサ |
GB9305263D0 (en) | 1993-03-15 | 1993-05-05 | Univ Westminster | Parrallel computation |
US5634043A (en) | 1994-08-25 | 1997-05-27 | Intel Corporation | Microprocessor point-to-point communication |
US5903466A (en) | 1995-12-29 | 1999-05-11 | Synopsys, Inc. | Constraint driven insertion of scan logic for implementing design for test within an integrated circuit design |
US5944779A (en) | 1996-07-02 | 1999-08-31 | Compbionics, Inc. | Cluster of workstations for solving compute-intensive applications by exchanging interim computation results using a two phase communication protocol |
US5966534A (en) | 1997-06-27 | 1999-10-12 | Cooke; Laurence H. | Method for compiling high level programming languages into an integrated processor with reconfigurable logic |
US6226776B1 (en) | 1997-09-16 | 2001-05-01 | Synetry Corporation | System for converting hardware designs in high-level programming language to hardware implementations |
US6145117A (en) | 1998-01-30 | 2000-11-07 | Tera Systems Incorporated | Creating optimized physical implementations from high-level descriptions of electronic design using placement based information |
US6106575A (en) | 1998-05-13 | 2000-08-22 | Microsoft Corporation | Nested parallel language preprocessor for converting parallel language programs into sequential code |
JPH11353288A (ja) | 1998-06-04 | 1999-12-24 | Toshiba Corp | 並列計算機及びメモリ装置 |
US6433802B1 (en) | 1998-12-29 | 2002-08-13 | Ncr Corporation | Parallel programming development environment |
US6466898B1 (en) | 1999-01-12 | 2002-10-15 | Terence Chan | Multithreaded, mixed hardware description languages logic simulation on engineering workstations |
US20020138244A1 (en) | 1999-09-30 | 2002-09-26 | Meyer Steven J. | Simulator independent object code HDL simulation using PLI |
US20010042138A1 (en) | 1999-12-23 | 2001-11-15 | Reinhard Buendgen | Method and system for parallel and procedural computing |
US6578133B1 (en) | 2000-02-24 | 2003-06-10 | Stanley M. Hyduke | MIMD array of single bit processors for processing logic equations in strict sequential order |
US6766437B1 (en) | 2000-02-28 | 2004-07-20 | International Business Machines Corporation | Composite uniprocessor |
US6725317B1 (en) * | 2000-04-29 | 2004-04-20 | Hewlett-Packard Development Company, L.P. | System and method for managing a computer system having a plurality of partitions |
DE60237433D1 (de) | 2001-02-24 | 2010-10-07 | Ibm | Neuartiger massivparalleler supercomputer |
US6968447B1 (en) | 2001-04-13 | 2005-11-22 | The United States Of America As Represented By The Secretary Of The Navy | System and method for data forwarding in a programmable multiple network processor environment |
US7130457B2 (en) | 2001-07-17 | 2006-10-31 | Accuimage Diagnostics Corp. | Systems and graphical user interface for analyzing body images |
US8412915B2 (en) * | 2001-11-30 | 2013-04-02 | Altera Corporation | Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements |
JP4322119B2 (ja) | 2001-12-14 | 2009-08-26 | エヌエックスピー ビー ヴィ | データ処理システム |
US7206732B2 (en) | 2002-04-04 | 2007-04-17 | International Business Machines Corporation | C-API instrumentation for HDL models |
GB2394389B (en) | 2002-10-15 | 2005-05-18 | Toshiba Res Europ Ltd | Equalisation apparatus and methods |
US7000092B2 (en) | 2002-12-12 | 2006-02-14 | Lsi Logic Corporation | Heterogeneous multi-processor reference design |
JP3923920B2 (ja) | 2003-03-31 | 2007-06-06 | 株式会社東芝 | 集積回路の設計システム及び集積回路の設計方法 |
EP1625489A2 (en) * | 2003-04-21 | 2006-02-15 | Netcell Corp. | Disk array controller with reconfigurable data path |
US6981232B1 (en) | 2003-05-23 | 2005-12-27 | Xilinx, Inc. | Method and system for integrating a program and a processor into an application specific processor |
US7577727B2 (en) * | 2003-06-27 | 2009-08-18 | Newisys, Inc. | Dynamic multiple cluster system reconfiguration |
US7353362B2 (en) | 2003-07-25 | 2008-04-01 | International Business Machines Corporation | Multiprocessor subsystem in SoC with bridge between processor clusters interconnetion and SoC system bus |
GB2408898B (en) | 2003-12-02 | 2006-08-16 | Toshiba Res Europ Ltd | Improved communications apparatus and methods |
CN100543753C (zh) | 2004-06-30 | 2009-09-23 | 相干逻辑公司 | 硬件描述语言(hdl)程序的执行 |
JP4594666B2 (ja) * | 2004-07-12 | 2010-12-08 | 富士通株式会社 | 再構成可能な演算装置 |
US7814462B2 (en) | 2004-10-29 | 2010-10-12 | Massachusetts Institute Of Technology | Methods and apparatus for parallel execution of a process |
AU2005302145A1 (en) | 2004-10-29 | 2006-05-11 | Interactive Supercomputing, Inc. | Methods and apparatus for parallel execution of a process |
TW200617703A (en) * | 2004-11-30 | 2006-06-01 | Tokyo Electron Ltd | Dynamically reconfigurable processor |
WO2006082985A2 (en) * | 2005-02-07 | 2006-08-10 | Sony Computer Entertainment Inc. | Methods and apparatus for providing a secure booting sequence in a processor |
US7437500B2 (en) | 2005-08-05 | 2008-10-14 | Lsi Corporation | Configurable high-speed memory interface subsystem |
EP1783604A3 (en) | 2005-11-07 | 2007-10-03 | Slawomir Adam Janczewski | Object-oriented, parallel language, method of programming and multi-processor computer |
US7486111B2 (en) * | 2006-03-08 | 2009-02-03 | Tier Logic, Inc. | Programmable logic devices comprising time multiplexed programmable interconnect |
DE602007006467D1 (de) | 2006-03-27 | 2010-06-24 | Coherent Logix Inc | Programmierung eines multiprozessorsystems |
JP4878487B2 (ja) * | 2006-03-30 | 2012-02-15 | キヤノン株式会社 | 情報配信装置、情報配信システム、情報処理方法、およびプログラム |
US7487229B2 (en) | 2006-03-30 | 2009-02-03 | Intel Corporation | Methods and apparatus to synchronize local times at nodes in a computer network |
US7761817B2 (en) | 2006-05-22 | 2010-07-20 | Coherent Logix, Incorporated | Designing an ASIC based on execution of a software program on a processing system |
US8099583B2 (en) * | 2006-08-23 | 2012-01-17 | Axis Semiconductor, Inc. | Method of and apparatus and architecture for real time signal processing by switch-controlled programmable processor configuring and flexible pipeline and parallel processing |
US7752385B2 (en) * | 2006-09-07 | 2010-07-06 | International Business Machines Corporation | Flexible disk storage enclosure |
US20080062634A1 (en) * | 2006-09-07 | 2008-03-13 | International Business Machines Corporation | logical partitioning of disk storage enclosure |
US8522309B2 (en) | 2007-01-22 | 2013-08-27 | Simon Yoffe | Security switch |
JP2010532588A (ja) | 2007-01-22 | 2010-10-07 | シモン ヨフェ | セキュリティ・スイッチ |
US8898653B2 (en) * | 2007-06-27 | 2014-11-25 | International Business Machines Corporation | Non-disruptive code update of a single processor in a multi-processor computing system |
KR20090008519A (ko) * | 2007-07-18 | 2009-01-22 | 삼성전자주식회사 | 공유 레지스터를 갖는 멀티패쓰 억세스블 반도체 메모리장치 및 그에 따른 공유 레지스터 운영방법 |
CN102804609B (zh) | 2009-06-17 | 2015-04-01 | 相干逻辑公司 | 基于格式结构方法的并行执行 |
US8370605B2 (en) * | 2009-11-11 | 2013-02-05 | Sunman Engineering, Inc. | Computer architecture for a mobile communication platform |
US9013991B2 (en) * | 2009-12-21 | 2015-04-21 | Empire Technology Development Llc | Multicore processor including two or more collision domain networks |
US8930713B2 (en) * | 2010-03-10 | 2015-01-06 | Dell Products L.P. | System and method for general purpose encryption of data |
JP5815717B2 (ja) | 2010-10-15 | 2015-11-17 | コーヒレント・ロジックス・インコーポレーテッド | マルチプロセッサシステムにおける通信の無効化 |
-
2011
- 2011-10-14 JP JP2013534050A patent/JP5815717B2/ja active Active
- 2011-10-14 EP EP11776050.4A patent/EP2628090B1/en active Active
- 2011-10-14 US US13/274,138 patent/US8880866B2/en active Active
- 2011-10-14 WO PCT/US2011/056438 patent/WO2012051577A1/en active Application Filing
- 2011-10-14 EP EP18168964.7A patent/EP3432152B1/en active Active
- 2011-10-14 CN CN201610565613.9A patent/CN106227693B/zh active Active
- 2011-10-14 CN CN201180049630.2A patent/CN103154925B/zh active Active
-
2014
- 2014-10-02 US US14/504,960 patent/US9424441B2/en active Active
-
2016
- 2016-04-14 US US15/099,275 patent/US10007806B2/en active Active
-
2018
- 2018-06-04 US US15/996,709 patent/US10685143B2/en active Active
-
2020
- 2020-06-10 US US16/897,564 patent/US20200302090A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040117519A1 (en) * | 2001-05-08 | 2004-06-17 | Smith Winthrop W. | Autonomous signal processing resource for selective series processing of data in transit on communications paths in multi-processor arrangements |
US7415594B2 (en) * | 2002-06-26 | 2008-08-19 | Coherent Logix, Incorporated | Processing system with interspersed stall propagating processors and communication elements |
US20040103265A1 (en) * | 2002-10-16 | 2004-05-27 | Akya Limited | Reconfigurable integrated circuit |
CN101055532A (zh) * | 2006-04-13 | 2007-10-17 | 国际商业机器公司 | 对并行计算机执行全局收集操作的方法及其并行计算机 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10771267B2 (en) | 2014-05-05 | 2020-09-08 | Analog Devices, Inc. | Authentication system and device including physical unclonable function and threshold cryptography |
US10931467B2 (en) | 2014-05-05 | 2021-02-23 | Analog Devices, Inc. | Authentication system and device including physical unclonable function and threshold cryptography |
CN107615285A (zh) * | 2015-03-05 | 2018-01-19 | 美国亚德诺半导体公司 | 包括物理不可克隆功能和阈值加密的认证系统和装置 |
CN107615285B (zh) * | 2015-03-05 | 2020-08-11 | 美国亚德诺半导体公司 | 包括物理不可克隆功能和阈值加密的认证系统和装置 |
US10958452B2 (en) | 2017-06-06 | 2021-03-23 | Analog Devices, Inc. | System and device including reconfigurable physical unclonable functions and threshold cryptography |
Also Published As
Publication number | Publication date |
---|---|
EP3432152A1 (en) | 2019-01-23 |
US20160232357A1 (en) | 2016-08-11 |
JP2013543183A (ja) | 2013-11-28 |
WO2012051577A1 (en) | 2012-04-19 |
US10007806B2 (en) | 2018-06-26 |
EP3432152B1 (en) | 2020-03-18 |
US20200302090A1 (en) | 2020-09-24 |
US8880866B2 (en) | 2014-11-04 |
US20150026451A1 (en) | 2015-01-22 |
US20120137119A1 (en) | 2012-05-31 |
EP2628090B1 (en) | 2018-05-30 |
CN106227693A (zh) | 2016-12-14 |
US10685143B2 (en) | 2020-06-16 |
CN103154925B (zh) | 2016-08-24 |
US20180276416A1 (en) | 2018-09-27 |
JP5815717B2 (ja) | 2015-11-17 |
CN106227693B (zh) | 2019-06-04 |
US9424441B2 (en) | 2016-08-23 |
EP2628090A1 (en) | 2013-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103154925A (zh) | 多处理器系统中的通信禁用 | |
JP6484255B2 (ja) | 信頼実行環境を含むホストのアテステーション | |
CN103748594B (zh) | 针对arm*trustzonetm实现的基于固件的可信平台模块 | |
CN101356536B (zh) | 移动安全系统及方法 | |
CN103221961B (zh) | 包括用于保护多用户敏感代码和数据的架构的方法和装置 | |
CN101176100B (zh) | 提供基于软件的安全协处理器的方法和装置 | |
KR20120099472A (ko) | 보안 애플리케이션 실행을 제공하는 방법 및 장치 | |
CN106911814A (zh) | 大规模数据分布式存储方法 | |
Bloom et al. | FPGA SoC architecture and runtime to prevent hardware Trojans from leaking secrets | |
Russinovich et al. | Toward confidential cloud computing: Extending hardware-enforced cryptographic protection to data while in use | |
Shimizu et al. | Cell broadband engine processor vault security architecture | |
Khan et al. | Utilizing and extending trusted execution environment in heterogeneous SoCs for a pay-per-device IP licensing scheme | |
Gross et al. | Enhancing the Security of FPGA-SoCs via the Usage of ARM TrustZone and a Hybrid-TPM | |
Donnini | Integration of the DICE specification into the Keystone framework | |
Irza et al. | A third generation many-core processor for secure embedded computing systems | |
Coughlin | Enabling User Space Secure Hardware | |
Gu et al. | Point/counterpoint | |
Gazidedja | HW-SW architectures for security and data protection at the edge | |
Giannetsos et al. | D3. 1: ASSURED ATTESTATION MODEL AND SPECIFICATION | |
Quaresma | TrustZone Based Attestation in Secure Runtime Verification for Embedded Systems | |
Sinha | Secure computing using certified software and trusted hardware | |
Badrignans et al. | Embedded systems security for FPGA | |
Holoubková | Rešerše a ukázka zabezpečení platformy (TPM) | |
Kepa et al. | SeReCon: A trusted environment for SoPC design | |
Ye et al. | Protecting Mobile Codes Using the Decentralized Label Model |
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 |