ฮาร์ดไดรฟ์ทราบได้อย่างไรว่าข้อมูลเริ่มต้นที่ใด [ซ้ำ]


14

ฉันสงสัยอยู่เสมอว่าฮาร์ดไดรฟ์ค้นหาบิตแรกของข้อมูลอย่างไร

เมื่อฮาร์ดไดรฟ์หมุนขึ้นสิ่งที่อ่านจะต้องเป็นกระแสข้อมูลแบบวงกลมจนกว่าหัวอ่านจะเคลื่อนที่ไปยังตำแหน่งอื่น

แต่ในกระแสข้อมูลแบบวงกลมไดรฟ์จะรู้ได้อย่างไรว่าบิตแรกและบิตสุดท้ายอยู่ที่ใดเพื่อให้สามารถส่งผ่านข้อมูลตามลำดับที่ถูกต้อง


BTW (กล่าวถึงน้อย แต่มีความโดดเด่น) มีเครื่องหมายดัชนีเพื่อระบุจุดเริ่มต้น (และสิ้นสุด) ของแทร็ก เมื่อตัวควบคุมดิสก์พบดัชนีครั้งที่สองนั่นแสดงว่ามันได้อ่านทุกภาคส่วนในการติดตาม
ขี้เลื่อย

คำตอบ:


2

มันอ่านได้จากดิสก์

ข้อมูลบนดิสก์ไม่เพียงมีโครงสร้าง (ตามที่ @psusi พูด) แต่ยังเข้ารหัส การเข้ารหัสช่วยให้มั่นใจได้ว่าข้อมูลที่บันทึกไว้ไม่สามารถสับสนสำหรับตัวทำเครื่องหมายตำแหน่งในส่วนหัวของเซกเตอร์เพื่อให้สามารถอ่านกระแสข้อมูลแบบวงกลมจนกว่าจะพบเครื่องหมายตำแหน่งเป้าหมาย

ตามที่ฉันเข้าใจฮาร์ดไดรฟ์สมัยใหม่ไม่ได้ทำอย่างนั้น พวกเขาอ่านวงกลมทั้งหมดลงในบัฟเฟอร์ติดตามตำแหน่งของแต่ละเซกเตอร์และใช้บัฟเฟอร์เพื่อส่งข้อมูลที่ร้องขอกลับมา

UPDATE:

สื่อแม่เหล็กเป็นวัสดุที่มีสนามแม่เหล็กที่มีคุณสมบัติสำคัญสองประการคือ 1) มันไม่เคยเปลี่ยนแปลงด้วยตนเองและ 2) อุปกรณ์บันทึกสามารถเปลี่ยนทิศทางของสนามได้ทุกจุดบนพื้นผิว เมื่ออ่านสื่อเซ็นเซอร์จะตรวจจับตำแหน่งของสนามที่มุ่งไปยังเซ็นเซอร์และที่ซึ่งฟิลด์นั้นอยู่ห่างจากเซ็นเซอร์ เมื่อเซ็นเซอร์เคลื่อนที่ผ่านพื้นผิวมันจะตรวจจับการกำหนดเวลาของการเปลี่ยนขั้วเหล่านี้ ชั้นแรกของการถอดรหัสถูกแปลกำหนดเวลาเหล่านี้เป็นค่าบิต เนื่องจากความไม่แน่นอนที่จำเป็นทางร่างกายในกระบวนการนี้การเข้ารหัสจะต้องไม่ยืดยาวของขั้วเดียวกัน นั่นคือจะต้องเป็นรหัสแบบ จำกัด ความยาว Run (RLL)

รายละเอียดของการออกแบบฮาร์ดไดรฟ์โดยทั่วไปแล้วเป็นความลับทางการค้า แต่มีสองวิธีหลักเพื่อให้มั่นใจว่าเครื่องหมายของเซกเตอร์ไม่เคยปรากฏในเนื้อหาของเซกเตอร์:

  1. ออกแบบ RLL ที่อนุญาตค่าพิเศษที่จะไม่เกิดขึ้นจากการเข้ารหัสข้อมูลเนื้อหา ค่าพิเศษเหล่านี้สามารถใช้ได้ไม่เพียง แต่สำหรับการทำเครื่องหมายขอบเขตเซกเตอร์ แต่ยังสำหรับการแก้ไขข้อผิดพลาดหรือวัตถุประสงค์รองอื่น ๆ

  2. ใช้การเข้ารหัสเลเยอร์ที่สองเพื่อให้แน่ใจว่าเครื่องหมายเครื่องหมายปรากฏขึ้นที่เครื่องหมายเท่านั้น นี้เป็นบิตเช่นการเข้ารหัส URLที่จะอนุญาตให้ตัวละครพิเศษที่จะ "ซ่อน" ใน URL แต่ด้วยข้อ จำกัด เทียบเท่าเพิ่มเติมเพื่อ จำกัด จำนวนตัวอักษรที่สามารถเพิ่มจึงจบลงมากขึ้นเช่นการเข้ารหัส base64

