Blackfin双核处理器与应用开发
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

0.2 数字信号处理器

0.2.1 数字信号处理器基本概念

前面已经提到了数字信号处理器(DSP),简单地说,DSP芯片是一种特别适合进行数字信号处理运算的微处理器,或者说主要是为快速实现各种数字信号处理算法而设计的。目前,DSP芯片已广泛应用于语音、图像、视频、雷达、声呐、地震、通信系统、控制系统、生物医学工程、机械振动、电力系统、故障诊断、自动化仪表、遥感遥测、地质勘探、航空航天等领域。特别是近年来DSP在通信及多媒体领域中的数字式移动通信系统、软件无线电、高清晰度电视(HDTV)、语音和图像处理、调制解调器(Modem)、综合业务数字网(ISDN)、多媒体个人数字化产品等方面得到了广泛应用。在电动机和机器人控制、激光打印机、扫描仪和复印机、网络控制及传输设备等控制领域应用中也都有大量的DSP在工作。

世界上第一枚DSP芯片可以认为是1978年AMI公司发布的S2811,1979年美国Intel公司发布的商用可编程器件2920是DSP芯片的一个主要里程碑,但这两种芯片内部都没有现代DSP芯片所必需的单周期乘法器。1980年日本NEC公司推出的μ PD7720是第一个具有乘法器的商用DSP芯片。此后,相继多个厂商研制出了商用DSP:TI的TMS320系列、ADI的ADSP系列、Motolora的MC系列、AT&T的DSPX系列、Zoran的ZR系列、Inmos的IMSA系列、NEC的PD系列等。其中ADI和TI的产品系列最全,市场占有率最高。自1982年来,TI先后推出了第一代DSP芯片TMS32010及系列产品,第二代DSP芯片TMS32020、TMS320C25/C26/C28等,第三代DSP芯片TMS320C30/C31/C32等,第四代DSP芯片TMS320C40/C44等,第五代DSP芯片TMS320C5X/C54X等,第六代DSP芯片TMS320C62X/C67X等。

ADI是DSP芯片的重要供应商,具有自己的特色,提供了完整的DSP系列,适合各种信号处理的需要,有16位定点DSP产品ADSP-21xx系列和Blackfin ADSP-215xx系列,32位浮点DSP产品SHARC系列和TigerSHARC系列,混合信号处理DSP产品ADSP-2199X系列,嵌入式电机控制DSP产品ADMC系列等。表0-1列出了部分DSP产品,表0-2列出了部分DSP芯片完成常用数字信号处理算法的时间[2]

表0-1 部分ADSP产品

表0-2 ADI公司部分DSP完成常用的各种数字信号处理算法的时间

ADSP Blackfin定点DSP系列代表有ADSP-BF533、ADSP-BF561、ADSP-BF51,其中ADSP-BF561是一款对称双核处理器,得到了重要应用,是本书要介绍的芯片。Blackfin系列处理器是高性能、低成本的嵌入式DSP芯片,是针对嵌入式音频、视频和通信应用中的计算要求和功耗要求而设计的,是一种基于ADI和Intel联合开发的微信号架构(MSA)之上的新型处理器。它将一个32-bit RISC型指令集、双16-bit MAC处理单元、通用型微控制器所具有的易用性组合在一起,使得Blackfin处理器能够在信号处理和控制处理应用中都能够发挥重要作用,并简化了软、硬件设计过程。

0.2.2 数字信号处理器技术特点

数字信号处理器是为实现数字信号处理而设计的芯片,因此,DSP芯片的特点就与数字信号处理算法紧密相关。DSP芯片一般具有如下基本特点:① 在一个指令周期内可完成一次乘法/加法/乘累加;② 程序和数据空间分开,可以同时访问指令和数据;③ 片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;④ 具有低开销或无开销的循环及跳转的硬件支持;⑤ 快速的中断处理和硬件I/O支持;⑥ 具有单周期多个地址产生器;⑦ 可以并行执行多个操作;⑧ 支持流水线操作,使取指、译码、执行等操作可以重叠执行。

如0.1.2 节所述,乘累加是数字信号处理中一个最常见最重要的操作,早期的计算机或微处理器内部乘法运算是根据微代码靠加法器反复移位相加来完成的,需要数十个时钟周期,这就使数字信号处理算法难以实时实现。为了快速实现MAC操作,DSP芯片提供了硬件MAC支持,使得在一个周期内可以完成一个MAC操作。ADSP-BF561内部还具有两个MAC操作,使得计算能力加倍。

