System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种在机密计算架构中执行FPGA任务的方法和设备技术_技高网

一种在机密计算架构中执行FPGA任务的方法和设备技术

技术编号:43032214 阅读:0 留言:0更新日期:2024-10-18 17:33
本说明书实施例提供一种在机密计算架构中执行FPGA任务的方法和设备。方法包括:首先,非安全世界的FPGA软件在内存的非安全世界区段中,配置FPGA任务的桩数据结构。然后,根世界中的根监视器在内存中对应于第一领域的第一区段中,配置与桩数据结构对应的真实数据结构,其中包括,领域缓存区以及传输描述符;所述领域缓存区用于存储待处理的机密数据;所述传输描述符用于描述有待进行DMA传输的数据。接着,根监视器设置用于CPU的第一GPT表和用于FPGA的第二GPT表,使得在第一GPT表中,FPGA内存映射MMIO属于根世界,在第二GPT表中,仅第一区段为可访问区段。从而,根监视器通过FPGA MMIO与FPGA进行交互,使得FPGA基于传输描述符通过DMA传输读取所述机密数据,执行FPGA任务。

【技术实现步骤摘要】

本说明书一个或多个实施例涉及机密计算框架,尤其涉及一种在机密计算框架中执行fpga任务的方法及装置。


技术介绍

1、随着各行业计算技术的发展,以及云端和终端用户的增加,人们将大量数据存储在各种计算机设备中。在行业发展的同时,人们对于设备和数据安全的关注也在日益增加。为了确保设备和数据的安全性,各个架构厂商也分别提出了各自的解决方案,如arm提出了可信区技术(trustzone),amd提出了安全虚拟机加密技术(sev),英特尔提出了软件防护扩展(sgx)技术,等等。这些解决方案为用户提供一个安全的可信执行环境,用于机密地保存和处理数据,使其免受不可信的内核与传统应用程序的损害。以arm可信区技术为例,它将传统内核和应用程序的运行环境视作为非安全世界,并创建了一个隔离的安全世界,以及定义了具有最高权限的安全层用于世界切换。非安全世界将无法直接访问安全世界,需要经过安全层的固件验证才能访问特定的资源。

2、虽然arm机密计算架构有效地确保了用户的数据安全,然而,其仍然存在一些不足,其中之一是无法提供对诸如fpga的专用加速器上机密计算的支持。这使得在该技术框架下,采用fpga进行任务加速具有很大的安全方面的挑战,存在对此进行改进的需求。


技术实现思路

1、本说明书一个或多个实施例描述了一种在机密计算架构中执行fpga任务的方法及装置,能够基于已有的机密计算架构的硬件特性,为fpga任务的执行提供机密计算环境,支持fpga机密计算。

2、根据第一方面,提供一种在机密计算架构中执行fpga任务的方法,所述机密计算架构包括,安全世界,领域世界,非安全世界,根世界;所述方法包括:

3、非安全世界的fpga软件根据fpga的数据需求信息,在内存的非安全世界区段中,配置fpga任务的桩数据结构,其中包括数据缓存区;

4、根世界中的根监视器在所述内存中对应于第一领域的第一区段中,配置与所述桩数据结构对应的真实数据结构,其中包括,与所述数据缓存区对应的领域缓存区,以及传输描述符;所述领域缓存区用于存储待处理的机密数据;所述传输描述符用于描述有待进行直接内存访问dma传输的数据;

5、所述根监视器设置颗粒度保护表gpt,其中包括用于cpu的第一gpt表和用于fpga的第二gpt表,使得在第一gpt表中,fpga内存映射mmio属于根世界,在第二gpt表中,仅第一区段为可访问区段;

6、所述根监视器通过fpga mmio与fpga进行交互,使得fpga基于所述传输描述符通过dma传输读取所述机密数据,执行fpga任务。

7、根据第二方面,提供了一种机密计算架构中的根监视器,所述机密计算架构包括,安全世界,领域世界,非安全世界和根世界;所述根监视器位于所述根世界中,并包括传输任务模块和fpga保护模块,其中:

8、传输任务模块配置为,响应于非安全世界的fpga软件根据fpga的数据需求信息,在内存的非安全世界区段中配置fpga任务的桩数据结构,而所述内存中对应于第一领域的第一区段中,配置与所述桩数据结构对应的真实数据结构,其中桩数据结构包括数据缓存区;真实数据结构包括,与所述数据缓存区对应的领域缓存区,以及传输描述符;所述领域缓存区用于存储待处理的机密数据;所述传输描述符用于描述有待进行直接内存访问dma传输的数据;

9、fpga保护模块配置为,设置颗粒度保护表gpt,其中包括用于cpu的第一gpt表和用于fpga的第二gpt表,使得在第一gpt表中,fpga内存映射mmio属于根世界,在第二gpt表中,仅第一区段为可访问区段;通过fpga mmio与fpga进行交互,使得fpga基于所述传输描述符通过dma传输读取所述机密数据,执行fpga任务。

10、根据第三方面,提供了一种计算设备,包括存储器和若干处理器,所述计算设备形成机密计算架构,所述机密计算架构包括,安全世界,领域世界,非安全世界和根世界;所述根世界包括如第二方面所述的根监视器。

11、在本说明书实施例提供的方案中,通过传输任务实现兼容arm机密计算架构cca的fpga机密计算。根据传输任务机制,由非安全世界的fpga软件创建不包含真实数据的桩任务,并如常规流程调度和管理桩任务。在桩任务提交后,根监视器在领域世界区段中创建包含真实数据的真实fpga任务的数据结构,其中包括,用于存储机密数据的领域缓存区,以及用于描述有待进行dma传输的数据的传输描述符。根监视器还通过gpt表的设置为真实fpga任务提供隔离的执行环境。从而使得,fpga基于传输描述符通过dma传输读取机密数据,执行fpga任务。如此,在arm机密计算架构cca中实现fpga机密计算。

本文档来自技高网...

【技术保护点】

1.一种在机密计算架构中执行FPGA任务的方法,所述机密计算架构包括,安全世界,领域世界,非安全世界,根世界;所述方法包括:

2.根据权利要求1所述的方法,其中,在配置FPGA任务的桩数据结构之前,还包括:

3.根据权利要求1所述的方法,还包括,在配置FPGA任务的桩数据结构之前:

4.根据权利要求3所述的方法,还包括:

5.根据权利要求1所述的方法,其中,所述传输描述符包括以下信息:待传输数据的起始地址,目的地地址,数据长度,以及所在领域缓存区对应的数据通道信息,所述数据通道选自从FPGA到主机的C2H通道,以及从主机到FPGA的H2C通道。

6.根据权利要求1所述的方法,其中,所述传输描述符包括,通过链表形式连接的多个描述符;单个描述符对应FPGA的单次数据导入;各描述符具有指示下一描述符地址的目标字段;在所述链表中,当前描述符的目标字段中填充有下一个描述符在所述第一区段中存储的起始地址。

7.根据权利要求1所述的方法,其中,所述数据需求信息包括,针对同一FPGA的多份数据需求;在配置与所述桩数据结构对应的真实数据结构之前,所述方法还包括:

8.根据权利要求1所述的方法,其中,所述领域缓存区包括,输入数据缓存区和结果数据缓存区,所述输入数据缓存区存储所述机密数据,所述结果数据缓存区用于存储所述FPGA任务的执行结果。

9.根据权利要求1所述的方法,其中,

10.根据权利要求9所述的方法,其中,在所述根监视器通过FPGA MMIO与FPGA进行交互之前,还包括:

11.根据权利要求1所述的方法,其中,在所述第二GPT表中,第一区段被设置属于非安全世界,其他所有内存区段被设置为属于根世界。

12.根据权利要求1所述的方法,还包括:

13.一种机密计算架构中的根监视器,所述机密计算架构包括,安全世界,领域世界,非安全世界和根世界;所述根监视器位于所述根世界中,并包括传输任务模块和FPGA保护模块,其中:

14.一种计算设备,包括存储器和若干处理器,所述计算设备形成机密计算架构,所述机密计算架构包括,安全世界,领域世界,非安全世界和根世界;所述根世界包括权利要求13所述的根监视器。

...

【技术特征摘要】

1.一种在机密计算架构中执行fpga任务的方法,所述机密计算架构包括,安全世界,领域世界,非安全世界,根世界;所述方法包括:

2.根据权利要求1所述的方法,其中,在配置fpga任务的桩数据结构之前,还包括:

3.根据权利要求1所述的方法,还包括,在配置fpga任务的桩数据结构之前:

4.根据权利要求3所述的方法,还包括:

5.根据权利要求1所述的方法,其中,所述传输描述符包括以下信息:待传输数据的起始地址,目的地地址,数据长度,以及所在领域缓存区对应的数据通道信息,所述数据通道选自从fpga到主机的c2h通道,以及从主机到fpga的h2c通道。

6.根据权利要求1所述的方法,其中,所述传输描述符包括,通过链表形式连接的多个描述符;单个描述符对应fpga的单次数据导入;各描述符具有指示下一描述符地址的目标字段;在所述链表中,当前描述符的目标字段中填充有下一个描述符在所述第一区段中存储的起始地址。

7.根据权利要求1所述的方法,其中,所述数据需求信息包括,针对同一fpga的多份数据需求;在配置与所述桩...

【专利技术属性】
技术研发人员:张锋巍王晨旭卢琨闫守孟
申请(专利权)人:南方科技大学
类型:发明
国别省市:

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

1