计算机组成原理 题库答案汇总

P1000

B

 

P1001

C

 

P1002

C

 

P1003

C

 

P1004

B

 

P1005

A

 

P1006

C

 

P1007

A

 

P1008

A

 

P1009

C

 

P1010

C

 

P1011

C

 

P1012

B

 

P1013

A

 

P1014

A

 

P1015

B

 

P1016

A

 

P1017

B

 

P1018

A

 

P1019

C

 

P1020

停止 CPU访问主周期挪用DMACPU交替访问主存

 

P1021

2127(1-223) 2129 -2127

 

P1022

页式虚拟存储,段式虚拟存储,段页式虚拟存储.

 

P1023

90ns,280ns

 

P1024

地址总线,数据,控制

 

P1025

触发器,电容

 

P1026

集中 分散 异步

 

P1027

cache 内存

 

P1028

X

 

P1029

X

 

P1030

 

P1031

X

 

P1032

X

 

P1033

X

 

P1034

X

 

P1035

 

P1036

×

 

P1037

x

 

P1038

将计算机需进行的工作事先编写成程序,存入计算机中,运行程序时计算机自动进行工作。

 

P1039

介于CPU与主存之间,速度较快、容量较小、价格较贵的存储器,引入CACHE的目的是提高存储系统的速度。

 

P1040

CPU运行主程序时,接受到非预期的中断请求,CPU暂停现行工作转向为中断请求服务,待服务完毕后回到住程序继续执行。

 

P1041

连接机器内部各大部件的信息公共通道。

 

P1042

用于解释机器指令的若干条微指令的有序集合。

 

P1043

单位时间传送的二进制信息的字节数。

 

P1044

DMA方式,Direct Memory Access,也称为成组数据传送方式,有时也称为直接内存操作。DMA方式在数据传送过程中,没有保存现场、恢复现场之类的工作。
由于CPU根本不参加传送操作,因此就省去了CPU取指令、取数、送数等操作。内存地址修改、传送字 个数的计数等等,也不是由软件实现,而是用硬件线路直接实现的。所以DMA方式能满足高速I/O设备的要求,也有利于CPU效率的发挥。

 

P1045

随机存取(直接存取,Random Access)指的是当存储器中的数据被读取或写入时,所需要的时间与该数据所在的物理地址无关。

 

P1046

软件与硬件的逻辑功能是等效的,但性能不相同。

 

P1047

运算器是进行算术逻辑运算的部件。它主要由加法器、通用寄存器、标志寄存器等部件组成。

 

P1048

ROM掉电后信息不会丢失,但其中的信息只能读不能随便写。

 

P1049

速度快。响应快、优先级高、处理快、无须现场保护和现场的恢复。但是应用范围没有程序中断控制方式广。

 

P1050

把指令执行所需要的所有控制信号存放在控制存储器中,需要时从这个存储器中读取,即把操作控制信号编成微指令,存放在控制存储器中。一条机器指令的功能通常用许多条微指令组成的序列来实现,这个微指令序列称为微程序。微指令在控制存储器中的存储位置称为微地址。

 

P1051

数据格式、地址译码、控制信息的组织和状态信息的反馈。

 

P1052

地址译码。选取接口中有关寄存器,也就是选择了I/O设备;

命令字/状态字寄存器。供CPU输出控制命令,调回接口与设备的状态信息;

数据缓存。提供数据缓冲,实现速度匹配;

控制逻辑。如中断控制逻辑、与设备特性相关的控制逻辑等。

 

P1053

提高处理器和内存之间的带宽
提高处理器和内存的速度

 

P1054

X=26/32Y=--15/32,采用二进制变形补码计算

[X+Y]=? 并讨论计算结果。

:X=0.11010       Y= - 0.01111    

[X+Y]=0.01011     

无溢出    

 

P1055

X∧Y=00010010

∨Y=10111111

 

P1056

设有一个具有12位地址和4位字长的存储器,

1)该存储器能存储2K字节信息。

2)如果存储器由1K×1RAM芯片组成.需要16片。

3)需要地址2位作为芯片选择。

4 (图略)

 

P1057

(1) ROM  64K              RAM    192K         

(2) 数据线有16根,地址线有18根。    

(3) 需   ROM   2片 ,需RAM    3片。    

(4) (图略)           

 

P1058

CPU 是计算机中进行算术逻辑运算和指挥协调机器各大部件工作的部件。

IRPSWGRALUPC等。

(图略)

 

P1059

C

为了缩短指令中某个地址段的位数,有效的方法是采取间接寻址

由于计算机中寄存器的数量一般很少,采用寄存器寻址时可用少量的代码来指定寄存器,这样可以减少对应地址段的代码位数,也可减少整个指令的代码长度。

注意:寄存器寻址是用寄存器作为源操作数,这里需要的是内存地址。

实模式下的寻址方式:

因为涉及到的是内存地址段的位数,所以需要内存寻址,直接寻址不能指定位数,而间接寻址可以通过指定 bx 或 bp 寄存器减少位数。

 

P1060

B

 

P1061

D

 

P1062

B

 

P1063

A

 

P1064

C

 

P1065

A

P1066

C

 

P1067

B

 

P1068

D

 

P1069

C

 

P1070

C

 

P1071

C

 

P1072

B

 

P1073

C

 

P1074

D

 

P1075

B

 

P1076

C

 

P1077

A

 

P1078

B

 

P1079

硬件 系统软件   应用软件

 

P1080

数据 地址控制 

 

P1081

参考答案:D

Ⅰ.CPU 的时钟频率,也就是 CPU 主频率,一般说来,一个时钟周期内完成的指令数是固定的,所以主频越高,CPU 的速度也就快,程序的执行时间就越短。

Ⅱ.数据在功能部件之间传送的路径称为数据通路,数据通路的功能是实现 CPU 内部的运算器和寄存器以及寄存器之间的数据交换。优化数据通路结构,可以有效提高计算机系统的吞吐量,从而加快程序的执行。

Ⅲ.计算机程序需要先转化成机器指令序列才能最终得到执行,通过对程序进行编译优化可以得到更优的指令序列,从而使得程序的执行时间也越短

 

P1082

解答:

冯·诺依曼结构计算机的功能部件包括输入设备、输出设备、存储器、运算器和控制器,程序的功能都通过中央处理器(运算器和控制器)执行指令,A正确。

指令和数据以同等地位存于存储器内,形式上无差别,只在程序执行时具有不同的含义,B正确。

指令在地址访问,数据由指令的地址码指出,除立即寻址,数据均存放在存储器内,C错误。

在程序执行前,指令和数据需预先存放在存储器中,中央处理器可以从存储器存取代码,D正确。

本题选C。

P1083

参考答案:A

 

P1084

参考答案:D

 

P1085

参考答案:D

解析:程序 A 的运行时间为 100 秒,除去 CPU 运行时间 90 秒,剩余 10 秒为 I/O 时间。CPU 提速后运行基准程序 A 所耗费的时间是 T=90/1.5+10=70 秒。

 

P1086

解答:C。无符号整数比较,如A>B,则A-B无进位/借位,也不为0。故而CF和ZF均为0。

P1087

解答:D。送分题。

 

P1088

参考答案:B

答案解析:机器字长:是指计算机进行一次整数运算所能处理的二进制的位数,通常与CPU的寄存器位数,加法器有关

 

P1089

C

P1090

A

P1091

考查浮点加法运算。
根据题意,X可记为00, 111; 00, 11101(分号前为阶码,分号后为尾数),Y可记为00, 101; 00, 10100。
首先对阶,X、Y 阶码相减,即 00, 111-00, 101=00, 111+11, 0111=00, 010,可知 X 的阶码比 Y 的价码大 2,根据小阶向大阶看齐的原则,将 Y 的阶码加 2,尾数右移 2 位,可得 Y 为 00, 111; 00, 00101。
尾数相加,即 00, 11101+00, 00101=01, 00010,尾数相加结果符号位为 01,故需进行右规。
规格化,将尾数右移 1 位,阶码加 1,得 X+Y 为 01, 000; 00, 1000,阶码符号位为 01,说明发生溢出。

P1092

参考答案:B

考查定点数的运算。

用补码表示时 8 位寄存器所能表示的整数范围为-128~+127。由于 r1 = -2,r2 = -14,r3 = -112,r4 = -8,则 r2×r3 = 1568,结果溢出。

 

P1093

参考答案:B

考查不同精度的数在计算机中的表示方法及其相互装换。由于(int)f=1,小数点后面 4 位丢失,故 II 错。IV 的计算过程是先将 f 转化为双精度浮点数据格式,然后进行加法运算,故(d+f)-d 得到的结果为双精度浮点数据格式,而 f 为单精度浮点数据格式,故 IV错。

 

P1094

解答:

方法一:二进制计算

unsigned short为16位无符号短整型,表示范围为0~65535,usi = 65535 = 1111 1111 1111 1111B。short为16位有符号短整型,表示范围为-32768~32767,用补码表示,[si]补=1111 1111 1111 1111B,[si]原=1000 0000 0000 0001B=-1。

本题选A。

方法二:十进制计算

unsigned short为16位无符号短整型,表示范围为0~65535,short为16位有符号短整型,表示范围为-32768~32767,两者表示范围大小均为65536,65535强转为short后溢出,负向偏移65536得65535-65536=-1。

本题选A。

P1095

参考答案:B

 

P1096

参考答案:D

 

P1097

参考答案:A

解析:IEEE 754 单精度浮点数格式为 C640 0000H,二进制格式为 1100 0110 0100 0000 0000 0000 0000 0000

 

P1098

参考答案:A

解析: x 左移一位,y 右移一位,两个数的补码相加的机器数为 1 1000000

 

P1099

参考答案:C

解析:设校验位的位数为 k,数据位的位数为 n,应满足下述关系:2k>= n +  k + 1 。n = 8,当k = 4时, 24 > 8 +  4 + 1 符合要求,校验位至少是 4 位。

 

P1100

参考答案:C

 

P1101

参考答案:A

 

P1102

参考答案:B

 

P1103

参考答案:A

 

P1104

参考答案:B

解析:将一个 16 位 unsigned short 转换成一个 32 位的 unsigned int,新表示形式的所有附加位都用 0 进行填充。X 的 16 进制表示为 FFFA,所以 y 的十六进制表示为 0000FFFA。

 

P1105

参考答案:D

 

P1106

参考答案:C

解析:8 位定点补码表示的数据范围为-128~127,若运算结果超出这个范围则会溢出,A

选项 x+y=103-25=78,符合范围,A 排除;B 选项-x+y=-103-25=-128,符合范围,B 排除;

D 选项-x-y=-103+25=-78,符合范围,D 排除;C 选项 x-y=103+25=128,超过了 127,选 C。

 

P1107

参考答案:A

解析:(f1)和(f2)对应的二进制分别是(110011001001……)2 和(101100001100……)2,根据

IEEE754 浮点数标准,可知(f1)的数符为 1,阶码为 10011001,尾数为 1.001,而(f2)的数符为 1,阶码为 01100001,尾数为 1.1,则可知两数均为负数,符号相同,B、D 排除,(f1)的绝对值为 1.001×226,(f2)的绝对值为 1.1×2-30,则(f1)的绝对值比(f2)的绝对值大,而符号为负,真值大小相反,即(f1)的真值比(f2)的真值小,即 x<y,选 A。

此题还有更为简便的算法,(f1)与(f2)的前 4 位为 1100 与 1011,可以看出两数均为负数,

而阶码用移码表示,两数的阶码头三位分别为 100 和 011,可知(f1)的阶码大于(f2)的阶码,

又因为是 IEEE754 规格化的数,尾数部分均为 1.xxx,则阶码大的数,真值的绝对值必然大,

可知(f1)真值的绝对值大于(f2)真值的绝对值,因为都为负数,则(f1)<(f2),即 x<y。

 

P1108

解答:

1)R1=134=86H, R5=90H, R6=7CH;134=1000   0110B=86H;x-y=1000   0110B-1111   0110B=1001   0000B=90H;x+y=1000 0110B+1111 0110B=0111 1100B(溢出)

2)m=-122,k1=-112,m=1000 0110B,做高位为符号位,则m的原码为1111 1010B=-122;

n=1111 0110B,n的原码为1000 1001=-10;k1=m-n=-112。

3)无符号数和有符号数都是以补码的形式存储,加减运算没有区别(不考虑溢出情况时),

只是输出的时候若是有符号数的最高位是符号位。减法运算求[-x]补的时候,是连同符号位一起按位取反末位加1,但是如果有溢出情况,这两者是有区别的,所以可以利用同一个加法器实现,但是溢出判断电路不同。

4)判断方法是如果最高位进位和符号位的进位不同,则为溢出;“int k2=m+n;”会溢出;

三种方法可以判断溢出,双符号位、最高位进位、符号相同操作数的运算后与原操作数的符号不同则溢出

 

P1109

解答:

(1) 乘法运算可以通过加法和移位来实现。编译器可以将乘法运算转换为一个循环代码段,

在循环代码段中通过比较、加法和移位等指令实现乘法运算。例如Booth乘法。

(2) 控制逻辑的作用是控制循环次数,控制加法和移位操作。

C语言整型用补码表示,通常采用Booth乘法。

Booth乘法对乘数从低位开始判断,根据两个数据位的情况决定进行加法、减法还是仅仅移位操作。判断的两个数据位为当前位及其右边的位(初始时需要增加一个辅助位0),移位操作是向右移动。其中booth算法在操作时,需要遵循一个操作表:

具体步骤如下:

  1. 被乘数X与乘数Y均以补码的形式参加乘法运算,运算结果是积的补码。
  2. 部分积和被乘数X采用双符号位,乘数Y采用单符号位。
  3. 初始部分积为0。运算前,在乘数Y的补码末位添加一位附加位 Yn+1 ,初始值为0。
  4. 根据 YnYn+1 的值,按照上表进行累加右移操作,右移时遵循补码的移位规则。
  5. 累加n+1次,右移n次,最后一次不右移。

这个过程累加n+1次,右移n次,所以控制逻辑的作用是控制循环次数,还需要根据操作表控制加法和移位操作。

(3) ①的执行时间最长,③的执行时间最短。

对于①,需要使用其他指令和算法来模拟乘法操作。常见的方法是通过编写(软件)程序使用加法、位移和逻辑操作来实现乘法功能。这种方法通常需要多条指令和多个时钟周期来完成乘法运算,因此会比硬件乘法指令的执行时间更长。②和③都是硬件乘法指令,所以①的执行时间最长。

对于②和③,都只需用一条乘法指令实现乘法操作。

对于③,阵列乘法器是专门用于执行乘法操作的硬件电路,可以在一个时钟周期内完成乘法运算。由于其硬件实现的特性,阵列乘法器通常是执行乘法操作最高效的方式。所以③的执行时间最短。

对于②,ALU和位移器实现的乘法指令通常需要多个时钟周期来完成乘法运算。它通过将乘法操作划分为一系列的加法、位移和逻辑操作来实现。尽管比情况①中的方法更高效,但仍然需要多个时钟周期来执行,因此相对于情况③中的阵列乘法器,执行时间较长。

(4) 第一问。当n=32、x= 2^31−1 、y=2时,64位的[x]补=0000 0000 0000 0000 0000 0000 0000 0000 0111 1111 1111 1111 1111 1111 1111 11111B,y=2,x×y相当于对x进行算术左移1位,得到[x×y]补=0000 0000 0000 0000 0000 0000 0000 0000 1111 1111 1111 1111 1111 1111 1111 11110B=00000000FFFFFFFEH。

第二问。此时函数umul()不溢出,imul()的返回结果溢出,因为umul()的返回值类型为unsigned,默认为unsigned int,为32位无符号整型,可以表示32个数值位,结果恰有32个有效数值位,所以其返回结果不溢出。然而imul()返回值类型为int,为32位有符号整型,最高位为符号位,可以表示31个数值位,结果有32个有效数值位,所以其返回结果溢出。

第三问。对于无符号整数乘法运算,当仅取乘积的低位作为乘法结果时,对于2n位乘积,若乘积高n位全为0,即乘积高n位不存在有效数值位,则无溢出,否则溢出。

P1110

答案要点

 (1)由于i和n是unsigned型,故“i<=n-1”是无符号数比较,n=0时,n-1的机器数为全1,值是232-1,为unsigned型可表示的最大数,条件“i<=n-1”永真,因此出现死循环。(2分)

i和n改为int类型,则不会出现死循环。(1分) 因为“i<=n-1”是带符号整数比较,n=0时,n-1的值是-1,当i=0时条件“i<=n-1”不成立,此时退出for循环。(1分)

 (2)f1(23)与f2(23)的返回值相等。(1分)

 f1(23)的机器数是OOFF FFFFH,(1分)

 f2(23)的机器数是4B7F FFFFH。(1分)

 (3)当n=24时,f(24)=1 1111 1111 1111 1111 1111 1111 B,而float型数只有24位有效位,舍入后数值增大,所以f2(24)比f1(24)大1。(1分)【评分说明】只要说明f2(24)需舍入处理即可给分。

 (4)显然f(31)已超出了int型数据的表示范围,用f1(31)实现时得到的机器数为32个1,作为int型数解释时其值为-1,即f1(31)的返回值为-1。(1分)因为int型最大可表示数是0后面加31个1,故使f1(n)的返回值与f(n)相等的最大n值是30。(1

)【评分说明】对于第二问,只要给出n=30即可给分。

 (5)IEEE 754标准用“阶码全1、尾数全0”表示无穷大。f2返回值为float型,机器数7F80 0000H对应的值是+∞。(1分) 当n=126时,f(126)=2217-1=1.1…1×2^126,对应阶码为127+126=253,尾数部分舍入后阶码加1,最终阶码为254,是IEEE754单精度格式表示的最大阶码。故使f2结果不溢出的最大n值为126。(1分) 当n=23时,f(23)为24位1,float型数有24位有效位,所以不需舍入,结果精确。故使f2获得精确结果的最大n值为23。 (1分)

 【评分说明】对于第二问,只要给出n=23,即可给分。对于第三问,只要给出n=126,即可

给分。

 

P1111

解答:B。光盘采用顺序存取方式。

 

P1112

解答:D。64MB的主存地址空间,故而MAR的寻址范围是64M,故而是26位。

而实际的主存的空间不能代表MAR的位数。

 

P1113

参考答案:D

考点一:编址单位

若按字节编址,则一个数据类型占的地址单元数等于其字节数。

考点二:边界对齐

以字节为单位的边界对齐,也称字节对齐,数据在存储时需要被放置在内存地址的倍数上,比如数据类型的大小为4个字节,那么它需要被存放在地址是4的倍数的位置上。数据按边界对齐存储是一种优化技术,通过调整数据在内存中的存储位置,可以提高计算机系统的性能和效率。

边界对齐后,结构体大小为其大小最大成员变量大小的整数倍。

根据边界对齐的定义,变量a的首地址为2020FE00H,从首地址开始,按顺序从低地址到高地址依次放入x1和x2这个成员变量,模拟过程如下:

考点三:大端方式和小端方式

大端方式(Big Endian):数据低位保存在高地址中,数据高位保存在低地址中。大端序和人的书写顺序一致。

小端方式(Little Endian):数据低位保存在低地址中,数据高位保存在高地址中。

在32位计算机中,按字节编址,根据小端方式和按边界对齐的定义,给出变量a的内存布局如下:

所以34H所在存储单元的地址为2020FE06H。

P1114

解答:

TLB是页表的缓存,Cache是主存的缓存,都是基于局部性原理设计的。A正确。

TLB和Cache缓存的都是主存中的信息,区别在于TLB缓存的是虚页号和页框号,用于加速虚拟地址到物理地址的转换的高速缓存,Cache缓存的是主存块,用于存储最近访问的数据副本,以提高数据的访问速度和效率。两者缺失后都需要去访问主存。B正确。

Cache缺失,CPU会处理该缺失,该处理通常由硬件实现。TLB缺失后,如果目标页在内存中,TLB失效表明缺少该地址转换。在这种情况下,CPU可以将(最后一级)页表中的地址转换加载到TLB中,并重新访问来处理失效。如果目标页不在内存中,那么TLB缺失意味着真正的缺页。在这种情况下,产生缺页中断,缺页中断通常由硬件实现。C正确。

