CN115859383A - 集成电路封装重新配置机构 - Google Patents

集成电路封装重新配置机构 Download PDF

Info

Publication number
CN115859383A
CN115859383A CN202210881964.6A CN202210881964A CN115859383A CN 115859383 A CN115859383 A CN 115859383A CN 202210881964 A CN202210881964 A CN 202210881964A CN 115859383 A CN115859383 A CN 115859383A
Authority
CN
China
Prior art keywords
package
configuration information
volatile memory
configuration
test system
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
Application number
CN202210881964.6A
Other languages
English (en)
Inventor
G·约维诺
B·皮丽丽
N·P·沙阿
P·罗杰斯
D·帕尔默
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN115859383A publication Critical patent/CN115859383A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2113/00Details relating to the application field
    • G06F2113/18Chip packaging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/02System on chip [SoC] design

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Storage Device Security (AREA)

Abstract

提出了集成电路封装重新配置机构。公开了一种装置。该装置包括集成电路IC封装,该集成电路封装包括多个IC;用于存储配置信息的非易失性存储器,该配置信息包括定义多个IC的操作的设置,以及用于接收来自非易失性存储器的表示封装的最终配置的配置位的配置寄存器。

Description

集成电路封装重新配置机构
技术领域
本申请涉及集成电路封装重新配置机构。
背景技术
集成电路(IC)封装(诸如片上系统(SOC))的配置(或编程)需要存储配置信息。然而,由于配置信息只能被编程一次,IC封装目前不能被重新编程。
发明内容
提出了一种装置,包括集成电路IC封装,集成电路IC封装包括:多个IC;非易失性存储器,存储配置信息,所述配置信息包括定义所述多个IC的操作的设置;以及配置寄存器,从所述非易失性存储器接收表示所述封装的最终配置的配置位。
还提出了相应的方法、计算机可读介质、系统和设备。
附图说明
为了能够详细理解本发明实施例的上述特征的方式,可以通过参考实施例来对上述简要概括的实施例进行更具体的描述,其中一些在附图中示出。然而,需要注意的是,附图仅图示了本发明的实施例的典型实施例,因此不应被认为是对其范围的限制,因为该实施例可以允许其他同等有效的实施例。
图1图示了计算设备的一个实施例。
图2图示了平台的一个实施例。
图3图示了对IC封装进行编程的系统的一个实施例。
图4A是图示用于对IC封装进行编程的过程的一个实施例的流程图。
图4B图示了IC封装的配置流程的一个实施例。
图5是图示用于对IC封装进行编程的制造重新配置过程的一个实施例的流程图。
图6图示了说明性电子计算设备的示意图的一个实施例。
具体实施方式
在以下描述中,阐述了许多具体细节以提供对本发明的实施例的更透彻的理解。然而,对于本领域技术人员显而易见的是,可以在没有这些具体细节中的一者或多者的情况下实施本发明的实施例。在其他情况下,未描述众所周知的特征以避免导致本发明的实施例不清楚。
在实施例中,提供了重新配置IC封装以修改封装属性(例如,库存单位(SKU)属性)的机构。封装配置包含在非易失性存储中,可以对其进行配置和重新配置以修改封装属性。
对“一个实施例”、“实施例”、“示例实施例”、“各种实施例”等的引用表明,如此描述的一个或多个实施例可以包括特定的特征、结构或特性,但并非每个实施例都必须包括特定的特征、结构或特性。此外,一些实施例可以具有针对其他实施例描述的一些、全部特征或没有特征。
在以下描述和权利要求中,可以使用术语“耦合”及其派生词。“耦合”用于表示两个或多个元件相互协作或相互作用,但它们之间可能有也可能没有介入的物理或电气部件。
如在权利要求书中使用的,除非另有说明,否则使用序数形容词“第一”、“第二”、“第三”等来描述一个共同的元件,仅表示相同元件的不同实例被提及并且并非意在暗示如此描述的元件必须在给定的顺序中,无论是时间上的、空间上的、排序上的还是以任何其他方式。
图1图示了计算设备100的一个实施例。根据一个实施例,计算设备100包括托管集成电路(“IC”)(诸如片上系统(“SoC”或“SOC”))的计算机平台,片上系统在单个芯片上集成计算设备100的各种硬件和/或软件部件。如图所示,在一个实施例中,计算设备100可以包括任何数量和类型的硬件和/或软件部件,诸如(但不限于)图形处理单元114(“GPU”或简称为“图形处理器”)、图形驱动器116(也称为“GPU驱动器”、“图形驱动逻辑”、“驱动逻辑”、用户模式驱动程序(UMD)、UMD、用户模式驱动程序框架(UMDF)、UMDF,或简称为“驱动程序”),中央处理单元112(“CPU”或简称“应用处理器”)、存储器108、网络设备、驱动程序等,以及输入/输出(I/O)源104,诸如触摸屏、触摸面板、触摸板、虚拟或常规键盘、虚拟或常规鼠标、端口、连接器等。计算设备100可包括用作计算设备100的硬件和/或物理资源与用户之间的接口的操作系统(OS)106。
应当理解,对于某些实施方式,比上述示例配备更少或更多装备的系统可能是优选的。因此,计算设备100的配置可能因实施方式而异,这取决于许多因素,诸如价格限制、性能要求、技术改进或其他情况。
实施例可以实现为以下任何一种或组合:使用母板互连的一个或多个微芯片或集成电路、硬连线逻辑、由存储器设备存储并由微处理器执行的软件、固件、专用集成电路(ASIC)和/或现场可编程门阵列(FPGA)。举例来说,术语“逻辑”、“模块”、“部件”、“引擎”和“机构”可以包括软件或硬件和/或其组合,诸如固件。
实施例可以使用一个或多个存储器芯片、控制器、CPU(中央处理单元)、微芯片或使用主板互连的集成电路、专用集成电路(ASIC)和/或现场可编程门阵列(FPGA)来实现。举例来说,术语“逻辑”可以包括软件或硬件和/或软件和硬件的组合。
图2图示了平台200的一个实施例,包括类似于上面讨论的计算设备100的SOC210。如图2所示,SOC 210包括经由系统架构205耦合的其他计算设备部件(例如,存储器108和CPU 112)。在一个实施例中,系统架构205包括集成片上系统架构(IOSF)以提供标准化的片上互连协议,以用于耦合SOC 210内的互连协议(IP)代理230(例如,IP代理230A和230B)。在这样的实施例中,互连协议提供标准化接口以使第三方能够设计诸如IP代理的逻辑以并入SOC 210中。
根据实施例,IP代理230可以包括通用处理器(例如,有序或无序内核)、固定功能单元、图形处理器、I/O控制器、显示控制器等。在这样的实施例中,每个IP代理230包括硬件接口235(例如,235A和235B)以提供标准化以使IP代理230能够与SOC 210部件通信。例如,在IP代理230是第三方视觉处理单元(VPU)的实施例中,接口235提供标准化以使VPU能够经由架构205访问存储器108。
此外,SOC 210耦合到非易失性存储器250。非易失性存储器250可以实现为外围部件互连高速(PCIe)存储驱动器,诸如固态驱动器(SSD)或非易失性存储器高速(NVMe)驱动器。在一个实施例中,非易失性存储器250被实现为存储平台200固件255。在一个实施例中,SOC 210经由串行外围接口(SPI)201耦合到非易失性存储器250。在这样的实施例中,SOC210包括耦合在SPI 201和系统架构205之间的SPI控制器260。在进一步的实施例中,SPI控制器260是闪存控制器,其被实现为用于控制经由SPI 201对非易失性存储器250的访问。
SOC 210还包括为SOC 210执行各种安全操作(例如,安全处理、密码功能等)的安全引擎240。在一个实施例中,安全引擎240包括IP代理230,其被实现为执行安全操作。在一个实施例中,安全引擎240是作为信任根(或平台ROT)运行以确保在平台200上运行的硬件和软件的完整性(integrity)的密码处理器。如本文所用,ROT被定义为主机内的受信任计算模块中的一组功能,该模块始终受主机操作系统(OS)的信任。ROT充当独立的计算引擎,诸如安全引擎240,其控制平台200上的受信任计算平台密码处理器。尽管上面参考单个SOC210进行了描述,但其他实施例可以实现任何数量的SOC 210。
SOC 210内的部件(例如,CPU 112或一个或多个IP代理230)包括在使用之前必须配置的IC封装。如上所述,后封装配置目前涉及在制造期间对熔丝位(fuse bits)进行编程,这定义了封装在使用时的操作。然而,目前无法修改此封装配置。随着封装复杂性的增加(例如,越来越多的管芯集成到封装中),报废封装的成本也增加,因为封装中的一个管芯失效会转化为丢弃具有多个管芯的封装)。因此,报废具有工作部件的IC封装会导致成本显著增加。
根据一个实施例,提供了一种促进IC封装重新配置的机构。在这样的实施例中,非易失性存储器包括在封装内以存储配置信息,该配置信息包括被实施以定义IC封装内的集成电路的操作(例如,在封装制造工艺期间)的设置。在进一步的实施例中,配置信息包括配置映像,该配置映像用对IC封装是唯一的加密密钥加密。在本实施例中,加密密钥可以仅在从非易失性存储器读取之后才被解密。在又一个实施例中,配置映像使用与IC封装相关联的私钥签名,该私钥在从非易失性存储器读取之后使用与IC封装相关联的公钥进行验证。在更进一步的实施例中,可以实施不同的密码算法(或协议)以提供非易失性存储器的机密性、完整性和重放保护。
图3图示了包括封装310和测试系统320的系统300的一个实施例。如图3所示,封装310包括多个IC管芯(或IC)312(例如,312A-312N)、非易失性存储器315、安全引擎314和配置寄存器318。IC管芯312可以表示包括在上面关于图2讨论的SOC 210中的部件(例如,CPU、IP、安全引擎等)。
非易失性存储器315被实现为存储封装配置信息,该信息包括定义封装310的操作(例如,封装310内的IC 312的操作)的设置。在一个实施例中,非易失性存储器315包括非易失性随机存取存储器(NVRAM)或其他类型的持久性存储元件。在另一个实施例中,非易失性存储器315包括复杂可编程逻辑器件(CPLD)NVRAM。配置寄存器318被实现为存储从非易失性存储器315接收到的配置位。配置位表示封装310的最终配置。
安全引擎314是为封装310提供安全性而实施的密码处理器。在一个实施例中,安全引擎314促进封装310进入安全模式以确保只有授权用户有权访问程序并将配置信息更新(例如,重新配置)到非易失性存储器315。在这样的实施例中,使用对封装310唯一的私钥进入安全模式以解锁封装310。在一个实施例中,使用秘密解锁密钥导出私钥。此外,公钥的散列存储在封装310中。因此,将重构私钥以便从测试系统320更新非易失性存储器315中的产品配置。在进一步的实施例中,用于加密和解密产品配置的高级加密标准(AES)对称密钥也存储在封装310中。尽管在图3中显示为独立部件,但其他实施例可以在每个IC管芯312内以单独的安全引擎314为特征。
在系统引导期间,封装310退出重置并派生其密钥。随后,安全引擎314从非易失性存储器315读取数据、验证数据、执行安全检查,并使用存储的加密密钥对其进行解密。然后可以将配置信息作为配置位填充到配置寄存器318中。然后完成重置以允许配置传播到管芯的其余部分。
测试系统320包括测试程序322,其将封装配置信息加载到非易失性存储器315和存储器325以存储从高安全模块(HSM)330接收到的所接收的加密密钥。在一个实施例中,非易失性存储器315编程过程类似于重新编程过程。结果,可以实现单个测试程序322来管理原始封装310编程的安装以及执行重新配置的编程。
HSM 330包括计算设备,该计算设备包括一个或多个密码处理器,该密码处理器生成和存储要在系统300中使用的密码密钥。在一个实施例中,HSM 330存储用于对非易失性存储器315进行编程的解锁密钥。在这样的实施例中,测试系统320从HSM 330获取解锁密钥以便于对非易失性存储器315进行编程。因此,非易失性存储器315不能在没有经由解锁密钥对测试系统320(或任何其他实体)进行验证的情况下被编程/重新编程,这防止了非易失性存储器315的未经授权的配置。
图4A是图示用于对IC封装进行编程的过程的一个实施例的流程图。在处理框405处,为封装生成解锁密钥。在一个实施例中,使用从HSM接收到的种子位来生成解锁密钥以生成与IC封装相关联的唯一密钥。然而,其他实施例可以实施不同的机构来生成解锁密钥。在处理框410处,与IC封装相关联的解锁密钥和唯一标识符作为解锁数据被存储到HSM中以供以后使用。在一个实施例中,处理框405和410仅在IC封装的原始编程期间执行。
在处理框415处,IC封装被插入到插座中以用于进行配置(或重新配置)。在处理框420处,测试系统从HSM检索解锁数据。在处理框425处,测试系统使用解锁数据来解锁IC封装。如上所述,在没有与IC封装相关联的解锁数据的情况下,测试系统被禁止访问IC封装。
在处理框430处,测试程序生成用于对IC封装进行编程的配置映像。在一个实施例中,生成配置映像包括生成融合到IC封装中的封装熔丝映像。在重新编程过程中,IC封装验证生成的映像的值以确定该值是否等于与先前存储的映像相关联的值。在进一步的实施例中,测试程序生成用于非易失性存储器的配置编程的字符串映像。在这样的实施例中,测试程序可以在传输到IC封装之前压缩字符串映像。
在处理框435处,配置映像被传送到IC封装以用于非易失性存储器的编程。在处理框440处,IC封装管理压缩数据的加密(例如,经由使用AES)。在处理框445处,加密的压缩数据被存储在非易失性存储器中。在处理框450处,验证非易失性存储器程序以确认它已被正确编程(例如,确定从非易失性存储器接收到的配置信息是否匹配由测试系统生成的配置映像)。
在一个实施例中,数据从非易失性存储器传输到安全引擎。随后,安全引擎对数据进行解密和解压缩,然后将解密/未压缩的数据传输到测试程序,在测试程序中验证程序以检查编程的映像。解密和解压缩能够对非易失性存储器数据进行端到端检查,以便最终配置到IC封装的配置寄存器中。在确定非易失性存储器内的数据不正确时,测试程序可以对非易失性存储器重新编程。
图4B图示了IC封装的配置流程的另一个实施例。如图4B所示,使用从HSM接收到的种子位为封装生成解锁密钥以生成与IC封装相关联的唯一密钥,并且将解锁密钥和与IC封装相关联的唯一标识符作为解锁数据存储到HSM中以备后用。随后,测试系统从HSM中检索解锁数据,并使用解锁数据对IC封装进行解锁。然后测试程序生成配置映像并将配置映像传输到IC封装以用于对非易失性存储器的编程。IC封装管理压缩数据的加密并将加密的压缩数据存储在非易失性存储器中。最后,验证非易失性存储器程序以确认它已被正确编程。
图5是图示用于对IC封装进行编程的制造重新配置过程的一个实施例的流程图。如图5所示,封装已组装、测试配置并放入库存中。随后,封装可以在放入库存后重新配置。
图6是根据一些实施例的用于实现针对对抗性攻击的增强保护的说明性电子计算设备的示意图。在一些实施例中,计算设备700包括一个或多个处理器710,处理器710包括一个或多个处理器内核718和可信执行环境TEE 764,该TEE包括机器学习服务飞地(MLSE)780。在一些实施例中,计算设备700包括硬件加速器768,该硬件加速器包括密码引擎782和机器学习模型784。在一些实施例中,计算设备将提供针对ML对抗性攻击的增强保护,如图1-5中提供的。
计算设备700可以另外包括以下中的一个或多个:高速缓存762、图形处理单元(GPU)712(在一些实现方式中可以是硬件加速器)、无线输入/输出(I/O)接口720、有线I/O接口730、存储器电路740、电源管理电路750、非瞬态存储设备760和用于连接到网络772的网络接口770。以下讨论提供了对形成说明性计算设备700的部件的简要概括描述。示例、非限制性计算设备700可以包括桌面计算设备、刀片服务器设备、工作站或类似设备或系统。
在实施例中,处理器内核718能够执行机器可读指令集714、从一个或多个存储设备760读取数据和/或指令集714以及将数据写入一个或多个存储设备760。相关领域的技术人员将理解,所示实施例以及其他实施例可以用其他基于处理器的设备配置来实践,所述设备包括便携式电子或手持电子设备,例如智能手机、便携式计算机、可穿戴计算机、消费电子产品、个人计算机(“PC”)、网络PC、小型计算机、服务器刀片、大型计算机等。
处理器内核718可以包括任何数量的硬连线或可配置电路,其中一些或全部可以包括部分或全部设置在PC、服务器或其他能够执行处理器可读指令的计算系统中的电子部件、半导体器件和/或逻辑元件的可编程和/或可配置组合。
计算设备700包括总线或类似的通信链路716,其可通信地耦合并促进各种系统部件之间的信息和/或数据交换,所述系统部件包括处理器内核718、高速缓存762、图形处理器电路712、一个或多个无线I/O接口720、一个或多个有线I/O接口730、一个或多个存储设备760和/或一个或多个网络接口770。计算设备700在本文中可以以单数形式指代,但这并不旨在将实施例限制为单个计算设备700,因为在某些实施例中,可能有不止一个计算设备700并入、包括或包含任意数量的可通信耦合、并置或远程联网的电路或设备。
处理器内核718可以包括能够执行机器可读指令集的当前可用或未来开发的器件的任何数量、类型或组合。
处理器内核718可以包括(或耦合到)但不限于任何当前或未来开发的单核或多核处理器或微处理器,诸如:一个或多个片上系统(SOC);中央处理单元(CPU);数字信号处理器(DSP);图形处理单元(GPU);专用集成电路(ASIC)、可编程逻辑单元、现场可编程门阵列(FPGA)等。除非另有说明,否则图6中所示的各种框的构造和操作都是常规设计。因此,本文不需要更详细地描述这些框,因为它们将被相关领域的技术人员理解。互连计算设备700的至少一些部件的总线716可以采用任何当前可用的或未来开发的串行或并行总线结构或架构。
系统存储器740可以包括只读存储器(“ROM”)742和随机存取存储器(“RAM”)746。ROM 742的一部分可用于存储或以其他方式保留基本输入/输出系统(“BIOS”)744。BIOS744向计算设备700提供基本功能,例如通过使处理器内核718加载和/或执行一个或多个机器可读指令集714。在实施例中,一个或多个机器可读指令集714中的至少一些使处理器内核718的至少一部分提供、创建、产生、转变和/或用作专用的、特定的和特殊的机器,例如文字处理机、数字图像采集机、媒体播放机、游戏系统、通信设备、智能手机或类似设备。
计算设备700可以包括至少一个无线输入/输出(I/O)接口720。至少一个无线I/O接口720可通信地耦合到一个或多个物理输出设备722(触觉设备、视频显示器、音频输出设备、硬拷贝输出设备等)。至少一个无线I/O接口720可通信地耦合到一个或多个物理输入设备724(指点设备、触摸屏、键盘、触觉设备等)。至少一个无线I/O接口720可以包括任何当前可用的或未来开发的无线I/O接口。示例无线I/O接口包括但不限于:
Figure BDA0003764524070000091
近场通信(NFC)等。
计算设备700可以包括一个或多个有线输入/输出(I/O)接口730。至少一个有线I/O接口730可通信地耦合到一个或多个物理输出设备722(触觉设备、视频显示器、音频输出设备、硬拷贝输出设备等)。至少一个有线I/O接口730可通信地耦合到一个或多个物理输入设备724(指点设备、触摸屏、键盘、触觉设备等)。有线I/O接口730可以包括任何当前可用的或未来开发的I/O接口。示例有线I/O接口包括但不限于:通用串行总线(USB)、IEEE 1394(“火线”)等。
计算设备700可以包括一个或多个通信耦合的非暂时性数据存储设备760。数据存储设备760可以包括一个或多个硬盘驱动器(HDD)和/或一个或多个固态存储设备(SSD)。一个或多个数据存储设备760可以包括任何当前或未来开发的存储装置、网络存储设备和/或系统。此类数据存储设备760的非限制性示例可包括但不限于任何当前或未来开发的非瞬态存储装置或设备,诸如一个或多个磁存储设备、一个或多个光学存储设备、一个或多个电致电阻存储设备、一个或多个分子存储设备、一个或多个量子存储设备或它们的各种组合。在一些实施方式中,一个或多个数据存储设备760可以包括一个或多个可移动存储设备,诸如一个或多个闪存驱动器、闪存、闪存单元或能够通信地耦合到计算设备700和从其解耦的类似装置或设备。
一个或多个数据存储设备760可以包括将相应的存储设备或系统通信地耦合到总线716的接口或控制器(未示出)。一个或多个数据存储设备760可以存储、保留或以其他方式包含机器可读指令集、数据结构、程序模块、数据存储、数据库、逻辑结构,和/或对处理器内核718和/或图形处理器电路712和/或在处理器内核718和/或图形处理器电路712上执行或由处理器内核718和/或图形处理器电路712执行的一个或多个应用有用的其他数据。在一些情况下,一个或多个数据存储设备760可以通信地耦合到处理器内核718,例如经由总线716或经由一个或多个有线通信接口730(例如,通用串行总线或USB);一个或多个无线通信接口720(例如,
Figure BDA0003764524070000101
近场通信或NFC);和/或一个或多个网络接口770(IEEE802.3或以太网、IEEE 802.11或/>
Figure BDA0003764524070000102
等)。
处理器可读指令集714和其他程序、应用、逻辑集和/或模块可以全部或部分存储在系统存储器740中。这样的指令集714可以全部或部分地从一个或多个数据存储设备760传送。在处理器内核718和/或图形处理器电路712执行期间,指令集714可以全部或部分地加载、存储或以其他方式保留在系统存储器740中。
计算设备700可以包括控制能量存储设备752的一个或多个操作方面的电源管理电路750。在实施例中,能量存储设备752可以包括一个或多个一次(即,不可充电)或二次(即,可充电)电池或类似的能量存储设备。在实施例中,能量存储设备752可以包括一个或多个超电容器或超级电容器。在实施例中,电源管理电路750可以改变、调整或控制从外部电源754到能量存储设备752和/或到计算装置700的能量流。电源754可包括但不限于太阳能系统、商业电网、便携式发电机、外部能量存储设备或其任何组合。
为方便起见,处理器内核718、图形处理器电路712、无线I/O接口720、有线I/O接口730、存储设备760和网络接口770被示为经由总线716彼此可通信地耦合,从而提供上述部件之间的连接。在替代实施例中,上述部件可以以与图6中所示不同的方式通信地耦合。例如,一个或多个上述部件可以直接耦合到其他部件,或者可以经由一个或多个中间部件(未示出)相互耦合。在另一示例中,一个或多个上述部件可以集成到处理器内核718和/或图形处理器电路712中。在一些实施例中,可以省略总线716的全部或一部分,并且使用合适的有线或无线连接将部件直接彼此耦合。
例如,实施例可以作为计算机程序产品提供,该计算机程序产品可以包括一个或多个暂时性或非暂时性机器可读存储介质,该介质上存储有机器可执行指令,当由诸如计算机的一个或多个机器执行时,计算机或其他电子设备的网络可以致使一个或多个机器执行根据本文描述的实施例的操作。机器可读介质可以包括但不限于软盘、光盘、CD-ROM(光盘只读存储器)和磁光盘、ROM、RAM、EPROM(可擦除可编程只读存储器)、EEPROM(电可擦可编程只读存储器)、磁卡或光卡、闪存或其他类型的适合存储机器可执行指令的介质/机器可读介质。
一些实施例涉及示例1,其包括一种装置,该装置包括集成电路(IC)封装,该集成电路封装包括多个IC、用于存储配置信息的非易失性存储器,该配置信息包括定义多个IC的操作的设置,以及用于接收来自非易失性存储器的表示封装的最终配置的配置位的配置寄存器。
示例2包括示例1所述的主题,其中,封装从测试系统接收配置映像。
示例3包括示例1和2所述的主题,其中,IC封装还包括密码处理器,该密码处理器用于加密从测试系统接收到的配置信息并将加密的配置信息存储在非易失性存储器中。
示例4包括示例1-3所述的主题,其中,密码处理器验证测试系统以保护对非易失性存储器的访问。
示例5包括示例1-4所述的主题,其中,密码处理器从测试系统接收解锁数据并且响应于接收到解锁数据而解锁非易失性存储器。
示例6包括示例1-5所述的主题,其中,解锁数据包括解锁密钥和与IC封装相关联的唯一信息。
示例7包括示例1-6所述的主题,其中,密码处理器接收加密的配置信息以促进配置信息的验证。
示例8包括示例1-7所述的主题,其中,密码处理器解密加密的配置信息并将配置信息传输到测试系统以供验证。
一些实施例涉及示例9,其包括一种方法,包括在集成电路(IC)封装处从测试系统接收配置信息,其中,配置信息包括定义封装的操作并将配置信息编程到非易失性存储器的设置。
示例10包括示例9所述的主题,还包括将表示封装的最终配置的配置位从非易失性存储器存储到配置寄存器。
示例11包括示例9和10所述的主题,还包括加密配置信息并将加密的配置信息存储在非易失性存储器中。
示例12包括示例9-11所述的主题,还包括验证测试系统。
示例13包括示例9-12所述的主题,其中,验证测试系统包括从测试系统接收解锁数据和响应于接收到解锁数据而解锁公钥。
示例14包括示例9-13所述的主题,其中,解锁数据包括解锁密钥和与IC封装相关联的唯一信息。
示例15包括示例9-14所述的主题,还包括接收加密的配置信息、解密加密的配置信息以及将配置信息传输到测试系统以供验证。
一些实施例涉及示例16,其包括至少一种计算机可读介质,该介质上存储有指令,当由一个或多个处理器执行时,该指令使处理器从安全处理器接收解锁数据,使用解锁数据解锁集成电路封装(IC)处的非易失性存储器,生成配置映像并且利用配置映像作为配置信息对非易失性存储器进行编程,其中,配置信息包括定义IC封装的操作的设置。
示例17包括示例16所述的主题,当由一个或多个处理器执行时,所述指令还使处理器验证非易失性存储器的编程。
示例18包括示例16和17所述的主题,其中,验证非易失性存储器的编程包括确定从非易失性存储器接收到的配置信息是否与配置映像匹配。
示例19包括示例16-18所述的主题,当由一个或多个处理器执行时,所述指令还使处理器在确定从非易失性存储器接收到的配置信息没有匹配配置映像时利用该配置映像对该非易失性存储器重新编程。
示例20包括示例16-19所述的主题,当由一个或多个处理器执行时,所述指令还使处理器存储解锁数据。
以上已经结合具体实施例对本实施例进行了描述。然而,本领域的技术人员将理解,在不脱离如所附权利要求中阐述的实施例的更广泛的精神和范围的情况下,可以对其进行各种修改和改变。因此,前述描述和附图被认为是说明性的而不是限制性的。

