计算机组成原理大题

绪论

计算题

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,每次读出16位,该存储器的数据传输率是多少?

解答:

  • 数据传送率=(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的主存单元映射到缓存的第几块内(十进制表示)。

  • 直接映射方式下,块大小8*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)主存地址空间分配:8000H87FFH为系统程序区;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代表十六位进制数),
请确定下列指令的有效地址:
(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. 当读取并执行一条指令时,控制器的主要功能是什么?
解答:

  • ①从主存取指令,并计算下一条指令在主存中的地址;
  • ②对指令进行译码,产生相应的操作控制信号;
  • ③ 控制指令执行的步骤和数据流动的方向。

2. 简述中央处理器的基本功能。

解答:

  • (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执行周期T1R2→X(R2)+(R0)→R0
取指周期T2M→DRR/ W ‾ \overline{\text{W}} W=R执行周期T2R2→XR1o,G,Yi
取指周期T3M→DRDRo,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一般不采用程序查询方式与磁盘交换信息。
  1. 某计算机的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%。
  1. 设某机配有A、B、C三台设备,其优先级按A->B->C降序排列,为改变中断处理次序,它们的中断屏蔽字设置如下:
设备屏蔽字
A111
B010
C011

按下图所示时间轴给出的设备请求中断的时刻,画出CPU执行程序的轨迹。设ABC中断服务程序的执行时间均为20微秒。请添加图片描述

解答:

请添加图片描述

4. 设某机有5级中断:L0,L1,L2,L3,L4,其中断响应优先次序为L0最高,L1次之,L4最低。现在要求将中断处理次序改为L1->L3->L0->L4->L2,试问下表中各级中断处理程序的各中断级屏蔽值如何设置(每级对应一位,该位为“0”表示允许中断,该位为“1”表示中断屏蔽)?
解答:
在这里插入图片描述

  • 6
    点赞
  • 94
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值