一、基本概念
1、 I/O软件
包括驱动程序,用户程序,管理程序,升级补丁。
1. I/O指令
cpu用于控制 I/O接口,或者控制通道。
I/O接口可以看作是一个“弱鸡”版的cpu里面有数据寄存器,控制寄存器和状态寄存器。
2.通道指令
通道执行的指令,通道指令存储在内存中,当外接多套I/O设备时cpu直接控制则会浪费大量cpu的运算速度,cpu通过调用通道指令将外部设备委托给通道控制。通道位于cpu和内存之间,接收cpu发送来的通道指令,完成任务之后向cpu发送中断请求,将数据或者调用结果反馈给cpu。
2、 I/O硬件
I/O接口, I/O总线和外部设备
二、I/O的控制方式
1、程序查询方式
cpu处理准备和启动I/O设备, 在I/O设备传输完成之后cpu再执行程序。cpu耗时最多。
2、程序中断方式
cpu在执行其他程序的进程的同时向 I/O程序发送 I/O命令, I/O程序开始准备,在 I/O设备完成之后向cpu发送中断请求,cpu响应之后开始处理 I/O请求完成信息传输。cpu耗时较少。
3、DMA方式
DMA(Direct memory access)在 I/O接口上设置一个DMA接口,DMA接口通过DMA主线和主存连接。如下
CPU向DMA发送读写请求,并指明读写地址,磁盘地址和读写数据等参数。DMA自动控制磁盘和主存的读写,每完成一整块数据(如1KB为一整块)的读写才会向cpu发送一次中断请求。
4、通道方式
在一些大型机中有很多套I/O设备,如何这些设备均由cpu管理那么cpu处理其他进程的效率就会降低,因此cpu可以雇一个员工叫“通道”,通过通道指令告诉通道应该做什么,通道和内存直接相接,在完成cpu派发的任务后会向cpu进行汇报(“中断”),cpu接收到之后进行处理。
三、外部设备
1、输入设备
像计算机输入文本命令,数据等信息,主要的输入设备有鼠标键盘。
2、输出设备
将计算机中的信息输出到计算机外,进行显示交换。主要的输出设备有显示器,和打印机。
1.显示器
(1)阴极射线管(CRT)显示器
具体内容如下图
(2)液晶(LCD)
(3)发光二极管(LED)
2.打印机
按印字原理不同可分为
击打打印机,非击打式打印机
按工作方式可分为
针式打印机,喷墨式打印机,激光打印机
按打印机的工作方式可分为
串式打印机(打印速度慢),行式打印机(打印速度快)
四、I/O接口
1、I/O接口的作用
I/O控制器,设备控制器,负责协调主机和外部设备的数据传输。
(1)数据缓冲寄存器(DBR)作用类似于Cache使主机和外设设备达到匹配
(2)状态和错误检测,检测接口状态和错误共cpu调用
(3)控制和定时接受控制信号发过来的控制信号和时钟信号
(4)数据格式转换,串-并和并-串数据类型转换
(5)主机和设备通信,主机-I/O接口-I/O设备之间的通信
内部I/O接口连接数据总线,控制总线,地址总线。内部I/O通过并行传输数据。
外部I/O接口通过接口电缆与外部设备进行连接,并且外部接口可能通过并行传输也可能通过串行传输,因此外部接口需要实现串-并行转换功能。
2、结构和工作原理
一张图解决问题
3、I/O端口
I/O端口是指接口电路中能够被cpu直接访问的寄存器。
如何被cpu访问:
每一个I/O端口有一个自己的端口地址,每一个端口地址对应着唯一的端口,cpu通过这些端口地址访问I/O端口。
1.统一编制
通过地址吗区分IO设备和普通设备,专业解释如下图,有几条专门的数据线用来访问I/O端口。
2.独立编址
编写独立的指令来访问I/O端口,通过编程的方式来访问I/O设备,如intel的input和output命令就是专门用来控制I/O端口的命令。
二者对比:
总的来说一个靠储存器来区分(统一编制)主要是RISC指令集的cpu,每个指令简单无法一次实现I/O的功能只能通过地址来实现功能,多在移动端的机器上。
独立编址像intel的x86指令集中可以编写复杂的指令集一条指令既可以实现I/O设备的输入和输出。
具体八股文如下:
4、分类
为I/O接口的分类上一节有