第四章Blackfin-程序结构-20140915V详解.ppt
文本预览下载声明
Blackfin-程序结构;一、汇编语言程序
二、汇编程序优化
三、C语言程序
四、C代码优化
;Blackfin汇编的过程;Blackfin汇编特点;汇编语言采用了处理器独特的体系结构,具有以下优点:
无缝集成DSP/CPU特征,对8位和16位操作进行了优化。
并发加载/存储的改进哈佛体系结构,每个周期支持2个16位MAC 或4个8位ALU+2个加载/存储+2个指针更新。
所有的寄存器、I/O、和存储器被映射成为统一4GB存储空间,提 供了一个简化编程模式。
微控制器特征,如任意位和位域操作,插入和提取,对8位、16位 和32位数据类型上的整数操作,独立的用户和管理员堆栈指针。
代码密度增强,包括混合的16和32位指令(无模式转换和代码分 离)。常用指令以16位编码。;汇编语言程序结构;汇编语言程序结构;汇编语言程序结构;汇编语言程序结构;汇编程序结构;汇编语言程序结构; 语法约定; 语法约定;汇编语法;汇编语法;汇编表达式;汇编操作符及其含义;特殊操作符;特殊操作符;特殊操作符;数制格式;条件汇编伪指令;内嵌宏;结构体引用;汇编伪指令;一、汇编语言程序
二、汇编程序优化
三、C语言程序
四、C代码优化
;程序优化的方法和途径;观察一个优化的简单例子;利用硬件的并行处理能力再次优化;并行指令;并行指令;并行指令;并行指令;并行指令;优化练习1:矢量A*B+C;计算公式;第一次:每次循环6个周期;第二次:每次循环3个周期;一、汇编语言程序
二、汇编程序优化
三、C语言程序
四、C代码优化
;*;*;结构化程序设计思想;自顶向下的分析方法;模块化设计;结构化编码 ;三种基本结构:
顺序结构、选择结构、循环结构
用这三种基本结构作为表示一个良好程序的基本单元。;三种基本结构的示意图
;当型(While型)循环结构 ;(1)只有一个入口;
(2)只有一个出口;(请注意:一个菱形判断框有两个出口,而一个选择结构只有一个出口。不要将菱形框的出口和选择结构的出口混淆。)
(3)结构内的每一部分都有机会被执行到;
(4)结构内不存在“死循环”(无终止的循环)。 ; 图中没有一条从入口到出口的路径通过A框。;扩展:; 这是一个多分支选择结构,根据表达式的值决定执行路线。虚??框内的结构是一个入口一个出口,并且有上述全部的四个特点。由此构成的算法结构也是结构化的算法。可以认为这是由三种基本结构所派生出来的。;*;
减小循环体大小
避免手动展开循环
减小循环体内部的相关性
多层循环的内层最重要
在循环体内部避免函数调用
使用16位数据和向量指令
;//不好的循环,循环体内下一次的计算和前一次的结果相关
//好的循环
;//好的示例,编译器进行流水线编排
;//不好的示例,手动进行流水线编排,代码效率低
;//不好的示例,循环中有条件跳转语句
;//好的示例,跳转语句在循环外
;//不好的示例,循环步长为3,不利于优化(最好为1)
可改为
;//好的示例,连续访问存储器空间(内层读列,外层读行)
//不好的示例,不连续访问存储器空间
;对小数点积计算,手动实现实现
//不好的示例,手动实现
;对小数点积计算,内联函数实现
//好的示例,内联函数实现
;获取系统时钟周期
//使用汇编语言,程序可读性差
;获取系统时钟周期
//使用ADI提供的头文件,程序可读性好
;
使用寄存器代替局部变量
使用硬件循环代替软件循环
充分利用数据宽度
使用并行指令和向量指令
;
继续优化
汇编程序优化方法
C代码优化方法
显示全部