计算机组成原理期末复习
Notes
填空题
- 计算机系统中采用补码运算的目的是(简化计算机设计)
- 程序计数器PC在(控制器中)
- 计算机主频周期是指(时钟周期)
- I/O接口中数据缓冲器的作用是(解决CPU与外设之间的速度不匹配问题)
- 直接转移指令的功能是将指令中的地址代码送入(PC程序计数器),以实现程序的跳转或分支
- 计算机系统的软件可分为(系统软件)和(应用软件)
- 微程序设计技术是利用(软件)方法设计(硬件)的一门技术,特点是(规整性,可维护性,灵活性)
- 储存系统的(Cache一主存)和( 主存—辅存 )都用到了局部性原理
- 完整的指令周期包括取指周期,间指周期,(执行周期和中断周期)
- DMA技术的出现使得外围设备可通过(DMA控制器)直接访问(内存)
简答题
解释时钟周期,机器周期,指令周期,主机,主存,存储字长,机器字长,指令字长
- 时钟周期:一个节拍脉冲持续时间,是CPU最小的时间单位
- 机器周期:执行一个基本操作所需时间
- 指令周期:CPU从主存中取出并执行一条指令的时间
- 主机:CPU+内存+相关控制电路
- 主存:计算机系统中用于暂时存放数据和指令的部件
- 存储字长:主存储器中一个存储单元的位数。
- 机器字长:计算机一次能够处理的二进制数据的位数。
- 指令字长:指令位数,决定一条指令长度
什么是总线仲裁?集中式仲裁有哪几种方式?
总线仲裁是指在多个主设备同时竞争总线控制权时,通过某种方式选择一个主设备优先获得总线控制权的过程
集中式仲裁的方法:
- 链式查询方式
- 计数器定时查询方式
- 独立请求方式
提高访存速度可采取哪些措施?(6选3即可)
- 采用高速器件
- 采用cache
- 调整主存结构
- 使用大容量内存
- 使用虚拟内存
- 优化内存管理
简述CPU访问IO端口的过程。
- CPU通过地址总线发送I/O端口的地址
- 系统中的译码器接收到地址信息后,确定具体的I/O端口地址。
- CPU通过数据总线将数据发送到选定的I/O端口。
- I/O设备接收到数据后,根据指令进行相应的操作。
衡量计算机的指标主要有哪些?说明为什么?
- 字长:决定了计算机的处理能力和内存地址空间。
- 运算速度:是计算机在单位时间内能够执行的指令数量,直接影响计算任务的完成时间。
- 主频:是计算机处理器的工作频率,决定了处理器执行指令的速度。
说明SRAM的组成结构,与SRAM相比,DRAM在电路上组成有什么不同?
- SRAM:速度快,数据保持时间长,用于高速缓存。
- DRAM:速度稍慢,容量大成本低,需要定期刷新,用作主存储器。
计算题
求下列各种码对应的真值(正负数原反补移的计算)
先求正数,原反补都一样,再求移码。接着负数原码取负即可(同一个数的话),剩下的按规则转为原码计算即可。本质得记住转换方法,这里只针对本题提高效率,一定不要死板,看好题目要求,记好每一步转换后得到的到底是什么码,只有原码才转数字(真值)
[x]原 = 10001101----------[x]原 = 00001101 |
补充一点:转换规则就三种方式;取反,加一,按位取反。没必要记什么码转什么码用什么方式,自己转完了就知道是什么码了,原反补对数值操作,移码对符号位操作。
总线
微程序
某计算机的控制器采用微程序控制方式,微指令中的操作控制字段采用字段直接编码,共有33个微命令,构成5个互斥类,分别包含:7、3、12、5、6个微命令,则操作控制字段至少有多少位?
对数取整求和秒了,不懂,,没啥好说
为啥取2的对数?想想也知道7得用3个二进制位表示。
计算机性能计算
两台计算机A和B采用不同主频的CPU,而片内逻辑电路相同。
(1)若A机的主频为8MHz,B机为12MHz,则两机的CPU时钟周期各是多少?
(2)如果A机的平均指令执行速度为0.4MIPS,那个A机的平均指令执行时间是多少?
(3)B机的平均指令执行速度MIPS是多少?
答案:
记一个名词CPI(执行一条指令所需的时间,是个时间单位) 两个关系:时间都是频率倒数;主频 = CPI * MIPS
1,2题都是知道频率求时间,取倒即可。时间单位默认us。第三题清楚片内逻辑相同的条件就代表CPI相同,带公式即可,实在记不住,1,2题数据设x求比值也能做。
(1)A机的CPU时钟周期=1/主频=1/8=0.125us,B机的CPU时钟周期=1/主频=1/12=0.083us
(2)这里指定MIPS=0.4,即每秒执行0.4百万条指令,所以平均指令执行时间为1/MIPS=1/0.4=2.5us
(3)A机的MIPS=0.4,所以其CPI=主频/MIPS=8/0.4=20,由于A机和B机的片内逻辑电路完全相同,所以两者的CPI也相同,即B机的CPI=20。因此B机的MIPS=主频/CPI=12/20=0.6MIPS
应用题(指令流)
除了第一题,剩余题答案都是代码框中的内容
M代表内存,()括号代表某个寄存器内的内容,(PC)代表pc寄存器内的内容
- 请写出图中a、b、c、d 4个寄存器的名称。
- a: MDR(数据寄存器)
- b: IR(指令寄存器)
- c: MAR(地址寄存器)
- d: PC(程序计数器)
- 看到+1写pc,+1加的是地址,所以下一节点和地址有关MAR,主存储器接两玩意,A没了就选D(MDR),排除法最后IR
简述图中取指令的数据通路。
(PC)→ MAR
M(MAR)→ MDR
(MDR)→IR取指令的数据通路大致如下:
- PC 中存储着下一条指令的地址。
- 这个地址通过地址总线送到 MAR。
- MAR 通过地址总线从主存储器(M)中取出指令,存入 MDR。
- MDR 中的指令通过数据总线送到 IR。
简述数据在运算器和主存之间进行存/取访问的数据通路。
存/取的数据放到ACC中
设数据地址已放入MAR
取:
M(MAR)→MDR
(MDR)→ALU→ ACC
存:
(ACC)→ MDR
(MDR)→ M(MAR)数据在运算器(ALU)和主存之间进行存/取访问的数据通路如下:
- 取数据:
- 从主存储器(M)中的数据通过地址总线到 MAR,然后数据通过数据总线到 MDR,最后从 MDR 送到 ACC(累加器)或者直接送到 ALU 进行运算。
- 存数据:
- 从 ACC 或 ALU 送出数据,通过数据总线到 MDR,然后通过地址总线和数据总线送到 MAR,再存入主存储器(M)。
- 取数据:
简述完成指令 LDA X 的数据通路(X 为主存地址)。
X → MAR
M(MAR) → MDR
(MDR)→ALU → ACC指令 LDA X(装载地址为x的数据到累加器)的数据通路如下:
- PC 将指令地址送到 MAR。
- 从主存(M)中取出指令送到 MDR,然后送到 IR。
- 解释指令 LDA X 后,X 地址送到 MAR。
- 从主存(M)中取出 X 地址的数据送到 MDR,然后送到 ACC。
简述完成指令 ADD Y 的数据通路(Y 为主存地址)。
Y → MAR
M(MAR) → MDR
(MDR)→ ALU,(ACC) →ALU
ALU→ ACC指令 ADD Y(将主存地址 Y 的数据加到累加器)的数据通路如下:
- PC 将指令地址送到 MAR。
- 从主存(M)中取出指令送到 MDR,然后送到 IR。
- 解释指令 ADD Y 后,Y 地址送到 MAR。
- 从主存(M)中取出 Y 地址的数据送到 MDR。
- MDR 中的数据送到 ALU,与 ACC 中的数据进行加法运算,结果存回 ACC。
简述完成指令 STA Z 的数据通路(Z 为主存地址,将ACC运算的解果存进z地址内存)。
Z → MAR
(ACC)→ MDR
(MDR)→ M(MAR)指令 STA Z(将累加器的数据存入主存地址 Z)的数据通路如下:
- PC 将指令地址送到 MAR。
- 从主存(M)中取出指令送到 MDR,然后送到 IR。
- 解释指令 STA Z 后,Z 地址送到 MAR。
- ACC 中的数据送到 MDR。
- MDR 中的数据通过数据总线存到主存(M)的 Z 地址。
设计题(和指令流其中抽一个)
某机器字长为8位,试用如下给出的芯片设计一个存储器来增加主存的存储字数。(芯片:8K*8位)
我不会,记吧,记两个就行,后面赵猫画虎