ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:20.82KB ,
资源ID:9580444      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9580444.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(arm CP15协处理器.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

arm CP15协处理器.docx

1、arm CP15协处理器ARM CP15协处理器4.1.1 访问CP15寄存器的指令访问CP15寄存器指令的编码格式及语法说明如下:31 2827 2423 212019 1615 1211 87 543 0cond1 1 1 0opcode_1Lcr nrd1 1 1 1opcode_21crm说明:协处理器行为操作码,对于CP15来说,永远为0b000,否则结果未知。:不能是r15/pc,否则,结果未知。:作为目标寄存器的协处理器寄存器,编号为C0C15。:附加的目标寄存器或源操作数寄存器,如果不需要设置附加信息,将crm设置为c0,否则结果未知。:提供附加信息比如寄存器的版本号或者访问类

2、型,用于区分同一个编号的不同物理寄存器,可以省略或者将其设置为0,否则结果未知。指 令说 明语法格式mcr将ARM处理器的寄存器中的数据写到CP15中的寄存器中mcr p15, , , , , mrc将CP15中的寄存器中的数据读到ARM处理器的寄存器中mcr p15, , , , , 4.1.2 CP15寄存器介绍CP15的寄存器列表如表4-1所示。表4-1 ARM处理器中CP15协处理器的寄存器寄存器编号基本作用在MMU中的作用在PU中的作用0ID编码(只读)ID编码和cache类型1控制位(可读写)各种控制位2存储保护和控制地址转换表基地址Cachability的控制位3存储保护和控制域

3、访问控制位Bufferablity控制位4存储保护和控制保留保留5存储保护和控制内存失效状态访问权限控制位6存储保护和控制内存失效地址保护区域控制7高速缓存和写缓存高速缓存和写缓存控制8存储保护和控制TLB控制保留9高速缓存和写缓存高速缓存锁定10存储保护和控制TLB锁定保留11保留12保留13进程标识符进程标识符14保留15因不同设计而异因不同设计而异因不同设计而异 CP15的寄存器C0CP15中寄存器C0对应两个标识符寄存器,由访问CP15中的寄存器指令中的指定要访问哪个具体物理寄存器,与两个标识符寄存器的对应关系如下所示:opcode_2编码对应的标识符号寄存器0b000主标识符寄存器0

4、b001cache类型标识符寄存器其他保留1)主标识符寄存器访问主标识符寄存器的指令格式如下所示:mrc p15, 0, r0, c0, c0, 0 ;将主标识符寄存器C0,0的值读到r0中ARM不同版本体系处理器中主标识符寄存器的编码格式说明如下。ARM7之后处理器的主标识符寄存器编码格式如下所示:31 24 23 20 19 16 15 4 3 0由生产商确定产品子编号ARM体系版本号产品主编号处理器版本号位说 明位3: 0生产商定义的处理器版本号位15: 4生产商定义的产品主编号,其中最高4位即位15:12可能的取值为07但不能是0或7位19: 16ARM体系的版本号,可能的取值如下:0

5、x1 ARM体系版本40x2 ARM体系版本4T0x3 ARM体系版本50x4 ARM体系版本5T0x5 ARM体系版本5TE其他 由ARM公司保留将来使用位23: 20生产商定义的产品子编号,当产品主编号相同时,使用子编号来区分不同的产品子类,如产品中不同的高速缓存的大小等位31: 24生产厂商的编号,现在已经定义的有以下值:0x41 =A ARM公司0x44 =D Digital Equipment公司0x69 =I intel公司ARM7处理器的主标识符寄存器编码格式如下所示:31 24 23 22 16 15 4 3 0由生产商确定A产品子编号产品主编号处理器版本号位说 明位3: 0生

6、产商定义的处理器版本号位15: 4生产商定义的产品主编号,其中最高4位即位15:12的值为0x7位22: 16生产商定义的产品子编号,当产品主编号相同时,使用子编号来区分不同的产品子类,如产品中不同的高速缓存的大小等续表位说 明位23ARM7支持下面两种ARM体系的版本号:0x0 ARM体系版本30x1 ARM体系版本4T位31: 24生产厂商的编号,现在已经定义的有以下值:0x41 =A ARM公司0x44 =D Digital Equipment公司0x69 =I Intel公司ARM7之前处理器的主标识符寄存器编码格式如下所示:31 24 23 22 16 15 4 3 0由生产商确定A

7、产品子编号产品主编号处理器版本号位说 明位3: 0生产商定义的处理器版本号位15: 4生产商定义的产品主编号,其中最高4位即为15:12的值为0x7位22: 16生产商定义的产品子编号,当产品主编号相同时,使用子编号来区分不同的产品子类,如产品中不同的高速缓存的大小等位23ARM7支持下面两种ARM体系的版本号:0x0 ARM体系版本30x1 ARM体系版本4T位31: 24生产厂商的编号,现在已经定义的有以下值:0x41 =A ARM公司0x44 =D Digital Equipment公司0x69 =I intel公司2)cache类型标识符寄存器访问cache类型标识符寄存器的指令格式如

