当前位置: 首页 > article >正文

I/0系统基本概念

一、基本概念

1.IO硬件

 输入设备、输出设备、外存设备、I/O接口(I/O控制器)

 

2.IO软件

包括驱动程序,用户程序,管理程序,升级补丁等。

通常采用IO指令和通道指令完成主机和I/O设备的信息交换。 

IO指令 CPU执行的指令,用于控制IO接口或控制通道

操作码命令码设备码
识别是否为I/O指令做什么操作对那个设备进行操作

 

通道指令 通道执行的指令,与CPU机器指令不是一套东西 

        通道程序是提前编制好存放在主存中的程序,在含有通道的计算机中,CPU执行I/O指令对通道发出命令,由通道执行一系列通道指令,代替CPU对I/O设备进行管理。

二、I/0控制方式

1.程序查询方式:

CPU“忙等”慢速设备完成工作,二者串行工作


2.程序中断方式:

设备准备数据时,CPU继续工作。设备准备好之后向CPU发出中断请求,CPU在指令周期的未位检查中断并做出中断响应(执行中断处理程序)


3.DMA方式:

DMA控制方式:主存与高速I/O设备之间有一条直接数据通路(DMA总线)。CPU向DMA接口发出“读/写”命令,并指明主存地址、磁盘地址、读写数据量等参数。

DMA控制器自动控制磁盘与主存的数据读写,每完成一整块数据读写(如1KB为一整块),才向CPU发出一次中断请求。 

主存与IO交换信息时由DMA控制器控制,传输完一整块数据才需要中断。

 

4.通道方式:

有的商用大型计算机可能会挂载超级多的I/O设备,如果都让CPU来管理,CPU的负载就太大了。 

所以要使用通道

通道是一种特殊功能的处理器,能对I/O设备进行统一管理。 

 

通过IO指令启动通道,通道执行通道指令序列,通道程序提前编制好存放在主存中 。

 三、I/O接口的功能和基本结构

1.功能

(1)进行地址译码和设备选择:

CPU送来选择外设的地址码后,接口必须对地址进行译码以产生设备选择信息,使主机能和指定外设交换信息。

(2)实现主机和外设的通信联络控制:

解决主机与外设时序配合问题,协调不同工作速度的外设和主机之间交换信息,以保证整个计算机系统能统一,协调地工作。

(3)实现数据缓冲:

CPU与外设之间的速度往往不匹配,为消除速度差异,接口必须设置数据缓冲寄存器,用于数据的暂存,以避免因速度不一致而丢失数据。

(4)信号格式的转换:

外设与主机两者的电平,数据格式都可能存在差异,接口应该提供主机与外设的信号格式的转换功能,如电平转换,并/串或串/并转换,模/数或数/模转换等。

(5)传送控制命令和状态信息:

CPU要启动某外设时,通过接口中的命令寄存器向外设发出启动命令;外设准备就绪时,则将“准备好”状态信息送回接口中的状态寄存器,并反馈给CPU。外设向CPU提出中断请求时,CPU也应该有相应的响应信号反馈给外设。 

2.结构 

 I/O接口在主机侧通过I/O总线与内存,CPU连接。

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

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

数据线读写数据、状态字、控制字、中断类型号
地址线指明I/O端口
控制线读/写I/O端口的信号、中断请求信号

 

①发命令:发送命令字到I/0控制寄存器,向设备发送命令(需要驱动程序的协助)

②读状态:从状态寄存器读取状态字,获得设备或I/0控制器的状态信息

③读/写数据:从数据缓冲寄存器发送或读取数据,完成主机与外设的数据交换 

3.端口 

端口指的是CPU可以直接访问到的I/O接口中的寄存器 。

以这些端口的功能为基础可以分为:

数据端口可以读写
控制端口可以写
状态端口可以读

(1)统一编址

特点把I/O端口当做存储器的单元进行地址分配,用统一的访存指令就可以访问I0端口,又称存储器映射方式。靠不同的地址码区分内存和I/O设备,/0地址要求相对固定在地址的某部分。
优点不需要专门的输入/输出指令,所有访存指令都可直接访问端口,程序设计灵活性高端口有较大的编址空间读写控制逻辑电路简单
缺点端口占用了主存地址空间,使主存地址空间变小外设寻址时间长(地址位数多,地址译码速度慢)

(2)单独编址

 

特点IO端口地址与存储器地址无关,独立编址CPU需要设置专门的输入/输出指令访问端口,又称I/0映射方式。靠不同的指令区分内存和I/0设备。
优点IO端口地址与存储器地址无关,独立编址CPU需要设置专门的输入/输出指令访问端口,又称I/0映射方式。靠不同的指令区分内存和I/0设备。
缺点I/0指令类型少,一般只能对端口进行传送操作程序设计灵活性差需要CPU提供存储器读/写、I/0设备读/写两组控制信号,增加了控制逻辑电路的复杂性

(3)分类 

 


http://www.kler.cn/a/284518.html

相关文章:

  • 1.两数之和-力扣(LeetCode)
  • CSS回顾-长度单位汇总详解
  • Linux网络——网络初识
  • 【机器学习】如何配置anaconda环境(无脑版)
  • 【QT常用技术讲解】优化网络链接不上导致qt、qml界面卡顿的问题
  • 边缘的检测
  • ORACLE 统计信息的备份与恢复
  • Servlet 简介+ Cookie和session+过滤器Filter和监听器Listener
  • Vue3 ref 和 reactive 的区别
  • 命名空间using namespace std
  • Python编码系列—Python代码重构:提升代码质量
  • 编成笔记-atan2函数学习分析
  • spring 声明式事务方法自调用问题
  • C与C++的三种区分方式
  • 脚手架工具的应用(前端和后端搭建)
  • 惠中科技光伏清洁领域的专业引领者
  • Android音视频开发,需要学些什么?
  • 排序算法之希尔排序详细解读(附带Java代码解读)
  • TCP 协议详解
  • 同城小程序怎么做 同城小程序系统开发制作方案
  • 利用Spring Boot实现微服务的链路追踪
  • 窥一斑而知全豹
  • MPLS VPN的配置
  • 解析四种排序算法
  • 自动驾驶中的模仿学习
  • I 2U-Net: 一种具有丰富信息交互的双路径U-Net用于医学图像分割|文献速递-大模型与多模态诊断阿尔茨海默症与帕金森疾病