日月乾坤表达什么:IC设计--应用处理器

来源:百度文库 编辑:偶看新闻 时间:2024/04/30 02:02:55
DSP是什么
作者:电子科技大学DSP实验室    文章来源:DSP watch    点击数: 1343    更新时间:2005-3-28
信息化的基础是数字化。
数字化的核心技术之一是数字信号处理。
数字信号处理的任务在很大程度上需要由DSP器件来完成。
DSP技术已成为人们日益关注的并得到迅速发展的前沿技术。
DSP是一种快速强大的微处理器,独特之处在于它能即时处理资料,正是这项即时能力使得DSP最适合支援无法容忍任何延迟的应用。举例来说,您是否曾使用过一种不允许双方同时说话的手机?您必须等到对方把话说完后,您才能接着说;如果您们两个人同时讲话,讯号就会被切断,使您听不到对方声音。今日的数位手机则允许您以正常方式交谈,因为它采用了DSP。
行动电话内的DSP能以超高速度处理语音,使您能即时听到对方的说话,完全感受不到任何延迟。再以相同应用为例,早期的行动电话常会出现回音,但数位行动电话却能将回音和通话停顿的现象完全消除。DSP会以声音之类的真实世界讯号为目标,透过数学运算改变它的特性,以便得到更佳音质;DSP还能压缩资料(您的声音),消除背景杂讯,使您的声音能以更高速率传送,进而提供清彻无比的通话品质,没有恼人的回声。
这是DSP用途的最简单解释。要改善讯号,您需要数位讯号,然后对它进行处理,结果可能是更清晰的声音、更锐利的画面或是更快速的资料;而这项讯号加强能力也带来突破性的新应用,例如网路音乐和家庭宽频都因此得以实现。
Digital Signal Processing 数字信号处理
作为一个案例研究,我们来考虑数字领域里最通常的功能:滤波。简单地说,滤波就是对信号进行处理,以改善其特性。例如,滤波可以从信号里清除噪声或静电干扰,从而改善其信噪比。为什么要用微处理器,而不是模拟器件来对信号做滤波呢?我们来看看其优越性:
模拟滤波器(或者更一般地说,模拟电路)的性能要取决于温度等环境因素。而数字滤波器则基本上不受环境的影响。
数字滤波易于在非常小的宽容度内进行复制,因为其性能并不取决于性能已偏离正常值的器件的组合。
一个模拟滤波器一旦制造出来,其特性(例如通带频率范围)是不容易改变的。使用微处理器来实现数字滤波器,就可以通过对其重新编程来改变滤波的特性。
信号处理方式的比较
比较因素
模拟方式
数字方式
修改设计的灵活性
修改硬件设计,或调整硬件参数
改变软件设置
精度
元器件精度
A/D的位数和计算机字长,算法
可靠性和可重复性
受环境温度、湿度、噪声、电磁场等的干扰和影响大
不受这些因素的影响
大规模集成
尽管已有一些模拟集成电路,但品种较少、集成度不高、价格较高
DSP器件体积小、功能强、功耗小、一致性好、使用方便、性能/价格比高
实时性
除开电路引入的延时外,处理是实时的
由计算机的处理速度决定
高频信号的处理
可以处理包括微波毫米波乃至光波信号
按照奈准则的要求,受S/H、A/D和处理速度的限制
Digital Signal Processor 数字信号处理器
微处理器(Microprocessor)的分类
通用处理器(GPP)
采用冯.诺依曼结构,程序和数据的存储空间合二而一
8-bit Apple(6502),NEC PC-8000(Z80)
8086/286/386/486/Pentium/Pentium II/ Pentium III
PowerPc 64-bit CPU(SUN Sparc,DEC Alpha, HP)
CISC 复杂指令计算机, RISC 精简指令计算机
采取各种方法提高计算速度,提高时钟频率,高速总线,多级Cashe,协处理器等
Single Chip Computer/ Micro Controller Unit(MCU)
除开通用CPU所具有的ALU和CU,还有存储器(RAM/ROM)寄存器,时钟,计数器,定时器,串/并口,有的还有A/D,D/A
INTEL MCS/48/51/96(98)
MOTOROLA HCS05/011
DSP
采用哈佛结构,程序和数据分开存储
采用一系列措施保证数字信号的处理速度,如对FFT的专门优化
MCU与DSP的简单比较
MCU
DSP
低档
高档
低档
高档
指令周期(ns)
600
40
50
5
乘加时间(ns)
1900
80
50
5
US$/MIPS
1.5
0.5
0.15
0.1
DSP处理器与通用处理器的比较
考虑一个数字信号处理的实例,比如有限冲击响应滤波器(FIR)。用数学语言来说,FIR滤波器是做一系列的点积。取一个输入量和一个序数向量,在系数和输入样本的滑动窗口间作乘法,然后将所有的乘积加起来,形成一个输出样本。
类似的运算在数字信号处理过程中大量地重复发生,使得为此设计的器件必须提供专门的支持,促成了了DSP器件与通用处理器(GPP)的分流:
1 对密集的乘法运算的支持
GPP不是设计来做密集乘法任务的,即使是一些现代的GPP,也要求多个指令周期来做一次乘法。而DSP处理器使用专门的硬件来实现单周期乘法。DSP处理器还增加了累加器寄存器来处理多个乘积的和。累加器寄存器通常比其他寄存器宽,增加称为结果bits的额外bits来避免溢出。
同时,为了充分体现专门的乘法-累加硬件的好处,几乎所有的DSP的指令集都包含有显式的MAC指令。
2 存储器结构
传统上,GPP使用冯.诺依曼存储器结构。这种结构中,只有一个存储器空间通过一组总线(一个地址总线和一个数据总线)连接到处理器核。通常,做一次乘法会发生4次存储器访问,用掉至少四个指令周期。
大多数DSP采用了哈佛结构,将存储器空间划分成两个,分别存储程序和数据。它们有两组总线连接到处理器核,允许同时对它们进行访问。这种安排将处理器存贮器的带宽加倍,更重要的是同时为处理器核提供数据与指令。在这种布局下,DSP得以实现单周期的MAC指令。
还有一个问题,即现在典型的高性能GPP实际上已包含两个片内高速缓存,一个是数据,一个是指令,它们直接连接到处理器核,以加快运行时的访问速度。从物理上说,这种片内的双存储器和总线的结构几乎与哈佛结构的一样了。然而从逻辑上说,两者还是有重要的区别。
GPP使用控制逻辑来决定哪些数据和指令字存储在片内的高速缓存里,其程序员并不加以指定(也可能根本不知道)。与此相反,DSP使用多个片内存储器和多组总线来保证每个指令周期内存储器的多次访问。在使用DSP时,程序员要明确地控制哪些数据和指令要存储在片内存储器中。程序员在写程序时,必须保证处理器能够有效地使用其双总线。
此外,DSP处理器几乎都不具备数据高速缓存。这是因为DSP的典型数据是数据流。也就是说,DSP处理器对每个数据样本做计算后,就丢弃了,几乎不再重复使用。
3 零开销循环
如果了解到DSP算法的一个共同的特点,即大多数的处理时间是花在执行较小的循环上,也就容易理解,为什么大多数的DSP都有专门的硬件,用于零开销循环。所谓零开销循环是指处理器在执行循环时,不用花时间去检查循环计数器的值、条件转移到循环的顶部、将循环计数器减1。
与此相反,GPP的循环使用软件来实现。某些高性能的GPP使用转移预报硬件,几乎达到与硬件支持的零开销循环同样的效果。
4 定点计算
大多数DSP使用定点计算,而不是使用浮点。虽然DSP的应用必须十分注意数字的精确,用浮点来做应该容易的多,但是对DSP来说,廉价也是非常重要的。定点机器比起相应的浮点机器来要便宜(而且更快)。为了不使用浮点机器而又保证数字的准确,DSP处理器在指令集和硬件方面都支持饱和计算、舍入和移位。
5 专门的寻址方式
DSP处理器往往都支持专门的寻址模式,它们对通常的信号处理操作和算法是很有用的。例如,模块(循环)寻址(对实现数字滤波器延时线很有用)、位倒序寻址(对FFT很有用)。这些非常专门的寻址模式在GPP中是不常使用的,只有用软件来实现。
6 执行时间的预测
大多数的DSP应用(如蜂窝电话和调制解调器)都是严格的实时应用,所有的处理必须在指定的时间内完成。这就要求程序员准确地确定每个样本需要多少处理时间,或者,至少要知道,在最坏的情况下,需要多少时间。
如果打算用低成本的GPP去完成实时信号处理的任务,执行时间的预测大概不会成为什么问题,应为低成本GPP具有相对直接的结构,比较容易预测执行时间。然而,大多数实时DSP应用所要求的处理能力是低成本GPP所不能提供的。
这时候,DSP对高性能GPP的优势在于,即便是使用了高速缓存的DSP,哪些指令会放进去也是由程序员(而不是处理器)来决定的,因此很容易判断指令是从高速缓存还是从存储器中读取。DSP一般不使用动态特性,如转移预测和推理执行等。因此,由一段给定的代码来预测所要求的执行时间是完全直截了当的。从而使程序员得以确定芯片的性能限制。
7 定点DSP指令集
定点DSP指令集是按两个目标来设计的:
使处理器能够在每个指令周期内完成多个操作,从而提高每个指令周期的计算效率。
将存贮DSP程序的存储器空间减到最小(由于存储器对整个系统的成本影响甚大,该问题在对成本敏感的DSP应用中尤为重要)。
为了实现这些目标,DSP处理器的指令集通常都允许程序员在一个指令内说明若干个并行的操作。例如,在一条指令包含了MAC操作,即同时的一个或两个数据移动。在典型的例子里,一条指令就包含了计算FIR滤波器的一节所需要的所有操作。这种高效率付出的代价是,其指令集既不直观,也不容易使用(与GPP的指令集相比)。
GPP的程序通常并不在意处理器的指令集是否容易使用,因为他们一般使用象C或C++等高级语言。而对于DSP的程序员来说,不幸的是主要的DSP应用程序都是用汇编语言写的(至少部分是汇编语言优化的)。这里有两个理由:首先,大多数广泛使用的高级语言,例如C,并不适合于描述典型的DSP算法。其次,DSP结构的复杂性,如多存储器空间、多总线、不规则的指令集、高度专门化的硬件等,使得难于为其编写高效率的编译器。
即便用编译器将C源代码编译成为DSP的汇编代码,优化的任务仍然很重。典型的DSP应用都具有大量计算的要求,并有严格的开销限制,使得程序的优化必不可少(至少是对程序的最关键部分)。因此,考虑选用DSP的一个关键因素是,是否存在足够的能够较好地适应DSP处理器指令集的程序员。
8 开发工具的要求
因为DSP应用要求高度优化的代码,大多数DSP厂商都提供一些开发工具,以帮助程序员完成其优化工作。例如,大多数厂商都提供处理器的仿真工具,以准确地仿真每个指令周期内处理器的活动。无论对于确保实时操作还是代码的优化,这些都是很有用的工具。
GPP厂商通常并不提供这样的工具,主要是因为GPP程序员通常并不需要详细到这一层的信息。GPP缺乏精确到指令周期的仿真工具,是DSP应用开发者所面临的的大问题:由于几乎不可能预测高性能GPP对于给定任务所需要的周期数,从而无法说明如何去改善代码的性能。
韩IC企业下半年加速高附加值产品转换
2007-09-06 14:20  文章来源:中电网
文章类型:转载  内容分类:新闻
三星电子、海力士半导体、东部HiTek在下半年将扩大高附加价值产品的比重,从而抢占未来市场和确保收益率。
韩国半导体企业的这种策略来自于今年上半年通用半导体产品的价格下落引起的收益率下降,因此他们需要通过需求的多角度化来谋求更加稳定的事业模型。
对于Premium级DRAM的生产比重,三星电子半导体计划从上半年的25%扩大到下半年的50%以上。此外,三星电子还加强了最近需求增多的OneNAND和moviNAND、movi MCP等新概念半导体的市场营销。
针对50纳米级超微细工程的8Gb以上大容量NAND Flash,三星电子还计划将其生产比重从目前的10%左右提高到年底的30%以上。
海力士半导体在今年下半年将通过加强最小型、低功率、超高速Mobile DRAM事业,计划在年底将Mobile DRAM市场占有率提高到去年的2倍以上。该公司正在考虑在今年年末或明年初将采用66纳米工程的世界最小型1Gb Mobile DRAM投入量产,并且将在明年第二季度推出1.2GHz以上速度的GDDR4 DRAM。
此外,重新进军游戏市场的海力士半导体从下半年开始计划通过扩大生产量来加强下一代游戏机市场的攻占。
与此同时,海力士又瞄准了车用导航市场,计划开发和量产能承受零下40摄氏度低温和零上80摄氏度高温的Premium级Consumer DRAM,从而实现市场的多角度化。尤其是对于车用半导体,通过与芯片组厂商进行共同研发,从产品开发阶段开始以密切的客户管理来提高市场占有率。
东部HiTek半导体部门也最大限度地减少附加价值相对较低的海外大型交易处的供应量,而全力保住附加价值高的韩国Fabless厂商,从而确保效率性和收益率的最大化。为此,东部HiTek通过对资本、人力不足的韩国Fabless厂商进行股份投资,确保稳定的产品供应线。
该公司去年年底与DDI芯片企业TOMATO LSI签署了战略合作,而7月又与CIS企业首尔电子通信达成了战略合作关系。此外,从下半年开始计划大幅度加强利润空间大的高压半导体制造事业。
与此同时,东部HiTek还计划从下半年开始正式启动一元化服务来扩大附加价值。该服务可以一次性支持设计、测试、打包、模块制作等产品生产中所需的所有服务。
东部HiTek研发出130纳米级电源管理程序库  作者:未知    文章来源:韩联社    更新日期:2007-7-19
韩联社首尔7月19日电 东部(Dongbu)HiTek半导体部门19日表示,与英国的半导体知识产权企业——ARM公司共同研发了130纳米级电源管理(Power-Management)程序库。程序库是指将半导体设计所必需的程序集中在一起的数据库。此次研发的程序库最大限度地降低了电子产品在待机状态下的电力消耗量,具有电池耗电最小化的特征。该程序库的研发主要用于手机、MP3播放器、便携式多媒体播放器(PMP)等低耗电移动电子产品的设计。
IC设计转攻应用处理器
技术分类:微处理器与DSP  | 2007-07-20
来源:中国电子报
手机多媒体功能年年翻新,从几年前的和弦音、摄像头,再到这两年的MP3和MP4。而今年,多数厂家认为与大屏幕显示有关的多媒体应用将成为主流趋势。随着技术发展,许多多媒体功能,如视频下载、视频分享、电子商务、Java游戏将越来越普及。由于手机多媒体功能种类繁多,发展变化速度极快,手机设计者希望采用功能可以扩展,能够保护原有投资的设计方案,这使得基带+应用处理器解决方案受到青睐。而专攻多媒体技术的本土芯片设计企业也纷纷瞄准应用处理器产品,陆续推出整套方案。
手机设计企业寻求可拓展方案
目前,手机多媒体功能在硬件上实现方式有三:一是基带+协处理器,这种设计方式虽然被大量采用,但由于方案集成度不高,功能又不可扩展,故其发展不被看好;二是整合型芯片,它是基带芯片集成了一些特定的多媒体功能,形成单芯片解决方案,MTK、Infineon就推出了这样的方案,它集成度高,成本低,是多媒体手机设计的发展趋势之一;三是基带+应用处理器,与协处理器不同的是,应用处理器既可以实现多媒体功能,如播放MP3,还可以跑控制软件,而协处理器只能实现某种多媒体功能,如播放MP3和MP4,控制软件要由基带运
行。
基带+应用处理器的设计方式与整合型芯片一样,被业界看好。虽然现在采用这种设计方式的产品没有采用其他两种方式的多,但其增长率是几种方式中最快的。深圳安凯副总裁杨翠军分析其中的原因时说,对比整合型基带,基带+应用处理器有几大优势:一是采用此种设计方式,可以兼容2G、3G,甚至4G,系统可扩展性高,客户的投资可以得到保护。例如,客户由GSM升级为WCDMA,只要更换基带芯片就可以了,基本的应用软件不需要很大的调整。二是设计上灵活,设计工作相对来说也要简单些,手机客户的设计周期可以缩短。三是成本有比整合型芯片更低的可能性。因为在整合型产品中,射频(RF)部分目前很难采用65nm这样的先进制造工艺,而基带+应用处理器的方式,RF可以采用0.13μm或0.18μm这些成熟的制造工艺,而应用处理器可以采用65nm这样的先进工艺,这样,整套方案的成本可以控制得更低。
智多微电子首席运营官于晓光也表示,目前高消费群体越来越多,而采用基带+应用处理器方式设计的手机一般是比较高端一点的产品,这样,会有越来越多的人能够购买得起这样的产品;而且,采用这种方式设计的产品,成本也越来越接近另外两种方式设计的产品。而它最大的优势,是将来的适用性,就像
智能手机一样,它可以带来延伸性,终端客户可以从网络上下载很多应用来扩展手机的功能。
而手机设计公司龙旗控股一位技术总监介绍说,虽然像MTK这样的整合型芯片本身集成了一些传统的多媒体功能,如MP3,但它并不支持市场上后续出现的新多媒体应用,而应用处理器的主频比较高,可以处理Windows Mobile上的应用,例如通过加载Java虚拟机,可以从网络上下载游戏,可以上MSN、QQ,实现IP电话,这是MTK芯片所不能支持的,因此,采用应用处理器,会拓宽很多网络应用。他介绍说,今年年底或明年初,市场上会出现大量采用应用处理器产品的手机。
本土企业瞄准应用处理器
由于手机多媒体芯片市场发生变化,以多媒体技术为中心的本土芯片设计企业也纷纷做出相应的规划:一直开发应用处理器的深圳安凯推出主频更高的产品,应对GPS等新需求;以前提供协处理器的智多微电子和中星微都推出或正在研发应用处理器,应对协处理器竞争力弱化的趋势;而另一家协处理器供应商方泰电子则转型做音频放大器、电源管理等模拟产品。
由于采用应用处理器设计手机时所需的软件和系统设计非常复杂,为了适应市场的需求,推出应用处理器的本土设计公司都以提供整套方案为目标,而他们都表示软件是整套方案的重中之重。
深圳安凯副总裁杨翠军说,他们目前提供的整套解决方案中,硬件主要与英飞凌、ADI和Skyworks的基带配合;而软件方面,他们把从开机界面到里面的应用等所有软件都集成到方案中。“这样,手机设计企业不需要再与第三方软件开发厂商一家家去谈,他们拿到参考设计就可以去量产。”杨翠军经理说,“现在,采用安凯应用处理器整套方案的手机企业包括波导、CECT、万利达、步步高、阿尔卡特等等。”他进一步说,与国外同等方案相比,他们的优势是,一方面成本低将近一半,他们在芯片上集成了许多模拟功能,包括ADC、DAC、喇叭、触摸屏控制器,下一步还要把电源管理集成进去。另一方面,为适应国内手机设计企业的需求,他们提供整套解决方案,这也是国外公司不太采用的服务模式。最近,由于他们推出了主频达到192MHz的应用处理器,今年下半年,许多Java应用,例如游戏、股票等应用都可以在手机上实现。而新应用处理器也可以跑GPS导航引擎和电子地图,从而可以配合GPS模块,实现手机GPS。
智多微电子首席运营官于晓光介绍说,公司过去推出了多种手机协处理器方案,在今年第一季度,他们已经推出了一个基于自己最新一代应用处理器的解决方案,目前,一些手机客户正在基于他们的整体解决方案开发智能手机。“对应用处理器方案来讲,除了这个芯片外,其实更重要的是软件,可以说,软件才是客户真正的投资。”于总介绍说,“因此,从竞争优势上来讲,一个好的应用处理器一定要配上一套非常完整、可以开放给客户做开发的软件。”他介绍说,智多的软件有比较独特的地方,例如,他们的软件运行时用掉的存储空间非常小,占用芯片主频也比较少,而且整套解决方案已经帮客户处理得比较干净,也就是说,应用处理器和基带之间的整合都做完了,客户把应用做好就可以了,甚至一些大家耳熟能详的应用他们已经帮客户做进去了,所以,客户产品上市的速度会比较快。
而中星微也将推出高性能应用处理器。中星微电子资深副总裁张韵东介绍说,他们在研发中充分利用了中星微在多媒体领域的技术积累,采用独特的芯片架构,实现高性能、低功耗、低成本的目标。在开发新产品过程中,他们与国际知名企业如微软、高通、三星等密切合作,例如,中星微的音频芯片已被高通选中用于其
CDMA参考平台;微软的Windows Mobile也已成功地移植到中星微的手机平台上;而中星微多款多媒体芯片已被世界知名手机厂商如三星等采用。
异质多处理器芯片中的数据流核心设计
来源:电子技术应用 西北工业大学 詹承华 杨志义 杨柳    时间:2007-04-18     发布人:dandan37
异质多处理器系统(Heterogeneous Multiprocessor)是将两种以上不同工作性质的处理器核心整合为一的处理器系统。它通常包含了一般用途处理器(General Purpose Processor)和特殊用途处理器(Specific Purpose Processor)。随着片上系统SoC(System on Chip)及相关技术的成熟,已经可以将不同的处理器整合到一个芯片里,成为多处理器芯片。以多媒体应用为例,比较著名的异质多处理芯片有德州仪器公司的TMS320DSC25、TMS320DM270和TMS320DM320。这些芯片都是由ARM微核心和DSP微核心组成。传统的多处理器系统架构(如Intel SMP架构)是由多个处理芯片通过外部总线汇接而成,而多处理器片上系统架构是在单一芯片上包含了多个处理器核心。它能减少系统的功耗并使整个系统发挥最大的运算效能。
1 硬件平台
本设计采用的硬件平台是德州仪器公司的TMS320DM270,它由两个微处理器核心ARM7TDMI和TMS320C5409组成。采用主从式架构,前者为主动端,后者为被动端。ARM7T DMI是32位的一般用途处理器,负责DM270系统的整体运作和所有周边设备的控制。TMS320C5409为16位的数字信号处理器,主要负责多媒体信号处理.如音视频的编解码运算等。ARM可以经由DSP控制器重置或唤醒,还可对DSP发出不可屏蔽式的中断(Non-Masked Interrupt)。
双处理器之间必须有良好的通信和数据交换机制.才能使系统在多进程环境下有效合作。在DM270中,ARM端的DSP控制器控制数据传输,DSP端通过HPI[3](Host Post Interface)与ARM处理器沟通。两个微处理器使用HPIB(Host Port Interfaee Bridge)相互连接。ARM和DSP可向对方发出硬件中断,同时它们之间存在一段共享存储区。通过共享存储区映射机制和中断的搭配,双方可以传输信息和数据,并且可以在共享存储区存取双方共同定义的指令,使两端根据指令进行对应的动作。
2 ARM端的DSP管理者
为配合DSP的工作,在ARM端微核心(Micro Kernel)中设计了一个伺服进程,它负责ARM与DSP的沟通及协调运行。该进程称为DSP管理者(DSP Manager),如图1所示。

