目录
(2)什么是ROM,什么是RAM?举例对应计算机的哪一部分?
(3)动态RAM和静态RAM硬件实现原理是什么?对应的联系与区别是什么?
(6)存储器与CPU连接时,地址线、数据线和控制线如何连接?
(2)程序查询方式、程序中断方式、DMA方式的数据传输过程效率对比?
(3)程序查询方式、程序中断方式、DMA方式,接口电路的工作步骤?
一、总线部分
(1)总线的作用是什么?
-
信息传输通道: 为计算机系统中各功能部件(CPU、内存、I/O设备等)之间提供公用的、高速的、标准化的信息传输路径。
-
简化系统结构: 使用统一的接口规范连接不同部件,提高了模块化和可扩展性。
-
降低成本
(2)总线有哪些分类标准,又如何细分的?
数据传输格式上划分
- 串行总线:适合远距离输送,成本低,速度快,但传输数据的速率较低
- 并行总线:适合近距离输送,速率高,但线路复杂,成本高,而且当传输距离较长时,多个信号线路之间容易产生串扰,造成数据传输错误或丢失。
功能上划分
- 片内总线:芯片内部各个部件(如处理器、内存、外设等)之间的总线
- 系统总线:诸如处理器与主存、I/O部件之间的总线(其中系统总线又划分为:数据总线(DB)、地址总线(AB)、控制总线(CB))
- 通信总线:计算机与计算机之间的总线
从时序控制方式划分:
- 有同步、异步、半同步、分离式总线
(3)总线判优如何实现的?
集中式判优:
- 链式查询:所有设备通过一条链式查询线连接到总线控制器。总线控制器发出总线可用信号,该信号沿链式查询线依次传递。离总线控制器最近的设备优先获得总线使用权,若该设备无总线请求,则信号传递给下一个设备,依此类推。(结构简单,对故障敏感)
- 计数器定时查询:除了一般的控制线,增加一组设备地址线连接到总线控制器。总线控制器通过计数器产生设备地址,该地址与各设备地址进行比较。若地址匹配且该设备有总线请求,则该设备获得总线使用权。计数器可以从0开始计数(固定优先级,0号设备优先级最高),也可以从上次获得总线使用权的设备地址继续计数
- 独立请求:每个设备都有自己独立的总线请求线和总线授权线连接到总线控制器。各设备有总线请求时,通过自己的请求线向总线控制器发送请求信号。总线控制器根据各设备请求情况和优先级策略,通过对应的授权线向请求设备授予总线使用权。(速度快、优先级灵活、可靠性高,但控制线多、结构复杂。)
分布式判优:
- 总线上无集中控制器,各设备有自己的判优逻辑电路。当设备请求使用总线时,会向总线上发送自己的优先级信号,各设备通过比较总线上的优先级信号来确定是否获得总线控制权。
总线部分,详细说明文章链接:计算机组成原理知识点精汇(二)总线_计算机组成原理中总线部分核心知识点。-CSDN博客
二、存储器
(1)现代存储器系统,为什么要分层?
用户/程序期望存储系统具有:大容量、高速度、低成本。单一存储技术无法同时满足这三个目标(“速度-容量-成本”不可能三角)
所以便将不同速度、容量、成本的存储技术组合成一个层次化的存储体系
-
顶层: 少量、高速、昂贵的存储器(如寄存器、Cache)。
-
中层: 中等容量、速度、价格的存储器(如主存/DRAM)。
-
底层: 大容量、低速、廉价的存储器(如磁盘/SSD、磁带)
(2)什么是ROM,什么是RAM?举例对应计算机的哪一部分?
-
ROM (Read-Only Memory - 只读存储器):
-
特点: 信息预先写入,断电信息不丢失,通常只能读出不能随机写入(现代ROM如Flash允许特定方式写入/擦除)。
-
用途: 存储固定不变的程序或数据
-
计算机对应部分:计算机的基本启动程序(如BIOS)
-
-
RAM (Random Access Memory - 随机存取存储器):
-
特点: 可读可写,断电信息丢失,支持对存储单元进行随机(直接)访问
-
用途: 作为计算机的主存 ,存放当前正在运行的操作系统、应用程序和用户数据。
-
计算机对应部分: 计算机内存条
-
(3)动态RAM和静态RAM硬件实现原理是什么?对应的联系与区别是什么?
- 动态RAM(DRAM):使用电容器存储数据,每个存储单元需要定期刷新以防止数据丢失。其优点是成本较低,存储密度高,但速度较慢。
- 静态RAM(SRAM):使用互锁触发器存储数据,不需要刷新。其优点是速度较快,但成本较高,存储密度低。
- 联系:
两者都用于存储数据,但工作原理和速度、成本等有所不同。 - 区别:
DRAM需要刷新,而SRAM不需要;DRAM的速度较慢,但更便宜,SRAM速度较快,但成本较高。
(4)为什么要引入Cache?Cache和主存的映射关系?
引入Cache是为了弥补CPU速度和主存速度之间的差距。Cache存储器保存频繁访问的数据,避免每次都从较慢的主存中读取。通过利用局部性原理,将频繁访问的数据放在靠近CPU的高速Cache中,显著减少CPU访问主存的平均时间,从而极大提升系统整体性能。
Cache和主存之间有映射关系,通常可采用的有
-
直接映射 (Direct Mapping):
-
每个主存块只能映射到Cache中唯一一个特定位置(行)。
-
映射规则:
Cache行号 = 主存块号 mod Cache总行数
-
特点: 简单、硬件开销小、访问速度快。冲突率高:如果多个经常访问的主存块映射到同一个Cache行,即使Cache其他行空闲,也会频繁替换,导致Cache命中率下降。
-
-
全相联映射 (Fully Associative Mapping):
-
每个主存块可以映射到Cache中任意一个空闲行。
-
特点: 冲突率最低(只要Cache有空行就能装入),Cache空间利用率高。查找速度慢:需要比较所有Cache行的标记(Tag)才能确定是否命中。硬件复杂(需要复杂的并行比较电路),成本高。
-
-
组相联映射 (Set Associative Mapping):
-
将Cache分成若干大小相等的组 。每个主存块映射到Cache中唯一一个特定组,但可以映射到该组内任意一行。
-
映射规则:
Cache组号 = 主存块号 mod Cache总组数
-
特点: 折中方案。每组包含的行数称为相联度(如2路组相联,4路组相联)。冲突率低于直接映射,查找速度高于全相联映射。相联度越高,越接近全相联映射(性能好,成本高);相联度越低,越接近直接映射(性能差,成本低)。现代CPU Cache普遍采用组相联映射(如L1 Cache常用4路或8路)
-
(5)存储芯片扩展时,如何实现位扩展和字扩展?
-
位扩展 (位并联):
-
目的: 增加存储器的字长(数据位数)。
-
方法: 将多片存储芯片的地址线、片选线(CS)、读写控制线(WE/OE)并联。每片芯片的数据线分别连接到系统数据总线的不同位上。
-
结果: 同时访问这些芯片的相同地址单元,共同组成一个更宽(位数更多)的字。例如,用两片 8K x 8bit 的芯片组成一个 8K x 16bit 的存储器。
-
-
字扩展 (地址串联):
-
目的: 增加存储器的字数(存储单元数量)。
-
方法: 将多片存储芯片的地址线、数据线、读写控制线(WE/OE)并联。每片芯片的片选线(CS) 由高位地址线通过译码器控制。
-
结果: 不同的高位地址组合选择不同的芯片工作(选中不同的芯片),访问不同的地址范围。例如,用两片 8K x 8bit 的芯片组成一个 16K x 8bit 的存储器。
-
-
字位同时扩展:
-
目的: 同时增加字数和字长。
-
方法: 先进行位扩展(每组芯片构成一个位扩展单元),然后对多个这样的位扩展单元进行字扩展(通过译码器控制不同组的片选)。
-
结果: 例如,用四片 8K x 8bit 的芯片组成一个 16K x 16bit 的存储器:先将两片芯片位扩展成一组 8K x 16bit,再有两组这样的单元,通过字扩展构成 16K x 16bit。
-
(6)存储器与CPU连接时,地址线、数据线和控制线如何连接?
- 地址线:通常总是将CPU地址线的低位与存储芯片的地址线相连,CPU的地址线输出地址信号,连接到存储器的地址输入端,用于选择存储单元。地址线的位数决定了存储器的寻址空间。
- 数据线:CPU的数据总线与存储器的数据总线相连,用于在CPU和存储器之间传输数据。数据总线的位数决定了一次能传输的数据量。
- 控制线: CPU读/写命令线一般可直接与存储芯片的读/写控制端相连,通常高电平为读,低电平为写。CPU通过读写控制线向存储器发送读写信号,控制存储器的工作状态。
存储器部分,详细说明文章链接:
三、输入输出系统
(1)为什么要使用接口?(I/O接口的功能)
I/O接口是CPU与外部设备之间的桥梁。
1. 数据缓冲功能
外部设备的数据传输速度和计算机主机的速度往往存在很大差异。例如,硬盘的读写速度相对CPU的处理速度要慢很多。I/O接口可以提供数据缓冲区,暂存数据。当主机要向外部设备输出数据时,先将数据送到接口的缓冲区,然后由外部设备慢慢读取;当外部设备向主机输入数据时,先将数据存入缓冲区,主机再根据需要从缓冲区读取,这样可以解决速度不匹配的问题,提高系统的效率。
2. 设备选择功能
在计算机系统中,通常会连接多个外部设备。I/O接口可以通过地址译码等方式,根据主机发出的设备地址信号,选择与之对应的外部设备进行数据传输,使得主机能够准确地与指定的外部设备进行通信。
3. 数据格式转换功能
不同的外部设备可能采用不同的数据格式。例如,有些设备采用串行数据传输方式,而计算机主机内部通常采用并行数据传输方式。I/O接口可以进行数据格式的转换,将串行数据转换为并行数据,或者将并行数据转换为串行数据,以实现主机和外部设备之间的数据传输。
4. 中断管理功能
在某些情况下,外部设备需要及时向主机报告一些事件,如设备完成数据传输、设备出现故障等。I/O接口可以产生中断请求信号,通知主机进行相应的处理。主机在接收到中断请求后,会暂停当前的工作,转去处理外部设备的请求,处理完成后再返回原来的工作继续执行。
(2)程序查询方式、程序中断方式、DMA方式的数据传输过程效率对比?
1. 程序查询方式
CPU不断地查询外部设备的状态,只有当外部设备准备好进行数据传输时,CPU才会进行数据的读写操作。
效率低。因为CPU需要不断地查询设备状态,在设备未准备好的时间里,CPU处于等待状态,不能进行其他有效的工作。而且,每次数据传输都需要CPU的干预,对于大量数据的传输,CPU的负担会很重,导致系统的整体效率低下。
2. 程序中断方式
外部设备在准备好进行数据传输时,会向CPU发出中断请求信号。CPU在接收到中断请求后,会暂停当前的程序,转去执行中断服务程序,完成数据的传输。
与程序查询方式相比,程序中断方式提高了CPU的利用率。因为CPU不需要不断地查询设备状态,在设备准备数据的过程中,CPU可以继续执行其他程序,只有在设备准备好时才会响应中断进行数据传输。但是,每次中断处理都需要进行现场保护和恢复等操作,会消耗一定的CPU时间,对于频繁的小数据量传输比较合适,对于大量数据的连续传输,效率仍然不够高。
3. DMA方式
DMA方式是一种在外部设备和内存之间直接进行数据传输的方式,不需要CPU的干预。DMA控制器负责控制数据的传输,在数据传输过程中,CPU可以继续执行其他程序。
效率最高。它可以实现高速的数据传输,尤其是对于大量数据的传输,如硬盘和内存之间的数据交换。因为DMA控制器可以直接控制数据在内存和外部设备之间的传输,减少了CPU的干预,大大提高了数据传输的速度和系统的整体效率。
(3)程序查询方式、程序中断方式、DMA方式,接口电路的工作步骤?
1. 程序查询方式
接口电路首先接收CPU发出的查询命令,然后检测外部设备的状态,将设备的状态信息(如准备好、忙等)通过状态寄存器反馈给CPU。
CPU不断读取状态信息,当检测到设备准备好进行数据传输时,向接口电路发出读写命令。
接口电路根据CPU的读写命令,将数据从外部设备传输到接口的数据缓冲区,或者将数据从数据缓冲区传输到外部设备,同时完成数据的锁存和缓冲等操作。
2. 程序中断方式
外部设备在准备好进行数据传输时,向接口电路发出就绪信号。
接口电路接收到设备的就绪信号后,通过中断请求触发器产生中断请求信号,并将该信号发送给CPU。
CPU接收到中断请求信号后,如果允许中断,则暂停当前的程序,保存现场信息,并向接口电路发出中断响应信号。
接口电路接收到中断响应信号后,将数据从外部设备传输到接口的数据缓冲区,或者将数据从数据缓冲区传输到外部设备,同时完成数据的锁存和缓冲等操作。在数据传输完成后,接口电路清除中断请求信号。
CPU执行完中断服务程序后,恢复现场信息,继续执行原来的程序。
3. DMA方式
外部设备准备好进行数据传输时,向接口电路发出DMA请求信号。接口电路接收到请求信号后,通过DMA请求触发器产生DMA请求信号,并将该信号发送给DMA控制器。
DMA控制器接收到DMA请求信号后,向CPU发出总线请求信号,请求占用系统总线。CPU在当前总线周期结束后,响应DMA请求,发出总线响应信号,将系统总线的控制权交给DMA控制器。
DMA控制器获得总线控制权后,根据预先设置的参数(如传输数据的起始地址、传输数据的长度等),控制数据在外部设备和内存之间直接进行传输。在数据传输过程中,DMA控制器不断修改地址寄存器和计数器的值,直到数据传输完成。
数据传输完成后,DMA控制器向CPU发出DMA结束信号,释放系统总线的控制权,CPU重新获得总线控制权,继续执行原来的程序。同时,接口电路清除DMA请求信号。
输入输出系统部分,详细说明
四、计算机运算方法
(1)机器码中原码、补码及移码如何表示,它们各自的特点?
-
原码:
-
表示: 最高位为符号位(0正1负),其余位表示数值的绝对值。
-
特点:
-
有+0和-0两种表示。
-
加减运算复杂: 符号位需要单独处理,不能直接参与运算(需判断符号,决定做加还是减)。
-
乘除运算相对简单。
-
-
-
补码:
-
表示:
-
正数:与原码相同。
-
负数:将其对应正数的原码所有位取反(包括符号位),然后加1。
-
-
特点:
-
无+0和-0之分,0的表示唯一(全0)。
-
符号位参与运算: 加减运算统一用加法器实现,符号位产生的进位自然处理。加减运算最简单高效。
-
表示范围不对称(负数多一个)。n位补码范围:
-
-
-
移码:
-
表示: 在真值X上加上一个固定的偏移量(偏置值)K,然后将结果用二进制表示。
-
特点:
-
移码的大小直接反映了真值的大小(无符号整数比较规则即可)。
-
解决了原码、补码中正负阶码比较大小需要特殊处理的问题,便于浮点数运算中对阶(便于比较阶码大小)。
-
-
(2)浮点数的表示范围?
(IEEE 754 标准):
1. 单精度浮点数(32 位)
- 结构:1 位符号位(S),8 位指数位(E),23 位尾数位(M)。
- 指数偏移量:127(即
)。
- 表示范围:
- 最大正数:
- 最小正数:
。
- 负数范围:与正数对称,符号位为 1。
- 最大正数:
2. 双精度浮点数(64 位)
- 结构:1 位符号位(S),11 位指数位(E),52 位尾数位(M)。
- 指数偏移量:1023(即
)。
- 表示范围:
- 最大正数:
- 最小正数:
- 负数范围:与正数对称,符号位为 1。
- 最大正数:
(3)定点数的原码、补码一位乘、除是如何变为加法实现的?
1. 原码一位乘法:
符号位单独处理(异或运算),数值部分按绝对值相乘。每次根据乘数的最低位决定是否加被乘数(低位为 1 则加,为 0 则不加),然后右移一位(乘数和部分积同时右移)。
2. 补码一位乘法(Booth 算法):
利用补码直接运算,符号位参与计算。通过比较相邻两位的差值决定操作:加被乘数的补码或加被乘数的负数补码(即补码取反加 1)。其余情况不加,每次运算后右移一位(算术右移,符号位保持)。
3. 原码一位除法(恢复余数法)
符号位单独处理,数值部分用被除数绝对值减除数绝对值:
若余数>=0,商 1,余数左移一位减除数。
若余数<0,商 0,余数加除数恢复原值,再左移一位减除数。
4. 补码一位除法(加减交替法)
符号位参与运算,根据余数和除数的补码符号决定操作:
若余数与除数同号,商 1,余数左移一位减除数(加负数补码)。
若余数与除数异号,商 0,余数左移一位加除数。
(4)浮点数的加减运算过程?
- 对阶:让两个小数点对齐
- 尾数求和:将两个小数的尾数按定点运算加减规则求和(求差)
- 规格化:增加有效数字位数,提高精度
- 舍入:为提高精度,考虑尾数右移时丢失的数值位
- 溢出判断:判断结果是否溢出
(5)并行进位链的设计逻辑是什么?
并行进位链能够让n位加法器的进位同时产生,是为了提高加法器的运算速度而设计的。包括单重分组跳跃进位和双重分组跳跃进位。组内是并行的,组间是串行的。其基本逻辑是将进位信号的产生和传递分开,通过逻辑电路提前计算出各位的进位信号,而不是像串行进位那样逐位传递进位。这样可以使多个位同时进行加法运算,大大缩短了运算时间。常用的并行进位链有先行进位等方式,通过逻辑门电路来实现进位信号的快速生成和传递。
计算机运算方法部分,详细说明: