✨X86

X86

Thuật ngữ x86 dùng để chỉ tới kiến trúc tập lệnh của dòng vi xử lý 8086 của Intel. 8086 được Intel đưa ra năm 1978.

Intel xem dòng phát triển 8086 là IA-32. Kiến trúc x86 này rất phổ biến cho các thế hệ máy tính cá nhân đang hiện hữu trong nhiều gia đình. Kiến trúc x86 gần như chiếm toàn bộ thị phần máy tính cá nhân,máy workstation và cả server thậm chí siêu máy tính. Vì tính phổ biến của nó và hỗ trợ tài liệu rất tốt từ Intel nên x86 được rất nhiều lập trình phần mềm viết chương trình chạy trên nó. Phần mềm được viết cho x86 bao gồm các nền OS: MS DOS, Window, Linux, BSD và các biến thể Unix.

Kiến trúc x86 không phổ biến hoặc phù hợp lắm với hệ thống nhúng. Nếu kiến trúc x86 được Intel gọi là IA-32 thì Intel còn có thế hệ không cùng kiến trúc là IA-64 hay Itanium. Itanium có sự tiến bộ hơn so với x86 với thiết kế ban đầu là 64 bit. Ngoài Intel sản xuất chip kiến trúc x86 còn có: AMD, VIA

Lịch sử

Kiến trúc x86 xuất hiện khi bộ vi xử lý Intel 8086 ra đời 1978, một thiết kế 16 bit đầy đủ dựa trên 8 bit trước đó. Sau đó là Intel 80386, bộ vi xử lý mở rộng 8086 từ 16->32 bit được giới thiệu vào 1985. Intel 80486 vào 1989, tích hợp bộ xử lý dấu chấm động. 50 Mhz 80486 tốc độ trung bình 40 Mips. Kế tiếp là Pentium, đời thứ năm vi kiến trúc, lần đầu tiên ra đời vào 22 tháng 3 năm 1993. Dòng Pentium kết thúc vào năm 2006.

8086

Kiến trúc x86 lần đầu tiên xuất hiện là Intel 8086 vào năm 1978, một bộ vi xử lý đầy đủ 16 bit dựa trên 8008,8080. Mặc dù nhị phân không tương thích, nó được thiết kế để lập trình hợp ngữ

80386

Bộ vi xử lý này ra đời vào năm 1985, bắt đầu một thế hệ 32 bit hỗ trợ cho hệ điều hành đa tác vụ. Các thế hệ giống Unix bắt đầu được viết cho kiến trúc này bao gồm Linux, BSD và cả Windows Các thế hệ tiếp theo mở rộng bộ chỉ lệnh như 80486, Pentium, Core 2 Duo,...

Thời x86-64

Hiện tại x86-64 được phổ biến do nhu cầu không gian địa chỉ 32 bit hạn hẹp không phù hợp cho máy tính. Đây là phần mở rộng của kiến trúc 80386 trở đi, bộ vi xử lý có thể tính toán với toán tử 64 bit, thanh ghi mở rộng ra 64 bit, và số lượng thanh ghi đa dụng từ 8 lên 16 thanh ghi, modRM byte thêm 4 bit modify. tên thanh ghi trong hợp ngữ: rax, rcx, rdx, rbx, rbp, rsp, r9, r10, r11, r12, r13, 14, r15 số thanh ghi vector của SSE cũng được mở rộng từ 8 lên 16:xmm0->xmm15

Kiến trúc x86

Thuật ngữ x86 chỉ đến họ kiến trúc tập lệnh dựa trên bộ vi xử lý 8086. Thuật ngữ x86 lấy từ hai số cuối của họ 8086. Rất nhiều thay đổi và mở rộng được thêm vào kiến trúc x86 qua nhiều năm. Kiến trúc này được hiện thực trong bộ vi xử lý từ Intel, AMD, VIA và nhiều tổ chức khác.

Như thuật ngữ trở thành phổ biến sau sự giới thiệu của 80386, nó thường hàm ý nhị phân tương đương với bộ tập lệnh 32 bit của 80386. Điều này đôi khi khẳng định x86-32 tách biệt với gốc 16 bit x86-16 hoặc từ 64 bit x86-64. Mặc dù bộ vi xử lý x86 sử dụng trong máy tính cá nhân mới và máy chủ.

