- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于DSP的软件流水优化研究.pdf
基于DSP 的软件流水优化研究
李平良,戴志涛
北京邮电大学计算机科学与技术学院,北京 (100876)
E-mail:lipl_cv@
摘 要:本文通过研究软件流水相关技术,结合TI DSP C6000 系列DSP 的硬件特性,探讨
了DSP 软件流水的相关优化方法。通过性能比较,说明这些方法具有普遍的应用价值。
关键词:DSP;软件流水;循环展开;线性汇编
中图分类号:TP 303
1. 引言
数字信号处理器DSP(Digital Signal Processing)是一种运算密集型处理器,采用哈佛结构
设计,即数据总线和地址总线分开,使程序和数据分别存储在不同的空间,允许取指令和执
行指令完全重叠。而且,DSP芯片内部嵌有硬件乘法器、累加器等功能单元,采用流水线结
构,具有良好的并行特性。
然而,在DSP算法中存在大量的循环操作,要提高系统的并行性,就必须发掘循环中各
循环体之间的指令级并行性(Instruction Level Parallelism,简称ILP) 。目前,在这方面己经提
出的技术有循环展开和软件流水等。其中,循环展开是通过多次复制循环体和调整循环中止
代码,从而优化ILP和增大指令调度的作用范围。这种方法有两个缺点:(1)指令调度不能越
过新的循环体,在产生的代码中就会有过多的注满与清空流水线的部分,效率不高;(2)展
开次数不易确定,太少并行度不够,太多会导致代码长度过大。而软件流水则避免了这些问
题[1] 。本文将通过研究软件流水相关技术,从代码和编译器的角度提出DSP软件流水的一些
优化方法,并对软件流水优化方法中的一种重要方法—编写线性汇编代码进行详细探讨,给
出了线性汇编代码编写的方法和步骤。
2. 软件流水技术
软件流水是一种重要的指令调度技术,它通过编排(schedule)循环指令,重叠地执行不
同的循环体来提高 ILP[2] 。该方法主要应用于具有多个功能部件的并行处理器,例如
VLIW(Very Long Instruction Word) 、超标量等多发射体系结构处理器,以及可以同时执行整
数和浮点指令、但不同时对这两种指令初始化的单发射体系结构。
2.1 软件流水描述
图1描述了一个软件流水循环。图中A 、B 、C 、D和E表示一个循环体中的各条指令,
II(Initiation Interval)称为启动间距,表示相邻两个循环体的启动时刻差。在循环中,一个周
期最多可以并行执行5次操作。软件流水过程可以分为三个阶段[3] ,图中阴影部分称为循环
核心期(Loop Kernel Phase) ,核心期前面执行的过程称为流水循环起始期(Pipelined Loop
Prolog Phase) ,核后面执行的过程称为流水循环结尾期(Pipelined Loop Epilog Phase) 。在起始
期,每时钟周期启动一个新的循环体,流水渐渐满起来。在核心期中,所有的5个阶段并行
执行,流水已满,达到了最大的并行度。在结尾期,每时钟周期结束一个循环体。
从以上描述中,我们可以看出软件流水方法的原理:一个单重循环调度(平坦调度,flat
schedule)被划分为(在时间上)长度相等的d段,称作级数(stage count,SC)。每隔II时间启动一
个新的循环体,经过(d-1)×II时间后,有d个相继的循环体同时在执行,且依次位于对应循环
-1-
体的第d段、第d-1段、…、第1段中。此后,软件流水进入循环核心期,即每隔II时间就有一
个循环体流出,同时有一个新的循环体进入流水,使得每II时间段中执行的代码保持不变,
循环体中的所有操作都在同时执行。所以,循环核心期也构成了一个稳态。
图1 (a)单循环源代码 (b)单循环软件流水
Fig1 (a)source code of single cycle (b)softwar
您可能关注的文档
最近下载
- 《校园危机事件应对与处理》专题讲座.pptx VIP
- 一次性使用中心静脉导管套装产品技术要求标准2024年.docx VIP
- 《工程伦理》课程教学大纲.docx VIP
- GB50217-2018 电力工程电缆设计标准.docx VIP
- (高清版)-B-T 17799.2-2023 电磁兼容 通用标准 第2部分:工业环境中的抗扰度标准.pdf VIP
- 2025山西航空产业集团有限公司校园招聘86人(第二批)笔试参考题库附答案解析.docx VIP
- 屋顶光伏发电项目施工方案.doc
- 四川省2024年普通高校对口招生统一考试语文真题(含答案解析).docx VIP
- 企业发展五年规划目录.PDF VIP
- 2025年电信人工智能学习考试题库(含答案).pdf VIP
文档评论(0)