# 计算机系统概述

# 计算机发展历程

# 计算机系统层次及结构

# 计算机硬件的基本组成

# 冯诺依曼机

  1. 由运算器、存储器、控制器、输入设备、输出设备组成
  2. 指令和数据同等地位存储在存储器中,按地址寻访
  3. 指令和数据均用二进制代码表示
  4. 指令由操作码和地址码组成
  5. 指令在存储器中按顺序存放
  6. 以运算器为核心

# 计算机性能指标

# 指令系统

# 指令格式

# 指令的基本格式

操作码字段地址码字段
  • 操作码:指出指令中该指令应该执行什么性质的操作和具有何种功能
  • 地址码:指出被操作的信息的地址(参加运算的操作数所在的地址,运算结果的保存地址,程序的转移地址,被调用的子程序的入口地址)
  • 指令的长度:一条指令中所包含的二进制的位数

单字长指令:指令长度等于一个机器字长的指令
半字长指令:指令长度等于半个机器字长的指令
双字长指令:指令长度等于两个机器字长的指令

# 零地址指令

OP

只需要给出操作码 OP,没有显式地址:

  1. 不需要操作数的指令:空操作指令,停机指令,关中断指令
  2. 零地址的运算类指令:堆栈计算机

# 一地址指令

OPA1A_1
  1. 只有目的操作数的单操作数指令。按A1A_1 地址读取操作数,进行 OP 操作,结果存回原地址
  2. 隐含约定目的地址的双操作数指令,按指令地址A1A_1 可读取源操作数,指令可隐含约定另一个操作数由 ACC(累加器)提供

# 二地址指令

OPA1A_1A2A_2

A1OPA2A1(A_1)OP(A_2)→A_1

分别给出目标操作数和源操作数的地址,目标操作数的地址用于保存本次运算的运算结果

# 三地址指令

OPA1A_1A2A_2A3A_3(结果)

# 四地址指令

OPA1A_1A2A_2A3A_3(结果)A4A_4(下址)

# 定长操作码指令格式

在指令字的最高位部分分配固定的若干位(定长)表示操作码

  • 简化计算机硬件设计,提高指令译码和识别速度

# 扩展操作码指令格式

  • 不允许短码是长码的前缀
  • 各指令的操作码一定不能重复

# 指令寻址方式

# 指令寻址和数据寻址

# 指令寻址

  1. 顺序寻址
    通过程序计数器(PC)加 1,自动形成下一条指令的地址
  2. 跳跃寻址
    通过转移类指令实现,下一条指令的地址码不由程序状态计数器给出,而是由本条指令给出下条指令地址的计算方式,跳跃的结果是修改 PC 值,下一条指令仍然通过 PC 给出

# 数据寻址

操作码寻址特征形式地址 A

# 常见的数据寻址方式

# 隐含寻址

在指令中隐含操作数的地址,如规定 ACC 作为第二操作数的地址,指令明显指出仅仅是第一操作数的地址

  • 优点:有利于缩短指令字长
  • 缺点:需增加存储操作数或隐含地址的硬件

# 立即数寻址

地址字段指出的是操作数本身

  • 优点:指令在执行阶段不访问主存,指令执行时间短
  • 缺点:地址字段的位数限制了立即数的范围

# 直接寻址

指令字的形式地址 A 是操作数的真实地址 EA,即 EA=A

  • 优点:简单,指令执行阶段仅访问一次主存,不需要专门计算操作数的地址
  • 确定啊:A 的位数决定了指令操作书的寻址范围,操作数的地址不易修改

# 间接寻址

指令地址字段的形式地址不是操作数的真正地址,而是操作数有效地址所在的存储单元的地址,即操作数地址的地址,EA=(A)
间接寻址可以是一次间接寻址,也可以是多次间接寻址

  • 优点: 可扩大寻址范围
  • 缺点:指令再执行阶段要多次访存

# 寄存器寻址

指令字中直接给出操作数所在的寄存器编号,EA=RiEA=R_i, 操作数在RiR_i 所指的寄存器内

# 寄存器间接寻址

寄存器RiR_i 中给出的不是操作数,而是操作数所在主存单元的地址,EA=RiEA=(R_i)

  • 优点:比一般间接寻址相比速度快
  • 缺点:指令执行阶段需要访问主存

