第2章 ARM微处理器硬件结构 计算机体系结构分类 ARM版本及系列 ARM处理器结构 存储系统机制
计算机体系结构分类 两种典型的结构 : 冯·诺依曼结构 哈佛体系结构
冯·诺依曼结构 冯·诺依曼机:将数据和指令都存储在存储器中的计算机。 计算系统由一个中央处理单元(CPU)和一个存储器组成。存储器拥有数据和指令,并且可以根据所给的地址对它进行读或写。
哈佛体系结构 哈佛机:为数据和程序提供了各自独立的存储器。 程序计数器只指向程序存储器而不指向数据存储器,这样做的后果是很难在哈佛机上编写出一个自修改的程序 。 独立的程序存储器和数据存储器为数字信号处理提供了较高的性能。 ARM 7使用冯·诺依曼体系结构。 ARM 9使用哈佛体系结构。
ARM公司简介 ARM是Advanced RISC Machines的缩写,它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC (精简指令集)处理器。 1985年第一个ARM原型在英国剑桥诞生。 公司的特点是只设计芯片,而不生产。它提供ARM技术知识产权(IP)核,将技术授权给世界上许多著名的半导体、软件和OEM厂商,并提供服务。
ARM处理器的应用 到目前为止,基于ARM技术的微处理器应用约占据了32位嵌入式微处理器75%以上的市场份额。 全球80%的GSM/3G手机、99%的CDMA手机以及绝大多数PDA产品均采用ARM体系的嵌入式处理器。 “掌上计算”相关的所有领域皆为其所主宰。 主要应用:消费类电子,无线、图像应用开放平台、存储、自动化、智能卡、SIM卡等。 ARM处理器的三大特点:耗电少功能强、16位/32位双指令集、众多合作伙伴。
各ARM体系结构版本 ARM体系结构从最初开发到现在有了很大的改进,并仍在完善和发展。 为了清楚地表达每个ARM应用实例所使用的指令集,ARM公司定义了6种主要的ARM指令集体系结构版本,以版本号V1~V6表示。
ARM版本Ⅰ: V1版架构 该版架构只在原型机ARM1出现过,只有26位的寻址空间,没有用于商业产品。 其基本性能有: 基本的数据处理指令(无乘法); 基于字节、半字和字的Load/Store指令; 转移指令,包括子程序调用及链接指令; 供操作系统使用的软件中断指令SWI; 寻址空间:64MB(226)。
ARM版本Ⅱ: V2版架构 该版架构对V1版进行了扩展,例如ARM2和ARM3(V2a)架构,版本2a是版本2的变种,ARM3芯片采用了版本2a。同样为26位寻址空间,现在已经废弃不再使用。 V2版架构与版本V1相比,增加了以下功能: 乘法和乘加指令; 支持协处理器操作指令; 快速中断模式; SWP/SWPB的最基本存储器与寄存器交换指令; 寻址空间:64MB。
ARM版本Ⅲ : V3版架构 V3版架构( 目前已废弃 )对ARM体系结构作了较大的改动: 寻址空间增至32位(4GB); 当前程序状态信息从原来的R15寄存器移到当前程序状态寄存器CPSR中(Current Program Status Register); 增加了程序状态保存寄存器SPSR(Saved Program Status Register); 增加了中止(Abort)和未定义2种处理器模式; 增加了MRS/MSR指令,以访问新增的CPSR/SPSR寄存器; 增加了从异常处理返回的指令功能。
ARM版本Ⅳ : V4版架构 不在为了与以前的版本兼容而支持26位体系结构,并明确了哪些指令会引起未定义指令异常发生,V4版架构在V3版上作了进一步扩充,V4版架构是目前应用最广的ARM体系结构,ARM7、ARM8、ARM9和StrongARM都采用该架构。 指令集中增加了以下功能: 符号化和非符号化半字及符号化字节的存/取指令; 增加了16位Thumb指令集; 完善了软件中断SWI指令的功能; 处理器系统模式引进特权方式时使用用户寄存器操作; 把一些未使用的指令空间捕获为未定义指令。
ARM版本Ⅴ : V5版架构 V5版架构是在V4版基础上增加了一些新的指令,ARM10和Xscale都采用该版架构。 这些新增命令有: 带有链接和交换的转移BLX指令; 计数前导零CLZ指令; BRK中断指令; 增加了数字信号处理指令(V5TE版); 为协处理器增加更多可选择的指令; 改进了ARM/Thumb状态之间的切换效率; E---增强型DSP指令集,包括全部算法操作和16位乘法操作; J----支持新的JAVA,提供字节代码执行的硬件和优化软件加速功能。
ARM版本Ⅵ : V6版架构 V6版架构是2001年发布的,首先在2002年春季发布的ARM11处理器中使用。 THUMBTM:35%代码压缩; DSP扩充:高性能定点DSP功能; JazelleTM:Jova性能优化,可提高8倍; Media扩充:音/视频性能优化,可提高4倍。
ARM处理器系列 ARM公司开发了很多系列的ARM处理器核,目前最新的系列已经是ARM11。 ARM7、ARM9、ARM9E和ARM10为4个通用处理器系列。 每一个系列提供一套相对独特的性能来满足不同应用领域的需求。 ARM7系列 ARM9系列 ARM9E系列 ARM10E系列 SecurCore系列 Inter的Xscale Inter的StrongARM
ARM7微处理器系列 低功耗的32位RISC处理器,冯·诺依曼结构。 具有嵌入式ICE-RT逻辑,调试开发方便。 3级流水线结构。 代码密度高,兼容16位的Thumb指令集。 对操作系统的支持广泛,包括Windows CE、Linux、Palm OS等。 指令系统与ARM9系列、ARM9E系列和ARM10E系列兼容,便于用户的产品升级换代。 主频最高可达130MIPS。 主要应用领域:工业控制、Internet设备、网络和调制解调器设备、移动电话等多种多媒体和嵌入式应用。
ARM7TDMI微处理器 4种类型: ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。 ARM7TMDI是目前使用最广泛的32位嵌入式RISC处理器,属低端ARM处理器核。 注:“ARM核”并不是芯片,ARM核与其它部件如RAM、ROM、片内外设组合在一起才能构成现实的芯片。
ARM9微处理器系列 ARM9系列微处理器在高性能和低功耗特性方面提供最佳的性能。 5级整数流水线, 哈佛体系结构。 支持32位ARM指令集和16位Thumb指令集。 全性能的MMU,支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。 支持数据Cache和指令Cache,具有更高的指令和数据处理能力。 主要应用:无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数码照相机和数码摄像机。 3种类型:ARM920T、ARM922T和ARM940T。
ARM9E微处理器系列 单一处理器内核提供微控制器、DSP、Java应用系统的解决方案。 支持DSP指令集。 5级整数流水线,指令执行效率更高。 支持32位ARM指令集和16位Thumb指令集。 支持VFP9浮点处理协处理器。 全性能的MMU,支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。 MPU支持实时操作系统。 支持数据Cache和指令Cache, 主频最高可达300MIPS。 主要应用:下一代无线设备、数字消费品、成像设备、工业控制、存储设备和网络设备等领域。 3种类型:ARM926EJ-S、ARM946E-S和ARM966E-S。
ARM10E微处理器系列 与同等的ARM9比较,在同样的时钟频率下,性能提高了近50%,功耗极低。 支持DSP指令集。 6级整数流水线,指令执行效率更高。 支持32位ARM指令集和16位Thumb指令集。 支持VFP10浮点处理协处理器。 全性能的MMU,支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。 支持数据Cache和指令Cache。 主频最高可达400MIPS。 内嵌并行读/写操作部件。 主要应用:下一代无线设备、数字消费品、成像设备、工业控制、通信和信息系统等领域。 3种类型:ARM1020E、ARM1022E和ARM1026EJ-S。
SecurCore微处理器系列 专为安全需要而设计,提供了完善的32位RISC技术的安全解决方案。 灵活的保护单元,以确保操作系统和应用数据的安全。 采用软内核技术,防止外部对其进行扫描探测。 可集成用户自己的安全特性和其他协处理器。 主要应用:对安全性要求较高的应用产品及应用系统,如电子商务、电子政务、电子银行业务、网络和认证系统等领域。 4种类型:SecurCore SC100、SecurCore SC110、SecurCore SC200和SecurCore SC210。
Xscale处理器 基于ARMv5TE体系结构的解决方案,是一款全性能、高性价比、低功耗的处理器。 支持16位的Thumb指令和DSP指令集。 已使用在数字移动电话、个人数字助理和网络产品等场合。 Xscale处理器是Intel目前主要推广的一款ARM微处理器。
ARM处理器结构 ARM和Thumb状态 RISC技术 流水线技术 超标量技术
ARM和Thumb状态 V4版以后有: (1)32位ARM指令集 (2)16位Thumb指令集,功能是ARM指令集的功能子集。 ARM7TDMI核以后,T变种的ARM微处理器有两种工作状态: (1)ARM状态 (2)Thumb状态。 当ARM微处理器执行32位的ARM指令集时,工作在ARM状态; 当ARM微处理器执行16位的Thumb指令集时,工作在Thumb状态。
ARM与Thumb状态转换 在程序的执行过程中,微处理器可以随时在两种工作状态之间切换,并且该转变不影响处理器的工作模式和相应寄存器中的内容。 进入Thumb状态:当操作数寄存器的状态位(位[0])为1时,执行BX指令。 进入ARM状态:当操作数寄存器的状态位(位[0])为0时,执行BX指令。
RISC技术 ARM处理器采用加载/存储(Load/Store)体系结构是典型的RISC处理器,即只有Load/Store的存/取指令可以访问存储器,其余指令都不允许进行存储器操作。 RISC体系结构基本特点: (1)大多数指令只需要执行简单和基本的功能,其执行过程在一个机器周期内完成。 (2)只保留加载/存储指令。操作数由加载/存储指令从存储器取出放寄存器内操作。 (3)芯片逻辑不采用或少采用微码技术,而采用硬布线逻辑。 (4)减少指令数和寻址方式。 (5)指令格式固定,指令译码简化。 (6)优化编译。
RISC技术 ARM体系结构还采用了一些特别的技术: 所有的指令都可根据前面的执行结果决定是否被执行,提高了指令的执行效率。 可用Load/Store指令批量传输数据,以提高数据的传输效率。 可在一条数据处理指令中同时完成逻辑处理和移位处理。 RISC和CISC各有优势,界限并不那么明显。 现代的CPU往往采用CISC的外围,内部加入了RISC的特性,如超常指令集CPU就是融合了RISC和CISC的优势,成为未来的CPU发展方向之一。
流水线技术 开发和设计嵌入式系统的过程中,CPU的性能是一个非常重要的考虑因素。 流水线技术是在本质上影响程序执行速度的因素。 由于计算机中一条指令的各个执行阶段相对独立,因此,现代CPU大多设计成流水线型的机器,在这种类型机器中几个指令可以并行执行。采用流水线的重叠技术大大提高了CPU的运行效率。 当流水线内部的信息通畅流动时,CPU流水线能够工作得最好。 但实际应用中,指令各执行阶段的操作时间长短不同,有一些指令序列可能会打断流水线内的信息流,所以有时流水线操作不十分通畅,会暂时降低CPU的执行速度。
ARM的3级流水线 ARM7架构采用了一个3段的流水线: (1)取指:将指令从内存中取出来。 (2)译码:操作码和操作数被译码以决定执行什么功能。 (3)执行:执行已译码的指令。
多周期ARM指令的3级流水线操作 取指的存储器访问和执行的数据路径占用都是不可同时共享的资源,对于多周期指令来说,如果指令复杂以至于不能在单个时钟周期内完成执行阶段,就会产生流水线阻塞。
ARM的流水线设计问题 (1)缩短程序执行时间: Tprog:执行一个程序所需时间; Ninst:执行该程序的指令条数; CPI:执行每条指令的平均时钟周期数; Fclk:处理器的时钟频率。 措施: 提高时钟频率fclk(导致流水线的级数增加 )。 减少每条指令的平均时钟周期数CPI(需要解决流水线的相关问题 )
ARM的流水线设计问题 (2)解决流水线相关: 结构相关:某些指令在流水线中重叠执行时,产生资源冲突 。 措施:1)采用分离式指令Cache和数据Cache。2)ALU中采用单独加法器来完成地址计算。 数据相关:当一条指令需要前面指令的执行结果,而这些指令均在流水线中重叠执行时,就可能引起流水线的数据相关。 数据相关有“写后读”、“写后写”和“读后写”等。 措施:1)旁路技术。2)流水线互锁技术。 控制相关:当流水线遇到分支指令和其他会改变PC值的指令时,就会发生控制相关。 措施:1)引入延时分支。2)尽早计算出分支转移成功时的PC值(即分支的目标地址)。
ARM的5级流水线 ARM9和StrongARM架构都采用了5级流水线. 增加了I-Cache和D-Cache,把存储器的取指与数据存取分开; 增加了数据写回的专门通路和寄存器; 把指令的执行过程分割为5部分: 取指->指令译码->执行->数据缓存->写回
超标量执行 通过重复设置多套指令执行部件,同时处理并完成多条指令,实现并行操作,来达到提高处理速度的目的。 所有ARM内核,包括流行的ARM7、ARM9和ARM11等,都是单周期指令机。 ARM公司下一代处理器将是每周期能处理多重指令的超标量机。 超标量处理机:一个时钟周期内同时执行多条指令的处理机。
超标量处理器中的多指令单元 超标量与流水线技术是兼容的,为了能够在一个时钟周期内同时发射多条指令,超标量处理机必须有两条或两条以上能够同时工作的指令流水线。但与此同时,也带来了多流水线的调度问题和操作部件的资源冲突问题。 超标量处理器在执行的过程中必须动态地检查指令相关性。 如果代码中有分支指令,必须将分支被执行和分支不被执行这两种情况分开考虑。 计算执行时间几乎是不可能的。
存储系统机制 存储器就是用来存储信息的部件,存储器是嵌入式系统硬件中的重要组成部分。 设计嵌入式系统的存储器时需要考虑:是否需要扩展; 整个嵌入式系统的存储器是由片内和片外两部分组成。 为了解决速度和内存容量的问题,在系统中采用虚拟地址空间和高速缓存来提高内存的平均性能。 存储管理单元(MMU)进行地址转换,它在一个小的物理内存中提供相对较大的虚拟存储空间。
存储器部件的分类 按在系统中的地位分类: (1)主存储器(Main Memory, 简称内存或主存) (2)辅助存储器(Auxiliary Memory,Secondary Memory,简称辅存或外存) 按存储介质分类: (1)磁存储器(Magnetic Memory), (2)半导体集成电路存储器(通常称为半导体存储器), (3)光存储器(Optical Memory), (4)激光光盘存储器(Laser Optical Disk) 按信息存取方式分类: (1)随机存取存储器RAM (2)只读存储器ROM
存储器的组织和结构 嵌入式存储器一般采用存储密度较大的存储器芯片,典型的嵌入式存储器系统由ROM、RAM、EPROM等组成。
常用的存储器 随机存储器(RAM) (1)静态随机存储器(SRAM) (2)动态随机存储器(DRAM) 只读存储器(ROM),它在嵌入式系统中非常有用,因为许多代码或数据不随时间改变。 (1)工厂编程的只读存储器 (2)现场可编程只读存储器
存储器的性能 大容量、高速度、低价格是评价存储器性能的三个主要指标,也是存储体系设计的主要目标。 容量:Sw=Wlm。其中W为存储体的字长(单位为位或字节),l为单个存储体的字数,m为并行工作的存储体个数。 速度:m个存储体并行工作时,可达到的最大频率宽度为Bm=Wm/TM 。其中TM是连续起动一个存储器所必要的时间间隔,TM>TA。Bm是连续提供数据的速率。 价格:具有SM位的存储器,每位价格表示为c=C/Sm。其中C是总价格。
存储体系的组成 单体单字存储器 单体多字存储器 多体单字交叉存取存储器 多体多字交叉存取存储器 并行主存系统:能并行读出多个CPU字的单体多字和多体单字及多体多字的交叉存取系统。
存储体系的形式 存储层次结构的组成原则: ① 每位价格从上往下依次减少。 ② 存储容量从上往下依次增加。 ③ 存取速度从上往下依次减慢。 ④ CPU的访问频度从上往下依次减少。
总线协议 总线是CPU与存储器和设备通信的机制。 总线的一个主要作用是提供到存储器的接口。 大部分总线协议的基本构件是四周期握手协议 。
总线读写 总线的基本操作是读和写。 Clock 提供总线组件各部分同步。 当总线读时,R/W’为1。当总线写时,R/W’为0。 Address是一个a位信号束,为访问提供地址。 Data是一个n位信号束,它可从CPU得到数据或向CPU传送数据。 Data ready’当数据束上值合法时发信号。
总线的时序图 总线行为以时序图说明。 时序图表示总线上的信号如何随时间变化。
直接内存访问(DMA) 多数情况下,数据的传输需要CPU的介入。 但是,有时候某些数据传输类型无须CPU加入。
系统总线配置 一个微处理器系统可能含有多条总线。高速设备可连到高速总线上,低速设备连到别的总线上。 桥:使总线可以互连的逻辑电路。 高速总线通常要更昂贵的电路和连接器,可通过使用较慢、较便宜的总线来降低低速设备成本。 桥允许总线独立操作,在I/O操作中可提供某些并行性。 桥不仅是高速总线的受控器,而且是低速总线的主控器。 桥从高速总线上获取指令而将它们传到低速总线,它还将结果从低速总线传到高速总线上。 桥还可以作为两桥之间的协议翻译器。
ARM存储数据类型 六种数据类型: (1) 8位有符号和无符号字节。 (2)16位有符号和无符号半字。 (3)32位有符号和无符号字。 Thumb指令是16位半字,必须以2字节位单位边界对齐。 在内部,所有ARM操作都是面向32位的操作数;只有数据传送指令支持较短的字节和半字的数据类型。当从存储器调入一个字节和半字时,根据指令对数据的操作类型,将其无符号0或有符号“符号位”扩展为32位,进而作为32位数据在内部进行处理。
ARM存储格式 数据存储格式有两种: (1)大端模式:较高的有效字节存放在较低的存储器地址,较低的有效字节存放在较高的存储器地址。 (2)小端模式:较高的有效字节存放在较高的存储器地址,较低的有效字节存放在较低的存储器地址。
ARM存储周期 4种基本类型: 空闲周期。 非顺序周期。 顺序周期。 协处理器寄存器传送周期。
ARM总线接口信号分类 ARM7TDMI的总线接口信号分成4类: 时钟和时钟控制信号:MCLK、ECLK、nRESET、nWAIT。 地址类信号:A[31:0]、nRW、MAS[1:0]、nOPC、nTRANS、LOCK、TBIT。 存储器请求信号:nMREQ、SEQ。 数据时序信号:D[31:0]、DIN[31:0]、DOUT[31:0]、ABORT、BL[3:0]。
ARM总线接口可以实现的总线周期 总线周期使用nMREQ和SEQ信号编码。 4种不同类型的总线周期。 I周期:内部周期,不要求存储器访问;可广播下一次访问的地址以便开始译码,但存储控制器不允许进行存储器访问。 C周期:协处理器寄存器传递周期,通过数据总线向或从协处理器传送数据;不需存储周期,存储控制器不启动事务;传送期间,存储系统不允许驱动数据总线。
高速缓存(Cache)的分类 (1)统一Cache和独立的数据/程序Cache 统一Cache:一个存储系统中指令预取时使用的Cache和数据读写时使用的Cache是同一个Cache。 独立的Cache:一个存储系统中指令预取时使用的Cache和数据读写时使用的Cache是各自独立的。 用于指令预取的Cache称为指令Cache。 用于数据读写的Cache称为数据Cache。 使用独立的数据Cache和指令Cache,可以在同一个时钟周期中读取指令和数据,而不需要双端口的Cache。但此时要注意保证指令和数据的一致性。
高速缓存(Cache)的分类 (2)写通Cache和写回Cache 当CPU更新了Cache的内容时,要将结果写回到主存中。 写通法: write-throught,指CPU在执行写操作时,必须把数据同时写入Cache和主存。 写回法: write-back,指CPU在执行写操作时,被写的数据只写入Cache,不写入主存。仅当需要替换时,才把已经修改的Cache块写回到主存中。
高速缓存(Cache)的分类 (3)读操作分配Cache和写操作分配Cache 写操作分配Cache:当进行数据写操作时,如果Cache未命中,Cache系统将会进行Cache内容预取,从主存中将相应的块读取到Cache中相应的位置,并执行写操作,把数据写入到Cache中。 对于写通类型的Cache,数据将会同时被写入到主存中,对于写回类型的Cache数据将在合适的时候写回到主存中。
Cache的工作原理 在Cache存储系统当中,把主存储器和Cache都划分成相同大小的块。 主存地址可以由块号M和块内地址N两部分组成。
Cache地址映像和变换方式 (1)直接映像 快,造价低。 但由于映射策略简单,所以有一定的局限性。 如果访问频繁的块正好被映射到同一个块,就不能充分利用高速缓存的好处。 (2)组相联映像 组相联映像由组的个数来标识,每个组被实现为一个直接映射高速缓存。 高速缓存请求同时广播到所有的组。如果某组中有这个单元,该高速缓存便报告命中。 比直接映射慢,命中率较高。 (3)全相联映像 主存中任意一个块都可以映射到Cache中的任意一个块的位置上。 不同的ARM有不同大小的高速缓存和组织结构。
Cache的替换算法 (1)轮转法 维护一个逻辑计数器,利用该计数器依次选择将要被替换出去的Cache块。 (2)随机替换算法 通过一个伪随机数发生器产生一个伪随机数,用新块将编号为该伪随机数的Cache块替换掉。 算法简单,易于实现。 没有考虑程序的局部性特点,也没有利用以前块地址分布情况,因而效果较差。 不易预测最坏情况下Cache的性能。
存储管理单元MMU 存储管理单元在CPU和物理内存之间进行地址转换。 由于是将地址从逻辑空间映射到物理空间,因此这个转换过程一般称为内存映射。 在ARM系统中,存储管理单元MMU主要工作: (1)虚拟存储空间到物理存储空间的映射。在ARM中采用了页式虚拟存储管理。 (2)存储器访问权限的控制。 (3)设置虚拟存储空间的缓冲的特性。
MMU的存储访问过程 使能MMU时存储访问过程。 C控制位:Cachable,B控制位 :Bufferable
MMU的存储访问过程 禁止MMU时存储访问过程 。 先要确定芯片是否支持cache和write buffer。 如果芯片规定当禁止MMU时禁止cache和write buffer,则存储访问将不考虑C和B控制位。 如果芯片规定当禁止MMU时可以使能cache和write buffer,则数据访问时,C=0,B=0;指令读取时,如果使用分开的TLB,那么C=1,如果使用统一的TLB,那么C=0。 存储访问不进行权限控制,MMU也不会产生存储访问中止信号。 所有的物理地址和虚拟地址相等,即使用平板存储模式。
MMU中的地址变换过程 通过两级页表实现。 一级页表:包含以段为单位的地址变换条目,以及指向二级页表的指针。 一级页表实现的地址映射粒度较大。 以段为单位的地址变换过程只需要一级页表。 二级页表:包含以大页和小页为单位的地址变换条目。 以页为单位的地址变换过程需要二级页表。 ARM支持的存储块大小有4种: (1)段(Section):大小为1MB的存储块。 (2)大页(Large Pages):大小为64KB的存储块。 (3)小页(Small Pages):大小为4KB的存储块。 (4)极小页(Tiny Pages):大小为1KB的存储块。
一级页表地址变换过程 CP15的寄存器C2中存放的是内存中页表的基地址。 形成一个32位的索引值,使用该32位索引值从页表中找出相应的地址变换条目。该条目或者包含一个一级描述符,或者包含一个指向二级页表的指针。
一级描述符 一级描述符:从页表中得到的相应地址变换条目。 它定义了与之相应的1M存储空间是如何映射的。 一级描述符类型: 4种格式的一级描述符,由位[1:0]定义。
粗粒度页表描述符 粗粒度页表描述符:一级描述符的位[1:0]为0b01(0b代表二进制),包含了粗粒度的二级页表的物理地址。
MMU中的存储访问权限控制 在MMU中,寄存器C1的R、S控制位和页表中地址转换条目中的访问权限控制位(A、P)联合作用控制存储访问的权限。
MMU中的域(Domain) 域:一些段、大页或者小页的集合。 ARM支持最多16个域。 每个域的访问控制特性由CP15中的寄存器C3中的两位控制。 因此能很容易地将某个域的地址空间包含在虚拟存储空间中,或是排除在虚拟存储空间之外。
快速上下文切换技术 快速上下文切换技术FCSE(Fast Context Switch Extension):通过修改系统中不同进程的虚拟地址,避免在进行进程间切换时造成的虚拟地址到物理地址的重映射。 如果两个进程占用的虚拟地址空间有重叠,则系统在这两个进程之间进行切换时,必须进行虚拟地址到物理地址的重映射,包括重建TLB、清除Cache,整个工作需要巨大的系统开销,而快速上下文切换技术的引入避免了这种开销。 FCSE位于CPU和MMU之间,其功能就是将不同进程使用的相同虚拟地址映射为不同的虚拟空间,使得在上下文切换时无须重建TLB等。
存储器映射的输入/输出 在ARM系统中,I/O操作通常被映射成存储器操作,即输入/输出是通过存储器映射的可寻址外围寄存器和中断输入的组合来实现的。 在ARM中,I/O的输出操作可通过存储器写入操作实现;I/O的输入操作可通过存储器读取操作实现。这样I/O空间就被映射成存储空间。 但是,对于存储器映射的I/O空间的操作,不能使用Cache技术。