ARM存储器组织和异常中断习题页_第1页
ARM存储器组织和异常中断习题页_第2页
ARM存储器组织和异常中断习题页_第3页
ARM存储器组织和异常中断习题页_第4页
ARM存储器组织和异常中断习题页_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

1、2008年6月21日南京大学计算机系1嵌入式系统原理与开发嵌入式系统原理与开发第第7讲讲南京大学计算机系 俞建新主讲2008年春季2008年6月21日南京大学计算机系2第第4章章ARM体系结构体系结构l本章主要介绍以下内容:lARM体系结构版本lARM处理器系列lARM流水线lARM工作模式和工作状态lARM寄存器组织lARM存储器组织lARM的异常中断lAMBA和ARM7TDMI2008年6月21日南京大学计算机系34.6 ARM存储器组织存储器组织l介绍以下内容:l数据类型和存储格式lARM的存储体系l片上存储器的用法l协处理器CP15l存储器管理单元MMUl保护单元l快速上下文切换扩展l

2、写缓存器(Write Buffer)lARM的异常中断向量表和异常中断处理与返回2008年6月21日南京大学计算机系44.6.1 数据类型和存储格式数据类型和存储格式lARM存储器中的数据类型有6种l有符号数l8位(字节)、16位(半字)、32位(字)l无符号数l8位(字节)、16位(半字)、32位(字)l缺省端序设置为小端序2008年6月21日南京大学计算机系54.6.2 ARM的存储体系的存储体系l参看下图,抽象成一个呈金字塔型的存储结构l注重研究第2层2008年6月21日南京大学计算机系64.6.3 片上存储器的用法片上存储器的用法l多数ARM处理器芯片内部集成了存储器l它们统称为片上存

3、储器l用途有:片上Cache、片上SRAM、紧耦合存储器(TCM) 、写缓存l片上存储器的存储空间可以通过指令进行配置,定义成片上Cache,或者片上SRAM,或者一部分片上Cache加一部分片上SRAM。l紧耦合存储器和写缓存均需要编程使能或者硬件接线使能l按照具体应用情况决定片上存储器配置方法2008年6月21日南京大学计算机系7片上存储器用作紧耦合存储器片上存储器用作紧耦合存储器l紧耦合存储器的英文原文如下:lTightly Coupled Memory,TCMl弥补Cache访问的不确定性而增加的片上存储器。l除了片上紧耦合存储器外,还有紧耦合存储器接口,它能够提供低延时的外存储器访问

4、。l有的处理器含有分立的指令TCM和数据TCM。TCM包含在存储器地址映射空间中,可以作为快速存储器来访问。除了不得包含读敏感地址之外,对TCM接口上连接的存储器类型没有其他限制。TCM使用物理地址,对TCM的写访问受到MMU内部保护信息的控制。2008年6月21日南京大学计算机系8TCM在在ARMv6处理器核的位置处理器核的位置lARMv6处理器包括:ARM1136J-S、ARM1156T22008年6月21日南京大学计算机系9片内片内TCM存储器举例存储器举例lARM926EJ-S核心内置32KB指令缓存、16KB数字缓存和8KB数据-TCM和8KB指令-TCM;2008年6月21日南京大

5、学计算机系10Cortex-R4F方框图方框图含含TCM接口接口l注意图的右侧含有一个TCM仲裁和接口模块2008年6月21日南京大学计算机系11ARM1136的的TCM支持支持DMA传输传输l参看参看ARM1136的方框图的方框图2008年6月21日南京大学计算机系12ARM966E-S核的核的TCM地址映射地址映射2008年6月21日南京大学计算机系13ARM966E-S的的TCM别名地址空间别名地址空间l物理存储块可以通过TCM接口映射在片内的TCM存储区2008年6月21日南京大学计算机系14ARM966E-S的的TCM特点特点lThe ARM966E-S processor supp

6、orts both instruction and data TCMs. You can use the DTCM and ITCM to store real-time and performance-critical code. The TCMs are instantiated externally to the ARM966E-S macrocell providing for flexibility in the design of the memory subsystem. The system designer can select memory type and optimiz

