我的教授发布了一张有关如何使用块模型从硬盘计算数据检索的幻灯片。规格是:
- 7200转
- 5ms SEEK
- 80MB / s的传输速率
- 块模型:块大小4KB
我不明白他是如何进行以下计算的,或者一些数字是从哪里来的:
5ms + 1000/240 ms + 0.05ms = 9.216ms读取块
谁能告诉我1000/240毫秒和0.05毫秒来自哪里?
编辑:如果数字碰巧是完全错误的,那么您将如何做呢?
我的教授发布了一张有关如何使用块模型从硬盘计算数据检索的幻灯片。规格是:
我不明白他是如何进行以下计算的,或者一些数字是从哪里来的:
5ms + 1000/240 ms + 0.05ms = 9.216ms读取块
谁能告诉我1000/240毫秒和0.05毫秒来自哪里?
编辑:如果数字碰巧是完全错误的,那么您将如何做呢?
Answers:
所讨论的磁盘的传输速率为80 MiB / s,或81920 kiB / s,或 20480块/ s。在这里,我们将舍入到20,000块/秒,因为这似乎是您的教授所做的。这等于0.05毫秒以传输一个块,解释了方程式中的最后一项。
最后,除了寻找时间(将驱动器磁头移到磁道上的时间)之外,还需要处理磁盘本身的旋转延迟。在7200 RPM的情况下,在最坏的情况下,我们必须等待一整圈,但平均而言,我们必须等待半圈-或4.166ms(7200 RPM = 120转/秒= 8.333ms /转)。
因此,要将一个块传送到计算机,我们必须等待等效的Seek Time
+ Rotational Latency
+ Transfer Time
:
5 ms + 4.166 ms + 0.05 ms = 9.216 ms
请注意,对于固态驱动器,虽然没有考虑旋转延迟,但肯定还有可测量的寻道时间(以实际寻址闪存中扇区的内容)和传输时间(很大程度上受总线限制)用于传输数据本身,例如SATA)。
因此,通常,读取驱动器单个扇区的总访问时间为(忽略软件):
Rotational/Hard Drive: Seek Time + Rotational Latency + Transfer Time
Solid-State Drive: Seek Time + Transfer Time
该5毫秒的寻道时间是时候让你的硬盘,以它的头移动到正确的轨道(和选择正确的头,这事还需要时间,但是,你的教授忽略)。
一旦磁头超过正确的磁道,就需要等待正确的扇区通过R / W磁头下方。我们认为它是7200 RPM驱动器。这意味着:
要获得7200 RPM驱动器上完整驱动器旋转的时间,请执行以下操作:
所以半圈应该将一半的时间,1 / 240 个第二的。
1秒是1000毫秒
这是你的1000个 / 240毫秒。
所有这些都是驱动器开始读取数据之前的时间。它仍然需要读取它并传递给主机。
从驱动器中读取数据通常比通过驱动器读取数据快得多,因此,我将重点介绍较慢的部分:
给出的是:
1)80 MB / s传输速率
2)块模型:块大小4KB
请注意,此答案忽略了这一点: