Cả kiến trúc x86 và x64 đều là các kiến trúc tập lệnh (ISA) phổ biến được phát triển bởi Intel và AMD. Nhưng sự khác biệt giữa hai kiến trúc này là gì và làm thế nào để xác định máy tính đang chạy hệ điều hành Windows 32-bit hay 64-bit? Hãy cùng tìm hiểu qua bài viết này.
Kiến trúc x86 là gì?
Kiến trúc x86 là một dạng ISA dành cho bộ vi xử lý máy tính, được phát triển lần đầu bởi Intel vào năm 1978. Nó dựa trên CPU 8086 và biến thể nhỏ hơn của nó, CPU 8088. Ban đầu, nó là một tập lệnh 16-bit cho bộ vi xử lý 16-bit, sau đó phát triển thành tập lệnh 32-bit.
Định dạng bit ở đây thể hiện khả năng xử lý thông tin trong mỗi chu kỳ của CPU. Ví dụ, CPU 32-bit có thể xử lý tối đa 32 bit dữ liệu trong mỗi chu kỳ clock.
Bởi vì khả năng chạy trên hầu hết các máy tính từ laptop đến PC và máy chủ, kiến trúc x86 trở nên phổ biến và được sử dụng rộng rãi.
Hạn chế của kiến trúc này là hỗ trợ tối đa 4GB RAM. Lý do là vì vi xử lý 32-bit chỉ có thể truy cập đến 2^32 = 4,294,967,295 vị trí bộ nhớ. Mỗi vị trí có thể lưu trữ 1 byte dữ liệu, tương đương với 4GB bộ nhớ có thể truy cập.
Nhưng hiện nay, thuật ngữ “x86” cũng được sử dụng để chỉ tất cả các bộ vi xử lý 32-bit có khả năng chạy tập lệnh x86.
Kiến trúc x64 là gì?
Kiến trúc x64 (hay x86-64) là một kiến trúc tập lệnh dựa trên x86, được mở rộng để hỗ trợ mã 64-bit. Kiến trúc này được phát hành lần đầu vào năm 2000 với hai chế độ hoạt động: chế độ 64-bit và chế độ tương thích, cho phép người dùng chạy các ứng dụng 16-bit và 32-bit.
Do toàn bộ tập lệnh x86 vẫn được triển khai trên kiến trúc x64, các tệp thực thi cũ không bị giảm đi về hiệu suất.
Kiến trúc x64 hỗ trợ một lượng bộ nhớ ảo và vật lý lớn hơn nhiều so với kiến trúc x86, cho phép các ứng dụng lưu trữ một lượng lớn dữ liệu trong bộ nhớ RAM. Ngoài ra, x64 mở rộng số lượng thanh ghi mục đích chung lên 16 và bổ sung thêm các tính năng khác.
Kiến trúc x64 có khả năng chứa 2^64 ô nhớ, tương đương với 16 tỷ gigabyte bộ nhớ. Điều này làm cho nó phù hợp để cung cấp tài nguyên cho siêu máy tính và các hệ thống cần truy cập dữ liệu lớn.
Kiến trúc x64 cho phép CPU xử lý dữ liệu 64-bit trong mỗi chu kỳ clock, nhiều hơn rất nhiều so với kiến trúc x86.
Sự khác biệt giữa x86 và x64
Mặc dù cả hai kiến trúc đều có căn cứ từ dạng 32-bit, nhưng chúng vẫn có một số điểm khác nhau. Sự khác biệt chủ yếu giữa hai tập lệnh này là lượng dữ liệu có thể xử lý trong mỗi chu kỳ clock và độ rộng của thanh ghi CPU.
CPU sử dụng thanh ghi để lưu trữ dữ liệu được sử dụng thường xuyên để truy cập nhanh hơn. CPU 32-bit trên kiến trúc x86 có thanh ghi 32-bit, trong khi CPU 64-bit có thanh ghi 64-bit. Điều này cho phép x64 lưu trữ nhiều dữ liệu hơn và truy cập nhanh hơn. Đồng thời, độ rộng của thanh ghi cũng quyết định dung lượng bộ nhớ mà máy tính có thể sử dụng.
Đặc điểm
Mỗi kiến trúc đều có những đặc điểm riêng, phù hợp với một số trường hợp sử dụng cụ thể.
x86
- Sử dụng kiến trúc CISC (Complex Instruction Set Computing).
- Các tập lệnh phức tạp yêu cầu nhiều chu kỳ để thực hiện.
- Sử dụng nhiều thanh ghi để lưu trữ dữ liệu.
- Thiết kế với ít đường ống (pipeline) hơn nhưng có thể xử lý các địa chỉ phức tạp.
- Hiệu suất hệ thống được tối ưu hóa thông qua phần cứng. x86 dựa vào các thành phần vật lý để đáp ứng yêu cầu bộ nhớ thấp.
- Sử dụng DEP (Data Execution Prevention) dựa trên phần mềm.
x64
- Có khả năng tương thích với các ứng dụng 16 và 32-bit.
- Không gian địa chỉ ảo lý thuyết lên tới 2^64 byte. Tuy nhiên, chỉ một phần nhỏ của không gian này được sử dụng trong thực tế, khoảng 128TB.
- x64 xử lý các tập lệnh phức tạp thông qua ánh xạ toàn bộ tệp tin vào không gian địa chỉ của quy trình.
- Nhanh hơn x86 do xử lý đồng thời nhanh hơn, bus dữ liệu và bộ nhớ 64-bit cùng với thanh ghi lớn hơn.
- x64 mô phỏng đồng thời hai tác vụ x86 và cung cấp trải nghiệm nhanh hơn x86.
- Tải tệp tin lệnh hiệu quả hơn.
- Sử dụng DEP dựa trên phần cứng.
Ứng dụng
Do khả năng truy cập tài nguyên và tốc độ xử lý khác nhau, mỗi kiến trúc được sử dụng cho các mục đích khác nhau.
x86
- Rất nhiều máy tính hiện nay vẫn sử dụng hệ điều hành và CPU x86.
- Phù hợp cho máy tính chơi game.
- Các phân khúc điện toán đám mây vẫn sử dụng kiến trúc x86.
- Các phần mềm và chương trình cũ thường chạy trên kiến trúc 32-bit.
- 32-bit được ưu tiên trong ngành sản xuất âm thanh do khả năng tương thích với các thiết bị âm thanh cũ hơn.
x64
- Số lượng máy tính sử dụng CPU 64-bit và hệ điều hành dựa trên kiến trúc x64 ngày càng tăng.
- Được sử dụng trong tất cả các bộ vi xử lý di động.
- Phục vụ việc cung cấp tài nguyên cho siêu máy tính.
- Được sử dụng trong các thiết bị chơi game.
- Công nghệ ảo hóa dựa trên kiến trúc x64.
- Phù hợp cho các trò chơi mới hiện nay với hiệu suất cao.
Hạn chế
Mặc dù cả hai kiến trúc đều có những hạn chế nhất định, nhưng x64 là một tập lệnh mới và hoàn thiện hơn.
x86
- Hạn chế địa chỉ bộ nhớ.
- Tốc độ xử lý chậm hơn so với x64.
- Ngừng phát triển ứng dụng cho hệ điều hành 32-bit.
- CPU hiện nay yêu cầu hệ điều hành 64-bit.
- Tất cả các thiết bị trên hệ thống (card màn hình, BIOS,…) chia sẻ lượng RAM khả dụng, dẫn đến lượng bộ nhớ cho hệ điều hành và ứng dụng hạn chế.
x64
- Không chạy trên các thiết bị cũ.
- Yêu cầu nhiều điện năng do hiệu suất cao hơn.
- Driver 64-bit có thể không khả dụng cho hệ thống và phần cứng cũ hơn.
- Một số phần mềm 32-bit không hoàn toàn tương thích với kiến trúc 64-bit.
Cách kiểm tra máy tính chạy hệ điều hành 32-bit hay 64-bit
- Nhấn tổ hợp phím Windows + I để mở màn hình Settings, sau đó chọn System.
- Trên thanh bên trái, chọn About. Trong khung bên phải, kiểm tra thông tin phần System type.
Các câu hỏi thường gặp
x86 hay x64 tốt hơn?
Mặc dù cả x86 và x64 đều có ưu điểm riêng của mình. Tuy nhiên, x64 có nhiều ưu điểm hơn và x86 dần dần bị lãng quên và ít được sử dụng trong tương lai.
Ngày nay, đa số máy tính được cài đặt hệ điều hành 64-bit vì nó tương thích ngược với các ứng dụng 32-bit. Hơn nữa, hệ điều hành dựa trên kiến trúc x86 chỉ chạy được các phần mềm 32-bit.
Nhìn chung, x64 có hiệu suất tốt hơn x86. Nó có thể phân bổ nhiều bộ nhớ hơn và có khả năng xử lý đồng thời thông qua bus dữ liệu 64-bit, làm cho nó trở thành lựa chọn tốt hơn cho các hệ thống hiện đại.