微机原理与接口技术 第二章: ARM微处理器硬件结构

Slides:



Advertisements
Similar presentations
第 4 章存储器、存储管理和 高速缓存技术 4.1 存储器和存储部件 4.2 存储器的连接 4.3 微型计算机系统中存储器的体系结构 4.4 Pentium 的虚拟存储机制和片内两级存储管理 4.5 高档微机系统中的高速缓存技术 第一次课 第二次课 第三次课.
Advertisements

计算机系统结构 (第9讲).
第3单元 主存管理 第3节 分页存储管理 一页一页的放………… 怎么解决分段带来的碎片问题? 页与页框 地址映射 多级页表 快表 举例
2017年3月5日 单片机原理与应用 背景知识调查.
門神 在傳統觀念中,門是居住環境中與外界相通的出入口,具有重要的屏障作用。門神顧名思義就是護宅守門的神仙,每逢過年,上至天子百官下至普通百姓,家家戶戶必在門上張貼門神,以保一家平安。 門神種類主要有宅第大門上將軍武門神、內室門戶上祈福文門神,還有童子門神、仙子門神等,形象豐富多樣,皇家貴戚還往往在畫上瀝粉貼金,十分吉祥喜慶。
第五讲:虚拟存储器(Virtual Memory)
缓存(续).
实验四 利用中规模芯片设计时序电路(二).
SRTP通讯协议的基础知识.
实用操作系统概念 张惠娟 副教授 1.
5.5 减少命中时间 容量小、结构简单的Cache 第五章 存储层次
3.1 虚拟存储器 3.2 内存管理方式 段页机制 3.4 Linux存储管理 3.5 小结 习题
William Stallings 计算机组成与结构(第8版)
2.6 ARM存储器结构 ARM架构的处理器的存储器寻址空间有232=4G字节,该存储空间可以分为可快存/可缓冲(Cacheable /Bufferable)区域和不可快存/不可缓冲区域。 ARM架构的处理器,有的带有指令快存(I-Cache)和数据快存(D-Cache);但是,片内都不带有片内RAM和片内ROM。系统所需的RAM和ROM(包括闪存FLASH)都通过总线处接;故有的片内还带有存储器管理单元MMU(Memory.
Cache综合应用案例 某计算机的主存地址空间大小为256 MB,按字节编址。指令Cache和数据Cache分离,均有8个Cache行,每个Cache行大小为64 B,数据Cache采用直接映射方式。现有两个功能相同的程序A和B,其伪代码如下所示: 程序A: int a[256][256]; …… int.
计算机基础知识 丁家营镇九年制学校 徐中先.
Kvm异步缺页中断 浙江大学计算机体系结构实验室 徐浩.
C H A P T E R 11 体系结构对操作系统的支持.
ARM存储器结构 ARM架构的处理器的存储器寻址空间有4G字节 ,存储空间可以分为 :
Hadoop I/O By ShiChaojie.
第3章 ARM体系结构.
第2章 ARM微处理器硬件结构 计算机体系结构分类 ARM版本及系列 ARM处理器结构 存储系统机制.
带Cache的内核简要介绍.
作業系統 第八章 記憶體管理.
总 复 习.
第四章 内存管理 (lab2).
走进编程 程序的顺序结构(二).
元素替换法 ——行列式按行(列)展开(推论)
第4章 现代微机的存储系统.
Zhao4zhong1 (赵中) C语言指针与汇编语言地址.
Zhao4zhong1 (赵中) C语言指针与汇编语言地址.
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
第2章 ARM微处理器硬件结构 计算机体系结构分类 ARM版本及系列 ARM处理器结构 存储系统机制.
逆向工程-汇编语言
CPU结构和功能.
第2章 ARM微处理器硬件结构 计算机体系结构分类 ARM版本及系列 ARM处理器结构 存储系统机制.
《编译原理与技术》 期末复习 计算机科学与技术学院 郑启龙 李 诚 25/12/2018.
微机原理与接口技术 ——80x86微处理器 西安邮电大学 计算机学院 范琳.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
Unit 11.Operating System 11.1 What’s OS 11.2 Related Courses
《微型计算机原理与接口技术》 第4版 王良 宁德师范学院 吴宁 乔亚男 编著 清华大学出版社 出版
C语言程序设计 主讲教师:陆幼利.
第四章 MCS-51定时器/计数器 一、定时器结构 1.定时器结构框图
本节内容 随机读取 视频提供:昆山爱达人信息技术有限公司.
计算机系统结构(2012年春) ----存储层次: Cache基本概念
Cassandra应用及高性能客户端 董亚军 来自Newegg-NESC.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月13日.
工业机器人知识要点解析 (ABB机器人) 主讲人:王老师
第二章 补充知识 2.1 总线和三态门 一、总线(BUS) 三总线结构 数据总线DB(Data Bus)
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
Web安全基础教程
Windows98虚拟存储技术 (1)Intel80386提供的存储管理方式
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
本节内容 Private Memory 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
定理21.9(可满足性定理)设A是P(Y)的协调子集,则存在P(Y)的解释域U和项解释,使得赋值函数v(A){1}。
段式存储管理(Segmentation)
本节内容 线性地址的管理 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
微机原理与接口技术 ——8086微处理器 西安邮电大学 计算机学院 范琳.
3.1私有内存的分配.
临界区问题的硬件指令解决方案 (Synchronization Hardware)
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
3. 逻辑运算指令 A、简单逻辑操作指令 CLR A. (不影响CY、AC、 OV标志) CPL A
基于列存储的RDF数据管理 朱敏
微机原理与接口技术 西安邮电大学计算机学院 宁晓菊.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
本节内容 进程 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
DSP技术与应用 电子与信息技术系.
学习目标 1、什么是列类型 2、列类型之数值类型.
Presentation transcript:

微机原理与接口技术 第二章: ARM微处理器硬件结构 主讲人:鞠 雷 山东大学 计算机科学与技术学院

虚拟地址 任何时候,计算机上都存在一个程序能够产生的地址集合,我们称之为地址范围。这个范围的大小由CPU的位数决定,例如一个32位的CPU,它的地址范围是0~0xFFFFFFFF (4G)而对于一个64位的CPU,它的地址范围为0~0xFFFFFFFFFFFFFFFF (64T),这个范围就是我们的程序能够产生的地址范围,我们把这个地址范围称为虚拟地址空间,该空间中的某一个地址我们称之为虚拟地址。与虚拟地址空间和虚拟地址相对应的则是物理地址空间和物理地址,大多数时候我们的系统所具备的物理地址空间只是虚拟地址空间的一个子集,这里举一个最简单的例子直观地说明这两者,对于一台内存为256MB的32bit主机来说,它的虚拟地址空间范围是0~0xFFFFFFFF(4G),而物理地址空间范围是0x000000000~0x0FFFFFFF(256MB)。

Virtual memory management

ARM存储管理单元MMU 在ARM系统中,存储管理单元MMU主要完成以下工作: 虚拟存储空间到物理存储空间的映射。 在ARM中采用了页式虚拟存储管理。它把虚拟地址空间分成一个个固定大小的块,每一块称为一页,把物理内存的地址空间也分成同样大小的页。 MMU的核心部件是TLB,若cache未命中而TLB命中,实现从虚拟地址到物理地址的快速转换(通过TLB)。 TLB中包含最近所访问的物理页的地址变换条目(逻辑页号至物理页号)。

协处理CP15 CP15是为cache和MMU提供系统控制的协处理器。 用于控制ARM的特殊性能: 1、存储器访问权限的控制。 ARM支持最多16个域,每个域的访问控制特性都是由CP15中的寄存器C3中的两位来控制的。 访问权限:没有访问特权,客户类型(用户模式,特权模式),保留,管理者权限.(p53 表2-5) 2、设置虚拟存储空间的缓冲的特性(写缓冲器)。 3、MMU的控制(使能/禁止)。 4、指令、数据缓存的控制(使能/禁止)。

协处理CP15 为控制这些特性, CP15提供了16 个额外寄存器,其中8个与MMU相关 禁止、使能MMU、cache和写缓冲 32bit,每2位设置一个域的4种不同访问属性。 00没有访问权限 这时访问该域将产生访问失效 01客户(client) 根据CP15的C1控制寄存器中的R和S位以及页表中地址变换条目中的访问权限控制位AP来确定是否允许各种系统工作模式的存储访问 10保留 使用该值会产生不可预知的结果 11管理者(manager) 不考虑CP15的C1控制寄存器中的R和S位以及页表中地址变换条目中的访问权限控制位AP,在这种情况下不管系统工作在特权模式还是用户模式都不会产生访问失效 为控制这些特性, CP15提供了16 个额外寄存器,其中8个与MMU相关 禁止、使能MMU、cache和写缓冲 寄存器 作 用 寄存器C1中的某些位 用于配置MMU中的一些操作 寄存器C2 保存内存中一级页表的基地址 寄存器C3 设置域(domain)的访问控制属性 寄存器C4 保留 寄存器C5 内存访问失效状态指示 寄存器C6 内存访问失效时失效的地址((虚拟地址)) 寄存器C8 控制与清除TLB内容相关操作 寄存器C10 控制与锁定TLB内容相关操作 引起访问失效的原因。例,地址未对齐,页表访问失效等。 向C8写入控制字,清除TLB的内容。 锁定TLB,进行替换。

协处理CP15 CP15的寄存器C1的位[0]用于控制禁止/使能MMU 访问CP15寄存器的指令有如下两条: MCR Register -> Coprocessor Register MRC Coprocessor Register -> Register 注意:这两条指令只能在系统模式下执行;在用户模式下执行该指令将引起异常。

ARM存储器存储访问过程 使能MMU时存储访问过程 : 芯片设置为MMU使能(设置CP15的C1寄存器) 根据ARM输出的虚拟地址在TLB中搜索,若TLB命中,则由地址变换条目中的物理页号与逻辑地址的低位拼接成物理地址,以此地址访问内存。 如果虚拟地址对应的地址变换条目不在TLB中,CPU从位于内存中的页表中查询,并把相应的结果添加到TLB中。如果TLB已经满了,则需要根据一定的替换算法进行替换。 。 使能MMU时存储访问过程 : 芯片设置为MMU使能(设置CP15的C1寄存器) 对于允许缓存的存储访问(C、B位允许缓存),如果Cache命中,直接操作数据,若Cache未命中,访问TLB。 虚拟地址高位逻辑页号 物理地址高位物理页号 0x0800 0x0400 0x0800 00e3 0x0400 00e3 虚拟地址 物理地址

ARM存储器存储访问过程 当得到了需要的地址变换条目后(TLB命中),将进行以下的操作: ①得到该虚拟地址对应的物理地址。 ②根据条目中C(cachable)控制位和B(Bufferable)控制位决定是否缓存该内存访问的结果(cache填充)。 C、B来自于段(1M)、大页(64K)、小页(4K)、极小页(1K)描述符。 ③根据存储权限控制位和域访问控制位确定该内存访问是否被允许。如果该内存访问不被允许,CP15向ARM处理器报告存储访问中止。 存储权限控制位AP来自于段、大页、小页极小页描述符。 域访问控制位来自于C3寄存器中的某两位。

ARM存储器存储访问过程 允许缓存(cached)的MMU存储访问示意图如下

ARM存储器存储访问过程 禁止MMU时存储访问过程(禁止TLB) ① 如果芯片禁止cache和write buffer(设置cp15寄存器c1实现),则存储访问将不考虑C和B控制位。 arm不经cache和write buffer与主存交换数据。

ARM存储器存储访问过程 ② 如果芯片禁止MMU时使能cache和write buffer 1、 arm经cache和write buffer,与主存交换数据。 2、禁止MMU时,所有的物理地址和虚拟地址相等,即使用平板存储模式。存储访问不进行权限控制,MMU也不会产生存储访问中止信号。

MMU中的地址变换过程 ARM处理器产生的地址称之为虚拟地址,MMU允许把此地址映射到一个主存地址。 逻辑地址 → (一级/二级 页表) → 物理地址 在页表和TLB中,每一个地址变换条目(页表项,逻辑页与物理页)实际上记录了一个虚拟存储空间的存储块的基地址与物理存储空间相应的一个存储块的基地址的对应关系。 根据存储块大小,可以有多种地址变换.

1-Level Page Table 实现简单,但资源浪费严重,管理4KB的内存地址需要4MB的表页

1-Level Page Table Example 实现简单,但资源浪费严重,管理4KB的内存地址需要4MB的表页

2-Level Page Table

2-Level Page Table Example

MMU中的地址变换过程 MMU使能且Cache和TLB均未命中时,ARM的虚拟地址经页表转换成物理地址。 ARM支持的存储块 (物理页): 段(section):由1MB 的存储器块构成 大页(large page):由64KB 的存储器块构成 小页(small page):由4KB 的存储器块构成 极小页(tiny page):由1KB 的存储器块构成. ARM的页表系统由一级页表和二级页表组成。 一级页表含有一级描述符,包括段描述符以及指向二级页表的指针:粗页表描述符和细页表描述符。 二级页表(粗页表/小页和细页表/极小页)含有二级描述符,包括大页、小页和极小页描述符。 在MMU中实现虚拟地址到物理地址的映射是通过两级页表来实现的: 一级页表中包含有以段为单位的地址变换条目以及指向二级页表的指针。一级页表实现的地址映射粒度较大。以段为单位的地址变换过程只需要一级页表。 二级页表中包含有以大页、小页和微页为单位的地址变换条目。以页为单位的地址变换过程需要二级页表。 一级页表 段描述符(段的起始地址及属性) 粗页表描述符(粗页表起始地址及属性) 细页表描述符(细页表起始地址及属性) 。。。 二级页表 大页(64k)描述符(大页的起始地址及属性) 小页描述符(小页起始地址及属性) 极小页描述符(极小页起始地址及属性) 。。。

一级页表的地址变换过程 CP15的寄存器C2中存放的是内存中页表的基地址。其中位[31..14]为内存中页表的基地址,位[13..0]为0。CP15的寄存器C2的位[31..14]和虚拟地址的位[31..20]结合作为一个32位数的高30位,在将该32位数的低两位值为00,从而形成一个32位的索引值。 cp15的寄存器C2 一级页表的基地址 为0 20 19 31 段、粗页表、细页表描述符地址 页表内序号 虚拟地址 31 14 13 2 1 一级页表的基地址 页表内序号 00 地址变换条目的地址 一级描述符的地址

一级描述符 1 无效 粗表 段 细表 一级描述符类型标识 31 20 19 12 11 10 9 8 - 5 4 3 2 1 8 - 5 4 3 2 1 无效 粗粒度二级页表的基地址 0 域 用户定义 1 段基地址 为0 A P 0 域 C B 细粒度二级页表基地址 为0 域 用户定义 AP访问权限控制位.一个域的访问权限取决于段\大页\小页\极小页描述符的AP位、C1寄存器的SR位和C3的域访问控制位。 祥见P53 表2-5 表2-4 粗表 Cache、写缓冲控制位 粗页表含有256项,8bit 段 细表 存储器分为16个域,8-5指定所属的域。 细页表含有1024项,10bit

段描述符 当一级描述符的位[1:0]为0b10时,该一级描述符为段描述符,它的格式和各个字段的含义如下: 一级描述符的类型标识 本段所属域 访问权限控制 C、B控制位 该段对应物理地址的高12位 当前未使用应为0

基于段的地址变换过程 由寄存器C2的高18位和虚拟地址的高12位求得段描述符的物理地址 由段描述符的物理地址求得段描述符 由段描述符中的段基址和虚拟地址的段内偏移量得到内存变量的物理地址,继而由此地址访问内存变量。 内存变量地址

二级描述符 31 16 15 12 1110 9 8 7 6 5 4 3 2 1 0 00 大页基地址(16bit) AP 3 2 1 C B 01 小页基地址(20bit) 10 极小页基地址(22bit) 11 位 说 明 Bit[1:0]: 页描述符类型标识。00无效;01大页;10小页;11极小 页 C、B: 该二级描述符对应的存储空间的cache和Write Buffer 特性控制位。 APx: 访问权限控制位 大页基地址: 该描述符对应的大页存储空间的物理基地址,64KB对齐 小页基地址: 该描述符对应的小页存储空间的物理基地址,4KB对齐 极小页基地 址: 该描述符对应的极小页存储空间的物理基地址,1KB对齐

粗粒度页表描述符 粗粒度页表描述符,指向二级页表粗页表的指针,其二级页表所含地址变换条目所对应的物理页为:4、64k。 当一级描述符的位[1..0]为0b01(0b代表二进制)时,该一级描述符中包含了粗粒度的二级页表的物理地址,这种一级描述符称为粗粒度页表描述符。它的格式和各个字段的含义如下: 10 9 8 5 4 2 1 31 粗粒度二级页表的基地址 域 用户定义 1 一级描述符的类型标识 由用户定义(必须为0) 本段所在的域的标识符 当前未使用应为0 粗粒度二级页表的基地址,该地址是1KB对齐的

粗粒度页表 粗粒度页表描述符获取二级描述符的过程 由寄存器C2的高18位和虚拟地址的高12位求得粗页表描述符的物理地址 4096项 256项 4096项 256项 根据4k页描述符地址得到4k页描述符,然后由4k页描述符中的基址和虚拟地址的页内偏移量得到内存变量的物理地址,继而以此地址访问内存变量。 由粗页表描述符的物理地址得到粗页表描述符 由粗页表描述符中的基址和虚拟地址的二级页表内序号得到4k页描述符的地址。

粗页表和4k页的二级虚实地址转换 31 20 19 12 11 虚地址 第1步 3 2 L1主页表 4095 L2粗页表 255 第2步 5 虚地址 L1偏移值 L2偏移值 页内地址 第1步 3 2 L1主页表 4095 . L2粗页表 255 . 第2步 5 二级描述符物理地址=L2基地址+2 X 4 4 L2页表项 2 3 一级描述符物理地址=基地址+3 X 4 1 2 L2页表基地址 1 12 11 31 C2基地址 物理基址 20bit 页偏移值 物理地址 复制到TLB

细粒度页表描述符(自学) 细粒度页表描述符,指向二级页表细页表的指针,其二级页表所含地址变换条目所对应的物理页为:1k、4k或64k。 当一级描述符的位[1:0]为0b11时,该一级描述符中包含了细粒度的二级页表的物理地址,称为细粒度页表描述符。它的格式和各个字段的含义如下: 一级描述符的类型标识 由用户定义 本段所在的域的标识符 当前未使用应为0 细粒度二级页表的基地址,该地址是4KB对齐的

细粒度页表(自学) 细粒度页表描述符获取二级描述符的过程 由寄存器C2的高18位和虚拟地址的高12位求得细页表描述符的物理地址 根据1k页描述符地址得到1k页描述符,然后由1k页描述符中的基址和虚拟地址的页内偏移量得到内存变量的物理地址,继而以此地址访问内存变量。 由细页表描述符中的基址和虚拟地址的二级页表内序号得到1k页描述符的地址。 。 由细页表描述符的物理地址得到细页表描述符

MMU中的存储访问权限控制 在MMU中,寄存器C1的R、S控制位和页表项中的访问权限控制位AP联合控制存储访问的权限。 A P S R 表2-3 A P S R 特权级时访问权限 用户级时访问权限 0b00 0b01 0b10 0b11 0 0 1 0 0 1 1 1 X X 没有访问特权 只读 不可预知 读/写

I/O对应的存储器映射空间 ARM中往往将I/O操作映射成存储器操作 输入:存储器读操作 输出:存储器写操作 往往不使用cache

Reading Introduction to Embedded Systems – A Cyber-Physical Systems Approach, E. Lee & S. Seshia Chapter 8, page 208 - 226