ดังนั้นหัวอ่านเคลื่อนที่ไปทั่วพื้นผิวที่ตรวจจับการเปลี่ยนแปลงขั้วแม่เหล็กการกำหนดเวลาของการเปลี่ยนแปลงเหล่านั้นใช้เพื่อกำหนดลำดับของค่าบิตที่สอดคล้องกัน (อาจรวมถึงค่าพิเศษบางอย่างที่ไม่ได้แสดงถึงข้อมูลที่เก็บไว้) กำหนดว่าจะอ่านส่วนใดและเนื้อหาของส่วนเหล่านั้น เมื่อมีการพิจารณาเนื้อหาของส่วนข้อมูลอาจถูกเก็บไว้ในโซลิดสเตตบัฟเฟอร์และ / หรือเก็บไว้ในบัฟเฟอร์ RAM และ / หรือส่งกลับเพื่อตอบสนองคำขอ


การเข้ารหัสนี้เหมือนกับการเข้ารหัส Huffman หรือไม่ ถ้ามีคนทำตัวอย่างที่ชัดเจนว่ามันทำงานอย่างไรในระดับฮาร์ดแวร์เช่นนี้: "หัวอ่านกระแสข้อมูลแบบวงกลมเช่น 010111010010111010 ... ที่ทุก 111 ทำเครื่องหมายจุดเริ่มต้นของภาคแล้ว ... " ฉันสามารถ ยอมรับคำตอบ
uzumaki

ฮาร์ดไดรฟ์จะต้องเข้ารหัสข้อมูลนามธรรมเป็นคุณสมบัติทางกายภาพของสื่อแม่เหล็กและผลลัพธ์จะต้องสามารถจัดการได้ง่าย การเข้ารหัส Huffman จะแม็ปสตรีมข้อมูลนามธรรมหนึ่งสตรีมไปที่สตรีมข้อมูลสั้น ๆ (ปกติ) พวกเขาส่วนใหญ่ไม่เกี่ยวข้องกัน
ShadSterling

การอัปเดตของฉันไม่ได้เพิ่มตัวอย่างใด ๆ แต่ถ้าคุณติดตามลิงก์ RLL จะมีบางอย่าง
ShadSterling

18

ข้อมูลไม่ได้ถูกเขียนเป็นสตรีมและเลขศูนย์โดยพลการ มันเขียนในภาค แต่ละภาคมีส่วนของข้อมูลผู้ใช้และส่วนหัว ส่วนหัวมีรหัสการแก้ไขข้อผิดพลาดเช่นเดียวกับเขตข้อมูลการซิงค์พิเศษที่ระบุการเริ่มต้นของเซกเตอร์และหมายเลขเซกเตอร์เพื่อให้ไดรฟ์สามารถทราบเมื่อพบการเริ่มต้นของเซกเตอร์และเซกเตอร์ที่เป็น


3
การอ้างอิงหรือการเชื่อมโยงบางอย่างจะทำให้คำตอบที่ดีนี้ดีมาก : D
แมว

1
@cat ฉันคิดว่า "คอมพิวเตอร์ทำงานอย่างไร" หรือ "Inside the PC" ของ Peter Norton หากทั้งสองอย่างนั้นยังคงอยู่ในสิ่งพิมพ์ ... อาจเป็นรุ่นใหม่สองสามเล่มตั้งแต่ชั้นวางหนังสือของฉัน
psusi

สิ่งนี้ไม่ตอบคำถาม คำถามคือวิธีที่ไดรฟ์รู้ว่าส่วนหัวหรือช่องซิงค์เริ่มต้นที่ใด
Martin Argerami

