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