关于32位嵌入式CPU中系统控制协处理器的设计

关于32位嵌入式CPU中系统控制协处理器的设计,第1张

(文章来源:OFweek电子工程网)

MIPS体系结构中的系统控制协处理器简称CP0,它提供指令正常执行所需的环境,进行异常/中断处理、高速缓存填充、虚实地址转换、 *** 作模式转换等 *** 作。单从硬件的角度而言,系统控制协处理器对指令集的作用就相当于 *** 作系统对应用程序的作用一样。

异常处理,CPU运行过程中常常需要中断正常执行的指令流程,跳转去执行某段特殊的指令段,接着再恢复原来的指令序列。MIPS体系结构中称这样的过程为异常(ExcepTIon)。所有的异常都采用统一的机制处理。对于异常情况,需要采取以下3方面的措施:

1) 异常检测:CPU需要及时检测出哪个部件发生了什么异常;一般而言,异常检测由各个模块进行,如加法溢出由加法器在运算过程中产生,并在相应的流水段被系统控制协处理器CP0读入。因此这部分功能不属于CP0的设计范围。

2) 异常处理:CPU按照优先级选择哪个异常被处理,并进行必要的上下文切换(Context Switch),为进入异常服务子程序做准备,保证与该种异常对应的服务程序被执行,并且能够从中断处完全恢复原来的指令执行现场。

3) 异常服务:执行异常服务子程序,这部分主要由软件( *** 作系统)来完成。

对异常处理机制的要求,与传统的异常/中断处理机制相比,在MIPS 4Kc体系结构下的异常处理需要特别考虑3个因素。

流水线的划分,本设计采用五段流水线设计,即每条指令的执行一般都经过IF(取指)、DE(指令译码)、EX(指令执行)、MEM(访问存储器)和WB(数据写回R.F.)五个步骤。因为指令动作被分割,所以异常源也被分割到各个流水线段。例如:加法溢出异常只能在EX被检测到。

精确异常处理机制,精确异常处理是指在发生异常时,仅仅对发生异常的指令或其后面的指令进行异常处理;而其前面的指令要保证能够正常结束。所谓“精确”,是指受到异常处理影响的只有产生异常条件的那条指令,所有在此之前的指令在异常被处理前都将被执行完成。异常处理结束后仍将从发生异常的指令开始继续执行。

*** 作模式切换,对于多进程 *** 作系统,至少要区分两种进程:有特权的 *** 作系统“核心”进程和一般程序的“用户”进程。当CPU检测到异常发生时,指令执行的正常顺序会被暂停,处理器进入核心模式。当异常服务子程序执行完后,CPU从断点中恢复现场,继续执行原指令序列。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2548199.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-05
下一篇 2022-08-05

发表评论

登录后才能评论

评论列表(0条)

保存