Cache通常由SRAM组成;TLB通常由相联存储器组成,也可由SRAM组成。Cache和SRAM都是高速缓存,对数据访问的效率要求极高。相比DRAM,SRAM能够提供更快的访问速度和更低的访问延迟。DRAM需要不断刷新,性能偏低,不适合组成TLB和Cache。D错误。

本题选D。

P1115

考查 Cache 与主存之间的映射方式。
由于 Cache 共有16块,采用2路组相联,因此共有8组,0,1,2,...,7。并且主存的某一字块按模8映像到 Cache 某组的任一字块中,即主存的第0,8,16...字块可以映像到 Cache 第0组2个字块的任一字块中,而129号单元是位于第4块主存块中,因此将映射到 Cache 第4组2个字块的任一字块中。
注意:由于在计算机系统结构中和计算机组成原理的某些教材中介绍的组相联跟此处的组相联并不相同,导致部分考生理解错题目。考生应以真题为准,以后再出现类似题目,应以此种解答为标准。

P1116

考查存储器的扩展。

P1117

参考答案:D

考查 Cache 的命中率。
命中率=Cache 命中的次数/所有访问次数,有了这个公式这道题就很容易看出,要注意的一点是看清题,题中说明的是缺失50次,而不是命中50次,仔细审题是做对题的第一步。

 

P1118

参考答案:D

考查存储器的组成和设计。用 2K×4 位的芯片组成一个 8K×8 位存储器,每行中所需芯片数为 2,每列中所需芯片数为 4,各行芯片的地址分配为:

第一行(2个芯片并联) 0000H~07FFH

第二行(2个芯片并联) 0800H~0FFFH

第三行(2个芯片并联) 1000H~17FFH

第四行(2个芯片并联) 1800H~1FFFH

于是地址0B1FH 所在芯片的最小地址即为0800H。

 

P1119

参考答案:A

考查半导体随机存取存储器。一般 Cache 采用高速的 SRAM 制作,比 ROM 速度快很多,因此 III 是错误的,排除法即可选 A。RAM 需要刷新,而 ROM 不需要刷新。

 

P1120

参考答案:D

考查 TLB、Cache 及 Page 之间的关系。TLB 即为快表,快表只是慢表(Page)的小小副本,因此 TLB 命中,必然 Page 也命中,而当 Page命中,TLB 则未必命中,故 D 不可能发生;而 Cache 的命中与否与 TLB、Page 的命中与否并无必然联系。

 

P1121

参考答案:B

考查 CPU 内部寄存器的特性。汇编程序员可以通过指定待执行指令的地址来设置 PC 的值,而 IR,MAR,MDR 是 CPU 的内部工作寄存器,对程序员不可见。

 

P1122

参考答案:D

考查显示器相关概念。刷新所需带宽 = 分辨率×色深×帧频 = 1600×1200×24b×85HZ = 3916.8Mbps,显存总带宽的 50%用来刷屏,于是需要的显存总带宽为 3916.8/0.5 = 7833.6Mbps ≈ 7834Mbps。

 

P1123

解答:

当CPU执行指令时,如果需要访问的页面不在内存中,就会发生缺页。缺页是一种由CPU检测到的异常情况。A正确。

当发生缺页时,CPU会通过异常机制将控制权转移到操作系统提供的缺页处理程序。B正确。

缺页处理程序负责处理缺页异常,根据需要从外存(如磁盘)中读取缺失的页面到内存中,并更新相关的页表以反映新的页面位置。这个过程涉及到磁盘IO等相对较慢的操作。C正确。

当缺页处理完成后,控制权会从缺页处理程序返回给引发缺页的指令之后的指令,而不是直接回到下一条指令。CPU会重新执行引发缺页的指令,从而完成之前由于缺页而被中断的指令执行流程。D错误。

本题选D。

P1124

解答:

磁盘存储数据之前需进行格式化,将磁盘分成扇区,并写入信息,因此磁盘的格式化容量比非格式化容量小。A正确。

磁盘扇区中包含数据、地址和校验等信息。B正确。

磁盘存储器的最小读写单位为一个扇区,即磁盘按块存取。C错误。

磁盘存储器由磁盘控制器、磁盘驱动器和盘片组成。D正确。

本题选C。

P1125

解答:

Ⅰ正确。DMA传送前由设备驱动程序设置传送参数:在进行DMA传送之前,设备驱动程序负责设置传送参数,例如源地址、目标地址和传输长度等。这些参数将指导DMA控制器进行数据传送。

Ⅱ正确。数据传送前由DMA控制器请求总线使用权:在进行DMA传送之前,DMA控制器会向总线控制器(如总线控制器或内存控制器)请求总线的使用权。一旦获得总线使用权,DMA控制器将能够直接控制总线进行数据传输,而无需主处理器的干预。

Ⅲ正确。数据传送由DMA控制器直接控制总线完成:DMA控制器在获得总线使用权后,可以直接控制总线进行数据传输。它负责管理传输的数据、地址和传输方向,并在传输结束后释放总线的控制权。

Ⅳ正确。DMA传送结束后的处理由中断服务程序完成:一旦DMA传送完成,通常会触发一个DMA传输完成的中断。DMA控制器向CPU 发送中断请求,CPU执行中断服务程序做DMA结束处理。

综上,Ⅰ、Ⅱ、Ⅲ、Ⅳ都正确。

本题选D。

P1126

参考答案:C

 

P1127

参考答案:B

 

P1128

参考答案:B

 

P1129

参考答案:D

 

P1130

参考答案:B

 

P1131

参考答案:C

 

P1132

参考答案:B

 

P1133

参考答案:A

解析:虚拟地址为 03FF F180H,其中页号为 03FFFH,页内地址为 180H,根据题目中给出

的页表项可知页标记为 03FFFH 所对应的页框号为 0153H,页框号与页内地址之和即为物

理地址 015 3180 H。

 

P1134

参考答案:B

解析:能够提高 RAID 可靠性的措施主要是对磁盘进行镜像处理和进行奇偶校验。

 

P1135

参考答案:B

解析:磁盘转速是 10 000 转/分钟,平均转一转的时间是 6ms,因此平均查询扇区的时间

3ms,平均寻道时间是 6ms,读取 4 KB 扇区信息的时间为 0.2ms,信息延迟的时间为

0.2ms,总时间为 3+6+0.2+0.2=9.4ms

 

P1136

参考答案:C

 

P1137

参考答案:D

解析:计算机存储器按字节编址,采用小端方式存放数据,即以数据的最低有效字节地址表示数据地址。在存储器中,数据结构按边界对齐方式顺序存储,因此 int 型数据的地址必须是 4 的倍数,short 型数据地址必须是 2 的倍数。所以record.c 的地址不可能为 0xC00D。而 273 的十六进制表示为 0x00000111,故地址 0xC008 中内容应为低字节 0x11

 

P1138

参考答案:A

解析: 闪存是 EEPROM 的进一步发展,可读可写,用 MOS 管的浮栅上有无电荷来存储信息,它依然是ROM 的一种,故写速度比读速度要慢不少(硬件常识)。闪存是一种非易失性存储器,它采用随机访问方式。现在常见的 SSD 固态硬盘,即由 Flash 芯片组成。

 

P1139

D
如果按字节编址,PC 的值是自动加 1个字长( 位数 / 8),即 64 / 8 = 8
如果按字编址,PC的值是自动加 1

P1140

参考答案:A

解析:4M×8 位的芯片数据线应为 8 根,地址线应为 log24M=22 根,而 DRAM 采用地址复用技术,地址线是原来的 1/2,且地址信号分行、列两次传送。地址线数为 22/2=11 根,所以地址引脚与数据引脚的总数为 11+8=19 根,选 A。

 

P1141

参考答案:D

解析:把指令 Cache 与数据 Cache 分离后,取指和取数分别到不同的 Cache 中寻找,那么

指令流水线中取指部分和取数部分就可以很好的避免冲突,即减少了指令流水线的冲突。

 

P1142

解答:

1)24位、前12位;20位、前8位。

16M=224故虚拟地址24位,4K=212,故页内地址12位,所以虚页号为前12位;

1M=220故物理地址20位,20-12=8,故前8位为页框号。

2)主存字块标记(12bit)、cache字块标记(3bit)、字块内地址(5bit)物理地址20位,其中,块大小为32B=25B故块内地址5位;cache共8行,8=23,故字块标记为3位20-5-2=12,故主存字块标记为12位。

3)在主存中,04C60H, 不命中,没有04C的标记字段001C60H中虚页号为001H=1,查页表知其有效位为1,在内存中;该物理地址对应的也表项中,页框号为04H故物理地址为04C60H;物理地址04C60H在直接映射方式下,对应的行号为4,有效位为1但是标记位为064H≠04CH故不命中。

4)在,012的那个标记是对的。思路:标记11位组地址1位页内地址12位,前12位为0000 0010 0100,组地址位为0,第0组中存在标记为012的页,其页框号为1F,故024BACH所在的页面存在主存中。

 

P1143

解答:

(1) Cache采用8路组相联映射方式,组相联映射格式为。主存块大小为64B= 2^6B,按字节编址,主存地址低6位为块内地址,数据区容量各为32KB,行数为32KB/64B=2^9,采用8路组相联,组数为2^9/8=2^6,主存地址中间6位为Cache组号,主存地址为32位,主存地址中高32-6-6=20位为标记,8路组相联LRU位占 log⁡8=3 位,采用直写方式,故没有修改位。

(2) 因为数组s的起始地址008000C0H=  ,块内地址为000000B=0,所以s位于一个主存块开始处,需要访问1024个数组元素,每个数组元素类型为int,占4B,主存块大小为64B,1024个数组元素占1024×4B/64B=64个主存块。执行程序段过程中,观察s[k]=2*s[k],每个数组元素都需要读、写各1次,主存块大小为64B,每访问一个主存块(包含64B/4B=16个数组元素)产生一次Cache缺失,每个主存块会访问16×(1+1)=32次。总共需要访问64个主存块,产生64×1=64次Cache缺失。所以该程序段执行过程中,访问数组s的数据Cache缺失次数为64。

(3) 00010003H=  ,根据主存地址划分可知,组号为000000B=0,故该地址所在主存块被映射到指令Cache组0。因为Cache初始为空,所有Cache行的有效位均为0,所以Cache访问缺失。此时,直接按地址访问主存,将获取到的数据直接送入CPU,同时更新Cache,将目标数据所在主存块取出后存入指令Cache组0的某一行,并将主存地址高20位填入该行标记字段,设置有效位,修改LRU位。

根据袁春风《计算机组成与系统结构(第2版)》7.6.2 Cache 的基本工作原理,带 Cache 的 CPU 访存操作过程如下:

P1144

参考答案:

(1) 按题意,外设每秒传送0.5M B,中断时每次传送4B。中断方式下,CPU每次用于数据传送的时钟周期为:5x18+5x2=100.为达到外设0.5MB/s的数据传输率,外设每秒申请的中断次数为:0.5M B/4B=125 000。1秒钟内用于中断的开销:100x125000=12500000=12.5M个时钟周期。CPU用于外设I/O的时间占整个CPU时间的百分比:12.5M/ 500M=2.5%。

(2) 当外设数据传输率提高到5M B/s时改用DMA方式传送,每次DMA传送5 000B,1秒钟内需产生的DMA次数:5 M B/ 5 000 B=1 000.CPU 用于DMA处理的总开销:1000x500=500000=0.5M个时钟周期。CPU 用于外设I/O的时间占整个CPU时间的百分比:0.5M/500M=0.1%。

 

P1145

解答:

(1) 数据 Cache 有 8 个 Cache 行,每个 Cache 行大小为 64B,Cache 中每个字块的 Tag 字段的位数是 28-9=19 位,此外还需使用一个有效位,合计 20 位。因此,数据 Cache 的总容量应为:8×(64+20/8)B=532B。

(2) 数组 a 在主存的存放位置及其与 Cache 之间的映射关系如下图所示:

数组按行优先方式存放,首地址为 320,数组元素占四个字节。a[0][31]所在的主存块对应的 Cache 行号为:(320+31×4) DIV 64 = 6 ;

a[1][1]所在的主存块对应的 Cache 行号为:

(320+256×4+1×4) DIV 64 MOD 8 = 5 。

(3) 编译时 i、j、sum 均分配在寄存器中,故数据访问命中率仅考虑数组 a 的情况。

① 该程序的特点是数组中的每一个元素仅被使用一次。数组 a 按行优先存放,数据 Cache 正好放下数组半行中的全部元素,即元素的存储顺序与使用次序高度的吻合,每个字块的 16 个 int 型元素中,除访问的第一个不会命中,接下来的 15 个都会命中。访问全部字块都符合这一规律,故命中率为 15/16,即程序 A 的数据访问命中率是 93.75%。

② 程序 B 按照数组的列执行外层循环,在执行内层循环的过程中,将连续访问不同行的同一列的数据,不同行的同一列数组使用的是同一个 Cache 单元,每次都不会命中,故命中率是 0

由于从 Cache 读数据比从主存读数据快很多,所以程序 A 的执行比程序 B 快得多。

 

P1146

解析:

1)物理地址由实页号和页内地址拼接,因此其位数为 16+12=28 ;或直接可得 20+3+5=28 。

2)TLB 采用全相联映射,可以把页表内容调入任一块空 TLB 项中, TLB 中每项都有一个比较器,没有映射规则,只要空闲就行。 TLB 采用静态存储器 SRAM ,读写速度快,但成本高,多用于容量较小的高速缓冲存储器。

3)图中可以看到, Cache 中每组有两行,故采用 2 路组相联映射方式。因为是 2 路组相联并采用 LRU 替换算法,所以每行(或每组)需要 1 位 LRU 位;因为采用回写策略,所以每行有 1 位修改位(脏位) ,根据脏位判断数据是否被更新,如果脏位为 1 则需要写回内存。

28 位物理地址中 Tag 字段占 20 位,组索引字段占 3 位,块内偏移地址占 5 位,故 Cache 共有 2^3=8 组,每组 2 行,每行有 2^5=32B ;故 Cache 总容量为 8×2×(20+1+1+1+32 ×8)=4464 位=558字节。Cache 中有效位用来指出所在 Cache 行中的信息是否有效。

4)虚拟地址分为两部分:虚页号、页内地址;物理地址分为两部分:实页号、页内地址。

利用虚拟地址的虚页号部分去查找 TLB 表(缺失时从页表调入) ,将实页号取出后和虚拟地址的页内地址拼接,就形成了物理地址。虚页号 008CH 恰好在 TLB 表中对应实页号 0040H (有效位为 1,说明存在) ,虚拟地址的后 3 位为页内地址 040H ,则对应的物理地址是 0040040H 。物理地址为 0040040H ,其中高 20 位 00400H 为标志字段,低 5 位 00000B 为块内偏移量,中间 3 位 010B 为组号 2,因此将 00400H 与 Cache 中的第 2 组两行中的标志字段同时比较,可以看出,虽然有一个 Cache 行中的标志字段与 00400H 相等,但对应的有效位为 0,而另一 Cache行的标志字段与 00400H 不相等,故访问 Cache 不命中。因为物理地址的低 12 位与虚拟地址低 12 位相同,即为 0010 0110 0000B 。根据物理地址的结构,物理地址的后八位 01100000B 的前三位 011B 是组号, 因此该地址所在的主存映射到 Cache

组号为 3。

 

P1147

解答:

1)x 的机器码为[x]补=1111 1101 1111B,即指令执行前(R1)=FDFFH,右移 1 位后为 1111 1110 1111 1111B,即指令执行后(R1)=FEFFH。(2 分)

【评分说明】仅正确写出指令执行前的(R1)可给 1 分。

2)至少需要 4+(5-1)=8 个时钟周期数。(2 分)

3)I3 的 ID 段被阻塞的原因:因为 I3 与 I1 和 I2 都存在数据相关,需等到 I1 和 I2 将结果写回寄存器后,I3 才能读寄存器内容,所以 I3 的 ID 段被阻塞。(1 分)I4 的 IF 段被阻塞的原因:因为 I4 的前一条指令 I3 在 ID 段被阻塞,所以 I4 的 IF 段被阻塞。(1 分)

4)因 2*x 操作有左移和加法两种实现方法,故 x=x*2+a 对应的指令序列为

I1  LOAD  R1,[x]

I2  LOAD  R2,[a]

I3 SHL R1 //或者 ADD R1,R1

I4 ADD R1,R2

I5  STORE  R2,[x]

5 条指令在流水线中执行过程如下图所示。

故执行 x=x*2+a 语句最少需要 17 个时钟周期。

 

P1148

解答:

该题为计算机组成原理科目的综合题型,涉及到指令系统、存储管理以及 CPU 三个部

分内容,考生因注意各章节内容之间的联系,才能更好的把握当前考试的趋势。

(1)已知计算机 M 采用 32 位定长指令字,即一条指令占 4B,观察表中各指令的地址可知,

每条指令的地址差为 4 个地址单位,即 4 个地址单位代表 4B,一个地址单位就代表了 1B,

所以该计算机是按字节编址的。(2 分)

(2)在二进制中某数左移二位相当于以乘四,由该条件可知,数组间的数据间隔为 4 个地

址单位,而计算机按字节编址,所以数组 A 中每个元素占 4B。(2 分)

(3)由表可知,bne 指令的机器代码为 1446FFFAH,根据题目给出的指令格式,后 2B 的内容为 OFFSET 字段,所以该指令的 OFFSET 字段为 FFFAH,用补码表示,值为-6。(1 分)当系统执行到 bne 指令时,PC 自动加 4,PC 的内容就为 08048118H,而跳转的目标是08048100H,两者相差了 18H,即 24 个单位的地址间隔,所以偏移址的一位即是真实跳转地址的-24/-6=4 位。(1 分)可知 bne 指令的转移目标地址计算公式为(PC)+4+OFFSET*4。(1分)

(4)由于数据相关而发生阻塞的指令为第 2、3、4、6 条,因为第 2、3、4、6 条指令都与

各自前一条指令发生数据相关。(3 分)第 6 条指令会发生控制冒险。(1 分)当前循环的第五条指令与下次循环的第一条指令虽然有数据相关,但由于第 6 条指令后有 3 个时钟周期的阻塞,因而消除了该数据相关。(1 分)

 

P1149

解答:

该题为计算机组成原理科目的综合题型,涉及到指令系统、存储管理以及 CPU 三个部分内容,考生因注意各章节内容之间的联系,才能更好的把握当前考试的趋势。

(1)已知计算机 M 采用 32 位定长指令字,即一条指令占 4B,观察表中各指令的地址可知,每条指令的地址差为 4 个地址单位,即 4 个地址单位代表 4B,一个地址单位就代表了 1B,所以该计算机是按字节编址的。(2 分)

(2)在二进制中某数左移二位相当于以乘四,由该条件可知,数组间的数据间隔为 4 个地址单位,而计算机按字节编址,所以数组 A 中每个元素占 4B。(2 分)

(3)由表可知,bne 指令的机器代码为 1446FFFAH,根据题目给出的指令格式,后 2B 的内容为 OFFSET 字段,所以该指令的 OFFSET 字段为 FFFAH,用补码表示,值为-6。(1 分)当系统执行到 bne 指令时,PC 自动加 4,PC 的内容就为 08048118H,而跳转的目标是08048100H,两者相差了 18H,即 24 个单位的地址间隔,所以偏移址的一位即是真实跳转地址的-24/-6=4 位。(1 分)可知 bne 指令的转移目标地址计算公式为(PC)+4+OFFSET*4。(1分)

(4)由于数据相关而发生阻塞的指令为第 2、3、4、6 条,因为第 2、3、4、6 条指令都与各自前一条指令发生数据相关。(3 分)第 6 条指令会发生控制冒险。(1 分)当前循环的第五条指令与下次循环的第一条指令虽然有数据相关,但由于第 6 条指令后有 3 个时钟周期的阻塞,因而消除了该数据相关。(1 分)

 

