我目前正在阅读有关计算机如何工作,特别是 CPU、RAM 和硬盘驱动器如何同时协同工作。
据我所知,CPU 使用所谓的控制单元从 RAM 获取数据。然后处理数据。
但是在 CPU 从 RAM 获取数据之前,必须将数据从硬盘加载到 RAM,因为访问 RAM 的速度比访问硬盘的速度更快。
我的问题是:CPU 能直接从硬盘获取数据吗?
硬盘驱动器如何传输数据或将数据加载到 RAM?就像 CPU 使用控制单元将数据加载到 RAM 一样?
我读了一些关于 I/O 磁盘的内容。I/O 磁盘与此有关吗?
答案1
CPU 能直接从硬盘获取数据吗?
不。CPU(或者更准确地说,在 CPU 上运行的软件)启动从硬盘(例如通过发出 SATAREAD DMA
命令)到 RAM 中指定位置的传输,并在传输完成时(异步)发出信号。
正如维基百科所解释的那样直接接入,直接内存访问 (DMA) 是计算机系统的一项功能,允许某些硬件子系统独立于中央处理单元 (CPU) 访问主系统内存。
为了存储大量数据,CPU 会使用其缓存和系统 RAM。它不会直接访问硬盘等外围设备。
硬盘驱动器如何传输数据或将数据加载到 RAM?
如上所述,通过向硬盘发出请求,将特定扇区或扇区范围从硬盘传输到 RAM,目前几乎总是使用 DMA。现代存储设备使用左心室射血分数寻址,但这主要是一个实现细节。
通过使用 DMA,CPU 可以在传输过程中自由地处理其他任务,从而大大提高整体系统性能和响应能力。
在这一切中,CPU 仅运行从 RAM 输入给它的代码。