
DSP优化
zyzhangyue
这个作者很懒,什么都没留下…
展开
-
TMS320C64x+ DSP-----Cache 优化
一、cache性能特点 优异的cache性能很大程度上依赖于cache lines的重复使用,优化的最主要目标也在于此,一般通过恰当的数据和代码内存布置,以及调整CPU的内存访问顺序来达到此目的。由此,应该熟悉cache内存架构,特别是cache内存特点,比如line size, associativity, capacity, replacement scheme,read/wri转载 2015-05-16 22:25:00 · 850 阅读 · 0 评论 -
DSP/BIOS小结
中断处理任务一般要划分为两个部分:一个是控制部分,花时间少,放在HWI函数中;另一部分是处理部分,放在SWI函数或任务中处理。4种API实现实时监测数据的采集:LOG,STS,HST,TRC。DSP/BIOS支持4种线程:(1)硬件中断(HWI): 频率可达200KHz(5us),处理时限在2us~100us,包括CLK函数(2)软件中断(SWI):时限100us以上,SWI允许H转载 2015-05-18 22:01:49 · 4980 阅读 · 1 评论 -
DSP程序汇编级优化
1. 查看编译器生成的汇编文件(1)内存依赖路径 在asm文件中搜索“SOFTWARE PILELINE INFORMATION”,然后再看“Loop Carried Dependency Bound()”,后面的值,如果很大的话,那就是有依赖路径,就在被调用函数的参数列表的指针前面加上限制词:restrict,如:void lesson1_c(short * restri转载 2015-05-17 22:08:01 · 1082 阅读 · 0 评论 -
整数快速开平方算法
#define STEP(bitShift)\if((0x40000000l >> bitShift) + sqrtVal \{ \val -= (0x40000000l >> bitShift) + sqrtVal;\sqrtVal = (sqrtVal >> 1) | (0x40000000l >> bitShift);\} \else \{ \原创 2015-05-17 20:12:29 · 1323 阅读 · 0 评论 -
DSPBIOS多线程入门级要点
1、 多线程的意义,解决多个非相关的程序或函数同时运行的需求,这些程序运行和执行时间都有严格的要求。这样的程序被称为线程(thread)。在DSP中任何独立执行的指令流都被称为线程。2、 DSP/BIOS中线程分为HWI、SWI、Tasks、Background thread(IDL)。HWI就是ISR,优先级最高,适合200kHz触发的任务;SWI适合100ms或者更大周期的触发任务;Tas转载 2015-05-17 13:18:06 · 4566 阅读 · 0 评论 -
#pragma DATA_SECTION 和CMD文件
一、在CCS编程中,如果我们不指定变量的存放位置,编译器会自动的给变量分配一个位置,但是如果有的时候需要把变量放在一个特定的空间内,我们应该如何操作呢,CCS提供了如下的两个指令#pragma CODE_SECTION#pragma DATA_SECTION其中data_section是针对数据空间的,code_section是针对程序空间的,具体的使用办法是#pragma D转载 2015-05-17 13:17:41 · 482 阅读 · 0 评论 -
DSP编译器优化
(1) 使用限定词restrict.在函数调用时,参数中经常出现多个指针变量,C编译器不能确定他们是否相关,因而默认他们具有存储器相关性,指令只能串联执行。如使用restrict限定词可消除指针指向不定的现象,从而使指令并行执行成为可能。(2) 用预处理指令#pragma向C编译器传输信息,比如通过#pragma MUST_ITERATE()向C编译器传转载 2015-05-17 22:07:04 · 1579 阅读 · 0 评论 -
优化饱和加法运算
通常计算机上的加法运算是循环的,例如 0x0001 + 0x7fff = 0x8000, 其中0x7fff是short类型的最大正值,0x8000是最小负值。假设我们是把两个声音相加,由于结果的符号反转,将出现不连续,如果我们把上面的数当做Q15定点小数来看的话,本来是正1(0x7fff),由于加了个很小的数(0x0001),结果却变为了负1(0x8000)。因此DSP芯片都支持饱和加法,当结转载 2015-05-16 22:16:13 · 2783 阅读 · 0 评论 -
DSP优化案例1
int ScaleImage(void *p_src, int src_width, int src_height, int src_fmt, int src_offset1, int src_offset2, int src_offset3, void *p_dest, int dest_width, int dest_height, int dest_offset1, int de原创 2015-05-16 14:07:03 · 429 阅读 · 0 评论 -
怎样优化Pentium系列处理器的代码
怎样优化Pentium系列处理器的代码目录简介文献高级语言中调用汇编函数调试及校验内存模式对齐Cache第一次 vs 重复运行地址生成互锁(AGI) (PPlain 及 PMMX)配对整数指令 (PPlain 及 PMMX)完美的配对有缺陷配对将复杂指令集分割为简单指令 (PPlain 及 PMMX)前缀 (PPlain转载 2015-12-05 18:24:03 · 572 阅读 · 0 评论