计算机组成原理归纳
1. 概述
2. 数的表示与计算
3. 存储器
4. 指令系统
5. 处理器
6. 总线
7. IO系统
相对于主机的输入输出
输入:信息从外设传送到主机
输出:信息从主机传送到外设

通过设备控制器来控制I/O设备的具体动作,通过I/O接口与主机(总线)相连
共享设备必须可寻址,可随机访问

键盘
查出按哪个键
翻译出主机中的编码
将编码传送到主机
鼠标
分类


性能指标
性能指标:以对角线长度表示,常用有12~29英寸
分辨率:所能表示的像素个数,屏幕上的每一个光点就是一个像素,以宽、高的像素的乘积表示
灰度级:灰度级是指黑白显示器中所显示的像素电脑的亮暗差别;
在彩色显示器中表现为颜色不同,灰度级越多,图像层次越逼真
n位可以表示 2 n 2^n 2n 种不同的亮度或颜色
刷新:光点只能保存极短时间,为此必须在光点消失之前再重新扫描显示一遍
刷新频率:单位时间内扫描整个屏幕内容的次数
显示存储器(VRAM):为了不断提高刷新图像的信号,必须把一帧图像信息存储在刷新存储器中。
V R A M 容 量 = 分 辨 率 × 灰 度 级 位 数 VRAM容量=分辨率\times灰度级位数 VRAM容量=分辨率×灰度级位数
V R A M 带 宽 = 分 辨 率 × 灰 度 级 位 数 × 帧 频 VRAM带宽=分辨率\times灰度级位数\times 帧频 VRAM带宽=分辨率×灰度级位数×帧频

按工作方式
针式打印机
原理:在联机状态下,主机发出打印命令,经接口、检测和控制电路,间歇驱动纵向送纸横向移动,同时驱动打印机间歇冲击色带,在纸上打印出所需内容
特点:
针式打印机擅长 多层复写打印 ,实现各种票据或蜡纸等打印。
工作原理简单,造价低廉,耗材便宜
打印分辨率和打印速度不够高
喷墨式打印机
原理:带电的喷墨雾点经过电极偏转后,直接在纸上形成所需字形。彩色喷墨打印机基于三基色原理,按一定比例同时喷射3中颜色的墨滴
特点:
打印噪声少,可实现高质量彩色打印,通常打印速度比针式速度快
防水性差,高质量打印需要专用打印纸
激光打印机
原理:计算机输出的二进制信息,经过调制后的激光束扫描,在感光鼓上形成潜像,再经过显影、转印和定影,便在纸上得到所需的字符或图像
特点:
打印质量高、速度快、噪声小、处理能力强
耗材多,价格贵,不能复写打印多份,且对纸张的要求高。
一次1bit的读写,需要串/并行转化

优点
缺点
存取速度慢
机械结构复杂
对工作环境要求高
串行机械设备
从磁道读写数据时,每次只能读写1bit
不能在同一时刻既读又写
不能在同一时刻读两组或写两组数据
存储区域

硬盘存储器
容量:可存放的字节数

记录密度:

平均存取时间
平
均
存
取
时
间
=
寻
道
时
间
+
延
迟
时
间
+
传
输
时
间
平
均
存
取
时
间
=
磁
头
移
动
到
目
标
磁
道
+
磁
头
定
位
到
目
标
扇
区
+
数
据
传
输
平均存取时间=寻道时间+延迟时间+传输时间\\ 平均存取时间=磁头移动到目标磁道+磁头定位到目标扇区+数据传输
平均存取时间=寻道时间+延迟时间+传输时间平均存取时间=磁头移动到目标磁道+磁头定位到目标扇区+数据传输
数据传输率
单位时间内向主机传送的字节数

RAID(Redundant Array of Inexpensive Disks,廉价冗余磁盘阵列),将多个独立的物理磁盘组成一个独立的逻辑盘,数据在多个物理硬盘上分割交叉存储,并行访问
RAID0:无冗余和无校验的磁盘阵列
RAID1:镜像磁盘阵列
RAID2:采用纠错的海明码的磁盘阵列
RAID3:位交叉奇偶校验的磁盘阵列
RAID4:块交叉奇偶校验的磁盘阵列
RAID5:无独立校验的奇偶校验磁盘阵列
支持随机存取

