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