账号:
密码:
最新动态
产业快讯
CTIMES / 文章 /
Configurable Processor的划时代意义
嵌入式处理器之革命架构

【作者: Steven Leibson】2003年06月05日 星期四

浏览人次:【4445】

目前有一种新型态的处理器──可配置组态处理器(Configurable processor)相当受到注目,它的特色在于可以为特定应用而量身订制。它不仅比标准型嵌入式微处理器的速度更快,而且能做更多工作,有些甚至可以取代ASIC及系统单晶片(SoC)中自行编码(hand-coded)的 RTL设计。


什么是Configurable processor?它可以做什么?为什么会有人想要使用这种处理器?它如何取代RTL coding?设计师该如何运用可编程处理器来做设计?这篇文章中将对这些问题有进一步的解答。


标准型嵌入式处理器核心

首先来看看标准式、固定指令集架构(fixed-ISA)的嵌入式微处理器及DSP核心。


这类微处理器包括ARM、MIPS及Power PC等处理器,它们在1980年代开始以单一晶片的型式被制造使用,并朝向两个方向发展:一是以最大时脉为首要考量,这和PC处理器的发展模式极为类似,如果省电在设计上最重要的考量,那快速提升时脉以满足应用需求就成了这颗特定处理的主要任务。第二个方向则是以平行运算(Parallel Operation)的方式来提供更多的运算资源,以便让处理器能同时执行更多的工作。


这类处理器的业者虽然试着发展出能执行更宽广运算的新架构,但一般来说,他们并不会为特定的应用而改变其处理器的设计。正是因为这种「一体适用」的微处理器设计特性,对于工程师来说,想运用此类处理器架构来发展平行运算引擎就显得相当困难。此外,虽然这种设计方向对于时脉的要求较低,但对于一个需要客制化的方案来说,这样做并不能让时脉或逻辑闸效能得到充分的利用。


有些设计师已将DSP加入嵌入式SoC的设计中,这种DSP的应用范畴比上述一般性目的(general-purpose)处理器还要狭碍些,所以对于处理器工程师来说,要发展针对DSP应用的平行运算硬体比较容易些;但即使是DSP的架构,仍需要设计成能为大范围的演算提供充分的效能,所以这样的模式还是很难符合客制化方案对于速度上的需求。


自行开发 RTL以加速设计

由于标准型的嵌入式微处理器对于许多应用(尤其是需要处理多媒体或网路连结的应用)来说处速度并不够快,即使多加了嵌入式的DSP来提升效率仍嫌不足,因此设计团队只有自行以Verilog 或VHDL来设计部分的硬体核心,以满足个别的需求。但面对复杂的功能要求,客制化的RTL逻辑往往需要长时间的设计与验证;此外,自制的RTL区块一旦完成,往往因为太死板而难以更动,但随着标准更新或产品的新特性出现,设计更动总是无法避免。


(图一)为传统RTL设计区块图,图左为RTL的资料通道(datapath),图右则为此区块的有限状态控制器(finite state machine;FSM),它进一步说明了上述的矛盾状况。


《图一 Hardwired RTL = Datapath + State Machine》
《图一 Hardwired RTL = Datapath + State Machine》

在多数的RTL设计中,资料通道消耗了绝大多数在逻辑区块中的逻辑闸。一般来说,资料通道少则需要16或32位元,多则要数百位元,这包含了许多的资料暂存器(data registers)和重要的RAM区块,此外还包括连结外部RAM的介面,以及与其他RTL区块共用的记忆体。


相较之下,状态控制器所要做的就是各种情况的控制,包括对各种资料流经资料通道时的先后顺序的细微控制、对各种例外或错误状况的控制,以及所有与其他区块的沟通等,都是这个RTL逻辑区块的次系统所要负责的事。这个状态控制器对于逻辑区块的闸数占用比率可能极低,但由于它的工作复杂性极高,让它也承担了最大的设计与验证上的风险。


近来在RTL区块的设计上多倾向于针对状态控制器做改变,而非针对资料通道的架构,但这种情况也造成设计时间的增加,以及当设计改变后得重新验​​证RTL区块的困难,因此也提高了RTL区块设计的风险。一个可配置(configurable)、可延伸(extensible)的处理器(基本上是一种新型态的微处理器)则提供了降低状态控制器设计风险的方法,也就是以可预先设计(pre-designed )、预先验证(pre-verified)的处理器核心及应用功能韧体来取代难以设计和验证的状态控制器逻辑区块。


Configurable Processors的承诺

对于SoC的设计来说,愈来愈大型的RTL区块设计也产生了所谓的「SoC设计差距(SoC design gap)」,这种情况正逐年在扩大,如(图二)所示。此一差距的形成是因为晶片复杂度有爆炸性的成长,但设计者生产力的成长上,却相对低上许​​多。目前包括更长电池寿命的手机、四百万像素数位相机、高速又低价的彩色列表机、数位高画质电视(HDTV)及3D影像游戏机等热门产品,无不诉求更高效率、更低耗电的系统趋势,这也促使SoC设计规模的扩大,​​以满足更多新功能的需求。因此,除非有拉近「SoC」设计差距的方法,否则要将高阶的设计案及时推出市场,会成为一项不可能的任务。


《图二 设计复杂度与生产力关系图》
《图二 设计复杂度与生产力关系图》

硬体式的RTL设计具有许多优点:小尺寸、低耗电及高处理效率等;但当晶片的闸数变得非常庞大时,RTL的另一面向:不易设计、验证速度慢及困难,及对复杂问题的扩充性差等,逐渐成为主导性的特点。在缩短设计时间并减少风险的同时,还能保留RTL大部分的效能及效率优点的设计方法,自然具有极大的吸引力,而Configurable processor正可以满足这个需求。就好像逻辑合成式的RTL设计一样,Configurable processor具备了高速逻辑区块的设计能力,因此能因应不同的指派工作而量身订做。它与RTL设计有一个主要的不同:它的状态控制器是以Configurable processor为基础的硬体及逻辑区块来完成,并使用韧体来做到这项功能。


什么是Configurable Processor?

一个功能完整的Configurable processor工具组由一个可预先定义的处理器核心与一个设计工具环境所组成,当有特殊应用需求时,可以针对此一处理器设计做重要的调整。 Configurable processor一般具备了对记忆体的增加、删除和修改,对外部的汇流排频宽与沟通协定,以及对常用的处理器周边的组态配置能力。


可延伸性(extensibility)是Configurable processor的一个重要特色,它可以提供系统设计师一些在传统架构下可能从未思考过、或什至想像过的处理器指令新增能力。这种高度客制化的指令增加能力除了能理想地满足特殊应用上的需求,它也让Configurable processor具备了与RTL的高效能特性相匹敌的条件,并保有可预先验证IP(pre-verified IP )的好处。Configurable processor可以像RTL程式码一样合成到FPGA或SoC的设计当中,最佳的Configurable processor更可以配合软体开发工具,密切地呼应经由设计者自行定义的延伸架构所增加的硬体指令。


RTL的另一选择──Configurable Processors

以Configurable Processors来取代RTL,通常是使用与一般​​RTL区块相同的资料通道结构,也就是深度导线(deep pipelines)、平行处理单元、特定作业状态暂存器,和连接区域与系统记忆体的宽频资料汇流排。这些延伸的处理器可以达成和一般RTL设计相同的大量处理能力,并支援相同的资料连结介面。


然而,对Configurable Processors资料通道的控制却和RTL的对应部分有很大的差异。它的资料通道周期控制并非固定在实体线路的状态过渡(state transitions)中,而是由处理器的韧体来达成,如(图三)所示。这样做的好处在于从分流中就可以决定对资料流的控制,而记忆体在载入与储存操作时的参考值(references)都很明白,此外,不论是一般性或特殊应用的运算处理,都有清楚的运算序列。


《图三 可程序硬件功能:datapath + processor + software》
《图三 可程序硬件功能:datapath + processor + software》

从RTL实体线路的状态控制器转移到采用韧体控制的Configurable processor,具备了以下几项重要的优势:


1. 弹性:晶片设计者与系统建置者可以透过改变韧体来更动逻辑区块中的功能,即使是在产品生产后仍可做到。


2. 软体式的发展:研发者可使用相对上较快速且低成本的软体工具来实现多数的晶片功能。


3. 更快、更完整的系统模型:对于一个千万闸级的设计来说,即使是最快的软体式逻辑模拟器也很难做到每秒数个周期;相较之下,在指令集模拟器下运用韧体对延伸处理器做模拟,可以做到每秒数百、数千,甚至是数百万周期的高速效能。


4. 资料处理与控制的统一:今日的系统不会只由实体线路所组成,少不了一个用来执行软体功能的处理器;将RTL式的功能移到处理器中,可以免除以人工来分离「控制」与「资料处理」的困扰。


5. 快速上市:将关键性的功能从RTL移到Configurable processor上,可以简化SoC的设计、加速系统模型和缩短硬体设计的终结时间。韧体式的状态控制器很容易就可以因应改变而调整性能至符合标准,这就是没有把实行细节放在硬体上的好处。


6. 提升设计者的生产力:这也是最重要的一点,在此作法下,设计团队的生产力会因对RTL发展与验证人力的减少而大幅增加。一个处理器式的SoC设计步骤也可以降低因实体逻辑上的错误导致的失败风险;即使发现错误,此设计仍然允许修改补强。


关键优势:硬体与软体的自动化产生

为何Configurable processor还没有被广泛的接受?直到最近,要设计一个容易被修改的处理器还是很难做到。最早的configurable处理器是在90年代中期被提出,但回顾当时的瓶颈是:一旦有新的指令被加到这个处理器上头时,没有任何自动化的方法可以确定软体开发工具能使用这些指令。因此使用Configurable processor的厂商所能做的事相当有限,他们仅能使用基本的组态配置;如果要增加指令,他们就得自行适度地修改软体开发工具。


在1999年初,Tensilica发表它的第一款Xtensa处理器,并同时发表一个突破性的发明──自动化硬体与软体产生器(Generator),设计者可以应用网路浏览器来定义所需要的组态选项。 Xtensa处理器的产生器可以产生经验证的硬体,也能提供各种版本的客制化软体开发工具:涵盖了编译器、除错器、指令集模拟器等等。这些软体工具能完善地符合组态设定,而且不需要为了工具与处理器的可操作性而做多余的工作。


以软体开发程序来使用Configurable Processor

现在来看看目前的软体开发程序是如何被用来发展嵌入式的应用。 (图四)是一个典型的嵌入式应用软体的开发流程图,设计工作是从演算法(algorithm)开始,而非处理器本身。应用开发者通常采用高阶的设计工具或语言(如C 或 C++)开始工作,他们也可能会添购已用这些语言开发好的演算套件。高阶程式语言及其他型式的开发套件让开发者能够创造、测试及确认最初的演算想法,甚至是一些独立性的小演算,或次级演算(sub-algorithms),而此一工具的使用是在和特定处理器架构分开的状况也能达成的。


《图四 典型的嵌入式软件开发程序》
《图四 典型的嵌入式软件开发程序》

接下来,开发者将主演算及次演算转为C语言,以创造一个可携式(portable)、独立于处理器的应用程式码。再由PC或工作站来执行C语言模拟,以证实此一程式码化的演算法可如同预期被操作。在将次演算及其他应用软体模组整合为一个协调的整体后,整个程式(已用C或C++写成)再依处理器的设计目标而重编译,并对产生的应用程式码进行测试及获得数据。


如果开发团队非常幸运,所编译的演算程式码能以预期的速度来执行;然而,要符合fixed-ISA处理器专案的效能要求,应用软体团队往往得将程式码的关键部分转换成手动调整( hand-tuned)的组合程式码。软体开发团队一般都得试着用手动方式让组合程式码更符合需求的处理器,否则,这个处理器专案可能因对所需的嵌入式应用来说太贵、太快或太耗电,而得终止设计。组合程式码开发者必须小心地让变数(variables)和可用的暂存器相吻合,因为若已存在的多组暂存器确定不适用,就没有办法再增加暂存器到一个fixed-ISA processor中。


让演算设计达到处理器需求

