




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1第第2 2章章 ARM ARM微处理器硬件结构微处理器硬件结构计计 算算 机机 体体 系系 结结 构构 ARM处理器结构和技术特征处理器结构和技术特征ARM 存存 储储 系系 统统 机机 制制ARM7硬件结构图硬件结构图21 1 存储器的存储体系存储器的存储体系 (1)1)存储器形式存储器形式单体单字存储器单体单字存储器单体多字存储器单体多字存储器 多体单字交叉存取存储器多体单字交叉存取存储器多体多字多体多字交叉存取存储器交叉存取存储器一般把这些能并行一般把这些能并行读出多个读出多个CPU字的字的单体多字单体多字和和多体单多体单字字及及多体多字多体多字的交的交叉存取系统,统称叉存取系统,统称
2、为为并行主存系统并行主存系统。3单体单字存储器单体单字存储器l单体单字存储器单体单字存储器存储器存储器字长字长W W与与CPUCPU字长字长W W相同相同, ,一一次访问一个存次访问一个存储器字储器字; ;l存储周期存储周期T TM MT TM M是连续启动一个存储体所需要是连续启动一个存储体所需要的时间间隔。的时间间隔。l存储器频宽存储器频宽B BM M是指存储器可以提供的是指存储器可以提供的数据传送数据传送率率,一般用每秒钟所传送的信息,一般用每秒钟所传送的信息位数来衡量。位数来衡量。 l 主存最大频宽主存最大频宽 B BM M =W/T =W/TM MW W位位读出寄存器读出寄存器地址寄
3、存器地址寄存器l返回返回4单体多字单体多字存储器存储器 2)2)单体多字单体多字存储存储器器字长等于字长等于m m个个CPUCPU字字, ,B BM M =mW/T =mW/TM M aW W位位W W位位W W位位W W位位地址寄存器地址寄存器单体多字单体多字(m=4)(m=4)存储存储器器 W W位位单字长寄存器单字长寄存器单体单体指只有一套地址寄指只有一套地址寄存器和地址译码器存器和地址译码器;CPU每次访问可每次访问可同时同时读读出多个存储字。出多个存储字。读出的数据读出的数据同时或分时同时或分时送送CPU.返回返回5多体单字多体单字存储器存储器 3)3)多体单字交叉存取存储器多体单字
4、交叉存取存储器 总线控制总线控制地址寄存器地址寄存器0 0 地址寄存器地址寄存器1 1 地址寄存器地址寄存器2 2地址寄存器地址寄存器3 3M M0 0M M1 1M M2 2M M3 3主控主控(主存控制部件主存控制部件) CPUCPUIOPIOP多体多体(m=4)(m=4)交叉交叉存储存储器器返回返回l把多体单字的并行存取与单体多字结合,构成多体把多体单字的并行存取与单体多字结合,构成多体多字交叉存储器,进一步多字交叉存储器,进一步提高频宽提高频宽。l存储器由存储器由多个存储体多个存储体构成,但构成,但数据总线数据总线是每个存储是每个存储体字长的整数倍。体字长的整数倍。l每访问一次存储器,
5、可同时读每访问一次存储器,可同时读/ /写写多个字多个字。l多个存储体按多个存储体按流水线流水线的方式启动,提高了存储器的的方式启动,提高了存储器的整体速度。整体速度。6多体多体多多字字存储器存储器返回返回练习练习7多体交叉存储器主要是为了解决扩充容量问题。多体交叉存储器主要是为了解决扩充容量问题。 ( )错错,由于,由于CPU的速度比主存快,如果能同时从主存取出的速度比主存快,如果能同时从主存取出n条指令条指令,必然会提高机器的运行速度,多模块交叉存储器就是基于这,必然会提高机器的运行速度,多模块交叉存储器就是基于这种思想提出来的。种思想提出来的。 采用多体交叉存储器可以实现主存储器多模块采
6、用多体交叉存储器可以实现主存储器多模块流水式并行流水式并行存存取,所以大大提高了存储器的数据传输率。取,所以大大提高了存储器的数据传输率。多体交叉存储器主要解决的问题是(多体交叉存储器主要解决的问题是( )。)。 A. 扩充主存储器的容量扩充主存储器的容量 B. 提高主存储器数据传输率提高主存储器数据传输率 C. 减少主存储器芯片数量减少主存储器芯片数量 D. 简化路线结构简化路线结构B8(2 2) 存储器层次结构存储器层次结构脱机大容脱机大容量存储器量存储器辅助存储器辅助存储器主存储器主存储器高速缓冲存储器高速缓冲存储器通用寄存器通用寄存器9ARMARM存储器存储层次存储器存储层次lARMA
7、RM存储器采用层次存储结构,其目的在于存储器采用层次存储结构,其目的在于以低速存储器的以低速存储器的价格得到高速存储器的性能价格得到高速存储器的性能。 lARMARM架构的处理器的存储器寻址空间为架构的处理器的存储器寻址空间为4GB4GB,一般系统所需,一般系统所需RAM/ROMRAM/ROM经总线外接。经总线外接。l存储层次:存储层次:寄存器寄存器片上片上RAM主存主存硬盘硬盘典型的典型的RISC处理器处理器大约有大约有32个个32位寄位寄存器,总共存器,总共128字节,字节,访问时间为几个访问时间为几个ns 微处理器达到最佳性微处理器达到最佳性能;能; 速度与寄存器同级;速度与寄存器同级;
8、 功耗低、便宜、简单、功耗低、便宜、简单、电磁干扰少;电磁干扰少; 要考虑容量。要考虑容量。几兆字节几兆字节1GB动态动态存储器,访问时间约存储器,访问时间约50ns几百兆字节几百兆字节几十个几十个GB,访问时间几十,访问时间几十ms顶层10(3(3) ARMARM存储存储数据类型数据类型lARM支持的数据类型 ARMARM处理器支持以下六种数据类型:处理器支持以下六种数据类型: 8 8位位有符号和无符号有符号和无符号字节字节。1616位位有符号和无符号有符号和无符号半字半字,以,以2 2字节的字节的边界对齐边界对齐。 ThumbThumb状态下,最低位不为状态下,最低位不为0b00b0非半字
9、对齐。非半字对齐。3232位位有符号和无符号有符号和无符号字字,以,以4 4字节的字节的边界对齐边界对齐。 ARMARM状态下,最低位不为状态下,最低位不为0b000b00非字对齐。非字对齐。在内部,所有在内部,所有ARM操作操作都是面向都是面向32位位的操作数的操作数;只有只有数据传送指令数据传送指令支支持较短的持较短的字节和半字字节和半字的的数据类型。数据类型。当从存储器调入一个字节和半字当从存储器调入一个字节和半字时,根据指令对数据的操作类型,时,根据指令对数据的操作类型,将其将其无符号无符号0或或有符号有符号“符号位符号位”扩展为扩展为32位,进而作为位,进而作为32位数据位数据在内部
10、进行处理。在内部进行处理。11边界对齐边界对齐l各种类型的数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放对齐l对齐的作用和原因:平台原因(移植原因)平台原因(移植原因):各个硬件平台对存储空间的处理上有很各个硬件平台对存储空间的处理上有很大的不同,某些硬件平台只能从大的不同,某些硬件平台只能从某些特定地址某些特定地址开始存取,否则会开始存取,否则会出现硬件异常,这种架构下编程必须保证字节对齐。出现硬件异常,这种架构下编程必须保证字节对齐。性能原因:性能原因:如果不按照适合其平台要求对数据存放进行对齐,为如果不按照适合其平台要求对数据存放进行对齐,为了访问了访问未对齐未对齐的内存,
11、处理器要作的内存,处理器要作两次内存访问两次内存访问,而对齐的内存,而对齐的内存访问只需一次。会在存取效率上带来损失。访问只需一次。会在存取效率上带来损失。l对齐就是数据在存储器中存放的规则:ARM指令:按指令:按4字节对齐存储,一条指令必须从字节对齐存储,一条指令必须从4的整数倍地址的整数倍地址取。取。ThumbThumb指令:指令:按按2字节对齐存储,一条指令必须从字节对齐存储,一条指令必须从偶数地址偶数地址取。取。12(4(4) ARMARM数据存储格式数据存储格式地址空间的规则要求地址空间的规则要求字地址字地址A:n 位于地址位于地址A的的字字包含的包含的字节字节位于地址位于地址A,A
12、+1,A+2和和A+3;n 位于地址位于地址A的的字字包含的包含的半字半字位于地址位于地址A和和A+2;字节字节字节字节字节字节字节字节AA+1A+2A+3存储器存储器半字半字半字半字字字低地址低地址高地址高地址n 位于地址位于地址A+2的的半字半字包包含的含的字节字节位于地址位于地址A+2和和A+3;n位于地址位于地址A的的半字半字包含的包含的字节字节位于地址位于地址A和和A+1; 13小端的数据格式小端的数据格式(Little Endian) 低地址低地址高地址高地址地址地址A地址地址A+1地址地址A+2地址地址A+3最低有效字节的地址就最低有效字节的地址就是该是该word的地址的地址最低
13、有效字节位于最低有效字节位于最低地址最低地址word a=0 x f6 73 4b cdf6734bcd(4(4) ARMARM数据存储格式数据存储格式cd4b73f614(4(4) ARMARM数据存储格式数据存储格式大端的数据存放格式大端的数据存放格式(Big Endian) 低地址低地址高地址高地址最高有效字节的地址最高有效字节的地址就是该就是该word的地址的地址最低有效字节最低有效字节位于最高地址位于最高地址word a=0 x f6 73 4b cdf6734bcd73f6地址地址A+3地址地址A+2地址地址A+1地址地址Acd4b字节地址字节地址15练习练习l存储一个存储一个32
14、32位数位数0 x21684650 x2168465到到2000H2000H2003H2003H四个字节单元四个字节单元中,若以中,若以大端模式大端模式存储,则存储,则2000H2000H存储单元的内容为存储单元的内容为_。 A A、0 x21 B0 x21 B、0 x68 C0 x68 C、0 x65 D0 x65 D、0 x02 0 x02 l存储一个存储一个3232位数位数876165876165到到2000H2000H2003H2003H四个字节单元中,四个字节单元中,若以若以小端模式小端模式存储,则存储,则2000H2000H存储单元的内容为(存储单元的内容为( )。)。 A A、0
15、 x00 B0 x00 B、0 x87 C0 x87 C、0 x65 D0 x65 D、0 x610 x6116(5(5) ARM4ARM4种存储周期种存储周期总线周期总线周期类型类型 说说 明明nMREQSEQ 特特 点点N周期周期非顺序周期非顺序周期00最简单最简单的总线周期,存储控制器必的总线周期,存储控制器必须启动存储器访问来满足这个请求须启动存储器访问来满足这个请求;该方式存储系统常需要;该方式存储系统常需要较较长的访长的访问时间问时间。 S周期周期顺序周期顺序周期01多用于实现总线上的多用于实现总线上的突发传送突发传送,第,第一个周期必须是一个内部周期。一个周期必须是一个内部周期。
16、 I周期周期内部周期内部周期10不执行存储器访问不执行存储器访问;可广播下一次;可广播下一次访问的地址以便开始译码,与访问的地址以便开始译码,与S周期周期配合实现总线上的突发传送。配合实现总线上的突发传送。 C周期周期协处理器寄存器协处理器寄存器传送周期传送周期11通过数据总线向或从通过数据总线向或从协处理器协处理器传送传送数据;传送期间,不需存储周期数据;传送期间,不需存储周期,存存储系统不允许驱动数据总线。储系统不允许驱动数据总线。注意:注意:总线周期使用总线周期使用nMREQ和和SEQ信号编码,信号编码,nMREQ、SEQ 为为 CPU引脚。引脚。17(6) (6) 系统总线配置系统总线
17、配置AMBAAMBA总线总线PCIPCI总线总线l总线标准总线标准 大多数计算机系统上大多数计算机系统上I/OI/O设备的种类和数量设备的种类和数量是可变的。用户可以是可变的。用户可以根据自身需要进行选择。根据自身需要进行选择。 I/OI/O总线总线是连接设备的是连接设备的接口接口。总线标准可以使计算机设计者和。总线标准可以使计算机设计者和I/OI/O设备设计者设备设计者独立进行开发独立进行开发,因此它占据着很重要的地位。,因此它占据着很重要的地位。 只要两种设计者都遵循只要两种设计者都遵循总线标准总线标准,任何,任何I/OI/O设备都可以连到任何设备都可以连到任何计算机上。实际上,计算机上。
18、实际上,I/OI/O总线标准定义了设备应该如何连接到计算机。总线标准定义了设备应该如何连接到计算机。18(6) (6) 系统总线配置系统总线配置高性能高性能ARM处处理器理器DMAC片上片上RAM总总线线桥桥UARTUSBTimerAHB/ASBAPBAHBAHB主要用于主要用于高性能高性能模块(模块(CPUCPU、DMADMA、DSPDSP等)之间的连接;等)之间的连接;APBAPB主要用于主要用于低带宽低带宽的周边外设(的周边外设(USBUSB、UARTUART等)之间的连接;等)之间的连接;ASBASB适用于适用于高性能高性能模块,读写数据采用一条双向模块,读写数据采用一条双向DBDB。
19、lAMBAAMBA总线标准总线标准19(6) (6) 系统总线配置系统总线配置lPCIPCI总线标准总线标准外围组件互连;外围组件互连;支持多种外设,支持多种外设,为为PCPC广泛采用;广泛采用;3232位传输(可扩位传输(可扩展展6464位);位);突发模式传输突发模式传输;地址地址/ /数据总线复数据总线复用,减小总线规用,减小总线规模。模。202 ARM2 ARM的的高速缓冲存储器高速缓冲存储器CacheCachel处理器内核的处理器内核的CacheCacheCacheCache的作用的作用CPUCPU算得很快算得很快一条指令只用一条指令只用1-1-几个时钟几个时钟周期周期而从基于而从基
20、于SDRAMSDRAM的的主内存主内存取、存操作数相取、存操作数相对很慢对很慢 几十个时钟周期几十个时钟周期造成造成CPUCPU大量时间都在大量时间都在空转空转以等待数据以等待数据readyreadyCacheCache由访问速度较快的由访问速度较快的SRAMSRAM组成,一次组成,一次访问大概只需几个访问大概只需几个- -十几个时钟周期十几个时钟周期把最近或经常需要访问的数据放在把最近或经常需要访问的数据放在CacheCache而不是主存中而不是主存中212 ARM2 ARM的的高速缓冲存储器高速缓冲存储器CacheCacheCacheCache对一个系统对一个系统实际的性能的影响实际的性能
21、的影响有时候比有时候比CPUCPU的频率还要的频率还要大大所以所以IntelIntel有些面向服务器的有些面向服务器的CPUCPU与同内核的桌面与同内核的桌面CPUCPU的最主的最主要的区别就是要的区别就是CacheCache更大更大!l尽管只是处理器的众多功能模块的一部分,尽管只是处理器的众多功能模块的一部分,CacheCache往往占据往往占据了一个处理器芯片的了一个处理器芯片的大部分芯片面积大部分芯片面积!Intel Core Duo处理器芯片处理器芯片2MB Cache222 ARM2 ARM的的高速缓冲存储器高速缓冲存储器CacheCachel高速缓存高速缓存CacheCache高速
22、缓冲存储器中存放的是当前高速缓冲存储器中存放的是当前使用得最多使用得最多的的程序程序代码和数据代码和数据,即主存中部分内容的,即主存中部分内容的副本副本。在嵌入式系统中在嵌入式系统中CacheCache全部都全部都集成集成在嵌入式微处理器在嵌入式微处理器内。内。可分为数据可分为数据CacheCache、指令、指令CacheCache或混合或混合CacheCache。不同的处理器其不同的处理器其CacheCache的大小不一样。的大小不一样。一般一般3232位的嵌入式微处理器都内置位的嵌入式微处理器都内置CacheCache。23(1 1) CacheCache的工作原理的工作原理主存块号主存块
23、号主存储器主存储器012m1字块字块 0字块字块 1字块字块 M1主存块号主存块号块内地址块内地址m位位b位位n位位M块块B个字个字缓存块号缓存块号块内地址块内地址c位位b位位C块块B个字个字字块字块 0字块字块 1字块字块 C1012c1标记标记Cache缓存块号缓存块号命中与未命中命中与未命中24CacheCache命中命中:CPUCPU每次读取主存时,每次读取主存时,CacheCache控制器控制器都要检查都要检查CPUCPU送出的地址,判断送出的地址,判断CPUCPU要读取的要读取的数据是否在数据是否在CacheCache中中,如果在就称为如果在就称为命中命中。可直接访问可直接访问Ca
24、cheCacheCacheCache未命中未命中:读取的数据不在:读取的数据不在CacheCache中,则对主存储器中,则对主存储器进行操作,并进行操作,并将有关内容置入将有关内容置入CacheCache(作为常用的数据(作为常用的数据/ /指令)指令)。25(1) (1) CacheCache的工作原理:的工作原理:在在cachecache存储系统中,把存储系统中,把主存储器主存储器和和cachecache都划分成都划分成相同大小相同大小的的块块。主存地址可以由块号主存地址可以由块号M M和块内地址和块内地址N N两部分组成。同样,两部分组成。同样,cachecache的地的地址也由块号址也
25、由块号m m和块内地址和块内地址n n组成。组成。地址转换地址转换工工作作原原理理图图Cache26(2) (2) CacheCache的的读写操作读写操作 访问访问CacheCache取出信息送取出信息送CPUCPU 访问主存访问主存取出信息送取出信息送CPUCPU将新的主存块将新的主存块调入调入CacheCache中中执行替换算法执行替换算法 腾出空位腾出空位 结束结束命中命中?CacheCache满?满?CPUCPU发出访问地址发出访问地址 开始开始是是否否是是否否读操作:读操作:27(2) (2) CacheCache的的读写操作读写操作写操作:写操作:如何保持如何保持Cache和主存
26、内容的一致?和主存内容的一致?写入方法写入方法/ /写策略写策略:写回写回(Write BackWrite Back):):写操作时,数据写操作时,数据既既写入写入CacheCache,又又写入写入主存。主存。 写回写回CacheCache写写通通(Write ThroughWrite Through):写操作时,:写操作时,只只把数据写入把数据写入cachecache而而不写入主存,不写入主存,只只当当cachecache数据数据被替换出去被替换出去时,才写回主存。时,才写回主存。 写通写通CacheCache28(2) (2) CacheCache的的读写操作读写操作写操作:写操作:写入方
27、法写入方法/ /写策略写策略:写通法写通法写回法写回法主存和主存和CacheCache一致一致主存和主存和CacheCache不一致不一致“写写”时间时间长长短(访问短(访问CacheCache时间)时间)读操读操作时作时若读若读CacheCache失效,且失效,且CacheCache满,不需对主存的写操作满,不需对主存的写操作若读若读CacheCache失效,且失效,且CacheCache满,需要对主存写操作满,需要对主存写操作更新更新策略策略简单简单复杂复杂练习练习29Cache常用的写回策略有写直达法和写回法。当采用写回法时,常用的写回策略有写直达法和写回法。当采用写回法时,一个一个Ca
28、che数据块在数据块在( )时写回主存。时写回主存。A任何一次写操作数时任何一次写操作数时B第一次写操作数时第一次写操作数时C数据块被换出时数据块被换出时D以上都有可能以上都有可能正确答案正确答案:C解析:解析:写直达法写直达法指写操作数时既写入指写操作数时既写入Cache又写入主存;又写入主存; 写回法写回法指写操作数时写入指写操作数时写入Cache而不写入主存,仅当而不写入主存,仅当数据被替换出数据被替换出Cache时才写回主存。时才写回主存。30(3 3) CacheCache的分类的分类统一统一CacheCache:如果一个存储系统中如果一个存储系统中指令预取指令预取时使用的时使用的c
29、achecache和和数数据读写据读写时使用的时使用的cachecache是是用一个用一个cachecache,则则称系统使用统一的称系统使用统一的cachecache。独立的数据独立的数据/ /程序程序CacheCache:如果一个存储系统中指令预取时使用如果一个存储系统中指令预取时使用的的cachecache和数据读写时使用的和数据读写时使用的cachecache是是各自独立的各自独立的,则则称系统使称系统使用了独立的用了独立的cachecache。 其中,用于指令预取的其中,用于指令预取的cachecache称为称为指令指令cachecache(I-CacheI-Cache),用于数据读
30、写的用于数据读写的cachecache称为称为数据数据cachecache(D-CacheD-Cache)。31统一统一CacheCachel数据和指令共用一个数据和指令共用一个cachecache,如,如ARM710TARM710T。寄存器寄存器 处理器处理器Cache指令的拷贝指令的拷贝数据的拷贝数据的拷贝存储器存储器指令指令数据数据地址地址指令和数据指令和数据地址地址指令和数据指令和数据FF.FF00.0032独立独立CacheCache数据和指令分离数据和指令分离cachecache,如,如ARM920TARM920T。 Cache指令指令的拷贝的拷贝 处理器处理器 Cache寄存器寄
31、存器数据数据的拷贝的拷贝 存储器存储器 指令指令数据数据FF.FF00.00地址地址地址地址指令指令数据数据地址地址数据数据指令指令地址地址33(3 3) CacheCache的分类的分类写回写回CacheCache:写操作时,数据写操作时,数据既既写入写入CacheCache,又又写入主存。写入主存。写通写通CacheCache:写操作时,写操作时,只只把数据写入把数据写入cachecache而不写入主存,而不写入主存,只只当当cachecache数据数据被替换出去被替换出去时,才写回主存。时,才写回主存。前提:写前提:写Cache命中命中34(3) (3) 高速缓存高速缓存CacheCac
32、he的分类的分类读操作分配读操作分配cachecache和写操作分配和写操作分配cache:cache:当进行数据写操作时,当进行数据写操作时,可能可能cachecache未命中未命中,这时根据,这时根据cachecache执行的操作不同,将执行的操作不同,将cachecache分为两类:分为两类:在数据读取时,才进行在数据读取时,才进行Cache内容预取。内容预取。读操作分配读操作分配cachecache当进当进行数据行数据写写操作时操作时,如果如果cache未命中未命中,只是简单的将数据,只是简单的将数据写入主存中写入主存中。写操作分配写操作分配cachecache当进行数据当进行数据写写
33、操作时操作时,如果,如果Cache未命中未命中,Cache系统会进行系统会进行Cache内容预内容预取,从主存中将相应的块读取到取,从主存中将相应的块读取到Cache中的相应位置,并执行写中的相应位置,并执行写操作,把操作,把数据写入数据写入Cache。写通写通Cache:数据同时也写入主存;数据同时也写入主存;写回写回Cache:数据在合适的时候写数据在合适的时候写回主存。回主存。35(4 4)地址映像和变换方式地址映像和变换方式l在在CacheCache当中,当中,地址映像地址映像是指把主存地址空间映像到是指把主存地址空间映像到cachecache地址空间。地址空间。l即,即,把存放在主存
34、中的程序或数据按照某种把存放在主存中的程序或数据按照某种规则规则装入到装入到cachecache中,并建立主存地址到中,并建立主存地址到cachecache地址之间的地址之间的对应关系对应关系。 对应关系建立,对应关系建立,CacheCache命中;命中; 对应关系未建立,对应关系未建立,CacheCache未命中。未命中。l地址变换地址变换是指当程序或数据是指当程序或数据已经已经装入到装入到cachecache后,在实际运后,在实际运行过程当中,把主存地址如何变成行过程当中,把主存地址如何变成cachecache地址。地址。36三三种映象方式种映象方式l常用的地址映像和变换方式有:全相联地址
35、映常用的地址映像和变换方式有:全相联地址映像和变换、组相联地址映像和变换、直接映像像和变换、组相联地址映像和变换、直接映像和变换。和变换。 直接直接映象与变换映象与变换 组相联组相联映像与变换映像与变换 全相联全相联映象与变换映象与变换 l地址映像机制地址映像机制()CMAf A37直接映象与变换直接映象与变换 字块字块2m1 字块字块2c+1 字块字块2c+11 字块字块2c +1 字块字块2c 字块字块2c1 字块字块1 字块字块0主存储体主存储体 字块字块 1 标记标记 字块字块 0 标记标记字块字块 2c1标记标记Cache存储体存储体t位位012c1 字块字块Cache字块地址字块地
36、址 主存字主存字 块标记块标记t 位位c 位位b 位位主存地址主存地址 比较器(比较器(t位)位)= 不命中不命中有效位有效位=1?*m位位内地址内地址否否是是 命中命中(对应关系建立对应关系建立)区区0区区1Cache:字块:字块0 主存:字块主存:字块0、2C、2C+1、2C+2 Cache:字块:字块1 主存:主存:1、2C+1、2C+1+1、 2C+2 +1主存主存根据根据Cache的大小分成若干分区的大小分成若干分区;Cache分成若干个相等的块分成若干个相等的块;主存的每个分区也分成与主存的每个分区也分成与Cache相等的块。相等的块。38直接映象与变换直接映象与变换优点:优点:硬
37、件简单,成本低;硬件简单,成本低;地址变换简单,访问速地址变换简单,访问速度快。度快。缺点:缺点:不灵活;不灵活;出现大量空闲快,利用出现大量空闲快,利用率不高;率不高;块的冲突率较高。块的冲突率较高。 主存的每个主存的每个分区分区分成与分成与Cache相等的块相等的块,编号编号一致的,可一致的,可以相互映像;以相互映像; 每个每个缓存块缓存块,对应若干个主存块;,对应若干个主存块; 每个每个主存块主存块只能固定地对应某个缓存块。只能固定地对应某个缓存块。39全相联映象与变换全相联映象与变换字块字块2m1字块字块2c1字块字块1 字块字块0字块字块2c1字块字块1字块字块0标记标记标记标记标记
38、标记主存字块标记主存字块标记 字块内地址字块内地址主存地址主存地址m = t + c 位位b位位m = t+cCache 存储器存储器主存储器主存储器区区040全相联映象与变换全相联映象与变换优点:优点:访问灵活,命中率高;访问灵活,命中率高;空间利用率高;空间利用率高;冲突概率低。冲突概率低。缺点:缺点:硬件电路复杂,成本硬件电路复杂,成本高。高。(判断是否建立对应判断是否建立对应关系时关系时)硬件电路地址变换复硬件电路地址变换复杂,速度相对慢。杂,速度相对慢。 将主存与将主存与Cache划分成若干个大小相等的块划分成若干个大小相等的块; 主存主存中每一字块都可以映射到中每一字块都可以映射到
39、Cache中的任意一块中的任意一块; Cache的某一块可以和的某一块可以和任一主存块任一主存块建立映像关系建立映像关系。41组相联映像与变换组相联映像与变换字块字块2m1字块字块2c-r+1 字块字块2c-r + 1 字块字块2c-r字块字块2c-r 字块字块1 字块字块0 字块字块 3标记标记 字块字块 1标记标记字块字块 2c1标记标记 字块字块 2标记标记 字块字块 0标记标记字块字块 2c2标记标记 字块内地址字块内地址组地址组地址主存字块标记主存字块标记b 位位组组012c-r1主存地址主存地址Cache主存储器主存储器m 位位共共 Q 组组,每组内,每组内两块两块(r = 1)1
40、区区0区区142组相联映像与变换组相联映像与变换特点:特点:结合直接映像和全相联结合直接映像和全相联映像的优点;映像的优点;比直接映射速度慢一些;比直接映射速度慢一些;命中率与全相联映像接命中率与全相联映像接近;近;组内有一定灵活性,如组内有一定灵活性,如果组内行数减少,硬件电果组内行数减少,硬件电路比全相联方式简单些。路比全相联方式简单些。组内块数越多,冲突概率组内块数越多,冲突概率越小,变换越复杂。越小,变换越复杂。 对直接映像和全相联映像的折中;对直接映像和全相联映像的折中; 组间直接映像:组间直接映像:Cache的某组的某组 固定的主存块;固定的主存块; 组内全相联映像:组内全相联映像
41、: Cache组内的若干个字块组内的若干个字块 某主存块某主存块43组相联映像与变换组相联映像与变换n n 路组相联:路组相联:每组中有每组中有n 个块个块(nM/G ), n 称为称为相联度相联度。 相联度越高相联度越高,Cache空间的利用率就越高,空间的利用率就越高, 块冲突概率就越低,命中率也就越高。块冲突概率就越低,命中率也就越高。 全相联全相联直接映象直接映象组相联组相联n (路数路数)G (组数组数)MM111nM1GM44组相联映像方式典型机器的组相联映像方式典型机器的CacheCache分组情况分组情况MnGnM/G 45(5)ARM Cache的替换算法的替换算法最近最少使
42、用最近最少使用 (Least Recently Used, LRU)(Least Recently Used, LRU)将将近期内长久未被访问过的行近期内长久未被访问过的行换出;换出;每行设置一个计数器,每行设置一个计数器,CacheCache每命中一次,命中行的计数器每命中一次,命中行的计数器清零,其它各行计数器清零,其它各行计数器+1+1。当需要替换时,将计数器最大。当需要替换时,将计数器最大的行换出。的行换出。较高的命中率。较高的命中率。随机替换算法随机替换算法通过一个伪随机数发生器产生一个伪随机数,以新块替通过一个伪随机数发生器产生一个伪随机数,以新块替换编号为该伪随机数的换编号为该伪
43、随机数的cachecache块。块。优点:算法简单,易于实现优点:算法简单,易于实现,速度快,速度快。缺点:命中率低,缺点:命中率低,Cache工作效率低工作效率低463 3 ARMARM存储管理单元存储管理单元MMUMMU与其他中低档单片机不同,与其他中低档单片机不同,ARMARM处理器中一般都包含一个处理器中一般都包含一个存储器管理部件存储器管理部件,用于对存储器的管理。,用于对存储器的管理。为了适应不同的嵌入式应用,为了适应不同的嵌入式应用, ARM ARM存储系统的存储系统的体系结构体系结构存存在很多差别。简单的可以使用像在很多差别。简单的可以使用像单片机单片机系统中使用的系统中使用的
44、平板平板式地址映射机制式地址映射机制即可;而一些复杂的系统中则可能包含即可;而一些复杂的系统中则可能包含多多种技术种技术来支持功能强大的存储系统。来支持功能强大的存储系统。473 3 ARMARM存储管理单元存储管理单元MMUMMUlMMU(MMU(存储管理单元存储管理单元, Memory Management Unit), Memory Management Unit)用来支持存储器管理的用来支持存储器管理的硬件单元硬件单元,满足操作系统,满足操作系统内存管理内存管理的的需要。需要。 其其主要功能主要功能包括:支持虚拟包括:支持虚拟/ /物理地址转换;提供不同存储物理地址转换;提供不同存储器
45、地址空间的保护机制。器地址空间的保护机制。 MMU48(1 1) MMUMMU的主要工作的主要工作l在在ARMARM系统中,存储管理单元系统中,存储管理单元MMUMMU主要完成以下工主要完成以下工作:作:虚拟存储空间到物理存储空间的映射。虚拟存储空间到物理存储空间的映射。 在在ARMARM中采用了中采用了页式虚拟存储管理页式虚拟存储管理。它把虚拟地址空。它把虚拟地址空间分成一个个固定大小的块,每一块称为间分成一个个固定大小的块,每一块称为一页一页,把物理内,把物理内存的地址空间也分成同样大小的存的地址空间也分成同样大小的页页。MMUMMU实现的就是从虚实现的就是从虚拟地址到物理地址的转换。拟地
46、址到物理地址的转换。存储器访问权限的控制。存储器访问权限的控制。设置虚拟存储空间的缓冲的特性。设置虚拟存储空间的缓冲的特性。49(2 2)地址变换过程中的几个概念)地址变换过程中的几个概念l页表页表ARMARM采用页式存储管理;采用页式存储管理;每一行每一行对应对应虚拟空间的一页虚拟空间的一页,包含的信息:虚页对应的实页,包含的信息:虚页对应的实页的的地址地址、该页的访问权限、缓冲特性等;、该页的访问权限、缓冲特性等;位于位于内存内存中,中,基地址基地址由由CP15CP15的的C2C2寄存器提供。寄存器提供。l快表快表TLBTLB小容量(小容量(816816字)、高速度(与字)、高速度(与CP
47、UCPU中寄存器相当);中寄存器相当);是位于内存中的是位于内存中的页表的页表的cachecache,存放当前访问需要的,存放当前访问需要的地址变换地址变换行行;当页表内容改变或使用新页表时,要当页表内容改变或使用新页表时,要清除清除TLBTLBC8C8寄存器;寄存器;锁定锁定TLBTLB中某些地址变换行中某些地址变换行C10C10寄存器。寄存器。50(3) (3) ARMARM存储管理单元存储管理单元MMUMMU系统控制协处理系统控制协处理CP15CP15的功能的功能u用于处理、控制用于处理、控制ARMARM的特殊性能的特殊性能u片上存储器管理单元片上存储器管理单元(MMU)(MMU)u指令
48、、数据缓存指令、数据缓存u写缓冲器写缓冲器 51(3) (3) ARMARM存储管理单元存储管理单元MMUMMU 为控制这些特性,为控制这些特性, CP15 CP15提供了提供了16 16 个额外寄存器个额外寄存器, ,其中其中8 8个与个与MMUMMU相关相关 寄存器寄存器 作作 用用 寄存器寄存器C1C1中的某些位中的某些位用于配置用于配置MMUMMU中的一些操作中的一些操作 寄存器寄存器C2C2保存内存中页表的基地址保存内存中页表的基地址 寄存器寄存器C3C3设置域(设置域(domaindomain)的访问控制属)的访问控制属性性 寄存器寄存器C4C4保留保留 寄存器寄存器C5C5内存访
49、问失效状态指示内存访问失效状态指示 寄存器寄存器C6C6内存访问失效时失效的地址内存访问失效时失效的地址 寄存器寄存器C8C8控制与清除控制与清除TLBTLB内容相关操作内容相关操作 寄存器寄存器C10C10控制与锁定控制与锁定TLBTLB内容相关操作内容相关操作52(4) (4) MMUMMU的存储访问过程的存储访问过程lCP15CP15的寄存器的寄存器C1C1的位的位00用于控制禁止用于控制禁止/ /使能使能MMUMMU当当CP15CP15的寄存器的寄存器C10=0C10=0时,禁止时,禁止MMUMMU;当当C10=1C10=1时,使能时,使能MMUMMU。l访问访问CP15CP15寄存器
50、的指令有如下两条:寄存器的指令有如下两条:MRCMRCCoprocessor Register - RegisterCoprocessor Register - RegisterMCRMCRRegister - Coprocessor RegisterRegister - Coprocessor Register注意:注意:这两条指令只能在这两条指令只能在系系统模式统模式下执行;在用户模式下执行;在用户模式下执行该指令将引起异常。下执行该指令将引起异常。53使能使能MMUMMU时时,访问存储器,访问存储器过程过程 :l芯片设置为芯片设置为MMUMMU使能使能( (设置设置CP15CP15的寄存
51、器的寄存器C10=1C10=1) )l根据根据ARMARM输出的输出的虚拟地址虚拟地址在在TLBTLB中搜索中搜索:如果如果在在TLBTLB中中,变换成物理地址,访问内存。,变换成物理地址,访问内存。如果该虚拟地址对应的地址变换条目如果该虚拟地址对应的地址变换条目不在不在TLBTLB中中,CPUCPU从位于从位于内存内存中的中的页表页表中查询中查询该虚拟地址的变换行,虚页变实页,访该虚拟地址的变换行,虚页变实页,访问存储器。问存储器。 0 x0800 0 x0400虚拟地址高虚拟地址高位逻辑页号位逻辑页号物理地址高物理地址高位物理页号位物理页号虚拟地址虚拟地址物理地址物理地址0 x0800 0
52、0e30 x0400 00e3 (4) (4) MMUMMU的存储访问过程的存储访问过程并把相应的结果添加到并把相应的结果添加到TLB中。中。如果如果TLB已经满已经满了,则了,则需要根据一定的替换算需要根据一定的替换算法进行替换。法进行替换。54(4 4) ARMARM存储器存储访问过程存储器存储访问过程MMUMMU存储访问示意图如下存储访问示意图如下(允许(允许CacheCache)111.11.21.222333355(4 4) ARMARM存储器存储访问过程存储器存储访问过程l当得到了需要的地址变换条目后,将进行以下的操作:当得到了需要的地址变换条目后,将进行以下的操作:虚拟地址虚拟地
53、址物理地址物理地址。根据存储权限控制位和域访问控制位根据存储权限控制位和域访问控制位,确定确定该内存访问是该内存访问是否被允许否被允许。若不被若不被允许,允许,CP15CP15向向ARMARM处理器报告存储访问处理器报告存储访问中止。中止。根据条目中根据条目中C C(cachablecachable)和)和B B(BufferableBufferable)控制位)控制位,决决定定是否缓存该内存访问的结果是否缓存该内存访问的结果。(若系统没有(若系统没有cachecache和写和写缓冲,忽略此位)缓冲,忽略此位)对于对于不允许缓存不允许缓存的存的存储访问储访问 (没有(没有cache的系统)的系
54、统),使用步骤,使用步骤中中得到的物理地址得到的物理地址访问内存访问内存。对于对于允许缓存允许缓存的存储访问的存储访问(有(有cache的系统)的系统),如果,如果cache未未命中命中,则使,则使用步骤中得到的物理地址访问内用步骤中得到的物理地址访问内存,并把该块数据存,并把该块数据置入置入cache中。中。56(4 4) ARMARM存储器存储访问过程存储器存储访问过程 禁止禁止MMUMMU时存储访问过程时存储访问过程先要确定芯片是否支持先要确定芯片是否支持cachecache和和write buffer write buffer 如果芯片禁止如果芯片禁止cachecache和和write
55、 bufferwrite buffer: 存储访问将存储访问将不考虑不考虑C C和和B B控制位控制位; 以以ARMARM处理器处理器输出的地址输出的地址作为物理地址访问存储器作为物理地址访问存储器 ARM ARM处理处理器器不经不经cachecache和和write bufferwrite buffer与主存交换数据。与主存交换数据。57(4 4) ARMARM存储器存储访问过程存储器存储访问过程 如果芯片禁止如果芯片禁止MMUMMU时时,可以,可以使能使能cachecache和和write bufferwrite buffer:l 根据根据C C、B B控制位控制位,决定是否高速缓存本次访
56、问的结果;,决定是否高速缓存本次访问的结果;l ARM ARM处理器处理器输出的地址输出的地址作为物理地址访问存储器作为物理地址访问存储器;l ARM ARM存储器存储器经经cachecache和和write bufferwrite buffer,与主存交换数据。,与主存交换数据。 如果使用如果使用统一的统一的TLBTLB,置,置 C=0,B=0 C=0,B=0;若使用若使用分开的分开的TLBTLB,则数据访问时,置,则数据访问时,置C=0,B=0C=0,B=0;指令读取;指令读取时,置时,置C=1C=1(指令(指令cachecache只读,不必写缓冲)只读,不必写缓冲)注意:注意:所有的所有
57、的物理地址和虚拟地址相等物理地址和虚拟地址相等,即使用,即使用平板存储模式平板存储模式,存储访问不进行权限控制,存储访问不进行权限控制,MMUMMU也不会产生存储访问中止也不会产生存储访问中止信号。信号。 58(5 5)MMUMMU中的地址变换过程中的地址变换过程lARMARM系统中虚拟存储空间到物理存储空间的映射都是系统中虚拟存储空间到物理存储空间的映射都是以以内存块内存块为单位进行的。即虚拟存储空间中为单位进行的。即虚拟存储空间中一块连续一块连续的的存储空间被存储空间被映射映射到物理存储空间中到物理存储空间中同样大小的一块同样大小的一块连续连续存储空间。存储空间。l在页表和在页表和TLBT
58、LB中,每一个地址变换条目实际上记录了中,每一个地址变换条目实际上记录了一个虚拟存储空间的存储块的一个虚拟存储空间的存储块的基地址基地址与物理存储空间与物理存储空间相应的一个存储块的相应的一个存储块的基地址基地址的的对应关系对应关系。根据存储块。根据存储块大小,可以有多种大小,可以有多种地址变换地址变换. .59(5 5)MMUMMU中的地址变换过程中的地址变换过程lARMARM支持的存储块支持的存储块 :l段(段(sectionsection):由):由1MB 1MB 的存储器块构成的存储器块构成l大页(大页(large pagelarge page):由):由64KB 64KB 的存储器块
59、构成的存储器块构成l小页(小页(small pagesmall page):由):由4KB 4KB 的存储器块构成的存储器块构成l微页微页/ /极小页极小页(tiny pagetiny page):由):由1KB 1KB 的存储器块构成的存储器块构成60(5 5)MMUMMU中的地址变换过程中的地址变换过程l在在MMUMMU中实现虚拟地址到物理地址的映射是通过中实现虚拟地址到物理地址的映射是通过两级页表两级页表来实现来实现的:的:一级页表一级页表包含有以包含有以段段为单位的为单位的地址变换条目地址变换条目以及以及指向二级页表的指针指向二级页表的指针实现的地址映射实现的地址映射粒度较大粒度较大。
60、以以段段为单位的地址变换过程为单位的地址变换过程只需要只需要一级页表。一级页表。二级页表二级页表包含有以包含有以大页和小页大页和小页为单位的为单位的地址变换条目地址变换条目。有一种类型的二级页表还包含有以有一种类型的二级页表还包含有以极小页极小页为单位的地址变换条目。为单位的地址变换条目。以以页页为单位的地址变换过程为单位的地址变换过程需要需要二级页表。二级页表。61一级页表的地址变换过程一级页表的地址变换过程页表的基地址页表的基地址为为0页表内序号页表内序号页表的基地址页表的基地址页表内序号页表内序号00cp15的寄存器的寄存器C23120 1903114 132 1 0CP15CP15的寄
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 全方位医疗道德责任精确化的数据处理
- 中学线上教学工作总结模版
- AI技术在医学研究中的应用及挑战探讨
- 医疗纠纷解决中的法律责任与策略
- 医疗健康产业链与京味文化的结合点分析
- 办公效率提升的人工智能技术探索与应用实践案例分享
- ktv合伙投资合同范例
- 医疗物资供应链的稳定与安全管理探索
- 乡村振兴规划合同范例
- 区块链技术引领教育管理革新
- 2025年浙江台州市黄岩永宁公园服务有限公司招聘笔试参考题库附带答案详解
- 对话式服务系统架构-深度研究
- 课题开题报告:核心素养导向下初中数学单元整体教学设计的实施策略研究
- 教师形体与礼仪知到智慧树章节测试课后答案2024年秋成都师范学院
- 安全玻璃采光顶施工方案
- 上海市农村房地一体宅基地确权登记工作实施方案
- 《有效处理客户投诉的策略与技巧:课件》
- 供应链管理流程图及说明课件
- 航空企业管理手册范本
- 11 浪花 说课稿-2024-2025学年统编版(2024)语文一年级下册
- 全民健康信息综合管理平台建设方案
评论
0/150
提交评论