ARM端的进程并不知道DSP处理器的存在,只知道DSP管理者在运行。当ARM端的进程需要使用DSP进程所提供的数据处理服务时,只需向DSP管理者提出请求。DSP端的进程也不知道ARM处理器的存在,DSP管理者把ARM端的请求存放在共享存储区,由DSP的数据流核心读取这些请求,并交给相应的DSP进程。当请求被DSP进程接收后,DSP管理者还要负责把提出请求的ARM端进程的数据存放在共享存储区,以便DSP端进程的读取和处理。因此ARM与DSP沟通的效能取决于DSP管理者的执行效能。
DSP管理者接收ARM端进程的数据处理请求。请求信息应该包括提出请求的ARM端进程的ID、DSP端服务进程的ID、数据处理服务类型的lD以及相关参数。同时DSP管理者把这些请求信息打包封装为DSP端系统能识别的内容格式,再通过共享存储区交给DSP端的数据流核心。
由于真正维持系统运作的是ARM端系统,DSP只是附属的处理系统,所以ARM端的DSP管理者可以在系统正常工作的情况下更换DSP系统,以支持不同的DSP应用。
3 DSP端的数据流核心
DSP端的系统采用数据流核心(Dataflow Kernel)架构。传统系统核心架构中的进程切换由Timer Tick决定,但数据流核心中的进程却不受Timer Tick的影响,它们以数据驱动(Data Driven)的方式工作。
在DSP端的核心运行着多个不同类型的数据处理服务进程,这些进程在DSP启动时都被设为阻塞态(Sleep)。因为此时没有任何数据可以用来驱动DSP服务进程的执行。当ARM端开始传送数据处理请求到DSP端时,数据流核心会根据这些请求找到对应的DSP服务进程,并使其进入执行态(Busy)。当该服务进程的数据处理任务完成后,其返回结果可能是新的数据处理请求,该请求同样也可以进入数据流核心。驱动其他服务进程的执行。所以整个核心的运行是根据数据流(ARM端的数据和DSP进程自己产生的数据)的动向决定的。与基于Timer Tick的传统系统核心相比,只要某一服务进程不断地接收数据处理请求,并且所需的数据不断到达,该进程就可以一直拥有CPU的使用权,而无须进行时间片方式的进程切换,从而减少了系统资源的浪费,提高了DSP的处理效能。
DSP端的进程有执行和阻塞两种状态。进程的状态转移如图2所示。当CPU使用权切换给某个进程时,该进程的状态将被核心设定为Busy并开始处理数据。当数据处理完后,数据流核心从数据请求队列DRQ(Data Request Queue)中取出下一个请求。如果请求信息中指定的DSP服务进程与目前进程相同,则该进程的状态依旧为Busy.否则核心便将目前进程的状态设定为Sleep,同时开始进程切换,将请求信息中所指定的服务进程设定为Busy。