Claims (20)

1.一种装置,包括:
集成电路IC封装,包括:
多个IC;
非易失性存储器,存储配置信息,所述配置信息包括定义所述多个IC的操作的设置;以及
配置寄存器,从所述非易失性存储器接收表示所述封装的最终配置的配置位。
2.根据权利要求1所述的装置,其中,所述封装从测试系统接收配置映像。
3.根据权利要求2所述的装置,其中,所述IC封装还包括密码处理器,所述密码处理器加密从所述测试系统接收到的配置信息并将加密的配置信息存储在所述非易失性存储器中。
4.根据权利要求3所述的装置,其中,所述密码处理器验证所述测试系统以保护对所述非易失性存储器的访问。
5.根据权利要求4所述的装置,其中,所述密码处理器从所述测试系统接收解锁数据并且响应于接收到所述解锁数据而解锁所述非易失性存储器。
6.根据权利要求5所述的装置,其中,所述解锁数据包括解锁密钥和与所述IC封装相关联的唯一信息。
7.根据权利要求3所述的装置,其中,所述密码处理器接收所述加密的配置信息以促进所述配置信息的验证。
8.根据权利要求7所述的装置,其中,所述密码处理器解密加密的配置信息并验证所述配置信息的完整性。
9.一种方法,包括:
在集成电路IC封装处从测试系统接收配置信息,其中,所述配置信息包括定义所述封装的操作的设置;以及
将所述配置信息编程到非易失性存储器。
10.根据权利要求9所述的方法,还包括将表示所述封装的最终配置的配置位从所述非易失性存储器存储到配置寄存器。
11.根据权利要求10所述的方法,还包括:
加密所述配置信息;以及
将加密的配置信息存储在所述非易失性存储器中。
12.根据权利要求9所述的方法,还包括验证所述测试系统。
13.根据权利要求12所述的方法,其中,验证所述测试系统包括:
从所述测试系统接收解锁数据;以及
响应于接收到所述解锁数据而解锁公钥。
14.根据权利要求13所述的方法,其中,所述解锁数据包括解锁密钥和与所述IC封装相关联的唯一信息。
15.根据权利要求13所述的方法,还包括使用所述公钥验证所述配置信息的完整性。
16.根据权利要求13所述的方法,还包括接收加密的配置信息。
17.根据权利要求15所述的方法,还包括:
解密加密的配置信息;以及
将所述配置信息传输到所述测试系统以供验证。
18.至少一个计算机可读介质,其上存储有指令,当由一个或多个处理器执行时,所述指令使得所述处理器执行根据权利要求9-15所述的方法。
19.一种系统,包括实施或执行根据权利要求9-15中任一项所述的方法的机构。
20.一种设备,包括用于执行根据权利要求9-15中任一项所述的方法的装置。
CN202210881964.6A 2021-09-22 2022-07-26 集成电路封装重新配置机构 Pending CN115859383A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/481,734 US20220004398A1 (en) 2021-09-22 2021-09-22 Integrated circuit package reconfiguration mechanism
US17/481,734 2021-09-22

