ทำไมตอนนี้ Hard Drive ถึงมีพื้นที่ขายกันจำกัดแค่ 2TB

เป็นปัญหาที่หลายๆ คนคงนั่งงงว่า แค่เรื่อง RAM ใส่ลงไป 4GB ก็ดันใช้ได้แค่ 3-3.5GB ซึ่งประเด็นมันอยู่ที่ 32-bit OS มาคราวนี้ก็เอาอีก ไอ้เจ้า 32-bit OS เจ้าปัญหาที่ยังครองโลกอยู่นั้นดันมีปัญหากับขนาดพื้นที่ของสื่อเก็บข้อมูลอย่าง Hard Drive (ต่อไปเรียก HDD) เสียด้วย เพราะความต้องการของมนุษย์มันไม่มีที่สิ้นสุด เมื่อก่อน 1TB เป็นสิ่งที่ทุกคนบอกว่าใช้ยังไงก็ไม่หมด แต่ในวันนี้สื่อต่างๆ วิ่งนำข้อมูลระดับ HD ที่ระดับ HD ปรกติและ Full HD และในอนาคตคงเจอ Super HD ทำให้สื่อที่ใช้ในการเก็บข้อมูลมันก็ใช้เยอะขึ้นเยอะขึ้นไปเรื่อยๆ มาวันนี้ 1TB ก็ชักจะไม่พอ 2TB ก็ดูจะเริ่มล้น แล้วมากกว่านั้นหล่ะ!!!

ตอนนี้เครื่องคอมพิวเตอร์ที่เราๆ ใช้งานกันนั้นส่วนมากก็จะใช้ 32-bit OS อย่างเช่น Microsoft Windows XP, Microsoft Windows Vista และ Microsoft Windows 7 ซึ่งส่วนใหญ่ก็ขายกัน 32-bit กันเป็นส่วนใหญ่ ปัญหาตอนนี้ที่เราเจอก็ข้อจำกัดของการใช้พื้นที่บน RAM ก็ยังรู้กันไม่ทั่ว ตอนนี้ก็เกิดข้อจำกัดในเรื่องของขนาดของพื้นที่ HDD เข้าไปอีก ตอนนี้ HDD ที่ขายก็เลยตันกันที่ 2TB เพราะตลาดส่วนใหญ่ซื้อไปใช้ก็ใช้กับ 32-bit OS กันเสียส่วนใหญ่ ทั้งๆ ที่ตอนนี้คนส่วนใหญ่ก็อยากจะใช้งานมากกว่า  2TB ต่อ HDD 1 ตัว บน 32-bit OS แต่กลับทำไม่ได้!!!

เหตุผลเพราะ Logical Block Addressing ใน MBR partition table ของ HDD ใน 1 ตัว ถ้ามีจำนวน sectors สำหรับใช้อ้างอิงข้อมูลมากกว่า 4,294,967,296 sectors จะทำให้ 32-bit OS มองเห็นไม่ครบหรือเกิดการทำงานที่ผิดพลาด เป็นปัญหาเดียวกับ RAM เลยครับ ปัญหาของ RAM คือ 32-bit OS มองเห็น Memory Addrees ได้แค่ 4,294,967,296 bytes (2 ยกกำลัง 32) เช่นกัน จาก entry เก่าที่ แถลงไข CPU 64-bit แต่โชคยังดีหน่อยที่ 1 sectors ของ HDD โดยค่ามาตรฐานเท่ากับ 512 bytes ทำให้ต่อ 1 HDD ก็จะมองเห็นข้อมูลบน HDD ได้จำนวนข้อมูลคือ 4,294,967,296 sectors x 512 bytes = 2TB นั้นเอง

จริงๆ ปัญหามันยังไม่หมด เพราะใน HDD ความจุสูงเหล่านั้นยังอาจมีปัญหาการบูตกับ BIOS เก่าๆ ที่ทำให้ไม่สามารถมองเห็นได้ด้วย!!!

สรุปง่ายๆ คือ
ข้อจำกัดของ 32-bit OS ใน RAM และ HDD
RAM = 4,294,967,296 bytes = ~4GB
HDD = 4,294,967,296 sectors x 512 bytes = ~2TB

