免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2341 | 回复: 4
打印 上一主题 下一主题

[BootLoader] 关于arm五级流水线的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-04-17 09:28 |只看该作者 |倒序浏览
我们在arm7中采用的是三级流水线,也就是,取址,源译,码执,当有一个中断到来时指令必须执行完然后,才能去执行中断,这时cpu硬件自动会把当前pc值减4放到ldr寄存器作为返回地址,正好是中断返回要执行的地址,但是要是采用五级流水线的话,就包括了,取址,译码,执行,读内存,和回写,五个步骤,若中断出现的话,必须把当前指令执行完也就是以上五个步骤执行完,再去执行中断,这时cpu硬件自动会把当前pc指针减4放到ldr寄存器作为返回地址,可是问题来了对于三级流水线的话pc-4确实是下一条中断返回要执行指令地址,但对于五级流水线的话一条指令五个步骤执行完,这是pc指向执行完的指令,下面的第五条指令,pc-4的话指向的就是第四条指令的取址,不是的中断返回要执行的指令地址!

论坛徽章:
0
2 [报告]
发表于 2013-11-18 17:12 |只看该作者
嗯,我也在想这个问题,怎么没人回答呀

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:58:11
3 [报告]
发表于 2013-11-19 13:17 |只看该作者
pc寄存器中的值,实际上不是正在取指的地址,而是有一个差值,这个差值随着流水线深度的不同而不同

论坛徽章:
0
4 [报告]
发表于 2013-11-19 16:03 |只看该作者
帮顶,求回答

论坛徽章:
0
5 [报告]
发表于 2013-12-25 23:49 |只看该作者
目前所有arm 32位处理器都和arm7(armv3指令集)的异常处理兼容,不存在你说的这个问题。
另外PC是对软件工程师说的编程模型里面的东西,在cortex-A系列的arm处理器里面,硬件上pc不是对应具体的某个东西,只是外面看到的综合结果。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP