设计人员时常需要通过增加计算能力和/或额外输入的方式来延长现有嵌入式系统的寿命。在这方面,可编程系统平台大有用武之地。我们曾经希望采用安全网络连接功能来升级一套网络可编程系统。安全网络连接功能需要加密才能运行安全外壳(ssh)、传输层安全(tls)、安全套接层(ssl)或虚拟专用网(vpn)等协议。这种安全需求伴随各种系统接入因特网的需求同步增长,例如,为了启用远程管理与分布式控制系统。因该领域仍在发展之中,而且标准尚未固定,因此成本主要取决于一次性工程费用。所以,采用fpga技术能实现最高价值。
我们的系统基于missing link electronics(mle)公司的“软”硬件平台,其fpga具有灵活的i/o,能够连接各种传感器和执行器。该平台采用可编程逻辑实现片上系统,以microblaze cpu或powerpc cpu作为其核心。cpu为操作系统与用户空间应用软件运行mle linux软件栈。由于采用microblaze或powerpc作为主cpu,当运行嵌入式linux操作系统外加强大加密功能时,该系统显然无法提供所需要的计算性能,而且也无法改变物理硬件。为了实现系统加速,我们使用可编程系统将计算从软件域转移到硬件侧。
协处理硬件
可编程系统基本上是一个或几个cpu(运行操作系统与应用软件)的组合,外加一个fpga。fpga在其中用作灵活的接口“适配器”以及协处理硬件。我们可以在单独辅助芯片上实现可编程系统,或者将全部都集成到单个器件上。我们可以根据fpga器件和cpu之间的通信方式,采用不同方法调节系统性能和功能。
其中一种方法就是添加对等处理器,通过内存映射状态和控制寄存器与cpu实现同步。因为通过同一系统总线运行所有通信会很快降低性能,因此我们希望把cpu数据流与对等处理器分开。而采用赛灵思的central dma或多端口储存器控制器(mpmc)等片上系统组件能够轻松满足上述愿望。
另外,也可以增加一个协处理器,这种情况下能通过增加自定义指令(也叫编译功能)有效地扩展cpu的指令集。例如,它适合浮点单元,而且赛灵思的结构协处理器模块(fcm)技术能轻松支持上述功能。此处的优势是在cpu和协处理器之间使用一条从内存到系统总线的专用通信通道。对于powerpc,其为辅助处理单元(apu),而对于microblaze,则是快速单工链路(fsl)。
在加密和解密中,大部分运算按行或列执行,剩下四项运算并行计算,硬件对此任务得心应手。
aes:黄金标准
但是没有重大的系统重新设计,又该如何真正加速加密?对于加密,高级加密标准(aes)是一个事实标准。采用aes加密时,无法通过定义减少计算任务,从而使嵌入式系统很快达到性能极限。如图1所示,其中显示用valgrind分析工具、通过scp(ssh会话)进行的文件传输的分析结果。此时aes加密占用三分之二计算任务。
图1:在采用valgrind工具的scp传输中,aes加密占用三分之二的计算任务
aes-128采用密钥和128位块大小,使用许多并发8字节运算。aes属于分组密码,基于按4x4字节阵列组织的固定分组大小运算。我们曾经采用128位分组大小,它能抵挡所有已知攻击,安全性甚至强于192位和256位版本。
采用128位aes时,执行加密与解密需要12个回合,每个回合需要几步运算。第一项任务是通过所谓的密钥扩展过程从密钥中算出回合金钥。每个回合都采用纯文本自身的回合密钥执行纯文本的逐位异或运算。然后进行字节代替、行位移和列混合运算,并再次执行回合金钥的异或运算。
最后一个回合稍有不同,因为其中省略了一些步骤。加密过程采用所谓的s盒(其提供非线性)执行替代。我们可以把它安置到一个16?16?8位矩阵中,从而能够适应常见的赛灵思bram原语。多个s盒实例可以加速ip核,并在适当的位置为内核提供所需数据,而无需等待对主存储器的长时间总线存取。解密过程大同小异,其采用相同密钥,但方向相反,并且使用不同s盒。
增速12倍
在加密和解密中,大部分运算按行或列执行,剩下四项运算并行计算—而硬件对此任务得心应手。这样就能够通过不同来源实现aes硬件的各个部分。为了加速系统,我们从庞大、快速增长的opencores.org资源库(,avs_aes)获取aes内核。
我们删除了原有的总线接口(因为它适用于另一种fpga架构),另外为apu添加了一个接口,以便把aes内核作为fcm协处理器连接到powerpc上。我们共使用8个所谓的udi指令在powerpc和aesfcm之间传输数据。
工作结果非常令人满意(见图2)。硬件加速的系统比原实现方案快了12倍。原来用以300mhz运行的独立的powerpc加密一个单块需要17.8微秒,而采用以150mhz运行的aesfcm只需1.5微秒。如果只以升级到速度稍快的cpu来加速运算,我们采用硬件加速后的1.5微秒速度表现超过基于intel atom1.6ghz cpu的纯软件实现(其需要2.7微秒)。上述结果证明了使用fpga技术的硬件加速的卓越潜能。
图2:硬件加速系统(中间绿条)快于独立的powerpc或atom处理器。
5G前传网络构建的作用
中国AI产业火热,AI商业化突破口何在?
深度分析PLC与变频器连接问题
X射线的无损检测技术应用介绍
以色列将在未来改变世界的十大创新技术
加密引擎增速12倍的FPGA技术
RFID读写器功率的自适应调节有什么策略
led显示屏怎么设置字体_led显示屏怎么改字_led显示屏字体显示反的怎么办?
Microchip发布首款用于大型超宽触摸屏的车用单芯片解决方案
金句回顾| OpenHarmony技术峰会主论坛嘉宾演讲亮点
关键核心技术是国之重器
集成电路 | 基于光伏热 PV/T 冷热电联产的研究
我国PCB工业面临着四大挑战
向一切不合理的溢价宣战,Redmi 7全球首发,699元起!
我们在承认高通芯片优秀的同时 也要看到国产芯片的进步
UnitedSiC 精选博客文章,助您解决电源设计难题
影响电动汽车续驶里程的因素有哪些
中国电信基于华为·视频3.0+重磅发布“天翼高清IPTV VR版”
宜科推出的小尺寸OS22以及超薄型OS4光电传感器
motoZ3评测 硬朗设计黑科技傍身