แต่ 1 sectors อยากจะปรับเป็น 4Kbytes ก็ได้นะครับ เค้าเรียกว่าทำ Long LBA นั้นเอง เพื่อให้รองรับ 16TB แต่ไม่ใช่ทุกๆ OS จะรองรับ แน่นอนว่า Windows XP ใช้ไม่ได้!!! และทำงานช้ากว่าเดิม -_-‘ และมีความเสี่ยงสูงที่ทำให้ข้อมูลเสียหายมากขึ้นไปอีกจากกรณี bad sector ถ้าอยากใช้ HDD ต่อ 1 ตัวมีขนาดมากกว่า 2TB ก็รอให้ 64-bit OS มันมีส่วนแบ่งทางการตลาดเยอะๆ ก็คงได้เห็นกันเองครับ ตอนนี้ก็มี 3TB ขายนะครับ แต่ราคาก็ยังแพงอยู่และมีคำเตือนไว้ว่าใช้ได้กับ 64-bit OS เท่านั้นครับ

แถลงไข CPU 64-bit

อะไรคือ CPU 64-bit

         ใน Computer Architecture นั้น 64-bit เป็นการขยายของการใช้ integer, floating point, memory address หรือ ชนิดข้อมูลอื่นๆ ที่ต้องการใส่ข้อมูลที่มีขนาดความกว้างของข้อมูลมากถึง 64 bit (8 octets) โดยที่รายละเอียดของ CPU และ สถาปัตยกรรม ALU บน register, address buses, หรือ data buses ต้องมีขนาดเท่านั้นด้วย

         โดยในปี 2004 ได้มี CPU 64-bit CPU เป็นพื้นฐานสำหรับตลาดระดับ Server และเตรียมพร้อมสำหรับการเข้าสู่สายการผลิตหลักของตลาด Personal Desktop โดยการเข้ามาของ AMD64 (AMD), EM64T (Intel) และ PowerPC 970 (G5 จาก IBM)


ความเหมือนที่แตกต่างของ CPU 32-bit และ 64-bit

         นับแต่อดีตถึงปัจจุบันปริมาณข้อมูล ที่ใช้ในการประมวลผลต่อ 1 รอบสัญญาณนาฬิกามีจำนวนมากขึ้น อย่างไม่มีที่สิ้นสุด การเปลี่ยนแปลงจาก 16-bit ในอดีตเมื่อ 10 ปีก่อน มา 32-bit ในปัจจุบัน และกำลังก้าวเข้าสู่โลก 64-bit ได้สร้างปรากฎการณ์ใหม่ให้กับโลกคอมพิวเตอร์ได้อย่างมากมาย ทั้งในด้านจำนวนข้อมูลที่ส่งต่อในระบบภายในที่มีจำนวนมากขึ้น และความเหมือนจริงในการทำงานด้านมัลติมีเดียต่าง ๆ มากมาย ยังผลให้ ข้อมูลที่เข้าสู่กระบวนการประมวลผลนั้นมากตามไปด้วย ซึ่งไม่ได้เกี่ยวข้องในส่วนของความเร็วในการประมวลผลแต่ประการใด เป็นเพียงเพิ่มความหนาแน่นของข้อมูลต่อชุด ในการประมวลต่อครั้งเท่านั้น

         จากที่ได้กล่าวไปแล้วนั้นว่าความแตกต่างในทั้งสอง ไม่ได้แตกต่างกันที่ความเร็ว ขยายความให้เข้าใจได้ง่ายคือ สัญญาณนาฬิกายังคงมีความเร็วเท่าเดิม แต่ความหนาแน่นของข้อมูลต่อชุดคำสั่งมีมากขึ้นนั้น เราอาศัยการเปรียบเทียบที่ memory addrees ระหว่าง 32-bit และ 64-bit โดยที่ 32-bit นั้นมี memory address ได้ 4Gbytes เท่านั้น แต่ใน 64-bit นั้น มี memory address ถึง 16 Ebytes (~17,179,869,184 Gbytes) ทำให้เกิดความได้เปรียบในด้านความเร็วในการทำงานใน software ที่ต้องการ การไหลของข้อมูลในปริมาณที่มาก ๆ เช่นการเล่นเกม, ระบบฐานข้อมูลใหญ่ ๆ , ระบบที่ต้องการความละเอียดต่อการประมวลผลมาก ๆ เช่นการ Simulate, Render, Retouch, Lenear Editing ฯลฯ แต่หากเป็น software โดยทั่วไปแล้ว แทบจะไม่เห็นความแตกต่าง แต่อย่างใด

