问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

计算机组成结构—IO接口(IO控制器)

创作时间:
作者:
@小白创作中心

计算机组成结构—IO接口(IO控制器)

引用
CSDN
1.
https://blog.csdn.net/weixin_74098337/article/details/139533953

一、I/O 接口的功能

I/O 接口主要的功能如下:

  • 选址功能:根据 I/O 指令中的设备码进行设备选择;
  • 数据缓冲:I/O 设备速度不一,与 CPU 相差比较大,需要进行数据的缓冲达到速度匹配、防止丢失数据;
  • 串并转换:有些 I/O 设备采用串行传输方式,而 CPU 一般为并行传输,需要进行数据格式转换;
  • 电平转换:I/O 设备的输入输出电平可能与 CPU 不同,需要进行电平转换;
  • 传送控制命令:CPU 会向 I/O 设备发出各种控制信号,需要相应的传输通路;
  • 反馈状态信息:I/O 设备需要将工作状态(比如 “忙” “准备就绪” “错误” “中断请求” 等)报告给 CPU,并且可能需要将状态信息进行保存,供 CPU 查询。

二、I/O 接口的基本结构

总线结构的计算机中,每一台 I/O 设备都是通过 I/O 接口挂到 I/O 总线上的。

1. 总线连接的数据通路

由于需要实现设备选择、数据缓冲、传送命令和状态等功能,总线中必须有相应的数据通路:

上图中的 I/O 总线,就包含了数据线设备选择线命令线状态线

  • 数据线:数据线是 I/O 设备与主机之间传送数据的线路。数据线的根数一般等于存储字长的位数,通常是双向的。若采用单向数据总线,则必须用两组才能实现数据的输入和输出功能,而双向数据总线只需一组即可。
  • 设备选择线:设备选择线用来传送设备码,如果把设备码看做是地址号,那么设备选择线又可称为地址线。设备选择线的根数取决于 I/O 指令中设备码的位数,决定了能够连接设备的数量。设备选择线一般是一组,也可以有两组,其中一组用于主机向 I/O 设备发送设备码,另一组用于 I/O 设备向主机回送设备码。
  • 命令线:命令线主要用来传输 CPU 向设备发出的各种命令信号,比如启动、清除、屏蔽、读、写等。命令线是一组单向总线,根数与命令信号的数量有关。
  • 状态线:状态线主要用来向主机报告 I/O 设备的状态信号,比如设备是否准备就绪、是否向 CPU 发出中断请求等。状态线也是一组单向总线。

2. I/O 接口的基本组成

根据 I/O 接口的功能,以及总线结构中整体的数据通路,就可以推出接口应该具有的硬件配置。

(1)选址功能

设备码通过设备选择线(地址线)送至所有设备的接口,因此需要每个接口都必须具有选址功能。当设备选择线上的设备码与本设备码相符时,发出一个设备选中信号 SEL,这种功能可通过接口内的设备选择电路来实现。

(2)传送命令的功能

当 CPU 向 I/O 设备发出命令时,要求 I/O 设备能做出响应,因此通常在 I/O 接口中设有存放命令的命令寄存器以及命令译码器。命令寄存器用来存放 I/O 指令中的命令码,它受设备选中信号 SEL 控制。命令线和所有接口电路的命令寄存器相连,只有被选中设备的 SEL 信号有效,才会将命令线上的命令码存入命令寄存器。

(3)传送数据的功能

接口处于主机与I/O设备之间,因此主机与 I/O 设备之间进行数据传输必须经过接口。这就要求接口中具有数据通路,完成数据传送。这种数据通路还应具有缓冲能力,也就是能将数据暂存在接口内。接口中通常设有数据缓冲寄存器(Data Buffer Register,DBR),它用来暂存 I/O 设备与主机准备交换的信息,与 I/O 总线中的数据线是相连的。

(4)反映 I/O 设备工作状态的功能

为了使 CPU 能及时了解 I/O 设备的工作状态,接口内必须设置一些反映设备工作状态的触发器。比如,可以用完成触发器 D工作触发器 B来标志设备所处的状态。

  • 当 D = 1,B = 0 时,表示 I/O 设备已经准备就绪;
  • 当 D = 0,B = 1 时,表示 I/O 设备正处于工作状态;
  • 当 D = 0,B = 0 时,表示 I/O 设备处于暂停状态。

由于现代计算机系统中大多采用中断技术,因此接口电路中一般还设有中断请求触发器 INTR,当为 “1” 时,表示该设备向 CPU 发出中断请求;
接口内还有中断屏蔽触发器 MASK,它与中断请求触发器配合使用,完成设备的屏蔽功能。

所有的状态标志触发器都与I/O总线中的状态线相连。此外,不同的 I/O 设备的接口电路中还可根据需要增设一些其他状态标志触发器。

这样就可以得到 I/O 接口的基本组成:

目前大多数 I/O 设备所共用的电路都制作在一个芯片内,作为通用接口芯片。另一些 I/O 设备专用的电路,制作在 I/O 设备的设备控制器中。

三、I/O 端口及其编址

需要注意区分 “接口” (Interface)和 “端口” (Port)的概念:

端口指的是接口电路中的一些寄存器,这些寄存器用来存放数据信息、控制信息和状态信息,相应的端口就称为数据端口控制端口状态端口。CPU 执行 I/O 指令中的输入操作时,从端口读入信息;执行输出操作时,将寄存器(比如 ACC)的信息写入到端口中。这样,CPU 对 I/O 设备的操作,就可以转换为对 I/O 端口的操作。一些端口,再加上对应的控制逻辑,就组成了接口。

CPU 要想访问某个 I/O 端口,就需要对 I/O 端口进行统一编号,每个端口对应一个端口地址。对 I/O 端口的编址,可以选择跟内存统一,也可以完全独立。

1. 统一编址

统一编址就是把 I/O 地址看作存储器地址的一部分,也就是把 I/O 端口当做存储器单元统一进行地址分配。也称为存储器映射方式

这样,CPU 访问 I/O 端口时就可以直接用访存指令,而不需要专门的 I/O 指令,CPU 控制 I/O 设备更加方便;而缺点是端口会占用内存地址空间,减少了主存容量。

2. 不统一编址

不统一编址就是 I/O 地址和存储器地址完全分开,两者都有自己独立的地址空间,所以又叫独立编址。也称为I/O 映射方式

不统一编址时,CPU 访问一个地址时,就无法从地址码上进行区分;所以必须通过设置专门的I/O 指令来访问 I/O 端口。这样就不会占用主存地址空间,用专门的 I/O 指令编写程序也会更加清晰;缺点是让指令系统更加复杂,CPU 需要提供对内存和 I/O 设备的两套读/写控制信号,硬件成本也更高。

四、I/O 接口的类型

I/O 接口按不同的方式,可以有以下几种分类。

  • 按数据传送方式:分为并行接口串行接口
  • 按功能选择的灵活性:分为可编程接口不可编程接口
  • 按通用性:分为通用接口专用接口
  • 按数据传送的控制方式:分为程序型接口DMA 型接口

程序型接口用于连接速度较慢的 I/O 设备,如显示终端、键盘、打印机等;具体的控制方式包括程序查询方式程序中断方式。DMA 型接口用于连接高速 I/O 设备,如磁盘、磁带等;控制方式采用DMA 方式

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号