请教熟悉流水线结构的朋友

[复制链接]
3657|8
 楼主| bald 发表于 2007-11-15 11:38 | 显示全部楼层 |阅读模式
下面两段指令效果是否相同?<br /><br />1、<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ldr&nbsp;r1,[r10]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nop<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nop<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ldr&nbsp;r0,[r1]<br /><br />2、<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ldr&nbsp;r1,[r10]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ldr&nbsp;r0,[r1]<br /><br /><br />
平常人 发表于 2007-11-15 22:57 | 显示全部楼层

找到了,在ARM的文档中这种现象叫Interlock

发生Interlock时不会影响运算结果,但会影响运算所花费的时间,请看ARM文档中的这一页:2.2.&nbsp;Pipeline&nbsp;implementation&nbsp;and&nbsp;interlocks<br /><br />楼主的例子中<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ldr&nbsp;r1,[r10]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ldr&nbsp;r0,[r1]<br />相当于<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ldr&nbsp;r1,[r10]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nop<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ldr&nbsp;r0,[r1]<br />的运行时间。<br /><br />如果在上面nop指令的地方放一条其他无关的指令,则可以有效地提高运算的效率。
fineamy 发表于 2007-11-15 12:35 | 显示全部楼层

看有没有冲突

  
zhengjily 发表于 2007-11-15 12:59 | 显示全部楼层

三级流水线还是五级流水线

  
 楼主| bald 发表于 2007-11-15 13:04 | 显示全部楼层

ARM9,应该是五级

  
xjg121 发表于 2007-11-15 18:48 | 显示全部楼层

NOP也是占周期的啊

  
平常人 发表于 2007-11-15 21:03 | 显示全部楼层

此问题与流水线无关

记得ARM的处理器中使用了一种技术专门处理这种寄存器相关的问题,但忘记了这种方法的名称和描述了。<br /><br />要查一下ARM的**,查到了再回来讨论。
阿南 发表于 2007-11-16 09:22 | 显示全部楼层

呵呵,平常大侠真是有心啊!代表众网友谢谢您!

好人一生平安
ayb_ice 发表于 2007-11-16 10:12 | 显示全部楼层

学习了

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

330

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部