- 1、本文档共67页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章Blackfin-程序结构-20140915V概要
对小数点积计算,内联函数实现 //好的示例,内联函数实现 内联函数(compiler intrinsic)优化 * 获取系统时钟周期 //使用汇编语言,程序可读性差 内联函数(compiler intrinsic)优化 * 获取系统时钟周期 //使用ADI提供的头文件,程序可读性好 内联函数(compiler intrinsic)优化 * 使用寄存器代替局部变量 使用硬件循环代替软件循环 充分利用数据宽度 使用并行指令和向量指令 使用汇编语言优化 * 继续优化 汇编程序优化方法 C代码优化方法 作业 * 并行指令 32位ALU/MAC指令||16位指令|| 16位指令 用“||”隔开3条指令,分号表示并行指令的结束 32位ALU/MAC指令||16位指令 仍是64位指令,未用到的16位将执行NOP操作 MNOP||16位指令|| 16位指令 仍是64位指令,未用到的16位将执行MNOP操作 * 并行指令 32位指令包括: 算术运算指令 加载和存储指令(仅支持累加器版本) 位操作指令 逻辑运算指令 数据转移指令 移位和循环指令 外部事件操作指令(仅支持32位MNOP版本) 向量操作指令 视频像素操作指令 * 并行指令 16位指令包括: 算术运算指令(仅支持索引寄存器版本) 加载和存储指令 外部事件操作指令(仅支持16位MNOP版本) 并行指令中的2条指令满足以下约束: 只能一条是存储指令 如果2条指令都是内存访问指令,至少有一条是索引寄存器版本。 * 并行指令 并行举例: A1+=R0.L*R2.L, A0+=R0.H*R2.H || R2.L=W[I2++] || [I3++]=R3; R3.H=(A1+=R0.L*R2.)L, R3.L=( A0+=R0.H*R2.H) || R0=[P0++] || R1 = [I0] * 优化练习1:矢量A*B+C * 计算公式 * 第一次:每次循环6个周期 LSETUP(lp_start,lp_end)LCO=N; lp_start: r0 = [i0,m3]; /* 读A*/ r1 = [i1,m2]; /*读B */ r2 = r0 * r1; /* 计算 A * B*/ r3 = [i2,m1]; /*读 C */ r4 = r3 + r2; /* 把C与积相加 */ lp_end: [i3,m0] = r4; /* 存放结果 */ * 第二次:每次循环3个周期 r0 = [i0,m3] || r1 = [i1,m2]; /* 读A和B */ LSETUP(lp_start,lp_end)LCO=N-1; lp_start: r2=r0*r1 || r3=[i2,m1]; /* 计算A * B, 读C */ r4=r3+r2 || r0=[i0,m3] || r1=[i1,m2]; /* 加C, 读A和B */ lp_end: [i3,m0]=r4; /* 存放结果 */ 循环准备,先读入第一组值 循环体部分 * 一、汇编语言程序 二、汇编程序优化 三、C语言程序 四、C代码优化 本章要点 * * 程序流大部分是线性的,此时处理器顺序地执行程序指令。 当程序采用非顺序结构时,线性程序流会发生改变,非顺序结构包括: 循环 子程序 跳转 中断和异常 空闲 * 注释文本 代码段(主程序) 伪指令 子程序 1.任何程序都有主函数。 2.程序由若干语句组成, { }是函数开始和结束的标志,不可省。 3.语句由“;”结束; /*……*/表示注释 结构化程序设计思想 结构化程序设计(Structured Programming) 程序设计技术 C语言是结构化程序设计语言 强调程序设计的风格和程序结构的规范化,提倡清晰的结构,其基本思路是将一个复杂问题的求解过程划分为若干阶段,每个阶段要处理的问题都容易被理解和处理。 按自顶向下的方法对问题进行分析、模块化设计和结构化编码等3个步骤。 * 自顶向下的分析方法 把大的复杂的问题分解成小问题后再解决 面对一个复杂的问题,首先进行上层(整体)的分析,按组织或功能将问题分解成子问题,如果子问题仍然十分复杂,再做进一步分解,直到处理对象相对简单,容易处理为止。 当所有的子问题都得到了解决,整个问题也就解决了。 每一次分解都是对上一层的问题进行细化和逐步求精,最
您可能关注的文档
- 第四单元第1课正确认识就业1.ppt
- 第四周理论PPT.ppt
- 第四章 液压缸.ppt
- 第四单元第1课正确认识就业.ppt
- 第四章 醌类化合物.ppt
- 第四章 存储管理.ppt
- 第四章(组合逻辑电路).ppt
- 第四单元顺应历史潮流树立崇高的人生理想.ppt
- 第四章 组合逻辑电路.ppt
- 第十课-履行义务-承担责任.ppt
- 人教版九年级英语全一册单元速记•巧练Unit13【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit9【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit11【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit14【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit8【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit4【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit13【单元测试·基础卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit7【速记清单】(原卷版+解析).docx
- 苏教版五年级上册数学分层作业设计 2.2 三角形的面积(附答案).docx
- 人教版九年级英语全一册单元速记•巧练Unit12【单元测试·基础卷】(原卷版+解析).docx
最近下载
- 空调主机吊装方案.docx
- 基层儿科医务人员服务能力提升学习班答案-2024华医网继续教育答案.docx VIP
- 部编 人教版小学二年级上册语文教学课件 5.课文 14.我要的是葫芦 .pptx VIP
- 让“工具包”理念和方法落地.pdf VIP
- 国家开放大学《可编程控制器应用实训》形考任务2(实训二)参考答案.docx
- 4.2 实现中华民族伟大复兴的中国梦 课件(18张PPT)-2023-2024学年高中政治统编版必修一中国特色社会主义.pptx VIP
- 费森尤斯CRRT操作流程.doc VIP
- 五年级上册英语期中试卷人教精通版.pdf VIP
- 第17课昆明的雨(课件)(共27张PPT).pptx VIP
- 小学信息技术(信息科技)第六册泰山版(2018)合集.docx
文档评论(0)