DSP原理及应用——TMS320DM6437 课件 第六章:TMS320DM6437流水线与中断.pptx

DSP原理及应用——TMS320DM6437 课件 第六章:TMS320DM6437流水线与中断.pptx

  1. 1、本文档共61页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

DSP原理及应用

第六章TMS320DM6437的流水线与中断;第六章TMS320DM6437流水线与中断

;6.1流水线操作;为了提高计算机各功能部件的工作效率和计算机的运行速度,这就需要流水线(pipeline)技术。

流水线技术是指在程序执行时多条指令重叠进行操作的一种准并行处理技术。它是将一个重复的过程分解为若干个子过程,每个子过程有专门的功能部件来实现。

;

流水线中的每个子过程及其功能部件称为流水线的级或段,段与段相互连接形成流水线。

流水线的段数称为流水线的深度。

把多个处理过程在时间上错开,依次通过各功能段,这样,每个子过程就可以与其他的子过程并行进行。;对微处理器的每个部件来说,每隔1个时钟周期即可进入一条新指令,这样在同一时间内,就有多条指令交叠在不同部件内处理,使CPU运算速度提高。但这种流水线工作方式控制较为复杂,很难全速运行。

;

;6.1.2.流水线操作

流水线操作以CPU周期为单位,一个CPU周期是指特定的执行包在流水线特定阶段的时间。CPU周期的边界总是发生在时钟周期的边界,随着节拍代码流流经各个部件,各个部件根据指令代码进行不同处理。一个指令的取出和执行过程可以分为多个阶段。

TMS320DM6437的DSP指令集流中所有的指令都通过:

取指(Fetch),译码(Decode),执行(Execute)

3个阶段,各阶段的任务如下:

;

(1)取指

取出一条指令送到指令寄存器;所有指令的取指阶段都有4个节拍,即PG、PS、PW、PR节拍,每个节拍的具体功能如下:

;TMS320DM6437的DSP取指阶段:

①每个节拍采用8个字的取指包。

②四个节拍从左到右依次进行。

③所有的这8个字同时通过PG、PS、PW和PR进行取指。

④PR取指包有四个执行包,PW和PS各包括两个执行包,PG包含有八个指令的一个执行包。;(2)译码

对指令操作码进行译码,读取操作数;所有指令译码阶段都包括2个节拍,即DP和DC节拍,每个节拍的具体功能如下:

;(3)执行

根据操作码的要求,完成指令规定的操作,并把运算结果写到指定的存储或缓冲单元中。流水线的执行阶段节拍的数量不同,这取决于指令的类型。

流水线的执行部分被分为5个???拍。大多数DSP指令是单周期的,所以它们只有一个执行节拍(E1)。只有少数指令需要多个执行节拍。不同类型的指令需要不同数量的这些节拍来完成执行。

流水线执行级的5个节拍如下:

;1执行节拍E1

①测试指定执行条件及读取操作数,对所有的指令适用

②对于读取和存储指令,假定指令的条件被评估为真时,地址产生,其修正值写入寄存器,若指令的条件为假,则指令在E1后不写入任何结果或进行任何流水线操作

③对于转移指令,程序转移目的地址取指包处于PG节拍

④对于单周期指令,结果写入寄存器

;1执行节拍E1

⑤对于双精度(DP)比较指令、ADDDP和MPYDP等指令,读取源操作数的低32位

⑥对于其他指令读取操作数

⑦对于双周期双精度(DP)指令,结果的低32位写入寄存器;2执行节拍E2

①读取指令的地址送至内存,存储指令的地址和数据送至内存,对结果进行饱和处理的单周期指令,若结果饱和,置SRC的SAT位

②对于单个16×16乘法指令、乘法单元和非乘法操作指令,结果将写入寄存器文件。TMS320C64x的M单元的非乘法操作指令,对于DP比较指令和ADDDP/SUBDP指令,读取源操作数的高32位

③对于MPYDP指令,读取源操作数1的低32位和源操作数2的高32位,对于MPYI和MPYID指令,读取源操作数

;3执行节拍E3

①进行数据存储空间访问

②对结果进行饱和处理的乘指令在结果饱和时置SAT位

③对于MPYDP指令读取源操作数1的高32位和源操作数2的低32位

④对于MPYI和MPYID指令,读取源操作数

;4执行节拍E4

①对于读取指令,把所读的数据送至CPU边界;

②对于乘法扩展,结果将被写入寄存器;

③对于MPYI和MPYID指令,读取源操作数;

④对于MPYDP指令,读取源操作数的高32位;

⑤对于4周期指令,结果写人寄存器;

⑥对于INTDP指令,结果的低32位写入寄存器。

;5执行节拍E5

①对于读取指令,把所读的数据写入寄存器

②对于INTDP指令,结果写入寄存器。

TMS320DM6437中所有指令均按照以上3级流水线运行,具体流水线结构如下图所示:

;TMS320DM6437流水线流程图如下图所示,连续的各个取值包都包含8条并行指令,各个指令包以每个时钟一个节拍的方式通过流水线。

;流水线的实现步骤如下所示:

①从存储器中取出一条指令。

②判断该指令是否支

您可能关注的文档

文档评论(0)

balala11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档