ตอนที่ 9: Logical Block Addressing (LBA) การปฏิวัติระบบค้นหาข้อมูลจาก 3 มิติสู่ตัวเลขหลักเดียว

1. 🎯 ตอนที่ 9: Logical Block Addressing (LBA) คืออะไร?
2. 📖 เปิดฉาก (The Hook)
สวัสดีครับน้องๆ วิศวกรจบใหม่ไฟแรงทุกคน! กลับมาลุยกันต่อกับซีรีส์ เจาะลึกวิศวกรรมเบื้องหลังอุตสาหกรรมฮาร์ดดิสก์ไดรฟ์ กันครับ
จากตอนที่แล้ว เราได้รู้จักกับสถาปัตยกรรมผังเมืองบนแผ่นดิสก์แบบคลาสสิกที่เรียกว่า CHS (Cylinder-Head-Sector) กันไปแล้ว ซึ่งเปรียบเสมือนการบอกพิกัด 3 มิติว่าข้อมูลของเราอยู่ลู่วิ่งไหน หน้าแผ่นอะไร และช่องจอดรถที่เท่าไหร่
แต่พอเทคโนโลยีพัฒนาขึ้น ความจุฮาร์ดดิสก์พุ่งทะยานจากยุคเมกะไบต์ (Megabyte) ทะลุไปเป็นกิกะไบต์ (Gigabyte) ระบบ CHS แบบเดิมกลับกลายเป็นตัวถ่วงความเจริญครับ! ปัญหาคือระบบ BIOS ของคอมพิวเตอร์และตัวฮาร์ดดิสก์สื่อสารกันด้วยพิกัด CHS ที่มีข้อจำกัดเรื่องตัวเลข ทำให้เกิดปรากฏการณ์ที่เรียกว่า “กำแพงความจุ (Capacity Barrier)” จนวันหนึ่ง วิศวกรคอมพิวเตอร์ได้คิดค้นระบบใหม่ที่เข้ามาทลายกำแพงนี้อย่างราบคาบ นั่นก็คือ Logical Block Addressing หรือ LBA วันนี้พี่จะมาเล่าให้ฟังว่า LBA คืออะไร และมันเข้ามาช่วยชีวิตวงการ Storage ได้อย่างไรครับ!
3. 🧠 แก่นวิชาวิศวกรรม (Core Concepts)
ก่อนอื่นเราต้องมาเข้าใจข้อจำกัดของ CHS ก่อนครับ การอ้างอิงตำแหน่งแบบเก่า (CHS) เหมือนกับการส่งจดหมายตามที่อยู่ไปรษณีย์ปกติ ถ้าน้องจะส่งจดหมาย น้องต้องระบุ “บ้านเลขที่, ถนน, อำเภอ, จังหวัด” ถูกไหมครับ? CHS ก็เช่นกัน OS ต้องสั่งฮาร์ดดิสก์ว่า “จงไปอ่านข้อมูลที่ Cylinder ที่ 500, Head ที่ 2, Sector ที่ 15”
แต่ Logical Block Addressing (LBA) เปลี่ยนแนวคิดนี้ใหม่หมด! แทนที่จะต้องบอกพิกัด 3 ตัว LBA เปลี่ยนการมองพื้นที่จัดเก็บข้อมูลบนฮาร์ดดิสก์ให้เป็น “เส้นตรงเส้นเดียว (Linear Sequence)” เรียงลำดับต่อเนื่องกันไปเรื่อยๆ เริ่มตั้งแต่ Sector ที่ $0, 1, 2, …$ ไปจนถึง $N-1$ (โดยที่ $N$ คือจำนวน Sector ทั้งหมดบนฮาร์ดดิสก์)
เปรียบเทียบสไตล์รุ่นพี่: ลองจินตนาการว่าแทนที่เราจะส่งจดหมายโดยระบุ “บ้านเลขที่, ถนน, อำเภอ, จังหวัด” เราเปลี่ยนมาใช้ระบบใหม่ โดยกำหนดให้บ้านทุกหลังบนโลกใบนี้มี “รหัสประจำบ้านตัวเลขเดียวที่ไม่ซ้ำกันเลย” ตั้งแต่บ้านหมายเลข 0 ไปจนถึงบ้านหมายเลขพันล้าน… เวลาส่งจดหมายก็แค่บอกว่า “ส่งไปที่บ้านหมายเลข 15,482,880” แค่นี้จบ! นี่แหละครับคือหลักการทำงานของ LBA
เมื่อคอมพิวเตอร์สั่งงานด้วยตัวเลข LBA ตัวฮาร์ดดิสก์ที่มี “สมองกล (Integrated Controller)” ฝังอยู่ จะทำหน้าที่แปลรหัส LBA นั้นกลับไปเป็นตำแหน่ง Physical CHS ที่แท้จริงบนแผ่นดิสก์ (Physical Geometry) เอง โดยที่คอมพิวเตอร์ไม่ต้องมารับรู้ความซับซ้อนภายในเลย