3.1 进程队列状态寄存器
ARM端系统和DSP端系统在共享存储区共同定义了16位的进程队列状态寄存器(Process Oueue Status Register),每一位代表DSP端一个进程的状态,所以DSP端最多有16个数据处理服务进程。若DSP端的数据流核心将寄存器的某一位设为O,则表示与该位对应的DSP进程有能力处理新的数据处理请求;若设为1,则表示与该位对应的DSP进程没有能力处理新的请求。
DSP管理者通过查看该寄存器,可以知道DSP端的某些进程已不能接收新的数据处理请求,它就会使ARM端的相关进程停止向这些DSP进程发出请求。这样可以充分利用DSP的资源,降低DSP端的系统负担。
3.2 数据流核心的进程调度策略
核心中的进程调度策略是根据数据流架构上进程运行状态变化的规律设计的。其工作方式是将ARM端对DSP端的数据处理请求利用环行队列(Circular Queue)的架构以FIFO的方式排序,并存入DRQ中。该策略的特点是DSP端的每一个进程都预先指定最多可以拥有DRQ空间的数目,等级越高的进程拥有DRQ使用空间就越多,证明其可以处理更多的数据请求。该策略将传统系统核心中进程优先级(Priority)的概念转化为进程可以处理数据请求的多少。进程等级越高,能处理的数据请求也越多,同时占用CPU的执行时间也较长。LDE(Local Data Element)是DSP端每一个进程都有的参数,它表示DSP进程在执行过程中还可以接收多少个数据处理请求。LDE的初始值由系统定义。整个DRQ空问的大小由所有DSP进程的LDE预设最大值的总和决定。
当DSP端的数据流核心取得ARM端的数据处理请求时,根据请求我到指定的DSP端进程,把该进程的LDE减1,然后进行相应的数据处理。如果LDE被减至0,则DSP端数据流核心把该DSP进程在进程队列状态寄存器中所对应的状态位设为1.以通知DSP管理者该进程不能再接收新的请求,分配给该进程的所有DRQ空间都已被使用。此后,随着DRQ中的数据请求逐渐被处理,使得该进程的DRQ空问再出现剩余时,数据流核心会把进程队列状态寄存器中所对应的状态位设为0,通知DSP管理者可以再次向该DSP进程发送数据处理请求。
如图3所示,DRQ是环行队列结构,存储所有的请求信息。DRQ有两个指针:Tail指向DRQ没有被使用的空间;Head指向DRQ中将被处理的请求。LDE有三个元素EA、EB、EC,代表DSP的进程A、B、C分别可使用的DRQ个数。数据流核心接收请求RB后,调度算法将EB减1,并且通过Tail指针将请求RB加入DRQ中。当系统需要处理请求时,调度算法由Head指针取出请求并交由适当的DSP进程处理。

4 共享存储区管理
本设计将DM270系统平台中的一段32KB大小的存储区作为ARM和DSP的共享存储区。该存储区由DSP管理者负责管理。由于TMS320C5409的存储单位是字节,所以规定它所访问的共享存储区地址为OxS000~0xBFFF;而ARM7TDMI的存储单位是字,所以规定它能访问的共享存储区地址为0x50000~0x57FFF,共享存储区分配如图4所示。共享存储区分为32个存储块,每块大小为1024B。前两个字节为共享存储块的状态标志位,其值为0代表此存储块闲置,1代表此存储块已被使用。存储块中剩下的1022B用来存放数据。DSP管理者将所有ARM端需要DSP处理的数据都存储到这32个存储块上。

当32个存储块全部被使用或者数据处理请求中所指定的DSP进程的LDE为0时,DSP管理者向ARM端提出该请求的进程阻塞,防止因不断地提出请求而造成系统资源的浪费。当所指定的DSP进程数据处理结束后,DSP端的数据流核心将该进程阻塞,并对DRQ空间和进程队列状态寄存器作相应调整,然后主动释放该DSP进程使用的共享存储块,同时向ARM端发出中断信号。DSP管理者接收到此中断信号后,根据进程队列状态寄存器判断出请求所指定的DSP进程已经可以开始处理数据了,让刚才在ARM端被阻塞的进程继续运行.并把数据写入共享存储块,以便DSP进程读取和处理。当存在闲置的存储块并且数据处理请求所指定的DSP进程的LDE不为0时,DSP管理者可直接将ARM端进程的数据写到共享存储块,以便相应的DSP进程读取和处理。
5 DSP端系统的热抽换
DSP系统的更换技术对多媒体应用而言非常重要。如果DSP端需要播放不同格式的影片,则必须把整个DSP端系统更换以支持不同格式的解码器。因此在系统设计中使用了热抽换技术。传统热抽换技术的定义是动态地把系统中的核心层部分更换,在不重新开机的情况下,进程还可以正常工作。而本设计的热抽换是更换整个DSP端的系统,同时维持ARM端进程的正常工作。为了实现热抽换,必须在某段静态存储区存放多个版本的DSP系统程序。本设计中,这些程序被存放到DM270的Flash Memory中,ARM端的档案系统负责维护和管理这部分内容。
DSP系统的热抽换过程如下:①DSP端要把那些由于没有进行数据处理而陷入阻塞的DSP进程全部释放,否则当DSP端系统更新后,这些进程会因为永远不能再得到相应的数据,而造成永久阻塞,形成系统资源浪费;②ARM端的DSP管理者会清空所有的共享存储区,同时阻塞ARM端的所有用户进程;③ARM端的档案系统将从Flash Memory中读取所需的DS
P系统档案并将它加载到DSP的内存;④DSP端系统启动,DSP管理者唤醒ARM端所有被阻塞的进程,为更新后的DSP系统服务。
ARM端的系统负责整个系统的正常运行,同时将数据处理请求和相关数据传送给DSP,而不管这些数据如何被DSP使用;DSP端只负责数据的处理,而不管数据的来源和用途。这种架构关系保证了DSP系统的热抽换是安全可靠的,不会破坏系统的正常运行。
本文以DM270平台为基础,设计了DSP端的数据流核心和ARM端的DSP管理者。与传统的、基于时间片的多进程系统核心相比,数据流核心的进程是靠数据驱动的方式工作的。它能有效地减少进程的切换.节约系统资源,使DSP可以更加专注于多媒体数据的处理。