IO 基本概念

I/O 即输入/输出,通常指数据在存储器(内部和外部)或其他周边设备之间的输入和输出,输入是系统接收的信号或数据,输出则是从其发送的信号或数据。

IO 系统的发展

早期的 IO 系统是直接和 CPU 连接,由 CPU 直接控制 IO 系统,极大的降低了 CPU 的性能。

后来将一些和内存数据交换比较频繁的外设单独建立了 DMA (Direct Memory Access 直接存储访问) 总线。

再后来发展出了 IO 通道结构,主机只需要和 IO 上面的通道部件进行数据交换即可,再次加快了速度。

现在一般开始采用 IO 处理机,承担主机的功能来管理各种外设,基本拥有和 CPU 一样的结构。

293.jpg

IO 系统工作方式

IO 系统一般来说有三种工作方式,分别是:程序查询方式,程序中断方式,DMA 方式。三种方式的不同的地方就是使用了不同的设计来分担了一部分 CPU 对 IO 设备的控制,使得 IO 系统对 CPU 越来越简单,从而提升性能。

294.jpg

外设

关于外设的各种信息,因为和生活比较接近,所以就不写了。

IO 接口

IO 接口的相关结构,主要的作用就是建立起一个 CPU 和外设之间通讯的桥梁,来提高整个设备的性能和可拓展性,让各个部件都专注与自己本身的工作:

295.jpg

以及 IO 接口结构的工作流程,CPU 只和接口进行交互,并且相关数据的获取都是从绿色的数据缓冲寄存器和设备状态标记寄存器,这也是为了减少 CPU 实际读取数据的时间,和通过主控芯片来提高外接设备的性能。

296.jpg

这里需要注意一个概念,我们将上面绿色部分的寄存器称为端口 Prot,分为 数据端口,控制端口,状态端口。剩下的蓝色部分和控制逻辑电路作为控制逻辑。

297.jpg

也就是说,CPU 实际上和外设进行数据交换的时候,本质上是和接口里面的端口进行数据交换,所以获取数据只需要知道数据所在的端口的地址即可。统一端口设计模式之后,CPU 就完全不需要关心实际外部设备的内部设计了,这些交给端口的控制逻辑解决即可。


对不起,实在不想学了,以后学了操作系统,之后再来看看 IO 系统这一章吧!

一定会补完的,QAQ

滚去学 Spring 了……