8、下所示:mrc p15, 0, r0, c0, c0, 1 ;将cache类型标识符寄存器C0,1的值读到r0中ARM处理器中cache类型标识符寄存器的编码格式如下所示:31 29 28 25 24 23 12 11 00 0 0属性字段S数据cache相关属性指令cache相关属性位说明位28: 25指定控制字段位24: 0指定的属性之外的cache的其他属性,详见表4-2位24定义系统中的数据cache和指令cache是分开的还是统一的:0 系统的数据cache和指令cache是统一的;1 系统的数据cache和指令cache是分开的位23: 12定义数据cache的相关属性,如果位24

9、为0,本字段定义整个cache的属性位31: 24定义指令cache的相关属性,如果位24为0,本字段定义整个cache的属性其中控制字段位28:25的含义说明如下:表4-2 cache类型标识符寄存器的控制字段位28:25编 码cache类型cache内容清除方法cache内容锁定方法0b0000写通类型不需要内容清除不支持内容锁定0b0001写回类型数据块读取不支持内容锁定0b0010写回类型由寄存器C7定义不支持内容锁定0b0110写回类型由寄存器C7定义支持格式A0b0111写回类型由寄存器C7定义支持格式B控制字段位23:12和控制字段位11:0的编码格式相同,含义如下所示:11 9

10、 8 6 5 3 2 1 00 0 0cache容量cache相联特性M块大小cache容量字段bits8: 6的含义如下所示:编 码M=0时含义(单位KB)M=1时含义(单位KB)0b0000.50.750b00111.50b010230b011460b1008120b10116240b11032480b1116496cache相联特性字段bits5: 3的含义如下所示:编 码M=0时含义M=1时含义0b0001路相联(直接映射)没有cache0b0012路相联3路相联0b0104路相联6路相联0b0118路相联12路相联0b10016路相联24路相联0b10132路相联48路相联0b110

11、64路相联96路相联0b111128路相联192路相联cache块大小字段bits1: 0的含义如下所示:编 码cache块大小0b002个字(8字节)0b014个字(16字节)0b108个字(32字节)0b1116个字(64字节) CP15的寄存器C1访问主标识符寄存器的指令格式如下所示:mrc p15, 0, r0, c1, c0, 0 ;将CP15的寄存器C1的值读到r0中mcr p15, 0, r0, c1, c0, 0 ;将r0的值写到CP15的寄存器C1中CP15中的寄存器C1的编码格式及含义说明如下:31 161514131211109876543210附加L4RRVIZFRSB

12、LDPWCAM位说 明M0:禁止MMU或者PU;1:使能MMU或者PUA0:禁止地址对齐检查;1:使能地址对齐检查C0:禁止数据/整个cache;1:使能数据/整个cacheW0:禁止写缓冲;1:使能写缓冲P0:异常中断处理程序进入32位地址模式;1:异常中断处理程序进入26位地址模式D0:禁止26位地址异常检查;1:使能26位地址异常检查L0:选择早期中止模型;1:选择后期中止模型B0:little endian;1:big endianS在基于MMU的存储系统中,本位用作系统保护R在基于MMU的存储系统中,本位用作ROM保护F0:由生产商定义Z0:禁止跳转预测功能;1:使能跳转预测指令I0

13、:禁止指令cache;1:使能指令cacheV0:选择低端异常中断向量0x00x1c;1:选择高端异常中断向量0xffff0000 0xffff001cRR0:常规的cache淘汰算法,如随机淘汰;1:预测性淘汰算法,如round-robin淘汰算法L40:保持ARMv5以上版本的正常功能;1:将ARMv5以上版本与以前版本处理器兼容,不根据跳转地址的bit0进行ARM指令和Thumb状态切换:bit0等于0表示ARM指令,等于1表示Thumb指令附加: CP15的寄存器C2CP15中的寄存器C2保存的是页表的基地址,即一级映射描述符表的基地址。其编码格如下所示:31 0一级映射描述符表的基地

