I/O 系统基本概念程序员
I/O 系统中的几个基本概念以下:编程
通常来讲,I/O 系统由 I/O 软件和 I/O 硬件两部分构成:缓存
在输入/输出系统中,常常须要进行大量的数据传输,而传输过程当中有各类不一样的 I/O 控制方式,基本的控制方式有如下 4 种:安全
其中,方式 1 和方式 2 主要用于数据传输率较低的外部设备,方式 3 和方式 4 主要用于数据传输率较高的设备。性能
I/O 设备不可能直接与主板总线相连,它老是经过设备控制器来相连的。spa
I/O 指令是指令系统的一部分,时及其指令的一类,但其为了反映与 I/O 设备交互的特色,格式和其余通用指令相比有所不一样。blog
通道程序存放在主存而非通道中,由通道从主存中取出并执行。通道程序由通道执行,且只能在具备通道的 I/O 系统中执行。接口
显示器的主要参数:进程
分辨率:所能表示的像素个数,屏幕上的每一个光点就是一个像素,以宽和高的像素数的乘积表示,如 800 * 600、1280 * 1024等。事件
灰度级:灰度级是指黑白显示器中所显示的像素点的亮暗差异,在彩色显示器中则表现为颜色的不一样,灰度级越多,图像层次越清楚,典型的有 8 位(256级)、16 位等。
刷新:光点只能保持极短的时间便会消失,为此必须在广电消失以前再从新扫描显示一遍,这个过程称为刷新。
刷新频率:指单位时间内扫描整个屏幕内容的次数。按照人的视觉生理,刷新频率大于 30 Hz 时才不会感到闪烁,一般显示器的刷新频率为 60~120 Hz。
显示存储器(VRAM):也称刷新存储器,为了避免断提升刷新图像的信号,必须把一帧图像信息存储在刷新存储器中。其存储容量由图像分辨率和灰度级决定,分辨率越高,灰度级越多。刷新存储器容量越大。VRAM 容量 = 分辨率 * 灰度级位数,VRAM 带宽 = 分辨率 * 灰度级位数 * 帧频。
RAID(廉价冗余磁盘阵列)是指将多个独立的物理磁盘组成一个独立的逻辑盘,数据在多个物理盘上分割交叉存储、并行访问,具备更好的存储性能、可靠性和安全性。RAID 经过同时使用多个磁盘,提升了传输率;经过在多个磁盘上并行存取来大幅提升存储系统的数据吞吐量;经过镜像功能,提升安全可靠性;经过数据校验,提供容错能力。
在字符显示器的 VRAM 中存放 ASCII 码以显示字符。
刷新存储器中存储单元的字长取决于显示的颜色数,颜色数为 m,字长为 n,两者的关系为 2n = m。
I/O 接口
I/O 接口(I/O 控制器)是主机和外设之间的交接界面,经过接口能够实现主机和外设之间的信息交换。主机和外设具备各自的工做特色,它们在信息形式和工做速度上具备很大的差别,接口正是为了解决这些差别而设置的。
I/O 接口的主要功能以下:
CPU 与外设之间的信息传送,实质上是对接口中的某些寄存器(即端口)进行读或写,如传送数据是对数据端口 DBR 进行读写操做。
内部接口:内部接口与系统总线相连,实质上是与内存、CPU 相连。数据的传输方式只能是并行传输。
外部接口:外部接口经过接口电缆与外设相连,外部接口的数据传输多是串行方式,所以 I/O 接口需具备串/并转换功能。
接口和端口是两个不一样的概念。端口是指接口电路中能够进行读/写的寄存器,若干端口加上相应的控制逻辑才能够组成接口。
从不一样的角度看,I/O 接口能够分为不一样的类型。
I/O 端口是指接口电路中可被 CPU 直接访问的寄存器,主要有数据端口、状态端口和控制端口,若干端口加上相应的控制逻辑电路组成接口。一般,CPU 能对数据端口执行读写操做,但对状态端口只能执行读操做,对控制端口只能执行写操做。
I/O 端口要想可以被 CPU 访问,必需要有端口地址,每一个端口对应一个端口地址。而对 I/O 端口的编址方式有与存储器统一编址和独立编址两种。
在统一编址的方式下,区分存储单元和 I/O 设备是靠不一样的地址线。
I/O 的编址方式采用统一编址方式时,进行输入/输出的操做的指令是访存指令。统一编址时,直接使用指令系统中的访存指令来完成输入/输出操做;独立编址时,则须要使用专门的输入/输出指令来完成输入/输出操做。
程序员进行系统调用访问设备使用的是逻辑地址。
I/O 方式
经常使用的 I/O 方式有程序查询、程序中断、DMA 和通道等,其中前两种方式更依赖于 CPU 中程序指令的执行。
外中断是指来自处理器和内存之外的部件引发的中断,包括 I/O 设备发出的 I/O 中断、外部信号中断(如用户按 Esc 键),以及各类定时器引发的时钟中断等。外中断在狭义上通常称为中断。
内中断主要是指在处理器和内存内部产生的中断,包括程序运算引发的各类错误,如地址非法、校验错、页面失效、存取访问控制错、算术溢出操做、数据格式非法、除数为 0、非法指令、用户程序执行特权指令、分时系统中的时间片中断及用户态到核心态的切换等。
硬件中断:经过外部的硬件产生的中断。硬件中断属于外中断。
软件中断:经过某条指令产生的中断,这种中断是能够编程实现的。软件中断是内中断。
非屏蔽中断:非屏蔽中断是一种硬件中断,此种中断经过不可屏蔽中断请求 NMI 控制,不受中断标志位 IF 的影响,即便在关中断(IF = 0)的状况下也会被响应。
可屏蔽中断:可屏蔽中断也是一种硬件中断,此种中断经过中断请求标记触发器 INTR 控制,且受中断标志位影响,在关中断状况下不接受中断请求。
中断判优既能够用硬件实现,又可用软件实现。硬件实现是经过硬件排队器实现的,它既能够设置在 CPU 中,又能够分散在各个中断源中,软件实现是经过查询程序实现的。通常来讲,硬件故障中断属于最高级,其次是软件中断,非屏蔽中断优于可屏蔽中断,DMA 请求优于 I/O 设备传送的中断请求,高速设备优于低速设备,输入设备优于输出设备,实时设备优于普通设备等。
CPU 响应中断后,通过某些操做,转去执行中断服务程序。这些操做是由硬件直接实现的,咱们将它称为中断隐指令。中断隐指令并非系统中的一体真正的指令,它没有操做码,因此中断隐指令是一种不容许也不可能为用户使用的特殊指令。它所完成的操做以下:
不一样的设备有不一样的中断服务程序,每一个中断服务程序都有一个入口地址,CPU 必须找到这个入口地址,即中断向量。
中断处理过程:(1)关中断(2)保存断点(3)引出中断服务程序(以上三步由硬件完成)(4)保存现场和屏蔽字(5)开中断(6)执行中断服务程序(7)关中断(8)恢复现场和屏蔽字(9)开中断、中断返回(以上六步由中断程序完成)
在 DMA 方式中,中断的做用仅限于故障和正常传送结束时的处理。
主存和 DMA 接口之间有一条直接数据通路。因为 DMA 方式传送数据不须要通过 CPU,所以没必要中断现行程序,I/O 与主机并行工做,程序和传送并行工做。
DMA 方式具备如下特色:
当 I/O 设备须要进行数据传输时,经过 DMA 控制器向 CPU 提出 DMA 传送请求,CPU 响应后将让出系统总线,由 DMA 控制器接管总线进行数据传送。其主要给功能以下:
主存和 DMA 控制器之间有一条数据通路,所以主存和 I/O 设备之间交换信息时,不经过 CPU。但当 I/O 设备和 CPU 同时访问主存时,可能发生冲突,为了有效地使用主存,DMA 控制器与 CPU一般采用如下 3 种方式使用主存:
DMA 方式和中断方式的区别:
中断向量的地址是中断服务程序入口地址的地址。(俄罗斯套娃再现)
只有具备 DMA J接口的设备才能产生 DMA 请求。
一条指令执行完毕不可能发生中断请求,而可能响应中断请求。
容许中断触发器置 0 表示关中断,由中断隐指令完成,即由硬件自动完成。
多重中断系统在保护被中断进程现场时关中断,执行中断处理程序时开中断,即中断处理期间 CPU 不必定处于关中断状态。
程序中断方式和 DMA 方式都有中断请求,但目的不一样。
CPU 响应中断方式的特色是 CPU 和外设并行工做,传送与主程序串行工做;DMA 方式的特色是 CPU 与外设并行工做,传送与主程序并行工做。
CPU 响应 DMA 请求的条件是当前机器周期执行完。DMA 在与主存交换数据时经过周期窃取方式,窃取的是存储周期。
DMA 方式传送数据时,挪用周期不会改变 CPU 现场,所以无须占用 CPU 的程序计数器和寄存器。
中断响应优先级是由硬件排队线路或中断查询程序的查询顺序决定的,不可动态改变;而中断处理优先级能够由中断屏蔽字来改变,反映的是正在处理的中断是否比新发生的中断的处理优先级低(屏蔽位为“0”,对新中断开放),如果,则停止正在处理的中断,转到新中断去处理,处理完后再回到刚才被停止的中断继续处理。
以上均来自王道书籍及课程等