@MartinArgerami - นี่จะตอบคำถามเพราะมันแก้ไขความเข้าใจผิดของ OP และแนะนำแนวคิดสำคัญของภาคต่างๆ การเจาะลึกลงไปถึงระดับการอ่าน / เขียนของโดเมนแม่เหล็กนั้นรุนแรงเกินไปสำหรับ OP IMO หากคุณต้องการรายละเอียดเพิ่มเติมให้ดูsuperuser.com/questions/427554/…
sawdust

1
@ user134593 - ไบต์การซิงค์อยู่หลังช่องว่างเสมอและเป็นไบต์แรกของการบันทึก พวกเขาเพียงระบุจุดเริ่มต้นของการบันทึก ดังนั้นตัวควบคุมดิสก์ไม่เคยมีข้อขัดแย้งหรือความสับสนกับข้อมูลส่วนบุคคลหรือข้อมูลผู้ใช้ ดูเหมือนว่าคุณจะคิดว่ามันเป็นกระแส (เช่นเดียวกับ OP) แต่เป็นสื่อแม่เหล็กซึ่งหมายความว่าคุณไม่สามารถอ่านหรือเขียนได้ทุกเวลาที่คุณต้องการ
ขี้เลื่อย

7

Psusi นั้นถูกต้อง (ข้อมูลบนดิสก์มีโครงสร้างและส่วนต่าง ๆ ของคอมพิวเตอร์ใช้ส่วนต่าง ๆ ของโครงสร้างนั้น) แต่ไม่ได้รับคำถามของคุณ

ไดรฟ์ไม่ได้ "รู้" อะไรจริงๆ มีอุปกรณ์อิเล็กทรอนิกส์ระดับต่ำที่สามารถอ่านเครื่องหมายบนดิสก์ (โดยทั่วไปเขียนที่โรงงานหรือหัวไดรฟ์เอง) อ่านบล็อคข้อมูลจากดิสก์หรือเขียนบล็อกข้อมูลลงดิสก์หรือบอกว่ามีจุดเฉพาะบน ดิสก์ไม่ดีหรือเสียหายหรือควรย้ายไปยังตำแหน่งเฉพาะบนดิสก์ นั่นคือทั้งหมดที่เกี่ยวกับ "รู้" หัวอ่านไม่ได้ตัดสินใจย้ายที่อื่นด้วยตัวเองมีอะไรบางอย่างที่สูงกว่าในเครื่องบอกให้ ...


2
แต่สิ่งที่สูงขึ้นยังคงเป็นส่วนหนึ่งของฮาร์ดไดรฟ์ (ซึ่งได้รับคำสั่งจากบางสิ่งนอกฮาร์ดไดรฟ์ซึ่งได้รับคำสั่งจากบางสิ่งบางอย่างนอกคอมพิวเตอร์ซึ่งได้รับคำสั่งจากสิ่งเลื่อนลอย แต่เราไม่ได้พูดถึงสิ่งเหล่านั้น)
user253751

0

นอกเหนือจากคำตอบอื่น ๆ แล้วฮาร์ดดิสก์ที่เคยใช้ (และอาจยังทำอยู่) มีแผ่นเสียงหนึ่ง ("หัว" ในคำศัพท์รูปทรงกระบอก / หัว / ส่วน) ซึ่งสงวนไว้สำหรับการสอบเทียบ / กำหนดตำแหน่งข้อมูลไม่ได้ใช้เลยสำหรับการจัดเก็บข้อมูลผู้ใช้ .


3
นี่ไม่ใช่สิ่งที่ฉันได้ยินคุณมีข้อมูลอ้างอิงหรือไม่
ShadSterling

ใช่ไม่ใช่ .... นั่นไม่ใช่สิ่งนั้น
psusi

ดูเหมือนว่าคุณกำลังอ้างถึงพื้นผิวเซอร์โว / แผ่นเสียง แต่นั่นเป็นเทคโนโลยีที่ล้าสมัยที่ฉันไม่ได้เห็นตั้งแต่แผ่นดิสก์ขนาด 14 "ซึ่งลงวันที่ก่อนวันที่ ST-506 HDD ของ IBM PC-XT ดั้งเดิม Winchester และดิสก์ไดรฟ์ทันสมัยใช้เซอร์โวแบบฝังตัว
sawdust

อาตกลงฉันไม่เคยได้ยินเรื่องนี้มานานแล้วแม้ว่าฉันจะใส่ลงไปในดิสก์ที่ทันสมัยเป็นกล่องดำ
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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.