当前位置: 首页 > 专利查询>微软公司专利>正文

管理具有隔离组件的现场可编程门阵列的使用制造技术

技术编号:9519467 阅读:81 留言:0更新日期:2014-01-01 17:06
描述了用可重新编程的密码操作来管理对现场可编程门阵列的使用。描述了对操作系统中多个进程对现场可编程门阵列的使用的管理。现场可编程门阵列能在通用计算系统中用作共享可编程协作处理器资源。FPGA的组件被隔离来保护FPGA以及FPGA和计算机系统的其它组件之间传输的数据。例如,由FPGA写入到存储器的数据被加密,并在从存储器中读回时在FPGA中被解密。在FPGA和其它诸如CPU或GPU的组件之间(直接或通过存储器)传送的数据,可使用对通信组件已知的密钥类似地加密。被传输的数据还可由FPGA或其它组件来数字地签名以提供认证。用于编程FPGA的代码可由作者来加密并签名、以被加密的状态加载到FPGA中并接着在用该代码编程FPGA之前由FPGA自己来解密和认证。

【技术实现步骤摘要】
【专利摘要】描述了用可重新编程的密码操作来管理对现场可编程门阵列的使用。描述了对操作系统中多个进程对现场可编程门阵列的使用的管理。现场可编程门阵列能在通用计算系统中用作共享可编程协作处理器资源。FPGA的组件被隔离来保护FPGA以及FPGA和计算机系统的其它组件之间传输的数据。例如,由FPGA写入到存储器的数据被加密,并在从存储器中读回时在FPGA中被解密。在FPGA和其它诸如CPU或GPU的组件之间(直接或通过存储器)传送的数据,可使用对通信组件已知的密钥类似地加密。被传输的数据还可由FPGA或其它组件来数字地签名以提供认证。用于编程FPGA的代码可由作者来加密并签名、以被加密的状态加载到FPGA中并接着在用该代码编程FPGA之前由FPGA自己来解密和认证。【专利说明】管理具有隔离组件的现场可编程门阵列的使用
本专利技术涉及管理具有隔离组件的现场可编程门阵列的使用。
技术介绍
在大多数通用计算机内,操作系统是管理对计算机内资源的访问的主要软件。主要资源是执行被设计成在计算机上运行的应用程序的中央处理单元(CPU)、主存储器和存储。在一些计算机体系结构中,可出现附加的处理单元(诸如处理器中的多个核)和/或附加的处理器(称为协作处理器)。这样的协作处理器的示例包括图形处理单元(GPU)和数字信号处理器(DSP)。操作系统也管理多个进程对这些资源的访问。现场可编程门阵列(FPGA)是一种通常被用在专用计算设备中的逻辑器件。FPGA通常被用于执行此门阵列尤其适用于的特定的、专用的功能。FPGA通常位于外围设备或其它专用硬件(诸如连接到诸如PCI总线的系统总线并通过该系统总线被访问的印刷电路板)中。一般而言,这样的器件被编程一次并被使用多次。因为这些器件是可编程的,相比于其它专用逻辑器件,它们具有能被在现场更新的优势。
技术实现思路
提供本
技术实现思路
以便以简化形式介绍将在以下【具体实施方式】中进一步描述的一些概念。本
技术实现思路
并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。—个或多个现场可编程门阵列(FPGA)能在通用计算系统中用作共享可编程协作处理器资源。FPGA能被编程来执行功能,这些功能进而能与一个或多个进程相关联。在多个进程的情况下,FPGA能被共享,并且进程能在访问FPGA的时间间隙期间被分配到FPGA的至少一个部分。用硬件描述语言所写的用于编程FPGA的程序被用作硬件库。操作系统对以下进行管理:将FPGA资源分配到进程、根据要由进程使用FPGA来执行的功能来编程该FPGA、以及对这些进程对FPGA的使用进行调度。如果FPGA被用作通用计算平台的组件,那么其可能容易受到不安全代码的攻击和执行。例如,对数据传输和存储器的检查可能暴露与安全操作相关的密钥、算法和其它信息。为了提升安全性,FPGA的各个组件被隔离来保护FPGA以及FPGA和计算机系统的其它组件之间传输的数据。例如,由FPGA写入到存储器的数据被加密,并在从存储器中读回时在FPGA中被解密。在FPGA和诸如CPU或GPU等其它组件之间传输的数据(无论是直接地或通过存储器的)可使用为通信组件所知的密钥(无论是使用共享秘密密钥还是公共/私有密钥对)来被类似地加密。被传输的数据还可由FPGA或其它组件来数字地签名以提供认证。用于编程FPGA的代码可由作者来加密并签名、以被加密的状态加载到FPGA中并接着在用该代码编程FPGA之前由FPGA自己来解密和认证。在以下描述中,对附图进行了参考,附图构成了实施方式的一部分且在其中作为示例示出了本专利技术技术的具体示例实现。可以理解,可以使用其它实施例并且可以做出结构上的改变而不背离本专利技术的范围。【专利附图】【附图说明】图1是对其操作系统能被实现的具有FPGA资源的示例计算系统的框图。图2是FPGA功能单元的说明性示例的示意图。图3是使用具有FPGA资源的计算机系统上的硬件和软件库的应用的示例体系结构的示意图。图4是示出随着时间的对FPGA使用的图。图5是具有支持隔离组件的现场可编程门阵列的计算系统的框图。图6是现场可编程门阵列的更详细的框图。图7是描述安全地编程FPGA的流程图。【具体实施方式】以下部分提供了对示例计算环境的简要的、一般的描述,在该示例计算环境中能实现用于管理对FPGA资源的使用的操作系统。该系统可以用众多通用或专用计算设备来实现。适合的公知计算设备的示例包括但不限于:个人计算机、服务器计算机、手持式或膝上型设备(例如,媒体播放器、笔记本计算机、蜂窝电话、个人数据助理、语音记录器)、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型机、大型计算机、包括以上系统或设备的任一个的分布式计算环境等等。图1仅仅示出示例计算环境,并不旨在对适合的计算环境的使用范围或功能提出任何限制。参考图1,示例计算环境包括计算设备100。在一个基本配置中,计算设备100包括至少一个处理单元102 (诸如通用计算机的典型中央处理单元(CPU))和存储器104。计算设备可包括多个处理单元和/或附加的协作处理单元,诸如图形处理单元(GPU)。计算设备还包括一个或多个现场可编程门阵列(FPGA),其被表示为可用作共享(在运行在计算机上的进程间共享)的协作处理资源的FPGA单元120。FPGA可位于其自己的CPU插孔中或位于分开的被插入到扩展槽(诸如快速外围部件互连(PC1-E)槽)中的卡上。通过提供这样的FPGA单元,能在得到硬件加速的益处的情况下实现各种非常适合于门阵列来实现的功能。取决于处理单元和FPGA单元的配置,该单元或单元内的每个功能单元具有相关联的输入/输出通道来用于与主操作系统进程进行通信。例如,能提供专用于该功能单元并在其与使用该功能单元的进程之间共享的存储器区域。一种请求队列和响应队列还能被用于使得能够实现在FPGA单元内实现的操作的异步调用。此外,FPGA单元中的功能单元针对进程的状态能被保存到用于该功能单元和该进程的存储器区域并从该存储器区域中还原。替换地,其它技术能被用于确保功能单元在被其进程使用前处于已知状态。取决于计算设备的配置和类型,存储器104可以是易失性的(诸如RAM)、非易失性的(诸如ROM、闪存等)或是两者的某种组合。处理单元、协作处理器和存储器的该配置在图I中用虚线106示出。计算设备100还可具有附加的资源和设备。例如,计算设备100还可包含附加存储(可移动和/或不可移动),包括但不限于磁盘、光盘或磁带。在图1中通过可移动存储108和不可移动存储110示出这样的附加存储。计算机存储介质包括以用于存储诸如计算机程序指令、数据文件、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。存储器104、可移动存储108和不可移动存储110全部都是计算机存储介质的示例。计算机存储介质包括但不限于,RAM、ROM、EEPR0M、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光存储、磁带盒、磁带、磁盘存储或其它磁存储设备,或者可用于存储所需信息并且可由计算设备100访问的任何其它介质。任何这样的计算机存储介质都可以是计算设备100的一部分。计算设备100本文档来自技高网
...

【技术保护点】
一种现场可编程门阵列,包括:多个可编程元件;以及隔离的FPGA元件,所述隔离的FPGA元件允许所述现场可编程门阵列与计算机系统中的其它组件的安全通信。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:B·A·拉马恰E·B·南丁格尔P·巴勒姆
申请(专利权)人:微软公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1