CPU与硬盘关系的几点疑问?

想明白一下电脑硬件原理,故问几点小白问题,望海涵赐教。CPU是控制器和处理器,内存条是临时储存,硬盘是外部储存。1、数据都是在硬盘中存着的,CPU从硬盘中拿数据的流程是怎样的?(已查资料,未完全懂),我目前所理解是2个方式:第一个:CPU先(首次)从硬盘读取所需数据,并加入内存中,后面再处理时不再和硬盘直接交互,只操作内存中的数据就行了!第二个:CPU从一个“数据地址储存器”的地方(自己理解的)拿数据地址,然后…
关注者
34
被浏览
3016

7 个回答

给三个 Wiki 链接吧,这三个链接几本上能说个大概,但是详细的还是要看书,计算机组成原理软硬件接口和CSAPP都不错。

链接:

Input/output - Wikipedia

Channel I/O - Wikipedia

Memory-mapped I/O

再加一个链接:

Bus (computing) - Wikipedia

现代cpu访问device主要是通过mmio(memory map I/O),意思就是把给其他硬件一个内存地址空间,cpu通过读写那一段地址来访问。这些地址都是内存里面,x86的cpu定义了哪些地址是硬件map的,参考I/O Address Summary Map
cpu访问硬盘数据的时候,先会看那个device的信息,然后那些数据会加载到内存里面,cpu通过访问内存去访问那些数据。
你所说的“数据地址储存器”,我理解应该是x86的data segment register,硬件是在cpu里面。
关于问题3,交换硬盘后,两个cpu都能辨认出硬盘,因为cpu的device management能辨认出硬件。你需要进入系统后安装驱动,是因为kernel file system需要该cpu的驱动,操作系统需要了解如果有效的访问与驱动该硬件,并不是cpu需要驱动才找到硬件。参考tldp.org/LDP/tlk/fs/fil