2.2 课后习题详解
2.1 微处理器主要由哪几部分构成?
答:微处理器主要由运算器ALU,控制器CU,内部存储器RA三部分构成。
2.2 什么是多核处理器?
答:多核处理器是指在一枚处理器中集成两个或多个完整的计算引擎(内核),又称单芯片多处理器技术。
2.3 说明8088 CPU中EU和BIU的主要功能。在执行指令时,BIU能直接访问存储器吗?
答:可以。因为EU和BIU可以并行工作,EU需要的指令可以从指令队列中获得,这是BIU预先从存储器中取出并放入指令队列的。在EU执行指令的同时,BIU可以访问存储器,取下一条指令或指令执行时需要的数据。
2.4 当8088 CPU工作在最小模式时,请回答下述问题。
(1)当CPU访问存储器时,要利用哪些信号?
(2)当CPU进行I/O操作时,要利用哪些信号?
(3)当HOLD有效并得到响应时,CPU的哪些信号置高阻?
答:(1)要利用的信号线包括WR#、RD#、IO/M#、ALE、DEN、DT/R#以及AD0~AD7、A8~A19。
(2)要利用的信号线包括:WR#、RD#、IO/M#、ALE、DEN、DT/R#以及AD0~AD7、A8~A19。
(3)所有三态输出的地址信号、数据信号和控制信号均置为高阻态。
(注:#相当于上横线,如:WR#=。)
2.5 总线周期中,何时需要插入TW等待周期?插入TW周期的个数取决于什么因素?
答:在每个总线周期T3的开始处若READY为低电平,则CPU在T3后插入一个等待周期TW。在TW的开始时刻,CPU还要检查READY状态,若仍为低电平,则再插入一个TW。此过程一直进行到某个TW开始时,READY已经变为高电平,这时下一个时钟周期才转入T4。
可以看出,插入TW周期的个数取决于READY电平维持的时间。
2.6 若8088工作在单CPU方式下,请在下表中填入不同操作时各控制信号的状态。
表2-2
答:
表2-3
2.7 在8086/8088 CPU中,标志寄存器包含哪些标志位?各位为0(为1)分别表示什么含义?
答:标志寄存器包含以下标志位;
CF进位标志位。若算术运算时最高位有进(借)位,则CF=1,否则CF=0。
PF奇偶标志位。当运算结果的低8位中1的个数为偶数时PF=1,为奇数时PF=0。
AF辅助进位位。在加(减)法操作中,b3向b4有进位(借位)时,AF=1,否则AF=0。
ZF零标志位。当运算结果为零时ZF=1,否则ZF=0。
SF符号标志位。当运算结果的最高位为1时,SF=1,否则SF=0。
OF溢出标志位。当算术运算的结果溢出时,OF=1,否则OF=0。
TF跟踪标志位。TF=1时,使CPU处于单步执行指令的工作方式。
IF中断允许标志位。IF=1使CPU可以响应可屏蔽中断请求。IF=0时,则禁止响应中断。
DF方向标志位。DF=1使串操作按减地址方式进行。DF=0使串操作按增地址方式进行。
2.8 8086/8088 CPU中,有哪些通用寄存器和专用寄存器?说明它们的作用。
答:(1)通用寄存器包括:
①数据寄存器AX、BX、CX和DX。它们一般用于存放参与运算的数据或运算的结果。
AX主要存放算术逻辑运算中的操作数,并存放I/O操作的数据。
BX存放访问内存时的基地址。
CX在循环和串操作指令中用作计数器。
DX在寄存器间接寻址的I/O指令中存放I/O地址。在做双字长乘除法运算时,DX与AX合起来存放一个双字长数。
②地址寄存器SP、BP、SI和DI。SP存放栈顶偏移地址,BP存放访问内存时的基地址。SP和BP也可以存放数据,但它们的默认段寄存器都是SS。SI和DI常在变址寻址方式中作为索引指针。
(2)专用寄存器包括:
①段寄存器CS、DS、ES和SS。其中,CS是代码段寄存器,SS是堆栈段寄存器,DS是数据段寄存器,ES是附加数据段寄存器。段寄存器用于存放段起始地址的高16位。
②控制寄存器IP、FLAGS。IP(Instruction Pointer)称为指令指针寄存器,用以存放预取指令的偏移地址。CPU取指令时总是以CS为段基址,以IP为段内偏移地址。当CPU从CS段中偏移地址为IP的内存单元中取出指令代码的一个字节后,IP自动加1,指向指令代码的下一个字节。用户程序不能直接访问IP。FLAGS称为标志寄存器或程序状态字(PSW),它是16位寄存器,但只使用其中的9位,这9位包括6个状态标志和3个控制标志(参见教材中图2-9)。
2.9 8086/8088系统中,存储器为什么要分段?一个段最大为多少字节?最小为多少字节?
答:主要目的是便于存储器的管理,使得可以用16位寄存器来寻址20位的内存空间。一个段最大为64KB,最小为16B。
2.10 在8086/8088 CPU中,物理地址和逻辑地址是指什么?已知逻辑地址为1F00:38A0H,如何计算出其对应的物理地址?若已知物理地址,其逻辑地址唯一吗?
答:物理地址是CPU存取存储器所用的地址。逻辑地址是段和偏移形式的地址,即汇编语言程序中使用的存储器地址。
若已知逻辑地址为1F00:38A0H,则对应的物理地址=1F00×16+38A0=228A0H。
若已知物理地址,其逻辑地址不是唯一的。一个物理地址可以对应于不同的逻辑地址。如228A0H对应的逻辑地址可以是1F00H:38A0H、2000H:28A0H、2200H:08A0H等。
2.11 若CS=8000H,则当前代码段可寻址的存储空间的范围是多少?
答:CS=8000H时,当前代码段可寻址的存储空间范围为80000H~8FFFFH。
2.12 8086/8088 CPU在最小模式下构成计算机系统至少应包括哪几个基本部分(器件)?
答:至少应包括8088CPU、8284时钟发生器、8282锁存器(3片)和8286双向总线驱动器。
2.13 在图2-6中,若设备接口0和设备接口1同时申请总线,哪一个设备接口将最先获得总线控制权?为什么?
图2-6 链式查询方式
答:设备接口0先获得总线控制权。因为设备接口0将截获总线回答信号BG,使BG不会传送到设备接口1。
2.14 在南北桥结构的80×86系统中,PCI总线是通过什么电路与CPU总线相连的?ISA总线呢?
答:PCI总线通过北桥芯片与CPU总线相连,ISA总线则通过南桥芯片与PCI总线相连。
2.15 现代微机系统中,总线可分为哪些类型?主要有哪些常用系统总线和外设总线标。
答:按传送信息的类型分,总线可以分为:
数据总线DB——传输数据信息;
地址总线AB——传输存储器地址和I/O地址;
控制总线CB——传输控制信息和状态信息。
按层次结构分,总线可以分为:前端总线、系统总线和外设总线。
常用的系统总线标准有PCI总线、AGP总线和ISA总线等;常用的外设总线标准有USB总线、1394总线等。
2.16 80386CPU包含哪些寄存器?各有什么主要用途?
答:80386共有7类34个寄存器。它们分别是通用寄存器、指令指针和标志寄存器、段寄存器、系统地址寄存器、控制寄存器、调试和测试寄存器。
(1)通用寄存器(8个):EAX、EBX、ECX、EDX、ESI、EDI、EBP和ESP。每个32位寄存器的低16位可单独使用,同时AX、BX、CX、DX寄存器的高、低8位也可分别当作8位寄存器使用。它们与8088/8086中相应的16位通用寄存器的作用相同。
(2)指令指针和标志寄存器:指令指针EIP是一个32位寄存器,存放下一条要执行的指令的偏移地址。标志寄存器EFLAGS也是一个32位寄存器,存放指令的执行状态和一些控制位。
(3)段寄存器(6个):CS、DS、SS、ES、FS和GS。在实模式下,它们存放内存段的段地址。在保护模式下,它们称为段选择符。其中存放的是某一个段的选择符。当选择符装入段寄存器时,80386中的硬件会自动用段寄存器中的值作为索引从段描述符表中取出一个8个字节的描述符,装入与该段寄存器相应的64位描述符寄存器中。
(4)控制寄存器(4个):CR0、CR1、CR2和CR3。它们的作用是保存全局性的机器状态。
(5)系统地址寄存器(4个):GDTR、IDTR、LDTR和TR。它们用来存储操作系统需要的保护信息和地址转换表信息、定义目前正在执行任务的环境、地址空间和中断向量空间。
(6)调试寄存器(8个):DR0~DR7。它们为调试提供硬件支持。
(7)测试寄存器(8个):TR0~TR7,其中TR0~TR5由Intel公司保留,用户只能访问TR6、TR7。它们用于控制对TLB中的RAM和CAM相联存储器的测试。TR6是测试控制寄存器,TR7是测试状态寄存器,保存测试结果的状态。
2.17 什么是实地址模式?什么是保护模式?它们的特点是什么?
答:实地址模式是与8086/8088兼容的存储管理模式。当80386加电或复位后,就进入实地址工作模式。物理地址形成与8088/8086样,是将段寄存器内容左移4位与有效偏移地址相加而得到,寻址空间为1MB。
保护地址模式又称为虚拟地址存储管理方式。在保护模式下,80386提供了存储管理和硬件辅助的保护机构,还增加了支持多任务操作系统的特别优化的指令。保护模式采用多级地址映射的方法,把逻辑地址映射到物理存储空间中。这个逻辑地址空间又称虚拟地址空间,80386的逻辑地址空间提供246的寻址能力。物理存储空间由内存和外存构成,它们在80386保护地址模式和操作系统的支持下为用户提供了均匀一致的物理存储能力。在保护模式下,用段寄存器的内容作为选择符(段描述符表的索引)。选择符的高13位为偏移量,CPU的GDTR中的内容作为基地址,从段描述符表中取出相应的段描述符(包括32位段基地址、段界限和访问权等)。该描述符被存入描述符寄存器中。描述符中的段基地址(32位)与指令给出的32位偏移地址相加得到线性地址,再通过分页机构进行变换,最后得到物理地址。
2.18 80386访问存储器有哪两种方式?各提供多大的地址空间?
答:实模式和保护模式。实模式可提供1MB(220)的寻址空间。保护模式可提供4GB(232)的线性地址空间和64TB(246)的虚拟存储器地址空间。
2.19 如果GDT寄存器值为0013000000FFH,装入LDTR的选择符为0040H,试问装入缓存LDT描述符的起始地址是多少?
答:根据(GDTR)=0013000000FFH,得到全局描述符表的基地址为00130000H;再根据LDTR选择符内容为0040H(0000000001000000B),得到索引值为0000000001000B,即0008H。因为每个描述符为8个字节,故所装入的描述符在GDT中的偏移地址为(0008H-1)*8=0038H。所以装入缓存的LDT描述符的起始地址为00130038H。
2.20 页转换产生的线性地址的三部分各是什么?
答:页目录索引、页表索引和页内偏移。
2.21 选择符022416H装入了数据段寄存器,该值指向局部描述符表中从地址00100220H开始的段描述符。如果该描述符的内容为:
(00100220H)=10H,(00100221H)=22H
(00100222H)=00H,(00100223H)=10H
(00100224H)=1CH,(00100225H)=80H
(00100226H)=01H,(0C100227H)=01H
则段基址和段界限各为多少?
答:把题目给出的内容按描述符格式写为如下:
表2-4
根据段描述符的构成可知,段基地址为0000 0001 0001 1100 0001 0000 0000 0000B(见上图中斜黑体字部分),写成十六进制数为011C1000H。段界限为0001 0010 0010 0001 0000B(见上图中黑体字部分),写成十六进制数为12210H。
2.22 Pentium 4的基本程序执行环境包含了哪些寄存器?
答:参见图2-7。
图2-7 奔腾4的基本程序执行环境