天に発車する前の
バッファに仮置きされてる
動作正常なCPUの選択を待ってる
———— 「Buffer」- Empty old City
支持中断、外设的 CPU 设计:Final Design
总线
概念
总线,一组公共的信号通道。在各部件之间实现地址、数据、控制信息的交换。
在某一时刻,只允许有一个部件向总线发送信息,而多个部件可同时从总线上接收相同的信息。
分类
- 片内总线:CPU 内部的总线。是 CPU 内部各寄存器之间、寄存器与 ALU 之间传递信息的公共通道。
- 系统总线:CPU、主存、I/O 部件(I/O接口)之间传递信息的公共通道。一般分为数据总线、地址总线和控制总线三部分。
- 数据总线:传输数据
- 地址总线:传输存储器地址和I/O地址
- 控制总线:控制信号、总线请求和响应信号
- 通信总线:用于计算机系统间或计算机系统与其它系统间的通信。
结构
-
单总线:

-
多总线:

通信过程
- 请求总线:由需要使用总线的部件或设备,提出总线使用申请。
- 总线仲裁:仲裁器决定下一传输周期的总线使用权是否授予该部件或设备。
- 寻址: 获得总线使用权的部件或设备,发出地址和有关命令。
- 信息传送:进行数据传输。
- 状态返回:该部件或设备有关信息从总线上撤除,让出总线使用权。
这个过程设计两方面的控制:
- 总线仲裁
- 通信控制
仲裁控制方式
- 链式查询方式
- 过程:
- 接口向总线控制器(仲裁器)发出总线申请BR(总线申请信号)。
- 总线仲裁器收到总线申请BR,将BG(总线同意信号)逐个往下传。
- 遇到某接口有总线申请,BG停止往下传;该接口获得总线使用权,并建立总线忙信号BS(总线忙信号)。
- 布线少、易扩充,但是故障敏感、优先级固定。

- 过程:
- 计数器定时查询方式
- 过程:
- 总线仲裁器收到总线申请BR,计数器开始计数。
- 当某个有总线申请的设备地址与计数器的计数值一致,便获得总线使用权,并建立总线忙信号BS。
- 优先级灵活,但是布线繁多。

- 过程:
- 独立请求方式
- 过程:
- 每个设备有独立的请求信号和总线同意信号。
- 总线控制器根据设备的优先级决定将总线的使用权交给哪个设备。
- 响应快,优先级灵活,请求可屏蔽,但是布线繁多。

- 过程:
通信控制方式
- 同步通信控制方式:数据传输在一个统一的时钟同步信号的控制下进行
- 异步通信控制方式:不需要统一的公共时钟信号,没有固定的总线周期。采用请求/应答方式完成数据传输。有全互锁、半互锁和不互锁三种时序。
I/O 接口
外部设备并不直接挂接在系统总线上,而是通过 I/O 接口为桥梁实现与系统总线的连接。

功能
- 识别I/O地址,即地址译码
- 实现主机与I/O设备的数据交换、控制命令的传递、状态检测与传递
- 支持一定的 O 方式(程序查询、程序中断、DMA等)
- 提供缓冲、暂存、驱动能力
- 进行数据格式、类型方面的转换(串并行转换,电平转换等)
- I/O控制与定时
分类
- 按传送数据格式
- 串行接口:适合速度低、传输距离长的环境
- 并行接口:适合速度高、传输距离短的环境
- 按I/O方式: 程序查询接口、中断接口、DMA接口、通道控制接口
- 按时序控制方式:
- 同步接口:数据传送由一个统一的时钟信号同步控制
- 异步接口:数据传送采用异步应答方式控制
I/O 操作过程
- CPU查询I/O接口状态,以检查其连接设备的状态
- I/O接口回送设备状态给CPU
- 如果设备状态显示设备可用,并准备好,CPU向I/O 接口发出命令,请求传送
- I/O接口获得来自外设的数据(字或字节)
- 数据从I/O接口传送至CPU
I/O 设备编址
I/O 地址实际上是 I/O 接口电路中寄存器的地址。

