408计算机组成原理知识点——第七章 输入输出系统


注:内容参考王道2024考研复习指导

*IO系统基本概念

“I/O”就是“输入/输出”(Input/Output),I/O设备就是可以将数据输入到计算机,或者可以接收计算机输出数据的外部设备。

image-20240418202039914

主机通过I/O接口与I/O设备进行交互。

I/O接口:又称I/O控制器(I/O Controller)、设备控制器,负责协调主机与外部设备之间的数据传输。

*I/O控制方式

image-20240418202146987

程序查询方式

image-20240418204031586

CPU不断轮询检查I/O控制器中的“状态寄存器”,检测到状态为“已完成”后,再从数据寄存器取出数据。

程序中断方式

image-20240418204042877

等待键盘I/O时,CPU可以先去执行其他程序,键盘I/O完成后I/O控制器向CPU发出中断请求,CPU响应中断请求并取走输入数据。

:对于快速I/O设备,如“磁盘”,每准备好一个字就给CPU发送一次中断请求,会导致CPU需要花大量的时间来处理中断服务程序,CPU利用率严重下降。

DMA控制方式

image-20240418204141459

:注:DMA接口,即DMA控制器,也是一种特殊的I/O控制器。

image-20240418204408361

主存与高速I/O设备之间有一条直接数据通路(DMA总线)。

CPU向DMA接口发出”读/写“命令,并指明主存地址、磁盘地址、读写数据量等参数。

DMA控制器自动控制磁盘与主存的数据读写,每完成一整块数据读写,才向CPU发出一次中断请求。

通道控制方式

:通道可以理解为是“弱版的CPU”。通道可以识别并执行一系列通道指令,通道指令种类、功能通常比较单一。

image-20240418204510980

*I/O系统基本组成

一般来说,I/O系统由I/O软件和I/O硬件两部分构成。

I/O硬件

包括外部设备、I/O接口、I/O总线等。

image-20240418204631864

I/O软件

包括驱动程序、用户程序、管理程序、升级补丁等。

通常采用I/O指令和通道指令实现主机和I/O设备的信息交换。

I**/O指令**

image-20240418204740233

通道指令

通道能识别的指令。

通道程序提前编制好放在主存中,在含有通道的计算机中,CPU执行I/O指令对通道发出命令,由通道执行一系列通道指令,代替CPU对I/O设备进行管理。

*外部设备

外部设备也称外围设备,是除了主机以外的、能直接或间接与计算机交换信息的装置。

输入设备

用于向计算机系统输入命令和文本、数据等信息的部件。键盘和鼠标是最基本的输入设备。

输出设备

用于将计算机系统中的信息输出到计算机外部进行显示、交换等的部件。显示器和打印机是最基本的输出设备。

显示器

参数

屏幕大小:以对角线长度表示,常用的有12~29英寸等。

分辨率:所能表示的像素个数,屏幕上的每一个光点就是一个像素,以宽、高的像素的乘积表示,例如,800×600、1024×768和1280×1024等。

灰度级:灰度级是指黑白显示器中所显示的像素点的亮暗差别,在彩色显示器中则表现为颜色的不同,灰度级越多,图像层次越清楚逼真,典型的有8位(256级)、16位等。

刷新:光点只能保持极短的时间便会消失,为此必须在光点消失之前再重新扫描显示一遍,这个过程称为刷新。

刷新频率:单位时间内扫描整个屏幕内容的次数,按照人的视觉生理,刷新频率大于30Hz时才不会感到闪烁,通常显示器刷新频率在60~120Hz。

显示存储器(VRAM):也称刷新存储器,为了不断提高刷新图像的信号,必须把一帧图像信息存储在刷新存储器中。其存储容量由图像分辨率和灰度级决定,分辨率越高,灰度级越多,刷新存储器容量越大。

VRAM容量= 分辨率× 灰度级位数,VRAM带宽= 分辨率× 灰度级位数× 帧频

分类

  1. 阴极射线管(CRT)

显示字符的方法以点阵为基础。点阵是指由m×n个点组成的阵列。点阵的多少取决于显示字符的质量和字符窗口的大小。字符窗口是指每个字符在屏幕上所占的点数,它包括字符显示点阵和字符间隔。

将点阵存入由ROM构成的字符发生器中,在CRT进行光栅扫描的过程中,从字符发生器中依次读出某个字符的点阵,按照点阵中0和1代码不同控制扫描电子束的开或关,从而在屏幕上显示出字符。对应于每个字符窗口,所需显示字符的ASCII代码被存放在视频存储器VRAM中,以备刷新。

  1. 液晶(LCD)
  2. 发光二极管(LED)
打印机

打印机是计算机的输出设备之一,用于将计算机处理结果打印在相关介质上。

  • 按印字原理不同可分为击打式打印机、非击打式打印机。
  • 按打印机工作方式不同可分为串行打印机、行式打印机。
  • 按工作方式可分为针式打印机、喷墨打印机、激光打印机。

外存设备

是指除计算机内存及CPU缓存等以外的存储器。硬磁盘、光盘等是最基本的外存设备。

IO接口

I/O接口(也称I/O控制器)是主机和外设之间的交接界面,通过接口可以实现主机和外设之间的信息交换。

image-20240418210355074

I/O接口的作用

  1. 进行地址译码和设备选择。

CPU送来选择外设的地址码后,接口必须对地址进行译码以产生设备选择信息,使主机能和指定外设交换信息。

  1. 实现主机和外设的通信联络控制。

解决主机与外设时序配合问题,协调不同工作速度的外设和主机之间交换信息,以保证整个计算机系统能统一、协调地工作。

  1. 实现数据缓冲。

CPU与外设之间的速度往往不匹配,为消除速度差异,接口必须设置数据缓冲寄存器,用于数据的暂存,以避免因速度不一致而丢失数据。

  1. 信号格式的转换。

外设与主机两者的电平、数据格式都可能存在差异,接口应提供主机与外设的信号格式的转换功能,如电平转换、并/串或串/并转换、模/数或数/模转换等。

  1. 传送控制命令和状态信息。

CPU要启动某外设时,通过接口中的命令寄存器向外设发出启动命令;外设准备就绪时,则将“准备好”状态信息送回接口中的状态寄存器,并反馈给CPU。外设向CPU提出中断请求时,CPU也应有相应的响应信号反馈给外设。

I/O接口的结构

内部接口与系统总线相连,实质上是与内存、CPU相连。外部接口通过接口电缆与外设相连,外部接口的数据传输可能是串行方式,因此I/O接口需具有串/并转换功能。

数据缓冲寄存器用来暂存与CPU或内存之间传送的数据信息。状态寄存器用来记录接口和设备的状态信息。控制寄存器用来保存CPU对外设的控制信息。

:状态寄存器和控制寄存器在传送方向上是相反的,在访问时间上也是错开的,因此可将它们合二为一。

image-20240418210608181

I/O接口的工作原理

image-20240418210725309

  1. 发命令:发送命令字到I/O控制寄存器,向设备发送命令(需要驱动程序的协助)
  2. 读状态:从状态寄存器读取状态字,获得设备或I/O控制器的状态信息
  3. 读/写数据:从数据缓冲寄存器发送或读取数据,完成主机与外设的数据交换

对数据缓冲寄存器、状态/控制寄存器的访问操作是通过相应的指令来完成的,通常称这类指令为IO指令,I/O指令只能在操作系统内核的底层I/O软件中使用,它们是一种特权指令。

接口与端口

image-20240418211005301

I/O端口是指接口电路中可以被CPU直接访问的寄存器。

I/O端口要想能够被CPU访问,必须要有端口地址,每一个端口都对应着一个端口地址。

I/O端口的编址

image-20240418211200115

独立编址也称I/O映射方式,是指对所有的I/O端口单独进行编址。I/O端口的地址空间与主存地址空间是两个独立的地址空间,它们的范围可以重叠,相同地址可能属于不同的地址空间。靠不同的指令区分内存和I/O设备。只能用专门的I/O指令访问I/O端口(Intel处理器常用,IN、OUT就是IO指令)

优点:I/O端口数比主存单元数少得多,只需少量地址线,使得I/O端口译码简单,寻址速度更快。使用专用I/O指令,可使得程序更加清晰,便于理解和检查。

缺点:I/O指令少,只提供简单的传输操作,所以程序设计的灵活性较差。此外,CPU需要提供存储器读/写、1/O设备读/写两组控制信号,增大了控制的复杂性。

统一编址也称存储器映射方式,是指把主存地址空间分出一部分给I/O端口进行编址,I/O端口和主存单元在同一地址空间的不同分段中,根据地址范围就能区分访问的是I/O端口还是主存单元,因此无须设置专门的I/O指令,用统一的访存指令就可访问IO端口(RISC机器常用)。

优点:不需要专门的I/O指令,使得CPU访问I/O的操作更加灵活和方便,还使端口有较大的编址空间。1/0访问的保护机制可由虚拟存储管理系统来实现,无须专门设置。

缺点:端口地址占用了部分主存地址空间,使主存可用容量变小。此外,由于在识别I/O端口时全部地址线都需要参加译码,使得译码电路变得更复杂,降低了译码速度。

I/O接口的类型

  1. 按数据传送方式分为并行接口(一个字节或一个字所有位同时传送),串行接口(一位一位地传送)。

    :这里所说的数据传送方式指的是外设和接口一侧的传送式。

  2. 按主机访问I/O设备的控制方式可分为程序查询接口、中断接口、DMA接口

  3. 按功能选择的灵活性可分为可编程接口、不可编程接口

IO方式

程序查询方式

信息交换的控制直接由CPU执行程序实现。程序查询方式接口中设置一个数据缓冲寄存器(数据端口)和一个设备状态寄存器(状态端口)。主机进行I/O操作时,先读取设备的状态并根据设备状态决定下一步操作究竟是进行数据传送还是等待。

image-20240418212001539

程序查询方式流程图

程序查询方式的工作流程如下:

  1. CPU执行初始化程序,并预置传送参数。
  2. 向I/O接口发出命令字,启动I/O设备。
  3. 从外设接口读取其状态信息。
  4. CPU周期或持续的查询设备状态,直到外设准备就绪。
  5. 传送一次数据。
  6. 修改地址和计数器参数。
  7. 判断传送是否结束,若未结束转第3步,直到计数器为0。

image-20240418212044692

独占查询:一旦设备被启动,CPU就一直持续查询接口状态,CPU花费100%的时间用于I/O操作,此时外设和CPU完全串行工作。

定时查询:CPU周期性地查询接口状态,每次总是等到条件满足才进行一个数据的传送,
传送完成后返回到用户程序。查询的间隔内CPU可以执行其他程序。定时查询的时间间隔与设备的数据传输速率有关(在保证数据不丢失的情况下)。

优点:接口设计简单、设备量少。

缺点:CPU在信息传送过程中要花费很多时间用于查询和等待,而且在一段时间内只能和一台外设交换信息,效率大大降低。

程序中断方式

中断的基本概念

程序中断是指在计算机执行现行程序的过程中,出现某些急需处理的异常情况或特殊请求,CPU暂时中止现行程序,而转去对这些异常情况或特殊请求进行处理,在处理完毕后CPU又自动返回到现行程序的断点处,继续执行原程序。

image-20240418212408622

中断的工作流程

image-20240418213342329

中断请求

中断源是请求CPU中断的设备或事件,计算机允许有多个中断源,每个中断源向CPU发出中断请求的时间是随机的。

为了记录中断事件并区分不同的中断源,中断系统需对每个中断源设置中断请求标记触发器INTR,当其状态为“1”时,表示中断源有请求。这些触发器可组成中断请求标记寄存器,该寄存器可集中在CPU中,也可分散在各个中断源中。

image-20240418212532500

对于外中断,CPU是在统一的时刻即每条指令执行阶段结束前向接口发出中断查询信号,以获取I/O的中断请求,也就是说,CPU响应中断的时间是在每条指令执行阶段的结束时刻。

中断响应判优

中断响应优先级是指CPU响应中断请求的先后顺序。

中断判优既可以用硬件实现,也可用软件实现:硬件实现是通过硬件排队器实现的,它既可以设置在CPU中也可以分散在各个中断源中;软件实现是通过查询程序实现的。

image-20240418212701069

优先级设置

  1. 硬件故障中断属于最高级,其次是软件中断;

  2. 非屏蔽中断优于可屏蔽中断;

  3. DMA请求优于I/O设备传送的中断请求

  4. 高速设备优于低速设备;

  5. 输入设备优于输出设备;

  6. 实时设备优于普通设备。

CPU响应中断的条件

CPU在满足一定的条件下响应中断源发出的中断请求,并经过一些特定的操作,转去执行中断服务程序。CPU响应中断必须满足以下3个条件:

  1. 中断源有中断请求。
  2. CPU允许中断及开中断(异常和不可屏蔽中断不受此限制)。
  3. 一条指令执行完毕(异常不受此限制),且没有更紧迫的任务。

:I/O设备的就绪时间是随机的,而CPU在统一的时刻即每条指令执行结束时,采样中断请求信号(开中断的情况下),以获取I/O的中断请求,也就是说,CPU响应中断的时间是在每条指令执行阶段的结束时刻。这里说的中断仅指IO中断,异常不属于此类情况。

中断响应过程

CPU响应中断后,经过某些操作,转去执行中断服务程序。这些操作是由硬件直接实现的,我们将它称为中断隐指令

中断隐指令并不是指令系统的一条真正的指令,只是一种虚拟的说法,本质上是硬件的一系列自动操作。

:采用硬件方法保护并更新PC的内容,而不由软件完成,这样可以避免因为软件保护和恢复PC内容而造成的时间开销和错误风险,1提高中断处理的正确性和效率。

中断隐指令的主要任务:

  1. 关中断

为了保护中断现场(即CPU主要寄存器中的内容)期间不被新的中断所打断,必须关中断,从而保证被中断的程序在中断服务程序执行完毕之后能接着正确地执行下去。

将允许中断触发器置0

  1. 保存断点

为了保证在中断服务程序执行完毕后能正确地返回到原来的程序,必须将原来程序的断点(指令无法直接读取的PC和PSW的内容)保存在栈或特点的寄存器中。

  1. 引出中断服务程序

识别中断源(有软件查询法和硬件向量法),引出中断服务程序的实质就是取出中断服务程序的入口地址并传送给程序计数器(PC)。

中断向量

中断识别分为向量中断和非向量中断两种。非向量中断即软件查询法

把系统中的全部中断向量集中存放到存储器的某个区域内,这个存放中断向量的存储区就称为中断向量表。

CPU响应中断后,通过识别中断源获得中断类型号,然后据此计算出对应中断向量的地址(是中断服务程序的入口地址的地址);再根据该地址从中断向量表中取出中断服务程序的入口地址,并送入程序计数器PC,以转去执行中断服务程序,这种方法被称为中断向量法,采用中断向量法的中断被称为向量中断

image-20240418213124056

中断处理过程
  1. 保护现场和屏蔽字

保存通用寄存器和状态寄存器的内容(eg:保存ACC寄存器的值),以便返回原程序后可以恢复CPU环境。可使用堆栈,也可以使用特定存储单元。

  1. 执行中断服务程序

主体部分,如通过程序控制需打印的字符代码送入打印机的缓冲存储器中(eg:中断服务的过程中有可能修改ACC寄存器的值)。

  1. 恢复现场和屏蔽字

通过出栈指令或取数指令把之前保存的信息送回寄存器中(eg:把原程序算到一半的ACC值恢复原样)

  1. 开中断、中断返回

通过中断返回指令回到原程序断点处。

多重中断

单重中断:执行中断服务程序时不响应新的中断请求。

多重中断:又称中断嵌套,执行中断服务程序时可响应新的中断请求。

image-20240418213447447

中断屏蔽技术

中断屏蔽技术主要用于多重中断,CPU要具备多重中断的功能,须满足下列条件。

  • 在中断服务程序中提前设置开中断指令。
  • 优先级别高的中断源有权中断优先级别低的中断源。

每个中断源都有一个屏蔽触发器(MASK),1表示屏蔽该中断源的请求,0表示可以正常申请,所有屏蔽触发器组合在一起,便构成一个屏蔽字寄存器,屏蔽字寄存器的内容称为屏蔽字。

例题:设某机有4个中断源A、B、C、D,其硬件排队优先次序为A>B>C>D,现要求将中断处理次序改为D>A>C>B。
1)写出每个中断源对应的屏蔽字。
2)按下图所示的时间轴给出的4个中断源的请求时刻,画出CPU执行程序的轨迹。设每个中断源的中断服务程序时间均为20us。

image-20240418213702497

程序中断方式工作流程

image-20240418214033411

例题:假定CPU主频为50MHz,CPI为4。设备D采用异步串行通信方式向主机传送7位ASCII字符,通信规程中有1位奇校验位和1位停止位,从D接收启动命令到字符送入I/O端口需要0.5ms。请回答下列问题,要求说明理由。
1)每传送一个字符,在异步串行通信线上共需传输多少位?在设备D持续工作过程中,每秒钟最多可向I/O端口送入多少个字符?
2)设备D采用中断方式进行输入/输出,示意图近似如上流程图:I/O端口每收到一个字符申请一次中断,中断响应需10个时钟周期,中断服务程序共有20条指令,其中第15条指令启动D工作。若CPU需从D读取1000个字符,则完成这一任务所需时间大约是多少个时钟周期?CPU用于完成这一任务的时间大约是多少个时钟周期?在中断响应阶段CPU进行了哪些操作?

1)至少包含1位起始位和1位停止位,停止位可能有多位。每传送一个字符需要传送1位起始位、7位数据位、1位校验位、1位停止位,共需传送10位。

每0.5ms可送入1个字符,每秒可送入1s/0.5ms = 2000 个字符。

2)

主频50MHz,时钟周期为1/50MHz = 20ns,0.5ms对应时钟周期数为0.5ms/20ns = 25000

传送1个字符需要的时钟周期数为25000 + 10 + 15×4 = 25070,传送1000个字符需要的时钟周期数为25070×1000 = 25070000

CPU用于该任务的时间大约为1000×(10+20×4)= 9×10^4 个时钟周期

DMA方式

DMA方式是一种完全由硬件进行成组信息传送的控制方式,在数据准备阶段,CPU与外设并行工作。

DMA方式在外设与内存之间开辟了一条“直接数据通路”,信息传送不再经过CPU,降低了CPU在传送数据时的开销,因此称为直接存储器存取方式。由于数据传送不经过CPU,因此不需要保护、恢复CPU现场等烦琐操作。

这种方式适用于磁盘、显卡、声卡、网卡等高速设备大批量数据的传送,它的硬件开销比较大。在DMA方式中,中断的作用仅限于故障和正常传送结束时的处理。

DMA控制器

image-20240418214730744

CPU向DMA控制器指明要输入还是输出;要传送多少个数据;数据在主存、外设中的地址。

工作流程

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

DMA控制器的组成

image-20240427200401786

主存地址计数器(AR):存放要交换数据的主存地址。在传送前,其保存的是传送数据的主存起始地址;每传送一个字,地址寄存器的内容就加1,直至该批数据传送完毕。

传送长度计数器(WC):记录传送数据的总长度。在传送前,其记录的是该批数据的总字数;每传送一个字,计数器就减1,直至计数器为0,表示该批数据传送完毕。

数据缓冲寄存器:暂存每次传送的数据。通常,DMA接口与主存之间的传送单位为字,而DMA与设备之间的传送单位可能为字节或位。

DMA请求触发器:每当I/O设备准备好数据后,发出一个控制信号,使DMA请求触发器置位。

“控制/状态”逻辑:用于指定传送方向,修改传送参数,并对DMA请求信号、CPU响应信号进行协调和同步。

中断机构:当一批数据传送完毕后触发中断机构,向CPU提出中断请求。

DMA传送过程

image-20240418215001078

预处理:CPU完成寄存器初值设置等准备工作。

数据传送:CPU继续执行主程序,DMA控制器完成数据传送

后处理:CPU执行中断服务程序做DMA结束处理。

DMA传送方式

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

  1. 停止CPU访问主存

image-20240418215144916

控制简单,CPU处于不工作状态或保持状态,未充分发挥CPU对主存的利用率。

  1. DMA与CPU交替访存

image-20240418215312322

这种方式适用于CPU的工作周期比主存存取周期长的情况。例如,若CPU的工作周期是1.2us,主存的存取周期小于0.6us,则可将一个CPU周期分为C1和C2两个周期,其中C1专供DMA访存,C2专供CPU访存。

不需要总线使用权的申请、建立和归还过程,硬件逻辑更为复杂。

  1. 周期挪用(周期窃取)

由于I/O访存的优先级高于CPU访存(I/O不立即访存就可能丢失数据),因此由I/O设备挪用一个存取周期,传送完一个数据字后立即释放总线。它是一种单字传送方式

image-20240418215421609

DMA 访问主存有三种可能:1.CPU 此时不访存(不冲突)2.CPU 正在访存(存取周期结束让出总线)3.CPU 与DMA 同时请求访存(I/O访存优先)

既实现了I/O传送,又较好地发挥了主存与CPU的效率。但是每挪用一个主存周期,DMA接口都要申请、建立和归还总线控制权。

DMA方式的特点

主存和DMA接口之间有一条直接数据通路。

由于DMA方式传送数据不需要经过CPU,因此不必中断现行程序,I/O与主机并行工作,程序和传送并行工作。

DMA方式具有下列特点:

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

DMA方式与中断方式

image-20240418215648825

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值