VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1187|回复: 4

近期在学ARM 流水线这块不太明白 哪位能举例说明一下

[复制链接]

1

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-1-9 19:20:01 | 显示全部楼层 |阅读模式
小弟初学 大侠帮忙
回复

使用道具 举报

0

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-1-20 15:00:02 | 显示全部楼层
以ARM9TDMI为例
他有5急流水线        取址 译码 ALU 装载1 装载2
下一条指令需要前一条指令的结果,而这时结果还没出来,处理器就会等待,这就称流水线互锁
明白拉互锁 流水线也就差不多拉
例1:没有互锁
add r0,r0.r1
add r0,r0,r2
这两条指令占用拉2个周期。ALU用1个周期计算r0+r1,因此这个结果在第2个周期ALU计算r0+r2已经好拉

例2:由于装载产生一个周期互锁
ldr r1,[r2,#4]
add r0,r0,r1
两条指令用拉三个周期,ALU用1个周期计算r2+4 ,第二个周期add要用的r1还没准备好,等待一个周期,再第三个周期 ldr已经把r2+4的结果装载到r1,add可以执行拉
打字真累啊
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-1-20 18:27:01 | 显示全部楼层
实际上流水线的问题根本就不用考虑的,毕竟我们并没有去设计cpu
回复

使用道具 举报

0

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-1-20 19:18:01 | 显示全部楼层
程序优化时 多少还要知道点为好

回复

使用道具 举报

1

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-3-24 15:00:01 | 显示全部楼层
好象有点明白拉 自己回去看书
谢谢chiang999 janeqin718 两位
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表