【计算机组成原理】 输入/输出系统

I/O 系统基本概念程序员

I/O 系统中的几个基本概念以下:编程

  1. 外部设备。包括输入/输出设备及经过输入。输出接口才能访问的外存储结构。
  2. 接口。在各个外设与主机之间传输数据时进行各类协调工做的逻辑部件。协调包括传输过程当中速度的匹配、电平和格式转换等。
  3. 输入设备,用于向计算机系统输入命令和文本、数据等信息的部件。键盘和鼠标是最基本的输入设备。
  4. 输出设备。用于将计算机系统中的信息输出到计算机外部进行显示、交换等的部件。显示器和打印机是最基本的输出设备。
  5. 外存设备。指除计算机内存及 CPU 缓存等外的存储器。硬磁盘、光盘等是最基本的外存设备。

 

通常来讲,I/O 系统由 I/O 软件和 I/O 硬件两部分构成:缓存

  1. I/O 软件。包括驱动程序、用户程序、管理程序、升级补丁等。一般采用 I/O 指令和通道指令实现 CPU 与 I/O 设备的信息交换。
  2. I/O 硬件。包括外部设备、设备控制器和接口、I/O 总线等。经过设备控制器来控制 I/O 设备的具体动做:经过 I/O 接口与主机(总线)相连。

 

在输入/输出系统中,常常须要进行大量的数据传输,而传输过程当中有各类不一样的 I/O 控制方式,基本的控制方式有如下 4 种:安全

  1. 程序查询方式。由 CPU 经过程序不断查询 I/O 设备是否已经作好准备,从而控制 I/O 设备与主机交换信息。
  2. 程序中断方式。只在 I/O 设备准备就绪并向 CPU 发出中断请求时才予以响应。
  3. DMA 方式。主存和 I/O 设备之间有一条直接数据通路,当主存和 I/O 设备交换信息时,无须调用中断服务程序。
  4. 通道方式。在系统中设有通道控制部件,每一个通道都挂接若干外设,主机在执行 I/O 命令时,只需启动有关通道,通道将执行通道程序,从而完成 I/O 操做。

其中,方式 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 接口的主要功能以下:

  1. 实现主机和外设的通讯联络控制。解决主机与外设时序配合问题,协调不一样工做速度的外设和主机之间交换信息,以保证整个计算机系统能统1、协调地工做。
  2. 进行地址译码和设备选择。CPU 送来选择外设的地址码后,接口必须对地址进行译码以以产生设备选择信息,使主机能和指定外设交换信息。
  3. 实现数据缓冲。CPU 与外设之间的速度每每不匹配,为消除速度差别,接口必须设置数据缓冲寄存器,用于数据的暂存,以免因速度不一致而丢失数据。
  4. 信号格式的转换。外设与主机二者的电平、数据格式均可能存在差别,接口应提供计算机与外设的信号格式的转换功能,如电平转换、并/串或串/并转换、模/数或数/模转换等。
  5. 传送控制命令和状态信息。CPU 要启动某一外设时,经过接口中的命令寄存器向外设发出启动命令;外设准备就绪时,则将“准备好”状态信息送回接口中的状态寄存器,并反馈给 CPU。外设向 CPU 提出中断请求和 DMA 请求时,CPU 也应有相应的响应信号反馈给外设。

 

CPU 与外设之间的信息传送,实质上是对接口中的某些寄存器(即端口)进行读或写,如传送数据是对数据端口 DBR 进行读写操做。

内部接口:内部接口与系统总线相连,实质上是与内存、CPU 相连。数据的传输方式只能是并行传输。

外部接口:外部接口经过接口电缆与外设相连,外部接口的数据传输多是串行方式,所以 I/O 接口需具备串/并转换功能。

接口和端口是两个不一样的概念。端口是指接口电路中能够进行读/写的寄存器,若干端口加上相应的控制逻辑才能够组成接口。

 

从不一样的角度看,I/O 接口能够分为不一样的类型。

  1. 按数据传送方式可分为并行接口(一个字节或一个字的全部位同时传送)和串行接口(一位一位地传送),接口要完成数据格式的转换。(这里所说的数据传送方式指的是外设和接口一侧的传送方式,而在主机和接口一侧,数据老是并行传送的)
  2. 按主机访问 I/O 设备的控制方式可分为程序查询接口、中断接口和 DMA 接口等。
  3. 按功能选择的灵活性可分为可编程接口和不可编程接口。

 

