DSP

微控制单元(Microcontroller Unit;MCU) ,又称单片微型计算机(Single Chip Microcomputer )或者单片机,是把中央处理器(Central Process Unit;CPU)的频率与规格做适当缩减,并将内存(memory)、计数器(Timer)、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。诸如手机、PC外围、遥控器,至汽车电子、工业上的步进马达、机器手臂的控制等,都可见到MCU的身影。

技术原理

MCU同温度传感器之间通过I2C总线连接。I2C总线占用2条MCU输入输出口线,二者之间的通信完全依靠软件完成。温度传感器的地址可以通过2根地址引脚设定,这使得一根I2C总线上可以同时连接8个这样的传感器。本方案中,传感器的7位地址已经设定为1001000。MCU需要访问传感器时,先要发出一个8位的寄存器指针,然后再发出传感器的地址(7位地址,低位是WR信号)。传感器中有3个寄存器可供MCU使用,8位寄存器指针就是用来确定MCU究竟要使用哪个寄存器的。本方案中,主程序会不断更新传感器的配置寄存器,这会使传感器工作于单步模式,每更新一次就会测量一次温度。

要读取传感器测量值寄存器的内容,MCU必须首先发送传感器地址和寄存器指针。MCU发出一个启动信号,接着发出传感器地址,然后将RD/WR管脚设为高电平,就可以读取测量值寄存器。

为了读出传感器测量值寄存器中的16位数据,MCU必须与传感器进行两次8位数据通信。当传感器上电工作时,默认的测量精度为9位,分辨力为0.5 C/LSB(量程为-128.5 C至128.5 C)。本方案采用默认测量精度,根据需要,可以重新设置传感器,将测量精度提高到12位。如果只要求作一般的温度指示,比如自动调温器,那么分辨力达到1 C就可以满足要求了。这种情况下,传感器的低8位数据可以忽略,只用高8位数据就可以达到分辨力1 C的设计要求。由于读取寄存器时是按先高8位后低8位的顺序,所以低8位数据既可以读,也可以不读。只读取高8位数据的好处有二,第一是可以缩短MCU和传感器的工作时间,降低功耗;第二是不影响分辨力指标。

MCU读取传感器的测量值后,接下来就要进行换算并将结果显示在LCD上。整个处理过程包括:判断显示结果的正负号,进行二进制码到BCD码的转换,将数据传到LCD的相关寄存器中。

数据处理完毕并显示结果之后,MCU会向传感器发出一个单步指令。单步指令会让传感器启动一次温度测试,然后自动进入等待模式,直到模数转换完毕。MCU发出单步指令后,就进入LPM3模式,这时MCU系统时钟继续工作,产生定时中断唤醒CPU。定时的长短可以通过编程调整,以便适应具体应用的需要。

主要区别

在20世纪最值得人们称道的成就中,就有集成电路和电子计算机的发展。20世纪70年代出现的微型计算机,在科学技术界引起了影响深远的变革。在70年代中期,微型计算机家族中又分裂出一个小小的派系--单片机。随着4位单片机出现之后,又推出了8位的单片机。MCS48系列,特别是MCS51系列单片机的出现,确立了单片机作为微控制器(MCU)的地位,引起了微型计算机领域新的变革。在当今世界上,微处理器(MPU)和微控制器(MCU)形成了各具特色的两个分支。它们互相区别,但又互相融合、互相促进。与微处理器(MPU)以运算性能和速度为特征的飞速发展不同,微控制器(MCU)则是以其控制功能的不断完善为发展标志的。

CPU(Central Processing Unit,中央处理器)发展出来三个分枝,一个是DSP(Digital Signal Processing/Processor,数字信号处理),另外两个是MCU(Micro Control Unit,微控制器单元)和MPU(Micro Processor Unit,微处理器单元)。

MCU集成了片上外围器件;MPU不带外围器件(例如存储器阵列),是高度集成的通用结构的处理器,是去除了集成外设的MCU;DSP运算能力强,擅长很多的重复数据运算,而MCU则适合不同信息源的多种数据的处理诊断和运算,侧重于控制,速度并不如DSP。MCU区别于DSP的最大特点在于它的通用性,反应在指令集和寻址模式中。DSP与MCU的结合是DSC,它终将取代这两种芯片。

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对于给定任务所需要的周期数,从而无法说明如何去改善代码的性能。

发展历史

单片机出现的历史并不长,但发展十分迅猛。 它的产生与发展和微处理器的产生与发展大体同步,自1971年美国Intel公司首先推出4位微处理器以来,它的发展到目前为止大致可分为5个阶段。下面以Intel公司的单片机发展为代表加以介绍。

1971-1976

单片机发展的初级阶段。 1971年11月Intel公司首先设计出集成度为2000只晶体管/片的4位微处理器Intel 4004,并配有RAM、 ROM和移位寄存器, 构成了第一台MCS—4微处理器, 而后又推出了8位微处理器Intel 8008, 以及其它各公司相继推出的8位微处理器。

1976-1980

低性能单片机阶段。 以1976年Intel公司推出的MCS—48系列为代表, 采用将8位CPU、 8位并行I/O接口、8位定时/计数器、RAM和ROM等集成于一块半导体芯片上的单片结构, 虽然其寻址范围有限(不大于4 KB), 也没有串行I/O, RAM、 ROM容量小, 中断系统也较简单, 但功能可满足一般工业控制和智能化仪器、仪表等的需要。

1980-1983

高性能单片机阶段。 这一阶段推出的高性能8位单片机普遍带有串行口,有多级中断处理系统, 多个16位定时器/计数器。片内RAM、 ROM的容量加大,且寻址范围可达64 KB,个别片内还带有A/D转换接口。

1983-80年代末

16位单片机阶段。 1983年Intel公司又推出了高性能的16位单片机MCS-96系列,由于其采用了最新的制造工艺, 使芯片集成度高达12万只晶体管/片。

1990年代

单片机在集成度、功能、速度、可靠性、应用领域等全方位向更高水平发展。

按照单片机的特点,单片机的应用分为单机应用与多机应用。在一个应用系统中,只使用一片单片机称为单机应用。单片机的单机应用的范围包括:

(1) 测控系统。 用单片机可以构成各种不太复杂的工业控制系统、自适应控制系统、数据采集系统等,达到测量与控制的目的。
(2) 智能仪表。 用单片机改造原有的测量、控制仪表,促进仪表向数字化、智能化、多功能化、综合化、柔性化方向发展。
(3) 机电一体化产品。单片机与传统的机械产品相结合,使传统机械产品结构简化, 控制智能化。
(4) 智能接口。 在计算机控制系统, 特别是在较大型的工业测、控系统中,用单片机进行接口的控制与管理, 加之单片机与主机的并行工作, 大大提高了系统的运行速度。
(5) 智能民用产品。 如在家用电器、玩具、游戏机、声像设备、电子秤、收银机、办公设备、厨房设备等许多产品中,单片机控制器的引入, 不仅使产品的功能大大增强, 性能得到提高, 而且获得了良好的使用效果。

单片机的多机应用系统可分为功能集散系统、并行多机处理及局部网络系统。

(1) 功能集散系统。 多功能集散系统是为了满足工程系统多种外围功能的要求而设置的多机系统。
(2) 并行多机控制系统。 并行多机控制系统主要解决工程应用系统的快速性问题,以便构成大型实时工程应用系统。
(3) 局部网络系统。

单片机按应用范围又可分成通用型和专用型。专用型是针对某种特定产品而设计的,例如用于体温计的单片机、用于洗衣机的单片机等等。在通用型的单片机中,又可按字长分为4位、8位、16/32位,虽然计算机的微处理器现在几乎是32/64位的天下,8位、16位的微处理器已趋于萎缩,但单片机情况却不同,8位单片机成本低,价格廉,便于开发,其性能能满足大部分的需要,只有在航天、汽车、机器人等高技术领域,需要高速处理大量数据时,才需要选用16/32位,而在一般工业领域,8位通用型单片机,仍然是目前应用最广的单片机。

到目前为止,中国的单片机应用和嵌入式系统开发走过了二十余年的历程,随着嵌入式系统逐渐深入社会生活各个方面,单片机课程的教学也有从传统的8位处理器平台向32位高级RISC处理器平台转变的趋势,但8位机依然难以被取代。国民经济建设、军事及家用电器等各个领域,尤其是手机、汽车自动导航设备、PDA、智能玩具、智能家电、医疗设备等行业都是国内急需单片机人才的行业。行业高端目前有超过10余万名从事单片机开发应用的工程师,但面对嵌入式系统工业化的潮流和我国大力推动建设“嵌入式软件工厂”的机遇,我国的嵌入式产品要溶入国际市场,形成产业,则必将急需大批单片机应用型人才,这为高职类学生从事这类高技术行业提供了巨大机会。

来源:嵌入式资讯精选

围观 359

来源: 21ic电子网

一、区别

两则的分流造成的主要原因是数字信号处理的简便性,考虑一个数字信号处理的实例,比如有限冲击响应滤波器(FIR)。用数学语言来说,FIR滤波器是做一系列的点积。取一个输入量和一个序数向量,在系数和输入样本的滑动窗口间作乘法,然后将所有的乘积加起来,形成一个输出样本。

类似的运算在数字信号处理过程中大量的重复发生,使得为此设计的器件必须提供专门的支持,促进了DSP器件与通用处理器(GPP)的分流:

1. 对密集乘法的支持

从架构到RTOS 详解DSP和MCU的区别和联系

2. 存储器结构

从架构到RTOS 详解DSP和MCU的区别和联系

此外,DSP处理器几乎都不具备数据的高速缓存。这是因为DSP的典型数据是数据流。也就是说,DSP处理器对每个数据样本做计算后,就丢弃,几乎不再重复使用。

3. 零开销循环
DSP算法的一个共同的特点,即大多数处理时间都花在执行较小的循环上,也就容易理解,为什么大多数的DSP都有专门的硬件,用于零开销循环。所谓的零开销循环是指处理器在执行循环时,不用花时间去检查循环计数器的值,条件转移到循环大额顶部,将循环计数器减1.

与此相反,GPP的循环使用软件来实现。某些高性能的GPP使用转移预报硬件,几乎达到与硬件支持零开销循环同样地效果。

二、联系

按照传统方式,嵌入式应用中的数字信号处理器(dsp)相对于主微控制器起到从属的作用。在这些应用中,MCU用作系统控制器,而大量的数据处理留给DSP。例如,在音频或视频处理器应用中有可能需要人机界面管理,或则是整个系统的控制。

为完成这些任务,有几种系统设计方案选择。
第一种方案是将DSP和MCU芯片组合在印制电路板上。这种方案成本高并且占用面积大,但是可适当地调整每个芯片的尺寸以最大限度的满足系统需要。

第二种方案是将DSP功能合并到一个MCU中。这种方案只适合于直接的信号处理应用。MCU的时钟频率和计算体系结构根本上不太适合大量的数字处理。有些MCU试图通过增加一个乘法和累加器(MAC)(dsp的一个特点)来补偿上述不足。但是这种方案任然缺乏高级应用所需要的基本的“由上至下”的体系结构设计。

第三种方案是一种将dsp和mcu组合在单个封装内的多芯片模块(mcm).这种方案的局限性是,设计工程师必须按“50/50”的时间比例分配给控制和DSP功能;例如,一旦DSP超出时间,MCU不能完成计算任务。像第一种方案选择一样,当DSP和MCU内核独立存在的时候,需要两套开发工具。