将程序和数据分开,采用增强的哈佛(Harvard)结构,可以在一个周期内同时取指令和数据,提高了运行速度,还为特定算法提供了单周期取两个操作数的能力。在实现线性相位FIR滤波器时,长度为N的线性相位FIR系统的单位脉冲响应具有如下特点:

N可以取偶数或奇数,可能用到下式形式来计算系统的响应:

式(0-7)就要求一个周期能取三个数。

如前所述,数字信号处理中,还有一个重要特点就是循环操作,为此DSP芯片提供了“循环寻址”(Circular Addressing)指令来提高速度,一些DSP芯片还提供了硬件循环来加速循环操作。针对FFT,提供了“位倒序”(Bit-reversed)寻址指令,在ADSP-BF561上完成两行512点实序列的IFFT运算只需要11864个时钟周期[3]。高速数据传输能力也是DSP的关键之一,DSP芯片的DMA能力可以在不影响处理器内核运算的前提下完成数据的快速转移。除此之外,DSP具有指令并行、多功能单元并行、多总线等重要特点。

因此,DSP内部结构是专为数字信号处理所设计的。与通用计算机相比,它体积小、成本低、功耗小,易于实现嵌入式和便携式应用;与单片机相比,它的处理能力更强、处理速度更快。DSP、通用计算机、单片机技术相互吸取优点并发展自己的特长,现在通用计算机和一般单片机内部都有硬件乘法器,单片机内部也有了通用计算机和DSP内部才有的流水线,只不过规模小些,DSP内部也有了一定规模的高速缓存(Cache)。目前通用DSP处理器的发展方向主要如下。

(1)提高单个处理器的能力:高速、多总线、高精度、低功耗;增大片内RAM容量和片外寻址能力;增加片上外设种类和数量(并行外设接口、SPORT、SPI、定时计数器、DMA通道、A/D、D/A变换器);增强内部并行单元,TMS320C6000DSP有8个功能单元并行工作,ADSP-BF561有双MAC、多个视频处理单元。

(2)低电压、低功耗设计:便携式及嵌入式系统都迫切要求DSP降低工作电压、减小功耗。工艺上尽量采用CMOS工艺以降低内核工作电压。通过设置多种节能状态,使未使用的单元电路甚至内部时钟也可以停止供电。

(3)增强DSP片间互联能力:在任务复杂、实时性要求很高的场合,可以将算法分解成若干模块或若干级,使用处理器阵列串行或并行地执行,加快处理速度。TI公司的处理器TMS320C40 DSP有6个8bit的通信口,可实现多个DSP的级联或并行连接;ADI的SHARC系列DSP为满足多片互联的要求,设计了多个Link口,可实现6片DSP的拓扑结构网络。

(4)实现单芯片上集成多个DSP内核的能力:TMS320C5421 DSP内部有两个C54xCPU内核,指令执行速度可达200MIPS。ADSP-BF561 有两个对称双核,每个都可运行在600MIPS。此外,将DSP核与用户选择的存储器和外设设计在一起可以组成用户的专用ASIC芯片;将DSP核与其他微控制器核集成在一起可以构成新的处理器,这就是后面要介绍的非对称双核处理器。

0.2.3 数字信号处理器选型依据

根据应用选择DSP芯片是非常重要的一个环节。针对不同的应用场合、应用目的,首先要选择合适的DSP芯片,运算量是首要因素。运算量小可以选用处理能力一般的DSP芯片,运算量大的DSP系统则应选用处理能力强的DSP芯片,甚至考虑多核处理器或多个DSP芯片并行处理。一般来说,选择DSP芯片应考虑如下因素。

(1)运算速度。运算速度是DSP芯片的一个最重要的性能指标,运算速度与内核工作频率关系密切,决定着指令周期和MAC时间。指令周期是执行一条指令的时间,通常以ns为单位,如ADSP-BF561主频可达600MHz,指令周期为1.67ns。MAC时间是一次乘法加上一次加法的时间,一般DSP芯片可以在一个指令周期内完成一次MAC操作,如ADSP-BF561的MAC时间就是1.67ns。FFT执行时间可作为衡量DSP芯片运算能力的一个指标,因为FFT运算在数字信号处理中具有代表性。其他运算速度指标有MIPS(每秒执行百万条指令)、MOPS(每秒百万次操作)、MFLOPS(每秒百万次浮点操作)、BOPS(每秒十亿次操作)。

