From 9e010b9306c4208bcd9837690a4ef3f424af8c2c Mon Sep 17 00:00:00 2001 From: Zhou Date: Sun, 30 Aug 2020 19:57:43 +0800 Subject: [PATCH] finish computer organization --- 计算机组成原理/img/输入输出系统/DMA.PNG | Bin 0 -> 10422 bytes 计算机组成原理/img/输入输出系统/IO处理机.png | Bin 0 -> 71059 bytes .../img/输入输出系统/接口模块与dma.png | Bin 0 -> 58971 bytes 计算机组成原理/img/输入输出系统/早期阶段.png | Bin 0 -> 22505 bytes 计算机组成原理/img/输入输出系统/通道.png | Bin 0 -> 19388 bytes 计算机组成原理/中央处理器.md | 465 +++++++++++++++++ 计算机组成原理/存储器层次结构.md | 16 + 计算机组成原理/总线.md | 275 ++++++++++ 计算机组成原理/指令系统.md | 207 ++++++++ 计算机组成原理/输入输出系统.md | 492 ++++++++++++++++++ 10 files changed, 1455 insertions(+) create mode 100644 计算机组成原理/img/输入输出系统/DMA.PNG create mode 100644 计算机组成原理/img/输入输出系统/IO处理机.png create mode 100644 计算机组成原理/img/输入输出系统/接口模块与dma.png create mode 100644 计算机组成原理/img/输入输出系统/早期阶段.png create mode 100644 计算机组成原理/img/输入输出系统/通道.png create mode 100644 计算机组成原理/中央处理器.md create mode 100644 计算机组成原理/总线.md create mode 100644 计算机组成原理/指令系统.md create mode 100644 计算机组成原理/输入输出系统.md diff --git a/计算机组成原理/img/输入输出系统/DMA.PNG b/计算机组成原理/img/输入输出系统/DMA.PNG new file mode 100644 index 0000000000000000000000000000000000000000..b4073803aea225e884de7742584ae5c48eff5265 GIT binary patch literal 10422 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 HcRlxCgyb)! literal 0 HcmV?d00001 diff --git a/计算机组成原理/img/输入输出系统/IO处理机.png b/计算机组成原理/img/输入输出系统/IO处理机.png new file mode 100644 index 0000000000000000000000000000000000000000..aed927616dde3846ed13813b4d648e6ee1f274c7 GIT binary patch literal 71059 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 cMkH>n?z7H5S8L^!~&RE`Vq}LX*oJd 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%0AUfk*W@9hgzZ`noF~ce8=-up=SsC$1p_~+#{6eY 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 ZXP4e{>TJE1&^iVn@O1TaS?83{1OO`tcMJdk literal 0 HcmV?d00001 diff --git a/计算机组成原理/img/输入输出系统/接口模块与dma.png b/计算机组成原理/img/输入输出系统/接口模块与dma.png new file mode 100644 index 0000000000000000000000000000000000000000..63d905d01a209ea88be8a112d8cc7f8ffafcbd31 GIT binary patch literal 58971 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 AYybcN literal 0 HcmV?d00001 diff --git a/计算机组成原理/img/输入输出系统/早期阶段.png b/计算机组成原理/img/输入输出系统/早期阶段.png new file mode 100644 index 0000000000000000000000000000000000000000..76998fec4441ec69f2b24e0f96992edbdc7d7b7d GIT binary patch literal 22505 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 z

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�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 BoK64$ literal 0 HcmV?d00001 diff --git a/计算机组成原理/中央处理器.md b/计算机组成原理/中央处理器.md new file mode 100644 index 0000000..28e042e --- /dev/null +++ b/计算机组成原理/中央处理器.md @@ -0,0 +1,465 @@ +# 中央处理器 + +## 功能和结构 + +### 功能 + +* CPU=运算器+控制器 +* 运算器 + * 对数据进行加工 +* 控制器 + * 协调控制各部件指令序列 + * 取指令 + * 分析指令 + * 执行指令 + * 控制程序的输入 + * 控制运算结果的输出 + * 对总线的管理 + * 中断处理 +* 总结 + * 指令控制 + * 操作控制 + * 时间控制 + * 数据加工 + * 中断处理 + +### 结构 + +* 控制器 + * 程序计数器PC + * 指令寄存器IR + * 指令译码器 + * 存储器地址寄存器 + * 存储器数据寄存器 + * 时序系统 + * 微操作信号发生器 +* 运算器 + * 算术逻辑单元ALU + * 暂存寄存器 + * 累加寄存器 + * 通用寄存器组 + * 程序状态字寄存器 + * 移位器 + * 计数器:控制乘除运算的操作步骤 +* 中断系统 +* 寄存器 + * 小快贵 + +## 主要寄存器 + +### 运算器中的寄存器 + +* 暂存寄存器 + * 暂存从主存读来的数据 + * 对程序员透明 +* 累加寄存器(ACC) + * 暂时存放ALU的运算结果 +* 通用寄存器组 +* 状态条件寄存器 + * 存放算术指令和逻辑指令运行或测试的结果,使用一位触发器 + * 还可以保存中断和系统工作状态信息 + +### 控制器中的寄存器 + +* 程序计数器PC +* 指令寄存器IR +* 存储器数据寄存器MDR + * 作为CPU,内存和外部设备之间信息传送的中转站 + * 补偿CPU,内存和外部设备之间再操作速度上的差别 + * 在单累加器的运算器中,可兼做操作数寄存器 +* 存储器地址寄存器MAR + +## 指令执行过程 + +### 指令周期 + +* 指令周期包含若干**机器周期**,为执行一条指令所花的时间 +* 不同指令的指令周期可能不同 +* 一个机器周期包括若干个**时钟周期** +* 不同的机器周期时间可能不同 +* 指令周期=取指周期+间址周期+执行周期+中断周期 + +### 指令执行方案 + +* 单指令周期 + * 所有指令采用相同的执行时间 + * 运行效率低 +* 多指令周期 + * 不同指令选用不同步骤,指令周期可以不同 +* 流水线方案 + +### 指令周期的数据流 + +#### 取指周期 + +1. (PC)->MAR//发送指令地址至MAR +2. 1->R//发出读命令 +3. M(MAR)->MDR//取出指令地址 +4. (MDR)->IR +5. OP(IR)->CU +6. PC+1->PC + +#### 间址周期 + +1. AD(IR)->MAR +2. 1->R +3. M(MAR)->MDR + +#### 执行周期 + +* ,没有固定格式 + +#### 中断周期 + + + +## 数据通路功能和基本结构 + +### 数据通路的功能 + +* 实现CPU内部运算器和寄存器,寄存器间的数据交换 + +### 数据通路基本结构 + +* CPU内部总线方式 + * 使用单总线/双总线/多总线连接所有寄存器 + * 使用双总线或多总线时,数据传递可以同时进行 + * 结构简单 + * 数据传输较多时可能会出现冲突,性能较低 +* 专用数据通路方式 + * 根据指令执行过程的数据流动安排线路 + * 避免使用共享的总线 + * 性能较高 + * 硬件量较大 + +### 常见数据通路数据传输 + +#### 寄存器之间 + +1. R1->Bus //R1out有效 +2. Bus->R2 //R2in有效 + +#### 主存与CPU之间 + +1. R1->Bus->MAR //R1out,MARin有效 +2. 1->R +3. M(MAR)->MAR //MDRin有效 +4. MDR->Bus->R2 //MDRou,R2in有效 + +#### 执行算术运算或逻辑运算 + +1. Ad(IR)->Bus->MAR +2. 1->R +3. M(MAR)->MDR +4. MDR->Bus->R1 +5. (ACC)OP(R1)->R2(暂存器) +6. R2->ACC + +## 控制器功能和工作原理 + +### 硬布线控制器 + + + +#### 微操作命令示例 + +##### 执行周期 + +###### 加法指令 + +* 前提:一个操作数在累加器,一个在主存A单元,结果存入累加器 +* 步骤 + 1. Ad(IR)->MAR + 2. 1->R + 3. M(MAR)->MDR + 4. (ACC)+(MDR)->ACC + +###### 存数指令 + +* 前提:将上述累加器结果存入地址单元A +* 步骤 + 1. Ad(IR)->MAR + 2. 1->W + 3. (ACC)->MDR + 4. (MDR)->M(MAR) + +##### 中断周期 + +###### 断点存储在主存 + +* 前提:假设断点保存至主存的0单元,采用硬件向量寻找中断地址 +* 步骤 + 1. 0->MAR + 2. 1->W + 3. (PC)->MDR + 4. (MDR)->M(MAR) + 5. 向量地址->PC + 6. 0->EINT //关中断 + +###### 断点存储在堆栈 + +* 前提:假设断点保存至主存的0单元,采用硬件向量寻找中断地址 +* 步骤 + 1. (SP)-1->SP + 2. (SP)->MAR + 3. 1->W + 4. (PC)->MDR + 5. (MDR)->M(MAR) + 6. 向量地址->PC + 7. 0->EINT //关中断 + +#### 控制单元的输入 + +1. 操作码 + * 来源:指令寄存器 + * 功能:将操作码送入控制单元CU进行译码 +2. 标志 + * 来源:上条指令的结果产生的信号(如进位信号) + * 功能:参与本条指令的执行 +3. 时钟 + * 来源:时钟脉冲 + * 功能:控制操作时间,操作时序,执行方式 +4. 控制信号 + * 来源:控制总线 + * 功能:根据不同信号执行不同功能(如中断请求,DMA请求) + +#### 控制单元的输出 + +1. CPU的控制信号 + * 功能:控制寄存器间数据的传输和ALU的不同操作 +2. 送至系统总线的控制信号 + * 功能:命令主存读写、中断响应等 + +#### CPU控制方式 + +* 同步控制方式 + * 特点 + * 任何微操作或指令的执行都由事先确定且有统一基准时标的时序信号控制 + * 以最长的微操作序列和最繁琐的微操作为标准,采用完全统一、具有相同时间间隔和相同数目的节拍作为机器周期(**定长方式**的同步控制) + * 每个机器周期节拍数可以不同(**不定长方式**的同步控制) + * 大部分指令采用同样节拍的机器周期内完成,少部分复杂指令在完成公共节拍后,转由局部控制器完成剩余节拍,完成后再转回重要控制器(**中央控制和局部控制相结合**的同步控制) + * 优点 + * 电路简单 + * 缺点 + * 运行速度慢 +* 异步控制方式 + * 特点 + * 各部件工作速度不一致 + * 采用应答的方式进行联络 + * 优点 + * 运行速度快 + * 缺点 + * 电路复杂 + * 用途 + * 主机和I/O设备间的传输控制 +* 联合控制方式 + * 特点 + * 同步和异步方式的折中 + * 大部分微操作使用同步控制 + * 少部分使用异步控制 + +### 微程序控制器 + +#### 名词概念 + +* 微操作 + * 计算机中最基本的不可分解的操作 + * 构成机器指令的最小单位 +* 微命令 + * 控制部件向执行部件发出的控制命令 + * 控制序列的最小单位 + * 与微操作一一对应 + * 可分为**互斥微命令**和**相容微命令** +* 微指令 + * 若干微命令的集合 + * 存放微指令控制存储器称为微地址 + * 基本构成 + * 操作控制字段(操作码字段):产生各种操作控制信号 + * 顺序控制字段(微地址码字段):控制产生下一条要执行的微指令地址 +* 微周期 + * 读取一条微指令并执行响应微操作所需的时间 +* 主存储器 + * 在CPU外部,用RAM实现,存放程序和数据 +* 控制存储器 + * 存放微程序,在CPU内部,用ROM实现 + +#### 组成 + +* 控制存储器 +* 微指令寄存器 +* 微地址形成部件 +* 微地址寄存器 + +#### 步骤 + +1. 机器开始运行时将**取指微程序**入口地址送入CMAR,并从CM中读出相应微指令送人CMDR,使用**取指微程序**将机器指令存入指令寄存器中 +2. 将机器指令的操作码字段使用微地址形成部件产生该指令所对应的微程序的入口地址,并送人CMAR +3. 从CM中逐条取出对应的微指令并执行 +4. 执行完一个机器指令的微程序后,继续第一步 + +#### 微指令编码方式 + +##### 直接编码 + +* 每个字段代表一个微命令 +* n个微命令至少需要n位操作字段 +* 优点 + * 简单、直观、执行快 + * 并行性好 +* 缺点 + * 指令字过长 + +##### 字段直接编码 + +* 将互斥性微命令分在同一字段内,相容性微命令分在不同段内 +* 每个小段的信息位不能过多,防止译码线路过于复杂,译码时间长 +* 每个小端留出一个状态表示不发出任何微命令 + +##### 字段间接编码 + +* 某个字段的微命令由另一个字段的微命令来解释 +* 缩短的指令字长 +* 削弱的并行能力 + +#### 微指令地址的形成 + +* 直接由微指令的下地址字段给出(断定方式) +* 后续微指令的地址根据机器指令操作码形成 +* 增量计数法:微指令地址连续,和PC一样自增找到下一只了地址 +* 分支转移:根据标志位决定下一地址 + * 格式:操作控制字段+转移条件+转移地址 +* 由硬件产生微指令地址 + +#### 微指令格式 + +| 项目 | 水平型微指令 | 垂直型微指令 | +| ---------------------- | -------------------------- | -------------------------- | +| 并行性 | 高 | 差 | +| 执行指令所需的微指令数 | 少 | 多 | +| 与机器指令的相似度 | 高 | 低 | +| 总结 | 微指令结构长,微程序结构短 | 微指令结构短,微程序结构长 | + +### 硬布线和微程序控制器对比 + +#### 硬布线 + +* 优点 + * 速度快 +* 缺点 + * 设计完成后难以修改 + +#### 微程序 + +* 优点 + * 规整性 + * 灵活性 + * 可维护性 +* 缺点 + * 速度慢 + +#### 对比 + +| | 硬布线控制器 | 微程序控制器 | +| -------- | -------------------------------- | -------------------------------------------- | +| 工作原理 | 微操作控制信号由组合逻辑电路产生 | 微操作控制信号以微程序的形式存放于控制存储器 | +| 执行速度 | 快 | 慢 | +| 规整性 | 不规整 | 较规整 | +| 应用场景 | RISC | CISC | +| 易扩充性 | 差 | 好 | + + + +## 指令流水线 + +### 分类 + +#### 按使用级别 + +* 部件功能级 + * 将复杂的算术逻辑运算组成流水线操作 + * 例:将浮点数加法分解成求阶差、对阶、尾数相加和结果规则化四个子过程 +* 处理机流水线 + * 将一条指令的解释过程制成流水线 + * 例:将指令分成取指、译码、执行、访存、写回四个部分 +* 处理机间流水线 + * 每个处理机完成一个专门任务,结果交予下一个处理机 + * 例:Map Reduce + +#### 按完成的功能 + +* 单功能流水线 + * 只实现固定功能 +* 多功能流水线 + * 将各流水线部件进行不同组合完成不同功能 + +#### 按连接方式 + +* 静态流水线 + * 在同一时间内各段执行同一功能的子过程 +* 动态流水线 + * 在同一时间内,某一功能的部分流水线段可同时作为其他功能的流水线段 + +#### 按功能段间是否有反馈 + +* 线性流水线 + * 流水线部件不存在回路 +* 非线性流水线 + * 存在回路 + * 适合递归运算 + +### 影响流水线性能的因素 + +* 数据冲突(数据冒险) + * 出现读写冲突 + * 解决方案 + * 阻塞冲突操作 + * 硬件阻塞(stall) + * 软件阻塞(使用nop指令) + * 设置专用通路:直接将前一指令的计算结果直接从ALU送入数据输入寄存器中 + * 编译优化 +* 控制冲突(控制冒险) + * 出现转移指令 + * 解决方案 + * 分支预测 + * 静态分支预测:只预测一种结果 + * 动态分支预测:根据指令执行的历史情况动态调整预测结果 + * 同时预取两个控制流的目标指令 + * 加快和提前形成条件码 + * 提高转移方向的预测率 + +#### 流水线性能指标 + +* 吞吐率:单位时间完成的任务数量 + $$ + 设任务数为n,流水线段数为k,每段花费t时间\\ + 吞吐率TP=\frac{n}{(k+n-1)t}\\ + 理想情况下,最大吞吐率TP_{max}=\lim_{n \to \infty}TP=\frac{1}{t} + $$ + + +* 加速比:不使用流水线的执行时间与使用流水线后的执行时间比 + $$ + T_0为不使用流水线的时间,T_k为使用流水线的时间\\ + 加速比S=\frac{k*n*t}{(k+n-1)t}=\frac{k*n}{k+n-1}\\ + 最大加速比S_{max}=\lim_{n \to \infty}S=k + $$ + +* 流水线效率 + $$ + 效率E=\frac{n个任务占用的时空图有效面积}{n个任务占用的时空图总面积} + $$ + +### 超标量流水线 + +#### 超标量流水线技术 + +* 增加多个部件,并行执行多条指令 + +#### 超流水线技术 + +* 划分更细小的流水线段 + +#### 超长指令字 + +* 将多条能并行的指令组合形成一个超长指令字 +* 需要多个处理部件 \ No newline at end of file diff --git a/计算机组成原理/存储器层次结构.md b/计算机组成原理/存储器层次结构.md index 6968d8d..7c1c7d9 100644 --- a/计算机组成原理/存储器层次结构.md +++ b/计算机组成原理/存储器层次结构.md @@ -470,6 +470,22 @@ * 镜像备份 +#### RAID 2 + +* 纠错的海明校验码 + +#### RAID 3 + +* 位交叉奇偶校验 + +#### RAID 4 + +* 块交叉奇偶校验 + +#### RAID 5 + +* 无独立校验的奇偶校验 + ### 光盘存储器 * 使用激光存储(光存储技术) diff --git a/计算机组成原理/总线.md b/计算机组成原理/总线.md new file mode 100644 index 0000000..7e88550 --- /dev/null +++ b/计算机组成原理/总线.md @@ -0,0 +1,275 @@ +# 总线 + +## 概述 + +* 总线是连接多个部件的信息传输线,是各部件共享的传输介质 +* 特点 + * 分时 + * 共享 +* 总线传输周期:CPU通过总线对外设进行一次访问所需的时间 +* 总线宽度:可同时传输的二进制代码位数 +* 总线特性 + * 机械特性:尺寸,形状 + * 电气特性:传输方向,有效的电平范围 + * 功能特性:每根传输线的具体功能(如传送地址、传送数据等) + * 时间特性:信号的时序关系(如某根线什么时间有效) + +## 分类 + +### 按数据传输方式 + +* 串行传输总线 +* 并行传输总线 + +### 按使用范围 + +* 计算机总线 +* 测控总线 + +### 按连接部件 + +* 片内总线 + * 位于芯片内部 + * 如CPU内部,寄存器之间的连接 +* 系统总线 + * 连接五大部件(运算器、控制器、存储器、输入设备和输出设备) + * 分类 + * 数据总线 + * 双向传输总线 + * 地址总线 + * 单向传输总线 + * 控制总线 + * 整体上看:双向传输 + * 任意一条:单向传输 +* 通信总线 + * 计算机系统之间或计算机系统与其他系统间通信 + * 分类 + * 串行通信 + * 适合远距离传输 + * 并行通信 + * 适合近距离传输 + +## 总线的组成 + +* 控制线 +* 数据线 +* 地址线(部分总线无地址线,使用数据线传输地址,称为数据线和地址线复用) + +## 总线的性能指标 + +* 总线宽度:总线的根数 +* 总线带宽:单位时间内传输数据的位数 +* 总线复用:地址线和数据线共用以概率总线 +* 信号线数:三种总线数目总和 + +## 总线的结构 + +### 单总线结构 + +* 所有设备共用一组总线 +* 允许交换信息的设备 + * I/O设备之间 + * I/O设备与CPU + * I/O设备与主存 + * CPU与主存 +* I/O设备与主存统一编址 +* 优点 + * 结构简单 + * 容易扩充 +* 缺点 + * 不允许多个设备同时传输信息 + * 无法解决不同设备速率不匹配问题 +* 适用对象 + * 小型计算机 + * 微型计算机 + +### 双总线结构 + +* 将速度较低的I/O设备分离出来 +* 形成CPU与主存,CPU与I/O设备两组总线 +* 允许交换信息的设备 + * I/O设备之间 + * I/O设备与CPU(或通道处理器) + * CPU与主存 +* 缺点 + * 主存与I/O设备交换信息需要通过CPU或通道处理器,效率低 + +### 三总线结构 + +* 在高速I/O设备与主存间增加了DMA总线 +* 允许交换信息的设备 + * I/O设备之间 + * I/O设备与CPU + * 高速I/O设备与主存 + * CPU与主存 + +## 总线仲裁 + +### 集中仲裁方式 + +* 所有总线请求统一集中交予一个仲裁算法进行裁决 +* 组成 + * 总线忙线 + * 总线同意线 + * 总线请求线 + +#### 链式查询方式 + +* 所有部件使用一条总线请求线 +* 判定步骤 + 1. 部件需要请求总线时,发送总线请求至总线控制器 + 2. 若总线不忙,发送总线同意信号 + 3. 总线同意信号串行依次传送到各个部件,若某一部件有总线请求时,停止传送 + 4. 该部件建立总线忙信号 +* 优先级 + * 离总线控制器越近的部件优先级越高 +* 优点 + * 只需三根控制线,结构简单,易扩充 +* 缺点 + * 有硬件电路敏感,第i个部件出错,之后的部件都不能工作 + * 优先级低的总线会出现**饥饿**现象 + +#### 计数器查询方式 + +* 在总线控制器中增加一个计数器 +* 不需要总线同意线 +* 增加**log~2~n**条**设备地址线** +* 判定步骤 + 1. 总线控制器收到请求后,计数器开始计数 + 2. 将计数器的数值通过设备地址线传输给每个设备 + 3. 若发送请求的设备地址与计数器数值不一致时,继续计数,回到第二步 + 4. 直到发送请求的设备的地址与计数器一致时,获取设备控制权,建立总线忙信号 +* 优先级 + * 方案1:每次计数从0开始,地址数值越小,优先级越大 + * 方案2:每次计数从上一次的终点开始计数,所有设备优先级相等 +* 优点 + * 各设备优先级顺序可以改变(通过修改设备地址) + * 对电路故障不如链式查询方式敏感 +* 缺点 + * 增加了控制线数 + * 控制也比链式查询复杂 + +#### 独立请求方式 + +* 每个设备都有一个总线请求线和总线同意线 +* 判定步骤 + 1. 每个设备独立发送请求 + 2. 总线控制器按照特点算法决定优先级 + 3. 选择好某一设备后,使用他的总线同意线发送同意信息 + 4. 该设备建立总线忙信号 +* 优点 + * 响应时间快 + * 对优先级控制灵活(可通过程序改变) +* 缺点 + * 控制线数量多 + * 总线控制最复杂 + +#### 总线数目 + +| 总线类型 | 链式查询方式 | 计数器查询方式 | 独立请求方式 | +| ---------------------- | ------------ | ------------------------- | ------------ | +| 总线同意线 | 1 | 无 | n | +| 总线忙线 | 1 | 1 | 1 | +| 总线请求线 | 1 | 1 | n | +| 设备地址线 | 无 | $\lceil log_2n \rceil$ | 无 | +| 总数 | 3 | $\lceil log_2n \rceil +2$ | 2n+1 | +| 确定所有权需要的总线数 | 2 | $\lceil log_2n \rceil +1$ | 2n | + +### 分布式仲裁方式 + +* 不需要中央仲裁器 +* 每个模块有自己的仲裁号和仲裁器 +* 每个仲裁器将自己的仲裁号发送到共享的仲裁总线上 +* 通过对比仲裁总线上得到的仲裁号确定哪一个仲裁器占有总线 + +## 总线操作和定时 + +### 总线周期的组成 + +* 申请分配阶段(进行仲裁) +* 寻址阶段 +* 传送数据阶段 +* 结束阶段 + +### 分类 + +* 同步通信(同步定时方式) +* 异步通信(异步定时方式) +* 半同步通信 +* 分离式通信 + +### 同步定时通信 + +* 时钟周期 + 1. 发送地址信息(直到第四周期结束为止,始终保持信号),若写指令,则在第一周期的中间时刻进行数据准备操作 + 2. 发送读写命令(维持到第三周期结束) + 3. 传输数据 + 4. 撤销读写命令,撤销数据传输 +* 优点 + * 传输速度快 +* 缺点 + * 时钟必须以最慢模块设计 + * 模块存取速度差别较大时,大大损失总线效率 + * 可能不知道被访问的外部设备是否真正相应,可靠性低 +* 适用范围 + * 总线长度较短,各部件存取时间接近的设备 + +### 异步定时方式 + +* 增加两条应答线(**请求线**和**回答线**) +* 采用**应答(握手)**的方式进行通信 +* 步骤 + 1. 主模块发出请求 + 2. 等待从模块响应信号后才开始通信 +* 分类 + * 不互锁方式 + * 主从模块无制约关系 + * 主模块发出请求一段时间后,默认从模块收到信号,撤销请求 + * 从模块发出应答一段时间后,默认主模块收到信号,撤销应答 + * 半互锁方式 + * 主从模块只有简单制约关系 + * 主模块发出请求后,只有收到从模块的应答信号后才撤销请求 + * 从模块发出应答一段时间后,默认主模块收到信号,撤销应答 + * 全互锁方式(与三次握手几乎一样) + * 主从模块只有完全制约关系 + * 主模块发出请求后,只有收到从模块的应答信号后撤销请求,并发出应答 + * 从模块发出应答后,只有收到主模块的应答信号后撤销应答 + +## 总线标准 + +### 系统总线标准 + +* ISA(工业标准体系结构总线) + * 最早的微型计算机系统总线标准 + * 用于IBM的AT机 +* EISA(扩展的ISA总线) + * 配合32位CPU的总线扩展标准 + * 完全兼容ISA +* VESA(VL-BUS) + * 32位的计算机局部总线 + * 用于多媒体PC传输活动图像数据 +* PCI(最常用) + * 计算机局部总线 + * 连接外围设备与处理机/存储器系统 + * 支持即插即用 + * 支持对数据和地址的奇偶校验 +* PCI-Express(PCI-E) + * 最新的总线和接口标准 + * 将取代PCI和AGP + +### 设备总线标准 + +* IDE(集成设备电路) + * 用于连接处理器和磁盘驱动器 +* AGP(加速图形接口) + * 用于连接主存和图形存储器 +* USB(通用串行总线) + * 用于快速连接外部设备 + * 串行传输,只能同时传输一位数据 + * 通信总线 +* SATA(串行高级技术附件) + * 串行硬件驱动器接口 + +## 其他零散知识 + +* 计算机局部总线:局部总线是在ISA总线和CPU总线之间增加的一级总线或管理层。这样可将一些高速外设.如图形卡.硬盘控制器等从ISA总线上卸下而通过局部总线直接挂接到CPU总线上,使之与高速能CPU总线相匹配。 \ No newline at end of file diff --git a/计算机组成原理/指令系统.md b/计算机组成原理/指令系统.md new file mode 100644 index 0000000..990d632 --- /dev/null +++ b/计算机组成原理/指令系统.md @@ -0,0 +1,207 @@ +# 指令系统 + +## 指令格式 + +### 一般形式 + +* 操作码字段+地址码字段 + +### 零地址指令 + +#### 格式 + +* 操作码字段 + +#### 含义 + +* 不需要操作数,如空指令、停机指令、关中断指令 +* 在堆栈计算机中,参与运算的若干个操作数直接从栈顶弹出,结果也存放在堆栈中 + +### 一地址指令 + +#### 格式 + +* 操作码字段+地址码1 + +#### 含义 + +* 只有目的操作数的单操作数指令,从地址中取数据计算后存回该地址,如递增指令、取反指令等 + * OP(A~1~)->A~1~ +* 隐含操作数的双操作指令,指令可约定另一个操作数由ACC给出,并将结果存入ACC + * (ACC)OP(A~1~)->(ACC) + +### 二地址指令 + +#### 格式 + +* 操作码字段+地址码1+地址码2 + +#### 含义 + +* 给出两个操作数进行计算,称为源操作数和目的操作数,其中目的操作数还存放本次运算结果 + * (A~1~)OP(A~2~)->(A~2~) + +### 三地址指令 + +#### 格式 + +* 操作码字段+地址码1+地址码2+地址码3 + +#### 含义 + +* 给出两个操作数进行计算,结果存放在第三个操作数上 + * (A~1~)OP(A~2~)->(A~3~) + +### 四地址指令 + +#### 格式 + +* 操作码字段+地址码1+地址码2+地址码3+地址码4 + +#### 含义 + +* 给出两个操作数进行计算,结果存放在第三个操作数上,下一条指令的地址为地址码4 + * (A~1~)OP(A~2~)->(A~3~) + +### 分类 + +* 定长操作码指令 +* 不定长操作码指令 + +## 寻址方式 + +### 指令寻址 + +* 顺序寻址 + * 程序计数器PC+1,得到下一条指令地址 +* 跳跃寻址 + * 转移指令修改PC的值,从而修改下一条指令地址 + +### 数据寻址 + +#### 格式 + +* 操作码+寻址特征+地址 + +#### 隐含寻址 + +* 不显式给出操作数地址,如规定累加器作为第二操作数地址 + +#### 立即数寻址 + +* 直接给定操作数 + +#### 直接寻址 + +* 直接给出操作数在主存的地址 +* EA=A + +#### 间接寻址 + +* 给出的地址为操作数地址的地址 +* EA=(A) + +#### 寄存器寻址 + +* 给出操作数所在的寄存器编号 +* EA=R + +#### 寄存器间接寻址 + +- 操作数地址在给定的寄存器中 +- EA=(R) + +#### 相对寻址 + +* 操作数地址EA=(PC)+A + +#### 基址寻址 + +* 设置基址寄存器BR +* 由操作系统维护,程序运行时不可改变 +* 使用通用寄存器作为BR,用户有权知道作为基址寄存器的寄存器是哪一个 +* EA=(BR)+A +* 优点 + * 扩大寻址范围 + * 便于解决多道程序问题 + +#### 变址寻址 + +* 设置变址寄存器IX + +* 由用户维护 +* 在程序运行时可修改 +* EA=(IX)+A +* 优点 + * 扩大寻址范围 + * 适合处理数组问题和循环程序 + +#### 堆栈寻址 + +* 使用栈顶作为隐含操作数地址 + +#### 结合寻址方式 + +* 先间址再变址:EA=(A)+(IX) +* 先变址再间址:EA=(A+(IX)) +* etc + +## 运算标记位 + +* ZF:零标志,运算结果为0时置1 +* OF:溢出标志,运算结果溢出时置1 +* CF:进位/借位标志,把操作数都看作无符号数 + * 相减运算A-B时,若A接口) +* 命令线(单向,CPU->接口) +* 状态线(单向,接口->CPU) +* 内部接口:与系统总线相连,并行传输 +* 外部接口:与外设相连,可能串行传输,故接口需具有串/并转换功能 + +### 接口类型 + +* 按数据传送方式划分 + * 串行接口 + * 并行接口 +* 按主机访问方式划分 + * 程序查询接口 + * 中断接口 + * DMA接口 +* 按功能选择的灵活性划分 + * 可编程接口 + * 不可编程接口 + +### I/O端口 + +#### 定义 + +* 接口电路中可直接被CPU访问的寄存器 + +#### 分类 + +* 数据接口(可读写) +* 状态接口(只读) +* 控制接口(只写) + +#### 编址 + +* 统一编址(存储器映射方式) + * 将I/O端口当作存储器单元一同编址 + * 优点 + * 不需要专门的输入输指令 + * 使端口用有较大的编址空间 + * 缺点 + * 占有存储器容量 + * 执行速度慢 +* 独立编址(I/O映射方式) + * I/O端口地址空间与主存地址相互独立 + * 优点 + * 输入输出需要专门指令,使程序结构清晰 + * 不影响主存容量 + * 缺点 + * 输入/输出指令较少 + * 增加了控制的复杂性 + +## I/O方式 + +### 程序查询方式(程序控制I/O方式) + +#### 步骤 + +1. CPU初始化程序,设置传送参数 +2. 向I/O端口发出命令字,启动I/O设备 +3. CPU从外设接口读取状态信息 +4. CPU不断查询外设状态,直至外设准备就绪 +5. 传送数据 +6. 修改地址和计数器参数 +7. 判断传送是否结束,若未结束,继续第3步 + +#### 特点 + +* 数据成块传送,故需要计数器记录传送字数 +* 需给出传送数据的首地址 + +#### 就绪状态 + +* 输入:输入缓冲满 +* 输出:输出缓冲空 + +### 程序中断方式 + +#### 中断概念 + +##### 中断功能 + +* 实现CPU与I/O设备并行工作 +* 处理硬件和软件错误 +* 实现人机交互,用户干预机器需要中断 +* 实现多道程序,分时操作,多道程序的切换需要中断 +* 实时处理系统需要中断系统实现快速响应 +* 实现目态与管态的切换,称为软中断 +* 多处理器系统的信息交流和任务切换 + +##### 分类 + +* 按中断源划分 + * 内中断:处理器和内存内部产生的中断(如运算错误,特权指令等) + * 外中断:处理器和内存以外设备产生的中断(如时钟中断,I/O中断等) +* 按软硬件划分 + * 硬件中断:由硬件产生的中断 + * 软件中断:由某条特定指令产生的中断 +* 按屏蔽与否划分 + * 非屏蔽中断:不受中断标志位影响,关中断的条件下也会相应 + * 可屏蔽中断:受中断标志位影响 + * 非屏蔽中断和可屏蔽中断均属于外中断和硬件中断 + +#### 流程 + +1. 中断请求 +2. 中断判优:判断中断优先级 + * 一般的优先级划分 + * 硬件中断>软件中断 + * 非屏蔽中断>可屏蔽中断 + * DMA请求>I/O设备传送的中断请求 + * 高速设备的中断>低速设备的中断 + * 输入设备的中断>输出设备的中断 + * 实时设备的中断>普通设备的中断 +3. 中断响应 + * 响应条件 + * 中断源有中断请求 + * CPU允许中断并开中断 + * 一条指令执行完毕并且没有更紧急的任务 +4. 中断隐指令 + 1. 关中断 + 2. 保存断点 + 3. 引出中断服务程序 +5. 中断向量表 + * 中断服务程序入口地址表 + * CPU响应中断后,中断硬件会自动将中断向量地址(中断向量的入口地址)送入CPU,由CPU完成程序中断 +6. 中断处理过程 + 1. 中断隐指令(硬件完成) + 1. 关中断 + 2. 保存断点 + 3. 引出中断服务程序 + 2. 中断服务程序 + 1. 保存现场和屏蔽字 + 2. 开中断(实现中断嵌套) + 3. 执行中断服务程序 + 4. 关中断 + 5. 恢复现场和屏蔽字 + 6. 开中断 + 7. 中断返回 + +#### 多重中断 + +##### 条件 + +* 中断服务程序中开中断 +* 优先级高的中断源有权中断优先级低的中断源 + +#### 中断处理硬件 + +* 中断请求触发器 +* 中断屏蔽字触发器 +* 排队器 +* 中断向量地址形成部件 + +### DMA(直接存储器存取)方式 + +#### 适用外设 + +* 磁带机 +* 磁盘机 + +#### 特点 + +* 主存既可以被CPU访问,也可以被外设访问 +* 数据块传送时,主存地址的确定,传送数据的计数由硬件部件直接实现 +* 主存需要开辟专用缓冲区 +* CPU与外设并行工作 +* DMA开始传送前需要通过程序预处理,结束后需要通过中断进行后处理 + +#### DMA控制器功能 + +* 接收外设发出的DMA请求,并向CPU发出总线请求 +* CPU响应总线请求,发出总线响应信号,接管总线控制权,进入DMA操作周期 +* 确定传送数据的主存单元地址和传送方向,发出读写控制信号,执行数据传送操作 +* 向CPU报告DMA操作的结束 + +#### DMA控制器组成 + +* 主存地址计数器 +* 传送长度计数器 +* 数据缓冲寄存器 +* DMA请求触发器 +* “控制/状态”逻辑 +* 中断机构 + +#### DMA传送方式 + +* 停止CPU访问主存 + * DMA访问主存时,CPU放弃地址线,数据线及有关控制线的使用权,此时CPU处在不工作状态 +* DMA与CPU交替访存 + * 当CPU周期大于存取周期时,将CPU周期划分成两部分,一部分由DMA执行访存操作,另一部分由CPU进行访存操作 +* 周期挪用(周期窃取) + * CPU不访存时,DMA直接进行访存 + * CPU正在访存时,DMA等待CPU访存结束再访存 + * CPU和DMA同时发出访存指令时,DMA让CPU暂时放弃总线几个存取周期,之后再交由CPU访存 + +#### DMA传送过程 + +1. 数据预处理 + * 由CPU完成 + * 步骤 + 1. CPU执行几条I/O指令测试设备 + 2. CPU设置DMA控制器有关寄存器初值、传送方向、启动设备等 + 3. CPU继续执行 + 4. 设备准备就绪后向DMA控制器发出DMA请求,之后DMA控制器向CPU发出总线请求(统称DMA请求) +2. 数据传送 + * 传输基本单位可以是字节、字或数据块 + * 硬盘使用数据块传输 + * DMA控制器使用循环实现数据块传输 + * 该阶段完全由DMA硬件控制 +3. 后处理 + * 步骤 + 1. DMA控制器向CPU发出中断请求 + 2. CPU执行中断程序进行结束处理 + * 校验数据是否正确 + * 测试传输过程是否出错 + * 是否继续使用DMA传输数据 + +### DMA与程序中断的区别 + +1. 中断方式时程序的切换,需要保护和恢复现场,DMA除了预处理和后处理,其他情况不占用CPU资源 +2. 对中断请求的响应只能发生在每个指令执行完毕后,对DMA请求的响应可以发生在任意机器周期结束后(只要CPU不占用总线即可) +3. 中断方式传输过程需要CPU干预,DMA不需要,因此传输速度快 +4. DMA请求优先级高于中断请求 +5. 中断方式具有对异常事件的处理能力,DMA仅用于传输数据块的I/O操作 +6. 中断方式使用程序传输,DMA方式使用硬件传输 + + + + + +​ +