计算硬盘块模型的读取时间


8

我的教授发布了一张有关如何使用块模型从硬盘计算数据检索的幻灯片。规格是:

  • 7200转
  • 5ms SEEK
  • 80MB / s的传输速率
  • 块模型:块大小4KB

我不明白他是如何进行以下计算的,或者一些数字是从哪里来的:

5ms + 1000/240 ms + 0.05ms = 9.216ms读取块

谁能告诉我1000/240毫秒和0.05毫秒来自哪里?

编辑:如果数字碰巧是完全错误的,那么您将如何做呢?


有三个部分。查找时间,数据在读取头下旋转的时间(他将完整旋转时间的一半作为平均值)和传输时间。
David Marshall

实际上,还有第四部分,“传输时间”是在两个不同的,不重叠的操作中进行的。首先是从磁盘到扇区缓冲区的读取。然后,通过驱动器接口(例如SATA)从扇区缓冲区到主机进行另一次传输。人们普遍误以为这两种转移可以同时发生。他们不能。扇区数据在读取之后和发送到主机之前必须进行验证。@Hennes将此作为忽略项的一部分提及。
木屑

请注意,几乎每个人都不太了解搜寻时间的优缺点。寻道时间不是线性函数,而是基于气缸数的曲线。寻道(使用音圈致动器)由加速阶段和减速阶段组成,当寻道足够长时,介于两者之间的是最大速度阶段。的平均寻道时间,必须加权只占2可能的全行程的目的,但2 *(NCYL-1)单轨寻求,2 *(NCYL-2)2轨寻求...和NCYL“寻求”不需要头部移动的零时间。
木屑

Answers:


11

所讨论的磁盘的传输速率为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

5毫秒的寻道时间是时候让你的硬盘,以它的头移动到正确的轨道(和选择正确的头,这事还需要时间,但是,你的教授忽略)。


一旦磁头超过正确的磁道,就需要等待正确的扇区通过R / W磁头下方。我们认为它是7200 RPM驱动器。这意味着:

  • 在最坏的情况下,数据刚刚通过,必须等待完整的旋转。
  • 最好的情况是数据扇区刚刚到来。所有人都开心。
  • 一般情况下,驱动器需要等待半圈。

要获得7200 RPM驱动器上完整驱动器旋转的时间,请执行以下操作:

  • 每分钟7200转(aka 7200 RPM)
  • 或每秒7200/60次。
  • 或每秒120次。
  • 或单次旋转取1 / 120 第二的。
  • 这是8.3毫秒

所以半圈应该将一半的时间,1 / 240 第二的。

1秒是1000毫秒

这是你的1000个 / 240毫秒。


所有这些都是驱动器开始读取数据之前的时间。它仍然需要读取它并传递给主机。

从驱动器中读取数据通常比通过驱动器读取数据快得多,因此,我将重点介绍较慢的部分:

给出的是:

1)80 MB / s传输速率
2)块模型:块大小4KB

  • 一秒钟80 MiB,或一秒钟80 * 1024 KiB,或4 * 20 * 1024 KiB /秒。
  • 除以20480。
  • 每4 KB 1 / 20480个一个第二的。
  • 或0.488281 ms,这是您最近的0.05 ms


请注意,此答案忽略了这一点:

  1. 驱动器需要先读取数据,然后才能传输数据,这会使其速度稍慢。
  2. 但是,没有关于从磁盘读取数据的速度的信息。(这取决于转速,要读取的数据的长度,校验和数据的长度以及扇区间的间隙。)4KiB可以是“ Header | checksum | gap”的8次读取或一次读取。
  3. 它还忽略了驱动器缓存中可能已经存在数据。
  4. 并且假设计算校验和不需要花费时间。

这可能是我第一次看到对磁盘传输时间的正确提及,它可以区分磁盘读取和(接口)传输。“校验和”实际上是一个纠错码(ECC),它可以检测和纠正短突发错误。
木屑
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.