บางคนสามารถอธิบายได้ว่ามีความแตกต่างระหว่างสถาปัตยกรรม intel64 และ amd64 หรือไม่?
บางคนสามารถอธิบายได้ว่ามีความแตกต่างระหว่างสถาปัตยกรรม intel64 และ amd64 หรือไม่?
คำตอบ:
จากสิ่งที่ฉันได้อ่านเทคโนโลยีหน่วยความจำ 64- บิตขยาย (EM64T) คือการใช้งานของ AMD AMD64 ของ AMD และความแตกต่างระหว่าง Intel64 และ AMD64 คือ:
คำสั่ง BSF และ BSR ของ EM64T ทำงานแตกต่างกันเมื่อแหล่งที่มาคือ 0 และขนาดตัวถูกดำเนินการคือ 32 บิต ตัวประมวลผลตั้งค่าสถานะเป็นศูนย์และปล่อย 32 บิตด้านบนของปลายทางที่ไม่ได้กำหนด
AMD64 รองรับ 3DNow! คำแนะนำ ซึ่งรวมถึงการดึงข้อมูลล่วงหน้าด้วย opcode 0x0F 0x0D และ PREFETCHW ซึ่งมีประโยชน์สำหรับการซ่อนเวลาแฝงของหน่วยความจำ
EM64T ขาดความสามารถในการบันทึกและกู้คืนสถานะลอยตัว (และเร็วขึ้น) รุ่นที่ลดลง (เกี่ยวข้องกับคำแนะนำ FXSAVE และ FXRSTOR)
EM64T ขาดการลงทะเบียนแบบเฉพาะบางรุ่นที่ถือว่าเป็นสถาปัตยกรรมของ AMD64 เหล่านี้รวมถึง SYSCFG, TOP_MEM และ TOP_MEM2
EM64T รองรับการอัปเดตไมโครโค้ดเช่นเดียวกับในโหมด 32 บิตในขณะที่โปรเซสเซอร์ AMD64 ใช้รูปแบบการอัปเดตไมโครโค้ดที่แตกต่างกันและการควบคุม MSR
คำสั่ง CPUID ของ EM64T นั้นเฉพาะผู้ผลิตมาก ๆ ซึ่งเป็นเรื่องปกติสำหรับโปรเซสเซอร์แบบ x86
EM64T รองรับคำสั่ง MONITOR และ MWAIT ซึ่งใช้โดยระบบปฏิบัติการเพื่อจัดการกับ Hyper-threading ได้ดียิ่งขึ้น
ระบบ AMD64 อนุญาตให้ใช้รูรับแสง AGP เป็น IO-MMU ระบบปฏิบัติการสามารถใช้ประโยชน์จากสิ่งนี้เพื่อให้อุปกรณ์ PCI ปกติ DMA ไปยังหน่วยความจำที่สูงกว่า 4 GiB ระบบ EM64T ต้องการการใช้บัฟเฟอร์ตีกลับซึ่งช้ากว่า
SYSCALL และ SYSRET รองรับเฉพาะในโหมด IA-32e (ไม่ใช่ในโหมดที่เข้ากันได้) บน EM64T SYSENTER และ SYSEXIT ได้รับการสนับสนุนในทั้งสองโหมด
ใกล้สาขาที่มีรหัสนำหน้า 0 × 66 (ขนาดตัวถูกดำเนินการ) จะทำงานแตกต่างกัน CPU ประเภทหนึ่งจะล้างเฉพาะ 32 บิตแรกสุดในขณะที่อีกประเภทหนึ่งจะล้าง 48 บิตบนสุด
ที่หน้า x86 ของ Wikipediaคุณสามารถอ่านได้
ในปี 2542-2546 เอเอ็มดีได้ขยายสถาปัตยกรรม 32- บิตนี้เป็น 64 บิตและเรียกว่า x86-64 ในเอกสารต้นและต่อมาเป็น AMD64 ในไม่ช้า Intel ก็ปรับใช้สถาปัตยกรรมส่วนขยายของ AMD ภายใต้ชื่อ IA-32e ซึ่งต่อมาถูกเปลี่ยนชื่อเป็น EM64T และในที่สุดก็ใช้ Intel 64
กล่าวอีกนัยหนึ่งความแตกต่างคือการตลาดเป็นหลัก มีส่วนขยายเฉพาะของ Intel และ AMD ในชุดคำสั่ง แต่ตราบใดที่คุณกำลังเขียนโปรแกรมในพื้นที่ผู้ใช้คุณไม่จำเป็นต้องรู้ถึงความแตกต่าง
you don't generally need to know the difference
ผิด: แม้แต่ความแตกต่างเล็กน้อยในคำแนะนำทั่วไปเป็นข้อบกพร่องที่