57
1 第第第 ARM 第第第第第第第第 本本本本本本 本本本 本本本本本 ARM 本本本本本 ARM 本本本本本 本本本 本本

第二章 ARM 微处理器硬件结构

  • Upload
    italia

  • View
    180

  • Download
    8

Embed Size (px)

DESCRIPTION

第二章 ARM 微处理器硬件结构. 本章主要内容: 计算机体系结构分类 ARM 版本及系列 ARM 处理器结构 存储系统机制. 计算机体系结构Ⅰ. 1.冯 · 诺依曼结构. 计算机体系结构Ⅱ. 2. 哈佛体系结构. ARM 简介. ARM(Advanced RISC Machines) 系列微处理器,采用的 ARM 技术知识产权( IP ) 核都是由 ARM 公司提供的。 ARM 公司本身不生产芯片,转让设计许可,由合作公司生产各具特色的芯片。 - PowerPoint PPT Presentation

Citation preview

Page 1: 第二章  ARM 微处理器硬件结构

1

第二章 ARM 微处理器硬件结构 本章主要内容: 计算机体系结构分类 ARM 版本及系列 ARM 处理器结构 存储系统机制

Page 2: 第二章  ARM 微处理器硬件结构

2

计算机体系结构Ⅰ1. 冯 · 诺依曼结构

存 储 器 CPU

PC

数据

地址

Page 3: 第二章  ARM 微处理器硬件结构

3

计算机体系结构Ⅱ2. 哈佛体系结构 数据存储器 CPU

PC

数据

地址

程序存储器

地址

数据

Page 4: 第二章  ARM 微处理器硬件结构

4

ARM 简介 ARM( Advanced RISC Machines )系列微处理器,采用的 ARM 技术知识产权( IP )核都是由 ARM 公司提供的。 ARM 公司本身不生产芯片,转让设计许可,由合作公司生产各具特色的芯片。 ARM32 位体系结构目前被公认为是嵌入式应用领域领先的 32 位嵌入式 RISC 微处理器结构。从版本 1 到版本 6, ARM 体系的指令集功能不断扩大。

Page 5: 第二章  ARM 微处理器硬件结构

5

ARM 版本Ⅰ 1. V1 版架构 该版架构只在原型机 ARM1 出现过,没有用于商业产品。其基本性能有 : 基本的数据处理指令(无乘法); 基于字节、半字和字的 Load/Store 指令 ; 转移指令,包括子程序调用及链接指令; 供操作系统使用的软件中断指令 SWI; 寻址空间: 64MB( 226)。

Page 6: 第二章  ARM 微处理器硬件结构

6

ARM 版本Ⅱ2. V2 版架构 该版架构对 V1 版进行了扩展,例如 ARM2 和

ARM3 ( V2a ) 架 构 , 版 本 2a 是 版 本 2 的 变种, ARM3 芯片采用了版本 2a。 V2 版架构与版本V1 相比,增加了以下功能:

乘法和乘加指令; 支持协处理器操作指令; 快速中断模式; SWP/SWPB 的最基本存储器与寄存器交换指令 ; 寻址空间: 64MB。

Page 7: 第二章  ARM 微处理器硬件结构

7

ARM 版本Ⅲ3. V3 版架构 V3 版架构对 ARM 体系结构作了较大的改动: 寻址空间增至 32 位( 4GB); 当前程序状态信息从原来的 R15 寄存器移到当前程序状态寄 存 器 CPSR 中 ( Current Program Status

Register) ; 增加 了 程 序状 态 保 存寄 存 器 SPSR ( Saved Program

Status Register ); 增加了中止( Abort )和未定义 2 种处理器模式; 增加了 MRS/MSR 指令,以访问新增的 CPSR/SPSR 寄存器; 增加了从异常处理返回的指令功能。

Page 8: 第二章  ARM 微处理器硬件结构

8

ARM 版本Ⅳ4. V4 版架构 V4 版架构在 V3 版上作了进一步扩充, V4 版架构是 目 前 应 用 最 广 的 ARM 体 系 结构, ARM7 、 ARM8 、 ARM9 和 StrongARM 都采用该架构。指令集中增加了以下功能: 符号化和非符号化半字及符号化字节的存 / 取指令; 增加了 16位 Thumb 指令集; 完善了软件中断 SWI 指令的功能; 处理器系统模式引进特权方式时使用用户寄存器操作 ; 把一些未使用的指令空间捕获为未定义指令。

Page 9: 第二章  ARM 微处理器硬件结构

9

ARM 版本Ⅴ5. V5 版架构 V5 版架构是在 V4 版基础上增加了一些新的指令, ARM10和 Xscale 都采用该版架构。这些新增命令有: 带有链接和交换的转移 BLX 指令; 计数前导零 CLZ 指令; BRK 中断指令; 增加了数字信号处理指令( V5TE 版); 为协处理器增加更多可选择的指令。

Page 10: 第二章  ARM 微处理器硬件结构

10

ARM 版本Ⅵ6. V6 版架构 V6 版架构是 2001 年发布的,首先在 2002 年春季发布的 ARM11 处理器中使用。此架构在 V5 版基础上增加了以下功能: THUMBTM: 35% 代码压缩; DSP 扩充:高性能定点 DSP 功能; JazelleTM: Jova 性能优化,可提高 8 倍; Media 扩充:音 / 视频性能优化,可提高 4 倍。

Page 11: 第二章  ARM 微处理器硬件结构

11

ARM 处理器系列 ARM7 系列 ARM9 系列 ARM9E 系列 ARM10E 系列 SecurCore 系列 Inter的 Xscale Inter的 StrongARM

Page 12: 第二章  ARM 微处理器硬件结构

12

ARM 处理器结构从一下四个方面介绍: ARM和 Thumb 状态 RISC 技术 流水线技术 超标量执行

Page 13: 第二章  ARM 微处理器硬件结构

13

ARM和 Thumb 状态 V4 版以后有:

32位 ARM 指令集 16位 Thumb 指令集,功能是 ARM 指令集的功能子集。

ARM7TDMI 核以后, T变种的 ARM 微处理器有两种工作状态: ARM 状态 Thumb 状态。

Page 14: 第二章  ARM 微处理器硬件结构

14

ARM与 Thumb 状态转换 在程序的执行过程中,微处理器可以随时在两种工作状态之间切换,并且该转变不影响处理器的工作模式和相应寄存器中的内容。 进入 Thumb 状态:当操作数寄存器的状态位(位[0])为 1 时,执行 BX 指令。 进入 ARM 状态:当操作数寄存器的状态位(位 [0])为 0 时,执行 BX 指令。

Page 15: 第二章  ARM 微处理器硬件结构

15

RISC 技术Ⅰ RISC 体系结构基本特点: 大多数指令只需要执行简单和基本的功能,其执行过程在一个机器周期内完成。 只保留加载 / 存储指令。操作数由加载 / 存储指令从存储器取出放寄存器内操作。 芯片逻辑不采用或少采用微码技术,而采用硬布线逻辑。 减少指令数和寻址方式。 指令格式固定,指令译码简化。 优化编译。

Page 16: 第二章  ARM 微处理器硬件结构

16

RISC 技术ⅡARM 体系结构还采用了一些特别的技术: 所有的指令都可根据前面的执行结果决定是否被执行,提高了指令的执行效率。 可用 Load/Store 指令批量传输数据,以提高数据的传输效率。 可在一条数据处理指令中同时完成逻辑处理和移位处理。

Page 17: 第二章  ARM 微处理器硬件结构

17

流水线技术Ⅰ1. ARM 的 3级流水线 fetch decode excute

fetch decode excute

fetch decode excute

1

2

3

指令 时间

Page 18: 第二章  ARM 微处理器硬件结构

18

流水线技术Ⅱ多周期 ARM 指令的 3级流水线操作

fetch ADD decode excute1

2

3

指令 时间

fetch STR decode cal c: addr data xfer

fetch ADD decode excute

fetch ADD decode excute

fetch ADD decode excute

4

5

Page 19: 第二章  ARM 微处理器硬件结构

19

流水线技术Ⅲ2. ARM 的流水线设计问题 ( 1)缩短程序执行时间 : 提高时钟频率 fclk 减少每条指令的平均时钟周期数 CPI ( 2)解决流水线相关 : 结构相关 数据相关 控制相关

Page 20: 第二章  ARM 微处理器硬件结构

20

