本文主要是介绍计算机组成之简答题’分析题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
计算机组成之LD
一个完整的中断过程包括哪几个阶段?
答:包括:中断请求,中断判优,中断响应,中断处理及返回。
1、假定某程序P由一个100条指令构成的循环组成,该循环共执行50次,在 某系统S中执行程序P花了20000个时钟周期,则系统S在执行程序P时的CPI 是多少?↵
答: 在20000个时钟周期中共执行100X50=5000条指令
CPI=2000/5000=4
2、浮点数表示的精度和数值范围取决于什么?是怎样的关系?↵
答:浮点数的精度取决于尾数的位数,而数值范围取决于阶码的位数。
在浮点 数总位数不变的情况下,阶码位数越多,则尾数位数越少。即表示的数范围越 大,则精度越差(数变稀疏)。
3.画出补码加减运算部件图
4、什么是“程序访问的局部性”?存储系统中哪一级采用了程序访问的局部性 原理?
↵ 答:程序执行时对存储器的访问是不均匀的,这是由于指令和数据在主存的地址分布不是随机的,而是相对地簇聚。↵
存储系统的Cache-主存级和主存-辅存级都用到程序访问的局部性原理。
5、设某机主存容里为16MB,Cache容量为16KB,每字块32字节。设计一个四路组相联映像的Cache组织,画出主存地址字段中各段的位数。
答:每字块32字节,25=32,块内地址为5位;↵
Cache容里为16KB,16K/32=512,则Cache共512块,因是四路组相联,故有512/4=128组,组号为7位;
主存容量为16M,224=16M,标记为24-5-7=12位
12 | 7 | 5 |
---|---|---|
标记 | 组号 | 块内地址 |
6、什么是RISC和CISC?试从指令数目、指令格式、寻址方式、通用寄存器数 目、采用什么逻辑、采用的编译技术、对流水线的支持程度、可靠性等几方面 比较异同。分别举出一个采用RISC、CISC的典型架构。
答:RISC是精简指令集计算机,CISC复杂指令集计算机。RISC和CISC相 比,指令数、指令格式、寻址方式少,通用寄存器多,采用组合逻辑,采用优化的编译技术,便于实现指令流水。RISC便于设计,成本较低,可靠性较高。
例如X86架构采用CISC,ARM和MIPS都采用RISC。
7、设某机共能完成120种操作,CPU有8个通用寄存器,主存容里为16K字, 采用寄存器一存储器型指令。欲使指令可直接访问主存的任一地址,指令字长应取多少位?画出指令格式。
答:
操作码:7位
寄存器编号:3位;
存储器地址码:14位
指令字长=7+3+14=24位
7 | 3 | 14 |
---|---|---|
OP | R | A |
8、什么是数据冒险?如何解决数据冒险?↵
答:在指令流水线中,后面指令需要用到前面指令的结果时,前面指令的结果 还没产生的现象称为数据冒险。
解决方法有:
方法1:硬件阻塞(stall);
方 法2:软件插入“NOP”指令;
方法3:合理实现寄存器堆的读/写操作(不能解决所有数据冒险),前半时钟周期写,后半时钟周期读,若同一个时钟内前面 指令写入的数据正好是后面指令所读数据,则不会发生数据冒险;
方法4:转 发(Forwarding或Bypassing旁路)技术;
方法5:编译优化:调整指令顺序(不能解决所有数据冒险)。↵
9.总线集中式裁决有哪几种方式?哪一种对电路故障最敏感?哪一种的裁决速 度最快?↵
答:总线集中式裁决有链式查询、计数器定时查询、独立请求方式三种。其中, 链式查询对电路故障最敏感,独立请求方式的裁决速度最快。↵
10、I/O设备与主机进行数据交换有哪几种基本方式?每种方式下,埶据是否直接和CPU交换?
答:I-O设备与主机进行数据交换有三种基本方式:
程序查询方式,中断方式, DMA方式。
其中,程序查询方式和中断方式外设的教据都是直接和CPU交换, DMA方式下外设的数据和主存进行直接传送。
11、有哪些常用的数据寻址方式?
答:立即寻址,直接寻址,隐含寻址,寄存器寻址,寄存器间接寻址,变址寻址,相对寻址,基址寻址等。
12、某计算机的主存地址空间大小为64KB,按字节编址,已配有0000H~7FFFH 的ROM区,若再用4KX4位的RAM芯片形成其余的RAM存储区,则需要 多少个这样的RAM芯片?写出分析过程。↵
答:因为主存地址空间大小为64KB,按字节编址,所以主存地址范围为
0000H~ FFFFH,其中0000H~7FFFH为ROM区,占32KB,RAM区大小为64-32=32KB,故需4KX4位的RAM芯片数为:32KB/(4K X 4b)=16片
13、某机字长32位,控制器采用微程序控制方式,微指令字长32位,采用水 平型直接控制与字段编码控制相结合的微指令格式,共有微命令40个,其中9 个微命令采用直接控制方式,31个微命令采用字段编码控制方式,共构成4个 相斥类(各包含了7个、16个、3个、5个微命令)。可测试的外部条件有2个。设计该微指令的具体格式,控制存储器容里是多少?微程序控制器和硬布线控 制器的不同?↵
答:(1)微指令格式如下:
9个微指令 | 7个微指令 | 16个微指令 | 3个微指令 | 5个微指令 | 判别字段 | 下址字段 |
---|---|---|---|---|---|---|
9 | 3 | 5 | 2 | 3 | 2 | 8 |
(2)下址字段有8位,控制存储器容里为28=256个单元。↵
14、某计算机的 Cache共有16块,采用2路组相连映射方式,每个主存块大小 为32字节,按字节编址。主存号129号单元所在主存块应装入到cache的组号 是多少?给出分析过程。(Cache起始行为第0行,答案用十进制表示)
答:
解法1:每字块有32个字节,故块内地址为5位;
Cache有16块,采用2路组 相连映射方式,共8组,组号3位,其余高位为标记。
129号的二进制表示为:10000001
标记 | 组号 | 块内地址 |
---|---|---|
0 | 100 | 00001 |
组号为100,即第4组。
解法2:129号单元所在的块号为:12932=4。 Cache的组数为162-=8组。 第4块所在的组号为:mod 8=4。即在第4组中。
15、某16位机的指令格式和寻址方式如下所示,设该机有8个16位通用寄存 器,加法指令 ADD的操作码为234H。写出以下指令语句的机器码(要求用十 六进制表示):
ADD R7,R5
15 , 8 | 7 ,4 | 3, 0 |
---|---|---|
op | D(目标寄存器) | S(源寄存器) |
ADD D,S
答:ADD机器码:1000110100
R7机器码:111
R5机器码: 101
指令语句机器码 1000110100 111 101
用十六进制表示位8D3DH
16、中断方式下,外设任何时候都可以申请中断并马上得到响应吗?
答:中断方式下,外设发出中断请求的时机是由外设接口中的中断逻辑决定, 不受CPU限制。但何时响应中断与CPU执行指令过程相关。
CPU总是在一条 指令执行完、取下条指令之前查询有无中断请求。如果是开中断状态、且有未被屏蔽的中断请求,则在一条指令执行结束后响应。
17、根据导致冒险的原因的不同,流水线冒险分为哪几种?在流水线方式下, 下组指令是否有冒险?为什么?↵
Ⅰ1 SUB R1,R2,R3;(R2 - R3) ->R1
Ⅰ2 ADD R4,R6,R1; (R1 + R6) ->R4
答:流水线冒险分为结构冒险、数据冒险、控制冒险。
该组指令有数据冒险。
Ⅰ1指令运算结果应先写入R1,然后在I2指令中读出R1内容。由于I2指令进入流 水线,变成I2指令在I指令I1写入R1之前就读出R1内容,发生数据冒险。↵
18、CPU控制器有哪两种实现方式?各有何优缺点?
答:一是硬连线路控制器,二是微程序控制器。
硬连线路控制器的优点是速度快,适合于实现简单或规整的指令系统。缺点是它是一个多输入多输出的巨大 逻辑网络,结构庞杂,实现困难,维护不易。
微程序控制器采用了存储程序原 理,所以每条指令都要从控存中取一次,特点是规整性、易维护、灵活,但速 度慢。
19、某磁盘有2个盘片(双面),10000个柱面,每条磁道平均有400个扇区,每 个扇区有512字节,计算磁盘容量。
答:磁盘容量=5124001000022=8192000000B=8.192GB
20、在C语言程序中,为什么以下程序段最终的f值为0,而不是2.5?
float f=2.5+1e10;↵
f= f-1e10;
答:首先,float类型采用IEEE 754单精度浮点数格式表示,因此,最多有24位二进制有效位数。
因为1e10=1010,在数里级上大约相当于233,而2.5的数里级为21,因此,在计算2.5+1e10进行对阶时,两数阶码的差为32,也就是说,2.5 的尾数要向右移32位,从而使得24位有效数字全部丢失,尾数变为全0,再与1e10的尾数相加时结果就是1e10的尾数,因此f=2S+1e10的运算结果仍为1e10, 这样,再执行f=f-1e10时结果就为0。
21、I/O端口是如何编址的?并分别说明。
答:两种编址方式为独立编址和统一编址。独
立编址是IO端口和主存单元分别编号,不占主存单元的地址空间,IO端口和主存单元可能有相同的编号, 故需要专门的IO指令;
统一编址是IO端口和主存单元在同一地址空间中的 不同位置,可根据地址范围不同来区分访问的是I0端口还是主存单元,故无 需专门的IO指令。
23、下面是一段MIPS指令序列:
1 add $t1,$s1,$s0
2 sub $T2,$s0,$s3
3 add $t1,$t1,$t2
假定在一个采用“取指、译码/取数、执行、访存、写回”的5段流水线处理 器中执行上述指令序列,请回答下列问题:↵
(1)以上指令序列中,哪些指令之间发生数据相关?↵
(2)不采用“转发”技术的话,需要在何处、加入几条R.指令才能使这段指 令序列的执行避免数据冒险?↵
(3)如果采用“转发”技术,是否可以完全解决数据冒险?↵
答:(1)第1和第3条指令、第2和第3条指令之间发生数据相关。
(2)不进行“转发”的话,在第2和第3条指令之间必须插入3条或2条nor 指令:若将寄在器写具和寄存器读只分别安排在一个时钟周期的前、后半个周 期内独立工作只要加入2条加即可,否则是3条。
(3)采用“转发”技术,上述程序段可以完全避免数据冒险。
这篇关于计算机组成之简答题’分析题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!