硬盘驱动器如何知道数据从哪里开始?[重复]


14

我一直想知道硬盘如何找到第一批数据。

硬盘旋转时,其读取的内容必须是循环的数据流,直到读取头移动到其他位置为止。

但是,在这样的循环流中,驱动器如何知道第一位和最后一位位于何处,以便它可以正确的顺序传递数据?


BTW(很少提及,但很明显)上有一个索引标记来指示曲目的开始(和结束)。当磁盘控制器第二次遇到索引时,表明它已读取磁道中的每个扇区。
木屑

Answers:


2

它从磁盘读取它。

磁盘上的数据不仅是结构化的(如@psusi所说),而且还经过了编码。编码可确保记录的数据不会与扇区标题中的位置标记混淆,因此可以读取循环流,直到找到目标位置标记为止。

据我了解,现代硬盘并不能完全做到这一点。他们将整个圆读入缓冲区,跟踪每个扇区的位置,然后使用缓冲区发送回请求的数据。

更新:

磁性介质是具有具有两个关键属性的磁场的材料:1)它永远不会自行改变; 2)记录设备可以改变表面上任何点的磁场方向。读取媒体时,传感器会检测到磁场朝向传感器的方向和远离传感器的方向。当传感器在整个表面上移动时,它会检测这些极性转变的时间。解码的第一层将这些时序转换为比特值。由于此过程中的物理必要不确定性,因此编码不得要求相同极性的长时间延伸;也就是说,它必须是游程长度受限编码(RLL)。

硬盘设计的细节通常是商业秘密,但是本质上有两种方法可以确保扇区标记永远不会出现在扇区内容中:

  1. 设计一个允许特殊值的RLL,这些值永远不会由于对内容数据进行编码而产生。这些特殊值不仅可以用于标记扇区边界,还可以用于纠错或任何其他辅助目的。

  2. 使用第二层编码,以确保标记值仅出现在标记处。这有点像URL编码,以允许在URL中“隐藏”特殊字符,但是有一个额外的限制,即等同于限制可以添加的字符个数,因此最终类似于base64编码

因此,读取头在整个表面上移动以检测磁极性变化,这些变化的时间用于确定相应的位值序列(可能包括一些不代表存储数据的异常值),并且该序列用于确定正在读取的扇区以及这些扇区的内容。当确定扇区的内容时,数据可以存储在固态缓冲器中和/或存储在RAM缓冲器中和/或发送回以满足请求。


这种编码像霍夫曼编码吗?如果有人可以这样清楚地说明它如何在硬件级别上工作,那么:“磁头读取了诸如010111010010111010之类的循环数据流……其中每个111都标志着一个扇区的开始,然后……”我可以接受答案。
uzumaki

硬盘驱动器必须将抽象数据编码为磁介质的物理属性,并且结果必须易于寻址。霍夫曼编码将一个抽象数据流映射到(通常)较短的抽象数据流(破坏了可寻址性)。它们大多无关。
ShadSterling

我的更新没有添加任何示例,但是如果您遵循RLL链接,它就会包含一些示例。
ShadSterling

18

数据不以任意的1和0的流形式写入。它是按扇区编写的。每个扇区都有用户数据的有效负载和标头。标头包含纠错码,以及标识扇区开始的特殊同步字段和扇区号,以便驱动器可以知道何时找到扇区的开始以及它是哪个扇区。


3
一些参考或链接将使这个好的答案很好。:D

1
@cat,我想是“计算机的工作方式”还是彼得·诺顿的“在PC内”,如果其中任何一个仍在印刷中……可能是我书架上的几个新版本。
psusi

这不能回答问题。问题是驱动器如何知道标头或同步字段的起始位置。
Martin Argerami

@MartinArgerami-确实回答了这个问题,因为它纠正了OP的误解,并引入了显着的部门概念。对于OP IMO而言,深入研究磁畴的读/写水平似乎太过激烈。如果您想了解更多详细信息,请访问superuser.com/questions/427554/…–
锯木屑

1
@ user134593-同步字节总是在间隔之后,并且是记录的第一个字节。它们仅指示记录的开始。因此,磁盘控制器永远不会与有效负载或用户数据发生冲突或混淆。您似乎认为它有点流(就像OP一样),但是它是磁性介质,这意味着您不能在任何时候随意读取或写入。
锯末

7

Psusi是正确的(磁盘上的数据是结构化的,并且计算机的不同部分使用该结构的不同部分),但实际上并没有解决您的问题。

该驱动器并不真正“知道”任何东西。它具有低级电子设备,可以读取磁盘上的标记(通常在工厂或驱动器头本身上写入),从磁盘读取数据块或将数据块写入磁盘,或判断磁盘上的特定位置磁盘损坏或损坏,或者应将其移至磁盘上的特定位置。这就是“了解”的全部内容。阅读头本身并不会决定将其移动到其他地方,机器中更高的东西告诉它...


2
但是更高的东西仍然是硬盘的一部分。(这是由硬盘驱动器外部的命令所控制的,而计算机外部的命令是由形而上学的命令所指示的,但是我们并没有谈论这些事情中的任何一项)
user253751

0

除了其他答案外,某些硬盘肯定(过去也可能仍然有)具有一个盘片(以“磁头/磁头/扇区”表示),保留用于校准/定位数据,根本不用于用户数据存储。


3
这不是我听说过的,您对此有参考吗?
ShadSterling

是的,不...那不是问题。
psusi

您似乎是在指伺服表面/盘片。。但是,这是过时的技术,我还没有从14"磁盘组,这早于原来的IBM PC-XT的ST-506硬盘看出温彻斯特和现代的磁盘驱动器使用嵌入式伺服。
木屑

好的,我也已经很长时间没有听说过了,尽管我将它归结为现代磁盘是黑匣子。
Mark K Cowan

0

您正在寻找的答案包括两个部分:

1)硬件控制器

2)文件系统

就像您说的那样,在HDD(与SSD等其他技术相反)中,实际数据被写入到圆形金属板上,成为同心圆环,并保持形成图案的磁场。存放此数据的磁盘上方是写头,该写头可移动以读取和写入数据,就像黑胶唱片播放器一样。它移动的盘片连接到控制其旋转的电动机上。

硬件控制器充当操作系统和硬盘驱动器之间的接口。控制器可以读取写入头的位置以及盘片的旋转,并使用此信息来决定如何放置磁头和盘片以进行读取和写入。它将来自操作系统的读取和写入请求转换为控制信号,这些信号可移动写头并旋转磁盘,并将从操作系统传入的并行数据转换为一条串行数据线。它还拆分该串行线,并确定将每个部件放入哪个物理位置或扇区,并以文件系统指定的方式记录此信息。

文件系统是有关如何以及在何处存储数据的规范。计算机的操作系统知道如何解释此文件系统,并使用此知识与硬件控制器进行充分的通信,在这种情况下,将数据的圆环分成称为扇区的可用段,并告诉文件系统这些扇区的物理位置。文件系统为每个扇区提供一个地址,该地址只是一个唯一的数字,并且该地址由硬件控制器转换为特定的磁盘旋转和读取磁头位置,以开始读取或写入。

有关更多信息,这些Wikipedia文章中的以下部分非常有用:

请参阅此处的简介和第3.1节“空间管理”:https : //en.wikipedia.org/wiki/File_system

请参见2.1节“磁性记录”在这里: https://en.wikipedia.org/wiki/Hard_disk_drive#Magnetic_recording

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.