CPU与磁盘的交互过程

对于计算机系统底层技术,想必很多人都和我一样不太了解,最近在学相关书籍,了解到了CPU与磁盘交互时大致发生了哪些事情,现记录如下:

首先,我们得先了解到CPU与磁盘是通过I/O总线关联到一起的,CPU操作磁盘是通过一种叫做存储器映射I/O的技术来实现的。这种技术会在两者交互时单独划分出一块地址,每个这样的地址就称作I/O端口,然后磁盘就会映射到一个或多个I/O端口,用以绑定地址。

其次,CPU依次向磁盘发送指令:磁盘读(或写)命令、逻辑块号、主存地址。

然后,发送完指令后,CPU会转去执行其它任务(为了提高效率)​,磁盘则会将逻辑块号转换成对应的盘片、磁道、扇区组成的三元组,从而定位到了数据所在的扇区。之后磁盘会采用DMA(直接存储器访问技术,其不需要CPU干预)传送数据到CPU指定的主存地址。

最后,磁盘传送完毕后,会直接发送一个中断信号给CPU芯片的一个​​外部引脚,把CPU“召唤”回来重新执行先前未完成的任务。

过程大致如此,细节不去深究,如有不对,欢迎指出。

猜你喜欢

转载自aisxyz.iteye.com/blog/2299179