第二章80861.8086内部主要包括哪些功能部件?它们完成什么功能?答:8086主要包含两个部件。分别是总线接口单元BIU和执行单元EU。完成的功能分别是负责与存储器、I/O端口传送数据。EU的功能是是负责指令的执行。2.总线周期的含义是什么?8088/8086的基本总线周期由几个时钟组成?答:总线周期:CPU为了读取或者传送数据,需要通过BIU与存储器或I/O接口进行信息交互,执行对总线的操作。进行一次数据传送的总线操作定义为一个总线周期。一个总线周期包含4个时钟周期即4个T状态。如果一个CPU的时钟频率为24MHz,它的一个时钟周期为多少?一个基本总线周期为多少?答:时钟周期:1/24Mhz=总线周期:1/24*43.CPU启动时如何寻找系统的启动程序?答:CPU启动时内部的寄存器被复位。cs为FFFFH,ip为0000h.所以CPU启动时,将从物理地址为FFFF0H处开始执行指令。此处一般存放一条无条件跳转指令,转移到系统程序的入口处。这样,系统一旦被启动,便自动进入系统程序。6.什么叫中断向量?它放在哪里?对应于1CH的中断向量放在哪里?答:中断向量即中断处理子程序的入口地址,每个中断类型对应一个中断向量。占用4个存储字节。所有中断向量排列起来,在内存的00000~003FFH形成一张表,称为中断向量表。7.8086如何区分存储器操作和I/O操作?怎样用16位寄存器实现对20位地址的寻址答:8086微处理器通过指令区分对存储器的操作和I/O操作。并通过引脚M/IO发出对应控制信号。高电平时为存储器操作。低电平时为I/O操作采用分段技术实现16位寄存器对20位地址的寻址。20位的物理地址等于段基址*16+16位的偏移地址第四章奔腾1.解释Pentium中的分支预测技术。答:1、大多数分支指令转向每个分支的机会是不均等的。2、大多数分支转移指令排列在循环程序段中,这两点造成的综合结果是,在程序的运行中,同处同一条分支转移指令可能多次甚至成百上千次的循环。其结论就是分支转移指令的转移目标地址是可以预测的,预测的依据就是前一次转移目标地址即所谓的历史状态。奔腾采用上述中的结论来执行预测分析功能。2.Pentium有几种工作方式?各有何特点?各方式之间如何切换?答:奔腾一共有4中工作方式。分别是实地址方式、保护方式、虚拟8086方式和系统管理方式。奔腾在刚加电或者在刚复位的时候,便进入实地址方式。在实地址方式完成初始化后,立即转到保护方式。在保护方式下可以通过软件切换到虚拟8086方式。可以在CPU引脚上通过系统管理中断进入系统管理方式。3.什么是超标量流水线机制?请说明Pentium的两条流水线全速运行的条件。答:一个处理器中有多条流水线即成为超标量流水线。U流水线可以执行任何指令,但V流水线只能执行和U流水线当前执行的指令符合配对规则的指令。配对规则即:两条指令都是risc指令,而且互相没有寄存器相关性。4.Pentium的逻辑地址、线性地址、物理地址分别指什么?它们的寻址能力如何?课本第150页151页答:逻辑地址,编写的源程序中使用的地址。地址由32位段基址和32位偏移地址相加得到32位的线性地址物理地址则是CPU真正使用的地址。寻址能力???5.Pentium中的段基址与8086中的有何异同?答:奔腾中的段基址是通过段选择子找到的,通过16的段选择子,找到对应段的段描述符,在根据段描述符找到32位的段基址。而8086中的段基址是由程序指定的。6.简述Pentium在保护方式下存储器物理地址的形成过程。答:Pentium在保护方式下存储器用三种方式来描述:逻辑地址、线性地址和物理地址。逻辑地址程序员编写的源程序中使用的地址,也叫虚拟地址。共48位,由16位段选择子和32位偏移地址构成。根据段选择子的内容可以获取对应的段描述符,而段描述符中的32位段基址与虚拟地址的32位偏移地址相加得到线性地址,如课本中图4.17所示。线性地址分页组目录项索引、页表项索引和页内偏移量3个字段体现其功能。通过如课本中图4.18所示的过程得到物理地址。7.试比较8086最小模式下读周期与Pentium的非流水线式读周期有何不同。8.试比较Pentium流水线式读/写周期与突发式读/写周期有何不同。9奔腾的寻址方式答:立即数寻址、寄存器寻址、输入输出端口寻址和存储器寻址四种。7.在8086系统中,AD0和BHE有什么用途?8086系统中,数据和地址总线是分时复用的,AD0在作为地址引脚时是A0,表示地址引脚的最低位。8086的存储器采用分体结构,即1M字节的存储空间分为2个512K字节的存储体,一个包含偶数地址,另一个包含奇数地址,两者采用字节交叉编址方式。其中偶地址存储体固定与低8位数据总线相连,奇地址存储体固定与高8位数据总线相连,BHE和A0相互配合,使CPU可以访问一个存储体中的一个字节或同时访问两个存储体中的一个字。BHE和A0的控制作用如下表所示:BHEA0总线使用情况0016位数据总线上进行字传送01高八位数据总线上进行字节传送10低八位数据总线上进行字节传送11无效请求分页管理系统中,假设某进程的页表内容如下表所示•页面大小为4KB,一次内存的访问时间是100ns,一次快表(TLB)的访问时间是10ns,处理一次缺页的平均时间为108ns(已含更新TLB和页表的时间),进程的驻留集大小固定为2,采用最近最少使用置换算法(LRU)和局部淘汰策略。假设①TLB初始为空;②地址转换时先访问TLB,若TLB未命中,再访问页表(忽略访问页表之后的TLB更新时间);③有效位为0表示页面不在内存,产生缺页中断,缺页中断处理后,返回到产生缺页中断的指令处重新执行。设有虚地址访问序列2362H、1565H、25A5H,请问:•(1)依次访问上述三个虚地址,各需多少时间?给出计算过程。•(2)基于上述访问序列,虚地址1565H的物理地址是什么?请说明理由。答案(1)根据页式管理工作原理,应先考虑页面大小,以便将页号和页内位移分解出来。页面大小为4KB,即212,则得到页内位移占虚地址12位,页号占剩余高位。可得三个虚地址的页号P如下:2362H:P=2,访问块表10ns,因初始为空,访问页表100ns得到页框号,合成物理地址后访问主存100ns,共计10ns+100ns+100ns=210ns。1565H:P=1,访问块表10ns,落空,访问页表100ns,落空,进行缺页中断处理108ns,合成物理地址后访问主存100ns,共计10ns+100ns+108ns+100ns=318n。25A5H:P=2,访问块表,因第一次访问已将该页号放入块表,因此花费10ns便可合成物理地址,访主存100ns,共计10ns+100ns=110ns。(2)当访问虚地址1565H时,产生缺页中断,合法驻留集为2,必须从页表中淘汰一个页面,根据题目的置换算法,应淘汰0号页面,因此1565H的对应页框号为101H。由此可得1565H物理地址为101565H。某计算机的主存地址空间大小为256MB,按字节编址。指令Cache和数据Cache分离,均有8个Cache行,每个Cache行大小为64B,数据Cache采用直接映射方式。现有两个功能相同的程序A和B,其伪代码如下所示:程序A:inta[256][256];......intsum_array1(){inti,j,sum=0;for(i=0;i256;i++)for(j=0;j256;j++)sum+=a[i][j];returnsum;}程序B:inta[256][256];......intsum_array2(){inti,j,sum=0;for(j=0;j256;j++)for(i=0;i256;i++)sum+=a[i][j];returnsum;}假定int类型数据用32位补码表示,程序编译时i,j,sum均分配在寄存器中,数组a按行优先方式存放,其首地址为320(十进制数)。请回答下列问题,要求说明理由或给出计算过程。(1)若不考虑用于Cache一致性维护和替换算法的控制位,则数据Cache的总容量为多少?(2)数组元素a[0][31]和a[1][1]各自所在的主存块对应的Cache行号分别是多少(Cache行号从0开始)?(3)程序A和B的数据访问命中率各是多少?哪个程序的执行时间更短?[答案](1)数据Cache的总容量为:4256位(532字节)。(2)数组a在主存的存放位置及其与Cache之间的映射为:a[0][31]所在主存块映射到Cache第6行,a[1][1]所在主存块映射到Cache第5行。(3)编译时i,j,sum均分配在寄存器中,故数据访问命中率仅考虑数组a的情况。①程序A的数据访问命中率为93.75%;②程序B的数据访问命中率为0。程序A的执行比程序B快得多。[解析](1)主存容量256MB,按字节寻址的地址位数应为28位,数据Cache分为8行(用3位地址),每行64B(用6位地址),因此Cache中每个字块的Tag字段的位数应是28-9=19位,还要使用一个有效位,二者合计为20位;因此数据Cache的总容量应为:64B×8+(20/8×8)B=532B。(2)数组a在主存的存放位置及其与Cache之间的映射关系如下图所示。数组A[0][31]所在的主存块对应的Cache行号是:(320+31×4)div64=6,数组A[1][1]所在主存块对应的Cache行号:((320+256×4+1×4)div64)mod8=5。所以a[0][31]所在主存块映射到Cache第6行,a[1][1]所在主存块映射到Cache第5行。(3)编译时i,j,sum均分配在寄存器中,故数据访问命中率仅考虑数组a的情况。①这个程序的特点是数组中的每一个int类型的数据只被使用一次。数组A按行优先存放,数据Cache正好放下数组半行中的全部数据,即数据的存储顺序与使用次序有更高的吻合度,每个字块存16个int类型的数据,访问每个字块中头一个字不会命中,但接下来的15个字都会命中,访问全部字块都符合这一规律,命中率是15/16,即程序A的数据访问命中率为93.75%;②程而程序B是按照数组的列执行外层循环,在内层循环过程中,将连续访问不同行的同一列的数据,不同行的同一列数据使用的是同一个Cache单元,每次都不会命中,命中率是0,程序执行特别慢。根据上述计算出的命中率,得出程序B每次取数都要访问主存,所以程序A的执行比程序B快得多。1.存储器的片选信号有哪几种构成方式?各有何优缺点?答:一共有4中构成方式。分别是线选法、全译码法、部分译码法和混合译码法。线选法:连法简单,不必加片选译码器。缺点1、整个存储器的地址常常不连续2、同一个单元可对应不同的地址。全译码法:存储器单元的地址是唯一的,不会有地址重叠的问题,也可以保证地址的连续。部分译码法:会有地址重叠问题,因为没有选用高地址为1或0时,可能选择了同一个存储单元。选择不同的高位地址产生片选信号,会产生不同的地址空间。混合译码法:会有地址不连续和重叠问题。2.存储器访问中的对准状态的含义是什么?程序设计中避免非对准状态有何好处?如何做到?答:所谓对准存放,即我们所说的标准存放方式。非对准存放,即非标准存放方式。存储器中一个单元只能存放一个8位的数据,而微处理器如8086一次可处理16位的数据(当然8位亦可)。当我们处理16的数据时,就必须访问存储器的两个单元(共16位)。16位数据在存储器中有两种存放方式。第一种(标准存放):16位的低8位存放在偶地址单元,高8位存放在奇地址单元。如数据1122H存放在4400H,与4401H单元中。22H在4400H中,11H在4401H中。第二种(非标准存放):16位的低8位存放在奇地址单元,高8位存放在偶地址单元。如数据1122H存放在4401H,与4402H单元中。当数据为标准存放方式时,使用16位数据只需访问存储器一次。而非标准存放方式,则需要访问两次存储器。对准状态下,一个对准字的