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

อะไรคือขนาดของชีพ

ชิพ 64 บิตหรือระบบ 64 บิตนั้น แท้จริงแล้วใช้อะไรมาเป็นมาตรฐานในกางกล่าวเช่นนั้น เราคงต้องมาพูดเรื่องนี้กันหน่อยผู้เขียนเชื่อแน่ว่ายังมีอีกหลายท่านยังไม่ทราบที่มา แล้วเข้าใจผิดว่าดูที่ขนาดดาต้าบัสบ้างหรือดูที่ขนาดแอดเดรสบัสบ้าง ซึ่งยังไม่ถูกต้องเสมอไป เพราะขนาดดังกล่าวอาจจะมากกว่าหรือน้อยกว่าขนาดชิจริง ๆ ก็ได้ แล้วแต่การออำแบบมาใช้งาน ขนาดชิจะต้องดูดจากขนาดรีจิสเตอร์จำนวนเต็ม (integerregister) เท่านั้น
ยกตัวอย่างเช่น ในชิพ 8088 ซึ่งมีรีจิสเตอร์ขนาด 16 บิต แต่มีขนาดดาต้าบัสเป็ฯ 8 บิต และมีขนาดแดเดรสบัสเป็น 20 บิต ส่วนชิพ 8086 ซึ่งมีสถาปัตยกรรมเดียวกับ 8088 ทุกอย่าง ยกเว้นเพียงดาต้าบัสมีขนาด 16 บิต (ซึ่งถ้าเป็นปัจจุบันนี้อินเทคงจะเรียกชิพ 8088 ว่า 8086sx ดังเช่นที่เรียกชิพ 386sx ซึ่งมีขนาด ดาต้าบัสแค่ 16 บิต และอย่าง 386dx ก็มีขนาดดาต้าบัสเป็น 24 บิต ขณะที่ 386 แท้แล้วขนาดบัสจะเป็ฯ 32 บิต จริง
ถ้าเป็นของมอโนโรลาคือ ไมโครโปรเซสเซอร์ตระกูล 680x0 ซึ่งมีขนาดรีจิสเตอร์ 32 บิต แต่เพียง 68020,68030 และ68040 เท่านั้นที่มีขนาดดาต้าบัสและแอดเดรสบัสเท่ากันคือ 32 บิต ส่วน 6800 มีขนาดดาต้าบัสเป็น 64 บิตและแอดเดรสบัสเป็น 24 บิต สรุปก็คือ "ขนาดของชิใด ๆ จะใช้มาตรฐานตามขนาดรีจิสเตอร์ระบุเท่านั้น"

สถาปัตยกรรมของซีพียู

เมื่อพิจารณาตามโครงสร้างทางด้านสถาปัตยกรรม จะสามารถแยกลักษณะของซีพียูได้ 2 แบบด้วยกันคือ Intruction Set Architecture (ISA) และแบบ Harware Implementation แบบ ISA หรือ สถาปัตยกรรมด้านชุดคำสั่ง จะเป็นแบบที่มองเห็นในระดับซอฟต์แวร์จากภาษาชั่นต่ำ เช่น ภาษาแดเซมบลีที่สามารถกระทำกับรีจิสแตอร์และแอดเดรสได้ ส่วนระดับอาร์ดแวร์จะมองทางด้านฟิสิคัลแอดเดรสและทางด้านดาต้าบัส

CPU CHARACTERISTICS
      ISA characteristics Hardware Implementation
CPU Year Size Innteger Generated Physical Data
  released Called register size user address size address size bus size
      (R) (V) (A) (D)
DED PDP-11/45 1973 16 16 16* 18 32
DEC PDP-11/70 1976 16 16 16* 22 32
DEC VAX-11/780 1978 32 32 31 32 64
IMB S/360 1964 32 32 24 24 8-128
IBM S/370XA 1983 32 32 31 32 128
IBM ESA/370 1988 32 32 31* 32 128
IBM RISC System/6000 1990 323 32 32* 32 64-128
HP Precision 1986 32 32 32* 32 32-64
Intel 386DX 1985 32 32 32* 32 32
Intel 386SX 1987 32 32 32* 24 16
Intel 860 1989 64 32 32 32 64
Intel 486DX 1989 32 32 32* 32 32
Intel 486SX 1991 32 32 32* 32 32
Mips R2000 1986 32 32 31 32 32
Mips R4000 1990 64 64 40-62 36 64
Motorola 68000 1980 32 32 24 24 16
Motorola 68020 1985 32 32 32 32 32
Motorola 68030 1987 32 32 32 32 32
Motorola 68040 1990 32 32 32 32 32
Sun SPARC 1987 32 32 32 36 32-64

ตารางที่ 1 ตารางเปรียบเทียบซีพียู

ดังตารางที่ 1 สถาปัตยกรรมของซีพียูด้าน ISA จะมองเห็นขนาดรีจิสเตอร์จำนวนเต็มมีขนาดกว้าง R บิตและมองเห็นแอดเดรสมีขนาดกว้าง V บิต เมื่อจะทำการโปรแกรมซึ่ง V ก็คือ เวอร์ชวลแอดเดรสหรือแอดเดรสเสมือน ซึ่งสามารถถูกเยนเนอร์เรได้ 2 แบบ คือ
1. โดยการใช้รีจิสเตอร์อ้างโดยตรงเลย ซึ่งก็จะอ้างขนาดแอดเดรสได้น้อยกว่าหรือเท่ากับ R
2. โดยการแบ่งส่วนเป็นส่วนเซกเมนต์รีจิสเตอร์และส่วนออเซตเมื่อนำทั้ง 2 ส่วนมารวมกันจึงได้เป็นเวอร์ชวลแอดเดรส ซึ่งวิธีนี้ก็ทำเพื่อขยายความสามารถในการอ้างแอดเดรสให้มากกว่า R นั่งเอง
หลังจากได้เวอร์ชวลเมโมรีแล้วก็จะต้องผ่านส่วนจัดการเมโมรี(memory menagement)เสียก่อน จึงเป็นระดับฮาร์ดแวร์ต่อไป โดยจะเป็นฟิสิคัลแอดเดรสที่มีขนาด A ในการที่จะอ้างอิงหน่วยความจำจริง ๆ ได้ และการอ้างอิงหน่วยความจำแต่ละครั้งจะมีการส่งผ่านข้อมูลกันคราวละ D บิต ขนาดที่ว่านี้ก็คือขนาดของดาต้าบัสนั่นเอง ดังรูปที่ 1

รูปที่ 1 ขนาดของดาต้าเบส

เมื่อเพิ่มขนาดรีจิสเตอร์ประสิทธิภาพก็เพิ่ม

ถ้าเราเพิ่มขนาดรีจิสเตอร์เป็น 64 บิต ก็จะทำให้โปรแกรมที่มีลักษณะต่อไปนั้มีประสิทธิภาพเพิ่มขึ้นอีกมาก
- ใช้ตริที่มีความยาวกมาก ๆ โปรแกรมบางโปรแกรมสามารถเพิ่มประสิทธิภาพได้ถึง 2 เท่าที่เดียว หากเปลี่ยนจากระบบ 32 บิตมาใช้ระบบ 64 บิต เพราะจะทำให้ระบบปฏิบัติการใช้เวลาน้อยลง10 ถึง20 เปอร์เซ็นต์ในการที่จะเคลียร์ค่าในหน่วยความจำหรือเมื่อทำการก็อบปี้กลุ่มข้อมูลขนาดใหญ่ และทำให้ความแตกต่างระหว่าง ซีพียูกับ I/O ดีไวซ์สามารถลดลงได้เมื่อทำให้ข้อมูลเล็กลงโดยทำการย่อยขนาด (compression) เสียก่อน แล้วจึงจัดเก็บและทำการขยาย (decompression) ก่อนที่จะนำข้อมูลไปใช้ วิธีการย่อและขยายข้อมูลนี้ต้องจัดการกับข้อมูลขนาดใหญ่ ถ้าเราใช้ระบบ 64 บิต ก็จะทำได้อย่างรวดเร็วมากขึ้น
- เป็นกราฟิก โปรแกรมทางด้านกราฟิก นอกจากจะมีการคำนวณมากมายอยู่แล้ว โดยเฉพาะจอมอนิเตอร์แบบสีที่มีความละเอียดสูง ๆ ถ้าเราสามารถเพิ่มความเร็วทางด้านนี้ให้สูงยิ่งขึ้น โดยที่ไม่ต้องใช้ชิที่ช่วยงานด้านกราฟิก(graphic support chips) ก็โดยการเพิ่มเป็นระบบ 64 บิต เพราะมันจะทำให้การทำ scroll การฟิวแอเรียและอื่นๆ ที่ต้องอาศัยพื้นที่ว่างขนาดใหญ่เพื่อกระทำการดังกล่าว สามารถทำได้อย่างสบาย ๆ ซึ่งวิธีการเพิ่มเป็น 64 บิต นี้จะเพิ่มประสิทธิภาพได้ถึง2 เท่าของแบบ 32 บิต และเมื่อเทียบกันทางด้านประสิทธิภาพต่อราคาแล้วยังถูกว้าแบบซื้อชิช่วยอีกด้วย
- มีการคำนวณสูง แม้ว่าชิส่วนใหญ่สามารถที่จะทำการบวก ลบเลขจำนวนเต็มแบบความละเอียดสูง ๆ ได้ เช่น การบวกแบบ 64 บิต 96 บิต หรือ 128 บิตได้อย่างรวดเร็วก็ตามแต่ถ้าเป็นการคูณและหารขนาดความละเอียดสูง ๆ ดังกล่าวจะทำช้ามาก ๆดังเช่นการทำการเข้ารหัสข้อมูล(Cryptography) ซึ่งต้องมีการคำนวณการคูณการหารกับตัวเลขขนาดใหญ่ ๆ การคำนวณด้านการเงินการคลังระดับประเทศซึ่รีจิสเตอร์ขนาด 32 บิตก็อาจจะไม่สามารถเก็บจำนวนเงินขนาดนี้ได้ ต้องใช้รีจิสเตอร์ขนาด 64 บิตจึงจะพียงพอ

ว่าด้วยเมโมรี

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

รูปที่ 2 เปรียบเทียบเมโมรีเพิ่มขึ้นทุก ๆ 2 ปี

จากรูปที่ 2 ซึ่งเป็นการศึกษาเรื่องเมโมรีที่เพิ่มขึ้นในทุก ๆ 2 ปี พร้อมกับได้ทำการทำนายว่าขนาดของเวอร์ชวลเมโมรี ที่ด้างได้ 32 บิต จะถึงจุดที่เริ่มวิกฤตคือ ไม่เพียงพอสำหรับซอฟต์แวร์ใหญ่ ๆ โดยข้อมูลนี้นำมาจาก "Mips Computer System " และ "Sun Microsysttem" มาศึกษาและวาดเป็นกราฟใช้สเกลแบบลอการิทึม ซึ่งพบว่าอัตราการเพิ่มของเมโมรีจะเป็นเส่นตรงในอัตรา 2 บิตทุก ๆ 3 ปี เส้นกราฟด้านบนแสดงถึงขนาดสูงสุดของฟิสิคัลเมโมรี ส่วนกราฟเส้นล่างแสดงขนาดของฟิสิคับเมโมรี ซึ่งเป็น 50 เปอร์เซ็นต์ หรือครึ่งหนึ่งของขนาดที่มักจะถูกจำหน่ายจากผู้ขายทั่ว ๆ ไป เมื่อพิจารณากราฟเส้นบนจะพบว่า ในราวปี ค.ศ. 1991 จะเริ่มมีโปรแกรมที่ต้องการอ้างเมนโมรีถึง 32 บิตแล้ว และพอราวปี ค.ศ. 1993 หรือ ค.ศ. 1994 จะต้องการเมโมรีสูงขึ้นไปอีก จนเกิดวิกฤตกาลที่ไม่สามารถพัฒนาโปรแกรมให้มากขึ้นหรือใหญ่ขึ้นไปกว่านี้อีกแล้วเพราะหากขนาดฟิสิคัลเมโมรีwbr>wbrbr> 32 บิต ไม่พัฒนาให้เป็นรุ่นถัดไปคือ 64 บิต

ทำไมต้อง 64 บิต

จากความจำเป็นที่ต้องเพิ่มเมโมรีให้มากขึ้นกว่าการอ้างจาก 32 บิต ตามที่กล่าวมาแล้ว สามารถเพิ่มได้โดยยังคงขนาด 32 บิตไว้เช่นเดิม ต้องการแบ่งออกเป็น 2 ส่วน คือเป็นเซกเมนต์และออเซต หรือโดยการเพิ่ม ขนาดรีวิจเตอร์เป็น 64 บิตไปเลย
ผู้อ่านจะสงสัยว่า แล้วทำไมการเพิ่มขนาดรีจิสเตอร์ต้องเพิ่มเป็น 64 บิต จะเป็นขนาดอื่นเช่น 48 บิตได้หรือไม่ เพราะอาจเห็นว่าขนาด 64 บิตคงมากเกินความจำเป็นไปหน่อย เหตุผลก็คือคือสถาปัตยกรรมของการอ้างแอดเดรสของภาษาชั้นต่ำที่สามารถเข้าถึงระดับรีจิสเตอร์ เช่น ภาษาแอสเซมบลี ภาษาซี เมื่อมีการอ้างถึงข้อมูลในแต่ละแอดเดรสหนึ่ง ๆ จะมองข้อมูลเป็นเวิร์ด แต่ละเวิร์ดจะมีขนาด 8 บิต หรือ 1 ไบต์ และหากต้องการข้อมูลมากกว่า 1 เวิร์ดขนาดของมันต้องเพ่มิขึ้นคราวละ 2 เท่าเสมอ เช่นเป็น 16 บิต 32 บิต หรือ 64 บิต เป็นต้น นั่นก็คือ ถ้าหากใช้ 48 บิต แล้วเราจะต้องทำให้การอ้างข้อมูลแต่ละแอดเดรสเป็น 6 บิต ซึ่งเป็นเรื่องที่ทำได้ค่อนข้างยากถ้าจะมองถึงขนาดดังกล่าวในระบบเลขฐาน 2 หรือฐาน 16 ที่ใช้ ๆ กันอยู่ แต่หากจะทำก็ได้แต่อาร์ดแวร์ที่จัดการส่วนนี้จะต้องช้าลงอย่างแน่นอน และการเขียนโปรแกรมก็คงยิ่งยากขึ้นไปอีก เพราะไม่สอดคล้องกับระบบฐานเลข
คราวนี้ก็ลองมาดูโปรแกรมหรือแอพพลิเคชันด้านเหล่านี้ที่ต้องการขนาดเมโมรีมาก ๆ ที่ระบบ 32 บิตก็ยังไม่เพียงพอ หรือเพียงพอแต่ประสิทธิภาพยังต่ำกัน
- ด้านฐานข้อมูล ซึ่งระบบทางด้านฐานข้อมูลจำเป็นต้องเก็บข้อมูลมากมาย โดยจัดการเก็บเป็นไฟล์ การที่จะแอ็กเซข้อมูลที่เป็นไฟล์เหล่านี้ต้องการความเร็วสูงมาก ประสิทธิภาพของระบบถึงดี จากการที่เรารู้ ๆ กันอยู่แล้วว่า ความเร็วของซีพียูนั้นเร็วกว่าพวกอุปกรณ์ภายนอก(external device)ทั้งหลายมาก ๆ เช่น หน่วยความจำดิสค์ เครื่องพิมพ์ ดังนั้นแม้ซีพียูจะรวดเร็วและมีประสิทธิภาพเพียงใดก็ยังใช้ประโยชน์ได้ไม่เต็มประสิทธิภาพ หรือเกิด Boltle neck หรือคอขวดซึ่งเป็นจุดอ่อนของระบบ เพราะต้องเกิดภาวะรอคอยอุปกรณ์เหล่านี้เสมอ ๆ ดังนั้นในระบบปฏิบัติการที่ดี ๆ จะใช้วิธีทำไฟล์แม็พปิง กล่าวคือ นำไฟทั้งหมดไปแม๊พไว้กับเวอร์ชวลเมโมรีทำให้การแอ็กเซทำห้ดอย่างรวดเร็วขึ้นและมีการกันwbr>wbr>wbr>br>wทำการแคเมโมรี ซึ่งเป็นการหลีกเลี่ยงการอ่านและเขียนดิสค์บ่อย ๆ โดยจะแอ็กเซเมื่อม่ความจำเป็นเท่านั้น ดังนั้นถ้าหากขนาดดิสค์ใหญ่มาก ๆ ก็เก็บไฟล์ได้มาก ด้วยเหตุนี้ระบบฐานข้อมูลจึงต้องการเมโมรีสูงมาก
- วีดีโอ ในการทำงานด้ารมัลติมีเดีย จำเป็นต้องใช้วิดีโอเพื่อแสดงภาพสำหรับภาพวิดีโอในแต่ ละเฟรมจะต้องใช้ขนาดถึง 3.75 เมกิไบต์ จากข้อมูลภาพที่มีความละเอียด 1280x1024 จุด และแต่ละจุดสามารถอ้างอิงสีถึง 24 บิต และการแสดงภาพของวิดีโอต้องใช้ถึง 24 เฟรม ภายในเวลา1 วินาที ซึ่งถ้าระบบคอมพิวเตอร์เป็นแบบ 32 บิต มีขนาดหน่วยความจำ 4 จิกะไบต์ก็ใช้เก็บอิมเมจ เหล่านี้ได้ 160 เพ
- CAD แอพพลิเคชันทางด้าน CAD(Computer Aided Design) ซึ่งใช้ออกแบบโครงสร้างต่างๆ เมื่อนำมาใช้ในระบบเน็ตเวร์กขนาดใหญ่ ๆ ซึ่งต้องการขนาดหน่วยความจำมากมายเพื่อให้เซอร์ฟเวอร์ใช่ในการเก็บข้อมูลและก็จะมีเครื่องเดสค์ท้อป ที่จะขอให้บริการจากเซอร์ฟเวอร์เพื่อใช้ข้อมูลจากฐานข้อมูลเซอร์ฟเวอร์มาทำงานด้านซิมูเลชัน หรืองานจำลอง
- GIS (Geographic Information) เป็นระบบที่รวมเอาทั้งแผนที่ อิมเมจ และข้อมูลจำนวนมาก เข้าไว้ในระบบเดียวกัน ก็จำเป็นต้องใช้หน่วยความจำ ขนาดมหาศาลเพื่อเพิ่มประสิทธิภาพให้กับมัน
- การจัดการด้าน Number crunching ซึ่งต้องใช้กับตัวเลขที่มีขนาดใหญ่และมีการคำนวณมากกมาย ซับซ้อนสูง ซึ่งโปรแกรมลักษณะดังกล่าวนั้นต้องการหน่วยความจำมากมาย เพื่อเก็บและคำนวณตัวเลขเหล่านี้ เรียกว่า ยิ่งมากยิ่งดีทีเดียว

ส่งท้าย

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


ที่มา : อนันต์ กิตติบรรลุ วารสารไมโครคอมพิวเตอร์ เล่มที่ 78 (มกราคม 2535)