0%

计算机组成原理(七):输入输出系统

一、引言

这是我们计算机组成原理的最后一部分内容啦,再加加油,胜利就在眼前!

二、I/O接口

I/O控制器,也称I/O控制器、设备控制器,负责协调主机和外设之间的数据传输。

功能

  • 地址译码和设备选择
  • 解决主机和外设时序配合问题,协调不同工作速度
  • 数据缓冲:数据缓冲寄存器(DBR)
  • 信号格式转换
  • 传送控制命令和状态信息

image-20240902185321532

一个IO接口可能连接多个外设。

  • 数据缓冲寄存器 暂存与CPU或内存之间传送的数据信息
  • 状态寄存器 记录接口与设备的状态信息
  • 控制寄存器 保存CPU对外设的控制信息

状态寄存器和控制寄存器在传送方向上是相反的,在访问时间上也是错开的,因此可将它们合二为一。

  • 数据线:读/写数据、状态信息、控制信息和中断类型号
  • 地址线:I/O接口中的寄存器的地址
  • 控制线:读/写控制信号、中断请求和响应信号、仲裁信号和握手信号

I/O指令 特权指令,对数据缓冲寄存器、状态/控制寄存器的访问操作是通过相应的I/O指令来完成的。

I/O接口的类型

  • 数据传送方式【外设和接口一侧——外部接口】
    • 并行接口 一字节或一个字的所有位同时传送
    • 串行接口 一位一位地有序传送
  • 主机访问I/O设备的控制方式:程序查询接口、中断接口和DMA接口
  • 功能选择的灵活性:可编程接口、不可编程接口

I/O端口 指I/O接口电路中可被CPU直接访问的寄存器,主要有数据端口、状态端口和控制端口

端口地址与编址方式

  • I/O端口对应于端口地址

  • 独立编址

    I/O映射方式,对所有的I/O端口单独进行编制,其地址空间与主存地址空间是两个独立的地址空间,其地址空间的范围可以与主存地址空间重叠。其访问需要使用专用I/O指令来表明访问的是I/O地址空间,I/O指令地地址码给出I/O端口号。

    • 优点:地址线较少,I/O端口译码简单,寻址速度快;使用专用I/O指令,可使得程序更加清晰,便于理解和检查
    • 缺点:I/O指令少,只提供简单的传输操作,程序设计的灵活性较差;控制复杂性较高
  • 统一编制

    存储器映射方式,I/O端口和主存在同一地址空间的不同分段中,根据地址范围区分I/O端口和主存单元,其访问只需要使用统一的访存指令

    • 优点:无需专门的I/O指令,使得CPU访问I/O的操作更加灵活和方便;I/O访问的保护机制可由虚拟存储管理系统来实现
    • 缺点:端口地址占用了部分主存地址空间,使主存可用容量变小;译码电路更加复杂,降低了译码速度

三、I/O方式

程序查询方式

  • 独占查询:一旦设备被启动,CPU就会以支持寻查询接口状态,CPU花费100%的时间用于I/O操作——CPU串行工作
  • 定时查询:CPU周期性地查询接口状态,等到满足条件时传送数据,传送结束后返回用户程序,定时查询的时间间隔与设备的数据传输速率有关

优点是设计简单、硬件量少;缺点是CPU需要花费很多的时间查询和等待,CPU与设备串行工作,效率低。

程序中断方式

程序中断是指在计算机执行程序的过程中,出现某些急需处理的异常情况或特殊请求,CPU暂时中止现行程序,而转去对这些异常情况或特殊请求进行处理,处理完毕后再返回到原程序的断点处,继续执行原程序。

image-20240904211543434

工作流程

  • 中断请求

    • 中断请求标记触发器:当其状态为“1”时,表示该中断源有请求,这些触发器可组成中断请求标记寄存器
    • 可屏蔽中断——INTR线,关中断模式下不响应
    • 不可屏蔽中断——NMI线,关中断模式下可响应
  • 中断响应判优

    中断响应的判优通常是通过硬件排队器(或中断查询程序)实现的

    • 不可屏蔽中断 > 内部异常 > 可屏蔽中断;
    • 在内部异常中,硬件故障 > 软件中断;
    • DMA 中断请求 > I/O 设备的中断请求;
    • 在 I/O 传送类中断请求中,高速设备 > 低速设备;输入设备 > 输出设备;实时设备 > 普通设备
  • CPU 响应中断的条件

    • 中断源有中断请求
    • CPU允许中断及开中断(异常和不可屏蔽中断不受此限制)
    • 一条指令执行完毕(异常不受此限制),且没有更紧迫的任务

    CPU 响应中断的时间是在每条指令执行阶段的结束时刻

  • 中断响应过程——中断隐指令

    • 关中断,其目的是保证正常保护程序断点和现场信息

    • 保存断点

      异常和中断的差异

      异常指令通常并没有执行成功,异常处理后要重新执行,所以其断点通常是当前指令的地址。中断的断点则是下一条指令的地址。

    • 引出中断服务程序:硬件向量法和软件查询法

中断向量

每个中断源都有一个唯一的类型号,每个中断类型号都对应一个中断服务程序,每个中断服务程序都有一个入口地址,即中断向量,CPU必须找到入口地址。把系统中的全部中断向量集中存放到存储器的某个区域内,这个存放中断向量的存储区就称为中断向量表

单级中断 多重中断
1 关中断 关中断
2 保存断点 保存断点
3 中断服务程序寻址 中断服务程序寻址
4 保存现场 保存现场和屏蔽字
5 - 开中断
6 执行中断服务程序 执行中断服务程序
7 - 关中断
8 恢复现场 恢复现场和屏蔽字
9 开中断、中断返回 开中断、中断返回

其中,1~3由中断隐指令(硬件自动)完成;4~9由中断服务程序完成。

每个中断源都有一个屏蔽触发器(MASK),1表示屏蔽该中断源的请求,0表示可以正常请求,所有屏蔽触发器组合在一起便构成一个屏蔽字寄存器,屏蔽字寄存器的内容称为屏蔽字。

DMA方式

特点

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

构成

  • 主存地址计数器

    存放要交换数据的主存地址。在传送前,其保存的是传送数据的主存起始地址;每传送一个字,地址寄存器的内容就加1,直至该批数据传送完毕。

  • 传送长度计数器

    记录传送数据的总长度。在传送前,其记录的是该批数据的总字数;每传送一个字,计数器就减1,直至计数器为0,表示该批数据传送完毕。

  • 数据缓冲寄存器

    暂存每次传送的数据。通常,DMA 接口与主存之间的传送单位为字,而 DMA 与设备之间的传送单位可能为字节或位。

  • DMA 请求触发器

    每当 IO 设备准备好数据后,发出一个控制信号,使 DMA 请求触发器置位。

  • “控制/状态”逻辑

    用于指定传送方向,修改传送参数,并对DMA 请求信号、CPU 响应信号进行协调和同步。

  • 中断机构

    当一批数据传送完毕后触发中断机构,向CPU提出中断请求。

image-20240905165707874

优点

控制简单,适用于数据传输速率很高的IO设备实现成组数据的传送;

缺点

DMA 在访问主存时,CPU基本上处于不工作状态。

image-20240905165750281

优点

既实现了 I/O 传送,又较好地发挥了主存与CPU 的效率;

缺点

每挪用一个主存周期,DMA接口都要申请、建立和归还总线控制权。

image-20240905165842422

优点

不需要总线控制权的申请、建立和归还过程,具有很高的传送速率;

缺点

相应的硬件逻辑变得更复杂。

本文到此结束,欢迎邮件交流:3143935826@qq.com ฅ>ω<*ฅ