账号:
密码:
最新动态
产业快讯
CTIMES / 文章 /
嵌入式装置平行处理技术深探
嵌入式系统设计专栏(3)

【作者: John Goodacre】2004年10月05日 星期二

浏览人次:【4845】

嵌入式装置有许多层面都能够建置平行处理机制,进而带来多方面的效益,尤其是在改进系统效能方面。目前某些技术已可成功应用于桌上型与嵌入式平台的架构中,但有些解决方案却局限于研发业者仅能开发固定功能的解决方案。本文将介绍多重处理的关键词汇,并推荐一套更具弹性且通用的平行技术应用模式,同时更适合支援各种嵌入式应用,以达到更高的处理效率,也就是低耗电率与可扩充的效能。


平行处理技术的架构及解决方案

长久以来,设计业界对于平行运算技术一直怀抱着愿景与迷思。直到最近,平行运算仍局限于学术研究与专业超级电脑等领域,期望这类技术能提供效能等级的跃升或为运算能力带来重大的突破。尽管目标相当明确,但由于平行电脑的程式编程工作相当复杂,通常须运用专利型程式语言,这意味着必须花费许多成本在大量矽元件空间及电力需求上。


含有多处理功能的平行处理机制已逐渐扩展至桌上型运算平台,并成为目前桌上型平台晶片架构所期望的技术。然而对大多数消费者而言,平行处理技术仅仅代表着能够使目前的单一处理器架构在处理现有桌上型应用时提升10%至20%的效能,而非所谓“突破性的跃升”。这种递增式效益使大众对嵌入式平台的平行处理或多重处理能抱持较为客观的认知。就某种角度而言,平行处理已成为协助业者在耗电量及效能间取得最佳平衡的另一个架构特色。


持续成长的产品需求

嵌入式产品对于多处理器解决方案的需求不断上升。装置中愈来愈多应用需求必须管理持续变化的工作负载,且不能因此而提高耗电量或成本。然而,可携式产品的尖峰效能需求不能仅提高系统时脉,因为更高的时脉速度意谓着运作电压随之提高,这表示耗电量也会随之大幅上扬。


3G手机的例子正可以说明平行处理机制如何建置在许多层面。在无线应用方面,其处理负荷能够弹性地从趋近于零的待机模式增加到拨接影像电话并同时以背景模式执行其它应用时的最高负荷量。


平行处理机制的多重层级

在探讨如何将平行处理机制导入嵌入式系统并满足持续成长的产品需求之前,必须先了解平行处理机制如何为实际系统带来利益。


系统如欲建置平行处理机制所面临的复杂因素,需为此种机制散布于从拥有多组应用程式同时执行的最高应用层,到不同资料同时在处理单元中传递的最低位元层等多种抽象层。


以3G手机为例,在最高抽象层中,装置必须执行多组使用者应用及整套网路软体架构。以现今的技术而言,同时执行多组应用的发展潜力相当可观。而在下一个层级中就可运用多重同步演算法,例如在3G手机上拨接影像电话时,必须执行影音编码或解码演算,光是这项功能就需要同时执行四组演算。若将每个演算法加以隔离,就可以让特定资料集的处理作业达到平行处理模式,例如影片编码流程中的8×8 DCT离散余弦转换。在这个流程中,可以同步模式运算多组8×8资料。


在处理每组8×8资料集时,可同步执行演算或逻辑处理,例如当同时发出两组add指令于8×8 DCT计算的顶层与底部执行加法运算。这方面需要在指令层级达到同步化的效果。为方便讨论,因此设定最低层级的抽象层,也就是位元层级的运算支援平行模式。例如,构成ALU逻辑处理流程以便能同时进行位元移位运算,以达到一个周期完成加法运算的目标。


《图一 智能型手机或3G行动终端装置必须支持多元化的功能并同时执行多项作业,因此有相当高的处理需求。》
《图一 智能型手机或3G行动终端装置必须支持多元化的功能并同时执行多项作业,因此有相当高的处理需求。》

透过软/硬体执行平行处理

在界定了平行处理机制的五个层级后,接下来将进一步介绍如何运用目前的各种技术达到平行处理的效果。


多核心装置