流水线技术Ⅳ3. ARM 的 5级流水线 ARM9和 StrongARM架构都采用了 5级流水线 . 增加了 I-Cache和 D-Cache,把存储器的取指与数据存取分开; 增加了数据写回的专门通路和寄存器; 把指令的执行过程分割为 5部分 : 取指 ->指令译码 ->执行 ->数据缓存 -> 写回

Page 21: 第二章  ARM 微处理器硬件结构

21

超标量执行

通过重复设置多套指令执行部件,同时处理并完成多条指令,实现并行操作,来达到提高处理速度的目的。所有 ARM 内核,包括流行的 ARM7、 ARM9和ARM11等,都是单周期指令机。 ARM 公司下一代处理器将是每周期能处理多重指令的超标量机。但是:

超标量处理器在执行的过程中必须动态地检查指令相关性如果代码中有分支指令; 我们必须将分支被执行和分支不被执行这两种情况分开考虑计算执行时间几乎是不可能的; 计算执行时间几乎是不可能的。

Page 22: 第二章  ARM 微处理器硬件结构

22

存储器部件的分类 按在系统中的地位分类: “ ”主存储器 (Main Memory, 简称内存或主存 ) “ ”辅助存储器 (Auxiliary Memory,Secondary

Memory,简称辅存或外存 ) 按存储介质分类:磁存储器 (Magnetic Memory) ,半导体集成电路存储器 (通常称为半导体存储器 ),光存储器

(Optical Memory) ,激光光盘存储器 (Laser Optical Disk)

按信息存取方式分类: 随机存取存储器 RAM 只读存储器 ROM

Page 23: 第二章  ARM 微处理器硬件结构

23

存储器的组织和结构 嵌入式存储器一般采用存储密度较大的存储器芯片,典型的嵌入式存储器系统由

ROM、 RAM、 EPROM等组成。 RAM空间

ROM空间

EEPROM空间

Page 24: 第二章  ARM 微处理器硬件结构

24

常用的存储器 随机存储器( RAM) 静态随机存储器( SRAM) 动态随机存储器( DRAM) 只读存储器( ROM),它在嵌入式系统中非常有用,因为许多代码或数据不随时间改变。 工厂编程的只读存储器 现场可编程只读存储器

Page 25: 第二章  ARM 微处理器硬件结构

25

存储器的性能 大容量、高速度、低价格是评价存储器性能的三个主要指标,也是存储体系设计的主要目标。 容量: Sw=Wlm 。其中W 为存储体的字长 (单位为位或字节 ), l为单个存储体的字数,m为并行工作的存储体个数。 速度:m个存储体并行工作时,可达到的最大频率宽度为 Bm=Wm/ TM 。其中 TM是连续起动一个存储器所必要的时间间隔, TM> TA。 Bm是连续提供数据的速率。

价格:具有 SM位的存储器,每位价格表示为 c=C/Sm 。其中 C是总价格。

Page 26: 第二章  ARM 微处理器硬件结构

26

存储体系的组成 单体单字存储器 单体多字存储器 多体单字交叉存取存储器 多体多字交叉存取存储器一般把这些能并行读出多个 CPU 字的单体多字和多体单字及多体多字的交叉存取系统,统称为并行主存系统。

Page 27: 第二章  ARM 微处理器硬件结构

27

存储体系的形式CPU

主存

辅存

辅助软硬件

CPU

主存

辅存

Cache

辅助软硬件

辅助硬件

(a)两级存储器层次结构 (b)三级存储器层次结构

Page 28: 第二章  ARM 微处理器硬件结构

28

总线结构Ⅰ 1.总线协议 :四周期握手协议

1 2 3 4 时间

1设备

2设备

Page 29: 第二章  ARM 微处理器硬件结构

29

总线结构Ⅱ 2.总线读写

CPU

1设备 2设备

存储器

Cl ockR/ W’AddressData ready’Data

Page 30: 第二章  ARM 微处理器硬件结构

30

总线结构Ⅲ3.总线的时序图

读过程 写过程

Cl ock

R/ W’

Address启用

Address

Data ready

Data

Page 31: 第二章  ARM 微处理器硬件结构

31

总线结构Ⅳ4.直接内存访问( DMA)

CPU

存储器

DMA控制器

设备

总线请求