(2)硬件资源。不同DSP芯片所提供的硬件资源,如片内RAM、ROM的数量、外部可扩展的程序和数据空间、总线接口、I/O接口等各有所不同,它们除了支持更多功能之外,也会影响运算速度。DSP内核数量越多,并行度越高,数据处理的吞吐量就越大。DSP内部并行数据处理功能单元的数量越多,数据处理能力就越强。运算精度除了影响系统性能外,也影响运算速度,一般定点DSP字长为16位,浮点DSP字长为32位。

(3)开发工具。功能强大的软硬件开发工具可以大大缩短开发周期。DSP集成开发环境(Visual DSP++,CCS)以及编译器、优化器、汇编指令系统、调试工具都在不断升级,使用更方便、功能更强大。TI提供了DSP/BIOS实时操作系统内核,ADI提供了VDK实时操作系统内核,这些内核提供了多线程调度、存储管理、中断管理和输入/输出管理模块,标志着DSP应用从单任务管理模式发展到了多任务实时运行的复杂管理模式,逐步增强了嵌入式应用功能。同时也提供了大量可用的函数和软件工具包,如数字滤波器、数字信号处理算法子程序、接口程序等。MATLAB6.5版本以上引入了TI的DSP开发工具包和MATLAB LINK,使得用MATLAB编写数字信号处理算法可以直接生成TI DSP的执行代码,实现了用MATLAB进行算法研究到实时实现的一次完成。NI LabVIEW引入了专用于ADI Blackfin处理器的嵌入式模块,通过这一专用的图形化开发平台,推出了一个现成即用的、集成的解决方案,可以让工程师在同一平台上完成算法设计、原型设计到发布和测试的整个开发应用过程,从而有助于快速完成复杂嵌入式系统的应用开发。这一图形化软件包括140多种Blackfin特有的、手工优化的数学、分析和信号处理函数,以及音频和视频DAC、ADC和CODEC等集成I/O。

(4)其他因素。价格是选择DSP芯片的一个重要因素。对于民用产品,应选择价格便宜的处理器;对于便携式设备、手持设备、野外应用设备等,应选择低功耗DSP,目前3.3V甚至更低电压供电的低功耗高速DSP芯片已大量使用。选择DSP芯片还应考虑封装形式、质量标准、供货情况、生命周期等因素。

0.2.4 计算机领域的多机并行计算

本节介绍并行计算内容(摘自《并行计算:结构-算法-编程》[4]),对于理解对称双核处理器ADSP-BF561很有帮助,对于处理器发展的认识也是有用的。

目前高性能并行计算机取得了很大进展。随着计算技术和计算方法的飞速发展,几乎所有学科均趋向定量化和精确化,从而产生了诸如计算物理学、计算化学、计算材料学、计算力学、计算生物学、计算气象学和计算电子学等新兴学科,逐渐形成了所谓计算科学与工程(Computational Science and Engineering,CSE)的计算性学科分支。计算,增强了人们从事科学研究的能力,拓宽了人们洞察自然的视野,加速了科技转化为生产力的过程,深刻地改变着人类认识世界和改造世界的方法和途径。计算科学(Computational Sciences),已经和传统的理论科学与实验科学并列成为第三门学科,它们彼此相辅相成地推动着人类科技发展和社会进步。

大型并行机系统一般可分为六类:单指令多数据流(Single Instruction Multiple- Data,SIMD)、并行向量处理机(Parallel Vector Processor,PVP)、对称多处理机(Symmetric Multiprocessor,SMP)、大规模并行处理机(Massively Parallel Processor,MPP)、工作站机群(Cluster of Workstations,COW)和分布式共享存储(Distributed Shared Memory,DSM)多处理机。其中,SIMD计算机多为专用,而其余五种均属于多指令多数据流MIMD(Multiple-Instruction Multiple-Data)计算机。

