《嵌入式系统及其应用课件》第二章嵌入式微处理器的体系结构.ppt_第1页
《嵌入式系统及其应用课件》第二章嵌入式微处理器的体系结构.ppt_第2页
《嵌入式系统及其应用课件》第二章嵌入式微处理器的体系结构.ppt_第3页
《嵌入式系统及其应用课件》第二章嵌入式微处理器的体系结构.ppt_第4页
《嵌入式系统及其应用课件》第二章嵌入式微处理器的体系结构.ppt_第5页
已阅读5页,还剩96页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式系统及其应用,李 登 峰,主要内容:,一、ARM处理器概述 二、ARM内核结构 三、ARM中断与异常 四、ARM寄存器组织 五、ARM的协处理器接口 六、ARM的存储系统 七、S3C2440微处理器,一、ARM处理器概述,ARM(Advanced RISC Machines)是一家专门从事基于RISC技术的芯片设计开 发的公司,但公司并不直接从事芯片生产,而是靠转让设计许可获得收益。,ARM微处理器内核产品是一个庞大产品系列,采用ARM微处理器内核的微处理器芯片遍及工业控制消费类电子产品、通信系统、网络系统、无线传输等各类产品市场,约占据了32位RISC微处理器75%以上的市场份额。,1.ARM处理器体系结构版本,从指令集体系结构版本来看,为了清楚地表达每个ARM内核应用实例所使用的指令集,ARM公司定义了7种主要的ARM指令集体系结构版本,以版本号V1V7表示,其中V1、V2、 V3版本已经不再使用或未实现商业化。,(1)V3版架构( 目前已废弃 )对原来的ARM体系结构作了较大的改动:,寻址空间增至32位(4GB); 当前程序状态信息从原来的R15寄存器移到当前程序状态寄存器CPSR中(Current Program Status Register) 增加了程序状态保存寄存器SPSR(Saved Program Status Register); 增加了两种异常模式,使操作系统代码可方便地使用数据访问中止异常、指令预取中止异常和未定义指令异常; 增加了MRS/MSR指令,以访问新增的CPSR/SPSR寄存器; 增加了从异常处理返回的指令功能。,(2)V4版架构是目前应用最广的ARM体系结构,不再强制要求与26位地址址空间兼容,而且还明确了哪些指令会引起未定义指令异常 指令集中增加了以下功能:,符号化和非符号化半字及符号化字节的存/取指令; 增加了T变种,处理器可工作在Thumb状态,增加了16位Thumb指令集; 完善了软件中断SWI指令的功能; 处理器系统模式引进特权方式时使用用户寄存器操作; 把一些未使用的指令空间捕获为未定义指令 。,(3)V5版架构是在V4版的基础上增加了一些新的指令:,带有链接和交换的转移BLX指令; 计数前导零CLZ指令; BRK中断指令; 增加了数字信号处理指令(V5TE版); 为协处理器增加更多可选择的指令; 改进了ARM/Thumb状态之间的切换效率; 增加了两个E和J两个变种,其中E表示增强型DSP指令集,包括全部算法操作和16位乘法操作,J表示支持新的JAVA,提供字节代码执行的硬件和优化软件加速功能。,(4)V6版架构在V5版的基础上强化了图形处理性能,增加了一些新的功能:,单指令多数据功能 (Single Instruction, Multiple Data,SIMD ),将语音及图像的处理功能提高到了原型机的4倍; Thumb增强功能,使得35%代码压缩;高性能定点DSP功能; JazelleTM功能,Java性能优化,速度可提高8倍。,(5)v7构架是在V6版的基础上发展的,是目前ARM处理器体系结构的最高版本,并保持了对现存ARM解决方案的完整的代码兼容性。,采用了新型13级流水线,指令的吞吐率更高; 增加了硬件处理中断嵌套功能,具有更好的实时性; 采用了Thumb-2技术,比纯32位代码少使用31%的内存; 采用了NEON(可执行打包的 SIMD处理)技术,将DSP和媒体处理能力提高了进4倍,可加速多媒体和信号处理算法(如视频编码/解码、2D/3D 图形、游戏、音频和语音处理、图像处理技术、电话和声音合成),其性能至少为 ARMv6 SIMD性能的2倍; 增加了支持改良的浮点运算,满足下一代3D图形、游戏以、信号分析及传统嵌入式控制需求。,2.ARM处理器家族,ARM7 Family,ARM9 Family,ARM10 Family,ARM11 Family,3. ARM产品命名规则,可综合版本,S,支持向量浮点运算,F,支持Jazelle加速,J,基于TDMI增强型,支持DSP指令,E,支持Embedded ICE,支持嵌入式跟踪调试,I,支持快速乘法器,M,支持片上调试,D,支持Thumb指令集,T,cache,Z,存储管理/保护单元,Y,处理器系列,如ARM7/ARM9/ARM11等,X,含义,后缀变量,此外还必须注意:,ARM7TDMI之后的所有ARM内核,即使“ARM”标志后没有包含那些字符,但也包含了TDMI的特性;处理器系列是共享相同硬件特性的一组处理器的具体实现。 例如,ARM7TDMI: ARM740T和ARM720T都共享相同的系列特性,都属于ARM7系列; JTAG是由 IEEE1149。1标准测试访问端口(standard test access port)和边界扫描来描述的。它是ARM 用来发送和接受处理器内核与测试一起之间调试信息的一系列协议;嵌入式ICE宏单元(Embedded ICE macrocell)是建立在处理器内部、用来设置断点和观察点的调试硬件。 可综合版本,意味着处理器内核是以源代码形式提供的。这种源代码形式又可以被编译成一种易于EDA工具使用的形式。,ARM主要产品家族、架构、内核及主要特点关系,二、ARM内核结构,T功能模块(16 Thumb ): 可以在兼顾性能的同时减少代码尺寸。 M功能模块: (增强型乘法器)可生成全64位的结果。 D功能模块(Debug ):该内核中放置了用于调试的结构。 I功能模块(EmbeddedICE Logic):用于实现断点观测及变量观测的逻辑电路部分,ARM9内核模块示意图,ARM内核采用了RISC型处理器结构,具有低功耗、成本低、功能强等突出优势,在嵌入式系统及应用领域具有重要的影响,其主要特点包括:,采用了RISC型处理器结构; 低功耗、成本低、功能强; 采用ARM/Thumb(32位/16位)双指令集; 具有多处理器状态模式; 具有在线仿真调试功能; 具有协处理器接口; 具有优化设计的片上总线AMBA(AHB/ASB/APB); 具有灵活方便的接口。,1. ARM7TDMI主处理器逻辑结构,三级指令流水线是ARM7TDMI的主要特征之一,三级指令流水线指令的执行分为取指、译码和执行三个阶段,各阶段所完成的操作详细分解表如下:,ARM7TDMI单周期指令最佳流水线,MOV、ADD、SUB指令为单周期指令。从T1开始,用3个时钟周期执行了3条指令,指令平均周期数等于1个时钟周期。,2.ARM9TDMI主处理器通用内核结构,3.ARM920T内核结构,4. ARM启动方式,ARM内核真正支持的启动方式只有一个:通过操作CP15来实现对reset vector的重定向 memory remap:这一机制并非ARM内核本身所支持的,而是在SoC的时候人为修改memory的访问逻辑而实现的,5.ARM处理器运行模式,、ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。 、大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。 、除用户模式以外,其余的所有6种模式称为非用户模式或特权模式(Privileged Modes); 、其中除去用户模式和系统模式以外的5种又称为异常模式(Exception Modes),常用于处理中断或异常,以及需要访问受保护的系统资源等情况。,ARM微处理器运行模式要注意的问题,ARM体系中有以下3种方式控制程序的执行流程。 1.顺序执行:每执行一条ARM指令,程序计数器寄存器的值加4个字节;每执行一条Thumb指令,程序计数器寄存器的值加两个字节。 2.跳转:通过跳转指令,程序可以跳转到特定的地址标号处执行,或者跳转到特定的子程序处执行。 3.异常:当异常或中断发生时,系统执行完当前指令后,将跳转到相应的异常处理程序处执行。异常是指处理器正常的程序执行流程发生暂时的停止。,三、ARM中断与异常,1 .ARM中断与异常类型,当一个异常出现以后,ARM微处理器会执行以下几步操作: (1)保存处理器当前状态、中断屏蔽位以及各条件标志位。将下一条指令的地址存入相应连接寄存器,以便程序在处理异常返回时能从正确的位置重新开始执行。 (2)根据异常类型,设置CPSR中相应的位 包括设置CPSR中的位,使处理器进入相应的执行模式;设置CPSR中的位,禁止IRQ中断,当进入FIQ模式时,禁止FIQ中断。 (3)将程序计数器设置为该异常中断的中断向量地址,之后跳转到相应的异常中断处理程序处执行。 (4)还可以设置中断禁止位,以禁止中断发生。如果异常发生时,处理器处于Thumb状态,则当异常向量地址加载PC时,处理器自动切换到ARM状态。,2.异常的响应及返回类型,3. 中断与异常入口向量,四、ARM的寄存器组织,ARM处理器有37个寄存器:31个通用寄存器,6个状态寄存器。 1.通用寄存器 通用寄存器包括R0R15,可以分为三类: 未分组寄存器 R0-R7 分组寄存器 R8R14,所有的37个寄存器,分成两大类: 31个通用32位寄存器; 6个状态寄存器。,在汇编语言中寄存器R0R13为保存数据或地址值的通用寄存器。它们是完全通用的寄存器,不会被体系结构作为特殊用途,并且可用于任何使用通用寄存器的指令。,其中R0R7为未分组的寄存器,也就是说对于任何处理器模式,这些寄存器都对应于相同的32位物理寄存器。,寄存器R8R14为分组寄存器。它们所对应的物理寄存器取决于当前的处理器模式,几乎所有允许使用通用寄存器的指令都允许使用分组寄存器,寄存器R8R12有两个分组的物理寄存器。一个用于除FIQ模式之外的所有寄存器模式,另一个用于FIQ模式。这样在发生FIQ中断后,可以加速FIQ的处理速度。,寄存器R13、R14分别有6个分组的物理寄存器。一个用于用户和系统模式,其余5个分别用于5种异常模式。,寄存器R13常作为堆栈指针(SP)。在ARM指令集当中,没有以特殊方式使用R13的指令或其它功能,只是习惯上都这样使用。但是在Thumb指令集中存在使用R13的指令。,R14为链接寄存器(LR),在结构上有两个特殊功能: 在每种模式下,模式自身的R14版本用于保存子程序返回地址; 当发生异常时,将R14对应的异常模式版本设置为异常返回地址(有些异常有一个小的固定偏移量)。,R14(LR)寄存器与子程序调用,MOV PC,LR,R14(地址A),1.程序A执行过程中调用程序B;,调用流程,2.程序跳转至标号Lable,执行程序B。同时硬件将“BL Lable”指令的下一条指令所在地址存入R14(LR);,3.程序B执行最后,将R14寄存器的内容放入PC,返回程序A;,a,地址A,1.执行用户模式下的程序;,2.发生IRQ中断,硬件将某个地址存入IRQ模式下的R14_irq寄存器,用户模式下的R14没有被破坏;,3. IRQ服务程序A执行完毕,将R14_irq寄存器的内容减去某个常量后存入PC,返回之前被中断的程序;,未被破坏,a,return,地址B,4. 如果在IRQ处理程序中打开IRQ中断,并且再次发生IRQ中断;,5. 硬件将返回地址保存在R14_irq寄存器中,原来保存的返回地址将被覆盖,造成错误;,R14_irq 被破坏,6. 在程序B返回到程序A,然后在返回到用户模式下被中断的程序时,发生错误,将不能正确返回;,return,return,R14寄存器注意要点,寄存器R15为程序计数器(PC),它指向正在取指的地址。可以认为它是一个通用寄存器,但是对于它的使用有许多与指令相关的限制或特殊情况。如果R15使用的方式超出了这些限制,那么结果将是不可预测的。,读R15的限制,正常操作时,从R15读取的值是处理器正在取指的地址,即当前正在执行指令的地址加上8个字节(两条ARM指令的长度)。由于ARM指令总是以字为单位,所以R15寄存器的最低两位总是为0。,寄存器CPSR为程序状态寄存器,在异常模式中,另外一个寄存器“程序状态保存寄存器(SPSR)”可以被访问。每种异常都有自己的SPSR,在进入异常时它保存CPSR的当前值,异常退出时可通过它恢复CPSR。,条件代码标志,保留,控制位,溢出标志oVerflow,进位或借位扩展 Carry,零 Zero,负或小于 Negative,IRQ禁止 Interrupt,FIQ禁止 Fast,状态位 Thumb,模式位 Mode,N,Z,C,V,I,T,F,2 .程序状态寄存器, 条件码标志(Condition Code Flags),N、Z、C、V均为条件码标志位。它们的内容可被算术或逻辑运算的结果所改变,并且可以决定某条指令是否被执行。,条件码的具体含义, 控制位,PSR的低8位(包括I、F、T和M4:0)称为控制位,当发生异常时这些位可以被改变。如果处理器运行特权模式,这些位也可以由程序修改。 中断禁止位I、F I1 禁止IRQ中断 F1 禁止FIQ中断 T标志位:该位反映处理器的运行状态。,对于ARM体系结构v5及以上版本的T系列处理器,当该位为1时,程序运行于Thumb状态,否则运行于ARM状态。非T系列处理器,当该位为1时,执行下一条指令以引起未定义的指令异常;当该位为0时,表示运行于ARM状态。,运行模式位M4:0:M0、M1 、 M2、M3、M4是模式位。这些位决定了处理器的运行模式。具体含义如下表:,注意:并不是所有的运行模式位的组合都是有效的,其他的组合结果会导致处理器进入一个不可恢复的状态!,PSR中的其余位为保留位,当改变PSR中的条件码标志位或者控制位时,保留位不要改变,在程序中也不要使用保留位来存储数据。保留位将用于ARM版本的扩展。, 保留位,3 .ARM状态下的寄存器,表为ARM状态下的寄存器组织,表为Thumb状态下的寄存器组织,Thumb状态寄存器在Arm状态寄存器上的映射,低寄存器,高寄存器,五、 ARM的协处理器接口,ARM920T处理器通过一个外部协处理器接口来支持连接片上协处理器,允许附加专门设计的协处理器到ARM920T。 ARM920T处理器包括CP14和CP15两个内部协处理器,其中CP14用于调试控制,而CP15用于内存系统控制和测试控制。 外部协处理器通过使用一个流水线跟踪器来执行指令(以保证和ARM处理器内核中的流水线同步)。,1 .CP14协处理器,调试通信通道协处理器DCC(the Debug Communications Channel)提供了两个32位的数据传送寄存器和一个通信控制寄存器,通信数据控制寄存器的编码格式如图所示,通信数据控制寄存器的编码格式,W和R位两位可提供目标和主机调试器之间的同步握手,其功能定义见表 :,调试器不能利用协处理器CP14 直接访问调试通信通道,因为这对调试器无意义,但调试器可使用扫描链读写DCC 寄存器。DCC数据和控制寄存器可映射到 EmbeddedICE 逻辑单元中的地址。,(1)目标到调试器的通信,目标到调试器的通信是运行于 ARM 内核上的应用程序与运行于主机上的调试器之间的通信事件,其处理顺序: (1)目标应用程序检查DCC写入寄存器是否空闲可用。 为此,目标应用程序使用MRC指令读取调试通信通道控制寄存器,以检查W位是否已清除。 (2)如果 W 位已清除,则通信数据写入寄存器已清空,应用程序对协处理器CP14使用MCR指令将字写入通信数据写入寄存器。 写入寄存器操作会自动设置W位。如果W位已设置,则表明调试器尚未清空通信数据写入寄存器。此时,如果应用程序需要发送另一个字,它必须轮询W位,直到它已清除。 (3) 调试器通过扫描链2轮询通信数据控制寄存器。 如果调试器发现W位已设置,则它可以读DCC数据寄存器,以读取应用程序发送的信息。 读取数据的进程会自动清除通信数据控制寄存器中的W位。,(2)调试器到目标的通信,调试器到目标的通信运行于主机上的调试器向运行于内核上的应用程序传输消息的事件,其处理顺序: 调试器轮询通信数据控制寄存器的R位,如果R位已清除,则通信数据读取寄存器已清空,可将数据写入此寄存器,以供目标应用程序读取。 调试器通过扫描链2,将数据扫描到通信数据读取寄存器中,此操作会自动设置通信数据控制寄存器中的R位。 目标应用程序轮询通信数据控制寄存器中的R位。 如果该位已经设置,则通信数据读取寄存器中已经有数据,应用程序可使用MRC指令从协处理器CP14 读取该数据。 同时,读取指令还会清除R位。,2 .CP15协处理器,定义了16个内部寄存器,通过MCR和MRC协处理器指令对这些寄存器进行读写操作,可以实现Cache、MMU、保护系统、配置时钟模式的配置和控制。,CP15协处理器的寄存器只能在特权模式下使用MCR和MRC指令访问,MCR指令是写操作指令,MRC是读操作指令,其指令位格式分别为: mcr p15, opcode1, Rd, CRn, , ; / 写CP15寄存器 mrc p15, opcode1, Rd, CRn, , ; / 读CP15寄存器 其中,p15表示是CP15协处理器; CP15协处理器规定opcode1为0; Rd是处理器内核寄存器编号; CRn是CP15寄存器编号; opcode2和CRm是指令的选项,具体含义取决于不同的寄存器。,(1)寄存器C0,寄存器C0用于获取设备ID编码和Cache类型寄存器,用MRC命令读C0寄存器时,当opcode2=0时读到的是设备ID编码;当opcode2=1时,读到的是Cache类型。,(2)寄存器C1,寄存器C1主要用于Caches、异常中断向量选择、存储格式选择、写缓冲使能和MMU使能等功能的配置和设置,称为控制寄存器。其编码格式如图所示,,对C1寄存器进行读写操作时,CRm 和opcode2被忽略。,表寄存器C1的各位功能定义,内存访问权限与S/R及AP的关系表,(3)寄存器C2,寄存器C2用于存放第一级页表基地址,称为页表基地址寄存器。即一级映射描述符表的基地址,定位界限为16KB。 写寄存器C2 时,在D31D14更新当前活动的第一级转换表的物理地址,D13D0应该写0 或先前读回的值。 读寄存器C2 时,D31D14返回当前活动的第一级转换表的物理地址,D13D0的值则不确定。,对C2寄存器进行读写操作时,CRm 和opcode2被忽略。,寄存器C2的编码格式如图所示,(4)寄存器C3,寄存器C3是域存取控制,域存取控制决定了是否对某一内存块进行权限检查。,寄存器C3的编码格式,两个位字段编码与对应的域访问权限关系表,(5)寄存器C5和C6,CP15中的寄存器C5是错误状态寄(FSR),C6是出错地址寄存器(FAR)。寄存器C5的编码格式见如图所示。,对C5和C6寄存器进行读写操作时,CRm 和opcode2被忽略,状态标识编码及其含义,(6)寄存器C7,寄存器C7是只写寄存器,用于控制Cache和写缓冲,称为Cache功能控制寄存器。 执行写操作时Rd中存放写入寄存器C7数据,Rd中的数据、CRm 和opcode2的不同组合决定执行不同的操作,若Rd中的数据、CRm 和opcode2的组合不是表中给出的组合,将导致不可预料的结果。,数据、CRm 和opcode2组合与操作功能关系表,(7)寄存器C8,寄存器C8是只写寄存器,用于控制清除TLB的内容,称为TLB操作寄存器。 执行写操作时Rd中存放写入寄存器C8数据,Rd中的数据、CRm 和opcode2的不同组合决定执行不同的操作, 若Rd中的数据、CRm 和opcode2的组合不是表中给出的组合,将导致不可预料的结果,读操作也将产生不可预知的后果。,数据、CRm 和opcode2组合与操作功能关系,(8)寄存器C9,寄存器C19是可读写的寄存器,用于控制Cache内容锁定,称为Cache锁定控制寄存器。用协处理器指令执行C9的读写操作时,opcode2=0对应于数据cache,opcode2=1对应指令cache。寄存器C9有A、B两种编码格式。,寄存器C9的A编码格式,寄存器C9的B编码格式,(9)寄存器C10,寄存器C10是可读写的寄存器,用于控制TLB内容锁定,称为TLB锁定控制寄存器。它允许把指定的转换表遍历结果装载到TLB中,由寄存器C10设定的TLB内容不会被其它转换表遍历的结果覆盖,寄存器C10的编码格式如图所示,W=LOG2(TLB入口数目);,P=1时写入TLB的地址变换条目不会受使整个TLB无效操作的影响,一直保持有效; P=0时写入TLB的地址变换条目将会受到使整个TLB无效操作的影响。,(10)寄存器C13,寄存器C13是可读写的寄存器,用于快速上下文切换(FCSE)进程的标识,称为进程标识寄存器,寄存器C13的编码格式如图所示。,PID表示当前进程所在进程空间块的编号,即当前进程的标识符,取值为0127。PID=0,变换后的虚拟地址(MVA)=虚拟地址(VA),禁止使用快速上下文切换(FCSE)技术,系统复位后PID的默认值为0;PID的值为非0,使能快速上下文切换(FCSE)技术。,ARM体系中的存储空间使用单一的地址空间,将存储器看做是从零地址开始的字节存储单元的线性组合。字单元占用4个字节单元,字单元的首地址可以被4整除 半字单元占用2个字节单元,半字单元的首地址可以被2整除 字数据存储格式分为大端格式和小端格式,若32位的字数据从高位到低位用D31D0表示,最高位字节为D31D24,次高位字节为D23D16,次低位字节为D15D8,最低位字节为D7D0,A表示字节单元首地址,A1和A2分别表示两个半字单元首地址,六、ARM存储系统,1.ARM存储格式,字单元的首地址A存放32位字数据的高位字节,末地址存放低位字节的存储模式称为大端格式;字单元的首地址A存放32位字数最低位字节,末地址存放最高位字节的存储模式称为小端格式。,大端格式和小端格式存储模式的区别,2. 存储空间管理单元(MMU),(1)MMU简介 ARM920T处理器实现了增强ARM体系结构v4 MMU,为ARM9TDMI内核的指令和数据地址端口提供了变换和访问权限检查。MMU由存储在主存储器中的一组二级页表控制,该组页表由CP15寄存器1中的M位使能,提供了一种地址变换和保护方案。用户可以单独地锁定和刷新MMU中的指令和数据TLBs。,MMU的特性包括: 标准的ARMv4 MMU映像大小、域和访问保护方案; 映像的大小事1MB(区)、64KB(大页)、4KB(小页)和1KB(极小页); 针对区的访问权限; 大页和小页的访问权限可以通过单独地为每个1/4页进行分别指定来实现(这些1/4页被称为子页); 硬件实现了16个域; 64项指令TLB和64项数据TLB; 硬件页表搜索; Round-Robin替换算法(也叫轮换算法); 使用CP15寄存器8使整个TLB无效,由MVA选择的TLB入口无效; 使用CP15寄存器10单独地锁定指令TLB和数据TLB;,(2)存储器访问的顺序,MMU把虚拟地址(VA)映射成物理地址的过程 ,通常要有一个多级的查表过程,对于32位的ARM体系结构是两级查表,对于一些64位体系结构则需要更多级查找表。 在32位的ARM体系结构中VA被分成三段,前两段VAD31D20和VAD29D12作为两级查表的索引,第三段VAD11D0作为页内的偏移。,32位ARM体系结构两级查表的查找流程,存储器访问的顺序和控制过程,当CPU要访问存储器时,MMU先查找TLB中的虚拟地址表,如果TLB中没有虚拟地址的入口,则转换表遍历硬件从存于主存储器中的转换表中获取转换表和访问权限并存放在TLB中,由TLB 入口地址获得对应的页表,根据页表中的C/B(高速缓存/缓冲)位、访问权限和域控制等相关控制位,分别控制高速缓存和写缓冲的访问以及是否允许访问所指向的存储区域,如果所指向的存储区不允许访问,则MMU将向CPU发送一个存储器异常。,MMU将CPU核产生的VA地址通过CP15寄存器13变换成一个物理地址以访问外部存储器,并使用TLB执行访问权限检测。 在32位ARM体系中,4GB的虚拟空间被分成了128个大小为32MB的空间块,CPU能看到的虚拟地址空间范围为0x00x01FFFFFF 。如果CPU给出的虚拟地址超出这个范围,则由硬件按照一定的规则进行修改,得到修改后的虚拟地址(MVA)。,(3)地址变换,变换基址,变换表基址(TTB)寄存器指向物理存储器中一个表的基地址,TTB寄存器的低14位13:0在读访问时被设置为0,并且这个表必须在一个16KB边界上。,31,14,13,0,变化表基址寄存器,MVA的31:20位作为偏移地址,所以变换表中最多可以有4096个项,每项32位,包含了区或页描述符信息,分别用于描述虚拟存储器的1MB空间,可以寻址最大4GB的虚拟存储器。,区或页描述符的后两位为描述符性质标记,00表示该描述符无效,01表示该描述符是粗页描述符,10表示该描述符是区描述符,11表示该描述符是细页描述符。,第一级取操作与页表描述符,TTB寄存器的位31:14拼接MVA的位31:20产生一个30位地址,这个地址用来选择一个4字节变换表项。这是一个区表或页表的第一级描述符。,第一级描述符是一个区描述符、粗页表描述符、细页表描述符或者是无效内容。第一级描述符的格式如图,第一级描述符,区描述符:区描述符为一个1MB的存储块提供基地址,区描述符的格式,粗页表描述符为包含用于大页或小页访问的第二级描述符的页表提供基地址。粗页表有256个项,将这个表所描述的1MB空间分割成4KB的块。如果第一级取操作返回粗页表描述符,则接下来将开始第二级取操作,粗页表描述符,粗页表描述符的格式,粗页表描述符的位分配,细页表描述符,细页表描述符为包含用于大页、小页或极小页访问的第二级描述符的页表提供基地址。细页表有1024个项,将这个表所描述的1MB空间分割成1KB的块。如果第一级取操作返回细页表描述符,则接下来将开始第二级取操作,细页表描述符的格式,细页表描述符的位分配,区映射变换从MVA到区第一级描述的生成和获取,直至得到实际的物理地址的整个顺序。但要注意在生成物理地址之前,还必须检查第一级描述符中的访问权限。,区变换的 整个顺序,第二级取操作与页表描述符,如果第一级取操作返回一个粗页表描述符或者一个细页表描述符,这就提供了要十一欧诺个页表的基地址。然后页表被访问,并返回一个第二级描述符。,第二级描述符的格式,第二级描述符的位分配,页表项D1D0 位描述,由于页索引的高4位与粗页表索引的低4位重叠,一个大页的每个粗页表项必须在这个粗页表中被复制16次(在连续的存储器位置) 如果一个大页描述符包含在一个细页表中,则该页索引的高6位和细页表索引的低6位重叠。因此,一个大页的每个细页表项必须被复制64次。,图中显示了一个64KB大页的整个变换顺序,变换大页参考,如果一个小页描述符包含在一个细页表中,则页索引的高2位和细页表索引的低2位重叠。因此,一个小页的每个细页表项必须被复制4次。,图中显示了一个4KB小页的整个变换顺序。,变换极小页参考,页变换除了区变换所需的步骤外,还增加了一步。第一级描述符是细页表描述符,它用于指向第一级描述符。第一级描述中的域和访问权限共同决定了是否允许进行访问。,图中显示了一个1KB极小页的整个变换顺序。,MMU用于检查访问故障的顺序

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论