Giải mã CPU: x86, x86_64, i386, i686 và AMD64 là gì

Chào mấy bạn nha. Trong thời gian mình ở đây cố gắng làm người tốt và giúp mọi người, mình thấy nhiều bạn thắc mắc về số bit của CPU, phiên bản nào đủ dùng, “Mình dùng CPU Intel mà sao chỉ thấy có tùy chọn tải AMD64 thôi”, và các câu hỏi liên quan khác.

Bài viết này nhằm làm rõ những thắc mắc xoay quanh chủ đề này.

Trước hết, chúng ta cần nói về hai đặc điểm của CPU:

Mình nghĩ các bạn đã biết CPU và cả máy tính hoạt động với số 0 và 1 mà chúng ta gọi là bit. Những bit này luôn đi theo nhóm, nhóm nổi tiếng nhất là 8 bit, và chúng ta gọi đó là một byte.

Nhưng do toán học, với 8 bit ta chỉ đếm được từ 0 đến 255, nên theo thời gian và công nghệ mới, máy tính bắt đầu sử dụng nhiều bit hơn. Số lượng bit mà CPU sử dụng để xử lý thông tin được gọi là một word.

Ngày nay máy tính là 64 bit, nghĩa là độ dài word của máy tính trung bình là 64 bit, nhưng từ giữa những năm 90 đến cuối những năm 2000, hầu hết máy tính là 32 bit, và không hiếm khi thấy một số máy tính như vậy bây giờ.

Tóm lại, CPU là một mạch tích hợp rất phức tạp đọc các hướng dẫn tạo nên một chương trình, rồi thực thi chúng. Nhưng điều đó không nói lên được các hướng dẫn nào có sẵn, và CPU xử lý chúng như thế nào để tạo ra thứ gì đó hữu ích.

Tất cả điều đó được quyết định bởi Kiến trúc CPU. Như tên gọi, kiến trúc là cách mọi thứ được sắp xếp trong CPU, quyết định cách nó hoạt động, và quan trọng hơn là bộ hướng dẫn mà nó có thể hiểu và do đó, hoạt động trên đó.

Ngày xưa kiến trúc mọc lên như nấm, mỗi loại có bộ hướng dẫn riêng. Nhưng hiện nay, chỉ còn một số ít bộ hướng dẫn được sử dụng, và các kiến trúc CPU được thiết kế để tuân thủ các bộ đó, vì vậy hiện nay nói kiến trúc CPU hay bộ hướng dẫn gần như là một.

Mình cần nhấn mạnh điều này: độ dài word và kiến trúc CPU KHÔNG giống nhau. Độ dài word (số bit CPU xử lý) là một phần của kiến trúc CPU, nhưng không phải toàn bộ kiến trúc. Bạn có thể có CPU ARM 64-bit, CPU RISC-V 64-bit, vân vân. Hãy nghĩ nó như số bánh xe của một chiếc xe tải so với loại động cơ nó có.

Nói vậy, chúng ta đi vào chủ đề chính nhé!

Mặc dù có một số kiến trúc khác như ARM, RISC-V và PowerPC, nhưng hiện nay kiến trúc CPU nổi bật nhất là x86. Nói đơn giản, nếu bạn có CPU Intel hoặc AMD, bạn có CPU x86.

Mọi chuyện bắt đầu vào cuối những năm 70 khi Intel tạo ra CPU Intel 8086. Nó chỉ đơn giản là phiên bản 16-bit của Intel 8080 đời đầu, nhưng vì nó được sử dụng trên IBM PC (à, một họ hàng của nó, 8088), nó đã trở nên nổi tiếng ngay lập tức, không chỉ vì IBM, mà còn vì tất cả các máy tính được gọi là tương thích IBM ra đời sau đó, với các thương hiệu như Acer, Compaq, HP, Dell, và những thương hiệu khác mà bạn có thể đã nghe đến.

Vì sự phổ biến của nó, Intel tiếp tục cải tiến chúng, với việc phát hành Intel 80186Intel 80286 vào năm 1982, tương thích với 8086 nguyên bản, vì tất cả đều có cùng bộ hướng dẫn.

Năm 1985, Intel bước vào lĩnh vực 32-bit với sự ra mắt của Intel 80386, và đặt tên là i386 (bỏ 80 ở phía trước). Nó vẫn tương thích với các phiên bản tiền nhiệm ở một mức độ nào đó.

