什么是ARM流⽔线技术?

浏览量:183
时间: 2023-10-27 10:25:10

流⽔线技术通 多个功能部件并⾏⼯作来缩短程序执⾏时间,提⾼处理器核的效率和吞吐率,从⽽成为微处理 器设计中最为重要的技术之⼀。ARM7处理器核使⽤了典型三级流⽔线的冯·诺伊曼结构ARM9系列则采⽤了 基于五级流⽔线的哈佛结构。通过增加流⽔线级数简化了流⽔线各级的逻辑,进⼀步提⾼了处理器的性能。


PC代表程序计数器,流⽔线使⽤三个阶段,因此指令分为三个阶段执⾏:1.取指(从存储器装载⼀条指令);

2.译码(识别将要被执⾏的指令);3.执⾏(处理指令并将结果写回寄存器)。⽽R15(PC)总是指向“正在取 指”的指令,⽽不是指向“正在执⾏”的指令或正在“译码”的指令。⼀般来说,⼈们习惯性约定将“正在执⾏的指令 作为参考点”,称之为当前第⼀条指令,因此PC总是指向第三条指令。当ARM状态时,每条指令为4字节⻓,所 以PC始终指向该指令地址加8字节的地址,即:PC值=当前程序执⾏位置+8;


ARM指令是三级流⽔线,取指,译指,执⾏,同时执⾏的,现在PC指向的是正在取指的地址(下⼀条指令),

那么cpu正在译指的指令地址是PC-4(假设在ARM状态下,⼀个指令占4个字节),cpu正在执⾏的指令地址是

PC-8,也就是说PC所指向的地址和现在所执⾏的指令地址相差8。

当突然发⽣中断的时候,保存的是PC的地址(PC-8+4 = PC-4 下⼀条指令的地址) 这样你就知道了,如果返回的时候返回PC,那么中间就有⼀个指令没有执⾏,所以⽤SUB pc lr-irq #4。 

image.png

声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。仅供学习交流使用,不构成商业目的。版权归原作者所有,如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时删除。侵权投诉
相关推荐HOT
试简要说明Linux系统在目标板上的启动过程?

用户打开PC的电源,BIOS开机自检,按BIOS中设置的启动设备(通常是硬盘)启动,接着启动设备上安装的引导程序lilo或grub开始引导 Linux,Linu... 详情>>

2024-03-27 14:07:38
什么是PLL(锁相环)?

简单来说,输入时钟的存在是作为“参考源”。锁相环不是为了单纯产⽣同频同相信号,⽽是⼀般集成进某种“频 率综合电路”,产⽣⼀个不同频,但锁相的信号。 有点绕,打个... 详情>>

2023-11-21 11:33:05
BOM查错助力元器件采购

华秋DFM软件最新版→下载地址电子产品的Bill of Materials是一简单而又繁琐的工作,零件繁多,稍有不慎就可能会导致采购错误的元器件, 人工匹配,出... 详情>>

2024-03-29 09:41:17
为什么会采⽤三次握⼿,若采⽤⼆次握⼿可以吗?

采⽤三次握⼿是为了防⽌失效的连接请求报文段再次传到服务器,因⽽产⽣错误。如果由于⽹络不稳定,虽然 客户端以前发送的连接请求以到达服务⽅,但服务⽅的同意连接的应答... 详情>>

2024-01-30 15:48:54
咱们工程师跳槽,HR 就喜欢听这些离职原因!一起看看怎么回答才比较好

面试干货,HR 就喜欢听这样的离职原因。不让老实人别再吃亏!分享如何回答: 你为什么离开上一家公司?错误回答:薪水太低了满分回答:过去2年,在公司和领导的帮助下... 详情>>

2023-09-12 21:45:10
开班信息