Publications (1)

Publication Number Publication Date
CN115859383A true CN115859383A (zh) 2023-03-28

Family

ID=79167490

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210881964.6A Pending CN115859383A (zh) 2021-09-22 2022-07-26 集成电路封装重新配置机构

Country Status (4)

Country Link
US (1) US20220004398A1 (zh)
EP (1) EP4156014A1 (zh)
CN (1) CN115859383A (zh)
DE (1) DE102022120902A1 (zh)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE504446T1 (de) * 2002-12-02 2011-04-15 Silverbrook Res Pty Ltd Totdüsenausgleich
US7971072B1 (en) * 2005-03-10 2011-06-28 Xilinx, Inc. Secure exchange of IP cores
US9172647B2 (en) * 2013-04-25 2015-10-27 Ixia Distributed network test system
US11237757B2 (en) * 2017-07-10 2022-02-01 Intel Corporation Data storage for accelerating functions
WO2019217929A1 (en) * 2018-05-11 2019-11-14 Lattice Semiconductor Corporation Failure characterization systems and methods for programmable logic devices
US10867095B2 (en) * 2019-03-19 2020-12-15 Intel Corporation Methods and apparatus for secure implemention of integrated circuits
US11537732B2 (en) * 2020-04-27 2022-12-27 Hewlett Packard Enterprise Development Lp Unlocking access of information responsive to validation of program codes of virtual entities

