账号:
密码:
最新动态
产业快讯
CTIMES / 文章 /
高速可设定式DSP技术
 

【作者: 誠君】2004年12月04日 星期六

浏览人次:【4734】

消费性产品与通讯产品,基本上都要能支持高运算量和数据转换(transformation)的功能。例如:视讯影像的编码与译码、声音的压缩与解压缩,或者影像数据的处理及压缩、语音的播放以及通讯频道的编译码等应用。


这些产品对体积大小和耗电量的要求很严格,而且要求能针对特定的规格提供最佳的支持。而所谓特定的规格就是指产品的应用功能。例如:手提式视讯装置需要低功率和低成本,但影像质量并不高;不过,视讯广播市场所需要的视讯产品,则必须是高画质的,且其运算处理效能一定要高。


此外,目前许多产品都必须同时支持多种应用项目,或必须支持具有多种格式(format)的单一应用。譬如:只支持MPEG2的视讯产品,将必须同时支持MPEG4、H26L、MSWM和其它视讯标准;而WLAN通讯装置除了要支持802.11的不同版本标准以外,有时还得支持其它的无线电标准。


而数字信号处理器(digital signal processing;DSP),就是这些产品最核心的部份,负责处理那些需要大量运算的数据。为了有效地支持这些产品的需求和应用,DSP应该是可程序化的(programmable)、可设定的(configurable/reconfigurable)和可扩充的(scalable)。高速的可设定式DSP因此应运而生,它非常适合应用在需要高效能、低功率且可以弹性设计的消费性产品和通讯产品上。


高速可设定式DSP的设计目的,简单说,就是要在单一的系统级单芯片(SoC)架构下,支持许多种应用和需求,而且用户可以利用高级语言来开发。为了能尽早完成产品的开发工作,使产品能提早上市,这种新技术将是无法抵挡的趋势。


必须了解的定义

有几个定义必须先了解。首先,所谓「可程序化」,是指它可以处理指令,而不是指执行固定的函式(function)。对DSP而言,指令可以来自于高级语言(C、Java、C++)的编译程序(compiler),也可以经由手写程序(汇编语言)产生。这有别于传统的DSP功能,因为可设定式DSP具有类似中央处理器(CPU)的功能。其实,正如DSP的原名──「数字信号处理器」,它本来就应该是一种处理器;只不过,传统的DSP并没有将CPU核心纳入架构中,因此,「DSP只能执行固定的函式」就变成了一种刻板印象。


所谓可设定式,是指可以使用一种或数种方法,将可设定式DSP修改成客户想要的应用功能。不过,这些修改必须在它变成硅晶之前,就得完成。


而可扩充性,是指它可以增加或缩减功能,来支持不同种类的应用需求。在大多数的情况下,是专指增加功能而言,这可以使它拥有数颗传统DSP的功能。


基本特性

可设定式DSP最明显的特性,就是能动态地执行优化作业。它以下列三种方式来强化运算效能。


扩充或缩小

藉由增加或减少DSP处理器里的可用资源,同一种应用就可以具有不同等级的运算效能。可扩充性可以藉由增加单一DSP的资源,或者使用数个DSP核心来达成。不过,为了能完善地利用这些新增的资源,以提高运算效能,还需要一个功能强大的编译程序来配合才行。如果没有这种编译程序的协助,则可设定式DSP只会使应用产品的开发时程增长而已。


位置与混合

藉由改变资源的组成结构(在不增加额外的资源之情况下),可设定式DSP可以依照不同的应用需求,提供不同等级的效能。例如,缓存器的位置(必须防止它的数据爆满溢出)会直接影响到程序运算循环的效能。同样地,功能强大的编译程序在这里也扮演着举足轻重的角色。


自定义指令(custom instruction)

每一种应用都具有一些特殊的运算作业(数学的、工程的或其它),但并不是全部都适合DSP去执行。因此,实际上,单一的DSP不可能包含所有的指令或运算函式。而且,DSP厂商也无法事先就完全知道,所有客户需要的全部运算函式和指令。所以,为了提供弹性设计的方便性,可设定式DSP允许用户可以将自己设计的指令置入此DSP中,以满足客户的需求。


除了提高运算效能以外,可设定式DSP还必须支持功率和体积(成本)的优化。因为效能、功率、体积三者是技术产品成败的关键,所以可设定式DSP必须在指定的效能等级中,以程序求出最合适的耗电功率和体积大小。


可设定式DSP可以用比较少的频率周期和逻辑电路,得到与传统DSP同等级的效能,这是靠自定义指令来完成的。在可程序化方面,此种DSP具有下列两个重要的功能。


指令的执行

和一般的处理器一样,可设定式DSP读取和执行指令串流或目标码(object code),以实现特定的应用功能。这些功能包含支持多重标准或多重格式,甚至包括未知的新功能,或数目更多的格式。藉由撰写和执行新的指令,它就可以支持许多种不同的应用功能,这是传统DSP望尘莫及的。


高级语言

使用高级语言(C与Java)来设计处理器的程序,具有右列的几个优点:程序设计者的生产力会提高(因为容易撰写和验证)、设计弹性高(因为容易变更)及维护性高(因为容易除错和修改)。这些优点是低级语言(汇编语言)所没有的。如果不使用高级语言来开发,则徒具可程序化功能的DSP就没有价值了。不过,高级语言所带来的便利性,其实是源自于高效率的编译程序与优化程序(optimizer)。


基本单元

平行执行单元(parallel execution unit)是可以视需要做增减调整的;也可以结合数个可设定式DSP核心,形成数组的架构一起工作。高速的可设定式DSP是「极长指令字组(Very Long Instruction Word;VLIW)」的可程序化处理器。VLIW DSP的指令周期是很惊人的,例如:TI于2004年2月推出的TMS320C64x DSP核心的时钟速率最高可达1GHz。


需要经过数字讯号处理的应用,其带宽需求是非常高的。例如:简单的16与32位的数据转换,就需要进行数百次的乘加运算,再结合大量的数据流处理,因此,需要一个非常有效率的运算平台才行。


另一种可以使指令周期加快的方法,就是尽可能同时执行许多个运算作业。VLIW处理器的功能正可以达到这个目的。因为每一个指令字组(instruction word)包含了许多个时槽(time slot),因此编译程序可以在每一个周期内,指定许多个动作,而且在每一个时槽里,执行个别的动作。其结果是,VLIW处理器就可以在一个周期内,完成数个运算作业。VLIW处理器特别适合应用于数字讯号处理工作,因为DSP的工作都是规律而重复的,几乎不需要句柄。


高速可设定式DSP具有数个类似「算数逻辑单元(ALU)」的结构,称作「计算单元(Computational Unit;CU)」,它们前后串接,并藉由「指令时槽(instruction slot)」控制每一个CU。当两个CU共享一个指令时槽时,就发生了「重迭」现象,此时不能进行「同时作业」。不过,高速可设定式DSP允许CU混合不同的指令,并利用指令时槽,决定每一个周期内的指令型态与数量。


在VLIW架构中,指令字组包含了许多个时槽,每一个时槽各控制一个运算作业。因此,藉由改变时槽或CU的数量,就可以增加或减少每周期所执行的运算数量。当增加CU后,会使可用的混合资源改变,好让编译程序能对并行操作(parallel operation)做出最好的排序(schedule)。「可设定式」之名就来自于此。


典型的CU包含:算术运算单元、乘加单元(MAC)、位移单元、计数器和其它指令处理指元。数据路径(data path)大小一般是16或32位,或两者兼具;采固点或浮点运算。大部份的CU还支持「单指令多数据(Single Instruction Multiple Data;SIMD)」运算功能,可以处理字节(byte)或半字组(half word)的数据,例如将平面空间的圆转换成3D空间的圆(由多个三角形构成)。


同样的,记忆接口单元(Memory Interface Unit;MIU)也被指令时槽组织起来,并透过指令时槽决定读取的时机。MIU支持数据存取和地址(address)生成。高速可设定式DSP支持16或32位的地址空间(address space)。因为MIU和CU一样,都受指令时槽的控制,因此可以藉由改变时槽的数目,来变更可用的MIU数量。


和传统处理器不同的是,可设定式DSP的缓存器(register)分散于各地,它不使用集中式的单一「临时文件(register file)」来管理。这会使得运算结果的位置,比较靠近产生此结果的地方和应用此结果的地方。同时,这也让编译程序能更灵活地将数据配置到储存的位置。这观念类似RAM的随机存取动作。


「数据通讯区块(data communication block)」可以让数据在不同的储存地址之间移动,以及输入到CU里。它包含了数个具有多任务(MUX)功能的总线,并且受编译程序的控制。(图一)是高速可设定式DSP的简易架构。



《图一 高速可设定式DSP的简易架构》
《图一 高速可设定式DSP的简易架构》

编译程序

就大多数的应用而言,除了要追求快速的运算能力以外,要如何才能有效地储存暂时性的数据,也是一个令人头痛的难题。可设定式DSP可以在不同位置新增、移除,甚至重组数据和地址缓存器,这可以让编译程序充份地利用暂时性的储存资源(譬如RAM、缓存器)。


因为高速可设定式DSP是属于VLIW架构,它允许加入自定义的CU。这种CU称作「设计者定义的计算单元(Designer Defined Computational Unit;DDCU)」,包括自定义的指令,并可以加到编译程序的可用字汇里去,成为程序语言的一部份。


不过,弹性、平行运算与可设定性,是以高成本构筑而成的。这除了硬件的成本以外,另一个成本就是编译程序的成本。编译程序负责将高阶程序代码转译成指令,并传送给可设定式DSP执行,这个复杂的过程就是成本所在。


这种编译程序必须是VLIW优化编译程序,可以将连续的C程序代码转换成VLIW指令;并尽可能在每一个周期内,执行最多的运算作业。它能察觉可设定式DSP的设定变更(新增或删除),甚至能将用户自定义的DDCU,转译成相对应的指令。


此编译程序能针对指定的应用类别和DSP核心之不同,将C程序代码映像(map)成相对应的目标码。这个映像作用是全局的(global),且包括许多优化和转换作业,其目的就是要使源代码能和DSP更加适配。


因为DSP在每一个工作周期内,能执行的工作量是已知的,所以编译程序的任务就是要在每一个周期内,尽可能将最多的有用工作量赋予DSP。不过有时候,部份应用程序并无法妥善地被映像到DSP上,这时编译程序会产生讯息,指出那些尚待改善的地方。这些讯息包含:


  • ●消耗过多运算周期的程序代码:有一部份的程序代码会消耗掉很多的运算周期(动态地),因此必须多加注意;


  • ●利用率偏低的程序代码:有一部份的程序代码会使编译程序无法妥善利用DSP;


  • ●没有善加利用资源:有些DSP资源未被充份利用;有些则是多余的;有些资源可以利用其它方式进行重整,以获得平行运算的最大效益,或节省更多的空间和时间;


  • ●缺乏资源:如果能增加资源(如缓存器、指令等),就可以提高应用程序的效能。



利用上述的编译结果和描述,用户可以针对程序代码和组态进行修改。程序的修改可能包括:简单回路的重写、改变数据型态、或改变语法,这些可能使编译程序的作业更加简单和明确。此外,用户也可以改变可设定式DSP的组态,藉由增加或移除资源,或以许多种不同的方式重组资源,或可以添加能提高应用程序执行效率的自定义指令。


产品开发流程

使用可设定式DSP来开发产品时,如果不采用一套完整的开发流程来遵循的话,则可设定的、可扩充的目标可能就很难达到。此流程见(图二)。


在图二中,进行数字讯号处理的应用程序可以说是主角。它以C或Java等高级语言写成,并在主机上经过验证与测试。除了要完成功能性验证以外,效能、成本、体积、耗电量也都要做取舍和折衷,以达到最完善的境界。


应用和最终产品的不同,也就是开发流程的起点,也可能会对开发的目标产生影响。例如:手提式装置需要低功率,但是它的应用程序需要500~1000 MIPS的处理速率,在这种情况下,就要以平行处理能力较差、具单一DSP核心的处理器为开发目标。但若是广播视讯应用程序要实现高分辨率的画面,那就要以高阶、具两个DSP核心的处理器为开发目标。


《图二 可设定式DSP的开发流程》
《图二 可设定式DSP的开发流程》

结语

「软硬件同时开发」是加速SoC设计的重要方法,同样也是应用高速可设定式DSP开发新产品时,必须采用的方法。OEM/ODM厂商在时间和成本的压力下,最后势必会采用这种新技术。不过,若大多数厂商都使用同一款DSP处理器来开发产品,很可能无法形成产品的市场区隔,再次陷入削价竞争的窘境。


延 伸 阅 读
随着手机与消费性电子产品对影音等数字讯号的产品需求不断提升, DSP 可说成为继 DRAM 和微处理器之后,带动半导体产业成长的主力产品;本文将深入剖析 DSP 在应用、技术与市场等不同面向的发展趋势,为读者介绍此一在数字影音多媒体时代独领风骚的 IC 世界超级巨星。相关介绍请见「影音多媒体时代的超级巨星──DSP」一文。
传统的系统级单芯片皆属于单内核架构,是由处理器、记忆单元、通讯以及输出入( I/O )控制单元构成。这种架构不仅占空间且成本高,现在已开发出含有数字讯号处理( DSP )、精简指令集( RISC )处理器和可程序逻辑( PLC )的 SoC 架构的多内核 DSP 已经逐渐取代传统的单内核 DSP 成为主流趋势。你可在「SoC时代DSP设计之挑战」一文中得到进一步的介绍。
在全球半导体产业复苏缓慢和通讯等主要应用市场需求低迷的影响下, 2002 年全球 DSP 市场成长缓慢,仍处于 2001 年严重衰退之后的恢复期。但是随着 DSP 产品向高效能、低功耗、高整合度等方向发展,其应用领域逐步拓展,市场规模日益广阔。本文将简述大陆 2002 年市场概况与未来展望。在「2002年大陆DSP市场概况」一文为你做了相关的评析。
相关文章
AI Everywhere势不可挡 信任运算架构将成关键
神经处理/运算为边缘带来实时决策
嵌入式应用渐趋多元 浮点运算MCU满足市场不同需求
高性能DSP与深度学习语库是智慧语音开发关键
类比、数位还是混合型电源:何时为电源增加智慧功能才有意义
comments powered by Disqus
相关讨论
  相关新闻
» ST协助实现AIoT万物联网 遍布智慧化各领域应用
» 工研院携手联发科开创「边缘AI智慧工厂」 创新整合平台降低功耗50%
» 制造业Q1产值4.56%终结负成长 面板及汽车零组件制造创新高
» 晶创台湾办公室揭牌 打造台湾次世代科技国力
» 工研院突破3D先进封装量测成果 获德律、研创资本、新纤注资共创欧美科技


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

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