欢迎来到天天文库
浏览记录
ID:61748061
大小:474.85 KB
页数:31页
时间:2021-03-17
《微机原理与接口技术 第二章: ARM微处理器硬件结构.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、微机原理与接口技术第二章:ARM微处理器硬件结构主讲人:鞠雷山东大学计算机科学与技术学院虚拟地址任何时候,计算机上都存在一个程序能够产生的地址集合,我们称之为地址范围。这个范围的大小由CPU的位数决定,例如一个32位的CPU,它的地址范围是0~0xFFFFFFFF(4G)而对于一个64位的CPU,它的地址范围为0~0xFFFFFFFFFFFFFFFF(64T),这个范围就是我们的程序能够产生的地址范围,我们把这个地址范围称为虚拟地址空间,该空间中的某一个地址我们称之为虚拟地址。与虚拟地址空间和虚拟地址相对应的则是物理地址空间和物理地址,大
2、多数时候我们的系统所具备的物理地址空间只是虚拟地址空间的一个子集,这里举一个最简单的例子直观地说明这两者,对于一台内存为256MB的32bit主机来说,它的虚拟地址空间范围是0~0xFFFFFFFF(4G),而物理地址空间范围是0x000000000~0x0FFFFFFF(256MB)。VirtualmemorymanagementARM存储管理单元MMU在ARM系统中,存储管理单元MMU主要完成以下工作:虚拟存储空间到物理存储空间的映射。在ARM中采用了页式虚拟存储管理。它把虚拟地址空间分成一个个固定大小的块,每一块称为一页,把物理内存
3、的地址空间也分成同样大小的页。MMU的核心部件是TLB,若cache未命中而TLB命中,实现从虚拟地址到物理地址的快速转换(通过TLB)。TLB中包含最近所访问的物理页的地址变换条目(逻辑页号至物理页号)。4协处理CP15CP15是为cache和MMU提供系统控制的协处理器。用于控制ARM的特殊性能:1、存储器访问权限的控制。ARM支持最多16个域,每个域的访问控制特性都是由CP15中的寄存器C3中的两位来控制的。访问权限:没有访问特权,客户类型(用户模式,特权模式),保留,管理者权限.(p53表2-5)2、设置虚拟存储空间的缓冲的特性(
4、写缓冲器)。3、MMU的控制(使能/禁止)。4、指令、数据缓存的控制(使能/禁止)。5寄存器作用寄存器C1中的某些位用于配置MMU中的一些操作寄存器C2保存内存中一级页表的基地址寄存器C3设置域(domain)的访问控制属性寄存器C4保留寄存器C5内存访问失效状态指示寄存器C6内存访问失效时失效的地址((虚拟地址))寄存器C8控制与清除TLB内容相关操作寄存器C10控制与锁定TLB内容相关操作协处理CP15为控制这些特性,CP15提供了16个额外寄存器,其中8个与MMU相关6禁止、使能MMU、cache和写缓冲32bit,每2位设置一个域
5、的4种不同访问属性。00没有访问权限这时访问该域将产生访问失效01客户(client)根据CP15的C1控制寄存器中的R和S位以及页表中地址变换条目中的访问权限控制位AP来确定是否允许各种系统工作模式的存储访问10保留使用该值会产生不可预知的结果11管理者(manager)不考虑CP15的C1控制寄存器中的R和S位以及页表中地址变换条目中的访问权限控制位AP,在这种情况下不管系统工作在特权模式还是用户模式都不会产生访问失效引起访问失效的原因。例,地址未对齐,页表访问失效等。向C8写入控制字,清除TLB的内容。锁定TLB,进行替换。协处理C
6、P15CP15的寄存器C1的位[0]用于控制禁止/使能MMU当CP15的寄存器C1[0]=0时,禁止MMU;当C1[0]=1时,使能MMU。访问CP15寄存器的指令有如下两条:MCRRegister->CoprocessorRegisterMRCCoprocessorRegister->Register7注意:这两条指令只能在系统模式下执行;在用户模式下执行该指令将引起异常。ARM存储器存储访问过程使能MMU时存储访问过程:芯片设置为MMU使能(设置CP15的C1寄存器)对于允许缓存的存储访问(C、B位允许缓存),如果Cache命中,直接
7、操作数据,若Cache未命中,访问TLB。0x08000x04008如果虚拟地址对应的地址变换条目不在TLB中,CPU从位于内存中的页表中查询,并把相应的结果添加到TLB中。如果TLB已经满了,则需要根据一定的替换算法进行替换。。虚拟地址高位逻辑页号物理地址高位物理页号虚拟地址物理地址0x080000e30x040000e3根据ARM输出的虚拟地址在TLB中搜索,若TLB命中,则由地址变换条目中的物理页号与逻辑地址的低位拼接成物理地址,以此地址访问内存。ARM存储器存储访问过程当得到了需要的地址变换条目后(TLB命中),将进行以下的操作:
8、①得到该虚拟地址对应的物理地址。②根据条目中C(cachable)控制位和B(Bufferable)控制位决定是否缓存该内存访问的结果(cache填充)。C、B来自于段(1M)、大页(64K)
此文档下载收益归作者所有