当前位置:首页 > EDA > 电子设计自动化
[导读]该平台采用可编程逻辑实现片上系统,以 MicroBlaze ™ CPU或 PowerPC® CPU 作为其核心。 CPU 为操作系统与用户空间应用软件运行 MLE Linux 软件栈。由于采用 MicroBlaze 或PowerPC 作为主 CPU,当运行嵌入式Linux 操作系统外加强大加密功能时该系统显然无法提供所需要的计算性能。况且也无法改变物理硬件。为了实现系统加速,我们使用可编程系统把计算从软件域转移到硬件侧。

设计人员时常需要通过增加计算能力或额外输入(或两者)延长现有的嵌入式系统的寿命。而可编程系统平台在这里大有用武之地。我们曾经希望用安全网络连接功能升级一套网络可编程系统。安全网络连接功能需要加密才能运行安全外壳 (SSH)、传输层安全 (TLS)、安全套接层(SSL) 或虚拟专用网 (VPN) 等协议。这种安全需求与把各种系统接入因特网的需求同步增长,例如,为了启用远程管理与分布式控制系统。

  因该领域仍在发展并且标准尚未固定,因此成本主要取决于一次性工程费用。所以,FPGA 技术能实现最高价值。我们的系统基于 Mi s s i n g L i n k Electronics (MLE) 公司的“软”硬件平台,其 FPGA 灵活的 I/O 能够连接各种传感器和执行器。该平台采用可编程逻辑实现片上系统,以 MicroBlaze ™ CPU或 PowerPC® CPU 作为其核心。 CPU 为操作系统与用户空间应用软件运行 MLE Linux 软件栈。由于采用 MicroBlaze 或PowerPC 作为主 CPU,当运行嵌入式Linux 操作系统外加强大加密功能时该系统显然无法提供所需要的计算性能。况且也无法改变物理硬件。为了实现系统加速,我们使用可编程系统把计算从软件域转移到硬件侧。

  协处理硬件可编程系统基本上是一个或几个CPU( 运行操作系统与应用软件)的组合,外加一个 FPGAFPGA 在其中用作灵活的接口“适配器”及协处理硬件。我们可以在单独辅助芯片上实现可编程系统,或者将全部都集成到单个的器件上。我们可以根据 FPGA 器件和 CPU 之间的通信方式,采用不同方法调节系统性能和功能。

  其中一种方法就是添加对等处理器,通过内存映射状态和控制寄存器与 CPU实现同步。因为通过同一系统总线运行所有通信会很快降低性能,因此我们实际上希望把 CPU 数据流与对等处理器分开。而采用赛灵思 Central DMA 或多端口储存器控制器 (MPMC) 等片上系统组件能够轻松满足上述愿望。

  另外,也可以增加一个协处理器,这种情况下能通过增加自定义指令(也叫编译功能)有效地扩展 CPU 的指令集。例如,它适合浮点单元,而且赛灵思结构协处理器模块 (FCM) 技术能轻松支持上述功能。此处的优势是在 CPU 和协处理器之间使用一条从内存到系统总线的专用通信通道。对于 PowerPC,其为辅助处理单元 (APU),而对于 MicroBlaze,则是快速单工链路 (FSL)。

  图 1 — 在采用 Valgrind 工具的 SCP 传输中,AES 加密占用三分之二的计算任务。

  AES:黄金标准

  但是没有重大的系统重新设计,又该如何真正加速加密?

  对于加密,高级加密标准 (AES) 是一个事实标准。

  采用 AES 加密时,无法通过定义减少计算任务,从而使嵌入式系统很快达到性能极限。如图 1 所示,其中显示用Valgrind 分析工具、通过 SCP(SSH 会话)进行的文件传输的分析结果。此时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 资源库获取AES 内核。

  我们删除了原有的总线接口(因为它适用于另一种 FPGA 架构),另外为APU 添加了一个接口,以便把 AES 内核作为 FCM 协处理器连接到 PowerPC上。我们共使用 8 个所谓的 UDI 指令在PowerPC 和 AES FCM 之间传输数据。工作结果非常令人满意( 见图2) 。硬件加速的系统比原实现快了12 倍。原来用以 300 MHz运行的独立的 PowerPC 加密一个单块需要 17.8微秒,而采用以 150 MHz 运行的 AESFCM 只需 1.5 微秒。如果只以升级到速度稍快的 CPU来加速运算,我们采用硬件加速后的 1.5 微秒速度表现超过基于 Intel Atom 1.6-GHz CPU 的纯软件实现(其需要 2.7 微秒)。上述结果证明了使用 FPGA 技术的硬件加速的卓越潜能。

  图 2 — 硬件加速系统(中间绿条)快于独立的 PowerPC 或 Atom 处理器。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