嵌入式系统教案

上传人:仙*** 文档编号:71973499 上传时间:2022-04-07 格式:PPT 页数:39 大小:652KB
收藏 版权申诉 举报 下载
嵌入式系统教案_第1页
第1页 / 共39页
嵌入式系统教案_第2页
第2页 / 共39页
嵌入式系统教案_第3页
第3页 / 共39页
资源描述:

《嵌入式系统教案》由会员分享,可在线阅读,更多相关《嵌入式系统教案(39页珍藏版)》请在装配图网上搜索。

1、嵌入式系统教案嵌入式系统教案武汉创维特信息技术有限公司武汉创维特信息技术有限公司 2022-4-72提纲ARMARM存储系统概述存储系统概述快速上下文切换技术快速上下文切换技术高速缓冲区和写缓冲区高速缓冲区和写缓冲区ARMARM存储器管理单元存储器管理单元第五章 ARM存储系统3ARM存储系统概述q 与其他中低档单片机不同,ARM处理器中一般都包含一个存储器管理部件,用于对存储器的管理。q 为了适应不同的嵌入式应用, ARM存储系统的体系结构存在很多差别。简单的可以使用向单片机系统中使用的平板式地址映射机制即可;而一些复杂的系统中则可能包含多种技术来提供功能强大的存储系统。ARM存储系统概述4

2、ARM所使用的存储系统技术1. 系统中可能包含多种类型的存储器件,如FLASH、ROM、SDRAM、SRAM等;而且不同类型的存储器件要求不同的速度、数据宽度等;2. 通过CACHE和WRITE BUFFER技术缩小处理器和存储系统速度差别,从而提高系统性能;3. 内存管理部件使用内存映射技术实现虚拟空间到物理空间的映射。4. 引入存储保护机制,增强系统的安全性;5. 引入一些机制保证I/O操作映射成内存操作后,各种I/O操作能够得到正确的结果。ARM存储系统概述5S3C44B0X存储器组织示意图ARM存储器管理单元6用于存储管理的系统控制协处理寄存器CP15q 在基于ARM的嵌入式系统中,存

3、储系统通常使用CP15来完成存储器的大部分管理工作;除了CP15之外,在具体的存储机制中可能还会用到其他技术如:页表技术等。q CP15可以保护16个32位的寄存器,编号015。实际上对于某些编号的寄存器可能对应有多个物理寄存器,在指令中指定特定的标志位来区分相应的寄存器。ARM存储器管理单元7CP15寄存器列表1寄存器编号寄存器编号基本作用基本作用在在MMUMMU中的作用中的作用0 0IDID编码(只读)编码(只读)IDID码和码和CacheCache类型类型1 1控制位控制位各种控制位各种控制位2 2存储保护和控制存储保护和控制地址转换表基地址地址转换表基地址3 3存储保护和控制存储保护和

4、控制域访问控制位域访问控制位4 4存储保护和控制存储保护和控制保留保留5 5存储保护和控制存储保护和控制内存失效状态内存失效状态6 6存储保护和控制存储保护和控制内存失效地址内存失效地址ARM存储器管理单元8CP15寄存器列表2寄存器编号寄存器编号基本作用基本作用在在MMUMMU中的作用中的作用7 7高速缓存和写缓高速缓存和写缓存存高速缓存和写缓存控高速缓存和写缓存控制制8 8存储保护和控制存储保护和控制TLBTLB控制控制9 9高速缓存和写缓高速缓存和写缓存存高速缓存锁定高速缓存锁定1010存储保护和控制存储保护和控制TLBTLB锁定锁定1111保留保留1212保留保留ARM存储器管理单元9

5、CP15寄存器列表3寄存器编号寄存器编号基本作用基本作用在在MMUMMU中的作用中的作用1313进程标识符进程标识符进程标识符进程标识符1414保留保留1515因不同设计而异因不同设计而异因不同设计而异因不同设计而异ARM存储器管理单元10访问CP15寄存器的指令q 访问CP15寄存器的指令有如下两条:1. MCRRegister - Coprocessor Register2. MRCCoprocessor Register - Register注意:这两条指令只能在系统模式下执行;在用户模式下执行该指令将引起异常。ARM存储器管理单元11MCR 访问CP15q 指令语法 MCR cond