总线授权Cl ockR/ W’Address

DataData ready’

Page 32: 第二章  ARM 微处理器硬件结构

32

总线结构Ⅴ5.系统总线配置 多总线系统

CPU

高速设备 存储器

低速设备

总线桥

低速设备

高速总线 低速总线

Page 33: 第二章  ARM 微处理器硬件结构

33

ARM 存储数据类型ARM 处理器支持以下六种数据类型: 8 位有符号和无符号字节。 16 位有符号和无符号半字,以 2 字节的边界对齐。 32 位有符号和无符号字,以 4 字节的边界对齐。

Page 34: 第二章  ARM 微处理器硬件结构

34

ARM 存储格式

A字节单元 A+1字节单元 A+2字节单元 A+3字节单元

A半字单元 A+2半字单元

A字单元

31 24 23 16 15 8 7 0

大端存储模式

A字节单元A+1字节单元A+2字节单元A+3字节单元

A半字单元A+2半字单元

A字单元

31 24 23 16 15 8 7 0

小端存储模式(缺省)

Page 35: 第二章  ARM 微处理器硬件结构

35

存储器接口Ⅰ1. 存储周期的基本类型: 空闲周期 非顺序周期 顺序周期 协处理器寄存器传送周期

Page 36: 第二章  ARM 微处理器硬件结构

36

存储器接口Ⅱ2.ARM 的 总 线 接 口 信 号 分 成 4 类 ( 以

ARM7TDMI 为例说明 ): 时 钟 和 时 钟 控 制 信 号 :

MCLK、 ECLK、 nRESET、 nWAIT。 地 址 类 信 号 :

A[31..0]、 nRW、MAS[1..0]、 nOPC、 nTRANS、 LOCK、 TBIT。

存储器请求信号: nMREQ、 SEQ。 数 据 时 序 信 号 :

D[31..0]、DIN[31..0]、DOUT[31..0]、 ABORT、 BL[3..0]。

Page 37: 第二章  ARM 微处理器硬件结构

37

存储器接口Ⅲ3. ARM 的总线接口可以实现 4 种不同类型的总线周期。

nMREQ SEQ 总线周期类型 说明

0

1

1

0

0 1

0

1

N周期

S周期

I周期

C周期

非顺序周期

顺序周期

内部周期

协处理器寄存器传送周期

Page 38: 第二章  ARM 微处理器硬件结构

38

高速缓冲存储器Ⅰ1. 分类: 统一 Cache VS 独立的数据 / 程序 Cache 写通 cache VS 写回 cache 读操作分配 cache VS 写操作分配 cache

Page 39: 第二章  ARM 微处理器硬件结构

39

高速缓冲存储器Ⅱ2.工作原理 :

M块号 N块内地址

->cache主存地址变换

m块号 n块内地址

cache替换策略

替换块

装入块

主存储器

未命中

已满

命中

未满

CPU虚拟地址(来自 )

Page 40: 第二章  ARM 微处理器硬件结构

40

高速缓冲存储器Ⅲ3.地址映像和变换方式 : 全相联地址映像和变换 组相联地址映像和变换 直接映像和变换

Page 41: 第二章  ARM 微处理器硬件结构

41

高速缓冲存储器Ⅳ4.Cache 的替换算法 : 轮转法 随机替换算法

Page 42: 第二章  ARM 微处理器硬件结构

42

存储管理单元 MMUⅠ

1.在 ARM 系统中,存储管理单元MMU 主要完成工作: 虚拟存储空间到物理存储空间的映射。在 ARM 中采用了页式虚拟存储管理。 存储器访问权限的控制。 设置虚拟存储空间的缓冲的特性。

Page 43: 第二章  ARM 微处理器硬件结构

43

存储管理单元 MMU Ⅱ(1)

2. 存储访问过程 使能 MMU 时存储访问过程 :

访问权限控制硬件

TLB 页表遍历硬件系统

ARM CacheWri te与

Buff er

Cache内容获取硬件系统

主存储系统

虚拟地址

物理地址

C B、 位域控制位

访问控制位

Page 44: 第二章  ARM 微处理器硬件结构

44

存储管理单元 MMU Ⅱ(2) 禁止 MMU 时存储访问过程: ①  先要确定芯片是否支持 cache和 write buffer 。如果芯片规定当禁止 MMU 时禁止 cache和write buffer ,则存储访问将不考虑 C 和 B 控制位。如果芯片规定当禁止MMU 时可以使能 cache和write buffer ,则数据访问 时 , C=0,B=0 ; 指 令读取 时 , 如果使 用 分开的TLB ,那么 C=1 ,如果使用统一的 TLB ,那么 C=0。

②  存储访问不进行权限控制, MMU也不会产生存储访问中止信号。③  所有的物理地址和虚拟地址相等,即使用平板存储模式。

Page 45: 第二章  ARM 微处理器硬件结构

45

存储管理单元 MMU Ⅲ(1)3. MMU 中的地址变换过程 : 通过两级页表实现。a) 一级页表中包含有以段为单位的地址变换条目以及指向二级页表的指针。一级页表是实现的地址映射粒度较大。以段为单位的地址变换过程只需要一级页表。b)二级页表中包含有以大页和小页为单位的地址变换条目。有一种类型的二级页表还包含有以极小页为单位的地址变换条目。以页为单位的地址变换过程需要二级页表。

Page 46: 第二章  ARM 微处理器硬件结构

46

存储管理单元 MMU Ⅲ(2)一级页表的地址变换过程 :

页表的基地址 0为

页表的基地址 页表内序号

页表内序号

虚拟地址

CP15 C2的寄存器

31 14 13 2 1 0

32合成的 位地址转换条目的地址

00

31 14 13 0

31 20 19 0

Page 47: 第二章  ARM 微处理器硬件结构

47

存储管理单元 MMU Ⅳ(1)

4. 一级描述符 : 从页表中得到的相应地址变换条目称为一级描述符。它定义了与之相应的 1M存储空间是如何映射的。一级描述符的位 [1:0]定义了该一级描述符的类型,共有 4 种格式的一级描述符: 31 20 19 12 11 10 9 8 5 4 3 2 1 0

无效

粗表

细表

粗粒度二级页表的基地址

段基地址 0为

细粒度二级页表的基地址

A P

0为

0

0

用户定义

用户定义

C B

00

0

0 1

1

1 1

Page 48: 第二章  ARM 微处理器硬件结构

48

存储管理单元 MMU Ⅳ(2) 1) 粗粒度页表描述符:当一级描述符的位 [1..0]为 0b01( 0b代表二进制)时,该一级描述符中包含了粗粒度的二级页表的物理地址,这种一级描述符称为粗粒度页表描述符。它的格式和各个字段的含义如下:

字段

[1: 0]位 一级描述符的类型标识

由用户定义

本段所在的域的标识符

0当前未使用,应为

1KB粗粒度二级页表的基地址,该地址是 对齐的

含义

[4: 2]位

[9]位

[8: 5]位

[31: 10]位

粗粒度二级页表的基地址 0 域 用户定义 1

31 10 9 8 5 4 3 2 1 0

0

Page 49: 第二章  ARM 微处理器硬件结构

49

存储管理单元 MMU Ⅳ(3)

由粗粒度页表描述符获取二级描述符的过程 :页表基地址 0为

页表基地址 一级页表内偏移序号 00

一级页表内偏移序号 二级页表内偏移序号

二级页表基地址 10用户定义域0

二级页表基地址 二级页表内偏移序号

10 9 2 1 031

31 10 9 8 5 4 2 1 0

31 14 13 2 1 0

31 20 19 0

31 14 13 0

CP15 C2中的寄存器

一级描述符地址

一级描述符

二级描述符地址

虚拟地址

00

12 11

Page 50: 第二章  ARM 微处理器硬件结构

50

存储管理单元 MMU Ⅳ(4) 2 )段描述符:当一级描述符的位 [1:0]为 0b10 时,该一级描述符为段描述符,它的格式和各个字段的含义如下:

字段

[1: 0]位 一级描述符的类型标识C B、 控制位由用户定义

本段所在的域的标识符

0当前未使用,应为

访问权限控制位

0当前未使用,应为

12该段对应的物理空间的基地址的高 位

含义

[3: 2]位

[4]位

[9]位

[8: 5]位

[11: 10]位[19: 12]位

[31: 20]位

粗粒度二级页表的基地址 0 域 用户定义 1

