第十章协处理器访问指令的实现

10.1 协处理器介绍

协处理器一词通常用来表示处理器的一个可选部件,负责处理指令集的某个扩展,具有与处理器核独立的寄存器。MIPS32架构提供了最多4个协处理器,分别是CP0-CP3,作用如表所示:在这里插入图片描述
协处理器CP0用作系统控制,CP1,CP3用作浮点处理单元,而CP2被保留用于特定实现。除CP0处的协处理器都是可选的,OpenMIPS没有实现浮点运算,所以CP1,CP3不用实现,而CP0是不可选的,需要实现,所以下面重点介绍协处理器CP0.
截至本章,我们的OpenMIPS处理器实现了很多指令,但这些指令都是用来运算的,实际的处理器还要支持其他广泛的操作,例如:中断处理、提供可选的配置、观察并控制系统缓存或时钟、地址转换等。MIPS32架构定义的协处理器CP0的作用就是协助实现上述的广泛操作。CP0负责的主要工作如下。
  • 配置CPU工作状态:符合MIPS32架构的硬件通常是很灵活的,可以通过读/写一个或一些内部寄存器来改变一些很根本的CPU特性(如:将字节次序从MSB变为LSB,或者从LSB变为MSB)。
  • 高速缓存控制:符合MIPS32架构的CPU一般会集成缓存控制器,用来控制、读、写缓存。
  • 异常控制:异常发生时的检测和处理都由CP0中一些控制寄存器来定义和控制。
  • 存储管理单元控制:对系统的存储区域进行合理的控制、管理和分配,主要是对MMU、TLB的一些配置、管理、访问。
  • 其他:当要把额外的功能集成在CPU中,但又不方便当作外设访问时,常常在CP0中增加一些模块以实现这些功能。例如:时钟、时间计数器、奇偶校验错误检测等。

10.2 协处理器CP0中的寄存器

在这里插入图片描述在这里插入图片描述

从表中可以发现有很多寄存器都是与缓存、MMU、TLB、调试有关的,而OpenMIPS的设计目标是一个轻量级的处理器,并不打算实现缓存、MMU、TLB、调试等复杂功能,所以相关的寄存器都可以不用实现。在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值