# 相对寻址

把程序计数器(PC)的内容加上指令格式中的形式地址 A 形成操作数的有效地址
EA=PC+AEA=(PC)+A

  • 优点:操作数的地址不是固定的,随 PC 值的变化而变化,便于程序浮动,广泛应用于转移指令

# 基址寻址

将 CPU 中基址寄存器 BR 的内容加上指令格式的形式地址 A 形成操作数的有效地址,EA=(BR)+A,基址寄存器既可采用专用寄存器,又可采用通用寄存器

  • 优点: 可扩大寻址范围,有利于多道程序设计
  • 缺点:偏移量(形式地址 A)的位数较短

# 变址寻址

有效地址 EA 等于指令字中形式地址 A 与变址寄存器 IX 的内容之和,EA=IX+AEA=(IX)+A, 其中 IX 为变址寄存器(专用),也可用通用寄存器作为变址寄存器

  • 优点:可扩大寻址范围

# 堆栈寻址

# 总结

寻址方式有效地址访存次数
隐含寻址程序指定0
立即寻址A 即使操作数0
直接寻址EA=A1
一次间接寻址EA=(A)2
寄存器寻址EA=R_i0
寄存器间接一次寻址EA=(R_i)1
相对寻址EA=(PC)+A1
基址寻址EA=(BR)+A1
变址寻址EA=(IX)+A1

# CISC 和 RISC 的基本概念

# 复杂指令系统计算机(CISC)

  1. 指令系统复杂庞大,指令数目一般为 200 条以上
  2. 指令的长度不固定,指令格式多,寻址方式多
  3. 可以访存的指令不受限制
  4. 各种指令使用频度相差很大
  5. 各种指令执行时间相差很大,大多数指令需在多个时钟周期内才能完成
  6. 控制器大多采用微程序控制
  7. 难以用优化编译生成高效的目标代码

# 精简指令系统计算机(RISC)

  1. 选取使用频率最高的一些简单指令,复杂指令有简单指令的组合实现
  2. 指令长度固定,指令格式种类少,寻址方式少
  3. 只有 Load/Store 指令访存,其余指令都在寄存器之间进行
  4. CPU 中通用寄存器的数量多
  5. 采用指令流水技术,大部分指令在一个时钟周期内完成
  6. 以硬布线控制为主,不用或少用微程序控制
  7. 重视编译优化工作,减少程序执行时间

# CISC 和 RISC 的比较

CISCRISC
指令系统复杂,庞大简单、精简
指令数目一般大于 200 条一般小于 100 条
指令字长不固定定长
可访存指令不加限制只有 Load/Store 指令
各种指令执行时间相差较大绝大多数在一个周期内完成
各种指令使用频度相差很大都比较经常使用
通用寄存器数量较少
目标代码难以用优化编译生成高效的目标代码程序采用优化的编译程序,生成的代码较为高效
控制方式微程序控制为主组合逻辑控制为主
指令流水线通过一定方式实现必须实现

# 中央处理器

# CPU 的功能和基本结构

# CPU 的功能

  1. 指令控制
    完成取指令、分析指令、执行指令的操作,即程序的顺序控制
  2. 操作控制
    控制部件按指令的要求进行动作
  3. 时间控制
    为每条指令按时间顺序提供应有的控制信号
  4. 数据加工
    对数据进行算术和逻辑运算
  5. 中断加工
    对计算机运行过程中出现的异常情况特殊请求进行处理

# CPU 的基本结构

# 运算器

  1. 算术逻辑单元
    进行算术 / 逻辑运算
  2. 暂存寄存器
    暂存从主存读来的数据,该数据通常不能存放在通用寄存器
  3. 累加寄存器
    属于通用寄存器,暂时存放算术逻辑单元运算的结果信息,可以作为加法运算的一个输入端
  4. 通用寄存器组
    存放操作数和各种地址信息等
  5. 程序状态字寄存器
    保留算术逻辑运算指令或测试指令的结果而建立的各种状态信息
  6. 移位器
    对操作数或运算结果进行移位运算
  7. 计数器
    控制乘除运算的操作步数

# 控制器

基本功能:执行指令

类型:

  1. 硬布线控制器
  2. 微程序控制器

构成:

  1. 程序计数器
    指出下一条指令在主存中的存放地址
  2. 指令寄存器
    保存当前正在执行的指令
  3. 指令译码器
    对操作码字段译码,向控制器提供特定的操作信号
  4. 存储器地址寄存器
    存放所要访问的主存单元地址
  5. 存储器数据寄存器
    存放向主存写入的信息或从主存读出的信息
  6. 时序系统
    产生时序信号
  7. 微操作信号发生器

# 指令的执行过程

# 指令周期

指令周期:CPU 从主存取出并执行一条指令所需的全部时间

一个完整的指令周期包括:取指、间址、执行、中断

# 指令周期的数据流

# 取指周期

任务:根据 PC 的内容从主存中取出指令代码并存放在 IR 中

  1. PCMAR(地址寄存器)地址总线主存PC→MAR(地址寄存器)→地址总线→主存
  2. 控制单元(CU)发出控制信号控制总线主存控制单元(CU)发出控制信号→控制总线→主存
  3. 主存数据总线MDR(数据寄存器)IR主存→数据总线→ MDR(数据寄存器)→IR
  4. CU发出读命令PC的内容加1CU发出读命令→ PC 的内容加 1

# 间址周期

任务:取操作数的有效地址,将指令中的地址码送到 MAR 并送至地址总线,CU 向存储器发出读命令,获取有效地址并存至 MDR

  1. Ad(IR)(MDR)MAR地址总线主存Ad(IR)(或MDR)→MAR→地址总线→主存
  2. CU发出读命令控制总线主存CU发出读命令→控制总线→主存
  3. 主存数据总线MDR(存放有效地址)主存→数据总线→ MDR(存放有效地址)

# 执行周期

任务:根据 IR 中的指令字的操作码和操作数通过算术逻辑单元(ALU)操作产生执行结果

# 中断周期

任务:处理中断请求

# 指令的执行方案

# 单指令周期

  • 所有指令选用相同的执行时间来完成
  • 指令之间串行执行
  • 指令周期取决于执行时间最长的指令执行时间

# 多指令周期

  • 不同类型的指令选用不同的执行步骤
  • 指令之间传新之星
  • 不再要求所有指令占用相同的执行时间

# 流水线方案

  • 指令间可以并行执行
  • 力争在时钟脉冲周期完成一条指令的执行过程

# 数据通路的功能和基本结构

# 数据通路的功能

  • 数据通路:数据在功能部件之间传送的路径
  • 描述了信息从什么地方开始,中间经过哪个寄存器或多路开关,最后传送到哪个寄存器
  • 建立数据通路由 “操作控制部件” 完成

# 数据通路的基本结构

  1. CPU 内部单总线方式
    将所有寄存器的输入端和输出端连接到一条公共通路
    • 结构简单
    • 数据传输存在较多的冲突现象,性能低
  2. CPU 内部三总线方式
    将所有寄存器的输入端和输出端连接到多条公共通路上
    • 同时在多个总线上传送不同的数据,提高效率
  3. 专用数据通路方式
    根据指令执行过程中的数据和地址流动方向安排连接线路,避免使用共享的线路
    • 性能较高
    • 硬件量大

# 寄存器之间的数据传送

寄存器之间的数据传送可通过 CPU 内部总线完成,
以 PC 寄存器为例,把 PC 内容送入 MAR,实现传送操作的流程和控制信号为:

PC→BusPCout 有效,PC 内容送总线
Bus→MARMARin 有效,总线内容送 MAR

# 主存与 CPU 之间的数据传送

以 CPU 从主存读取指令为例:

PC→Bus→MARPCout、MARin 有效,现行指令地址→ MAR
1→RCU 发出读命令
MEM(MAR)→MDRMDRin 有效
MDR→Bus→IRMDRout 和 IRin 有效,现行指令→ IR

# 执行算数或逻辑运算

ALU 本身没有内部存储功能的组合电路,要执行加法操作,相加的两个数必须在 ALU 两个输入端同时有效

向将一个操作数经过 CPU 内部总线送入暂存器 Y 保存,Y 的内容在 ALU 的左输入端始终有效,再将另一个操作数经总线直接送到 ALU 右输入端,运算结果暂存在暂存器 Z 中

Ad(IR)→Bus→MARMDRout 和 MARin 有效
1→RCU 发出读命令
MEM→ 数据线→ MDR操作数从存储器→数据线→ MDR
MDR→Bus→YMDRout 和 Yin 有效,操作数→ Y
(ACC)+(Y)→ZACCout 和 ALUin 有效,CU 向 ALU 发出加命令,结果→ Z
Z→ACCZout 和 ACCin 有效,结果→ ACC

# 控制器的功能和工作原理

# 控制器的结构和功能

  1. 运算器部件通过数据总线与内存储器、输入设备和输出设备传送数据
  2. 输入设备和输出设备通过接口电路与总线相连接
  3. 内存储器、输入设备和输出设备从地址总线接受地址信息,从控制总线得到控制信号,通过数据总线与其他部件传送数据
  4. 控制器部件从数据总线接受指令信息,从运算部件接收指令转移地址,送出指令地址到地址总线,还需要向系统中的部件提供运行所需要的控制信号

# 控制器的主要功能

  1. 从主存取出一条指令,并指出下一条指令在主存中的位置
  2. 对指令译码或测试,产生相应的操作控制信号,以便启动规定的动作
  3. 指挥并控制 CPU、主存、输入和输出设备之间的数据流动方向

# 硬布线控制器

基本原理: 根据指令的要求、当前时序以及外部和内部的状态,按时间顺序发送一系列微操作控制信号,又称组合逻辑控制器

指令的操作码决定控制单元发出不同操作命令

# CU 的信号来源

  1. 经指令译码器产生的指令信息
  2. 时序系统产生的机器周期信号和节拍信号
  3. 来自执行单元的反馈信号即标志

# 硬布线控制器的时序系统及微操作

  1. 时钟周期
    时钟信号控制节拍发生器,每个节拍宽度正好对应一个时钟周期
  2. 机器周期
    可视为所有指令执行过程的一个基准时间,通常以存取周期为基准时间
  3. 指令周期
  4. 微操作命令分析

# CPU 的控制方式

  1. 同步控制方式
    系统有一个统一的时钟,所有的控制信号均来自这个时钟信号
    • 优点:控制电路简单
    • 缺点:运行速度慢
  2. 异步控制方式
    各部件按自身固有速度工作,通过应答方式进行联络
    • 优点:运行速度快
    • 缺点:控制电路复杂
  3. 联合控制方式
    对各种不同的指令的微操作采用同步控制,小部分采用异步控制

# 微程序控制器

# 微程序控制的基本概念

  1. 微命令与微操作
    • 微操作:一条机器指令可以分解为一个微操作序列,这些微操作是计算机中最基本的、不可再分的操作
    • 微命令:微程序控制的计算机中,控制部件向执行部件发出的控制命令
  2. 微指令与微周期
    • 微指令:若干微命令的集合
      • 操作控制字段(微操作码字段):产生某一步操作需要的各种操作控制信号
      • 顺序控制字段(微地址码字段):控制产生下一条要执行的微指令地址
    • 微地址:存放微指令的控制存储器的单元地址
  3. 主存储器与控制存储器
  4. 程序与微程序

# 微程序控制器组成和工作过程

# 微程序控制器的基本组成
  1. 控制存储器
    • 微程序控制器的核心部件
    • 存放个指令对应的微程序
  2. 微指令寄存器
    • 存放从 CM 中取出的微指令
  3. 微地址形成部件
    • 产生初始微地址和后继微地址,保证微指令连续执行
  4. 微地址寄存器
    接受微地址形成部件送来的微地址
# 微程序控制器的工作过程
  1. 执行取微指令公共操作
  2. 由机器指令的操作码字段通过微地址形成不见产生该机器指令对应的微程序入口地址,送入 CMAR
  3. 从 CM 中逐条取出对应的微指令并执行
  4. 重复上述操作