满足多重应用的处理需求最直接的方式就是运用多处理器。当非对称多处理器(AMP)同时运用二颗以上的处理器运作时,其中一颗指定为主处理器,负责执行作业系统及整体控制作业。这类系统包括异质性与同质性环境,异质化系统结合不同种类的处理器,例如控制处理器以及讯号处理器;而同质型系统则包含多颗相同类型的处理器。非对称异质化组态系统,可于网路装置中执行像是同步封包处理等作业。


多重执行绪应用

为了满足同时执行音效与影像解码作业等同时执行多组演算的应用需求,最常使用的方法是以多组执行绪进行处理,也就是两组解码演算作业间以时间切割的方式处理。时间切割技术已应用于现今的单一处理器环境,能够使在同一颗处理器上执行的两组执行绪间迅速地切换,而形成同时处理的错觉。这对于考虑运用多处理器系统以提高其应用效能的业者而言是一项好消息。现今许多使用多重执行绪的程式可以立即移植到多核心的环境上执行。


有两种方法能够在多处理器系统中将执行绪分派给处理器。第一种方法是在AMP环境中,可由主处理器或指挥处理器以静态模式将执行绪分派给特定的核心。另一种方法则是由有这方面能力的作业系统以动态模式透过排程或自动化地将执行绪指派给处理器。


对称式多重处理器(SMP)环境包含多颗同质性的核心,每颗处理器都有能力执行相同的作业。这些系统属于对称式环境,所有核心都能存取相同的记忆体、I/O以及其它资源。因此不同的执行绪能在SMP系统中的任何核心上运作。虽然AMP同质型系统亦含有相同的核心,但并非所有核心都能存取相同的系统资源。例如,不同的核心可看到不同区段的记忆体或是受限制仅能存取其它系统资源。根据SMP与AMP存在的这些差异,显示出SMP较适合进行动态工作分派,而AMP则较适合进行静态的工作指派。



《图二 线程》
《图二 线程》

如(图二)所示,SMP中的执行绪是应用处理器容纳其多组编码及资料的所在之处。每组执行内容由CPU联合组成的程式员(program counter)所定义。在SMP中,这些多重执行内容能够同时运作,并且即便在比单一内容的处理器更快的运作速度或电力不足时也能完成工作。


大多数嵌入型多重处理器系统都属于静态指派的AMP系统。 ARM DCP就是一个典型的例子。由于SMP能自动分派处理工作,故将AMP组态的执行绪程式模型转移至SMP架构是没有意义的作法。


多重执行绪作业

在应用层级方面,亦有许多模式可达到资料平行处理的目标。目前最常见的模式是由程式开发人员找出平行资料处理的机会,其中包括由开发人员自行将资料切分成适合平行处理的区块及分派不同的资源。


在更高的层级方面,可运用程式语言中的相关指令来研判这些工作是否能同时进行。这种模式对于程式开发人员而言远比低阶手动作业更有效率,同时也能控制平行结构的处理流程,像透过Handel-C及OpenMP此类语言使用延伸格式的操控指令或pragmas,找出程式结构中潜在的平行处理能力。例如传统编程语言中的“for loop”通常被解译成一连串的叙述,再加入一组pragmas即能命令一组预先处理器(pre-processor)同时处理for loop中的所有指令。这种模式使设计人员能充分掌握平行处理的流程。


预测处理技术则将所有工作交由编译器或作业系统,由它们负责决定资料最佳的平行处理模式为何。以for loop指令为例,由预测系统研判某行程式与下一行程式之间有没有资料相关性,再运用多处理系统以高效率的模式进行指令执行。预测型​​预先处理器需要的编程工作量最少,因此最具吸引​​力。然而,这种方法却最难掌控,其产生的结果也难以预测,甚至可能产生许多复杂的演算流程。


随着平行处理技术逐渐从机板转移至晶片层级,运用演算流程中平行处理的机会亦大幅改变。机板层级建置平行处理机制中最常见的例子就是伺服器技术。多处理器技术被广泛应用于主从架构型系统中,其典型的架构包含多颗晶片,彼此间由背板所区隔,耗用大量的通讯资源。因此,长时间平行处理作业的运算才值得采用这类平行处理系统。


将多组核心整合在单一晶片中,成功地改变了以往的平行作业模式。运用晶片多处理器(CMP)技术,可使晶片中各核心间的传输延迟缩短。这意谓即使是很小的工作亦适合传递给另一个处理器进行平行处理。 CMP在进行单执行绪应用时发挥的平行处理机制虽然程度较低,但仍足以在晶片中多组核心上执行多组执行绪。


