网站大量收购独家精品文档,联系QQ:2885784924

第3章-2 TMS320C6000系列DSP指令系统.ppt

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

3.2.1 流水线操作的概述 TMS320C62x/64x/67x DSP指令集中的所有指令在执行过程中均通过流水线的取指﹑译码和执行3个阶段。其中指令执行的取指阶段有4个节拍,译码阶段有2个节拍,而执行阶段对不同类型指令具有不同节拍数。TMS320C62x/64x和TMS320C67x流水阶段如图3-5和图3-6所示。 1.取指阶段 流水线取指阶段的4个节拍如下: PG:程序地址产生; PS:程序地址发送; PW:程序访问等待; PR:程序取指包接收。 TMS320C62x/64x/67x使用8条指令的取指包。所有的8条指令组成一个取指包,取指包中的8条指令依次通过PG,PS,PW和PR 4个节拍。 2.译码阶段 流水线译码阶段的2个节拍如下: DP:指令分配; DC:指令译码。 图3-8(a)从左到右给出了译码各节拍的顺序。图3-8(b)显示了包含两个执行包中的一个取指包通过流水线译码的框图,其中取指包(FP)中的6条指令是并行的,组成一个执行包(EP),该执行包在译码阶段分配。 3.执行阶段 TMS320C6000定点流水线的执行部分分为5个阶段(E1~E5)。执行不同类型的指令需要不同的阶段数。图3-9(a)从左到右显示执行节拍的顺序。图3-9(b)和图3-10分别为TMS320C62x和TMS320C64x执行部分的功能框图。 TMS320C62x/64x指令的流水线操作可以被分为7种指令类型,其中6种在表3-8中列出(NOP指令不包含在其中),反映了不同类型指令在各个执行节拍中的操作。 指令类型 单周期 16×16单乘法指令,C64x.M单元的非 乘法指令 存储 C64x乘法 扩展 加载 跳转 执行阶段E1 计算结果并写入寄存器 读操作并开始计算 计算地址 读操作数并开始计算 计算地址 目标代码在PG?节拍 E2 计算结果并写入寄存器 传送数据地址到存储器 传送地址到寄存器 E3 访问存储器 访问存储器 E4 写结果到寄存器 传送数据回CPU E5 写数据到寄存器 延迟时隙 0 1 0? 3 4? 5? 注:①此表格假设每个指令的条件值为真。如果条件为假,则在E1之后,不执行任何流水线操作,也不写任何结果; ②NOP没有在表中列出,因为它在任意一个执行节拍都不发生操作。 1.单周期指令 单周期指令的流水在E1节拍期间执行完成。图3-11为单周期指令流水的取指、译码及执行节拍。 图3-12是单周期指令的执行框图。读操作数﹑执行操作和结果写入寄存器都在E1阶段完成,单周期指令没有延迟时隙。 2.双周期指令和TMS320C64x非乘法.M单元操作 乘法指令使用E1和E2节拍完成操作。图3-13为使用双周期指令的流水线节拍。 图3-14为一次乘法过程在流水线中发生的操作。在E2节拍期间,乘法结束,结果被写到目的寄存器,乘法指令有一个延迟时隙。该执行框图对TMS320C64x的其他非乘法.M单元操作同样适用。 3.存储指令 存储指令要求在E1~E3节拍完成其操作。图3-15所示为使用存储指令的流水线节拍。 图3-16为一次存储指令中在流水线中发生的所有操作。在E1节拍,保存数据地址被计算。在E2节拍中,数据和目的地址被发送到数据存储器。在E3节拍阶段,执行一个存储器写操作。 当用户执行一次加载和存储到同一个存储地址时,应用如下规则(i=周期): 当一次加载在一次存储前执行时,原值被加载,而新值被存储。 i LDW i+1 STW 当一次存储在一次加载之前执行时,新值被存储且加载。 i STW i+1 LDW 当这两条指令并行执行时,原数值先被加载,然后新值被存储,但是它们是在同一个节拍中完成的。 i STW i|| LDW 4.扩展乘法指令 扩展乘法指令使用E1~E4节拍来完成它们的操作。图3-17为扩展乘法指令所使用的流水线节拍。 图3-18为一次乘法扩展中发生在流水线中的所有操作。在E1节拍,操作数被读取并且乘法开始。在E4节拍,乘法完成,结果被写到目的寄存器中。扩展指令具有3个延迟时隙。 5.加载指令 加载指令要求所有5个节拍完成其操作。图3-19为加载指令的流水线节拍。 图3-20为一次加载中在流水线节拍发生的所有操作。在E1节拍,数据地址指针在其寄存器中被修改。E2节拍,数据地址被传送到数据存储器;在E3节拍,该地址的一个存储器读操作被执行。 6.跳转指令 虽然跳转指令只占一个执行节拍,但从跳转执行到目标代码执行之间存在5个延迟时隙。图3-21为跳转指令及其目标代码执行所有的流水节拍。 图3-22为跳转指令执行框图。如果一个跳转指令处于流水线E1节拍(图中.S2单元),在同一周期,其分支目标应处于PG节拍的取指包中。由于分支目标代码需要其节拍到达E1时才能开始执行,所以

文档评论(0)

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

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

1亿VIP精品文档

相关文档