DSP下的简单性能优化

原创 2013年12月04日 10:12:54

笔者之前在DSP6416下开发TDD模式的MAC层协议,发现了一些问题,也对时间性能做了简单优化。

在开发MAC层的过程中,发现了很多影响DSP运行速度的因素,主要包括:

1.     动态内存申请和释放,即malloc和free函数的使用。

当使用次数不多时,malloc和free的处理过程耗时为us级。但当多次动态申请内存后,free函数中会进行内存碎片整理和回收,持续时间可能会到达ms级,且具有系统最高优先级,不可被打断。严重影响MAC层实时性的响应。

因此需将使用动态申请内存的部分改为静态的内存,即用数组的方式固定占用内存。考虑到IRAM空间小,将实时性不高且大量占用空间的存储结构放到SDRAM中,通过IRAM的指针去访问。

2.     存储拷贝memcpy函数

memcpy函数是影响MAC运行速度的一个因素。memcpy对源地址和目的地址以及拷贝长度是有不同的传输速率,速率最多可相差2.5倍。如果源与目的地址都是IRAM, IRAM中代码运行速率很快,此差距可忽略。但当源与目的有一个为SDRAM时,对于8K字节,此时延可到达175us-400us范围。

原理不再赘述,目前工程中对于此问题的优化:

A.   对于大数据量的拷贝对于源地址和目的地址以及传输长度进行了规范,即源地址对齐偶地址,拷贝长度对齐8字节。效率提高将近2倍;

B.    减少memcpy的操作次数,尽量使用指针进行转移等操作。                

3.     printf及其他用于调试或显示的系统函数

经测试,printf函数或其它调试以及系统函数的占用时间为ms级,且具备最高的系统优先级,不响应中断,对于代码运行有严重影响。


相关文章推荐

memcpy的用法简介

1、memcpy 函数用于 把资源内存(src所指向的内存区域) 拷贝到目标内存(dest所指向的内存区域);拷贝多少个?有一个size变量控制 拷贝的字节数; 函数原型:void *memcpy...

全面优化你的memcpy!

http://blog.21ic.com/user1/2092/archives/2006/8095.html  在BlackFin上面关全局中断其实是很麻烦的事.它不是清除或者设置一个...

memcpy优化 实现高效

1:函数原型void * memcpy ( void * des, const void * src, size_t size ); 它是实现对内存的拷贝,所以还是很高效的,我这里没有考虑字...

DSP优化,通用的调整性能的策略 .

1 通用的调整性能的策略 1.1 选择恰当的编译器选项 必须要用的选项 –O[2|3] 可以使用-mt(要确保写的数据和读的数据在内存空间上没有重合) -mh  Specify specu...

DSP优化,通用的调整性能的策略

DSP优化,通用的调整性能的策略 http://blog.csdn.net/henhen2002/article/details/4562993 1 通用的调整性能的策略 1...

进步DSP代码运行性能的研究

进步DSP代码运行性能的研究    1 引言  随着微控制器技术的发展,以TI公司TMS320C2000系列为代表的DCS型数字信号处理器DSP应用广泛。该类型DSP内部集成Flash存储器,可将二进...
  • Augusdi
  • Augusdi
  • 2011年03月22日 23:11
  • 1452

TI C64x系列定点DSP性能比较及发展趋势

1、 最常用的DSP C641x和C641xT系列 ◆基于TMS320C64x内核,处理器的峰值速度为 8000MMACS(主频1GHz ) ◆多达 6 个多用途通信端口     ◆3 个常规 ...

性能优化 ViewStub动态控件 与 tools命名空间简单使用

ViewStub动态控件     ViewStub 是一个隐藏的,不占用内存空间的视图对象,它可以在运行时延迟加载布局资源文件。换言之,在不加载布局资源的时候,ViewStub的试图对象不占用系...
  • ffengz
  • ffengz
  • 2016年09月24日 16:29
  • 189

10种简单的Java性能优化

本文由 ImportNew - 一直在路上 翻译自 jaxenter。欢迎加入翻译小组。转载请见文末要求。 你是否正打算优化hashCode()方法?是否想要绕开正则表达式?Lukas ...

优化 SQL SELECT 语句性能的 6 个简单技巧

SELECT语句的性能调优有时是一个非常耗时的任务,在我看来它遵循帕累托原则。20%的努力很可能会给你带来80%的性能提升,而为了获得另外20%的性能提升你可能需要花费80%的时间。除非你在金星工作,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:DSP下的简单性能优化
举报原因:
原因补充:

(最多只允许输入30个字)