共享存储的对称多处理机SMP结构在当前并行服务器中几乎普遍采用,SMP对称多处理机的结构如图0-2所示,IBM R50、SGI Power Challenge、DEC Alpha服务器8400和我国的曙光1 号等都是这种类型的机器。SMP系统使用商品微处理器(具有片上或外置Cache),它们经由高速总线(或交叉开关)连向共享存储器。这种机器主要应用于商务,如数据库、在线事务处理系统等。系统的重要特征是对称的,每个处理器可等同地访问共享存储器、I/O设备和操作系统服务。正是由于对称,才能开拓较高的并行度;也正是由于共享存储,又限制了系统中的处理器不能太多(一般少于64个),同时总线和交叉开关互也限制了扩展。

图0-2 SMP对称多处理机结构

共享存储的SMP系统结构具有如下特性:

(1)对称性。系统中任何处理器均可访问任何存储单元和I/O设备。

(2)单地址空间。单地址空间有很多好处,如因为只有一个OS和DB等副本驻留在共享存储器中,所以仍可按工作负载情况在多个处理器上调度进程从而容易达到动态负载平衡;又如因为所有数据均驻留在同一共享存储器中,所以用户不必担心数据的分配和再分配。

(3)Cache及其一致性。多级Cache可支持数据的局部性,而其一致性可由硬件来增强。

(4)低通信延迟。处理器间的通信可用简单的读/写指令来完成(而多计算机系统中处理器间的通信要用多条指令才能完成发送/接收操作)。

DSM和SMP的主要差别是DSM在物理上有分布在各节点中的局存,从而形成了一个共享的存储器。COW工作站机群的一个节点也可以是一台PC或SMP。SMP、MPP、DSM和COW等并行结构渐趋一致,DSM是SMP和MPP的自然结合,MPP和COW的界线逐渐不清,它们最终的结构趋向一致。作为一个具体例子,由Intel和Sandia联合开发的一个分布式存储MPP系统Option Red总共有4608个节点,其中计算节点4536个、服务节点32个、I/O节点24个、系统节点2个,其余是备份节点。计算节点用于执行并行计算,服务节点用于支持登录、软件开发及其他交互操作,这两种节点实现方式相同,由两个SMP节点通过NIC相连在一起,其中一个NIC连向互联底板。

0.2.5 多核计算机

当前传统处理器芯片设计工艺技术遇到了不可克服的瓶颈。1965年4月,电子工程师摩尔预言半导体芯片上集成的晶体管和电阻数量将每年翻一番,1975年他又提出修正,认为芯片上集成的晶体管数量将每两年翻一番,这就是著名的摩尔定律,现在摩尔定律一般表述为芯片上集成的晶体管数量将每18 个月翻一番。自从摩尔定律提出以来,处理器体系结构经历了几十年的发展,基本上是一直按照摩尔定律所预言的速度通过提高芯片晶体管密度而不断提升处理器性能。处理器体系设计上经历了单周期、多周期、流水线、并行、超标量、SIMD、超长流水线、超线程(SMT)等多种技术。但随着晶体管密度不断提高,芯片的发热量也越来越大,并且晶体管的电流泄漏也会越来越严重,这些问题阻止了晶体管密度进一步提高,而且靠进一步增加单个处理器复杂度、流水线级数和频率所得到的回报越来越少,但能耗却随着频率提升而加剧。例如,Intel的x868086主频是5~10MHz,有29000个逻辑门,而奔腾4主频约为4GHz,有16900000个逻辑门,但其功耗已经超过100W。因此,必须寻找其他方法。

多核技术是一种适应发展需求的新方法[5]。多核技术是指在一个处理器芯片上集成了多个相对独立的处理单元,每个处理单元都能进行运算,这些处理单元称为内核(core)。这种设计思想就是在单个核的性能差不多达到极限的情况下,通过集成多个核一起工作来提高处理器性能。多核处理器(Multi-Core Processor)的一种简单模式就是双核处理器(Dual-Core)。多核的思想源头可以追溯到多处理器系统,如0.2.4节中提到的各种并行机系统,但直到2005 年,我们才真正开始使用到多核桌面处理器,从而进入了通用处理器多核时代。

相比于单核处理器,多核处理器有更强大的计算能力,但要充分发挥其计算能力,需要操作系统和应用软件都支持多线程。在逻辑上多核处理器非常类似于0.2.4 节中提到了共享存储器的SMP并行机系统,但由于多核处理器是在一个芯片上集成的,所以核之间的通信带宽可以非常高,还可以设计成共享Cache,同时核之间的联系也远比SMP系统中的CPU之间的联系更加紧密。因此,多核技术是信息时代数据处理更高要求的产物,多核处理器技术将使得整个计算机行业,包括底层硬件、底层系统软件和用户应用软件,都需要进行相应的新的考虑和设计。多核技术具有重大意义,必将获得巨大发展。