14、址(物理地址) CP15的寄存器C3CP15中的寄存器C3定义了ARM处理器的16个域的访问权限。31 0D15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0 CP15的寄存器C5CP15中的寄存器C5是失效状态寄存器,编码格式如下所示:31 9 8 7 4 3 0UNP/SBZP0域标识状态标识其中,域标识bit7:4表示存放引起存储访问失效的存储访问所属的域。状态标识bit3:0表示放引起存储访问失效的存储访问类型,该字段含义如表4-3所示(优先级由上到下递减)。表4-3 状态标识字段含义引起访问失效的原因状态标识域标识C6终端异常(Terminal Excepti

15、on)0b0010无效生产商定义中断向量访问异常(Vector Exception)0b0000无效有效地址对齐0b00x1无效有效一级页表访问失效0b1100无效有效二级页表访问失效0b1110有效有效基于段的地址变换失效0b0101无效有效基于页的地址变换失效0b0111有效有效基于段的存储访问中域控制失效0b1001有效有效基于页的存储访问中域控制失效0b1101有效有效基于段的存储访问中访问权限控制失效0b1111有效有效基于页的存储访问中访问权限控制失效0b0100有效有效基于段的cache预取时外部存储系统失效0b0110有效有效基于页的cache预取时外部存储系统失效0b1000

16、有效有效基于段的非cache预取时外部存储系统失效0b1010有效有效 CP15中的寄存器C6CP15中的寄存器C5是失效地址寄存器,编码格式如下所示:31 0失效地址(虚拟地址) CP15中的寄存器C7CP15的C7寄存器用来控制cache和写缓存,它是一个只写寄存器,读操作将产生不可预知的后果。访问CP15的C7寄存器的指令格式如下所示:mcr p15, 0, , , crm, ;、和的不同取值组合 实现不同功能 CP15中的寄存器C8CP15的C8寄存器用来控制清除TLB的内容,是只写寄存器,读操作将产生不可预知的后果。访问CP15的C8寄存器的指令格式如下所示:mcr p15, 0,

17、, , crm, ;、和的不同取值组合实现不同功能,见第4.2节 CP15中的寄存器C9CP15的C9寄存器用于控制cache内容锁定。访问CP15的C9寄存器的指令格式如下所示:mcr p15, 0, , , c0, mrc p15, 0, , , c0, 如果系统中包含独立的指令cache和数据cache,那么对应于数据cache和指令cache分别有一个独立的cache内容锁定寄存器,用来选择其中的某个寄存器:=1选择指令cache的内容锁定寄存器;=0选择数据cache的内容锁定寄存器。CP15的C9寄存器有A、B两种编码格式。编码格式A如下所示:31 32-W 31-W 0cache

18、组内块序号index0其中index表示当下一次发生cache未命中时,将预取的存储块存入cache中该块对应的组中序号为index的cache块中。此时序号为0index-1的cache块被锁定,当发生cache替换时,从序号为index到ASSOCIATIVITY的块中选择被替换的块。编码格式B如下所示:31 30 W W-1 0L0cache组内块序号index位说 明L=0当发生cache未命中时,将预取的存储块存入cache中该块对应的组中序号为index的cache块中续表位说 明L=1如果本次写操作之前L=0,并且index值小于本次写入的index,本次写操作执行的结果不可预知

19、;否则,这时被锁定的cache块包括序号为0index-1的块,当发生cache替换时,从序号为index到ASSOCIATIVITY的块中选择被替换的块 CP15的寄存器C10CP15的C10寄存器用于控制TLB内容锁定。访问CP15的C10寄存器的指令格式如下所示:mcr p15, 0, , , c0, mrc p15, 0, , , c0, 如果系统中包含独立的指令TLB和数据TLB,那么对应于数据TLB和指令TLB分别有一个独立的TLB内容锁定寄存器,用来选择其中的某个寄存器:=1选择指令TLB的内容锁定寄存器;=0选择数据TLB的内容锁定寄存器。C10寄存器的编码格式如下:31 30

20、 32-W 31-W 32-2W 31-2W 1 0可被替换的条目起始地址的base下一个将被替换的条目地址victim0P位说 明victim指定下一次TLB没有命中(所需的地址变换条目没有包含在TLB中)时,从内存页表中读取所需的地址变换条目,并把该地址变换条目保存在TLB中地址victim处base指定TLB替换时,所使用的地址范围,从(base)到(TLB中条目数-1);字段victim的值应该包含在该范围内P1:写入TLB的地址变换条目不会受使整个TLB无效操作的影响,一直保持有效;0:写入TLB的地址变换条目将会受到使整个TLB无效操作的影响 CP15的寄存器C13C13寄存器用于快速上下文切换FCSE。访问CP15的C13寄存器的指令格式如下所示:mcr p15, 0, , , c0, 0mrc p15, 0, , , c0, 0C13寄存器的编码格式如下所示:31 25 24 0PID0其中,PID表示当前进程的所在的进程空间块的编号,即当前进程的进程标识符,取值为0127。0:MVA(变换后的虚拟地址)= VA(虚拟地址),禁止FCSE(快速上下文切换技术),系统复位后PID=0;非0:使能FCSE。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1