概论
冯诺依曼计算机的特点
- 计算机由运算器、控制器、存储器、控制器、输入设备和输出设备五大部件组成
- 指令和数据均由二进制表示
- 指令和数据以同等地位存放在存储器中,按地址访问
- 指令由操作数和地址码组成
- 指令在存储器内按顺序存放
- 机器以运算器为核心
存储器
存储器的层次?为什么需要存储器层次结构?
存储器层次结构:CPU->寄存器->Cache->主存->辅存
cache-主存:解决了主存与CPU速度不匹配问题
主存-辅存:实现了虚拟存储系统,解决了主存容量不够的问题
主存构成有哪些部分组成?
存储体:用于存放数据和指令
地址寄存器(MDR):保存访问地址
数据寄存器(MAR):保存读写数据
控制电路:控制读写操作
RAM和ROM区别?
RAM可读可写,断电数据丢失,当作内存
ROM主要只读,断电数据保持,当作固件存储
SRAM和DRAM的区别
SRAM存储单元是触发器,速度快,价格高,容量小,不需要刷新----cache
DRAM存储单元是电容,速度慢,价格低,容量大,需要刷新----主存
为什么cache不用DRAM?
因为CPU速度很快,需要高速存储器匹配,而SRAM访问速度更快;虽然成本高,但是cache容量较小
cache工作过程
CPU请求地址,查询cache,若命中返回数据;若未命中,访问主存,更新cache
cache映射方式
(1)全相联映射
- 任意主存块可以放到cache任意位置
- 优点:冲突少
- 缺点:比较器多;成本高
(2)直接映射
- 一个主存块只能放到Cache固定位置。
- 优点:硬件简单,速度快
- 缺点:冲突多
(3)组相联映射
- 先分组,再组内任意放置
cache满了怎么办?-----替换算法
随机算法、先进先出、近期最少使用、最近不常使用算法
cache写策略
写命中法:写入时在cache中
- 回写法:只修改cache内容而不立即写回主存,当被换出时才写回
- 全写法:将数据同时写入cache和主存,一般用在写缓冲
写不命中:写入时不在cache中
- 写分配法:调入cache,在cache中修改,再用写回法
- 非写分配法:直接写入主存
指令
一条指令包含哪些字段?
操作码+地址码+寻址方式+立即数等
CPU执行指令的过程?
- 取指:CPU根据PC地址从存储器取出指令
- 指令译码:控制器分析操作码
- 取操作数:根据寻址方式找到操作数
- 执行
- 写回
PC和IR作用区别?
PC(程序计数器)保存下一条要执行指令的地址
IR(指令寄存器)保存正在执行的指令
指令格式有哪些?地址码数量对指令有什么影响?
- 三地址指令
- 二地址指令
- 一地址指令
- 零地址指令
什么是寻址方式?
寻找操作数的方法
CISC(复杂指令集计算机)和RISC(简单指令集计算机)区别?
CISC指令数量多、指令长度不固定、寻址方式多、执行周期较长、硬件复杂
RISC指令数量少、指令长度固定、寻址方式少、执行周期较短、硬件简单
为什么RISC适合流水线?
指令格式简单;指令长度固定;译码容易;执行时间接近。
什么是流水线?
让多条指令的不同阶段同时执行。
流水线有哪些冒险?
(1)结构相关
多条指令在同一时刻竞争同一资源
采用独立指令和数据存储器 避免访问冲突,增加加法部件
(2)控制冲突
遇到执行、转移、调用、返回导致PC中断
尽早判别转移是否发生,预计成功和不成功两个控制流方向上的目标指令
(3)数据相关
下条指令用到当前指令计算结果
后推法、定向技术(旁路技术)
如何解决数据冒险?
总线
什么是总线?为什么需要总线?
总线是一组可以为多个部件分时共享的信息传输线,用于连接计算机系统中的各个功能部件,实现部件之间的信息交换
原因:减少部件之间的连线数量、提升系统扩展性,便于连接新外设
总线有哪些分类?
(1)片内总线:连接CPU内部各部件
(2)系统总线:连接CPU、主存、I/O接口
- 控制总线
- 数据总线
- 地址总线(单向)
(3)I/O总线:连接外部设备和I/O控制器
三类系统总线作用?
控制总线:控制操作过程
数据总线:传输数据
地址总线(单向):指定数据存储位置
地址总线为什么单向?
CPU是系统中主要地址产生者,存储器和外设不会主动向CPU提供访问地址
CPU读写内存过程?
读过程:
- CPU 将目标地址放入地址寄存器;
- 地址通过地址总线发送给主存;
- CPU 发出读控制信号;
- 主存根据地址找到数据;
- 数据通过数据总线返回 CPU。
写过程:
- CPU 将地址送到地址总线;
- CPU 将数据送到数据总线;
- CPU 发出写控制信号
- 主存完成写入
什么是总线仲裁?
多个设备同时请求使用总线时,由仲裁机构决定哪个设备获得总线控制权。
- 集中式仲裁:链式查询、计数器定时查询、独立请求方式
- 分布式仲裁
为什么需要总线仲裁?
总线是一种共享资源,多个设备可能同时请求,必须要保证同一时刻只能有一个主设备控制总线,提高系统的可靠性。
同步总线和异步总线区别?

