您的位置 首页 电路

ARM处理器中CP15协处理器的寄存器

本章和第5章的内容都与ARM处理器中CP15协处理器的寄存器有密切关系,所以我们这里先介绍一下CP15寄存器以及访问CP15寄存器的汇编指令。4.1….

本章和第5章的内容都与ARM处理器CP15协处理器寄存器有密切关系,所以咱们这儿先介绍一下CP15寄存器以及拜访CP15寄存器的汇编指令

4.1.1拜访CP15寄存器的指令拜访CP15寄存器指令的编码格局及语法阐明如下:

3128 2724 2321 20 1916 1512 118 75 4 30
cond 1 1 1 0 opcode_1 L cr n rd 1 1 1 1 opcode_2 1 crm

指令
阐明
语法格局
mcr
将ARM处理器的寄存器中的数据写到CP15中的寄存器中
mcr{}p15,,,,, {}
mrc
将CP15中的寄存器中的数据读到ARM处理器的寄存器中
mcr{}p15,,,,, {}

4.1.2CP15寄存器介绍CP15的寄存器列表如表4-1所示。
表4-1ARM处理器中CP15协处理器的寄存器

寄存器编号 根本效果 在MMU中的效果 在PU中的效果
0 ID编码(只读) ID编码和cache类型
1 操控位(可读写) 各种操控位
2 存储维护和操控 地址转化表基地址 Cachability的操控位
3 存储维护和操控 域拜访操控位 Bufferablity操控位
4 存储维护和操控 保存 保存
5 存储维护和操控 内存失效状况 拜访权限操控位
6 存储维护和操控 内存失效地址 维护区域操控
7 高速缓存和写缓存 高速缓存和写缓存操控
8 存储维护和操控 TLB操控 保存
9 高速缓存和写缓存 高速缓存确认
10 存储维护和操控 TLB确认 保存
11 保存
12 保存
13 进程标识符 进程标识符
14 保存
15 因不同规划而异 因不同规划而异 因不同规划而异

opcode_2编码
对应的标识符号寄存器
0b000
主标识符寄存器
0b001
cache类型标识符寄存器
其他
保存

1)主标识符寄存器
拜访主标识符寄存器的指令格局如下所示:
mrcp15, 0, r0, c0, c0, 0;将主标识符寄存器C0,0的值读到r0中
ARM不同版别体系处理器中主标识符寄存器的编码格局阐明如下。
ARM7之后处理器的主标识符寄存器编码格局如下所示:

31242320191615430
由出产商确认 产品子编号 ARM体系版别号 产品主编号 处理器版别号

阐明
位[3: 0] 出产商界说的处理器版别号
位[15: 4] 出产商界说的产品主编号,其间最高4位即位[15:12]或许的取值为0~7但不能是0或7
位[19: 16] ARM体系的版别号,或许的取值如下:
0x1ARM体系版别4
0x2ARM体系版别4T
0x3ARM体系版别5
0x4ARM体系版别5T
0x5ARM体系版别5TE
其他由ARM公司保存将来运用
位[23: 20] 出产商界说的产品子编号,当产品主编号相一起,运用子编号来区别不同的产品子类,如产品中不同的高速缓存的巨细等
位[31: 24] 出产厂商的编号,现在现已界说的有以下值:
0x41=AARM公司
0x44=DDigital Equipment公司
0x69=Iintel公司

ARM7处理器的主标识符寄存器编码格局如下所示:

3124232216 15430
由出产商确认 A 产品子编号 产品主编号 处理器版别号

阐明
位[3: 0] 出产商界说的处理器版别号
位[15: 4] 出产商界说的产品主编号,其间最高4位即位[15:12]的值为0x7
位[22: 16] 出产商界说的产品子编号,当产品主编号相一起,运用子编号来区别不同的产品子类,如产品中不同的高速缓存的巨细等

续表

阐明
位[23] ARM7支撑下面两种ARM体系的版别号:
0x0ARM体系版别3
0x1ARM体系版别4T
位[31: 24] 出产厂商的编号,现在现已界说的有以下值:
0x41=AARM公司
0x44=DDigital Equipment公司
0x69=IIntel公司

