第四章ARM存储与异常中断处理[1]
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2008年6月21日
第四章ARM存储与异常中断处理[1]
TCM在ARMv6处理器核的位 置
• ARMv6处理器包括:ARM1136J-S、 ARM1156T2
2008年6月21日
第四章ARM存储与异常中断处理[1]
Βιβλιοθήκη Baidu
片内TCM存储器举例
• ARM926EJ-S核心内置32KB指令缓存、16KB数 字缓存和8KB数据-TCM和8KB指令-TCM;
◇ software visibility and programmability of TCM size and enable
◇ boot control for ITCM
◇ data access to the ITCM for literal pool accesses in code
◇ simple SRAM-style interface supporting both reads and writes
2008年6月21日
第四章ARM存储与异常中断处理[1]
Cortex-R4F方框图—含TCM接 口
• 注意图的右 侧含有一个 TCM仲裁和 接口模块
2008年6月21日
第四章ARM存储与异常中断处理[1]
ARM1136的TCM支持DMA传 输
• 参看ARM1136的方框图
2008年6月21日
第四章ARM存储与异常中断处理[1]
、紧耦合处理器、写缓存配置之类的存储系统管理工 作由协处理器CP15完成。
• CP15可以包含16个32位寄存器
– 编号为CP0~CP15。 – 实际运用中写为C0~C15。
2008年6月21日
第四章ARM存储与异常中断处理[1]
CP15寄存器的访问
• 用户只能够在特权模式下使用MRC和MCR指令来 访问CP15寄存器。
第四章ARM存储与异常中断处理[1]
4.6.6 保护单元
• 保护单元
– PU,Protection Unit • 也称为:MPU,Memory Protection Unit • 为了消除术语的二义性,我们统一使用术语PU
– 保护单元提供了一个相当简单的替代MMU的方法来 管理存储器。
– 对于不需要PU的嵌入式系统而言,PU简化了硬件和 软件,主要表现在不使用转换表,这样免去了硬件遍 历转换表和软件建立与维护转换表。
interface carries both instructions and data • Embedded Trace Macrocell (ETM) interface
2008年6月21日
第四章ARM存储与异常中断处理[1]
4.6.4 协处理器CP15
• CP15即所谓的系统控制协处理器
– System Control Coprocessor – 在基于ARM的嵌入式系统中,诸如MMU、Cache配置
• 区域的存储边界通过两个属性进行配置:起始地 址和大小。
• 区域的大小可以是4KB~4MB的任何2的乘幂。
2008年6月21日
第四章ARM存储与异常中断处理[1]
受保护区域的属性
• 操作系统可以为受保护区域分配更多的属 性,包括:
– 访问权限、Cache和写缓存器策略 • 访问权限可以是:读/写、只读和不可访问
– 区域可以相互重叠 – 每一个区域有一个优先级,该优先级与分配给区域的
权限无关 – 当区域重叠时,具有最高优先权的区域的属性可以覆
盖其他区域的属性,优先权仅作用于重叠部分的地址 。
– 区域的起始地址必须是其大小的倍数。 – 区域的大小是2的乘幂,2的12次方到32次方。
2008年6月21日
第四章ARM存储与异常中断处理[1]
ARM966E-S核的TCM地址映 射
2008年6月21日
第四章ARM存储与异常中断处理[1]
ARM966E-S的TCM别名地址 空间
• 物理存储块可以 通过TCM接口映 射在片内的TCM 存储区
2008年6月21日
第四章ARM存储与异常中断处理[1]
ARM966E-S的TCM特点
• The ARM966E-S processor supports 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 optimize the memory subsystem for power or speed.
• 除了片上紧耦合存储器外,还有紧耦合存储器接 口,它能够提供低延时的外存储器访问。
• 有的处理器含有分立的指令TCM和数据TCM。 TCM包含在存储器地址映射空间中,可以作为快 速存储器来访问。除了不得包含读敏感地址之外 ,对TCM接口上连接的存储器类型没有其他限制 。TCM使用物理地址,对TCM的写访问受到 MMU内部保护信息的控制。
The ARM966E-S processor contains a TCM controller that:
◇ schedules requests to the TCM interface ◇ handshakes with the ARM966E-S memory
system controller to acknowledge when requests have been serviced ◇ returns TCM read data back to the ARM9E-S
2008年6月21日
第四章ARM存储与异常中断处理[1]
ARM966E-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
• 紧耦合存储器和写缓存均需要编程使能或者硬件 接线使能
• 按照具体应用情况决定片上存储器配置方法
2008年6月21日
第四章ARM存储与异常中断处理[1]
片上存储器用作紧耦合存储器
• 紧耦合存储器的英文原文如下:
– Tightly Coupled Memory,TCM
• 弥补Cache访问的不确定性而增加的片上存储器 。
• 参看下图,抽象成一个呈金字塔型的存储结构 • 注重研究第2层
2008年6月21日
第四章ARM存储与异常中断处理[1]
4.6.3 片上存储器的用法
• 多数ARM处理器芯片内部集成了存储器
– 它们统称为片上存储器
– 用途有:片上Cache、片上SRAM、紧耦合存 储器(TCM) 、写缓存
• 片上存储器的存储空间可以通过指令进行配置, 定义成片上Cache,或者片上SRAM,或者一部 分片上Cache加一部分片上SRAM。
2008年6月21日
第四章ARM存储与异常中断处理[1]
S3C44B0X和S3C4510B的三 种片上存储器的配置用法
• S3C44B0X和S3C4510B都有8KB的片上存储器 – 它们有三种配置用法 • 8KB的SRAM • 8KB的Cache • 4KB的SRAM加上4KB的Cache
• 较多采用片内RAM配置而非片内Cache配置。
第四章ARM存储与异常中断处理[1]
4.6.1 数据类型和存储格式
• ARM存储器中的数据类型有6种
– 有符号数
• 8位(字节)、16位(半字)、32位(字)
– 无符号数
• 8位(字节)、16位(半字)、32位(字)
– 缺省端序设置为小端序
第四章ARM存储与异常中断处理[1]
4.6.2 ARM的存储体系
2008年6月21日
第四章ARM存储与异常中断处理[1]
保护单元的工作原理和作用
• ARM核的PU使用区域(region)来管理系统保护 。区域是一个存储空间相关联的一组属性,处理 器核将这些属性保存在协处理器CP15的一些寄存 器里,并用0-7的号码标识每一个区域(它也是一 个具有特定属性的逻辑存储空间)。
core.
The TCMs are located in the TCM address space.
2008年6月21日
第四章ARM存储与异常中断处理[1]
AT91SAM9261处理器的TCM
• AT91SAM9261的独立指令和数据缓存能支持 WinCE 和 Linux操作系统。
• 而其基于TCM 构架的SRAM区块则是“确定过程 式”实时操作系统的理想安排。
2008年6月21日
第四章ARM存储与异常中断处理[1]
ARM920T的片内存储器
• 注意:ARM920T核的内部没有TCM
2008年6月21日
第四章ARM存储与异常中断处理[1]
ARM720T的片内存储器
• 8 KByte unified cache • Memory Management
Unit (MMU) • write buffer • Unified 32-bit AHB bus
• 另一方面,160K字节的片上SRAM可划分成多个 16K字节的区块,作为“指令TCM”、“数据 TCM”或片上外设的缓冲,从而让编程人员灵活地 优化系统的性能和功耗。
2008年6月21日
第四章ARM存储与异常中断处理[1]
TCM的使能操作
• 通过二种方式进行TCM的使能操作 – 使用处理器芯片的INITRAM引脚 – 使用 CP15的c1控制寄存器
• 如果请求符合区域访问标准,则PU允许内核读/ 写主存;如果存储器请求导致存储器访问违例, 则PU产生一个异常信号。
• 异常信号被传到处理器核,处理器核判断是出异 常是预取指令中止还是数据中止,然后跳转到对 应的异常处理例程。
2008年6月21日
第四章ARM存储与异常中断处理[1]
区域属性
• 有关区域的属性如下:
– 基于处理器模式的权限 • 管理模式、用户模式等
– Cache写策略 • 写直达Cache操作、无Cache操作、无写缓存器操 作。
2008年6月21日
第四章ARM存储与异常中断处理[1]
含PU的ARM处理器主存访问过 程
• 当处理器访问主存的一个区域时,PU比较该区域 的访问权限属性和当时的处理器模式。
2008年6月21日
第四章ARM存储与异常中断处理[1]
4.6.5 存储器管理单元MMU
• ARM的MMU部件的用途:
◇完成虚拟存储空间到物理存储空间的映射。 ◇管理方式:页式虚拟存储器。 ◇页的大小有两种:粗粒度和细粒度。 ◇存储器访问权限的控制。 ◇设置虚拟存储空间的缓冲特性。
2008年6月21日
◇ variable TCM wait state control for ITCM and DTCM
◇ ability to indicate sequential and nonsequential accesses.
2008年6月21日
第四章ARM存储与异常中断处理[1]
ARM966E-S的TCM特点接口( 续2)
访问受保护区域时产生的异常
• 访问所定义区域外的存储器将产生异常。 • 如果是内核预取指令,则PU产生一个预取指令中
止异常。 • 如果是存储器数据请求,则PU产生数据中止异常
。
2008年6月21日
第四章ARM存储与异常中断处理[1]
带PU的ARM核概要
• 以下给出了四种带PU的ARM核概要属性
ARM核
第四章ARM存储与异常 中断处理[1]
2020/11/28
第四章ARM存储与异常中断处理[1]
4.6 ARM存储器组织
• 介绍以下内容:
– 数据类型和存储格式 – ARM的存储体系 – 片上存储器的用法 – 协处理器CP15 – 存储器管理单元MMU – 保护单元 – 快速上下文切换扩展 – 写缓存器(Write Buffer) – ARM的异常中断向量表和异常中断处理与返回
ARM740T
区域 指令区域和数据区 数目 域是否分离
8
否
指令和数据区域配 置是否分离
否
ARM940T
16
是
是
ARM946E-S 8