# 微指令的编码方式

  1. 直接编码(直接控制)方式
    微指令的微命令字段每位都代表一个微命令
    • 优点:简单、直观、执行速度快,操作并行性好
    • 缺点:n 个微命令要求微指令的操作字段由 n 位,造成控制存储器的容量极大
  2. 字段直接编码方式
    微命令分成若干个小段,把互斥性微命令组合在同一字段,相容性微命令组合在不同字段,每个字段独立编码,每种编码代表一个微命令且各字段编码含义单独定义
    • 可以缩短微指令字长,比直接编码慢
    • 分段原则:
      1. 互斥性微命令分在同一段内,相容性微命令分在不同段
      2. 每个小段包含的信息位不能太多,否则增加线路的复杂性和译码时间
      3. 一般每个小段要留出一个状态,表示本字段不发出任何命令
  3. 字段间接编码方式
    一个字段的某些微命令需要由另一个字段中的某些微命令来解释,不是靠字段直接译码发出的命令,又称隐式编码

# 微指令的格式

  1. 水平型微指令
    • 直接编码、字段直接编码、字段间接编码、混合编码都属于水平型编码
    • 优点:微程序短、执行速度快
    • 缺点:微指令长,编写微程序较麻烦
  2. 垂直型微指令
    • 类似机器指令的操作码方式,一条垂直型微指令只能定义并执行一种基本操作
    • 优点:微指令短、简单、规整,便于编写微程序
    • 缺点:微程序长,执行速度慢、工作效率低
  3. 混合型微指令
    • 在垂直的基础上增加一些不太复杂的并行操作
    • 指令较短,便于编写,微程序也不长,执行速度加快

# 指令流水线

# 指令流水线的基本概念

# 流水线的定义

# 多条指令在处理器中执行的方式
  1. 顺序执行方式
    指令按顺序执行,前一条执行完成,才启动下一条指令
    • 优点:控制简单,硬件代价小
    • 缺点:执行指令的速度较慢
  2. 一次重叠执行方式
    同时进行第 k 条指令的执行阶段和 k+1 条指令的取指阶段
    • 优点:程序的执行时间缩短了三分之一,各功能部件的利用率明显提高
  3. 二次重叠执行方式
    k+1 条指令的取指阶段提前到分析第 k 条指令的期间完成,分析第 k+1 条指令与执行第 k 条指令同时进行

# 流水线方式的特点

  1. 把一个任务分解成几个有联系的子任务,每个任务由一个专门的功能部件来执行,依靠多个功能部件并行工作来缩短程序的执行时间
  2. 流水线的每个功能部件后面都要有一个缓冲器或锁存器,作用是保存本流水段的执行结果,供下一段流水使用
  3. 流水线中各个功能段时间应尽量相同,否则将引起堵塞、断流
  4. 流水线中处理的必须是连续任务
  5. 流水线由装入时间排空时间

# 流水线的分类

# 部件功能级、处理机级、处理机间级流水线

  • 部件功能级:将复杂的算术逻辑运算组成刘淑娴工作方式
  • 处理机级:将一条指令的解释过程分成多个子过程
  • 处理机间级:宏流水,每个处理机完成某一专门任务

# 单功能流水线和多功能流水线

  • 单功能:实现一种固定的专门功能的流水线
  • 多功能:通过各段间的不同的连接方式同时或不同时地实现多种功能

# 动态流水线和静态流水线

  • 静态:同一时间内各段只能按同一种功能的连接方式工作
  • 动态:同一时间内,某些段实现某种运算,另一些正在进行另一种运算

# 线性流水线和非线性流水线

  • 线性:从输入到输出,每个功能段只允许经过一次,不存在反馈回路
  • 非线性:存在反馈回路,适合进行线性递归运算

# 影响流水线的因素

# 结构相关(资源冲突)

多条指令同一时刻争用同一资源

解决方法:

  1. 后一条相关指令暂停一个时钟周期
  2. 单独设置数据存储器和指令存储器

# 数据相关(数据冲突)

必须等前一条指令执行完才能执行后一条指令

解决方法:

  1. 遇到数据相关额指令及其后续指令暂停一个至几个时钟周期
  2. 设置相关专用通路(数据旁路技术)
  3. 指令编译优化,调整指令顺序解决

# 控制相关(控制冲突)

流水线遇到转移指令和其他改变 PC 值的指令造成断流

解决方法:

  1. 对指令进行分支预测
  2. 预取转移成功和不成功两个控制流方向上的目标指令
  3. 加快和提前形成条件码
  4. 提高 转移方向的猜准率

# 流水线的性能指标

# 流水线的吞吐率

TP=nTk=n(k+n1)ΔtTP=\frac{n}{T_k}=\frac{n}{(k+n-1)Δt}

TkT_k:处理完 n 个任务所用的时间

# 流水线的加速比

S=T0Tk=knΔt(k+n1)Δt=knk+n1S=\frac{T_0}{T_k}=\frac{knΔt}{(k+n-1)Δt}=\frac{kn}{k+n-1}

# 流水线的效率

E=n个任务占用的时空区有效面积n个任务所用的时间与k个流水段所围成的时空区总面积=T0kTkE=\frac{n个任务占用的时空区有效面积}{n 个任务所用的时间与 k 个流水段所围成的时空区总面积}=\frac{T_0}{kT_k}

# 超量流水线的基本概念

# 超标量流水线技术

并行操作方式将两条或多条指令编译执行,需配备多个功能部件

# 超流水线技术

一个时钟周期内再分段,在一个时钟周期内一个功能部件使用多次

# 超长指令字

将多条能并行操作系统的指令组合成一条具有多个操作码字段的超长指令字(可达几百位),需要采用多个处理部件

# 总线

# 总线概述

# 总线基本概念

# 总线的定义

能为多个部件分时共享的公共信息传输线路

# 总线的特点
  • 分时
    同一时刻只允许有一个部件向总线发送信息
  • 共享
    总线上可以挂接多个部件,多个部件可同时从总线上接受相同的信息

# 总线设备

  • 主设备
    获得总线控制权的设备
  • 从设备
    被主设备访问的设备,只能响应主设备发来的各种总线命令

# 总线特性

  • 机械特性
    尺寸、形状
  • 电气特性
    传输方向和有效的电平范围
  • 功能特性
    每根传输线的功能
  • 时间特性
    信号和时序关系

# 总线的猝发传输方式

一个周期内传输存储地址连续的多个数据字

# 总线的分类

# 片内总线

芯片内部的总线

# 系统总线

计算机系统内各个功能部件之间相互连接的总线

  1. 数据总线
    传输各个功能部件之间的数据信息,双向传输总线
  2. 地址总线
    指出源数据或目的数据所在的主存单元或 IO 端口的地址,单向传输总线
  3. 控制总线
    传输控制信息

# 通信总线

计算机系统之间或计算机系统和其他系统之间传送信息的总线,也称外部总线

# 系统总线的结构

# 单总线结构

将 CPU、主存、IO 设备挂在一组总线上

  • 优点:结构简单、成本低、易于接入新的设备
  • 缺点:带宽低、负载重,多个部件只能争用唯一的总线,不支持并发传送操作

# 双总线结构

  1. 主存总线:在 CPU、主存和通道之间传送数据
  2. IO 总线:外部设备和通道之间传送数据
  • 优点: 实现了存储请总线和 IO 总线分离
  • 缺点:需要增加通道等硬件设备

# 三总线结构

  1. 主存总线:CPU 和内存之间传送地址、数据和控制信息
  2. IO 总线:CPU 和各类外设之间通信
  3. DMA 总线:内存和高速外设之间传送数据
  • 优点:提高了 IO 设备的性能,提高系统吞吐量
  • 缺点:系统工作效率低

# 总线的性能指标

  1. 总线的传输周期
    一次总线操作所需的时间(申请阶段、寻址阶段、传输阶段、结束阶段)
  2. 总线的时钟周期
    机器的时钟周期
  3. 总线的工作频率
    总线上各种操作的频率,总线周期的倒数
  4. 总线的时钟频率
    机器的时钟频率,时钟周期的倒数
  5. 总线宽度
    总线上能够同时传输的数据位数
  6. 总线带宽
    总线的数据传输率,单位时间可传输数据的位数
  7. 总线复用
    一种信号线在不同的时间传输不同的信息
  8. 信号线数
    地址总线、数据总线、控制总线三种总线的总和

# 总线仲裁

解决多个设备同时竞争总线控制权

# 集中仲裁方式

# 链式查询方式