P1150

解答:A。间接寻址不需要寄存器,EA=(A)。基址寻址:EA=A+基址寄存器内同;相对寻址:EA﹦A+PC内容;变址寻址:EA﹦A+变址寄存器内容。

 

P1151

解答:D。指令定长、对齐、仅Load/Store指令访存,以上三个都是RISC的特征。均能够有效的简化流水线的复杂度。

 

P1152

解答:C。会自动加1,A取指令要访存、B时钟周期对指令不可分割。

 

P1153

解答:C。握手(应答)信号在通信总线上传输

 

P1154

参考答案:A

P1155

考查相对寻址。
相对寻址 EA=(PC)+A,首先要求的是取指令后 PC 的值。转移指令由两个字节组成,每取一个字节PC 自动加 1,因此取指令后 PC 值为 2002H,故 EA=(PC)+A=2002H+06H=2008H。

P1156

考查 RISC 的特性。
相对于 CISC 计算机,RISC 计算机的特点指令条数少;指令长度固定,指令格式和寻址种类少;只有取数/存数指令访问存储器,其余指令的操作均在寄存器之间进行;CPU 中通用寄存器多;大部分指令在一个或者小于一个机器周期内完成;以硬布线逻辑为主,不用或者少用微程序控制。

P1157

A

考查流水线中时钟周期的特性。
时钟周期应以最长的执行时间为准,否则用时长的流水段的功能将不能正确完成

P1158

参考答案:D

考查硬布线控制器的特点。
硬布线控制器的速度取决于电路延迟,所以速度快;微程序控制器采用了存储程序原理,每条指令都要访控存,所以速度慢。硬布线控制器采用专门的逻辑电路实现,修改和扩展困难。

P1159

参考答案:A

考查指令流水线的基本概念。有三种相关可能引起指令流水线阻塞:1. 结构相关,又称资源相关;2. 数据相关;3. 控制相关,主要由转移指令引起。数据旁路技术,其主要思想是不必待某条指令的执行结果送回到寄存器,再从寄存器中取出该结果,作为下一条指令的源操作数,而是直接将执行结果送到其他指令所需要的地方,这样可以使流水线不发生停顿

 

P1160

解答:

操作数采用基址寻址方式,EA=(BR)+A,基址寄存器BR的内容(BR)为F0000000H,形式地址A用补码表示为FF12H=1111 1111 0001 0010B,符号位为1,补齐至32位为FFFFFF12H,有效地址EA=(BR)+A=F000 0000H+FFFF FF12H=EFFF FF12H。因为计算机按字节编址,机器数1234 FF00H占4字节,所以1234 FF00H占4个地址单元;因为计算机采用大端方式编址,所以低位字节存放在字的高地址处。可以画出1234 FF00H的内存布局如下:

红色表示该操作数的LSB(最低有效字节),所在的地址是EFFF FF15H。

本题选D。

P1161

解答:

由于源操作数R[r1]采用寄存器寻址方式,源操作数M[R[r0]]采用寄存器间接寻址方式,因此在取数阶段需要用到通用寄存器组(包括寄存器r0和r1)和存储器。即需要I和III。

在执行阶段,两个源操作数相加需要用到算术逻辑单元,即需要II。

而指令译码器用于操作码字段进行译码,向控制器提供特定的操作信号,在取指阶段需要,在取数及执行阶段用不到。

综上,该指令在取数及执行过程中需要用到的是Ⅰ、Ⅱ和Ⅲ。

本题选B。

P1162

解答:

常考的数据冒险有:写后读(read after write, RAW)数据冒险、写后写(write after write, WAW)数据冒险、读后写(write after read, WRA)数据冒险、装入-使用(load-use)数据冒险等。

在按序发射,按序流动的流水线中,可能出现写后读(RAW)数据冒险和装入-使用(load-use)数据冒险。

A错误。I1和I3存在写后读数据冒险(read after write Data Hazard, RAW Data Hazard):读取某数据操作必须在写入该数据操作之后执行,否则可能产生错误。这里I3读取R[s2]必须在I1写回R[s2]后执行,可以使用数据旁路解决。

B错误。I2和I3之间存在数据冒险,属于装入-使用数据冒险(load-use Data Hazard):LOAD指令和随后使用LOAD指令所加载数据的后续指令之间存在的依赖关系,即使用某数据操作必须在装入该数据之后执行,否则可能产生错误。仅用转发线路无法解决I2和I3之间的数据相关问题,需要用转发技术结合装入-使用阻塞解决。原因在于I2的功能是从内存中取数,只有在M段结束时才能从主存中得到R[s3]的新值,即先装入后使用,但I3的EX段就要用到R[s3],I3需要阻塞1个时钟周期,等到I2的M段结束之后,从I2的M→WB流水段寄存器中取到R[s3]的新值。

C正确。

D错误。I3和I4存在写后读数据冒险(read after write Data Hazard, RAW Data Hazard):读取某数据操作必须在写入该数据操作之后执行,否则可能产生错误。这里I4读取R[s2]必须在I3写回R[s2]后执行,可以使用数据旁路解决。

采用硬件阻塞方式进行阻塞,并采用数据旁路技术,指令的执行过程如图(a)所示。仅采用硬件阻塞方式进行阻塞,指令的执行过程如图(b)所示。

本题选C。

P1163

参考答案:C

 

P1164

参考答案:D

 

P1165

D

K路组相联是指主存中的一块可以选择映射到Cache中K个位置

P1166

参考答案:A

 

P1167

参考答案:B

 

P1168

按照题意,程序P执行的时钟周期数为10000×80%×1+10000×20%×10=28000,程序P的平均CPI为28000/10000=2.8,计算机主频为1GHz,CPU执行时间为28000/(1G/s)=28μs。

本题选A。

P1169

C

P1170

参考答案:A

 

P1171

参考答案:B

 

P1172

参考答案:C

 

P1173

C

P1174

参考答案:C

计算机共有 32 条指令,各个指令对应的微程序平均为 4 条,则指令对应的微指令32*4=128 条,而公共微指令还有 2 条,整个系统中微指令的条数一共为 128+2=130 条,所以需要élog(2)130=8 位才能寻址到 130 条微指令,答案选 C

 

P1175

解答:

(1) 操作码占 4 位,则该指令系统最多可有 2^4=16 条指令;操作数占 6 位,寻址方式占 3 位,于是寄存器编号占 3 位,则该机最多有 2^3=8 个通用寄存器;主存容量 128KB,按字编址,计算机字长为 16 位,划分为128KB/2B=216 个存储单元,故 MDR 和 MAR 至少各需 16 位。

(2) PC 和 Rn 可表示的地址范围均为 0~2^16-1,而主存地址空间为 2^16,故转移指令的目标地址范围是 0000H~FFFFH(0~2^16-1)。

(3) 汇编语句“add (R4), (R5) +”,对应的机器码为 0010 0011 0001 0101B=2315H。

该指令执行后,寄存器 R5 和存储单元 5678H 的内容会改变。执行后,R5 的内容从 5678H 变成 5679H。存储单元 5678H 中的内容变成该加法指令计算的结果 5678H+1234H=68ACH。

 

P1176

解答:

(1) 第一问。观察f1的C语言代码,可知f1(n)用递归方法计算n!,计算f(10)需要调用函数f1共10次。

第二问。执行第16行的指令会递归调用f1。

方法一:观察f1的汇编代码,第16行call f1,表示递归调用f1。

方法二:观察f1的指令地址,第16行跳转到第1行的地址00401000执行,表示从头开始执行f1。

(2) 第一问。观察f1的汇编语言代码,可知第12行jle (jump when less or equal) 指令是条件转移指令。结合f1的C语言代码分析可知,n<=1为真时跳转到else分支,n>1为真时执行if的第一个分支。因为n<=1不一定为真,所以该条件转移指令不一定会使程序跳转执行。

第二问。观察f1的汇编语言代码,可知

  • 第16行call指令为递归调用f1,对应代码f1(n-1),一定会使程序跳转执行。
  • 第20行jmp (jump) 指令为无条件跳转指令,一定会使程序跳转执行。
  • 第30行ret (return) 指令为返回指令,一定会使程序跳转执行。

(3) 第一问。第17行指令为第16行指令的下一条指令,第16行指令的虚拟地址为00401025H,指令内容为”E8 D6 FF FF FF“(从左到右为从低字节到高字节的内容),占5个字节,计算机M按字节编址,第16行指令占5个地址单元,所以第17行指令的虚拟地址为00401025H+5H=0040102AH。

第二问。已知第16行的call指令采用相对寻址方式,即目标地址=(PC)+偏移量,call指令的目标地址为00401000H,(PC)为第16行指令的下一条指令的虚拟地址,即17行指令的虚拟地址,根据第一问的结果,(PC)=0040102AH,所以偏移量=目标地址-(PC)=00401000H-0040102AH=FFFFFFD6H。

第三问。已知第16行的call指令的后4字节为偏移量,偏移量字段为“D6 FF FF FF”(从左到右为从低字节到高字节的内容),偏移量内容为FFFFFFD6H,低字节内容存储在低地址,可确定M采用小端方式。

(4) 第一问。因为f1返回值类型为int,int型数据占32位,int的表示范围为 −2^31∼2^31−1 ,即-2147483648~2147483647,f(13)=6 227 020 800大于32位int型数据可表示的最大值,因而f1(13)的返回值是一个发生了溢出的结果。

第二问。为使f1(13)能返可正确结果,可将函数f1的返回值类型改为具有更大表示范围的long long(或double或long double或float)。一般数值用int表示溢出情况下改为long long,因为int和long long都是整型。

注:6227020800= 1 0111 0011 0010 1000 1100 1100 0000 0000B,如果用浮点数表示,则二进制有效数值位至少有23位。因为float最多可以表示24位二进制有效数值位,所以转float不会出现精度丢失。

(5) 第一问,若乘积的高33位为非全0或非全1,则OF=1。C语言整型用补码表示,imul指令(带符号整数乘)使用的是补码一位乘法(Booth乘法)。补码一位乘法需要两个寄存器,按照题意,乘法器分为高32位和低32位,其中高32位存储在累加器 (Accumulator, ACC) 中,低32位存储在乘商寄存器 (Multiplier-Quotient Register, MQ) 中,初始时ACC存储部分积,部分积初始为0,MQ存储32位的乘数。执行Booth乘法结束后,高位和低位拼接起来为最终的64位乘积,但int只能表示32位,若不溢出,低31位为数值位,剩余高33位为1位符号位和32位符合扩展位,若乘积的高33位全0或全1,即32位符合扩展位与符号位相同,则不溢出,OF=0;反之,若乘积的高33位为非全0或非全1,即32位符合扩展位中存在某一位与符号位不同,则溢出,OF=1。

第二问。编译器应该在imul指令后加一条“溢出自陷指令”,使得CPU自动查询溢出标志OF,当OF=1时调出“溢出异常处理程序”。

溢出自陷指令 (Overflow Trap Instruction) 是一种处理整数运算溢出的机器指令。它通常由处理器提供,并用于捕捉和处理算术运算中发生的溢出错误。当执行一条溢出自陷指令时,处理器会检测当前的算术运算结果是否发生了溢出。如果发生了溢出,处理器会触发一个异常或中断,将控制权转移到相应的异常处理程序中。溢出自陷指令的目的是提供一种机制,用于检测和处理数值运算的溢出。当进行加法、减法、乘法等算术运算时,如果结果超过了数据类型能够表示的范围,就会发生溢出。溢出可能导致错误的计算结果和无效的程序行为,因此通过溢出自陷指令可以及时地进行检测和处理。

P1177

解答:

第一问。第1行指令和第30行指令的代码在同一页。

因为计算机M的主存地址为32位,釆用分页存储管理方式,虚拟地址格式为 虚页号|页内地址,页大小为4KB= 2^12B,根据上题,计算机M按字节编址,所以页内地址占低12位,虚页号占高32-12=20位。第1行指令地址为  ,第30行指令地址为  ,两者虚页号均为00401H,因此两条指令在同一页中。

第二、三、四问。组相联映射格式为  。若指令Cache有64行,采用4路组相联映射方式,Cache组数为64/4=16= 2^4 ,组号占中间4位,主存块大小为64B= 2^6B,根据题45,计算机M按字节编址,所以块内地址占低6位,在32位主存地址中,物理地址占32位,主存字块标记占高32-4-6=22位。所以物理地址0~5位为块内地址,6~9位为组号,10~31位为标记(tag)信息。

第五问。读取第16行call指令时,只可能在指令Cache第0组中命中。因为第16行指令地址为  ,页大小为4KB,虚拟地址和物理地址的最低12位完全相同,块内地址占6位,组号占4位,两者组合在一起占低10位,所以页内地址包含组号和块内地址。页内地址025H=  ,所以对应Cache组号为0000B=0。

 

P1178

解答:

1)程序员可见寄存器为通用寄存器(R0~R3)和 PC。因为采用了单总线结构,因此,若无暂存器 T,则 ALU 的 A、B 端口会同时获得两个相同的数据,使数据通路不能正常工作。

【评分说明】回答通用寄存器(R0~R3),给分;回答 PC,给分;部分正确,酌情给分。设置暂存器 T 的原因若回答用于暂时存放端口 A 的数据,则给分,其他答案,酌情给分。

2)ALU 共有 7 种操作,故其操作控制信号 ALUop 至少需要 3 位;移位寄存器有 3 种操作,其操作控制信号 SRop 至少需要 2 位。

3)信号 SRout 所控制的部件是一个三态门,用于控制移位器与总线之间数据通路的连接与断开。【评分说明】只要回答出三态门或者控制连接/断开,即给分。

4)端口①、②、③、⑤、⑧须连接到控制部件输出端。【评分说明】答案包含④、⑥、⑦、⑨中任意一个,不给分;答案不全酌情给分。

5)连线 1,⑥→⑨;连线 2,⑦→④。【评分说明】回答除上述连线以外的其他连线,酌情给分。

6)因为每条指令的长度为 16 位,按字节编址,所以每条指令占用 2 个内存单元,顺序执行时,下条指令地址为(PC)+2。MUX 的一个输入端为 2,可便于执行(PC)+2 操作。

 

P1179

1)指令操作码有 7 位,因此最多可定义 2^7=128 条指令。

2)各条指令的机器代码分别如下:

①“inc R1”的机器码为:0000001 0 01 0 00 0 00,即 0240H。

②“shl R2,R1”的机器码为:0000010 0 10 0 01 0 00,即 0488H。

③“sub R3,(R1),R2”的机器码为:0000011 0 11 1 01 0 10,即 06EAH。

3)各标号处的控制信号或控制信号取值如下:

①0;②mov;③mova;④left;⑤read;⑥sub;⑦mov;⑧Srout。

【评分说明】答对两个给分。

 4)指令“sub R1,R3,(R2)”的执行阶段至少包含 4 个时钟周期;指令“inc R1”的执行阶段至少包含 2 个时钟周期。

 

P1180

【知识点】 Cache和主存的映射方法
 
8路组相联映射,就是 8 个Cache为一组,组与组之间使用直接映射,组内采用全相联映射。
cache共有 32 块,则 cache组数 = 32 / 8 = 4组。第一组为0,即0~3组。
每个主存块大小是 32B,一个单元一字节,那么,3312号单元的位置 = 3312 / 32 = 103 余 16,即在主存的第103块上。
 
组相联映射关系公式 cache组号=主存块号 mod cache组数(主存块号除组数取余),代入即cache组号 = 103 mod 4 = 3。

P1181

解答:

时钟脉冲信号通常由机器脉冲源发出,并经过整形和分频等处理形成规整的时钟信号。A正确。

时钟脉冲信号的宽度称为时钟周期,时钟周期的倒数为机器主频(即每秒钟发生的时钟周期数)。B正确。

时钟周期的确定通常以相邻状态单元之间的组合逻辑电路的最大延迟为基准,确保信号能够在时钟周期内稳定传播。C正确。

处理器的执行是由时钟信号驱动的,但处理器不一定在每个时钟脉冲信号到来时执行一条新的指令。处理器的指令执行需要考虑多个因素,包括指令的类型、操作数的取得、操作的完成等。处理器可能需要多个时钟周期才能完成一条指令的执行。因此,处理器的指令执行与时钟脉冲信号并不是一一对应的。D错误。

本题选D。

P1182

解答:

方法一:通过时间计算

CPU主频为1GHz,所以CPU时钟周期为1ns,设备接口中的数据缓冲寄存器为32位,即一次中断可以传输4B数据,设备数据传输率为50KBps,每秒需要50KB/4B=12.5K次中断,每次中断开销为1000个时钟周期,即每次中断开销为1000×1ns=1μs,每秒中断需要的时间为12.5K×1μs=12.5ms,因此CPU用于该设备输入/输出的时间占整个CPU时间的百分比最多是12.5ms/1s=1.25%。

方法二:通过频率计算

设备接口中的数据缓冲寄存器为32位,即一次中断可以传输4B数据,设备数据传输率为50KBps,每秒需要50KB/4B=12.5K次中断,每次中断开销为1000个时钟周期,每秒中断需要的时钟周期数为12.5K×1000=12.5M,CPU主频为1GHz,即每秒的时钟周期数为1G,因此CPU用于该设备输入/输出的时间占整个CPU时间的百分比最多是12.5M/1G=1.25%。

本题选A。

P1183

参考答案:D

 

P1184

A

考查中断的分类。
选项中能引起外部中断的只能是输入设备键盘。
P1185

参考答案:C

 

P1186

参考答案:C

解析:采用 4 级流水执行 100 条指令,在执行过程中共用4 +(100  - 1) 103 个时钟周期。

CPU 的主频是 1.03 GHz,也就是说每秒钟有 1.03 G 个时钟周期。

 

P1187

参考答案:D

 

P1188

D

 

P1189

B

 

P1190

C

 

P1191

B

 

P1192

C

 

P1193

C

 

P1194

C

 

P1195

A

 

P1196

答案解析:假设提高速度后CPU消耗的时间为X秒,之前CPU的速度为v,则提高后为1.5v;
CPU执行的指令条数不变,所以有 90 × V=X×1.5V,则 X=60,再加上I/O时间,共70秒。

 

P1197

答案解析:D ,计算机中数据以补码形势存储,int型数据是32位,short型数据是16位。

 

P1198

答案解析:B,unsigned说明x,y均为无符号数,x是FFFAH,为正数,故扩展到32位补0.

 

P1199

 

P1200

答案解析:B,补码形式:10000011—>原码形式:11111101。

 

P1201

D

 

P1202

答案解析:D,共需要8个芯片,地址范围分别为:
0000H~07FFH,0800H~0FFFH,1000H~17FFH,18FFH~1FFFH,
2000H~27FFH,2800H~2FFFH,3000H~37FFH,38FFH~3FFFH。故地址0B1FH在第二个芯片,其起始地址为0800H。

 

P1203

A

 

P1204

答案解析:A,4M×8位的存储芯片,需要地址引脚22根,数据引脚8根;DRAM地址引脚减半,故总引脚数为11+8=19根;若是SRAM芯片,则总引脚数目为30根。

 

P1205

答案解析:C,存储器容量64KB,ROM区容量2 13 = 8 K B 2^{13}=8KB2 
13
 =8KB,剩余64-8=56KB,56KB=>56K×8位,故需要SRAM芯片7×2=14个。

 

P1206

答案解析:C,Cache共16块,2路组相联,共8组,组号3位,块内地址5位,129的二进制为100 00001,Cache组号为100B=4。

 

P1207

答案解析:C,a[k]的访问步骤是:先访问cache,cache缺失,之后从主存中取出一个块调入cache,这个块中的后几个数据都是命中的,本题中一个数据占4B,一个块大小是16B,这说明一个块中有4个数据,关键是后面还有一次写,这说明一次循环要八次访问cache,其中只有第一次是缺失的,后面七次都是命中的,所以缺失率是12.5%。

 

P1208

答案解析:D,Cache中的数据必须是主存中数据的子集。A数据在辅存中,B数据在Cache中,慢表命中,C数据在主存中,快表命中。

 