0.2.6 DSP领域的多DSP并行计算

前面谈到了通用计算机领域的并行计算和多核计算机,这是一个重要的发展和应用方向,并将继续发展下去。类似地,在DSP应用领域里,也先后出现了将若干个DSP芯片构成一个阵列的应用系统来实现复杂的任务,以及多核DSP芯片。

多DSP并行处理是一个综合性很强的应用领域,涉及算法研究、VLSI设计理论、系统结构、网络拓扑等多个方面,目的是采用多个DSP处理单元同时执行任务,进而减少任务执行时间[6]。尽管DSP芯片上采用了多级流水线、MAC、多个功能单元并行等多种技术,但在更加复杂的应用中,当单个DSP不能胜任时,多个DSP芯片间的并行处理技术可以通过扩大并行规模而较大地增强系统的计算能力。多DSP并行处理系统的基本性能取决于组成系统的以下要素:处理单元(DSP)、并行处理系统结构、并行算法和任务分配方法。三者紧密联系、互相依赖,任务分配和并行算法直接影响并行处理系统的性能,芯片间的网络连接可参考并行计算机系统的各种方式,连接通道负责为各处理单元提供任务调度和数据交换。

为了能够设计出高效率的DSP网络,DSP互联技术是多DSP并行处理系统设计的一个关键问题,各DSP厂家先后推出了多种便于并行连接的DSP芯片,如ADI的TS101、TS201。因此,注重并行连接的DSP芯片在传统DSP基础上提供了专门的并行控制端口,能够方便地构成多种DSP并行处理系统。

共享总线的多DSP并行处理系统 共享总线就是所有DSP的外部总线(地址、数据和访问控制总线)分别连接在一起,各DSP片内存储器、IOP寄存器(也映射成存储器地址)以及挂接在总线上的外部存储器、外设都作为共享资源。获得总线控制权的DSP是主处理器,每个DSP都有各自的ID。从处理器可以通过总线请求信号来获取外部总线控制权从而成为主处理器,主处理器可以访问从处理器资源。支持这种方式的典型芯片是ADI的浮点DSP芯片ADSP2106x。

基于Link口的多DSP并行处理系统 ADSP2106x还具有实现基于Link口的多DSP并行处理系统,属于处理器之间通过数据流相联系的并行系统。各DSP用Link口连接在一起,进行通信控制和数据交换,系统结构简单、连线少、可扩展性强,可灵活组成线形、星形、环形、树形、网络型或超立方体型等多种形式。各DSP之间在指令上没有关联,仅通过数据流相联系,相互的耦合作用也较低,所以称为分布式存储系统或松耦合系统。

基于SPORT的多DSP并行处理系统 在基于SPORT的多DSP并行处理系统中,DSP一般以主从方式工作在多通道模式下,所有通信进程由主DSP芯片控制,各个从DSP芯片以TDM方式挂接在总线上,各自有唯一的通道号。主DSP可任意选择某一指定通道建立双向数据通信,也可以采用“广播写”的方式同时向所有的从DSP发送数据。ADSP-BF561具有这种多DSP并行的能力,有多种工作模式。

基于HPI/IDMA的主从分布式多DSP并行处理系统 基于HPI(主机接口)/IDMA(内部DMA)口,可组成主从分布式的多DSP并行处理系统。主DSP通过译码控制模块产生接口访问控制信号,以获得外部总线控制权,管理从DSP,实现主从DSP之间的并行任务分配、访问控制以及数据、状态信息的高速交换,可组建大型星型或树型并行系统。

基于数据交换的多DSP并行处理系统 多个DSP之间用双口RAM或网络交换机等作为数据交换的“缓冲池”,以数据缓冲池的空、满状态作为DSP间数据交换的启动标志,并以此进行DSP间的并行任务分配、状态信息交换和海量数据流传输等操作。

0.2.7 非对称多核处理器(AMP)特点

嵌入式应用和数字信号处理应用是两种不同的应用,随着各种小型设备的普及,出现了将这两者结合起来的必然趋势。这种结合的一种典型应用就是嵌入式多媒体应用,并促成了嵌入式多媒体处理器(EMP)的产生,包括多核DSP芯片。