Mặc dù 8086 chủ yếu phát triển cho hệ thống nhúng và máy tính nhỏ, dòng x86 sớm phát triển tính năng và sức mạnh xử lý. Ngày nay x86 phổ biến cả máy tính cá nhân trạm và di động và thay thế máy tính tầm trung và máy chủ,trạm dựa trên RISC. Một lượng lớn phần mềm bao gồm hệ điều hành như MS DOS, Windows, Linux, BSD, Solaris và Mac OS X hỗ trợ phần cứng x86.

8086 thực tế là chế độ thực của bộ vi xử lý ngày nay.

Tổng quan

Tính chất cơ bản của kiến trúc

Kiến trúc x86 có độ dài chỉ lệnh không cố định, chủ yếu hai mục đích của thiết kế CISC khẳng định tương thích ngược. Bộ tập lệnh không phải thuộc loại CISC đặc trưng nào tuy nhiên, cơ bản mở rộng có tính vị nhân hóa của phiên bản đơn giản 8 bit 8008,8080. Một byte có thể đánh địa chỉ được và hỗ trợ 2 byte được lưu trong bộ nhớ với trật tự nhỏ về cuối. Được truy xuất bộ nhớ đến địa chỉ không thẳng hàng với kích thước từ. Các phép toán có thể thực hiện với 8, 16, 32, 64 bit tùy theo thế hệ kiến trúc. Thực tế bộ tập chỉ lệnh không được cải thiện tốt hơn cho việc lập trình. Opcode chính của x86 có thể lên đến 3 byte mang lại khá linh động.

Dấu chấm động và vector

Mang tới xử lý số chấm động với 80 bit thanh ghi, 8087 được phát triển cho 8086. Bộ vi xử lý x86 hiện đại, được tích hợp xử lý vector. Độ rộng của thanh ghi SIMD là 128 bit. Kế hoạch sắp tới là 256 bit SIMD

Sự mở rộng hiện tại

Hiện tại kiến trúc x86 mở rộng 40 bit không gian địa chỉ cho Xeon và 48 bit cho K10, cho phép đến 1 tera byte bộ nhớ RAM.

Phân đoạn

Mục này giới thiệu về phân đoạn Máy tính mini trong cuối thập kỷ 1970 bị giới hạn 64 KB giới hạn địa chỉ, trong khi bộ nhớ ngày càng rẻ hơn. Một số máy tính mini như PDP-11 sử dụng các dãy hay khoang phức tạp, hoặc trong trường hợp VAX, thiết kế lại bvxl phức tạp hơn mà có thể xử lý địa chỉ 32 bit và dữ liệu. Gốc 8086, được phát triển từ bvxl 8085 và mục tiêu chủ yếu máy tính nhỏ, rẻ thì ngược lại sử dụng thanh ghi đoạn mà tăng độ rộng địa chỉ bộ nhớ lên chỉ 4 bit. Bằng cách nhân một địa chỉ 64KB (16 bit) bởi 16 (thêm 4 bit), địa chỉ 20 bit có thể đánh tổng công 1 megabyte (1,048,576 bytes), một con số khá lớn cho máy tính nhỏ vào thời bấy giờ. Cách địa chỉ này vẫn còn cho tới hiện tại, khi mà bộ vi xử lý khởi động thì vào chế độ thực trước (để tương thích hay sự duy trì hơi khó hiểu).
Dữ liệu và mã có thể được quản lý một đoạn 16 bit với không gian 1MB địa chỉ, hoặc trình biên dịch có thể mở chế độ xa sử dụng 32 bit đoạn:offset. Điều này khá thú vị cho việc lập trình trong 8086. Vào 1985, mô hình đoạn 16 bit là một nhân tố hiệu quả bởi sự giới thiệu thanh ghi 32 bits offset, trong thiết kế 386. Tại chế độ thực, đoạn có thể đạt được bởi dịch địa chỉ đoạn qua trái 4 bit và thêm offset theo thứ tự để nhận được 20 bit địa chỉ. Ví dụ, nếu DS là A000h và SI là 5677h, DS:SI sẽ chỉ tại địa chỉ DSx10h+SI=A5677h. Tổng địa chỉ trong chế độ thực là 2^20 bytes, tương đối ấn tượng vào thời 1978.

