【发布时间】:2017-01-26 01:05:45
【问题描述】:
我正在学习计算机组织,但在以下概念中挣扎。在非 DMA 场景中,所有磁盘读取都按照以下顺序进入主内存:
磁盘存储表面 -> 磁盘寄存器 -> CPU 寄存器 -> 主内存
与写入类似,序列是:
主存 -> CPU 寄存器 -> 磁盘寄存器 -> 磁盘存储表面
(我知道在 DMA 场景中,CPU 只会启动传输,之后磁盘的内容会直接传输到主存)。
如果是,那么在 DMA 出现之前,上述序列是否是一个严重的瓶颈,因为整体 CPU 寄存器的容量与主内存和存储磁盘相比要小得多?或者它是如此之快以至于人类用户在非 DMA 模式下不会注意到?
PS:请容忍我的基本术语,但我希望我传达了我想问的内容。
【问题讨论】:
-
我不确定这个问题是否是 SO 的主题(似乎它更多地属于 Computer Science,)但是,是的,这通常是它对非 DMA I/O 的工作方式操作。不过,非 DMA 磁盘读取非常少见。
-
@reirab 那么即使磁盘文件要进行内存映射,是不是按照上面的顺序,在进入主存之前先经过CPU寄存器?
-
在几乎所有情况下,磁盘操作都使用 DMA,所以,不,这不太可能。那将是非常低效的。不过,同样,这个问题很可能会在此处作为题外话关闭,可能应该在Computer Science 中提出。 SO专门针对编程问题,而不是计算机组织/架构。您可能还想先搜索Computer Science,因为这似乎之前已经回答过了。
-
@reirab 请查看对我的问题的编辑(粗体)并分享您的观点,以便清楚我剩余的困惑。
-
然后将其转换为真正的答案,因为显然这就足够了。
标签: io cpu device-driver cpu-registers cpu-architecture