微处理器存储器管理技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
退出
2.2.2
三、页目录项和页表
页目录项和页表项的格式是相同的,如图2.9所示。 存在位:若P=1,该页被映射到物理内存,可以使用进 行地址的转换;若P=0,该页没有被映射到物理内存,则不 能进行地址转换。 写位:W位指示该表项所指定的页是否可读、写或执行。 若W=1,对表项所指定的页可进行读、写或执行;若W=0,对 表项所指定的页可读或执行,但不能对该指定的页写入。用 户/超级用户位:指示该表项所指定的页是否是用户级页。 若U/S=1,表项所指定的页是用户级页,可由任何特权级下 执行的程序访问;如果U/S=0,表项所指定的页是系统级页, 只能由系统特权级0、1和2上执行的程序访问。通写位:如 果PWT置1,相关页使用通写策略。否则,采用回写策略。
微处理器存储器管理技术(6学时 学时) 第二章 微处理器存储器管理技术 学时
知 识 概 述 学时) 实模式存储器寻址(2学时 第一节 实模式存储器寻址(2学时) 学时) 第二节 保护模式存储器寻址 (4学时 学时
退出
第一节 实模式存储器寻址
80286及其以上的微处理器可工作于实模式或者保护 模式,而8086只能工作于实模式。 实模式只允许微处理器寻址第一个1MB内存空间,即 使是PentiumⅣ微处理器也是如此。 DOS操作系统要求微处理器工作于实模式。 实模式操作是允许为8086编写的应用软件不用修改就 可以在80286及更高型号的微处理器中运行。 在任何情况下,这些微处理器每次加电或复位后都默 认地以实模式开始工作。
退出
2.2.1
1. 访问权限字节功能如图2.6所示。 2. 保护模式下的寻址:图2.7表示含选择子的段寄存器如何 从全局描述符表中选择一个描述符,从描述符中如何选择 存储器的一个段。
退出
2.2.1
2.2.2 分页存储器管理
分页管理将克服分段管理的缺点,把虚拟存储空间和 内存物理空间都划分长度为4KB的页,页的起点和终点地 址都是固定的。
退出
二、描述符
图2.5表示80286、80386~PentiumⅣ的描述符格式。 2.5表示80286、80386~PentiumⅣ的描述符格式。 表示80286 的描述符格式 注意每个描述符长8个字节, 注意每个描述符长8个字节,所以全局和局部描述符表每 个最长为64KB 64KB。 个最长为64KB。 例2-1 如果段的基地址为10000000H,界限为001FFH, 如果段的基地址为10000000H,界限为001FFH, 10000000H 001FFH 位为0 求段的结束地址; 位为1 G位为0时,求段的结束地址;若G位为1时,求段的结束地 址。 base=10000000H G=0 End=Base+Limit=10000000H+001FFH=100001FFH G=1 End= Base+Limit=10000000H+001FFFFF=101FFFFFH
在保护模式下,当寻址内存中的数据和程序时,仍然 使用偏移地址访问位于存储段内的信息。区别是,保护模 式下的段地址不再像实模式那样由段寄存器提供。在原来 存放段地址的段寄存器里含有一个选择子,用于选择描述 表内的一个描述符。描述符描述存储器段的位置、长度和 描述存储器段的位置、 描述存储器段的位置 访问权限。两种模式之间的区别是微处理器访问存储段时 访问权限 两种模式之间的区别是微处理器访问存储段时 对段寄存器的解释不同。 对段寄存器的解释不同。
退出
2.2.2
退出
图2.1 实模式内存的寻址机制
退出
图2.3 应用程序装入DOS 内存系统示意图
Байду номын сангаас出
图2.4 保护模式下段寄存器的内容
80286描述符
80386~PentiumⅣ
7
000000 00 访问权限
000000 6 00 基(B23B16)
4
界限 ( 7 基(B31-B24 G D 0 A 6 V L19) L16)
退出
2.1.1
段地址和偏移地址
图2.1说明了段加偏移的寻址机制如何选择内存单元。 1. 逻辑地址:用冒号连接段地址和偏移地址,即段地址: 偏移地址。 2. 物理地址:物理地址=段的起始地址+偏移地址=段地址 ×10H+偏移地址。
退出
2.1.2
默认段和偏移寄存器
微处理器有一套规则,用于每次访问内存段,这套规 则既适合于实模式也适合于保护模式,规则如下: 1. 用CS:IP或CS:EIP定位微处理器执行的下一条指令。 2. 用SS:SP或SS:ESP寻址存储器堆栈段中的数据。 3. 用DS或ES寻址存储器的数据段中的数据。 8086~80286允许访问4个存储段,80386~PentiumⅣ允 许访问6个存储段。注意内存段可以相邻甚至重叠,如果 一段不需要64KB内存,则它可与其它段重叠。 例如某个应用程序的代码需要1000H个字节的内存, 数据需要190H个字节的内存,堆栈需要200H个字节的内存, 这个应用程序不需要附加段。图2.3表示了DOS是如何装入 应用程序的。
退出
2.1.3
程序重定位问题的实现
1. 可重定位程序:是一个可以放在内存任何区域,不加修 改而仍能执行的程序。 2. 可重定位的数据:是可以放在内存任何区域,且不需要 修改就可以被程序应用的数据。 段加偏移寻址机制允许程序和数据不需要任何修改, 而使程序和数据重定位。
退出
第二节
保护模式存储器寻址
通写式高速缓冲存储器 回写式高速缓冲存储器
退出
2.2.2
四、转换后备缓冲区
因为进行4KB存储器重新分页的操作要求使用存储 器内的页目录和页表,所以Intel构造一个称为TLB的高 速缓冲存储器。在80486微处理器中,TLB保存了32个最 近使用的页转换地址。因此如果访问某个存储区,其地 址已经在TLB中,就不需要在访问页目录和页表,这样 加速了程序的执行。如果一个页表转换不在TLB中,则 必须访问页目录和页表,这就需要额外的执行时间。 (本章结束)
述
基本概念:实模式,实空间,段地址,偏移地址, 保护模式,虚拟存储空间,段选择子,描述符 重点:实模式存储器寻址,默认的段加偏移,保 护模式下的存储器寻址 难点:保护模式下分页机制的存储器寻址
退出
12
6
5
4
3
2
1
0
页表地址或页地址
P P D A C W U W P D T
图2.9 页目录项和页表项格式
退出
通写式高速缓冲存储器,在CPU向Cache写入的同时, 也把数据写入相应内存单元。保证Cache和内存中相应单 元数据的一致性。通写式速度慢,而且有些操作是不必要 的,比如CPU连续多次更新一个Cache单元的内容,将导致 相应内存单元连续多次被写入,而效果其实和写入最后一 次更新是一样的。
退出
通写式高速缓冲存储器
回写式高速缓冲存储器,CPU修改了Cache的内容 后,并不立即修改内存中相应的单元。只有当回写操作 被执行的时候,才修改相应内存单元。比如该Cache单 元的内容从Cache中撤销时触发回写操作。回写式速度 快,也避免了一些不必要的操作。
退出
回写式高速缓冲存储器
知 识
概
退出
2.2.1分段存储器管理 分段存储器管理
一、选择子
在保护模式下,段寄存器的功能如图2.4所示,段寄 存器包括13位的选择子字段、表指示器位(table indicator,TI)和请求优先级(requested privilege level, RPL)字段。其中13位的选择子可从描述符表的 213=8192个描述符中选择一个。TI位选择全局描述附表 (TI=0)或局部描述附表(TI=1)。 1. 对于286由于偏移地址是16位长,所以一个段的最 大容量为64KB。因此逻辑空间,也即虚拟空间为 214×216=230=1GB。 2. 而对于80386~PentiumⅣ,它的偏移地址为32位长, 所以一个段的最大容量为4GB。因此虚拟地址空间为 214×232=246=64TB。
退出
2.2.2
禁用高速缓冲位PCD:如果PCD位被清除为0, 则页表或页面可用高速缓存;若PCD置位,禁用高 速缓存。 访问位:A=1,表示已访问过对应的物理页。 脏位:对于页目录项,D位是未定义。对于页 表项,D位用来记录页表项所描述的页是否进行过 数据写入,D=0 该页中的内容没有被改动过。D=1 该页中的内容已经被改动过了(被写过)。
5
5 3 1
访问权限
基(B23-B16) 4
2 0
基(B15-B0) 界限(L15-L0)
2 0
3 1
基(B15-B0) 界限(L15-L0)
图2.5 80286和80386~PentiumⅣ微处理器的描述符格式 和 Ⅳ
退出
退出
图2.6 80286~PentiumⅣ 描述符中 Ⅳ 的访问权限字节
D S 寄 存 器 从 全 局 描 述 符 表 中 选 择 一 个 描 述 符
一、分页寄存器
分页机制的启用是由微处理器中控制寄存器的内容 控制。控制寄存器CR CR0 CR3的内容见图 控制。控制寄存器CR0到CR3的内容见图2.8。
退出
二、分页机制的存储器的组织
1. 物理内存分页:一个物理页的大小为4KB,页与页互不重 叠,只需要32bit的地址中高20bit来寻址物理页。 2. 页表:页表中的每一项的内容(每项4个字节,32位)高 20位用来存放一个物理页 用来存放一个物理页的起始物理地址,低12bit放着 用来存放一个物理页 一些关于该页的其它信息。 3. 页目录:页目录中的每一项的内容(每项4个字节)高 20bit用来存放一个页表 用来存放一个页表的起始物理地址,低12位存放该 用来存放一个页表 页表的其它信息。 4. 从前面的讲解可以知道,对于80386~PentiumⅣ系统,页 目录的物理地址放在CPU的CR3寄存器中高20位。 其寻址过程是:CR3→页目录→页表→物理内存分页。
退出
31
12 11
0
M C E 页目录基地址 页故障线性地址 未用 P C N G D W A M
18
P S E P C D
T P V D S V M E D I E P W T
CR4
CR3
CR2
CR1
W P
16
N E T E MP E T S MP E
CR0
图2.8 微处理器控制寄存器结构
退出
31
2.2.2
三、页目录项和页表
页目录项和页表项的格式是相同的,如图2.9所示。 存在位:若P=1,该页被映射到物理内存,可以使用进 行地址的转换;若P=0,该页没有被映射到物理内存,则不 能进行地址转换。 写位:W位指示该表项所指定的页是否可读、写或执行。 若W=1,对表项所指定的页可进行读、写或执行;若W=0,对 表项所指定的页可读或执行,但不能对该指定的页写入。用 户/超级用户位:指示该表项所指定的页是否是用户级页。 若U/S=1,表项所指定的页是用户级页,可由任何特权级下 执行的程序访问;如果U/S=0,表项所指定的页是系统级页, 只能由系统特权级0、1和2上执行的程序访问。通写位:如 果PWT置1,相关页使用通写策略。否则,采用回写策略。
微处理器存储器管理技术(6学时 学时) 第二章 微处理器存储器管理技术 学时
知 识 概 述 学时) 实模式存储器寻址(2学时 第一节 实模式存储器寻址(2学时) 学时) 第二节 保护模式存储器寻址 (4学时 学时
退出
第一节 实模式存储器寻址
80286及其以上的微处理器可工作于实模式或者保护 模式,而8086只能工作于实模式。 实模式只允许微处理器寻址第一个1MB内存空间,即 使是PentiumⅣ微处理器也是如此。 DOS操作系统要求微处理器工作于实模式。 实模式操作是允许为8086编写的应用软件不用修改就 可以在80286及更高型号的微处理器中运行。 在任何情况下,这些微处理器每次加电或复位后都默 认地以实模式开始工作。
退出
2.2.1
1. 访问权限字节功能如图2.6所示。 2. 保护模式下的寻址:图2.7表示含选择子的段寄存器如何 从全局描述符表中选择一个描述符,从描述符中如何选择 存储器的一个段。
退出
2.2.1
2.2.2 分页存储器管理
分页管理将克服分段管理的缺点,把虚拟存储空间和 内存物理空间都划分长度为4KB的页,页的起点和终点地 址都是固定的。
退出
二、描述符
图2.5表示80286、80386~PentiumⅣ的描述符格式。 2.5表示80286、80386~PentiumⅣ的描述符格式。 表示80286 的描述符格式 注意每个描述符长8个字节, 注意每个描述符长8个字节,所以全局和局部描述符表每 个最长为64KB 64KB。 个最长为64KB。 例2-1 如果段的基地址为10000000H,界限为001FFH, 如果段的基地址为10000000H,界限为001FFH, 10000000H 001FFH 位为0 求段的结束地址; 位为1 G位为0时,求段的结束地址;若G位为1时,求段的结束地 址。 base=10000000H G=0 End=Base+Limit=10000000H+001FFH=100001FFH G=1 End= Base+Limit=10000000H+001FFFFF=101FFFFFH
在保护模式下,当寻址内存中的数据和程序时,仍然 使用偏移地址访问位于存储段内的信息。区别是,保护模 式下的段地址不再像实模式那样由段寄存器提供。在原来 存放段地址的段寄存器里含有一个选择子,用于选择描述 表内的一个描述符。描述符描述存储器段的位置、长度和 描述存储器段的位置、 描述存储器段的位置 访问权限。两种模式之间的区别是微处理器访问存储段时 访问权限 两种模式之间的区别是微处理器访问存储段时 对段寄存器的解释不同。 对段寄存器的解释不同。
退出
2.2.2
退出
图2.1 实模式内存的寻址机制
退出
图2.3 应用程序装入DOS 内存系统示意图
Байду номын сангаас出
图2.4 保护模式下段寄存器的内容
80286描述符
80386~PentiumⅣ
7
000000 00 访问权限
000000 6 00 基(B23B16)
4
界限 ( 7 基(B31-B24 G D 0 A 6 V L19) L16)
退出
2.1.1
段地址和偏移地址
图2.1说明了段加偏移的寻址机制如何选择内存单元。 1. 逻辑地址:用冒号连接段地址和偏移地址,即段地址: 偏移地址。 2. 物理地址:物理地址=段的起始地址+偏移地址=段地址 ×10H+偏移地址。
退出
2.1.2
默认段和偏移寄存器
微处理器有一套规则,用于每次访问内存段,这套规 则既适合于实模式也适合于保护模式,规则如下: 1. 用CS:IP或CS:EIP定位微处理器执行的下一条指令。 2. 用SS:SP或SS:ESP寻址存储器堆栈段中的数据。 3. 用DS或ES寻址存储器的数据段中的数据。 8086~80286允许访问4个存储段,80386~PentiumⅣ允 许访问6个存储段。注意内存段可以相邻甚至重叠,如果 一段不需要64KB内存,则它可与其它段重叠。 例如某个应用程序的代码需要1000H个字节的内存, 数据需要190H个字节的内存,堆栈需要200H个字节的内存, 这个应用程序不需要附加段。图2.3表示了DOS是如何装入 应用程序的。
退出
2.1.3
程序重定位问题的实现
1. 可重定位程序:是一个可以放在内存任何区域,不加修 改而仍能执行的程序。 2. 可重定位的数据:是可以放在内存任何区域,且不需要 修改就可以被程序应用的数据。 段加偏移寻址机制允许程序和数据不需要任何修改, 而使程序和数据重定位。
退出
第二节
保护模式存储器寻址
通写式高速缓冲存储器 回写式高速缓冲存储器
退出
2.2.2
四、转换后备缓冲区
因为进行4KB存储器重新分页的操作要求使用存储 器内的页目录和页表,所以Intel构造一个称为TLB的高 速缓冲存储器。在80486微处理器中,TLB保存了32个最 近使用的页转换地址。因此如果访问某个存储区,其地 址已经在TLB中,就不需要在访问页目录和页表,这样 加速了程序的执行。如果一个页表转换不在TLB中,则 必须访问页目录和页表,这就需要额外的执行时间。 (本章结束)
述
基本概念:实模式,实空间,段地址,偏移地址, 保护模式,虚拟存储空间,段选择子,描述符 重点:实模式存储器寻址,默认的段加偏移,保 护模式下的存储器寻址 难点:保护模式下分页机制的存储器寻址
退出
12
6
5
4
3
2
1
0
页表地址或页地址
P P D A C W U W P D T
图2.9 页目录项和页表项格式
退出
通写式高速缓冲存储器,在CPU向Cache写入的同时, 也把数据写入相应内存单元。保证Cache和内存中相应单 元数据的一致性。通写式速度慢,而且有些操作是不必要 的,比如CPU连续多次更新一个Cache单元的内容,将导致 相应内存单元连续多次被写入,而效果其实和写入最后一 次更新是一样的。
退出
通写式高速缓冲存储器
回写式高速缓冲存储器,CPU修改了Cache的内容 后,并不立即修改内存中相应的单元。只有当回写操作 被执行的时候,才修改相应内存单元。比如该Cache单 元的内容从Cache中撤销时触发回写操作。回写式速度 快,也避免了一些不必要的操作。
退出
回写式高速缓冲存储器
知 识
概
退出
2.2.1分段存储器管理 分段存储器管理
一、选择子
在保护模式下,段寄存器的功能如图2.4所示,段寄 存器包括13位的选择子字段、表指示器位(table indicator,TI)和请求优先级(requested privilege level, RPL)字段。其中13位的选择子可从描述符表的 213=8192个描述符中选择一个。TI位选择全局描述附表 (TI=0)或局部描述附表(TI=1)。 1. 对于286由于偏移地址是16位长,所以一个段的最 大容量为64KB。因此逻辑空间,也即虚拟空间为 214×216=230=1GB。 2. 而对于80386~PentiumⅣ,它的偏移地址为32位长, 所以一个段的最大容量为4GB。因此虚拟地址空间为 214×232=246=64TB。
退出
2.2.2
禁用高速缓冲位PCD:如果PCD位被清除为0, 则页表或页面可用高速缓存;若PCD置位,禁用高 速缓存。 访问位:A=1,表示已访问过对应的物理页。 脏位:对于页目录项,D位是未定义。对于页 表项,D位用来记录页表项所描述的页是否进行过 数据写入,D=0 该页中的内容没有被改动过。D=1 该页中的内容已经被改动过了(被写过)。
5
5 3 1
访问权限
基(B23-B16) 4
2 0
基(B15-B0) 界限(L15-L0)
2 0
3 1
基(B15-B0) 界限(L15-L0)
图2.5 80286和80386~PentiumⅣ微处理器的描述符格式 和 Ⅳ
退出
退出
图2.6 80286~PentiumⅣ 描述符中 Ⅳ 的访问权限字节
D S 寄 存 器 从 全 局 描 述 符 表 中 选 择 一 个 描 述 符
一、分页寄存器
分页机制的启用是由微处理器中控制寄存器的内容 控制。控制寄存器CR CR0 CR3的内容见图 控制。控制寄存器CR0到CR3的内容见图2.8。
退出
二、分页机制的存储器的组织
1. 物理内存分页:一个物理页的大小为4KB,页与页互不重 叠,只需要32bit的地址中高20bit来寻址物理页。 2. 页表:页表中的每一项的内容(每项4个字节,32位)高 20位用来存放一个物理页 用来存放一个物理页的起始物理地址,低12bit放着 用来存放一个物理页 一些关于该页的其它信息。 3. 页目录:页目录中的每一项的内容(每项4个字节)高 20bit用来存放一个页表 用来存放一个页表的起始物理地址,低12位存放该 用来存放一个页表 页表的其它信息。 4. 从前面的讲解可以知道,对于80386~PentiumⅣ系统,页 目录的物理地址放在CPU的CR3寄存器中高20位。 其寻址过程是:CR3→页目录→页表→物理内存分页。
退出
31
12 11
0
M C E 页目录基地址 页故障线性地址 未用 P C N G D W A M
18
P S E P C D
T P V D S V M E D I E P W T
CR4
CR3
CR2
CR1
W P
16
N E T E MP E T S MP E
CR0
图2.8 微处理器控制寄存器结构
退出
31