多重指令

平行发出多组指令称之为指令层级平行技术(ILP),单一处理器架构能同步执行两组或更多的纯量运算,超纯量或极长指令字元(VLIW)处理器是许多解决方案中常见的技术。运用单一处理器架构建置的ILP搭配平行前端管线结构,能向包含执行核心在内的各种功能单元管线同步发出指令。然而,超纯量核心的效率受到单一执行绪中平行处理的机会所限制,若处理器有四组指令发送槽,但排程器仅能在特定的周期内找到两组指令发出,则其余两个发送槽就等于被浪费掉。



《图三 MPCore多层线程平行机制》
《图三 MPCore多层线程平行机制》

如(图三)所示,ARM MPCore为针对支援多层执行绪平行机制所设计的处理器核心之最佳范例。它能够扮演在每一个CPU上的安装多重独立应用的多核心装置以及能够支援执行绪应用的SMP。处理器内部的MPCore也能够支援单一指令多重资料(SIMD)以及其他形式的平行层级指令。 TLP及ILP在MPCore里的结合使其成为新一代热门消费性电子及网路装置的理想技术。


尽管希望能运用较深的管线及多管线以便由一次处理器得到多重指令,但超纯量处理器的效能基本上仍旧受限于单次发出指令的数量。此外,若指令必须因等待记忆体中的资料而暂停传送,则整个执行绪都必须一起等候。同步多重执行绪(SMT)亦称为超执行绪,为针对超纯量架构推出执行绪的平行机制。在实际运作上,这意谓发送平行指令不再受同一执行绪中指令集的限制。这种设计创造出效率大幅提升的前端处理机制,可将发送槽的浪费机率降至最低。业界转移至SMT的趋势亦反映出ILP的发展限制及体认到TLP的效能潜力。


多重资料

嵌入式架构能处理多笔资料的优势已被广泛讨论,同时充份体现于ARM架构中。单一指令多重资料针对各种高效能媒体创造出更具效率的软体建置,包括音效与影片编码器。 ARMv6指令集中加入超过60项指令,且一但加入SIMD指令就能将效能提高2至4倍(实际效果则视多媒体应用的种类而定)。 SIMD使研发业者能建置各种高阶功能,例如影片编解码器、独立于扩音器之外的语音辨识系统与3D绘图等,尤其是各种新一代无线应用。SIMD指令支援8位元与16位元SIMD演算技术,包括四组8位元与二组16位元运算、平行加法与减法、选择、封装与解封装等。而先进的乘数器方案包括了针对加密型应用的16位元加乘以及新型长浮点数乘法指令。


ARM DSP“E”延伸方案是另一个运用多重资料处理技术的例子,DSP强化指令包括一组单一周期的16×16与32×16 MAC建置及支援现有演算指令的饱和延伸集(saturation extension) 。这些延伸指令是应用于设计稳定控制器回路以及bitexact精准演算法。 CLZ指令能提高数学演算与浮点运算的正规度(normalization),并提升除法运作的效能。此外,ARM多层级AMBA晶片汇流排规格支援平行式晶片内部互连策略,提供一套理想的解决方案,能降低延迟并提高系统的汇流排传输频宽。


《图四 开发多重处理器系统》
《图四 开发多重处理器系统》

<注:ARM提供许多开发系统及测试版以协助多处理器设计建置及发展。 APC MPCore正是建置在该种系统上,以针对未来先进设计进行SMP软体的研究及发展。 >


TCP与IP—实际建置

在考量为嵌入式系统发展更多可行的平行处理机制解决方案时,指令层级平行技术(ILP)与执行绪层级平行技术(TLP)分别是业者心中最优先的选择。虽然两种技术都能提高效能,但对于整体系统设计而言则有不同的影响。


即使程式开发人员并没有参考资料可研判哪些指令能以平行模式执行,ILP都必须在充裕的硬体资源下才能以平行模式发送指令。同时,编译流程在执行指令排程所提供的协助也相当有限,但基本上硬体必须能应用于同步执行指令。就成本与耗电量而言,复杂的ILP解决方案并不适合支援嵌入式设计。