4. 🧮 ร่ายมนต์สมการและลอจิกการทำงาน (The Math & Logic)
ทีนี้เรามาดูความเป็นวิศวกรกันครับ ว่าทำไมระบบ CHS ถึงถึงทางตัน และต้องใช้ LBA มาช่วยแก้สมการ
ในยุคแรกเริ่ม มาตรฐาน IDE/ATA และ BIOS (Int 13h) ออกแบบจำนวนบิตที่ใช้เก็บค่า CHS ไว้ไม่เท่ากัน ทำให้เกิด “กำแพง 504 MiB (504 MiB Barrier)” โดยมีสมการขีดจำกัดดังนี้:
- ข้อจำกัดของ BIOS (Int 13h): รองรับ Cylinder สูงสุด 1,024, Head สูงสุด 256, Sector สูงสุด 63
- ข้อจำกัดของ IDE/ATA: รองรับ Cylinder สูงสุด 65,536, Head สูงสุด 16, Sector สูงสุด 256
เมื่อนำมาตรฐานทั้งสองมาต่อกัน ระบบจะถูกบีบให้ใช้ค่าที่ “ต่ำที่สุด” ของแต่ละฝั่ง นั่นคือ Cylinder = 1,024, Head = 16, และ Sector = 63 ทำให้ได้ความจุสูงสุดที่: $$ Capacity_{limit} = 1,024 \times 16 \times 63 \times 512 \text{ Bytes} \approx 504 \text{ MiB} $$
ต่อมาเมื่อมีระบบ LBA ตัว Controller ของฮาร์ดดิสก์สามารถรับคำสั่งเป็นตัวเลข Sector โดยตรงยาว 28 บิต (28-bit LBA) ทำให้สมการความจุพุ่งขึ้นไปเป็น: $$ Capacity_{LBA28} = 2^{28} \times 512 \text{ Bytes} \approx 137.4 \text{ GB} $$
อธิบายภาษาคน: ระบบ LBA ปลดล็อกพันธนาการจากข้อจำกัดของโครงสร้าง CHS เดิม ทำให้ OS ไม่ต้องปวดหัวกับโครงสร้างกายภาพของดิสก์ และมองฮาร์ดดิสก์เป็นเพียงบล็อกข้อมูลเรียงต่อกัน ทำให้สามารถก้าวข้ามกำแพงความจุ 504 MB และ 8.4 GB ในยุคอดีตมาได้อย่างสวยงามครับ
5. 🛡️ เคล็ดลับคนหน้างาน (Factory Floor Pro-Tips)
ถ้าน้องต้องไปออกแบบหรือดูเรื่อง Firmware ของดิสก์ พี่มี Pro-Tip จากหน้างานมาเตือน 2 เรื่องครับ:
- LBA ไม่ได้ทำให้ข้อมูลวิ่งเร็วขึ้น แต่ลด Overhead: การใช้ LBA ช่วยให้ OS ไม่ต้องเสียเวลาคำนวณตำแหน่ง 3 มิติ แต่ภาระนี้จะไปตกที่ Microcontroller บนแผง PCB ของฮาร์ดดิสก์แทน! ดังนั้น Firmware วิศวกรอย่างพวกเรา ต้องเขียนอัลกอริทึม “Translation” ที่หลังบ้านให้ฉับไวที่สุด เพื่อแปลง LBA $\rightarrow$ Physical CHS แบบ Real-time ครับ
- เตรียมตัวเจอกำแพงใหม่: แม้ LBA 28-bit จะให้ความจุระดับ 137 GB ซึ่งดูเหมือนจะเยอะในอดีต แต่วันนี้เราทะลุขีดจำกัดนั้นไปไกลแล้วครับ! ปัจจุบันมาตรฐาน ATA ต้องขยับไปใช้ 48-bit LBA (หรือ 64-bit) ซึ่งรองรับได้ถึงระดับ Petabyte ดังนั้นเวลาเขียนโค้ดคุมดิสก์ น้องๆ ต้องเช็กให้ชัวร์ว่า System และ Controller ของน้องรองรับ LBA รุ่นไหน ไม่เช่นนั้น OS จะมองเห็นความจุไม่เต็มแผ่นครับ!
6. 🏁 บทสรุป (To be continued…)
เพื่อให้เข้าใจและนำไปพรีเซนต์กับเจ้านายได้ง่ายขึ้น พี่ขอสรุปการวิวัฒนาการจาก CHS มาเป็น LBA เป็น Bullet points ดังนี้ครับ:
- CHS (อดีต): อ้างอิงข้อมูลแบบ 3 มิติ (Cylinder, Head, Sector) ยุ่งยาก ซับซ้อน และมีข้อจำกัดเรื่องจำนวนบิตของ BIOS ทำให้ฮาร์ดดิสก์ในอดีตถูกจำกัดความจุไว้ที่ 504 MB หรือ 8.4 GB
- LBA (ปัจจุบัน): อ้างอิงข้อมูลแบบ 1 มิติ (เส้นตรง) โดยให้หมายเลข Sector ตั้งแต่ 0 ถึง N-1 ไปเรื่อยๆ เปรียบเหมือนการให้รหัสประจำบ้านที่ไม่ซ้ำกัน
- ซ่อนความซับซ้อน (Abstraction): OS แค่สั่งว่า “ขอข้อมูลที่ LBA หมายเลข 1,000,000” ส่วนหน้าที่การแปลพิกัดเพื่อขยับแขนหัวอ่านจริงๆ จะเป็นหน้าที่ของสมองกล (Controller) ในฮาร์ดดิสก์เอง
- ความจุทะลุขีดจำกัด: LBA ช่วยทลายกำแพงความจุ โดย LBA 28-bit รองรับได้ 137 GB และได้ถูกพัฒนาเป็น 48-bit เพื่อรองรับฮาร์ดดิสก์ความจุระดับ Terabyte ในปัจจุบัน
เป็นอย่างไรบ้างครับสำหรับแนวคิดการบริหารจัดการที่อยู่ของข้อมูลอันชาญฉลาดนี้ ในตอนหน้า พี่จะพาน้องๆ ดำดิ่งลึกลงไปอีกขั้น เข้าสู่ระดับของ “สัญญาณ (Signal)” เราจะไปดูว่าสัญญาณไฟฟ้าที่อ่านได้จากแผ่นแม่เหล็ก มันถูกแปลงกลับมาเป็นข้อมูล 0 กับ 1 ด้วย PRML (Partial Response Maximum Likelihood) ได้อย่างไร เตรียมตัวให้พร้อม แล้วพบกันครับ!
ต้องการที่ปรึกษาด้านการออกแบบระบบ Automation, Machine Vision หรือระบบควบคุมความแม่นยำสูงให้กับโรงงานของคุณ? ทีมงาน WP Solution พร้อมให้บริการออกแบบและติดตั้งระบบแบบครบวงจร ดูรายละเอียดบริการของเราได้ที่: www.wpsolution2017.com หรือพูดคุยปรึกษาเบื้องต้นได้ที่ Line: wisit.p