[笔记]组成原理_输入/输出系统

I/O接口

I/O接口的功能

IO接口的主要功能有:

  1. 进行地址译码设备选择。(CPU送来选择外设的地址码后,接口必须对地址进行译码,以产生设备选择信息,使主机能和指定外设交换信息。)
  2. 实现主机和外设的通信联络控制。(解决主机与外设时序配合问题,协调不同工作速度的外设和主机之间交换信息,以保证整个计算机系统能统一、协调地工作。)
  3. 实现数据缓冲。(CPU与外设之间的速度往往不匹配,为消除速度差异,接口必须设置数据缓冲寄存器用于数据的暂存,以避免因速度不一致而丢失数据。)
  4. 信号格式的转换。(外设与主机两者的电平数据格式都可能存在差异,接口应提供计算机与外设的信号格式的转换功能,如电平转换、并/串或串/并转换、模/数或数/模转换等。)
  5. 传送控制命令和状态信息。

(简单来说就是①选址功能②传送命令功能③传送数据功能④反应IO设备工作状态的功能。)

I/O接口的基本结构

关于IO接口的基本结构,会考到到几个基本的部件,比如数据缓冲寄存器状态/控制寄存器这些IO接口上的部件和它的相关功能。

IO接口在主机侧通过IO总线与内存、CPU相连。

通过数据总线,在数据缓冲寄存器与内存或CPU的寄存器之间进行数据传送,同时接口和设备的状态信息被记录在状态寄存器中。通过数据线将状态信息送到CPU。

CPU对外设的命令也通过数据线传送,一般将其送到IO接口的控制寄存器。状态寄存器和控制寄存器在传送方向上是相反的。

接口中的地址线:用于给出要访问的I/O接口中的寄存器的地址,它和读/写控制信号一起被送到IO接口的控制逻辑部件,通过控制线传送来的读写信号确认是读寄存器还是写寄存器。此外,控制线还会传送一些仲裁信号和握手信号。

I/O指令

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

(接口和端口是两个不同的概念,端口是指接口电路中可以进行读写的寄存器,若干端口加上相应的控制逻辑才可以组成接口。)

I/O接口的类型

按数据传送方式可分为:并行接口(一个字节或一个字的所有位同时传送)和串行接口(一位一位地传送),接口要完成数据格式的转换。

按主机访问IO设备的控制方式:可分为程序查询接口、中断接口和DMA接口等。

还有按功能选择的灵活性可分为可编程接口和不可编程接口等。

I/O端口及其编址

分为与存储器统一编址独立编址两种。

统一编址

优点:不需要专门的输入输出指令,可使CPU访问IO的操作更灵活,更方便,还可使端口有较大的编址空间。

缺点:端口占用存储器地址使内存容量变小,而且利用存储器编制的IO设备进行数据输入输出操作,执行速度较慢

独立编址

IO端口的地址空间与主存地址空间是两个独立的地址空间,因而无法从地址码的形式上区分,需要设置专门的IO指令来访问IO端口。

优点:输入输出指令与存储器指令有明显区别。程序编制清晰,便于理解。

缺点:输入输出指令少,一般只能对端口进行传送操作,尤其需要CPU提供存储器读/写、I/O设备读/写两组控制信号,增加了控制的复杂性

(在统一编址方式下,存储单元和IO设备是靠不同的地址码,而非地址线来区分的。在独立编址方式下,存储单元和IO设备是靠不同的指令来区分的。)

I/O方式

常用的IO方式有程序查询、程序中断、DMA和通道等,其中前两种方式更依赖于CPU中程序指令的执行。

1.程序查询方式

CPU啥都不干就像只舔狗一样守着IO端口一遍遍问“亲爱的你要发信息吗?”

在这种控制方式下,CPU一旦启动IO就必须停止现行程序的运行。

2.程序中断方式

(这一部分似乎跟OS的中断关系密切。大量内容都是OS相关的。)

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

通过INTR线发出的是可屏蔽中断,通过NMI线发出的是不可屏蔽中断。

中断响应优先级

①不可屏蔽中断>内部中断>可屏蔽中断。

②DMA中断请求优先于IO设备传送的中断请求。

(中断优先级包括响应优先级和处理优先级,响应优先级是在硬件线路上是固定的,不便于改动,处理优先级可利用中断屏蔽技术动态调整,以实现多重中断。)

CPU响应中断的时间是在每条指令执行阶段的结束时刻。

中断响应过程

CPU响应中断后,经过某些操作转去执行中断服务程序。这些操作是由硬件直接实现的,将其称为中断隐指令,中断隐指令,并不是指令系统中一条真正的指令,只是一种虚拟的说法,本质上是硬件的一系列自动操作。它所完成的操作如下:

  • ①关中断
  • ②保存断点
  • ③引出中断服务程序
中断向量

啥是中断向量:每个中断都有一个唯一的类型号,每个中断类型号都对应一个中断服务程序,每个中断服务程序都有一个入口地址,CPU必须找到入口地址,即中断向量。

在中断向量的问题上,需要搞清楚几个容易错乱的概念:中断向量地址、中断向量、中断服务程序的入口

中断向量中断服务程序的入口地址,中断向量地址是内存中存放中断向量的地址,也就是说,中断向量地址是中断服务程序入口地址的地址(开始套娃)。

中断处理过程
  • ①关中断
  • ②保存断点
  • ③中断服务程序寻址
  • ④保存现场和屏蔽字

现场和断点这两类信息都不能被中断服务程序破坏,

现场信息,因为用指令可直接访问,所以在通常在中断服务程序中通过指令把它们保存到栈中,即由软件实现

而断点信息,则由CPU在中断响应时自动保存到栈或指定的寄存器中,即由硬件实现

  • ⑤开中断
  • ⑥执行中断服务程序
  • ⑦关中断
  • ⑧恢复现场和屏蔽字
  • ⑨开中断、中断和返回

其中①~③是由中断隐指令(硬件自动)完成,④~⑨由中断服务程序完成。

恢复现场是指在中断返回前,必须将寄存器的内容恢复到中断处理前的状态。这部分工作由中断服务程序完成,中断返回由中断服务程序的最后一条中断返回指令完成。(是中断返回指令,不是随随便便一条无条件跳转指令就行哒!)

中断处理优先级

屏蔽触发器:1表示屏蔽该中断源的请求,0表示可以正常申请。

3.DMA方式

Dma方式是一种完全由硬件进行成组信息传送的控制方式,它具有程序中断方式的优点,即在数据准备阶段,CPU与外设并行工作,DMA方式在外设与内存之间开辟一条直接数据通道,信息传送不再经过CPU,降低了CPU在传送数据时的开销,因此称为直接存储器存取方式。由于数据传送不再经过CPU,也就不需要保护恢复CPU现场等繁琐操作

在DMA传送过程中,DMA控制器将接管CPU的地址总线、数据总线和控制总线,CPU的主存控制信号被禁止使用,由此可见,DMA控制器必须具有控制系统总线的能力。

DMA的传送方式

主存和IO设备之间交换信息时不通过CPU,但当IO设备与CPU同时访问主存时可能发生冲突。为了有效地使用主存,DMA控制器与CPU通常采用以下三种方法使用主存:

1.停止CPU访存

2.周期挪用(或周期窃取):这个还要分成三种情况,当IO设备有DMA请求时,情况①:CPU没在访问主存,此时相安无事。②:CPU正在访存,此时必须待存取周期结束后,CPU再将总线占有权让出。③:CPU与IO设备同时请求访问主存,出现访存冲突,此时CPU要暂时放弃总线占有权,IO缓存优先级高于CPU缓存,因为IO不立即缓存就可能丢失数据,此时由IO设备挪用一个或几个存取周期,传送完一个数据后,立即释放总线,是一种单字传送方式。

3.DMA与CPU交替访存:将一个CPU周期分为C1、C2两个周期,一个专供CPU访存,一个专供DMA访存。这种方式不需要总线使用权的申请、建立和归还过程。

DMA的传送过程

1.预处理

2.数据传送:DMA的数据传输可以以单字节或字为基本单位,也可以以数据块为基本单位。数据传送阶段完全由DMA硬件控制,CPU不掺和。

3.后处理

1、3两个阶段是有CPU的参与的,数据传送阶段没有CPU的事。

DMA方式和中断方式的区别
  1. 中断方式是程序的切换,需要保护和恢复现场。而DMA方式不中断现行程序,无需保护现场。除了预处理和后处理,其他时候不占用任何CPU资源
  2. 对中断请求的响应只能发生在每条指令执行结束时(即执行周期后),而对DMA请求的响应可以发生在任意一个机器周期结束时(取址、间址、执行周期后均可)
  3. Dma请求的优先级高于中断请求。
  4. 中断方式具有处理异常事件的能力,而dma方式仅局限于大批数据的传送。
  5. 从数据传送来看,中断方式靠程序传送,dma方式靠硬件传送。

补充

在每条指令的执行过程中,每个总线周期要检查一次有无中断请求。(错误,每条指令周期结束后,CPU会统一扫描各个中断源,然后进行判优来决定响应哪个中断源,而不是在每条指令的执行过程中这样做。总线周期指的是像取址、间址这些操作的周期,进行这些操作时一条指令还没执行完呢,自然不能检查中断去了。)

检测有无DMA请求,一般安排在一条指令执行过程的末尾。(错误,CPU会在每个存储周期结束后检查是否有dma请求,而不是在指令执行过程的末尾这样做。)

中断响应由高到低的优先次序宜用:访管→程序性→重新启动。

在配有通道的计算机系统中,用户程序需要输入输出时,引起的中断是访管中断。

在中断响应周期中,CPU主要完成的工作是关中断、保护断点、发中断响应信号并形成向量地址。(也就是执行中断隐指令)

设置中断屏蔽标志可以改变多个中断源的中断请求优先级(错误,注意分清中断响应次序和中断处理次序,中断响应次序由硬件排队电路决定)多个中断服务程序执行完的次序(正确)。

在CPU响应中断中,保护两个关键的硬件状态是:PC和PSW

在各种IO方式中,中断方式的特点是:CPU与外设并行工作,传送与主程序串行工作;DMA方式的特点是:CPU与外设并行工作,传送与主程序并行工作。

一个完整的DMA过程,部分由DMA控制器控制,部分由CPU控制。(注意表述,是完整的DMA过程,而不是单指数据传输的过程,预处理和后处理过程是需要CPU参与的。)

CPU响应DMA请求的条件是当前机器周期执行完。(DMA请求可不会等到指令周期执行完的时候才会被响应。)

在主机和外设的信息传送中,直接存储器存取(DMA)不是一种程序控制方式。(只有DMA方式是靠硬件电路实现的,三种基本的程序控制方式,即直接程序传送、程序中断、通道控制都需要程序的干预。)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值