I/O 端口是指接口电路中可被 CPU 直接访问的寄存器,主要有数据端口、状态端口和控制端口,若干端口加上相应的控制逻辑电路组成接口。一般,CPU 能对数据端口执行读写操做,但对状态端口只能执行读操做,对控制端口只能执行写操做。

  

  I/O 端口要想可以被 CPU 访问,必需要有端口地址,每一个端口对应一个端口地址。而对 I/O 端口的编址方式有与存储器统一编址和独立编址两种。

  1. 统一编址,又称存储器映射方式,是指把 I/O 端口看成存储器的单元进行地址分配,这种方式 CPU 不须要设置专门的 I/O 指令,用统一的访存指令能够访问 I/O 端口。优势:不须要专门的输入/输出指令,可以使 CPU 访问 I/O 的操做更灵活、更方便,还可以使端口有较大的编址空间。缺点:端口占用存储器地址,使内存容量变小,并且利用存储器编址的 I/O 设备进行数据输入/输出操做,执行速度较慢。
  2. 独立编址,又称 I/O 映射方式,是指 I/O 端口地址与存储器地址无关,独立编址 CPU 须要设置专门的输入/输出指令访问端口。优势:输入/输出指令与存储器指令有明显区别,程序编制清晰,便于理解。缺点:输入/输出指令少,通常只能对端口进行传送操做,尤为须要 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 响应中断后,通过某些操做,转去执行中断服务程序。这些操做是由硬件直接实现的,咱们将它称为中断隐指令。中断隐指令并非系统中的一体真正的指令,它没有操做码,因此中断隐指令是一种不容许也不可能为用户使用的特殊指令。它所完成的操做以下:

  1. 关中断。在中断服务程序中,为了保护中断现场(即 CPU 主要寄存器中的内容)期间不被新的中断打断,必须关中断,从而保证被中断的程序在中断服务程序执行完毕后能接着正确地执行。
  2. 保存断点。为保证在中断服务程序执行完毕后能正确地返回到原来地程序,必须将原来程序的断点【即程序计数器(PC)的内容】保存起来。
  3. 引出中断服务程序。引出中断服务程序的实质是,取出中断服务程序的入口地址并传送给程序计数器(PC)。

 

不一样的设备有不一样的中断服务程序,每一个中断服务程序都有一个入口地址,CPU 必须找到这个入口地址,即中断向量。

 

中断处理过程:(1)关中断(2)保存断点(3)引出中断服务程序(以上三步由硬件完成)(4)保存现场和屏蔽字(5)开中断(6)执行中断服务程序(7)关中断(8)恢复现场和屏蔽字(9)开中断、中断返回(以上六步由中断程序完成)

 

 

 

 

 

 在 DMA 方式中,中断的做用仅限于故障和正常传送结束时的处理。

 

主存和 DMA 接口之间有一条直接数据通路。因为 DMA 方式传送数据不须要通过 CPU,所以没必要中断现行程序,I/O 与主机并行工做,程序和传送并行工做。

DMA 方式具备如下特色:

  1. 它使主存与 CPU 的固定联系脱钩,主存既可被 CPU 访问,又可被外设访问。
  2. 在数据块传送时,主存的地址肯定、传送数据的计数等都由硬件电路直接实现。
  3. 主存中要开辟专用缓冲区,及时供给和接收外设的数据。
  4. DMA 传送速度快,CPU 和外设并行工做,提升了系统效率。
  5. DMA 在传送开始以前要经过程序进行预处理,结束后要经过中断方式进行后处理。

 

当 I/O 设备须要进行数据传输时,经过 DMA 控制器向 CPU 提出 DMA 传送请求,CPU 响应后将让出系统总线,由 DMA 控制器接管总线进行数据传送。其主要给功能以下:

  1. 接受外设发出的 DMA 请求,并向 CPU 发出总线请求。
  2. CPU 响应此总线请求,发出总线响应信号,接管总线控制权,进入 DMA 操做周期。
  3. 肯定传送数据的主存单元地址及长度,并自动修改主存地址计数和传送长度计数。
  4. 规定数据在主存和外设之间的传送方向,发出读写等控制信号,执行数据传送操做。

 

