透过自动化的处理器同步,我们能降低研发特殊应用协同处理器所需的成本与时间,并透过以软件为中心的模式来开发产品。软件的功能性建立之后,关键的软件工作可分担给已针对该应用进行过最佳化的协同处理器来执行。每个协同处理器都已针对效能、即时、以及空间等方面的要求进行最佳化设计,并且完全可程式化,因此在上市后还能进行扩充与优化功能的动作。协同处理器的简化与速度可以提供更大的机板设计空间,相同的软件也可重新设定不同的目标以因应不同的产品价位与效能需求。
业者必须运用多核心架构来因应嵌入式电子系统对于高效能与低功耗的需求。根据International Business Strategies(IBS)的研究显示,嵌入式软件在90奈米领域已成为一项主流设计模式。嵌入式软件如今主导SoC设计。
IBS的这项研究也发现,架构设计的工作投入现在出现大幅增加的趋势。而大多数的投入是为了提升处理与通信的效率,以确保能达成嵌入式软件的效能目标。
即使针对开发架构的投入越来越多,硬件设计的昂贵成本仍然限制业者进行扩大架构开发的意愿。随着处理器同步技术的进步,开发特定应用处理元件的时间与成本已被大幅降低,并创造出以软件为中心的开发模式。业者现在可以直接掌控更高比率的软件研发工作,也可针对实际软件的处理负荷进行架构最佳化的调整。特定应用处理器可进行同步以满足各种功能系统的效能需求,并让系统拥有最高的可程式化弹性。如此一来,更多硬件元件将可转化成软件,而不是背道而驰。
分散式协同处理
大多数嵌入式系统工程师都熟悉单处理器的编程模式。但多个独立运作的核心让这种编程模式变得更加复杂。为维持较简单的编程模式,可把一个或多个处理元件指派为全域的主控制器,而其他核心则视为协同处理元件,如图一所示。
在一个异质化架构中,系统功能被分散至各个协同处理元件以降低这些元件的耦合性。松散的耦合模式增加了平行处理的机率,但各元件的运算负荷却各有所异。每一个处理元件皆可进行最佳化来配合其处理需求。
图一:分散式协同处理架构。
替代的协同处理元件包括从数字信号处理器(DSP),ㄧ直到固定功能的硬件加速器等各种可程式化的核心。
应用协同处理器是一种为特定应用设计微架构以快速执行关键演算法的可程式化处理器。这些客制化处理器具备最大化的编程效能,同时让处理作业在内部就能完成以维持较简单的编程模式。但客制化处理器昂贵的设计与验证成本,让这种模式的推广面临极大的阻力。不过如今业界出现各种自动化协同处理器合成工具,让这种模式的吸引力持续攀升。
应用协同处理器同步
处理器同步工具必须针对应用作业的需求,来开发出处理器的实作方案。如图二所示,串叠式的协同处理器同步流程採用一种修改后的VLIW模式。如同客制化的硬体设计,暂存器分佈在各执行单元并以客制化的连结管道来连结关键应用所需的资料流。而资料与指令快取是用来降低对外部记忆体的需求,图二的范例显示了两个资料快取。由于协同处理器是针对特定应用所设计,因此合理的作法是运用多个资料快取,并依据演算法的资料需求来策略性配置每个快取的容量。选择合适的指令编码模式,可以增进平行处理的效率并降低微码(microcode)的长度。
图二:协同处理器架构。
一个或多个协同处理器可从应用程式进行同步,图三显示单一协同处理器的同步流程。
同步的进入点是编译过的二进位程式码,软件开发人员运用其正常的主处理器工具链来编译其程式码。我们可用对应(profiling)与其他的效能分析工具来找出功能效能的关键点。在发现之后,这些功能将可转移给特定应用处理器来执行。
图三:协同处理器合成流程。
从可执行的二进位程式开始,任何编译语言以及其编译的程式都可进行加速。包括C语言以及经过最佳化的组译语言,而此阶段不需要原始码。