6、p15, , , MCR cond p15, , , MCR2 p15, , , MCR2 p15, , , q OP1为协处理器将执行的操作的代码。对于CP15来说,该值必须为0;q Rd为源寄存器,其值将被传送到协处理器中;该寄存器不能为PC;q CRn是协处理器的目标寄存器,可以是C0-15;q CRm是附加的目标寄存器或源操作数寄存器,用于区分同一编号的不同物理寄存器,当指令中不需要附加信息时要将C0指定为CRm;q OP2也提供附加信息,用于区分同一编号的不同物理寄存器,当指令中不需要附加信息时,可以省略或者将其置0。ARM存储器管理单元12MCR 访问CP15示例MCRP15, 0

7、, R4, C1, C0, 0q 上述指令从ARM寄存器R4中将数据传送到协处理器CP15的寄存器C1中。其中R4为ARM寄存器,存放源操作数;C1和C0为协处理器寄存器,为目标寄存器;操作码1为0,操作码附加信息也为0。ARM存储器管理单元13MRC 访问CP15q 指令语法 MRC cond p15, , , MRC cond p15, , , MRC2 p15, , , MRC2 p15, , , q OP1为协处理器将执行的操作的代码。对于CP15来说,该值必须为0;q Rd为目标寄存器,指令处理的结果将存放在该寄存器中;q CRn是协处理器寄存器,存放第一个源操作数;q CRm是附加

8、的源操作数寄存器,用于区分同一编号的不同物理寄存器,当指令中不需要附加信息时要将C0指定为CRm;q OP2也提供附加信息,用于区分同一编号的不同物理寄存器,当指令中不需要附加信息时,可以省略或者将其置0。ARM存储器管理单元14存储管理单元MMU的作用q 实现虚拟地址空间到物理存储空间的映射;q 存储器访问权限的控制;q 设置虚拟存储空间的缓冲特性。页表是实现上述功能的一个重要手段,它实际上是位于内存中的一个对照表。ARM存储器管理单元15存储器单元的段页式管理q 为了实现不同层次的管理,系统提供了基于段或页的存储器访问方式1. 段(section):由1MB 的存储器块构成2. 大页(la

9、rge page):由64KB 的存储器块构成3. 小页(small page):由4KB 的存储器块构成4. 微页(tiny page):由1KB 的存储器块构成ARM存储器管理单元16用于存储管理的页表q 地址变换条目:页表的每一行对应与虚拟地址空间的一个页,该行同时保含了该虚拟内存页对应的物理内存页的地址、该页的访问权限以及缓冲特性等。我们将页表中的一行称为地址变换条目。q 页表存放在内存中,系统通常有一个寄存器来保存页表的基地址。ARM系统中使用的就是CP15的寄存器C2。q 快表:从虚拟地址到物理地址的转换实际上就是查询页表的过程。由于程序在执行过程中具有局部性,即在一段时间内只是局

10、限在少数几个单元,为了加快页表的查询速度,在系统中通常使用一个容量更小、速度更快的存储器件来保存当前需要访问的地址变换条目,这个容量小的页表又称作快表(TLB)。ARM存储器管理单元17快表的使用q 更新:当CPU需要访问内存时,首先在TLB中查找需要的地址变换条目。若不存在则在内存页表中查询,并把查询的结果添加到TLB中。q 清除:当内存中页表的内容改变或者使用新的页表时,TLB中的内容需要清空。CP15的寄存器8用于完成该功能。q 锁定:可以将一个地址变换条目锁定在TLB中,以加快访问速度,CP15的寄存器10用于完成该功能。ARM存储器管理单元18域(domain)管理q 域是段、大页和

11、小页的集合。ARM 结构支持16 个域。对域的访问由域访问控制寄存器( CP15的寄存器3 )的两个位字段控制。因为每个字段对访问对应的域的使能非常迅速,所以整个存储器区间能很快地交换进出虚拟存储器。这里支持2 种域访问方式1. 客户:域的用户(执行程序,访问数据),被形成这个域的节或页来监督访问权限。2. 管理者:控制域的行为(域中的当前段和页,对域的访问),不被形成这个域的段或页来监督访问权限。q 一个程序可以是一些域的客户,也是另外一些域的管理者,同时没有对其它域的访问权限。这允许对程序访问不同存储器资源的非常灵活的存储器保护。ARM存储器管理单元19内存访问失效管理q 当存储器访问失败

12、时,MMU单元提供了相应的机制用于处理这种情况。CP15的寄存器5和寄存器6用于完成该功能。ARM存储器管理单元20寄存器1的MMU 控制位q M(bit0) M(bit0) 使能使能MMUMMU 0 = 0 = 禁止禁止MMUMMU 1 = 1 = 允许允许MMUMMUq 在没有在没有MMU MMU 和保护单元的系统上,这个位应该读出为和保护单元的系统上,这个位应该读出为0 0,并忽略写。并忽略写。q A(bit1) A(bit1) 使能对齐错检查使能对齐错检查 0 = 0 = 禁止禁止 1 = 1 = 允许允许.RRRRV VI IZ ZF FR RS SB BL LD DP PW WC

13、CA AM M.141413131212111110109 98 87 76 65 54 43 32 21 10 0ARM存储器管理单元21禁止和使能MMUq 下面指令使能MMUMRCP15, 0, R0, C1, 0, 0ORR0, #1MCRP15, 0, R0, C1, 0, 0q 下面指令禁止MMUMRCP15, 0, R0, C1, 0, 0BICR0, #1MCRP15, 0, R0, C1, 0, 0ARM存储器管理单元22地址变换过程q 虚拟存储空间到物理存储空间的映射是以内存块为单位进行的。q 在MMU中采用两级页表实现上述地址映射:1. 一级页表中包含有以段为单位的地址变换

14、条目以及只想二级页表的指针。一级页表实现的地址映射粒度较大;2. 二级页表中包含以大页和小页为单位的地址变换条目。其中一种类型的二级表还包含有极小页为单位的地址变换条目。ARM存储器管理单元23基于一级页表的地址变换ARM存储器管理单元24一级页表描述符可能的格式ARM存储器管理单元25基于段地址的映射示意图ARM存储器管理单元26高速缓冲存储器和写缓冲区q 处理器主频较高,通常为几十兆甚至几百兆,而一般存储器(DRAM)的存储周期为100200ns。存储器的速度严重制约着系统的性能。q 高速缓冲存储器(cache)是一个硬件部件,对我们来说是透明的。Cache与主存储器间以块(cache l

15、ine)为单位进行数据交换。q Cache的存取速度远远大于主存储器的速度,存储器访问的时间局部性决定了采用Cache后,系统的整体性能可以得到大大提高。高速缓冲区和写缓冲区27Cache的工作原理块 号 B 块 内 地 址主 存 cache 地 址 变 换块 号 B 块 内 地 址cache 替 换策 略Cache主 存 储 器命中未 命 中替 换 块装 入 块已满未满虚 拟 地 址高速缓冲区和写缓冲区28Cache的工作原理q 在Cache存储系统中,把Cache和主存划分为相同大小的块。主存地址可以使用块号(B)和块内地址(W)两部分组成。同样Cache的地址也可以使用块号(B)和块内地

16、址(W)两部分组成。q 命中率:当CPU访问存储器时,通过存储器地址变换部件把地址变换成cache的块号和块内地址,如果变换成功(称为cache命中),就用得到的cache地址访问cache,从cache中取数;如果变换失败,则产生cache失效信息,并用主存储器的地址访问主存储器,同时将包含被访问字在内的一整块都从主存储器读出来,装入到cache中,但如果这时cache已满,需要采用适当的替换算法来更新cache。高速缓冲区和写缓冲区29Cache的地址映象和变换方法q 地址映象指把主存地址空间映象到cache地址空间,具体说就是把存放在主存中的程序按照某种规则装入到cache中,并建立主存

