LINX IO介绍

I/O设备
  • ? 现代计算机系统通常配备大量的I/O设备,用于计

  • ? 算机系统与外部世界(如用户、其它计算机或电 子设备等)进行信息交换或存储

  • ? I/O设备又称为外围设备或外部设备,简称外设

  • I/O操作:内存和I/O设备之间的信息传送操作 不仅影响计算机的通用性和可扩充性,也是计算机 系统综合处理能力及性价比的重要因素

I/O设备的分类
  • 按信息传输方向划分

  • ? 输入设备:将外界信息输入计算机

  • ? 例如:键盘,鼠标,扫描仪等

  • ? 输出设备:将计算结果输出

  • ? 例如:显示器,打印机等

  • ? 输入输出设备:既可以输入信息,也可以输出信息

  • ? 例如:磁盘驱动器,网卡等

按交互功能划分
  • 人机交互设备:用于用户与计算机之间的交互通信

  • 例如:鼠标,键盘,显示器等

  • 存储设备:持久性地存储大量信息并快速检索

  • 例如:磁盘驱动器,光盘驱动器等

  • 机机通信设备:用于计算机和计算机之间的通信

  • 例如:网卡,调制解调器等

  • 按设备管理划分

  • 字符设备:以字符为单位进行信息交换,发送或接收一个字符流

  • 人机交互设备大多是字符设备,例如鼠标、显示器等

  • 块设备:以固定大小的数据块(块是存储介质上连续信息组成的一个区域)进行信息交换

  • 存储设备通常为块设备,例如磁盘驱动器等

  • 网络设备:用于与远程设备通信的设备

  • 机机通信设备为网络设备,例如网卡等

  • 网络设备可以抽象为传送字符流的特殊字符设备,也可以抽象为传送连续小块数据的块设备

设备管理的目标
  • 克服设备和CPU速度的不匹配所引起的问题,使主机和设备并行工作,提高设备使用效率

?

LINX IO介绍
轮询方式
  • 流程:

  • 处理器向控制器发送一个I/O命令

  • 如果设备未就绪,则重复测试过程,直至设备就绪

  • 执行数据交换

  • 等待I/O操作完成后,才可以继续其它操作

LINX IO介绍
直接存储器访问(DMA)方式
  • DMA模块

  • 模仿处理器来控制主存和设备控制器之间的数据交换

LINX IO介绍
  • CPU不会终止原程序的执行

  • CPU只在数据传送的开始和结束时参与

  • 开始时,CPU需要对DMA模块进行初始化

  • 结束时,CPU响应中断,但不必保存现场

DMA方式中的周期窃取

? 当DMA和CPU同时经总线访问内存时,CPU总是将总线的占有权让给DMA一个或几个主存周期

? 周期窃取对延迟CPU与主存的数据交换影响不大

? 数据传送过程是不连续的和不规则的

? CPU大部分情况下与Cache进行数据交换,直接访问内存较少

LINX IO介绍
I/O通道
  • 又称为通道控制器、I/O处理器

  • 设备控制器包含自身专用的处理器和通道程序

  • I/O指令不再由处理器执行,而是存在主存中,由I/O通道所包含的处理器执行

  • 采用四级连接:处理器,通道,控制器,设备

  • 可控制多台同类或不同类的设备

  • 流程:

  • CPU在遇到I/O请求,启动指定通道

  • 一旦启动成功,通道开始控制I/O设备进行操作,CPU执行其他任务

  • I/O操作完成后,I/O通道发出中断,CPU停止当前工作,转向处理I/O操作结束事件

  • CPU与通道并行工作

  • 带有局部存储器的I/O通道

  • 相当于一台自治的计算机

  • I/O指令存储在控制器自带的局部存储器中,并由I/O通道所包含的处理器执行

  • 可以控制大量的I/O设备,同时最小化CPU的干涉

  • 常用于交互式终端通信,负责包括控制终端在内的大部分任务

I/O发展对总线的影响
  • 单总线

  • 将CPU、主存和I/O模块连接到同一组总线上

  • 优点:结构简单,易于扩充

  • 缺点:主存需要和I/O模块共用总线;设备增多会造成总线变长,进而增加传输时延;无法适用于大量高速设备

LINX IO介绍
  • 采用南北桥的多级总线(例)

  • 通过存储总线、PCI总线、E(ISA)总线分别连接主存、高速I/O设备和低速I/O设备

  • 优点:可以支持不同数据速率的I/O设备

LINX IO介绍
I/O软件
  • 设计目标

  • 高效率:改善设备效率,尤其是磁盘I/O操作的效率

  • 通用性:用统一的标准来管理所有设备

  • 设计思路

  • 把软件组织成层次结构,低层软件用来屏蔽硬件细节,高层软件向用户提供简洁、友善的界面

  • 主要考虑的问题

  • 设备无关性:编写访问文件的程序与具体设备无关

  • 出错处理:低层软件能处理的错误不让高层软件感知

  • 同步/异步传输:支持阻塞和中断驱动两种工作方式

  • 缓冲技术:建立数据缓冲区,提高吞吐率

I/O软件的层次结构

LINX IO介绍
双缓冲
  • 使用两个缓冲区

  • 输入:设备先将数据输入缓冲区1,系统从缓冲区1把数据传到用户区,供应用程序处理,同时设备将数据传送到缓冲区2

  • 输出:应用程序将数据从用户传送到缓冲区1,系统将数据传送到设备,同时应用程序将数据传送到缓冲区2

LINX IO介绍

如果您决觉得这篇文章对您有小小的帮助的话,可以关注下方公众号,在公众号同样会推送技术给大家。

LINX IO介绍

来源:yu_1992_11_25

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年10月12日
下一篇 2021年10月12日

相关推荐