第四次作业参考答案 1.判断下面描述符所描述的段的性质 00000000 01010000 00000011 解:P=1,段在内存中 S=1,为段描述符 DPL=1,段的特权级为1 A=0,段尚未被访问 E=0,为数据段 ED=0,段向上扩展 可写 段长以字节为单位 D=1,为32位指令方式 AVL=1,程序可用 段基址为000A0000H,段界限为003FFH。 2.如果(GDTR)=002100001FH,那么GDT的起始地址和终止地址是什么?表长 多少?表中能存放多少个描述符? 解:GDT的起始地址为:00210000 终止地址为:002101FFH 表长:01FFH+1=512; 表中能存放512/8=64个描述符 3.如果允许分页,那么 Pentium微处理器的地址空间可以分成多少页? 解:整个存储器有一个页目录,它最多有1024个页目录项,每个页目录项可含有 1024个页面项,因此 Pentium微处理器的地址空间可以分成1024×1024=M个页 4.若将线性地址0020000送给分页机制,那么将访问哪个页目录项,哪个页 表项? 解:线性地址的格式为
第四次作业参考答案 1. 判断下面描述符所描述的段的性质 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 解:P=1,段在内存中 S=1,为段描述符 DPL=1,段的特权级为 1 A=0,段尚未被访问 E=0,为数据段 ED=0,段向上扩展 W=1,可写 G=0,段长以字节为单位 D=1,为 32 位指令方式 AVL=1,程序可用 段基址为 000A0000H,段界限为 003FFH。 2. 如果(GDTR)=0021000001FFH,那么 GDT 的起始地址和终止地址是什么?表长 多少?表中能存放多少个描述符? 解:GDT 的起始地址为:00210000H; 终止地址为:002101FFH; 表长:01FFH+1=512; 表中能存放 512/8=64 个描述符。 3. 如果允许分页,那么 Pentium 微处理器的地址空间可以分成多少页? 解:整个存储器有一个页目录,它最多有1024个页目录项,每个页目录项可含有 1024个页面项,因此Pentium微处理器的地址空间可以分成10241024=1M个页。 4. 若将线性地址 00200000H 送给分页机制,那么将访问哪个页目录项,哪个页 表项? 解:线性地址的格式为
31 2221 目录 偏移量 00200000H=00000000001000000000000000000000B: 所以,将访问第0个页目录项,第512个页表项。 5.试述TLB的作用 解:TLB(转换后援缓冲器)为一个 Cache,其中保存了32个最近使用的页转换 地址。若再次访问同样的存储区域,则不必再访问页目录和页表,可以加快程序 的运行。 关于TLB的作用,再补充一些说明: 实现分页机制,处理器需通过页目录和页表将线性地址转换成物理地址, 这样在进行地址转换时,处理器要两次访问内存,从而降低处理器的性能。为解 决这一问题, Pentium处理器内部采用称为TLB( Translation lookaside buffer 转换后援缓冲器)的髙速缓存将最近进行的线性-物理地址转换保存起来 存放在TB中的信息包含两个字段,一个是标记(Tag)字段,用来保存线 性地址的1231位,另一个是页表数据字段,包含物理地址和R/W、U/S等信息。 当分页部件把线性地址转换成物理地址时,首先用线性地址的12~31位对TLB 的标记字段进行检索,如果检索成功(命中),那么就使用存放在TLB的页表数 据字段中的物理地址进行地址转换。如果未命中,那么处理器必须通过内存中的 页目录和页表进行地址转换,同时将相应的转换信息保存在TLB中。当TLB装满 时,采用LRU(最近最少使用)算法进行置换。TLB的结构如下图 31 线性地址 比较 标记 页表数据
目录 页 偏移量 31 22 21 12 11 0 00200000H=0000 0000 0010 0000 0000 0000 0000 0000B; 所以,将访问第 0 个页目录项,第 512 个页表项。 5. 试述 TLB 的作用 解:TLB(转换后援缓冲器)为一个 Cache,其中保存了 32 个最近使用的页转换 地址。若再次访问同样的存储区域,则不必再访问页目录和页表,可以加快程序 的运行。 关于 TLB 的作用,再补充一些说明: 实现分页机制,处理器需通过页目录和页表将线性地址转换成物理地址, 这样在进行地址转换时,处理器要两次访问内存,从而降低处理器的性能。为解 决这一问题,Pentium 处理器内部采用称为 TLB(Translation Lookaside Buffer, 转换后援缓冲器)的高速缓存将最近进行的线性-物理地址转换保存起来。 存放在 TLB 中的信息包含两个字段,一个是标记(Tag)字段,用来保存线 性地址的 12~31 位,另一个是页表数据字段,包含物理地址和 R/W、U/S 等信息。 当分页部件把线性地址转换成物理地址时,首先用线性地址的 12~31 位对 TLB 的标记字段进行检索,如果检索成功(命中),那么就使用存放在 TLB 的页表数 据字段中的物理地址进行地址转换。如果未命中,那么处理器必须通过内存中的 页目录和页表进行地址转换,同时将相应的转换信息保存在 TLB 中。当 TLB 装满 时,采用 LRU(最近最少使用)算法进行置换。TLB 的结构如下图: 0 31 标记 页表数据 31 12 0 线性地址 比较 TLB 01