ARM 7 三级 中断流水线

ARM 7 在冯诺依曼 结构的。

是三级流水线技术

分别是

  取址     译码     执行

当有BL 的指令 执行时  流水线 也会被阻断 。 在分支指令执行的时候 其后第一条指令  被  解码   第二条 指令 被 取址  ,当前的PC指针是 指在取址这的,(PC的指针值会保存到LR中)但是这两个指令 并不被执行,因为 分支 指令 执行完了之后  久直接 跳转到 0X0018 那去执行了 ,因此流水线上需要丢弃这两个指令,同时PC指针 也会转移到新到位置 接着 进行取址 ,译码,执行。

  同时在执行BL 指令的时候 要同时 进行 写链接寄存器  PC指针 也会 进行 - 4 ,(这个两操作仍然占用执行单元,这时的 译码 取址 被阻断了)。

SUBS  PC  ,LR,#4


ARM处理器异常处理

1,保存处理器的状态,中断屏蔽位以及各条件的标志位。

2,设置当前程序状态寄存器CPSR中相应的位。

3,将寄存器IL——mode设置成返回地址。

4,将程序计数器(PC)值设置成该异常中断的中断向量地址,然后转到相应到异常中断处理程序处执行。

你可能感兴趣的:(ubuntu)