嵌入式多媒体应用是一类重要的应用,这类应用集多媒体接口控制、音视频数字信号处理、数据传输格式处理以及常规外设接口控制于一体,在控制和计算方面都具有较高的复杂度,并需要考虑可接受的低功耗水平。传统方法是采用独立的微控制器和数字信号处理器共同完成。MCU管理“控制域”,DSP负责“计算域”。在功能实现上没有障碍,但它们的用途不可互相替代,并需要仔细考虑它们之间的协调工作。在架构设计上,MCU适用于高效率的异步控制流,DSP适用于同步恒定速度数据流并完成数字信号处理算法。此外,这种组合需要程序员掌握多种开发工具,增加了开发复杂性和难度。

为此,MCU厂商在保持原有控制功能外,集成了一些信号处理功能,如指令集扩展以及MAC单元,不足之处是缺乏先进信号处理所必需的基本架构。同样,DSP生产商也不断引入MCU功能,但在系统控制方面有所欠缺。随后逐步出现了一些功能较强的嵌入式应用领域的多核处理器[7]。Motorola公司研发的MPC8260 PowerQUICC II就是为电信和网络市场而设计的一种较先进的集成通信微处理器,它融合了两个CPU——嵌入式PowerPC内核和通信处理模块(CPM),CPM分担了嵌入式PowerPC内核的外围工作任务。Infineon公司推出的TC10GP和增强型TC1130是三核(TriCore)结构微处理器,设计了微控制器、DSP核、数据和程序存储器核、外围专用集成电路(ASIC),因此同时具备了RISC、CISC和DSP功能,是一种建立在SOC概念上的结构。它的最大特点是把DSP和微控制器融合成一个单内核,这种结合大大提高了微控制器的功能。具有类似结构的还有Hitachi公司的SH7410和SH7612,可用于既需要MCU又需要DSP功能的场合。TI的代表芯片OMAP5910在一块芯片上集成了DSP核和ARM9核,应用时,嵌入式核完成事务处理,DSP核负责算法实现。

上述双内核处理器每个内核具有不同的特点,属于非对称双核处理器(AMP),主要特点是应用上每个内核运行分离的且通常是不同的任务,其中一个内核运行嵌入式操作系统或嵌入式操作系统内核(Kernel),执行与控制相关的任务,如图形显示和覆盖功能、网络连接、与存储器接口以及整个数据流的控制;另一个内核负责专门的高密度的信息处理功能,如将来自第一个内核的已压缩的音视频数据进行解码,或把从音视频接口采集到的数据进行压缩,或完成某个识别任务等。这种模式可对功能类型进行划分从而允许并行设计处理,可以消除项目中对关键路径的依赖。这种编程模式也有助于项目中的测试和验证,如果一个内核上的代码发生变化,对另外一个内核上已经完成的工作影响较小。

0.2.8 对称多核处理器(SMP)的优势

在嵌入式多媒体处理器EMP方面,ADI研发了有自己特色的芯片——Blackfin系列处理器,而且性价比较高,得到了广泛应用。Blackfin架构在一个统一的设计中提供了MCU和DSP功能,可以实现控制和信号处理方面的灵活划分。它可以作为100%的MCU,或者100%的DSP,或者两者之间的某种组合[8]

1.双核EMP VS单核EMP

单核EMP ADSP-BF533采用了ADI与Intel共同开发的MSA体系结构(同Intel XScale嵌入式处理器),支持嵌入式实时操作系统uC/OS和uCLinux。ADSP-BF533 EMP架构融合了一个32位RISC指令集、双16位MAC单元和一个8位视频处理引擎,为了充分利用内部资源,提供了长达64位的可变长指令集,经过最优化后的16位操作码可以代表最常用的指令,从而使编译后的代码密度可以与行业领先的MCU竞争,而其互锁流水线和代数指令语法有助于在C/C++和汇编两种环境中的开发[8]。在MCU功能上,它提供了受保护和未受保护两种操作模式,可以防止用户访问或影响系统的共享部分。它还提供了不同应用的存储器管理功能和保护功能,允许异步中断以及同步异常功能,以及可编程的中断优先级,因此也非常适合于嵌入式操作系统。在DSP功能上,其结构设计使得数据流动效率高、性能强,其外设可支持高速串行和并行数据搬移。此外,它包含了先进的电源管理模块,可设计出极低动态功耗的应用模式。

