计算机系统解密:从理解计算机到编写高效代码
上QQ阅读APP看书,第一时间看更新

4.2 输入输出

一台不能与外界通信的计算机用处有限,我们需要使用一些方法使计算机能够与外界交换信息,即输入输出,简称I/O。与I/O相连接的设备叫作I/O设备。由于它们位于计算机的外围,所以通常也被称为外围设备

计算机过去有一个单独的I/O通道,如图4-5所示,类似于内存通道。过去计算机体积巨大时,这个通道是有意义的,因为它们没有被挤压在有限的电气连接的小组件中。而且,内存通道不是很长,所以仅仅为了支持I/O而限制地址的数量是没有意义的。

图4-5 独立的内存和I/O总线

由于32位和64位计算机的普及,内存通道比过去长很多。内存通道太长了,并不是通道中每个地址都有“房子”,空地也很多。换句话说,有些地址没有与之相关联的内存。因此,为I/O设备预留一部分内存通道更为合理,这就像城市边缘的工业区。而且,当更多的电路被封装进一个连接数量有限的组件中时,I/O和内存在同一总线上是有意义的。

许多计算机都设计了标准的输入/输出插槽,以便I/O设备可以以统一的方式与任一计算机连接。这有点像美国旧西部的财产分配方式,非法人领地被划分为一系列的政府赠地,如图4-6所示。每个插槽持有者都可以使用其边界内的所有地址。通常每个插槽中都有一个特定的地址,地址中包含某种标识符,这样“市中心”就可以进行统计普查,以确定每个插槽中“居住”的是谁。

图4-6 共享的内存和I/O总线

如果用船运来比喻设备和I/O端口的关系,那设备就好像钩在了I/O端口上。