所有部件共用一根总线请求线,部件请求使用时经过此线发总线请求信号到总线控制器,总线控制器检查总线是否忙,若不忙立即发送总线响应信号,经过总线响应线 BG 串行地从一个部件传送到下一个部件

  • 部件离总线控制器越近,优先级越高
  • 优点: 优先级固定,结构简单,扩充容易
  • 缺点:对硬件电路故障敏感,优先级不能改变

# 计数器定时查询方式

采用一个计数器控制总线使用权,相对链式查询多了一组设备地址线,少了一根总线响应线 BG,仍然共用一根地址请求线,当总线收到总线请求并判断总线空闲时,计数器 开始计数,地址线上的计数值与请求使用总线设备的地址一致时,该设备获得总线控制权

  • 优点: 优先级既可以固定,也可以相等,也可以改变次序,对故障不敏感
  • 缺点:增加了控制线数,控制更加复杂

# 独立请求方式

总线上的部件需要使用总线时,经过各自的总线请求线发送总线请求信号,在总线控制器中排队,总线控制器按一定的优先次序决定批准某个部件的请求,给该部件发送响应信号,该部件受到此信号后获得总线的控制权,开始传送数据

  • 优点: 响应速度快,对优先次序控制灵活
  • 缺点: 控制线数量多,总线控制逻辑更加复杂

# 分布仲裁方式

不需要中央仲裁器,每个潜在的主模块都有自己的仲裁号和仲裁器。有总线请求时,把各自唯一的仲裁号发送到共享的仲裁总线上,每个仲裁器从仲裁总线上得到的仲裁号与自己的仲裁号进行比较,若仲裁总线上的仲裁号优先级高,则它的请求不予响应,并撤销它的仲裁号,获胜者的仲裁号保留在仲裁总线上。

# 总线操作和定时

总线定时:总线在双方交换数据的过程中需要时间上配合关系的控制

# 总线传输的 4 个阶段

  1. 申请分配阶段
    使用总线的主设备(主模块提出申请),经过总线仲裁决定下一周期使用权
  2. 寻址阶段
    取得使用权的主模块通过总线发出本次要访问的从模块的地址以及相关命令,启动参与本次传输的从模块
  3. 传输阶段
    主设备和从设备进行数据交换
  4. 结束阶段
    主设备的有关信息均从系统总线上撤除,让出总线使用权

# 同步定时方式

系统采用一个统一的时钟信号协调发送和接受双方的传送定时关系,时钟产生相等的时间间隔,每个间隔构成一个总线周期,一个总线周期中,发送方和接受方可进行一次数据传送

  • 优点:传送速度快,传输速率高,控制逻辑简单
  • 缺点:属于强制性同步,不能及时进行数据通信的有效性检验,可靠性差

# 异步定时方式

没有统一的时钟,也没有相同的时间间隔,依靠双方相互制约的 “握手” 信号来实现定时控制

  • 优点:总线周期长度可变,保证两个速度相差很大的部件和设备之家安进行可靠的信息交换,自动适应时间的配合
  • 缺点:方式稍微复杂一点,速度比同步定时慢
  1. 不互锁方式
  2. 半互锁方式
  3. 全互锁方式

# 输入输出系统

# IO 系统基本概念

# 输入 / 输出系统

  1. 外部设备
  2. 接口
  3. 输入设备
  4. 输出设备
  5. 外存设备

# IO 系统

  1. IO 软件
    驱动程序、用户程序、管理程序、升级补丁
  2. IO 硬件
    外部设备、设备控制器、接口、IO 总线

# IO 控制方式

  1. 程序查询方式
    CPU 通过程序不断查询 IO 设备是否已做好准备
  2. 程序中断方式
    IO 设备准备就绪向 CPU 发出中断请求才予以响应
  3. DMA 方式
    主存和 IO 设备之间有一条直接数据通路,交换信息时无需调用中断软件服务程序
  4. 通道方式
    系统中设有通道控制部件,每个通道挂载若干外设,主机在执行 IO 命令时,只需启动有关通道,通道将执行通道程序,从而完成 IO 操作

# 外部设备

# 输入设备

# 输出设备

# 外存储器

# 磁盘存储器

# 磁盘设备的组成
  1. 存储区域
  2. 硬盘存储器的组成
