CN104956352B - 屏蔽现场可编程门阵列上的协处理器的功率使用 - Google Patents
屏蔽现场可编程门阵列上的协处理器的功率使用 Download PDFInfo
- Publication number
- CN104956352B CN104956352B CN201380071968.7A CN201380071968A CN104956352B CN 104956352 B CN104956352 B CN 104956352B CN 201380071968 A CN201380071968 A CN 201380071968A CN 104956352 B CN104956352 B CN 104956352B
- Authority
- CN
- China
- Prior art keywords
- coprocessor
- trench
- fpga
- power
- block circuit
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- 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
-
- 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/55—Detecting local intrusion or implementing counter-measures
- G06F21/556—Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S40/00—Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
- Y04S40/20—Information technology specific aspects, e.g. CAD, simulation, modelling, system security
Abstract
大体上描述了用于屏蔽现场可编程门阵列上的协处理器的功率使用的技术。在一些实例中,可以围绕加载在现场可编程门阵列(FPGA)上的协处理器实施一个或多个壕沟块电路。壕沟块电路可配置成使用负反馈和/或噪声以将所述协处理器的功率使用变化与在FPGA上的其他协处理器屏蔽开。
Description
背景技术
除非本文另有指明,在该部分描述的内容不是本申请中权利要求的现有技术并且也不会由于包含在该部分就代表承认其为现有技术。
云计算通过对与(例如)硬件相关联的规模施加影响可使得极大地减小计算成本。基于云的数据中心可利用虚拟化来服务大数量的用户。可以给个人用户提供虚拟机(VM)实例,并且数据中心处的单个服务器可能够在其硬件上同时运行来自不同用户的多个VM。
数据中心还可以利用硬件加速器以增加效率并减少成本。例如,可使用配置成增加可并行化进程的计算效率并降低其运算成本的协处理器来编程现场可编程门阵列(FPGA)。一些FPGA可能够允许多个协处理器同时运行,增加了对于同时服务许多用户的计算能力。
概述
本公开大体描述了用于屏蔽现场可编程门阵列上的协处理器的功率使用的技术。
根据一些实例,提供了用于屏蔽现场可编程门阵列上的协处理器的功率使用的方法。方法可包括确定待加载在FPGA上的协处理器的功率使用、基于所确定的功率使用生成至少一个壕沟块电路(moat brick circuit)、将协处理器加载在FPGA上以及将至少一个壕沟块电路加载在FPGA上以使得至少一个壕沟块电路物理上邻近协处理器并至少部分地屏蔽协处理器的功率使用。
根据其他实例,提供了用于屏蔽现场可编程门阵列上的协处理器的功率使用的配置控制器。该控制器可包括壕沟生成器模块(moat builder module)和处理模块。壕沟生成器模块可配置成确定待加载在FPGA上的协处理器的功率使用并基于所确定的功率使用生成至少一个壕沟块电路。处理模块可配置成将协处理器和至少一个壕沟块电路加载在FPGA上以使得至少一个壕沟块电路物理上邻近协处理器并至少部分地屏蔽协处理器的功率使用。
根据进一步的实例,提供了屏蔽协处理器功率使用的基于云的数据中心。该数据中心可包括现场可编程门阵列(FPGA)和配置控制器。配置控制器可配置成确定待加载在FPGA上的协处理器的功率使用、基于所确定的功率使用生成至少一个壕沟块电路以及将协处理器和至少一个壕沟块电路加载在FPGA上以使得至少一个壕沟块电路物理上邻近协处理器并至少部分地屏蔽协处理器的功率使用。
根据一些实例,计算机可读介质可存储用于屏蔽现场可编程门阵列上的协处理器的功率使用的指令。该指令包括确定待加载在FPGA上的协处理器的功率使用、基于确定的功率使用生成至少一个壕沟块电路、将协处理器加载在FPGA上以及将至少一个壕沟块电路加载在FPGA上以使得至少一个壕沟块电路物理上邻近协处理器并至少部分地屏蔽协处理器的功率使用。
前述的概述仅仅是说明性的并且不打算以任何方式进行限制。除了上述的说明性的方面、实施方式以及特征,通过参考附图和下文的详细描述,另外的方面、实施方式和特征将显而易见。
附图说明
结合附图,根据下文的描述和随附的权利要求,本公开的前述和其他特征将更加显而易见。应当理解,这些附图仅描述了根据本公开的若干实施方式,因此不应当将其视为是本公开的范围的限制,通过对附图的使用,将借助附加的特性和细节来描述本公开,其中:
图1示出了在其中可实施屏蔽现场可编程门阵列上的协处理器的功率使用的基于数据中心的系统示例;
图2示出了在其中可以在现场可编程门阵列上实施协处理器的基于数据中心的系统示例;
图3A示出了在其中可以屏蔽实施的协处理器的功率使用的现场可编程门阵列示例;
图3B示出了具有功率分布网络的现场可编程门阵列示例;
图4示出了在其中可屏蔽在现场可编程门阵列上实施的协处理器的功率使用的基于数据中心的系统示例;
图5示出了用于屏蔽在现场可编程门阵列上实施的协处理器的功率使用的组件示例;
图6示出了用于屏蔽在现场可编程门阵列上实施的协处理器的功率使用的过程示例;
图7示出了可用于屏蔽在现场可编程门阵列上的协处理器的功率使用的通用计算装置;
图8示出了用于屏蔽在现场可编程门阵列上的协处理器的功率使用的方法示例的流程图,该方法可由如图7中的计算装置的计算装置执行;以及
图9示出了计算机程序产品示例的块图,
所有附图都根据本文描述的至少一些实施方式布置。
具体实施方式
在下文的详细描述中,参考了形成该详细描述的一部分的附图。在附图中,除非下文另有指明,相似的符号一般识别相似的组件。在详细描述、附图和权利要求中描述的说明性实施方式不意味着是限制性的。在不脱离本文呈现的主题的精神和范围的情况下,可以利用其他实施方式并且可以做出其他改变。将容易理解,在本文中大体描述和在附图中示意的本公开的方面,可以以多种多样不同的配置布置、替代、组合、分离和设计,所有这些都明确地涵盖于本文。
公开大体涉及,并且尤其涉及屏蔽(masking)在现场可编程门阵列上的协处理器(co-processor)的功率使用的方法、设备、系统、装置和/或计算机程序产品。
简言之,大体描述了用于屏蔽在现场可编程门阵列上的协处理器的功率使用的技术。在一些实例中,可以围绕加载在现场可编程门阵列(FPGA)上的协处理器周围实施一个或多个壕沟块电路(moat brick circuits)。壕沟块电路可配置成使用负反馈和/或噪声以屏蔽协处理器功率使用与FPGA上的其他协处理器之间的变化。
图1示出了在其中可实施屏蔽现场可编程门阵列上的协处理器的功率使用的基于数据中心的系统示例,其根据本文描述的至少一些实施方式布置。
如简图100中所示,实体数据中心102可包括一个或多个实体服务器110、111和113,每个实体服务器都可配置成提供一个或多个虚拟机104。例如,实体服务器111和113可分别配置成提供四个虚拟机和两个虚拟机。在一些实施方式中,一个或多个虚拟机可组合成一个或多个虚拟数据中心。例如,由服务器111提供的四个虚拟机可组合成虚拟数据中心112。虚拟机104和/或虚拟数据中心112可配置成经由云106给一组用户108(比如,个人用户或企业用户)提供云相关的数据/计算服务(比如,各种应用、数据存储、数据处理或者类似服务)。
图2示出了在其中可以在现场可编程门阵列上实施协处理器的基于数据中心的系统示例,其根据本文描述的至少一些实施方式布置。
如简图200中所示,实体服务器202(例如,图1中的实体服务器110、111或113)可执行多个虚拟机204,虚拟机204中的每一个可与用户相关联。超级管理器(hypervisor)模块206可管理虚拟机204到多个处理器核208上的加载,并且可协调在虚拟机204之间共享处理器核208。实体服务器202还可包括现场可编程门阵列(FPGA)214。FPGA214可包括多个逻辑单元(logic cell)或数字单元(digital unit),逻辑单元或数字单元可组合以形成具有各种功能的电路和/或处理器。为了增加虚拟机204的计算效率和速度,配置控制器210可配置成将协处理器216、218和220加载到FPGA 214上。协处理器216、218和220可起一个或多个虚拟机204的硬件加速器的作用或者可用作一个或多个虚拟机204的硬件加速器,虚拟机可通过(例如)经由系统存储器222传递数据而将其计算负荷的一部分转移到协处理器216、218和/或220。
在一些实施方式中,配置控制器210可基于可存储在存储器中的重构件(configware)212或多个重构件将协处理器216、218和/或220加载到FPGA 214上。重构件212可包括用于将协处理器加载到FPGA 214上的描述符文件。例如,重构件212中的描述符文件可列出待在FPGA 214上连接的各种数字元件(digital elements)和输入/输入,以将特定协处理器加载在FPGA 214上。在一些实施方式中,描述符文件可呈硬件描述语言(HDL)文件的形式,其可被编译以提供网表文件,网表文件转而可包括协处理器电路的连接和元件的详细列表。
图3A示出了在其中可以屏蔽实施的协处理器的功率使用的现场可编程门阵列示例,其根据本文描述的至少一些实施方式布置。
如简图300A中所示,可将协处理器216、218和220加载在图2中描述的FPGA 214上。在某些情况下,攻击者可能够执行针对加载在FPGA 214上的协处理器的边信道功率攻击。功率攻击利用这样的事实:硬件模块消耗的能量取决于其晶体管的开关行为。FPGA中动态功率消耗的一个根源可归因于电容的充电。在一些实施方式中,消耗的平均功率W可按下式计算:
其中,CL是门负载电容,VDD是供电电压,f是时钟频率,以及是0到1的输出转变的概率。结果,由个体FPGA门消耗的功率可取决于其正在处理的数据。
在实际应用中,可通过噪声并通过同时操作的多个门屏蔽这些功率变化。然而,攻击者仍然可以能够通过利用差分功率分析(DPA)来提取信息。DPA涉及利用经设计以适应被攻击的算法的统计技术。攻击者可利用DPA来对目标装置在操作过程中的功率散耗进行多次观察,以此提取正在被处理的数据的全部或者一部分。例如,如果目标算法是使用密钥的加密算法,则攻击者可能够利用DPA来提供整个密钥的一部分。
在FPGA被用于加载多个协处理器以提高计算效率的数据中心环境中,恶意协处理器可被配置成测量FPGA(或FPGA某些部分)的功率使用并将功率使用数据发送回给攻击者用于DPA攻击。参考图3,假设协处理器218是这样的恶意协处理器。协处理器218可被配置成通过监视流过协处理器218的功率分布迹线的电压和电流来测量功率使用。至少一条功率分布迹线流过恶意协处理器218和(例如)协处理器216两者(功率分布迹线304中的上功率分布迹线)。协处理器216的功率使用(和数据处理)可反映在功率分布迹线304中的电压和电流变化中。因此,通过监视功率分布迹线304中的一条迹线,恶意协处理器218可能够至少部分地测量功率使用并因此能够至少部分地测量协处理器216的数据处理。
为了解决该问题,可以设置用于屏蔽协处理器功率使用的一个或多个协处理器壕沟(moat)306。可将协处理器壕沟306加载到FPGA 214上以便包围待保护的协处理器(例如,协处理器216)。加载的协处理器壕沟306可以物理上邻近于该协处理器放置或者定位或者与该协处理器间隔一定距离。在协处理器216操作过程中,协处理器壕沟306可调节在功率分布迹线304上的电压和/或电流。结果,可以将归因于协处理器处理的功率分布迹线304上的电压和/或电流变化与观察者(例如,协处理器218)屏蔽开来。
协处理器壕沟306可由一个或多个壕沟电路块(moat circuit brick)308组成。壕沟电路块308可以是配置成将邻近的协处理器的功率使用变化与另一协处理器屏蔽开来的个体协处理器电路。例如,如在(下文)图5中描述的,壕沟块电路可包括用于利用负反馈以使邻近的协处理器的可观察功率利用的变化稳定化的电路。类似地,壕沟块电路还(或替代地)可包括提供功率使用噪声以致使邻近的协处理器的可观察功率使用变化不能作为协处理器的实际性能的可靠指数的电路。壕沟电路块,尽管可以以个体发挥功能,然而它们可被组合(所以称之为“块”)以形成较大的功率使用屏蔽壕沟(例如,协处理器壕沟306)。利用壕沟电路块308,可以通过允许对于不同的协处理器和功率使用容易地按比例增减来简化壕沟构造。在一些实施方式中,可使用预先定义的壕沟电路块原语的库以构造个体壕沟电路块,然后该个体壕沟电路块可被组装成协处理器壕沟。
在一些实施方式中,尽管协处理器壕沟306可起初被布置成围绕待保护的协处理器,然而如果在加载后协处理器壕沟310将落在边界(例如,FPGA 214的边界)外部,则可以不对协处理器壕沟310进行加载。例如,可不需要位于协处理器216左侧的协处理器壕沟310,因为协处理器216位于FPGA 214的边缘并且没有协处理器(恶意的或者非恶意的)能够驻存在FPGA 214外部。结果,当协处理器和其他壕沟被加载到FPGA上时,协处理器壕沟310可不被加载。
尽管协处理器216、218和220被描绘成门和存储单元的矩形区域,然而在一些实施方式中,加载到FPGA上的协处理器可具有不同的形状,或者甚至可以散布在不同的芯片或FPGA之间。不管加载的协处理器的实际形状,协处理器壕沟都可以按本文描述方式实施。另外,根据实施方式的壕沟块可位于FPGA内部或者外部。
图3B示出了具有功率分布网络的现场可编程门阵列示例,其根据本文描述的至少一些实施方式布置。
如简图300B中所示,FPGA 214进一步包括由多个功率分布迹线组成的功率分布网络302(描绘为灰线)。功率分布网络302可以以电流和电压的形式给FPGA中的各种数字元件提供功率。加载在FPGA214上的每个协处理器可以从功率分布网络302中的一个或多个功率分布迹线为组成其的数字元件接收功率。例如,功率分布迹线可以给协处理器提供(以电流的形式)功率。
图4示出了可屏蔽在现场可编程门阵列上实施的协处理器的功率使用的基于数据中心的系统示例,其根据本文描述的至少一些实施方式布置。
图4类似于图2和图3,其中相似编号的单元的操作相似。根据简图400,类似于图3,可以将协处理器壕沟306实施成屏蔽协处理器216的功率使用。配置控制器210可包括用于从一个或多个壕沟电路块(例如,图3中的壕沟电路块308)构建协处理器壕沟306的壕沟生成器模块402。在一些实施方式中,壕沟生成器模块402可配置成使用存储在重构件212中电路块原语404以构造进入协处理器壕沟306中的壕沟电路块。例如,重构件212可将块原语404存储成库,并且壕沟生成器模块402可从库中选择一个或多个块原语404用于构建壕沟电路块。
随后,配置控制器210可将协处理器壕沟306和协处理器216加载到FPGA 214上。例如,配置控制器210将协处理器216和协处理器壕沟306组装成合成协处理器。然后配置控制器210可根据(例如)可确定该合成协同处理在FPGA 214上的合适位置的布局器算法将该合成协处理器加载到FPGA 214上。如上所述,在一些实施方式中,可以不实际加载落在FPGA边界外部的协处理器壕沟。例如,如果协处理器216要被加载在FPGA 214的边缘附近,如图4描述的,可以不实际加载协处理器壕沟310,因为可以不需要它来屏蔽协处理器216的功率使用。
图5示出了用于屏蔽在现场可编程门阵列上实施的协处理器的功率使用的组件示例,其根据本文描述的至少一些实施方式布置。
根据简图500,用于屏蔽协处理器的功率使用的组件可包括环形振荡器502。环形振荡器502可配置成以与供给的功率成比例的频率振荡,然后该频率可被计数器504转换成计数器值。然后可将该计数器值提供给数字比例-积分-微分(PID)控制器506。然后,PID控制器506可产生值N(508),值N可以与为了保持总功率消耗稳定所需要的额外功率成比例。然后,可使用值N 508来产生位序列510,位序列510转而可用于驱动移位寄存器组512,移位寄存器组512中的每一个可循环通过由快时钟驱动的值。移位寄存器组512中的一些移位寄存器(比如,移位寄存器514)可在两个相同的值(例如,1和1,或,0和0)之间循环。这些移位寄存器可几乎不消耗功率。移位寄存器组512中的其他移位寄存器(比如,移位寄存器516)可以在0和1之间循环,在0到1转变(见上面的等式1)的过程中消耗功率。因此,由该组件消耗的功率的量可通过调节正在在0和1之间循环的移位寄存器的数量来控制。结果,如果待保护的协处理器使用较少的功率则在简图500中描绘的组件消耗较多的功率,反之亦然。该负反馈可用于通过减少可观察的功率使用变化的总量来屏蔽协处理器的功率使用。
在一些实施方式中,壕沟电路块(例如,图3中的壕沟电路块308)可包括简图500中描绘的组件的紧凑版,协处理器壕沟(例如,图3和图4中的协处理器壕沟306)包括组件的多个副本。在一些实施方式中,一个壕沟电路块可包括环形振荡器502、计数器504和PID控制器506,而其他壕沟电路块可仅包括类似于移位寄存器组512的不同的移位寄存器组。
简图500中描绘的组件可通过利用负反馈来屏蔽协处理器的功率使用以减小功率变化。在一些实施方式中,壕沟电路块还(替代地)可以提供噪声以屏蔽功率的变化。在这些实施方式中,壕沟电路块可包括随机数生成器。随机数生成器可以以随机地变化的功率消耗的形式添加随机噪声。该随机地变化的功率消耗在添加到实际的协处理器功率消耗时,可用于隐藏实际的协处理器功率使用变化。在一些实施方式中,随机数生成器可对于功率使用级别敏感以使得在低协处理器功率使用的时段期间随机功率消耗更高,反之亦然。
图6示出了用于屏蔽在现场可编程门阵列上实施的协处理器的功率使用的过程示例,其根据本文描述的至少一些实施方式布置。
如简图600中描绘的,用于屏蔽在现场可编程门阵列上实施的协处理器的功率使用的过程可以以操作602开始,其中可接收待在FPGA上实施的协处理器。在一些实施方式中,数据中心客户机或者用户可提供协处理器,并且配置控制器(例如,图4中的配置控制器210)可接收协处理器。可以以一个或多个描述符文件(比如,硬件描述语言(HDL)文件或网表文件)的形式接收协处理器。
在下一操作604处,配置控制器210可确定是否应该将壕沟添加到接收的协处理器以提供功率使用屏蔽。在一些实施方式中,如果数据中心客户机/用户请求服务和/或支付服务费用,则可以提供协处理器的壕沟。
如果在操作604中确定不应该添加壕沟,那么在操作612处配置控制器210可在FPGA上实施接收的协处理器或者将接收的协处理器加载到FPGA上。另一方面,如果在操作604中确定应该添加壕沟,那么在下一操作606中,配置控制器210可估计接收的协处理器的功率使用。可基于协处理器中的门和/或逻辑单元的数量来估计协处理器的功率消耗。还可(或者替代地)基于在协处理器的先前的部署过程中测量的功率来确定协处理器的功率消耗。在一些实施方式中,功率使用的变化还可(例如)作为协处理器总功率的百分比被估计,或者基于每个逻辑单元已知变化的组合的基础上统计地被估计。
随后,在操作608中,可通过壕沟生成器402创建一个或多个壕沟块。在操作606中估计的功率使用可用于估计每个壕沟块需要的功率使用屏蔽的量。然后,可基于一个或多个块原语(例如,图4中的块原语404)创建壕沟块并且然后可将壕沟块组装成最终的壕沟。在一些实施方式中,可以基于上面估计的功率使用屏蔽的量来调节每个壕沟块的尺寸和/或在最终的壕沟中的壕沟块层的数量。
在下一操作610中,可通过壕沟生成器将壕沟块添加到协处理器实现上。例如,壕沟块可以铺设在协处理器周围以形成完全围绕在协处理器的壕沟。在一些实施方式中,如上所述,可以将壕沟块添加到协处理器以形成合成协处理器。
最后,在操作612中,可以在FPGA上实施壕沟块和协处理器。在一些实施方式中,硬件描述语言(HDL)文件或网表文件可用于将壕沟块和协处理器加载到FPGA上。
图7示出了可用于屏蔽在现场可编程门阵列上的协处理器的功率使用的通用计算装置,其根据本文描述的至少一些实施方式布置。
例如,计算装置700可用于按本文描述的方式屏蔽在现场可编程门阵列上的协处理器的功率使用。在实例基本配置702中,计算装置700可包括一个或多个处理器704和系统存储器706。存储器总线708可用于在处理器704和系统存储器706之间通信。基本配置702在图7中通过在内部的实现内的那些组件示出。
取决于期望的配置,处理器704可以是任意类型,包括但不限于微处理器(μP)、微控制器(μC)、数字信号处理器(DSP)或者其任意组合。处理器704可包括一级或者多级缓存(比如,一级高速缓冲缓存器712)、处理器核714和寄存器716。实例处理器核714可包括算数逻辑单元(ALU)、浮点单元(FPU)、数字信号处理器核(DSP Core)或者其任意组合。实例存储器控制器718还可与处理器704一块使用,或者在一些实现方式中,存储器控制器718可以是处理器804的内部部件。
取决于期望的配置,系统存储器706可以是任意类型,包括但不限于:易失性存储器(比如,RAM)、非易失性存储器(比如,ROM、快闪存储器等)或者是其任意组合。系统存储器706可以包括操作系统720、配置控制器模块722和程序数据724。配置控制器模块722可包括用于按本文描述的方式屏蔽在现场可编程门阵列上的协处理器的功率使用的壕沟生成器模块726。如本文所述,程序数据724可包括块原语数据728或类似的数据等。
计算装置700可具有附加的特征或者功能,以及促进在基本配置702和任何需要的装置和接口之间的通信的附加的接口。例如,总线/接口控制器730可用于经由存储接口总线734促进在基本配置702和一个或者多个数据存储装置832之间的通信。数据存储装置732可以是一个或多个可拆卸式存储装置736、一个或多个不可拆卸式存储装置738或者其组合。可拆卸式存储装置和不可拆卸式存储装置的实例包括磁盘装置(比如,软盘驱动器和硬盘驱动器(HDD))、光盘驱动器(比如,高密度磁盘(CD)驱动器或数字化通用磁盘(DVD)驱动器)、固态驱动器(SSD)和磁带驱动器(列出了若干个实例)。实例计算机存储介质可包括以用于信息(比如,计算机可读指令、数据结构、程序模块或其他数据)的存储的任何方法或技术实施的易失性和非易失性、可拆卸式和不可拆卸式的介质。
系统存储器706、可拆卸式存储装置736和不可拆卸式存储装置738是计算机存储介质的实例。计算机存储介质包括但不限于:RAM、ROM、EEPROM、快闪存储器或者其他存储器技术、CD-ROM、数字化通用磁盘(DVD)、固态驱动器或者其他光学存储、磁带盒、磁带、磁盘存储或者其他磁存储装置或者可用于存储想要的信息并且可由计算装置700存取的任何其他介质。任何这样的计算机存储介质可以是计算装置700的一部分。
计算装置700还可包括接口总线740,接口总线740用于经由总线/接口控制器730促进从各种接口装置(例如,一个或多个输出装置742、一个或多个外围接口744以及一个或多个通信装置766)到基本配置702的通信。实例输出装置742中的一些包括图形处理单元748和音频处理单元750,其可配置成经由一个或者多个A/V端口752与各种外部装置(比如,显示器或者扬声器)通信。一个或多个外围接口744的实例包括串行接口控制器754或者并行接口控制器756,其可配置成经由一个或者多个I/O端口858与比如输入装置(例如,键盘、鼠标、笔、语音输入装置、触摸输入装置等)的外部装置通信或者与其他外围装置(例如,打印机、扫描仪等)通信。实例通信装置766包括网络控制器760,其可布置成经由一个或者多个通信端口764促进通过网络通信链路的与一个或者多个其他计算装置762的通信。
网络通信链路可以是通信介质的一个实例。通信介质可典型地由计算机可读指令、数据结构、程序模块或者在调制的数据信号中的其他数据实施,调制的数据信号比如载波或者其他传送机制,并且可包括任何信息递送介质。“调制的数据信号”可以是具有调制的数据信号的特征集合中的一个或者多个特征或者以在信号中对信息编码的方式发生改变的信号。举例来说但没有限制,通信介质可包括有线介质(比如,有线网络或者直接有线连接)和无线介质(比如,声波、射频(RF)、微波、红外(IR)和其他无线介质)。本文中使用的术语“计算机可读介质”可包括存储介质和通信介质。
计算装置700可实施为通用或专用服务器、主机(mainframe)或包括任意上述功能的类似的计算机的一部分。计算装置700还可以实施为个人计算机,包括膝上型计算机和非膝上型计算机配置。
实例实施方式还可包括用于屏蔽现场可编程门阵列上的协处理器的功率使用的方法。这些方法可以以许多方式实施,包括本文描述的结构。这些方法中的一种可以借助于本公开中所描述的类型的装置的机器操作。另一可选的方式是:对于要与一个或多个人类操作员协力执行的方法中的各个操作中的一个或多个操作,人类操作员执行一些操作而其他的操作可由机器执行。这些人类操作员没有必要相互协同,而是每一人类操作员可具有执行一部分程序的机器。在其他实例中,可以(比如)通过可被机器自动化的预先选择的标准将人机交互自动化。
图8示出了用于屏蔽在现场可编程门阵列上的协处理器的功率使用的示例方法的流程图,该方法可由如图7中的计算装置执行,其根据本文描述的至少一些实施方式布置。
示例方法可包括由块822、824、826和/或828中的一个或多个示意的一个或多个操作、功能或动作,并且在一些实施方式中可由计算装置(比如,图7中的计算装置700)执行。块822-828中描述的操作可以存储为计算机可读介质(比如,计算装置810的计算机可读介质820)中的计算机可读指令。
用于屏蔽在现场可编程门阵列上的协处理器的功率使用的示例过程可以以块822开始,块822:“确定待在FPGA上实施的协处理器的功率使用”,其中可以确定或估计待在现场可编程门阵列上实施的协处理器(例如,图4中的协处理器)的功率使用。在一些实施方式中,如上文相关于图6中的操作606所述,配置控制器(例如,图4中的配置控制器210)可确定该功率使用。
块822之后可以是块824,“基于协处理器的功率使用生成壕沟块”,其中可以基于确定的协处理器的功率使用生成一个或多个壕沟块。例如,图4中配置控制器210和/或壕沟生成器模块402可按上文相关于图6中的操作608所描述的方式生成壕沟块。
块824之后可以是块826,“将壕沟块添加到用于在FPGA上实现的协处理器”,其中可以将生成的壕沟块添加到用于在FPGA上实现的协处理器。例如,图4中的配置控制器210可按上文相关于图6中的操作610所描述的方式将壕沟块添加到协处理器。
最后,块826之后可以是块828,“在FPGA上实施协处理器和壕沟块”,其中可以将协处理器和壕沟块加载到FPGA上。例如,图4中的配置控制器210可按上文相关于图6中的操作612所描述的方式将协处理器和壕沟块加载到FPGA上。
图9示出了实例计算机程序产品的块图,其根据本文描述的至少一些实施方式布置。
在一些实例中,如图9所示,计算机程序产品900可包括信号承载介质902。信号承载介质902还可包括一个或多个机器可读指令904,机器可读指令904可在由(例如)处理器执行时提供本文描述的功能。因此,举例来说,例如参考图7中的处理器704,配置控制器模块722可响应于通过介质902传递给处理器704的指令904承担图9中示出的一个或多个任务,以执行本文描述的与屏蔽在FPGA上实施的协处理器的功率使用相关联的动作。根据本文描述的一些实施方式,这些指令中的一些可包括(例如):确定待在FPGA上实施的协处理器的功率使用、基于协处理器的功率使用生成壕沟块、将壕沟块添加到用于在FPGA上实现的协处理器和/或在FPGA上实施协处理器和壕沟块。
在一些实现方式中,信号承载介质902可包含计算机可读介质906,计算机可读介质906比如但不限于:硬盘驱动器、固态驱动器、高密度磁盘(CD)、数字化通用磁盘(DVD)、数字磁带、存储器等。在一些实现方式中,信号承载介质902可包含可记录介质908,可记录介质908比如但不限于:存储器、读/写(R/W)CD、R/W DVD等。在一些实现方式中,信号承载介质902可包含通信介质910,通信介质910比如但不限于:数字和/或模拟通信介质(例如,光线缆、波导、有线通信链路、无线通信链路等)。因此,举例来说,可通过RF信号承载介质将程序产品900传递到处理器904的一个或多个模块,其中通过无线通信介质610(例如,符合IEEE802.11标准的无线通信介质)传递信号承载介质902。
根据一些实例,提供了用于屏蔽现场可编程门阵列(FPGA)上的协处理器的功率使用的方法。方法可包括确定待加载在FPGA上的协处理器的功率使用、基于所确定的功率使用生成至少一个壕沟块电路、将协处理器加载在FPGA上以及将至少一个壕沟块电路加载在FPGA上以使得至少一个壕沟块电路物理上邻近协处理器并至少部分地屏蔽协处理器的功率使用。
根据一些实施方式,协处理器是用于虚拟机的硬件加速器。方法可进一步包括生成多个壕沟块电路并将该多个壕沟块电路加载在FPGA上以便围绕加载在FPGA上的协处理器和/或避免加载所述多个壕沟块电路中那些如果加载就落在FPGA边界外部的一个或多个壕沟块电路。
根据其他实施方式,方法可进一步包括通过从块原语的库中选择至少一个壕沟块电路来生成至少一个壕沟块电路。方法可进一步包括通过至少一个壕沟块电路来调节在FPGA功率分布迹线上的电压变化以屏蔽功率使用和/或利用负反馈和噪声添加中的一种在至少一个壕沟块电路处调节电压变化。至少一个壕沟块电路可包括随机数生成器、环形振荡器、比例-积分-微分(PID)控制器和/或至少一个移位寄存器。
根据进一步的实施方式,方法可进一步包括基于与协处理器相关联的门数量、与协处理器相关联的逻辑单元数量和/或从先前的部署中测量的功率确定功率使用。将协处理器和至少一个壕沟块电路加载在FPGA上包括形成包括协处理器和至少一个壕沟块电路的合成协处理器并根据布局器算法将该合成协处理器加载在FPGA上。可以经由硬件描述语言(HDL)文件和/或网表文件将协处理器和/或至少一个壕沟块电路加载在FPGA上。
根据其他实例,用于屏蔽现场可编程门阵列上的协处理器的功率使用的配置控制器可包括壕沟生成器模块和处理模块。壕沟生成器模块可配置成确定待加载在FPGA上的协处理器的功率使用并基于所确定的功率使用生成至少一个壕沟块电路。处理模块可配置成将协处理器和至少一个壕沟块电路加载在FPGA上以使得至少一个壕沟块电路物理上邻近协处理器并至少部分地屏蔽协处理器的功率使用。
根据一些实施方式,协处理器是用于虚拟机的硬件加速器。壕沟生成器模块可进一步包括生成多个壕沟块电路并且处理模块可进一步配置成将该多个壕沟块电路加载在FPGA上以便围绕加载在FPGA上的协处理器和/或避免加载所述多个壕沟块电路中那些如果加载就落在FPGA边界外部的一个或多个壕沟块电路。
根据其他实施方式,壕沟生成器模块进一步可配置成通过从块原语的库中选择至少一个壕沟块电路来生成至少一个壕沟块电路。至少一个壕沟块电路进一步可配置成调节在FPGA功率分布迹线上的电压变化以屏蔽功率使用和/或利用负反馈和噪声添加中的一种来调节电压变化。至少一个壕沟块电路可包括随机数生成器、环形振荡器、比例-积分-微分(PID)控制器和/或至少一个移位寄存器。
根据进一步的实施方式,壕沟生成器模块进一步可配置成基于与协处理器相关联的门数量、与协处理器相关联的逻辑单元数量和/或从先前的部署中测量的功率确定功率使用。处理模块进一步可配置成通过形成包括协处理器和至少一个壕沟块电路的合成协处理器并根据布局器算法将该合成协处理器加载在FPGA上来将协处理器和至少一个壕沟块电路加载在FPGA上。处理模块进一步可配置成经由硬件描述语言(HDL)文件和/或网表文件将协处理器和/或至少一个壕沟块电路加载在FPGA上。
根据进一步的实例,配置成屏蔽协处理器功率使用的基于云的数据中心可包括现场可编程门阵列(FPGA)和配置控制器。配置控制器可配置成确定待加载在FPGA上的协处理器的功率使用、基于所确定的功率使用生成至少一个壕沟块电路以及将协处理器和至少一个壕沟块电路加载在FPGA上以使得至少一个壕沟块电路物理上邻近协处理器并至少部分地屏蔽协处理器的功率使用。
根据一些实施方式,协处理器是用于虚拟机的硬件加速器。配置控制器可进一步配置成生成多个壕沟块电路、将该多个壕沟块电路加载在FPGA上以便围绕加载在FPGA上的协处理器,和/或在避免加载所述多个壕沟块电路中那些如果加载就落在FPGA边界外部的一个或多个壕沟块电路。
根据其他实施方式,配置控制器可进一步配置成通过从块原语的库中选择至少一个壕沟块电路来生成至少一个壕沟块电路。至少一个壕沟块电路可配置成调节在FPGA功率分布迹线上的电压变化以屏蔽功率使用和/或利用负反馈和/或噪声添加来调节电压变化。至少一个壕沟块电路可包括随机数生成器、环形振荡器、比例-积分-微分(PID)控制器和/或至少一个移位寄存器。
根据进一步的实施方式,配置控制器进一步可配置成基于与协处理器相关联的门数量、与协处理器相关联的逻辑单元数量和/或从先前的部署中测量的功率确定功率使用。配置控制器进一步可配置成通过形成包括协处理器和至少一个壕沟块电路的合成协处理器并根据布局器算法将该合成协处理器加载在FPGA上来将协处理器和至少一个壕沟块电路加载在FPGA上。配置控制器进一步可配置成经由硬件描述语言(HDL)文件和/或网表文件将协处理器和/或至少一个壕沟块电路加载在FPGA上。
根据又一些进一步的实例,计算机可读存储介质可存储用于屏蔽现场可编程门阵列(FPGA)上的协处理器的功率使用的指令。该指令包括确定待加载在FPGA上的协处理器的功率使用、基于所确定的功率使用生成至少一个壕沟块电路、将协处理器加载在FPGA上以及将至少一个壕沟块电路加载在FPGA上以使得至少一个壕沟块电路物理上邻近协处理器并至少部分地屏蔽协处理器的功率使用。
根据一些实施方式,协处理器是用于虚拟机的硬件加速器。指令可进一步包括生成多个壕沟块电路、将该多个壕沟块电路加载在FPGA上以便围绕加载在FPGA上的协处理器和/或避免加载所述多个壕沟块电路中那些如果加载就落在FPGA边界外部的一个或多个壕沟块电路。
根据其他实施方式,指令可进一步包括通过从块原语的库中选择至少一个壕沟块电路来生成至少一个壕沟块电路。指令可进一步包括通过至少一个壕沟块电路来调节在FPGA功率分布迹线上的电压变化以屏蔽功率使用和/或利用负反馈和噪声添加的其中一种以在至少一个壕沟块电路处调节电压变化。至少一个壕沟块电路可包括随机数生成器、环形振荡器、比例-积分-微分(PID)控制器和/或至少一个移位寄存器。
根据进一步的实施方式,指令可进一步包括基于与协处理器相关联的门数量、与协处理器相关联的逻辑单元数量和/或从先前的部署中测量的功率确定功率使用。将协处理器和至少一个壕沟块电路加载在FPGA上包括形成包括协处理器和至少一个壕沟块电路的合成协处理器并根据布局器算法将该合成协处理器加载在FPGA上。可以经由硬件描述语言(HDL)文件和/或网表文件将协处理器和/或至少一个壕沟块电路加载在FPGA上。
在系统的各个方面的硬件和软件实现之间几乎没有区别;硬件和软件的使用大体上(但不是总是,原因在于在某些环境中,硬件和软件之间的选择可能是有意义的)是体现成本-效能折中的设计选择。存在各种可影响本文描述的过程和/或系统和/或其他技术的载体(例如,硬件、软件和/或固件),并且优选的载体将随所述过程和/或系统和/或其他技术部署的环境而变化。例如,如果实施人员确定速度和精确度是最重要的,则实施人员可主要选择硬件和/或固件载体;如果灵活性是最重要的,则实施人员可主要选择软件实施;或者,再可选地,实施人员可选择硬件、软件和/或固件的某种组合。
前面的详细描述通过块图、流程图和/或实例的使用已经阐明了装置和/或过程的各种实施方式。在这些块图、流程图和/或实例的范围内,包括一个或者多个功能和/或操作,所属领域的技术人员将了解,这些块图、流程图和/或实例中的每个功能和/或操作可通过宽广范围的硬件、软件或者实际上它们的任意组合单独地或者共同地实施。在一种实施方式中,本文描述的主题的若干部分可以通过专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理(DSP)或者其他集成格式来实施。然而,所属领域的技术人员将知晓,本文公开的实施方式的某些方面,整体地或者部分地,可以等价地在集成电路中实施、实施为运行在一个或者多个计算机上(例如,实施为在一个或者多个计算机系统上的一个或者多个程序)的一个或者多个计算机程序、实施为运行在一个或者多个处理器上(例如,实施为在一个或者多个微处理器上运行的一个或者多个程序)的一个或者多个程序、实施为固件或者实际上是它们的任意组合,并且根据本公开,设计电路和/或编写软件和/或固件的代码充分地属于所述领域的技术人员技能之内。
本公开在在本申请中描述的特定实施方式方面不受限制,在本申请中描述的特定实施方式旨在作为各个方面的说明。本领域技术人员将明了,在不背离本申请的精神和范围的条件下可以做出许多修改和变型。根据前面的描述,本领域技术人员将明了除了本文枚举的方法和设备之外的在本公开范围内的功能上等同的方法和设备。这些修改和变型应当落在随附的权利要求的范围内。本公开仅由随附的权利要求的词句、以及这些权利要求被赋予的等价物的完整范围的限制。应当理解,本公开不限定于特定的方法、系统或组件,方法、系统或组件当然可以变化。还应当理解,在本文使用的技术仅仅是出于描述特定实施方式的目的,其意不在于进行限制。
另外,所属技术领域的人员将理解,本文描述的主题的机制能够被分布为多种多样的形式的程序产品,并且描述的主题的说明性实施方式都适用,而不管用于实际执行该分布的特定类型的信号承载介质。信号承载介质的实例包括但不限于下列:可记录性介质,比如软盘、硬盘驱动器、高密度磁盘(CD)、数字化通用磁盘(DVD)、计算机存储器、固态驱动器等;以及传输型介质,比如,数字和/或模拟通信介质(例如,光线缆、波导、有线通信链路、无线通信链路等)。
所属技术领域的人员将知晓,以本文阐述的方式描述装置和/或过程并且此后使用工程实践以将这些装置和/或过程结合成数据处理系统是常见的。即,经由合理量的实验,可以将本文描述的装置和/或过程中的至少一部分结合成数据处理系统。所属技术领域的人员将知晓,典型的数据处理系统一般包括系统单元外壳、视频显示装置、诸如易失性和非易失性存储器、诸如微处理器和数字信号处理的处理器、诸如操作系统的计算实体、驱动器、图形用户界面、和应用程序、一个或者多个交互装置(比如触摸板或屏)和/或包括反馈回路和控制电机(例如,用于感测机架(gantry)系统的位置和/或速率的反馈;用于移动和/或调整组件和/或数量的控制电机)的控制系统中一个或者多个。
典型的数据处理系统可利用任何合适的商业上可获得组件来实施,这些组件比如那些一般在数据计算/通信和/或网络计算/通信系统中找到的组件。本文描述的主题有时示意了包含在不同的其他组件内或者与不同的其他组件连接的不同组件。应当理解,所描述的这些架构仅仅是说明性的,并且实际上可以实施取得相同功能的许多其他架构。在概念性意义上,实现相同功能的组件的布置被有效地“相关联”使得实现特定功能。因此,不管架构或中间组件,本文中经组合以实现特定功能的任何两个组件可被视为彼此“相关联”使得实现特定功能。同样地,这样地相关联的任何两个组件也可视为彼此“可操作地连接”,或者“可操作地耦接”以实现特定的功能,并且可以这样地相关联的任何两个组件也可以被视为彼此“可以可操作地耦接”以取得特定功能。可以可操作地耦接的具体实例包括但不限于物理上可连接和/或物理上使组件交互和/或无线地可交互和/或无线地使组件交互和/或逻辑上交互和/或逻辑上可交互的组件。
本文中在大致的任意多个和/或单个的术语的使用方面,本领域的技术人员可以在适合于上下文和/或应用时将多个转换为单个和/或从单个转换为多个。为了清楚起见,可能在本文中明确地说明各种单数/复数变换。
本领域的技术人员将理解,大体上,本文、特别是在随附的权利要求(例如,随附的权利要求的正文)中使用的术语基本上意为“开放式”术语(例如,术语“包含/包括有”应当解读为“包含/包括有但不限于”,术语“有/具有”应当解读为“至少有/具有”,术语“包含/包括”应当解读为“包含/包括但是其不限于”等)。本领域的技术人员还将理解,如果意在表达导入的权利要求的记载内容的特定数量,则这样的意图将在该权利要求中明确地记载,并且在没有这种记载的情况下将没有这种意图。例如,作为对理解的帮助,下面随附的权利要求可包含导语“至少一个”和“一个或者多个”的用法以导入权利要求的记载内容。然而,这样的词语的使用不解释为暗示了通过不定冠词“a”或“an”导入权利要求的记载内容将包含这样的导入的权利要求的记载内容的特定权利要求限制到仅包含一个这样的记载内容的实施方式,甚至是在相同的权利要求包括导语“一个或者多个”和“至少一个”以及不定冠词(比如,“a”或“an”)的情况下(例如,“a”和/或“an”应当解读成意味着“至少一个”或“一个或者多个”);这同样适用于用于导入权利要求的记载内容的定冠词的使用。另外,即使明确记载了导入的权利要求的记载内容的特定数量,但是本领域技术人员将知晓到,这种记载应当被解读为意味着至少是记载的数量(例如,只记载“两个记载内容”,而没有其他修饰语,以为着至少两个记载内容,或者两个或多个记载内容)。
另外,在使用类同于“A、B和C等中的至少一个”的常规用法的实例中,大体上这种结构被意想为本领域的技术人员将对该常规用法理解的意义(例如,“具有A、B和C中的至少一个的系统”将包括但不限于只具有A、只具有B、只具有C、具有A和B、具有A和B和C、具有B和C和/或具有A和B和C等)。在使用类同于“A、B或C等中的至少一个”的常规用法的实例中,大体上这种结构被意想为本领域的技术人员将对该常规用法理解的意义(例如,“具有A、B或C中的至少一个的系统”将包括但不限于只具有A、只具有B、只具有C、具有A和B、具有A和C、具有B和C、和/或具有A和B和C等)。本领域技术人员还将理解,实质上任何呈现两个或者更多个可选术语的分离的词和/或词语,不管是在说明书中、在权利要求中或在附图中,都应当理解为涵盖了包括:术语中的一个、两个术语中的一个,或者包括两个术语中的任何一种的可能性。例如,词语“A或B”将被理解为包括“A”或“B”或“A和B”的可能性。
另外,在公开的特征或者方面按照马库什群组进行描述的情况下,所属领域的技术人员将知晓,公开也借此按照马库什群组的任意单个成员或者成员的子群组进行了描述。
如将由本领域的技术人员理解的,出于任何或者所有目的(比如,就提供书面描述来说),本文公开的所有范围还包含这些范围的任何或者所有子范围和子范围的组合。任何列出的范围可被容易理解为充分描述并使得相同的范围被分解成至少相等的两半、三分之一、四分之一、五分之一、十分之一等。作为非限制性的实例,本文讨论的每个范围可以被方便地分解为下部的三分之一、中间的三分之一和上部的三分之一等。如还将由本领域的技术人员理解的,比如“高达”、“至少”等的语句包括记载的数量并涉及随后可分解成如上所讨论的子范围的范围。最后,如将由本领域的技术人员理解的,范围包括每个单独的成员。因此,例如,具有1-3个胞元的群组涉及具有1个、2个或者3个胞元的群组。类似地,具有1-5个胞元的群组涉及具有1个、2个、3个、4个或者5个胞元的群组,诸如此类。
尽管本文已经公开了各个方面和实施方式,然而其他方面和实施方式将对于所属领域的技术人员显而易见。本文公开的各个方面和实施方式是为了说明的目的而其意不在于进行限制,由下面的权利要求指明真正的范围和精神。
Claims (22)
1.一种用于屏蔽现场可编程门阵列(FPGA)上的协处理器的功率使用的方法,所述方法包括:
确定待加载在所述FPGA上的协处理器的功率使用,其中所述协处理器是用于虚拟机的硬件加速器;
基于所确定的功率使用生成至少一个壕沟块电路;
将所述协处理器加载在所述FPGA上;
将所述至少一个壕沟块电路加载在所述FPGA上以使得所述至少一个壕沟块电路物理上邻近所述协处理器并至少部分地屏蔽所述协处理器的所述功率使用;
形成包括所述协处理器和所述至少一个壕沟块电路的合成协处理器;以及
利用负反馈以通过所述至少一个壕沟块电路来调节在FPGA功率分布迹线上的电压变化以屏蔽所述功率使用。
2.根据权利要求1所述的方法,还包括:
生成多个壕沟块电路;以及
将所述多个壕沟块电路加载在所述FPGA上以便围绕加载在所述FPGA上的所述协处理器。
3.根据权利要求1所述方法,其中生成所述至少一个壕沟块电路包括:
通过从块原语的库中选择所述至少一个壕沟块电路来生成所述至少一个壕沟块电路。
4.根据权利要求1所述方法,还包括:
利用噪声添加以在所述至少一个壕沟块电路处调节所述电压变化。
5.根据权利要求1所述方法,其中所述至少一个壕沟块电路包括下列中的至少一个:随机数生成器、环形振荡器、比例-积分-微分(PID)控制器和至少一个移位寄存器。
6.根据权利要求1所述的方法,其中确定所述功率使用包括:
基于与所述协处理器相关联的门数量、与所述协处理器相关联的逻辑单元数量和从先前的部署中测量的功率中的至少一个来确定所述功率使用。
7.根据权利要求1所述的方法,其中将所述协处理器和所述至少一个壕沟块电路加载在所述FPGA上包括:
根据布局器算法将所述合成协处理器加载在所述FPGA上。
8.根据权利要求1所述的方法,其中经由硬件描述语言(HDL)文件和网表文件中的至少一个来将所述协处理器和所述至少一个壕沟块电路中的至少一个加载在所述FPGA上。
9.一种用于屏蔽现场可编程门阵列(FPGA)上的协处理器的功率使用的配置控制器,所述控制器包括:
用于构建协处理器壕沟的壕沟生成器模块,其中所述壕沟生成器模块配置成:
确定待加载在所述FPGA上的协处理器的功率使用,其中所述协处理器是用于虚拟机的硬件加速器;并
基于所确定的功率使用生成至少一个壕沟块电路;以及
处理器,所述处理器配置成:
将所述协处理器加载在所述FPGA上;
将所述至少一个壕沟块电路加载在所述FPGA上以使得所述至少一个壕沟块电路物理上邻近所述协处理器并至少部分地屏蔽所述协处理器的所述功率使用;
形成包括所述协处理器和所述至少一个壕沟块电路的合成协处理器,其中所述至少一个壕沟块电路配置成利用负反馈来调节在FPGA功率分布迹线上的电压变化以屏蔽所述功率使用;以及
根据布局器算法将所述合成协处理器加载在所述FPGA上。
10.根据权利要求9所述的控制器,其中:
所述壕沟生成器模块还配置成生成多个壕沟块电路;并且
所述处理器还配置成将所述多个壕沟块电路加载在所述FPGA上以便围绕加载在所述FPGA上的所述协处理器。
11.根据权利要求10所述的控制器,其中所述处理器还配置成:避免加载所述多个壕沟块电路中那些如果加载就落在FPGA边界外部的一个或多个壕沟块电路。
12.根据权利要求9所述的控制器,其中所述至少一个壕沟块电路还配置成利用噪声添加以调节所述电压变化。
13.根据权利要求9所述的控制器,其中所述至少一个壕沟块电路包括下列中的至少一个:随机数生成器、环形振荡器、比例-积分-微分(PID)控制器和至少一个移位寄存器。
14.根据权利要求9所述的控制器,其中所述壕沟生成器模块配置成基于与所述协处理器相关联的门数量、与所述协处理器相关联的逻辑单元数量和从先前的部署中测量的功率中的至少一个来确定所述功率使用。
15.根据权利要求9所述的控制器,其中所述处理器配置成经由硬件描述语言(HDL)文件和网表文件中的至少一个来将所述协处理器和所述至少一个壕沟块电路中的至少一个加载在所述FPGA上。
16.一种配置成屏蔽协处理器功率使用的基于云的数据中心,所述数据中心包括:
现场可编程门阵列(FPGA);和
处理器,所述处理器实施在所述数据中心的多个服务器中的一个服务器中,并且配置成:
确定待加载在所述FPGA上的协处理器的功率使用,其中所述协处理器是用于虚拟机的硬件加速器;
基于所确定的功率使用生成至少一个壕沟块电路;
将所述协处理器加载在所述FPGA上;
将所述至少一个壕沟块电路加载在所述FPGA上以使得所述至少一个壕沟块电路物理上邻近所述协处理器并至少部分地屏蔽所述协处理器的所述功率使用;
形成包括所述协处理器和所述至少一个壕沟块电路的合成协处理器,其中所述至少一个壕沟块电路配置成使用负反馈来调节在FPGA功率分布迹线上的电压变化以屏蔽所述功率使用;以及
根据布局器算法将所述合成协处理器加载在所述FPGA上。
17.根据权利要求16所述的数据中心,其中所述处理器配置成通过从块原语的库中选择所述至少一个壕沟块电路来生成所述至少一个壕沟块电路。
18.根据权利要求16所述的数据中心,其中所述至少一个壕沟块电路还配置成利用噪声添加以调节所述电压变化。
19.根据权利要求18所述的数据中心,其中所述至少一个壕沟块电路包括下列中的至少一个:随机数生成器、环形振荡器、比例-积分-微分(PID)控制器和至少一个移位寄存器。
20.根据权利要求16所述的数据中心,其中所述处理器配置成基于与所述协处理器相关联的门数量、与所述协处理器相关联的逻辑单元数量和从先前的部署中测量的功率中的至少一个来确定所述功率使用。
21.根据权利要求16所述的数据中心,其中所述处理器还配置成经由硬件描述语言(HDL)文件和网表文件中的至少一个来将所述协处理器和所述至少一个壕沟块电路中的至少一个加载在所述FPGA上。
22.一种计算机可读存储介质,其上存储有指令,当在一个或多个计算装置上执行所述指令时,执行根据权利要求1-8中任一项所述的用于屏蔽现场可编程门阵列上的协处理器的功率使用的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2013/024162 WO2014120209A1 (en) | 2013-01-31 | 2013-01-31 | Masking power usage of co-processors on field-programmable gate arrays |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104956352A CN104956352A (zh) | 2015-09-30 |
CN104956352B true CN104956352B (zh) | 2018-04-27 |
Family
ID=51262773
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380071968.7A Expired - Fee Related CN104956352B (zh) | 2013-01-31 | 2013-01-31 | 屏蔽现场可编程门阵列上的协处理器的功率使用 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9304790B2 (zh) |
CN (1) | CN104956352B (zh) |
WO (1) | WO2014120209A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9703963B2 (en) * | 2014-05-09 | 2017-07-11 | Fujitsu Limited | Trusted and privacy-preserving mechanism for electricity usage data disclosure using verifiable noise |
US9542244B2 (en) | 2015-04-22 | 2017-01-10 | Ryft Systems, Inc. | Systems and methods for performing primitive tasks using specialized processors |
US9411613B1 (en) | 2015-04-22 | 2016-08-09 | Ryft Systems, Inc. | Systems and methods for managing execution of specialized processors |
US9411528B1 (en) | 2015-04-22 | 2016-08-09 | Ryft Systems, Inc. | Storage management systems and methods |
US10210350B2 (en) * | 2015-08-10 | 2019-02-19 | Samsung Electronics Co., Ltd. | Electronic device against side channel attacks |
US10034407B2 (en) * | 2016-07-22 | 2018-07-24 | Intel Corporation | Storage sled for a data center |
CN106548806B (zh) * | 2016-10-13 | 2019-05-24 | 宁波大学 | 一种能够防御dpa攻击的移位寄存器 |
US11320888B2 (en) * | 2018-09-06 | 2022-05-03 | Intel Corporation | All-digital closed loop voltage generator |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1694223A (zh) * | 2004-05-07 | 2005-11-09 | 株式会社半导体能源研究所 | 半导体器件的制造方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7620832B2 (en) | 2000-09-20 | 2009-11-17 | Mips Technologies, Inc. | Method and apparatus for masking a microprocessor execution signature |
US6976254B2 (en) * | 2001-11-28 | 2005-12-13 | Esmertec Ag | Inter-method control transfer for execution engines with memory constraints |
US7757187B2 (en) | 2007-01-03 | 2010-07-13 | Pdf Solutions Inc. | Method for mapping a Boolean logic network to a limited set of application-domain specific logic cells |
GB2453367A (en) * | 2007-10-04 | 2009-04-08 | Univ Newcastle | Cryptographic processing using isomorphic mappings of Galois fields |
US8037333B2 (en) | 2008-10-31 | 2011-10-11 | Dell Products, Lp | Information handling system with processing system, low-power processing system and shared resources |
KR101026439B1 (ko) * | 2009-07-20 | 2011-04-07 | 한국전자통신연구원 | Seed 암호화에서 차분 전력 분석 공격을 방어하기 위한 마스킹 방법 |
US8850608B2 (en) * | 2011-03-07 | 2014-09-30 | University Of Connecticut | Embedded ring oscillator network for integrated circuit security and threat detection |
JP2014523192A (ja) | 2011-07-07 | 2014-09-08 | ベラヨ インク | デバイス及びサーバの通信におけるファジーな認証情報を用いた暗号化によるセキュリティ |
-
2013
- 2013-01-31 WO PCT/US2013/024162 patent/WO2014120209A1/en active Application Filing
- 2013-01-31 US US13/978,877 patent/US9304790B2/en not_active Expired - Fee Related
- 2013-01-31 CN CN201380071968.7A patent/CN104956352B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1694223A (zh) * | 2004-05-07 | 2005-11-09 | 株式会社半导体能源研究所 | 半导体器件的制造方法 |
Non-Patent Citations (1)
Title |
---|
A Novel Architecture for Power Maskable Arithmetic Units;L.Benini等;《GLSVLSI》;20030429(第3期);第136-140页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104956352A (zh) | 2015-09-30 |
WO2014120209A1 (en) | 2014-08-07 |
US20140237284A1 (en) | 2014-08-21 |
US9304790B2 (en) | 2016-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104956352B (zh) | 屏蔽现场可编程门阵列上的协处理器的功率使用 | |
Simon et al. | BLADE: An in-cache computing architecture for edge devices | |
Cavigelli et al. | Origami: A convolutional network accelerator | |
US20190156387A1 (en) | Datacenter-based hardware accelerator integration | |
Dai et al. | FPGP: Graph processing framework on FPGA a case study of breadth-first search | |
Taylor | Bitcoin and the age of bespoke silicon | |
CN104115091B (zh) | 多层级cpu高电流保护 | |
CN107544786A (zh) | 指定用于可编程集成电路的处理器架构的方法 | |
CN105988859A (zh) | 虚拟机部署 | |
Huerta et al. | Convergence of artificial intelligence and high performance computing on NSF-supported cyberinfrastructure | |
CN107533750A (zh) | 虚拟图像处理器指令集架构(isa)和存储器模型与具有二维移位阵列结构的示例性目标硬件 | |
CN102576310A (zh) | 将物理计算资源的一部分分配给逻辑分区 | |
Kim et al. | Power-conscious configuration cache structure and code mapping for coarse-grained reconfigurable architecture | |
CN110333946A (zh) | 一种基于人工智能cpu数据处理系统及方法 | |
CN108228137A (zh) | 蒙哥马利乘法处理器、方法、系统和指令 | |
Khan et al. | A survey of resource management for processing-in-memory and near-memory processing architectures | |
Gan et al. | Data flow computing in geoscience applications | |
TWI585602B (zh) | 與其他步驟同時地執行以覆蓋區爲基礎之優化的方法或裝置 | |
Rossinelli et al. | Mesh–particle interpolations on graphics processing units and multicore central processing units | |
C. Penha et al. | ADD: Accelerator Design and Deploy‐A tool for FPGA high‐performance dataflow computing | |
US20220082620A1 (en) | Secure and configurable test interace for an intellectual property (ip) block in a system on a chip (soc) | |
Nadalini et al. | A 3 tops/w risc-v parallel cluster for inference of fine-grain mixed-precision quantized neural networks | |
Li et al. | Nonvolatile memory allocation and hierarchy optimization for high-level synthesis | |
Esmaeilzadeh | Approximate acceleration for a post multicore era | |
Wang et al. | High-level power estimation model for SOC with FPGA prototyping |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180427 Termination date: 20200131 |