1.概念
输入/输出系统解决对各种形式的信息进行输入和输出的控制
输入:外设到主机
输出:主机到外设
(1)输入设备
键盘、鼠标
(2)输出设备
显示器、打印机
(3)外存设备/辅存
如硬盘存储器、磁盘阵列、光盘
(4)外部设备/外设/I/O设备
外部设备=输入设备+输出设备+外存设备(通过输入/输出接口才能访问的外存储设备)
(5)I/O接口/I/O控制器/设备控制器
负责协调主机与外部设备之间的数据传输(协调:速度匹配、电平转换)。如USB接口
注:I/O接口≠I/O端口,I/O端口一般指I/O接口中的各种寄存器,包括数据端口,状态端口和控制端口
2.组成
输入/输出系统分为I/O软件和I/O硬件两部分
(1)I/O软件
包括驱动程序、用户程序、管理程序、升级补丁等,通常采用I/O指令和通道指令来实现CPU与I/O设备的信息交换
①I/O指令
I/O指令是CPU指令的一部分,其格式与其他通用指令不同,地址格式(操作码,命令码,设备码),操作码识别I/O指令类型,命令确定具体操作,设备码指明操作设备
②通道指令
通道指令是通道能识别的指令。通道程序提前编制好放到主存中,在含有通道的计算机中,CPU执行I/O指令对通道发出命令,由通道执行一系列通道指令,代替CPU对I/O设备进行管理,且只能在具有通道的I/O系统中执行
(2)I/O硬件
I/O硬件包括外部设备、设备控制器和接口、I/O总线等,通过设备控制器来控制I/O设备的具体动作,通过I/O接口与主机(总线)相连
①程序查询方式:CPU轮询
②程序中断方式:中断时响应
③DMA方式:直接数据通路
④通道方式:小型CPU
①②主要用于数据传输率较低的外部设备,数据流向:键盘→I/O接口的数据寄存器→数据总线→CPU某寄存器→主存
也称刷新存储器,为了不断提高刷新图像的信号,必须把一帧图像信息存储在刷新存储器中。
VRAM容量(一帧图像的大小)=分辨率(像素点个数)×灰度级位数(每个像素点需要用的比特位数)
VRAM带宽=VRAM容量×帧频(显示器刷新率,每秒刷新帧数)
显示字符的方法以点阵为基础。点阵是指由m×n个点组成的阵列。点阵的多少取决于显示字符的质量和字符窗口的大小。字符窗口是指每个字符在屏幕上所占的点数,它包括字符显示点阵和字符间隔。
主机想要显示信息的ASCII码写入显示存储器,在阴极射线管CRT控制器的控制下,显存的字符会逐个用电信号的方式将点阵存入由ROM构成的字符发生器中,字符发生器中的ROM存放每个ASCII码对应的字形码,即点阵信息。
根据字符的ASCII码和CRT的控制信息,选中指定字符的字形码对应的ROM存储单元,即可找到要显示字符的字形信息。将字形信息送到输出缓冲寄存器,按照点阵中0和1代码不同,通过电路控制(点阵时钟)扫描电子束的开或关,将电子射出,从而在屏幕上显示出字符。对应于每个字符窗口,所需显示字符的ASCII代码被存放在视频存储器VRAM中,以备刷新。
详见操作系统3-2存储系统-主存与CPU的连接&外部存储器-二.外部存储器
I/O接口是主机和外设之间的交接界面,通过接口可以实现主机和外设之间的信息交换。
(1)实现主机和外设的通信联络控制:解决时序配合问题,保证协调工作
(2)进行地址译码和设备选择:CPU送来选择外设的地址码后,接口对地址进行译码以产生设备选择信息,使主机能和指定外设交换信息
(3)实现数据缓冲:速度不匹配的问题,为消除速度差异,设置数据缓冲寄存器
(4)信号格式的转换:电平转换、并串联转换
(5)传送控制命令和状态信息:启动命令、准备就绪命令、中断请求
在主机侧,I/O接口(内部接口)通过I/O总线与内存、CPU相连;在设备侧,I/O接口(外部接口)通过接口电缆与外设相连。一个I/O接口可以接多个设备。
图:I/O接口内部图。控制寄存器、状态寄存器在使用时间上是错开的,因此有的I/O接口中可将二者合二为一
地址总线指明I/O端口(往哪个寄存器中写/读数据)
控制总线用于指明读/写I/O端口的信号(指明对当前端口读还是写)、中断请求信号
数据总线用于读写数据、状态字、控制字、中断类型号(工作完成中断信号类型、故障中断信号类型)
如何确定要操作的设备:每个设备对应一组寄存器,操作不同的寄存器就是在操作不同的设备
①发命令:CPU发送命令字到控制寄存器,向设备发送命令(需要驱动程序的协助)
②读状态:CPU从状态寄存器读取状态字,获得设备或I/O控制器的状态信息。如设备是否已就绪,工作是否已完成
③读/写数据:从数据缓冲寄存器发送或读取数据,完成主机与外设的数据交换。CPU通过数据总线往数据缓冲寄存器中写入想要打印的数据,在控制逻辑的控制下,把数据逐个输出到打印机中。打印机完成后给I/O接口一个状态反馈,I/O接口检测到设备工作已完成后,修改状态寄存器中相应的的比特位。CPU即可通过状态寄存器了解设备的情况。
(1)按数据传送方式分
①并行接口:一字节或一个字的所有位同时传送
②串行接口:一位一位的传送。如USB
(2)按主机访问I/O设备的控制方式分
程序查询接口、中断接口、DMA接口
(3)按功能选择的灵活性分
可编程接口、不可编程接口
I/O端口是指接口电路中可被CPU直接访问的寄存器,主要有数据端口(CPU可读写)、状态端口(CPU只能读)和控制端口(CPU只能写)。
接口=端口+控制逻辑电路
对各个端口进行编号,才能被CPU访问,每个端口对应一个端口地址。
I/O端口的编址方式如下
指把I/O端口当作存储器的单元进行地址分配,这种方式CPU不需要设置专门的I/O指令,用统一的访存指令就可以访问I/O端口。靠不同的地址码区分内存和I/O设备,访存类的指令都可以访问I/O端口。常用于RISC机器
①优点:不需要专门的输入/输出指令,可使CPU访问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设备读/写两组控制信号,增加了控制的复杂性。
回顾:低位交叉编址(双通道):多体低位交叉编址可以有效的提高存储速度。可以在不改变每个模块的存取周期的前提下,采用流水线的方式并行存储,可以提高存储器的带宽。低位地址表示为体号,高位地址为体内地址。在此方式下,总是把高位的体内地址送到由低位体号确定的模块内进行译码。确定某地址属于哪个存储体:模块号=单元地址%模块数m
设存取周期为T=4r,存取时间为r,恢复周期为3r
若连续访问00000、00001、00010…
对于高位交叉编址,这些地址都属于M0存储体,下一次访问前都需要等待M0进行恢复,则连续存储n个存储字需要nT
详见3-1存储系统-存储器概述&主存储器-二.主存储器-(四)双端口RAM和多模块存储器-2.多模块存储器-(2)多体并行存储器-②低位交叉编址(双通道)