透过自动化的处理器同步,我们能降低研发特殊应用协同处理器所需的成本与时间,并透过以软件为中心的模式来开发产品。软件的功能性建立之后,关键的软件工作可分担给已针对该应用进行过最佳化的协同处理器来执行。每个协同处理器都已针对效能、即时、以及空间等方面的要求进行最佳化设计,并且完全可程式化,因此在上市后还能进行扩充与优化功能的动作。协同处理器的简化与速度可以提供更大的机板设计空间,相同的软件也可重新设定不同的目标以因应不同的产品价位与效能需求。
业者必须运用多核心架构来因应嵌入式电子系统对于高效能与低功耗的需求。根据International Business Strategies(IBS)的研究显示,嵌入式软件在90奈米领域已成为一项主流设计模式。嵌入式软件如今主导SoC设计。
IBS的这项研究也发现,架构设计的工作投入现在出现大幅增加的趋势。而大多数的投入是为了提升处理与通信的效率,以确保能达成嵌入式软件的效能目标。
即使针对开发架构的投入越来越多,硬件设计的昂贵成本仍然限制业者进行扩大架构开发的意愿。随着处理器同步技术的进步,开发特定应用处理元件的时间与成本已被大幅降低,并创造出以软件为中心的开发模式。业者现在可以直接掌控更高比率的软件研发工作,也可针对实际软件的处理负荷进行架构最佳化的调整。特定应用处理器可进行同步以满足各种功能系统的效能需求,并让系统拥有最高的可程式化弹性。如此一来,更多硬件元件将可转化成软件,而不是背道而驰。
分散式协同处理
大多数嵌入式系统工程师都熟悉单处理器的编程模式。但多个独立运作的核心让这种编程模式变得更加复杂。为维持较简单的编程模式,可把一个或多个处理元件指派为全域的主控制器,而其他核心则视为协同处理元件,如图一所示。
在一个异质化架构中,系统功能被分散至各个协同处理元件以降低这些元件的耦合性。松散的耦合模式增加了平行处理的机率,但各元件的运算负荷却各有所异。每一个处理元件皆可进行最佳化来配合其处理需求。
图一:分散式协同处理架构。
替代的协同处理元件包括从数字信号处理器(DSP),ㄧ直到固定功能的硬件加速器等各种可程式化的核心。
应用协同处理器是一种为特定应用设计微架构以快速执行关键演算法的可程式化处理器。这些客制化处理器具备最大化的编程效能,同时让处理作业在内部就能完成以维持较简单的编程模式。但客制化处理器昂贵的设计与验证成本,让这种模式的推广面临极大的阻力。不过如今业界出现各种自动化协同处理器合成工具,让这种模式的吸引力持续攀升。
应用协同处理器同步
处理器同步工具必须针对应用作业的需求,来开发出处理器的实作方案。如图二所示,串叠式的协同处理器同步流程採用一种修改后的VLIW模式。如同客制化的硬体设计,暂存器分佈在各执行单元并以客制化的连结管道来连结关键应用所需的资料流。而资料与指令快取是用来降低对外部记忆体的需求,图二的范例显示了两个资料快取。由于协同处理器是针对特定应用所设计,因此合理的作法是运用多个资料快取,并依据演算法的资料需求来策略性配置每个快取的容量。选择合适的指令编码模式,可以增进平行处理的效率并降低微码(microcode)的长度。
图二:协同处理器架构。
一个或多个协同处理器可从应用程式进行同步,图三显示单一协同处理器的同步流程。
同步的进入点是编译过的二进位程式码,软件开发人员运用其正常的主处理器工具链来编译其程式码。我们可用对应(profiling)与其他的效能分析工具来找出功能效能的关键点。在发现之后,这些功能将可转移给特定应用处理器来执行。
图三:协同处理器合成流程。
从可执行的二进位程式开始,任何编译语言以及其编译的程式都可进行加速。包括C语言以及经过最佳化的组译语言,而此阶段不需要原始码。
二进位程式码读入系统后,便可选择要分担至协同处理器的功能。此时要建立二进位程式码的模型并进行模拟,详细追踪记忆体的使用模式以及关键的执行线路。追踪资讯是用来分析不同的资料快取、执行单元以及联结的组合。产生各种不同效能、空间与耗电量组态的协同处理器实作方案。随着实际的作业量的不同,规划模型的工作会耗费数分钟到数小时。
在选择协同处理器的组态后,会产生RTL层级的硬件描述以及在协同处理器上执行的微码指令。原始的二进位程式码和微码与通信的驱动程式将一起加入系统。
架构分析
协同处理器同步可用来快速分析不同的系统架构。应用软体可编译至主处理器并连结各种功能,以将其处理工作分担给多个协同处理器。图四显示一个当影片、影像及音效功能都分担到各个处理器的系统范例。
图四:架构分析。
加密协同处理器
经储存后转送的安全应用提供一个协同处理器同步的实例。应用透过网路连线会收到经过加密的文件。经过解密后加以检查并加入特定的资讯,最后把修改过的文件进行加密再转传至下一个目的地。
本设计锁定一个Actel M7 ProASIC3/E FPGA,此款元件内含一个软型ARM7TDMI核心,其内有快闪元件的组态并嵌入额外的防护机制,以具有反制逆向工程的能力。模块图表如图五所示:
图五:储存后转送的安全架构。
以AES 加密标准作初始加密演算法
一个开放原始码的程式被编译到ARM7核心处理器,此程式码经过对应并选择了想要分担的加密功能。经过同步后,协同处理器产生的协同候选方案如图六所示。
图六:AES加密协同处理器选项组合。
AES演算法的执行速度比原始的ARM7功能加快了3.6倍。协同处理器需要45k个逻辑闸以及21k的存储器作为资料与指令的快取存储器。经常等候加密单元的处理器模块可分担协同处理器的加密运算作业,让ARM的整体处理负荷降低36%。
在设计AES协同处理器后,另一个需求就是加入支援额外加密的演算法。Blowfish演算法被直接编译至AES协同处理器以提升ARM7 4.5倍的运算速度。相较之下,针对Blowfish演算法进行同步的协同处理器,则提供加快4.7倍的加速效果。
图七:AES与Blowfish演算法比较。
后续发展
基本的协同处理器同步作业不需要处理器设计的专业能力。但是若想进一步加快速度则必须在协同处理器的架构中加入客制化的执行单元,而软件功能可直接对映至这些单元。在分担这些功能的运算负荷时,仅须定义单元介面以及基本的流量与延迟时序。同步的协同处理器将纳入这些客制化单元并和它们进行联结。业者可分析效能方面的利益,而若有需要也可完成这些客制化单元的硬件设计。
阅读(837) | 评论(0) | 转发(0) |