[发明专利]一种基于OpenCL和FPGA的3DES加速方法在审
申请号: | 202011302847.7 | 申请日: | 2020-11-19 |
公开(公告)号: | CN112328401A | 公开(公告)日: | 2021-02-05 |
发明(设计)人: | 柴志雷;吴健凤 | 申请(专利权)人: | 江南大学 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F21/60 |
代理公司: | 苏州市中南伟业知识产权代理事务所(普通合伙) 32257 | 代理人: | 杨慧林 |
地址: | 215000 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 opencl fpga des 加速 方法 | ||
1.一种基于OpenCL和FPGA的3DES加速方法,其特征在于:包括主机端与设备端,
所述主机端基于OpenCL实现对内核的调度与管理,完成与设备端进行3DES加密和解密数据的交互;所述设备端设计在FPGA上,使用3DES对数据进行加密和解密;
所述设备端包含明文数据输入缓存模块、3DES加密计算模块和密文数据输出缓存模块,所述明文数据输入缓存模块通过使用数据存储调整、数据位宽改进从全局内存读取明文数据,所述3DES加密计算模块通过对数据进行指令流优化形成流水线并行架构,所述密文数据输出缓存模块将数据从FPGA片上传输至外部DDR中。
2.根据权利要求1所述的基于OpenCL和FPGA的3DES加速方法,其特征在于:所述主机端基于OpenCL实现对内核的调度与管理,具体为使用OpenCL平台API及运行时API与OpenCL设备端进行交互,所述平台API定义了主机端程序发现OpenCL设备所用的函数以及这些函数的功能,所述运行时API用于管理上下文来创建命令队列以及运行时发生的其他操作。
3.根据权利要求1所述的基于OpenCL和FPGA的3DES加速方法,其特征在于:所述明文数据输入缓存模块和密文数据输出缓存模块位于设备端的全局内存区域,3DES加密计算模块的中间数据存储于设备端的私有内存区域。
4.根据权利要求1所述的基于OpenCL和FPGA的3DES加速方法,其特征在于:所述数据存储调整,具体为由主机端传输的数据存储于片外DDR中,常量内存位于片上缓存单元,局部内存的物理地址为片上RAM资源,私有内存的物理地址为片上寄存器资源;将参与3DES计算的变量存储于私有内存中,工作项访问位于私有内存中相应的明文数据块并完成3DES的加密;针对子密钥扩展模块的S盒及f函数计算模块的E盒变换,将其存储于常量内存,对应的物理地址为片上ROM,在访问速度快的同时免去访存冲突。
5.根据权利要求1所述的基于OpenCL和FPGA的3DES加速方法,其特征在于:所述数据位宽改进,具体为将单工作项的行为定义为从全局内存中搬运8字节的数据至私有内存,针对8字节数据进行3DES加密计算,再将计算的结果从私有内存搬运至全局内存中。
6.根据权利要求1所述的基于OpenCL和FPGA的3DES加速方法,其特征在于:所述指令流优化,具体为使用循环展开、循环流水来提高程序的并行度,循环展开指导离线编译器将OpenCL Kernel转换为硬件镜像的方式形成有效的流水,流水线架构能够缩短整体的执行时间。
7.根据权利要求1所述基于OpenCL和FPGA的3DES加速方法,其特征在于:所述设备端还采用内核矢量化策略,用于形成更宽的矢量计算通道以提高内存访问的效率。
8.根据权利要求7所述的基于OpenCL和FPGA的3DES加速方法,其特征在于:所述内核矢量化策略,具体为允许多个工作项以SIMD的方式执行内核程序的实例,通过使用内核矢量化策略可提高内存访问的效率。
9.根据权利要求1-8任一项所述的基于OpenCL和FPGA的3DES加速方法,其特征在于:所述设备端采用计算单元复制策略,用于提高具有常规内存访问模式的内核性能以提高计算吞吐率。
10.根据权利要求9所述的基于OpenCL和FPGA的3DES加速方法,其特征在于:所述计算单元复制策略,具体为FPGA编译器为内核生成多个计算单元,每个计算单元同时执行多个工作组,用于提高内核的吞吐率。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江南大学,未经江南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011302847.7/1.html,转载请声明来源钻瓜专利网。