已经出现第四种方案它是将MCU的功能合并到一个DSP中。这类方案的一个例子是美国模拟器件公司(Anolog Device Inc.,简称ADI)的Blackfin 处理器系列。这些新型处理器具有统一的经过优化的体系结构,不仅适于数据计算,而且也适于有关的控制任务。通过平衡执行控制任务与复杂计算的要求,这种方案可以根据系统实时处理的需要,完成100%的控制或者100%的计算任务。完成所有这一切任务不需要在DSP模式和MCU模式之间的模式转换。

DSPMCU
首先让我们回顾一下DSP和MCU的典型功能。DSP主要是在一单个时钟周期内尽可能完成多个MAC(乘法和累加)操作。为了这一点,指令的操作代码通常是可变的超长的指令字(VLIW)。DSP也适于工作在紧密、高效的环路中。另外,为了达到性能指标通常需要编写优化的汇编代码。由于DSP的算法程序一般装在小容量、短等待时间的内置存储器中,所以代码密度通常不是大问题。像DSP主要用于完成计算一样,MCU主要用于完成控制功能。同样地,典型的MCU应用包括许多条件操作,在程序流程中频繁地跳转。通常使用C或者C++语言编写程序。代码密度极为重要,并且根据编译代码的长度来评估算法。存储器系统是基于高速缓存从而允许该系统设计工程师用较长等待时间从较大的存储器中调用较大程序。利用基于高速缓存系统,程序员不需要考虑如何以及何时将指令输入到内核去执行。

统一的DSP和MCU兼备两者的优点。它的指令集由16 bit,32 bit和64 bit操作码组成,但是由于最常用的指令采用16 bit编码,所以编译代码密度大小与那些流行的MCU相同。另外,它包括一个存储器保护功能以及指令高速缓存和数据高速缓存,作为整个存储器管理单元(MMU)的一部分。此外,容易提供一套完整的C/C++开发工具,提供可选汇编语言或者全部汇编语言适合算法优化的编程。

RTOS
系统控制的一个重要方面是任务管理。实时操作系统(RTOS)逐渐地用于控制复杂系统中多种正在进行的和同时发生的任务。通过提供对任务调度与管理的支持,RTOS简化了编程模式,这通常是由MCU控制的,由于普通的DSP不具备支持RTOS需要的所有功能以便有效地控制。

然而,统一的DSP和MCU促进了RTOS几个重要功能的发展。第一个是限制访问功能以保护或者保留存储单元。第二个是配备单独的堆栈和帧指针以减少操作系统(OS)请求以及中断和异常处理所需的等待时间。第三个是具备单独的用户操作模式和管理员操作模式。过去,DSP按照等效于管理员操作模式工作,从而允许在任何时间完全访问所有的系统资源。然而MCU提供类似的在用户操作模式,它允许在OS的顶层运行应用软件。现在,在一个统一的体系结构下提供两种操作模式,因为增强的DSP系统能够限制用户应用软件仅通过OS访问系统资源。

MCU的一个优点是包含使用灵活和种类齐全的外围设备。作为通用的嵌入式控制器,它们通常具备可编程输入输出(I/O)标志、定时器、串行接口和日益增加越来越复杂的标准接口。MCU外围设备的主要作用是嵌入式控制,而不是大量计算。例如,一个实时时钟信号可以唤醒一只温度传感器用以采集环境温度并且将一个延迟的信息通过I/O引脚反馈到MCU。然后,一个定时器的脉冲宽度调制(PWM)输出相应地能够增加或者减小风扇电机的转速。像MCU一样,统一的DSP和MCU具备一套系统控制外围设备(例如,实时时钟、多功能定时器、监视定时器、双向标志位引脚)。然而,它还包括一些高速接口(例如,PCI、异步或者同步存储器控制器、USB、并行视频接口)以便通过这些接口,与许多DMA通道配合快速搬移数据,从而有助于有效利用高速DSP内核的信号处理能力。

功耗控制一直是嵌入式控制器的一项功能。但是,当系统要求DSP具有优良的性能时,对其电源的选择就不太理想。如果将独立的MCU和DSP芯片应用于电源敏感的场合,通常必须为每个芯片提供一个单独的开关稳压器,因为这两个器件的内核电压经常不一致。这会导致降低电源变换效率和增加设计器件的引脚数目,最终增加布线的复杂程度和解决方案的成本。此外,当MCU和DSP的内核集成到一个芯片上时,电源解决方案本质上不是最佳的,因为它必须满足2个完全独立并具有不同负载特性处理器的需求。将这种情况与统一的DSP和MCU相比较,它包含一个集成动态电源管理(DPM)控制器。由于它是只有一个处理器的体系结构,所以该控制器能够完全适合给定应用的需求。它提供几种固有的电源模式以支持多种系统性能等级。另外,对于未使用的时钟和L2存储器可选择性地禁止。该PLL的频率可在一个宽范围(通常1倍~31倍)进行调节,以满足在DSP和MCU内部多层次的处理需求。最后能够调节电压(外部或者通过一个集成的开关控制器)以提供指数式的节省功耗。由于系统成本、开发容易、器件采购和升级能力的原因,设计工程师正趋向采用一种单芯片解决方案用于嵌入式信号处理解决方案。这种单芯片解决方案必须能够同样好地完成DSP和MCU的功能,所以有必要提出一种统一的处理器体系结构。面对MCU的挑战,比较简单的解决方案是将MCU的功能合并到一个高性能的DSP内核,而不是与此相反。当今一个统一的DSP和MCU平台(由BlackfinDSP系列产品说明)已经投放市场,它将在MCU和DSP目前应用领域提供许多应用。

围观 364

单片机、ARM、DSP这三者都可以说是CPU,那这三者有什么区别吗?

首先,CPU(中央处理器),本质就是一个集成电路,实现的功能就是从一个地方(如rom)读出一个指令,从一个地方(如ram)读出数据,然后根据指令的不同对数据做不同的处理(如相加),然后把结果存回某个地方(如ram)。不同架构的CPU会有不同的指令、不同的存取方式、不同的速度、不同的效率等差异。

