目录
总线 是指一组为多个部件 分时共享 的信息传送线路。分时共享 是指特定时刻只允许一个部件送出数据到总线上。
总线可以被多个部件分时共享,每一时刻只能有一个设备掌握总线进行数据收发,但多个设备可以同时从总线接收数据。
如何实现分时共享?
EN:控制使用权限,针对某一设备。
DIR:控制数据方向,针对所有设备。
此处三态门没画圆圈,代表高电平有效。
(1)按传输信号的类型
(2)按数据传送格式划分
(3)按时序控制方式划分
各周期之间的关系
指令周期:是指一条指令从读取到执行完成所需的时间。
总线周期:是指 CPU 经过总线完成一次访问主存或 I/O 端口操作所需的时间。
时钟周期:是指 CPU 完成一步操作所需的时间,即完成一次内部数据通路传送的时间。
总线的一个操作过程,是指完成两个设备之间信息传输的完整过程。这里的设备主要是指主存和 I/O 端口。在通常情况下,一个总线周期与一次操作过程是对应的。
① 同步总线
由统一时序信号控制总线传送操作。
在一个或多个时钟周期内完成数据传送,由同步脉冲定时打入。其中,时钟周期/节拍的长度是固定的,即完成一次数据传输的时间是固定的。
② 异步总线
无固定时钟周期划分,以异步应答方式控制传送。
③ 扩展同步总线
以时钟周期为基础,允许总线周期中的时钟数可变。
既有统一时序同步时钟,又有应答信号。
(4)按功能划分
(5)按方向划分
总线标准:针对系统总线和外总线,对总线所作统一的规范。
常见的总线标准:
记住名称即可。
外设:输入输出设备。
I/O 接口:外设与系统总线之间的逻辑电路。
为什么需要 I/O 接口?
(1)寻址:接收 CPU 送来的地址码,选择接口中的寄存器供 CPU 访问。
(2)数据缓冲:实现主机与外设的速度匹配;缓冲深度与传送的数据量有关。
(3)预处理
串-并格式转换(串口)
数据通路宽度转换(并口)
电平转换
(4)控制功能:传送控制命令与状态信息,实现 I/O 传送控制。
(1)统一编址:为每个端口分配总线地址,使用通用的传送类指令。
(2)单独编址:编址到设备端口,使用专门的 I/O 指令,例如:
- IN AL, 61H
-
- OUT 62H, AL
(1)按数据传送格式划分
并行接口:接口与系统总线并行传送,接口与外设并行传送;数据各位同时传送。
适合设备本身并行工作,距主机较近的场合。
串行接口:接口与系统总线并行传送,接口与外设串行传送;数据逐位分时传送。
(2)按时序控制方式划分
同步接口:连接同步总线,接口与系统总线的信息传送由统一时序信号控制。
异步接口:连接异步总线,接口与系统总线的信息传送采用异步应答方式。
(3)按主机与外设的信息交换控制方式(考填空题)
① 直接程序传送:依靠 CPU 直接执行相关的 I/O 程序来实现对数据输入和输出的控制。
即程序查询方式。
② 中断方式:设备提出中断请求,主机响应后与设备交换信息,接口中包含中断控制逻辑。
特点:随机性。
③ DMA 方式:支持高速外设与主存之间进行 DMA 方式交换数据。
CPU 脱开总线,交由 DMA 控制器去处理数据。
直接程序传送模式是最简单的控制方式,依靠 CPU 直接执行相关的 I/O 程序来实现对数据输入和输出的控制。即执行 I/O 操作时,CPU 直接访问 I/O 接口,输入或输出数据。
说明:
在启动外部设备后,主机 CPU 不断通过 I/O 指令查询设备状态。直到外设准备好,或完成一次操作,CPU 才通过执行 I/O 指令与外设交换信息。
在外部设备工作期间,CPU 将持续执行与 I/O 有关的操作,即查询、等待和传输,所以直接程序传送模式又称为程序查询方式。如下图所示
接口中设置有 8 位状态寄存器,我们用 2 位来表示外设的设备状态,分别对应设备的 “忙”(B)和 “完成”(D)。当不需要设备工作时,可通过复位命令,使设备的状态标志位 D 和 B 均为 0 。
如果需要启动外部设备工作,CPU 则通过启动命令使 D=0 与 B=1,外部设备开始工作。此后,CPU 通过输入指令读入接口状态字,发现 D=0 且 B=1,知道外部设备还未准备好一次数据传输,就继续进行查询和等待。
如果启动设备以向主机输入数据,则当数据从设备输入到数据缓冲寄存器后,接口自动修改状态标志位 D=1 且 B=0。此时 CPU 通过读取状态字,解析得知接口已准备好数据,便执行输入指令,把数据缓冲寄存器中的数据经数据总线输入到主机,再设置 D=0 且 B=1。
如果启动设备以向设备输出数据,则当数据缓冲寄存器为空时,接口自动设置使 D=1 与 B=0。CPU 通过状态字判别,得知接口已做好接收数据的准备,便执行输出指令将数据经总线输出到接口的数据缓冲寄存器,并使 D=0 且 B=1。当接口将数据输出到外部设备后,数据缓冲寄存器再度为 “空”,此时自动设置,又使 D=1 且 B=0。
CPU 自己是看不懂状态编码的,我们需要安装驱动来帮助 CPU 认识外设。同时,驱动也会翻译 CPU 的命令,帮助 CPU 控制外设。
优点:硬件开销小。
缺点:并行程度低,实时性差。
应用:适合对 CPU 效率要求不高的场合,或诊断、调试过程。