CN109104184A - 验证用于可重配置设备的图像 - Google Patents
验证用于可重配置设备的图像 Download PDFInfo
- Publication number
- CN109104184A CN109104184A CN201810490335.4A CN201810490335A CN109104184A CN 109104184 A CN109104184 A CN 109104184A CN 201810490335 A CN201810490335 A CN 201810490335A CN 109104184 A CN109104184 A CN 109104184A
- Authority
- CN
- China
- Prior art keywords
- image
- interface
- policy
- processor
- reconfigurable
- 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
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/1733—Controllable logic circuits
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17748—Structural details of configuration resources
- H03K19/17768—Structural details of configuration resources for security
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17724—Structural details of logic blocks
- H03K19/17728—Reconfigurable logic blocks, e.g. lookup tables
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17748—Structural details of configuration resources
- H03K19/17764—Structural details of configuration resources for reliability
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Power Sources (AREA)
Abstract
一种设备包括可重配置电路和重配置逻辑。所述重配置逻辑用于:经由策略接口接收用户策略和图像策略;经由多个配置接口中的第一配置接口接收第一重配置图像;基于所述用户策略验证所述第一配置接口;基于所述图像策略验证所述第一重配置图像;以及响应于确定所述第一配置接口和所述第一重配置图像都是有效的,使用所述第一重配置图像重配置所述可重配置电路。
Description
技术领域
实施例涉及可重配置设备。
背景技术
一些集成电路可以被设计成在制造后由用户配置。例如,现场可编程门阵列(FPGA)可以包括可以在不同配置中互连的可编程逻辑元件的阵列。通过改变这样的互连,FPGA可以被配置成执行不同的处理任务(例如,数字信号处理、视频动画、分组处理等)。
附图说明
图1表示根据本发明实施例的系统的一部分的框图。
图2表示根据本发明实施例的处理器的框图。
图3表示根据本发明另一实施例的多域处理器的框图。
图4表示包括多个核心的处理器的实施例。
图5表示根据本发明一个实施例的处理器核心的微架构的框图。
图6表示根据另一实施例的处理器核心的微架构的框图。
图7表示根据又一实施例的处理器核心的微架构的框图。
图8表示根据再一实施例的处理器核心的微架构的框图。
图9表示根据本发明另一实施例的处理器的框图。
图10表示根据本发明实施例的代表性SoC的框图。
图11表示根据本发明实施例的另一示例性SoC的框图。
图12表示实施例可以与其一起使用的示例性系统的框图。
图13表示实施例可以与其一起使用的另一示例性系统的框图。
图14表示代表性计算机系统的框图。
图15表示根据本发明实施例的系统的框图。
图16表示说明了用于制造集成电路以执行根据实施例的操作的IP核心开发系统的框图。
图17表示根据一个或多个实施例的示例性系统的图。
图18A表示根据一个或多个实施例的示例性重配置逻辑的图。
图18B表示根据一个或多个实施例的示例性重配置逻辑的图。
图18C表示根据一个或多个实施例的示例性重配置逻辑的图。
图18D表示根据一个或多个实施例的示例性重配置逻辑的图。
图19表示根据一个或多个实施例的示例性方法的流程图。
图20表示根据一个或多个实施例的示例性方法的流程图。
具体实施方式
一些数据中心可以与多个客户端共享计算资源。例如,云服务提供商可以允许多个客户端共享单个服务器的存储和计算资源。这样的计算资源可以包括可重配置电路。如本申请中所使用的,“可重配置电路”指的是在其中能够根据数据规范或“图像”重配置在逻辑元件之间的互连的电路。例如,一种类型的可重配置电路是现场可编程门阵列(FPGA)。但是,共享可重配置电路可能导致对数据和硬件的潜在伤害。例如,恶意用户会重配置FPGA以从数据中心的其他用户偷取敏感数据。在另一示例中,FPGA会被重配置成执行重复任务直到发生过热事件,从而导致对硬件资源的损坏。
根据一个或多个实施例,可重配置设备可以与用户策略和图像策略相关联。用户策略可以定义被准许为设备提供重配置图像的用户实体和/或配置接口。图像策略可以定义针对设备的有效的重配置图像。在一些实施例中,重配置逻辑可以使用用户策略和图像策略来控制设备的重配置。因此,可以减少与可重配置设备相关联的伤害的风险。此外,在一些实施例中,重配置逻辑可以提供设备的虚拟化重配置。如在本申请中所使用的,术语“虚拟化重配置”指的是在可重配置设备和多个用户实体之间使用抽象层的重配置,使得每一个用户实体可以单独地且安全地重配置相同的设备。下文参考图17-20描述了一些实施例的示例。
现在参考图1,所示出的是表示根据本发明实施例的系统的一部分的框图。如在图1中示出的,系统100可以包括各种组件,包括处理器110,如所示出的其为多核处理器。处理器110可以经由外部电压调节器160耦合到电源150,外部电压调节器160可以执行第一电压转换,以向处理器110提供主调节电压Vreg。
如所看见的,处理器110可以是包括多个核心120a-120n的单晶处理器。此外,每一个核心可以与集成电压调节器(IVR)125a-125n相关联,该集成电压调节器(IVR)125a-125n接收主调节电压并生成操作电压,以被提供到与IVR相关联的处理器的一个或多个代理。因此,可以提供IVR实现,以允许对每一个单独核心的电压并且从而对功率和性能的细粒度控制。这样,每一个核心能够以独立的电压和频率操作,能够实现大的灵活性并提供用于平衡功耗和性能的广泛机会。在一些实施例中,使用多个IVR使能将组件分组成单独的功率平面,以便由IVR调节功率并且仅向该组中的这些组件供应功率。在功率管理期间,当处理器被设置到某一低功率状态时,一个IVR的给定功率平面可以被降低功率或被关闭,同时另一IVR的另一功率平面保持活动或满功率。类似地,核心120可以包括诸如一个或多个锁相环(PLL)的独立的时钟生成电路或与上述时钟生成电路相关联,以独立地控制每一个核心120的操作频率。
仍然参考图1,在处理器内可以存在另外的组件,包括输入/输出接口(IF)132、另一接口134、以及集成的存储器控制器(IMC)136。如所看见的,可以通过另一集成的电压调节器125来对这些组件中的每一个上电。在一个实施例中,接口132可以使能实现针对快速路径互连(QPI)互连的操作,其在包括多个层的高速缓存一致性协议中提供点对点(PtP)链路,上述多个层包括物理层、链路层和协议层。继而,接口134可以经由外围组件互连快速(PCIeTM)协议进行通信。
还示出了功率控制单元(PCU)138,其可以包括电路,所述电路包括用于执行关于处理器110的功率管理操作的硬件、软件和/或固件。如所看见的,PCU 138经由数字接口162向外部电压调节器160提供控制信息,以使得电压调节器生成适当的调节电压。PCU 138还可以经由另一数字接口163向IVR 125提供控制信息以控制所生成的操作电压(或使得相应的IVR在低功率模式下被禁用)。在各种实施例中,PCU 138可以包括各种功率管理逻辑单元,以执行基于硬件的功率管理。这样的功率管理可以是整个由处理器控制的(例如,通过各种处理器硬件,且其可以由工作负荷和/或功率、热或其它处理器约束来触发)和/或可以响应于外部源(例如平台或功率管理源或系统软件)来执行功率管理。
在图1中,PCU 138被描绘为作为处理器的单独逻辑存在。在其他情况下,PCU 138可以在核心120的给定的一个或多个上执行。在一些情况下,PCU 138可以被实现为微控制器(专用的或通用的)或被配置成执行其自身的专用功率管理代码的其他控制逻辑,上述专用功率管理代码有时被称为P码。在又一些其他实施例中,可以在处理器外部实现由PCU138执行的功率管理操作,例如通过单独的功率管理集成电路(PMIC)或在处理器外部的另一组件。在再一些其他实施例中,可以在BIOS或其他系统软件内实现由PCU 138执行的功率管理操作。
虽然在图1中未示出,但是在一些实施例中,处理器110和/或核心120可以包括下文参考图17-20描述的重配置逻辑的全部或部分。
具体而言,实施例可以适合于多核处理器,其中多个核心中的每一个可以在独立的电压和频率点处操作。如在本申请中所使用的,术语“域”用于指代在相同的电压和频率点处操作的硬件和/或逻辑的集合。此外,多核处理器可以进一步包括非核心处理引擎,例如固定功能单元、图形引擎等。这样的处理器可以包括与核心不同的独立的域,例如与图形引擎相关联的一个或多个域(在本申请中被称为图形域)以及与非核心电路相关联的一个或多个域,在本申请中被称为非核心或系统代理。虽然可以在单个半导体晶片上形成多域处理器的许多实现,但是可以通过多芯片封装来实现其他的实现,在多芯片封装中可以在单个封装的不同半导体晶片上存在不同的域。
虽然为了说明的方便未示出,但是可以理解的是,在处理器110内可以存在诸如非核心逻辑的另外的组件,以及诸如内部存储器的其他组件,例如一级或多级高速缓存分级存储器等。此外,虽然在图1的实现中示出了具有集成电压调节器,但是实施例不受此限制。例如,可以从外部电压调节器160或调节电压的一个或多个另外的外部源来向片上资源提供其他调节电压。
要注意的是,在本申请中描述的功率管理技术可以独立于基于操作系统(OS)的功率管理(OSPM)机制且作为该基于操作系统(OS)的功率管理(OSPM)机制的补充。根据一个示例性OSPM技术,处理器可以操作在各种性能状态或级别,所谓的P状态,即从P0到PN。一般而言,P1性能状态可以与可以由OS请求的最高保证性能状态相对应。除了该P1状态之外,OS可以进一步请求较高性能状态,即P0状态。从而,该P0状态因而可以是机会式的、超频的或涡轮模式状态,在该状态下,当功率和/或热预算可用时,处理器硬件可以配置处理器或其至少部分以操作在比保证频率更高的频率处。在许多实现中,处理器可以包括在P1保证最大频率之上的所谓的窗口频率(bin frequency),超过在制造期间被熔合或写入到处理器中的特定处理器的最大峰值频率。此外,根据OSPM机制,处理器可以操作在各种功率状态或级别处。关于功率状态,OSPM机制可以指定不同的功耗状态,一般而言被称为C状态,C0、C1到Cn状态。当核心活动时,其运行在C0状态,并且当核心空闲时,其可以被置于核心低功率状态,也被称为核心非零C状态(例如,C1-C6状态),其中每一个C状态处于较低的功耗级别(使得C6与C1相比为更深的低功率状态,等等)。
要理解的是,在不同的实施例中,可以单独地或组合地使用许多不同类型的功率管理技术。作为代表性的示例,功率控制器可以通过某一形式的动态电压频率调节(DVFS)来控制要被进行功率管理的处理器,其中一个或多个核心或其他处理器逻辑的操作电压和/或操作频率可以被动态地控制,以减小在特定情形下的功耗。在示例中,可以使用从加州圣克拉拉的英特尔公司可获得的增强型英特尔来执行DVFS,以在最低的功耗级别处提供最佳的性能。在另一示例中,可以使用英特尔TurboBoostTM技术来执行DVFS,以使得一个或多个核心或其他计算引擎能够基于条件(例如,工作负荷和可用性)而在比保证操作频率更高的频率处操作。
可以在某些示例中使用的另一功率管理技术是在不同的计算引擎之间动态地交换工作负荷。例如,处理器可以包括在不同的功耗级别处操作的非对称核心或其他处理引擎,以便在功率受限的情形下,一个或多个工作负荷可以被动态地交换,以在较低功率核心或其他计算引擎上执行。另一示例性功率管理技术是硬件负载循环(hardware dutycycling,HDC),其可以使得核心和/或其他计算引擎根据负载循环而被周期性地启用和禁用,使得一个或多个核心在负载循环的不活动时段期间变为不活动并且在负载循环的活动时段期间变为活动。
当在操作环境中存在约束时,也可以使用功率管理技术。例如,当遇到功率和/或热约束时,可以通过减少操作频率和/或电压来减少功率。其他功率管理技术包括节流指令执行速率或限制指令的调度。又进一步地,给定指令集架构的指令包括针对功率管理操作的快速或隐含的指导是可能的。虽然利用这些特定的示例进行了描述,但是要理解的是,在特定的实施例中可以使用许多其他功率管理技术。
可以在针对各种市场的处理器中实现实施例,包括服务器处理器、台式处理器、移动处理器等。现在参考图2,示出了根据本发明实施例的处理器的框图。如在图2中所示出的,处理器200可以是包括多个核心210a-210n的多核处理器。在一个实施例中,每一个这样的核心可以具有独立的功率域并且可以被配置成基于工作负荷而进入或退出活动状态和/或最大性能状态。一个或多个核心210可以与其他核心是异构的,例如,具有不同的微架构、指令集架构、管线深度、功率和性能能力。可以经由互连215将各种核心耦合到包括各种组件的系统代理或非核心220。如所看见的,非核心220可以包括可以是最后一级高速缓存的共享高速缓存230。此外,非核心可以包括用于与系统存储器(在图2中未示出)通信的集成存储器控制器240,例如经由存储器总线。非核心220还包括各种接口250和功率控制单元255,其可以包括用于执行本申请中描述的功率管理技术的逻辑。
此外,通过接口250a-250n,可以对诸如外围设备、大容量存储装置等的各种片外组件进行连接。虽然在图2的实施例中示出具有该特定的实现,但是本发明的范围在该方面不受限制。
虽然在图2中未示出,但是在一些实施例中,处理器200可以包括参考图17-20在下文描述的重配置逻辑的全部或部分。
现在参考图3,示出了根据本发明另一实施例的多域处理器的框图。如在图3的实施例中所示出的,处理器300包括多个域。特别地,核心域310可以包括多个核心310a-310n,图形域320可以包括一个或多个图形引擎,且可以进一步存在系统代理域350。在一些实施例中,系统代理域350可以在与核心域相比独立的频率处执行并且可以一直保持上电以处理功率控制事件和功率管理,使得域310和320能够被控制以动态地进入并退出高功率状态和低功率状态。域310和320中的每一个可以操作在不同的电压和/或功率处。要注意的是,虽然被示出为具有三个域,但是要理解的是,本发明的范围在该方面不受限制并且在其他实施例中可以存在另外的域。例如,可以存在多个核心域,每一个核心域都包括至少一个核心。
一般而言,除了各种执行单元和另外的处理元件之外,核心310a-310n中的每一个可以进一步包括低级别高速缓存。继而,各种核心可以彼此耦合并且耦合到由最后一级高速缓存(LLC)340a-340n的多个单元组成的共享高速缓存存储器。在各个实施例中,LLC 340可以在核心和图形引擎以及各种媒体处理电路中共享。如所看见的,环形互连330因而将核心耦合在一起,并且在核心、图形域320和系统代理域350之间提供互连。在一个实施例中,互连330可以是核心域的一部分。但是,在其他实施例中,环形互连可以具有其自己的域。
如进一步看见的,系统代理域350可以包括显示控制器352,其可以向相关联的显示器提供控制和接口。如进一步看见的,系统代理域350可以包括功率控制单元355,功率控制单元355可以包括用于执行本申请中描述的功率管理技术的逻辑。
如在图3中进一步看见的,处理器300可以进一步包括集成存储器控制器(IMC)370,其可以提供到诸如动态随机存取存储器(DRAM)的系统存储器的接口。可以存在多个接口380a-380n,以能够实现在处理器和其他电路之间的互连。例如,在一个实施例中,可以提供至少一个直接媒体接口(DMI)接口以及一个或多个PCIeTM接口。又进一步地,为了在诸如另外的处理器或其他电路的其他代理之间提供通信,也可以提供一个或多个QPI接口。虽然在图3的实施例中示出在较高级别,但是要理解的是,本发明的范围在该方面不受限制。
虽然在图3中未示出,但是,在一些实施例中,处理器300可以包括在下文参考图17-20所描述的重配置逻辑的全部或部分。
参考图4,说明了包括多个核心的处理器的实施例。处理器400包括任何处理器或处理设备,例如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持处理器、应用处理器、协处理器、片上系统(SoC)、或用于执行代码的其他设备。在一个实施例中,处理器400包括至少两个核心-核心401和402,其可以包括非对称核心或对称核心(所说明的实施例)。但是,处理器400可以包括可以是对称的或非对称的任何数目的处理元件。
在一个实施例中,处理元件指的是用于支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽、线程、处理单元、上下文、上下文单元、逻辑处理器、硬件线程、核心、和/或任何其他元件,其能够保持处理器的状态,例如执行状态或架构状态。换句话说,在一个实施例中,处理元件指的是能够与诸如软件线程、操作系统、应用或其他代码的代码独立地相关联的任何硬件。物理处理器典型地指的是集成电路,其潜在地包括任何数目的其他处理元件,例如核心或硬件线程。
核心经常指的是位于集成电路上的能够维持独立架构状态的逻辑,其中每一个独立维持的架构状态与至少一些专用执行资源相关联。与核心相对比,硬件线程典型地指的是位于集成电路上的能够维持独立架构状态的任何逻辑,其中独立维持的架构状态共享对执行资源的访问。如可以看见的,当某些资源被共享且其他资源专用于架构状态时,硬件线程与核心的命名之间的线是重叠的。又经常地,核心和硬件线程被操作系统视为单独的逻辑处理器,其中操作系统能够单独地调度在每一个逻辑处理器上的操作。
物理处理器400,如在图4中所说明的,包括两个核心,核心401和402。在此,核心401和402被认为是对称核心,即具有相同的配置、功能单元、和/或逻辑的核心。在另一实施例中,核心401包括乱序处理器核心,而核心402包括有序处理器核心。但是,核心401和402可以单独地选自任何类型的核心,例如本地核心、软件管理的核心、适于执行本地指令集架构(ISA)的核心、适于执行经转换的ISA的核心、共同设计的核心、或其他已知的核心。还要进一步讨论的,在下文进一步详细地描述了核心401中说明的功能单元,同样地,核心402中的单元以类似的方式操作。
如所描绘的,核心401包括两个硬件线程401a和401b,其还可以被称为硬件线程槽401a和401b。因此,在一个实施例中,诸如操作系统的软件实体潜在地将处理器400视为4个单独的处理器,即,能够同时执行四个软件线程的四个逻辑处理器或处理元件。如上文所提到的,第一线程与架构状态寄存器401a相关联、第二线程与架构状态寄存器401b相关联、第三线程可以与架构状态寄存器402a相关联、以及第四线程可以与架构状态寄存器402b相关联。在此,架构状态寄存器(401a、401b、402a、和402b)中的每一个可以被称为处理元件、线程槽、或线程单元,如上文所描述的。如所说明的,架构状态寄存器401a在架构状态寄存器401b中被复制,因此能够针对逻辑处理器401a和逻辑处理器401b存储单独的架构状态/上下文。在核心401中,还可以针对线程401a和401b复制诸如在分配器和重命名块430中的指令指针和重命名逻辑的其他更小的资源。可以通过划分来共享诸如在重排序/回退单元435中的重排序缓冲器、分支目标缓冲器和指令转换旁视缓冲器(translation lookasidebuffer)(BTB和I-TLB)420、加载/存储缓冲器、以及队列的一些资源。诸如通用内部寄存器、基于页面表的寄存器、低级数据高速缓存和数据TLB 450、执行单元440、和部分的重排序/回退单元435的其他资源可以被潜在地完全共享。
处理器400经常包括其他资源,其可以被完全共享、通过划分共享、或由处理单元专用/专用于处理单元。在图4中,说明了具有处理器的说明性逻辑单元/资源的纯示例性处理器的实施例。要注意的是,处理器可以包括或省略这些功能单元中的任何一个,以及包括未描绘的任何其他已知的功能单元、逻辑、或固件。如所说明的,核心401包括简化的、有代表性的乱序(OOO)处理器核心。但是在不同的实施例中可以利用有序处理器。
核心401进一步包括耦合到取回单元的解码模块425,用于解码所取回的元素。在一个实施例中,取回逻辑包括分别与线程槽401a、401b相关联的单独的定序器。通常,核心401与第一ISA相关联,其定义/指定在处理器400上可执行的指令。经常,作为第一ISA的一部分的机器代码指令包括引用/指定要执行的指令或操作的一部分的指令(被称为操作码)。解码模块425包括从其操作码中识别这些指令并在管线中传递所解码的指令以进行由第一ISA定义的处理的电路。例如,在一个实施例中,解码器模块425包括被设计或适配成识别诸如事务指令的特定指令的逻辑。作为被解码器模块425识别的结果,架构或核心401采取特定的、预定义的动作,以执行与适当的指令相关联的任务。注意到可以响应于单个或多个指令而执行本申请中描述的任务、框、操作、和方面中的任何一个是重要的;其中的一些可以是新的或旧的指令。
在一个示例中,分配器和重命名块430包括用于预留资源的分配器,例如用于存储指令处理结果的寄存器文件。但是,线程401a和401b潜在地能够乱序执行,其中分配器和重命名块430也预留其他资源,例如用于跟踪指令结果的重排序缓冲器。重命名块430也可以包括用于将程序/指令引用寄存器重命名为处理器400内部的其他寄存器的寄存器重命名器。重排序/回退单元435包括组件,例如上文提及的重排序缓冲器、加载缓冲器、以及存储缓冲器,以支持乱序执行以及乱序执行的指令的后来的有序回退。
在一个实施例中,调度器和执行单元块440包括用于在执行单元上调度指令/操作的调度器单元。例如,在具有可用的浮点执行单元的执行单元的端口上调度浮点指令。也包括与执行单元相关联的寄存器文件以存储信息指令处理结果。示例性执行单元包括浮点执行单元、整数执行单元、跳转执行单元、加载执行单元、存储执行单元、以及其他已知的执行单元。
较低级别的数据高速缓存和数据转换旁视缓冲器(D-TLB)450耦合到执行单元440。数据高速缓存用于存储最近使用/操作的元素,例如数据操作数,其潜在地被保持在存储器一致性状态下。D-TLB用于存储最近的虚拟/线性到物理地址转换。作为特定的示例,处理器可以包括用于将物理存储器分解成多个虚拟页面的页面表结构。
在此,核心401和402共享对较高级别或更远高速缓存410的访问,其用于高速缓存最近取回的元素。要注意的是,较高级别或更远指的是级别增加或更远离执行单元的高速缓存。在一个实施例中,较高级别的高速缓存410是最后级别的数据高速缓存-处理器400上的存储器等级中的最后高速缓存-例如第二级或第三级数据高速缓存。但是,较高级别的高速缓存410不受此限制,因为其可以与指令高速缓存相关联或包括指令高速缓存。相反,踪迹(trace)高速缓存-一种类型的指令高速缓存-可以耦合在解码器模块425之后以存储最近解码的踪迹。
在所描绘的配置中,处理器400还包括总线接口405和功率控制单元460,其可以根据本发明的实施例执行功率管理。在该场景中,总线接口405用于与处理器400外部的设备进行通信,例如系统存储器和其他组件。
存储器控制器470可以与诸如一个或许多存储器的其他设备形成接口。在示例中,总线接口405包括与存储器控制器和图形控制器的环形互连,该存储器控制器与存储器形成接口,并且该图形控制器与图形处理器形成接口。在SoC环境下,甚至更多的设备,例如网络接口、协处理器、存储器、图形处理器、以及任何其他已知的计算机设备/接口可以被集成在单个晶片或集成电路上,以提供具有高功能性和低功耗的小形状因子。
虽然在图4中未示出,但是在一些实施例中,处理器400可以包括参考图17-20在下文描述的重配置逻辑的全部或一部分。
现在参考图5,示出的是根据本发明一个实施例的处理器核心的微架构的框图。如在图5中所示出的,处理器核心500可以是多级管线化的乱序处理器。核心500可以基于接收到的操作电压在各个电压处操作,其可以从集成电压调节器或外部电压调节器接收。
如在图5中所看见的,核心500包括前端单元510,其可以用于取回要执行的指令并准备其以稍后在处理器管线中使用。例如,前端单元510可以包括取回单元501、指令高速缓存503、以及指令解码器505。在一些实现中,前端单元510可以进一步包括迹线高速缓存,连同微代码存储装置以及微操作存储装置。取回单元501可以取回宏指令,例如,从存储器或指令高速缓存503,并将其馈送到指令解码器505以将其解码成基元,即,用于由处理器执行的微操作。
在前端单元510与执行单元520之间耦合的是可以用于接收微指令并准备其以用于执行的乱序(OOO)引擎515。更特别地,OOO引擎515可以包括用于将微指令流重排序并分配执行所需的各种资源的各种缓冲器,也用于提供将逻辑寄存器重命名到诸如寄存器文件530和扩展的寄存器文件535的各种寄存器文件中的存储位置上。寄存器文件530可以包括用于整数和浮点运算的单独的寄存器文件。为了配置、控制和另外的操作的目的,一组机器专用寄存器(MSR)538还可以存在且可以由核心500内(以及在核心外部)的各种逻辑访问。
各种资源可以存在于执行单元520中,除了其他的专用硬件之外,包括例如各种整数、浮点、和单指令多数据(SIMD)逻辑单元。例如,除了其他这样的执行单元之外,这样的执行单元可以包括一个或多个算术逻辑单元(ALU)522以及一个或多个向量执行单元524。
可以向回退逻辑,即重排序缓冲器(ROB)540,提供来自执行单元的结果。更特别地,ROB 540可以包括用于接收与执行的指令相关联的信息的各种阵列和逻辑。然后,可以由ROB 540检查该信息,以确定指令是否可以被有效地回退并且结果数据是否被提交给处理器的架构状态,或者是否发生了防止指令的正确回退的一个或多个例外。当然,ROB 540可以处理与回退相关联的其他操作。
如在图5中所示出的,ROB 540耦合到高速缓存550,在一个实施例中,其可以是低级别的高速缓存(例如,L1高速缓存),但是本发明的范围在该方面不受限制。此外,执行单元520可以直接耦合到高速缓存550。从高速缓存550,数据通信可以利用较高级别的高速缓存、系统存储器等等发生。虽然在图5的实施例中示出具有该高级别,但是要理解的是,本发明的范围在该方面不受限制。例如,虽然图5的实现是针对诸如指令集架构(ISA)的乱序机器的,但是本发明的范围在该方面不受限制。即,可以在有序处理器、诸如基于ARM的处理器的精简指令集计算(RISC)处理器、或可以经由仿真引擎和相关联的逻辑电路仿真不同ISA的指令和操作的另一类型的ISA的处理器中实现其他实施例。
虽然未在图5中示出,但是在一些实施例中,核心500可以包括参考图17-20在下文描述的重配置逻辑的全部或部分。
现在参考图6,示出的是根据另一实施例的处理器核心的微架构的框图。在图6的实施例中,核心600可以是不同微架构的低功率核心,例如具有被设计成减少功耗的相对有限管线深度的基于的处理器。如所看见的,核心600包括耦合以向指令解码器615提供指令的指令高速缓存610。分支预测器605可以耦合到指令高速缓存610。要注意的是,指令高速缓存610可以进一步耦合到另一级别的高速缓存存储器,例如L2高速缓存(为了容易说明在图6中未示出)。继而,指令解码器615向发出队列(issue queue,IQ)620提供解码的指令,以存储并向给定的执行管线递送。微代码ROM 618耦合到指令解码器615。
浮点管线630包括浮点(FP)寄存器文件632,其可以包括诸如128、256、或512比特的给定比特宽度的多个架构寄存器。管线630包括用于调度指令以在管线的多个执行单元之一上执行的浮点调度器634。在所示出的实施例中,这样的执行单元包括ALU 635、置乱(shuffle)单元636、以及浮点加法器638。继而,在这些执行单元中生成的结果可以被提供回到寄存器文件632的缓冲器和/或寄存器。当然,要理解的是,虽然示出了具有这些较少的示例性执行单元,但是在另一实施例中可以存在另外的或不同的浮点执行单元。
还可以提供整数管线640。在所示出的实施例中,管线640包括整数(INT)寄存器文件642,其可以包括诸如128或256比特的给定比特宽度的多个架构寄存器。管线640包括用于调度指令以在管线的多个执行单元之一上执行的整数执行(IE)调度器644。在所示出的实施例中,这样的执行单元包括ALU 645、移位器单元646、以及跳转执行单元(JEU)648。继而,可以将在这些执行单元中生成的结果提供回到寄存器文件642的缓冲器和/或寄存器。当然要理解的是,虽然示出具有这些较少的示例性执行单元,但是在另一实施例中可以存在另外的或不同的整数执行单元。
存储器执行(ME)调度器650可以调度存储器操作,以在地址生成单元(AGU)652中执行,其还可以耦合到TLB 654。如所看见的,这些结构可以耦合到数据高速缓存660,其可以是L0和/或L1数据高速缓存,高速缓存继而耦合到高速缓存存储器等级的另外级别,包括L2高速缓存存储器。
为了对乱序执行提供支持,除了重排序缓冲器680之外,可以提供分配器/重命名器670,其被配置成对乱序执行的指令进行重排序以进行有序的回退。虽然在图6的说明中示出具有该特定的管线架构,但是要理解的是,许多的变化和替代方案是可能的。
虽然在图6中未示出,但是在一些实施例中,核心600可以包括参考图17-20在下文描述的重配置逻辑的全部或部分。
要注意的是,在具有非对称核心的处理器中,例如根据图5和图6的微架构,可以为了功率管理的原因而在核心之间动态地交换工作负荷,因为这些核心虽然具有不同的管线设计和深度,但是可以具有相同或相关的ISA。可以按照对用户应用(并且可能也对内核)透明的方式来执行这样的动态核心交换。
参考图7,示出的是根据又一实施例的处理器核心的微架构的框图。如在图7中所说明的,核心700可以包括用于在非常低的功耗级别处执行的多级有序管线。作为一个这样的示例,核心700可以具有根据可以从加州森尼维耳市的ARM有限公司获得的ARM CortexA53设计的微架构。在实现中,可以提供被配置成执行32比特和64比特代码的8级管线。核心700包括被配置成取回指令并将其提供给可以解码指令的解码单元715的取回单元710,该指令例如是诸如ARMv8ISA的给定ISA的宏指令。要进一步注意的是,队列730可以耦合到解码单元715以存储解码的指令。解码的指令被提供给发出逻辑725,其中可以向多个执行单元中的给定一个发出解码的指令。
随着进一步参考图7,发出逻辑725可以向多个执行单元中的一个发出指令。在所示出的实施例中,这些执行单元包括整数单元735、乘法单元740、浮点/向量单元750、双发出单元760、以及加载/存储单元770。可以向写回(WB)单元780提供这些不同的执行单元的结果。要理解的是,虽然为了容易说明示出了单个写回单元,但是在一些实现中,单独的写回单元可以与执行单元中的每一个相关联。此外,要理解的是,虽然在图7中示出的单元和逻辑中的每一个都被表示在高的级别处,但是特定的实现可以包括更多或不同的结构。使用具有如图7中的管线的一个或多个核心的处理器涉及可以在许多不同的终端产品中实现,从移动设备扩展到服务器系统。
虽然在图7中未示出,但是在一些实施例中,核心700可以包括参考框图17-20在下文描述的重配置逻辑的全部或部分。
参考图8,示出的是根据再一实施例的处理器核心的微架构的框图。如在图8中所描绘的,核心800可以包括用于在非常高的性能级别处执行的多级多发出乱序管线(与图7的核心700相比,其可以在更高的功耗级别处发生)。作为一个这样的示例,处理器800可以具有根据ARM Cortex A57设计的微架构。在实现中,可以提供被配置成执行32比特和64比特代码两者的15(或更多)级的管线。此外,可以针对3(或更大)-宽和3(或更大)-发出操作提供该管线。核心800包括被配置成取回指令并将其提供给耦合到高速缓存820的解码器/重命名器/分配器单元815的取回单元810。单元815可以解码指令,例如ARMv8指令集架构的宏指令,重命名指令中的寄存器引用,并且向所选定的执行单元分配指令(最终)。解码的指令可以被存储在队列825中。要注意的是,虽然为了容易说明在图8中示出了单个队列结构,但是要理解的是,可以针对多个不同类型的执行单元中的每一个提供单独的队列。
还在图8中示出的是发出逻辑830,可以从该发出逻辑830向选定的执行单元发出存储在队列825中的解码的指令。在特定的实施例中,还可以实现针对发出逻辑830耦合到其的多个不同类型的执行单元中的每一个具有单独的发出逻辑。
可以向多个执行单元中的给定一个发出解码的指令。在所示出的实施例中,这些执行单元包括一个或多个整数单元835、乘法单元840、浮点/向量单元850、分支单元860、以及加载/存储单元870。在实施例中,浮点/向量单元850可以被配置成处理128或256比特的SIMD或向量数据。仍然进一步地,浮点/向量执行单元850可以执行IEEE-754双精度浮点运算。可以向写回单元880提供这些不同的执行单元的结果。要注意的是,在一些实现中,单独的写回单元可以与执行单元中的每一个相关联。此外,要理解的是,虽然在图8中示出的单元和逻辑中的每一个被表示为在高的级别处,但是特定的实现可以包括更多或不同的结构。
虽然在图8中未示出,但是在一些实施例中,核心800可以包括参考图17-20在下文描述的重配置逻辑的全部或部分。
要注意的是,在具有非对称核心的处理器中,例如根据图7和图8的微架构,可以为了功率管理的原因而动态地交换工作负荷,因为虽然这些核心具有不同的管线设计和深度,但是其可以具有相同的或相关的ISA。可以按照对用户应用(以及可能地对核心)透明的方式来执行这样的动态核心交换。
使用具有如在图5-8中的任何一个或多个中的管线的一个或多个核心设计的处理器可以在许多不同的终端产品中实现,从移动设备扩展到服务器系统。现在参考图9,示出的是根据本发明另一实施例的处理器的框图。在图9的实施例中,处理器900可以是包括多个域的SoC,可以控制其每一个域以在单独的操作电压和操作频率处操作。作为特定的说明性示例,处理器900可以是诸如i3、i5、i7或从英特尔公司可获得的另一这样的处理器的基于架构核心TM的处理器。但是,在其他实施例中,可以代替地存在诸如从加州的森尼维耳的超微半导体有限公司(AMD)可获得的其他低功率处理器、来自ARM有限公司或其受让方的基于ARM的设计或来自加州的森尼维耳的MIPS技术有限公司或其受让方或采用者的基于MIPS的设计,例如苹果A7处理器、高通骁龙处理器、或德州仪器OMAP处理器。可以在诸如智能电话、平板计算机、平板手持计算机、UltrabookTM计算机或其他便携计算设备的低功率系统中使用这样的SoC,其可以并入具有基于异构系统架构的处理器设计的异构系统架构。
在图9中示出的高级别视图中,处理器900包括多个核心单元910a-910n。每一个核心单元可以包括一个或多个处理器核心、一个或多个高速缓存存储器以及其他电路。每一个核心单元910可以支持一个或多个指令集(例如,x86指令集(具有已经添加有较新版本的一些扩展);MIPS指令集;ARM指令集(具有诸如NEON的可选的另外的扩展))或其他的指令集或其组合。要注意的是,核心单元中的一些可以是异构资源(例如,具有不同的设计)。此外,每一个这样的核心可以耦合到高速缓存存储器(未示出),在实施例中,其可以是共享的级2(L2)高速缓存存储器。非易失性存储装置930可以用于存储各种程序和其他数据。例如,该存储装置可以用于存储至少部分的微代码、诸如BIOS的引导信息、其他系统软件等。
每一个核心单元910还可以包括诸如总线接口单元的接口以使得能够互连到处理器的另外的电路。在实施例中,每一个核心单元910耦合到可以充当主高速缓存一致性片上互连的一致性结构,该互连继而耦合到存储器控制器935。继而,存储器控制器935控制与诸如DRAM的存储器(在图9中,为了容易说明未示出)的通信。
除了核心单元之外,在处理器中存在另外的处理引擎,包括至少一个图形单元920,图形单元920可以包括用于执行图形处理以及可能地执行图形处理器上的通用操作(所谓的GPGPU运算)的一个或多个图形处理单元(GPU)。此外,可以存在至少一个图像信号处理器925。信号处理器925可以被配置成处理从一个或多个捕获设备,在SoC内部或在片外,接收的进来的图像数据。
还可以存在其他加速器。在图9的说明中,视频编码器950可以执行包括针对视频信息的编码和解码的编码操作,例如针对高清视频内容提供硬件加速支持。可以进一步提供显示控制器955以加速显示操作,包括对系统的内部和外部显示器提供支持。此外,可以存在用于执行诸如安全引导操作、各种密码操作等的安全操作的安全处理器945。
单元中的每一个可以经由功率管理器940来控制其功耗,功率管理器可以包括用于执行在本申请中描述的各种功率管理技术的控制逻辑。
在一些实施例中,处理器900可以进一步包括耦合到一致性结构的非一致性结构,各种外围设备可以耦合到该一致性结构。一个或多个接口960a-960d能够实现与一个或多个片外设备的通信。除了其他类型的通信协议之外,这样的通信可以经由诸如PCIeTM、GPIO、USB、I2C、UART、MIPI、SDIO、DDR、SPI、HDMI的各种通信协议。虽然在图9的实施例中示出该高的级别,但是要理解的是,本发明的范围在该方面不受限制。
虽然在图9未示出,但是在一些实施例中,处理器900可以包括参考图17-20在下文描述的重配置逻辑的全部或部分。
现在参考图10,示出的是代表性SoC的框图。在所示出的实施例中,SoC 1000可以是要被优化以并入到诸如平板计算机或其他便携计算设备的智能电话或其他低功率设备的被配置用于低功率操作的多核SoC。作为示例,可以使用非对称或不同类型的核心来实现SoC 1000,例如较高功率和/或低功率核心的组合,例如乱序核心和有序核心。在不同的实施例中,这些核心可以基于架构TM核心设计或ARM架构设计。在又一其他实施例中,可以在给定的SoC中实现英特尔和ARM核心的混合。
如在图10中所看见的,SoC 1000包括具有多个第一核心1012a-1012d的第一核心域1010。在示例中,这些核心可以是诸如有序核心的低功率核心。在一个实施例中,这些第一核心可以被实现为ARM Cortex A53核心。继而,这些核心耦合到核心域1010的高速缓存存储器1015。此外,SoC 1000包括第二核心域1020。在图10的说明中,第二核心域1020具有多个第二核心1022a-1022d。在示例中,这些核心可以是比第一核心1012功耗更高的核心。在实施例中,第二核心可以是乱序核心,其可以被实现为ARM Cortex A57核心。继而,这些核心耦合到核心域1020的高速缓存存储器1025。要注意的是,虽然在图10中示出的示例在每一个域中包括4个核心,但是要理解的是,在其他示例中,在给定的域中可以存在更多或更少的核心。
随着进一步参考图10,还提供了图形域1030,其可以包括被配置成独立地执行图形工作负荷的一个或多个图形处理单元(GPU),例如,由核心域1010和1020中的一个或多个核心提供。作为示例,除了提供图形和显示渲染操作之外,GPU域1030可以用于针对各种屏幕尺寸提供显示支持。
如所看见的,各种域耦合到一致性互连1040,在实施例中,其可以是继而耦合到集成存储器控制器1050的高速缓存一致性互连结构。在一些示例中,一致性互连1040可以包括诸如L3高速缓存的共享高速缓存存储器。在实施例中,存储器控制器1050可以是用于向多个信道提供与片外存储器的通信的直接存储器控制器,例如DRAM的多个信道(为了在图10中容易说明,未示出)。
在不同的示例中,核心域的数目可以变化。例如,对于适合并入到移动计算设备中的低功率SoC,可以存在有限数目的诸如在图10中示出的核心域。又进一步地,在这样的低功率SoC中,包括较高功率核心的核心域1020可以具有较少数目的这样的核心。例如,在一个实现中,可以提供两个核心1022以能够在减少的功耗级别处实现操作。此外,不同的核心域还可以耦合到中断控制器,以能够在不同的域之间实现工作负荷的动态交换。
在又一些其它的实施例中,可以存在更大数目的核心域以及另外的可选的IP逻辑,这是因为,SoC可以被调整到较高的性能(和功率)级别以并入到其他的计算设备,例如台式机、服务器、高性能计算系统、基站等。作为一个这样的示例,可以提供各自具有给定数目的乱序核心的4个核心域。又进一步地,除了可选的GPU支持之外(其作为示例可以采用GPGPU形式),还可以提供用于提供针对特定功能(例如,网络服务、网络处理、交换等)的优化硬件支持的一个或多个加速器。此外,可以存在用于将这样的加速器耦合到片外组件的输入/输出接口。
虽然在图10中未示出,但是在一些实施例中,SoC 1000可以包括参考图17-20在下文描述的重配置逻辑的全部或部分。
现在参考图11,示出的是另一示例性SoC的框图。在图11的实施例中,SoC 1100可以包括用于使得能够针对多媒体应用、通信和其他功能实现高性能的各种电路。这样,SoC1100适合并入到各种各样的便携和其他设备中,例如智能电话、平板计算机、智能电视等。在所示出的示例中,SoC 1100包括中央处理器单元(CPU)域1110。在实施例中,在CPU域1110中可以存在多个单独的处理器核心。作为一个示例,CPU域1110可以是具有4个多线程核心的四核处理器。这样的处理器可以是同构或异构处理器,例如低功率和高功率处理器核心的混合。
继而,提供GPU域1120以在一个或多个GPU中执行高级图形处理,以便处理图形并且计算API。除了在执行多媒体指令期间可能发生的高级计算之外,DSP单元1130可以提供一个或多个低功率DSP以处理诸如音乐回放、音频/视频等的低功率多媒体应用。继而,通信单元1140可以包括用于经由各种无线协议提供连接性的各种组件,无线协议例如是蜂窝通信(包括3G/4G LTE)、诸如蓝牙TM、IEEE 802.11等的无线局域协议。
又进一步地,多媒体处理器1150可以用于执行对高清视频和音频内容的捕获和回放,包括处理用户手势。传感器单元1160可以包括用于与给定平台中的各种片外传感器形成接口的多个传感器和/或传感器控制器。可以向图像信号处理器1170提供一个或多个单独的ISP,以针对从平台的一个或多个照相机捕获的内容执行图像处理,照相机包括静态的和视频照相机。
显示处理器1180可以提供到给定像素密度的高清显示器的连接支持,包括无线传送用于在这样的显示器上回放的内容。又进一步地,位置单元1190可以包括支持多个GPS星座图的GPS接收机,以向应用提供使用这样的GPS接收机获得的高度准确的定位信息。要理解的是,虽然在图11的示例中示出了具有该组特定的组件,但是许多变化和替代方案是可能的。
虽然在图11中未示出,但是在一些实施例中,SoC 1100可以包括参考图17-20在下文描述的重配置逻辑的全部或部分。
现在参考图12,示出的是可以与实施例一起使用的示例性系统的框图。如所看见的,系统1200可以是智能电话或其他无线通信器。基带处理器1205被配置成针对要从系统发送或由系统接收的通信信号执行各种信号处理。继而,基带处理器1205耦合到应用处理器1210,除了诸如许多公知的社交媒体和多媒体应用之外,应用处理器1210可以是系统的要执行OS和其他系统软件的主要CPU。应用处理器1210可以进一步被配置成执行针对设备的各种其他计算操作。
继而,应用处理器1210可以耦合到用户接口/显示器1220,例如触摸屏显示器。此外,应用处理器1210可以耦合到存储器系统,其包括非易失性存储器,即闪存1230,和系统存储器,即动态随机存取存储器(DRAM)1235。如进一步看见的,应用处理器1210进一步耦合到诸如可以记录视频和/或静态图像的一个或多个图像捕获设备的捕获设备1240。
仍然参考图12,包括用户标识模块和可能的安全存储装置以及密码处理器的通用集成电路卡(UICC)1240也耦合到应用处理器120。系统1200可以进一步包括可以耦合到应用处理器1210的安全处理器1250。多个传感器1225可以耦合到应用处理器1210,以能够输入诸如加速度计和其他环境信息的各种感测到的信息。音频输出设备1295可以提供用于输出声音的接口,例如,以语音通信的形式,播放的或流式传送的音频数据等。
如进一步说明的,提供了经由近场通信(NFC)天线1265在NFC近场中通信的NFC非接触式接口1260。虽然在图12中示出了单独的天线,但是要理解的是,在一些实现中,可以提供一个天线或不同的天线组以能够实现各种无线功能。
功率管理集成电路(PMIC)1215耦合到用于执行平台级别功率管理的应用处理器1210。为了该目的,PMIC 1215可以向应用处理器1210发出功率管理请求,以根据期望进入特定的低功率状态。此外,基于平台约束,PMIC 1215还可以控制系统1200的其他组件的功率级别。
为了能够实现要发送和接收的通信,可以在基带处理器1205和天线1290之间耦合各种电路。特别地,可以存在射频(RF)收发机1270和无线局域网(WLAN)收发机1275。一般而言,RF收发机1270可以用于根据诸如3G或4G无线通信协议的给定无线通信协议接收和发送无线数据和呼叫,例如根据码分多址(CDMA)、全球系统移动通信(GSM)、长期演进(LTE)或其他协议。此外,可以存在GPS传感器1280。还可以提供诸如接收或发送例如AM/FM和其他信号的无线电信号的其他无线通信。此外,经由WLAN收发机1275,还可以实现本地无线通信。
虽然未在图12中示出,但是在一些实施例中,系统1200可以包括参考图17-20在下文描述的重配置逻辑的全部或部分。
现在参考图13,示出的是可以与实施例一起使用的另一示例性系统的框图。在图13的说明中,系统1300可以是诸如平板计算机、2:1平板、手机平板或其他可转换的或独立的平板系统的移动低功率系统。如所说明的,存在SoC 1310且其可以被配置成操作为针对设备的应用处理器。
各种设备可以耦合到SoC 1310。在示出的说明中,存储器子系统包括耦合到SoC1310的闪存1340和DRAM 1345。此外,触摸面板1320耦合到SoC以提供显示能力和经由触摸的用户输入,包括在触摸面板1320的显示器上提供虚拟键盘。为了提供有线网络连接性,SoC 1310耦合到以太网接口1330。外围集线器1325耦合到SoC 1310以能够实现与各种外围设备的接口,例如可以通过各种端口或其他连接器中的任何一个耦合到系统1300。
除了SoC 1310内的内部功率管理电路和功能之外,PMIC 1380耦合到SoC 1310以提供基于平台的功率管理,例如,基于系统是通过电池1390上电还是通过经由AC适配器1395的AC电源上电。除了该基于电源的功率管理之外,PMIC 1380可以进一步基于环境和使用条件来执行平台功率管理活动。仍然进一步地,PMIC 1380可以向SoC 1310传送控制和状态信息,以导致在SoC 1310内的各种功率管理动作。
仍然参考图13,为了提供无线能力,WLAN单元1350耦合到SoC 1310且继而耦合到天线1355。在各种实现中,WLAN单元1350可以根据一个或多个无线协议提供通信。
如进一步说明的,多个传感器1360可以耦合到SoC 1310。这些传感器可以包括各种加速度计、环境和其他传感器,包括用户手势传感器。最后,音频编解码器1365耦合到SoC1310以向音频输出设备1370提供接口。当然,要理解的是,虽然在图13中示出具有该具体实现,但是许多的变化和替代方案是可能的。
虽然在图13中未示出,但是在一些实施例中,系统1300可以包括参考图17-20在下文描述的重配置逻辑的全部或部分。
现在参考图14,示出的是诸如笔记本、UltrabookTM或其他小形状因子系统的代表性计算机系统1400的框图。在一个实施例中,处理器1410包括微处理器、多核处理器、多线程处理器、超低电压处理器、嵌入式处理器、或其他已知的处理元件。在该说明的实现中,处理器1410充当用于与系统1400的各种组件中的许多组件进行通信的主处理单元和中央集线器,并且可以包括如在本申请中描述的功率管理电路。作为一个示例,处理器1410被实现为SoC。
在一个实施例中,处理器1410与系统存储器1415通信。作为说明性的示例,经由多个存储器设备或模块实现系统存储器1415以提供给定数量的系统存储器。
为了提供对诸如数据、应用、一个或多个操作系统等的信息的永久存储,大容量存储装置1420还可以耦合到处理器1410。在各种实施例中,为了能够实现更薄和更轻的系统设计并且为了改进系统响应能力,可以经由SSD实现该大容量存储装置或者该大容量存储装置主要可以使用硬盘驱动(HDD)来实现,其中较小数量的SSD存储装置用作用于使得在断电事件期间能够实现对上下文状态和其他这样的信息的非易失性存储的SSD高速缓存,以便在系统活动的重启时可以发生较快的上电。如在图14中所示出的,闪存设备1422可以耦合到处理器1410,例如,经由串行外围设备接口(SPI)。该闪存设备可以提供系统软件的非易失性存储,包括基本输入/输出软件(BIOS)以及系统的其他固件。
在系统1400内可以存在各种输入/输出(I/O)设备。特别地,在图14的实施例中示出的是显示器1424,其可以是进一步提供触摸屏1425的高清LCD或LED。在一个实施例中,显示器1424可以经由可以被实现为高性能图形互连的显示互连而耦合到处理器1410。触摸屏1425可以经由另一互连耦合到处理器1410,在实施例中,该互连可以是I2C互连。如在图14中进一步示出的,除了触摸屏1425之外,通过触摸的用户输入也可以经由触摸板1430产生,该触摸板可以被配置在底盘中并且还可以与触摸屏1425相同地耦合到I2C互连。
为了感知计算和其他目的,各种传感器可以存在于系统中并且可以按照不同的方式耦合到处理器1410。某些惯性和环境传感器可以通过传感器集线器1440,例如,经由I2C互连,耦合到处理器1410。在图14中示出的实施例中,这些传感器可以包括加速度计1441、环境光传感器(ALS)1442、指南针1443和陀螺仪1444。其他环境传感器可以包括在一些实施例中经由系统管理总线(SMBus)总线耦合到处理器1410的一个或多个热传感器1446。
如在图14中所看见的,各种外围设备可以经由低引脚数(LPC)互连耦合到处理器1410。在所示出的实施例中,各种组件可以通过嵌入式控制器1435耦合。这样的组件可以包括键盘1436(例如,经由PS2接口耦合)、风扇1437、以及热传感器1439。在一些实施例中,触摸板1430还可以经由PS2接口耦合到EC 1435。此外,诸如可信平台模块(TPM)1438的安全处理器还可以经由该LPC互连耦合到处理器1410。
系统1400可以按照各种方式与外部设备进行通信,包括无线。在图14中示出的实施例中,存在各种无线模块,无线模块中的每一个都可以与被配置用于特定无线通信协议的无线电设备相对应。一种诸如近场的用于在短距离内进行无线通信的方式可以是经由NFC单元1445,在一个实施例中,其可以经由SMBus与处理器1410通信。要注意的是,经由该NFC单元1445,靠近彼此的设备可以通信。
如在图14中进一步看见的,另外的无线单元可以包括其他的短距无线引擎,包括WLAN单元1450和蓝牙TM单元1452。使用WLAN单元1450,可以实现Wi-FiTM通信,而经由蓝牙TM单元1452,能够发生短距蓝牙TM通信生。这些单元可以经由给定的链路与处理器1410通信。
此外,无线广域通信,例如,根据蜂窝或其他无线广域协议,可以经由继而耦合到用户标识模块(SIM)1457的WWAN单元1456发生。此外,为了能够实现接收和使用位置信息,也可以存在GPS模块1455。要注意的是,在图14中示出的实施例中,WWAN单元1456和诸如照相机模块1454的集成捕获设备可以经由给定的链路通信。
为了提供音频输入和输出,可以经由数字信号处理器(DSP)1460来实现音频处理器,其可以经由高清音频(HDA)链路耦合到处理器1410。类似地,DSP 1460可以与继而可以耦合到输出扬声器1463的集成编码器/解码器(编辑器)和放大器1462进行通信,输出扬声器1460可以在底盘中实现。类似地,放大器和编解码器1462可以耦合为从麦克风1465接收音频输入,在实施例中,麦克风可以经由双阵列麦克风(例如数字麦克风阵列)实现,以提供高质量的音频输入,以使得能够在系统中实现对各种操作的语音激活的控制。还要注意的是,可以从放大器/编解码器1462向耳机插孔提供音频输出。虽然在图14的实施例中示出了具有这些特定的组件,但是要理解的是,本发明的范围在该方面不受限制。
虽然在图14中未示出,但是在一些实施例中,系统1400可以包括参考图17-20在下文描述的重配置逻辑的全部或部分。
可以在许多不同的系统类型中实现实施例。现在参考图15,示出的是根据本发明实施例的系统的框图。如在图15中示出的,微处理器系统1500是点对点互连系统,且包括经由点对点互连1550耦合的第一处理器1570和第二处理器1580。如在图15中所示出的,处理器1570和1580中的每一个可以是多核处理器,包括第一和第二处理器核心(即,处理器核心1574a和1574b以及处理器核心1584a和1584b),但是潜在地在处理器中可以存在更多的核心。处理器中的每一个可以包括用于执行如本申请中描述的基于处理器的功率管理的PCU或其他功率管理逻辑。
仍然参考图15,第一处理器1570进一步包括存储器控制器集线器(MCH)1572和点对点(P-P)接口1576和1578。类似地,第二处理器1580包括MCH 1582和P-P接口1586和1588。如在图15中所示出的,MCH的1572和1582将处理器耦合到相应的存储器,即,存储器1532和存储器1534,其可以是在本地附接到相应处理器的部分系统存储器(例如,DRAM)。第一处理器1570和第二处理器1580可以分别经由P-P互连1562和1564耦合到芯片集1590。如在图15中所示出的,芯片集1590包括P-P接口1594和1598。
此外,芯片集1590包括通过P-P互连1539使芯片集1590与高性能图形引擎1538耦合的接口1592。继而,芯片集1590可以经由接口1596耦合到第一总线1516。如在图15中所示出的,各种输入/输出(I/O)设备1514可以耦合到第一总线1516,连同将第一总线1516耦合到第二总线1520的总线桥1518。在一个实施例中,各种设备可以耦合到第二总线1520,包括,例如键盘/鼠标1522、通信设备1526和诸如磁盘驱动或可以包括代码1530的其他大容量存储设备的数据存储单元1528。此外,音频I/O 1524可以耦合到第二总线1520。实施例可以被并入到其他类型的系统,包括诸如智能蜂窝电话、平板计算机、笔记本、超级本TM等的移动设备。
虽然在图15中未示出,但是在一些实施例中,系统1500可以包括参考图17-20在下文描述的重配置逻辑的全部或部分。
至少一个实施例的一个或多个方面可以由存储在机器可读介质上的、表示和/或定义在诸如处理器的集成电路中的逻辑的代表性代码实现。例如,机器可读介质可以包括表示在处理器中的各种逻辑的指令。当由机器读取时,上述指令可以使得机器制造该逻辑以执行本申请中描述的技术。这样的表示,被称为“IP核”,是针对集成电路的可重用逻辑单元,其可以被存储在有形的、机器可读的介质上,作为描述集成电路的结构的硬件模型。可以向各种客户或制造设施提供硬件模型,其将硬件模型加载到制造集成电路的制造机器上。可以制造集成电路以便电路执行与在本申请中描述的实施例中的任何一个相关联地描述的操作。
图16表示描绘可以用于制造用以执行根据实施例的操作的集成电路的IP核开发系统1600的框图。IP核开发系统1600可以用于生成可以被并入到较大设计或用于构造整个集成电路(例如,SoC集成电路)的模块化的、可重用的设计。设计设施1630可以以高级编程语言(例如,C/C++)生成IP核设计的软件仿真1610。软件仿真1610可以用于设计、测试并验证IP核的行为。然后,可以从仿真模型创建或合成寄存器传输级(RTL)设计。RTL设计1615是对集成电路的行为的抽象,其对在硬件寄存器之间的数字信号流进行建模,包括使用建模的数字信号执行的相关联的逻辑。除了RTL设计1615之外,还可以创建、设计、或合成在逻辑级别或晶体管级别的较低级别设计。从而,初始设计和仿真的特定细节可以变化。
RTL设计1615或等同物可以进一步由设计设施合成到硬件模型1620中,其可以是硬件描述语言(HDL)、或物理设计数据的某一其他表示的形式。可以进一步仿真或测试HDL,以验证IP核设计。IP核设计可以使用非易失性存储器1640(例如,硬盘、闪存、或任何非易失性存储介质)进行存储以用于向第三方制造设施1665递送。可供替换地,可以通过有线连接1650或无线连接1660发送IP核设计(例如,经由互联网)。然后,制造设施1665可以制造至少部分地基于IP核设计的集成电路。所制造的集成电路可以被配置成执行根据参考图17-20在下文描述的重配置逻辑的操作。
现在参考图17,示出的是根据一个或多个实施例的系统1700的框图。如所示出的,系统1700可以包括主机1740和任何数量的客户端1750。在一些实施例中,主机1740可以向客户端1750的用户提供计算资源。例如,主机1740可以是在提供云计算服务的数据中心中包含的服务器。进一步地,客户端1750可以包括任何类型的硬件和/或软件客户端,例如计算设备、软件应用、虚拟机、容器、服务器、智能电话、处理器、嵌入式控制器等。
在一个或多个实施例中,主机1740可以包括可重配置设备1710。例如,可重配置设备1710可以是扩展卡、处理器、集成电路、在处理器中嵌入的设备、在片上系统(SoC)中包含的设备等。进一步地,虽然在图17中未示出,但是主机1740可以包括其他组件(例如,存储器、存储设备、网络接口等)。在一些实施例中,可重配置设备1710可以包括可重配置电路1720和重配置逻辑1730。可重配置电路1720可以包括一组互连的逻辑框(LB)1725。在一些实施例中,根据指定重配置的数据图像(在本申请中被称为“重配置图像”)配置在可重配置电路1720中的LB 1725和/或互连。例如,客户端1750可以发送重配置图像以重配置可重配置电路1720。在一些实施例中,可重配置电路1720可以是FPGA。
在一个或多个实施例中,重配置逻辑1730可以控制可重配置电路1720的重配置。例如,重配置逻辑1730可以验证用户实体被授权重配置可重配置电路1720。用户实体可以包括人、应用、角色、组织等。进一步地,重配置逻辑1730可以在图像可以用于重配置可重配置电路1720之前验证该图像。在一些实施例中,重配置逻辑1730可以使用经验证的重配置图像控制LB 1725和相关联的互连的配置。下文参考图18-20进一步描述了用户实体和/或重配置图像的验证。
在一些实施例中,重配置逻辑1730可以提供可重配置设备1710的虚拟化的重配置。例如,重配置逻辑1730可以在可重配置设备1710和多个用户实体(例如,与两个不同的组织相关联的用户实体)之间提供抽象层。此外,重配置逻辑1730可以向每一个用户实体提供可重配置设备1710的独立逻辑视图。因此,多个用户实体可以单独地且安全地重配置相同的可重配置设备1710,而不彼此干扰或影响。
现在参考图18A,示出的是根据一个或多个实施例的示例性重配置逻辑1800。一般而言,重配置逻辑1800可以与图17中示出的重配置逻辑1730中的一些或全部的示例性实施例相对应。这样,重配置逻辑1800可以与特定的可重配置设备(例如,在图17中示出的可重配置设备1710)相关联。如在图18A中所示出的,重配置逻辑1800可以包括重配置控制器1810。在一些实施例中,重配置控制器1810可以是硬件设备,并且能够执行机器可读指令(例如,软件和/或固件)。
在一个或多个实施例中,重配置控制器1810可以包括策略接口1825和一组配置接口1820A-1820C(一般而言,也被称为配置接口1820)。可以在硬件中实现接口1825和1820(例如,网络接口、本地总线接口、存储器寄存器等)。这些接口可以使用诸如以太网、外围组件互连(PCI)、PCI快速(PCIe)物理功能、PCIe虚拟功能等的各种协议。
在一个或多个实施例中,配置接口1820A-1820C可以接收各种重配置图像1822A-1822C。在一些实施例中,每一个配置接口1820可以唯一地与特定的用户实体相关联。例如,可以预留配置接口1820A以由第一用户实体使用,可以预留配置接口1820B以由第二用户实体使用,等等。在一些实施例中,可以验证每一个配置接口1820以接收重配置图像(例如,被授权用于修改在图17中示出的可重配置电路1720的部分)。
在一个或多个实施例中,策略接口1825可以传送关于与重配置控制器1810相关联的可重配置设备的重配置的策略信息。例如,管理实体(例如,使用在图17中示出的客户端1750的系统管理员)可以使用策略接口1825,以向重配置控制器1810提供用户策略1835和/或图像策略1845。
在一些实施例中,用户策略1835可以包括与被授权重配置可重配置设备的用户实体相关联的信息。例如,用户策略1835可以指定被授权的用户实体的身份、被授权的用户实体的特性(例如,职务、组成员等)、安全和/或加密信息(数字密钥/签名、数字证书等)、每一个用户实体的特权和/或权利、特定用户实体被授权进行重配置的可重配置电路的特定部分(例如,在图17中示出的特定组LB 1725)、每一个用户实体的有效图像类型等。进一步地,在一些实施例中,用户策略1835可以指定特定的配置接口针对接收重配置图像是有效的,和/或与被授权的用户实体相关联。
在一些实施例中,图像策略1845可以包括与用于重配置可重配置设备的有效图像相关联的信息。例如,图像策略1845可以指定配置的有效类型、有效的功能、用于重配置的可重配置电路的有效部分、重配置图像的有效数字签名等。在另一示例中,图像策略1845可以指定特定的重配置图像可以仅在特定的配置接口处被接收(例如,重配置图像1822A可以仅在配置接口1820A处被接收)。在一些实施例中,可以根据图像策略1845对接收到的重配置图像1822进行加密。此外,在一些实施例中,重配置控制器1810可以包括用于存储一个或多个用户策略1835、图像策略1845、和/或重配置图像1822的存储器或存储介质(在图18A中未示出)。
在一个或多个实施例中,重配置控制器1810可以包括用户实体验证器1830、图像验证器1840、以及电路控制器1850,其中的每一个可以以硬件、机器可读指令(例如,软件和/或固件)、或其任何组合实现。在一个或多个实施例中,用户实体验证器1830可以验证配置接口1820和/或试图重配置可重配置电路的用户实体。例如,用户实体验证器1830可以使用用户策略1835来验证配置接口1820以接收重配置图像1822。在另一示例中,用户实体验证器1830可以使用用户策略1835来授权用户实体提供重配置图像1822。在一些实施例中,用户实体验证器1830可以使用用户策略1835来验证与用户实体相关联的安全和/或加密信息(例如,数字签名、数字证书等)。
在一个或多个实施例中,图像验证器1840可以验证要用于重配置可重配置电路的重配置图像1822。在一些实施例中,图像验证器1840可以使用图像策略1845来验证用于相关联的可重配置电路的重配置图像1822。例如,图像验证器1840可以使用图像策略1845来确定重配置图像1822是否包含有效数字签名。在另一示例中,图像验证器1840可以使用图像策略1845来确定重配置图像1822是否仅影响可重配置电路的授权部分或功能。在又一示例中,图像验证器1840可以使用图像策略1845来确定重配置图像1822是否与被已知为有害或恶意的图像相似或相同。
在一个或多个实施例中,电路控制器1850可以使用经验证的重配置图像1822来重配置可重配置电路(例如,在图17中示出的可重配置电路1720)。例如,电路控制器1850可以修改逻辑框的配置和可重配置电路的互连,如由重配置图像1822所指定的。
在一些实施例中,重配置控制器1810可以处理经加密的重配置图像1822。例如,假定用户实体(例如,使用在图17中示出的客户端1750)可以通过网络提供经加密的重配置图像1822。用户实体验证器1830和/或图像验证器1840可以使用用户策略1835和/或图像策略1845来解密经加密的重配置图像1822。经解密的重配置图像1822可以通过图像验证器1840验证,并且可以用于重配置可重配置电路。在一些实施例中,可以使用由可重配置电路平台(例如,菲斯密钥、整个存储器加密、软件防卫扩展、远程鉴证、内联加密/解密等)提供的任何安全特征来保护重配置图像1822。
在一些实施例中,重配置控制器1810可以提供可重配置电路的虚拟化重配置。例如,假定三个不同的用户实体分别与重配置接口1820A-1820C相关联。在该示例中,第一用户实体可以提供重配置图像1822,而看不见由其他用户实体提供的重配置图像1822。此外,在一些实施例中,每一个用户实体可以重配置被预留用于该用户实体的一部分可重配置电路。因此,可以避免用户实体访问或查看其它用户实体的处理活动。因此,多个用户实体可以分别且安全地重配置相同的可重配置设备,而不彼此干扰和/或影响。
现在参考图18B,示出的是根据一个或多个实施例的示例性重配置逻辑1802。重配置逻辑1802可以是图18A中示出的重配置逻辑1800的可供替换的实施例。假定重配置逻辑1802的组件基本上等同于具有相同标记的重配置逻辑1800的组件。
如在图18B中所示出的,重配置逻辑1802可以包括重配置应用1815和重配置控制器1810。重配置应用1815可以以软件实现(例如,通过通用处理器(在图18B中未示出)执行的机器可读指令)。此外,重配置控制器1810可以以硬件(例如,如硬件控制器)实现。
如在图18B中所示出的,重配置应用1815可以包括策略接口1825、用户实体验证器1830、以及图像验证器1840。此外,重配置控制器1810可以包括电路控制器1850和重配置接口1820。在图18B的示例性实施例中,重配置控制器1810可以向重配置应用1815发送指示已经经由特定的重配置接口1820接收到重配置图像的消息1860。在一些实施例中,重配置应用1815可以验证特定的配置接口1820(例如,通过使用用户策略1835的用户实体验证器1830)以及接收到的重配置图像(例如,通过使用图像策略1845的图像验证器1840)。如果验证了配置接口1820和接收到的重配置图像,则重配置应用1815可以向重配置控制器1810发送指示接收到的重配置图像可以用于重配置可重配置电路的消息1865。响应于消息1865,电路控制器1850可以根据接收到的重配置图像来修改可重配置电路。
现在参考图18C,示出的是根据一个或多个实施例的示例性重配置逻辑1804。重配置逻辑1804可以是重配置逻辑1800(图18A中示出)和/或重配置逻辑1802(图18B中示出)的可供替换的实施例。假定重配置逻辑1804的组件基本上等同于具有相同标记的重配置逻辑1800和/或重配置逻辑1802的组件。
如在图18C中所示出的,重配置逻辑1804可以包括重配置应用1815和电路控制器1850。重配置应用1815可以以软件实现,并且电路控制器1850可以以硬件实现。
在图18C的示例性实施例中,重配置应用1815可以包括策略接口1825、配置接口1820、用户实体验证器1830、以及图像验证器1840。重配置应用1815可以经由特定的配置接口1820接收重配置图像,可以验证特定的配置接口1820(例如,通过使用用户策略1835的用户实体验证器1830)以及接收到的重配置图像(例如,通过使用图像策略1845的图像验证器1840)。如果验证了配置接口1820和接收到的重配置图像,则重配置应用1815可以向电路控制器1850发送重配置图像。电路控制器1850可以基于重配置图像重配置可重配置电路。
现在参考图18D,示出的是根据一个或多个实施例的示例性重配置逻辑1806。重配置逻辑1806可以是重配置逻辑1800(在图18A中示出)、重配置逻辑1802(在图18B中示出)、和/或重配置逻辑1804(在图18C中示出)的可供替换的实施例。假定重配置逻辑1806的组件基本上等同于具有相同标签的重配置逻辑1800、重配置逻辑1802、和/或重配置逻辑1804的组件。
如在图18D中所示出的,重配置逻辑1806可以包括重配置应用1815和重配置控制器1810。重配置应用1815可以以软件实现,并且重配置控制器1810可以以硬件实现。
在图18D的示例性实施例中,重配置应用1815可以包括配置接口1820。此外,重配置控制器1810可以包括用户实体验证器1830、图像验证器1840、电路控制器1850、策略接口1825、以及配置接口1870。
重配置应用1815可以经由特定的配置接口1820接收重配置图像,并且可以经由配置接口1870向重配置控制器1810发送接收到的重配置图像。重配置控制器1810可以验证特定的配置接口1820(例如,通过使用用户策略1835的用户实体验证器1830)以及接收到的重配置图像(例如,通过使用图像策略1845的图像验证器1840)。如果验证了配置接口1820和接收到的重配置图像,则电路控制器1850可以基于重配置图像来重配置可重配置电路。
现在参考图19,示出的是根据一个或多个实施例的用于数据选择的方法1900的流程图。在各种实施例中,可以通过可以包括硬件(例如,处理设备、电路、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理设备上运行的指令)、或其组合的处理逻辑来执行方法1900。在一些实现中,该方法1900可以使用图17-18D中示出的一个或多个组件(例如,重配置逻辑1730、1800、1802、1804、1806)来执行。在固件或软件实施例中,可以通过存储在诸如光学、半导体、或磁存储设备的非暂时性机器可读介质中的计算机执行指令来实现方法1900。机器可读介质可以存储数据,如果其由至少一个机器使用,则使得该至少一个机器制造至少一个集成电路以执行方法。为了说明,参考图17-18D在下文描述了在方法1900中涉及的动作,其示出了根据一个或多个实施例的示例。但是,在本申请中讨论的各种实施例的范围在该方面不受限制。
框1910可以包括经由策略接口接收用户策略和图像策略。例如,参考图18A,重配置控制器1810可以经由策略接口1825接收用户策略1835和图像策略1845。在一些实施例中,可以从管理实体(例如,使用在图17中示出的客户端1750的管理员)接收用户策略1835和图像策略1845。
框1920可以包括经由多个配置接口中的第一配置接口接收第一重配置图像。例如,参考图18A,重配置控制器1810可以经由配置接口1820A接收重配置图像1822A。在一些实施例中,配置接口1820A可以与第一用户实体唯一地相关联。
框1930可以包括基于用户策略验证第一配置接口。例如,参考图18A,用户实体验证器1830可以使用用户策略1835验证配置接口1820A。在一些实施例中,验证配置接口1820A可以包括确定相关联的用户实体被授权以提供重配置图像1822A。
框1940可以包括基于图像策略验证第一重配置图像。例如,参考图18A,图像验证器1840可以使用图像策略1845来验证重配置图像1822A。在一些实施例中,验证重配置图像1822A可以包括确定重配置图像1822A是否包括有效的数字签名、仅影响被授权的可重配置电路的一部分、与被已知为恶意的重配置图像相似等。
框1950可以包括响应于确定第一配置接口和第一重配置图像都是有效的,使用第一重配置图像重配置可重配置电路。例如,参考图18A,电路控制器1850可以基于经验证的重配置图像1822A重配置可重配置电路的逻辑框和互连。在框1950之后,该方法1900完成。
现在参考图20,示出的是根据一个或多个实施例用于进行数据选择的方法2000的流程图。在各种实施例中,可以由可以包括硬件(例如,处理设备、电路、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理设备上运行的指令)、或其组合的处理逻辑来执行该方法1900。在一些实现中,可以使用在图17-18D中示出的一个或多个组件(例如,重配置逻辑1730、1800、1802、1804、1806)来执行该方法2000。在固件或软件实施例中,可以通过存储在诸如光学、半导体、或磁存储设备的非暂时性机器可读介质中的计算机执行指令来实现方法2000。机器可读介质可以存储数据,如果由至少一个机器使用,则其使得至少一个机器制造至少一个集成电路以执行方法。为了说明,可以在下文参考图17-18D描述在方法2000中涉及的动作,其示出了根据一个或多个实施例的示例。但是,在本申请中讨论的各个实施例的范围在该方面不受限制。
框2010可以包括经由策略接口接收用户策略和图像策略。例如,参考图18A,重配置控制器1810可以经由策略接口1825接收用户策略1835和图像策略1845。
框2020可以包括经由多个配置接口中的第一配置接口接收经加密的重配置图像。例如,参考图18A,重配置控制器1810可以经由配置接口1820A接收经加密的重配置图像1822A。在一些实施例中,可以加密重配置图像1822A以提供针对配置接口1820A的用户实体的隐私和/或安全。
框2030可以包括基于用户策略验证第一配置接口。例如,参考图18A,用户实体验证器1830可以使用用户策略1835验证配置接口1820A。
框2040可以包括解密经加密的重配置图像以生成经解密的重配置图像。例如,参考图18A,图像验证器1840可以基于图像策略1845解密经加密的重配置图像1822。
框2050可以包括使用图像策略验证经解密的重配置图像的签名。例如,参考图18A,图像验证器1840可以使用图像策略1845来确定经解密的重配置图像1822A包括有效的数字签名。
框2060可以包括使用图像策略确定经解密的重配置图像被授权修改可重配置电路的第一部分。例如,参考图17和18A,图像验证器1840可以使用图像策略1845来确定经解密的重配置图像1822A仅修改可重配置电路1720的被授权部分(例如,一组定义的LB 1725及其互连)。
框2070可以包括使用经解密的重配置图像来重配置可重配置电路的第一部分。例如,参考图18A,如果第一配置接口和经解密的重配置图像的签名是有效的,并且如果经解密的重配置图像被授权修改第一部分,则电路控制器1850可以使用经解密的重配置图像1822A重配置可重配置电路的第一部分。在框2070之后,该方法2000完成。
要注意的是,虽然图17-20描述了各种示例性实现,但是其他的变化是可能的。可以预期的是,可以参考图1-16在下文描述的示例性设备和系统中实现一个或多个实施例。
要注意的是,为了说明提供了图1-20中示出的示例,并且其并不意在限制任何实施例。特别地,虽然为了清楚起见可能以简化的形式示出了实施例,但是实施例可以包括任何数目的和/或布置的处理器、核心、和/或另外的组件(例如,总线、存储介质、连接器、功率组件、缓冲器、接口等)。例如,可以预期的是,除了这些示出的之外,一些实施例可以包括任何数目的组件,并且在某些实现中可以出现所示出的组件的不同布置。此外,可以预期的是,在图1-20中示出的示例中的细节可以在一个或多个实施例中的任何地方使用。
虽然参考特定的集成电路描述了一些实施例,例如在计算平台或处理器中,但是其他实施例适用于其他类型的集成电路和逻辑设备。在本申请中描述的实施例的类似技术和教导可以应用于其他类型的电路或半导体设备。例如,所公开的实施例不受限于特定类型的计算机系统。即,所公开的实施例可以在许多不同的系统类型中使用,范围从服务器计算机(例如,塔、机组、刀锋、微型服务器等)、通信系统、存储系统、任何配置的台式计算机、膝上型计算机、笔记本、以及平板计算机(包括2:1平板电脑、手机平板等),并且还可以在其他设备中使用,例如手持设备、片上系统(SoC)、以及嵌入式应用。手持设备的一些示例包括诸如智能电话的蜂窝电话、互联网协议设备、数字照相机、个人数字助理(PDA)、以及手持PC。嵌入式应用可以典型地包括微控制器、数字信号处理器(DSP)、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)开关、可佩戴设备、或可以执行下文教授的功能和操作的任何其他系统。尤其如此,可以在诸如移动电话、智能电话和手机平板的具有标准语音功能的移动终端中、和/或在诸如许多可穿戴设备、平板电脑、笔记本、台式计算机、微型服务器、服务器等的没有标准无线语音功能通信能力的非移动终端中实现实施例。此外,本申请中描述的装置、方法和系统不受限于物理计算设备,而是可以涉及软件实现。
可以以代码来实现实施例,并且实施例可以被存储在其上存储有指令的非暂时性存储介质上,所述指令可以用于对系统进行编程以执行所述指令。实施例还可以以数据实现并且可以被存储在非暂时性存储介质上,如果其由至少一个机器使用,则使得至少一个机器制造至少一个集成电路以执行一个或多个操作。存储介质可以包括但不限于,包括软盘、光盘、固态驱动(SSD)、压缩盘只读存储器(CD-ROM)、压缩盘可重写(CD-RW)、以及磁光盘的任何类型的盘片,诸如只读存储器(ROM)、例如动态随机存取存储器(DRAM)的随机存取存储器(RAM)、静态随机存取存储器(SRAM)、可擦除可编程只读存储器(EPROM)、闪存、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡的半导体设备、或适合存储电子指令的任何其他类型的介质。
以下条款和/或示例涉及进一步的实施例。
在示例1中,一种可重配置设备包括可重配置电路和重配置逻辑。所述重配置逻辑用于:经由策略接口接收用户策略和图像策略;经由多个配置接口中的第一配置接口接收第一重配置图像;基于所述用户策略验证所述第一配置接口;基于所述图像策略验证所述第一重配置图像;以及响应于确定所述第一配置接口和所述第一重配置图像二者都是有效的,使用所述第一重配置图像重配置所述可重配置电路。
在示例2中,示例1的主题可以可选地包括:所述重配置逻辑包括:用户实体验证器,用于使用所述用户策略验证所述第一重配置接口;图像验证器,用于使用所述图像策略验证第一重配置图像;以及电路控制器,用于使用所述第一重配置图像重配置所述可重配置电路。
在示例3中,示例1-2的主题可以可选地包括在硬件控制器中实现所述用户实体验证器、所述图像验证器、以及所述电路控制器。
在示例4中,示例1-3的主题可以可选地包括在所述硬件控制器中实现所述策略接口和所述多个配置接口。
在示例5中,示例1-4的主题可以可选地包括在软件应用中实现所述用户实体验证器和所述图像验证器;并且在硬件控制器中实现所述电路控制器。
在示例6中,示例1-5的主题可以可选地包括在软件应用中实现所述策略接口;并且在硬件控制器中实现所述多个配置接口。
在示例7中,示例1-6的主题可以可选地包括在软件应用中实现所述用户实体验证器、所述图像验证器、所述策略接口、和所述多个配置接口;以及在硬件控制器中实现所述电路控制器。
在示例8中,示例1-7的主题可以可选地包括在软件应用中实现所述多个配置接口;并且在硬件控制器中实现所述用户实体验证器、所述图像验证器、所述电路控制器、以及所述策略接口。
在示例9中,示例1-8的主题可以可选地包括所述可重配置电路是现场可编程门阵列(FPGA)。
在示例10中,示例1-9的主题可以可选地包括,所述重配置逻辑用于提供所述可重配置电路的虚拟化重配置。
在示例11中,一种用于重配置电路的方法,包括:经由策略接口接收与可重配置电路相关联的用户策略和图像策略;经由多个配置接口中的第一配置接口接收重配置图像;通过用户实体验证器使用所述用户策略验证所述第一重配置接口;通过图像验证器使用所述图像策略验证所述重配置图像;以及通过电路控制器使用经验证的重配置图像重配置所述可重配置电路。
在示例12中,示例11的主题可以可选地包括对接收到的重配置图像进行加密,并且所述方法包括对经加密的重配置图像进行解密。
在示例13中,示例11-12的主题可以可选地包括使用所述图像策略验证所述重配置图像的签名。
在示例14中,示例11-13的主题可以可选地包括在硬件控制器中实现所述用户实体验证器、所述图像验证器、所述电路控制器、所述策略接口、以及所述多个配置接口。
在示例15中,示例11-14的主题可以可选地包括经由所述多个配置接口提供所述可重配置电路的虚拟化重配置。
在示例16中,示例11-15的主题可以可选地包括所述可重配置电路是现场可编程门阵列(FPGA)。
在示例17中,一种用于数据选择的计算设备包括:一个或多个处理器;以及在其中存储有多个指令的存储器,当由所述一个或多个处理器执行时,所述使得所述计算设备执行示例11至16中任何一个的方法。
在示例18中,至少一个机器可读介质具有存储在其上的数据,如果由至少一个机器使用,所述数据使得所述至少一个机器执行示例11至16中的任何一个的方法。
在示例19中,一种用于数据选择的电子设备,包括用于执行示例11至16中的任何一个的方法的单元。
在示例20中,一种用于重配置电路的系统,包括:可重配置电路;用于接收用户策略和图像策略的策略接口;多个配置接口,包括用于接收重配置图像的第一配置接口;用于基于所述用户策略验证所述第一配置接口的用户实体验证器;用于基于所述图像策略验证所述重配置图像的图像验证器;以及用于使用经验证的重配置图像重配置所述可重配置电路的电路控制器。
在示例21中,示例20的主题可以可选地包括:所述图像验证器进一步用于使用所述图像策略对所述重配置图像进行解密。
在示例22中,示例20-21的主题可以可选地包括:所述图像验证器进一步用于使用所述图像策略验证所述重配置图像的签名。
在示例23中,示例20-22的主题可以可选地包括:所述多个配置接口用于向多个用户实体提供所述可重配置电路的虚拟化重配置。
在示例24中,示例20-23的主题可以可选地包括:所述可重配置电路、所述用户实体验证器、所述图像验证器、所述电路控制器、所述策略接口、以及所述多个配置接口被包括在硬件处理器中。
在示例25中,示例20-24的主题可以可选地包括:所述可重配置电路是现场可编程门阵列(FPGA)。
在示例26中,一种用于重配置电路的装置,包括:用于经由策略接口接收与可重配置电路相关联的用户策略和图像策略的单元;用于经由多个配置接口中的第一配置接口接收重配置图像的单元;用于使用所述用户策略验证所述第一重配置接口的单元;用于使用所述图像策略验证所述重配置图像的单元;以及用于使用经验证的重配置图像重配置所述可重配置电路的单元。
在示例27中,示例26的主题可以可选地包括:对接收到的重配置图像进行加密,并且该装置进一步包括用于对经加密的重配置图像进行解密的单元。
在示例28中,示例26-27的主题可以可选地包括用于使用所述图像策略验证所述重配置图像的签名的单元。
在示例29中,示例26-28的主题可以可选地包括用于经由多个配置接口提供所述可重配置电路的虚拟化重配置的单元。
在示例30中,示例26-29的主题可以可选地包括:所述可重配置电路是现场可编程门阵列(FPGA)。
可以预期的是,上文示例的各种组合是可能的。可以在许多不同类型的系统中使用实施例。例如,在一个实施例中,通信设备可以被布置成执行本申请中描述的各种方法和技术。当然,本发明的范围不限于通信设备,而是其他的实施例可以针对用于处理指令的其他类型的装置,或一个或多个机器可读介质包括指令,所述指令响应于在计算设备上被执行而使得所述设备执行本申请中描述的方法和技术中的一个或多个。
贯穿本说明书提及的“一个实施例”或“实施例”指的是结合实施例描述的特定的特征、结构或特性被包含在本发明所包含的至少一个实现中。从而,出现短语“一个实施例”或“在实施例中”未必指的是相同的实施例。此外,特定的特征、结构或特性可以以与所说明的特定实施例不同的其他适当形式设置,并且所有这样的形式可以被包含在本申请的权利要求书中。如在本申请中使用的,“响应于”指的是直接的原因和结果关系。
虽然已经针对有限数目的实施例描述了本发明,但是本领域的熟练技术人员将理解对其做出的许多修改和变化。期望的是,所附权利要求书覆盖落入本发明的真实精神和范围内的所有这样的修改和变化。
Claims (25)
1.一种可重配置设备,包括:
可重配置电路;以及
重配置逻辑,用于:
经由策略接口接收用户策略和图像策略;
经由多个配置接口中的第一配置接口接收第一重配置图像;
基于所述用户策略验证所述第一配置接口;
基于所述图像策略验证所述第一重配置图像;并且
响应于确定所述第一配置接口和所述第一重配置图像二者都是有效的,使用所述第一重配置图像重配置所述可重配置电路。
2.根据权利要求1所述的可重配置设备,其中,所述重配置逻辑包括:
用户实体验证器,用于使用所述用户策略验证所述第一配置接口;
图像验证器,用于使用所述图像策略验证所述第一重配置图像;以及
电路控制器,用于使用所述第一重配置图像重配置所述可重配置电路。
3.根据权利要求2所述的可重配置设备,其中,所述用户实体验证器、所述图像验证器、以及所述电路控制器在硬件控制器中实现。
4.根据权利要求3所述的可重配置设备,其中,所述策略接口和所述多个配置接口在所述硬件控制器中实现。
5.根据权利要求2所述的可重配置设备,其中:
所述用户实体验证器和所述图像验证器在软件应用中实现;并且
所述电路控制器在硬件控制器中实现。
6.根据权利要求2所述的可重配置设备,其中:
所述策略接口在软件应用中实现;并且
所述多个配置接口在硬件控制器中实现。
7.根据权利要求2所述的可重配置设备,其中:
所述用户实体验证器、所述图像验证器、所述策略接口、以及所述多个配置接口在软件应用中实现;并且
所述电路控制器在硬件控制器中实现。
8.根据权利要求2所述的可重配置设备,其中:
所述多个配置接口在软件应用中实现;并且
所述用户实体验证器、所述图像验证器、所述电路控制器、以及所述策略接口在硬件控制器中实现。
9.根据权利要求1所述的可重配置设备,其中,所述可重配置电路是现场可编程门阵列(FPGA)。
10.根据权利要求1所述的可重配置设备,其中,所述重配置逻辑用于提供所述可重配置电路的虚拟化配置。
11.一种用于重配置电路的方法,包括:
经由策略接口接收与可重配置电路相关联的用户策略和图像策略;
经由多个配置接口中的第一配置接口接收重配置图像;
通过用户实体验证器使用所述用户策略验证所述第一配置接口;
通过图像验证器使用所述图像策略验证所述重配置图像;以及
通过电路控制器使用经验证的重配置图像重配置所述可重配置电路。
12.根据权利要求11所述的方法,其中,接收到的重配置图像被加密,并且进一步包括对经加密的重配置图像进行解密。
13.根据权利要求11所述的方法,进一步包括:
使用所述图像策略验证所述重配置图像的签名。
14.根据权利要求11所述的方法,其中,所述用户实体验证器、所述图像验证器、所述电路控制器、所述策略接口、以及所述多个配置接口在硬件控制器中实现。
15.根据权利要求11所述的方法,进一步包括经由所述多个配置接口提供所述可重配置电路的虚拟化配置。
16.根据权利要求11所述的方法,其中,所述可重配置电路是现场可编程门阵列(FPGA)。
17.一种用于重配置电路的计算设备,包括:
一个或多个处理器;以及
在其中存储有多个指令的存储器,当由所述一个或多个处理器执行时,所述指令使得所述计算设备执行权利要求11至16中的任何一项所述的方法。
18.至少一种机器可读介质,其具有存储在其上的数据,所述数据如果由至少一个机器使用,使得所述至少一个机器执行权利要求11至16中的任何一项所述的方法。
19.一种用于重配置电路的电子设备,包括用于执行权利要求11至16中的任何一项所述的方法的单元。
20.一种用于重配置电路的系统,包括:
可重配置电路;
用于接收用户策略和图像策略的策略接口;
多个配置接口,包括用于接收重配置图像的第一配置接口;
用户实体验证器,用于基于所述用户策略验证所述第一配置接口;
图像验证器,用于基于所述图像策略验证所述重配置图像;以及
电路控制器,用于使用经验证的重配置图像重配置所述可重配置电路。
21.根据权利要求20所述的系统,所述图像验证器进一步用于使用所述图像策略对所述重配置图像进行解密。
22.根据权利要求20所述的系统,所述图像验证器进一步用于使用所述图像策略验证所述重配置图像的签名。
23.根据权利要求20所述的系统,其中,所述多个配置接口用于向多个用户实体提供所述可重配置电路的虚拟化配置。
24.根据权利要求20所述的系统,其中,所述可重配置电路、所述用户实体验证器、所述图像验证器、所述电路控制器、所述策略接口、以及所述多个配置接口被包括在硬件处理器中。
25.根据权利要求20所述的系统,其中,所述可重配置电路是现场可编程门阵列(FPGA)。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/628,888 | 2017-06-21 | ||
US15/628,888 US9935638B1 (en) | 2017-06-21 | 2017-06-21 | Validating an image for a reconfigurable device |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109104184A true CN109104184A (zh) | 2018-12-28 |
Family
ID=61711552
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810490335.4A Pending CN109104184A (zh) | 2017-06-21 | 2018-05-21 | 验证用于可重配置设备的图像 |
Country Status (3)
Country | Link |
---|---|
US (2) | US9935638B1 (zh) |
CN (1) | CN109104184A (zh) |
DE (1) | DE102018114958A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9935638B1 (en) * | 2017-06-21 | 2018-04-03 | Intel Corporation | Validating an image for a reconfigurable device |
US11196569B2 (en) * | 2018-09-12 | 2021-12-07 | Bitclave Pte. Ltd. | Systems and methods for accuracy and attestation of validity of data shared in a secure distributed environment |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6904527B1 (en) * | 2000-03-14 | 2005-06-07 | Xilinx, Inc. | Intellectual property protection in a programmable logic device |
US7987373B2 (en) * | 2004-09-30 | 2011-07-26 | Synopsys, Inc. | Apparatus and method for licensing programmable hardware sub-designs using a host-identifier |
US9411688B1 (en) * | 2013-12-11 | 2016-08-09 | Xilinx, Inc. | System and method for searching multiple boot devices for boot images |
US9935638B1 (en) * | 2017-06-21 | 2018-04-03 | Intel Corporation | Validating an image for a reconfigurable device |
-
2017
- 2017-06-21 US US15/628,888 patent/US9935638B1/en active Active
-
2018
- 2018-04-02 US US15/942,919 patent/US10541687B2/en active Active
- 2018-05-21 CN CN201810490335.4A patent/CN109104184A/zh active Pending
- 2018-06-21 DE DE102018114958.1A patent/DE102018114958A1/de active Pending
Also Published As
Publication number | Publication date |
---|---|
US20190109593A1 (en) | 2019-04-11 |
DE102018114958A1 (de) | 2018-12-27 |
US10541687B2 (en) | 2020-01-21 |
US9935638B1 (en) | 2018-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2599340C2 (ru) | Использование аутентифицированных манифестов для обеспечения внешней сертификации многопроцессорных платформ | |
CN105184113B (zh) | 用于实现安全视频输出路径的硬件辅助虚拟化 | |
CN106537285A (zh) | 处理器温度的平衡控制 | |
CN107250946A (zh) | 执行对平台装置的动态功率控制 | |
US11409560B2 (en) | System, apparatus and method for power license control of a processor | |
US11481013B2 (en) | Multi-level loops for computer processor control | |
CN107924219A (zh) | 遮蔽处理器的核的功率状态 | |
CN107003971A (zh) | 用于高性能互连中的嵌入式流通道的方法、装置、系统 | |
CN107077175A (zh) | 提供针对多芯片封装的热参数报告的装置和方法 | |
CN109564526A (zh) | 使用封装和线程提示信息的组合来控制处理器的性能状态 | |
CN108369495A (zh) | 用于浮点操作的硬件消除监视器 | |
US20190196573A1 (en) | System, Apparatus And Method For Processor-External Override Of Hardware Performance State Control Of A Processor | |
CN109564460A (zh) | 在处理器中提供用于降级控制信息的接口 | |
CN107567614A (zh) | 用于对根据关键度被分组的指令的缕程的执行的多核处理器 | |
CN109791427A (zh) | 使用滑动平均值的处理器电压控制 | |
CN109661637A (zh) | 用于可变功率轨的补偿控制 | |
CN108694154B (zh) | 用于选择数据元素的硬件加速器 | |
CN109104184A (zh) | 验证用于可重配置设备的图像 | |
US11593544B2 (en) | System, apparatus and method for adaptive operating voltage in a field programmable gate array (FPGA) | |
CN107077180A (zh) | 基于功率状态而调整电压调节器 | |
JP7495422B2 (ja) | 適応的な相互接続ルーティングのためのシステム、装置及び方法 | |
CN109478086A (zh) | 至少部分地基于平台电容来控制处理器的电流消耗 | |
CN108228484B (zh) | 针对处理器中的高速缓存利用的无效读取 | |
US11493975B2 (en) | System, apparatus and method for providing power monitoring isolation in a processor |
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 |