P1209

答案解析:A,当取出转移指令的两个字节后PC=2005H,第二个字节的内容为:0AH-05H=05H。

 

P1210

答案解析:A,当取出转移指令的两个字节后PC=200AH,第二个字节的内容为:01H-0AH=0F7H。

 

P1211

答案解析:D,

变址寻址方式下有效地址EA=®+A=1000H+2000H=3000H,操作数S=(3000H)=4000H。所谓寻址,指的是寻找操作数的地址或下一条将要执行的指令地址。每台计算机的指令系统都有自身的一套寻址方式,不同计算机的寻址方式的名称和含义也不同。变址寻址就是把变址寄存器的内容与指令中给出的形式地址A相加,形成操作数有效地址,即EA=(变址寄存器)+A。操作数S与地址码和变址寄存器的关系为S=((变址寄存器)+A)。
 

 

P1212

答案解析:A,三地址指令有29条,所以需要操作码5位,剩余32-29=3条,提供给二地址指令使用,而二地址比三地址指令多出6位,则可以表示3× 2 6 \times 2^6×2 
6
 =192条>107条,所以至少需要3 × 6 + 5 = 23 3\times 6+5=233×6+5=23条,而指令字长应为8的倍数,所以指令字长至少应该是24条。
 

 

P1213

答案解析:C,字段直接编码就是把微命令多个段,段的数目等于互斥类的数目。因此这里分为5个段,每段里要留一个离散状态表示自己没命令。所以7个微命令对应3位,3个微命令对应2位,12个微命令对应4位,5个微命令对应3位,6个微命令对应3位,共15位。

 

P1214

答案解析:C,总线带宽Dr = 2D / T =2 D×f = 2×32bit×66M= 4224bit×106/s = 528MB/s。

 

P1215

答案解析:D

 

P1216

答案解析:D,显存总带宽=1600×1200×24b×85Hz×2 = 7 833 600 000 bps≈7834Mbps。

 

P1217

参考答案:D

Ⅰ.CPU 的时钟频率,也就是 CPU 主频率,一般说来,一个时钟周期内完成的指令数是固定的,所以主频越高,CPU 的速度也就快,程序的执行时间就越短。

Ⅱ.数据在功能部件之间传送的路径称为数据通路,数据通路的功能是实现 CPU 内部的运算器和寄存器以及寄存器之间的数据交换。优化数据通路结构,可以有效提高计算机系统的吞吐量,从而加快程序的执行。

Ⅲ.计算机程序需要先转化成机器指令序列才能最终得到执行,通过对程序进行编译优化可以得到更优的指令序列,从而使得程序的执行时间也越短

 

P1218

参考答案:C

 

P1219

B

P1220

参考答案:D

 

P1221

参考答案:D

解析:程序 A 的运行时间为 100 秒,除去 CPU 运行时间 90 秒,剩余 10 秒为 I/O 时间。CPU 提速后运行基准程序 A 所耗费的时间是 T=90/1.5+10=70 秒。

 

P1222

解答:C。无符号整数比较,如A>B,则A-B无进位/借位,也不为0。故而CF和ZF均为0。

 

P1223

解答:D。送分题。

 

P1224

B

(存储单元:存放一串二进制代码,

  存储字:存储单元中二进制代码的组合,

  存储字长:存储单元中二进制代码的位数,每个存储单元赋予一个地址号)

 

P1225

C

P1226

D

 

P1227

A

P1228

C

注释:
r1 = F2H = -14,r2 = FEH = -2
r3 = F8H = -8,r4 = F5H = -11
8位寄存器可以表示的数据范围为 [ −2^7 ∼ 2^7−1 ]  即 [−128∼127]
当 r1 x r4 = -14 x -11 = 154 超过寄存器所能表示的范围,则发生了溢出

 

P1229

参考答案:B

考查不同精度的数在计算机中的表示方法及其相互装换。由于(int)f=1,小数点后面 4 位丢失,故 II 错。IV 的计算过程是先将 f 转化为双精度浮点数据格式,然后进行加法运算,故(d+f)-d 得到的结果为双精度浮点数据格式,而 f 为单精度浮点数据格式,故 IV错。

 

P1230

A

 

P1231

B

 

P1232

D

 

P1233

参考答案:A

解析:IEEE 754 单精度浮点数格式为 C640 0000H,二进制格式为 1100 0110 0100 0000 0000 0000 0000 0000

 

P1234

参考答案:A

解析: x 左移一位,y 右移一位,两个数的补码相加的机器数为 1 1000000

 

P1235

参考答案:C

解析:设校验位的位数为 k,数据位的位数为 n,应满足下述关系:2K >= n +  k + 1 。n = 8,当k = 4时, 24 > 8 +  4 + 1 符合要求,校验位至少是 4 位。

 

P1236

C

 

P1237

A

 

P1238

B

 

P1239

A

 

P1240

参考答案:B

解析:将一个 16 位 unsigned short 转换成一个 32 位的 unsigned int,新表示形式的所有附加位都用 0 进行填充。X 的 16 进制表示为 FFFA,所以 y 的十六进制表示为 0000FFFA。

 

P1241

D

 

P1242

参考答案:C

解析:8 位定点补码表示的数据范围为-128~127,若运算结果超出这个范围则会溢出,A

选项 x+y=103-25=78,符合范围,A 排除;B 选项-x+y=-103-25=-128,符合范围,B 排除;

D 选项-x-y=-103+25=-78,符合范围,D 排除;C 选项 x-y=103+25=128,超过了 127,选 C。

 

P1243

参考答案:A

解析:(f1)和(f2)对应的二进制分别是(110011001001……)2 和(101100001100……)2,根据

IEEE754 浮点数标准,可知(f1)的数符为 1,阶码为 10011001,尾数为 1.001,而(f2)的数符为 1,阶码为 01100001,尾数为 1.1,则可知两数均为负数,符号相同,B、D 排除,(f1)的绝对值为 1.001×226,(f2)的绝对值为 1.1×2-30,则(f1)的绝对值比(f2)的绝对值大,而符号为负,真值大小相反,即(f1)的真值比(f2)的真值小,即 x<y,选 A。

此题还有更为简便的算法,(f1)与(f2)的前 4 位为 1100 与 1011,可以看出两数均为负数,

而阶码用移码表示,两数的阶码头三位分别为 100 和 011,可知(f1)的阶码大于(f2)的阶码,

又因为是 IEEE754 规格化的数,尾数部分均为 1.xxx,则阶码大的数,真值的绝对值必然大,

可知(f1)真值的绝对值大于(f2)真值的绝对值,因为都为负数,则(f1)<(f2),即 x<y。

 

P1244

解答:B。光盘采用顺序存取方式。

 

P1245

解答:D。64MB的主存地址空间,故而MAR的寻址范围是64M,故而是26位。

而实际的主存的空间不能代表MAR的位数。

 

P1246

B

P1247

B

P1248

A

 

P1249

正确答案: C
注:这里所谓的8位的微机系统实际上是指每个存储单元中所能存储的二进制代码的位数,而16位事实上指的是表示该存储单元的地址位。

 

P1250

D

 

P1251

参考答案:D

考查存储器的组成和设计。用 2K×4 位的芯片组成一个 8K×8 位存储器,每行中所需芯片数为 2,每列中所需芯片数为 4,各行芯片的地址分配为:

第一行(2个芯片并联) 0000H~07FFH

第二行(2个芯片并联) 0800H~0FFFH

第三行(2个芯片并联) 1000H~17FFH

第四行(2个芯片并联) 1800H~1FFFH

于是地址0B1FH 所在芯片的最小地址即为0800H。

 

P1252

参考答案:A

考查半导体随机存取存储器。一般 Cache 采用高速的 SRAM 制作,比 ROM 速度快很多,因此 III 是错误的,排除法即可选 A。RAM 需要刷新,而 ROM 不需要刷新。

 

P1253

参考答案:D

考查 TLB、Cache 及 Page 之间的关系。TLB 即为快表,快表只是慢表(Page)的小小副本,因此 TLB 命中,必然 Page 也命中,而当 Page命中,TLB 则未必命中,故 D 不可能发生;而 Cache 的命中与否与 TLB、Page 的命中与否并无必然联系。

 

P1254

参考答案:B

考查 CPU 内部寄存器的特性。汇编程序员可以通过指定待执行指令的地址来设置 PC 的值,而 IR,MAR,MDR 是 CPU 的内部工作寄存器,对程序员不可见。

 

P1255

参考答案:D

考查显示器相关概念。刷新所需带宽 = 分辨率×色深×帧频 = 1600×1200×24b×85HZ = 3916.8Mbps,显存总带宽的 50%用来刷屏,于是需要的显存总带宽为 3916.8/0.5 = 7833.6Mbps ≈ 7834Mbps。

 

P1256

D

 

P1257

C

 

P1258

D

 

P1259

C

 

P1260

B

 

P1261

B

 

P1262

D

 

P1263

B

 

P1264

C

 

P1265

B

 

P1266

参考答案:A

解析:虚拟地址为 03FF F180H,其中页号为 03FFFH,页内地址为 180H,根据题目中给出

的页表项可知页标记为 03FFFH 所对应的页框号为 0153H,页框号与页内地址之和即为物

理地址 015 3180 H。

 

P1267

参考答案:B

解析:能够提高 RAID 可靠性的措施主要是对磁盘进行镜像处理和进行奇偶校验。

 

P1268

参考答案:B

解析:磁盘转速是 10 000 转/分钟,平均转一转的时间是 6ms,因此平均查询扇区的时间

3ms,平均寻道时间是 6ms,读取 4 KB 扇区信息的时间为 0.2ms,信息延迟的时间为

0.2ms,总时间为 3+6+0.2+0.2=9.4ms

 

P1269

C

 

P1270

参考答案:D

解析:计算机存储器按字节编址,采用小端方式存放数据,即以数据的最低有效字节地址表示数据地址。在存储器中,数据结构按边界对齐方式顺序存储,因此 int 型数据的地址必须是 4 的倍数,short 型数据地址必须是 2 的倍数。所以record.c 的地址不可能为 0xC00D。而 273 的十六进制表示为 0x00000111,故地址 0xC008 中内容应为低字节 0x11

 

P1271

参考答案:A

解析: 闪存是 EEPROM 的进一步发展,可读可写,用 MOS 管的浮栅上有无电荷来存储信息,它依然是ROM 的一种,故写速度比读速度要慢不少(硬件常识)。闪存是一种非易失性存储器,它采用随机访问方式。现在常见的 SSD 固态硬盘,即由 Flash 芯片组成。

 

P1272

A

P1273

参考答案:A

解析:4M×8 位的芯片数据线应为 8 根,地址线应为 log24M=22 根,而 DRAM 采用地址复用技术,地址线是原来的 1/2,且地址信号分行、列两次传送。地址线数为 22/2=11 根,所以地址引脚与数据引脚的总数为 11+8=19 根,选 A。

 

P1274

参考答案:D

解析:把指令 Cache 与数据 Cache 分离后,取指和取数分别到不同的 Cache 中寻找,那么

指令流水线中取指部分和取数部分就可以很好的避免冲突,即减少了指令流水线的冲突。

 

P1275

解答:A。间接寻址不需要寄存器,EA=(A)。基址寻址:EA=A+基址寄存器内同;相对寻址:EA﹦A+PC内容;变址寻址:EA﹦A+变址寄存器内容。

 

P1276

解答:D。指令定长、对齐、仅Load/Store指令访存,以上三个都是RISC的特征。均能够有效的简化流水线的复杂度。

 

P1277

解答:C。会自动加1,A取指令要访存、B时钟周期对指令不可分割。

 

P1278

解答:C。握手(应答)信号在通信总线上传输

 

P1279

参考答案:A

P1280

C

 

P1281

D

P1282

正确答案: C
机器字长:计算机能直接处理的二进制数据的位数,机器字长一般等于内部寄存器的大小,它决定了计算机的运算精度。

指令字长:一个指令中包含二进制代码的位数。

存储字长:一个存储单元存储二进制代码的长度,必须是字节的整数倍

指令字长一般都取存储字长的整数倍,如果指令字长等于存储字长的2倍,就需要2次访存来取出一条指令,因此取指周期是机器周期的2倍,若指令周期等于存储字长,则取指周期等于机器周期。

P1283

B

P1284

参考答案:A

考查指令流水线的基本概念。有三种相关可能引起指令流水线阻塞:1. 结构相关,又称资源相关;2. 数据相关;3. 控制相关,主要由转移指令引起。数据旁路技术,其主要思想是不必待某条指令的执行结果送回到寄存器,再从寄存器中取出该结果,作为下一条指令的源操作数,而是直接将执行结果送到其他指令所需要的地方,这样可以使流水线不发生停顿

 

P1285

D

 

P1286

A

 

P1287

C

 

P1288

C

 

P1289

B

P1290

芯片的大小为 2K×4 位,而存储器的大小为 16K×8 位,得出要获得这样一个大小的存储器,需要 16 片 2K×4 位的芯片。
 
如果按字节编址,对应一个大小为 16K×8 位的存储器,需要14位地址,其中高 4 位为片选地址,低 11 位为片内地址,而题目给出的地址 251FH 转换为二进制为0010 0101 0001 1111 B,其高 4 位为1001,即片选地址为 9。
 
因此,地址 251FH 对应第 9 片芯片,该芯片的最大地址为 0010 0111 1111 1111 B,即27FFH。

P1291

A

 

P1292

B

 

P1293

参考答案:C

解析:基准程序的CPI = 2 x 0.5 + 3x 0.2 +  4 x 0.1+  5 x 0.2 = 3 ,计算机的主频为 1.2GHa,为 1200MHz,该机器的是 MIPS 为 1 200/3=400。

 

P1294

C

 

P1295

参考答案:A

 

P1296

B

 

P1297

A

P1298

参考答案:A

解析:采用 32 位定长指令字,其中操作码为 8 位,两个地址码一共占用 32-8=24 位,而Store 指令的源操作数和目的操作数分别采用寄存器直接寻址和基址寻址,机器中共有 16 个通用寄存器,则寻址一个寄存器需要 log216=4 位,源操作数中的寄存器直接寻址用掉 4 位,而目的操作数采用基址寻址也要指定一个寄存器,同样用掉 4 位,则留给偏移址的位数为24-4-4=16 位,而偏移址用补码表示,16 位补码的表示范围为-32768~+32767,选 A。

 

P1299

B

P1300

参考答案:B

答案解析:II肯定错误,IV是通过增加功能部件实现的并行。在理想情况下,I单周期CPU,

令指令周期=时钟周期;III基本流水线CPU,让每个时钟周期流出一条指令(执行完一条指令)。

 

P1301

参考答案:D

 

P1302

A

 

P1303

D

 

P1304

C

P1305

C

 

P1306

参考答案:C

解析:采用 4 级流水执行 100 条指令,在执行过程中共用4 +(100  - 1) 103 个时钟周期。

CPU 的主频是 1.03 GHz,也就是说每秒钟有 1.03 G 个时钟周期。

 

P1307

D

 

P1308

参考答案:C

答案解析:2.4G(频率)*2(每个时钟周期传递两次)*2(全双工)*2B/S=19.2GB/s

 

P1309

B

考查总线的基本概念。
总线带宽是指单位时间内总线上可传输数据的位数,通常用每秒钟传送信息的字节数来衡量,单位可用字节/秒(Bps)表示。根据题意可知,在 2*1/10MHz 秒内传输了 4B,所以 4B*10MHz/2=20MB/S。

P1310

参考答案:D

考查典型的总线标准,目前典型的总线标准有:ISA、EISA、VESA、 PCI 、PCI-Express、AGP、USB、RS-232C 等。

 

P1311

解答:

计算机采用3通道存储器总线,存储器总线的工作频率为1333MHz,即1秒内传送1333M次数据,总线宽度为64位,即单条总线工作一次可传输8字节,因此存储器总线的总带宽为3×8B×1333MHz=31992MB/s≈32GB/s。

本题选B。

P1312

C

 

P1313

参考答案: D

 

P1314

B

 

P1315

参考答案: C

解析:总线频率为 100MHz,则时钟周期为 10ns。总线宽度与存储字长都是 32 位,故每次传送一个 32 位存储字。猝发式发送可以连续传送地址连续的数据。故总的传送时间为:传送地址 10ns,传送 128 位数据 40ns,共需 50ns

 

P1316

参考答案: D

解析:USB 总线(通用串行总线)的特点有:①即插即用;②热插拨;③有很强的连接能力,采用菊花链形式将所有外设连接起来,且不损失带宽;④有很好的可扩充性,一个 USB 控制器可扩充高达 127 个外部周边 USB 设备;⑤高速传输,速度可达 480Mbps。所以 A、B、C 都符合 USB 总线的特点。对于选项D,USB 是串行总线,不能同时传输两位数据。

 

P1317

参考答案: D

解析:I/O 接口与 CPU 之间的 I/O 总线有数据线、命令线和地址线。命令线和地址线都是单向传输的,从CPU 传送给 I/O 接口,而 I/O 接口中的命令字、状态字以及中断类型号均是由 I/O 接口发往 CPU 的,故只能通过 I/O 总线的数据线传输。

 

P1318

参考答案: D

解析:不妨设原来指令条数为 x,那么原 CPI 就为 20/x,经过编译优化后,指令条数减少

到原来的 70%,即指令条数为 0.7x,而 CPI 增加到原来的 1.2 倍,即 24/x,那么现在 P 在 M上的执行时间就为指令条数*CPI=0.7x*24/x=24*0.7=16.8 秒,选 D。

 

P1319

参考答案: C

解析:数据线有 32 根也就是一次可以传送 32bit/8=4B 的数据,66MHz 意味着有 66M 个

时钟 周期,而 每个时钟周期 传送两次 数据,可知总 线每秒传 送的最大数据 量为66M×2×4B=528MB,所以总线的最大数据传输率为 528MB/s,选 C。

 

P1320

参考答案: C

解析:猝发(突发)传输是在一个总线周期中,可以传输多个存储地址连续的数据,即一次传输一个地址和一批地址连续的数据,并行传输是在传输中有多个数据位同时在设备之间进行的传输,串行传输是指数据的二进制代码在一条物理信道上以位为单位按时间顺序逐位传输的方式,同步传输是指传输过程由统一的时钟控制,选 C。

 

P1321

解答:D。高等级置0表示可被中断,比该等级低的置1表示不可被中断。

 

P1322

参考答案:A

答案解析:自陷是属于内中断。

 

P1323

参考答案:C

答案解析:II外部中断,描述的是时钟中断;III外部中断,外部事件

 

P1324

参考答案:B

答案解析:

A:[关中断]在中断服务过程中为了保护中断现场不被新的中断所打断,在保护现场的过程中,CPU不应响应更高级中断源的中断请求,但不可屏蔽中断通过NMI控制,不受中断标志位的影响,即使在关中断的情况下也会被响应。

B:CPU相应终端必须满足以下三个条件:①中断源有中断请求②CPU允许中断及开中断③一条指令执行完毕且没有更紧迫的任务

C:一般来说,在中断判优过程中,不可屏蔽中断优于可屏蔽中断

D:正确

 

P1325

参考答案:C

答案解析:DMA与主存相互并行,DMA工作期间不影响CPU的工作。

 

P1326

参考答案:A

考查中断处理过程。单级中断系统中,不允许中断嵌套。中断的处理过程为:1. 关中断;2. 保存断点;3. 识别中断源;4. 保存现场;5. 中断事件处理;(开中断、执行中断服务程序、关中断)6. 恢复现场;7. 开中断;8. 中断返回。其中,1~3 步由硬件完成,4~8 由中断服务程序完成。

 

P1327

B

 

P1328

D

 

P1329

参考答案:B

解析:设备和设备控制器之间的接口是 USB 接口

 

P1330

参考答案: D