# 磁记录原理
# 磁盘的性能指标
  1. 磁盘的容量
  2. 记录密度
  3. 平均存取时间
  4. 数据传输率
# 磁盘地址
驱动器号柱面(磁道)号盘面号扇区号

# 磁盘阵列

# IO 接口

# IO 接口的功能

  1. 主机和外设的通信联络控制
  2. 地址译码和设备选择
  3. 数据缓冲
  4. 信号格式转换
  5. 传送控制命令和状态信息

# IO 接口的基本结构

CPU 与外设之间的信息传送,实际上是对接口中的某些寄存器进行读写

  • 内部接口
    与系统总线相连,实质上是对内存、CPU 相连,并行传输
  • 外部接口
    通过接口电缆与外设相连,数据传输可能是串行方式,需要 IO 接口具有串、并转换功能

# IO 接口的类型

  1. 按传送方式:并行接口、串行接口
  2. 按控制方式:程序查询接口、中断接口、DMA 接口
  3. 按功能选择的灵活性:可编程接口、不可编程接口

# IO 接口及其编址

  1. 统一编址(存储器映射方式)
    把 IO 端口当做存储器单元进行地址分配
    • 优点: 不需要专门的输入输出指令,操作更灵活方便,有较大的地址空间
    • 缺点:端口占用存储器地址使内存容量变小,输入输出操作执行速度慢
  2. 独立编址(IO 映射方式)
    IO 端口地址与存储器地址无关,需要设置专门的输入输出指令访问端口
    • 优点:输入输出指令与存储器指令有明显区别,程序编制清晰,便于理解
    • 缺点:输入输出指令少,控制复杂

# IO 方式

# 程序查询方式

信息交换控制由主机执行程序实现设置一个数据缓冲器(数据端口)和一个设备状态寄存器(设备端口),主机进行 IO 操作时,先发出询问信号,读取设备状态,根据设备状态决定下一步的操作

  1. CPU 执行初始化程序,预置传送参数
  2. 向 IO 设备发出命令字,启动 IO 设备
  3. 从外设接口读取状态信息
  4. CPU 不断查询 IO 设备状态,知道外设准备就绪
  5. 传送一次数据
  6. 修改地址和技术请参数
  7. 判断传送是否结束,未结束转到第 3 步

# 程序中断方式

CPU 在程序中安排好于摸个时刻启动某台外设,然后 CPU 继续执行原来的程序。一旦外设完成数据传送的准备工作,就主动向 CPU 发出中断请求,请求 CPU 为自己服务,在可以响应中断的条件下,CPU 暂停正在执行的程序,转去执行中断服务程序为外服务,在中断完成一次主机与外设之间的数据传送后,CPU 回到原来的程序

# 中断处理过程

  1. 关中断
  2. 保存断点
  3. 引出中断服务程序
  4. 保存现场和屏蔽字
  5. 开中断
  6. 执行中断服务程序
  7. 关中断
  8. 恢复现场和屏蔽字
  9. 开中断、中断返回

# DMA 方式(直接存储器存取方式)

完全由硬件进行成组信息传送的控制方式,在外设与内存之间开辟一条 “直接数据通道”,信息不再经过 CPU,降低了 CPU 在传送数据的开销,不需要保护、恢复 CPU 现场等操作

  • 适用于大批量数据的传送,硬件开销较大

# DMA 方式的特点

  • 主存与 CPU 固定联系脱钩,主存既可被 CPU 访问,又可被外设访问
  • 数据块传送时,主存地址的确定、传送数据的计数等由硬件电路直接实现
  • 主存中要开辟缓冲区,及时供给和接收外设的数据
  • DMA 传送速度快,CPU 和外设并行工作,提高系统的效率
  • DMA 在传送开始前要通过程序进行预处理,结束后通过中断方式进行后处理

# DMA 的传送方式

同时访问主存可能产生冲突,解决方法:

  1. 停止 CPU 访问主存
  2. DMA 和 CPU 交替访存
  3. 周期挪用

# DMA 的传送过程

  1. 预处理
    CPU 完成一些必要的准备工作
  2. 数据传送
    完全由 DMA 控制
  3. 后处理
    DMA 控制器向 CPU 发送中断请求,CPU 执行中断服务程序做 DMA 结束处理