侵权投诉
订阅
纠错
加入自媒体

例说嵌入式开发之ARM协处理器CP15

2013-11-07 09:55
老猫
关注

  (1)主标识符寄存器

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

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

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

  ·  如果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公司保留将来使用)所示。

例说嵌入式开发之ARM协处理器CP15

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

例说嵌入式开发之ARM协处理器CP15

  bit[23:20]:生产厂商定义的产品子编号。当产品主编号相同时,使用子编号区分不同的产品子类,如产品中不同的cache的大小。

  bit[31:24]:生产厂商的编号现已定义的如表15.4所示。其他的值ARM公司保留将来使用。

例说嵌入式开发之ARM协处理器CP15

  对于ARM7系统的处理器,其主标识符的编码如图15.3所示。

例说嵌入式开发之ARM协处理器CP15

图15.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]:生产厂商的编号已定义的如表15.5所示,其他的值ARM公司保留将来使用。

例说嵌入式开发之ARM协处理器CP15

  对于ARM7系统的处理器,其主标识符的编码如图15.4所示。

例说嵌入式开发之ARM协处理器CP15

图15.4  ARM7之前处理器标识符编码

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

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

  bit[31:4]:处理器标识符及其含义如表15.6所示。

例说嵌入式开发之ARM协处理器CP15

  (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类型标识符寄存器各控制字段的含义编码格式如图15.5所示。

例说嵌入式开发之ARM协处理器CP15

图15.5  Cache属性寄存器标识符编码格式

  其中各控制字段的含义说明如下。

  属性字段(ctype):指定没有在S位、数据Cache相关属性位、指令Cache相关属性类中指定的属性,其具体编码参见表15.7。

例说嵌入式开发之ARM协处理器CP15 

  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为例,显示了编码结构。

例说嵌入式开发之ARM协处理器CP15

图15.6  指令Cache编码结构

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

  bit[11:9]:保留用于将来使用。

  bit[8:6]:定义Cache的容量,其编码格式及含义如表15.8所示。

例说嵌入式开发之ARM协处理器CP15

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

例说嵌入式开发之ARM协处理器CP15

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

例说嵌入式开发之ARM协处理器CP15

<上一页  1  2  3  4  下一页>  
声明: 本文由入驻维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号