Ai đó có thể giải thích nếu có bất kỳ sự khác biệt giữa kiến trúc intel64 và amd64?
Ai đó có thể giải thích nếu có bất kỳ sự khác biệt giữa kiến trúc intel64 và amd64?
Câu trả lời:
Từ những gì tôi đã đọc Bộ nhớ mở rộng Công nghệ 64 bit (EM64T) là việc triển khai AMD64 của AMD và sự khác biệt giữa Intel64 và AMD64 là:
Các lệnh BSF và BSR của EM64T hoạt động khác nhau khi nguồn bằng 0 và kích thước toán hạng là 32 bit. Bộ xử lý đặt cờ không và để lại 32 bit trên của đích không xác định.
AMD64 hỗ trợ 3DNow! hướng dẫn. Điều này bao gồm tìm nạp trước với opcode 0x0F 0x0D và PREFECHW, rất hữu ích để ẩn độ trễ bộ nhớ.
EM64T thiếu khả năng lưu và khôi phục phiên bản rút gọn (và do đó nhanh hơn) của trạng thái dấu phẩy động (liên quan đến các hướng dẫn FXSAVE và FXRSTOR).
EM64T thiếu một số thanh ghi dành riêng cho mô hình được coi là kiến trúc của AMD64. Chúng bao gồm SYSCFG, TOP_MEM và TOP_MEM2.
EM64T hỗ trợ cập nhật vi mã như ở chế độ 32 bit, trong khi bộ xử lý AMD64 sử dụng định dạng cập nhật vi mã khác và kiểm soát MSR.
Lệnh CPUID của EM64T rất đặc trưng cho nhà cung cấp, như bình thường đối với các bộ xử lý kiểu x86.
EM64T hỗ trợ các hướng dẫn MONITOR và MWAIT, được sử dụng bởi các hệ điều hành để xử lý tốt hơn với Hyper-threading.
Các hệ thống AMD64 cho phép sử dụng khẩu độ AGP dưới dạng IO-MMU. Các hệ điều hành có thể tận dụng điều này để cho các thiết bị PCI bình thường DMA vào bộ nhớ trên 4 GiB. Các hệ thống EM64T yêu cầu sử dụng bộ đệm nảy, tốc độ chậm hơn.
SYSCALL và SYSRET cũng chỉ được hỗ trợ ở chế độ IA-32e (không ở chế độ tương thích) trên EM64T. SYSENTER và SYSEXIT được hỗ trợ trong cả hai chế độ.
Các nhánh gần với tiền tố 0 × 66 (kích thước toán hạng) hoạt động khác nhau. Một loại CPU chỉ xóa 32 bit trên cùng, trong khi loại còn lại xóa 48 bit trên cùng.
Tại trang x86 của Wikipedia bạn có thể đọc
Vào năm 1999-2003, AMD đã mở rộng kiến trúc 32 bit này thành 64 bit và gọi nó là x86-64 trong các tài liệu ban đầu và sau đó là AMD64. Intel đã sớm áp dụng các phần mở rộng kiến trúc của AMD dưới tên IA-32e, sau này được đổi tên thành EM64T và cuối cùng là Intel 64.
Nói cách khác, sự khác biệt chủ yếu là tiếp thị. Có các phần mở rộng cụ thể của Intel và AMD cho tập lệnh, nhưng miễn là bạn đang viết chương trình trong không gian người dùng, bạn thường không cần phải biết sự khác biệt.
you don't generally need to know the difference
Sai: ngay cả sự khác biệt nhỏ về hướng dẫn chung chung là rất quan trọng bugs.chromium.org/p/nativeclient/issues/detail?id=2010