ARM体系结构与编程第版第章.ppt
《ARM体系结构与编程第版第章.ppt》由会员分享,可在线阅读,更多相关《ARM体系结构与编程第版第章.ppt(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、25.1 ARM存储系统概述存储系统概述ARM存储系统的体系结构可以适应多种不同的嵌入式应用存储系统的体系结构可以适应多种不同的嵌入式应用系统。最简单的存储系统使用普通的地址映射机制,就像在系统。最简单的存储系统使用普通的地址映射机制,就像在一些简单的单片机系统中一样,地址空间的分配方式是固定一些简单的单片机系统中一样,地址空间的分配方式是固定的,系统中各部分都使用物理地址。而一些复杂的系统可能的,系统中各部分都使用物理地址。而一些复杂的系统可能包括一种或者多种下面的技术,从而可以提供功能更为强大包括一种或者多种下面的技术,从而可以提供功能更为强大的存储系统:的存储系统:系统中可能包含多种类型
2、的存储器件通过使用Cache及Write Buffer技术,可以缩小处理器和存储系统的速度差别,从而提高系统的整体性能。内存管理部件使用内存映射技术实现虚拟空间到物理空间的映射引入存储保护机制,增强系统的安全性。引入一些机制,保证将I/O操作映射成内存操作后,各种I/O操作能够得到正确的结果。35.1 ARM存储系统概述存储系统概述本章中主要介绍以下内容。在介绍相关内容时,将本章中主要介绍以下内容。在介绍相关内容时,将以以LinkUp公司的通用公司的通用ARM芯片芯片L7205作为例子。作为例子。ARM中用于存储管理的系统控制协处理器CP15。ARM中的存储管理部件MMU(Memory Man
3、agement Unit)。ARM中的Cache及Write Buffer技术。快速进程上下文切换技术。45.2 ARM中用于存储管理的系统控制协处理器中用于存储管理的系统控制协处理器CP15CP15可以包含可以包含16个个32位的寄存器,其编号为位的寄存器,其编号为015。实际。实际上,对于某些编号的寄存器,可能对应有多个物理寄存器,上,对于某些编号的寄存器,可能对应有多个物理寄存器,在指令中可指定特定的标志位来区分这些物理寄存器。这种在指令中可指定特定的标志位来区分这些物理寄存器。这种机制有些类似于机制有些类似于ARM中的寄存器,当处于不同的处理器模中的寄存器,当处于不同的处理器模式时,某
4、些式时,某些ARM寄存器可能是不同的物理寄存器,比如对寄存器可能是不同的物理寄存器,比如对于寄存器于寄存器SPSR,每一种处理器模式下都对应一个独立的物,每一种处理器模式下都对应一个独立的物理寄存器理寄存器(用户模式和系统模式对应同样的物理寄存器,这用户模式和系统模式对应同样的物理寄存器,这是一个例外是一个例外)。CP15中的寄存器可能是只读的,也可能是只写的,还有一中的寄存器可能是只读的,也可能是只写的,还有一些是可以读写的。对于每一种寄存器,将会详细介绍:些是可以读写的。对于每一种寄存器,将会详细介绍:寄存器的访问类型(只读/只写/读写)。各种访问操作对于寄存器的作用。寄存器是否对应有多个
5、物理寄存器。寄存器的具体作用。55.2.1 访问访问CP15寄存器的指令寄存器的指令访问访问CP15寄存器的指令有下面两种。寄存器的指令有下面两种。MCR:ARM寄存器到协处理器寄存器的数据传送指令。MRC:协处理器寄存器到ARM寄存器的数据传送指令。MCR指令和指令和MRC指令只能在处理器模式是系统模指令只能在处理器模式是系统模式时执行,在用户模式下执行式时执行,在用户模式下执行MCR指令和指令和MRC指指令将会触发未定义指令的异常中断。令将会触发未定义指令的异常中断。65.2.2 CP15中的寄存器中的寄存器1. CP15中的寄存器中的寄存器C0(1)标识符寄存器ARM7之后的处理器ARM
6、7处理器ARM7之前的处理器(2)Cache类型标识符寄存器2. CP15中的寄存器中的寄存器C1CP15中的寄存器C1是一个控制寄存器,它包括以下控制功能:禁止/使能MMU以及其他的与存储系统相关的功能。配置存储系统以及ARM处理器中的相关部分的工作方式。75.3 存储器管理单元存储器管理单元MMU5.3.1 存储器管理单元存储器管理单元MMU概述概述在ARM系统中,存储器管理单元MMU主要完成以下工作:虚拟存储空间到物理存储空间的映射。在ARM中采用了页式虚拟存储管理。它把虚拟地址空间分成一个个固定大小的块,每一块称为一页,把物理内存的地址空间也分成同样大小的页。页的大小可以分为粗粒度和细
7、粒度两种。MMU就要实现从虚拟地址到物理地址的转换。存储器访问权限的控制。设置虚拟存储空间的缓冲的特性。85.3.1 存储器管理单元MMU概述页表页表(Translate Table)是实现上述这些功能的重要是实现上述这些功能的重要手段,它是一个位于内存中的表。手段,它是一个位于内存中的表。页表存放在内存中,系统通常用一个寄存器来保存页表存放在内存中,系统通常用一个寄存器来保存页表的基地址。在页表的基地址。在ARM中,系统控制协处理器中,系统控制协处理器CP15的寄存器的寄存器C2用来保存页表的基地址。用来保存页表的基地址。当当CPU需要访问内存时,先在需要访问内存时,先在TLB中查找需要的地
8、中查找需要的地址变换条目。如果该条目不存在,址变换条目。如果该条目不存在,CPU从位于内存从位于内存中的页表中查询,并把相应的结果添加到中的页表中查询,并把相应的结果添加到TLB中。中。这样,当这样,当CPU下一次又需要该地址变换条目时,就下一次又需要该地址变换条目时,就可以从可以从TLB中直接得到了,从而使地址变换的速度中直接得到了,从而使地址变换的速度大大加快。大大加快。95.3.1 存储器管理单元MMU概述当内存中的页表内容改变,或者通过修改系统控制协处理器当内存中的页表内容改变,或者通过修改系统控制协处理器CP15的寄的寄存器存器C2使用新的页表时,使用新的页表时,TLB中的内容需要全
9、部清除。中的内容需要全部清除。MMU提供了相提供了相关的硬件支持这种操作。系统控制协处理器关的硬件支持这种操作。系统控制协处理器CP15的寄存器的寄存器C8用来控制用来控制清除清除TLB内容的相关操作。内容的相关操作。MMU可以将某些地址变换条目锁定可以将某些地址变换条目锁定(Locked Down)在在TLB中,从而使中,从而使得进行与该地址变换条目相关的地址变换速度保持很快。在得进行与该地址变换条目相关的地址变换速度保持很快。在MMU中,中,寄存器寄存器C10用于控制用于控制TBL内容的锁定。内容的锁定。MMU可以将整个存储空间分为最多可以将整个存储空间分为最多16个域个域(Domain)
10、。每个域对应一定。每个域对应一定的内存区域,该区域具有相同的访问控制属性。的内存区域,该区域具有相同的访问控制属性。MMU中,寄存器中,寄存器C3用用于控制与域相关的属性的配置。于控制与域相关的属性的配置。当存储访问失效时,当存储访问失效时,MMU提供了相应的机制用于处理这种情况。在提供了相应的机制用于处理这种情况。在MMU中,寄存器中,寄存器C5和寄存器和寄存器C6用于支持这些机制。用于支持这些机制。105.3.2 禁止禁止/使能使能MMUCP15的寄存器的寄存器C1的位的位0用于控制禁止用于控制禁止/使能使能MMU。当。当CP15的寄存器的寄存器C1的位的位0设置成设置成0时,禁时,禁止止
11、MMU;当;当CP15的寄存器的寄存器C1的位的位0设置成设置成1时,时,使能使能MMU。下面的指令使能。下面的指令使能MMU: MRC P15,0,R0,C1,0, 0ORR R0,#01MCR P15,0,R0,C1,0,01. 使能使能MMU时存储访问过程时存储访问过程2. 禁止禁止MMU时存储访问过程时存储访问过程3. 禁止禁止/使能使能MMU时应注意的问题时应注意的问题115.3.3 MMU中的地址变换过程中的地址变换过程ARM支持的存储块大小有以下几种。支持的存储块大小有以下几种。段(section):是大小为1MB的存储块。大页(Large Pages):是大小为64KB的存储块
12、。小页(Small Pages):是大小为4KB的存储块。极小页(Tiny Pages):是大小为1KB的存储块。在在MMU中采用下面两级页表实现上述地址映射:中采用下面两级页表实现上述地址映射:一级页表中包含有以段为单位的地址变换条目以及指向二级页表的指针。一级页表实现的地址映射粒度较大。二级页表中包含以大页和小页为单位的地址变换条目。其中,一种类型的二级页表还包含有以极小页为单位的地址变换条目。125.3.3 MMU中的地址变换过程中的地址变换过程1. 基于一级页表的地址变换过程基于一级页表的地址变换过程(1)基于一级页表的地址变换过程(2)段描述符及其地址变换过程(3)粗粒度页表描述符(
13、4)细粒度页表描述符 31 14 13 0 CP15 的寄存器 C2 31 20 19 0 虚拟地址 31 14 13 2 1 0 合成的页表中相应地址转换条目的地址 页表的基地址 应为 0 页表内序号 页表的基地址 页表内序号 0 0 135.3.3 MMU中的地址变换过程中的地址变换过程2. 基于二级页表的地址变换过程基于二级页表的地址变换过程二级页表有两种:粗粒度的二级页表和细粒度的二级页表。(1) 大页描述符以及相关的地址变换(2) 小页描述符以及相关的地址变换(3) 极小页描述符以及相关的地址变换145.3.4 MMU中的存储访问权限控制中的存储访问权限控制在在MMU中,寄存器中,寄
14、存器C1的的R、S控制位和页表中地址控制位和页表中地址转换条目中的访问权限控制位联合作用,控制存储转换条目中的访问权限控制位联合作用,控制存储访问的权限。具体规则如表访问的权限。具体规则如表5.20所示。所示。APS R特权级的访问权限用户级的访问权限0b000 0没有访问权限没有访问权限0b001 0只读没有访问权限0b000 1只读只读0b001 1不可预知不可预知0b01X X读/写没有访问权限0b10X X读/写只读0b11X X读/写读/写155.3.5 MMU中的域中的域MMU中的域指的是一些段、大页或者小页的集中的域指的是一些段、大页或者小页的集合。合。ARM支持最多支持最多16
15、个域,每个域的访问控制特个域,每个域的访问控制特性由性由CP15中的寄存器中的寄存器C3中的两位来控制。这样就中的两位来控制。这样就能很方便地将某个域的地址空间包含在虚拟存储空能很方便地将某个域的地址空间包含在虚拟存储空间中,或者排除在虚拟存储空间之外。间中,或者排除在虚拟存储空间之外。CP15中的寄存器中的寄存器C3的格式如下所示。的格式如下所示。D15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0165.3.6 关于快表的操作关于快表的操作1. 使无效使无效(Invalidate)快表的内容快表的内容2. 锁定快表的内容锁定快表的内容(1)寄存器C10(2)锁定TL
16、B175.3.7 ARM中的存储访问失效中的存储访问失效在在ARM中有下面两种机制可以检测存储访问失效,中有下面两种机制可以检测存储访问失效,并进而中止并进而中止CPU的执行:的执行:当MMU检测到存储访问失效时,它可以向CPU报告该情况,并将存储访问失效的相关信息保存到寄存器中。这种机制称为MMU失效(MMU Fault)。外部存储系统也可以向CPU报告存储访问失效。这种机制称为外部存储访问中止(External Abort)。上述两种情况统称为存储访问中止上述两种情况统称为存储访问中止(Abort)。这时。这时称造成存储访问中止的存储访问被中止称造成存储访问中止的存储访问被中止(Abort
17、ed)。如果存储访问中止发生在数据访问周。如果存储访问中止发生在数据访问周期,期,CPU将产生数据访问中止异常中断。如果存储将产生数据访问中止异常中断。如果存储访问中止发生在指令预取周期,当该指令执行时,访问中止发生在指令预取周期,当该指令执行时,CPU产生指令预取异常中断。产生指令预取异常中断。185.3.7 ARM中的存储访问失效中的存储访问失效1. MMU失效失效(1)MMU中与存储访问失效相关的寄存器(2)MMU存储访问失效的类型2. 外部存储访问失效外部存储访问失效读操作。非缓冲的写操作。一级描述符的获取。二级描述符的获取。非缓冲的存储区域中的信号量操作。195.4 高速缓冲存储器和
18、写缓冲区高速缓冲存储器和写缓冲区通常通常ARM处理器的主频为几十处理器的主频为几十MHz,有的已经达,有的已经达到到200MHz。而一般的主存储器使用动态存储器。而一般的主存储器使用动态存储器(DRAM),其存储周期仅为,其存储周期仅为100ns200ns。这样,。这样,如果指令和数据都存放在主存储器中,主存储器的如果指令和数据都存放在主存储器中,主存储器的速度将会严重制约整个系统的性能。速度将会严重制约整个系统的性能。高速缓冲存储高速缓冲存储器器(Cache)和写缓冲区和写缓冲区(Write Buffers)位于主存储位于主存储器和器和CPU之间,主要用来提高存储系统的性能。本之间,主要用来
19、提高存储系统的性能。本节主要介绍与这两种技术相关的基本概念。节主要介绍与这两种技术相关的基本概念。1993年著名的ARM7诞生,之后的ARM9、ARM11风靡世界。随后出现了Cortex系列。实际上,Cortex就是ARM12。在“全国第七届嵌入式系统与单片机学术交流暨Cortex有两大分支:高性能的A8系列,主频可达到1GHz;低成本、计划与8/16位MCU竞争的M3系列205.4.1 基本概念基本概念高速缓冲存储器是全部用硬件来实现的,因此,它不仅对应用程序员是高速缓冲存储器是全部用硬件来实现的,因此,它不仅对应用程序员是透明的,而且对系统程序员也是透明的。透明的,而且对系统程序员也是透明
20、的。Cache与主存储器之间以块与主存储器之间以块(Cache Line)为单位进行数据交换。为单位进行数据交换。不同系统中,不同系统中,Cache的块大小也是不同的。通常的块大小也是不同的。通常Cache的块大小为几个的块大小为几个字。字。写缓冲区是由一些高速的存储器构成的。它主要用来优化向主存储器中写缓冲区是由一些高速的存储器构成的。它主要用来优化向主存储器中的写入操作。当的写入操作。当CPU进行向主存储器中的写入操作时,它先将数据写入进行向主存储器中的写入操作时,它先将数据写入到写缓冲区中,由于写缓冲区的访问速度很高,这种写入操作的速度将到写缓冲区中,由于写缓冲区的访问速度很高,这种写入
21、操作的速度将很高。然后很高。然后CPU就可以进行下面的操作。写缓冲区在适当的时候以较低就可以进行下面的操作。写缓冲区在适当的时候以较低的速度将数据写入到主存储器中相应的位置。的速度将数据写入到主存储器中相应的位置。通过引入通过引入Cache和写缓冲区,存储系统的性能得到了很大的提高,但同和写缓冲区,存储系统的性能得到了很大的提高,但同时也带来了一些问题。比如,由于数据将存在于系统中不同的物理位时也带来了一些问题。比如,由于数据将存在于系统中不同的物理位置,可能造成数据的不一致性;由于写缓冲区的优化作用,可能有些写置,可能造成数据的不一致性;由于写缓冲区的优化作用,可能有些写操作的执行顺序不是用
22、户期望的顺序,从而造成操作错误。操作的执行顺序不是用户期望的顺序,从而造成操作错误。215.4.2 Cache的工作原理和地址映像方法的工作原理和地址映像方法1. Cache的工作原理的工作原理2. Cache地址映像和变换方法地址映像和变换方法(1)全相联映像方式(2)直接映像方式(3)组相联映像方式225.4.3 Cache的分类的分类1. 统一统一/独立的数据独立的数据Cache和指令和指令Cache2. 写通写通(Write-through)Cache和写回和写回(Write-back)Cache可靠性与主存的通信量控制的复杂性硬件实现的代价3. 读操作分配读操作分配Cache和写操作
23、分配和写操作分配Cache235.4.4 Cache的替换算法的替换算法在把主存地址变换成在把主存地址变换成Cache地址的过程中,如果发现地址的过程中,如果发现Cache块失效,则块失效,则需要从主存中调入一个新块到需要从主存中调入一个新块到Cache中。而来自主存中的这个新块往往中。而来自主存中的这个新块往往可以装入到可以装入到Cache的多个块中。当可以装入这个新块的几个的多个块中。当可以装入这个新块的几个Cache块都块都已经装满时,就要使用已经装满时,就要使用cache替换算法,从那些块中找出一个不常用的替换算法,从那些块中找出一个不常用的块,把它调回到主存中原来存放它的那个地方,腾
24、出一个块存放从主存块,把它调回到主存中原来存放它的那个地方,腾出一个块存放从主存中调来的新块。在中调来的新块。在ARM中常用的替换算法有两种:随机替换算法和轮中常用的替换算法有两种:随机替换算法和轮转法。转法。(1)随机替换算法通过一个伪随机数发生器产生一个伪随机数,用新块将编号为该伪随机数的Cache块替换掉。这种算法很简单,易于实现。但是它没有考虑程序的局部性特点,也没有利用历史上的块地址流的分布情况,因而效果较差。同时这种算法不易预测最坏情况下Cache的性能。(2)轮转法维护一个逻辑的计数器,利用该计数器依次选择将要被替换出去的Cache块。这种算法容易预测最坏情况下Cache的性能。
25、但它有一个明显的缺点,在程序发生很小的变化时,可能造成Cache平均性能急剧的变化。245.4.5 缓冲技术的使用注意事项缓冲技术的使用注意事项通常使用通常使用Cache和写缓冲可以提高系统的性能,但是由于和写缓冲可以提高系统的性能,但是由于Cache和写缓和写缓冲区的使用可能改变访问主存的数量、类型和时间,这些技术对于有些冲区的使用可能改变访问主存的数量、类型和时间,这些技术对于有些类型的存储访问是不适合的。本小节介绍使用这些技术时的一些限制。类型的存储访问是不适合的。本小节介绍使用这些技术时的一些限制。Cache通常需要存储器件具有下面的特性:通常需要存储器件具有下面的特性:读取操作将返回
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARM 体系结构 编程 第版第章
限制150内