第4章现代微机的存储系统
Download
Report
Transcript 第4章现代微机的存储系统
现代微机原理与接口技术(第3版)
第4章 现代微机的存储系统
(自学章节)
1
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
4.1 现代微机存储器系统概述
3芯片平台架构中,主存储器接口在北桥芯片中
2芯片平台结构里,主存储器接口集成在处理器中。
2代酷睿处理器中集成的存储控制器:
支持2个独立的具有64位宽通道的无缓冲DDR3存储器
每个通道可有1个到2个无缓冲双列直插存储模块或小型
双列直插存储模块
具有长度为8的数据猝发传输
DDR3内存每通道都是64位的,数据传速率达到
1066MT/s和1333MT/s
2代酷睿处理器集成的主存储器接口:
支持1Gb,2Gb和4Gb的DDER3 DRAM技术
2
http://www.njyangqs.com/
4.2 现代微机的存储结构
4.2.1 IA-32/Intel64微
机存储结构
现代微机原理与接口技术(第3版)
CPU内
的寄存器
L1 数据 L1 代码
Cache Cache
L2 Cache
L3 Cache
内部存储器(内存)
外存Cache
外部存储器(外存)
3
http://www.njyangqs.com/
4.2.2 IA-32/Intel64的存储模式
IA-32内存模式
现代微机原理与接口技术(第3版)
平坦模式(Flat memory model)
• 整个内存是单一连续的地址空间,也称线性地址空间
• 代码、数据和堆栈都包含在这个地址空间
• 线性地址空间是按字节编址的,地址空间从0~232-1(
如果不在64位模式)
分段模式(Segment memory model)
• 内存被分割成一个个称为段的独立的地址空间
• 段可以用来存放一个程序的代码、数据或堆栈,或者存
放系统数据结构(如TSS或LDT)
• 每一个应用程序都可以使用若干个大小不等的段
• 要寻址段内的一个字节需要提供一个由选择符和一个偏
移量组成的逻辑地址
• 在IA-32处理器中运行的程序可以寻址16383个不同大小
和类型的段,每个段最大可到232字节
http://www.njyangqs.com/
4.2.2 IA-32/Intel64的存储模式
IA-32内存模式
现代微机原理与接口技术(第3版)
分段模式(Segment memory model)
• 段选择符指向要操作的段的描述符在描述符表中的索引
,偏移量指向段内地址空间中的一个字节
• 系统中定义的所有段都要被映射到处理器的线性地址空
间,因此处理器要把每个逻辑地址转变为线性地址(对
程序员透明)
• 分段机制能阻止程序超过段的界限而对另一个段的内容
进行越段访问,以确保多个程序或任务执行过程中不会
相互干扰。
实地址模式
• 见第二章
http://www.njyangqs.com/
4.2.2 IA-32/Intel64的存储模式
分页与虚拟存储
现代微机原理与接口技术(第3版)
平坦或分段模式都要将最终的线性地址映射到物理地
址空间,这有两种方法
• 直接映射,即每个线性地址一对一的对应到一个物理地
址
• 分页机制
• 将线性地址按照固定大小划分为页,将页映射到虚拟存
储中,虚拟存储中的页再按照需要映射到物理内存中
• 分页机制并不是必须的
• 分页机制对应用程序来说是透明的
• 所有的应用程序看到的都是线性地址
64位下的内存组织
在64位模式下,结构本身支持64位线性地址空间
支持Intel 64结构的处理器可能只实现低于64位的地址
空间
http://www.njyangqs.com/
4.2.3 操作模式与存储模式
保护模式
现代微机原理与接口技术(第3版)
使用所有的存储模式
• 实地址模式只在处理器处于虚拟8086模式下使用
实地址模式
只支持实地址存储模式
系统管理模式
处理器会切换到独立的地址空间
在这个模式下,处理器对字节寻址的方法类似于实地
址模式
兼容模式
在兼容模式上执行的软件要遵循它们在32位保护模式
下的各种规定
64位模式
分段被禁止的,采用的是64位平坦线性地址空间
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
4.3 IA-32结构保护模式下的存储管理
4.3.1保护模式与特权级概述
1.保护模式概述
在保护模式下,Intel64和IA-32结构无论在段式管理还是页
式管理上都提供基于特权级的保护机制。防止应用程序越
权去访问操作系统核心的代码和数据。
使用保护机制后,每次使用存储器时,在存储周期开始之前
都会经历各种检查以保证正确性,任何的错误都将引起一个
异常。
将CR0寄存器的PE位(位0)置1的方法使处理器进入保护
模式。进入保护模式后将自动启用分段机制。
将CR0的PG位(位31)置1将启动分页机制,页级保护将自
动启动。
8
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
2.特权级概述
IA-32/Intel 64处理器有4个特权级,编号从0~3,0号特权级
级别最高,用于操作系统核心。1级和2级特权级多用于操
作系统的服务例程,用户的应用程序一般在特权级3上运行
系统将阻止低特权级的程序访问高特权级的段,否则会产生
普通保护异常(#GP)。
处理器会识别三类特权级。
当前特权级(Current privilege lebel, CPL):当前执行程
序或任务的特权级,它保存在CS和SS段寄存器的位0和位1
描述符特权级(Descriptor privilege lebel, DPL):段或门
的特权级,它存储在段或门的描述符的DPL域
请求特权级(Requested privilege lebel, RPL):保存在段
选择符的位0和位1,处理器将它和CPL一起检查,来决定访
问某个段是否被允许。
9
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
4.3.2 保护模式下的段式存储管理
1. IA-32/Intel 64段式存储管理的几种模式
基本平坦模型
操作系统和应用程序访问同一个连续的地址空间
至少要创建代码段描述符和数据段描述符。但这两个段描述
符中的基地址都是0,段界限都是4GB。
不同任务或同一任务的数据段、代码段和堆栈段等在地址空
间上的不同分布完全由地址偏移量来区分。
无法实现段的保护功能
10
http://www.njyangqs.com/
保护平坦模型
现代微机原理与接口技术(第3版)
类似于基本平坦模型
段的界限设置为只包含物理内存实际存在的范围
任何企图访问不存在的物理内存的行为都会产生一个普通保
护异常(#GP)
更复杂的机制可添加到保护平坦模式中来提供更多的保护。
页式管理机制,提供用户与系统代码和数据的隔离
11
http://www.njyangqs.com/
多段模型
现代微机原理与接口技术(第3版)
每个程序或任务都有自己的段描述符表和自己的段
段可以是指定的程序完全私有的,也可以是在程序间共享的
对段的访问,以及对运行在系统中的独立程序的执行环境的访
问都是由硬件控制的
12
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
2. 段式管理的地址变换
45(77)
32(64)
逻辑
段选择符的15~2位
地址
段描述符
31(63)
偏移量
段基址
段表
32(64)位线性地址
13
0
物理
地址
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
3. 段描述符
D7
D0
段界限 7~0
段界限 15~8
基址 7~0
基址 15~8
0
1
2
3
基址 23~16
P
DPL
S
TYPE
G D/B L AVL
段界限 19~16
基址 31~24
14
4
5
6
7
http://www.njyangqs.com/
D7
G D/B L AVL
D/B位
15
现代微机原理与接口技术(第3版)
D0
段界限 19~16
操作系统可用位
1=在64位模式,0=在兼容或IA-32模式
G=0 段长以1字节为单位
粒度位
G=1 段长以4K字节为单位
D=1 使用32位或8位操作系统
和32位寻址方式
代码段(D位)
D=0 使用16位或8位操作系统
和16位寻址方式
D/B位
B=1 使用ESP寄存器,上
限为0FFFFFFFFH
数据段(B位)
B=0 使用SP寄存器,上
限为0FFFFH
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
非系统段中的第5字节
扩展方向位
数据段标志
可写位
可执行位
D7
P
D0
DPL
S=1
E=0
E=1
ED
C
兼容位
存在位 特权位
代码段标志
W
R
A
访问位
可读位
S=1是非系统段
S=0是系统描述符
16
http://www.njyangqs.com/
系统描述符中的TYPE
17
现代微机原理与接口技术(第3版)
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
例1 假设段描述符访问权字节(第5字节)的内容分
别是0FEH和0D6H。请说明对应段的属性。
解:① FEH=11111110B,由于S=l,E=l,因此对应段
是代码段。该段有以下属性: P=1,段已映像到主存
;DPL=11,特权级为3;R=l,允许读;A=0,尚未
被访问。
② D6H=11010110,由于S=1,E=0,所以对应段是
数据段,该段有以下属性: P=1,段已映像到主存;
DPL=10,特权级为2;W=l,允许写入;A=0,尚未
被访问;ED=1,向下扩展,并且该段是堆栈段。
18
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
15
选择符(段寄存器)
2 1 0
Ti RPL
索引
Ti=0
Ti=1
……
……
LDT
2
1
0
LDT
选择符
界限
基址
LDTR
19
LDT
GDT
2
1
0
界限
基址
GDTR
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
例2 GDTR的基址和界限分别为00F00000H和0FFH
,求GDT的首地址和末地址及该表含有多少个描述
符?
解:GDT的首地址就是GDTR的基址,所以GDT首址
为:00F00000H;界限是表末到表头的偏移量,所以
GDT末址为:00F00000H+0FFH=00F000FFH;每一
个描述符由8个字节组成,所以,GDT描述符个数为
:GDT长度/8=(0FFH+1)/8=32。
20
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
4.3.3 保护模式下的虚拟页式存储管理
1. 页式存储管理
主存
程序1
页面
程序2
页框
程序3
~
~
21
~
~
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
2. IA-32/Intel 64页式存储管理模式
当CR0.PG=1且CR0.PE=1(保护模式使能)的时候,
页式管理被使能,此时可用三种分页的模式中的一种
32位分页模式。当CR0.PG=1并且CR4.PAE=0时进入该
模式。
PAE分页模式。当CR0.PG=1, CR4.PAE=1并且
IA32_EFER.LME=0时进入该模式。
IA-32e分页模式。当CR0.PG=1, CR4.PAE=1并且
IA32_EFER.LME=1时进入该模式
22
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
32位分页模式下的4KB分页方式(CR4.PSE=0)
31
32位线
性地址
22 21
页目录项号
页面号
12 11
0
偏移
低12位
CR3
32位物理地址
高20位
页表
页目录
31
页目
录项
12 11
页表基地址31~12
31
页表
项
23
AVL
12 11
页框基地址31~12
9
9
8
7
6
5
G
0
D A PCD PWT US RW P
8
7
6
5
4
4
3
3
2
2
1
1
0
0
AVL G PAT D A PCD PWT US RW P
P=出现位,US=用户/监督位,PCD是页Cache禁止,D=Cache“脏”位,
RW=读/写位,PWT=页写贯穿位,A=访问位,AVL=用户的操作系统可用
位。而第7位(PS)在4KB分页中为0
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
32位分页模式下的4MB分页方式(CR4.PSE=1)
32位线性
地址
31
22 21
页目录项号
0
偏移
CR
低22位
3
32位物理
地址
高10位
页目录
31
22
页目 页框基地址31~22
录项
(M-19)
13 12 11 9
8
PAT AVL G
7
1
6
5
4
3
2
1
0
D A PCDPWT US RW P
M为40和MAXPHYADDR的最小值,MAXPHYADDR是处理器
支持的最大物理地址,其值在40~32之间
24
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
PAE分页模式下的2MB分页方式地址转换(CR4.PSE=1)
31
30 29
PDPT项号
21 20
0
页目录项号
偏移
32位线性地址
低21位
CR3
物理地址
高31位
页目录指针表
4×64位
63
页目
录项
M (M-1)
页目录
512×64位
21 20
2MB对齐的页框基地址
36<M<52
13 12 11 9 8
PAT AVL G
7
6
1
5
4
3
2
1
0
D A PCDPWT US RW P
PAE分页模式转换32位线性地址到52位物理地址(如果某处理
器只支持MAXPHYADDR(<52)位物理地址,则物理地址的
MAXPHYADDR~51位为0)。M=MAXPHYADDR
25
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
PAE分页模式下的4KB分页方式地址转换(CR4.PSE=0)
31
5
4
3
2 1 0
CR3寄存器 32字节对齐的PDPT基地址 PCD PWT
63
M (M-1)
PDPT项
12 11 9 8 5
4KB对齐的页目录基地址
(高24位)
31
30 29
21 20
PDPT项号
页目录项号
4
3
2 1 0
PCD PWT
AVL
12 11
P
0
偏移
页面号
CR3
32位线性地址
低12位
物理地址
高40位
页目录指针表
4×64位
63
页目录项
63
页表项
26
M (M-1)
页目录
512×64位
页表
512×64位
12 11
9 8
4KB对齐的页表基地址 AVL
M (M-1)
12 11
9 8
G
4KB对齐的页框基地址 AVL
36<M<52
7
0
6
5 4 3
2
1 0
A PCDPWT US RW P
7
0
6 5
4
3
2 1 0
D A PCDPWT US RW P
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
IA-32e模式支持4 KB、2 MB和1GB三种不同的页面大小,
PDPT.PS=1为1GB分页,PDPT.PS=0且PDE.PS=0为4 KB分页,
PDPT.PS=0且PDE.PS=1为2 MB分页,CR4.PSE位被忽略。
IA-32e模式下的4KB内存分页结构项的格式
63 62 52 51
EXB AVL
PML4表
M (M-1)
12 11 9 8 7 6 5 4
3 2 1 0
A PCDPWT US RW P
AVL
PML4基地址
PDPT表
63 62 52 51
EXB AVL
M (M-1)
页目录基地址
12 11 9 8 7 6 5 4
3 2 1 0
0
A PCDPWTUS RW P
AVL
63 62 52 51
EXB AVL
页目录项PDE(4KByte页表)
M (M-1)
12 11 9 8 7 6 5 4
3 2 1 0
AVL 0 0 0 A PCDPWT USRW P
页表基地址
63 62 52 51
EXB AVL
页表(4KByte页表)
12 11 9 8 7 6 5 4
3 2 1 0
AVL G PAT D A PCDPWTUSRW P
页框基地址
27
M (M-1)
http://www.njyangqs.com/
IA-32e模式下4KB分页方式地址转换
28
现代微机原理与接口技术(第3版)
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
IA-32e模式下的2MB内存分页结构项的格式
63 62 52 51
EXB AVL
PML4表
M (M-1)
12 11 9 8 7 6 5 4
3 2 1 0
A PCDPWT US RW P
AVL
PML4基地址
PDPT表
63 62 52 51
EXB AVL
63 62 52 51
EXB AVL
29
M (M-1)
页目录基地址
12 11 9 8 7 6 5 4
3 2 1 0
0
A PCDPWTUS RW P
AVL
页目录项PDE(2MB页表)
M (M-1)
21 20
13 12 11 9 8 7 6 5 4
3 2 1 0
页框基地址
PATAVL G 1 D A PCDPWT USRW P
http://www.njyangqs.com/
IA-32e模式下2MB分页方式地址转换
30
现代微机原理与接口技术(第3版)
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
IA-32e模式下的1GB内存分页结构项的格式
63 62 52 51
EXB AVL
PML4表
M (M-1)
12 11 9 8 7 6 5 4
3 2 1 0
A PCDPWT US RW P
AVL
PML4基地址
PDPT表
63 62 52 51
EXB AVL
31
M (M-1)
30 29
页框基地址
13 12 11 9 8 7 6 5 4
3 2 1 0
PATAVL G 1 D A PCDPWT USRW P
http://www.njyangqs.com/
IA-32e模式下1GB分页方式地址转换
32
现代微机原理与接口技术(第3版)
http://www.njyangqs.com/
4.4 高速缓冲存储器Cache
现代微机原理与接口技术(第3版)
4.1.1 Cache的工作原理与地址映射
1. Cache的工作原理
33
http://www.njyangqs.com/
2. Cache的地址映像
现代微机原理与接口技术(第3版)
1) 直接映像
主存中的每一页都映像到高速缓存中的一个固定页,而高速
缓存中的每一页却对应着主存中的若干页。
这是最简单的一种映像技术,易于实现,地址变换速度快,
但是不够灵活,Cache的页冲突概率高,空间利用率低。
2) 全相联映像
全相联映像技术允许主存中每一个页面映像到Cache的任何
一个页面位置上,也允许采用某种替换算法从已占满的Cache
中替换出任何一个旧页面。这种方式冲突概率低,可达到很高
的Cache命中率,但实现起来比较困难。
3)组相联映像
将主存空间按Cache大小等分成组,再将Cache空间和主存
空间中的每一组都等分成大小相同的块,使得主存中一个组内
的页数与Cache中的分块数相同。各组之间是直接映像,而组
内各块之间则是全相联映像。
34
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
3. Cache的读写操作
1) 存储器读
访问页面在Cache中——直接读Cache,不读主存
访问页面不在Cache中——
· 贯穿读出式:页面从主存读到Cache,再到CPU
· 旁路读出式:页面直接从主存读到CPU,而不
经过Cache
2) 存储器写
· 写回法:写Cache页时不写主存,到下次页面修改时
再写主存。
· 写贯穿法:页面在写到Cache时同时写到主存,以保
持主存与Cache的相关页的内容一致
35
http://www.njyangqs.com/
4.4.2 IA-32的Cache结构
现代微机原理与接口技术(第3版)
物理存储器
系统总线
(外部)
L2
Cache
L3
Cache*
数据Cache
(L1)
Instruction
TLBs
Data TLBs
总线接口单元
指令译码器
跟踪Cache**/L1指令Cache
存储缓冲
* Intel Xeon 处理器才有
** 跟踪Cache只有Pentium 4才有
36
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
Intel Core i7处理器的高速缓存结构
指令译码器和前端
ITLB
乱序引擎
数据
TLB
数据Cache单
元(L1)
37
指令Cache
QPI
STLB
(2级TLB)
L2
Cache
芯片组
IMC
L3
Cache
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
• Core Solo,Core Duo,Core 2,Pentium 4中
L1和L2Cache行和Intel Xeon 处理器的L1 、L2
和L3 Cache行都是64字节。
• 一个Cache行可以使用8个突发传送事件来填满
。Cache不支持部分Cache行的填充。
• TLBs存储最近用过的页目录和页表项。他们
通过降低访问主存中页表的次数来加快页表的
访问。
• 处理器的Cache对软件来说基本上是透明的。
• 对Cache行为的了解有助于优化软件的性能。
38
http://www.njyangqs.com/
4.4.3 IA-32的Caching类型
现代微机原理与接口技术(第3版)
• 强不可缓存(Strong Uncacheable,UC)型:主存单
元的读写不使用Cache。所有读和写都只针对主存,
并且以程序的次序执行而不会重排序。
• 不可缓存(Uncacheable,UC-)型:和UC存储器具
有一些相同的特征,不过这种存储器类型可以通过对
WC类型存储器的MTRRs编程来撤消。
• 写组合(Write Combining,WC)型:和UC-存储器
一样,主存单元的读写不使用Cache,并且处理器总
线的一致性协议也没有被强制使用。
39
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
• 写贯穿(Write-through,WT)型:对主存的读或写
操作都使用Cache。如果Cache命中,则读操作将会
直接读Cache行,如果没有命中则会引起一个Cache
填充事件。所有的写在可能的情况下都被写入到
Cache行,并且同时写到主存中。
• 写回(Write-back,WB)型:对主存的写和读操作
都使用Cache。如果Cache命中,则读操作将会直接
读Cache行,如果没有命中则会引起一个Cache填充
事件。写操作被写到Cache中。被修改的Cache行,
在稍后才被写到主存中。
• 写保护(Write-protected,WP)型:读操作在可能
的情况下是从Cache行中读数据, 读操作没有命中
Cache时会引起Cache填充。写操作被传送到内存中
,而且导致在系统总线上的所有处理器中的相应
Cache行变为无效。
40
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
Cache不同类型的特点
41
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
4.4.4 IA-32的Cache一致性协议
MESI(Modified、Exclusive、Shared、
Invalid)Cache一致性协议是一种写-无效监听
协议。它跟踪存储器数据变化,保证了一个
Cache行数据更新以后,能够和所有与它的地
址有关联的存储单元保持数据的一致性。
42
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
• 已修改(Modified):指出Cache行数据已被更新,
但该更新不会送上系统总线,因此此时的Cache行内
容与主存及其它Cache的不一样。当该Cache控制器
之后监听到该行再次命中,必须将修改行的数据写回
存储器,以保持数据一直;
• 独占(Exclusive):指出这个Cache行的数据与主存
相联地址的内容一样,并且其它Cache中不包括此
Cache行的内容;
• 共享(Shared):指出此Cache行的内容存在于几个
Cache当中,在每个相关的Cache行和存储器行里都
存放了这行内容的副本;
• 无效(Invalid):复位以后的无效状态,指示这一
Cache行无效。
43
http://www.njyangqs.com/
现代微机原理与接口技术(第3版)
IA-32 MESI Cache行状态
44
http://www.njyangqs.com/