Cả x86 và x64 đều là các kiến trúc tập lệnh (ISA) được sử dụng rộng rãi nhất do Intel và AMD phát triển. Vậy sự khác biệt giữa 2 kiến trúc này là gì và làm thế nào để biết máy tính đang chạy Windows 32-bit hay 64-bit, hãy cùng bài viết tìm hiểu nhé.
Kiến trúc x86 là gì?
x86 là một loại ISA dành cho các bộ vi xử lý máy tính do Intel phát triển lần đầu tiên vào năm 1978. Kiến trúc x86 dựa trên CPU 8086 của Intel và biến thể 8088 của nó. Lúc đầu, nó là tập lệnh 16-bit cho bộ vi xử lý 16-bit, sau đó được phát triển thành tập lệnh 32-bit.
Số bit ở đây chúng ta ngầm hiểu là lượng thông tin mà CPU có thể xử lý trong mỗi chu kỳ. Ví dụ với CPU 32-bit thì có thể truyền tối đa 32 bit dữ liệu trên mỗi chu kỳ xung nhịp.
Do khả năng chạy trên hầu hết mọi máy tính, từ laptop cho đến PC, máy chủ, kiến trúc x86 đã trở nên phổ biến và được nhiều nhà sản xuất CPU ứng dụng.
Hạn chế lớn nhất của kiến trúc này đó chỉ hỗ trợ tối đa 4GB RAM. Lý do là bởi bộ vi xử lý 32-bit có 2^32 = 4,294,967,295 ô nhớ. Mỗi vị trí lưu trữ 1 byte dữ liệu, tương đương với khoảng 4GB bộ nhớ có thể truy cập.
Ngày nay, thuật ngữ x86 ám 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ì?
x64 (viết tắt của x86-64) là một kiến trúc tập lệnh dựa trên x86, được mở rộng để kích hoạt mã 64-bit. Kiến trúc này được phát hành lần đầu tiên vào năm 2000 với 2 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 nên các tệp thực thi cũ không bị giảm về hiệu suất.
Kiến trúc x64 hỗ trợ 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ữ 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 chức năng.
Kiến trúc x64 có thể 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 các siêu máy tính và các hệ thống cần truy cập lượng dữ liệu khổng lồ.
x64 cho phép CPU xử lý 64-bit dữ liệu trên mỗi chu kỳ xung nhịp, 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ả 2 kiến trúc đều dựa trên bộ 32-bit, tuy nhiên chúng vẫn có một số điểm khác biệt. Sự khác biệt chính giữa 2 tập lệnh này là lượng dữ liệu mà chúng có thể xử lý trên mỗi chu kỳ xung nhịp và độ rộng thanh ghi của CPU.
Vi xử lý lưu trữ dữ liệu được sử dụng thường xuyên trong một thanh ghi để 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. Do đó x64 cho phép CPU lưu trữ nhiều dữ liệu và truy cập nhanh hơn. Chiều rộng của thanh ghi cũng xác định dung lượng bộ nhớ mà máy tính có thể sử dụng.
ISA | x86 | x64 |
---|---|---|
Phát hành lần đầu tiên | năm 1978 | năm 2000 |
Nhà phát hành | Intel | AMD |
Nguồn gốc | Dựa trên bộ vi xử lý Intel 8086 | Được tạo ra như một phần mở rộng của kiến trúc x86 |
Số lượng bit | 32-bit | 64-bit |
Dung lượng RAM tối đa | 4 GB (thực tế khoảng RAM 3.2 GB). | 16 tỷ GB |
Tốc độ | Chậm và hiệu suất kém hơn so với x64 | Tốc độ xử lý nhanh hơn x86, cho phép xử lý tốc độ cao các tập số nguyên lớn |
Truyền dữ liệu | Hỗ trợ truyền song song chỉ 32-bit qua bus 32 bit trong mỗi lần | Hỗ trợ truyền song song các khối dữ liệu lớn hơn qua bus dữ liệu 64 bit |
Lưu trữ | Sử dụng nhiều thanh ghi hơn để phân chia và lưu trữ dữ liệu | Lưu trữ lượng lớn dữ liệu với ít thanh ghi hơn |
Chương trình hỗ trợ | Không hỗ trợ các chương trình và ứng dụng 64-bit | Hỗ trợ cả các chương trình và phần mềm 64-bit và 32-bit |
OS hỗ trợ | Windows XP, Vista, 7, 8, Linux. | Windows XP Professional, Windows Vista, Windows 7, Windows 8, Windows 10, Linux, Mac OS. |
Đặc điểm
Mỗi kiến trúc đều có đặ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 thi.
- Sử dụng nhiều thanh ghi để lưu trữ dữ liệu.
- Được 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 bằng cách sử dụng phương pháp phần cứng. x86 dựa vào các thành phần vật lý để bù cho lượng 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 trên lý thuyết lên tới 2^64 byte. Tuy nhiên chỉ 1 phần nhỏ của không gian này hiện nay được sử dụng trong thực tế, khoảng 128TB.
- x64 xử lý các tập lệnh phức tạp bằng cách á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ý song song nhanh hơn, bus dữ liệu và bộ nhớ 64-bit cũng như các thanh ghi lớn hơn.
- x64 mô phỏng đồng thời 2 tác vụ x86 và cung cấp trải nghiệm nhanh hơn x86.
- Tải tệp lệnh hiệu quả hơn.
- Sử dụng DEP dựa trên phần cứng.
Ứng dụng
Do sự khác biệt về khả năng truy cập tài nguyên, tốc độ xử lý nên 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 hoạt động dựa trên hệ điều hành và CPU x86.
- Dùng cho máy 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 vẫn đượ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
- Ngày càng có nhiều PC sử dụng CPU 64-bit và hệ điều hành dựa trên kiến trúc x64.
- Tất cả các bộ vi xử lý di động đều sử dụng kiến trúc x64.
- Sử dụng để 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 hơn với các trò chơi mới hiện nay do có hiệu suất cao.
Hạn chế
Mặc dù cả 2 kiến trúc đều có những hạn chế nhất định, tuy nhiên x64 là tập lệnh mới và hoàn thiện hơn.
x86
- Bộ nhớ địa chỉ bị hạn chế.
- Tốc độ xử lý chậm hơn so với x64.
- Các nhà cung cấp không còn phát triên ứng dụng cho hệ điều hành 32-bit.
- Các 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, vì thế lượng bộ nhớ cho hệ điều hành và ứng dụng còn không nhiều.
x64
- Không chạy trên các thiết bị cũ.
- Hiệu năng cao dẫn đến tiêu hao nhiều điện.
- Driver 64-bit dường như không khả dụng cho các 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 Settings, sau đó chọn System.
- Ở thanh menu bên trái chọn About. Ở 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ó những ưu điểm riêng. Tuy nhiên, x86 lại có nhiều hạn chế hơn và chính điều này sẽ khiến x86 dần bị lãng quên và không còn được sử dụng nữa trong tương lai.
Ngoài ra x64 mang lại hiệu năng nhanh hơn nhiều, có thể phân bổ nhiều RAM hơn và có khả năng xử lý song song thông qua bus dữ liệu 64 bit, khiến nó là sự lựa chọn tối ưu hơn cho các hệ thống ngày nay.
Hầu hết các máy tính ngày nay đều được cài đặt hệ điều hành 64-bit vì nó có khả năng tương thích ngược với các chương trình 32-bit. Mặt khác hệ điều hành dựa trên kiến trúc x86 chỉ chạy được phần mềm 32-bit.
Nhìn chung thì x64 tốt hơn nhiều x86.