总线带宽如何计算?
总线带宽=总线宽度×工作频率
输入输出系统
为什么需要I/O接口?
作用:CPU与外部设备(I/O设备)之间的信息交换、外部设备与主存之间的信息交换
I/O指计算机与外部设备之间的信息交换过程。
I/O接口主要作用:
- 实现速度匹配;
- 实现数据格式转换;
- 提供设备控制和状态管理;
- 实现CPU与外设通信。
I/O接口有哪些寄存器?
(1)数据寄存器
作用:保存CPU和外设之间传输的数据。
(2)状态寄存器
保存设备状态:CPU通过读取状态寄存器判断设备情况。
(3)控制寄存器
CPU向设备发送控制命令:
I/O两种编址方式区别?
I/O控制方式
- 程序查询方式
- 程序中断方式
- DMA方式
- 通道方式
程序查询方式有什么缺点?
CPU按独占式查询策略或定时轮询策略读取I/O接口的状态寄存器DSR,以检查I/O设备是否就绪,这期间CPU完全或部分被占用。
CPU长期等待,效率低。
中断方式如何提高效率?
I/O设备在完成自身操作后,主动向CPU发出中断请求。CPU在等待期间可以执行其他任务,收到中断请求后再处理数据传送,提高了CPU利用率。
中断响应过程?
- 外设发出中断请求;
- CPU判断是否响应;
- 保存当前程序现场;
- 转入中断服务程序;
- 执行处理;
- 恢复现场,继续原程序。
DMA是什么?
在DMA控制器的管理下,数据直接在I/O设备与主存之间成批传送,传送过程完全独立于CPU,仅在开始和结束时需要CPU干预。
DMA为什么比中断效率高?
中断方式:每传输一次数据,需要CPU参与。
DMA:CPU只负责:初始化DMA、设置地址和长度。传输过程由DMA完成。
DMA工作过程?
- CPU初始化DMA控制器;
- 外设准备数据;
- DMA请求总线;
- 获得总线控制权;
- DMA完成数据传输;
- DMA向CPU发送中断通知。
中断和DMA的区别
1. 核心机制对比
中断方式:当I/O设备完成操作后,主动向CPU发出中断请求信号。CPU暂停当前正在执行的程序,保存现场后转去执行相应的中断服务程序,处理完数据传送后再恢复原程序继续执行。
DMA方式 :在DMA控制器的管理下,数据直接在I/O设备与主存储器之间进行批量传输。整个传输过程由DMA控制器独立完成,CPU仅在传输开始前进行初始化设置和在传输结束后接收中断通知。
2. CPU参与程度
- 中断方式:每次数据传输都需要CPU的介入。CPU需要执行中断响应、现场保存、中断服务程序执行和现场恢复等一系列操作。
- DMA方式:数据传输过程完全由DMA控制器独立完成,CPU只在传输开始和结束时参与,传输期间可以继续执行其他任务。
3. 适用场景
- 中断方式:适用于数据量较小、传输频率不高的场合,如键盘输入、鼠标操作等实时性要求较高的交互设备。
- DMA方式:适用于大数据量、高速传输的场景,如磁盘读写、网络数据包传输、图形显示缓冲区更新等。


