XC166单片机的指令流水线存在着不可避免的阻塞现象,MAC单元指令也一样。尽管在硬件设计时已经采用了专用模块来减少阻塞,但有些阻塞是不可避免的,从程序优化的角度来说,可以充分利用指令流水线阻塞现象,通过重排指令流水线上的指令,消除阻塞,以使得程序的运行时间缩短,从而达到优化的目的。
通常DSP优化方法可以分为两类:一类是与芯片相关的,另一类是与芯片无关的共模电感器。与芯片无关的优化方法独立于单片机硬件,适用于所有单片机及DSP处理器,下面根据使用XC166单片机的经验总结一些优化DSP程序的方法。
1 通用优化方法
1.1 数据组处理
数据组处理的基本思想是通过成组的处理数据,以节约每次调用处理子程序所需的附加指令。数据组处理可以在C语言或汇编语言程序中实现。一般而言,对于开发DSP程序,最常用的程序语言为C和汇编。下面分别介绍如何在C和汇编程序中使用数据组处理优化方法。
(1)C程序
在C环境中开发DSP程序,通常算法本身由汇编编写,以便优化实现。C主程序通过调用汇编实现的核心处理子程序来完成对数据的处理。核心处理子程序有两种实现方法,一种是数组处理,另一种是单值处理,假设单值处理子程序的核心部分与数组处理子程序的核心部分所需机器周期相同,并且调用子程序的前期处理需M个机器周期,后期处理需要N个机器周期,如果子程序被调用K次,那么理想情况下,数据组处理可以节约(K-1)(M+N)个机器周期,如图1所示。
(2一体电感器)汇编程序
在汇编程序中实现数据组处理有多种方法,比如数组操作,数组读入/写出等。
1、数组操作。数组操作是将多个不同的短操作数装入一个长位数的寄存器,然后进行运算操作。比如,1个16位的寄存器可以装入2个8位的来自A/D转换器的数据。下面举例说明数据组处理在汇编程序中的应用。
2、数组读入写出。这种方法是将多个短操作数合并为一个长操作数后进共模电感器行读入/写出操作,如上面例子中的输入/输出部分。
1.2 数据存储差模电感器交织
数据存储器交织的目的是通过重新排列数据在存储器中的位置,以使得程序读写数据的时间最短,比如有2个8位的复数x和y,一般情况下,复数将按下列顺序存入内存:real(x),image(x),real(y),image(y)。但如果想使得读取复数的实部更容易,可以把数据重新排列如下:real(x),real(y),image(x),image(y),如图2所示。
1.3 循环展开
循环展开是一种非常传统的程序优化方法,可以用于所有程序优化中,循环展开的目的是通过重复循环中的程序,减少循环次数,从而减少循环判断指令的执行次数,以此来降低程序执行所需的机器周期,下面举一个例子来说明循环展开在XC164CS单片机中的应用。
1.4 指令流水线重排
指令流水线重排的意思是通过软件程序中的指令重排来改变指令流水线,以此来排除由于硬件引起的指令堵塞,从而加快程序的运行时间。这种优化操作通常用在汇编程序中,指令流水线重排是一个一般的优化原理,把这个原理用于不同类型的单片机可以导出不同的与单片机硬件相关的优化方法。下面介绍的基于XC166单片机的优化方法主要是应用这个优化原理得到的。
2 与芯片相关的优化技术
2.1 XC166指令流水线
XC166单片机指令流水线共有7级,前两级为取指令流水线,后5级为执行流水线,所有指令都必须经过5级执行流水线的每一级。
第1级--指令预取。这一级根据预多层电感器测顺序,把指令从程序管理单元(PMU)取出,取出的指令在跳转检测单元进行前期处理,以检测是否有跳转,预测逻辑决定是否接收转移。
电源管理发展问题分析过去十年间,电源管理技术发生了巨大的变化。电子产品的便携化、个性化浪潮改变了消费电子市场的版图,进而改写了电源设计、集成特性和效率方面的规则,并将智能电源管理和系统知识推到了产品设计的最前线。飞速发展
电源浪涌保护器的参数选择及线路保护浪涌保护器(Su rge p ro tect ive device, SPD) , 也称电涌保护器、避雷器等, 它的作用是保证电子设备免受浪涌过电压(雷电过电压、操作过电压等) 的破坏, 既不影响设备
TMS320F2812的SPI接口设计摘要:为了使控制系统的参数能够在掉电之前保存下来,提出一种SPI模块与25LC040芯片的接口设计方法,介绍了DSP芯片TMS320F2812 SPI模块的特点,以及25LC040芯片的功能特点、操作