Also Published As

Publication number Publication date
DE102022120902A1 (de) 2023-03-23
US20220004398A1 (en) 2022-01-06
EP4156014A1 (en) 2023-03-29

Similar Documents

Publication Publication Date Title
US11971992B2 (en) Failure characterization systems and methods for erasing and debugging programmable logic devices
US9251380B1 (en) Method and storage device for isolating and preventing access to processor and memory used in decryption of text
CN106027261B (zh) 基于fpga的luks认证芯片电路及其密码恢复方法
CN209803788U (zh) 一种pcie可信密码卡
US11494520B2 (en) Reconfigurable device bitstream key authentication
US11928215B2 (en) Firmware verification mechanism
US11847228B2 (en) Platform security mechanism
EP4020295A1 (en) Platform security mechanism
US20230342459A1 (en) Platform security mechanism
EP4195079A1 (en) Hardware integrity verification mechanism
US11886316B2 (en) Platform measurement collection mechanism
EP4156014A1 (en) Integrated circuit package reconfiguration mechanism
US11693940B2 (en) Partitioned platform security mechanism
CN115510803A (zh) 熔丝配方更新机制
US11429289B2 (en) Memory map protection mechanism
CN112470158A (zh) 用于可编程逻辑器件的故障表征系统和方法
US11874739B2 (en) Error detection and correction in memory modules using programmable ECC engines
CN116830110A (zh) 多芯片安全可编程系统和方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication