计算机组成原理大题
- 绪论
-
- 计算题
- 资料题
- 存储器
-
- 简答题
- 计算题
- 指令
-
- 计算题
- 运算器
-
- 简答题
- 计算题
- 控制器
-
- 简答题
- 论述题
- IO
-
- 计算题
绪论
计算题
1. 假设计算机上的基准程序A运行时间为100秒,其中90秒为CPU时间,时间是I/O时间。若CPU 速度提高50%,I/O如果速度不变,运行基准程序A的时间是多少?(请写入计算过程)
解答:
- 假设提高速度CPU消耗的时间为X秒,之前CPU速度为V,则提高后为1.5V CPU执行的指令条数保持不变,因此90V=X1.5V 加上I/O总共70秒
- 90*100/150 10=70秒
资料题
1. 如果程序编译后生成的目标代码是由A、B、C、D它们在程序中所占比例分别为40%、20%、15%和25%。已知A、B、C、D四类指令的CPI分别为1、2、2、2。现在需要编译和优化程序。在优化程序中,A类指令条的数量减少了一半,而其他指令的数量没有改变。假设操作程序的计算机CPU主频为500MHZ。 (1)优化前后CPI各为多少? (2)优化前后程序MIPS为? (3)通过以上计算结果,你能得出什么结论?
解答:
- (1)优化前CPI=0.41 0.22 0.152 0.252=1.6 优化后,ABCD比例为25%、25%和18.75%、31.25% CPI=0.251 0.252 0.18752 0.31252=1.75
- (2)MIPS=F/CPI 优化前 500/1.6=312.2 优化后 285.7
- (3)优化后程序速度降低。A类指令执行频率高,执行速度快。应减少程序优化CPI高指令的比例,或提高快速指令的执行概率。
存储器
简答题
1. DRAM电容上的电荷只能维持1-2ms,所以每隔2ms常用的刷新方法有哪些?
解答: 刷新是因为( 储存电荷的电容放电
)
-
1.集中刷新
集中刷新是在规定的刷新周期内逐一刷新所有存储单元一段时间,此时必须停止读写操作。
-
2.分散刷新
分散刷新是指将每个存储单元的刷新分散到每个访问周期中。其中,机器的访问周期tc分为两段,前半段tM用于读写或维护信息,后半段tR用来刷新。
-
3.异步刷新
它不仅可以缩短死死时间,充分利用2ms具体操作如下:2ms内对128行各刷新
2. 每个模块的容量是64K×32位,按字编址,存取周期为200ns,在存取周期中,整个存储器可以向前移动CPU提供多少位二进制信息?
解答:
- 一个存取周期,四体并行交叉存储器可以取32位 x 4=128位。其中32位为总线宽度,4位为交叉存储器中的存储体数。
计算题
1. 已知收到的汉明码为0100111(按配偶原则配置),想传递的信息是什么?
解答:
- P4P2P1=110, 正确码是0100101,所以信息是0101
- 0101
2. 若存储器的存储周期为250ns,存储器的数据传输率是多少?
解答:
- 数据传送率=(1/(250×10-9))×2Byte = 8*106 B/s(字节/秒)
3. 设置机主存量16MB,按字节编址,缓存容量为16KB。每个字块有8个字,每个字32个字。设计一个四路组相连映射的缓存组织(即每组缓存4个字块),要求:
(1)给出主存地址字段中各段的位数。
(2)设置缓存初态为空,CPU依次从主存第0、1、2…、99号单元读出100个字(主存一次读出一个字),并重复此次序读8次,问命中率是多少?
(3)如果缓存速度是主存速度的6倍,与无缓存相比,缓存速度增加了多少倍?
- (1)标记主存字块12 组地址7位 5位字块内地址
- (2)命中率
- (3)缓存访问时间为一次t, 主存访问时间为6t, 无缓存访问时间6t800有缓存访问时间t(800-13) 6t13、提高倍数为:
4. 直接映射的16KB缓存,假设块长为8个32位,按字节编码,地址为FDA459H主存单元映射到缓存的第几块(十进制表示)。
-
直接映射*4B=32B, 因此,块内位移占5位 16KB/32B=512,即有512个Cache块,Cache块号占9位
-
FDA459H=1111 1101 1010 0100 0101 1001, 从右到左,5位块内位移,9位块10 0100 010,十进制数为290
5. 设CPU共有16条地址线和8条数据线,用作访问存储控制信号(低电平有效)和读写控制信号(高电平读写,低电平读写)。现有以下存储芯片:1K×4位RAM,4K×8位RAM,2K×8位ROM以及74138译码器和各种门电路,如下图所示。CPU与存储芯片的连接图, 要求:
(1)主存地址空间分配:8万H87FFH为系统程序区,8800H8BFFH用户程序区。 (2)合理选择上述存储芯片,说明各选择几片。 (3)详细画出存储芯片和CPU的连接图。 解答:
指令
计算题
1. 机器字长为16位,主存按字编地址,指令格式如下: 其中,D为位移量;X寻址特征位。 X=00: 直接寻址; X=01: 用变址寄存器X1寻址 X=10: 使用变址寄存器X2寻址; X=11: 相对寻址 设(PC)=1234H, (X1)=0037H, (X2)=1122H(H代表16位进制数), 请确定下列指令的有效地址: (1)4420H (2) 2244H (3) 1322H (4) 3521H (5) 6723H
解答:
ps:取指后,PC=1235H(不是1236H,因为主存按字编址)
- (1)X=00,D=20H,有效址EA=20H
- (2)X=10,D=44H,有效地址EA=1122H+44H=1166H
- (3)X=11,D=22H,有效地址EA=1235H+22H=1257H
- (4)X=01,D=21H,有效地址EA=0037H+21H=0058H
- (5)X=11,D=23H,有效地址EA=1235H+23H=1258H
2. 假设指令字长为16位,操作数的地址码为6位,指令有零地址、一地址、二地址3种格式。 1)设操作码固定,若零地址指令有M种,一地址指令有N种,则二地址指令最多有几种? 2)采用扩展操作码技术,二地址指令最多有几种? 3)采用扩展操作码技术,若二地址指令有P条,零地址指令有Q条,则一地址指令最多有几种? 解答:
- 1)操作数地址码为6位,所以二地址指令中操作码的位数为16-6-6=4,这4位操作码最多有16种操作。由于操作码固定,所以二地址指令最多有16-M-N种
- 2)采用扩展操作码技术,操作码位数随地址数的减少而增加。对应二地址指令,除去用于一地址扩展,最多有15种
- 3)设一地址指令最多有X种,则 [(24-P)×26-X]×26=Q 所以 X=(24-P)×26 -Q×2-6
3. 某模型机共有64种操作,操作码位数固定,且具有以下特点。 (1) 采用一地址或二地址格式。 (2) 有寄存器寻址、直接寻址和相对寻址(位移量-128~+127)三种寻址方式。 (3) 有16个通用寄存器,算术运算和逻辑运算的操作数均在寄存器中,结果也在寄存器中。 (4) 取数/存数指令在通用寄存器和存储器之间传递数据。 (5) 存取器容量为1MB,按字节编址。 要求设计算术/逻辑指令、取数/存数指令和相对转移指令的格式。
解答:
- (1)算术/逻辑指令格式为寄存器–寄存器型,取单字长16位。 其中,OP为操作码,6位,可实现64种操作;M为寻址模式,2位,可反映寄存器寻址、直接寻址、相对寻址;Ri和Rj各取4位,指出源操作数和目的操作数的寄存器(共16个)编号。
- (2)取数/存数指令格式为寄存器–存储器型,取双字长32位,格式如下:其中,OP为操作码,6位不变;M为寻址模式,2位不变;Ri为4位,源操作数地址(存数指令)或目的操作数地址(取数指令);A1和A2共20位,为存储器地址,可直接访问按字节编址的1MB存储器。
- (3)相对转移指令为一地址格式,取单字长16位,格式如下: 其中,OP为操作码,6位不变;M为寻址模式,2位不变;A为位移量8位,对应位移量为-128~+127。
运算器
简答题
1. 设X=+11/16,Y=+6/16,试用变形补码计算x+y并判断是否溢出。
解答: X=+11/16=+0.1011B Y=+3/16=+0.011B [X]原=00.1011 [Y]原=00.011 [X]补=00.1011 [Y]补=00.011 [X+Y]补=[X]补+[Y]补=00.1011+00.0011=01.0001 [X+Y]原=01.0001
2. 浮点数加、减运算过程一般包括对阶、尾数运算、规格化、舍入和判溢出等步骤。设浮点数的阶码和尾数均采用补码表示,且位数分别为 5 位和 7 位(均含 2 位符号位)。若有两个数 X=×29/32 , Y=×5/8 ,则用浮点加法计算 X+Y 的最终结果是?请写出计算过程。
解答: 小数化二进制:29/32=0.1110100,5/8=0.1010000 求阶差:△E=7-5=[7]补+[-5]补=00010=2 对阶:25 x 0.1010000 = 27 x 0.0010100 27 x 0.1110100 + 27 x 0.0010100 = 200111 x 1.0001000 因为尾数为01.xx或10.xx为溢出,执行尾数右移规格化为201110 x 0.1000100 因为01110的高2位符号位不同,价码溢出,说明结果溢出
3. 利用1位全加器设计一个16位的ALU,画出电路图并说明电路信息传输是并行还是串行,哪些地方并行,哪些地方串行。 已知1位全加器的 解答:
- 16个1位全加器串联起来 4. 利用SN74181芯片设计一个16位的ALU,画出电路图并说明电路信息传输是并行还是串行,哪些地方并行,哪些地方串行。 芯片如图 解答: 需要用4片SN74181芯片,芯片内部是并行,芯片间是串行进位。
5. 设计一个32位的ALU,利用CLA74182和SN74181芯片.画出电路图并说明电路信息传输是并行还是串行,哪些地方并行,哪些地方串行。 解答:
- 需要8片SN181,两片CLA74182. 组内先行进位,组间行波进位.
6. 一个全加器包括3个输入和两个输出,输入端分别为加数Xi和Yi,低位进位输入Ci。输出端分别为和Si及本次高位进位输出Ci+1。 Si=Xi⊕Yi⊕Ci Ci+1 = Xi Yi + (Xi ⊕ Yi )Ci。假设所有与门和或门的传播时间延迟为T,异或门的延迟是6T. 问题 (1)和Si的时间延迟? (2)进位输出Ci+1的时间延迟? 解答:
- (1)和Si的时间延迟是6T
- (2)进位输出Ci+1的时间延迟?5T
计算题
1. 已知接收到的汉明码为0100111(按配偶原则配置),试问欲传送的信息是什么?
解答:
- P4P2P1=110, 正确码为0100101,所以信息是0101
控制器
简答题
1. 当读取并执行一条指令时,控制器的主要功能是什么? 解答:
- ①从主存取指令,并计算下一条指令在主存中的地址;
- ②对指令进行译码,产生相应的操作控制信号;
- ③ 控制指令执行的步骤和数据流动的方向。
解答:
- (1)指令控制,即对程序运行的控制;
- (2)操作控制,即对指令内操作步骤的控制;
- (3)操作控制,即对指令内操作步骤的控制;
- (4)异常处理和中断处理,如处理运算中的溢出等错误情况以及处理外部设备的服务请求等 此外,CPU还具有存储管理、总线管理、电源管理等扩展功能。
3. 流水计算机的数据相关主要分为写后读(RAW)、读后写(WAR),写后写(WAW)。请指出下面三组指令中各存在哪种类型的数据相关? (1)LDA R1,A ;M(A)→R1;M(A)是存储单元
ADD R2,R1 ;(R2)+(R1) →R2
(2)ADD R3,R4 ;(R3)+(R4) →R3
MUL R4,R5 ;(R4)*(R5) →R4
(3)LDA R6,B ;M(B) →R6,M(B)是存储单元
MUL R6,R7 ;(R6)*(R7) →R6
解答:
- (1)写后读相关
- (2)读后写相关
- (3)写后写相关
4. 指令和数据都存于存储器中,CPU如何区分它们? 解答:
- 完成一条指令分为取指阶段和执行阶段。在取指阶段通过访问存储器可将指令取出;在执行阶段通过访问存储器可将操作数取出。因此,虽然指令和数据都以二进制代码形式存放在存储器中,但CPU可根据指令周期的不同阶段判断从存储器取出的二进制代码是指令还是数据。
论述题
1. 下图所示为双总线结构机器的数据通路,IR为指令寄存器,PC为程序计数器(具有自增功能),M为主存(受R/W#信号控制),AR为地址寄存器,DR为数据缓冲寄存器,ALU由加、减控制信号决定完成何种操作,控制信号G控制的是一个门电路。另外,线上标注有小圈表示有控制信号,例中yi表示y寄存器的输入控制信号,R1o为寄存器R1的输出控制信号,未标字符的线为直通线,不受控制。 “ADD R2,R0”指令完成(R2)+(R0)→R0的功能操作,画出其指令周期流程图,假设该指令的地址已放入PC中。并在流程图每一个CPU周期右边列出相应的微操作控制信号序列。
解答:
- 取指周期 时钟 功能操作 控制信号 执行周期 时钟 功能操作 控制信号
取指周期 T1 PC→AR PCo ,G ,ARi 执行周期 T1 R2→X R2o,G,Xi
取指周期 T2 M→DR R/=R 执行周期 T2 R1→Y R1o,G,Yi
取指周期 T3 DR→IR DRo,G,IRi 执行周期 T3 ( R2)+(R0)→R0 + ,ALUo,G,ROi
时钟 | 功能操作 | 控制信号 | 时钟 | 功能操作 | 控制信号 | ||
---|---|---|---|---|---|---|---|
取指周期 | T1 | 取指周期 | PCo ,G ,ARi | 执行周期 | T1 | R2→X | (R2)+(R0)→R0 |
取指周期 | T2 | M→DR | R/ W ‾ \overline{\text{W}} W=R | 执行周期 | T2 | R2→X | R1o,G,Yi |
取指周期 | T3 | M→DR | DRo,G,IRi | 执行周期 | T3 | (R2)+(R0)→R0 | + ,ALUo,G,R0i |
IO
计算题
1. 在程序查询方式的输入输出系统中,假设不考虑处理时间,每个查询操作需要100个时钟周期,CPU的时钟频率为50MHz。现有鼠标和硬盘两个设备,而且CPU必须每秒对鼠标进行30次查询,硬盘以32位字长为单位传输数据,即每32位被CPU查询一次,传输率为2*B/s。求CPU对这两个设备查询所花费的时间比率,由此可得出什么结论?
解答:
- (1)CPU每秒对鼠标进行30次查询,所需的时钟周期数为10030=3000。CPU的时钟频率为50MHz,即每秒50106个时钟周期,因此对鼠标的查询占用CPU的时间比率为[3000/(50*6)]*100%=0.006%,可见,对鼠标的查询基本不影响CPU的性能。
- (2)对于硬盘,每32位被CPU查询一次,因此每秒查询次数为2220B/4B=512K;则每秒查询的时钟周期数为1005121024=52.4106,因此对硬盘的查询占用CPU的时间比率为[52.4106/(50106)]*100%=105%,可见,即使CPU将全部时间都用于对硬盘的查询,也不能满足磁盘传输的要求,因此CPU一般不采用程序查询方式与磁盘交换信息。
- 某计算机的CPU主频为500MHz,CPI为5(即执行每条指令平均需要5个时钟周期)。假定某外设的数据传输率为0.5MB/s,采用中断方式与主机进行数据传送,以32位为传输单位,对应的中断服务程序包含18条指令,中断服务的其他开销相当于2条指令的执行时间。回答下列问题,要求给出计算过程。 (1)在中断方式下,CPU用于该外设I/O的时间占整个CPU时间的百分比是多少? (2)当该外设的数据传输率达到5MB/s时,改用DMA方式传送数据。假定每次DMA传送块大小为5000B,且DMA预处理和后处理的总开销为500个时钟周期,则CPU用于该外设I/O的时间占整个CPU时间的百分比是多少?(假设DMA与CPU之间没有访存冲突)?
解答:
- (1)外设每秒传送0.5MB,中断时每次传送32bit=4B。由于CPI=5,在中断方式下,CPU每次用于数据传送的时钟周期为518+52=100(中断服务程序+其他开销)。为达到外设0.5MB/s的数据传输率,外设每秒申请的中断次数为0.5MB/4B=125000。 1秒内用于中断的开销为100*125000=12500000=12.5M个时钟周期。 CPU用于外设I/O的时间占整个CPU时间的百分比为12.5M/500M=2.5%。
- (2)当外设数据传输率提高到5MB/s时改用DMA方式传送,每次DMA传送一个数据块,大小为5000B,则1秒内需产生的DMA次数为5MB/5000B=1000. CPU用于DMA处理的总开销为1000*500=500000=0.5M个时钟周期。 CPU用于外设I/O的时间占整个CPU时间的百分比为0.5M/500M=0.1%。
- 设某机配有A、B、C三台设备,其优先级按A->B->C降序排列,为改变中断处理次序,它们的中断屏蔽字设置如下:
设备 | 屏蔽字 |
---|---|
A | 111 |
B | 010 |
C | 011 |
按下图所示时间轴给出的设备请求中断的时刻,画出CPU执行程序的轨迹。设ABC中断服务程序的执行时间均为20微秒。
解答:
4. 设某机有5级中断:L0,L1,L2,L3,L4,其中断响应优先次序为L0最高,L1次之,L4最低。现在要求将中断处理次序改为L1->L3->L0->L4->L2,试问下表中各级中断处理程序的各中断级屏蔽值如何设置(每级对应一位,该位为“0”表示允许中断,该位为“1”表示中断屏蔽)? 解答: