新闻中心

EEPW首页>嵌入式系统>设计应用> ARM存储器之:协处理器CP15

ARM存储器之:协处理器CP15

作者: 时间:2013-09-30 来源:网络 收藏

本文引用地址://m.amcfsurvey.com/article/257013.htm

15.1.2中的寄存器

表15.1给出了主要寄存器的功能和作用。

表15.1寄存器

寄存器编号

基本作用

特殊用途

0

ID编号(只读)

ID和Cache类型

1

控制位

各种控制位

2

保护和控制

MMU:地址转换表基地址

PU:Cache属性设置

3

内存保护和控制

MMU:域访问控制

PU:写缓存控制

4

内存保护和控制

保留

5

内存保护和控制

MMU:错误状态

PU:访问权限控制

6

内存保护和控制

MMU:错误状态

PU:保护区域控制

7

Cache和写缓存

Cache和写缓存控制

8

内存保护和控制

MMU:TLB控制

PU:保留

9

Cache和写缓存

Cache锁定

续表

寄存器编号

基本作用

特殊用途

10

内存保护和控制

MMU:TLB锁定

PU:保留

11

保留

保留

12

保留

保留

13

进程ID

进程ID

14

保留

保留

15

芯片生产厂商定义

芯片生产厂商定义

15.1.3寄存器c0

寄存器c0包含的是本身或芯片生产厂商的一些标识信息。当使用MRC指令读c0寄存器时,根据第二个操作码opcode2的不同,读出的标识符也是不同的。操作码与标识符的对应关系如表15.2所示。寄存器c0是只读寄存器,当用MCR指令对其进行写操作时,指令的执行结果不可预知。

表15.2 操作码和标识符的对应关系

操作码opcode2

对应的标识符寄存器

0b000

主标识符寄存器

0b001

Cache类型寄存器

其他

保留

在操作码opcode2的取值中,主标识符(opcode2=0)是强制定义的,其他标识符由芯片的生产厂商定义。如果操作码opcode2指定的值未定义,指令将返回主标识符。其他标识符的值应与主标识符的值不同,可以由软件编程来实现,同时读取主标识符和其他标识符,并将两者的值进行比较。如果两个标识符值相同,说明未定义该标识符;如果两个标识符值不同,说明定义了该标识符,并且得到该标识符的值。

(1)主标识符寄存器

指令对CP15进行操作,并且操作码opcode=2时,处理器的主标识符将被读出。从主标识符中,可以确定体系结构的版本型号。同时也可以参考由芯片生产厂商定义的其他标识符,来获得更详细的信息。

在主标识信息中,bit[15:12]区分了不同的处理器版本:

·如果bit[15:12]为0x0,说明处理器是7之前的处理器;

·如果bit[15:12]为0x7,说明处理器为ARM7处理器;

·如果bit[15:12]为其他值,说明处理器为ARM7之后的处理器。

对于ARM7之后的处理器,其标识符的编码格式如图15.2所示。

其中各部分的编码含义说明如下。

bit[3:0]:包含生产厂商定义的处理器版本型号。

bit[15:4]:生产厂商定义的产品主编号,可能的取值为0x0~0x7。

bit[19:16]:ARM体系的版本号,可能的取值如表15.3(其他值由ARM公司保留将来使用)所示。

图15.2ARM7之后处理器标识符编码

表15.3 bit[19:16]与ARM版本号

可能的取值

版本号

0x1

ARM体系版本4

0x2

ARM体系版本4T

0x3

ARM体系版本5

0x4

ARM体系版本5T

0x5

ARM体系版本5TE



评论


相关推荐

技术专区

关闭