Năm 1989, chương tiếp theo đến trong câu chuyện: i486 của Intel. Các bạn đã thấy quy luật chưa? Tất cả các CPU thuộc dòng dõi này đều kết thúc bằng 86. Đó là lý do tại sao kiến trúc này được gọi là x86. Một tên gọi khác là IA-32, viết tắt của Intel Architecture – 32 bit.

Đầu những năm 90, Intel cố gắng đánh bại đối thủ cạnh tranh và cố gắng đăng ký nhãn hiệu i586 và các tên gọi x86 tiếp theo, nhưng điều đó không thành công, vì vậy năm 1993, phiên bản thứ năm trong câu chuyện ra mắt: Pentium, bắt nguồn từ từ tiếng Hy Lạp chỉ số năm: penta. Một số người vẫn thích gọi nó là i586 thôi.

Phiên bản tiếp theo là kiến trúc vi xử lý P6, xuất hiện dưới dạng Pentium Pro, Pentium II và Pentium III. Vì vậy, mọi người thích gọi thế hệ CPU này là i686.

Ngày nay mọi người không còn để ý đến thế hệ thứ mấy của something86 nữa vì CPU hiện đại có nhiều dòng và cấp độ hơn, nhưng về cơ bản, tất cả đều là hậu duệ của i386.

Intel i386 là CPU x86 32-bit đầu tiên, vì vậy nó đóng vai trò là mẫu số chung nhỏ nhất cho phần cứng x86 hiện đại. Đó là lý do tại sao phần mềm được viết cho máy tính x86 32 bit thường được gắn nhãn là i386, x86 hoặc đôi khi là x32 (cái sau phổ biến hơn trong Windows). Nếu mình được phép nói thêm, x86 đề cập đến bộ hướng dẫn có từ 8086 16-bit, trong khi bất cứ thứ gì 32-bit từ i386 trở đi được gọi là IA-32.

Nhưng vì một số phần mềm có thể cần những thứ chỉ xuất hiện cho đến các thế hệ CPU mới hơn, một số người sử dụng số x86 “do fan tạo ra” trong câu chuyện để chỉ ra rằng phần mềm cần ít nhất những thứ từ thế hệ đó, vì vậy người ta có thể thấy phần mềm được gắn nhãn i686 vì nó yêu cầu các hướng dẫn và thành phần mới chỉ có trong CPU P6 và các CPU mới hơn.

Các bạn nhớ mình có nói Intel cố gắng cấp bằng sáng chế i586 để hại đối thủ không? Đó là vì Intel không phải là công ty duy nhất sản xuất CPU tương thích x86. Các công ty khác là Texas Instruments, Cyrix, WinChip và Advanced Micro Devices. Chỉ có công ty cuối cùng còn tồn tại cho đến ngày nay với tư cách là đối thủ duy nhất trên thị trường CPU x86, hiện chỉ được biết đến với tên viết tắt: AMD.

Khi Intel cho ra mắt Pentium, AMD đã cho ra mắt Am5x86, Pentium II và III đối đầu với dòng AMD K5 và K6, vân vân…

Nhưng vào thiên niên kỷ mới, AMD đã lấy kiến trúc x86 và đưa nó lên cấp độ 64-bit. Đó là lý do tại sao nó được gọi là x86-64, x86_64, AMD64 hoặc đôi khi là x64. CPU đầu tiên sử dụng kiến trúc mới là AMD Opteron.

Sau đó, Intel đã ký một số thỏa thuận cấp phép chéo để họ có thể sản xuất CPU 64-bit, với Intel Xeon là CPU 64-bit đầu tiên của Intel vào năm 2004.

Vì khả năng hạn chế (chủ yếu chỉ có thể truy cập 4GB RAM), hỗ trợ x86 32-bit đã dần bị loại bỏ, với các CPU chỉ 32-bit cuối cùng được sản xuất vào khoảng năm 2011.

Như vậy, trừ khi bạn đang cố gắng hồi sinh một chiếc PC thời Windows XP vẫn còn ổ đĩa mềm và hàng tấn đầu đọc thẻ nhớ lỗi thời ở phía trước, chắc chắn bạn có một máy tính để bàn hoặc máy tính xách tay với CPU x86-64, dù là Intel Pentium, Celeron hay Core, hoặc AMD A-Series, Athlon, Phenom, FX hay Ryzen, tất cả đều bắt nguồn từ i386 ra mắt vào giữa những năm 80.

Điều đó có nghĩa là, vâng, bạn có thể quên phiên bản 32-bit của chương trình đó và sử dụng phiên bản “amd64” trên dàn máy chơi game Core i9 của bạn.