17、地址到cache地址之间的对应关系。q 地址变换是指当程序已经装入到cache中后(形成地址映象),在实际运行过程中,把主存地址如何变换成cache地址。q 地址映象和变换是密切相关的,算法需要统一。但所有方法都将主存和cache划分为同样大小的存储单元(称为块),在进行变换时都是以块为单位。q 地址映象和变换方法包括:全相联映象、直接映象、组相联映象三种方法。高速缓冲区和写缓冲区30地址映象和变换方法全相联映象方式q 主存中任意一块可以映射到cache中的任意一块的位置上。q 如果cache的块容量为C,主存的块容量为M,则两则之间的映象关系有C*M中,如果采用目录表来存放这些映象关系,目录

18、表的容量为C。高速缓冲区和写缓冲区31地址映象和变换方法直接映象方式q 这是最简单也是最直接的方法。主存中一块只能映象到cache中的一个特定的块中。q 假设主存的块号为B,cache的块号为b,则他们之间的映象关系可以使用下面的公司表示:b B mode Cb其中Cb为cache的块容量高速缓冲区和写缓冲区32地址映象和变换方法组相联映象方式q 在这种方式下,把主存和cache按照同样大小划分成组,每个组都由相同的块数组成。这样,主存的组数要比cache的组数多;q 主存的组与cache的组之间采用直接映象的方式;q 在两个对应的组之间采用全相联映象方式。高速缓冲区和写缓冲区33Cache的

19、分类q 统一/独立的数据和指令cache适应独立的数据和指令cache,可以在同一个时钟周期中读取指令和数据,而不需要双端口的cache。但这时需要保证指令和数据的一致性。q 写回和写通cache写回cache指执行写操作时,被写的数据只写入cache,仅当cache需要被替换时才将数据写入到实际的存储器中;写通则是在指执行写操作时,同时向cache和存储器执行写操作,从而保证数据的一致性。高速缓冲区和写缓冲区34Cache替换算法q 随机替换算法和轮转法q 随机替换算法通过一个随机数发生器产生随机数,用新块将编号为该随机数的块进行替换。q 轮转法维护一个逻辑的计数器,利用该计数器依次选择将要

20、被替换出去的cache块。高速缓冲区和写缓冲区35存储系统的一致性问题q 当引入cache机制后,同一地址的数据可能存在多个副本,分别保存在cache中、写缓冲区中以及主存中。1. 地址映射关系改变造成的不一致;2. 指令cache的数据一致性问题;3. DMA造成的不一致问题;高速缓冲区和写缓冲区36Cache的编程接口q 与cache和写缓冲区相关的寄存器包括CP15中的寄存器C7、寄存器C9以及寄存器C1中的某些位。q MCR P15, 0, , , , q MCR P15, 0, , , , q MCR P15, 0, , , c0, q MRC P15, 0, , , , q MRC

21、 P15, 0, , , , q MRC P15, 0, , , c0, 高速缓冲区和写缓冲区37快速上下文切换技术q 快速上下文切换技术通过修改系统中不同进程的虚拟地址,避免在进行进程间切换时造成的虚拟地址到物理地址的重映射,从而提高系统的性能。快速上下文切换技术38快速上下文切换技术原理(FCSE)q 如果两个进程占用的虚拟地址空间有重叠,系统在这两个进程之间进行切换时,必须进行虚拟地址到物理地址的重映射,包括重建TLB ,清除cache,整个工作需要带来巨大的系统开销。而快速上下文切换技术的引入避免了这种开销。q FCSE位于CPU和MMU之间,他的责任就是将不同进程使用的相同的虚拟地址

22、映射为不同的虚拟空间,使得在上下文切换时无需重建TLB等。如果两个进程使用了同样的虚拟地址空间,则对CPU而言,两个进程使用了同样的虚拟地址空间,FCSE机构对各个进程的虚拟地址进行变换,这样系统中除了CPU之外的部分看到的是经过上下文切换机构变换后的虚拟地址。快速上下文切换技术39快速上下文切换技术原理q 在ARM系统中,4G的虚拟地址空间被分成128个进程空间块,每个空间块中可以包含一个进程,该进程可以使用的虚拟地址空间为00 x01ffffff。q 编号为I的进程空间块中的进程实际使用的虚拟地址空间为:(I*0 x02000000)( I*0 x02000000 +0 x01ffffff)快速上下文切换技术

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!