文章目录
- 一.I/O系统基本概念
- (一)输入/输出系统
- (二)I/O控制方式
- 二.外部设备
- 1.显示存储器VRAM
- 2.字符显示器
- 3.外储存器
- 三.I/O接口
- 1.I/O接口的功能
- 2.I/O接口的基本结构
- 3.I/O接口的工作原理
- 4.I/O接口的类型
- 5.I/O端口及其编址
- (1)统一编址/存储器映射方式
- (2)独立编址/I/O映射方式
一.I/O系统基本概念
(一)输入/输出系统
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接口与主机(总线)相连
(二)I/O控制方式
①程序查询方式:CPU轮询
②程序中断方式:中断时响应
③DMA方式:直接数据通路
④通道方式:小型CPU
①②主要用于数据传输率较低的外部设备,数据流向:键盘→I/O接口的数据寄存器→数据总线→CPU某寄存器→主存
二.外部设备
1.显示存储器VRAM
也称刷新存储器,为了不断提高刷新图像的信号,必须把一帧图像信息存储在刷新存储器中。
VRAM容量(一帧图像的大小)=分辨率(像素点个数)×灰度级位数(每个像素点需要用的比特位数)
VRAM带宽=VRAM容量×帧频(显示器刷新率,每秒刷新帧数)
2.字符显示器
显示字符的方法以点阵为基础。点阵是指由m×n个点组成的阵列。点阵的多少取决于显示字符的质量和字符窗口的大小。字符窗口是指每个字符在屏幕上所占的点数,它包括字符显示点阵和字符间隔。
主机想要显示信息的ASCII码写入显示存储器,在阴极射线管CRT控制器的控制下,显存的字符会逐个用电信号的方式将点阵存入由ROM构成的字符发生器中,字符发生器中的ROM存放每个ASCII码对应的字形码,即点阵信息。
根据字符的ASCII码和CRT的控制信息,选中指定字符的字形码对应的ROM存储单元,即可找到要显示字符的字形信息。将字形信息送到输出缓冲寄存器,按照点阵中0和1代码不同,通过电路控制(点阵时钟)扫描电子束的开或关,将电子射出,从而在屏幕上显示出字符。对应于每个字符窗口,所需显示字符的ASCII代码被存放在视频存储器VRAM中,以备刷新。
3.外储存器
1.I/O接口的功能
(1)实现主机和外设的通信联络控制:解决时序配合问题,保证协调工作
(2)进行地址译码和设备选择:CPU送来选择外设的地址码后,接口对地址进行译码以产生设备选择信息,使主机能和指定外设交换信息
(3)实现数据缓冲:速度不匹配的问题,为消除速度差异,设置数据缓冲寄存器
(4)信号格式的转换:电平转换、并串联转换
(5)传送控制命令和状态信息:启动命令、准备就绪命令、中断请求
2.I/O接口的基本结构
在主机侧,I/O接口(内部接口)通过I/O总线与内存、CPU相连;在设备侧,I/O接口(外部接口)通过接口电缆与外设相连。一个I/O接口可以接多个设备。
图:I/O接口内部图。控制寄存器、状态寄存器在使用时间上是错开的,因此有的I/O接口中可将二者合二为一
地址总线指明I/O端口(往哪个寄存器中写/读数据)
控制总线用于指明读/写I/O端口的信号(指明对当前端口读还是写)、中断请求信号
数据总线用于读写数据、状态字、控制字、中断类型号(工作完成中断信号类型、故障中断信号类型)
如何确定要操作的设备:每个设备对应一组寄存器,操作不同的寄存器就是在操作不同的设备
3.I/O接口的工作原理
①发命令:CPU发送命令字到控制寄存器,向设备发送命令(需要驱动程序的协助)
②读状态:CPU从状态寄存器读取状态字,获得设备或I/O控制器的状态信息。如设备是否已就绪,工作是否已完成
③读/写数据:从数据缓冲寄存器发送或读取数据,完成主机与外设的数据交换。CPU通过数据总线往数据缓冲寄存器中写入想要打印的数据,在控制逻辑的控制下,把数据逐个输出到打印机中。打印机完成后给I/O接口一个状态反馈,I/O接口检测到设备工作已完成后,修改状态寄存器中相应的的比特位。CPU即可通过状态寄存器了解设备的情况。
4.I/O接口的类型
(1)按数据传送方式分
①并行接口:一字节或一个字的所有位同时传送
②串行接口:一位一位的传送。如USB
(2)按主机访问I/O设备的控制方式分
程序查询接口、中断接口、DMA接口
(3)按功能选择的灵活性分
可编程接口、不可编程接口
5.I/O端口及其编址
I/O端口是指接口电路中可被CPU直接访问的寄存器,主要有数据端口(CPU可读写)、状态端口(CPU只能读)和控制端口(CPU只能写)。
接口=端口+控制逻辑电路
对各个端口进行编号,才能被CPU访问,每个端口对应一个端口地址。
I/O端口的编址方式如下
(1)统一编址/存储器映射方式
指把I/O端口当作存储器的单元进行地址分配,这种方式CPU不需要设置专门的I/O指令,用统一的访存指令就可以访问I/O端口。靠不同的地址码区分内存和I/O设备,访存类的指令都可以访问I/O端口。常用于RISC机器
①优点:不需要专门的输入/输出指令,可使CPU访问I/O的操作更灵活、更方便,还可使端口有较大的编址空间
②缺点:端口占用存储器地址,使内存容量变小,而且利用存储器编址的I/O设备进行数据输入/输出操作,执行速度较慢(地址位数多,寻址时间长)。
(2)独立编址/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编址方式有两种: I/O与内存统一编址和I/O独立编址
①I/O与内存统一编址方式的I/O地址采用与主存单元地址完全一样的格式,I/O设备和主存占用同一个地址空间,CPU可像访问主存一样访问I/O设备,不需要安排专门的I/O指令
②I/O独立编址方式时机器为I/O设备专门安排一套完全不同于主存地址格式的地址编码,此时I/O地址与主存地址是两个独立的空间,CPU需要通过专门的I/O指令来访问I/O地址空间 - 简述I/O接口的功能和基本组成
(1)功能:传送数据、传送命令、反映设备状态、数据缓冲等。详:①实现主机和外设的通信联络控制②进行地址译码和设备选择③实现数据缓冲④信号格式的转换⑤传送控制命令和状态信息
(2)组成:数据缓冲寄存器、状态/控制寄存器、地址译码和I/O控制逻辑、外设界面控制逻辑。详:
①状态/控制寄存器:CPU发送命令字到控制寄存器,向设备发送命令;CPU从状态寄存器读取状态字,获得设备或I/O控制器的状态信息(是否就绪)(检查状态信息如轮询检查、中断等,详见下节)
②数据缓冲寄存器:从数据缓冲寄存器发送或读取数据
③地址译码和I/O控制逻辑:在I/O控制逻辑的指挥下,根据CPU发来的命令字,给对应设备发出一系列控制信号(电信号),以此启动设备(如打印机) - 简述磁盘阵列RAID
RAID廉价冗余磁盘阵列,指将多个独立的物理磁盘组成一个独立的逻辑盘,数据在多个物理盘上分割交叉存储、并行访问,具有更好的性能、可靠性和安全性。
RAID分级如下:
①RAID0:无冗余和无校验(没有容错能力)的磁盘阵列。类似于低位交叉编址的多体存储器,并行访问,速度提升
②RAID1:镜像磁盘阵列,存两份相同数据,可以按要求选择磁盘访问,提升速度;当某磁盘数据损坏时也可找到备份。但有冗余,容量减少一半,存在空间浪费
③RAID2:采用纠错的海明码的磁盘阵列。类似于低位交叉编址的多体存储器,并行访问,速度提升
④RAID3:位交叉奇偶校验的磁盘阵列
⑤RAID4:块交叉奇偶校验的磁盘阵列。与RAID2类似,仅数据分割单位不同。
⑥RAID5:无独立校验的奇偶校验磁盘阵列,数据块级别的分布式校验条带存储。多块磁盘组合为RAID5后,数据将以块为单位同步式分别存储在不同的硬盘上,并对数据进行海明码运算,与其他级别不同的是,该级别的海明码会被写入不同的磁盘
⑦RAID10:镜像与条带存储。它由RAID0余RAID1结合而成,RAID10继承了RAID0的快速与高效,同时也继承了RAID1的数据安全,RAID10至少需要四块硬盘
回顾:低位交叉编址(双通道):多体低位交叉编址可以有效的提高存储速度。可以在不改变每个模块的存取周期的前提下,采用流水线的方式并行存储,可以提高存储器的带宽。低位地址表示为体号,高位地址为体内地址。在此方式下,总是把高位的体内地址送到由低位体号确定的模块内进行译码。确定某地址属于哪个存储体:模块号=单元地址%模块数m
设存取周期为T=4r,存取时间为r,恢复周期为3r
若连续访问00000、00001、00010…
对于高位交叉编址,这些地址都属于M0存储体,下一次访问前都需要等待M0进行恢复,则连续存储n个存储字需要nT