计算机组成原理期末复习题
- 世界第一台通用电子计算机ENIAC,1946
- 第一台存储程序式计算机-EDSAC,1949
- 数据校验码主要有奇偶校验码、海明校验码和循环冗余校验码
- 磁表面存储器记录信息是利用磁性材料的磁滞回归线特性(
- 计算机的字长取决于运算器一次运算二进制数的位数
- 模m交叉存储器有m个存储模块,它们有各自的地址寄存器和数据缓冲寄存器
- 使用虚拟存储器时,由操作系统完成地址转换
- 若显示器灰度级为32,则每像素应用5位表示
- RAM芯片位扩展可以增加存储器字长
- 输入输出指令的功能是CPU与外设的数据传送
- 假设校验位的个数为r,k=2r-1-r个信息能用于纠正被传送数据的位数,需满足:2r≥k+r+1
- 某计算机字长是16位,它的存储容量是1MB,按字编址,它的寻址范围是0-219-1
- 操作数在寄存器中的寻址方式称为寄存器寻址;操作数在指令中的寻址方式称为立即寻址,相对寻址中,指令地址码给出一个偏移量(带符号数),基准地址隐含由PC给出。
- 操作码的编码有两种方式:定长操作码法,扩展操作码编法
- 串行传输时数据位的低位在前,高位在后。
- DMA控制器与CPU分时使用内存常采用以下三种方法:停止CPU访内,周期挪用和交替访问。
- 流水线中的主要相关问题指资源相关、数据相关和控制相关。
- 双端口存储器中一个存储器具有两组相互独立的读写控制电路,可进行并行的独立操作。
- 多模块交叉存储器中每个模块都有自已的读写控制电路,地址寄存器和数据寄存器;CPU同时访问四个模块,由存储器控制电路控制它们分时使用数据总线。
- 磁表面信息的存取是利用电—磁变换实现的。
- 指令系统中采用不同的寻址方式的主要目的是缩短指令长度,扩大寻址范围
- 常用的虚拟存储系统由主存—辅存两级存储器组成。
- 存放欲执行指令的寄存器是IR
- 在单级中断系统中,CPU一旦响应中断,则立即关闭中断允许标志,以防止本次中断 服务结束前同级的其他中断源产生另一次中断进行干扰。
- 微指令格式分为水平型和垂直型,水平型微指令的位数较多,用它编写的微程序较短。
- 所谓三总线结构的计算机是指I/O总线、主存总线和DMA总线三组传输线,微型机系统中,主机和高速硬盘进行数据交换一般采用DMA方式。
- 程序员编程所用的地址叫做逻辑地址。
- 在主存和CPU之间增加cache存储器是为了解决CPU和内存速度不匹配的问题;引入虚拟存储器则是为了解决主存容量不够大的问题。为使主存的平均读出时间接近于Cache的读出时间,必须让Cache的命中率接近于1。
- 磁盘上访问信息的最小物理单位是扇区。
- 相联存储器是按内容访问的存储器。
- 如果Cache的容量为128块,在直接映象下,主存中第i块映象到缓存第i mod128 块。
- CPU能直接访问cache和主存,但不能直接访问磁盘和光盘。
- 补码运算的特点是符号位与数值位一起计算
- 若浮点数用补码表示,则判断运算结果是否为规格化数的方法是C 数符与尾数小数点后第一位数字相异为规格化数。
- 某计算机有五级中断L4~L0,中断屏蔽字为M4M3M2M1M0,Mi=1(0≤i≤4)表示对Li级中断进行屏蔽。若中断响应优先级从高到低的顺序是L4→L0→L2→L1→L3 ,则L1的中断处理程序中设置的中断屏蔽字是01010
- 什么是ISA?
答:ISA指Instruction Set Architecture,即指令集体系结构;ISA是一种规约(Specification),它规定了如何使用硬件,不同ISA规定的指令集不同,如,IA-32、MIPS、ARM等;ISA在计算机系统中是必不可少的一个抽象层。 - 什么是数据通路?它主要由哪两类元件组成?控制器的主要功能是什么?
答:CPU主要由数据通路和控制器组成,指令执行过程中,数据所经过的路径,包括路径中的部件称之为数据通路,它是指令的执行部件。数据通路主要由组合逻辑元件(也称操作元件)和时序逻辑元件组成。控制器负责对指令进行译码,生成指令对应的控制信号,控制数据通路的动作,是指令的控制部件。 - 什么是CPI?CPU执行时间与哪几个因素有关?
CPI:Cycles Per Instruction,每条指令执行所需的时钟周期数,对一个程序或机器来说,CPI是所有指令执行所需的平均时钟周期数。CPU执行时间=CPI×程序总指令条数×时钟周期 - 用二进制编码的原因:
答:制造二个稳定态的物理器件容易;二进制编码、计数、运算规则简单;正好与逻辑命题对应,便于逻辑运算,并可方便地用逻辑电路实现算术运算 - 先行进位解决的是ALU的运算速度问题;
其基本思想使串行进位的产生变成并行进位的产生变成并行进位的产生,从而使各个进位在一个时钟周期内完成,提高加法运算速度。 - 什么是刷新?为什么要刷新?有哪几种常用的刷新方式?
动态存储元主要由电容构成,由于电容存在的漏电现象而使其存储的信息不稳定,故DRAM芯片需要定时刷新。常用的刷新方式有集中式刷新、分布式刷新。 - 中断与子程序
(1)中断服务程序与中断时CPU 正在运行的程序是相互独立的,它们之间没有确定的关系。子程序调用时转入的子程序与CPU 正在执行的程序段是同一程序的两部分。
(2)除了软中断通常中断产生都是随机的,而子程序调用是由CALL 指令(子程序调用指令)引起的。
(3)中断服务程序的入口地址可以通过硬件向量法产生向量地址,再由向量地址找到入口地址。子程序调用的子程序入口地址是由CALL 指令中的地址码给出的。
(4)调用中断服务程序和子程序都需保护程序断点,前者由中断隐指令完成,后者由CALL 指令本身完成。
(5)处理中断服务程序时,对多个同时发生的中断需进行裁决,而调用子程序时一般没有这种操作。
(6)在中断服务程序和所调用的子程序中都有保护寄存器内容的操作。 - CISC与RISC
CISC:复杂指令系统计算机(Complex Instruction Set Computer) 其特点是;
指令格式不固定,指令可长可短,操作数可多可少;
寻址方式复杂多样,操作数可来自寄存器也可来自存储器;
采用微程序控制,执行每条指令均需完成一个微指令序列;
指令越复杂,CPI越大。指令系统庞大,研制周期长,系统效率低。
RISC:简单指令系统计算机(Reduced Instruction Set Computer) 其特点是:
只保留功能简单的指令。指令系统尽可能简单,尽是减少指令的执行时间以提高效率。
多用寄存器指令,少用访内指令,指令格式一致,寻址方式简单, - 画出冯·诺依曼计算机的硬件组成框图,并简要说明各部分主要功能和工作原理。
控制器:是整个计算机的指挥中心,控制计算机从内存中取出解题步骤( 即指令 )加以分析,然后执行某种操作。
存储器:存放程序和数据的部件,是一个记忆装置,也是计算机能够实现“存储程序控制”的基础。
输入设备:是输入用户提供的原始信息,并且将其转换为计算机能识别的信息。
输出设备:是将计算机的处理结果以能被人们接受的或能为其他计算机所接受的形式输出。
运算器:以二进制为基础完成对信息的加工、处理,其核心是算术逻辑运算部件ALU。
是一种执行部件。
总线:计算机通过总线将五大部件连接起来,总线是它们相互通信的公共通路,主要任务是在各部件之间传送地址信息、数据信息和控制信息。
工作原理:
采用存储程序工作方式:
①事先编制程序(根据问题找算法编程序)
②将程序存储于计算机的存储器中
③计算机在运行时自动地、连续地从存储器中依次取出指令加以执行
以控制流(指令)驱动程序执行,信息流(数据流)被动地被调用处理。
45. 什么是校验码?其基本原理是什么?常用的数据校验码有哪些?
答:数据校验码是一种常用的带有发现某些错误或自动改错能力的数据编码方法。它的实现原理,是加进一些冗余码,使合法数据编码出现某些错误时,就成为非法编码。这样,就可以通过检测编码的合法性来达到发现错误的目的。常用的数据校验码主要有奇偶校验码、海明校验码和循环冗余校验码 。
46. 什么是“寻址方式”?常用的操作数的寻址方式有哪些?
答;指令或操作数地址的指定方式。即:根据地址找到指令或操作数的方法。操作数的寻址通常有立即 / 直接 / 间接 / 寄存器 / 寄存器间接 / 偏移 / 堆栈等,
-
Cache有哪些特点?
Cache具有如下特点:
位于CPU与主存之间,是存储器层次结构中级别最高的一级。 容量比主存小,目前一般有数KB到数MB。
速度一般比主存快5~10倍,通常由存储速度高的双极型三极管或SRAM组成。
其容量是主存的部分副本。
可用来存放指令,也可用来存放数据。
快存的功能全部由硬件实现,并对程序员透明。 -
试从记录密度,存储容量,存取速度方面来说明磁表面存储器的相关技术指标。
记录密度
道密度(TPI):磁盘半径方向单位长度包含的磁道数,单位:道/英寸(TPI)或道/毫米(TPM)
位密度(BPI):在每一个磁道内单位长度内所能记录的二进制信息数。
存储容量
存储容量是指整个磁表面存储器所能存储的二进制信息的总量,一般用位或字节为单位表示,它与存储介质尺寸和记录密度直接相关。
非格式化容量是指磁记录表面上可全部利用的磁化单元数
格式化容量是指用户实际可以使用的存储容量。
平均寻址时间Ta
当磁头接到读/写命令,从原来的位置移动到指定位置,并完成读/写操作的时间叫存取时间。平均找道时间tsa+平均等待时间twa
数据传输率:磁表面存储器在单位时间内与主机之间传送数据的位数或字节数。 -
在异步串行传输系统中,若每个数据帧包含1个起始位,8个数据位,1个奇校验位,1个结束位,比特率160bit/s,画出传输字符“C”(ASCII码为43H)的波形图。
-
一个典型程序的转换过程:
-
不同层次语言之间的等价转换
-
假如某程序P编译后生成的代码由ALU、Load,Store,Branch四类指令组成,它们在程序中所占比例如图所示,已知它们的CPI分别为1,2,2,2,现重新对程序进行编译优化,生成的新目标代码中ALU指令减少了50%,其他类指令条数不变。
(1) 编译优化前后程序的CPI各是多少?
(2) 如果机器的时钟周期为20ns(50MHz时钟频率),则优化前后的MIPS各是多少?
解:优化后各指令所占的新的比例为:
21.5/ (21.5+21+12+24)=27%
21 / (21.5+21+12+24)=27%
12 / (21.5+21+12+24)=15%
24 / (21.5+21+12+24)= 31%
优化前的CPI=143%+221*+212%+224%=1.57
优化后的CPI=127%+227%+215%+231%=1.73
优化前的MIPS=50M/1.57=31.8MIPS
优化后的MIPS=50M/1.73=28.9MIPS
- 下图是一个ALU的实现方案:
对应的verilog实现代码如下:
module alu_main (a,b,aluc,r,z);
input [31:0] a,b;
input [3:0] aluc;
output [31:0] r;
output z;
wire [31:0] d_and = a & b;
wire [31:0] d_or = a | b;
wire [31:0] d_xor = a ^ b;
wire [31:0] d_lui = {b[15:0],16’h0};
wire [31:0] d_and_or = aluc[2]? d_or : d_and;
wire [31:0] d_xor_lui = aluc[2]? d_lui : d_xor;
wire [31:0] d_as,d_sh;
addsub32 as32 (a,b,aluc[2],d_as);
shift shifter (b,a[4:0],aluc[2],aluc[3],d_sh);
mux4x32 select (d_as,d_and_or,d_xor_lui,d_sh,aluc[1:0],r);
assign z = ~|r;
endmodule
a) 结合图示和代码分析该ALU实现的功能
b) 写出其中多路选择器的实现代码
module mux4x32 (a0,a1,a2,a3,s,y);
input [31:0] a0,a1,a2,a3;
input [1:0] s;
output [31:0] y;
function [31:0] select;
input [31:0] a0,a1,a2,a3;
input [1:0] s;
case (s)
2’b00: select = a0;
2’b01: select = a1;
2’b10: select = a2;
2’b11: select = a3;
endcase
endfunction
assign y = select(a0,a1,a2,a3,s);
endmodule
-
结合表中MIPS指令格式,将下列MIPS汇编语言转换为对应的机器指令,并说明寄存器PC,r4中数据的变化情况。
-
假定小端机器中指令:mov AX, 0x12345(BX)
其中操作码mov为40H,寄存器AX和BX的编号分别为0001B和0010B,立即数占32位,则存放顺序为:
若在大端机器上,则存放顺序如何?
(左边为低地址端)
56. 主存和Cache之间直接映射,块大小为16B。Cache的数据区容量为64KB,主存地址为32位,按字节编址。要求:1、说明主存地址如何划分和访存过程。2、Cache有多少行?容量多大?
答案:
- 假定计算机系统主存空间大小为32Kx16位,且有一个4K字的4路组相联Cache,主存和Cache之间的数据交换块的大小为64字。假定Cache开始为空,处理器顺序地从存储单元0、1、…、4351中取数,一共重复10次。设Cache比主存快10倍。采用LRU算法。试分析Cache的结构和主存地址的划分。说明采用Cache后速度提高了多少?采用MRU算法后呢?
答:假定主存按字编址。每字16位。
主存:32K字=512块 x 64字 / 块
Cache:4K字=16组 x 4行 / 组 x 64 字 / 行
主存地址划分为:
4352/64=68,所以访问过程实际上是对前68块连续访问10次。 - 设某指令系统指令字是16位,每个地址码为6位。若二地址指令15条,一地址指令34条,则剩下零地址指令最多有多少条?
解:操作码按短到长进行扩展编码
二地址指令: (0000 ~ 1110)
一地址指令: 11110 (00000 ~ 11111); 11111 (00000 ~ 00001)
零地址指令: 11111 (00010 ~ 11111) (000000 ~ 111111)
故零地址指令最多有 30x26=15x27 种 - 某指令系统的指令字长12位,每个地址码长3位,试提出一种分配方案,使该指令系统有4条三地址指令,8条二地址指令,180条单地址指令。若二地址指令仅有7条,单地址指令最多可有多少条?(10分)
若二地址仅7条,则多出:11 111 000~ 111共8条
∴单地址最多可有((23-4)·23-7)· 23=200条
- CPU的地址总线16根(A15A0,A0为低位),双向数据总线8根(D7D0),控制总线中与主存有关的信号有MREQ~(允许访存),R/ W~。主存地址空间分配如下:0 – 8191为系统程序区,由只读存储芯片组成,8192 – 32767为用户程序区;最后(最大地址)2K地址空间为系统程序工作区。按字节编址。现有如下芯片:
EPROM : 8K * 8位(控制端仅有CS~)
SRAM : 16K * 1位,2K * 8位,4K * 8位,8K 8位
试设计该计算机主存储器。
解:
由题意,主存地址空间分布如右图:
故:低8K范围可选用:一片8K 8位的EPROM
24K用户空间可选用:3片8K* 8位的SRAM
高2K空间:只需用1片2K*8位的SRAM即可。
其连接图如下:
-
设某机主存容量为4MB,Cache容量为16KB,每块包含8个字,每字32位,设计一个四路组相联映像(即Cache每组内共有四个块)的Cache组织,要求:
画出主存地址字段中各段的位数。 设Cache的初态为空,CPU需依次从主存第0,1,2,……,9)号单元读出100个字(主存一次读出一个字。),并重复按此次序读8次,问命中率是多少?
[解]
(1)主存容量为4MB,按字编址,所以主存地址为20位,地址格式如下所示:
区号 (8位) 组号 (7位) 组内块号 (2位) 块内地址 (5位)
(2)Cache的地址格式为
组号 (7位) 组内块号 (2位) 块内地址 (5位)
主存第0,1,2,……,99号单元在第0区第012组中,被映射到Cache的第012组中,不存在映射时的组冲突。
由于Cache起始为空,所以第一遍读时每一块中的第一个单元没命中(此时要把该块的8个字都调入Cache,这样CPU之后再读该块的其它单元就会命中(未考虑块调入过程)),
而后面七遍读取时每个单元均可以命中。
命中率 = Nc/(Nc+Nm)= (100-13 + 7×100) / (8×100) =98.4% -
磁盘组有6片磁盘,每片有两个记录面,最上最下两面不用。存储区域内直径22cm,外直径33cm,道密度为40道/cm,内层位密度400位/cm,转速2400转/分,问:(分)
1)、共有多少柱面?
2)、盘组总存储容量是多少?
3)、数据传输率多少?
4)、如果某文件长度超过一个磁道的容量,应将它记录在同一个存储面上,还是记录在同一个柱面上?
解:
1、有效存储区域= 33/2-22/2 = 16.5-11 = 5.5cm
柱面数=道密度有效区域=40道/cm5.5cm=220道,即220个圆柱面。
2、内道周长=3.1422=69.08cm
道信息量N=400位/cm69.08cm=27632位=3454B
面信息量=3454B220=759880B
盘组容量=759880B10=7598800B≈7.25MB
3、磁盘数据传输率=转数r*道容量N=(2400转/60秒)3454B=403454=13816B/S=13.492K/S
4、记录在同一个柱面上,因为不需要重新找道,数据读写速度快。 -
以IEEE754单精度浮点数格式表示十进制数–1/8,
–1/8 = –0.125 = –0.001B = –1.0 ×2–3,阶码为–3+127 = 01111100B,数符为1,尾数为1.0…0,所以–1/8表示为1 01111100 000 0000 0000 0000 0000 0000,用十六进制表示为BE000000H。 -
在IEEE 754浮点数运算中,如何判断浮点运算的结果是否溢出?
浮点运算结果是否溢出,并不以尾数溢出来判断,而主要看阶码是否溢出。尾数溢出时,可通过右规操作进行纠正。阶码上溢时,说明结果的数值太大,无法表示;阶码下溢时,说明结果数值太小,可以把结果近似为0。
在进行对阶、规格化、舍入和浮点数的乘/除运算等过程中,都需要对阶码进行加、减运算,可能会发生阶码上溢或阶码下溢,因此,必须对阶码进行溢出判断。 -
假定一个存储器系统支持4体交叉存取,某程序执行过程中访问地址序列为3, 9, 17, 2, 51, 37, 13, 4, 8, 41, 67, 10,则哪些地址访问会发生体冲突?
解:
对于4体交叉访问的存储系统,每个存储模块的地址分布为:
Bank0: 0、4、8、12、16 … …
Bank1: 1、5、9、13、17…37…41…
Bank2: 2、6、10、14、18 … …
Bank3: 3、7、11、15、19…51…67
如果给定的访存地址在相邻的4次访问中出现在同一个Bank内,就会发生访存冲突。所以,17和9、37和17、13和37、8和4发生冲突。 -
假定某机主存空间大小1GB,按字节编址。cache的数据区(即不包括标记、有效位等存储区)有64KB,块大小为128字节,采用直接映射和全写(write-through)方式。请问:
(1)主存地址如何划分?要求说明每个字段的含义、位数和在主存地址中的位置。
(2)cache的总容量为多少位?
参考答案:
(1)主存空间大小为1GB,按字节编址,说明主存地址为30位。cache共有64KB/128B=512行,因此,行索引(行号)为9位;块大小128字节,说明块内地址为7位。因此,30位主存地址中,高14位为标志(Tag);中间9位为行索引;低7位为块内地址。
(2)因为采用直接映射,所以cache中无需替换算法所需控制位,全写方式下也无需修改(dirty)位,而标志位和有效位总是必须有的,所以,cache总容量为512×(128×8+14+1)=519.5K位。 -
某计算机字长16位,每次存储器访问宽度16位,CPU中有8个16位通用寄存器。现为该机设计指令系统,要求指令长度为字长的整数倍,至多支持64种不同操作,每个操作数都支持4种寻址方式:立即(I)、寄存器直接(R)、寄存器间接(S)和变址(X),存储器地址位数和立即数均为16位,任何一个通用寄存器都可作变址寄存器,支持以下7种二地址指令格式(R、I、S、X代表上述四种寻址方式):RR型、RI型、RS型、RX型、XI型、SI型、SS型。请设计该指令系统的7种指令格式,给出每种格式的指令长度、各字段所占位数和含义,并说明每种格式指令需要几次存储器访问?
指令格式可以有很多种,只要满足以下的要求即可。
操作码字段:6位;寄存器编号:3位;直接地址和立即数:16位;变址寄存器编号:3位;总位数是8的倍数。
指令格式例1
指令格式2:
寻址方式字段(2位)----00:立即;01:寄直;10:寄间;11-变址
68. 假定一个程序重复完成将磁盘上一个4KB的数据块读出,进行相应处理后,写回到磁盘的另外一个数据区。各数据块内信息在磁盘上连续存放,并随机地位于磁盘的一个磁道上。磁盘转速为7200RPM,平均寻道时间为10ms,磁盘最大数据传输率为40MBps,磁盘控制器的开销为2ms,没有其他程序使用磁盘和处理器,并且磁盘读写操作和磁盘数据的处理时间不重叠。若程序对磁盘数据的处理需要20000个时钟周期,处理器时钟频率为500MHz,则该程序完成一次数据块“读出-处理-写回”操作所需的时间为多少?每秒钟可以完成多少次这样的数据块操作?
参考答案:
平均旋转等待时间:(1s / (7200/60)) / 2 ≈ 8.33/2 ≈ 4.17ms
因为块内信息连续存放,所以数据传输时间:4KB / 40MBps ≈ 0.1ms
平均存取时间T :寻道时间+ 旋转等待时间+ 数据传输时间
= 10ms + 4.17ms + 0.1ms = 14.27ms
读出时间(写回时间):14.27ms+2ms = 16.27ms
数据块的处理时间:20000 / 500MHz ≈ 0.04ms
因为数据块随机存放在某个磁道上,所以,每个数据块的“读出-处理-写回”操作时间都是相同的,所以完成一次操作时间:16.27msx2+0.04ms = 32.58ms
每秒中可以完成这样的数据块操作次数:1s / 32.58ms ≈ 30次
69. 假定某计算机的CPU主频为500MHz,所连接的某个外设的最大数据传输率为20KBps,该外设接口中有一个16位的数据缓存器,相应的中断服务程序的执行时间为500个时钟周期,则是否可以用中断方式进行该外设的输入输出?假定该外设的最大数据传输率改为2MBps,则是否可以用中断方式进行该外设的输入输出?
参考答案:
(1)外设最大传输率为20KBps
每传输完16位进行一次中断处理,因此一秒钟内的中断次数为:20K/2=10K次
中断响应过程就是执行一条隐指令的过程,所用时间相对于中断处理时间(即执行中断服务程序的时间)而言,几乎可以忽略不计,因而整个中断响应并处理的时间大约:(1s / 500MHz)x500=1µs
一秒钟内的中断服务程序执行要用去10K x 1µs = 10ms<< 1s
所以可以用中断方式进行该外设的输入输出。
(2)外设最大传输率为2MBps
每传输完16位进行一次中断处理,因此一秒钟内的中断次数为:2M/2=1M次
一秒钟内的中断服务程序执行要用去1M x 1µs = 1s!
所以不可以用中断方式进行该外设的输入输出。
70. 若某计算机有5级中断,中断响应优先级为1>2>3>4>5,而中断处理优先级为1>4>5>2>3。要求:
(1)设计各级中断处理程序的中断屏蔽位(假设1为屏蔽,0为开放);
(2)若在运行主程序时,同时出现第2、4级中断请求,而在处理第2级中断过程中,又同时出现1、3、5级中断请求,试画出此程序运行过程示意图。
参考答案:
(1)1级中断的处理优先级最高,说明1级中断对其他所有中断都屏蔽,其屏蔽字为全1;3级中断的处理优先级最低,所以除了3级中断本身之外,对其他中断全都开放,其屏蔽字为00100。以此类推,得到所有中断屏蔽字:
(2)程序运行过程示意图
来源:CSDN
作者:(⊙o⊙)麽
链接:https://blog.csdn.net/zzyzzylalala/article/details/104058984