ARM7之前处理器的主标识符寄存器编码格局如下所示:

312423221615430
由出产商确认 A 产品子编号 产品主编号 处理器版别号

阐明
位[3: 0] 出产商界说的处理器版别号
位[15: 4] 出产商界说的产品主编号,其间最高4位即为[15:12]的值为0x7
位[22: 16] 出产商界说的产品子编号,当产品主编号相一起,运用子编号来区别不同的产品子类,如产品中不同的高速缓存的巨细等
位[23] ARM7支撑下面两种ARM体系的版别号:
0x0ARM体系版别3
0x1ARM体系版别4T
位[31: 24] 出产厂商的编号,现在现已界说的有以下值:
0x41=AARM公司
0x44=DDigital Equipment公司
0x69=Iintel公司

2)cache类型标识符寄存器
拜访cache类型标识符寄存器的指令格局如下所示:
mrcp15, 0, r0, c0, c0, 1;将cache类型标识符寄存器C0,1的值读到r0中
ARM处理器中cache类型标识符寄存器的编码格局如下所示:

31292825242312110
000 特点字段 S 数据cache相关特点 指令cache相关特点

阐明
位[28: 25] 指定操控字段位[24: 0]指定的特点之外的cache的其他特点,详见表4-2
位[24] 界说体系中的数据cache和指令cache是分隔的仍是一致的:
0体系的数据cache和指令cache是一致的;
1体系的数据cache和指令cache是分隔的
位[23: 12] 界说数据cache的相关特点,假如位[24]为0,本字段界说整个cache的特点
位[31: 24] 界说指令cache的相关特点,假如位[24]为0,本字段界说整个cache的特点

其间操控字段位[28:25]的意义阐明如下:
表4-2cache类型标识符寄存器的操控字段位[28:25]

编码 cache类型 cache内容铲除办法 cache内容确认办法
0b0000 写通类型 不需要内容铲除 不支撑内容确认
0b0001 写回类型 数据块读取 不支撑内容确认
0b0010 写回类型 由寄存器C7界说 不支撑内容确认
0b0110 写回类型 由寄存器C7界说 支撑格局A
0b0111 写回类型 由寄存器C7界说 支撑格局B

操控字段位[23:12]和操控字段位[11:0]的编码格局相同,意义如下所示:

1198653210
000 cache容量 cache相联特性 M 块巨细

cache容量字段bits[8: 6]的意义如下所示:

编码 M=0时意义(单位KB) M=1时意义(单位KB)
0b000 0.5 0.75
0b001 1 1.5
0b010 2 3
0b011 4 6
0b100 8 12
0b101 16 24
0b110 32 48
0b111 64 96

cache相联特性字段bits[5: 3]的意义如下所示:

编码 M=0时意义 M=1时意义
0b000 1路相联(直接映射) 没有cache
0b001 2路相联 3路相联
0b010 4路相联 6路相联
0b011 8路相联 12路相联
0b100 16路相联 24路相联
0b101 32路相联 48路相联
0b110 64路相联 96路相联
0b111 128路相联 192路相联

cache块巨细字段bits[1: 0]的意义如下所示:

编码 cache块巨细
0b00 2个字(8字节)
0b01 4个字(16字节)
0b10 8个字(32字节)
0b11 16个字(64字节)

31 16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
附加
L4
RR
V
I
Z
F
R
S
B
L
D
P
W
C
A
M

