Sự khác biệt quan trọng nhất giữa x86 và x64 là cái trước là kiến trúc 32 bit và cái sau là kiến trúc tập lệnh 64 bit. Kiến trúc tập lệnh (ISA) là một thuật ngữ rất quan trọng áp dụng cho bất kỳ CPU nào. Các hướng dẫn, địa chỉ bộ nhớ, các thanh ghi và nhiều phần kiến trúc khác của CPU được chỉ định bởi ISA. x86 là một ISA nổi tiếng thế giới được Intel giới thiệu vào năm 1978 với bộ xử lý 8086. Sau đó, các phần mở rộng khác nhau đã xảy ra và vào năm 2000, AMD đã tạo ra đặc tả để mở rộng tập lệnh x86 thành 64 bit dưới tên AMD64. Sau đó, các công ty khác như Intel cũng đã triển khai thông số kỹ thuật đó và AMD64 này là công ty được xác định bằng tên x64.
x86 là một kiến trúc tập lệnh được Intel giới thiệu với bộ xử lý 8086 nổi tiếng. Năm 1978, Intel giới thiệu bộ xử lý 8086 là bộ xử lý 16 bit. Sau đó, họ đã giới thiệu các bộ xử lý khác nhau như 80186, 80286, 80386 và 80486 và tất cả đều tương thích ngược với bộ hướng dẫn ban đầu được sử dụng trong bộ xử lý 8086. Vì tất cả các bộ xử lý này kết thúc bằng số 86, nên kiến trúc tập lệnh được xác định bằng tên x86. Với sự ra đời của 80386, lệnh x86 đã được mở rộng thành hệ thống 32 bit. Ở đây, 32 bit có nghĩa là tất cả các thanh ghi, bus bộ nhớ và bus dữ liệu là 32 bit. Sau đó, bộ xử lý Pentium xuất hiện như Pentium I, Pentium II, Pentium III, Pentium IV và tất cả những thứ này cũng theo kiến trúc 32 bit. Nhưng nhiều phần mở rộng khác đã xảy ra với kiến trúc x86, chẳng hạn như bổ sung các hướng dẫn như MMX, SSE và SSE2. Ngoài ra, nhiều cải tiến khác cũng được thực hiện. Sau đó, tập lệnh x86 được mở rộng thành tập lệnh 64 bit và từ thời điểm này trở đi, nó được gọi là x64, chúng ta sẽ thảo luận trong phần tiếp theo. Dù sao, nói chung, x86 đề cập đến kiến trúc 32 bit phát triển từ kiến trúc 16 bit đi kèm với bộ xử lý 8086.
Bộ xử lý 8086
Một hệ thống 32 bit chỉ có thể đại diện cho 232 do đó, các giá trị riêng biệt và do đó, địa chỉ bộ nhớ bị giới hạn ở số lượng địa chỉ đó. 232 byte bằng 4 GB và do đó, x86 có giới hạn bộ nhớ địa chỉ tối đa là 4 GB. Để khắc phục điều này, các phần mở rộng tiếp theo đã được thực hiện cho kiến trúc x86. AMD, vào khoảng năm 2000, đã giới thiệu thông số kỹ thuật như vậy đã mở rộng kiến trúc x86 lên 64 bit. Điều này đã được giới thiệu dưới tên AMD64. x64 là một tên khác được đặt cho kiến trúc AMD64 này. Kiến trúc AMD64 hoặc x64 này cũng được biết đến dưới tên x86_64. Với kiến trúc 64 bit, tất cả các thanh ghi trở thành 64 bit và bus bộ nhớ và bus dữ liệu cũng trở thành 64 bit. Bây giờ 264 các giá trị riêng biệt có thể được giải quyết và điều này mang lại giới hạn trên rất lớn cho bộ nhớ tối đa có thể. AMD K8 là bộ xử lý đầu tiên thực hiện kiến trúc 64 bit này. Sau đó, Intel cũng áp dụng kiến trúc này. Với bộ xử lý Intel Core bắt đầu từ Intel Core 2, Intel bắt đầu sử dụng kiến trúc này trong bộ xử lý của họ. Hiện tại, tất cả các bộ xử lý của Intel như Core i3, Core i5 và Core i7 đều sử dụng kiến trúc x64 này. Một số điều quan trọng cần nhấn mạnh là kiến trúc x64 này vẫn tương thích ngược với tập lệnh x86 cũ.
Bộ xử lý 64 bit
• x86 được giới thiệu vào khoảng năm 1978 trong khi x64 xuất hiện gần đây hơn vào năm 2000.
• x86 nổi lên từ bộ xử lý Intel 8086 nổi tiếng và do đó, x86 được Intel giới thiệu. Nhưng x64, được mở rộng như x86, đã được AMD giới thiệu.
• Kiến trúc x86 là 32 bit. (Bộ xử lý x86 đầu tiên là 16 bit, nhưng trong các bộ xử lý sau, phần mở rộng lên 32 bit đã được thực hiện). Kiến trúc x64 là 64 bit.
• Bộ xử lý với kiến trúc tập lệnh x86, do đó, có các thanh ghi 32 bit, bus bộ nhớ 32 bit và bus dữ liệu 32 bit. Nhưng x64 có các thanh ghi 64 bit, bus bộ nhớ 64 bit và bus dữ liệu 64 bit.
• x86 có giới hạn về bộ nhớ địa chỉ tối đa là giới hạn trên 4 GB (232 byte). Nhưng, trên các hệ thống x64, giới hạn này là rất lớn, là 264 byte.
• x64 là bản mở rộng của x86; do đó, nó được cải tiến và mạnh mẽ hơn nhiều so với x86 cũ.
• Các giá trị có thể được lưu trữ trong một thanh ghi, trong hệ thống x64, lớn hơn các giá trị có thể được lưu trữ trong một thanh ghi dựa trên x86. Do đó, x64 có thể xử lý tính toán các số nguyên lớn hơn nhanh hơn nhiều, vì không cần thiết phải sử dụng một số thanh ghi trong trường hợp đó để phân chia giá trị và lưu trữ như trong x86.
• x64 có thể truyền song song dữ liệu kích thước lớn hơn dọc theo bus dữ liệu. Nghĩa là, một bus dữ liệu 64 bit có thể truyền song song 64 bit trong khi kiến trúc x86 có bus 32 bit chỉ có thể truyền song song 32 bit.
Tóm lược:
Kiến trúc tập lệnh x86 là 32 bit trong khi kiến trúc tập lệnh x64 là 64 bit. x64 là một phần mở rộng của kiến trúc x86 hiện có. Các thanh ghi, bus bộ nhớ, bus dữ liệu trên kiến trúc x86 là 32 bit trong khi đây là 64 bit trên x64. Do đó, số lượng bộ nhớ tối đa có thể đánh địa chỉ trong các hệ thống x64 cao hơn rất nhiều so với các hệ thống x86. x86 được Intel giới thiệu với bộ xử lý 8086 là bộ xử lý 16 bit và với thời gian x86 này được mở rộng lên 32 bit. Sau đó, AMD đã giới thiệu kiến trúc x64 bằng cách mở rộng kiến trúc x86 hiện có và x64 này hoàn toàn tương thích với tập lệnh x86.
Hình ảnh lịch sự: