微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ARM存储器之:协处理器CP15

ARM存储器之:协处理器CP15

时间:08-30 来源:3721RD 点击:

式及含义如表15.8所示。

表15.8 类型标识符寄存器控制字段bit[8:6]含义

编 码

M=0时的含义

M=1时的含义

0b000

0.5KB

0.75KB

0b001

1KB

1.5KB

0b010

2KB

3KB

0b011

4KB

6KB

续表

编 码

M=0时的含义

M=1时的含义

0b100

8KB

12KB

0b101

16KB

24KB

0b110

32KB

48KB

0b111

64KB

96KB

bit[1:0]:定义Cache的块大小,其编码格式及含义如表15.9所示。

表15.9 类型标识符寄存器控制字段bit[1:0]含义

编 码

Cache块大小

0b00

2个字(8字节)

0b01

4个字(16字节)

0b10

8个字(32字节)

0b11

16个字(64字节)

bit[5:3]:定义了Cache的相联属性,其编码格式及含义如表15.10所示。

表15.10 类型标识符寄存器控制字段bit[5:3]含义

编 码

M=0时的含义

M=1时的含义

0b000

1路相联

(直接映射)

没有Cache

0b001

2路相联

3路相联

0b010

4路相联

6路相联

0b011

8路相联

12路相联

0b100

16路相联

24路相联

0b101

32路相联

48路相联

0b110

64路相联

96路相联

0b111

128路相联

192路相联

15.1.4 寄存器c1

CP15中的寄存器c1包括以下控制功能:

· 禁止/使能MMU以及其他与存储系统有关的功能;

· 配置存储系统以及ARM处理器中相关的工作。

注意

在寄存器c1中包含了一些没有使用的位,这些位在将来可能被扩展其他功能时使用。因此为了编写代码在将来更高版本的ARM处理器中仍可以使用,在修改寄存器c1中的位时应该使用"读取-修改特定位-写入"的操作序列。

当对寄存器c1进行读操作时,指令中CRm和opcode2的值将被处理器忽略,所以要人工将其置位为0。

例15.2用MRC/MCR指令将协处理器寄存器c1的值进行读取和写入。

【例15.2】

MRC P15,0,r0,c1,0,0 ;将寄存器c1的值读取到ARM寄存器r0中

MCR P15,0,r0,c1,0,0 ;将ARM寄存器r0的值写入寄存器c1

图15.7显示了寄存器c1的编码格式。

图15.7 寄存器c1编码格式

寄存器c1各控制字段的含义如表15.11所示。

表15.11 寄存器c1中各控制位字段的含义

C1中的控制位

含 义

M(bit[0])

禁止/使能MMU或者MPU

0:禁止MMU或者MPU

1:使能MMU或者MPU

如果系统中没有MMU或者MPU,读取时该位返回0,写入时忽略

A(bit[1])

对于可以选择是否支持内存访问时地址对齐检查的系统,本位禁止/使能地址对齐检查功能

0:禁止地址对齐检查功能

1:使能地址对齐检查功能

对寄存器进行写操作时,忽略该位

C(bit[2])

当数据Cache和指令Cache分开时,本控制位禁止/使能数据Cache。

当数据Cache和指令Cache统一时,该控制位禁止/使能整个Cache

0:禁止Cache

1:使能Cache

如果系统中不含Cache,读取时该位返回0,写入时忽略

当系统中Cache不能禁止时,读取返回1,写入时忽略

W(bit[3])

禁止/使能写缓存

0:禁止写缓存

1:使能写缓存

如果

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top