ARM存储器之:协处理器CP15
(2)Cache类型标识符寄存器
如前所述,对于指令MRC来说,当协处理器寄存器为r0,而第二操作数opcode2为0b001时,指令读取值为Cache类型,即可以用下面的指令将处理器的Cache类型标识符寄存器的内容读取到寄存器r0中。
MRCP15,0,r0,c0,c0,1
Cache类型标识符定义了关于Cache的信息,具体内容如下所述。
·系统中的数据Cache和指令Cache是分开的还是统一的。
·Cache的容量、块大小以及相联特性。
·Cache类型是直(write-through)写还是回写(write-back)。
·对于回写(write-back)类型的Cache如何有效清除Cache内容。
·Cache是否支持内容锁定。
Cache类型标识符寄存器各控制字段的含义编码格式如图15.5所示。
图15.5Cache属性寄存器标识符编码格式
其中各控制字段的含义说明如下。
属性字段(ctype):指定没有在S位、数据Cache相关属性位、指令Cache相关属性类中指定的属性,其具体编码参见表15.7。
表15.7 Cache类型标识符寄存器属性字段含义
编码 | Cache类型 | Cache内容清除方法 | Cache内容锁定方法 |
0b0000 | 直写 | 不需要内容清除 | 不支持 |
0b0001 | 回写 | 数据块读取 | 不支持 |
0b0010 | 回写 | 由寄存器定义 | 不支持 |
0b0110 | 回写 | 由寄存器定义 | 支持格式A,见后 |
0b0111 | 回写 | 由寄存器定义 | 支持格式B,见后 |
S位:定义系统中的数据Cache和指令Cache是分开的还是统一的。如果S=0,说明指令Cache和数据Cache是统一的,如果S=1,则说明数据Cache和指令Cache是分离的。
数据Cache相关属性:定义了数据Cache容量、行大小和相联(associativity)特性(如果S≠0)。
指令Cache相关属性:定义了指令Cache容量、行大小和相联(associativity)特性(如果S≠0)。
数据Cache相关属性和指令Cache相关属性分别占用控制字段[23:12]和[11:0],它们的结构相同,图15.6以指令Cache为例,显示了编码结构。
图15.6指令Cache编码结构
其中,各部分的含义说明如下。
bit[11:9]:保留用于将来使用。
bit[8:6]:定义Cache的容量,其编码格式及含义如表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 |
评论