一、CP0主要工作
- 配置CPU工作状态:通过读/写一个或一些内部寄存器改变一些CPU特性(如:更改字节次序MSB->LSB 或 LSB->MSB)
- 高速缓存控制:控制读写缓存
- 异常控制:异常检测与处理
- 存储管理单元控制:对系统的存储区域进行合理的管理、控制、分配(MMU、TLB)
- 其他:当把额外功能集成到CPU中,但又不方便当作外设访问时,常常在CP0中增加一些模块以实现这些功能。(如:时钟、时间计数器、奇偶校验错误检测等)
二、CP0中的寄存器
标号 | 寄存器助记符 | 功能描述 |
---|---|---|
9 | Count | 处理器计数周期 |
11 | Compare | 定时中断控制 |
12 | Status | 处理器状态和控制寄存器 |
13 | Cause | 保存上一次异常原因 |
14 | EPC | 保存上一次异常时的程序计数器 |
15 | PRId | 处理器标志和版本 |
16 | Config | 配置寄存器,用来设置CPU的参数 |
… | … | … |
- 以上只是CP0中的部分寄存器,并非全部。
1. Count寄存器: 一个不断计数
的32位可读可写
寄存器,计数频率一般与CPU频率相同。计数达32位无符号上限时,从0重新开始。
2. Compare寄存器: 一个32位可读可写
寄存器,与Count
一起完成定时器中断功能。当Coumt == Compare
,会产生定时器中断。这个中断会一直保持。直到有数据被写入Compare
。
3. Status寄存器: 一个32位可读可写
寄存器,用于控制处理器的操作模式、中断使能以及诊断状态。
4. Cause寄存器: 记录最近一次异常发生的原因,也控制软件中断请求。