然后说说单片机(通常意义所说的微控制器MCU),ARM(通常意义所说的高效能RISC),DSP(通常意义所说的通用数字信号处理器),这三个 CPU分别是针对不同的应用而产生的CPU。当然这也不是绝对的,因为ARM现在出的CPU囊括了MCU(如M0),RISC(如A8),DSP(如 M4)。

单片机实际上是微控制器MCU、ARM是高效能RISC、DSP就是数字信号处理器,那您能具体的从这三者的功能谈谈它们的控制原理吗?

微控制器MCU的目的主要是用作控制,他不需要多快的速度,如电饭锅的控制器,只需要控制发热元件的通断、信号等的开关等,但是对成本要求很严格,所以一般做得比较简单,8位的很多。

高效能的RISC,常用于一些数据处理比较多的地方,最常见的莫过于现在的消费性电子产品了,手机、pad等,目前ARM的商业模式主要是卖内核,集成到各家的SoC中间。它其实就是个通用的CPU,能干各种各样的活,和Intel的CPU一样。但是通用就有效能问题,在某些特殊场合,效能就显得没那么高了,如大量运算(譬如做FFT)的时候,这样就有DSP的用武之地了。

DSP数字信号处理器,只要是做数字信号处理的模块都可以叫做一个DSP,如视频解码的IP核。通用的数字信号处理器,如TI的TMS320C55x DSP。该CPU的长处就是在于运算,大量循环的计算,如连续1024个乘加。他的指令针对这种应用有特殊的处理,相比RISC可以更快速高效地完成这类运算。

您能结合开发案例,具体谈谈它们的主要应用场景吗?

单片机集成完整的冯诺依曼体系所规定的结构,是一个完整的计算机体系。实现特定的运算功能,应用集中在工业自动化控制等专门化需求的运算领域,大多都是工业应用上的需求,如“基于单片机设计的LED驱动电源综合测试仪”、“单片机拨号程序”等。

ARM芯片精髓在“R”,是RISC精简指令集的意思。RISC指令集根据80%的时候只用到了20%的处理器指令的状况,使用了经过精简设计的指令系统,使得整个处理器的设计可以更加简洁,功耗、体积大大缩小,所以ARM在手机、平板等智能移动设备上得到了广泛应用。如“arm的 linux内核下的手持机开发”、“ARM的linux内核LVDS显示开发”等均是基于ARM芯片的智能产品。

DSP是数字信号处理器,相较于普通计算机实现通用计算的特点,DSP只负责数字信号(视频、音频或者其他传感器获得数字信号)处理。在日常生活中,常见的DVD、蓝光播放机、数字电视机顶盒、MP4等都广泛使用了DSP。这个“基于DSP的声音控制系统开发”、“基于DSP图像处理固定区域内人数统计仪”等对于音频音质、图像像素要求较高的产品多使用DSP控制器。

来源:嵌入式精选

围观 434

微控制器(MCU)深入人们应用生活,几乎大小设备都看得到MCU踪影,在MCU导入DSP数位讯号处理器、FPU浮点运算单元功能后,MCU更大幅扩展 元件可适用范围,这几年来,在众多MCU大厂纷纷针对旗下商品推出多样整合方案,不管是产品策略还是市场区隔,也让MCU市场更加丰富多元。
  
MCU(Microcontroller Unit)深入生活应用是不容易质疑的趋势,尤其是MCU在功能优化或市场区隔目的下,进行DSP(digital signal processor)数位讯号处理器或FPU(Floating Point Unit)浮点运算单元功能整合,使得MCU的可应用场域大幅扩展。
  
如果以FPU或DSP导入目的,一般在MCU中追加FPU、DSP整合架构,主要目的还是在考量成本下的设计方向,尤其在早期半导体元 件,SOC(System on Chip)系统单芯片与MCU存在一段价格差距,如果仅需要SDP或FPU进行运算加速,又不想选用高单价SOC,这时整合DSP或FPU硬件加速单元的 MCU产品、不仅可以更好的提供运行效能,同时又能在成本控制上表现更加优异。
  
MCU整合芯片封装成本骤降 增加MCU功能扩充应用空间
  
以早期的SOC产品来看,搭载DSP与FPU硬件加速器是SOC产品的重要特性,其中DSP与FPU的应用方向主要以音讯、影像等处理加速运算为主,而在制 程技术持续优化,SOC的成本逐步与MCU拉近,MCU在32位元甚至64位元架构下,也开始有结合DSP或是FPU硬件加速单元的解决方案。
  
先看看MCU加上硬件加速单元的优点,在MCU追加FPU导入,最直接的效益是早期利用MCU处理类似FPU运算内容,会因为MCU本身的运算架构限制,让 运算结果得出时间会相对拉长,而在导入硬件加速器处理浮点运算时,因为硬件呼叫或是资料传递就能透过硬件算出数据,MCU本身耗在浮点运算的记忆体资源可 以因硬件加速整合减少至少10%。
  
当然,从目的性来看,不管MCU有无整合FPU硬件加速单元,浮点运算需求使用MCU现有的运算能力也 能得出结果,只是前提是计算过程会耗用较多运算时间与硬件资源,对于可等待、无需提供即时反应的系统自然可以不考虑整合FPU的MCU方案,但若是对系统 效能、回馈反应速度要求高的整合需求,MCU结合FPU的效益提升不仅仅是运算资源耗用优化、节能优势等效果,反而是加快系统回应与效能提升的效用,才是 MCU结合FPU硬件加速最直接、重要的功能改进,也让MCU可以因应更高复杂度的整合工作。
  
高阶数值运算 运用硬件加速满足设计需求
  
在早期MCU元件仍以8位元架构为主流的应用方向,MCU在资料处理与运算处理上,本来就有因架构的问题而有其处理限制,例如,MCU进行小数点、分数处理 运算时,因为4位元或是8位元位数有限,就必须采用有限数值进行处理,透过数值结果的限制换取处理复杂度简化与效能要求目的,而这种因为数值处理产生的误 差即“截断误差”,截断误差也会因为使用MCU进行数据运算的限制,而令误差数值产生扩大现象。
  
