微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 常见的五大ARM存储器之一:协处理器CP15

常见的五大ARM存储器之一:协处理器CP15

时间:07-14 来源:本站整理 点击:

5内存保护和控制MMU:错误状态

  PU:访问权限控制

  6内存保护和控制MMU:错误状态

  PU:保护区域控制

  7Cache和写缓存Cache和写缓存控制

  8内存保护和控制MMU:TLB控制

  PU:保留

  9Cache和写缓存Cache锁定

  续表

  寄存器编号基 本 作 用特 殊 用 途

  10内存保护和控制MMU:TLB锁定

  PU:保留

  11保留保留

  12保留保留

  13进程ID进程ID

  14保留保留

  15芯片生产厂商定义芯片生产厂商定义

  1.3 寄存器c0

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

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

  操作码opcode2对应的标识符寄存器

  0b000主标识符寄存器

  0b001Cache类型寄存器

  其他保留

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

  (1)主标识符寄存器

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

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

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

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

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

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

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

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

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

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

  

  图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类型,即可以用下面的指令将处

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

网站地图

Top