"ปัญหาของระบบ 32-bit ที่ทำให้เกิด 64-bit ขึ้นมาในปัจจุบันคือ ขนาดของหน่วยความจำหลัก (RAM Memory) มีจำกัดเกินกว่าจะยอมรับได้แล้ว"

         CPU 32-bit นั้นมีความต้องหน่วยความจำหลักได้มากสุดที่ 4Gbytes เท่านั้น แล้ว 4Gbytes มาจากไหนหล่ะ ?
คำตอบคือ 32-bit register นั้นมาจาก 2 ยกกำลัง 32 หรือมีขนาดที่ 4Gbytes ของหน่วยความจำหลัก (RAM memory) นั้นเอง

         นั้นหมายความว่า CPU 64-bit นั้นมีความต้องหน่วยความจำหลักได้มากสุดที่ …..  16 Ebytes * (~17,179,869,184 Gbytes) นั้นเอง ซึ่งมาจาก 2 ยกกำลัง 64 หรือมีขนาดที่ 16 Ebytes ของหน่วยความจำหลัก (RAM memory)
* Ebytes อ่านว่า เอ๊กซาไบต์ (Exabyte)

232    = 4,294,967,296 bytes
        =~ 4 Gbytes
264    = 18,446,744,073,709,551,616 bytes
        = ~ 16 Ebytes หรือ 17,179,869,184 Gbytes

การแปลง byte เป็นหน่วยต่าง ๆ อ่านที่นี่ครับ พื้นที่ในฮาร์ดดิสค์หายไปไหน ?? มันคือพื้นที่ผีอยู่ หรือว่ามันหายไปจริงๆ !!!


แล้วมันแตกต่างกันตรงไหนในด้านการประมวลผล ?

         การประมวลผลจริง ๆ แล้วไม่แตกต่างกันในเชิงความเร็วมากนัก ดังที่ได้กล่าวไแล้ว แต่จะแตกต่างนั้นอยู่ที่ ความหน่าแน่นของข้อมูลที่ประมวลผลต่อสัญญาณมาฬิกามีมากขึ้น ตัวอย่างเช่น

  • คุณชมภาพยนต์ในจอคอมพิวเตอร์จากแผ่น VCD (เทียบได้กับ 32-bit) และ DVD (เทียบได้กับ 64-bit) ถ้าคุณได้รับชมผ่าน VCD ในจอคอมพิวเตอร์คุณได้ภาพที่เล็ก และไม่ละเอียด เท่ากับ DVD ที่มีภาพที่ละเอียดกว่า และยังขยายขนาดของภาพให้ Full Srceen ได้โดยภาพไม่แตกเหมือน VCD
  • คุณเล่นเกม ภาพที่ได้จะมีมิติมากขึ้นกว่าเดิม แสงเงาต่าง ๆ จะสมจริงมากขึ้น แต่ไม่ได้ทำให้การประมวลเร็วขึ้นแต่อย่างใด
  • ฯลฯ

         แต่ทั้งนี้ทั้งนั้น ต้องขึ้นอยู่กับ Software ที่นำมาทำงานร่วมกับ CPU 64-bit ด้วยว่าสนับสนุนการทำงานนี้หรือไม่ มิเช่นนั้นก็ไม่สามารถใช้งาน CPU 64-bit ได้อย่างมีประสิทธิภาพดังที่ตั้งใจไว้
        
สรุปให้เข้าใจง่าย ๆ ว่า 64-bit เป็นการทำให้การประมวลผลต่อครั้งมีความละเอียดมากขึ้น ไม่ใช่เร็วมากขึ้น อย่างที่ หลาย ๆ คนเข้าใจ แต่การเร่งความเร็วในการประมวลผล น่าจะเป็นในส่วนของ Dual Core CPU มากกว่า แต่การทำให้ Dual Core CPU สามารถใช้งานได้ดีและเต็มประสิทธิภาพนั้น จำเป็นอย่างมากที่ software ที่เราใช้ต้องสนับสนุนระบบ Multiprocessor ด้วยเช่นกัน