Configurable processor允许嵌入式系统开发者创造为演算目标而特别客制的处理器,也就是能生产出更符合处理器需求的演算设计。设计者可以增加特殊目的、可变宽度(variable-width)的暂存器,以及专门的执行单元;为了?成特殊演算的最佳化处理器组态,也可以提升资料汇流排的频宽。这些特性让设计者能够依演​​算需求而塑造处理器的性能,而非将处理器所无法负荷的演算能力强行加在这颗处理器上头。在使用可配置组态(configurable)、可延伸的处理器来取代现成的、fixed-ISA微处理器或DSP的情况下,设计者能更快速的开发符合各项效能要求的应用系统。


与手动修改组合语言相比之下,可配置组态、可延伸处理器透过程式码描述(code profiling)来达成最佳化要求的优势是很明显的。最佳化的目标一般都是软体程式极为内部的一些运算回路(loop),这些回路的工作量极大,每秒得执行数千、甚至数百万次的运算。如果能简化这些回路程式码的指令数,对于系统的效能将有极大的好处。以下就是一个实际的应用案例。


@小標:以Configurable processor加速Viterbi Code设计


Viterbi解码来自于GSM手机技术,GSM采用Viterbi解码来从嘈杂的通讯频道中取得资讯符码,这种解码方式应用了包含八个逻辑算式(四个加法、二个对照、二个选择)的" Viterbi butterfly"运算,而每个接收到的数位资讯流中的符码(symbol),是由八个Viterbi butterfly运算来加以解码。


一般来说,RISC处理器需要50到80次指令周期(instruction cycles)来执行一个Viterbi butterfly,一个高阶的VLIW DSP (TI's 320C64xx)只需要1.75周期就可计算一个Viterbi butterfly。 TIE (Tensilica Instruction Extension)语言则让设计者可以在Xtensa processor的ISA上增加Viterbi butterfly指令,此一设计使用了处理器的可组态128-bit I/O bus,一次就可以接收八个符码,它也增加了导线硬体,如(图五),结果是butterfly的平均执行时间只要0.16次周期。


《图五 Viterbi butterfly放大功能设计参考》
《图五 Viterbi butterfly放大功能设计参考》

结论

由以上的介绍中,我们知道要加速嵌入式演算的效率,使用可配置组态、可延展的微处理器核心来创造为特定演算而客制化的处理器是可行的,它可以取代组合语言的编码,以及RTL的硬体设计。使用可延展式处理器的好处在于:它让设计者能精确的增加特定目的暂存器、执行单元和宽频资料汇流排等资源,以达成要求的演算效能;设计者因此不用再伤脑筋于如何把演算需求强塞到fixed-ISA的运算资源中。


这种设计方式并不要求设计团队的成员都成为处理器设计师,它只要求设计团队能够描述现存的演算程式码,并发现其中的关键性内部回路,接着是定义为加速这些关键性回路所需的新处理器指令。前两项工作本来就已在做,只有最后这项工作和现存的许多嵌入式系统开发者的软体开发程序有所不同。


新的设计方式大大地加速了演算效能,它往往能大幅超越今日最先进的fixed-ISA微处理器和DSP核心。在多数的案例中,设计者能够用Configurable processor来完全取代RTL设计,以缩短可观的设计及验证时间;由于这种设计方式特有的可程式(programmability)优势,也让整个设计案能发挥更大的弹性。


(作者任职于Tensilica公司)


相关文章
2007年亚洲媒体团矽谷采访特别报导(上)
掌握多媒体消费电子新商机
对的合作伙伴是事半功倍的快捷方式
挑战更简易迅速的可配置处理器设计文章
Configurable Processor掀起SoC设计新浪潮
comments powered by Disqus
相关讨论
  相关新闻
» IDC:2027年全球车用半导体市场营收将突破85亿美元
» 恩智浦S32N55处理器 实现车辆中央实时控制的超级整合技术
» 慧荣推出高速高容量可携式SSD单晶片控制器 满足智慧装置和游戏机需求
» 艾迈斯欧司朗高功率植物照明LED 大幅提升输出功率并节约成本
» 整合三大核心技术 联发科技持续专注车用、AI、ASIC等领域


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

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