CN112583582A - 用于可配置集成电路管芯的部分重新配置的安全架构 - Google Patents
用于可配置集成电路管芯的部分重新配置的安全架构 Download PDFInfo
- Publication number
- CN112583582A CN112583582A CN202010582863.XA CN202010582863A CN112583582A CN 112583582 A CN112583582 A CN 112583582A CN 202010582863 A CN202010582863 A CN 202010582863A CN 112583582 A CN112583582 A CN 112583582A
- Authority
- CN
- China
- Prior art keywords
- bitstream
- configuration manager
- trusted
- secure processor
- configurable
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 claims abstract description 124
- 238000000034 method Methods 0.000 claims abstract description 73
- 239000004744 fabric Substances 0.000 claims abstract description 54
- 230000003068 static effect Effects 0.000 claims abstract description 26
- 230000008569 process Effects 0.000 claims abstract description 15
- 238000004891 communication Methods 0.000 claims description 104
- 238000012545 processing Methods 0.000 claims description 22
- 238000005192 partition Methods 0.000 claims description 13
- 230000006870 function Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 6
- 230000002776 aggregation Effects 0.000 description 5
- 238000004220 aggregation Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000004088 simulation Methods 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 230000000007 visual effect Effects 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
- 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/76—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 application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
-
- 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
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2149—Restricted operating environment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/60—Digital content management, e.g. content distribution
- H04L2209/603—Digital right managament [DRM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
- Advance Control (AREA)
Abstract
PCIe卡包括FPGA和与FPGA分立的存储器。存储器可由FPGA访问而不可由卡上的其他器件访问。FPGA的核心结构配置有安全处理器,所述安全处理器将通过FPGA加载到存储器中的比特流证明为可信或不可信,以限制对来自与不可信比特流相关联的用户电路的数据的未授权访问。当请求比特流证明时,安全处理器被加载到FPGA中,并且在安全处理器处理比特流以确定比特流可信还是不可信之后,允许重写安全处理器。允许重写安全处理器允许用于用户电路的核心结构的高百分比使用,并且限制在核心结构中包括不经常使用的静态电路。
Description
技术领域
本公开涉及用于可配置集成电路管芯的比特流安全电路。更具体地,本公开涉及在可配置集成电路管芯的核心结构中配置的管理安全加速器电路,所述电路用于验证被引入到管芯中以用于核心结构的部分重新配置的比特流。
背景技术
可配置集成电路管芯是可配置的,以实施多种电路器件。可配置集成电路管芯可以在现场中(诸如在数据中心中)被配置成实施各种电路器件。不同的用户通常希望数据中心提供用于用户的特定目的的功能。因此,用户提供用于配置可配置集成电路管芯的比特流,使得管芯实施用户所需的功能。为了通过禁止未授权的访问来提供这种管芯的增强的安全性,由管芯接收的比特流可以被证明为从受信来源传输。在没有这样的证明的情况下,可配置集成电路管芯可能容易受到数据窃取或其他篡改的影响。增强的密码功能或哈希功能通常有助于比特流验证。执行密码功能或哈希功能并且被配置到可配置集成电路管芯的核心结构的静态区中的安全处理器是相对大的。将这种大的安全处理器保持在核心结构的静态区中致使核心结构不可用于用户的电路。
因此,当安全处理器用于验证比特流时,存在提供安全处理器的动力,但是在其他情况下当不执行比特流验证时,使由安全处理器使用的空间可用于用户电路。
附图说明
图1示出了在实施例中的包括诸如FPGA的可配置IC管芯的主机。
图2是在实施例中的用于验证用户比特流的方法的流程图。
图3示出了在实施例中的包括诸如FPGA的可配置IC管芯的主机。
图4是在实施例中的用于验证用户比特流的方法的流程图。
图5是在实施例中的用于验证比特流的方法的流程图。
图6示出了在实施例中的数据系统。
图7示出了在实施例中的数据系统。
具体实施方式
常常被分立封装并且作为系统级封装(SiP)器件的可配置集成电路(IC)管芯继续在IC市场中推动发展。电路仿真市场、ASIC原型设计市场和数据中心市场是由可配置IC管芯推动的几个发展中的IC市场。针对电路仿真市场的可配置IC管芯常常包括数个被封装为SiP的可配置管芯,以促进几乎无限数量的仿真电路,其中单个可配置IC管芯可能无法提供用于实施仿真电路的足够的可编程结构。针对ASIC原型设计市场的可配置IC管芯常常包括若干被封装为SiP的可配置IC管芯,以实施各种ASIC。针对数据中心市场的可配置IC管芯常常被分立地封装或封装为SiP,以促进数据中心中的ASIC功能、数据中心中的加速,以添加处理能力,以添加网络和虚拟网络能力,以添加非易失性存储器快速能力或其他能力。
针对这些市场和其他市场的可配置IC管芯可以包括现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、复杂可编程逻辑器件(CPLD)、可编程逻辑阵列(PLA)、可配置逻辑阵列(CLA)、存储器、传递管芯和其他IC。可配置IC管芯通常包括可以被配置成实施各种电路的若干可配置逻辑块。逻辑块通过可配置互连结构互连,所述可配置互连结构可以被配置成以几乎任何期望的配置来互连逻辑块,以提供几乎任何期望的电路。
可编程加速卡(例如外围部件互连快速(PCIe)可编程加速卡)已经在工业中使用了一段时间,并且常常用于数据中心以将处理能力添加到数据中心。数据中心中的可编程加速卡提供可重新配置成满足各种用户的各种处理需求的处理能力。
数据中心提供商和数据中心用户希望保护他们的数据和知识产权(IP)块,以便数据和IP块不能被未授权的用户访问。为了满足数据中心提供商和用户的安全需求,可编程加速卡可以遵循增强的安全标准。数据中心提供商和用户的安全需求包括比特流完整性、比特流验证、保护IP块的加密、或这些安全技术的任何组合,以提供加载到可配置IC管芯上的比特流来自受信来源的情况。
包括在可编程加速卡中的可配置IC管芯的核心结构常常被划分为静态区和部分区。静态区通常由数据中心提供商或可配置IC管芯制造商控制,并且通常不可由诸如客户用户的其他用户访问。部分区经由用户电路可由用户访问和控制。该架构有时被称为壳架构。
为了向用户提供可配置IC管芯核心的核心结构的部分区的最大使用,可以轻微地使用核心结构的静态区。然而,为了对可配置IC管芯比特流执行验证或加密,核心结构的静态区可以被配置有一个或多个的安全处理器(即,增强的密码电路),所述安全处理器提供促进安全保证的加密功能、哈希功能或两者。考虑到例如在初始比特流加载期间相对很少使用这种电路,可以认为安全处理器太大而不能保持在可配置IC管芯的核心结构的静态区中。
图1示出了在实施例中的包括可配置IC管芯40(例如,FPGA)的主机5。主机5可以包括一个或多个处理器核心10、存储器15、存储器20、网络接口控制器(NIC)25、总线系统30(例如,PCIe总线)、PCIe卡插槽、支持PCIe总线的PCIe电路、以及其他部件。一个或多个处理器核心可以包括中心处理单元(CPU)、微处理器、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、视觉处理单元(VPU)、图像阵列处理器(SIMD)、神经网络处理器、人工智能处理器、密码加速器,仅举几个例子。
存储器15可以存储主机操作系统16、其他主机系统软件或两者。存储器15和20可以包括一种或多种类型的存储器,例如RAM、FLASH、盘存储器(例如,磁存储器、光存储器或其他)、其他类型的存储器或这些存储器类型的任意组合。
主机5可以是聚合服务器或分解服务器。聚合服务器可以在单个外罩中、在机架的单个托架上(例如,在数据中心中)、在单个插入式卡(例如,单个PCIe卡)上、在单个主板上、或可以是其他聚合配置。分解服务器可以包括分布式部件,例如分布在外罩中的一个或多个电路板上、机架中的一个或多个托架上、不同机架中的一个或多个托架上、在不同插入式卡上、在不同数据中心中的部件,或者分解服务器可以具有部件的其他分布。因此,虽然图1一般性地示出了主机5是聚合设备,但是图1中的主机的说明代表特定的实施例。
可配置IC管芯40可以安装在诸如PCIe卡的卡35上。卡35可以插入主机的电路板中的一个上的诸如PCIe卡插槽的卡插槽(例如,PCIe边缘连接器)中。该卡可以包括处理器45、本地存储器50(例如,DDR RAM存储器)、输入-输出(IO)系统52、非易失性存储器54、基板管理控制器(BMC)57、其他部件、或这些部件的任意组合。处理器45可以包括CPU、微处理器、GPU、DSP、ASIC、VPU、SIMD、神经网络处理器、人工智能处理器、密码加速器、其他处理器或这些处理器的任何组合。
在实施例中,PCIe卡的处理器45操作该卡的BMC功能,并且BMC不是与处理器间隔开的控制电路。在实施例中,BMC是在PCIe卡上与处理器间隔开的电路。
在实施例中,可配置IC管芯包括一个或多个IO块60、核心结构62和其他部件。IO块60可以连接到主机的PCIe总线30,并且可以将核心结构连接到主机。IO块可以连接到安装在卡35上的部件中的一个或多个,例如处理器45、本地存储器50、IO系统52、非易失性存储器54和BMC 57。IO块可以将核心结构连接到处理器、本地存储器、IO系统、非易失性存储器和BMC。
在实施例中,核心结构包括静态区65和部分区67。部分区被示出为在壳架构中的静态区内部的区,其中部分区有时被称为内壳,并且静态区有时被称为外壳。然而,应当理解,静态区和部分区的物理分布可以不物理嵌入在具有静态区中的部分区的核心结构中。
静态区是核心结构的包括通常不改变的设计逻辑(被配置在核心结构中的电路)的一部分。静态区包括设计逻辑的当核心结构的其他部分被配置有用户电路时不改变角色的部分。该静态区可以包括可配置IC管芯的外围中的硬电路以及核心结构中的电路。
部分区是核心结构的通常可用于可配置IC管芯的用户的设计逻辑(例如,用户电路)的区。例如,用户可以是数据中心的包括所述的可配置IC管芯的用户。用户可以是经由网络通过主机的网络接口卡来访问可配置IC管芯的计算机系统。核心结构中的用户配置电路可以包括各种电路器件,例如ASIC、数字信号处理器(DSP)、加速器电路和许多其他器件。所述的实施例提供了在部分区的部分被静态区使用之后,将核心结构的一部分(逻辑元件(LE)、ALM(自适应逻辑模块)、RAM、数字信号处理器和其他核心资源)分配给部分区以供用户使用。部分区的部分可以被视为在时间上多路复用以供静态区使用,并且此后在静态区完成使用部分区的部分之后供用户使用。下面进一步描述部分区的共享使用。
在实施例中,静态区包括部分重新配置接口电路70、受信配置管理器电路72和多路复用器74。通过在核心结构的静态区中配置查找表,可以将部分重新配置接口、受信配置管理器和多路复用器配置到核心结构的静态区中。查找表配置是公知的,并且不再进一步描述。
受信配置管理器可以通过通信链路90连接到部分重新配置接口。受信配置管理器可以通过第一通信链路92(例如,数据通信链路)和第二通信链路94(例如,控制信号通信链路)连接到多路复用器。受信配置管理器可以通过经过IO块的通信链路96和通过PCIe总线连接到主机架构。通信链路可以包括可配置IC管芯的核心结构中的路由通道,其中各种路由通道可以通过核心结构中的交换块来连接,以形成通信链路。可配置IC管芯的路由通道和交换块是公知的,并且不再描述。
受信配置管理器可以经由通信链路98连接到本地存储器,所述通信链路98从多路复用器延伸并通过IO块到达本地存储器。在实施例中,可配置IC管芯具有对本地存储器的独占直接访问。即,PCIe板和主机的其他电路可以不具有对本地存储器的直接访问。受信配置管理器还可以经由通信链路100连接到非易失性存储器,所述通信链路100通过IO块延伸到非易失性存储器。
部分区可以包括安全加速器85。安全加速器可以在安全加速器将被使用时被配置到部分区中,并且在安全加速器被使用之后可以被重写。在使用安全加速器之后,安全加速器区可以被一个或多个用户电路重写。PCIe卡的BMC 57、可配置IC管芯的BMC(硬连线BMC或配置在核心结构中的BMC)、受信配置管理器、另一个管理控制器、或这些电路的任何组合可以控制何时(例如,在使用之后)可以重写安全加速器。
安全加速器可以包括适合于执行各种安全功能的一个或多个安全处理器(例如,安全电路)。安全处理器可以包括SHA-256处理器、SHA-384处理器、ECDSA处理器(椭圆曲线数字签名算法处理器)、AES处理器(高级加密标准处理器)、GZIP处理器、TRNG处理器(真随机数生成器处理器)、其他安全处理器或这些安全处理器的任意组合。在实施例中,安全加速器包括SHA-256处理器和ECDSA处理器。
部分区还可以包括一个或多个用户电路,其中用户是主机和可配置IC管芯的用户。用户可以是经由网络接口25访问主机的客户端计算机系统。
安全加速器通过通信链路102连接到多路复用器。受信配置管理器通过一个或多个通信链路104连接到安全加速器。具体地,受信配置管理器通过一个或多个通信链路连接到安全加速器的安全处理器中的一个或多个。
在实施例中,当主机将用户比特流加载到可配置IC管芯中时,安全加速器的安全处理器提供安全服务。用户比特流可以用于用户电路,其中用户比特流的目的地是部分重新配置接口。然后用户比特流可以用于配置部分区。如果比特流不来自受信来源用户,则核心结构中的用户数据和用户电路、主机数据和主机电路、制造商数据和制造商电路可以被未授权的用户访问。即,未授权的用户比特流可以由恶意用户配置以访问、破坏或窃取数据、或访问、破坏或窃取电路配置或这些的任何组合。因此,所述的电路可以证明比特流的可信性,并且证明比特流未出于这种恶意的目的而被篡改。
为了安全地处理比特流,受信配置管理器作为用于比特流的把关系统进行操作。如果比特流未被验证(例如,不来自受信来源、被篡改、或两者),则受信配置管理器可以拒绝该比特流,或者如果比特流被验证(例如,来自受信来源并且未被篡改),则受信配置管理器可以允许该比特流被传递到部分重新配置接口。受信配置管理器可以是轻量级的基于控制的管理器,所述轻量级的基于控制的管理器不对比特流执行数据处理,而是控制安全加速器对比特流执行数据处理以用于比特流验证。因为受信配置管理器可以是不对比特流执行数据处理的轻量级的基于控制的管理器,所以所述管理器不占用核心结构的大部分。因此,核心结构的相对大的部分仍然可用于用户电路。下面描述在实施例中的用于验证比特流的方法。
图2是在实施例中的用于验证比特流的方法的流程图。所述流程图代表一个示例性实施例。在不偏离实施例的范围的情况下,可以向流程图添加步骤、从流程图移除步骤或在流程图中组合步骤。
在200处,主机5经由通信链路96将对用户比特流(例如,未受信用户比特流)向用户电路的部分区中的加载服务的请求传递到受信配置管理器。主机和受信配置管理器通过通信链路96进行通信以用于这些传递。
在205处,受信配置管理器将用于安全加速器的部分比特流从非易失性存储器54加载到部分重新配置接口70中。在受信配置管理器的控制下,部分比特流可以从非易失性存储器54跨通信链路100、通过受信配置管理器并且跨通信链路90传输到部分重新配置接口。
用于安全加速器的部分比特流可以包括用于一个或多个安全处理器(例如,SHA-256处理器和ECDSA处理器)的部分比特流。用于安全处理器的部分比特流是受信的,因为部分比特流被存储在位于卡35上的非易失性存储器54中,并且从非易失性存储器54加载。可配置IC管芯的制造商、数据中心提供商或其他受信用户可以为部分比特流的发起者,因此,部分比特流是受信的(例如,不会被未授权的用户破坏)。
部分重新配置接口可以将部分比特流传递到可配置IC管芯中的其他电路,以用于用安全加速器来配置部分区(例如,配置可配置IC管芯的查找表)。使用部分比特流来配置部分区的过程是本领域中的技术人员所充分理解的,并且不再进一步描述。
在210处,受信配置管理器设置多路复用器的一个或多个控制比特,以将多路复用器配置成跨通信链路102从安全加速器接收输入。控制比特可以跨通信链路94进行设置。
在215处,主机将用户比特流从主机存储器通过受信配置管理器推送到安全加速器。具体地,主机可以跨通信链路96将用户比特流传递到受信配置管理器。受信配置管理器可以跨通信链路104将比特流传递到安全加速器的一个或多个安全处理器。
在220处,当比特流通过安全加速器被传递到本地存储器以用于存储时,安全加速器处理比特流。具体地,当安全处理器中的一个或多个接收用户比特流时,一个或多个安全处理器根据安全处理器被配置为执行的安全功能(例如,解密、哈希功能或其他功能)来处理用户比特流。
当用户比特流的部分被处理时,安全加速器可以控制用户比特流到本地存储器、跨通信链路102到多路复用器、并且通过多路复用器跨通信链路98到本地存储器的传递。
在225处,如果安全加速器确定用户比特流来自受信来源(即,用户比特流的要求保护的来源)、未被篡改(即,未被破坏)、或两者,那么安全加速器可以将用户比特流可信的指示传输到受信配置管理器。具体地,如果一个或多个安全处理器确定用户比特流可信,那么安全处理器中的一个或多个可以将可信性的指示传输到受信配置管理器。
如果安全加速器包括两个或更多安全处理器,则安全处理器可以并行操作。在实施例中,安全处理器串行操作。在实施例中,例如,如果安全加速器包括三个或更多安全处理器,则安全处理器串行和并行操作。
如果安全加速器确定用户比特流来自未受信来源(即,不是用户比特流的要求保护的来源)、已被篡改(即,已被破坏)、或两者,那么安全加速器可以将用户比特流未被验证并且不可信的指示传输到受信配置管理器。具体地,如果一个或多个安全处理器确定用户比特流不可信,那么安全处理器中的一个或多个可以将不可信性的指示传输到受信配置管理器。
在230处,如果受信配置管理器从安全加速器(即,安全处理器)接收到用户比特流可信的指示,那么受信配置管理器访问本地存储器中的用户比特流,并且将用户比特流加载到部分重新配置接口中。具体地,受信配置管理器可以经由通信链路94将一个或多个控制比特传递到多路复用器,以便多路复用器将用户比特流传输到通信链路94上,以由受信配置管理器接收。即,控制比特可以将多路复用器配置成不经由通信链路102将用户比特流传输到安全加速器中。受信配置管理器可以经由通信链路90将用户比特流传输到部分重新配置接口。此后,可以用与用户比特流相关联的一个或多个用户电路来配置部分区。
在235处,受信配置管理器将一个或多个指示符传输到主机,以指示用户比特流成功地还是未成功地加载到部分重新配置接口中。此后,主机可以使用一个或多个用户电路以服务用户的数据,或可以请求用用户比特流重新配置部分区。
在240处,受信配置管理器可以向PCIe卡或可配置IC管芯的一个或多个电路器件(例如,PCIe卡的BMC)指示不再需要安全加速器并且电路器件可以允许用用户电路重写安全加速器,并且受信配置管理器可以经由通过通信链路94传输到多路复用器的一个或多个控制信号来将多路复用器重新分配到部分区。
在245处,如果受信配置管理器从安全加速器(即,安全处理器)接收到用户比特流不可信的指示,那么受信配置管理器可以向PCIe卡或可配置IC管芯的一个或多个电路器件(例如,PCIe卡的BMC)指示不再需要安全加速器并且电路器件可以允许用用户设计逻辑(即,用户电路)重写安全加速器,并且受信配置管理器可以经由通过通信链路94传输到多路复用器的一个或多个控制信号将多路复用器重新分配到部分区。
如果用户比特流不可信或者已经被用于处理用户比特流,则在核心结构中提供将被重写的安全加速器,这样允许当用户比特流未被验证时增加部分区的可用资源。而且,当安全处理器不是静态的,受信配置管理器可以使用部分区中的安全处理器,就好像安全处理器是静态的。此外,因为安全处理器可以被重写,所以安全处理器不会消耗具有主要闲置的安全处理器的核心结构的静态区的一部分。提供将被加载到主要区中并在使用之后随后被重写的安全处理器是主要区的面积使用和与安全处理器加载相关联的处理延迟之间的折衷。
图3示出了在实施例中的包括诸如FPGA的可配置IC管芯的主机305。主机305类似于主机5,但不同之处在于主机305包括主机与安全加速器之间的通信链路106。通信链路106从主机经过总线30、经过FPGA IO块60、以及经过核心结构的路由通道和交换块到达安全加速器。通信链路106不经过受信配置管理器。证明用户比特流为可信的或不可信的方法类似于以上针对图2描述的方法,但不同,如下面针对图4的描述。
图4是在实施例中的用于验证用户比特流的方法的流程图。所述流程图代表一个示例性实施例。在不偏离实施例的范围的情况下,可以向流程图添加、从流程图移除或在流程图中组合步骤。
在400处,主机305经由通信链路96将对用户比特流(例如,未受信用户比特流)向用户电路的部分区中的加载服务的请求传递到受信配置管理器。主机和受信配置管理器通过通信链路96进行通信以用于这些传递。
在405处,受信配置管理器将用于安全加速器的部分比特流从非易失性存储器54加载到部分重新配置接口70中。在受信配置管理器的控制下,部分比特流可以从非易失性存储器54跨通信链路100、通过受信配置管理器并且跨通信链路90传送到部分重新配置接口。
用于安全加速器的部分比特流可以包括用于一个或多个安全处理器(例如,SHA-256处理器和ECDSA处理器)的部分比特流。用于安全处理器的部分比特流是受信的,因为部分比特流被存储在位于卡35上的非易失性存储器54中,并且从非易失性存储器54加载。可配置IC管芯的制造商、数据中心提供商或其他受信用户可以为部分比特流的发起者,因此,部分比特流是受信的(例如,不会被未授权的用户破坏)。
部分重新配置接口可以将部分比特流传递到可配置IC管芯中的其他电路,以用于用安全加速器来配置部分区(例如,配置可配置IC管芯的查找表)。使用部分比特流来配置部分区的过程是本领域中的技术人员所充分理解的,并且不再进一步描述。
在410处,受信配置管理器设置(使用通信链路94)多路复用器的一个或多个控制比特,以将多路复用器配置成跨通信链路102从安全加速器接收输入。控制比特可以跨通信链路94进行设置。
在415处,主机将用户比特流从主机存储器通过受信配置管理器推送到安全加速器。具体地,主机可以跨通信链路96将用户比特流传递到受信配置管理器。受信配置管理器可以跨通信链路104将比特流传递到安全加速器的一个或多个安全处理器。
在420处,当比特流通过安全加速器被传递到本地存储器以用于存储时,安全加速器处理比特流。具体地,当安全处理器中的一个或多个接收用户比特流时,一个或多个安全处理器根据安全处理器被配置成执行的安全功能(例如,解密、哈希功能或其他功能)来处理用户比特流。
当用户比特流的部分被处理时,安全加速器可以控制用户比特流到本地存储器、跨通信链路102到多路复用器、并且通过多路复用器跨通信链路98到本地存储器的传递。
在425处,如果安全加速器确定用户比特流来自受信来源(即,用户比特流的要求保护的来源)、未被篡改(即,未被破坏)、或两者,那么安全加速器可以将用户比特流已被验证并且可信的指示传输到受信配置管理器。具体地,如果一个或多个安全处理器确定用户比特流可信,那么安全处理器中的一个或多个可以将可信性的指示传输到受信配置管理器。
如果安全加速器包括两个或更多安全处理器,则安全处理器可以并行操作。在替代的实施例中,安全处理器并行操作。在另一个替代的实施例中,例如,如果安全加速器包括三个或更多安全处理器,则安全处理器可以串行和并行操作。
如果安全加速器确定用户比特流来自未受信来源(即,不是用户比特流的要求保护的来源)、已被篡改(即,已被破坏)、或两者,那么安全加速器可以将用户比特流未被验证并且不可信的指示传输到受信配置管理器。具体地,如果一个或多个安全处理器确定用户比特流不可信,那么安全处理器中的一个或多个可以将不可信性的指示传输到受信配置管理器。
在430处,如果受信配置管理器从安全加速器(即,安全处理器)接收到用户比特流可信的指示,那么受信配置管理器访问本地存储器中的用户比特流,并且将用户比特流加载到部分重新配置接口中。具体地,受信配置管理器可以经由通信链路94将一个或多个控制比特传递到多路复用器,以便多路复用器将用户比特流传输到通信链路94上,以由受信配置管理器接收。即,控制比特可以将多路复用器配置成不经由通信链路102将用户比特流传输到安全加速器中。受信配置管理器可以经由通信链路90将用户比特流传输到部分重新配置接口。此后,可以用与用户比特流相关联的一个或多个用户电路来配置部分区。
在435处,受信配置管理器将一个或多个指示符传输到主机,以指示用户比特流成功地还是未成功地加载到部分重新配置接口中。此后,主机可以使用一个或多个用户电路来服务用户的数据,或可以请求用用户比特流重新配置部分区。
在440处,受信配置管理器可以向PCIe卡或可配置IC管芯的一个或多个电路器件(例如,PCIe卡的BMC)指示不再需要安全加速器并且电路器件可以允许用用户电路重写安全加速器,并且受信配置管理器可以经由通过通信链路94传输到多路复用器的一个或多个控制信号来将多路复用器重新分配到部分区。
在实施例中,在安全处理器被用于验证用户比特流之后,还可以允许重写通信链路106。在440处,可以如上所述允许通信链路被重写到安全加速器的一个或多个安全处理器。
在445处,如果受信配置管理器从安全加速器(即,安全处理器)接收到用户比特流不可信的指示,那么受信配置管理器可以向PCIe卡或可配置IC管芯的一个或多个电路器件(例如,PCIe卡的BMC)指示不再需要安全加速器并且电路器件可以允许用用户设计逻辑(即,用户电路)重写安全加速器,并且受信配置管理器可以经由通过通信链路94传输到多路复用器的一个或多个控制信号将多路复用器重新分配到部分区。
在实施例中,如果用户比特流不可信,则还可以允许重写通信链路106。在435处,可以如上所述允许通信链路被重写到安全加速器的一个或多个安全处理器。
在实施例中,在230或430处,可以将非易失性存储器54中的用于部分区67的完整比特流加载到部分重新配置接口中,并且可以用完整比特流来配置部分区。完整比特流是用于被配置到包括来自本地存储器的比特流的部分区中的所有电路的比特流。在实施例中,完整比特流不包括用于安全加速器的安全加速器部分比特流。在一些实施例中,相比用存储在本地存储器中的比特流来部分地重新配置部分区,用完整比特流来配置部分区可以是更快的过程。
在实施例中,其他比特流可以使用上述方法被验证为可信的或不可信的。例如,在允许将比特流加载到部分重新配置接口或用于配置核心结构的部分区的另一接口中之前,将加载到非易失性存储器54中的任何比特流可以被验证为可信的或不可信的。比特流可以用于将被配置到部分区中的任何制造商电路、主机电路或用户电路。
在实施例中,其他比特流可以使用上述方法被验证为可信或不可信。例如,用于PCIe卡的各种电路的固件(例如,用于PCIe卡的BMC的固件)可以被验证为可信或不可信。例如,用于BMC 57的比特流可以如上所述被加载到本地存储器50中,可以使用安全加速器被验证为可信或不可信,并且如果可信,则如果用于BMC的固件被存储在非易失性存储器中或被存储到用于存储用于BMC的固件的其他存储器中,则受信配置管理器可以(配置多路复用器)将比特流从本地存储器路由到非易失性存储器中。
而且,将安装在PCIe卡上的一个或多个电路上的固件可以被验证为可信或不可信。如上文参考图2和图4所描述的,可以将用于这些固件的比特流加载到可配置IC管芯上,以用于验证或非验证,并且如果比特流被验证,那么可以将比特流从可配置IC管芯传递到PCIe卡上的电路以用于存储和使用。例如,如上所述,用于PCIe卡上的网络接口ASIC的固件可以被验证为可信或不可信,并且如果可信,则将所述固件加载到网络接口ASIC上。
图5是在实施例中的用于验证比特流的方法的流程图,其中比特流的目的地是非易失性存储器。比特流可以是用于核心结构的完整比特流或可以用于固件更新。流程图代表一个示例性实施例。在不偏离实施例的范围的情况下,可以向流程图中添加、从流程图移除或在流程图中组合步骤。
在500处,主机5经由通信链路96将对比特流向部分区中的加载服务的请求传递到受信配置管理器。主机和受信配置管理器通过通信链路96进行通信以用于这些传递。
在505处,受信配置管理器将用于安全加速器的部分比特流从非易失性存储器54加载到部分重新配置接口70中。在受信配置管理器的控制下,部分比特流可以从非易失性存储器54跨通信链路100、通过受信配置管理器、并且跨通信链路90传输到部分重新配置接口。
用于安全加速器的部分比特流可以包括用于一个或多个安全处理器(例如,SHA-256处理器和ECDSA处理器)的部分比特流。用于安全处理器的部分比特流是受信的,因为部分比特流被存储在位于卡35上的非易失性存储器54中,并从非易失性存储器54加载。可配置IC管芯的制造商、数据中心提供商或其他受信用户可以为部分比特流的发起者,因此,部分比特流是受信的(例如,不会被未授权的用户破坏)。
部分重新配置接口可以将部分比特流传递到可配置IC管芯中的其他电路,以用于用安全加速器来配置部分区(例如,配置可配置IC管芯的查找表)。使用部分比特流来配置部分区的过程是本领域中的技术人员所充分理解的,并且不再进一步描述。
在510处,受信配置管理器(使用通信链路94)设置多路复用器的一个或多个控制比特,以将多路复用器配置成跨通信链路102从安全加速器接收输入。
在515处,主机将比特流从主机存储器通过受信配置管理器推送到安全加速器。具体地,主机可以跨通信链路96将比特流传递到受信配置管理器。受信配置管理器可以跨通信链路104将比特流传递到安全加速器的一个或多个安全处理器。替代地,主机可以将比特流推送到安全加速器的一个或多个安全处理器,而不使比特流通过受信配置管理器。
在520处,当比特流通过安全加速器被传递到本地存储器以用于存储时,安全加速器处理比特流。具体地,当安全处理器中的一个或多个接收比特流时,一个或多个安全处理器根据安全处理器被配置成执行的安全功能(例如,解密、哈希功能或其他功能)来处理比特流。
当比特流的部分被处理时,安全加速器可以控制比特流到本地存储器、跨通信链路102到多路复用器、并且通过多路复用器跨通信链路98到本地存储器的传递。
在525处,如果安全加速器确定比特流来自受信来源(即,比特流的要求保护的来源)、未被篡改(即,未被破坏)、或两者,那么安全加速器可以将比特流可信的指示传输到受信配置管理器。具体地,如果一个或多个安全处理器确定比特流可信,那么安全处理器中的一个或多个可以将可信性的指示传输到受信配置管理器。
如果安全加速器确定比特流来自未受信来源(即,不是比特流的要求保护的来源)、已被篡改(即,已被破坏)、或两者,那么安全加速器可以将比特流未被验证并且不可信的指示传输到受信配置管理器。具体地,如果一个或多个安全处理器确定比特流不可信,那么安全处理器中的一个或多个可以将不可信性的指示传输到受信配置管理器。
在530处,如果受信配置管理器从安全加速器(即,安全处理器)接收到比特流可信的指示,那么受信配置管理器访问本地存储器中的比特流,并且将比特流从本地存储器加载到非易失性存储器中。具体地,受信配置管理器可以经由通信链路94将一个或多个控制比特设置到多路复用器,以便多路复用器将比特流传输到通信链路94上,以由受信配置管理器接收。即,控制比特可以将多路复用器配置成不经由通信链路102将比特流传输到安全加速器中。受信配置管理器可以经由通信链路100将比特流传输到非易失性存储器。此后,可以通过将比特流传递到部分重新配置接口的受信配置管理器来用比特流配置部分区。
在535处,受信配置管理器将一个或多个指示符传输到主机,以指示比特流成功地还是未成功地被加载到非易失性存储器中。
在540处,如果受信配置管理器从安全加速器(即,安全处理器)接收到比特流不可信的指示,那么受信配置管理器可以不将比特流从本地存储器传递到非易失性存储器。
图6示出了在实施例中的数据系统600。数据系统600包括适合于使用通信网络615来访问数据中心610的客户端系统605。客户端系统605可以包括适合于访问存储在数据中心中的数据的一个或多个客户端计算机。客户端计算机可以包括服务器、台式计算机、膝上型计算机、移动设备(例如,平板计算机、智能电话或其他设备)、这些设备的任何组合或其他设备。客户端计算机可以将数据传递到数据中心,以用于存储在数据中心中、从数据中心检索数据、或者请求改变数据中心中的数据。通信网络615可以包括一个或多个网络,例如,因特网、一个或多个内联网或其他网络系统。
数据中心610包括主机5或305(即,服务器)、大容量储存器630、IP交换机635,并且可以包括其他元件。数据中心中的主机可以包括一个或多个卡35、以上所述并在附图中示出的任何可配置IC管芯40、以及以上所述的其他电路。数据中心中的主机5或305、卡35和可配置IC管芯40可以根据所描述和示出的任何方法(例如图2和图4中示出的方法)来操作。
大容量储存器630包括一种或多种类型的存储器设备,例如包括若干盘存储器设备(例如,磁盘存储器)的盘阵列、光学储存器(例如,光盘储存器)、固态存储器、磁带存储器等。存储器设备可以位于一个或多个数据中心机架中,所述数据中心机架包括一个或多个服务器、IP交换机、这两者,或者不包括服务器和IP交换机。IP交换机在服务器和大容量储存器的存储器设备之间路由通信数据包。
服务器的一个或多个处理核心10可以在半双工或全双工模式中以单倍数据速率(SDR)、双倍数据速率(DDR)或四倍数据速率(QDR)与可配置IC管芯35通信。存储器子系统可以包括DDR非易失性存储器、3D xPoint非易失性存储器或其他类型的存储器。
服务器可以是聚合服务器或分解服务器。服务器的各种部件可以位于数据中心机架中的单个托架上、分布在数据中心机架中的两个或更多托架中、或者分布在若干数据中心机架中的若干托架中。将服务器的部件分布在托架、数据中心机架或两者中可以通过将选择的部件彼此相对靠近地布置在频繁通信中来促进部件之间的相对快速的通信。例如,在处理器比可配置IC管芯(例如,FPGA)更频繁地访问存储器子系统的服务器中,处理器和存储器子系统可以相对靠近地位于数据中心机架中(例如,在第一托架上),并且可配置IC管芯可以位于数据中心机架中远离存储器子系统的位置(例如,在不同的第二托架上)。替代地,例如,如果可配置IC管芯用比处理器更高的频率访问大容量储存器,则第二托架可以布置成比第一托架更靠近大容量储存器。
在实施例中,用于用户电路的比特流从客户端系统605传输到数据中心中的主机,其中比特流如上所述被验证或未被验证。比特流可以跨通信网络传输到数据中心。在客户端系统将使用用户电路以用于处理数据中心中的用户数据之前,客户端系统可以传输用于用户电路的比特流。在用户电路被配置到可配置IC管芯的核心结构的部分区中之后,用户数据可以被传输到数据中心和可配置IC管芯,以便由用户电路处理。
在实施例中,若干客户端系统通过通信网络连接到数据中心,并且每个客户端系统可以传输用于将被配置到可配置IC管芯的部分区中的各种用户电路的各种比特流。当客户端系统将使用用户电路以用于处理数据中心中的用户数据时,每个客户端系统可以传输用于用户电路的比特流。在用户电路被配置到可配置IC管芯的核心结构的部分区中之后,用户数据可以被传输到数据中心和可配置IC管芯,以便由用户电路处理。
图7示出了在实施例中的数据系统700。数据系统700类似于数据系统600,但包括数据中心710,所述数据中心710包括若干主机5(即,服务器)。此外,数据中心中的主机中的每个可以包括以上所描述并且在图中示出的任何卡35和任何可配置IC管芯40。
出于说明和描述的目的呈现了本说明书。其并非旨在穷举或将本发明限制于所描述的精确形式,并且根据以上教导,许多修改和变化是可能的。例如,虽然上面已经描述了SiP器件,但是所描述的实施例可以应用于各种多芯片模块、多管芯组装件、系统级封装器件和其他多管芯器件。选择和描述实施例是为了最好地解释实施例的原理以及他们的实际应用。该说明书将使本领域中的其他技术人员能够在各种实施例中并且用适合于特定用途的各种修改来最好地利用和实践本发明。本发明的范围由所附权利要求限定。
示例:
以下示例涉及其他实施例。
示例1是一种方法,包括:由可配置集成电路(IC)的受信配置管理器电路从主机接收对用于用户电路的比特流向可配置IC管芯的核心结构的部分区中的比特流加载服务的请求;由受信配置管理器电路将安全处理器从主机的非易失性存储器加载到可配置IC管芯电路的核心结构的部分区中;通过受信配置管理器将比特流从主机加载到安全处理器;由安全处理器处理比特流,以确定比特流可信还是不可信;当安全处理器处理比特流时,将比特流从安全处理器传递到本地存储器;如果安全处理器确定比特流不可信,则将比特流不可信的指示传输到受信配置管理器,并且基于比特流的不可信性允许重写安全处理器;以及如果安全处理器确定比特流可信,则将比特流可信的指示传输到受信配置管理器,并且由受信配置管理器将比特流从本地存储器传递到部分重新配置接口中,以用于用比特流来配置核心结构的部分区。
示例2是示例1的方法,其中,本地存储器是可以由可配置IC管芯访问的双倍数据速率RAM。
示例3是示例2的方法,其中,本地存储器不可由主机的其他电路访问。
示例4是示例1的方法,其中,可配置IC管芯在主机中的PCIe卡上。
示例5是示例1的方法,其中,方法包括:如果比特流可信,则用部分重新配置接口电路中的比特流来配置核心结构的部分区。
示例6是示例1的方法,其中,该方法包括:如果比特流不可信,则将指示符从受信配置管理器传输到基板管理控制器,以用于允许重写安全处理器。
示例7是示例6的方法,其中,该方法包括由基板管理控制器允许重写安全处理器。
示例8是示例6的方法,其中,该方法包括:由受信配置管理器将多路复用器配置成将比特流从安全处理器路由到本地存储器。
示例9是示例8的方法,其中,该方法包括:由受信配置管理器将多路复用器配置成通过受信配置管理器将比特流从本地存储器路由到部分重新配置接口。
示例10是示例9的方法,其中,该方法包括:由受信配置管理器将多路复用器配置成通过受信配置管理器将比特流从本地存储器路由到部分重新配置接口,而不通过安全处理器传输比特流。
示例11是示例9的方法,其中,该方法包括:在多路复用器通过受信配置管理器将比特流从本地存储器路由到部分重新配置接口之后,由受信配置管理器将多路复用器配置成与安全处理器通信。
示例12是示例1的方法,其中,该方法包括:在比特流被传递到部分重新配置接口中之后,由受信配置管理器允许重写安全处理器。
示例13是一种方法,包括:在可配置集成电路(IC)的受信配置管理器电路处从主机接收对用于用户电路的比特流向可配置IC管芯的核心结构的部分区中的比特流加载服务的请求;由受信配置管理器电路将安全处理器从主机的非易失性存储器加载到可配置IC管芯电路的核心结构的部分区中;将比特流从主机加载到安全处理器;由安全处理器处理比特流,以确定比特流可信还是不可信;当安全处理器处理比特流时,将比特流从安全处理器传递到本地存储器;如果安全处理器确定比特流不可信,则将比特流不可信的指示传输到受信配置管理器,并且基于比特流的不可信性允许重写安全处理器;以及如果安全处理器确定比特流可信,则将比特流可信的指示传输到受信配置管理器,并且由受信配置管理器将比特流从本地存储器传递到非易失性存储器中,以用于用比特流来配置核心结构的部分区。
示例14是权利要求13的方法,其中,将比特流从主机加载到安全处理器包括:不通过受信配置管理器将比特流路由到安全处理器中。
示例15是权利要求13的方法,其中,核心结构的静态区包括在可配置IC管芯的输入-输出块与安全处理器之间的通信链路。
示例16是权利要求13的方法,还包括:将通信链路配置到可配置IC管芯的输入-输出块与安全处理器之间的核心结构中。
示例17是权利要求13的方法,其中,将通信链路配置到可配置IC管芯的输入-输出块与安全处理器之间的核心结构中包括:在安全处理器被加载到可配置IC管芯电路的核心结构的部分区中之后,将通信链路配置到核心结构中。
示例18是一种系统,包括:可配置集成电路管芯,所述可配置集成电路管芯包括输入-输出(IO)块和耦合到IO块的核心结构,其中,所述核心结构包括可用用户电路和安全处理器配置的部分区,并且所述核心结构包括静态区,所述静态区包括受信配置管理器电路、耦合到受信配置管理器电路的部分重新配置接口电路、以及多路复用器,当安全处理器处于部分区中时,所述多路复用器通过第一通信链路耦合到受信配置管理器并且通过第二通信链路耦合到安全处理器;本地存储器,所述本地存储器通过第三通信链路耦合到多路复用器,其中,当安全处理器被配置到部分区中时,受信配置管理器电路和安全处理器通过多路复用器可多路复用到本地存储器,并且受信配置管理器通过第四通信链路耦合到多路复用器的控制输入,以控制通过多路复用器的多路复用;非易失性存储器,所述非易失性存储器通过第五通信链路耦合到受信配置管理器,并且存储用于安全处理器的第一数据,其中,被配置到部分区中的第一数据是安全处理器;以及主机系统,所述主机系统包括存储器,其中,存储器通过第六通信链路耦合到受信配置管理器电路,存储器存储用于用户电路的第二数据,并且被配置到部分区中的第二数据是用户电路,其中,当第二数据通过受信配置管理器、通过安全处理器并且通过多路复用器从主机的存储器被加载到本地存储器时,安全处理器适合于验证第二数据。
示例19是权利要求18的方法,还包括PCIe卡,其中,可配置IC管芯、本地存储器和非易失性存储器安装在PCIe卡上,并且PCIe卡通过PCIe插槽耦合到主机系统。
示例20是权利要求18的方法,其中,主机的存储器通过第七通信链路耦合到安全处理器,当安全处理器被配置到部分区中时,第七通信链路至少部分地被配置到核心结构中,并且第七通信链路不是用于受信配置管理器的通信链路。
Claims (20)
1.一种方法,包括:
由可配置集成电路(IC)的受信配置管理器电路从主机接收对用于用户电路的比特流向所述可配置IC管芯的核心结构的部分区中的比特流加载服务的请求;
由所述受信配置管理器电路将安全处理器从所述主机的非易失性存储器加载到所述可配置IC管芯电路的所述核心结构的所述部分区中;
通过所述受信配置管理器将所述比特流从所述主机加载到所述安全处理器;
由所述安全处理器处理所述比特流,以确定所述比特流可信还是不可信;
当所述安全处理器处理所述比特流时,将所述比特流从所述安全处理器传递到本地存储器;
如果所述安全处理器确定所述比特流不可信,则将所述比特流不可信的指示传输到所述受信配置管理器,并且基于所述比特流的不可信性允许重写所述安全处理器;以及
如果所述安全处理器确定所述比特流可信,则将所述比特流可信的指示传输到所述受信配置管理器,并且由所述受信配置管理器将所述比特流从所述本地存储器传递到部分重新配置接口中,以用于用所述比特流来配置所述核心结构的所述部分区。
2.根据权利要求1所述的方法,其中,所述本地存储器是可由所述可配置IC管芯访问的双倍数据速率RAM。
3.根据权利要求2所述的方法,其中,所述本地存储器不可由所述主机的其他电路访问。
4.根据权利要求1所述的方法,其中,所述可配置IC管芯在所述主机中的PCIe卡上。
5.根据权利要求1所述的方法,还包括:如果所述比特流可信,则用所述部分重新配置接口电路中的所述比特流来配置所述核心结构的所述部分区。
6.根据权利要求1所述的方法,还包括:如果所述比特流不可信,则将指示符从所述受信配置管理器传输到基板管理控制器,以用于允许重写所述安全处理器。
7.根据权利要求6所述的方法,还包括:由所述基板管理控制器允许重写所述安全处理器。
8.根据权利要求6所述的方法,还包括:由所述受信配置管理器将多路复用器配置成将所述比特流从所述安全处理器路由到所述本地存储器。
9.根据权利要求8所述的方法,还包括:由所述受信配置管理器将所述多路复用器配置成通过所述受信配置管理器将所述比特流从所述本地存储器路由到所述部分重新配置接口。
10.根据权利要求9所述的方法,还包括:由所述受信配置管理器将所述多路复用器配置成通过所述受信配置管理器将所述比特流从所述本地存储器路由到所述部分重新配置接口,而不通过所述安全处理器传输所述比特流。
11.根据权利要求9所述的方法,还包括:在所述多路复用器通过所述受信配置管理器将所述比特流从所述本地存储器路由到所述部分重新配置接口之后,由所述受信配置管理器将所述多路复用器配置成与所述安全处理器通信。
12.根据权利要求1所述的方法,还包括:在所述比特流被传递到所述部分重新配置接口中之后,由所述受信配置管理器允许重写所述安全处理器。
13.一种方法,包括:
由可配置集成电路(IC)的受信配置管理器电路从主机接收对用于用户电路的比特流向所述可配置IC管芯的核心结构的部分区中的比特流加载服务的请求;
由所述受信配置管理器电路将安全处理器从所述主机的非易失性存储器加载到所述可配置IC管芯电路的所述核心结构的所述部分区中;
将所述比特流从所述主机加载到所述安全处理器;
由所述安全处理器处理所述比特流,以确定所述比特流可信还是不可信;
当所述安全处理器处理所述比特流时,将所述比特流从所述安全处理器传递到本地存储器;
如果所述安全处理器确定所述比特流不可信,则将所述比特流不可信的指示传输到所述受信配置管理器,并且基于所述比特流的不可信性允许重写所述安全处理器;以及
如果所述安全处理器确定所述比特流可信,则将所述比特流可信的指示传输到所述受信配置管理器,并且由所述受信配置管理器将所述比特流从所述本地存储器传递到非易失性存储器中,以用于用所述比特流来配置所述核心结构的所述部分区。
14.根据权利要求13所述的方法,其中,将所述比特流从所述主机加载到所述安全处理器包括:不通过所述受信配置管理器将所述比特流路由到所述安全处理器中。
15.根据权利要求13所述的方法,其中,所述核心结构的所述静态区包括所述可配置IC管芯的输入-输出块与所述安全处理器之间的通信链路。
16.根据权利要求13所述的方法,还包括:将通信链路配置到所述可配置IC管芯的输入-输出块与所述安全处理器之间的所述核心结构中。
17.根据权利要求16所述的方法,其中,将所述通信链路配置到所述可配置IC管芯的所述输入-输出块与所述安全处理器之间的所述核心结构中包括:在所述安全处理器被加载到所述可配置IC管芯电路的所述核心结构的所述部分区中之后,将所述通信链路配置到所述核心结构中。
18.一种系统,包括:
可配置集成电路管芯,所述可配置集成电路管芯包括输入-输出(IO)块和耦合到所述IO块的核心结构,其中,所述核心结构包括能够用用户电路和安全处理器配置的部分区,并且所述核心结构包括静态区,所述静态区包括受信配置管理器电路、耦合到所述受信配置管理器电路的部分重新配置接口电路、以及多路复用器,当所述安全处理器处于所述部分区中时,所述多路复用器通过第一通信链路耦合到所述受信配置管理器,并且通过第二通信链路耦合到所述安全处理器;
本地存储器,所述本地存储器通过第三通信链路耦合到所述多路复用器,其中,当所述安全处理器被配置到所述部分区中时,所述受信配置管理器电路和所述安全处理器能够通过所述多路复用器而多路复用到所述本地存储器,并且所述受信配置管理器通过第四通信链路耦合到所述多路复用器的控制输入,以控制由所述多路复用器进行多路复用;
非易失性存储器,所述非易失性存储器通过第五通信链路耦合到所述受信配置管理器,并且存储用于安全处理器的第一数据,其中,被配置到所述部分区中的所述第一数据是所述安全处理器;以及
主机系统,所述主机系统包括存储器,其中,所述存储器通过第六通信链路耦合到所述受信配置管理器电路,所述存储器存储用于用户电路的第二数据,并且被配置到所述部分区中的所述第二数据是所述用户电路,其中,当所述第二数据通过所述受信配置管理器、通过所述安全处理器并且通过所述多路复用器从所述主机的所述存储器被加载到所述本地存储器时,所述安全处理器适合于验证所述第二数据。
19.根据权利要求18所述的系统,还包括PCIe卡,其中,所述可配置IC管芯、所述本地存储器和所述非易失性存储器安装在所述PCIe卡上,并且所述PCIe卡通过PCIe插槽耦合到所述主机系统。
20.根据权利要求18所述的系统,其中,所述主机的所述存储器通过第七通信链路耦合到所述安全处理器,当所述安全处理器被配置到所述部分区中时,所述第七通信链路至少部分地被配置到所述核心结构中,并且所述第七通信链路不是用于所述受信配置管理器的通信链路。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/586,131 | 2019-09-27 | ||
US16/586,131 US20200167506A1 (en) | 2019-09-27 | 2019-09-27 | Security Architecture for Partial Reconfiguration of a Configurable Integrated Circuit Die |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112583582A true CN112583582A (zh) | 2021-03-30 |
Family
ID=70770825
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010582863.XA Pending CN112583582A (zh) | 2019-09-27 | 2020-06-23 | 用于可配置集成电路管芯的部分重新配置的安全架构 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20200167506A1 (zh) |
CN (1) | CN112583582A (zh) |
DE (1) | DE102020123398A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10250572B2 (en) * | 2016-09-29 | 2019-04-02 | Amazon Technologies, Inc. | Logic repository service using encrypted configuration data |
US10162921B2 (en) | 2016-09-29 | 2018-12-25 | Amazon Technologies, Inc. | Logic repository service |
US10642492B2 (en) | 2016-09-30 | 2020-05-05 | Amazon Technologies, Inc. | Controlling access to previously-stored logic in a reconfigurable logic device |
US11115293B2 (en) | 2016-11-17 | 2021-09-07 | Amazon Technologies, Inc. | Networked programmable logic service provider |
CN117369906B (zh) * | 2023-12-07 | 2024-02-09 | 成都市楠菲微电子有限公司 | Pcie验证平台、方法、装置、存储介质及电子设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6785816B1 (en) * | 2000-05-01 | 2004-08-31 | Nokia Corporation | System and method for secured configuration data for programmable logic devices |
US9886072B1 (en) * | 2013-06-19 | 2018-02-06 | Altera Corporation | Network processor FPGA (npFPGA): multi-die FPGA chip for scalable multi-gigabit network processing |
US9672385B2 (en) * | 2013-10-07 | 2017-06-06 | Microsemi SoC Corporation | Method of improving FPGA security using authorization codes |
US10691803B2 (en) * | 2016-12-13 | 2020-06-23 | Amazon Technologies, Inc. | Secure execution environment on a server |
US10902132B2 (en) * | 2017-08-25 | 2021-01-26 | Graf Research Corporation | Private verification for FPGA bitstreams |
US11562101B2 (en) * | 2017-11-13 | 2023-01-24 | Intel Corporation | On-device bitstream validation |
US11880468B2 (en) * | 2018-01-12 | 2024-01-23 | Unm Rainforest Innovations | Autonomous, self-authenticating and self-contained secure boot-up system and methods |
-
2019
- 2019-09-27 US US16/586,131 patent/US20200167506A1/en not_active Abandoned
-
2020
- 2020-06-23 CN CN202010582863.XA patent/CN112583582A/zh active Pending
- 2020-09-08 DE DE102020123398.1A patent/DE102020123398A1/de active Pending
Also Published As
Publication number | Publication date |
---|---|
DE102020123398A1 (de) | 2021-04-01 |
US20200167506A1 (en) | 2020-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112583582A (zh) | 用于可配置集成电路管芯的部分重新配置的安全架构 | |
US12001826B2 (en) | Device firmware update techniques | |
US20240111879A1 (en) | Protected data accesses using remote copy operations | |
JP7416775B2 (ja) | 周辺デバイス | |
Diguet et al. | NOC-centric security of reconfigurable SoC | |
US20190199692A1 (en) | Logic repository service using encrypted configuration data | |
CN106575257B (zh) | 用于改进存储器系统的效率的系统及方法 | |
US10963001B1 (en) | Client configurable hardware logic and corresponding hardware clock metadata | |
CN113785548B (zh) | 用于实施数据中心中的有效载荷安全性策略的证明服务 | |
US11722300B2 (en) | Chip, private key generation method, and trusted certification method | |
US11568088B2 (en) | Method, processor and device for checking the integrity of user data | |
WO2020029254A1 (zh) | 一种SoC芯片及总线访问控制方法 | |
US10355861B2 (en) | Chassis-based cryptographic affinities | |
CN110622161A (zh) | 可重新配置装置比特流密钥认证 | |
US20220292203A1 (en) | Technologies for device attestation | |
WO2022125714A1 (en) | Multi-chip secure and programmable systems and methods | |
CN117493026B (zh) | 一种多主机与多计算快速链接内存设备系统及其应用设备 | |
US9946826B1 (en) | Circuit design implementations in secure partitions of an integrated circuit | |
WO2023160701A1 (zh) | 一种组件通信方法及计算设备 | |
US20220329437A1 (en) | Flexible security enclave for protecting data at rest and in motion | |
KR20170138412A (ko) | 장치의 시스템 온 칩의 보안 모듈로의 복수의 액세스를 관리하기 위한 디바이스 | |
US11115383B2 (en) | System on chip firewall memory architecture | |
US12056505B2 (en) | Distributed configuration of programmable devices | |
JP7446708B2 (ja) | データを処理するための方法および装置 | |
WO2020263298A1 (en) | Data authentication for storage systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20241008 Address after: California, USA Applicant after: Altera Corp. Country or region after: U.S.A. Address before: California, USA Applicant before: INTEL Corp. Country or region before: U.S.A. |