阐明
M 0:制止MMU或许PU;1:使能MMU或许PU
A 0:制止地址对齐查看;1:使能地址对齐查看
C 0:制止数据/整个cache;1:使能数据/整个cache
W 0:制止写缓冲;1:使能写缓冲
P 0:反常中断处理程序进入32位地址形式;1:反常中断处理程序进入26位地址形式
D 0:制止26位地址反常查看;1:使能26位地址反常查看
L 0:挑选前期间断模型;1:挑选后期间断模型
B 0:little endian;1:big endian
S 在依据MMU的存储体系中,本位用作体系维护
R 在依据MMU的存储体系中,本位用作ROM维护
F 0:由出产商界说
Z 0:制止跳转猜测功用;1:使能跳转猜测指令
I 0:制止指令cache;1:使能指令cache
V 0:挑选低端反常中断向量0x0~0x1c;1:挑选高端反常中断向量0xffff0000~ 0xffff001c
RR 0:惯例的cache筛选算法,如随机筛选;1:猜测性筛选算法,如round-robin筛选算法
L4 0:坚持ARMv5以上版别的正常功用;1:将ARMv5以上版别与曾经版别处理器兼容,不依据跳转地址的bit[0]进行ARM指令和Thumb状况切换:bit[0]等于0表明ARM指令,等于1表明Thumb指令
附加:

310
一级映射描述符表的基地址(物理地址)

310
D15
D14
D13
D12
D11
D10
D9
D8
D7
D6
D5
D4
D3
D2
D1
D0

31987430
UNP/SBZP
0
域标识
状况标识

其间,域标识bit[7:4]表明寄存引起存储拜访失效的存储拜访所属的域。
状况标识bit[3:0]表明放引起存储拜访失效的存储拜访类型,该字段意义如表4-3所示(优先级由上到下递减)。
表4-3状况标识字段意义

引起拜访失效的原因 状况标识 域标识 C6
终端反常(Terminal Exception) 0b0010 无效 出产商界说
中断向量拜访反常(Vector Exception) 0b0000 无效 有用
地址对齐 0b00x1 无效 有用
一级页表拜访失效 0b1100 无效 有用
二级页表拜访失效 0b1110 有用 有用
依据段的地址改换失效 0b0101 无效 有用
依据页的地址改换失效 0b0111 有用 有用
依据段的存储拜访中域操控失效 0b1001 有用 有用
依据页的存储拜访中域操控失效 0b1101 有用 有用
依据段的存储拜访中拜访权限操控失效 0b1111 有用 有用
依据页的存储拜访中拜访权限操控失效 0b0100 有用 有用
依据段的cache预取时外部存储体系失效 0b0110 有用 有用
依据页的cache预取时外部存储体系失效 0b1000 有用 有用
依据段的非cache预取时外部存储体系失效 0b1010 有用 有用

310
失效地址(虚拟地址)

3132-W 31-W0
cache组内块序号index
0

其间index表明当下一次产生cache未射中时,将预取的存储块存入cache中该块对应的组中序号为index的cache块中。此刻序号为0~index-1的cache块被确认,当产生cache替换时,从序号为index到ASSOCIATIVITY的块中挑选被替换的块。
编码格局B如下所示:

3130WW-10
L 0 cache组内块序号index
阐明
L=0 当产生cache未射中时,将预取的存储块存入cache中该块对应的组中序号为index的cache块中

续表

阐明
L=1 假如本次写操作之前L=0,而且index值小于本次写入的index,本次写操作履行的成果不行预知;不然,这时被确认的cache块包含序号为0~index-1的块,当产生cache替换时,从序号为index到ASSOCIATIVITY的块中挑选被替换的块

31 3032-W31-W32-2W31-2W10
可被替换的条目开始地址的base
下一个将被替换的条目地址victim
0
P

阐明
victim 指定下一次TLB没有射中(所需的地址改换条目没有包含在TLB中)时,从内存页表中读取所需的地址改换条目,并把该地址改换条目保存在TLB中地址victim处
base 指定TLB替换时,所运用的地址规模,从(base)到(TLB中条目数-1);字段victim的值应该包含在该规模内
P 1:写入TLB的地址改换条目不会受使整个TLB无效操作的影响,一向坚持有用;0:写入TLB的地址改换条目将会遭到使整个TLB无效操作的影响

3125240
PID
0
其间,PID表明当时进程的地点的进程空间块的编号,即当时进程的进程标识符,取值为0~127。
0:MVA(改换后的虚拟地址)= VA(虚拟地址),制止FCSE(快速上下文切换技能),体系复位后PID=0;
非0:使能FCSE。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/dianlu/277270.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部