编址方式
- 独立编址方式:存储器地址与I/O地址分开,CPU具有专用的I/O指令,系统总线中具有区别存储器读写和I/O 操作的控制信号,并以此区别地址总线上的地址是存储器地址还是I/O地址。
- 统一编址方式:存储器地址与I/O地址统一考虑,地址空间的一部分是存储器,另一部分是I/O,支持存储器操作的指令都可用于I/O操作。(MIPS 采取此种)
I/O 方式
I/O 方式,即I/O与主机信息交换的控制方式。
一个 I/O 方式,要回答三个问题:
- 谁发起 I/O?
- 谁控制传输?
- 谁通知 CPU?
程序查询(轮询)I/O 方式
- 过程:
- I/O接口设置状态寄存器,以表示外部设备的工作状态
- CPU通过不断读取状态寄存器,以查询外部设备的状态
- 在外部设备准备就绪的时候,CPU通过I/O接口中的数据寄存器,与外部设备之间完成数据交换
- I/O 接口基本组成:
- Status Register
- Data Register(Input Register, Output Register)
- Address Selected Logic
- Bus Interface Logic
- 特点:慢、浪费 CPU 性能
- I/O操作全部由CPU直接完成(通过执行I/O指令完成)
- 外设速度慢,CPU速度快,在外设准备过程中,CPU处在不断的查询之中,极为浪费CPU的性能
- 外设与CPU完全串行工作,CPU效率低
因此:程序查询 I/O 只适合低速设备,高速 I/O 必须解放 CPU,避免空转。
中断 I/O 方式
中断
机器出现紧急事务,CPU不得不停下当前正在执行的程序,转去处理紧急事务,事务处理完后,再继续执行被中断的程序。
实现主机与外设并行、实时处理和过程控制、硬件故障处理、多道程序和分时操作。
中断 I/O
- 过程:
-
- I/O 接口基本组成:
- Data Input Register
- Data Output Register
- Status Register
- Control Register
- Address Selected Logic
- Interrupt Control Logic
- Bus Interface Logic
- 特点:
- I/O操作仍然由CPU通过I/O指令完成
- 在外设准备阶段,CPU可以执行其他程序,仅在外设准备就绪后,CPU才中断正在执行的程序,处理I/O事务
- 在外设准备阶段,CPU与外设的工作可以认为是并行的
- 中断I/O方式是目前最主要的I/O方式
DMA I/O方式
程序 I/O 和中断 I/O,CPU 都仍需参加 I/O 操作
因此,DMA(Direct Memory Access):
- CPU对总线的控制被临时禁止。DMA控制器接管总线控制权,控制数据直接在存储器与外设之间高速交换。
- CPU不再介入具体的I/O操作,由DMA控制器来负责提供存储器地址信号、读写控制信号等。
DMA I/O 方式中,CPU与I/O设备在更大的程度上并行工作,效率更高。适合高速批量的数据传输,如视频显示刷新、磁盘存储系统的读写,存储器到存储器的传输等。
- 过程:
- CPU 初始化 DMA 控制器
- 设置数据传送方向
- 设置 I/O 接口地址
- 设置存储器起始地址
- 设置传送的数据数量
- 有关中断方式的设置:DMA结束后通过中断方式请求CPU处理
- DMA 请求:当接口做好数据传输的准备,通过有关逻辑向 CPU 发出 DMA 请求信号。
- DMA 响应:CPU 接到 DMA 请求,在当前总线周期操作结束后,暂停 CPU 对系统总线的控制和使用,发出 DMA 响应信号,并交出系统总线的控制权。
- DMA 操作:进行数据传送所有数据传送结束后,通过中断方式告知CPU进行善后处理。
- 周期窃取方式(单字传送方式):
- 每次DMA请求得到响应后,通过控制逻辑向系统总线发送存储器地址信号、存储器读写控制信号、 I/O接口读写控制信号等,完成一次数据传送。这些操作完全由硬件控制,一般仅需要一个总线周期,然后释放总线。
- 一般适应存储器速度远高于 I/O 设备速度的情况。
- 停止CPU访问内存(成组传送方式):
- 一次DMA请求得到响应后,DMA控制器完全占用总线,进行多次DMA传送,直到所有数据传送完毕才释放总线,这段时间完全停止CPU访问内存。
- 适应高速外设与存储器交换数据的情况。
- 周期窃取方式(单字传送方式):
- CPU 初始化 DMA 控制器
因此,CPU 仅在开始 DMA 操作之前和完成 DMA 操作之后参与 I/O 处理,在 DMA 过程中,CPU 可以运行原来的程序。
- DMA 结构:


- 与中断的区别:

DMA 可在指令周期内的任一存取周期结束时响应;不中断现行程序,无须保护现场;依靠硬件传输数据,适于传送大批数据。
通道 I/O 方式
通道(I/O Channel)本质上是一颗专门为 I/O 服务的“处理器”。
通道具有自己的指令系统 (基本上都是I/O指令),执行通道程序来实现和管理I/O,CPU基本上不需要管理I/O,CPU的效率得到更大的提高。通道程序由OS根据I/O任务的需求自动生成,存放在存储器中,由OS管理,用户程序执行和访问。
通道比 DMA 多了调度管理的能力,更加智能。
- 分类:
- 选择通道(单台快速外设)

- 字节多路通道(多台慢速外设)

- 数组多路通道(多台快速外设)

- 选择通道(单台快速外设)



