เอกซ์86-64
หน้าตา
เอกซ์86-64 (x86-64) เป็นชื่อของสถาปัตยกรรมคอมพิวเตอร์สำหรับไมโครโพรเซสเซอร์แบบ 64 บิต และชุดคำสั่งที่ใช้งานด้วยกัน x86-64 เป็นส่วนขยายของสถาปัตยกรรมแบบ x86 ออกแบบโดยบริษัท AMD และใช้ชื่อทางการค้าว่า AMD64 ในภายหลังบริษัทอินเทลได้นำสถาปัตยกรรมนี้ไปใช้ใต้ชื่อการค้าว่า Intel 64 หรือ EM64T ซึ่งชื่อทั่วไปที่ใช้กันโดยไม่อิงกับชื่อการค้าคือ x86-64 หรือ x64
AMD64
[แก้]ชุดคำสั่ง AMD64 ถูกนำไปใช้ในไมโครโพรเซสเซอร์ของ AMD ดังนี้ Athlon 64, Athlon 64 FX, Athlon 64 X2, Turion 64, Turion 64 X2, Opteron และ Sempron (เฉพาะรุ่นที่ผลิตในช่วงหลัง)
คุณสมบัติของสถาปัตยกรรม
[แก้]AMD64 ถูกสร้างมาเพื่อเป็นคู่แข่งกับสถาปัตยกรรม IA64 ของบริษัทอินเทลและเอชพี ข้อแตกต่างที่สำคัญมีดังนี้
- สนับสนุนจำนวนตัวเลข (integer) ขนาด 64 บิต โดยขยายขนาดของเรจิสเตอร์สำหรับงานทั่วไป general-purpose registers (GPRs) จาก 32 บิตเป็น 64 บิต และปรับปรุงส่วนคำสั่งอื่น ๆ ให้สนับสนุนตัวเลขแบบ 64 บิตด้วย
- เพิ่มจำนวนเรจิสเตอร์ เพิ่มจำนวนเรจิสเตอร์ทำงานทั่วไปจาก 8 ตัวในสถาปัตยกรรม x86 เดิม เป็น 16 ตัว ซึ่งทำให้เก็บค่าตัวแปรไว้ในเรจิสเตอร์ได้มากขึ้น และส่งผลให้การทำงานของระบบรวดเร็วขึ้น
- เพิ่มเรจิสเตอร์สำหรับ XMM (SSE) เพิ่มจำนวนของเรจิสเตอร์สำหรับงาน XMM จาก 8 ตัวเป็น 16 ตัว
- ขยายขนาดตำแหน่งหน่วยความจำแบบ virtual ตามทฤษฎีแล้วสถาปัตยกรรมแบบ AMD64 สนับสนุนการอ้างตำแหน่งหน่วยความจำแบบ virtual ได้มากถึง 16 exbibyte (264 ไบต์) เมื่อเทียบกับ x86 แบบเดิมที่อ้างได้เพียง 4 gibibyte (ซีพียูแบบ AMD64 ที่วางขายในปัจจุบัน ยังอ้างได้เพียง 256 tebibyte หรือ 248 ไบต์ แต่สามารถปรับเพิ่มได้ในอนาคต)
- ขยายขนาดตำแหน่งหน่วยความจำแบบ physical ตามทฤษฎีแล้วสถาปัตยกรรมแบบ AMD64 สนับสนุนการอ้างตำแหน่งหน่วยความจำแบบ physcial ได้มากถึง 4 petibyte (252 ไบต์) (ซีพียูแบบ AMD64 ที่วางขายในปัจจุบัน ยังอ้างได้เพียง 1 tebibyte หรือ 240 ไบต์ แต่สามารถปรับเพิ่มได้ในอนาคต)
- พอยเตอร์ของชุดคำสั่งสามารถอ้างตำแหน่งข้อมูลแบบสัมพัทธ์ (relative) ทำให้ชุดคำสั่งสามารถเป็นอิสระจากตำแหน่งอ้างอิงแบบคงที่ได้
- สนับสนุนชุดคำสั่ง SSE เดิม AMD64 สนับสนุนเฉพาะ SSE และ SSE2 เท่านั้น ในภายหลังได้สนับสนุนชุดคำสั่ง SSE3 เพิ่มเติม
- No-Execute bit หรือชื่อย่อ NX บิต (บิตที่ 63 ตามตาราง) จะช่วยบอกระบบปฏิบัติการว่าตำแหน่งใดบนหน่วยความจำสามารถทำงาน (execute) ได้ ถ้า NX บิตไม่ทำงาน ตำแหน่งนั้นจะสามารถอ่านได้อย่างเดียว ซึ่งจะช่วยป้องกันการเขียนโปรแกรมที่ทำความเสียหายให้ระบบด้วยวิธี Buffer overflow ได้
โหมดการทำงาน
[แก้]Operating modes
[แก้]โหมดการทำงาน | ระบบปฏิบัติการ ที่ต้องการ | แปลงโปรแกรมใหม่ | ขนาดของตำแหน่ง | ขนาดตัว operand | ขยายขนาดเรจิสเตอร์ | ขนาด GPR ปกติ | |
---|---|---|---|---|---|---|---|
Long mode | โหมด 64 บิต | ระบบปํฎิบัติการรุ่นใหม่ที่สนับสนุน 64 บิต | ต้อง | 64 | 32 | ต้อง | 64 |
เข้ากันได้กับระบบเดิม | ไม่ต้อง | 32 | 32 | ไม่ต้อง | 32 | ||
16 | 16 | 16 | |||||
Legacy mode | Protected mode | ระบบปฏิบัติการเดิมแบบ 16 หรือ 32 บิต | ไม่ต้อง | 32 | 32 | ไม่ต้อง | 32 |
16 | 16 | 16 | |||||
จำลอง 8086 | 16 | 16 | 16 | ||||
Real mode | ระบบปฏิบัติการเดิมแบบ 16 บิต |
อธิบายการทำงานของโหมด
[แก้]โหมดหลัก ๆ แบ่งเป็น 2 ประเภท ดังนี้
- Long mode
- เป็นโหมดการทำงานหลักของสถาปัตยกรรมนี้ โดยแบ่งเป็นโหมดย่อยคือ 64 บิตล้วน และสนับสนุนทั้ง 32/64 บิต โหมดนี้จะใช้ในระบบปฏิบัติการแบบ 64 บิต
- เนื่องจากว่าชุดคำสั่งพื้นฐานของ x86 กับ x86-64 ไม่ต่างกัน ดังนั้นโปรแกรมที่เป็น x86 เดิมจะไม่เสียประสิทธิภาพในการทำงานไป ซึ่งต่างจากสถาปัตยกรรมแบบ IA-64 ที่การรันโปรแกรม 32 บิตจะเทียบเท่าการทำงานบนโพรเซสเซอร์ตัวอื่น
- Legacy mode
- โหมดนี้จะใช้สำหรับระบบปฏิบัติการแบบ 16 และ 32 บิตเดิม ซึ่งโพรเซสเซอร์จะทำงานเสมือนโพรเซสเซอร์แบบ 32 บิต และไม่สามารถนำโปรแกรมที่เป็น 64 บิตมาใช้งานได้ สนับสนุนเฉพาะโปรแกรมที่เป็น 16 หรือ 32 บิตเท่านั้น
Intel 64
[แก้]ส่วนนี้รอเพิ่มเติมข้อมูล คุณสามารถช่วยเพิ่มข้อมูลส่วนนี้ได้ |
ความแตกต่างของ AMD64 กับ Intel 64
[แก้]ระบบปฏิบัติการที่สนับสนุน
[แก้]- DOS สามารถทำงานใน long mode ได้ผ่าน DOS extender
- BSD
- ลินุกซ์ เป็นระบบปฏิบัติการตัวแรกที่สนับสนุน AMD64 โดยเริ่มในรุ่น Kernel 2.4 ก่อนที่โพรเซสเซอร์จริงจะวางจำหน่าย
- Mac OS X บริษัทแอปเปิลระบุว่า Mac OS X v10.5 จะสนับสนุนสถาปัตยกรรม Intel 64
- MenuetOS MenuetOS เริ่มสนับสนุนปี 2005
- Solaris สนับสนุนตั้งแต่ Solaris 10 เป็นต้นมา
- วินโดวส์ เริ่มสนับสนุนใน Windows XP Professional x64 Edition และ Windows Server 2003 SP1 x64 Edition ซึ่งวางจำหน่ายในปี 2005 วินโดวส์วิสตา x64 ทุก Edition ยกเว้น รุ่น Starter และ Windows Server 2008
อ้างอิง
[แก้]- เทคโนโลยี AMD64 เก็บถาวร 2007-06-18 ที่ เวย์แบ็กแมชชีน
- เทคโนโลยี Intel 64