利用闪存作为硬盘记录数据
I/O控制器、设备控制器,实现CPU对IO设备控制
接收和识别CPU发出的命令
错误或状态检测:通过状态寄存器反馈设备的各种错误、状态信息,供CPU查用
数据缓冲:暂存数据
地址译码与设备选择:I/O接口对CPU送来的地址进行译码以产生设备选择信息
设备选择信息
一个设备对应一组端口
地址总线,分两次传输:指明读写的端口,指明要操作的设备编号
与主机和设备通信:实现主机-I/O接口-I/O设备间的通信
控制和定时:接收从控制总线发来的控制信息,时钟信息
数据格式转换:串行-并行,并行-串行的数据格式转换
I/O端口:I/O控制器中的各种寄存器称为I/O端口

数据线:读写数据、状态字、控制字、中断类型号
地址线:传送I/O端口
控制线:读/写IO端口的信号、中断请求的信号
状态/控制寄存器:在使用时间上是错开的,因此有的I/O接口中将二者合并
控制不同类型的设备

接收识别CPU的各种命令:CPU通过控制线发出I/O指令(读/写)
对设备发出命令
实现控制器与设备通信
实现CPU与控制器之间的通信
I/O端口为接口中的寄存器

| 统一编址 | 独立编址 | |
|---|---|---|
| 定义 | 把I/O端口当做存储器的单元进行地址分配,用统一的访存指令就可以访问I/O端口——存储器映射方式 | I/O端口地址与存储器地址无关,独立编址CPU需要设置 专门的输入/输出指令 访问端口——I/O映射方式 |
| 区分内存和I/O设备 | 靠不同的地址码 - I/O地址要求固定在地址的某部分,不可随机存放 | 靠不同的指令区分内存和I/O设备 |
| 优点 | 不需要专门的输入/输出指令,所有访存指令都可直接访问端口,程序设计灵活性高 端口有较大的编址空间 读写控制逻辑电路简单 | 使用专用的I/O指令,程序编制清晰 I/O端口地址位数少,地址译码速度快 I/O端口的地址不占用主存地址 |
| 缺点 | 端口占用了内存地址空间,使内存地址空间变小 外设寻址时间长(地址位数多,地址译码速度慢) | I/O指令类型少,一般只能对端口进行传送操作,程序设计灵活性差 需要CPU提供存储器地址,增加了IO设备读/写两组控制信号,增加了控制逻辑实现的复杂性 |

CPU不断查询I/O控制器中的
状态寄存器,在等待IO完成的过程中CPU需要不断轮询检查

优点:实现简单
缺点:CPU和IO设备只能串行工作,CPU需要一直轮询检查,长期处于 忙等 状态,CPU利用率低
频率:CPU的时钟频率为50MHz,即每秒 50 × 1 0 6 50\times 10^6 50×106 个时钟周期
鼠标
每秒查询鼠标占用的时钟周期数为 30 × 100 = 3000 30\times 100=3000 30×100=3000
查询鼠标所花费的时间比率= 3000 50 × 1 0 6 = 0.006 % \frac{3000}{50\times 10^6}=0.006\% 50×1063000=0.006%
所以对鼠标的查询基本不影响CPU性能
硬盘
每秒需要查询 2 × 2 20 B 4 B = 2 19 \frac{2\times2^{20}B}{4B}=2^{19} 4B2×220B=219 次
每秒查询硬盘占用的时钟周期数 2 19 × 100 = 5.24 × 1 0 7 2^{19}\times100=5.24\times 10^{7} 219×100=5.24×107
查询硬盘所花费的时间比率= 5.24 × 1 0 7 50 × 1 0 6 = 105 % \frac{5.24\times10^7}{50\times 10^6}=105\% 50×1065.24×107=105%
CPU将全部时间都用于对硬盘的查询也不能满足磁盘传输的要求
外设->IO接口中数据寄存器->数据总线->CPU寄存器->主存
传输单位为字节
中断源向CPU发送中断请求
中断请求分类:内中断和外中断


在每个指令周期末尾检查中断
响应中断的条件
中断判优

优先级设置

由硬件实现,一系列操作,不是指令
- 保存当前PC的值
- 将PC的值修改位指向中断服务程序的第一条指令
操作
关中断:实现原子操作
保存断点:
保存当前程序的断点PSW
存入内核堆栈或指定内存单元
引出中断服务程序:实质为将PC值修改为中断服务程序的入口地址
中断向量
实现
硬件向量法


软件查询法
保护现场
保存PSW,中断屏蔽寄存器和通用寄存器中的内容
堆栈
中断服务
恢复现场
通过出栈或取数指令将信息写回寄存器中
中断服务程序的最后一条指令——中断返回指令
指令中断过程不响应新的中断请求

中断优先级次序决定CPU响应次序
中断屏蔽字决定是否可打断当前进程

