อะไรคือความแตกต่างระหว่าง Intel 64 และ AMD64


29

บางคนสามารถอธิบายได้ว่ามีความแตกต่างระหว่างสถาปัตยกรรม intel64 และ amd64 หรือไม่?


3
IA64 = สถาปัตยกรรม Intel / HP Itanium VLIW AMD64 เป็น AMD ที่พัฒนาขึ้นจากชุดคำสั่งมาตรฐาน x86

6
การตลาด AMD พัฒนาแล้วอนุญาตให้ Intel AMD ออกใบอนุญาต x86 จาก Intel และ Intel อนุญาตให้ใช้สิทธิ์ x64 จาก AMD สิ่งนี้ทำให้มั่นใจได้ว่าจะไม่สามารถฟ้องร้องคนอื่นโดยไม่สูญเสียสิทธิ์ในการขายซีพียูทั้งหมดของพวกเขาเนื่องจากพวกเขาต้องการยิงตัวเองด้วยการเดินเท้า

1
คุณหมายถึง x86-64 หรือ IA64 ก่อนหน้านี้เป็นเช่นเดียวกับ AMD64 (แท้จริงชุดคำสั่งเดียวกันแน่นอนหรือคุณจะต้องรวบรวมโปรแกรมทั้งหมดสำหรับหนึ่ง CPU หรืออื่น ๆ ) และหลังเป็น สถาปัตยกรรม CPU ที่แตกต่างอย่างสิ้นเชิง
พัฒนา

2
ฉันหมายถึง x86-64 ในตอนแรก Intel ใช้ชื่อ IA-32e และ EM64T ก่อนที่จะเริ่มใช้ Intel 64 เพื่อการติดตั้ง
ทำร้ายร่างกาย

คำตอบ:


26

จากสิ่งที่ฉันได้อ่านเทคโนโลยีหน่วยความจำ 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 บิตบนสุด


คุณอ่านข้อความนั้นมาจากไหน
Tamara Wijsman

4
เอาล่ะฟอรัม / บล็อก + wikipedia ( en.wikipedia.org/wiki/EMT64#Intel_64 ) ฉันดูคู่มือบางอย่างจาก Intel และ AMD
ทำร้ายร่างกาย

@Nubok: โปรดเพิ่มความแตกต่างสำหรับการใช้งานสถาปัตยกรรมผ่านเทคโนโลยี(แน่นอนว่ารุ่น 64 บิต)  !
user2284570

IO-MMU เป็นเรื่องใหญ่ - การขาดนั่นหมายความว่าคุณต้องดูดหน่วยความจำเหลือน้อยสำหรับการบัฟเฟอร์ (64MB เป็นค่าเริ่มต้นปัจจุบันบน Linux) ต่อมา Intel ได้แนะนำสิ่งที่คล้ายกันกับ VT-d และใช้เพื่อการแบ่งส่วนผลิตภัณฑ์ที่น่ารำคาญ - อย่างไรก็ตามความน่าเชื่อถือของรหัส (และในบางกรณีซิลิคอน) มีแนวโน้มที่จะส่งผลให้มันไม่ได้ถูกใช้บน Linux สำหรับต้นฉบับ วัตถุประสงค์
GreenReaper

8

ที่หน้า x86 ของ Wikipediaคุณสามารถอ่านได้

ในปี 2542-2546 เอเอ็มดีได้ขยายสถาปัตยกรรม 32- บิตนี้เป็น 64 บิตและเรียกว่า x86-64 ในเอกสารต้นและต่อมาเป็น AMD64 ในไม่ช้า Intel ก็ปรับใช้สถาปัตยกรรมส่วนขยายของ AMD ภายใต้ชื่อ IA-32e ซึ่งต่อมาถูกเปลี่ยนชื่อเป็น EM64T และในที่สุดก็ใช้ Intel 64

กล่าวอีกนัยหนึ่งความแตกต่างคือการตลาดเป็นหลัก มีส่วนขยายเฉพาะของ Intel และ AMD ในชุดคำสั่ง แต่ตราบใดที่คุณกำลังเขียนโปรแกรมในพื้นที่ผู้ใช้คุณไม่จำเป็นต้องรู้ถึงความแตกต่าง


3
you don't generally need to know the differenceผิด: แม้แต่ความแตกต่างเล็กน้อยในคำแนะนำทั่วไปเป็นข้อบกพร่องที่
user2284570

4
ผิด: แม้แต่ความแตกต่างเล็กน้อยในคำแนะนำทั่วไปก็สำคัญมากที่จะยุติธรรม (1) เขาบอกว่าโดยทั่วไปคุณไม่จำเป็นต้องรู้ถึงความแตกต่างเหล่านี้ เห็นได้ชัดว่ามีบางกรณีที่สามารถเกิดขึ้นได้ (2) พวกเราส่วนใหญ่ไม่ได้เขียนกล่องทรายแข็งที่ต้องปกป้องเส้นทางการเรียนการสอนที่มีอยู่ทั้งหมด
Eric W
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.