[理学]第2章 ARM微处理器硬件结构.ppt_第1页
[理学]第2章 ARM微处理器硬件结构.ppt_第2页
[理学]第2章 ARM微处理器硬件结构.ppt_第3页
[理学]第2章 ARM微处理器硬件结构.ppt_第4页
[理学]第2章 ARM微处理器硬件结构.ppt_第5页
已阅读5页,还剩133页未读 继续免费阅读

下载本文档

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

文档简介

第二章 ARM微处理器硬件结构,嵌入式系统原理与接口技术,2,内容提要,ARM 存 储 系 统 机 制,ARM处理器结构和技术特征,计算机体系结构,3,计算机体系结构,计算机中,按内存的组成分两种典型的结构: 1.冯诺依曼结构/普林斯顿结构,4,冯诺依曼体系结构,指令寄存器,控制器,数据通道,输入,输出,中央处理器,存储器,程序,指令0,指令1,指令2,指令3,指令4,数据,数据0,数据1,数据2,结构特点:1、指令和数据存储在相同的内存空间,但存储地址不同。 2、处理器利用相同的总线处理内存中的指令和数据,指令和数据具有相同的数据宽度,指令与数据无法同时存取。,ARM7嵌入式微处理器亦采用此结构,5,哈佛体系结构,指令寄存器,控制器,数据通道,输入,输出,CPU,程序存储器,指令0,指令1,指令2,数据存储器,数据0,数据1,数据2,地址,指令,地址,数据,结构特点: 1、指令存储和数据存储分开,指令和数据分别位于不同的存储空间。 2、指令与数据的存取采用不同总线,取指令和存取数据可同时进行,微处理器具有较高的执行效率。,数字信号处理器DSP通常采用哈佛结构 ,ARM9嵌入式微处理器亦采用此结构。,6,第2章 ARM微处理器硬件结构,1,2,计 算 机 体 系 结 构,ARM处理器结构和技术特征,ARM 存 储 系 统 机 制,3,7,ARM,ARM公司简介ARM是Advanced RISC Machines的缩写,它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC (精简指令集)处理器。 公司的特点是只设计芯片,而不生产。它将技术授权给世界上许多著名的半导体、软件和OEM厂商,并提供服务,8,ARM,ARM公司简介,将技术授权给其它芯片厂商,形成各具特色的ARM芯片,9,ARM Family,ARM7 Family,ARM9 Family,ARM10 Family,ARM11 Family,150DMIPS,300 DMIPS,500 DMIPS,1000 DMIPS,ARM Cortex Family,ARM Architecture,10,ARM处理器的技术优势,低能耗:当初刚刚起步的嵌入式应用对运算性能并不苛求,但对芯片的功耗却相当敏感。而相对同时期的其他解决方案, ARM架构的能效比优势非常明显。 应用方案非常灵活:由于ARM公司只是提供了一个高效精简的核心,各半导体厂商可根据自身需求进行应用设计,架构灵活简便、扩展力很强。如厂商可为多媒体信号处理加入相关的指令集,或为Java相关的应用加入高效执行单元,或增加3D图形协处理器等等。 得到大量的软件支持:包括Windows CE、Symbian和Palm OS在内的手持设备三种主要操作系统系统都是基于ARM架构所设计。目前,ARM已经牢牢占领手机、PDA以及其他的掌上电子产品市场,这些领域都非常注重软件兼容和设计延续性,ARM在这些领域会继续保持优势。,11,ARM处理器的应用,当前主要应用于消费类电子领域; 到目前为止,基于ARM技术的微处理器应用约占据了32位嵌入式微处理器75以上的市场份额 全球80%的GSM/3G手机、99%的CDMA手机以及绝大多数PDA产品均采用ARM体系的嵌入式处理器, “掌上计算”相关的所有领域皆为其所主宰。 ARM技术正在逐步渗入到我们生活的各个方面。,12,ARM处理器内核,微处理器是整个系统的核心,通常由4部分组成:控制部件、算术逻辑部件、寄存器组和内部总线。,13,ARM协处理器接口,ARM为了便于片上系统SOC的设计,ARM处理器内核尽可能精简,要增加系统的功能,可以通过协处理器来实现。协处理器接口可以看作ARM内部总线的扩展,ARM处理器内核能通过协处理器指令对协处理器进行操作。 在逻辑上,ARM可以扩展16个协处理器,每个协处理器可有16个寄存器。,14,15,ARM体系结构版本,各ARM体系结构版本V1 该版本的ARM体系结构,只有26位的寻址空间,没有商业化,其特点为: 基本的数据处理指令(不包括乘法); 字节、字和半字加载/存储指令; 具有分支指令,包括在子程序调用中使用的分支和链接指令; 在操作系统调用中使用的软件中断指令。,16,ARM体系结构版本,各ARM体系结构版本V2 同样为26位寻址空间,现在已经废弃不再使用,它相对V1版本有以下改进: 具有乘法和乘加指令; 支持协处理器; 快速中断模式中的两个以上的分组寄存器; 具有原子性加载/存储指令SWP和SWPB。,17,ARM体系结构版本,各ARM体系结构版本V3 寻址范围扩展到32位(目前已废弃),具有独立的程序: 具有乘法和乘加指令; 支持协处理器; 快速中断模式中具有的两个以上的分组寄存器; 具有原子性加载/存储指令SWP和SWPB。,18,ARM体系结构版本,各ARM体系结构版本V4 不在为了与以前的版本兼容而支持26位体系结构,并明确了哪些指令会引起未定义指令异常发生,它相对V3版本作了以下的改进: 半字加载/存储指令; 字节和半字的加载和符号扩展指令; 具有可以转换到Thumb状态的指令(BX); 增加了用户模式寄存器的新的特权处理器模式。,19,ARM体系结构版本,各ARM体系结构版本V5 在V4版本的基础上,对现在指令的定义进行了必要的修正,对V4版本的体系结构进行了扩展并并增加了指令,具体如下: 改进了ARM/Thumb状态之间的切换效率; E-增强型DSP指令集,包括全部算法操作和16位乘法操作; J-支持新的JAVA,提供字节代码执行的硬件和优化软件加速功能。,20,ARM体系结构版本,各ARM体系结构版本V6 V6版架构是2001年发布的,首先在2002年春季发布的ARM11处理器中使用。此架构在V5版基础上增加了以下功能:改进了ARM/Thumb状态之间的切换效率; THUMBTM:35%代码压缩; DSP扩充:高性能定点DSP功能; JazelleTM:Java性能优化,可提高8倍; Media扩充:音/视频性能优化,可提高4倍。,21,ARM体系结构版本,各ARM体系结构版本V7 ARMv7定义了3种不同的处理器配置(processor profiles): Profile A是面向复杂、基于虚拟内存的OS和应用的 Profile R是针对实时系统的; Profile M是针对低成本应用的优化的微控制器的。 所有ARMv7 profiles实现Thumb-2技术,同时还包括了NEON技术的扩展提高DSP和多媒体处理吞吐量400 ,并提供浮点支持以满足下一代3D图形和游戏以及传统嵌入式控制应用的需要。,22,ARM处理器的分类,结构体系版本(Architecture) ARM v4T ARM v5TE ARM v6 ARM Cortex (v7),Processor Family ARM7 ARM9 ARM10 ARM11 ARM Cortex,23,ARM各系列处理器,ARM公司开发了很多系列的ARM处理器核,目前最新的系列已经是ARM11了,而ARM6核以及更早的系列已经很罕见了。目前应用比较广泛的系列是:,ARM7,ARM9,ARM9E,ARM10,ARM11,SecurCore,Cortex,Xscale,24,ARM7,ARM7微处理器系列 特点: 冯诺伊曼体系结构; ARMTDMI是目前应用最广的微处理器核; ARM720T带有MMU和8KB的指令数据混合cache; ARM7EJ-执行ARMv5TEJ指令,5级流水线,提供Java加速指令,没有存储器保护。,25,26,27,ARM7TDIM部分信号解释,APE(address pipe line enable) ALE(address latch enable) ABE(address bus enable) LOCK(locked operation) MCLK(memory clock input) nWAIT(not wait) ECLK(external clock output) nRESET(not reset) nRW(not read/write) nMREQ(not memory request),28,APE信号,APE(address pipe line enable) 选择地址总线、LOCK、MAS1:0、nRW、nOPC和nTRANS信号是操作在流水线方式(APE为高)还是非流水线方式(APE为低)。,29,ALE信号,ALE(address latch enable) 提供这个信号用以与以前的ARM处理器兼容。 对于新设计,若需要地址重新定义时,ARM公司则推荐使用APE,并将ALE接高。 当该信号为低时,锁存地址总线、LOCK、MAS1:0、nRW、nOPC和nTRANS信号。这可允许这些地址信号在整个存储器访问周期内都有效。 例如,当与ROM接口时,在数据被读出之前地址必须一直有效。,30,ABE信号,ABE(address bus enable) 该引脚信号为高时,地址总线有效。 当它为低时禁止总线驱动,使地址总线进入高阻状态。 也用同样的方法控制LOCK、MAS1:0、nRW、nOPC和nTRANS信号。若系统没有要求,则禁止地址驱动,ABE必须接高。,31,LOCK信号,LOCK(locked operation) 一个受APE、ALE和ABE控制的信号。 LOCK用于向仲裁器指示总线上正在进行原子性(atomic)操作。 当处理器执行一个锁定内存区访问时为高,则表明正在执行SWP和SWPB指令。此信号用来防止控制器允许其它器件访问存储器。 信号值为高表明这些指令执行原子性读写操作,可用于实现信号量。 LOCK通常为低。,32,MCLK信号,MCLK(memory clock input) 所有存储器访问和处理器操作的主时钟。时钟速度可以减慢到以允许访问慢速外设或存储器。另外,nWAIT可与自由运行的MCLK一起使用以获得同样的效果。,33,nWAIT信号,nWAIT(not wait) 当它为低时,处理器将其访问时间延长几个MCLK周期,这对访问低速存储器或外围设备有用。在内部nWAIT与MCLK进行逻辑“与”且必须仅在MCLK为低时改变。当nWAIT不使用时,它必须接高。 相当于x86处理器的Ready信号(输入,高电平)。,34,ECLK信号,ECLK(external clock output) 在正常操作中,它只是可选用nWAIT延展的MCLK,从内核输出。当内核正在被调试时,它是DCLK,由TCLK内部产生。,35,nRESET信号,nRESET(not reset) 用于从已知的地址启动处理器。低电平将引起正在执行的指令非正常中止。这个信号必须保持为低至少达2个时钟周期,同时nWAIT保持为高。 当它为低时,处理器执行内部周期,同时地址从复位处增值。若nRESET保持到超过最大地址界限,则地址溢出为零。当它保持为高至少1个时钟周期时,处理器从地址0重新开始。,36,nRW 信号,nRW(not read/write) 读写控制信号 一个受APE、ALE和ABE控制的信号。 nRW指定传送的方向。nRW为高表明是ARM7TDMI的写周期,nRW为低表明是ARM7TDMI的读周期。S周期的突发传送始终是读突发,或者写突发。在突发传送期间不能改变方向。,37,nMREQ信号,nMREQ(not memory request) 存储器访问请求信号,低电平有效。在接下来的时钟周期,当处理器请求存储器访问时,它为低。,38,ARM7TDMI,ARM7TDMI:整数处理核ARM7TDMI 处理器的可综合版本; ARM720T:带MMU的处理器核心,支持操作系统; ARM7EJ-S:带有DSP和Jazelle TM 技术,能够实现Java加速功能,39,ARM7TDMI,ARM7TDMI 内核,地址,地址,数据读,AMBA 接口,写 缓冲,MMU,数据写,数据,ARM7xxT,控制 逻辑,Cache,AMBA 总线 接口,JTAG 和非 AMBA 信号,CP15,带Cache的ARM7TDMI,ARM710T 8K 统一的 cache 完整的内存管理单元(MMU),支持虚拟地址和存储器保护 写缓冲,ARM720T 同ARM710T,但支持 WinCE ARM740T 8K 统一的 cache 内存管理单元 写缓冲,返回,40,ARM9,ARM9微处理器系列 特点: 基于ARM9TDMI ,带16位的Thumb指令集,增强代码密度最多到35%; 在0.13m工艺下最高性能可达到300MIPS(Dhrystone 2.1测试标准); 集成了数据和指令Chche; 32位AMBA总线接口的MMU支持; 可在0.18m、 0.15m和0.13m工艺的硅芯片上实现。,41,ARM9TDMI,ARM9TDMI,D Cache,I Cache,MMU,GLUE,外部 存储器,ARM940T 2x 4K caches MPU 写缓冲,ARM9xxT,ARM920T 2x 16K caches MMU 支持虚拟地址和内存保护 写缓冲,带Cache的ARM9TDMI,返回,42,ARM9E,ARM9E微处理器系列 特点: ARM9E是针对微控制器、DSP和Java的单处理器解决方案; ARM Jazelle 技术提供 8倍的 Java 加速性能 (ARM926EJ-S) ; 5-级整数流水线; 在0.13m工艺下最高性能可达到300MIPS(Dhrystone 2.1测试标准); 可选择的 向量浮点单元VFP9 协处理器指令优秀海浮点性能,对于3D图形加速和实时控制可达到 215MFLOPS 高性能的AHB总线,带MMU 可在0.18m, 0.15m, 0.13m工艺的硅芯片上实现。,返回,43,ARM10E,ARM10E微处理器系列 特点: 带分支预测的6级整数流水线; 在0.13m工艺下最高性能可达到430MIPS(Dhrystone 2.1测试标准); 对于3D图形运算和实时控制采用VFP协处理器,浮点运算性能最高可达650MFLOPS; 双64位AMBA总线接口和64位内部总路线接口; 优化的缓存结构提高了处理器访问低速存储器的性能; 可在0.18m, 0.15m, 0.13m工艺的硅芯片上实现,返回,44,ARM11,ARM11微处理器系列 特点: 增强的Thumb、Jazelle、DSP扩展支持; 带片上和系统安全TrustZone 技术支持 ; 在0.13m工艺下最高可达到550MHz; MPCore在0.13m工艺下最高性能可达到740MIPS(Dhrystone 2.1测试标准); 支持多媒体指令SIMD; 采用三种电源模式:全速/待命/休眠 集成DMA的TCM 低功耗、高性能,返回,45,ARM处理器工作状态,ARM和Thumb状态 ARM指令系统(V4版以后具有Thumb指令集): 32位ARM指令集:固定的32位指令,Load/Store RISC特征,3地址格式。 16位Thumb指令集:是ARM指令集的子集,按16位指令重新编码,固定的16位指令,Load/Store RISC特征,2地址格式。,注意:两个状态之间的切换并不影响处理器模式或寄存器内容。,46,处理器状态切换,使用BX指令将ARM7TDMI内核的操作状态在ARM状态和Thumb状态之间进行切换 ,程序如下所示。,;从Arm状态切换到Thumb状态 LDR R0,=Lable+1 BX R0 ;从Thumb状态切换到ARM状态 LDR R0,=Lable BX R0,地址最低位为1,表示切换到Thumb状态,地址最低位为0,表示切换到ARM状态,跳转地址标号,47,RISC技术,RISC体系结构基本特点: 大多数指令只需要执行简单和基本的功能,其执行过程在一个机器周期内完成。 只保留加载/存储指令。操作数由加载/存储指令从存储器取出放寄存器内操作。 芯片逻辑不采用或少采用微码技术,而采用硬布线逻辑。 减少指令数和寻址方式。 指令格式固定,指令译码简化。 优化编译。,48,RISC技术,ARM体系结构还采用了一些特别的技术: 所有的指令都可根据前面的执行结果决定是否被执行,提高了指令的执行效率。 可用Load/Store指令批量传输数据,以提高数据的传输效率。 可在一条数据处理指令中同时完成逻辑处理和移位处理。,49,流水线技术,流水线(Pipeline)技术:几个指令可以并行执行 提高了CPU的运行效率 内部信息流要求通畅流动,译码,取指,执行add,译码,取指,执行sub,译码,取指,执行cmp,时间,50,流水线技术,为增加处理器指令流的速度,ARM7 系列使用3级流水线 允许多个操作同时处理,比逐条指令执行要快。 PC指向正被取指的指令,而非正在执行的指令,Fetch,Decode,Execute,从存储器中读取指令,解码指令,寄存器读(从寄存器Bank) 移位及ALU操作 寄存器写(到寄存器Bank ),PC PC,PC - 4 PC-2,PC - 8 PC - 4,ARM Thumb,51,在ARM7的3级流水线结构中流水线易出现阻塞或间断,这必然降低了流水线的效率,为了提高处理器的性能,必然要考虑如何优化处理器的组织结构。 (1)缩短程序执行时间: 提高时钟频率fclk 减少每条指令的平均时钟周期数CPI,流水线技术,Tprog:程序执行时间 Ninst:指令条数 CPI:指令平均时钟周期数 FCLK:时钟频率,52,流水线技术,(2)解决流水线相关: 结构相关 数据相关 控制相关,如果某些指令在流水线中重叠执行时,产生资源冲突,则称该流水线存在结构相关。 解决:资源重复(Cache 分离、ALU中单独的地址计算加法器),写后读”、“写后写” “读后写” 解决:专用通路、流水线互锁技术,当流水线遇到分支指令和其他会改变PC值的指令时,取指取决于指令执行条件,可能需重新取指,致使流水线停顿。 解决:引入延时分支、尽早计算转移成功时的目标地址。,53,流水线技术,超标量(Superscalar)执行:超标量CPU采用多条流水线结构,执行1,取指,指令,译码2,译码1,执行2,执行1,取指,译码2,译码1,执行2,流水线1,流水线2,数据回写,54,流水线技术,注意: 超标量处理器在执行的过程中必须动态地检查指令相关性,判断当前的指令组合是否能同时执行; 如果代码中有分支指令,我们必须将分支被执行和分支不被执行这两种情况分开考虑,计算执行时间几乎是不可能的;,55,流水线技术,ARM各个系列的流水线:,56,第2章 ARM微处理器硬件结构,1,2,计 算 机 体 系 结 构,ARM处理器结构和技术特征,ARM 存 储 系 统 机 制,3,57,存储器的存储体系,单体单字存储器 单体多字存储器 多体单字交叉存取存储器 多体多字交叉存取存储器,一般把这些能并行读出多个CPU字的单体多字和多体单字及多体多字的交叉存取系统,统称为并行主存系统。,58,单体单字存储器,单体单字存贮器 存贮器字长W与CPU字长W相同,一次访问一个存贮器字,主存最大频宽BM =W/TM 存贮周期TM TM是连续启动一个存贮体所需要的时间间隔。 存贮器频宽 是指存贮器可以提供的数据传送率,一般用每秒钟所传送的信息位数来衡量。,返回,59,单体多字,2)单体多字 存贮器字长等于m个 CPU字,BM =mW/TM,W位,W位,W位,W位,地址寄存器,单体多字(m=4)存贮器,W位,单字长寄存器,单体指只有一套地址寄存器和地址译码器 CPU每次访问可同时读出多个存储字。 读出的的数据同时或分时送CPU.,返回,60,多体单字,3)多体单字交叉存取存储器,总线控制,地址寄存器0,地址寄存器1,地址寄存器2,地址寄存器3,M0,M1,M2,M3,主控(主存控制部件),CPU,IOP,多体(m=4)交叉存贮器,返回,61,存储器层次结构,存储层次中,层次结构个部分的特点是: 每位价格从上往下依次减少; 存储容量从上往下依次增加; 存取速度从上往下依次减慢; CPU的访问频度从上往下依次减少。,62,ARM存储器存储层次,ARM存储器采用层次存储结构,其目的在于以低速存储器的价格得到高速存储器的性能。 ARM架构的处理器的存储器寻址空间为4GB,一般系统所需RAM/ROM经总线外接。 存储层次:,寄存器,片上RAM,主存,硬盘,63,ARM存储器存储层次,ARM支持的数据类型 ARM处理器支持以下六种数据类型: 8位有符号和无符号字节。 16位有符号和无符号半字,以2字节的边界对齐。 32位有符号和无符号字,以4字节的边界对齐。,在内部,所有ARM操作都是面向32位的操作数;只有数据传送指令支持较短的字节和半字的数据类型。,当从存储器调入一个字节和半字时,根据指令对数据的操作类型,将其无符号0或有符号“符号位”扩展为32位,进而作为32位数据在内部进行处理。,64,ARM内存储器的组织,大端的数据存放格式,低地址,高地址,地址A,地址A+1,地址A+2,地址A+3,最高有效字节的地址就是该word的地址,最高有效字节位于最低地址,word a=0x f6 73 4b cd,f6,73,4b,cd,65,ARM内存储器的组织,小端的数据格式,低地址,高地址,地址A,地址A+1,地址A+2,地址A+3,最低有效字节的地址就是该word的地址,最低有效字节位于最低地址,word a=0x f6 73 4b cd,f6,73,4b,cd,66,总线接口信号,ARM7TDMI的总线接口信号可以分成如下4类: 时钟和时钟控制信号:MCLK、nWAIT、ECLK、nRESET。 地址类信号:A31:0、nRW、MAS1:0、nOPC、nTRANS、LOCK、TBIT。 存储器请求信号:nMREQ、SEQ。 数据时序信号:D31:0、DIN31:0、DOUT31:0、ABORT、BL3:0。 ARM7TDMI使用MCLK的上升沿和下降沿。 使用nWAIT信号可以延长总线周期。,67,A31:0 信号,A31:0(address) 地址相关信号, 32位地址总线。 当地址总线有效时,用ALE、ABE和APE来控制。 A31:0是指定传送地址的32位地址总线。所有地址是字节地址,因而一个字访问突发导致每个周期地址总线增加4。 地址总线提供4GB的线性寻址空间。 当发出字访问信号时,存储系统忽略低2位A1:0,当发出半字访问信号时,存储系统忽略低位A0。 所有数据值必须在它们固有的边界对准。所有的字必须字对准。,68,MAS1:0 信号,MAS1:0(memory access size) 地址相关信号 用于指示存储系统在读和写周期所要求的数据传送的大小(字节、半字和字)。在存储周期,在MCLK下降沿之前变为有效,并保持有效直到MCLK的上升沿为止。 二进制值00、01和10分别表示字节、半字和字(11保留)。这是一个由APE、ALE和ABE控制的信号。 MAS信号的编码意义参看下表,69,有效地址的决定,ARM7TDMI产生的地址始终是字节地址。尽管如此,存储系统必须忽略地址的低位冗余。有效地址位参见下表:,70,nOPC信号,nOPC(not op-code fetch) 当处理器正在从存储器取指令时,它为低。这是一个由APE、ALE和ABE控制的信号。 nOPC的输出传递有关传送的信息。MMU使用这个信号来判定访问是取操作码还是数据传送。这个信号可与nTRANS一起使用以实现访问许可权方案(access permission scheme)。,71,nTRANS信号,nTRANS(not memory translate) 当处理器在用户模式时,它为低。它可用于通知存储管理系统地址转换的时间,或作为非用户模式活动的标示。这是一个由APE、ALE和ABE控制的信号。 nTRANS为0:用户; nTRANS为1:特权。 nTRANS可由LDRT和STRT指令来适当设置。 nTRANS信号的使用可以避免黑客蓄意给操作系统传送非法指针,然后让操作系统以特权模式访问存储器的可能性。当然它也会被黑客用来让用户应用去访问任意的存储位置(如IO 空间)。,72,TBIT信号,TBIT信号表明处理器的工作状态。 当处理器正在执行Thumb指令集时,TBIT为高; 当处理器正在执行ARM指令集时,它为低。 该信号在BX指令的第1个执行周期的第2相(状态)改变。,73,SEQ信号,SEQ(quential address) 概述:指示顺序地址 当下一个存储器周期的地址与上一次存储器访问的地址紧密相关时,SEQ为高。 在ARM状态,新地址可以是相同的字或下一个字。在Thumb状态,新地址可以是相同的半字或下一个半字。 与低位地址线配合,它可用于指示下一个周期可使用快速存储器模式(例如DRAM页模式),或用于旁路地址转换系统。,74,ABORT信号,ABORT(memory abort) 存储系统使用该信号通知处理器其所请求的访问是不允许的。,75,BL3:0信号,BL3:0(byte latch control) 字节锁存使能信号 当这些信号为高时,数据总线的值在MCLK的下降沿锁存。 对于大多数设计,这些信号必须接高电平。 BL3控制在D31:24上出现的数据的锁存; BL2控制在D23:16上出现的数据的锁存; BL1控制在D15:8上出现的数据的锁存; BL0控制在D7:0上出现的数据的锁存。,76,时序图约定,本页给出的图例适用于后面的各种时序图,77,总线周期,流水型的ARM7TDMI总线接口能够有最长的存储周期时间用于地址译码和响应访问请求。 存储器请求信号比访问用的总线周期提前一个总线周期广播; 地址类信号比访问用的总线周期提前半个时钟周期广播。,78,ARM7TDMI的一个存储周期,高阻抗态,总线变化,79,4种类型的总线周期,ARM7TDMI的总线接口可以实现如下4种不同类型的总线周期: 非顺序周期请求向或从某一地址传送。该地址与前一个周期使用的地址无关。 顺序周期请求向或从某一地址传送。该地址与前一个周期使用的地址相比,或相同,或大1个字或半个字。 内部周期不需要传送,因为它正在执行内部功能,不能同时执行有用的预取。 协处理器寄存器传送周期使用数据总线与协处理器进行通信,但不需要存储系统作任何动作。,80,总线周期类型,81,非顺序周期,非顺序周期是最简单的总线周期,在处理器请求向或从某一地址传送时出现。这个地址与前一周期使用的地址无关。存储控制器必须启动存储器访问来满足这个请求。 组成N周期的地址类和信号(nMREQ和SEQ)在总线上广播。在下一个总线周期结束时,数据在CPU和存储器之间传送。对于非顺序访问,存储系统常需要较长的访问时间(扩展时钟周期)。这为全地址译码提供了时间,或将行和列地址锁存进DRAM。,82,非顺序存储周期信号波形图,00有效指明N周期,即非顺序周期,01有效指明S周期,83,顺序周期,顺序周期用于实现总线上的突发传送。 这一信息可用于优化存储控制器与突发存储器件(如DRAM)接口的设计。 在顺序周期期间,ARM7TDMI请求存储器定位,这可作为顺序突发的一部分。突发传送的第一个周期,地址可与前一个内部周期相同。其它情况下地址是前一个周期的地址增加一个量,即: 对于字访问的突发,地址增加4字节; 对于半字访问的突发,地址增加2字节; 不可能有字节访问的突发。,84,突发传输,突发总是从N周期或合并的IS周期开始,接着是S周期。突发组成相同类型的传送。在突发传送期间,A31:0信号增加,其它地址类信号不受突发影响。 突发中所有的访问具有相同的数据宽度、方向和保护类型。 存储系统顺序访问与非顺序访问相比响应更快,需要更短的访问时间。,85,突发类型,86,顺序访问周期,nMREQ, SEQ信号组合=01 指明S周期,87,内部周期,在内部周期期间,ARM7TDMI不要求存储器访问,因为正在执行内部功能,不能同时执行有用的预取。 只要可能,ARM7TDMI就广播下一次访问的地址以便开始译码,但存储控制器不允许进行存储器访问。,88,内部周期示意图,nMREQ, SEQ信号组合=10 指明I周期,即内部周期,nMREQ, SEQ信号组合=11 指明C周期, 即协处理周期,89,合并的IS周期,ARM7TDMI尽可能实现总线优化以得到额外的时间进行存储器译码。当这种情况发生时,下一个存储周期的地址在内部周期期间就在总线上广播。这时允许存储控制器来进行地址译码,但在这个周期不允许启动存储器访问。 在合并的IS周期,对于同一存储位置,下一个周期是顺序周期。这时进行访问,存储控制器必须启动存储器访问。 参看下面图解,90,合并的IS周期示意图,nMREQ, SEQ信号组合=10 指明I周期,即内部周期,nMREQ, SEQ信号组合=01 指明S周期, 即顺序周期,91,协处理器寄存器传送周期,在协处理器寄存器传送期间,ARM7TDMI使用数据总线向或从协处理器传送数据。 不需要存储周期,存储控制器不启动事务(transaction)。 在协处理器寄存器传送期间,存储系统不允许驱动数据总线。 参看下图,92,协处理器传送周期示意图,93,ARM存储周期时序一览,94,对代码的执行进行统计,95,ADS工具中对四种周期的统计,96,系统总线配置,97,高速缓冲存储器Cache,高速缓存Cache 高速缓冲存储器中存放的是当前使用得最多的程序代码和数据,即主存中部分内容的副本。 在嵌入式系统中Cache全部都集成在嵌入式微处理器内。 可分为数据Cache、指令Cache或混合Cache。 不同的处理器其Cache的大小不一样。 一般32位的嵌入式微处理器都内置Cache。,98,Cache,Cache命中:CPU每次读取主存时,Cache控制器都要检查CPU送出的地址,判断CPU要读取的数据是否在Cache中,如果在就称为命中。 Cache未命中:读取的数据不在Cache中,则对主存储器进行操作,并将有关内容置入Cache。 写入方法: 通写(Write Through):写Cache时,Cache与对应内存内容同步更新。 回写(Write Back):写Cache时,只有写入Cache内容移出时才更新对应内存内容。,99,命中率,100,高速缓存(Cache)的分类,统一Cache:如果一个存储系统中指令预取时使用的cache和数据读写时使用的cache是用一个cache,这是称系统使用统一的cache。 独立的数据/程序Cache:如果一个存储系统中指令预取时使用的cache和数据读写时使用的cache是各自独立的,称系统使用了独立的cache。其中,用于指令预取的cache称为指令cache,用于数据读写的cache称为数据cache。,101,统一Cache,数据和指令共用一个cache,如ARM710T。,寄存器,处理器,Cache,指令的拷贝,数据的拷贝,存储器,指令,数据,地址,指令和数据,地址,指令和数据,FFFF,00.00,102,独立Cache,数据和指令分离cache,如ARM920T。,Cache,指令的拷贝,Cache,Cache,寄存器,数据的拷贝,存储器,指令,数据,FF.FF,00.00,地址,地址,指令,指令,地址,地址,指令,数据,103,高速缓存Cache的分类,读操作分配cache和写操作分配cache:当进行数据写操作时,可能cache未命中,这时根据cache执行的操作不同,将cache分为两类:读操作分配cache和写操作分配cache。 读操作分配cache,当进行数据写操作时,如果cache未命中,只是简单的将数据写入主存中。 写操作分配cache, 当进行数据写操作分配时,如果cache未命中,cache系统将会进行cache内容预取,从主存中将相应的块读取到cache中相应的位置,并执行写操作,把数据写入到cache中。,注意:读操作分配主要在数据读取未命中时,才进行cache内容预取填充。,注意:对于写通类型,数据将会同时被写入主存中;对于写回类型,数据将在合适的时候定回到主存中。,104,Cache,105,cpu,Cache原理,主存,读/写,未命中,数据块,Cache m,主存地址,命中,字,0,2,3,4,0,2,3,4,1,. . . . . .,M,标志区,存储区,主存地址,M,Cache和主存均分为若干个大小相同的数据块,一个块由若干字组成 。 CPU与cache之间的数据交换是以“字”为单位,而cache与主存之间的数据交换是以“块”为单位。,读或写操作时,地址索引机构首先在cache的目录标志区查找其内容与主存物理地址的高位(主存块号M)相同的cache块,若找到则为命中,从而形成cache的块号m。,Cache是按内容存取的相联存储器, 由目录标志区和数据存储器组成。 标志区保存内存数据块的高位地址作为检索项,缓冲区保存内存数据块的若干个字。,根据cache块号m和主存地址的低位(cache的块内地址)访问cache块中的一个字。,106,在cache存储系统中,把主存储器和cache都划分成相同大小的块。主存地址由块号M和块内地址N两部分组成。同样,cache的地址也由块号m和块内地址n组成。工作原理图如图所示:,Cache的工作原理:,106,地址转换,Cache地址R,cache访问过程: 1、虚拟地址存入地址寄存器。,2、地址变换部件进行地址变换,即根据主存块号M检索cache,若找到则为命中,并将M转换成cache块号m存入cache寄存器。,3、以cache寄存器所存地址(块号m,块内地址n)访问cache。,4、若未命中,虚拟地址经地址转换部件(页表)转换成物理地址访问主存。,5、未命中时,若为cache的读操作或写操作分配cache的写操作,则将内存块调入cache。,6、若cache已满,根据替换算法替换某cache块。,标志区,存储区,107,地址映像和变换方式,在Cache当中,地址映像是指把主存地址空间映像到cache地址空间。也就是说,把存放在主存中的程序或数据按照某种规则装入到cache中,并建立主存地址到cache地址之间的对应关系。 地址变换是指当程序或数据已经装入到cache后,在实际运行过程当中,把主存地址如何变成cache地址。,108,四种映象方式,常用的地址映像和变换方式有:全相联地址映像和变换、组相联地址映像和变换、直接映像和变换。 全相联映象与变换 直接映象与变换 组相联映像与变换 段相联映像与变换,109,全相联映象与变换,109,特点: 冲突概率低 空间利用率高 地址变换复杂,全相联映像 主存的任何一个块可以映像到Cache 任何一块. 映像关系: m 和 M无关 ( M 作为检索项保存在 Cache块的标志区),110,直接映象与变换,110,0区,1区,主存分成若干个区,每区 的容量与Cache 的容量相同。 每区分成若干个块,某个块只能 映象到 Cache 的一个特定的块。 映像关系: m = M mod cache块数,特点: 硬件简单 冲突概率高 出现大量空闲块 很少使用。,111,组相联映像与变换,111,映像关系: 主存第M块只能映象到cache的第k 组,但组内映像任意: kM mod(G) (G为Cache的组数),讨论: Cache组数为1时,全相联映像; Cache组内块数为1 ,直接映像; 当主存空间和Cache空间确定时,组内块数多,冲突概率小,变换复杂,组内块数少,冲突概率大,变换简单。,112,段相联映象,减少相联目录表的容量,降低成本,提高地址变换速度。 组间全相联,组内直接映象。,113,ARM Cache的替换算法,轮转法 轮转法维护一个逻辑计数器,利用该计数器依次选择将要被替换出去的cache块。 随机替换算法 通过一个伪随机数发生器产生一个伪随机数,以新块替换编号为该伪随机数的cache块。,算法的优点:算法简单,易于实现。 缺点:命中率低,cache平均性能 不稳定。 Cache的地址变换和 替换全部利用硬件实现.,114,ARM存储管理单元MMU,与其他中低档单片机不同,ARM处理器中一般都包含一个存储器管理部件,用于对存储器的管理。 为了适应不同的嵌入式应用, ARM存储系统的体系结构存在很多差别。简单的可以使用像单片机系统中使用的平板式地址映射机制即可;而一些复杂的系统中则可能包含多种技术来支持功能强大的存储系统。,115,ARM存储管理单元MMU,在ARM系统中,存储管理单元MMU主要完成以下工作: 虚拟存储空间到物理存储空间的映射。在ARM中采用了页式虚拟存储管理。它把虚拟地址空间分成一个个固定大小的块,每一块称为一页,把物理内存的地址空间也分成同样大小的页。MMU实现的就是从虚拟地址到物理地址的转换。 存储器访问权限的控制。 设置虚拟存储空间的缓冲的特性。,116,ARM存储管理单元MMU,系统控制协处理CP15的功能 用于处理、控制ARM的特殊性能 片上存储器管理单元(MMU) 指令、数据缓存 写缓冲器,117,协处理CP15,为控制这些特性, CP15提供了16 个额外寄存器,其中8个与MMU相关,117,禁止、使能MMU、cache和写缓冲,32bit,每2位设置一个域的4种不同访问属性。 00没有访问权限 这时访问该域将产生访问失效 01客户(client) 根据CP15的C1控制寄存器中的R和S位以及页表中地址变换条目中的访问权限控制位AP来确定是否允许各种系统工作模式的存储访问 10保留 使用该值会产生不可预知的结果 11管理者(manager) 不考虑CP15的C1控制寄存器中的R和S位以及页表中地址变换条目中的访问权限控制位AP,在这种情况下不管系统工作在特权模式还是用户模式都不会产生访问失效,引起访问失效的原因。例,地址未对齐,页表访问失效等。,向C8写入控制字,清除TLB的内容。,锁定TLB,进行替换。,118,ARM存储管理单元MMU,CP15的寄存器C1的位0用于控制禁止/使能MMU 当CP15的寄存器C10=0时,禁止MMU; 当C10=1时,使能MMU。 访问CP15寄存器的指令有如下两条: MCR Register - Coprocessor Register MRC Coprocessor Register - Register,注意:这两条指令只能在系统模式下执行;在用户模式下执行该指令将引起异常。,119,ARM存储器存储访问过程,使能MMU时存储访问过程 : 芯片设置为MMU使能(设置CP15的相应寄存器) 根据ARM输出的虚拟地址在TLB中搜索,在这个过程当中,如果该虚拟地址对应的地址变换条目不在TLB中,CPU从位于内存中的页表中查询,注意:对应于该虚拟地址的 地址变换条目,并把 相应的结果添加到 TLB中。如果TLB已 经满了,则需要根据 一定的替换算法进行替换。,虚拟地址高位逻辑页号,物理地址高位物理页号,虚拟地址,物理地址,120,ARM存储器存储访问过程,当得到了需要的地址变换条目后,将进行以下的操作: 得到该虚拟地址对应的物理地址。 根据条目中C(cachable)控制位和B(Bufferable)控制位决定是否缓存该内存访问的结果。 根据存储权限控制位和域访问控制位确定该内存访问是否被允许。如果该内存访问不被允许,CP15向ARM处理器报告存储访问中止。,备注:对于不允许缓存(uncached)的存储访问,使用步骤(1)中得到的物理地址访问内存。对于允许缓存(cached)的存储访问,如果在cache命中,则忽略物理地址;如果cache没有命中,则使用步骤(1)中得到的物理地址访问内存,并把该块数据读取到cache中。,121,ARM存储器存储访问过程,允许缓存(cached)的MMU存储访问示意图如下,122,ARM存储器存储访问过程,禁止MMU时存储访问过程 先要确定芯片是否支持cache和write buffer 如果芯片禁止cache和write buffer(设置cp15寄存器实现),则存储访问将不考虑C和B控制位,以arm处理器输出的地址作为物理地址访问存储器, arm存储器不经cache和write buffer与主存交换数据。,123,ARM存储器存储访问过程, 如果芯片禁止MMU时使能cache和write buffer, arm存储器经cache和write buffer,与主存交换数据。 如果使用统一的TLB,置 C=0,B=0; 若使用分开的TLB,则数据访问时,置C=0,B=0;指令读取时,置C=1(指令cache只读,不必写缓冲) 所有的物理地址和虚拟地址

温馨提示

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

评论

0/150

提交评论