解析:中断处理方式:在 I/O 设备输入每个数据的过程中,由于无需 CPU 干预,因而可使CPU 与 I/O 设备并行工作。仅当输完一个数据时,才需 CPU 花费极短的时间去做些中断处理。因此中断申请使用的是 CPU 处理时间,发生的时间是在一条指令执行结束之后,数据是在软件的控制下完成传送。而 DMA 方式与之不同。DMA 方式:数据传输的基本单位是数据块,即在 CPU 与 I/O 设备之间,每次传送至少一个数据块;DMA 方式每次申请的是总线的使用权,所传送的数据是从设备直接送入内存的,或者相反;仅在传送一个或多个数据块的开始和结束时,才需 CPU 干预,整块数据的传送是在控制器的控制下完成的。答案 D 的说法不正确。

 

P1331

C

 

P1332

参考答案: B

解析:在响应外部中断的过程中,中断隐指令完成的操作包括:①关中断;②保护断点;③引出中断服务程序(形成中断服务程序入口地址并送 PC),所以只有Ⅰ、Ⅲ正确。Ⅱ中的保存通用寄存器的内容是在进入中断服务程序后首先进行的操作。

 

P1333

参考答案:D

解析:采用统一编址时,CPU 访存和访问 I/O 端口用的是一样的指令,所以访存指令可以

访问 I/O 端口,D 选项错误,其他三个选项均为正确陈述,选 D。

 

P1334

参考答案:B

解析: 400ns 发出一次中断请求,而响应和处理时间为 100ns,其中容许的延迟为干扰信息,因为在 50ns 内,无论怎么延迟,每 400ns 还是要花费 100ns 处理中断的,所以该设备的 I/O 时间占整个 CPU 时间的百分比为 100ns/400ns=25%,选 B。

 

P1335

D

P1336

D

P1337

B

P1338

D

P1339

C

P1340

B

P1341

B

P1342

B

P1343

答案:C

 

首先求的是最小值,又是补码表示,那么第一位需要是1(负数), 然来来看-1的补码:1111 1111,

-2的补码:1111 1110,-3的补码:1111 1101...

可以看出除去最高位1外,后面7位值越大,其十进制表示的数就越大,所以3个“1”和5个“0”组成的最小值是:1000 0011,表示的十进制为:-125

 

当然也可以写出ABCD里面的二进制运用排除法

P1344

C

P1345

B

P1346

B

P1347

B

P1348

C

P1349

D

P1350

C

P1351

A

P1352

B

P1353

D

“A×B”A:地址线数目,B:数据线数目

地址线:512×1024=2×10的19次方

所以,地址线为19位。

数据线:8位。

P1354

A

4MB的B是字节 也就相当于32Mb 这里的b是位

一个字32位,按半字编址意思是每个字(32位)分配一个地址,而要求的寻址范围就是一共能分成多少个地址。

所以答案是32Mb/32b=1M

P1355

A

P1356

D

P1357

D

P1358

C

P1359

A

P1360

D

P1361

C

P1362

C

P1363

A

P1364

B

P1365

C

P1366

B

P1367

C

P1368

C

P1369

A

P1370

A

P1371

A

P1372

C

P1373

D

P1374

A

P1375

A

P1376

B

P1377

A

P1378

D

P1379

C

P1380

A

P1381

C

P1382

C

P1383

D

P1384

B

P1385

答:冯•诺依曼原理的基本思想是:
• 采用二进制形式表示数据和指令。指令由操作码和地址码组成。
• 将程序和数据存放在存储器中,使计算机在工作时从存储器取出指令加以执行,自动完成计算任务。这就是“存储程序”和“程序控制”(简称存储程序控制)的概念。
• 指令的执行是顺序的,即一般按照指令在存储器中存放的顺序执行,程序分支由转移指令实现。
• 计算机由存储器、运算器、控制器、输入设备和输出设备五大基本部件组成,并规定了5部分的基本功能。
冯•诺依曼型计算机的基本特点也可以用“存储程序”和“程序控制”来高度概括。

P1386

计算机的硬件系统由有形的电子器件等构成的,它包括运算器、存储器、控制器、输入输出设备及总线系统组成。

总线分为数据总线、地址总线、控制总线,其结构有单总线结构、双总线结构及多总线结构。

存储器(Memory)是用来存放数据和程序的部件;

运算器是对信息进行运算处理的部件;

控制器是整个计算机的控制核心,它的主要功能是读取指令、翻译指令代码、并向计算机各部分发出控制信号,以便执行指令;

输入设备能将数据和程序变换成计算机内部所能识别和接受的信息方式,并顺序地把它们送入存储器中;

输出设备将计算机处理的结果以人们能接受的或其它机器能接受的形式送出。

P1387

总线(Bus)就是计算机中用于传送信息的公用通道,是为多个部件服务的一组信息传送连接线。按照总线的连接方式,计算机组成结构可以分为单总线结构、双总线结构和多总线结构等。

P1388

计算机硬件(Hardware)是指构成计算机的所有实体部件的集合,通常这些部件由电路(电子元件)、机械等物理部件组成。计算机软件(Software)是指能使计算机工作的程序和程序运行时所需要的数据,以及与这些程序和数据有关的文字说明和图表资料,其中文字说明和图表资料又称为文档。固件(Firmware)是一种介于传统的软件和硬件之间的实体,功能上类似软件,但形态上又是硬件。微程序是计算机硬件和软件相结合的重要形式。
软件和硬件的逻辑等价含义:
(1)任何一个由软件所完成的操作也可以直接由硬件来实现
(2)任何一条由硬件所执行的指令也能用软件来完成
在物理意义上软件和硬件是不等价的。

P1389

计算机系统是一个由硬件、软件组成的多级层次结构,它通常由微程序级、一般机器级、操作系统级、汇编语言级、高级语言级组成,每一级上都能创造程序设计,且得到下级的支持。

P1390

评价计算机性能是一个复杂的问题,早期只限于字长、运算速度和存储容量3大指标。目前要考虑的因素有如下几个方面。
(1) 主频
主频很大程度上决定了计算机的运行速度,它的单位是兆赫兹(MHz)。
(2) 字长
字长决定了计算机的运算精度、指令字长度、存储单元长度等,可以是8/16/32/64/128位(bit)。
(3) 运算速度
衡量计算机运算速度的早期方法是每秒执行加法指令的次数,现在通常用等效速度。
(4) 存储容量
以字为单位的计算机常以字数乘字长来表明存储容量。
(5) 可靠性
系统是否运行稳定非常重要,常用平均无故障时间(MTBF)衡量。
(6) 可维护性
系统可维护性是指系统出了故障能否尽快恢复,可用平均修复时间(MTRF)表示,它是指从故障发生到机器修复平均所需要的时间。
(7) 可用性
是指计算机的使用效率。
(8) 兼容性
兼容是广泛的概念,是指设备或程序可以用于多种系统的性能。兼容使得机器的资源得以继承和发展,有利于计算机的推广和普及。
 

P1391

多媒体技术是指能够同时获取、处理 、编辑、存储和展示两个以上不同信息类型媒体的技术。计算机信息的形式可以是文字、声音、图形和图象等。

P1392

现代计算机系统是一个硬件与软件组成的综合体,可以把它看成是按功能划分的多级层次结构。
第0级为硬件组成的实体。
第1级是微程序级。这级的机器语言是微指令集,程序员用微指令编写的微程序一般是直接由硬件执行的。
第2级是传统机器级。这级的机器语言是该机的指令集,程序员用机器指令编写的程序可以由微程序进行解释。
第3级操作系统级。从操作系统的基本功能来看,一方面它要直接管理传统机器中的软硬件资源,另一方面它又是传统机器的延伸。
第4级是汇编语言级。这级的机器语言是汇编语言,完成汇编语言翻译的程序叫做汇编程序。
第5级是高级语言级。这级的机器语言就是各种高级语言,通常用编译程序来完成高级语言翻译工作。
第6级是应用语言级。这一级是为了使计算机满足某种用途而专门设计的,因此这一级语言就是各种面向问题的应用语言。

P1393

计算机系统的主要技术指标有:机器字长、数据通路宽度、主存储器容量和运算速度等。
机器字长是指参与运算的数的基本位数,它是由加法器、寄存器的位数决定的。
数据通路宽度是指数据总线一次所能并行传送信息的位数。
主存储器容量是指主存储器所能存储的全部信息。
运算速度与机器的主频、执行什么样的操作、主存储器本身的速度等许多因素有关。
 

P1394

若海明码的最高位号为m,最低位号为1,即HmHm-1…H2H1,则海明码的编码规则是:
(1)校验位与数据位之和为m,每个校验位Pi在海明码中被分在位号2i-1的位置上,其余各位为数据位,并按从低向高逐位依次排列的关系分配各数据位。
(2)海明码的每一位位码Hi(包括数据位和校验位)由多个校验位校验,其关系是被校验的每一位位号要等于校验它的各校验位的位号之和。
 

P1395

CRC码是一种纠错能力较强的编码。在进行校验时,将CRC码多项式与生成多项式G(X)相除,若余数为0,则表明数据正确;当余数不为0时,说明数据有错。只要选择适当的生成多项式G(X),余数与CRC码出错位位置的对应关系是一定的,由此可以用余数作为依据判断出错位置从而纠正错码。

P1396

运算器的基本结构应包括以下几个部分:
(1) 能实现算术和逻辑运算功能的部件ALU;
(2) 存放待加工的信息或加工后的结果信息的通用寄存器组;
(3) 按操作要求控制数据输入的部件:多路开关或数据锁存器;
(4) 按操作要求控制数据输出的部件:输出移位和多路开关;
(5) 计算器与其它部件进行信息传送的总线以及 总线接收器与发送器;总线接收器与发送器通常是由三态门构成的。

P1397

存储器的性能指标是对存储器进行设计、使用和提高时的主要依据,存储器性能指标也称为存储器参数。
(1)存储容量是指一个功能完备的存储器所能容纳的二进制信息总量,即可存储多少位二进制信息代码。
(2)存储器速度:存储器取数时间和存储器存取周期
(3)数据传输率:单位时间可写入存储器或从存储器取出信息的最大数量,称为数据传输率或称为存储器传输带宽bM
(4)可靠性存储器的可靠性是指在规定时间内存储器无故障的情况,一般用平均无故障时间MTBF来衡量。
(5)价格:又称成本,它是衡量主存储器经济性能的重要指标
 

P1398

主存储器的基本组成:
(1)贮存信息的存储体。一般是一个全体基本存储单元按照一定规则排列起来的存储阵列。存储体是存储器的核心。
(2)信息的寻址机构,即读出和写入信息的地址选择机构。这包括:地址寄存器(MAR)和地址译码器。地址译码器完成地址译码,地址寄存器具有地址缓冲功能。
(3)存储器数据寄存器MDR。在数据传送中可以起数据缓冲作用。
(4)写入信息所需的能源,即写入线路、写驱动器等。
(5)读出所需的能源和读出放大器,即读出线路、读驱动器和读出放大器。
(6)存储器控制部件。包括主存时序线路、时钟脉冲线路、读逻辑控制线路,写或重写逻辑控制线路以及动态存储器的定时刷新线路等,这些线路总称为存储器控制部件。

P1399

在MOS半导体存储器中,根据存储信息机构的原理不同,又分为静态MOS存储器(SRAM)和动态MOS存储器(DRAM),前者利用双稳态触发器来保存信息,只要不断电,信息不会丢失,后者利用MOS电容存储电荷来保存信息,使用时需不断给电容充电才能使信息保持。
 

P1400

对动态存储器要每隔一定时间(通常是2ms)给全部基本存储元的存储电容补充一次电荷,称为RAM的刷新,2ms是刷新间隔时间。由于存放信息的电荷会有泄漏,动态存储器的电荷不能象静态存储器电路那样,由电源经负载管源源不断地补充,时间一长,就会丢失信息,所以必须刷新。常用的刷新方式有两种:集中式刷新、分布式刷新。

P1401

高速缓冲存储器、多体交叉存储器。

P1402

Cache具有如下特点:
(1) 位于CPU与主存之间,是存储器层次结构中级别最高的一级。
(2) 容量比主存小,目前一般有数KB到数MB。
(3) 速度一般比主存快5~10倍,通常由存储速度高的双极型三极管或SRAM组成。
(4) 其容量是主存的部分副本。
(5) 可用来存放指令,也可用来存放数据。
(6) 快存的功能全部由硬件实现,并对程序员透明。

P1403

存储器和寄存器不是一回事。存储器在CPU的外边,专门用来存放程序和数据,访问存储器的速度较慢。寄存器属于CPU的一部分,访问寄存器的速度很快。

P1404

存储器的主要功能是:用来保存程序和数据。存储系统是由几个容量、速度和价格各不相同的存储器用硬件、软件以及硬件与软件相结合的方法连接起来的系统。把存储系统分成若干个不同层次的目的是为了解决存储容量、存取速度和价格之间的矛盾。由高速缓冲存储器、主存储器和辅助存储器构成的三级存储系统可以分为两个层次,其中高速缓冲和主存间称为Cache-主存存储层次(Cache存储系统);主存和辅存间称为主存-辅存存储层次(虚拟存储系统)。

P1405

存取周期是指主存进行一次完整的读写操作所需的全部时间,即连续两次访问存储器操作之间所需要的最短时间。存取时间是指从启动一次存储器操作到完成该操作所经历的时间。存取周期一定大于存取时间。

P1406

指令是灵活多变的,主要体现在以下几个方面:指令格式多样;寻址方式丰富;指令类型多种;操作码位数可随地址码个数变化而变化(扩展操作码方式);指令长度可变等。

P1407

基址寻址方式和变址寻址方式,在形式上是类似的。但用户可使用变址寻址方式编写程序,而基址寻址方式中对于基址寄存器,用户程序无权操作和修改,由系统软件管理控制程序使用特权指令来管理的。再者基址寻址方式主要用以解决程序在存储器中的定位和扩大寻址空间等问题。

P1408

(1)堆栈的概念
是若干个存储单元(或寄存器)的有序集合,它顺序地存放一组元素。
数据的存取都只能在栈顶单元内进行,即数据的进栈与出栈都只能经过栈顶单元这个“出入口”。
堆栈中的数据采用“先进后出”或“后进先出”的存取工作方式。
(2)堆栈结构在计算机中的作用
具有堆栈结构的机器使用零地址指令,这不仅合指令长度短,指令结构简单,机器硬件简化。
实现程序调用,子程序嵌套调用和递归调用。
对于“中断”技术,堆栈更是不可缺少的,保存“断点”和“现场”。
(3)堆栈的操作
设数据进栈方向为从高地址向低地址发展,当向堆栈压入数据时,SP的内容先自动递减而指向一个新的空栈顶单元,再把数据写入此栈顶单元;当数据弹出堆栈时,立即读出SP所指向的栈顶单元内容,再把SP内容自动递增而指向新的栈顶位置。即
PUSH X; (SP)-1SP
(X)(SP)
POP X; ((SP))X
(SP)+1SP

P1409

指令长度与机器字长没有固定关系,指令长度可以等于机器字长,也可以大于或小于机器字长。通常,把指令长度等于机器字长的指令称为单字长指令;指令长度等于半个机器字长的指令称为半字长指令;指令长度等于两个机器字长的指令称为双字长指令。

P1410

程序控制原理:
(1)编程;
(2)送MM(通过输入设备);
(3)机器工作时,是按一定的序列逐条取出指令,分析指令,执行指令,并自动转到下一条指令执行,直到程序规定的任务完成;
(4)程序控制由控制器承担,程序存储由存储器完成。

P1411

控制器的基本功能就是负责指令的读出,进行识别和解释,并指挥协调各功能部件执行指令。控制器的基本结构包括:指令部件、时序部件、微操作控制线路、中断控制逻辑。

P1412

微程序控制技术在现今计算机设计中得到广泛的采用,其实质是用程序设计的思想方法来组织操作控制逻辑。

P1413

控制器的控制方式可以分为3种:同步控制方式、异步控制方式和联合控制方式。
同步控制控制方式的各项操作都由统一的时序信号控制,在每个机器周期中产生统一数目的节拍电位和工作脉冲。这种控制方式设计简单,容易实现;但是对于许多简单指令来说会有较多的空闲时间,造成较大数量的时间浪费,从而影响了指令的执行速度。
异步控制方式的各项操作不采用统一的时序信号控制,而根据指令或部件的具体情况决定,需要多少时间,就占用多少时间。异步控制方式没有时间上的浪费,因而提高了机器的效率,但是控制比较复杂。
联合控制方式是同步控制和异步控制相结合

P1414

指令和数据都存放在主存,它们都以二进制代码形式出现,区分的方法为:
(1)取指令或数据时所处的机器周期不同:取指周期取出的是指令;分析、取数或执行周期取出的是数据。
(2)取指令或数据时地址的来源不同:指令地址来源于程序计算器;数据地址来源于地址形成部件。

P1415

微指令是控制计算机各部件完成某个基本微操作的命令。微操作是指计算机中最基本的、不可再分解的操作。微指令和微操作是一一对应的,微指令是微操作的控制信号,微操作是微指令的操作过程。微指令是若干个微命令的集合。微程序是机器指令的实时解释器,每一条机器指令都对应一个微程序。
微程序和程序是两个不同的概念。微程序是由微指令组成的,用于描述机器指令,实际上是机器指令的实时解释器,微程序是由计算机的设计者事先编制好并存放在控制存储器中的,一般不提供给用户;程序是由机器指令组成的,由程序员事先编制好并存放在主存放器中。
 

P1416

1、水平型微指令并行操作能力强、效率高并且灵活性强,而垂直型微指令则较差。2、水平型微指令执行一条指令的时间短,垂直型微指令执行时间长。3、由水平型微指令解释指令的微程序,因而具有微指令字比较长,但微程序短的特点,而垂直型微指令则正好相反。4、水平型微指令用户难以掌握,而垂直型微指令与指令相似,相对来说比较容易。
 

P1417

时钟周期是系统工作的最小时间单位,它由计算机主频决定;总线周期指总线上两个设备进行一次信息传输所需要的时间(如CPU对存储器或I/O端口进行一次读/写操作所需的时间);指令周期指CPU执行一条指令所需要的时间。
三者之间的关系是:时钟周期是基本动作单位;一个总线周期通常由n个时钟周期组成;而一个指令周期中可能包含有一个或几个总线周期,也可能一个总线周期都没有,这取决于该指令的功能。

P1418

主要影响有以下三方面:
(1)最大存储容量
单总线系统中,最大内存容量必须小于由计算机字长所决定的可能地址总线。
双总线系统中,存储容量不会受到外围设备数量的影响
(2)指令系统
双总线系统,必须有专门的I/O指令系统
单总线系统,访问内存和I/O使用相同指令
(3)吞吐量
总线数量越多,吞吐能力越大

P1419

外设接口(或叫作I/O接口)是主机和外设(控制器)之间的实体部件,是实现主机与外设之间信息交换所必不可少的硬件支持。

P1420

接口电路应具有的基本的功能:(1)数据的暂存与缓冲;(2)保存设备的工作状态;(3)信息交换方式的控制;(4)通信联络控制;(5)外设的识别;(6)数据格式的变换控制。

P1421

I/O组织是指计算机主机与外部设备之间的信息交换方式。计算机主机与外设之间的信息交换方式有5种:程序查询式、中断式、DMA式、通道式、外围处理机方式。
特点:从系统结构的观点看,前两种方式是以CPU为中心的控制,都需要CPU执行程序来进行I/O数据传送,而DMA式和通道式这两种方式是以主存贮器为中心的控制,数据可以在主存和外设之间直接传送。对于最后一种方式,则是用微型或小型计算机进行输入和输出控制。程序查询和程序中断方式适用于数据传输率比较低的外设,而DMA、通道和外围处理机使用于数据传输率比较高的外设。程序查询式控制简单,但系统效率很低;中断式通过服务程序完成数据交换,实现了主机与外设的并行性;DMA式通过硬件实现了数据传送,速度快,但只能控制同一类外设;通道式采用执行通道程序实现对不同类型设备的控制和管理,并行性进一步提高;外围处理机方式具有更大的灵活性和并行性。

P1422

同:两种方式都是以CPU为中心的控制方式,都需要CPU执行程序来进行I/O数据传送。

异:程序查询式控制简单,但系统效率很低,无法实现并行操作;中断式通过服务程序完成数据交换,实现了主机与外设的并行性。

P1423

中断是指这样一个过程:当计算机执行正常程序时,系统中出现某些异常情况或特殊请求,CPU暂停它正在执行的程序,而转去处理所发生的事件;CPU处理完毕后,自动返回到原来被中断了的程序继续运行。中断的作用:(1)主机与外部设备并行工作;(2)实现实时处理;(3)硬件故障处理;(4)实现多道程序和分时操作。
 

P1424

1、中断优先级有两个方面的含义:一是中断请求与CPU现行程序优先级的问题;另一含义是各中断源之间,谁更迫切的问题。2、方法:(1) 软件;(2)硬件:为了得到较高的效率,一般采用硬件判优方法。判优逻辑随着判优方案的不同可有不同的结构,其组成部分既可能在设备接口之中,也可能在CPU内部,也可能这两部分都有。其作用是决定CPU的响应并且找出最高优先请求者,如果确定接收这个请求的话,就由CPU发出中断响应信号INTA。(3)软硬件结合。中断判优发生在中断过程的第二步,中断请求之后,中断响应之前。

P1425

外部设备的主要功能有数据的输入、输出、成批存储以及对信息的加工处理等。外部设备可以分为五大类:输入输出设备、辅助存储器、终端设备、过程控制设备和脱机设备。其典型设备有键盘、打印机、磁盘、智能终端、数/模转换器和键盘-软盘数据站等。

P1426

磁表面存储器有如下显著的特点:
(1)存储密度高,记录容量大,每位价格低;
(2)记录介质可以重复使用;
(3)记录信息可长时间保存而不致丢失;
(4)非破坏性读出,读出时不需再生信息;
(5)存取速度较低,机械结构复杂,对工作环境要求较严。

P1427

答:(1)定点原码整数表示:
最大正数:数值 = (2^31 – 1)10
最大负数:数值 = -(2^31 – 1)10 
(2)定点原码小数表示:
最大正数 = (1 – 2^(-31) )10
最大负数 = -(1 – 2^(-31) )10
 

P1428

答:(1)16K×8 / 1K×1 = 128,故需 1024×1 的芯片128片。
(2)该存储器所需的地址线总位数是14位,其中2位用于选板,2位用于选片,10位用作片内地址。

P1429

答:顺序存储器和交叉存储器连续读出m=8个字的信息总量都是:
q = 64位× 8 =512位
顺序存储器和交叉存储器连续读出8个字所需的时间分别是:
t2 = mT = 8 × 200ns =1600ns =16 × 10 ^(-7) (S)
t1 = T + (m–1)t =200ns + 7×50ns = 550ns = 5.5 × 10^(-7) (S)
顺序存储器带宽 W2 = q/t2 = 512 / (16×10^7) = 32 × 10^7(位/S)
交叉存储器带宽 W1 = q/t1 = 512/ (5.5×10^7) = 73 × 10^7(位/S)
 

P1430

答:由于设定全部指令采用8位固定的OP字段,故这台计算机最多的指令条数为2^8=256条。因此最多还可以设计出(256-m-n)条单操作数指令。

P1431

解:总线的带宽=数据宽度×总线周期的最高频率
=(32/8)Byte×(8.33/3)M/s
= 11.1 MB/s

P1432

答:(1)6×2=12(面),共有12个存储面可用。
(2)40×(33-22)/2=220(道),共有220个圆柱面。
(3)12×22π×400×220=73×10^6(位)。
(4)数据传送率=(22π×400)/(60/2400)=1.1×10^6(b/s)=0.138×10^6(B/s)。
(5)记录在同一圆柱面上。因为这样安排存取速度快。
(6)如果采用定长信息块记录格式,直接寻址的最小单位是扇区。磁盘地址:驱动器号、圆柱面号、盘面号、扇区号。

P1433

C

P1434

D

P1435

C

P1436

D

P1437

B

P1438

B

P1439

C

P1440

D

P1441

A

P1442

B

P1443

A

P1444

B

P1445

D

P1446

A

P1447

C

P1448

A

P1449

C

P1450

C

P1451

B

P1452

C

P1453

C

P1454

C

P1455

B

P1456

A

P1457

C

P1458

A

P1459

A

P1460

C

P1461

D

P1462

C

P1463

C

P1464

B

P1465

C

P1466

C

P1467

A

P1468

A

P1469

B

P1470

三态门

P1471

必须按最慢速度的部件来设计公共时钟

P1472

单向总线

P1473

解:根据总线时钟频率为 100MHz,得 
    1个时钟周期为  1/100MHz = 0.01μs 
    总线传输周期为 0.01μs×4 = 0.04μs 
    由于总线的宽度为 32 位 = 4B(字节) 
    故总线的数据传输率为 4B/(0.04μs)= 100MBps 
    若想提高一倍数据传输率,可以在不改变总线时钟频率的前提下,使数据线宽度改为 64 位,也可以仍保持数据宽度为 32 位,但使总线的时钟频率增加到 200MHz。

P1474

解: 根据题目给出的字符格式,一帧包含 1+7+1+1=10 位 
     故波特率为(1+7+1+1)×120=1200bps=1200 波特
 

P1475

C

 

半导体RAM中有MOS管,MOS管必须通电,所以半导体存储器断电后信息易失

P1476

B

P1477

B

P1478

D

 

磁盘属于直接存取存储器,其速度介于随机存取存储器和顺序存取存储器之间。

P1479

A

P1480

C

P1481

A

P1482

C

P1483

B

P1484

D

P1485

D

P1486

D

P1487

B

P1488

C

P1489

C

P1490

A

P1491

A

P1492

C

P1493

C

P1494

B

P1495

C

P1496

B

P1497

C

P1498

D

P1499

A

P1500

A

P1501

C

P1502

D

 

CFFFF-90000+1=40000,即256KB,若用存储容量为16K×8bit芯片则需芯片数=(256K×8)/(16k×8)=16(片)。
采用字扩展的方法,用若干存储芯片构成一个存储器。
用地址范围的末地址减去首地址再加1,就可以方便地计算出存储空间的大小。

P1503

B

P1504

A

 

单译码方式的地址输入线有6根,则有64个译码输出线。
双译码方式:有两个译码器(X地址译码器、Y地址译码器),X和Y两个方向译码器的输出线在存储体内部的一个记忆单元上交叉,以选择对应的记忆单元。在本题中,X和Y各有3为,则一共有16根。

P1505

B

P1506

A

P1507

D

P1508

C

 

假设存储器的存取周期为T,(1)的情况下,连续读取6个存储字需时T+(6-1)×(T/4)=2.25T,但存放连续字中第一个字的存储器需到3T时间后才能进行下一轮读取,故(1)共需时3T×(80-1)+2.25T=239.75T;(2)的情况同理,一轮读取需时T+(8-1)×(T/4)=2.75T,但开始下一轮读取需3T时间后,故(2)共需时3T×(60-1)+2.75T-179.75T;综合上述分析,(1)、(2)所花时间之比约为4:3。

P1509

C

P1510

A

P1511

C

P1512

C

P1513

D

 

主存是Cache的4096=212,得出高位主存块的标记是12位。
由括号中的补充知道,只需要再加一位基本的有效位即可。 因此,一个Cache快需要13bits进行标识。
总共是64块,得出64 * 13bit的答案。

P1514

C

 

当CPU访存时,先要到Cache中查看该主存地址是否在Cache中,所以发送的是主存物理地址。只有在虚拟存储器中,CPU发出的才是虚拟地址,这里并没有指出是虚拟存储系统。磁盘地址是外存地址,外存中的程序由操作系统调入主存中,然后在主存中执行的,因此CPU不可能直接访问磁盘。

P1515

D

P1516

C

P1517

B

P1518

B

P1519

A

P1520

B

P1521

B

P1522

B

P1523

A

P1524

C

P1525

C

P1526

A

P1527

A

P1528

C

P1529

C

P1530

D

P1531

C

P1532

B

P1533

C

P1534

B

P1535

C

P1536

B

P1537

B

P1538

C

P1539

D

P1540

C

P1541

B

P1542

C

P1543

D

P1544

C

P1545

D

P1546

C

P1547

B

P1548

C

P1549

B

P1550

A

P1551

D

P1552

B

P1553

B

P1554

C

P1555

C

P1556

B

P1557

D

P1558

B

P1559

A

P1560

B

P1561

D

P1562

A

P1563

C

P1564

C

P1565
B
P1566
参考答案:A
答案解析:C800 0000H = 1100 1000 0000 0000 0000 0000 0000 0000H
若为 float 转化为 1 100 1000 0 000 0000 0000 0000 0000 0000H = -2^17
若为 int,则对 C800 0000H 求补,得 B800 0000H,即-7×2^27
P1567

C

(存储周期:连续两次独立的存储操作,(读或写)所需的最小间隔时间

  存储时间:存储器的访问时间)

P1568
A
P1569
参考答案:A
答案解析:48 条指令需要 6 位操作码字段,4 种寻址方式需要 2 位寻址特征位,故寻址范围为 0~255。 注意,主存地址不能为负数。
P1570

C

4MB的B是字节 也就相当于32Mb 这里的b是位

一个字32位,按半字编址意思是每半个字(16位)分配一个地址,而要求的寻址范围就是一共能分成多少个地址。

所以答案是32Mb/16b=2M

P1571

考查指令执行过程。
通常完成一条指令可分为取指阶段和执行阶段。在取指阶段通过访问存储器可将指令取出;在执行阶段通过访问存储器可以将操作数取出。这样,虽然指令和数据都是以二进制代码形式存放在存储器中,但 CPU 可以判断在取指阶段访问存储器取出的二进制代码是指令;在执行阶段访存取出的二进制代码是数据。

P1572
解答:
一条指令的执行过程通常由取指、译码和执行 3 个步骤完成,本题中取指用 3 个节拍、译码用 1 个节拍,执行加法运算并把结果写入主存如何完成呢?包括划分执行步骤、确定完成的功能、要提供的控制信号,这是
本题要测试的内容。为回答这个问题,首先要看清图中给出的部件组成情况和信息传送的路径。
要完成的功能时(R0)+((R1))  (R1),从图中看到:
(1) R0、R1 都有送自己内容到内总线的路径,控制信号分别是 R0out 和 R1out;
(2) ALU 加运算,2 个数据由工作寄存器 A 和内总线提供,控制信号是 Add;A 只接收内总线的内容,控制信号是 Ain;结果需存 AC,控制信号是 ACin;AC 的内容可送内总线,控制信号是 ACout;
(3) PC 可接收内总线的内容,还可增 1,控制信号是 PCin 和 PC+1,PC 的内容可送内总线,控制信号是 PCout;
(4) 指令寄存器 IR 可接收内总线的内容,控制信号是 IRin;
(5) 读写存储器时,地址由 MAR 经 AB 提供,MAR 只接收总线上的信息,控制信号是 MARin;
(6) 读存储器,提供读命令 MemR,并通过 DB 送入 MDR,控制信号是 MDRinE;MDR 的内容可送入总线,控制信号是 MDRout;
(7) 写存储器,提供写命令 MemW,数据由 MDR 通过 DB 送到存储器的数据引脚,控制信号是 MDRoutE;
然后是划分执行步骤、确定每一步完成的功能、需要提供的控制信号。这是由指令应完成的功能和计算机硬件的实际组成情况和信息传送的可用路径共同决定的,基本原则是步骤越少越好。硬件电路要能支持,可以有多种方案,解题时应参照以给出的答题格式,即取指和译码阶段的那张表的内容,但不必把表已有的内容再 抄一遍。
划分指令执行步骤,确定每一步完成的功能、给出需要提供的控制信号:
请注意,(R0)+((R1))表示:R0 寄存器的内容与 R1 作地址从主存中读出来的数据完成加法运算;而 (R1)表示把 R1 的内容作为主存储器的地址完成写主存操作。为防止出现误解,题中还特地对此作了文字说明。这条指令的功能是先到主存储器取一个数,之后运算,再将结果写回主存储器。
(1) 执行相加运算,需把存储器中的数据读出,为此首先送地址,将 R1 的内容送 MAR,控制信号是 R1out、 MARin。
(2) 启动读主存操作,读出的内容送入 MDR,控制信号是 MemR、MDRinE。还可同时把 R0 的内容经内总线送入 A,用到的控制信号是 R0out、Ain。
(3) 执行加法运算,即 A 的内容与 MDR 的内容相加,结果保存到 AC,控制信号是 MDRout、Add、Acin。
(4) 要把 AC 的内容写入主存,由于 R1 的内容已经在 MAR 中,地址已经有了,但需要把写入的数据(已经在 AC 中)经内总线送入 MDR,控制信号是 ACout、MDRin。
(5) 给出写主存的命令,把 MDR 的内容经 DB 送存储器的数据线引脚,执行写操作,控制信号是 MDRoutE、MemW。
这几个步骤是有先后次序的,前面的完成了,下一步才可以执行,也保证了不会产生硬件线路的冲突。请注意,使用最为频繁的是内总线,它在任何时刻只能接收一个输入数据,并且向内总线发送信息的电路只能以三态门器件连接到内总线,5 个向内总裁发送信息的控制信号(ACout,PCout,R0out,R1out,MDRout)最多只能有一个为 1,其他 4 个必须全为 0,或者 5 个全为 0.
仔细看一下,发现可以把第 2 个步骤的操作划分到两个步骤中完成,一个步骤中安排 MDR 接收从存储器中读出的内容,到另外一个步骤实现 R0 的内容送入 A,这多用了一个操作步骤,指令的执行速度会变慢。有些解题者在写存储器之前,还会再执行一次把 R1 的内容送 MAR,尽管无此必要,但不属于原理上的错误。
当然还可以有其他的设计结果。
解题时这些叙述内容不必写出来(这里写出这些内容是希望帮助大家领会本题要测试的知识点和指令的执行过程),直接按照已经给出的表格的形式、按照提供的填写办法把设计的表格及其内容填好就可以了。
请注意,题目表格内容(告诉你答题的格式和答题内容的表达方式)与你答题的表格内容合在一起才是这条指令的完整的执行过程,千万不要产生任何错觉。

P1573

P1574

解答:

short为16位有符号整型,最高位为符号位, −8190=(8192−2)=−((2^13−1)−1) , 2^13−1 的二进制表示为 13 个 1,[x]原=1001 1111 1111 1110B,将原码除符号位外取反加1转换为补码,[x]补=1110 0000 0000 0010B=E002H。

本题选A。

P1575

本题选A。

P1576

本题选C。

P1577

解答:

int为32位有符号整型,int 为 32 位有符号短整型,用补码表示,最高位为符号位,表示范围为 −2^31∼2^31−1 。当 x=10, y=-20 时,x-y=30,显然在表示范围之内,不溢出,OF=0。

当 x=10, y=-20 时,[x]补=[x]原=0000 0000 0000 0000 0000 0000 0000 1010B=0000000AH,[y]原=1000 0000 0000 0000 0000 0000 0001 0100B,[y]补=1111 1111 1111 1111 1111 1111 1110 1100=FFFFFFECH,被减数和减数均视为无符号数,显然0000000AH不够减FFFFFFECH,0000000AH需要最高位的更高位借1,该减法发生借位,CF=1。

本题选B。

P1578

解答:

指令字由操作码、寻址特征和地址码三个字段组成,寻址特征字段用来指明指令属于那种寻址方式。若寻址方式是寄存器直接寻址,则地址码所指的通用寄存器存放的是操作数,若寻址方式是寄存器间接寻址,则地址码所指的通用寄存器存放的是操作数的地址。

本题选A。

P1579

解答:

组合逻辑元件(操作元件)不含存储信号的记忆单元,任何时刻产生的输出取决于当前的输入,加法器、算术逻辑单元(ALU)、译码器、多路选择器、三态门等都属于操作原件。时序逻辑元件(状态元件)包含存储记忆单元,各类寄存器和存储器,如通用寄存器组(GPRs)、程序计数器(PC)、状态/移位/暂存/锁存寄存器等,都属于状态元件。

本题选B。

P1580

解答:

I2和I1之间存在数据冒险,属于写后读数据冒险(read after write Data Hazard, RAW Data Hazard):读取某数据操作必须在写入该数据操作之后执行,否则可能产生错误。I1在WB段才将新值写回寄存器R[s2],但I2的EX段就要读R[s2]以计算访存的有效地址,I1在EX段结束时就已生成R[s2]的新值,被存放在EX→M流水段寄存器中,采用转发技术后,可以直接从该流水段寄存器中取出数据送到ALU输入端,这样I2执行时ALU用的是R[s2]的新值,解决了I1和I2的数据冒的险。

I3和I2之间存在数据冒险,属于装入-使用数据冒险(load-use Data Hazard):LOAD指令和随后使用LOAD指令所加载数据的后续指令之间存在的依赖关系,即使用某数据操作必须在装入该数据之后执行,否则可能产生错误。仅用转发线路无法解决I2和I3之间的数据相关问题,需要用转发技术结合装入-使用阻塞解决。原因在于I2的功能是从内存中取数,只有在M段结束时才能从主存中得到R[s3]的新值,即先装入后使用,但I3的EX段就要用到R[s3],I3需要阻塞1个时钟周期,等到I2的M段结束之后,从I2的M→WB流水段寄存器中取到R[s3]的新值。

常考的数据冒险有:写后读(read after write, RAW)数据冒险、写后写(write after write, RAW)数据冒险、读后写(write after read, WRA)数据冒险、装入-使用(load-use)数据冒险等。

在按序发射,按序流动的流水线中,可能出现写后读(RAW)数据冒险和装入-使用(load-use)数据冒险。

I4和I3之间存在控制冒险,beq指令在EX段计算转移目的地址,在M段确定是否将PC值更新为转移目的地址。因此在I4和I3日之间需要进行阻塞,I4的IF段要在I3的M段结束之后才能开始执行。I4的执行需要被阻塞3个时钟周期。

假设采用软件插入NOP指令的方法进行阻塞,指令的执行过程如下图所示。

本题选C。

P1581

解答:

每次传输包含传输地址、准备数据、传输数据三个阶段,总线时钟频率为 1GHZ,时钟周期为1ns,在总线上传输一个数据或地址需要一个的时钟周期,每次传输地址需要1ns,传输数据需要1ns,主存每次准备一个64位数据需要6ns,所以每次传输需要8ns。

由于总线不支持突发传送方式,所以每次只能传输一个总线宽度,总线宽度为64位,主存块大小为32B,所以需要传输32B/64bit=4次。读取一个主存块需要的时间为4×8ns=32ns。

本题选D。

P1582

解答:

A正确。CPU在执行指令期间会持续检测是否发生异常事件,例如除零错误、地址越界、非法指令等。如果检测到异常事件,CPU将立即终止当前指令的执行并跳转到异常处理程序。

B正确。CPU在执行完一条指令后会检测是否有中断请求。

C正确。开中断时,如果检测到中断请求,CPU将完成当前指令的执行后,立即进行中断响应,跳转到相应的中断服务程序来处理中断。即便是多重中断,CPU正在处理某个中断的过程中,由于中断屏蔽字的存在,CPU检测不到处理优先级更低的中断请求信号,若检测到中断请求信号,则说明其处理优先级更高,会立即响应。

D错误。外部设备并不会主动向CPU发送中断结束信号。CPU在接收到中断请求信号后,会执行中断处理程序,通过中断处理程序来处理相应的中断,中断服务程序执行结束后CPU会自行返回(中断服务程序最后一条指令是返回指令)。

本题选D。

P1583

解答:

A正确。查询方式下,通过 CPU 执行查询程序进行 I/O 操作。

B正确。中断方式下,通过 CPU 执行中断服务程序进行 I/O 操作。

C错误。DMA方式在预处理和后处理阶段需要CPU来处理,而数据传输阶段由DMA控制器完成。

D正确。对于SSD、网络适配器等高速设备采用DMA方式输入/输出。由于SSD、网络适配器等设备具有较高的速度和较大的数据传输能力,采用DMA方式能够更有效地利用设备的性能,提高数据传输速度。

