前言
本文共, 根据我校往年考试的重点, 看得快的话大概一个小时就能看完, 计算机组成原理突击复习的话看课程和课本已经不现实了, 知识点太多太杂, 看不见, 最好直接做题, 因为重点考点只有几个题目, 就行了, , 看完再看题目。
题目总结:
三 应用题:
1.CPU与存储器连接
-
根据题目确定和的容量
- 一般CPU规格不变, 是16条地址线(代表绘图时)CPU的A0~A15端口), 8根数据线(代表绘图)CPU的D0~D7端口), 8根数据线代表8位数据, 我们在选择ROM和RAM芯片也应尽量选择相应的位数.
- 根据题目的要求(一般有三点, 第一点是两种芯片的容量, 对应地址线, 也就是地址)选择合适的芯片, 只能用ROM, 只能用RAM. 例如,这个问题要求我们至少4k为系统程序区, 联系上面的CPU8根数据线, 所以要求我们使用ROM芯片组成4k×8位的ROM芯片. 4096~16383地址对应(16383-4096 1)也就是12k的地址, 那么就是要求我们设计一个12k×8位的RAM芯片.
-
选择合适的芯片
-
注意, 题目不会直接给我们合适的芯片, 我们需要自己去扩展, 有两种有字扩展和位扩展. 两个2k×8位可合成一个4k×8位, 这就是字扩展. 两个4k×四位可合成一个4k×8位, 这就是位扩展. 字扩展与位扩展的区别体现在画图上, 芯片连接用于位扩展CPU对应的数据线, 比如两个4k芯片合成8k的芯片, 那么这两个4k芯片分别连接CPU的D0D3端口和D4D7端口. 字体扩展对应于74138译码器的输出端(不知道74138译码器是什么, 只需记住如何绘制和区分输入端的输出端.
-
如图:
-
-
用二进制写出十六进制的容量, 分别对应ROM和RAM芯片的容量.
-
比如这个问题的要求4k容量, 对应的十六进制应该是1000H, 但由于地址是从0开始计数的, 所以地址对应的16进制是0万H~0FFFH. 4096用户地址区16383也就是1000H3FFFH.
-
注意两片ROM对应1个4k容量. 三个RAM对应12K容量, 也就是1个RAM对应1个4k容量, 写成二进制:
-
-
最关键的一步, 逻辑图根据二进制地址分配绘制.
-
这部分是得分的关键, 首先CPU自己记住74138译码器的图片, 考试时直接画. 绘制相应芯片数量的矩形,并注明哪种芯片
注意布局, 合适的布局会让接下来的芯片更加清晰美观. -
根据芯片的容量选择连接CPU几条地址线, 例如,这个问题中两种芯片的容量是4k(这里不看位数), 4k=2^12次方, 即连接12条地址线, 注意从A0开始.
-
去和74138的CBA输入端连接. 注意地址线从低到高,74138输入端ABC连接.
-
G2B非和G2A非均和CPU地址线中未使用且恒为0的端口连接.
-
G连接恒为1的端口, 如果没有,可以画一条线,注明5V, 表示外部连接.
-
根据CBA三个输入连接CPU地址线二进制数, 来确定输出(Y0~Y7), 连接到相应的芯片上. 有时需要注意
-
最后上即可.
-
如图:
-
存储器与CPU的连接_yrdelft的博客-CSDN博客_存储器与cpu的连接
2.设计主存地址
统一块长, Cache容量, 主存容量三者的单位, 最好换算成B的单位(1B代表一个字节, 1B=8b. 1b代表1位).
-
确定块长, 也就是每个字块有多少字节, 然后将数字转换为2^X的形式, 那么就是x.
-
将主存容量替换为2^z的形式后, z - x即为大小.
- 全相联是最简单的, 当问题出现时,很可能会把它放在第一个问题上.
- 不变.
- 等于将Cache容量换成2^y的形式后, y - x即为大小.
- 等于将主存容量换成2^z的形式后, z - y - x即为大小.
- 首先不变.
- 2^(y-x)除n路组相连(这是二路, n = 2)然后转换成2^m第二为组地址.
- 将主存容量替换为2^z的形式后, z - x - m即为大小.
3.磁盘的技术指标
磁盘计算题一般都是改数, 记住计算公式. 计算磁道周长π视为3.14.
磁盘组有 , 每片有两个记录面, . 存储区域, , , , .
-
共有多少存储面可用?
-
一共6片, 每片有两个上下记录面, 不需要上下两面. 则一共有6*2-2=10
-
有多少个柱面?
-
柱面数是盘面上的磁道数, 与多少可用存储面无关.
-
注意, 题目给出的内容 / 外径为直径.
-
本题中: 有效存储区域长度 = 40/2 - 20/2 = 10 (cm)
柱面数 = 10 × 20 = 200 (道), 即200个柱面.
-
盘组的总存储容量是多少?
-
磁道长度是标题中给定的位密度对应的内外周长.
-
内层位密度在本题中, 因此,首先计算内磁道周长 = 2 * r * π = 62.8 cm
每道信息量 = 400 * 62.8 = 25120 位. 单位可以转成字节, 也可以不转, 25120b = 3.14KB
盘组总容量 = 10 * 200 * 3.14KB = 6280KB = 6.28 MB
-
数据传输率多少?
-
本题中: 转速 = 2400转 / 分 = 40转 / 秒
数据传输率 = 40 * 3.14KB = 125.6 KB / 秒 = 0.1256 MB / 秒
-
如果某文件长度超过一个磁道的容量, 应将它记录在同一个存储面上, 还是记录在同一个柱面上, 为什么?
- 没有为什么, 记住就行了.
4.虚拟存储器的工作原理
虚页号 = 页号, 主存实页面号 = 页框号 = 物理块号, 有效位=
这种题把握好三个数字即可.
某存储器按字节编址, , , .
-
虚拟地址共有几位, 哪几位表示页号? 物理地址共有几位, 哪几位表示物理页号?
-
虚拟地址空间大小为16MB = 2 ^ 24 B, 所以虚拟地址有24位, 因为页面大小为4KB = 2 ^ 12 位, 所以页内地址12位.
24 - 12 = 12 所以高12位表示页号(虚页号). 因为主存地址空间大小为1MB = 2 ^ 20 位, 所以物理地址有20位, 20 - 12 = 8 所以高8位表示物理页号(页框号).
-
-
虚拟地址010C60H所在的页面是否在主存中? 若在主存中, 则该虚拟地址对应的物理地 址是什么? (页表如下图所示)
-
0 1 06 1 1 04 2 1 15 3 1 02 4 0 - 5 1 2B 6 0 – 7 - 由第一问已知虚拟地址010C60H的低12位C60H为页内地址, 高12位010H为页号, , 所以已经存入主存中, , 所以.
5.中断和 I/O系统
CPI 为5(即执行每条指令平均需5个时钟周期). 在做I/O系统的题时要注意, 这里的1M与1B的换算关系是1M = 1000KB = 10^6B .
某计算机的 , . 假设某, 采用中断方式与主机进行数据传送, , 对应的. 请回答下列问题, 要求给出计算过程.
- 在中断方式下, CPU 用于该外设 I/O 的时间占整个CPU时间的百分比是多少?
- 第一问要牢牢记住这4个式子
- 本题中: 外设的数据传输率为 0.5MB/s, 以 32 位为传输单位, 32b = 4B, . 中断服务程序包含 18 条指令, 中断服务的其他开销相当于 2 条指令的执行时间, CPI 为5, . . CPU 主频为 400MHz, .
- 当该外设的数据传输率达到 5MB/s 时, 改用 DMA 方式传送数据. 假定每次 DMA 传送块大小为 5000B, 且 DMA 预处理和后处理的总开销为 500 个时钟周期, 则 CPU 用于该外设 I/O 的时间占整个 CPU 时间的百分比是多少? (假设 DMA 与CPU 之间没有访存冲突)
- 第二问只需要三个式子, 两问的式子大致相同.
- 本题中: 该外设的数据传输率达到 5MB/s, 改用 DMA 方式传送数据, 假定每次 DMA 传送块大小为 5000B, . DMA 预处理和后处理的总开销为 500 个时钟周期, . .
6.指令系统
这道题能领悟多少全看造化…
某计算机字长为16位, 主存地址空间大小为128KB, 按字编址. 采用字长指令格式, 指令名字段定义如下:
操作码 | 源操作数寻址方式 | 源寄存器 | 目的操作数寻址方式 | 目的寄存器 |
转移指令采用相对寻址, 相对偏移用补码表示, 寻址方式定义如下:
Ms/Md | 寻址方式 | 助记符 | 含义 |
---|---|---|---|
000B | 寄存器直接 | Rn | 操作数=(Rn) |
001B | 寄存器间接 | (Rn) | 操作数=((Rn)) |
010B | 寄存器间接、自增 | (Rn)+ | 操作数=((Rn)), (Rn)+1->Rn |
011B | 相对 | D(Rn) | 转移目标地址=(PC)+(Rn) |
注: (X)表示有存储地址X或寄存器X的内容, 请回答下列问题:
- 该指令系统最多可有多少指令? 该计算机最多有多少个通用寄存器? 存储地址寄存器(MAR)和存储数据寄存器(MDR)至少各需多少位?
- OP表示操作码, 操作码有4位, 则该指令系统最多可有2 ^ 4 = 16条指令.
- 寄存器有3位, 则寄存器最多有2 ^ 3 = 8个寄存器.
- 计算机字长为16位, 所以MDR最少需要16位.
- 主存地址空间大小为128KB, 计算机字长16位 = 2B, 128KB / 2B = 2^16, 所以至少需要16位的MAR.
- 若 表示加法操作(助记符为 add), , , , 则汇编语句 “add (R4), (R5)+” (逗号前为源操作数, )对应的机器码是什么(用十六进制表示)? 该指令执行后, 哪些寄存器和存储单元的内容会改变? 改变后的内容是什么?
- 本题中: 操作码给出: 0001B, R4和R5的寻址方式位分别为001B和010B, R4和R5的编号分别为4和5, 所以语句 “add (R4), (R5)+”对应的机器码
- 因为R4和R5对应的寻址方式是寄存器间接寻址, 语句 “add (R4), (R5)+”的意思是将(R4)和(R5)指向的内容相加并放到目的操作数中, 然后R5的内容自增, 目的操作数是R5, R4 = 1234H, (1234H) = 5678H. R5 = 5678H, (5678H) = 1234H. 1234H + 5678H = 68ACH. 指令执行后, R5和存储单元5678H的内容会改变, R5变为5679H, 存储单元5678H的内容变为68ACH.
题目来源于王道论坛 某计算机字长为16位,主存地址空间__牛客网 (nowcoder.com)
指令执行大题:寄存器间接寻址+执行过程(王道计组)_哔哩哔哩_bilibili
二 计算题
1.计算机性能
1G = 10^3M = 10^6KB = 10^9B
某,其指令分为 4 类,它们在基准程序中所占比例及 CPI 如下表所示。求出该机的 MIPS。
指令类型 | 所占比例 | CPI |
---|---|---|
A | 50% | 2 |
B | 20% | 3 |
C | 10% | 4 |
D | 20% | 5 |
- 本题中: MIPS = 1500 M / (2 * 0.5 + 3 * 0.2 + 4 * 0.1 + 5 * 0.2) = 500
2.计算总线带宽
设, . 如果, 则计算总线宽度和总线的带宽各是多少?
- 本题中: 总线宽度 = 32位 = 4B. 总线的时钟频率为 8MHz, 一个总线周期等于两个时钟周期, 总线带宽 = 4B * (8 MHZ / 2) = 16MB / s.
3.计算CRC码
有一个 (7, 4) 码 (即, ), 已确定. , 求C (x) 的CRC码 (写出具体步骤).
- CRC码很简单, 先看被传输的信息是否满足n位(也即CRC码的位数), 如果不满足就在后面补零. 然后用得到的n位CRC码 (这里是1000 000) 去除所确定的多项式, 这里是1011, 最后所得的余数取n - m (m是被传输的信息的位数) 位补在被传输的信息后面即可. 注意, 这里的其实是逐位异或的意思, 只是形式上很像除法.
- 本题中: 被传输的信息C(x) = 1000, CRC码为7位, 可暂得CRC码1000000, 然后如图所示可得余数101, 最终所得CRC码即为: 1000101
4.海明码
看明白什么是海明码: 可能是最详细的海明校验码(汉明码)解法_1橘猫的博客-CSDN博客_海明校验码例题
两种题型怎么做: 计算机组成原理速成、不挂科、搞定期末考试大题(横屏版)_哔哩哔哩_bilibili
注意: 第一个链接所给出的海明码求法是将校验位从后向前插入的, 当然从前面还是后面开始都可以, 但是大部分题目都是从前向后插入, 所以习惯上最好也是从前向后插入.
- 做法在上方链接, 讲的很好, 这里只给出答案.
5.IEEE754浮点数
知识点涉及面比较广, 但是只要求会做题的话很简单.
已知, 求IEEE754单精度浮点数格式表示形式(写出具体步骤).
-
机器数就是一个数在计算机中的二进制表示.
-
这种题就是要我们将一个十进制的数转化成一个32位的二进制数, 至于十六进制和八进制都是在二进制的基础上处理一下结果.
-
32位的二进制数由三部分组成: 组成. 不用管这些名词, 只要记住位数和怎么求就可以了.
-
, 例如8.25 = 1000.01B = 1.00001 * 2^3 B.
-
, 不足8位在前面补零. , 不足23位就在后面补零. (不要管为什么加127, 记住就行了).
-
本题中: x = 8.25 = (1000.01)B = ( 1.000 01×2^3 )B, E(阶码) = e(我们得到的3) + 127 = 130 = (1000 0010 )B,
单精度浮点数格式: 1位数符, 8位阶码 (含阶符), 23位尾数. 故IEEE 754单精度浮点数表示为:
0 1000 0010 000 0100 0000 0000 0000 0000 即0100 0001 0000 0100 0000 0000 0000 0000 即41040000H
【计算机组成原理】十进制转IEEE754单精度浮点数格式_哔哩哔哩_bilibili
【计算机组成原理】IEEE754单精度浮点数转十进制_哔哩哔哩_bilibili
6.流水线的基本运算和流水线的相关性处理
- 1s = 1* 10^3 ms = 1 * 10^6 μs = 1 * 10^9 ns. 1G = 1 * 10^3 MB = 1 * 10^6 KB = 1 * 10^9 B
-
CPU时钟周期为△t, m阶指令流水线, 连续处理n条指令
-
执行
计算机采用 , 每段执行需, 若连续执行 , 则流水线所需的时钟周期数是多少? 求出流水线的加速比Sp和吞吐率 TP(写出简要步骤).
- m段流水方式 = m级指令流水线.
- 本题中: 时钟周期数 = (5 + 30 - 1) * T = 34T. TP = 30 / ((5 + 30 - 1) * T) = 17 / (15 * T). Sp = (5 * 30 * T) / (34 * T) = 75 / 17.
(5条消息) 流水线性能吞吐率、加速比、效率计算_海绵泡泡~的博客-CSDN博客_流水线吞吐率加速比
7.Cache命中率问题
假设CPU执行某段程序时, , . , . 求Cache - 主存系统的命中率, 平均访问时间和效率.
- 本题中: 命中率 = 950 / (950 + 50) * 100% = 95% 平均访问时间 = 0.95 * 50 + 0.05 * 300 = 62.5 效率 = 50 / 62.5 = 80% 性能提高 = 300 / 62.5 - 1 = 4.8 - 1 = 3.8 倍
8.机器数的最大值最小值
基础知识点.
设机器字长为n = 8位(其中1位为符号位), 求出对于整数, 当机器数分别代表无符号数, 原码, 补码和反码时, 对应真值的最大值和最小值为多少?(先写机器数, 再求真值).
-
无符号数 原码 补码 反码 最大值机器数 1,1111111 0,1111111 0,1111111 0,1111111 最大值真值 255 127 127 127 最小值机器数 0,0000000 1,1111111 1,0000000 1,0000000 最小值真值 0 -127 -128 -127 -
说明一下 -128, -128是由反码1, 1111111 + 1得到的, 他的原码是1, 0000000, 显然这是 -0, 而 -0是没有意义的, 所以就拿来给 -128用了.
一 简答题
名词解释: 总线带宽, 总线宽度, 总线工作频率, 总线复用.
- 总线复用: 指同一条信号线可以分时传输不同的信号.
计算机中引入Cache-主存和主-辅存层次的目的分别是什么?Cache-主存层次常用的地址映像方法和替换算法分别是什么?
主存单元的地址分配: 大端, 小端; 按整数边界存放
总结SRAM和DRAM的区别.
动态半导体存储器(DRAM)为什么要刷新? 如何刷新?主要包含哪三种刷新方式?
分辨率和灰度级.
- 显示器所能显示的像素个数, 屏幕上的每一个光点就是一个像素. 以宽, 高的像素表示, 例如800 * 600 等. 像素越密, 分辨率越高, 图像越清晰.
计算机内部如何判断补码加/减运算的结果是否发生溢出?
浮点数加减运算的步骤有哪些?
两个浮点规格化数相乘, 是否可能需要右规? 为什么? 是否可能需要左规? 为什么? 其规格化次数可否确定?
简述微程序的基本思想.
影响指令流水线性能的因素有哪三个?
- 1.结构相关. 2.数据相关. 3.控制相关.
简述串行总线和并行总线的特点. 现代计算机主要采用什么类型的总线.
- 串行总线数据传输时, 数据是一位一位地在通信线上传输的; 并行总线数据传输时有多个数据位同时在两个设备之间传输.
- 串行方式.