2021年408真题计算机组成原理篇 一、单项选择题 第01~40小题,每小题2分,共80分。下列每题给出的四个选项中,只有一个选项是最符合题目要求的。 12. 2017年公布的全球超级计算机TOP500排名中,我国“神威·太湖之光”超级计算机蝉联第一,其浮点运算速度为93.0146PFLOPS,说明该计算机每秒钟完成的浮点操作次数为( )。 A.
次 B.
次 C. 9.3千万亿次 D. 9.3亿亿次 解答: 方法一:单位换算 PFLOPS是Peta Floating-point Operations Per Second的缩写,表示每秒能够完成
次浮点数操作。 国际单位:参考2024年全国硕士研究生招生考试计算机学科专业基础考试大纲,408需要掌握
的表示。
中国单位:
本题选D。 方法二:厉害了,我的国
超级计算机运算速度非常快。根据题意可知,2017年我国“神威·太湖之光”超级计算机运算速度排名世界第一。选四个选项中最大的那个选项。 本题选D。 13. 已知带符号整数用补码表示,变量x,y,z的机器数分别为FFFDH,FFDFH,7FFCH,下列结论中,正确的是( )。 A. 若x、y和z为无符号整数,则z<x<y B. 若x、y和z为无符号整数,则x<y<z C. 若x、y和z为带符号整数,则x<y<z D. 若x、y和z为带符号整数,则y<x<z 解答: 已知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。 14. 下列数值中,不能用IEEE754浮点格式精确表示的( )。 A. 1.2 B. 1.25 C. 2.0 D. 2.5 解答: 能用IEEE754浮点格式精确表示的小数部分一定满足
的形式,其中
为正整数,
, 对于1.2,0.2=1/5,不满足
的形式,A不能用IEEE754浮点格式精确表示。 对于1.25,0.25=1/4=
,满足
的形式,B能用IEEE754浮点格式精确表示。 对于2.0,0.0=0/2=
,满足
的形式,C能用IEEE754浮点格式精确表示。 对于2.5,0.5=1/2=
,满足
的形式,D能用IEEE754浮点格式精确表示。 本题选A。 15. 某计算机的存储器总线中有24位地址线和32位数据线,按字编址,字长为32位。若000000H~3FFFFFH为RAM区,则需要512K×8位的RAM芯片数为( )。 A. 8 B. 16 C. 32 D. 64 解答: 000000H~3FFFFFH共有3FFFFFH-000000H+1H=H=
个地址。计算机按字编址,字长为32位,RAM区大小为
bit,一个RAM芯片大小为512K×8=
bit,需要该RAM芯片数为
。 本题选C。 16. 若计算机主存地址为32位,按字节编址,Cache数据区大小为32KB,主存块大小为32B,采用直接映射方式和回写(Write Back)策略,则Cache行的位数至少是( )。 A. 275 B. 274 C. 258 D. 257 解答: 直接映射方式的格式为
。 因为Cache数据区大小为32KB,主存块大小为32B=
B,所以块内地址占低5位,Cache行数为32KB/32B=
,行号占中间10位,主存地址为32位,主存字块标记占32-5-10=17位。每行还有有效位1位,采用回写(Write Back)策略,需要脏位1位,可能还有其他标记位,题目中没有给出相关信息。 每行标记位数(至少)=主存字块标记位数+有效位位数+脏位位数=(17+1+1)bit=19bit。 每行数据位数=32B=32×8bit=256bit。 Cache行的位数(至少)= 每行标记位数(至少)+ 每行数据位数 = 256bit + 19bit = 275bit。 本题选A。 17. 下列存储器中,汇编语言程序员可见的是( )。 Ⅰ. 指令寄存器 Ⅱ. 微指令寄存器 Ⅲ. 基址寄存器 Ⅳ. 标志状态寄存器 A. 仅Ⅰ、Ⅱ B. 仅Ⅰ、IV C. 仅Ⅱ、Ⅳ D. 仅Ⅲ、Ⅳ 解答: Ⅰ. 指令寄存器 (Instruction Register, IR) 是一种用于存储当前正在执行的指令的存储器。它不是直接由汇编语言程序员可见的存储器。I错误。 Ⅱ. 微指令寄存器,它不是直接由汇编语言程序员可见的存储器。微指令寄存器是用于存储微指令的寄存器,微指令是一种更底层的指令,与硬件操作密切相关。汇编语言程序员主要工作在更高层次的指令级别,对于微指令寄存器的访问通常是由底层的系统软件或硬件自动完成的。II错误。 Ⅲ. 基址寄存器:基址寄存器 (Base Register, BR) 是一种用于存储内存引用基地址的寄存器。它通常用于计算基址偏移后地址。汇编语言程序员可以通过特定的指令操作基址寄存器,将特定的内存地址加载到基址寄存器中,以供后续的内存引用使用。III正确。 Ⅳ. 标志状态寄存器 (Program Status Word, PSW)是一种用于存储运算结果中的状态标志的寄存器。这些状态标志可能包括比较结果、进位标志、溢出标志等。汇编语言程序员可以访问标志状态寄存器,并根据其值控制程序的分支和执行路径。Ⅳ正确。 综上,汇编语言程序员可见的存储器为Ⅲ和Ⅳ。 本题选D。 18. 下列关于数据通路的叙述中,错误的是( )。 A. 数据通路包含ALU等组合逻辑(操作)件 B. 数据通路包含寄存器等时序逻辑(状态)件 C. 数据通路不包含用于异常事件检测及响应的电路 D. 数据通路中的数据流动路径由控制信号进行控制 解答: 数据通路是计算机系统中执行数据处理操作的组成部分,它包含了各种逻辑件和寄存器以及它们之间的连线。数据通路负责执行指令中的算术、逻辑和数据传输操作。 数据通路中包含各种组合逻辑件,如算术逻辑单(ALU),用于执行算术和逻辑运算。ALU可以执行加法、减法、与、或等操作。A正确。 数据通路包含寄存器等时序逻辑(状态)件:数据通路中还包含各种时序逻辑件,如寄存器。寄存器用于存储数据和状态信息,例如程序计数器(PC)、通用寄存器等,它们在数据通路中起到存储和传递数据的作用。B正确。 数据通路中通常包含异常事件检测和响应的电路。例如,数据通路可能包括用于检测算术溢出的电路,或者用于响应中断信号的电路。这些电路用于检测和处理特殊的异常情况,并采取相应的措施或改变数据通路的行为。C错误。 数据通路中的数据流动路径是由控制信号进行控制的。控制信号由指令中的操作码以及其他控制逻辑产生,并被用于指导数据在数据通路中的流动路径,以确保正确的数据处理和操作执行。D正确。 本题选C。 19. 下列关于总线的叙述中,错误的是( )。 A. 总线是在两个或多个部件之间进行数据交换的传输介质 B. 同步总线由时钟信号定时,时钟频率不一定等于工作频率 C. 异步总线由握手信号定时,一次握手过程完成一位数据交换 D. 突发(Burst)传送总线事务可以在总线上连续传送多个数据 解答: 总线是计算机系统中用于传输数据和控制信号的物理通道。它连接了各种计算机部件,如处理器、内存、输入输出设备等,允许它们之间进行数据的交换和通信。A正确。 同步总线使用时钟信号来同步数据传输。数据的传输和操作都在特定的时钟周期内进行,时钟信号的频率可以是系统的工作频率或其倍数。时钟信号的作用是保持各个部件之间的数据传输步调一致。B正确。 异步总线使用起始信号和停止信号来表示数据传输的开始和结束,而不是一次握手过程完成一位数据交换。数据传输的速率可以根据具体实现而有所不同。C错误。 在突发传送中,一次请求可以触发多个数据传输,提高了数据传输效率。突发传送是常见的总线操作方式,特别在高速和高带宽的系统中被广泛使用。D正确。 本题选C。 20. 下列选项中不属于I/O接口的是( )。 A. 磁盘驱动器 B. 打印机适配器 C. 网络控制器 D. 可编程中断控制器 解答: A不属于I/O接口。磁盘驱动器是用于读写磁盘上存储数据的设备。虽然它与I/O操作相关,但磁盘驱动器本身是存储设备。 B属于I/O接口。打印机适配器是一种用于连接计算机和打印机之间的接口。它负责转换计算机系统中的数据格式和打印机所需的格式,并管理数据的传输和控制打印机操作。 C属于I/O接口。网络控制器是用于连接计算机系统与计算机网络之间的接口。它负责协调和管理数据在计算机和网络之间的传输,执行网络协议和管理网络连接。 D属于I/O接口。可编程中断控制器是计算机系统中的一种设备,用于管理和处理系统中的中断信号。它负责识别中断来源、优先级和中断处理程序的分发。 本题选A。 21. 异常事件在当前指令执行过程中进行检测,中断请求则在当前指令执行后进行检测。下列事件中。下列事件中,相应处理程序执行后,必须回到当前指令重新执行的是( )。 A. 系统调用 B. 页缺失 C. DMA传送结束 D. 打印机缺纸 解答: 方法一:选项分析 系统调用是用户程序请求操作系统提供某些特定功能或服务的一种机制。系统调用完成后,会返回到下一条指令继续执行。A错误。 页缺失指的是在虚拟内存管理中,当程序访问的页面不在主存中时发生的事件。当发生页缺失时,当前指令会被暂停执行,并触发缺页中断。操作系统会根据缺页中断处理程序进行页面调度和加载,处理完成后,必须回到当前指令重新执行。B正确。 当DMA传送结束时,一般会产生一个中断信号来通知CPU来进行后处理。中断处理程序会执行相应的操作,完成后返回到下一条指令继续执行。C错误。 打印机缺纸事件是指打印任务进行中,打印机的纸张用尽的情况。在这种情况下,打印操作会被暂停,并触发适当的处理程序来处理缺纸事件。处理程序执行后,通常不需要回到当前指令重新执行,而是可以继续执行下一条指令或其他任务。D错误。 本题选B。 方法二:异常分类 外部异常(外中断)指来自CPU执行指令外部的事件,一般是指由计算机外设发出的中断请求。如设备发出的I/O结束中断、时钟中断。 内部异常(内中断)指来自CPU执行指令内部的事件,可分为故障 (fault)、自陷 (trap) 和终止 (abort)。 故障通常是由指令执行引起的异常,如非法操作码、缺页故障、除数为0、运算溢出等。 自陷是一种为预先安排的事件,为自愿中断,用于在用户态下调用操作系统内核程序,如条件陷阱指令。 终止时指出现了CPU无法继续执行的硬件故障,如控制器出错、存储器校验错误。
系统调用属于自陷,返回到下一条指令继续执行。A错误。 页缺失属于故障,会返回到当前指令重新执行。B正确。 DMA传送结束设备接口会向CPU发送DMA结束信号,交还总线控制权,属于外部异常,返回到下一条指令继续执行。C错误。 打印机缺纸属于外部异常,返回到下一条指令继续执行。D错误。 本题选B。 评:中断和异常的定义有很多版本,考试时以题目的定义为准。 22. 下列是关于多重中断系统中CPU响应中断的叙述,其中错误的是( )。 A. 仅在用户态(执行用户程序)下,CPU才能检测和响应中断 B. CPU只有在检测到中断请求信号后,才会进入中断响应周期 C. 进入中断响应周期时,CPU一定处于中断允许(开中断)状态 D. 若CPU检测到中断请求信号,则一定存在未被屏蔽的中断源请求信号 解答: 无论在内核态还是用户态,CPU都能检测和响应中断。A错误。 本题选A。 二、综合应用题 第41~47小题,共70分。 43. (15分) 假定计算机M字长为16位,按字节编址,连接CPU和主存的系统总线中地址线为20位、数据线为8位,采用16位定长指令字,指令格式及其说明如下:
其中,op1~op3为操作码,rs、rt和rd为通用寄存器编号,R[r]表示寄存器r的内容,imm为立即数,target为转移目标的形式地址。请回答下列问题。 (1) ALU的宽度是多少位?可寻址主存空间大小为多少字节?指令寄存器、主存地址寄存器(MAR)和主存数据寄存器(MDR)分别应有多少位? (2) R型格式最多可定义多少种操作?I型和J型格式总共最多可定义多少种操作?通用寄存器最多有多少个? (3) 假定op1为0010和0011时,分别表示带符号整数减法和带符号整数乘法指令,则指令01B2H的功能是什么(参考上述指令功能说明的格式进行描述)?若1、2、3号通用寄存器当前内容分别为B052H、0008H、0020H,则分别执行指令01B2H和01B3H后,3号通用寄存器内容各是什么?各自结果是否溢出? (4) 若采用I型格式的访存指令中imm(偏移量)为带符号整数,则地址计算时应对imm进行零扩展还是符号扩展? (5) 无条件转移指令可以采用上述哪种指令格式? 解答: (1) 第一问。ALU的宽度为16位。ALU的宽度是指它能够处理的位数。一般等于字长,因为计算机M字长为16位,所以ALU的宽度为16位。 第二问。可寻址主存空间大小为
字节(或1MB)。地址线20位,可表示地址数为
,计算机按字节编址,所以主存空间大小为
。 第三问。指令寄存器、主存地址寄存器(MAR)和主存数据寄存器(MDR)各有16位、20位和8位。指令寄存器用于存储指令,指令字长16位,所以指令寄存器有16位。主存地址寄存器(MAR)位数等于地址线位数,地址线为20位,所以MAR有20位。主存数据寄存器(MDR)位数等于数据线位数,数据线为8位,所以MDR有8位。 (2) 第一问。R型格式最多有16种操作。R型格式操作码op1占4位,最多有
种操作。 第二问。I型和J型格式总共最多有63种操作。I型格式操作码op2和J型格式操作码op3都占高6位,但其中00000操作码已经被R型占用,所以I型和J型格式总共最多有
63种操作。 第三问。通月寄存器最多有4个。rs、rt和rd为通用寄存器编号,都占2位,所以通月寄存器最多有
个。 (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=-,16位有符号整型的表示范围为-32768~32767,-超出其表示范围,结果溢出。 方法二:补码一位乘法(Booth乘法) 带符号整数乘使用的是补码一位乘法(Booth乘法)。Booth乘法对乘数从低位开始判断,根据两个数据位的情况决定进行加法、减法还是仅仅移位操作。判断的两个数据位为当前位及其右边的位(初始时需要增加一个辅助位0),移位操作是向右移动。其中Booth算法在操作时,需要遵循一个操作表:
具体步骤如下:被乘数X与乘数Y均以补码的形式参加乘法运算,运算结果是积的补码。部分积和被乘数X采用双符号位,乘数Y采用单符号位。初始部分积为0。运算前,在乘数Y的补码末位添加一位附加位
,初始值为0。根据
的值,按照上表进行累加右移操作,右移时遵循补码的移位规则。累加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=
,经过编译器优化后,乘法运算可以转化为算术左移运算,这里在单符号位基础上扩展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内容为目标指令地址。 44. (8分) 假设计算机M的主存地址为24位,按字节编址;采用分页存储管理方式,虚拟地址为30位,页大小为4KB;TLB采用2路组相联方式和LRU替换策略,共8组。请回答下列问题。 (1) 虚拟地址中哪几位表示虚页号?哪几位表示页内地址? (2) 已知访问TLB时虚页号高位部分用作TLB标记,低位部分用作TLB组号,M的虚拟地址中哪几位是TLB标记?哪几位是TLB组号? (3) 假设TLB初始时为空,访问的虚页号依次为10、12、16、7、26、4、12和20,在此过程中,哪一个虚页号对应的TLB表项被替换?说明理由。 (4) 若将M中的虚拟地址位数增加到32位,则TLB表项的位数增加几位? 解答: (1) 虚拟地址格式为
。因为计算机按字节编址,页大小为4KB=
B,所以虚拟地址低12位表示页内地址,高30-12=18 位表示虚页号。 (2) 因为TLB采用2路组相联方式,共
组,
,所以虚拟地址(或虚页号)中高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位。
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/50282.html