常见的五大ARM存储器之一:协处理器CP15(5)
 
- UID
- 1029342
- 性别
- 男
|

常见的五大ARM存储器之一:协处理器CP15(5)
。 
图2 ARM7之后处理器标识符编码 表3 bit[19:16]与ARM版本号
可能的取值版 本 号
0x1ARM体系版本4
0x2ARM体系版本4T
0x3ARM体系版本5
0x4ARM体系版本5T
0x5ARM体系版本5TE
bit[23:20]:生产厂商定义的产品子编号。当产品主编号相同时,使用子编号区分不同的产品子类,如产品中不同的cache的大小。
bit[31:24]:生产厂商的编号现已定义的如表4所示。其他的值ARM公司保留将来使用。
表4 bit[31:24]值与ARM生产厂商
可能的取值ARM芯片生产厂商
0x41(A)ARM公司
0x44(D)Digital Equipment
0x69(i)Intel公司
对于ARM7系统的处理器,其主标识符的编码如图3所示。

图3 ARM7处理器标识符编码 其中各部分的含义说明如下。
bit[3:0]:包含生产厂商定义的处理器版本型号。
bit[15:4]:生产厂商定义的产品主编号,其最高4位的值为0x7。
bit[22:16]:生产商定义的产品子编号。当产品的主编号相同时,使用子编号区分不同的产品子类,如产品中不同的产品子类、不同产品中高速缓存的大小。
bit[23]:ARM7处理器支持下面两种ARM体系的版本号。0x0代表ARM体系版本3;0x1代表ARM体系版本4T。
bit[31:24]:生产厂商的编号已定义的如表5所示,其他的值ARM公司保留将来使用。
表5 bit[31:24]值与ARM生产厂商
可能的取值ARM芯片生产厂商
0x41(A)ARM公司
0x44(D)Digital Equipment
0x69(i)Intel公司
对于ARM7系统的处理器,其主标识符的编码如图4所示。

图4 ARM7之前处理器标识符编码
其中各部分的含义说明如下。
bit[3:0]:包含生产厂商定义的处理器版本型号。
bit[31:4]:处理器标识符及其含义如表6所示。
表6 ARM之后处理器标识符与含义
处理器标识符含 义
0x4156030ARM3(体系版本2)
0x4156060ARM600(ARM体系版本3)
0x4156061ARM610(ARM体系版本3)
0x4156062ARM620(ARM体系版本3)
(2)Cache类型标识符寄存器
如前所述,对于指令MRC来说,当协处理器寄存器为r0,而第二操作数opcode2为0b001时,指令读取值为Cache类型,即可以用下面的指令将处理器的Cache类型标识符寄存器的内容读取到寄存器r0中。
MRC P15,0,r0,c0,c0,1
Cache类型标识符定义了关于Cache的信息,具体内容如下所述。
· 系统中的数据Cache和指令Cache是分开的还是统一的。
· Cache的容量、块大小以及相联特性。
· Cache类型是直(write-through)写还是回写(write-back)。
· 对于回写(write-back)类型的Cache如何有效清除Cache内容。
· Cache是否支持内容锁定。
Cache类型标识符寄存器各控制字段的含义编码格式如图5所示。

图5 Cache属性寄存器标识符编码格式 其中各控制字段的含义说明如下。
属性字段(ctype):指定没有在S位、数据Cache相关属性位、指令Cache相关属性类中指定的属性,其具体编码参见表7。
表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],它们的结构相同,图6以指令Cache为例,显示了编码结构。

图6 指令Cache编码结构 其中,各部分的含义说明如下。
bit[11:9]:保留用于将来使用。
bit[8:6]:定义Cache的容量,其编码格式及含义如表8所示。
表8 类型标识符寄存器控制字段bit[8:6]含义
编 码M=0时的含义M=1时的含义
0b0000.5KB0.75KB
0b0011KB1.5KB
0b0102KB3KB
0b0114KB6KB
续表
编 码M=0时的含义M=1时的含义
0b1008KB12KB
0b10116KB24KB
0b11032KB48KB
0b11164KB96KB
bit[1:0]:定义Cache的块大小,其编码格式及含义如表9所示。
表9 类型标识符寄存器控制字段bit[1:0]含义
编 码Cache块大小
0b002个字(8字节)
0b014个字(16字节)
0b108个字(32字节)
0b1116个字(64字节)
bit[5:3]:定义了Cache的相联属性,其编码格式及含义如表10所示。
表10 类型标识符寄存器控制字段bit[5:3]含义
编 码M=0时的含义M=1时的含义
0b0001路相联
(直接映射)没有Cache
0b0012路相联3路相联
0b0104路相联6路相联
0b0118路相联12路相联
0b10016路相联24路相联
0b10132路相联48路相联
0b11064路相联96路相联
0b111128路相联192路相联 |
|
|
|
|
|