本题选C。

P1584

解答:

(1) 第一问。数组a分为2个页面存储。根据C语言程序段,数组a共有24×64=1536个元素,每个数组元素类型为int,sizeof(int)=4,即一个元素占4B内存,所以数组a占1536×4B=6KB内存。页面大小为4KB,数组元素在内存空间连续存放,需要占 ⌈6KB/4KB⌉=2 个页面。

第二问。对于数组a的访问,会发生2次缺页异常。因为在M上执行上述程序段之前数组a不在主存,且数组a分为2个页面存储。所以当访问这两个页面中第一个元素时,页面尚未调入内存,会产生缺页异常,总计2次缺页异常。

第三问。两个页故障地址分别是0042 2000H和0042 3000H。虚拟地址格式为,页面大小为4KB= 2^12 B,按字节编址,页内地址占低12位,虚拟地址为32位,虚页号占高32-12=20位。数组a在虚拟地址空间中分配的起始地址为0042 2000H,第一次缺页访问虚拟页号为0042 2H,数组元素在内存空间从低地址到高地址连续存放,所以第二次缺页访问虚拟页号为0042 3H,访问该页面第一个元素所在页内地址为000H,即访问位置为0042 3000H。所以两个页故障地址分别是0042 2000H和0042 3000H。

(2) 第一问。该程序段的数据访问没有时间局部性。

第二问。时间局部性是指如果某数据被访问过,不久以后该数据可能再次被访问。显然a中每个元素仅被访问1次,不存在重复访问,所以没有时间局部性。

(3) 第一问和第二问。组相联映射格式为  ,主存块大小为32B= 2^5 B,按字节编址,块内地址占低5位,数据区大小为8KB,有8KB/32B= 2^8 行,数据Cache采用4路组相联映射,有 2^8/4=2^6 组,组号占中间6位,虚拟地址为32位,主存字块标记占高32-5-6=21位。综上,虚拟地址中低5位(A4~A0)用作块内地址,低11位中高6位(A10~A5)用作Cache组号。

a[1][0]的虚拟地址0042 2100H。因为a的起始地址为0042 2000H,一行有64个元素,一个元素占4个地址单元,所以a[1][0]的虚拟地址是0042 2000H+(64×1+0)×4H=0042 2100H。

第四问。a[1][0]所在主存块对应的Cache组号是8。因为a[1][0]的虚拟地址0042 2100H =  ,组号001 000B=8。

(4) 第一问。数组a占192个主存块。根据(1)第一问的结论,数组a占6KB内存,主存块大小为32B,由于a的起始地址为0042 2000H =  ,第一个元素的块内地址是00000B=0,也就是数组a占用每个块都是用a中元素占满了,不存在数组a占了某个块的仅一部分内存空间的情况。所以数组a恰好占6KB/32B=192个主存块。

第二问。数组a的Cache命中率为87.5%。主存块大小为32B,数组a每个元素大小为4B,一个主存块包含32B/4B=8个元素,数组a按行优先存放,C语言程序段按行访问数组元素,每个元素仅访问一次,所以每访问每个主存块中第一个元素产生Cache缺失,剩余8-1=7次Cache命中,所以数组a的Cache命中率为7/8=87.5%。

第三问。数组a的Cache命中率为87.5%。将循环中i和j的次序调换后的C语言程序段按列访问数组元素,数据Cache采用4路组相联映射,a的起始地址为0042 2000H。

数组a按行优先存放,外层循环j总共有64次迭代,外层循环j的每8次迭代元素都会被映射到8个组中,数组a共有24行,外层循环j的每一次迭代只会映射到这8个组中某24/8=3行,每组有4行,3<4,所以外层循环的每一次迭代均不会发生对本次迭代中已经调入的主存块的替换。每个元素仅访问一次,所以每访问每个主存块中第一个元素产生Cache缺失,剩余8-1=7次Cache命中,所以数组a的Cache命中率为7/8=87.5%。

P1585

解答:

(1) 第20条指令的虚拟地址是004010B9H。第19条指令的虚拟地址是004010AEH,指令内容为“C7 84 82 00 20 42 00 0A 00 00 00”(从左到右为从低字节到高字节的内容),占11字节,根据题43,计算机M按字节编址,所以第19条指令占11个地址空间,所以第20条指令的虚拟地址是004010AEH+11=004010B9H。

(2) 第一问。第2条jmp指令和第7条jge指令都采用相对寻址方式。

第二问。相对寻址过程为首先执行(PC)+1→PC,然后执行EA=(PC)+A,第2条jmp指令内容为EB 09H,占2字节。根据题43,计算机M按字节编址,所以第2题条指令占2个地址空间,

第2条jmp指令地址为00401079H,下一条指令地址为00401079H+2H=0040107BH,或者直接读第3条指令地址为0040107BH,跳转目标地址为00401084H,跳转目标地址EA=下一条指令地址(=当前指令地址+当前指令字的编址单位数)+偏移A,即00401084H = 00401079H + 2H + A,解得A=9H。第2条指令jmp的跳转目标地址00401084H=00401079H+2H+9H。

(3) 第一问。第19条指令中源操作数采用立即寻址方式。根据第19条的汇编代码mov[ecx+edx*4+00422000h], 0Ah,mov为传送指令,源操作数0Ah为立即数,所以源操作数采用立即寻址方式。

第二问。ecx存放的是i×256。a[i][j]的地址=a[0][0]的地址+4(64i+j)=a[0][0]的地址+256i+4j,对应表达式ecx+edx*4+00422000h,a[0][0]的地址为00422000h,edx中存放的是变量j,显然ecx存放的是256i,即i×256。

第三问。计算机M采用的是小端方式。第19条指令内容“  ”(从左到右为从低字节到高字节的内容)中“00 20 42 00”(从左到右为从低字节到高字节的内容)部分对应00422000h,低字节内容在低地址,高字节内容在高地址,显示是小端方式。

(4) 第一次执行第19条指令时取指令过程中不会发生缺页异常。根据43题问题(1)中第三问,虚拟地址低12位为页内地址,高20位为虚页号。第19条指令地址  和第1条指令地址  的虚页号相同,位于同一页,访问第1条指令后,虚页号004010H的页面一定位于主存中,所以第19条指令时不会发生缺页异常。

P1586

 位补码最高1位为符号位,剩余 n−1 位为数值位,表示范围为 −2^(n−1)∼2^(n−1)−1 。

32位补码最高1位为符号位,剩余31位为数值位,表示范围为 −2^31∼2^31−1 。

本题选B。

P1587

P1588

采用分页虚拟存储管理方式,虚拟地址格式为  

虚拟地址空间大小为4GB= 2^32B,页大小为4KB= 2^12B,按字节编址,页内地址占低12位,虚拟地址占32位,虚页号占高32-12=20位。

虚拟地址  ,虚页号为00082H=8×16+2=130,查该进程页表得,虚页号130对应的存在位为1,实页号为018H,主存地址为24位,实页号占高24-12=12位,查表得到的实页号正好12位,高位不需要去0或者补0,拼接得到主存地址 

本题选C。

P1589

组相联映射格式为 主存字块标记 组号 块内地址

主存块大小为64B= 2^6B,按字节编址,块内地址占低6位,数据区容量为32KB,总共有32KB/64B= 2^9 行,采用8路组相联映射方式,每8行为1组,有 2^9/8=2^6 组,组号占中间6位,主存地址为32位,主存字块标记占高32-6-6=20位。

Cache采用8路组相联映射方式,首先根据组号定位到某一分组,然后根据主存字块标记和该分组中的每一行的Tag进行比较,需要比较8行,所以比较器的个数为8,主存字块标记为20位,所以比较器位数为20位。

2018年题44图中出现了比较器,这道题中Cache采用2路组相联映射方式,有2个比较器,接受Cache行中的Tag。

本题选A。

P1590

A正确。因为该内存条包含8个8192×8192×8位的DRAM芯片,所以该内存条的容量为8×8192×8192×8bit=512MB。

B正确。存储器总线宽度为64位,而每个芯片一次只能传输8位,需要使用8体多模块交叉编址方式才能实现。

D正确。芯片内行数是8192,一行的大小是8192×8bit,行缓冲长度就是一行的大小。

本题选C。

P1591

方法一:定义法。

指令集体系结构 (Instruction Set Architecture, ISA) 是软件和硬件之间接口的一个完整定义。ISA定义了一台计算机可以执行的所有指令的集合,每条指令规定了计算机执行什么操作,所处理的操作数存放的地址空间以及操作数类型。ISA规定的内容包括数据类型及格式,指令格式,寻址方式和可访问地址空间的大小,程序可访问的寄存器个数、位数和编号,控制寄存器的定义,I/O空间的编制方式,中断结构,机器工作状态的定义和切换,输入输出结构和数据传送方式,存储保护方式等。因此,可以看出,指令集体系结构是指软件能够感知到的部分,也称软件可见部分。

I和III正确。

本题选B。

方法二:排除法

时钟周期的长度取决于计算机的硬件设计和时钟频率。时钟频率指的是时钟信号每秒钟发生的次数。时钟频率越高,每秒钟CPU执行的时钟周期数就越多,CPU的运行速度也就越快。II错误。

加法器的进位方式是指在执行加法运算时,如何处理进位(carry)的传递和处理方式。常见的加法器进位方式有无进位加法器和进位传递加法器。加法器的进位方式主要由具体的硬件设计和实现决定。IV错误。

本题选B。

P1592

地址码占6位,指令字长16位,二地址指令指令码占16-6×2=4位,最多可以表示 2^4=16 条二地址指令,二地址指令有12条,剩余16-12=4种情况,此时对于一地址指令,二地址指令的高位地址码融入二地址指令指令码作为一地址指令的指令码,最多可以表示 4×2^6=256 条一地址指令,一地址指令有254条,剩余256-254=2种情况,此时对于零地址指令,低位地址码融入一地址指令指令码作为零地址指令的指令码,最多可以表示 2×2^6=128 条零地址指令。

本题选D。

P1593

正确的过程是:

预处理(Preprocessing):在这个阶段,预处理器根据预处理指令(如宏定义、条件编译等)对源代码进行处理。预处理器会展开宏定义、包含头文件等,生成经过预处理的源代码。

编译(Compilation):在这个阶段,编译器将预处理后的源代码转换为汇编代码。编译器对代码进行词法分析、语法分析、语义分析,生成相应的中间代码或汇编代码。

汇编(Assembly):在这个阶段,汇编器将汇编代码转换为机器码指令。汇编器将汇编代码中的每条指令翻译成机器码表示。

链接(Linking):在这个阶段,链接器将各个源文件编译生成的目标文件及所需的库文件合并在一起,生成最终的可执行目标文件。链接器会解析符号引用关系,将函数和变量的引用与其定义进行匹配,并进行地址重定位等操作,使得程序能够正确地执行。

因此,预处理→编译→汇编→链接 是正确的过程。

本题选A。

P1594

A正确。中断I/O方式适用于键盘、针式打印机等字符型设备。这类设备数据传输慢,以字符为单位进行传输,中断I/O方式可以实现在输入/输出操作期间暂停CPU的执行,并在设备准备好数据后,通过触发中断来通知CPU进行数据传输。

B正确。若采用中断I/O方式,当外设准备好数据后,想CPU发出中断请求,CPU暂时中止现行程序,转去运行中断服务程序,由中断服务程序完成数据传送。

C错误。若外设准备数据时间小于中断处理时间,则可能导致数据丢失,以输入设备为例,设备为进程准备的数据会先写入设备控制器的缓冲区(缓冲区大小有限,通常只能暂存几个字节),缓冲区没写满一次,就会向CPU发出一次中断请求,CPU响应并处理中断的过程,就是将缓冲区中的数据“取走”的过程,因此若外设准备数据的时间小于中断数理时间,则可能导致外设往缓冲区写入数据的速度快于CPU从缓冲区取走数据的速度,从而导致缓冲区的数据被覆盖,进而导致数据丢失。

D正确。外设为某进程准备数据时,CPU可以运行其他进程。在中断I/O方式中,当外设准备好数据并发送中断请求时,CPU会切换到中断处理程序来处理数据传输,而不会阻塞其他进程的执行。这使得多任务操作系统可以同时执行多个进程,提高系统的并发性和效率。

本题选C。

P1595

A正确。MIMD是Multiple Instruction, Multiple Data的缩写,表示多指令流多数据流。多核处理器是一种在单个芯片上集成了多个独立的处理核心的处理器。每个核心都可以独立执行指令,访问内存,并处理不同的数据集。多核处理器具有高并行性,可同时执行多个任务。多核处理器属于MIMD结构。

B正确。SIMD是Single Instruction, Multiple Data的缩写,表示单指令流多数据流。向量处理器是一种特殊的处理器,能够以并行方式对一组数据执行相同的操作或指令。它通过在单个指令中同时处理多个数据元素来提高计算效率。向量处理器适用于涉及大规模数据并行计算的领域,如科学计算、图形处理等。向量处理器属于SIMD结构。

C错误。硬件多线程技术不仅可用于多核处理器,还可用于单核处理器。硬件多线程技术允许在一个物理处理核心上同时运行多个线程。通过在处理核心上切换执行不同的线程,可以隐藏内存访问延迟和指令等待时间,提高处理器的利用率。

D正确。SMP是shared memory multiprocessor的缩写,表示共享内存多处理器,多个处理器核心共享同一物理内存空间。这种系统架构允许多个处理器核心同时访问相同的内存地址,从而实现并发执行、数据共享和通信等功能。SMP是一种常见的多处理器系统架构,被广泛应用于高性能计算、服务器和大规模计算任务等领域。

本题选C。

P1596

解答:

(1) 第一问。符号标志SF表示输出结果F的正负性,F的最高位(符号位)为 F15 ,因此 SF=F15 。

(2) 因为在单总线结构中,每个时刻总线上只有一个数据有效,而ALU有两个输入端和一个输出端。因此,当ALU运算时,首先需要用暂存器Y缓存其中一个输入端的数据,在通过总线传送另一个输入端的数据。当ALU的输出端产生运算结果,但由于该节拍总线被占用,因此需要暂存器Z,用来缓存ALU的输出端数据。

(3) 第一问。由图可知,通用寄存器rs和rd都是4bit,因此通用寄存器组GPRs在最多有 2^4=16 个通用寄存器。

第二问。rs和rd都是寄存器编号,对应寄存器用于存储指令中的操作数,指令寄存器IR中存储指令,所以rs和rd来自指令寄存器IR。

第三问。rd是寄存器编号,应该连接地址译码器。

(4) 第一问。取指周期(不考虑PC增量操作)的过程如下

(PC)→MAR和1→R不存在冲突,可以并行执行。

所以信号序列为①PCout = 1, MARin = 1, Read = 1 ②MDRout = 1, IRin = 1。其中值为0的寄存器输入/输出控制信号以及值为任意的其他控制信号均省略。

第二问。T0至少需要1个时钟周期,从发出主存读命令到主存读出数据并传送到MDR共需5个时钟周期,即T1需要5个时钟周期,T2至少需要1个时钟周期,因此取指阶段至少需要1+5+1=7个时钟周期。

(5) 第一问。图中控制信号由控制单元CU产生。

第二问。指令寄存器IR和标志寄存器FR的输出信号会连接到控制部件的输入端。

P1597

解答:

(1) 磁盘地址格式为  ,本题中只有一个磁盘驱动器,不需要考虑驱动器号。每个扇区的地址信息分为3个字段,分别为柱面号(磁道号)、盘面号(磁头号)、扇区号。每个盘面有20000个磁道,该磁盘共有20000个柱面,柱面号字段至少占 ⌈log⁡20000⌉=15 位。该磁盘有4个双面盘片,共计4×2=8个盘面,盘面号字段至少占 ⌈log⁡8⌉=3 位。每个磁道有500个扇区,扇区号至少占 ⌈log⁡500⌉=9 位。

(2) 一个扇区的平均访问时间 = 平均寻道时间 + 平均延迟时间 + 传输时间。

平均寻道时间 = 5ms。

平均延迟时间(盘片转半圈时间) =  。

传输时间(盘片转一个扇区时间) = 

所以一个扇区的平均访问时间约为 5ms + 4.167ms + 0.017ms = 9.183ms。

(3) 第一问。磁盘控制器中的数据缓冲区每充满一次,DMA控制器就需要发出一次总线请求,磁盘控制器中的数据缓冲区大小为64位,每个扇区可记录512字节的数据,则在一个扇区读写过程中,DMA控制器向CPU发送了512B/64bit=64次总线请求。

第二问。由于采用周期挪用DMA方式,因此若CPU检测到DMA控制器的总线请求信号时也需要访问主存,则DMA请求的优先级更高,DMA控制器是可以获得总线使用权。

第三问。若无法按时完成数据传输,后来磁盘控制器中的数据缓冲区的数据可能会覆盖其先前还未传输的数据,造成数据丢失。

P1598

D

P1599

AD

34 = 0,100010 [原] = 0,100010 [反] = 0,100010 [补] = 0,100010 [移]

P1600

AB

P1601

解答:

单位换算

PFLOPS是Peta Floating-point Operations Per Second的缩写,表示每秒能够完成 10^15 次浮点数操作。

国际单位:参考2024年全国硕士研究生招生考试计算机学科专业基础考试大纲,408需要掌握 10^−12∼10^21 的表示。

中国单位:

93.0146P=93.0146×10^15≈9.3×10^16=9.3×10^8×10^8=9.3亿亿

本题选D。

 

P1602

解答:

已知x,y,z的机器数分别为FFFDH,FFDFH,7FFCH。

若x、y和z为无符号整数,则FFFDH>FFDFH>7FFCH,即x>y>z,A和B错误。

若x、y和z为带符号整数,则

方法一:转原码比较

[x]补=FFFDH=1111 1111 1111 1101B,[x]原=1000 0000 0000 0011B=-3<0。

[y]补=FFDFH=1111 1111 1101 1111B,[y]原=1000 0000 0010 0001B=-33<-3。

[z]补=7FFCH=0111 1111 1111 1100B>0。

推出y<x<0<z,所以y<x<z。

方法二:直接用补码进行比较

若两个带符号整数符号位相同,则两者中无符号整数越大的那个越大。

FFDFH和FFFDH最高位符号位为1,均为负数,显然有FFDFH<FFFDH。

7FFCH最高位符号位为0,为正数。

推出FFDFH<FFFDH<0<7FFCH,即y<x<0<z,所以y<x<z。

本题选D。

P1603

解答:

本题选A。

P1604

解答:

000000H~3FFFFFH共有3FFFFFH-000000H+1H=400000H= 2^22 个地址。计算机按字编址,字长为32位,RAM区大小为 2^22×32=2^27 bit,一个RAM芯片大小为512K×8= 2^22 bit,需要该RAM芯片数为 2^27bit/2^22bit=32 。

本题选C。

P1605

解答:

直接映射方式的格式为

因为Cache数据区大小为32KB,主存块大小为32B= 2^5B,所以块内地址占低5位,Cache行数为32KB/32B= 2^10 ,行号占中间10位,主存地址为32位,主存字块标记占32-5-10=17位。每行还有有效位1位,采用回写(Write Back)策略,需要脏位1位,可能还有其他标记位,题目中没有给出相关信息。

每行标记位数(至少)=主存字块标记位数+有效位位数+脏位位数=(17+1+1)bit=19bit。

每行数据位数=32B=32×8bit=256bit。

Cache行的位数(至少)= 每行标记位数(至少)+ 每行数据位数 = 256bit + 19bit = 275bit。

本题选A。

P1606

解答:

Ⅰ. 指令寄存器 (Instruction Register, IR) 是一种用于存储当前正在执行的指令的存储器。它不是直接由汇编语言程序员可见的存储器。I错误。

Ⅱ. 微指令寄存器,它不是直接由汇编语言程序员可见的存储器。微指令寄存器是用于存储微指令的寄存器,微指令是一种更底层的指令,与硬件操作密切相关。汇编语言程序员主要工作在更高层次的指令级别,对于微指令寄存器的访问通常是由底层的系统软件或硬件自动完成的。II错误。