Bộ tập lệnh

Ước lượng khoảng hơn 100 tên lệnh trong hợp ngữ cho bộ vi xử lý 8086. Ví dụ: add [eax],ebx sub eax,5 adc ecx,0 xor eax,eax mov eax,0xabcd

Ví dụ này theo cú pháp Intel. Ngoài bộ tập lệnh phục vụ hệ điều hành và phần mềm,còn có tập lệnh vector giúp tăng tốc các ứng dụng đa truyền thông. Bộ tập lệnh mở rộng bao gồm x87,MMX, SSE,SSE2,SSE3,SSSE3,SSE4, AVX

Danh sách chỉ lệnh

Đây là danh sách chỉ lệnh của 8086, phần chú ý cho biết tương thích với bvxl hiện tại chỉ lệnh nào chạy được trong x86-64:

👁️ 2 | 🔗 | 💖 | ✨ | 🌍 | ⌚
Thuật ngữ **x86** dùng để chỉ tới kiến trúc tập lệnh của dòng vi xử lý 8086 của Intel. 8086 được Intel đưa ra năm 1978. Intel xem dòng phát triển 8086 là IA-32. Kiến
liên_kết=https://en.wikipedia.org/wiki/File:AMD_Opteron_146_Venus,_2005.jpg|nhỏ|Opteron, CPU đầu tiên giới thiệu x86-64 vào năm 2003 liên_kết=https://en.wikipedia.org/wiki/File:AMD_x86-64_Architecture_Programmers_Manuals.jpg|phải|nhỏ|Bộ năm tập của _x86-64 Architecture Programmer's Guide_, được AMD xuất bản và phân phối vào năm 2002 **x86-64** (còn gọi là **x64**, **x86_64**, **AMD64**
**Android-x86** là một dự án mã nguồn mở giúp chuyển hệ điều hành di động Android không chính thức của Google sang chạy trên các thiết bị được cung cấp bởi bộ xử lý AMD
**Windows Server 2008** (đôi khi được viết tắt là **Win2k8**, **WinServer2K8**, **Windows 2008** hoặc **W2K8**) là một trong các hệ điều hành của Microsoft Windows dành cho dòng máy chủ. Windows Server 2008 được xây
**IA-32** (viết tắt của "**Intel Architecture, 32 bit** ", đôi khi còn được gọi là **i386** ) là phiên bản 32 bit của kiến trúc tập lệnh x86, được thiết kế bởi Intel và được
**Intel Atom** là tên nhãn hiệu cho dòng CPU x86 (hoặc vi xử lý) của Intel, tên mã trước đó là bộ xử lý Silverthorne và Diamondville, thiết kế cho một tiến trình CMOS cỡ
**Windows 8** là một bản phát hành lớn của hệ điều hành Windows NT được phát triển bởi Microsoft. Nó đã được phát hành tới các nhà sản xuất vào ngày 1 tháng 8 năm
nhỏ|Intel A80386DX-20 CPU die image **Intel 80386** (ban đầu là **80386** và sau này còn gọi là **i386**) là bộ vi xử lý 32-bit được giới thiệu năm 1985. Nó có 275 000 transistor và
Bộ xử lý **Efficeon** là bộ xử lý 256-bit thế hệ thứ hai của Transmeta ứng dụng thiết kế VLIW củng cố bộ máy phần mềm để chuyển mã được viết cho bộ xử lý
Transmeta Crusoe TM5600 Trong điện tử, **Crusoe** tên của gia đình vi xử lý bởi Transmeta. Họ sử dụng lõi phần cứng VLIW, chạy trên hệ thống phần mềm giả lập, hoặc máy ảo, cũng
**MenuetOS** là một hệ điều hành có nhân nguyên khối sử dụng cơ chế đoạt quyền thực thi, thời gian thực, có sẵn trình điều khiển video, viết bằng hợp ngữ FASM, hoạt động trên
**Pentium** là một thương hiệu được sử dụng cho một loạt các bộ vi xử lý tương thích kiến trúc x86 do Intel sản xuất từ năm 1993. Các bộ xử lý Pentium trong gia
nhỏ|ReactOS 0.4.7 Desktop **ReactOS** là một hệ điều hành mã nguồn mở cho các máy tính cá nhân x86/x64 với mục đích tương thích nhị phân với các chương trình máy tính và driver được
**Microsoft Windows XP Professional x64 Edition** ra mắt ngày 25 tháng 4 năm 2005 là một phiên bản của Windows XP dành cho các máy tính cá nhân x86-64. Nó được thiết kế để sử
Intel **486** (tên gọi chính thức **i486**, đôi khi là **80486**) là một vi xử lý 32-bit. Nó là phiên bản kế tiếp của Intel 386 với hiệu năng cao hơn. i486 được giới thiệu
**Haiku** là một hệ điều hành mã nguồn mở tương thích với BeOS đã ngừng phát triển. Bắt đầu phát triển năm 2001 và hệ điều hành trở nên tự lưu trữ trong năm 2008.
**Xeon** (/ ˈziːɒn / ZEE-on) là một thương hiệu của bộ vi xử lý x86 do Intel thiết kế, sản xuất và tiếp thị, nhắm đến thị trường máy trạm, máy chủ và hệ thống
**Windows 7** là một bản phát hành lớn của hệ điều hành Windows NT do Microsoft phát triển. Nó đã được phát hành tới các nhà sản xuất vào ngày 22 tháng 7 năm 2009,
Bộ xử lý trung tâm **Intel A100** và **A110** là các vi xử lý thuộc kiến trúc x86 tiêu thụ điện năng thấp (tên mã **Stealey**), với một lõi _Dothan_ lấy từ Intel Pentium M,
phải|AMD Am386DX-40 CPU Bộ xử lý trung tâm **Am386** được AMD ra mắt vào năm 1991. Một CPU nhân bản tương thích-100% theo thiết kế của Intel 80386, được bán ra hàng triệu bản và
phải|nhỏ|Pentium D Nhãn hiệu **Pentium D** dùng để chỉ hai dòng chíp xử lý hai nhân 64-bit x86 với vi kiến trúc NetBurst. Mỗi con CPU bao gồm hai khuôn, mỗi khuôn chứa một nhân
**3DNow!** la tên của một mở rộng đa phương tiện được tạo ra bởi AMD cho các bộ xử lý của họ, bắt đầu với K6-2 năm 1998. Nó là sự thêm vào của những
**Pentium 4** là bộ vi xử lý kiến trúc x86 thế hệ thứ 7 do Intel sản xuất, và là thiết kế CPU hoàn toàn mới đầu tiên của họ kể từ Pentium III năm
**Hệ điều hành Chrome**, hay được gọi là **ChromeOS**, đây là một trên hệ điều hành dựa trên Linux phát triển bởi Google. Nó có nguồn gốc từ ChromeOS mã và sử dụng trình duyệt
**Ryzen** ( _RY-zən_) là một thương hiệu bộ xử lý trung tâm (CPU) và bộ xử lý tăng tốc (APU) được thiết kế và bán bởi AMD (Advanced Micro Devices). Thương hiệu này được giới
phải|Vi xử lý IBM 5x86C **IBM 5x86C** là một sản phẩm mang nhãn hiệu của IBM và sản xuất lại theo thiết kế Cyrix dựa trên CPU Cyrix Cx5x86. Các phiên bản trước của bộ
nhỏ|Pentium Pro với 256 Kib L2-Cache **Pentium Pro** là bộ vi xử lý kiến trúc x86 thế hệ thứ sáu (nhân P6) do Intel sản xuất, nguyên thủy dự tính thay thế con Pentium cũ
Vi xử lý **Intel 4040** là người kế nhiệm của Intel 4004. Ra mắt vào năm 1974. Chip 4040 thiết kế dạng 10 μm silicon-gate nâng cao để nạp công nghệ PMOS và có thể
phải|Bộ xử lý Am286. Chỗ cắm IC bên phải có thể cắm thêm bộ đồng xử lý [[Intel 80287|80287]] AMD bắt đầu kinh doanh x86 như là một nguồn sản xuất thứ hai cho cách
**CentOS** (, từ **Community Enterprise Operating System**) là một Bản phân phối Linux. Nó có nguồn gốc hoàn toàn từ bản phân phối Red Hat Enterprise Linux (RHEL). Tháng 1/2014, CentOS đã tuyên bố chính
**Pentium III** (được bán trên thị trường là **Intel Pentium III Processor**, không chính thức với tên **PIII**) là bộ vi xử lý 32 bit x86 và máy tính để bàn của Intel dựa trên
**Pentium M** là một bộ vi xử lý x86 lõi đơn 32 bit di động (với vi kiến trúc Intel P6 đã được sửa đổi) được giới thiệu vào tháng 3 năm 2003 và tạo
**Celeron** là một thương hiệu được Intel tạo ra cho một số mô hình bộ vi xử lý máy tính cấp thấp IA-32 và x86-64 khác nhau nhắm vào các máy tính cá nhân giá
nhỏ|Hackday với [[Jolla, Mer và Nemo Mobile tháng 8/2012]] **Sailfish OS** (cũng được viết là **SailfishOS** Hệ điều hành được phát hành cùng với máy tính bảng và smartphone Jolla (dừng bán năm 2016 nhưng
**BeOS** là một hệ điều hành cho máy tính cá nhân ban đầu được phát triển bởi Be Inc. năm 1991. Ban đầu nó được viết cho các thiết bị BeBox. BeOS được xây dựng
thumb|right|Một tập hợp bảng trang để dùng trong chế độ kernel thì bao gồm cả hai không gian kernel và không gian người dùng. Tập hợp bảng trang thứ hai để dùng trong chế độ
**Core 2** là một thương hiệu bao gồm một loạt các vi xử lý Intel 64-bit x86-64 đơn, kép và quad-core bán cho người dùng dựa trên vi kiến trúc Core. Các mô hình đơn
thumb|Pentium II processor with MMX technology, SECC cartridge. **Pentium II** thương hiệu liên quan đến thế hệ vi kiến trúc thứ sáu (' P6 ') và bộ vi xử lý tương thích x86 của Intel
Trong công nghệ điện toán, **đa nền tảng** (tiếng Anh: **cross-platform** hay **multi-platform**) là một thuật ngữ chỉ các phần mềm máy tính hay các phương thức điện toán và các khái niệm
**Chế độ thực**, cũng được gọi là **chế độ địa chỉ thực**, là một chế độ hoạt động của tất cả các CPU tương thích x86. Chế độ thực được đặc trưng bởi không gian
**Android** là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho các thiết bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính bảng.
**Wine** là một lớp tương thích tự do nguồn mở dùng để chạy các phần mềm viết cho Windows trên các hệ điều hành tương tự Unix (Linux, FreeBSD,...). Wine cũng cung cấp một thư
**GeForce** là một thương hiệu của các đơn vị xử lý đồ họa (GPU) được thiết kế bởi NVIDIA. Kể từ loạt GeForce 30, đã có mười bảy lần lặp lại thiết kế. Các sản
**Windows RT** là một hệ điều hành di động được phát triển bởi Microsoft. Đây là một phiên bản của Windows 8 hay Windows 8.1 được thiết kế dành cho cấu trúc ARM 32 bit
**Đơn vị quản lý bộ nhớ (MMU)**, hay còn gọi là **trang quản lý bộ nhớ (PMMU)** là một thiết bị phần cứng chứa tất cả những tham chiếu của bộ nhớ đã đi qua
**RISC** (viết tắt của **_R**educed **I**nstructions **S**et **C**omputer - Máy tính với tập lệnh đơn giản hóa_) là một phương pháp thiết kế các bộ vi xử lý (VXL) theo hướng đơn giản hóa tập
**7z** là một định dạng nén dữ liệu có hỗ trợ một số thuật toán nén dữ liệu, mã hóa và tiền xử lý khác nhau. Định dạng 7z xuất hiện đầu tiên từ phần
**VIA Technologies Inc.** () là một nhà sản xuất mạch tích hợp của Đài Loan, sản phẩm chủ yếu là bo mạch chủ, chipset, CPU, và bộ nhớ, và là một phần của Formosa Plastics
**Free Pascal Compiler** (**FPC**) là một trình biên dịch cho các ngôn ngữ lập trình có liên quan chặt chẽ, Pascal và Object Pascal. Nó là phần mềm tự do được phát hành theo Giấy
Trong máy tính, **chế độ bảo vệ**, còn được gọi là **chế độ địa chỉ ảo được bảo vệ**, là một chế độ hoạt động của các đơn vị xử lý trung tâm tương thích