微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 如何实现高性能的DSP处理(上)

如何实现高性能的DSP处理(上)

时间:05-13 来源:互联网 点击:
指令划分

指令划分(instructionpartitioning)通常比较简单。如果程序代码能容纳在内部存储器中,只需要关闭指令高速缓存,直接把程序代码映射到内部存储器就可以获得最大的效能。然而,多数应用程序代码不能全部容纳在内部存储器中,所以必须打开高速指令缓存。

高速缓存容量通常小于外部存储器,但这并不是一个问题,因为对于多数嵌入式软件,“通常20%的程序代码的运行时间占整个运行时间的80%”。大多数情况下,最耗时间的程序代码都很小,足够放置到高速缓存中,所以高速缓存器能够充分发挥其作用。

为了提高性能,还可以使用指令的线锁机制(line-lockingmechanism),锁定程序的最关键的部分代码。如需要进一步提高性能,可以关闭指令高速缓存并采用“存储器覆盖”的机制代替,该机制使用DMA将程序代码传输到一个存储器块,而同时在另一个存储器块上执行操作。

数据划分

数据划分通常没有指令划分那么简单。和程序代码划分一样,如果数据缓冲区可以被容纳在内部存储器中,你就没有多余的工作。如果不是,首要任务就是要区分静态数据(如用于查找表)和动态数据。数据高速缓存在静态数据方面使用较好,而DMA通常在动态数据方面性能更佳。

即使使用了数据高速缓存,也通常需要设立一个外设DMA传输通道,将数据从外设传输到外部存储器。如果采用了数据高速缓存,可以将这些数据读入到内部存储器,只要在访问数据前使高速缓存的缓冲区无效即可。如果正在使用DMA,则可以建立DMA传输,将数据从外部存储器读入到内部存储器。

相关阅读:如何实现高性能的DSP处理(下)

 供稿:ADI公司

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top