在一些情况下单核处理器就可以胜任,但随着处理需求的不断增加,对于某些应用来说,仅仅一个600MHz的EMP是不够的,这时一个好的思路就是考虑采用一个双内核EMP。ADSP-BF561具有对称双核结构而独具特色,由于增加了一个处理器内核,不仅可以提高计算能力,而且还能增强控制能力,也支持灵活的编程模式,因此可从其独特结构设计上获得诸多好处。

即使当某个应用适合某个单内核处理器,也可以利用双内核系统来降低整体功耗。例如,若一个应用需要600MHz的时钟速度运行在一个单内核处理器(如ADSP-BF533)上,但它必须工作在较高电压(1.2V)才能达到这个速度。如果将该应用划分在EMP ADSP-BF561双核实现,每个内核可以运行在大约300MHz的速度,而每个内核的电压可以降低到0.8V。根据功耗与频率呈正比、与工作电压平方成正比的关系,电压从1.2V降到0.8V,同时频率从600MHz降到300MHz,双核方案更节省功耗。

2.对称多核处理器VS非对称多核处理器

AMP一般结合了两颗不同的处理器内核,通常是在一个混合架构中集成一个MCU核和一个DSP核,AMP的一种局限性是设计工程师必须对控制和DSP功能的共享部分进行“50/50”划分,如一旦DSP“胜出”,MCU将不能进行计算处理[8]。对称双核多媒体处理器(SMP)通过高速总线连接了两个相同的处理器内核,并共享一组外设和存储器空间。SMP架构没有AMP那种局限性,因为两个处理器内核是相同的,可以按照应用要求进行划分,甚至可以划分为100%的DSP或100%的MCU工作。同时,SMP采用了共同的集成开发环境,只需要一组开发工具。ADSP-BF561包含了每个内核专有的高速L1指令和数据存储器,以及两个内核共享的128KB L2存储器,每个内核都能同等地访问外设(视频端口、串行口、定时器等)。这种架构允许其工作在几种有效模式下,大体上这些模式可以分为“MCU/DSP分离”、“串行处理”和“分离处理”等。

“MCU/DSP分离”模式适合每个内核执行不同的任务,一个内核执行控制域工作,另一个内核执行计算域工作。除了具有AMP的特点外,SMP架构还允许重新分配在一个内核上任何“未用”的处理带宽,以便在不同的功能和任务上再分配。

“串行处理”模式中第一个内核对输入数据执行若干中间级控制和计算,然后将中间数据流传给第二个内核进行最后处理。这种模式也可以将任务划分到两个内核上,中间数据可能需要在内核之间搬移几次,直到得到最终结果,典型案例是MPEG编码或解码。

“分离处理”模式为每个内核提供了更均衡的利用,对称内核架构、丰富的片上存储器、较宽的内部数据总线和高带宽DMA控制器都有助于将传统的计算密集的应用均匀划分到每个内核上。这种模式中运行在每个内核上的代码是相同的,只是被处理的数据不同。在一个通道流应用中,可以安排通道的一半由第一个内核处理,而另外一半由第二个内核处理,如在视频或成像应用中,可以安排每个内核处理交替的帧信号。

参考文献

[1] 胡广书. 数字信号处理——理论、算法与实现. 北京:清华大学出版社,2001.

[2] 冯小平,罗勇江,罗明. ADSP技术与应用. 北京:机械工业出版社,2007.

[3] 李刚,高峰,林凌. 实序列并行IFFT在Blackfin DSP上的实现. 电子技术应用,2009,2:98-100.

[4] 陈国良. 并行计算——结构·算法·编程. 高教出版社,2003.

[5] 叶敏娇. Manticore体系结构设计——面向嵌入式系统的异构多核处理器体系结构. 浙江大学硕士学位论文,2006.

[6] 杜金榜,钟小鹏,王跃科. 多DSP并行处理系统的设计与开发. 计算机测量与控制,2006,14(5).

[7] 窦振中,宋鹏,李凯. 嵌入式系统设计的新发展及其挑战. 单片机与嵌入式系统应用,2004,12:5-9.

[8] David Katz,Rick Gentile. 嵌入式多媒体处理器:选择双内核或单内核. http://www. eetchina.com/ART_8800448526_617693_TA_42b8e011.HTM.