而在MCU整合FPU硬件加速,在运算同类型的数据处理时,例如在IoT物联网或是终端感测器应用中,常有将外部类比感测数据转换成数位资料的资料撷取、处理需求,这时透过MCU整合的 FPU/DSP硬件加速单元,不仅可将感测数据更快速处理完成、加快系统回应,同时,也能导入进阶运算减少数据演算的误差。
  
在实际应用 中,FPU硬件加速器本身并无法完全解决误差扩大问题,所以会有FPU、DSP等不同硬件加速整合架构下的应用目的考量,举例来说,透过DSP硬件加速 器,可针对特殊数据类型更高速、可靠的运算处理输出,像是DSP可利用指令来进行多种运算,处理如快速快速傅立叶转换(fast Fourier transform;FFT)或有限脉冲回应(Finite impulse response;FIR)进阶运算中重要且耗资源的运算需求,甚至透过单周期的指令便能处理单一指令多重资料(Single Instruction Multiple Data;SIMD)运算需求,MCU在进行进阶数值处理方面还可获得进阶增强效益。
  
FPU/DSP不同硬件加速单元具互补作用
  
虽说整合FPU或DSP基本在架构与应用方向就不同,但实际上两者分别是针对数据运算、讯号处理对应至各式演算法应用,两者功能可以说是各有互补效用,比较 难被独立拆分。以ARM Cortex-M4来看,若仅提供DSP硬件加速处理器反而没设置FPU浮点运算加速器反而会造成应用限制,因为在Cortex-M4应用场合如果仅有数 位信号处理加速硬件支援,少了浮点运算支援,对开发需求端若碰到需要数值进阶运算加速,就会造成设计上的弹性限制,或是导致还需透过外部功能芯片支援,或 利用原有的运算资源因应数值进阶计算需求,反而会因为数值处理效能限制了Cortex-M4的应用可能性。
  
同样的状况也发生在仅有FPU而没有设置DSP的微控制器应用方案上,对DSP或是FPU应用功能是相辅相成,独立整合对于微控制器的配置并未能产生综效,反而会成为发展路径的限制。
  
再者,从新一代IoT产品发展方向,透过感测器融合(Sensor Fusion)应用方向为例,若是Sensor Fusion概念为将多感测器整合在单一系统中协同运行,系统需要高阶数值与讯号处理能力,才可以将关键数值讯号自复杂数据中提取出来。
  
至于感测器融合可以再搭配即时的调整、控制与校正处理,由DSP加上FPU协同处理达到高精密度、高效率进行撷取数据的精密分析,尤其是现有的Sensor Fusion已做到陀螺仪、加速度器、温度、压力甚至触控感测都做在同一个模组中,必须透过DSP与FPU预先筛出相对精密且兼顾处理效率的讯号撷取与预 处理的感测数据,提供相对高效的系统更具效率的感测数值处理机制。
  
DSP数位滤波应用 可提升感测讯号撷取品质
  
此外,在MCU整合FPU的另一个优势在于可在系统中善用其运算特性,例如,运用数位演算法进行撷取数值的数位滤波应用,针对处理讯号进一步以基于硬件加速 的数位演算法进行波形或数据再处理,形成一提升数据噪讯比(SNR)的便捷作法,数位滤波器还可利用演算机制优化提供不同程度大小的滤波效果,这在于微控 制器用于感测热门的心率、血液含氧量、运动数值等生理资讯,或是数位电表、智能电表等应用,解决末端数据因为杂讯或环境噪讯影响,倒置讯号失真的数据优化 回补效用,优化终端取得的讯号波形信号品质,更利于后续处理或数据使用。
  
为了优化末端应用,微控制器整合硬件加速单元也蔚为一股风潮,不 只是DSP或是FPU硬件加速单元,例如就有微控制器在架构上加入了VMU硬件加速单元,处理因应马达应用重点的三角函数数值运算需求,或是对应无线电通 讯需求整合的数据分析演算支援,与现有FPU浮点运算硬件加速功能区隔,采取协同分工的方式加速整体微控制器的应用效能。
  
有趣的是,针对不同的市场与运算需求定位,微控制器除在运算时脉进行差异区隔,以最实际的运算效能区分不同应用场合、市场切分外,整合不同应用所需的硬件加速单元也成为 产品市场定位的重要分界,例如针对穿戴式运算应用市场的微控制器,在要求功耗、感测器融合、元器件成本方面就可仅整合FPU、DSP硬件加速定位市场区 隔,在高阶的微控制器应用上,甚至有解决方案直接整合硬件绘图引擎,直接看准工业用人机介面终端的应用需求,另针对如车用电子、IoT物联网等不同市场需 求,也有五花八门的硬件加速单元配置组合,满足不同整合需求的应用架构。
  
另一个微控制器整合DSP、FPU硬件加速单元的目的,其实加入 硬件加速单元整合而不采行外部解决方案来组构硬件加速运算需求,其最大的优点在于成本方面的极致优化,因为电子电路板可以更节省载板空间,运用单一芯片就 能改善运算的整体效率,而在软体开发层面,可在整合架构下运用简单呼叫与资料传递的再处理,便能满足应用服务的数据计算产出效能要求,甚至于开发完成的成 品还可运用一致性侦错分析工具,直接针对系统进行全面分析与勘误,在开发设计的效率与速度都能获得改善。

来源:网络(版权归原著作者所有)

围观 502

MCU和DSP最近在制作电子类产品方面都应用广泛,DSP在数字信号处理、通信领域应用较多,MCU在自动控制、智能信号上应用广泛。

处理器通常可以分为三大类,就是数字信号处理器-DSP、微控制器-MCU,还有中央处理器-CPU。为便于大家理解它们在应用中的差异,我们不妨作这样的比喻:DSP好比是一次方程式赛车的引擎,追求的是高速高效;MCU好比是摩托车引擎,追求的是灵巧便捷;CPU则好比是豪华家用车的引擎,追求的是面面俱到。当然DSP与MCU的融合将相应成辉,可以满足更多更广的应用需求。