在中断服务程序中提前设置开中断指令
优先级高的中断源有权中断优先级低的中断源
一般用 “1” 表示屏蔽,“0” 表示正常申请
每个中断源对应一个屏蔽字(在处理该中断源的终端服务程序时,屏蔽寄存器中的内容为该中断源对应的屏蔽字)
屏蔽字中“1”越多,优先级越高。每个屏蔽字中至少有一个 “1” (至少要屏蔽自身的中断)
设某主机有4个中断源A、B、C、D,其硬件排队优先次序为 A>B>C>D,现要求将中断处理次序改为 D>A>C>B
(1)写出每个中断源对应的屏蔽字

(2)按下图所示的时间轴给出四个中断源的请求时刻,画出CPU执行程序的轨迹。


CPU与外设并行工作,数据传输与主程序串行工作

等待IO设备数据同时,CPU可先去执行其他程序
IO完成后,IO控制器向CPU发出中断请求
CPU响应中断,从IO接口数据寄存器取出数据
| 子程序调用 | 中断 | |
|---|---|---|
| 发生时间 | 已知,固定 | 随机 |
| 产生 | 程序设计者实现安排 | 硬件电路产生 |
| 与主程序关系 | 主从关系 子程序完全为主程序服务 | 无关 |
| 硬件参与 | 软件处理过程 | 软/硬结合的系统 |
| 嵌套级 | 受限于堆栈大小 | 由中断优先级决定 |
CPU需要花费大量时间处理中断服务程序,CPU的利用率下降

一个数据块或多个连续的数据块

测试IO设备状态
向DMA控制器的有关寄存器置初值(指明主存,磁盘位置等参数)
设置传送方向,启动设备
数据量
数据在主存中的位置
数据在外设中的位置
发出上述指令后,继续执行原来程序
IO设备就绪后(将一块数据写入数据缓冲寄存器),向DMA控制器发出MDA请求
DMA控制器向CPU发出总线请求


DMA请求触发器:每当I/O设备准备好数据后给一个控制信号,使DMA请求触发器置位
控制/状态逻辑:由控制和时序电路及状态标记组成,用于指定传送方向,修改传送参数,并对DMA请求信号和CPU响应信号进行协调和同步
数据缓冲寄存器:用于暂存每次传送的数据
DC(数据计数器):剩余读/写字节数
CR(命令状态寄存器):CPU发来的IO命令和设备状态
主存地址寄存器:存放要交换数据的主存地址
传送长度计数器:用于记录传送数据的长度,计数器溢出时,数据即传送完毕,自动发中断请求信号
中断机构:当一个数据块传送完毕后触发中断机构,向CPU提出中断请求
当传送长度计数器 达到阈值后,发出溢出信号,中断机构向CPU发出中断请求,表示一个数据块传输完成
DMA数据传送期间,CPU无法使用总线,DMA优先使用

IO与主机并行工作,程序和传送并行工作
每个机器周期结束后,CPU可响应DMA请求
缺点
采用三总线结构,主存与DMA接口间有一直接数据通路,存在CPU与DMA的访存冲突

DMA传送方式解决访存仲裁问题

CPU处于不工作状态或保持状态
未能充分发挥CPU对主存的利用率
控制简单

不需要总线使用权的申请、建立和归还过程
硬件逻辑更为复杂

DMA此时有三种可能
若CPU不访存,则DMA直接访存
若CPU正访存,结束后CPU让出总线
CPU与DMA同时请求,IO访存优先
数据缓存寄存器中的数据若不及时传送会造成数据丢失
| 中断请求(CPU为核心) | DMA请求(存储器为核心) | |
|---|---|---|
| 数据传送 | 程序控制 程序的切换->保存和恢复现场 | 硬件控制 CPU只需进行预处理和后处理 |
| 中断请求 | 传送数据 | 后处理 |
| 响应 | 指令执行周期后响应中断 | 每个机器周期结束后均可,总线空闲时即可响应DMA请求 |
| 场景 | CPU控制,低速设备 | DMA控制器控制,高速设备 |
| 优先级 | 优先级低于DMA | 优先级高于中断 |
| 异常处理 | 能处理异常事件 | 仅传送数据 |

通道是一种硬件技术,CPU只在启动通道时参与

CPU向通道发出I/O指令,指明通道程序在内存中的位置,并指明要操作的是哪个I/O设备,之后CPU就切换到其他进程执行了
通道执行内存中的通道程序指明了要读入/写出多少数据,读写数据应放在内存的什么位置等信息
通道程序:通道指令集合
通道执行完规定任务后,向CPU发出中断信号,之后CPU对中断进行处理
优点:CPU,通道,IO设备并行工作,CPU利用率高
缺点:实现复杂,需要专门通道硬件支持
每个DMA控制器对应一台设备与内存传送数据
每个通道对应多个设备与内存进行数据交换
