了解计算机系统内部运作:内存、I/O设备、总线和外存是如何协同工作的?
内存是处理器可以直接访问的储存空间。为了加快内存访问速度,计算机系统中通常提供 了一些高速缓存(Cache),高速缓存通常由硬件管理。 I/O 设备由 I/O 控制器和物理设备组成,处理器通过 I/O 控制器管理物理设备。I/O 控 制器主要由控制与状态寄存器(CSR)和数据寄存器组成。处理器通过读 CSR 来获得设备 状态,通过写 CSR 来控制设备动作,通过读写数据寄存器来交换数据。内核通常将 I/O 设备抽象成一组寄存器,并给一个寄存器一个 I/O 地址。处理器通过 I/O 地址访问 I/O 寄存器。 现代计算机系统中许多设备寄存器可以被映射到物理地址空间中。此时,每个设备寄存器 都有一个物理内存地址。这种方式的 I/O 称为内存映射 I/O。使用方便但是会消耗物理 内存地址。 通常把外存抽象成一个数据块的数组,每个数据块都有一个序号处理器可以通过序号随机 读、写外存中的任何一个数据块。对于外存的操作通常以块为单位,因此又称外存为块设 备。对应地,其他 I/O 设备称为字符设备。简而言之,块设备以块为单位进行数据的读 写操作,如硬盘、闪存等;字符设备以字符为单位进行数据的读写操作,如键盘、鼠标、 打印机等。 总线负责将处理器,内存,I/O 控制器连接起来。常用的总线有 ISA、PCI、PCI-E、AGP、ATA、SCSI 等。总线还负责检测,枚举接在其上的设备。