31 10 9 8 5 4 3 2 1 0

0

Page 51: 第二章  ARM 微处理器硬件结构

51

存储管理单元 MMU Ⅳ(5)基于段的地址变换过程 :

页表基地址 0为

页表基地址 一级页表内偏移序号 00

一级页表内偏移序号 段内地址偏移量

段对应的物理基地址 10BC用户定义域0A P0

二级页表基地址 段内地址偏移量

20 19 2 1 031

31 20 19 12 11 10 9 8 5 4 3 2 1 0

31 14 13 2 1 0

31 20 19 0

31 14 13 0

CP15 C2中的寄存器

一级描述符地址

一级描述符

二级描述符地址

虚拟地址

Page 52: 第二章  ARM 微处理器硬件结构

52

存储管理单元 MMU Ⅳ(6) 3 )细粒度页表描述符:当一级描述符的位 [1:0]为 0b11 时,该一级描述符中包含了细粒度的二级页表的物理地址,称为细粒度页表描述符。它的格式和各个字段的含义如下:

字段

[1: 0]位 一级描述符的类型标识

由用户定义

本段所在的域的标识符

0当前未使用,应为

4KB细粒度二级页表的基地址,该地址是 对齐的

含义

[4: 2]位

[9]位

[8: 5]位

[31: 10]位

细粒度二级页表的基地址 0 域 用户定义 1

31 12 11 9 8 5 4 3 2 1 0

0

Page 53: 第二章  ARM 微处理器硬件结构

53

存储管理单元 MMU Ⅳ(7)由细粒度页表描述符获取二级描述符的过程

页表基地址 0为

页表基地址 一级页表内偏移序号 00

一级页表内偏移序号 二级页表内偏移序号

二级页表基地址 11用户定义域0

二级页表基地址 二级页表内偏移序号

10 9 2 1 031

31 12 11 9 8 5 4 2 1 0

31 14 13 2 1 0

31 20 19 0

31 14 13 0

CP15 C2中的寄存器

一级描述符地址

一级描述符

二级描述符地址

虚拟地址

00

12 11

Page 54: 第二章  ARM 微处理器硬件结构

54

存储管理单元 MMU Ⅴ

5.MMU 中的存储访问权限控制AP S R 特权级时访问权限 用户级时访问权限

0b00

0b00

0b00

0b00

0b01

0b10

0b11

0 0

1 0

0 1

1 1

X X

X X

X X

没有访问特权

只读

只读

不可预知

/读 写

/读 写

/读 写

没有访问特权

没有访问特权

只读

不可预知

没有访问特权

只读

/读 写

Page 55: 第二章  ARM 微处理器硬件结构

55

存储管理单元 MMU Ⅵ

6.  MMU 中的域( Domain) MMU 中的域指的是一些段、大页或者小页的集合。 ARM 支持最多 16 个域,每个域的访问控制特性都是由 CP15 中的寄存器 C3 中的两位来控制的。这两位的字段编码和含义:

控制位编码 访问类型 含义

0b00

0b01

0b10

0b11

没有访问特权

客户类型

保留

管理者权限

这时访问该域将产生访问失效

根据页表中地址变换条目中的访问权限控制位决定是否允许特定的存储访问

使用该值会产生不可预知的结果

不考虑页表中地址变换条目中的访问权限控制位这种情况下不会产生访问失效

Page 56: 第二章  ARM 微处理器硬件结构

56

存储管理单元 MMU Ⅶ

7. 快速上下文切换技术 快速上下文切换技术 FCSE( Fast Context Switch

Extension )通过修改系统中不同进程的虚拟地址,避免在进行进程间切换时造成的虚拟地址到物理地址的重映射,从而提高系统的性能。 FCSE 位于 CPU和MMU之间,其责任就是将不同进程使用的相同虚拟地址映射为不同的虚拟空间,使得在上下文切换时无需重建 TLB等。

Page 57: 第二章  ARM 微处理器硬件结构

57

存储管理单元 MMU Ⅷ

8.存储器映射的输入 /输出 在 ARM 系统中, I/O 操作通常被映射成存储器操作,即输入 /输出是通过存储器映射的可寻址外围寄存器和中断输入的组合来实现的。 但是,对于存储器映射的 I/O 空间的操作,不能使用 Cache 技术。