2015年408真题计算机组成原理篇 一、单项选择题 第01~40小题,每小题2分,共80分。下列每题给出的四个选项中,只有一个选项是最符合题目要求的。 12. 计算机硬件能够直接执行的语言是( )。 I. 机器语言程序 II. 汇编语言程序 III. 硬件描述语言程序 A. 仅I B. 仅I、II C. 仅I、III D. I、II、III 解答: I正确。计算机硬件的本质是执行机器语言程序,它是由二进制指令组成的、直接被硬件执行的程序。机器语言是针对特定的计算机体系结构和硬件设计的低级语言。 II错误。汇编语言程序是与机器语言一一对应的助记符形式的指令,需要通过汇编器将其转换为对应的机器语言指令,然后才能被计算机硬件执行。 III错误。硬件描述语言(Hardware Description Language, HDL),例如Verilog和VHDL,是一种用于描述和设计数字电路的高级语言,但它本身并不能直接被计算机硬件执行。HDL需要先进行综合和布局布线,最终生成对应的电路结构,然后该电路结构才能被硬件执行。 本题选A。 13. 由3个“1”和5个“0”组成的8位二进制补码,能表示的最小整数( )。 A. -126 B. -125 C. -32 D. -3 解答: 最小的整数显然为负数,最高符号位为1,剩余2个“1”和5个“0”,对于二进制补码,在符号位相同的情况下,若二进制补码对应的无符号数越小,则该二进制补码表示的数越小。 设该数为x,显然有[x]补 = B,[x]原 = B = -125。 本题选B。 14. 下列有关浮点数加减运算的叙述中,正确的是( )。 Ⅰ. 对阶操作不会引起阶码上溢或下溢 Ⅱ. 右规和尾数舍入都可能引起阶码上溢 Ⅲ. 左规时可能引起阶码下溢 Ⅳ. 尾数溢出时结果不一定溢出 A. 仅Ⅱ、Ⅲ B. 仅Ⅰ、Ⅱ、Ⅳ C. 仅Ⅰ、Ⅲ、Ⅳ D. Ⅰ、Ⅱ、Ⅲ、Ⅳ 解答: 对阶是小阶向大阶对齐,两者的阶码都在阶码范围内,不会引起阶码上溢或下溢。I正确。 右规可能引起阶码上溢。假设x和y都是短浮点数,采用IEEE754标准。例如
,则
,该浮点数表示
,上溢。尾数舍入也可能引起阶码上溢,例如
,
,则
,括号内的1表示要舍入的一位位数,如果0舍1入,则
,该浮点数表示
,上溢。II正确。 左规时可能引起阶码下溢。假设x和y都是短浮点数,采用IEEE754标准。例如
,
, 则
,该浮点数表示
,下溢。Ⅲ正确。到这里已经可以选出正确答案为D了。 尾数溢出时结果不一定溢出,尾数溢出时可以进行右规,右规阶码不溢出,则结果不溢出。IV正确。 本题选D。 15. 假定主存地址位数为32位,按字节编址,主存和Cache之间采用直接映射方式,主存块大小为4个字,每字32位,写操作时采用回写 (Write Back) 方式,则能存放4K字数据的Cache的总容量的位数至少是( )。 A. 146K B. 147K C. 148K D. 158K 解答: 直接映射方式的格式为
。 因为主存块大小为4个字,每字32位,所以块大小为4×32bit=16B= B。计算机字节编址,所以块内地址占4位。 因为Cache能存放4K字数据,块大小为4个字,所以Cache行数为4K/4=1K= ,行号占10位。 因为主存地址位数为32位,块内地址占4位,行号占10位,所以主存字块标记占32-4-10=18位。 写操作时采用回写 (Write Back) 方式,标记位包含1位脏位,还有18位主存字块标记位和1位有效位。每行标记占18+1+1=20位,每行数据占4个字,每字32位,即4×32=128位。 Cache的总容量=(每行标记位数+每行数据位数)×行数=(20+128)×1K=148K。 本题选C。 举一反三 假定主存地址位数为32位,按字节编址,主存和Cache之间采用直接映射方式,主存块大小为1个字,每字32位,写操作时采用直写 (Write Throght) 方式,则能存放32K字数据的Cache的总容量的位数至少是( )。 参考答案:1536K 16. 假定编译器将赋值语句“x=x+3;”转换为指令“add xaddr, 3”,其中xaddr是x对应的存储单地址。若执行该指令的计算机采用页式虚拟存储管理方式,并配有相应的TLB,且Cache使用直写 (Write Trough) 方式,则完成该指令功能需要访问主存的次数至少是( )。 A. 0 B. 1 C. 2 D. 3 解答: 上述指令的执行过程可划分为取数、运算和写回过程,取数时读取xaddr可能不需要访问主存而直接访问Cache,而直写方式需要把数据同时写入Cache和主存,因此至少访问1次。 本题选B。 17. 下列存储器中,在工作期间需要刷新的是( )。 A. SRAM B. SDRAM C. ROM D. FLASH 解答: SRAM (Static Random Access Memory) 是一种静态随机存取存储器,不需要进行刷新操作,因为它是通过触发器来存储数据,不会出现电容泄漏的问题。A错误。 SDRAM (Synchronous Dynamic Random Access Memory) 是一种动态随机存取存储器,它在工作期间需要进行周期性的刷新操作。这是因为DRAM存储单使用电容来存储数据,电容会逐渐泄漏导致数据的丢失。为了保持存储的数据有效,SDRAM需要以固定的时间间隔对存储单进行刷新。B正确。 ROM (Read-Only Memory) 是只读存储器,无需刷新操作。C错误。 FLASH存储器属于非易失性存储器,也不需要刷新操作。D错误。 本题选B。 18. 某计算机使用4体交叉编址存储器,假定在存储器总线上出现的主存地址(十进制)序列为8005,8006,8007,8008,8001,8002,8003,8004,8000,则可能发生访存冲突的地址对是( )。 A. 8004和8008 B. 8002和8007 C. 8001和8008 D. 8000和8004 解答: 4体交叉编址默认为4体低位交叉编址,采用流水线方式可以进行四体并行。 模块序号 = 访存地址 mod 存储器交叉模块数。 8005 mod 4 = 1, 8006 mod 2 = 2,以此类推。
同一个模块下每次最多从1个地址传输数据,所以同一个模块下的地址访存是互斥的,即同时访问同一个模块下的地址会发生访存冲突。即8000、8004、8008互斥。8001、8005互斥。8002、8006互斥。8003、8007互斥。 4体低位交叉编址,采用流水线方式,假设每次访存需要4个总线传输周期,每隔1个总线传输周期启动一个模块,按照8005,8006,8007,8008,8001,8002,8003,8004,8000的访存序列,可以画出如下示意图。很明显,在第9个总线传输周期启动访问8000会出现访存冲突。但如果存储周期小于或等于总线传输周期,那么不会发生访存冲突。所以可能发生访存冲突的地址对是8000和8004。
本题选D。 19. 下列有关总线定时的叙述中,错误的是( )。 A. 异步通信方式中,全互锁协议最慢 B. 异步通信方式中,非互锁协议的可靠性最差 C. 同步通信方式中,同步时钟信号可由各设备提供 D. 半同步通信方式中,握手信号的采样由同步时钟控制 解答: 在异步定时方式中,没有统一的时钟,也没有固定的时间间隔,完全依靠传送双方相互制约的“握手”信号来实现定时控制。主模块提出交换信息的“请求”信号,经接口传送到从模块。从模块接到主模块的请求后,通过接口向主模块发出“回答”信号。 优点:总线周期长度可变,能保证两个工作速度相差很大的部件或设备之间可靠地进行信息交换,自动适应时间的配合。 缺点:比同步控制方式稍复杂一些,速度比同步定时方式慢。 根据“请求”和“回答”信号的撤销是否互锁,分为以下3种类型。不互锁方式速度最快,可靠性最差,全互锁方式最可靠,速度最慢。 不互锁方式:主模块发出“请求”信号后,不必等到接到从模块的“回答”信号,而是经过一段时间,便撤销“请求”信号。而从模块在接到“请求”信号后,发出“回答”信号,并经过一段时间,自动撤销“回答”信号。双方不存在互锁关系。 半互锁方式:主模块发出“请求”信号后,必须等接到从模块的“回答”信号后,才撤销“请求”信号,有互锁的关系。而从模块在接到“请求”信号后,发出“回答”信号,但不必等待获知主模块的“请求”信号已经撤销,而是隔一段时间后自动撤销“回答”信号,不存在互锁关系。 全互锁方式:主模块发出“请求”信号后,必须等从模块“回答”后,才撤销“请求”信号。从模块发出“回答”信号,必须待获知主模块“请求”信号已撤销后,再撤销其“回答”信号。双方存在互锁关系。
A表述正确,B表述正确, 在同步通信方式中,系统采用一个统一的时钟信号来协调发送和接收双方的传送定时关系。时钟产生相等的时间间隔,每个间隔构成一个总线周期。在一个总线周期中,发送方和接收方可以进行一次数据传送。 C表述错误。 半同步通信是一种介于异步和同步通信之间的通信方式。它在数据的传输过程中使用同步时钟信号,但在握手信号的采样上仍然依赖于同步时钟。在半同步通信中,数据和同步时钟信号是同时传输的,而握手信号则根据同步时钟的边沿来采样。具体来说,握手信号的状态通常在同步时钟信号的上升沿或下降沿采样,以确保正确的信号同步和数据传输。 D表述正确。 本题选C。 20. 若磁盘转速为7200rpm,平均寻道时间为8ms,每个磁道包含1000个扇区,则访问一个扇区的平均存取时间大约是( )。 A. 8.1ms B. 12.2ms C. 16.3ms D. 20.5ms 解答: 访问一个扇区的平均存取时间 = 平均寻道时间 + 平均延迟时间 + 传输时间。 平均寻道时间 = 8ms。 平均延迟时间 =
。 传输时间 =
。 访问一个扇区的平均存取时间 = 8ms + 4.167ms + 0.008ms = 12.175ms。 本题选B。 21. 在采用中断I/O方式控制打印输出的情况下,CPU和打印控制接口中的I/O端口之间交换的信息不可能是( )。 A. 打印字符 B. 主存地址 C. 设备状态 D. 控制命令 解答: I/O接口的功能包括:1.选址功能;2.传送命令功能;3.传送数据功能;4.反映I/O设备工作状态功能。 打印字符为数据,对应功能3。A可能。 主存地址在中断方式控制下是不需要的,因此,它不可能是CPU和打印控制接口中的I/O端口之间交换的信息。B不可能。 设备状态对应功能4。C可能。 控制命令对应功能2。D可能。 本题选B。 22. 内部异常(内中断)可分为故障(fault)、陷阱(trap)和终止(abort)三类。下列有关内部异常的叙述中,错误的是( )。 A. 内部异常的产生与当前执行指令相关 B. 内部异常的检测由CPU内部逻辑实现 C. 内部异常的响应发生在指令执行过程中 D. 内部异常处理后返回到发生异常的指令继续执行 解答: 内中断是指来自CPU和内存内部产生的中断,包括程序运算引起的各种错误,如地址非法、校验错、页面失效、非法指令、用户程序执行特权指令自行中断 (INT) 和除数为零等,以上都在指令的执行过程中产生的。A正确。 这种检测异常的工作肯定是由CPU(包括控制器和运算器)实现的。B正确。 内中断不能被屏蔽,一旦出现应立即处理。C正确。 陷阱(trap)一般用于进行系统调用,完成后返回到下一条指令继续执行,不会返回到发生异常的指令继续执行。D错误。 中断的可分类如下:
参考《深入理解计算机系统》8.1.2 异常的类别。 本题选D。 二、综合应用题 第41~47小题,共70分。 43. (13分) 某16位计算机的主存按字节编址,存取单位为16位;采用16位定长指令字格式;CPU采用单总线结构,主要部分如下图所示。图中R0~R3为通用寄存器;T为暂存器;SR为移位寄存器,可实现直送(mov)、左移一位(left)和右移一位(right)3种操作,控制信号为SRop,SR的输出由信号SRout控制;ALU可实现直送A(mova)、A加B(add)、A减B(sub)、A与B(and)、A或B(or)、非A(not)、A加1(inc)这7种操作,控制信号为ALUop。
题43图 注:已补充内总线到MAR的箭头和内总线到IR的箭头。 请回答下列问题。 (1) 图中哪些寄存器是程序员可见的?为何要设置暂存器T? (2) 控制信号ALUop和SRop的位数至少各是多少? (3) 控制信号SRout所控制部件的名称或作用是什么? (4) 端点①~⑨中,哪些端点须连接到控制部件的输出端? (5) 为完善单总线数据通路,需要在端点①~⑨中相应的端点之间添加必要的连线。写出连线的起点和终点,以正确表示数据的流动方向。 (6) 为什么二路选择器MUX的一个输入端是2? 解答: (1) 第一问。程序员可见寄存器为通用寄存器R0~R3和PC。 第二问。因为CPU采用单总线结构同一时间内,只能有一个操作数在单总线上,为了把两个操作数输入到ALU,需要分两次来做,而只有两个操作数同时出现在ALU的两个输入端,ALU才能执行运算。因此若无暂存器T,则ALU的A、B端口会同时获得两个相同的数据,使数据通路不能正常工作。 (2) ALU共有7种操作,故其操作控制信号ALUop至少需要
位;移位寄存器有3种操作,其操作控制信号SRop至少需要
位。 (3) 因为CPU采用单总线结构,为了防止总线冲突,挂载在总线上的部件需要用三态门进行控制,所以信号Sout所控制的部件是一个三态门,用于控制移位器与总线之间数据通路的连接与断开。三态门第一次出现在2009年题44中,三态门的定义和作用详见该题题解。 (4) 端口①、②、③、⑤、⑧须连接到控制部件输出端。 (5) 加法操作需要两个操作数作为输入,一个输入经暂存器T进入ALU的A端,另一个输入经过MUX进入ALU的B端。很容易得到连线。 连线1,⑥→⑨;连线2,⑦→④。 注:MUX是multiplexers的缩写,称为数据选择器,也称多路选择器或多路开关。在多路数据传送过程中,能够根据需要将其中任意一路选出来的电路。 (6) 因为每条指令的长度为16位,按字节编址,所以每条指令占用16bit/1B=2个内存单,顺序执行时,下条指令地址为(PC)+2。MUX的一个输入端为2,便于执行(PC)+2操作。 44. (10分) 题43中描述的计算机,其部分指令执行过程的控制信号如题44图a所示。
题44图a 部分指令控制信号 注:这里已对王道打印进行勘误,1Rin=1已修正为IRin=1。 该机指令格式如题44图b所示,支持寄存器直接和寄存器间接两种寻址方式,寻址方式位分别为0和1,通用寄存器R0~R3的编号分别为0、1、2和3。
题44图b 指令格式 请回答下列问题。 (1) 该机的指令系统最多可定义多少条指令? (2) 假定inc、shl和sub指令的操作码分别为01H、02H和03H,则以下指令对应的机器代码各是什么? inc R1 ; (R1)+1→R1 shl R2, R1; (R1)<<1→R2 sub R3, (R1), R2; ((R1))–(R2)→R3 (3) 假设寄存器X的输入和输出控制信号分别为Xin和Xout,其值为1表示有效,为0表示无效(例如,PCout=1表示PC内容送总线);存储器控制信号为MEMop,用于控制存储器的读(read)和写(write)操作。写出题44图a中标号①~⑧处的控制信号或控制信号的取值。 (4) 指令“sub R1,R3,(R2)”和“inc R1”的执行阶段至少各需要多少个时钟周期? 解答: 根据题43的结果,重绘题43图如下:
(1) 根据题44图b的指令格式。 方法一:有寄存器直接和寄存器间接两种寻址方式,寻址方式位分别为0和1,表示寻址方式需要1位,Md、Ms1、Ms2均为1位,通用寄存器R0~R3总共4个寄存器,编号分别为0、1、2和3,二进制编号分别为00、01、10和11,表示一个寄存器需要2位,Rd、Rs1、Rs2均为2位,指令字长16位,OP占16-(1+2)×3=7位,即指令操作码占7位,因此最多可定义
条指令。 方法二:二地址指令末三位均为0,即源操作数2地址占3位,单地址指令末6位均为0,即源操作数1地址和源操作数2地址占6位,一个地址占3位,指令最多有3个地址,OP占16-3×3=7位,即指令操作码占7位,因此最多可定义
条指令。 (2) 因为inc、shl和sub指令的操作码分别为01H、02H和03H,且操作码占7位,所以inc、shl和sub指令的操作码分别为0000001B、0000010B和0000011H。 “inc R1”为单地址指令,末6位均为0,inc指令的操作码分别为0000001B,(R1)+1→R1,目的操作数R1采用直接寻址,Md为0,因为R1的寄存器编号为1=01B,所以Rd为01,所以“inc R1”的机器码为
。 “shl R2, R1”为二地址指令,末3位均为0,shl指令的操作码分别为0000010B,(R1)<<1→R2,目的操作数R2采用直接寻址,Md为0,因为R2的寄存器编号为2=10B,所以Rd为10,源操作数R1采用直接寻址,Ms1为0,因为R1的寄存器编号为1=01B,所以Rs1为01,所以“shl R2,R1”的机器码为
。 “sub R3, (R1), R2”为三地址指令,sub指令的操作码为0000011H。((R1))–(R2)→R3,目的操作数R3采用直接寻址,Md为0,因为R3的寄存器编号为3=11B,所以Rd为11,源操作数1的R1采用间接寻址,Ms1为1,因为R1的寄存器编号为1=01B,所以Rs1为01,源操作数2的R2采用直接接寻址,Ms2为0,为R2的寄存器编号为2=10B,所以Rs2为10,所以“sub R3,(R1),R2”的机器码为
。 (3) 根据题44图a的部分指令控制信号。 方法一:完整推理 I. 取指周期:T1: PCout=1, MARin=1, Tin =1, MEMop = read 执行功能 (PC)→MAR, (PC)→T, 1→R。T2: MUXop = ①, ALUop = add, SRop = ②执行功能 (T)→ALU的A端, (ALU的A端)+2→SR。(PC)+2→PC 不需额外的MUXop输入,所以①为0,SR进行直送(mov),所以②为mov。以及 M(MAR)→MDR。T3: SRout=1, PCin = 1 执行功能(SR)→PC。T4: MDRout = 1, IRin = 1执行功能 (MDR)→IR。 II. 执行“shl R2, R1”周期:T1: R1out = 1, Tin = 1, ALUop = ③执行功能(R1)→T,(T)→ALU的A端,该指令不需要进行加减法,ALU直送A(mova)端内容到SR,(ALU的A端)→SR,所以③为mova。T2: SRop = ④指令需要实现shl,执行功能(SR)<<1→SR,SR可以实现左移一位(left),所以④为left。T3: SRout = 1, R2in = 1执行功能(SR)→R2。 III. 执行“sub R0, R2, (R1)”周期:T1: R1out = 1, MARin = 1, MEMop = ⑤执行功能(R1)→MAR,需要读存储器,存储器控制信号为MEMop,用于控制存储器的读(read)和写(write)操作,所以⑤为read。T2: R2out = 1, Tin = 1执行功能(R2)→T,(T)→ALU的A端。以及 M(MAR)→MDR。T3: MDRout = 1, MUXop = 1, ALUop = ⑥, SRop = ⑦执行功能(MDR)→MUX,(MUX)→ALU的B端,指令需要实现sub,ALU可以实现A减B(sub),即(ALU的A端)-(ALU的B端)→SR,所以⑥为sub,减法完成后没有额外计算操作,SR为进行直送(mov),所以⑦为mov。T4: ⑧ = 1, R0in = 1执行功能(SR)→R0,SRout需要打开,所以⑧为SRout。 综上,各标号处的控制信号或控制信号取值如下: ①0;②mov;③mova;④left;⑤read;⑥sub;⑦mov;⑧SRout。 方法二:关键信息推理 I. 取指周期的一般过程如下T1: (PC)→MAR, 1→R,T2: M(MAR)→MDR, (PC)+1→PCT3: (MDR)→IR 只有一步执行加法,没有额外计算操作,所以①为0,SRop是SR的操作,SR为移位寄存器,可实现直送(mov)、左移一位(left)和右移一位(right)3种操作,因为没有额外计算操作,所以②为mov。 II. 执行“shl R2, R1”周期执行左移运算,没有额外计算操作,执行过程可划分为取数、运算和写回过程。 ALUop是ALU的操作,ALU可实现直送A(mova)、A加B(add)、A减B(sub)、A与B(and)、A或B(or)、非A(not)、A加1(inc)这7种操作,因为没有额外计算操作,所以③为mova。 SRop是SR的操作,SR为移位寄存器,可实现直送(mov)、左移一位(left)和右移一位(right)3种操作,因为要实现左移,所以④为left。 III. 执行“sub R0, R2, (R1)”周期执行减法操作,没有额外计算操作,执行过程可划分为取数、运算和写回过程。 MEMop是MEM的操作,存储器控制信号为MEMop,用于控制存储器的读(read)和写(write)操作,第一步是取数,所以⑤为read。 ALUop是ALU的操作,ALU可实现直送A(mova)、A加B(add)、A减B(sub)、A与B(and)、A或B(or)、非A(not)、A加1(inc)这7种操作,因为需要进行减法操作,所以⑥为sub。 SRop是SR的操作,SR为移位寄存器,可实现直送(mov)、左移一位(left)和右移一位(right)3种操作,因为没有额外计算操作,所以⑦为mov。 运算结束后需要写回,SRout需要打开,所以⑧为SRout。 综上,各标号处的控制信号或控制信号取值如下: ①0;②mov;③mova;④left;⑤read;⑥sub;⑦mov;⑧SRout。 (4) 类比“sub R0, R2, (R1)”,得到指令“sub R1,R3,(R2)”的执行周期如下:T1: R2out = 1, MARin = 1, MEMop = 0T2: R3out = 1, Tin = 1T3: MDRout = 1, MUXop = 1, ALUop = sub, SRop = movT4: SRout = 1, R1in = 1 所以指令“sub R1,R3,(R2)”的执行阶段执行阶段至少包含4个时钟周期。 类比“shl R2, R1”,得到指令“inc R1”的执行周期如下:T1: R1out = 1, Tin = 1, ALUop = inc, SRop = mov执行功能(R1)→T,(T)→ALU的A端,(ALU的A端)+1→SR。T2: SRout = 1, R1in = 1。执行功能(SR)→R1。 所以指令“inc R1”的执行阶段至少包含2个时钟周期。
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/22471.html