CN113785292A - 将核心的执行锁定到数据中心中的许可可编程器件 - Google Patents
将核心的执行锁定到数据中心中的许可可编程器件 Download PDFInfo
- Publication number
- CN113785292A CN113785292A CN202080033115.4A CN202080033115A CN113785292A CN 113785292 A CN113785292 A CN 113785292A CN 202080033115 A CN202080033115 A CN 202080033115A CN 113785292 A CN113785292 A CN 113785292A
- Authority
- CN
- China
- Prior art keywords
- programmable
- signature
- checker
- whitelist
- list
- 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
- 239000004744 fabric Substances 0.000 claims abstract description 18
- 230000004044 response Effects 0.000 claims abstract description 9
- 238000012795 verification Methods 0.000 claims abstract description 9
- 230000015654 memory Effects 0.000 claims description 51
- 238000000034 method Methods 0.000 claims description 30
- 238000010586 diagram Methods 0.000 description 32
- 238000012545 processing Methods 0.000 description 26
- 230000006870 function Effects 0.000 description 20
- 238000013461 design Methods 0.000 description 16
- 230000002093 peripheral effect Effects 0.000 description 16
- 230000001133 acceleration Effects 0.000 description 9
- 230000003068 static effect Effects 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 3
- 235000019800 disodium phosphate Nutrition 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000012544 monitoring process Methods 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/106—Enforcing content protection by specific content processing
- G06F21/1064—Restricting content processing at operating system level
-
- 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/107—License processing; Key processing
-
- 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/123—Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
-
- 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/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/54—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
-
- 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/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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/73—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 by creating or determining hardware identification, e.g. serial numbers
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
- H04L9/3073—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3268—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Logic Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
一种用于计算机系统(102)的示例硬件加速器(122),包括可编程器件(128)并且还包括配置在可编程器件的可编程结构(3)中的内核逻辑(138)和在内核逻辑中的知识产权(IP)检查器电路(180)。IP检查器电路被配置为获取(1302)可编程器件的器件标识符(ID)和签名白名单(1004),签名白名单包括器件ID列表(1002)和签名(1010),验证(1104)签名白名单的签名,将器件ID与器件ID列表进行比较(1106),并且分别响应于器件ID列表中的器件ID的存在或不存在以及签名的验证来选择性地(1106)断言或取消断言内核逻辑的启用。
Description
技术领域
本公开的示例总体上涉及电子电路,并且具体地涉及将核心的执行锁定到数据中心中的许可可编程器件。
背景技术
历史上,可编程器件的知识产权(IP)核心(例如,预先实现的电路设计)的第三方开发商根据项目来将其IP许可给系统集成商。这允许系统集成商在任何数目的可编程器件上使用IP。对于数据中心应用,需要不同使用模型,其中,IP所有者允许数据中心所有者在特定数目的被授权可编程器件上执行其IP。如果数据中心所有者或第三方试图在许可器件以外的任何器件上使用IP,则IP无法操作是可取的。
发明内容
描述了用于将核心的执行锁定到数据中心中的许可可编程器件的技术。在一个示例中,一种用于计算机系统的硬件加速器包括可编程器件,并且还包括:配置在可编程器件的可编程结构中的内核逻辑;以及在内核逻辑中的知识产权(IP)检查器电路。IP检查器电路被配置为:获取可编程器件的器件标识符(ID)和签名白名单,签名白名单包括器件ID列表和签名;验证签名白名单的签名;将器件ID与器件ID列表进行比较;并且分别响应于器件ID列表中的器件ID的存在或不存在以及签名的验证来选择性地断言或取消断言内核逻辑的启用。
在另一示例中,一种计算机系统包括:处理系统;以及耦合到处理系统的硬件加速器。硬件加速器包括:配置在可编程器件的可编程结构中的内核逻辑;以及在内核逻辑中的知识产权(IP)检查器电路。IP检查器电路被配置为:获取可编程器件的器件标识符(ID)和签名白名单,签名白名单包括器件ID列表和签名;验证签名白名单的签名;将器件ID与器件ID列表进行比较;并且分别响应于器件ID列表中的器件ID的存在或不存在以及签名的验证来选择性地断言或取消断言内核逻辑的启用。
在另一示例中,一种将内核逻辑锁定到计算机系统中的硬件加速器的可编程器件的方法包括:在可编程器件的可编程结构中配置内核逻辑;在内核逻辑中的知识产权(IP)检查器电路处获取可编程器件的器件标识符(ID)和签名白名单,签名白名单包括器件ID列表和签名;验证签名白名单的签名;将器件ID与器件ID列表进行比较;并且由IP检查器电路分别响应于器件ID列表中的器件ID的存在或不存在以及签名的验证来选择性地断言或取消断言内核逻辑的启用。
这些和其他方面可以参考以下详细描述来理解。
附图说明
为了能够详细理解上述特征,可以通过参考示例实现来进行更具体的描述(上面简要概述),其中一些示例实现在附图中示出。然而,应当注意,附图仅示出了典型的示例实现并且因此不应当被认为是对其范围的限制。
图1是描绘根据示例的计算系统的框图。
图2是描绘根据示例的加速电路的框图。
图3是描绘根据示例的设计工具的框图。
图4是描绘根据示例的可编程器件的框图。
图5是描绘根据示例的可编程IC的框图。
图6是描绘根据示例的可编程IC的片上系统(SoC)实现的框图。
图7示出了可编程IC的现场可编程门阵列(FPGA)实现。
图8是描绘根据示例的云计算系统的框图。
图9是描绘根据示例的锁定内核以在特定可编程器件上执行的方法的流程图。
图10是描绘根据示例的生成器件ID的签名白名单的方法的框图。
图11是描绘根据示例的检查签名白名单的有效性的方法的框图。
图12是描绘根据示例的更新白名单的方法的流程图。
图13是描绘根据示例的IP检查器的框图。
图14是描绘根据另一示例的IP检查器的框图。
图15是描绘根据示例的IP检查器的检查器电路的框图。
图16A-C是描绘可编程器件中的器件ID位置的示例的框图。
图17是描绘根据示例将内核逻辑锁定到计算机系统中的硬件加速器的可编程器件的方法的流程图。
为了便于理解,在可能的情况下使用相同附图标记来表示附图共有的相同元素。可以预期,一个示例的元素可以有利地合并到其他示例中。
具体实施方式
以下参考附图描述各种特征。应当注意,这些图可以按比例绘制也可以不按比例绘制,并且在整个图中,类似结构或功能的元素由相同的附图标记表示。应当注意,这些图只是为了促进对特征的描述。它们并非旨在作为所要求保护的发明的详尽描述或对所要求保护的发明范围的限制。此外,所示示例不需要具有所示的所有方面或优点。结合特定示例描述的方面或优点不一定限于该示例,并且可以在任何其他示例中实践,即使没有如此说明或没有如此明确描述。
描述了用于将核心的执行锁定到数据中心中的许可可编程器件的技术。在一个示例中,IP检查功能被集成到数据中心应用中的部分可重新配置内核中,这允许标识个体可编程器件。如果该可编程器件在“白名单”上,则IP检查功能启用该可编程器件上的内核中的IP的操作。否则,IP检查功能禁用未被授权可编程器件上的IP的操作。IP检查功能可以抵抗攻击,例如使一个可编程器件看起来像另一可编程器件或通过修改“白名单”以包括其他可编程器件。IP检查功能有助于数据中心和IP所有者同意将附加的可编程器件添加到“白名单”。IP检查功能可以防止在没有加速电路的开发人员的适当授权的情况下大规模部署这样的加速电路。下面参考附图描述这些技术的这些和其他方面。
图1是描绘根据示例的计算系统100的框图。计算系统100可以位于数据中心等中。数据中心可以包括与计算系统100类似地配置的多个计算系统。计算系统100包括服务器计算机(服务器102)。服务器102包括硬件平台(“硬件104”)和在硬件104上执行的软件平台(“软件106”)。硬件104包括处理系统110、系统存储器116、存储设备(“存储部118”)和硬件加速器122。软件106包括操作系统(OS)144、驱动程序软件(驱动程序146)和应用150。
处理系统110包括微处理器112、支持电路114和外围总线115。微处理器112可以是任何类型的通用中央处理单元(CPU),诸如基于x86的处理器、基于的处理器等。微处理器112可以包括一个或多个核心和相关电路系统(例如,高速缓冲存储器、存储器管理单元(MMU)、中断控制器等)。微处理器112被配置为执行程序代码,该程序代码执行本文中描述的一个或多个操作并且可以被存储在系统存储器116和/或存储部118中。支持电路114包括与微处理器112协作以管理微处理器112、系统存储器116、存储部118、硬件加速器122或任何其他外围设备之间的数据流的各种设备。例如,支持电路114可以包括芯片组(例如,北桥、南桥、平台主机控制器等)、电压调节器、固件(例如,BIOS)等。支持电路114管理微处理器112与外围总线115之间的数据流,诸如硬件加速器122等各种外围设备被连接到该外围总线115。在一些示例中,微处理器112可以是吸收芯片组的全部或大部分功能(例如,北桥、南桥等)的系统级封装(SiP)、片上系统(SoC)等。外围总线可以实现扩展总线标准,诸如外围组件互连快速(PCIe)。在该示例中,处理系统110被示出为与硬件加速器122分离。在下面进一步讨论的其他示例中,处理系统110和硬件加速器122可以在同一集成电路(IC)上被实现。
系统存储器116是允许存储和检索诸如可执行指令和数据等信息的设备。系统存储器116可以包括例如一个或多个随机存取存储器(RAM)模块,诸如双倍数据速率(DDR)动态RAM(DRAM)。存储部118包括本地存储设备(例如,一个或多个硬盘、闪存模块、固态盘和光盘)和/或存储接口,该存储接口使得服务器102能够与一个或多个网络数据存储系统通信。硬件104可以包括计算系统的各种其他常规设备和外围设备,诸如图形卡、通用串行总线(USB)接口等。
硬件加速器122包括可编程器件128、可选的非易失性存储器124和RAM 126。可编程器件128可以是现场可编程门阵列(FPGA)等或具有FPGA等的SoC。NVM 124可以包括任何类型的非易失性存储器,诸如闪存等。RAM 126可以包括DDR DRAM等。可编程器件128被耦合到NVM 124和RAM 126。可编程器件128还被耦合到处理系统110的外围总线115。
OS 144可以是本领域已知的任何商品操作系统,诸如MicrosoftMac等。驱动程序146向硬件加速器122提供应用程序接口(API)以用于其命令和控制。应用150包括在微处理器112上执行的软件,该软件通过驱动程序146调用硬件加速器122以执行某个工作。应用150可以包括将一些功能卸载到硬件加速器122的神经网络、视频处理、网络处理或类似类型的应用。
在操作中,可编程器件128配置有加速电路130。在一个示例中,加速电路130包括壳电路130A和应用电路130B。例如,加速电路130可以使用静态区域134和可编程区域136来实现。壳电路130A在静态区域134中被实现。应用电路130B在可编程区域136中被实现,例如内核逻辑138.
如果存在,可编程器件128的配置数据的至少一部分可以被存储在NVM 124中。如果NVM 124被省略,则配置数据可以被存储在硬件加速器122外部,例如被存储在存储部118中。可编程器件128的配置数据可以由设计工具108生成,该设计工具108可以在服务器102外部的计算机系统上被执行。设计工具108被用于将电路设计编译成配置数据,该配置数据然后被传输到服务器102并且被存储在服务器102中以配置可编程器件128。在一个示例中,配置数据包括用于实现壳电路130A的基础平台(BP)存档132和用于实现一个或多个内核逻辑138的(多个)内核存档120。在一个示例中,BP存档132被存储在NVM 124中,并且(多个)内核存档120被存储在存储部118中。然而,BP档案132可以被存储在存储部118中。
静态区域134是“静态的”,因为其电路系统在可编程区域136的重新配置时保持不变。在一个示例中,静态区域134包括接口电路(例如,PCIe端点电路、直接存储器访问(DMA)控制器、互连、存储器控制器、存储器接口电路、去耦器电路(用于支持部分重新配置)、闪存编程器、调试电路等)。
在一个示例中,内核逻辑138包括IP检查器180。IP检查器180被配置为验证内核逻辑138被授权在可编程器件128中执行。IP检查器180访问签名白名单121,签名白名单121包括被授权执行内核逻辑138的可编程器件的有效器件标识符(ID)的列表。在一个示例中,签名白名单121作为单独的文件或作为内核档案120的一部分被存储在存储部118中。签名白名单121可以在配置时被加载到可编程器件128中,或者在运行时期间从存储118访问。在一个示例中,签名白名单121是证书,该证书包括有效器件ID列表和由内核逻辑138的提供商(本文中称为系统集成商)生成的签名。IP检查器180验证签名白名单121的签名,并且然后对照签名白名单121中的器件ID列表检查可编程器件128的器件ID。如果这两个条件都满足,则IP检查器180允许内核逻辑138在可编程器件128中执行。否则,IP检查器180阻止内核逻辑138的执行。
图2是描绘根据示例的加速电路130的框图。加速电路130包括接口电路140和内核逻辑138。在一个示例中,接口电路140包括PCIe端点电路(“PCIe端点202”)、DMA控制器204、互连电路(“互连206”)、存储器控制器210和存储器接口212。接口电路140可以包括为了清楚起见而省略的其他支持电路(例如,去耦器电路、调试电路等)。PCIe端点202提供与外围总线115的物理接口。DMA控制器204促进对RAM 126、存储器142和(多个)内核138的DMA操作。互连206将DMA控制器204耦合到存储器142和(多个)内核138的输入接口。互连206被耦合到内核逻辑138的输出接口和存储器控制器210。存储器控制器210被耦合到存储器接口212。存储器接口212被耦合到RAM 126(图1所示)。
在操作中,驱动程序146可以通过DMA控制器204直接访问内核逻辑138。内核逻辑138可以通过存储器控制器210访问RAM 126。可以使用系统存储器116与RAM 126之间的DMA操作在软件106与内核逻辑138之间交换数据。在一些示例中,IP检查器180在运行时期间使用DMA操作接收签名白名单121(如果在配置时未配置有签名白名单121)。
图3是描绘根据示例的设计工具108的框图。设计工具108包括具有硬件平台304和软件平台306的计算机302。硬件平台304包括CPU 308、存储器310、存储设备312和输入/输出(IO)设备314。CPU 308可以是任何类型的微处理器。存储器310可以包括例如一个或多个RAM模块,例如DDR DRAM。存储设备312包括本地存储设备(例如,一个或多个硬盘、闪存模块、固态盘和光盘)和/或使得计算机302能够与一个或多个网络数据存储系统通信的存储接口。IO设备314使得能够进行去往和来自计算机302的通信。软件平台306包括OS 316和电路设计工具318。OS 316可以是本领域已知的任何商品操作系统,例如Microsoft、Mac等。电路设计工具318被配置为生成可以用于对可编程器件进行编程的电路设计。用户与电路设计工具318交互以为加速电路130生成(多个)内核设计。电路设计工具318向每个内核设计添加IP检查器180,如下文进一步描述。软件平台306可以包括用于执行其他功能的其他应用软件319,例如公钥/私钥生成、加密、解密等,如本文中进一步讨论的。
图4是描绘根据示例的可编程器件54的框图。可编程器件54包括多个可编程集成电路(IC)1,例如可编程IC 1A、1B、1C和1D。在一个示例中,每个可编程IC 1是设置在插入器51上的IC管芯。每个可编程IC 1包括可编程器件54的超级逻辑区(SLR)53,例如SLR53A、53B、53C和53D。可编程IC 1通过插入器51上的导体(被称为超长线(SLL)52)被互连。
图5是描绘根据示例的可编程IC 1的框图。可编程IC 1包括可编程逻辑3(也被称为可编程结构)、配置逻辑25、和配置存储器26。可编程IC 1可以被耦合到外部电路,诸如非易失性存储器27、DRAM28和其他电路29。可编程逻辑3包括逻辑单元30、支持电路31和可编程互连32。逻辑单元30包括可以被配置为实现多个输入的通用逻辑功能的电路。支持电路31包括专用电路,诸如收发器、输入/输出块、数字信号处理器、存储器等。逻辑单元和支持电路31可以使用可编程互连32被互连。用于对逻辑单元30进行编程、用于设置支持电路31的参数以及用于对可编程互连32进行编程的信息由配置逻辑25存储在配置存储器26中。配置逻辑25可以从非易失性存储器27或任何其他源(例如,DRAM 28或从其他电路29)获取配置数据。在一些示例中,可编程IC 1包括处理系统2。处理系统2可以包括(多个)微处理器、存储器、支持电路、IO电路等。
图6是描绘根据示例的可编程IC 1的片上系统(SoC)实现的框图。在该示例中,可编程IC 1包括处理系统2和可编程逻辑3。处理系统2包括各种处理单元,诸如实时处理单元(RPU)4、应用处理单元(APU)5、图形处理单元(GPU)6、配置和安全单元(CSU)12、平台管理单元(PMU)122等。处理系统2还包括各种支持电路,诸如片上存储器(OCM)14、收发器7、外围设备8、互连16、DMA电路9、存储器控制器10、外围设备15和多路复用IO(MIO)电路13。处理单元和支持电路通过互连16被互连。PL 3还被耦合到互连16。收发器7被耦合到外部引脚24。PL3被耦合到外部引脚23。存储器控制器10被耦合到外部引脚22。MIO 13被耦合到外部引脚20。PS 2通常被耦合到外部引脚21。APU 5可以包括CPU 17、存储器18和支持电路19。
在图6的示例中,可编程IC 1可以被用在硬件加速器122中并且可以如上所述起作用。加速电路130可以在PL 3中被编程并且如上所述起作用。在另一示例中,上述硬件104的功能可以使用PS 2来实现,而不是通过计算系统的硬件来实现。在这种情况下,软件106在PS 2上执行并且如上所述起作用。
参考PS 2,处理单元中的每个包括一个或多个中央处理单元(CPU)和相关电路,诸如存储器、中断控制器、直接存储器存取(DMA)控制器、存储器管理单元(MMU)、浮点单元(FPU)等。互连16包括各种交换机、总线、通信链路等,这些交换机、总线、通信链路等被配置为互连处理单元、以及将PS 2中的其他组件互连到处理单元。
OCM 14包括一个或多个RAM模块,RAM模块可以分布在整个PS 2中。例如,OCM 14可以包括电池后备RAM(BBRAM)、紧耦合存储器(TCM)等。存储器控制器10可以包括用于访问外部DRAM的DRAM接口。外围设备8、15可以包括向PS 2提供接口的一个或多个组件。例如,外围设备15可以包括图形处理单元(GPU)、显示接口(例如,DisplayPort、高清多媒体接口(HDMI)端口等)、通用串行总线(USB)端口、以太网端口、通用异步收发器(UART)端口、串行外围接口(SPI)端口、通用IO(GPIO)端口、串行高级技术附件(SATA)端口、PCIe端口等。外围设备15可以被耦合到MIO 13。外围设备8可以被耦合到收发器7。收发器7可以包括串行器/解串器(SERDES)电路、MGT等。
图7示出了可编程IC 1的现场可编程门阵列(FPGA)实现,其包括大量不同可编程块,包括收发器37、可配置逻辑块(“CLB”)33、随机存取存储器块(“BRAM”)34、输入/输出块(“IOB”)36、配置和时钟逻辑(“CONFIG/CLOCKS”)42、数字信号处理块(“DSP”)35、专用输入/输出块(“I/O”)41(例如,配置端口和时钟端口)和其他可编程逻辑39,诸如数字时钟管理器、模数转换器、系统监测逻辑等。FPGA还可以包括PCIe接口40、模数转换器(ADC)38等。
在一些FPGA中,每个可编程块可以包括至少一个可编程互连元件(“INT”)43,INT43具有到同一块内的可编程逻辑元件的输入和输出端子48的连接,如图7的顶部包括的示例所示。每个可编程互连元件43还可以包括到相同块或(多个)其他块中的(多个)相邻可编程互连元件的互连段49的连接。每个可编程互连元件43还可以包括到逻辑块(未示出)之间的通用路由资源的互连段50的连接。通用路由资源可以包括逻辑块(未示出)之间的路由通道,包括互连段(例如,互连段50)的轨道和用于连接互连段的开关块(未示出)。通用路由资源的互连段(例如,互连段50)可以跨越一个或多个逻辑块。可编程互连元件43与通用路由资源一起实现用于所示出的FPGA的可编程互连结构(“可编程互连”)。
在示例实现中,CLB 33可以包括可配置逻辑元件(“CLE”)44,CLE 44可以被编程以实现用户逻辑加上单个可编程互连元件(“INT”)43。除了一个或多个可编程互连元件,BRAM34还可以包括BRAM逻辑元件(“BRL”)45。通常,块中包括的互连元件的数目取决于块的高度。在所示示例中,BRAM块具有与五个CLB相同的高度,但也可以使用其他数字(例如,四个)。除了适当数目的可编程互连元件,DSP块35还可以包括DSP逻辑元件(“DSPL”)46。除了可编程互连元件43的一个实例,IOB 36还可以包括例如输入/输出逻辑元件(“IOL”)47的两个实例。本领域技术人员将清楚,例如,连接到I/O逻辑元件47的实际I/O焊盘通常不限于输入/输出逻辑元件47的区域。
在所示示例中,靠近管芯的中央的水平区域(如图6所示)用于配置、时钟和其他控制逻辑。从该水平区域或列延伸的垂直列51被用于跨FPGA的宽度分配时钟和配置信号。
利用图7所示的架构的一些FPGA包括破坏构成FPGA的大部分的规则柱状结构的附加逻辑块。附加逻辑块可以是可编程块和/或专用逻辑。
注意,图7旨在仅示出示例性FPGA架构。例如,一行中的逻辑块的数目、行的相对宽度、行的数目和顺序、行中包括的逻辑块的类型、逻辑块的相对大小、以及图7顶部处包括的互连/逻辑实现仅为示例性的。例如,在实际的FPGA中,通常在CLB出现的任何位置都包括一个以上的相邻CLB行,以促进用户逻辑的有效实现,但相邻CLB行的数目随FPGA的整体大小而变化。
在一个示例中,可编程器件中的PL 3包括存储器件ID 90的非易失性存储器(例如,电子熔丝等)。器件ID可以是可编程器件的制造商使用的任何类型的唯一标识符(例如,96位二进制数)。如果可编程器件包括多个可编程IC,则每个可编程IC可以包括唯一器件ID90。
图8是描绘根据示例的云计算系统800的框图。云计算系统800包括多个计算机802,每个计算机802具有一个或多个硬件加速器804。每个硬件加速器804包括一个或多个可编程器件,每个可编程器件具有一个或多个器件ID 806。对于给定内核,云所有者可以提供需要内核的执行的可编程器件的器件ID列表806。器件ID列表806可以由计算机302接收并且如下所述进行处理。
图9是描绘根据示例的锁定内核以在特定可编程器件上执行的方法900的流程图。方法900包括步骤902,在步骤902,系统集成商(例如,内核开发人员)使用任何公钥密码系统生成公钥/私钥对。在一个示例中,公钥密码系统是Rivest-Shamir-Adleman(RSA)系统,例如RSA-4096。在这样的系统中,公钥906是加密密钥,并且私钥908是解密密钥。然而,在本系统中,私钥908用于加密,并且公钥906用于解密。将在整个描述中使用如下签名概念:即,使用私钥进行加密并且使用公钥进行解密。
在RSA-4096中,公钥/私钥是4096位密钥。本领域技术人员将理解,可以使用其他公钥密码系统。为了通过示例的方式清楚说明,在本文中提供的示例中描述RSA-4096。步骤902可以由在计算机302上执行的软件来执行。
在步骤904,DC所有者从被允许从数据中心执行内核逻辑138的可编程器件128检索器件ID列表910(例如,系统集成商将要许可执行内核的器件的器件ID)。在一个示例中,云所有者可以通过将未被授权内核加载到可编程器件来获取器件ID。IP检查器180将阻止内核执行,但将提供器件ID作为输出(例如,IP检查器180可以从可编程器件读回器件ID)。
在步骤912,系统集成商使用在计算机302上执行的软件根据器件ID 910生成签名白名单914。签名白名单914包括器件ID 910和由系统集成商生成的签名。签名是通过计算器件ID列表的散列(例如,器件ID的串联)生成的。散列可以使用本领域已知的任何散列函数来计算,例如256位安全散列算法(SHA-256)。为了通过示例的方式清楚说明,SHA-256被描述为本文中使用的散列函数。然后,散列值和私钥被馈送到加密算法中(例如,使用RSA-4096),该加密算法对明文散列值进行加密以生成密文签名(例如,散列值的加密版本)。
在步骤916,系统集成商使用电路设计工具318生成具有IP检查器180的内核。IP检查器180配置有公钥906。系统集成商针对内核和签名白名单914提供(多个)文件。
图10是描绘根据示例的生成器件ID的签名白名单的方法1000的框图。器件ID列表1003包括用于寻求内核执行的可编程器件的多个批准器件ID 1002。器件ID列表1003(例如,器件ID 1002的串联)由散列函数1006(例如,SHA-256)处理以生成器件ID列表1003的散列。散列由加密函数1008使用系统集成商的私钥进行处理以生成签名1010。白名单1004包括批准器件ID 1002和签名1010。
图11是描绘根据示例的检查签名白名单的有效性的方法1100的框图。批准器件ID1002由IP检查器180的散列电路1102处理以生成散列值(例如,使用SHA-256)。签名1010还由IP检查器180的解密电路1104处理,该解密电路可以访问系统集成商的公钥。解密电路1104解密签名1010以生成明文散列值(例如,恢复由系统集成商计算的散列值)。比较电路1106比较这两个散列值以确定白名单1004是否有效(例如,未被篡改)。
图12是描绘根据示例的更新白名单的方法1200的流程图。方法1200包括步骤902,在步骤902,数据中心所有者为被允许执行内核的可编程器件提供更新后的器件ID列表1208(例如,系统集成商将许可执行内核的器件的器件ID)。在一个示例中,云所有者可以通过将未被授权内核加载到可编程器件来获取器件ID。IP检查器180将阻止内核执行,但将提供器件ID作为输出(例如,IP检查器180可以从可编程器件读回器件ID)。
在步骤1210,系统集成商使用在计算机302上执行的软件根据器件ID 1208和私钥1206生成签名白名单1212。签名白名单1212包括器件ID 1208和由系统集成商生成的签名。签名是通过计算器件ID列表的散列并且加密明文散列以生成密文签名来生成的,如上所述。在步骤1216,系统集成商针对签名白名单1212提供(多个)文件。
图13是描绘根据示例的IP检查器180的框图。IP检查器180包括器件ID读取电路1302、接口电路1312、存储器1304、控制电路1308和检查器电路1310。器件ID读取电路1302的输出被耦合到检查器电路1310和接口电路1312的输入。控制电路1308被耦合到存储器1304,并且具有被耦合到校验器电路1310的输出。校验器电路1310的输出被耦合到接口电路1312的输入。
器件ID读取电路1302被配置为读取可编程器件的器件ID。在该示例中,存储器1304被配置为存储签名白名单1306。检查器电路1310被配置为接收器件ID和签名白名单1306(经由控制电路1308)。检查器电路1310执行图11的方法1100以验证签名白名单1306。检查器电路1310还将器件ID与经验证的白名单1306进行比较以确定器件是否被授权。如果是,则检查器电路1310断言启用输出(例如,内核被启用)。否则,检查器电路1310取消断言启用输出(例如,内核被禁用)。IP检查器180可以经由接口电路1312从器件ID读取电路1302输出器件ID。
图14是描绘根据另一示例的IP检查器180的框图。在该示例中,省略了存储器1304和控制电路1308。相反,IP检查器180通过接口电路1312从外部源(例如,从主计算机系统)获取签名白名单。否则,IP检查器180的功能如上所述。
图15是描绘根据示例的检查器电路1310的框图。检查器电路1310包括器件ID比较电路1502、消息散列计算电路1504、签名解密电路1506和散列比较电路1508。器件ID比较电路1502接收签名白名单和器件ID。器件ID比较电路1502确定器件ID是否存在于签名白名单中的器件ID列表中。如果是,则签名解密电路1506使用IP检查器180中配置的公钥(即,系统集成商的公钥)来解密签名白名单中的签名并且恢复明文散列值。消息散列计算电路1504被配置为根据签名白名单中的批准器件ID 1002生成散列值。散列比较电路1508被配置为比较分别由消息散列计算电路1504和签名解密电路1506输出的两个散列值。如果这两个散列值匹配,则散列比较电路1508断言启用输出。否则,散列比较电路1508取消断言启用输出。
如上所述,IP检查器180基于可编程器件的唯一标识符进行操作。希望对其IP的个体实例进行许可的内核开发人员需要访问被授权器件的唯一ID,以便锁定IP以在这些器件上执行。
图16A-C是描绘可编程器件中的器件ID位置的示例的框图。如图16A所示,可编程器件1602包括单个可编程IC(例如,不是多管芯器件)。可编程器件1602中配置有内核1606。内核1606是可编程器件1602的完整配置,并且无需壳电路即可运行。在这种情况下,内核1606可以访问可编程器件1602的所有功能,包括用于读取可编程器件1602的器件ID 1604的电路系统。
如图16B所示,可编程器件1602包括单个可编程IC(例如,不是多管芯器件)。然而,在该示例中,静态区域1608包括支持内核1606的壳电路。可编程器件1602包括用于读取器件ID 1604的电路系统。内核1606可以访问用于读取器件ID 1604的电路系统。
如图16C所示,可编程器件1609包括多个可编程IC(例如,多管芯器件)。静态区域1608被配置在可编程器件1609的一个SLR 1610中,并且内核1606被配置在可编程器件1609的另一SLR 1612中。在一些器件中,SLR中的一个用作“主SLR”和一个或多个“从SLR”。假定SLR 1610是具有静态区域1608的主SLR并且SLR 1612是具有内核1606的从SLR。SLR 1610和SLR 1612都具有唯一器件ID和用于读取器件ID的电路系统。缺少特异性,读取可编程器件1609的器件ID的电路设计读取主SLR的器件ID。然而,以可以被证明可以防止器件ID的欺骗的方式将器件ID从静态区域1608导出到内核1606是不可行的。在一些情况下,数据中心所有者可以控制静态区域1608的配置。因此,在一个示例中,电路设计工具318被配置为使用SLR 1612的器件ID 1604进行IP检查。由于内核1606完全配置SLR 1612,内核1606可以访问用于读取SLR 1612的器件ID 1604的电路系统。因此,不是使用SLR 1610的器件ID进行IP检查,而是IP检查器180使用SLR 1612的器件ID 1604。因此,系统集成商可以确信器件ID1604不会被欺骗。
图17是描绘根据示例的将内核逻辑锁定到计算机系统中的硬件加速器的可编程器件的方法1700的流程图。方法1700开始于步骤1702,其中在可编程器件的可编程结构中配置内核逻辑。在可选步骤1703,在可编程器件的可编程结构中另外配置壳电路。在步骤1704,IP检查器电路180获取可编程器件的器件ID和签名白名单。在步骤1706,IP检查器电路180验证签名白名单的签名。在步骤1708,IP检查器电路180将器件ID与器件ID列表进行比较。在步骤1710,IP检查器电路180响应于器件ID列表中的器件ID的存在或不存在以及签名的验证来选择性地断言或取消断言内核逻辑的启用。IP检查器电路180用于执行这些步骤的操作基本上在上面进行了描述。
在一个示例中,描述了一种用于计算机系统的硬件加速器,硬件加速器包括可编程器件,并且还包括:配置在可编程器件的可编程结构中的内核逻辑;以及在内核逻辑中的知识产权(IP)检查器电路。IP检查器电路被配置为:获取可编程器件的器件标识符(ID)和签名白名单,签名白名单包括器件ID列表和签名;验证签名白名单的签名;将器件ID与器件ID列表进行比较;并且分别响应于器件ID列表中的器件ID的存在或不存在以及签名的验证来选择性地断言或取消断言内核逻辑的启用。
在一个示例中,硬件加速器还包括配置在可编程结构中的壳电路,壳电路被配置为在计算机系统与内核逻辑之间提供接口。
在一个示例中,可编程结构是第一可编程结构,硬件加速器还包括:配置在可编程器件的第二可编程结构中的壳电路,壳电路被配置为在计算机系统与内核逻辑之间提供接口。IP检查器电路从可编程器件的第一可编程结构获取器件ID。
在一个示例中,可编程器件包括具有第一可编程结构的第一可编程IC和具有第二可编程结构的第二可编程IC。
在一个示例中,IP检查器电路配置有签名白名单。在一个示例中,IP检查器电路从其中布置有硬件加速器的计算机系统接收签名白名单。
在一个示例中,IP检查器电路被配置为通过以下方式验证签名白名单的签名:使用公钥/私钥对的公钥解密签名,签名是使用公钥/私钥对的私钥加密的;确定器件ID列表的散列;并且将散列与解密后的签名进行比较。
在一个示例中,IP检查器电路包括:被配置为读取器件ID的器件ID读取电路;被配置为存储签名白名单的存储器;以及被配置为将器件ID与器件ID列表进行比较并且选择性地断言或取消断言内核逻辑的启用的检查器电路。
在一个示例中,IP检查器电路包括:被配置为读取器件ID的器件ID读取电路;被配置为从计算机系统接收签名白名单的接口电路;以及被配置为将器件ID与器件ID列表进行比较并且选择性地断言或取消断言内核逻辑的启用的检查器电路。
在一个示例中,描述了一种将内核逻辑锁定到计算机系统中的硬件加速器的可编程器件的方法,该方法包括:在可编程器件的可编程结构中配置内核逻辑;在内核逻辑中的知识产权(IP)检查器电路处获取可编程器件的器件标识符(ID)和签名白名单,签名白名单包括器件ID列表和签名;验证签名白名单的签名;将器件ID与器件ID列表进行比较;并且由IP检查器电路分别响应于器件ID列表中的器件ID的存在或不存在以及签名的验证来选择性地断言或取消断言内核逻辑的启用。
在一个示例中,该方法还包括在可编程结构中配置壳电路,壳电路被配置为在计算机系统与内核逻辑之间提供接口。
在一个示例中,可编程结构包括第一可编程结构,并且该方法还包括:在可编程器件的第二可编程结构中配置壳电路,壳电路被配置为在计算机系统与内核逻辑之间提供接口;其中IP检查器电路从可编程器件的第一可编程结构获取器件ID。
在一个示例中,可编程器件包括具有第一可编程结构的第一可编程IC和具有第二可编程结构的第二可编程IC。
在一个示例中,IP检查器电路配置有签名白名单或从计算机系统接收签名白名单。
在一个示例中,IP检查器电路被配置为通过以下方式验证签名白名单的签名:使用公钥/私钥对的公钥解密签名,签名是使用公钥/私钥对的私钥加密的;确定器件ID列表的散列;并且将散列与解密签名进行比较。
虽然前述针对具体示例,但在不脱离其基本范围的情况下可以设计其他和另外的示例,并且其范围由所附权利要求书确定。
Claims (15)
1.一种用于计算机系统的硬件加速器,所述硬件加速器包括可编程器件,所述硬件加速器包括:
配置在所述可编程器件的可编程结构中的内核逻辑;
在所述内核逻辑中的知识产权(IP)检查器电路,所述IP检查器电路被配置为:
获取所述可编程器件的器件标识符(ID)和签名白名单,所述签名白名单包括器件ID列表和签名;
验证所述签名白名单的所述签名;
将所述器件ID与所述器件ID列表进行比较;以及
分别响应于所述器件ID列表中的所述器件ID的存在或不存在以及所述签名的验证来选择性地断言或取消断言所述内核逻辑的启用。
2.根据权利要求1所述的硬件加速器,还包括:
配置在所述可编程结构中的壳电路,所述壳电路被配置为在计算机系统与所述内核逻辑之间提供接口。
3.根据权利要求1所述的硬件加速器,其中所述可编程结构是第一可编程结构,并且其中所述硬件加速器还包括:
配置在所述可编程器件的第二可编程结构中的壳电路,所述壳电路被配置为在计算机系统与所述内核逻辑之间提供接口;
其中所述IP检查器电路从所述可编程器件的所述第一可编程结构获取所述器件ID。
4.根据权利要求3所述的硬件加速器,其中所述可编程器件包括具有所述第一可编程结构的第一可编程IC和具有所述第二可编程结构的第二可编程IC。
5.根据权利要求1-4中任一项所述的硬件加速器,其中所述IP检查器电路配置有所述签名白名单。
6.根据权利要求1-4中任一项所述的硬件加速器,其中所述IP检查器电路从其中布置有所述硬件加速器的计算机系统接收所述签名白名单。
7.根据权利要求1-6中任一项所述的硬件加速器,其中所述IP检查器电路被配置为通过以下方式验证所述签名白名单的所述签名:
使用公钥/私钥对的公钥解密所述签名,所述签名是使用所述公钥/私钥对的私钥加密的;
确定所述器件ID列表的散列;以及
将所述散列与解密后的签名进行比较。
8.根据权利要求1-7中任一项所述的硬件加速器,其中所述IP检查器电路包括:
器件ID读取电路,被配置为读取所述器件ID;
存储器,被配置为存储所述签名白名单;以及
检查器电路,被配置为将所述器件ID与所述器件ID列表进行比较并且选择性地断言或取消断言所述内核逻辑的所述启用。
9.根据权利要求1-7中任一项所述的硬件加速器,其中所述IP检查器电路包括:
器件ID读取电路,被配置为读取所述器件ID;
接口电路,被配置为从计算机系统接收所述签名白名单;以及
检查器电路,被配置为将所述器件ID与所述器件ID列表进行比较,并且选择性地断言或取消断言所述内核逻辑的所述启用。
10.一种将内核逻辑锁定到计算机系统中的硬件加速器的可编程器件的方法,所述方法包括:
在所述可编程器件的可编程结构中配置内核逻辑;
在所述内核逻辑中的知识产权(IP)检查器电路处获取所述可编程器件的器件标识符(ID)和签名白名单,所述签名白名单包括器件ID列表和签名;
验证所述签名白名单的所述签名;
将所述器件ID与所述器件ID列表进行比较;以及
由所述IP检查器电路分别响应于所述器件ID列表中的所述器件ID的存在或不存在以及所述签名的验证来选择性地断言或取消断言所述内核逻辑的启用。
11.根据权利要求10所述的方法,还包括:
在所述可编程结构中配置壳电路,所述壳电路被配置为在计算机系统与所述内核逻辑之间提供接口。
12.根据权利要求10所述的方法,其中所述可编程结构包括第一可编程结构,并且其中所述方法还包括:
在所述可编程器件的第二可编程结构中配置壳电路,所述壳电路被配置为在计算机系统与所述内核逻辑之间提供接口;
其中所述IP检查器电路从所述可编程器件的所述第一可编程结构获取所述器件ID。
13.根据权利要求12所述的方法,其中所述可编程器件包括具有所述第一可编程结构的第一可编程IC和具有所述第二可编程结构的第二可编程IC。
14.根据权利要求10-13中任一项所述的方法,其中所述IP检查器电路配置有所述签名白名单或从所述计算机系统接收所述签名白名单。
15.根据权利要求10-14中任一项所述的方法,其中所述IP检查器电路被配置为通过以下方式验证所述签名白名单的所述签名:
使用公钥/私钥对的公钥解密所述签名,所述签名是使用所述公钥/私钥对的私钥加密的;
确定所述器件ID列表的散列;以及
将所述散列与解密后的签名进行比较。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/299,575 | 2019-03-12 | ||
US16/299,575 US11443018B2 (en) | 2019-03-12 | 2019-03-12 | Locking execution of cores to licensed programmable devices in a data center |
US16/299,611 US11294992B2 (en) | 2019-03-12 | 2019-03-12 | Locking execution of cores to licensed programmable devices in a data center |
US16/299,611 | 2019-03-12 | ||
PCT/US2020/018338 WO2020185352A1 (en) | 2019-03-12 | 2020-02-14 | Locking execution of cores to licensed programmable devices in a data center |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113785292A true CN113785292A (zh) | 2021-12-10 |
Family
ID=70224408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080033115.4A Pending CN113785292A (zh) | 2019-03-12 | 2020-02-14 | 将核心的执行锁定到数据中心中的许可可编程器件 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP3918496B1 (zh) |
JP (1) | JP2022525075A (zh) |
KR (1) | KR20210137096A (zh) |
CN (1) | CN113785292A (zh) |
WO (1) | WO2020185352A1 (zh) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8621212B2 (en) * | 2009-12-22 | 2013-12-31 | Infineon Technologies Ag | Systems and methods for cryptographically enhanced automatic blacklist management and enforcement |
US10153904B2 (en) * | 2015-04-29 | 2018-12-11 | Ncr Corporation | Validating resources execution |
-
2020
- 2020-02-14 EP EP20717729.6A patent/EP3918496B1/en active Active
- 2020-02-14 WO PCT/US2020/018338 patent/WO2020185352A1/en unknown
- 2020-02-14 CN CN202080033115.4A patent/CN113785292A/zh active Pending
- 2020-02-14 JP JP2021553870A patent/JP2022525075A/ja active Pending
- 2020-02-14 KR KR1020217031813A patent/KR20210137096A/ko unknown
Also Published As
Publication number | Publication date |
---|---|
WO2020185352A1 (en) | 2020-09-17 |
JP2022525075A (ja) | 2022-05-11 |
EP3918496A1 (en) | 2021-12-08 |
EP3918496B1 (en) | 2023-12-13 |
KR20210137096A (ko) | 2021-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10685143B2 (en) | Secure boot sequence for selectively disabling configurable communication paths of a multiprocessor fabric | |
US9165143B1 (en) | Image file generation and loading | |
US9230112B1 (en) | Secured booting of a field programmable system-on-chip including authentication of a first stage boot loader to mitigate against differential power analysis | |
US11294992B2 (en) | Locking execution of cores to licensed programmable devices in a data center | |
KR20170095161A (ko) | 시큐어 시스템 온 칩 | |
EP2947594A2 (en) | Protecting critical data structures in an embedded hypervisor system | |
JP7406013B2 (ja) | 構成設定の安全な署名 | |
JP2017033537A (ja) | 外部不揮発性メモリに間接アクセスするセキュリティデバイス | |
WO2018227518A1 (en) | Reconfigurable device bitstream key authentication | |
US11443018B2 (en) | Locking execution of cores to licensed programmable devices in a data center | |
EP3698256B1 (en) | Security for programmable devices in data center | |
Streit et al. | Secure boot from non-volatile memory for programmable SoC architectures | |
EP3918496B1 (en) | Locking execution of cores to licensed programmable devices in a data center | |
US11582021B1 (en) | Protection against differential power analysis attacks involving initialization vectors | |
Boubakri et al. | Architectural Security and Trust Foundation for RISC-V | |
JP2024515450A (ja) | 読み取り専用メモリ(rom)のセキュリティ | |
TW202240591A (zh) | 唯讀記憶體(rom)安全性 | |
WO2022125714A1 (en) | Multi-chip secure and programmable systems and methods | |
CN115361132A (zh) | 密钥生成方法、装置、片上系统、设备及存储介质 |
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 |