x86 เทียบกับ x64
ความแตกต่างที่สำคัญที่สุดระหว่าง x86 และ x64 คือสถาปัตยกรรมแบบ 32 บิตและแบบหลังคือสถาปัตยกรรมชุดคำสั่ง 64 บิต สถาปัตยกรรมชุดคำสั่ง (ISA) เป็นคำศัพท์ที่สำคัญมากที่ใช้กับ CPU ใดๆ คำแนะนำ การกำหนดที่อยู่หน่วยความจำ การลงทะเบียน และส่วนสถาปัตยกรรมอื่นๆ ของ CPU ถูกกำหนดโดย ISA x86 เป็น ISA ที่มีชื่อเสียงระดับโลกที่ Intel เปิดตัวในปี 1978 ด้วยโปรเซสเซอร์ 8086 จากนั้นมีส่วนขยายต่างๆ เกิดขึ้น และในปี 2000 AMD ได้สร้างข้อกำหนดเพื่อขยายชุดคำสั่ง x86 เป็น 64 บิตภายใต้ชื่อ AMD64 ต่อมาบริษัทอื่น ๆ เช่น Intel ก็ใช้ข้อกำหนดดังกล่าวและ AMD64 นี้เป็นผลิตภัณฑ์ที่มีชื่อ x64
x86 คืออะไร
x86 เป็นสถาปัตยกรรมชุดคำสั่งที่ Intel นำเสนอพร้อมโปรเซสเซอร์ 8086 ที่มีชื่อเสียง ในปี 1978 Intel ได้เปิดตัวโปรเซสเซอร์ 8086 ซึ่งเป็นโปรเซสเซอร์ 16 บิต ต่อมาพวกเขาได้แนะนำโปรเซสเซอร์ต่างๆ เช่น 80186, 80286, 80386 และ 80486 และทั้งหมดนั้นเข้ากันได้แบบย้อนหลังกับชุดคำสั่งดั้งเดิมที่ใช้ในโปรเซสเซอร์ 8086 เนื่องจากโปรเซสเซอร์เหล่านี้ลงท้ายด้วยหมายเลข 86 สถาปัตยกรรมชุดคำสั่งจึงถูกระบุด้วยชื่อ x86 ด้วยการเปิดตัว 80386 คำสั่ง x86 ได้ขยายไปยังระบบ 32 บิต ในที่นี้ 32 บิตหมายความว่ารีจิสเตอร์ บัสหน่วยความจำ และบัสข้อมูลทั้งหมดเป็น 32 บิต จากนั้นโปรเซสเซอร์ Pentium ก็มาในชื่อ Pentium I, Pentium II, Pentium III, Pentium IV และทั้งหมดนี้ใช้สถาปัตยกรรม 32 บิตเช่นกัน แต่ส่วนขยายอื่นๆ เกิดขึ้นกับสถาปัตยกรรม x86 เช่น การเพิ่มคำสั่ง เช่น MMX, SSE และ SSE2 นอกจากนั้น ยังมีการปรับปรุงอื่นๆ อีกมากมาย จากนั้น ชุดคำสั่ง x86 ถูกขยายเป็นชุดคำสั่ง 64 บิต และจากจุดนี้เป็นต้นไปจะเรียกว่า x64 ซึ่งเราจะพูดถึงในหัวข้อถัดไปอย่างไรก็ตาม โดยทั่วไป x86 หมายถึงสถาปัตยกรรม 32 บิตที่พัฒนาจากสถาปัตยกรรม 16 บิตที่มาพร้อมกับโปรเซสเซอร์ 8086
8086 โปรเซสเซอร์
x64 คืออะไร
ระบบ 32 บิตสามารถแสดงค่าที่แตกต่างกันได้เพียง 232 ดังนั้นการกำหนดที่อยู่หน่วยความจำจึงถูกจำกัดตามจำนวนที่อยู่นั้น 232 ไบต์เท่ากับ 4 GB ดังนั้น x86 จึงมีขีดจำกัดหน่วยความจำที่กำหนดแอดเดรสได้สูงสุด 4 GB เพื่อที่จะเอาชนะสิ่งนี้ ได้มีการขยายเพิ่มเติมไปยังสถาปัตยกรรม x86 AMD ประมาณปี 2000 ได้แนะนำคุณสมบัติดังกล่าวซึ่งขยายสถาปัตยกรรม x86 เป็น 64 บิตนี้ถูกนำมาใช้ภายใต้ชื่อ AMD64 x64 เป็นชื่ออื่นที่กำหนดให้กับสถาปัตยกรรม AMD64 นี้ สถาปัตยกรรม AMD64 หรือ x64 นี้รู้จักกันในชื่อ x86_64 ด้วยสถาปัตยกรรม 64 บิต การลงทะเบียนทั้งหมดกลายเป็น 64 บิต และบัสหน่วยความจำและบัสข้อมูลก็กลายเป็น 64 บิตด้วย ตอนนี้สามารถระบุค่าที่แตกต่างกันได้ 264 และทำให้มีขีดจำกัดบนอย่างมากในหน่วยความจำสูงสุดที่เป็นไปได้ AMD K8 เป็นโปรเซสเซอร์ตัวแรกที่ใช้สถาปัตยกรรม 64 บิตนี้ จากนั้น Intel ก็นำสถาปัตยกรรมนี้มาใช้ ด้วยโปรเซสเซอร์ Intel Core ที่เริ่มต้นจาก Intel Core 2 Intel เริ่มใช้สถาปัตยกรรมนี้ในโปรเซสเซอร์ ในปัจจุบัน โปรเซสเซอร์ Intel ทั้งหมด เช่น Core i3, Core i5 และ Core i7 ใช้สถาปัตยกรรม x64 นี้ สิ่งสำคัญที่ต้องเน้นคือสถาปัตยกรรม x64 นี้ยังคงเข้ากันได้กับชุดคำสั่ง x86 รุ่นเก่า
โปรเซสเซอร์ 64 บิต
x86 กับ x64 ต่างกันอย่างไร
• x86 เปิดตัวในราวปี 1978 ในขณะที่ x64 มาเร็ว ๆ นี้ในปี 2000
• x86 เกิดขึ้นจากโปรเซสเซอร์ Intel 8086 ที่มีชื่อเสียง ดังนั้น x86 จึงถูกเปิดตัวโดย Intel แต่ x64 ซึ่งมาเป็นส่วนขยายของ x86 นั้นถูกนำเสนอโดย AMD
• สถาปัตยกรรม x86 เป็น 32 บิต (โปรเซสเซอร์ x86 ตัวแรกเป็น 16 บิต แต่ในโปรเซสเซอร์รุ่นหลัง ขยายเป็น 32 บิตได้) สถาปัตยกรรม x64 เป็น 64 บิต
• โปรเซสเซอร์ที่มีสถาปัตยกรรมชุดคำสั่ง x86 จึงมีรีจิสเตอร์ 32 บิต บัสหน่วยความจำ 32 บิต และบัสข้อมูล 32 บิต แต่ x64 มีการลงทะเบียน 64 บิต บัสหน่วยความจำ 64 บิต และบัสข้อมูล 64 บิต
• x86 มีข้อ จำกัด ในหน่วยความจำที่กำหนดแอดเดรสสูงสุดที่ขีด จำกัด สูงสุดของ 4 GB (232 ไบต์) แต่สำหรับระบบ x64 ขีดจำกัดนี้มีมาก ซึ่งก็คือ 264 ไบต์
• x64 เป็นส่วนขยายของ x86; ดังนั้นจึงมีการปรับปรุงและทรงพลังกว่า x86 รุ่นเก่ามาก
• ค่าที่สามารถเก็บไว้ในรีจิสเตอร์ ในระบบ x64 มีค่ามากกว่าค่าที่สามารถเก็บไว้ในรีจิสเตอร์ที่ใช้ x86 ดังนั้น x64 สามารถจัดการกับการคำนวณของจำนวนเต็มที่มากกว่าได้เร็วกว่ามาก เนื่องจากไม่จำเป็นต้องใช้รีจิสเตอร์หลายตัวในกรณีดังกล่าวเพื่อแบ่งค่าและจัดเก็บเหมือนใน x86
• x64 สามารถส่งข้อมูลขนาดใหญ่แบบขนานไปตามบัสข้อมูลได้ นั่นคือดาต้าบัส 64 บิตสามารถส่งแบบขนาน 64 บิตได้ในขณะที่สถาปัตยกรรม x86 ที่มีบัส 32 บิตสามารถส่งแบบขนานได้ 32 บิตเท่านั้น
สรุป:
x86 เทียบกับ x64
x86 สถาปัตยกรรมชุดคำสั่งคือ 32 บิต ในขณะที่สถาปัตยกรรมชุดคำสั่ง x64 คือ 64 บิต x64 มาเป็นส่วนขยายของสถาปัตยกรรม x86 ที่มีอยู่ รีจิสเตอร์, เมมโมรี่บัส, ดาต้าบัสบนสถาปัตยกรรม x86 คือ 32 บิต ในขณะที่ 64 บิตบน x64 ดังนั้น จำนวนหน่วยความจำสูงสุดที่สามารถระบุแอดเดรสได้ในระบบ x64 จะสูงกว่าในระบบ x86 มากx86 ได้รับการแนะนำโดย Intel ด้วยโปรเซสเซอร์ 8086 ที่เป็นโปรเซสเซอร์ 16 บิต และด้วยเวลาที่ x86 นี้ขยายเป็น 32 บิต ต่อมา AMD ได้แนะนำสถาปัตยกรรม x64 โดยขยายสถาปัตยกรรม x86 ที่มีอยู่ และ x64 นี้เข้ากันได้กับชุดคำสั่ง x86 รุ่นเก่าอย่างสมบูรณ์