主存和 DMA  控制器之间有一条数据通路,所以主存和 I/O 设备之间交换信息时,不经过 CPU。但当 I/O 设备和 CPU 同时访问主存时,可能发生冲突,为了有效地使用主存,DMA 控制器与 CPU一般采用如下 3 种方式使用主存:

  1. 中止 CPU 访问主存。这种方式是当外设须要传送成组数据时,由 DMA 接口向 CPU 发送一个信号,要求 CPU 放弃地址线、数据线及有关控制线的使用权,DMA 接口得到总线控制权后,开始进行数据传送。数据传送结束后,DMA 接口通知 CPU 可使用主存,并把总线控制权交还给 CPU。在这种传送过程当中,CPU 基本处于不工做状态或保持原始状态。
  2. DMA 与 CPU 交替访存。这种方式适用于 CPU 的工做周期比主存存取周期长的状况。例如,若 CPU 的工做周期是 1.2μs,主存的存取周期小于 0.6μs,则可将一个 CPU 周期分为 C1 和 C2 两个周期,其中 C1 专供 DMA 访存, C2 专供 访存。这种方式不须要总线使用权的申请、创建和归还过程,总线使用权是经过 C1 和 C2 分时控制的。
  3. 周期挪用(周期窃取)这种方式是前两种方式的折中。当 I/O 设备没有 DMA 请求时,CPU 按程序的要求访问主存,一旦 I/O 设备有了 DMA 请求,就会遇到 3 种 状况,第 1 种是此时 CPU 不在访存(入 CPU 正在执行乘法指令),故 I/O 的访存请求与 CPU 未发生冲突;第 2 种是 CPU 正在访存,此时必须待存取周期结束后,CPU 再将总线占有权让出;第 3 种是 I/O 和 CPU 同时请求访存,出现访存冲突,此时 CPU 要暂时放弃总线占有权,由 I/O 设备挪用一个或几个存取周期。

 

DMA 方式和中断方式的区别:

  1. 中断方式是程序的切换,须要保护和恢复现场;而 DMA 方式除了预处理和后处理,其余时候不占用 CPU 的任何资源。
  2. 对中断请求的响应只能发生在每条指令执行完毕时(即指令的执行周期后);而对 DMA 请求的响应能够发生在每一个机器周期结束时(在取指周期、间址周期、执行周期后都可),只要 CPU 不占用总线就可被响应。
  3. 中断传送过程须要 CPU 的干预;而 DMA 传送过程不须要 CPU 的干预,故数据传输率很是高,适合于高速外设的成组数据传送。
  4. DMA 请求的优先级高于中断请求。
  5. 中断方式具备对异常事件的处理能力,而 DMA 方式仅局限于传送数据块的 I/O 操做。
  6. 从数据传送来看,中断方式靠程序传送,DMA 方式靠硬件传送

 

 中断向量的地址是中断服务程序入口地址的地址。(俄罗斯套娃再现)

只有具备 DMA J接口的设备才能产生 DMA 请求。

一条指令执行完毕不可能发生中断请求,而可能响应中断请求。

容许中断触发器置 0 表示关中断,由中断隐指令完成,即由硬件自动完成。

多重中断系统在保护被中断进程现场时关中断,执行中断处理程序时开中断,即中断处理期间 CPU 不必定处于关中断状态。

程序中断方式和 DMA 方式都有中断请求,但目的不一样。

CPU 响应中断方式的特色是 CPU 和外设并行工做,传送与主程序串行工做;DMA 方式的特色是 CPU 与外设并行工做,传送与主程序并行工做

CPU 响应 DMA 请求的条件是当前机器周期执行完。DMA 在与主存交换数据时经过周期窃取方式,窃取的是存储周期。

DMA 方式传送数据时,挪用周期不会改变 CPU 现场,所以无须占用 CPU 的程序计数器和寄存器。

 

中断响应优先级是由硬件排队线路或中断查询程序的查询顺序决定的,不可动态改变;而中断处理优先级能够由中断屏蔽字来改变,反映的是正在处理的中断是否比新发生的中断的处理优先级低(屏蔽位为“0”,对新中断开放),如果,则停止正在处理的中断,转到新中断去处理,处理完后再回到刚才被停止的中断继续处理。

 

以上均来自王道书籍及课程等

相关文章
相关标签/搜索