在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1730|回复: 0

[讨论] 求教:TMS320 C64x 执行包跨取指包的问题

[复制链接]
发表于 2013-4-3 10:44:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
C64x 的一个取指包有8个指令。这8个指令可以划分为多个执行包。每个执行包由1~8个并行指令构成。C64x的流水线每次取一个取指包,然后依次执行一个取指包中的多个执行包。例如:

   inst 1 ; 执行包 1 ; 取指包 1
|| inst 2
|| inst 3
   inst 4 ; 执行包 2
   inst 5 ; 执行包 3
|| inst 6
   inst 7 ; 执行包 4
|| inst 8

   inst 9 ; 执行包 5 ; 取指包 2
|| inst 10
|| inst 11
|| inst 12
|| inst 13
|| inst 14
|| inst 15
|| inst 16

可是,TI的多个文档中又提到,C64x的执行包是可以跨取指包的。但是我没有找到哪个文档里面有对这种情况下流水线处理的具体描述。

请问,执行包跨取指包的用处是什么呢?流水线怎么处理这种情况?TI的哪个文档里面有相关的描述吗?

例如:
   inst 1 ; 执行包 1 ; 取指包 1
|| inst 2
|| inst 3
|| inst 4
   inst 5 ; 执行包 2 - 跨取指包
|| inst 6
|| inst 7
|| inst 8

|| inst 9 ; 取指包 2 - 执行包与前一个取指包属于同一个执行包 2
|| inst 10
|| inst 11
|| inst 12
   inst 13 ; 执行包 3
|| inst 14
|| inst 15
|| inst 16

执行包 2 (并行指令 5~12)跨了两个取指包1-2。那么这个执行包被分成两个CPU周期执行(第一次指令 5-8,第二次指令 9-12)?还是流水线做特殊处理,使得完整的执行包 2(指令 5-12)可以在同一个CPU周期并行执行?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-16 11:28 , Processed in 0.016078 second(s), 11 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表