了解计算机系统内部运作:内存、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等。总线还负责检测,枚举接在其上的设备。