MCU的特点:

适合实时控制和操作任务

可预测的执行周期

擅长中断处理,特别是外部异步事件

比较多的I/O功能,

程序较大

丰富的片上外设

DSP的特点:

适合处理实时连续的数据流;

针对多重密集算法的数学引擎;

可观的MIPS性能;

可预测的执行时间;

适合处理小型和重复性的工作;

代码体积小、芯片体积小等

考虑一个数字信号处理的实例,比如有限冲击响应滤波器(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处理器在指令集和硬件方面都支持饱和计算、舍入和移位。

来源:网络(版权归原著作者所有)

围观 320

一、区别 

两则的分流造成的主要原因是数字信号处理的简便性,考虑一个数字信号处理的实例,比如有限冲击响应滤波器(FIR)。用数学语言来说,FIR滤波器是做一系列的点积。取一个输入量和一个序数向量,在系数和输入样本的滑动窗口间作乘法,然后将所有的乘积加起来,形成一个输出样本。 
 
类似的运算在数字信号处理过程中大量的重复发生,使得为此设计的器件必须提供专门的支持,促进了DSP器件与通用处理器(GPP)的分流:

1、对密集乘法的支持 

2、存储器结构

此外,DSP处理器几乎都不具备数据的高速缓存。这是因为DSP的典型数据是数据流。也就是说,DSP处理器对每个数据样本做计算后,就丢弃,几乎不再重复使用。

3、零开销循环 
 
DSP算法的一个共同的特点,即大多数处理时间都花在执行较小的循环上,也就容易理解,为什么大多数的DSP都有专门的硬件,用于零开销循环。所谓的零开销循环是指处理器在执行循环时,不用花时间去检查循环计数器的值,条件转移到循环大额顶部,将循环计数器减1。

与此相反,GPP的循环使用软件来实现。某些高性能的GPP使用转移预报硬件,几乎达到与硬件支持零开销循环同样地效果。

二、联系 
 
按照传统方式,嵌入式应用中的数字信号处理器(dsp)相对于主微控制器起到从属的作用。在这些应用中,MCU用作系统控制器,而大量的数据处理留给DSP。例如,在音频或视频处理器应用中有可能需要人机界面管理,或则是整个系统的控制。 
 
为完成这些任务,有几种系统设计方案选择。 
 
第一种方案是将DSP和MCU芯片组合在印制电路板上。这种方案成本高并且占用面积大,但是可适当地调整每个芯片的尺寸以最大限度的满足系统需要。   
 
第二种方案是将DSP功能合并到一个MCU中。这种方案只适合于直接的信号处理应用。MCU的时钟频率和计算体系结构根本上不太适合大量的数字处理。有些MCU试图通过增加一个乘法和累加器(MAC)(dsp一个特点)来补偿上述不足。但是这种方案任然缺乏高级应用所需要的基本的“由上至下”的体系结构设计。 
 
第三种方案是一种将dsp和MCU组合在单个封装内的多芯片模块(mcm)。这种方案的局限性是,设计工程师必须按“50/50”的时间比例分配给控制和DSP功能;例如,一旦DSP超出时间,MCU不能完成计算任务。像第一种方案选择一样,当DSP和MCU内核独立存在的时候,需要两套开发工具。 
 
已经出现第四种方案它是将MCU的功能合并到一个DSP中。这类方案的一个例子是美国模拟器件公司(Anolog Device Inc.,简称ADI)的Blackfin 处理器系列。这些新型处理器具有统一的经过优化的体系结构,不仅适于数据计算,而且也适于有关的控制任务。通过平衡执行控制任务与复杂计算的要求,这种方案可以根据系统实时处理的需要,完成100%的控制或者100%的计算任务。完成所有这一切任务不需要在DSP模式和MCU模式之间的模式转换。 

DSP和MCU  

首先让我们回顾一下DSP和MCU的典型功能。DSP主要是在一单个时钟周期内尽可能完成多个MAC(乘法和累加)操作。为了这一点,指令的操作代码通常是可变的超长的指令字(VLIW)。DSP也适于工作在紧密、高效的环路中。另外,为了达到性能指标通常需要编写优化的汇编代码。由于DSP的算法程序一般装在小容量、短等待时间的内置存储器中,所以代码密度通常不是大问题。像DSP主要用于完成计算一样,MCU主要用于完成控制功能。同样地,典型的MCU应用包括许多条件操作,在程序流程中频繁地跳转。通常使用C或者C++语言编写程序。代码密度极为重要,并且根据编译代码的长度来评估算法。存储器系统是基于高速缓存从而允许该系统设计工程师用较长等待时间从较大的存储器中调用较大程序。利用基于高速缓存系统,程序员不需要考虑如何以及何时将指令输入到内核去执行。

统一的DSP和MCU兼备两者的优点。它的指令集由16 bit,32 bit和64 bit操作码组成,但是由于最常用的指令采用16 bit编码,所以编译代码密度大小与那些流行的MCU相同。另外,它包括一个存储器保护功能以及指令高速缓存和数据高速缓存,作为整个存储器管理单元(MMU)的一部分。此外,容易提供一套完整的C/C++开发工具,提供可选汇编语言或者全部汇编语言适合算法优化的编程。  
  
RTOS 

系统控制的一个重要方面是任务管理。实时操作系统(RTOS)逐渐地用于控制复杂系统中多种正在进行的和同时发生的任务。通过提供对任务调度与管理的支持,RTOS简化了编程模式,这通常是由MCU控制的,由于普通的DSP不具备支持RTOS需要的所有功能以便有效地控制。 

然而,统一的DSP和MCU促进了RTOS几个重要功能的发展。第一个是限制访问功能以保护或者保留存储单元。第二个是配备单独的堆栈和帧指针以减少操作系统(OS)请求以及中断和异常处理所需的等待时间。第三个是具备单独的用户操作模式和管理员操作模式。过去,DSP按照等效于管理员操作模式工作,从而允许在任何时间完全访问所有的系统资源。然而MCU提供类似的在用户操作模式,它允许在OS的顶层运行应用软件。现在,在一个统一的体系结构下提供两种操作模式,因为增强的DSP系统能够限制用户应用软件仅通过OS访问系统资源。 

MCU的一个优点是包含使用灵活和种类齐全的外围设备。作为通用的嵌入式控制器,它们通常具备可编程输入输出(I/O)标志、定时器、串行接口和日益增加越来越复杂的标准接口。MCU外围设备的主要作用是嵌入式控制,而不是大量计算。例如,一个实时时钟信号可以唤醒一只温度传感器用以采集环境温度并且将一个延迟的信息通过I/O引脚反馈到MCU。然后,一个定时器的脉冲宽度调制(PWM)输出相应地能够增加或者减小风扇电机的转速。像MCU一样,统一的DSP和MCU具备一套系统控制外围设备(例如,实时时钟、多功能定时器、监视定时器、双向标志位引脚)。然而,它还包括一些高速接口(例如,PCI、异步或者同步存储器控制器、USB、并行视频接口)以便通过这些接口,与许多DMA通道配合快速搬移数据,从而有助于有效利用高速DSP内核的信号处理能力。 

功耗控制一直是嵌入式控制器的一项功能。但是,当系统要求DSP具有优良的性能时,对其电源的选择就不太理想。如果将独立的MCU和DSP芯片应用于电源敏感的场合,通常必须为每个芯片提供一个单独的开关稳压器,因为这两个器件的内核电压经常不一致。这会导致降低电源变换效率和增加设计器件的引脚数目,最终增加布线的复杂程度和解决方案的成本。此外,当MCU和DSP的内核集成到一个芯片上时,电源解决方案本质上不是最佳的,因为它必须满足2个完全独立并具有不同负载特性处理器的需求。将这种情况与统一的DSP和MCU相比较,它包含一个集成动态电源管理(DPM)控制器。由于它是只有一个处理器的体系结构,所以该控制器能够完全适合给定应用的需求。它提供几种固有的电源模式以支持多种系统性能等级。另外,对于未使用的时钟和L2存储器可选择性地禁止。该PLL的频率可在一个宽范围(通常1倍~31倍)进行调节,以满足在DSP和MCU内部多层次的处理需求。最后能够调节电压(外部或者通过一个集成的开关控制器)以提供指数式的节省功耗。由于系统成本、开发容易、器件采购和升级能力的原因,设计工程师正趋向采用一种单芯片解决方案用于嵌入式信号处理解决方案。这种单芯片解决方案必须能够同样好地完成DSP和MCU的功能,所以有必要提出一种统一的处理器体系结构。面对MCU的挑战,比较简单的解决方案是将MCU的功能合并到一个高性能的DSP内核,而不是与此相反。当今一个统一的DSP和MCU平台也已经投放市场,它将在MCU和DSP目前应用领域提供许多应用。 

围观 370

微控制器(MCU)深入人们应用生活,几乎大小设备都看得到MCU踪影,在MCU导入DSP数位讯号处理器、FPU浮点运算单元功能后,MCU更大幅扩展元件可适用范围,这几年来,在众多MCU大厂纷纷针对旗下商品推出多样整合方案,不管是产品策略还是市场区隔,也让MCU市场更加丰富多元。

MCU(Microcontroller Unit)深入生活应用是不容易质疑的趋势,尤其是MCU在功能优化或市场区隔目的下,进行DSP(digital signal processor)数位讯号处理器或FPU(Floating Point Unit)浮点运算单元功能整合,使得MCU的可应用场域大幅扩展。
 
MCU整合FPU可以在进阶数值运算的精密度大幅提升、处理效能也能获得改善。
  
针对IoT应用开发的MCU方案,整合DSP可优化感测器数据撷取品质与提升信号处理效能。
  
如果以FPU或DSP导入目的,一般在MCU中追加FPU、DSP整合架构,主要目的还是在考量成本下的设计方向,尤其在早期半导体元件,SOC(System on Chip)系统单晶片与MCU存在一段价格差距,如果仅需要SDP或FPU进行运算加速,又不想选用高单价SOC,这时整合DSP或FPU硬体加速单元的MCU产品、不仅可以更好的提供运行效能,同时又能在成本控制上表现更加优异。
  
MCU整合晶片封装成本骤降 增加MCU功能扩充应用空间
  
以早期的SOC产品来看,搭载DSP与FPU硬体加速器是SOC产品的重要特性,其中DSP与FPU的应用方向主要以音讯、影像等处理加速运算为主,而在制程技术持续优化,SOC的成本逐步与MCU拉近,MCU在32位元甚至64位元架构下,也开始有结合DSP或是FPU硬体加速单元的解决方案。
  
先看看MCU加上硬体加速单元的优点,在MCU追加FPU导入,最直接的效益是早期利用MCU处理类似FPU运算内容,会因为MCU本身的运算架构限制,让运算结果得出时间会相对拉长,而在导入硬体加速器处理浮点运算时,因为硬体呼叫或是资料传递就能透过硬体算出数据,MCU本身耗在浮点运算的记忆体资源可以因硬体加速整合减少至少10%。
  
当然,从目的性来看,不管MCU有无整合FPU硬体加速单元,浮点运算需求使用MCU现有的运算能力也能得出结果,只是前提是计算过程会耗用较多运算时间与硬体资源,对于可等待、无需提供即时反应的系统自然可以不考虑整合FPU的MCU方案,但若是对系统效能、回馈反应速度要求高的整合需求,MCU结合FPU的效益提升不仅仅是运算资源耗用优化、节能优势等效果,反而是加快系统回应与效能提升的效用,才是MCU结合FPU硬体加速最直接、重要的功能改进,也让MCU可以因应更高复杂度的整合工作。

高阶数值运算 运用硬体加速满足设计需求
  
在早期MCU元件仍以8位元架构为主流的应用方向,MCU在资料处理与运算处理上,本来就有因架构的问题而有其处理限制,例如,MCU进行小数点、分数处理运算时,因为4位元或是8位元位数有限,就必须采用有限数值进行处理,透过数值结果的限制换取处理复杂度简化与效能要求目的,而这种因为数值处理产生的误差即“截断误差”,截断误差也会因为使用MCU进行数据运算的限制,而令误差数值产生扩大现象。
  
而在MCU整合FPU硬体加速,在运算同类型的数据处理时,例如在IoT物联网或是终端感测器应用中,常有将外部类比感测数据转换成数位资料的资料撷取、处理需求,这时透过MCU整合的FPU/DSP硬体加速单元,不仅可将感测数据更快速处理完成、加快系统回应,同时,也能导入进阶运算减少数据演算的误差。
  
在实际应用中,FPU硬体加速器本身并无法完全解决误差扩大问题,所以会有FPU、DSP等不同硬体加速整合架构下的应用目的考量,举例来说,透过DSP硬体加速器,可针对特殊数据类型更高速、可靠的运算处理输出,像是DSP可利用指令来进行多种运算,处理如快速快速傅立叶转换(fast Fourier transform;FFT)或有限脉冲回应(Finite impulse response;FIR)进阶运算中重要且耗资源的运算需求,甚至透过单周期的指令便能处理单一指令多重资料(Single Instruction Multiple Data;SIMD)运算需求,MCU在进行进阶数值处理方面还可获得进阶增强效益。
  
FPU/DSP不同硬体加速单元具互补作用
  
虽说整合FPU或DSP基本在架构与应用方向就不同,但实际上两者分别是针对数据运算、讯号处理对应至各式演算法应用,两者功能可以说是各有互补效用,比较难被独立拆分。以ARM Cortex-M4来看,若仅提供DSP硬体加速处理器反而没设置FPU浮点运算加速器反而会造成应用限制,因为在Cortex-M4应用场合如果仅有数位信号处理加速硬体支援,少了浮点运算支援,对开发需求端若碰到需要数值进阶运算加速,就会造成设计上的弹性限制,或是导致还需透过外部功能晶片支援,或利用原有的运算资源因应数值进阶计算需求,反而会因为数值处理效能限制了Cortex-M4的应用可能性。
  
同样的状况也发生在仅有FPU而没有设置DSP的微控制器应用方案上,对DSP或是FPU应用功能是相辅相成,独立整合对于微控制器的配置并未能产生综效,反而会成为发展路径的限制。
  
再者,从新一代IoT产品发展方向,透过感测器融合(Sensor Fusion)应用方向为例,若是Sensor Fusion概念为将多感测器整合在单一系统中协同运行,系统需要高阶数值与讯号处理能力,才可以将关键数值讯号自复杂数据中提取出来。
  
至于感测器融合可以再搭配即时的调整、控制与校正处理,由DSP加上FPU协同处理达到高精密度、高效率进行撷取数据的精密分析,尤其是现有的Sensor Fusion已做到陀螺仪、加速度器、温度、压力甚至触控感测都做在同一个模组中,必须透过DSP与FPU预先筛出相对精密且兼顾处理效率的讯号撷取与预处理的感测数据,提供相对高效的系统更具效率的感测数值处理机制。

DSP数位滤波应用 可提升感测讯号撷取品质
  
此外,在MCU整合FPU的另一个优势在于可在系统中善用其运算特性,例如,运用数位演算法进行撷取数值的数位滤波应用,针对处理讯号进一步以基于硬体加速的数位演算法进行波形或数据再处理,形成一提升数据噪讯比(SNR)的便捷作法,数位滤波器还可利用演算机制优化提供不同程度大小的滤波效果,这在于微控制器用于感测热门的心率、血液含氧量、运动数值等生理资讯,或是数位电表、智能电表等应用,解决末端数据因为杂讯或环境噪讯影响,倒置讯号失真的数据优化回补效用,优化终端取得的讯号波形信号品质,更利于后续处理或数据使用。
  
为了优化末端应用,微控制器整合硬体加速单元也蔚为一股风潮,不只是DSP或是FPU硬体加速单元,例如就有微控制器在架构上加入了VMU硬体加速单元,处理因应马达应用重点的三角函数数值运算需求,或是对应无线电通讯需求整合的数据分析演算支援,与现有FPU浮点运算硬体加速功能区隔,采取协同分工的方式加速整体微控制器的应用效能。
  
有趣的是,针对不同的市场与运算需求定位,微控制器除在运算时脉进行差异区隔,以最实际的运算效能区分不同应用场合、市场切分外,整合不同应用所需的硬体加速单元也成为产品市场定位的重要分界,例如针对穿戴式运算应用市场的微控制器,在要求功耗、感测器融合、元器件成本方面就可仅整合FPU、DSP硬体加速定位市场区隔,在高阶的微控制器应用上,甚至有解决方案直接整合硬体绘图引擎,直接看准工业用人机介面终端的应用需求,另针对如车用电子、IoT物联网等不同市场需求,也有五花八门的硬体加速单元配置组合,满足不同整合需求的应用架构。
  
另一个微控制器整合DSP、FPU硬体加速单元的目的,其实加入硬体加速单元整合而不采行外部解决方案来组构硬体加速运算需求,其最大的优点在于成本方面的极致优化,因为电子电路板可以更节省载板空间,运用单一晶片就能改善运算的整体效率,而在软体开发层面,可在整合架构下运用简单呼叫与资料传递的再处理,便能满足应用服务的数据计算产出效能要求,甚至于开发完成的成品还可运用一致性侦错分析工具,直接针对系统进行全面分析与勘误,在开发设计的效率与速度都能获得改善。

来源: DIGITIMES

围观 365

页面

订阅 RSS - DSP