相反地​​,TLP则是运用软体发挥潜在的平行处理能力,由于平行处理能力在执行程式时就能被辨识出,因此能简化硬体的设计与建置流程。 Hammond L.在1997年发表的研究报告中,针对同时发送多组指令的SMT与运用多组单一执行绪处理器的CMP两种不同架构在建置执行绪层级平行机制进行比较性研究,证实了CMP在架构扩充性与效能上相对较为优异的假设。将微架构分割成较少的区域性处理元素,可协助业者更容易设计及调校出最佳的速度。此种做法能让单一处理器模式在相同的晶粒空间内扩增两倍的效能。


另一篇由M. Nikitovic及M. Brorsson在2002年发表的研究论文再度验证ILP与TLP模式在耗电量与效能方面的表现。而该篇论文的结论再次倾向于运用TLP晶片多处理器的模式,尤其在建立一套可适应式系统层级耗电策略后。论文的两位作者亦指出CMP架构的弹性能满足两项关键的系统需求,特别是行动终端装置方面。透过一套可适应性架构与开启或关闭处理器的能力,能满足各种效能的需求,尤其是典型无线应用中常见的「忙碌」作业负载。相同模式亦提供可降低耗电率的有效策略。此篇论文指出CMP模式仅须使用单一处理器架构的一半电源,即能达到相同的效能水准。


未来的挑战

从同步执行完整应用到逻辑层级的位元处理​​,嵌入式系统中有许多发挥平行处理效益的机会。在搜寻最佳解决方案时所面临的一项关键挑战,就是从每种机会中寻找出最佳的处理效率。运用指令层级平行能力的技术,尤其是各种桌上型架构,在过去数年来被广泛采用并日趋成熟。然而,业者必须了解运用重复硬体资源亦代表这种模式的扩充性无法在嵌入型应用中真正发挥其应有水准。


执行绪层级平行机制运用一组晶片多处理平台非常可靠,且能提供充裕的弹性、扩充性及优于单一处理器的效能。此种组态内潜的弹性,使业者能够开发出理想的系统,并提供一套适合支援各种应用的硬体平台,进而创造出高效率的整体产品研发流程。然而,上述理论中的效能与省电性至今尚未于实际的嵌入型应用中显现。


若这些技术能够成功地推广至设计业界,则代表包括作业系统、工具、软体除错方案与SoC硬体设计方案皆已问市,并发展成一套完整的研发环境。 ARM将AMP结合至RealView工具,针对PrimeXsys双核心平台内的多核心提供交叉触发(cross-trigger)追踪功能。


对于程式设计师而言,在开发TLP架构程式上仍然面临着挑战。不过目前市面上已出现更多支援TLP的程式语言、函式库及作业系统,例如Linux就已纳入SMP的功能,一旦该项技术受到更广泛的采纳时,就能逐渐发挥出超越其它平台作业系统的优势。


结论

尽管仍然面临基础挑战,但嵌入式应用中发挥更高平行效能所得到的潜在利益,使得业者对于开发多处理器仍抱持极大兴趣。此外,应用研发业者也应考虑本身系统中平行处理的潜力。在许多例子中,现有的应用已纳入多重执行绪的设计,可确保在转移至新型平行架构时能以递增的模式提升处理的效率。 (作者为ARM多处理器产品经理)


相关文章
以协助因应AI永无止尽的能源需求为使命
智慧家居大步走 Matter实现更好体验与可靠连结
车载软体数量剧增 SDV硬体平台方兴未艾
低功耗MCU释放物联网潜力 加速智慧家庭成形
AI赋能智慧边缘 行动运算处理器的时代革命
comments powered by Disqus
相关讨论
  相关新闻
» 摩尔斯微电子在台湾设立新办公室 为进军亚太写下新里程碑
» 爱德万测试与东丽签订Micro LED显示屏制造战略夥伴关系
» 格斯科技携手生态系夥伴产学合作 推出油电转纯电示范车
» 宜鼎独创MIPI over Type-C解决方案突破技术局限,改写嵌入式相机模组市场样貌
» Arm:因应AI永无止尽的能源需求 推动AI资料中心工作负载


刊登廣告 新聞信箱 读者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 远播信息股份有限公司版权所有 Powered by O3  v3.20.1.HK84PB2LQ0KSTACUKS
地址:台北数位产业园区(digiBlock Taipei) 103台北市大同区承德路三段287-2号A栋204室
电话 (02)2585-5526 #0 转接至总机 /  E-Mail: webmaster@ctimes.com.tw