Ⅲ. 基址寄存器:基址寄存器 (Base Register, BR) 是一种用于存储内存引用基地址的寄存器。它通常用于计算基址偏移后地址。汇编语言程序员可以通过特定的指令操作基址寄存器,将特定的内存地址加载到基址寄存器中,以供后续的内存引用使用。III正确。

Ⅳ. 标志状态寄存器 (Program Status Word, PSW)是一种用于存储运算结果中的状态标志的寄存器。这些状态标志可能包括比较结果、进位标志、溢出标志等。汇编语言程序员可以访问标志状态寄存器,并根据其值控制程序的分支和执行路径。Ⅳ正确。

综上,汇编语言程序员可见的存储器为Ⅲ和Ⅳ。

本题选D。

P1607

解答:

数据通路是计算机系统中执行数据处理操作的组成部分,它包含了各种逻辑元件和寄存器以及它们之间的连线。数据通路负责执行指令中的算术、逻辑和数据传输操作。

数据通路中包含各种组合逻辑元件,如算术逻辑单元(ALU),用于执行算术和逻辑运算。ALU可以执行加法、减法、与、或等操作。A正确。

数据通路包含寄存器等时序逻辑(状态)元件:数据通路中还包含各种时序逻辑元件,如寄存器。寄存器用于存储数据和状态信息,例如程序计数器(PC)、通用寄存器等,它们在数据通路中起到存储和传递数据的作用。B正确。

数据通路中通常包含异常事件检测和响应的电路。例如,数据通路可能包括用于检测算术溢出的电路,或者用于响应中断信号的电路。这些电路用于检测和处理特殊的异常情况,并采取相应的措施或改变数据通路的行为。C错误。

数据通路中的数据流动路径是由控制信号进行控制的。控制信号由指令中的操作码以及其他控制逻辑产生,并被用于指导数据在数据通路中的流动路径,以确保正确的数据处理和操作执行。D正确。

本题选C。

P1608

解答:

总线是计算机系统中用于传输数据和控制信号的物理通道。它连接了各种计算机部件,如处理器、内存、输入输出设备等,允许它们之间进行数据的交换和通信。A正确。

同步总线使用时钟信号来同步数据传输。数据的传输和操作都在特定的时钟周期内进行,时钟信号的频率可以是系统的工作频率或其倍数。时钟信号的作用是保持各个部件之间的数据传输步调一致。B正确。

异步总线使用起始信号和停止信号来表示数据传输的开始和结束,而不是一次握手过程完成一位数据交换。数据传输的速率可以根据具体实现而有所不同。C错误。

在突发传送中,一次请求可以触发多个数据传输,提高了数据传输效率。突发传送是常见的总线操作方式,特别在高速和高带宽的系统中被广泛使用。D正确。

本题选C。

P1609

解答:

A不属于I/O接口。磁盘驱动器是用于读写磁盘上存储数据的设备。虽然它与I/O操作相关,但磁盘驱动器本身是存储设备。

B属于I/O接口。打印机适配器是一种用于连接计算机和打印机之间的接口。它负责转换计算机系统中的数据格式和打印机所需的格式,并管理数据的传输和控制打印机操作。

C属于I/O接口。网络控制器是用于连接计算机系统与计算机网络之间的接口。它负责协调和管理数据在计算机和网络之间的传输,执行网络协议和管理网络连接。

D属于I/O接口。可编程中断控制器是计算机系统中的一种设备,用于管理和处理系统中的中断信号。它负责识别中断来源、优先级和中断处理程序的分发。

本题选A。

P1610

解答:

方法一:选项分析

系统调用是用户程序请求操作系统提供某些特定功能或服务的一种机制。系统调用完成后,会返回到下一条指令继续执行。A错误。

页缺失指的是在虚拟内存管理中,当程序访问的页面不在主存中时发生的事件。当发生页缺失时,当前指令会被暂停执行,并触发缺页中断。操作系统会根据缺页中断处理程序进行页面调度和加载,处理完成后,必须回到当前指令重新执行。B正确。

当DMA传送结束时,一般会产生一个中断信号来通知CPU来进行后处理。中断处理程序会执行相应的操作,完成后返回到下一条指令继续执行。C错误。

打印机缺纸事件是指打印任务进行中,打印机的纸张用尽的情况。在这种情况下,打印操作会被暂停,并触发适当的处理程序来处理缺纸事件。处理程序执行后,通常不需要回到当前指令重新执行,而是可以继续执行下一条指令或其他任务。D错误。

本题选B。

方法二:异常分类

外部异常(外中断)指来自CPU执行指令外部的事件,一般是指由计算机外设发出的中断请求。如设备发出的I/O结束中断、时钟中断。

内部异常(内中断)指来自CPU执行指令内部的事件,可分为故障 (fault)、自陷 (trap) 和终止 (abort)。

故障通常是由指令执行引起的异常,如非法操作码、缺页故障、除数为0、运算溢出等。

自陷是一种为预先安排的事件,为自愿中断,用于在用户态下调用操作系统内核程序,如条件陷阱指令。

终止时指出现了CPU无法继续执行的硬件故障,如控制器出错、存储器校验错误。

系统调用属于自陷,返回到下一条指令继续执行。A错误。

页缺失属于故障,会返回到当前指令重新执行。B正确。

DMA传送结束设备接口会向CPU发送DMA结束信号,交还总线控制权,属于外部异常,返回到下一条指令继续执行。C错误。

打印机缺纸属于外部异常,返回到下一条指令继续执行。D错误。

本题选B。

tips:中断和异常的定义有很多版本,考试时以题目的定义为准。

P1611

解答:

无论在内核态还是用户态,CPU都能检测和响应中断。A错误。

本题选A。

P1612

(1) 第一问。ALU的宽度为16位。ALU的宽度是指它能够处理的位数。一般等于字长,因为计算机M字长为16位,所以ALU的宽度为16位。

第二问。可寻址主存空间大小为 2^20 字节(或1MB)。地址线20位,可表示地址数为 2^20 ,计算机按字节编址,所以主存空间大小为 2^20×1B=2^20B=1MB 。

第三问。指令寄存器、主存地址寄存器(MAR)和主存数据寄存器(MDR)各有16位、20位和8位。指令寄存器用于存储指令,指令字长16位。主存地址寄存器(MAR)位数等于地址线位数,地址线为20位,所以MAR有16位。主存数据寄存器(MDR)位数等于数据线位数,数据线为8位,所以MDR有8位。

(2) 第一问。R型格式最多有16种操作。R型格式操作码op1占4位,最多有 2^4=16 种操作。

第二问。I型和J型格式总共最多有63种操作。I型格式操作码op2和J型格式操作码op3都占高6位,但其中00000操作码已经被R型占用,所以I型和J型格式总共最多有 2^6−1=63 63种操作。

第三问。通月寄存器最多有4个。rs、rt和rd为通用寄存器编号,都占2位,所以通月寄存器最多有 2^2=4 个。

(3) 指令01B2H = 0000 0001 1011 0010B,高6位为000000,为R型格式指令,所以  ,表示R[rd] ← R[rs] op1 R[rt],op1=0010表示带符号整数减法指令,rs为1号寄存器,内容为B052H,rt为2号寄存器,内容为0008H,rd为3号寄存器,内容为0020H,即其功能为 R[3]←R[1]-R[2]。执行指令01B2H后,R[3]=B052H-0008H=B04AH,被减数B052H和减数0008H均视为无符号数,显然B052H够减0008H,该减法没有发生借位,结果不溢出。

指令01B3H = 0000 0001 1010 1011B,为R型格式指令,所以  ,表示R[rd] ← R[rs] op1 R[rt],op1=0011表示带符号整数乘法指令,rs为1号寄存器,内容为B052H,rt为2号寄存器,内容为0008H,rd为3号寄存器,内容为0020H,即其功能为 R[3]←R[1]×R[2]。执行指令01B3H后,R[3]=B052H×0008H。关于该乘法的计算,有如下两种方法:

方法一:十进制乘法

将二进制乘法转化为十进制乘法计算,R[3]=B052H×0008H=-20398×8=-163184,16位有符号整型的表示范围为-32768~32767,-163184超出其表示范围,结果溢出。

方法二:补码一位乘法(Booth乘法)

带符号整数乘使用的是补码一位乘法(Booth乘法)。Booth乘法对乘数从低位开始判断,根据两个数据位的情况决定进行加法、减法还是仅仅移位操作。判断的两个数据位为当前位及其右边的位(初始时需要增加一个辅助位0),移位操作是向右移动。其中Booth算法在操作时,需要遵循一个操作表:

具体步骤如下:

  1. 被乘数X与乘数Y均以补码的形式参加乘法运算,运算结果是积的补码。
  2. 部分积和被乘数X采用双符号位,乘数Y采用单符号位。
  3. 初始部分积为0。运算前,在乘数Y的补码末位添加一位附加位 Yn+1 ,初始值为0。
  4. 根据 YnYn+1 的值,按照上表进行累加右移操作,右移时遵循补码的移位规则。
  5. 累加n+1次,右移n次,最后一次不右移。

模拟上述过程得到R[3] = B052H×0008H = 1111 1111 1111 1101 1000 0010 1001 0000B,因为寄存器只能存储16位有符号整型,所以低15位为数值位,高17位为符号位和符号扩展位,高17位非全1,结果溢出。

方法三:用算术左移运算模拟乘法运算

R[3]=B052H×0008H中乘数0008H= 2^3 ,经过编译器优化后,乘法运算可以转化为算术左移运算,这里在单符号位基础上扩展16位符号扩展位,用<<表示左移运算,则 R[3] = B052H×0008H = B052H<<3 = 1011 0000 0101 0010B<<3 = 1111 1111 1111 1111 1011 0000 0101 0010B<<3 = 1111 1111 1111 1101 1000 0010 1001 0000B,因为寄存器只能存储16位有符号整型,所以低15位为数值位,高17位为双符号位和符号扩展位,高17位非全1,结果溢出。

(4) 因为imm(偏移量)为带符号整数,所以应对 imm 进行符号扩展。

(5) 无条件转移指令可以采用J型格式。因为J型格式功能为target→PC的低10位,无条件转移指令需要更新PC内容,把target送到PC的低10位后,PC内容为目标指令地址。

P1613

解答:

(1) 虚拟地址格式为 。因为计算机按字节编址,页大小为4KB= 2^12B,所以虚拟地址低12位表示页内地址,高30-12=18 位表示虚页号。

(2) 因为TLB采用2路组相联方式,共 8=2^3 组,  ,所以虚拟地址(或虚页号)中高18-3=15位为TLB标记,虚拟地址中随后3位(或虚页号中低3位)为TLB组号。

(3) 虚页号4对应的TLB表项被替换。

首先计算各个虚页号被映射到的组号,

可以用十进制计算,因为虚页号与TLB组号的映射关系为:TLB 组号 = 虚页号 mod TLB组数 = 虚页号 mod 8,因此,虚页号10、12、16、7、26、4、12、20映射到的 TLB 组号依次为 2、4、0、7、2、4、4、4。

也可以用二进制计算,

TLB采用2路组相联方式,从上述映射到的 TLB 组号序列可以看出,只有映射到组4的虚页号数量大于2,相应虚页号依次是12、4、12 和 20。

根据LRU替换策略,模拟组4的访问过程:

当访问第 20 页时,虚页号4对应的TLB表项被替换出来。命中次数为1。

(4) 虚拟地址位数增加到32位时,页大小不变,虚拟地址中页内地址位数不变,虚页号增加了32-30=2位,因此每个TLB表项的位数增加2位。

P1614

C

P1615

C

(中断是指当主机街道外界硬件(如I/O设备)发来的信号时,马上停止原来的工作,转去处理这一事件,在处理完了以后,主机又回到原来的工作继续工作。DMA是一种在CPU少量干预下,而直接从内存存取数据的数据交换模式。常用的设备和cpu之间数据传送控制方式有4种,它们是程序直接控制方式、中断方式、DMA方式和通道方式。程序直接控制方式和中断控制方式都只适用于简单的、外设个很少的计算机系统,因为程序直接控制方式耗费大量的cpu时间,而且无法检测发现设备活其他硬件产生的错误,设备和cpu、设备和设备只能串行工作。中断控制方式虽然在某种程度上解决了上述问题,但由于中断次数多,因而cpu仍需要花较多的时间处理中断,而且能够泵进行操作的设备台数也受到中断处理时间的限制,中断次数增多导致数据丢失。DMA方式和通道方式较好的解决了上述问题。这两种方式采用了外设和内存直接交换数据的方式。只有在一段数据传输结束时,这两种方式才发出中断信号要求cpu做善后处理,从而大大减少了cpu的工作负担。DMA方式与通道控制方式的区别是,DMA方式要求cpu执行设备驱动程序起动设备,给出存放数据的内存始址以及操作方式和传送字节长度等;而通道控制方式则是在cpu发出I/O启动命令之后,有通道指令采完成这些工作。)

P1616

C

(程序中断方式cpu和I/O并行工作,没有踏步等待现象,中断现行程序;

  DMA方式cpu和I/O并行工作,主存和DMA接口之间有一条直接数据通道,因此主存和设备交换信息是不通过cpu,不需要cpu暂停)

P1617

答案解析

(1)首先,我们需要确定虚拟地址1234 5678H对应的页号。由于页号占10位,1234 5678H = 0001 0010 0011 0100 0101 0110 0111 1000。计算得到:
页内偏球量(22位)=11 0100 0101 0110 0111 1000 = 35678H
页号(10位)=00 0100 1000=048H
然后,我们需要找到这个页号对应的页表项的虚拟地址和物理地址。由于页表项的大小为4字节,我们可以通过将页号乘以4得到页表项的偏移量。然后将这个偏移量加到页表的起始地址上,就可以得到页表项的虚拟地址和物理地址。进程Р的页表起始虚拟地址为B8C0 0000H,物理地址6540 0000H,计算得到:
页表项虚拟地址=页表起始虚拟地址+页号*4=B8C00000H+048H*4=B8C0 0120H
页表项物理地址=页表起始物理地址+页号*4=65400000H+048H*4=6540 0120H
最后,我们需要更新页表项中的页框号,由于经过MMU地址转换后得到的物理地址是BAB4 5678H,我们可以通过右移22位得到页框号。计算得到:
页框号等于物理地址BAB4 5678H的前10位,即1011101010B= 2EAH

(2)首先,我们需要确定进程Р的页表所在页的页号。由于页表起始虚拟地址为B8C0 0000H。我们可以通过右移22位得到页号。计算得到:
进程P的页表所在页的页号等于 B8C0 0000H的前10位,即1011100011B=2E3H.
然后,我门需要找到这个页号对应的页表项的虚拟地址。由于页表项的大小为4字节,我们可以通过将页号乘以4得到页表项的偏移量。然后将这个偏移量加到页表的起始地址上,就可以得到页表项的虚拟地址。计算得到:
该页对应的页表项的虚拟地址=B8C0 0000H+ 2E3H*4 = B8C0 0B8CH。最后,我们需要确定页表项中的页框号。由干页表被装载到从物理地址6540 0000H开始的连续主存空间中,我们可以通过右移22位得到页框号。计算得到:
该页表项中的页框号等于物理地址 6540 D000H的前10位,即0110010101B =195H。

P1618

答案解析

(1)slli r4, r2 2:这条指令将寄存器r2的值左移2位,结果存储在寄存器r4中。在c语言中,这对应于数组索引的计算(即i*4,因为每个int类型占4字节),因此,我们可以推断出寄存器r2存储的是变量i的值,即i的奇存器编号为02H。
add r4, r3, 4:这条指令将寄存器r3和r4的值相加,结果存储在寄存器r4中。这对应于计算数组元素的内存地址(即&a[i])。因此,我们可以推断出寄存器r3存储的是数组a的首地址,即a的存储器编号为03H。
add r1, r1, 5:这条指令将寄在器r1和r5的值相加,结果存储在寄存器r1中。这对应于累加操作(即sum+=a[i])。因此,我们可以推断出寄存器r1存储的是变量sum 的值,即 sum的奇存器编号为01H.
所以,数组a的首地址、变量i和 sum的通用寄存器编号分别为03H、02H和01H。

(2)执行""sum+=a[i];""语句后,i=6。我们知道i占32位所以一次占4个位置。
i=0时,占FF FF FF 7C
i=1时,占7D FE FF FF
i=2时,占00 00 00 0C
i=3时,占3C 02 01 FF
i=4时,占FF FF FF 7C
i=5时,占F0 F1 00 00
i=6时,占DC EC FF FF
所以a[i]的地址=0013 E000H+第四个地址=0013 E004H
a[i]的机器数按照小端编制,所以DC作为最低位放在最后边,以此类推可得: a[i]的机器数=FFff ECDCH。
sum的机器数=0000 1332H+FFFF ECDCH = 1 0000 000EH。由于只有 23位,所以最高位舍掉后答案为0000 000EH。
页大小为4KB=2^12B,所以页内地址占12位。所以去掉后12位剩余的则是20位页号,a[i]所在页页号=0013EH
我们有20位页号,根据题目可知数据跨页号了 0013e和 0013d,所以数组a至少存放在2页中。

(3)

slli r4, r2, 2  //R[r4] <- R[r2]<<2
通用寄存器r1-r5的编号为01H-05H。
6-0:由表可得:0010011
l1~7:rd=r2=00010
14~12:由表可得:010
19-15:rd=r4=00100
shamt=2,所以24-20:0010
31-25由表可得:00000000
机器码=0000 0000 0010 0001 0010 00100 001 0011=0021 2213H。
若a改为short 型,slli指令的汇编形式应该是slli r4, r2, 1。

P1619

答案解析

(1)从题43(a)图可以看到,寄存器rs1和 rs2用5位表示,所以计算机M最多是2^5=32个寄存器
根据指令R[rd]<-R[rsl]<<shamt可知,shamt表示左移
shamt:计算机的机器字长是32位,所以shamt表示左移的最大范围不能超过32。所以只需要5bit就可以表示对应的范图:log2(32)=5

(2)ALUBsrc=0,它是作用是支持lw指令和imm的偏移(R[rd]<-M[R[rs1]+imm])
F的计算如下:
8765 4321
9876 5432
,=11FDB 9753
由于计算机的机器字长是32位,所以最高位的1会舍掉。F=1FDB 9753H:
OF是滥出位,我们计算的结果发现确实发生了溢出和进位。所以OF=1
CF是进位位,我们计算的结果发现确实发生了溢出和进位,所以CF=1
溢出的判断方法是,最高位进位(异或)次高位,计算过程发现最高位进位,次高位没有进位,所以CF是标志判断是否溢出

(3)slli代表左移指令,slli指令的高12位(即IR[31:20])的最高位为0,因此无论进行零扩展还是符号扩展,都是在高位补0,效果等价,因此Ext可以是0也可以是1。

(4)R[rd]<-M[R[rs1]+imm]这条指令的意思是,rs1里的内容加上立即数,等于真正要访问的内存地址。
应该算偏移地址,偏移地址可正可负,可以访问现在代码上边的代码,也可以访问下边的。
所以是符号扩展。Ext=1,然后表示加法所以根据下图可知ALUctr=000

(5)A040 A103H=101000000100 00001 010 00010 0000011B,6-0位=000011,中间的4-12位=010,最高的12位为A04H。其他两个指令add和slli的高12位都是000H,所以该指令一定是lw指令

(6)A040 A103H=101000000100 00001 010 00010 0000011B,6-0位=000011,中间的4-12位=010,最高的12位为A04H。imm是31-25,也就是A04H(注意是符号扩展)
扩展完1111 1111 1111 1111 1111 1010 0000 0100.十六进制是FFFF FA04
rs1里的内容加上立即数,等于真正要访问的内存地址,R[01H]=FFFF A2D0H
这个题也就是FFFF FA04+FFFF A2D0=FFFF 9CD4H。

P1620

P1621

P1622

P1623

P1624

P1625

P1626

P1627

P1628

P1629

P1630