第2章 ARM微处理器硬件结构 4
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第2章 ARM微处理器硬件结构
计 算 机 体 系 结 构
2
1
ARM处理器结构和技术特征
3
ARM7硬件结构图
ARM 存 储 系 统 机 制
4
1
1 存储器的存储体系
(1)存储器形式
单体单字存储器 单体多字存储器
多体单字交叉存取存储器 多体多字交叉存取存储器
一般把这些能并行 读出多个CPU字的 单体多字和多体单 字及多体多字的交 叉存取系统,统称 为并行主存系统。
地址转换
命中 块号m 块内地址n
工 作 原 理 图
替换块
装入块
Cache
25
(2) Cache的读写操作
读操作:
开始 CPU发出访问地址 是 命中? 否 Cache满? 访问Cache 取出信息送CPU 访问主存 取出信息送CPU 是
否 将新的主存块 调入Cache中
执行替换算法 腾出空位
结束
26
最低有效字节的地址就 是该word的地址
最低有效字节位于 最低地址
低地址
f6
73
4b
cd
cd
4b 73
地址A
地址A+1 地址A+2 地址A+3 高地址
13
word a=0x f6 73 4b cd
f6
(4) ARM数据存储格式
大端的数据存放格式
(Big Endian)
最低有效字节 位于最高地址
最高有效字节的地址 就是该word的地址
Cache对一个系统实际的性能的影响有时候比CPU的频率还要 大 所以Intel有些面向服务器的CPU与同内核的桌面CPU的最主 要的区别就是Cache更大! 尽管只是处理器的众多功能模块的一部分,Cache往往占据 了一个处理器芯片的大部分芯片面积!
2MB Cache
Intel Core Duo处理器芯片
对齐就是数据在存储器中存放的规则:
ARM指令:按4字节对齐存储,一条指令必须从4的整数倍地址取。 Thumb指令:按2字节对齐存储,一条指令必须从偶数地址取。
11
(4) ARM数据存储格式
地址空间的规则要求字地址A: 位于地址 A 的字包含的字节位于地址 A,A+1,A+2 和 A+3 ; 位于地址A的字包含的半字位于地址A和A+2;
word a=0x f6 73 4b cd
低地址
cd
f6
73 4b 地址A+3 地址A+2 地址A+1 地址A 字节地址
4b
73
f6
cd
高地址
14
练习
存储一个32位数0x2168465到2000H~2003H四个字节单元 中,若以大端模式存储,则2000H存储单元的内容为__。 A、0x21 B、0x68 C、0x65 D、0x02
南桥 (标准总线桥路 )
ISA设备
19
2 ARM的高速缓冲存储器Cache
处理器内核的Cache
Cache的作用 CPU算得很快—一条指令只用1-几个时钟 而从基于SDRAM的主内存取、存操作数相
CPU核
较快的数据 存取通道 Cache 价格贵 , 所以容量 只能做的较小 较慢的数据 存取通道
写通Cache
27
(2) Cache的读写操作
写操作:
写入方法/写策略:
写通法 主存和Cache一致
“写” 时间 读操 作时
写回法 主存和Cache不一致 短(访问Cache时间)
长
若读Cache失效,且Cache 若读Cache失效,且Cache 满,不需对主存的写操作 满,需要对主存写操作
CPU
总线控制
IOP
M …… 0
M …… 1
M …… 2
M …… 3
地址寄存器0 地址寄存器1 地址寄存器2 地址寄存器3
主控(主存控制部件)
多体(m=4)交叉存储器
返回
5
多体多字存储器
把多体单字的并行存取与单体多字结合,构成多体 多字交叉存储器,进一步提高频宽。 存储器由多个存储体构成,但数据总线是每个存储 体字长的整数倍。
更新 策略
简单
复杂
28
练习
Cache常用的写回策略有写直达法和写回法。当采用写回法 时,一个Cache数据块在( )时写回主存。 A.任何一次写操作数时 B.第一次写操作数时 C.数据块被换出时 D.以上都有可能
(2) Cache的读写操作
写操作:
如何保持Cache和主存内容的一致?
写入方法/写策略:
• 写回(Write Back):写操作时,数据既写入Cache,又写入
主存。
写回Cache
• 写通( Write Through ) :写操作时,只把数据写入 cache 而
不写入主存,只当cache数据被替换出去时,才写回主存。
每访问一次存储器,可同时读/写多个字。
多个存储体按流水线的方式启动,提高了存储器的 整体速度。
返回
6
练习
多体交叉存储器主要是为了解决扩充容量问题。 ( )
错,由于CPU的速度比主存快,如果能同时从主存取出n条指令 ,必然会提高机器的运行速度,多模块交叉存储器就是基于这 种思想提出来的。 采用多体交叉存储器可以实现主存储器多模块流水式并行存 取,所以大大提高了存储器的数据传输率。 多体交叉存储器主要解决的问题是(B )。 A. 扩充主存储器的容量 B. 提高主存储器数据传输率 C. 减少主存储器芯片数量 D. 简化路线结构
16
C周期
协处理器寄存器 传送周期
1
1
(6) 系统总线配置
总线标准
大多数计算机系统上I/O设备的种类和数量是可变的。用户可以
根据自身需要进行选择。
I/O总线是连接设备的接口。总线标准可以使计算机设计者和 I/O设备设计者独立进行开发,因此它占据着很重要的地位。
只要两种设计者都遵循总线标准,任何I/O设备都可以连到任何
存储一个32位数876165到2000H~2003H四个字节单元中, 若以小端模式存储,则2000H存储单元的内容为( )。 A、0x00 B、0x87 C、0x65 D、0x61
15
(5) ARM4种存储周期
总线周期 类型 说明 nMREQ SEQ 特 点
N周期
非顺序周期
0
0
最简单的总线周期,存储控制器必 须启动存储器访问来满足这个请求 ;该方式存储系统常需要较长的访 问时间。 多用于实现总线上的突发传送,第 一个周期必须是一个内部周期。
一般32位的嵌入式微处理器都内置Cache。
22
(1) Cache的工作原理
主存储器 主存块号 字块 0
字块 1 标记 Cache 缓存块号 字块 0 字块 1
0
0
……
……
1
1
~
2m-1
n位 m位 主存块号 M块
~
字块 M-1 b位 块内地址
2c-1
~
c位 缓存块号 C块
~
字块 C-1 b位 块内地址 B个字
2
单体单字存储器
单体单字存储器
存储器字长W与CPU字长W相同,一 次访问一个存储器字; TM是连续启动一个存储体所需要 的时间间隔。 是指存储器可以提供的数据传送 率,一般用每秒钟所传送的信息 位数来衡量。
读出寄存器 W位
存储周期TM
l
存储器频宽BM
地址寄存器
主存最大频宽 BM =W/TM
指令)。
24
(1) Cache的工作原理:
在cache存储系统中,把主存储器和cache都划分成相同大小的块。 主存地址可以由块号M和块内地址N两部分组成。同样,cache的地 址也由块号m和块内地址n组成。
块号M 块内地址N 虚拟地址(来自CPU) 未命中 主存->cache 地址变换 已满 cache替换 策略 未满 主存储器
能; • 速度与寄存器同级; • 功耗低、便宜、简单、 电磁干扰少; • 要考虑容量。
几百兆字节~几十个 GB,访问时间几十ms
9
典型的RISC处理器 大约有32个32位寄 存器,总共128字节, 访问时间为几个ns 几兆字节~1GB动态 存储器,访问时间约 50ns
主存
硬盘
(3) ARM存储数据类型
7
(2) 存储器层次结构
通用寄存器
高速缓冲存储器
主存储器 辅助存储器 脱机大容 量存储器
8
ARM存储器存储层次
ARM存储器采用层次存储结构,其目的在于以低速存储器的 价格得到高速存储器的性能。 ARM架构的处理器的存储器寻址空间为4GB,一般系统所需 RAM/ROM经总线外接。 存储层次: 顶层 • 微处理器达到最佳性 寄存器 片上RAM
B个字
23
命中与未命中
Cache命中:CPU每次读取主存时,Cache控制器都要检查
CPU送出的地址,判断CPU要读取的数据是否在Cache中, 如果在就称为命中。→可直接访问Cache
Cache未命中:读取的数据不在Cache中,则对主存储器 进行操作,并将有关内容置入Cache(作为常用的数据/
低地址
位 于 地 址 A+2 的 半 字 包 含的字节位于地址 A+2 和 A+3; 位于地址 A 的半字包含的 字节位于地址A和A+1;
……
A A+1 A+2 A+3
高地址
字节 字节 字节 字节
…… 存储器
半字
字 半字
12
(4) ARM数据存储格式
小端的数据格式(Little Endian)
21
2 ARM的高速缓冲存储器Cache
高速缓存Cache
高速缓冲存储器中存放的是当前使用得最多的程序 代码和数据,即主存中部分内容的副本。
在嵌入式系统中Cache全部都集成在嵌入式微处理器 内。
可分为数据Cache、指令Cache或混合Cache。
不同的处理器其Cache的大小不一样。
ARM支持的数据类型 ARM处理器支持以下六种数据类型:
8位有符号和无符号字节。 16位有符号和无符号半字,以2字节的边界对齐。 Thumb状态下,最低位不为0b0——非半字对齐。 32位有符号和无符号字,以4字节的边界对齐。 ARM状态下,最低位不为0b00——非字对齐。
在内部,所有ARM操作 都是面向32位的操作数 ;只有数据传送指令支 持较短的字节和半字的 数据类型。
周期
对很慢– 几十个时钟周期
造成CPU大量时间都在空转以等待数据
Cache由访问速度较快的SRAM组成,一次 把最近或经常需要访问的数据放在Cache
ready
访问大概只需几个-十几个时钟周期
SDRAM 主存 价格便宜, 容量可以做的很大
而不是主存中
20
2 ARM的高速缓冲存储器Cache
计算机上。实际上,I/O总线标准定义了设备应该如何连接到计算机。
AMBA总线 PCI总线
17
(6) 系统总线配置
AMBA总线标准
高性能 ARM处 理器
UART
AHB/ASB
片上 RAM
总 线 桥
USB
APB
Timer
DMAC
AHB——主要用于高性能模块(CPU、DMA、DSP等)之间的连接; APB——主要用于低带宽的周边外设(USB、UART等)之间的连接; ASB——适用于高性能模块,读写数据采用一条双向DB。
10
当从存储器调入一个字节和半字 时,根据指令对数据的操作类型, 将其无符号0或有符号“符号位” 扩展为32位,进而作为32位数据 在内部进行处理。
边界对齐
各种类型的数据按照一定的规则在空间上排列,而不是顺 序的一个接一个的排放——对齐 对齐的作用和原因:
平台原因(移植原因):各个硬件平台对存储空间的处理上有很 大的不同,某些硬件平台只能从某些特定地址开始存取,否则会 出现硬件异常,这种架构下编程必须保证字节对齐。 性能原因:如果不按照适合其平台要求对数据存放进行对齐,为 了访问未对齐的内存,处理器要作两次内存访问,而对齐的内存 访问只需一次。会在存取效率上带来损失。
18
(6) 系统总线配置
处理器 Cache 前端总线 (FSB) 100 MHz 显卡 北桥 (主桥 ) 存储控制器 存储器
PCI总线标准
外围组件互连;
支持多种外设, 为PC广泛采用;
32位传输(可扩 展64位); 突发模式传输; 地址/数据总线复 用,减小总线规 模。
PCI 总线 33MHz PCI 声卡 USB1 USB2 IDE1 IDE2 ISA 总线8MHz
返回
3
单体多字存储器
2)单体多字存储器 字长等于m个CPU字, BM =mW/TM
单体指只有一套地址寄 存器和地址译码器;
单字长寄存器
W位
W位
W位
a
W位
源自文库
W位
CPU每次访问可同时读
出多个存储字。 读出的数据同时或分时
地址寄存器
送CPU.
单体多字(m=4)存储器
返回
4
多体单字存储器
3)多体单字交叉存取存储器
S周期
顺序周期
0
1
I周期
不执行存储器访问;可广播下一次 注意:总线周期使用nMREQ 1 nMREQ 0 访问的地址以便开始译码,与 S周期 内部周期 和SEQ信号编码, 、 SEQ 为 CPU引脚。 配合实现总线上的突发传送。 通过数据总线向或从协处理器传送 数据;传送期间,不需存储周期,存 储系统不允许驱动数据总线。
计 算 机 体 系 结 构
2
1
ARM处理器结构和技术特征
3
ARM7硬件结构图
ARM 存 储 系 统 机 制
4
1
1 存储器的存储体系
(1)存储器形式
单体单字存储器 单体多字存储器
多体单字交叉存取存储器 多体多字交叉存取存储器
一般把这些能并行 读出多个CPU字的 单体多字和多体单 字及多体多字的交 叉存取系统,统称 为并行主存系统。
地址转换
命中 块号m 块内地址n
工 作 原 理 图
替换块
装入块
Cache
25
(2) Cache的读写操作
读操作:
开始 CPU发出访问地址 是 命中? 否 Cache满? 访问Cache 取出信息送CPU 访问主存 取出信息送CPU 是
否 将新的主存块 调入Cache中
执行替换算法 腾出空位
结束
26
最低有效字节的地址就 是该word的地址
最低有效字节位于 最低地址
低地址
f6
73
4b
cd
cd
4b 73
地址A
地址A+1 地址A+2 地址A+3 高地址
13
word a=0x f6 73 4b cd
f6
(4) ARM数据存储格式
大端的数据存放格式
(Big Endian)
最低有效字节 位于最高地址
最高有效字节的地址 就是该word的地址
Cache对一个系统实际的性能的影响有时候比CPU的频率还要 大 所以Intel有些面向服务器的CPU与同内核的桌面CPU的最主 要的区别就是Cache更大! 尽管只是处理器的众多功能模块的一部分,Cache往往占据 了一个处理器芯片的大部分芯片面积!
2MB Cache
Intel Core Duo处理器芯片
对齐就是数据在存储器中存放的规则:
ARM指令:按4字节对齐存储,一条指令必须从4的整数倍地址取。 Thumb指令:按2字节对齐存储,一条指令必须从偶数地址取。
11
(4) ARM数据存储格式
地址空间的规则要求字地址A: 位于地址 A 的字包含的字节位于地址 A,A+1,A+2 和 A+3 ; 位于地址A的字包含的半字位于地址A和A+2;
word a=0x f6 73 4b cd
低地址
cd
f6
73 4b 地址A+3 地址A+2 地址A+1 地址A 字节地址
4b
73
f6
cd
高地址
14
练习
存储一个32位数0x2168465到2000H~2003H四个字节单元 中,若以大端模式存储,则2000H存储单元的内容为__。 A、0x21 B、0x68 C、0x65 D、0x02
南桥 (标准总线桥路 )
ISA设备
19
2 ARM的高速缓冲存储器Cache
处理器内核的Cache
Cache的作用 CPU算得很快—一条指令只用1-几个时钟 而从基于SDRAM的主内存取、存操作数相
CPU核
较快的数据 存取通道 Cache 价格贵 , 所以容量 只能做的较小 较慢的数据 存取通道
写通Cache
27
(2) Cache的读写操作
写操作:
写入方法/写策略:
写通法 主存和Cache一致
“写” 时间 读操 作时
写回法 主存和Cache不一致 短(访问Cache时间)
长
若读Cache失效,且Cache 若读Cache失效,且Cache 满,不需对主存的写操作 满,需要对主存写操作
CPU
总线控制
IOP
M …… 0
M …… 1
M …… 2
M …… 3
地址寄存器0 地址寄存器1 地址寄存器2 地址寄存器3
主控(主存控制部件)
多体(m=4)交叉存储器
返回
5
多体多字存储器
把多体单字的并行存取与单体多字结合,构成多体 多字交叉存储器,进一步提高频宽。 存储器由多个存储体构成,但数据总线是每个存储 体字长的整数倍。
更新 策略
简单
复杂
28
练习
Cache常用的写回策略有写直达法和写回法。当采用写回法 时,一个Cache数据块在( )时写回主存。 A.任何一次写操作数时 B.第一次写操作数时 C.数据块被换出时 D.以上都有可能
(2) Cache的读写操作
写操作:
如何保持Cache和主存内容的一致?
写入方法/写策略:
• 写回(Write Back):写操作时,数据既写入Cache,又写入
主存。
写回Cache
• 写通( Write Through ) :写操作时,只把数据写入 cache 而
不写入主存,只当cache数据被替换出去时,才写回主存。
每访问一次存储器,可同时读/写多个字。
多个存储体按流水线的方式启动,提高了存储器的 整体速度。
返回
6
练习
多体交叉存储器主要是为了解决扩充容量问题。 ( )
错,由于CPU的速度比主存快,如果能同时从主存取出n条指令 ,必然会提高机器的运行速度,多模块交叉存储器就是基于这 种思想提出来的。 采用多体交叉存储器可以实现主存储器多模块流水式并行存 取,所以大大提高了存储器的数据传输率。 多体交叉存储器主要解决的问题是(B )。 A. 扩充主存储器的容量 B. 提高主存储器数据传输率 C. 减少主存储器芯片数量 D. 简化路线结构
16
C周期
协处理器寄存器 传送周期
1
1
(6) 系统总线配置
总线标准
大多数计算机系统上I/O设备的种类和数量是可变的。用户可以
根据自身需要进行选择。
I/O总线是连接设备的接口。总线标准可以使计算机设计者和 I/O设备设计者独立进行开发,因此它占据着很重要的地位。
只要两种设计者都遵循总线标准,任何I/O设备都可以连到任何
存储一个32位数876165到2000H~2003H四个字节单元中, 若以小端模式存储,则2000H存储单元的内容为( )。 A、0x00 B、0x87 C、0x65 D、0x61
15
(5) ARM4种存储周期
总线周期 类型 说明 nMREQ SEQ 特 点
N周期
非顺序周期
0
0
最简单的总线周期,存储控制器必 须启动存储器访问来满足这个请求 ;该方式存储系统常需要较长的访 问时间。 多用于实现总线上的突发传送,第 一个周期必须是一个内部周期。
一般32位的嵌入式微处理器都内置Cache。
22
(1) Cache的工作原理
主存储器 主存块号 字块 0
字块 1 标记 Cache 缓存块号 字块 0 字块 1
0
0
……
……
1
1
~
2m-1
n位 m位 主存块号 M块
~
字块 M-1 b位 块内地址
2c-1
~
c位 缓存块号 C块
~
字块 C-1 b位 块内地址 B个字
2
单体单字存储器
单体单字存储器
存储器字长W与CPU字长W相同,一 次访问一个存储器字; TM是连续启动一个存储体所需要 的时间间隔。 是指存储器可以提供的数据传送 率,一般用每秒钟所传送的信息 位数来衡量。
读出寄存器 W位
存储周期TM
l
存储器频宽BM
地址寄存器
主存最大频宽 BM =W/TM
指令)。
24
(1) Cache的工作原理:
在cache存储系统中,把主存储器和cache都划分成相同大小的块。 主存地址可以由块号M和块内地址N两部分组成。同样,cache的地 址也由块号m和块内地址n组成。
块号M 块内地址N 虚拟地址(来自CPU) 未命中 主存->cache 地址变换 已满 cache替换 策略 未满 主存储器
能; • 速度与寄存器同级; • 功耗低、便宜、简单、 电磁干扰少; • 要考虑容量。
几百兆字节~几十个 GB,访问时间几十ms
9
典型的RISC处理器 大约有32个32位寄 存器,总共128字节, 访问时间为几个ns 几兆字节~1GB动态 存储器,访问时间约 50ns
主存
硬盘
(3) ARM存储数据类型
7
(2) 存储器层次结构
通用寄存器
高速缓冲存储器
主存储器 辅助存储器 脱机大容 量存储器
8
ARM存储器存储层次
ARM存储器采用层次存储结构,其目的在于以低速存储器的 价格得到高速存储器的性能。 ARM架构的处理器的存储器寻址空间为4GB,一般系统所需 RAM/ROM经总线外接。 存储层次: 顶层 • 微处理器达到最佳性 寄存器 片上RAM
B个字
23
命中与未命中
Cache命中:CPU每次读取主存时,Cache控制器都要检查
CPU送出的地址,判断CPU要读取的数据是否在Cache中, 如果在就称为命中。→可直接访问Cache
Cache未命中:读取的数据不在Cache中,则对主存储器 进行操作,并将有关内容置入Cache(作为常用的数据/
低地址
位 于 地 址 A+2 的 半 字 包 含的字节位于地址 A+2 和 A+3; 位于地址 A 的半字包含的 字节位于地址A和A+1;
……
A A+1 A+2 A+3
高地址
字节 字节 字节 字节
…… 存储器
半字
字 半字
12
(4) ARM数据存储格式
小端的数据格式(Little Endian)
21
2 ARM的高速缓冲存储器Cache
高速缓存Cache
高速缓冲存储器中存放的是当前使用得最多的程序 代码和数据,即主存中部分内容的副本。
在嵌入式系统中Cache全部都集成在嵌入式微处理器 内。
可分为数据Cache、指令Cache或混合Cache。
不同的处理器其Cache的大小不一样。
ARM支持的数据类型 ARM处理器支持以下六种数据类型:
8位有符号和无符号字节。 16位有符号和无符号半字,以2字节的边界对齐。 Thumb状态下,最低位不为0b0——非半字对齐。 32位有符号和无符号字,以4字节的边界对齐。 ARM状态下,最低位不为0b00——非字对齐。
在内部,所有ARM操作 都是面向32位的操作数 ;只有数据传送指令支 持较短的字节和半字的 数据类型。
周期
对很慢– 几十个时钟周期
造成CPU大量时间都在空转以等待数据
Cache由访问速度较快的SRAM组成,一次 把最近或经常需要访问的数据放在Cache
ready
访问大概只需几个-十几个时钟周期
SDRAM 主存 价格便宜, 容量可以做的很大
而不是主存中
20
2 ARM的高速缓冲存储器Cache
计算机上。实际上,I/O总线标准定义了设备应该如何连接到计算机。
AMBA总线 PCI总线
17
(6) 系统总线配置
AMBA总线标准
高性能 ARM处 理器
UART
AHB/ASB
片上 RAM
总 线 桥
USB
APB
Timer
DMAC
AHB——主要用于高性能模块(CPU、DMA、DSP等)之间的连接; APB——主要用于低带宽的周边外设(USB、UART等)之间的连接; ASB——适用于高性能模块,读写数据采用一条双向DB。
10
当从存储器调入一个字节和半字 时,根据指令对数据的操作类型, 将其无符号0或有符号“符号位” 扩展为32位,进而作为32位数据 在内部进行处理。
边界对齐
各种类型的数据按照一定的规则在空间上排列,而不是顺 序的一个接一个的排放——对齐 对齐的作用和原因:
平台原因(移植原因):各个硬件平台对存储空间的处理上有很 大的不同,某些硬件平台只能从某些特定地址开始存取,否则会 出现硬件异常,这种架构下编程必须保证字节对齐。 性能原因:如果不按照适合其平台要求对数据存放进行对齐,为 了访问未对齐的内存,处理器要作两次内存访问,而对齐的内存 访问只需一次。会在存取效率上带来损失。
18
(6) 系统总线配置
处理器 Cache 前端总线 (FSB) 100 MHz 显卡 北桥 (主桥 ) 存储控制器 存储器
PCI总线标准
外围组件互连;
支持多种外设, 为PC广泛采用;
32位传输(可扩 展64位); 突发模式传输; 地址/数据总线复 用,减小总线规 模。
PCI 总线 33MHz PCI 声卡 USB1 USB2 IDE1 IDE2 ISA 总线8MHz
返回
3
单体多字存储器
2)单体多字存储器 字长等于m个CPU字, BM =mW/TM
单体指只有一套地址寄 存器和地址译码器;
单字长寄存器
W位
W位
W位
a
W位
源自文库
W位
CPU每次访问可同时读
出多个存储字。 读出的数据同时或分时
地址寄存器
送CPU.
单体多字(m=4)存储器
返回
4
多体单字存储器
3)多体单字交叉存取存储器
S周期
顺序周期
0
1
I周期
不执行存储器访问;可广播下一次 注意:总线周期使用nMREQ 1 nMREQ 0 访问的地址以便开始译码,与 S周期 内部周期 和SEQ信号编码, 、 SEQ 为 CPU引脚。 配合实现总线上的突发传送。 通过数据总线向或从协处理器传送 数据;传送期间,不需存储周期,存 储系统不允许驱动数据总线。