7、e the memory subsystem for power or speed.2008年6月21日南京大学计算机系15ARM966E-S的的TCM接口特点(续接口特点(续1)The features of the TCM interface include: independent ITCM and DTCM sizes of 0KB or 1KB-64MB in power-of-two increments software visibility and programmability of TCM size and enable boot control for ITCM data

8、 access to the ITCM for literal pool accesses in code simple SRAM-style interface supporting both reads and writes variable TCM wait state control for ITCM and DTCM ability to indicate sequential and nonsequential accesses.2008年6月21日南京大学计算机系16ARM966E-S的的TCM特点接口(续特点接口(续2)The ARM966E-S processor conta

9、ins a TCM controller that: schedules requests to the TCM interface handshakes with the ARM966E-S memory system controller to acknowledgewhen requests have been serviced returns TCM read data back to the ARM9E-S core.The TCMs are located in the TCM address space. 2008年6月21日南京大学计算机系17AT91SAM9261处理器的处理

10、器的TCMlAT91SAM9261的独立指令和数据缓存能支持WinCE 和 Linux操作系统。l而其基于TCM 构架的SRAM区块则是“确定过程式”实时操作系统的理想安排。l另一方面,160K字节的片上SRAM可划分成多个16K字节的区块,作为“指令TCM”、“数据TCM”或片上外设的缓冲,从而让编程人员灵活地优化系统的性能和功耗。2008年6月21日南京大学计算机系18TCM的使能操作的使能操作l通过二种方式进行TCM的使能操作l使用处理器芯片的INITRAM引脚l使用 CP15的c1控制寄存器2008年6月21日南京大学计算机系19S3C44B0X和和S3C4510B的三种片的三种片上存

11、储器的配置用法上存储器的配置用法lS3C44B0X和S3C4510B都有8KB的片上存储器l它们有三种配置用法l8KB的SRAMl8KB的Cachel4KB的SRAM加上4KB的Cachel较多采用片内RAM配置而非片内Cache配置。2008年6月21日南京大学计算机系20ARM920T的片内存储器的片内存储器l注意:ARM920T核的内部没有TCM2008年6月21日南京大学计算机系21ARM720T的片内存储器的片内存储器l8 KByte unified cache lMemory Management Unit (MMU) lwrite buffer lUnified 32-bit A

12、HB bus interface carries both instructions and data lEmbedded Trace Macrocell (ETM) interface 2008年6月21日南京大学计算机系224.6.4 协处理器协处理器CP15lCP15即所谓的系统控制协处理器系统控制协处理器lSystem Control Coprocessorl在基于ARM的嵌入式系统中,诸如MMU、Cache配置、紧耦合处理器、写缓存配置之类的存储系统管理工作由协处理器CP15完成。lCP15可以包含16个32位寄存器l编号为CP0CP15。l实际运用中写为C0C15。2008年6月2

13、1日南京大学计算机系23CP15寄存器的访问寄存器的访问l用户只能够在特权模式下使用MRC和MCR指令来访问CP15寄存器。2008年6月21日南京大学计算机系244.6.5 存储器管理单元存储器管理单元MMUlARM的MMU部件的用途:完成虚拟存储空间到物理存储空间的映射。管理方式:页式虚拟存储器。页的大小有两种:粗粒度和细粒度。存储器访问权限的控制。设置虚拟存储空间的缓冲特性。2008年6月21日南京大学计算机系254.6.6 保护单元保护单元l保护单元lPU,Protection Unitl也称为:MPU,Memory Protection Unitl为了消除术语的二义性,我们统一使用术

14、语PUl保护单元提供了一个相当简单的替代MMU的方法来管理存储器。l对于不需要PU的嵌入式系统而言,PU简化了硬件和软件,主要表现在不使用转换表,这样免去了硬件遍历转换表和软件建立与维护转换表。2008年6月21日南京大学计算机系26保护单元的工作原理和作用保护单元的工作原理和作用lARM核的PU使用区域(region)来管理系统保护。区域是一个存储空间相关联的一组属性,处理器核将这些属性保存在协处理器CP15的一些寄存器里,并用0-7的号码标识每一个区域(它也是一个具有特定属性的逻辑存储空间)。l区域的存储边界通过两个属性进行配置:起始地址和大小。l区域的大小可以是4KB4MB的任何2的乘幂

15、。2008年6月21日南京大学计算机系27受保护区域的属性受保护区域的属性l操作系统可以为受保护区域分配更多的属性,包括:l访问权限、Cache和写缓存器策略l访问权限可以是:读/写、只读和不可访问l基于处理器模式的权限l管理模式、用户模式等lCache写策略l写直达Cache操作、无Cache操作、无写缓存器操作。2008年6月21日南京大学计算机系28含含PU的的ARM处理器主存访问过程处理器主存访问过程l当处理器访问主存的一个区域时,PU比较该区域的访问权限属性和当时的处理器模式。l如果请求符合区域访问标准,则PU允许内核读/写主存;如果存储器请求导致存储器访问违例,则PU产生一个异常信

16、号。l异常信号被传到处理器核,处理器核判断是出异常是预取指令中止还是数据中止,然后跳转到对应的异常处理例程。2008年6月21日南京大学计算机系29区域属性区域属性l有关区域的属性如下:l区域可以相互重叠l每一个区域有一个优先级,该优先级与分配给区域的权限无关l当区域重叠时,具有最高优先权的区域的属性可以覆盖其他区域的属性,优先权仅作用于重叠部分的地址。l区域的起始地址必须是其大小的倍数。l区域的大小是2的乘幂,2的12次方到32次方。2008年6月21日南京大学计算机系30访问受保护区域时产生的异常访问受保护区域时产生的异常l访问所定义区域外的存储器将产生异常。l如果是内核预取指令,则PU产

17、生一个预取指令中止异常。l如果是存储器数据请求,则PU产生数据中止异常。2008年6月21日南京大学计算机系31带带PU的的ARM核概要核概要l以下给出了四种带PU的ARM核概要属性ARM核区域数目指令区域和数据区域是否分离指令和数据区域配置是否分离ARM740T8否否ARM940T16是是ARM946E-S8否是ARM1026EJ-S8否是2008年6月21日南京大学计算机系32在带在带PU的的ARM系统中创建区域系统中创建区域l要实现一个受PU控制主存的嵌入式系统,需要对主存中的不同块定义若干区域。l一个区域可以被创建一次,然后一直用到嵌入式系统运行结束;l也可以临时创建一个区域来满足一个

18、特殊操作的需要,用完之后就加以删除。2008年6月21日南京大学计算机系33含有含有PU的的ARM核核l含有8个受保护区域的ARM核lARM740TlARM946E-SlARM1026EJ-Sl含有16个受保护区域的ARM核lARM940T2008年6月21日南京大学计算机系34初始化初始化PU、Cache和写缓冲器和写缓冲器l为了初始化PU、Cache和写缓冲器,控制系统必须定义在操作目标平台时所需要的保护区域。功能主存储器次存储器系统控制C1C0区域的cache属性C2C0区域的写缓冲器属性C3C0区域的访问权限属性C5C0区域的大小和位置C6C0C72008年6月21日南京大学计算机系3

19、5带保护单元和带保护单元和MMU的系统框图的系统框图2008年6月21日南京大学计算机系364.6.7 ARM处理器的处理器的CachelARM处理器均带有Cache或者可以将片上存储器配置成Cache。当然,在不需要时也可以通过配置操作关闭Cache。lARM处理器的Cache地址映射均采用组相联映射。2008年6月21日南京大学计算机系374.6.8 快速上下文切换扩展快速上下文切换扩展l快速上下文切换扩展lFCSE , Fast Context Switch ExtensionlFCSE是 ARM存储系统的修正机构。它修改系统中不同进程的虚拟地址,避免在进行进程间切换时造成的虚拟地址到物

20、理地址的重映射,从而提高系统的性能。l为了理解ARM处理器的FCSE功能,我们首先考察当虚拟存储器中任务切换时,主存中页表和物理存储器的随动切换。2008年6月21日南京大学计算机系38ARM虚拟存储器虚拟存储器用户任务上下文切换示例用户任务上下文切换示例-1l任务任务1 1正在执行正在执行2008年6月21日南京大学计算机系39ARM虚拟存储器虚拟存储器用户任务上下文切换示例用户任务上下文切换示例-2l任务2正在执行2008年6月21日南京大学计算机系40ARM虚拟存储器虚拟存储器用户任务上下文切换示例用户任务上下文切换示例-3l任务3正在执行2008年6月21日南京大学计算机系413个任务

21、的多任务环境中个任务的多任务环境中快速上下文切换扩展的举例:快速上下文切换扩展的举例:l切换前任务切换前任务1正在运行正在运行2008年6月21日南京大学计算机系423个任务的多任务环境中个任务的多任务环境中快速上下文切换扩展的举例:(续)快速上下文切换扩展的举例:(续)l切换后任务切换后任务2正在运行正在运行2008年6月21日南京大学计算机系434.6.9 写缓存器写缓存器(Write Buffer)l写缓存器是一个容量很小的片内的先进先出(FIFO)存储器,位于处理器核与主存之间。l写缓存器的主要用途是:当CPU输出数据时,总总线线恰好被占用而无法输出,此时,CPU可以把输出数据写入到写

22、缓存器。当总线上没有比写缓存区优先级更高的掌控者时,写缓存区可以通过总线将数据写入内存。l CPU由于不需要等待写操作的完成而增强了性能。l写缓存区中的FIFO存储器在存储层次中与L1 Cache处于相同的层次。2008年6月21日南京大学计算机系44S3C44B0X处理器的写缓存区处理器的写缓存区l由4个写缓存寄存器构成。每一个写缓存寄存器包括一个32位数据字段,一个28位地址字段和一个2位状态字段。l可以通过指令对控制寄存器SYSCFG的WE位置1或者置0来使能或者禁能写缓存器。参看下图。2008年6月21日南京大学计算机系454.7 ARM的异常中断的异常中断lARM异常与中断不做严格意

23、义上的区别lARM的中断向量表内存放的是响应异常和中断的转移指令而不是中断向量地址。l在ARM处理器中,当异常发生时,完成当前指令后跳转到相应的异常中断处理程序入口执行异常中断处理。异常处理完毕后返回原来的程序断点继续执行原来的程序。2008年6月21日南京大学计算机系46异常中断分类异常中断分类lARM异常按照起因的不同分为3类:指令执行引起的直接异常l软件中断、未定义指令和预取指令中止属于这一类指令执行引起的间接异常l数据中止(在读取和存储数据时的存储器故障)属于这一类。外部产生的与指令流无关的异常l复位、IRQ和FIQ属于这一类。2008年6月21日南京大学计算机系47ARM中断向量表中

24、断向量表l中断向量表中存放了各个异常中断以及处理程序的对应关系。l在ARM体系结构中,异常中断向量表的大小只有32个字节。其中,每个异常中断向量占4个字节。系统初始化时,中断向量表从0号存储单元开始存放。 2008年6月21日南京大学计算机系48ARM中断向量表(续)中断向量表(续)中断向量地址异常中断类型异常中断模式优先级(6级最低)0 x0复位管理模式,SVC10 x4未定义指令未定义指令中止,UND60 x8软件中断管理模式,SVC60 xC指令预取中止中止模式,ABT50 x10数据访问中止中止模式,ABT20 x14保留未使用未使用0 x18外部中断请求,IRQ外部中断模式,IRQ4

25、0 x1C快速中断请求,FIQ快速中断模式,FIQ32008年6月21日南京大学计算机系49ARM异常中断响应异常中断响应l当发生异常时,ARM处理器对异常中断的响应过程如下:将CPSR的内容保存到将要执行的异常中断模式的SPSR中。例如:如果异常类型是FIQ,则SPSR_FIQ=CPSR设置当前程序状态寄存器CPSR中的模式字段位。将异常发生时程序的下一条指令地址保存到新的异常模式的R14寄存器。注意:异常发生时异常模式R14的定义是PC-4。2008年6月21日南京大学计算机系50ARM异常中断响应异常中断响应强制对程序计数器赋值。使程序从异常所对应的向量地址开始执行中断服务子程序。ARM

26、处理器对异常的响应过程可用伪代码描述如下:R14_=return linkSPSR_=CPSRCPSR4:0=exception mode numberCPSR5=0 /* 当运行于ARM状态时 */if = Reset or FIQ thenCPSR6=1 /* 禁止新的FIQ中断 */CPSR7=1 /* 禁止新的IRQ中断 */PC = exception vector address2008年6月21日南京大学计算机系51响应异常处理时的断点地址计算响应异常处理时的断点地址计算 中断向量号异常类型异常类型PC是否已被更新LR寄存器值返回地址返回时LR值传送返回到PC前调整复位SVC清零

27、清零不返回未定义指令UND未更新X+4X+4不需要软件中断SWISVC未更新X+4X+4不需要指令预取中止ABT未更新X+4XLR-4数据访问中止ABT已经更新X+8XLR-8保留外部中断请求,IRQ已经更新X+8X+4LR-4快速中断请求,FIQ已经更新X+8X+4LR-42008年6月21日南京大学计算机系52IRQ、FIQ和ABT异常中断处理程序的返回l发生IRQ或者FIQ异常中断时,指令已经执行完毕,PC指向当前指令后面的第3条指令。因此IRQ或者FIQ的异常中断发生时,处理器将程序计数器的计算值(PC-4)保存到LR_IRQ或者LR_FIQ寄存器中。这时LR_IRQ或者LR_FIQ寄存器的值指向当前指令后的第2条指令。参看下面幻灯片的图解。2008年6月21日南京大学计算机系53IRQ、FIQ和ABT异常中断处理程序的返回(续1)l在指令预取时如果目标地址是非法的,该指令将被标记成有问题的指令,处理器产生指令预取ABT异常。此刻PC的值还没有更新,它指向当前指令后的第2条指令。指令预取ABT异常中断

温馨提示

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

评论

0/150

提交评论