Ця стаття містить , але походження тверджень у ній через практично повну відсутність . (квітень 2020) |
x86 (англ. Intel 80x86) — архітектура процесорів та ядра мікроконтролерів з однойменною системою команд. x86 або 80x86 є загальною назвою мікропроцесорної архітектури та архітектури розробленої на її базі обчислювальної техніки. Вперше реалізована в процесорах компанії Intel. Архітектура x86 у значно вдосконаленому вигляді і нині[] домінує на ринку настільних і мобільних комп'ютерів та малих серверів.
![]() Процесор Intel 80486 DX2 | |
Розробка | Intel, AMD |
---|---|
Розрядність | 16, 32 і 64 біти |
Поява | 1978 (16 бітів), 1985 (32 біти), 2003 (64 біти) |
Тип архітектури | CISC |
Інструкції | змінної довжини (від 1 до 15 байтів) |
Реалізація переходів | умовні |
Порядок байтів | little-endian |
Розширення | x87, IA-32, x86-64, MMX, 3DNow!, SSE, SSE2, SSE3, SSSE3, SSE4, SSE4.2, SSE5, AES-NI, , RdRand, , MPX, , , , , , , AVX, AVX2, , , AMD-V, , |
Відкритий дизайн | частково |
Регістри | |
16 бітів: 6 частково спеціалізованих регістрів, BP і SP — спеціалізовані; 32 біти: 8 загального призначення, включно з EBP і ESP; | |
Рухома кома | 16 бітів: опційно (окремий співпроцесор); 64 біти: x87 і SSE2, опційно AVX2 і |
Назва x86 походить від останніх цифр у назві першої моделі процесора на її базі — Intel 8086. Ці цифри також присутні у назвах наступних моделей (Intel 80186, Intel 80286, Intel 80386, Intel 80486 тощо) цієї родини процесорів.
Крім Intel, ця архітектура також була реалізована в процесорах інших виробників: AMD, VIA, Transmeta, IDT та інші. Вдосконалений варіант цієї архітектури із розрядністю 32 біти називається IA-32 (Intel Architecture 32).
Історія
У 1976 році фірма Intel почала посилено працювати над мікропроцесором 8086. Розмір його регістрів в порівнянні з 8080 був збільшений вдвічі, що дало можливість збільшити його продуктивність в 10 разів. Крім того розмір інформаційних шин був збільшений до 16 розрядів, що дало можливість збільшити швидкість передачі інформації на мікропроцесор і з нього вдвічі. Розмір його адресної шини також був істотно збільшений — до 20 біт. Це дозволило 8086 прямо контролювати 1М оперативної пам'яті.
У 1982 році Intel створила процесор 80286. Замість 20-розрядної адресної шини 8088/8086, 80286 мав 24-розрядну шину. Ці додаткові 4 розряди давали можливість збільшити максимум пам'яті, що адресувалася, до 16 Мб.
Intel 80386 був створений в 1985 році. Із збільшенням шини даних до 32 біт, число адресних ліній також було збільшене до 32. Саме по собі це розширення дозволило мікропроцесору прямо звертатися до 4Гб фізичної пам'яті. Крім того він міг працювати з 16 трильйонами байт віртуальної пам'яті. Існує модифікація процесора Intel 80386 — 386SX. Головна відмінність його від 80386 це 16-бітовий вхід/вихід шини даних. Як наслідок його внутрішні регістри заповнюються в два кроки. Всі процесори сімейства 486 мають 32-розрядну архітектуру, внутрішню кеш-пам'ять 8 Кб (у DX4 — 16 КВ). Моделі SX не мали вбудованого співпроцесора, він був винесений на плату. Моделі DX2 реалізують механізм внутрішнього подвоєння частоти (наприклад, процесор 486DX2-66 встановлюється на 33-мегагерцову системну плату), що дозволяє підняти швидкодію практично вдвічі, оскільки ефективність кешування внутрішньої кеш-пам'яті становить майже 90 відсотків. Процесори сімейства DX4 486DX4-75 і 486DX4-100 призначені для установки на 25-ти і 33-мегагерцові плати.
Створені в середині 1989 і 1995 року процесори Pentium і Pentium Pro значно відрізнялися за своєю архітектурою від своїх попередників. В основу архітектури була покладена суперскалярна архітектура, яка і дала можливість отримати п'ятикратну продуктивність Pentium в порівнянні з моделлю 80486. Хоча Pentium проектувався як 32-розрядний, для зв'язку з рештою компонентів системи використовувалася зовнішня 64-розрядна шина.
Процесор | Розрядність шини даних | Робоча частота, Мгц |
---|---|---|
i4004 | 4 | 0.75 |
i8008 | 8 | 0.8 |
i8080 | 8 | 2 |
i8086 | 16 | 5; 8; 10 |
i8088 | 16 | 5; 8 |
i80286 | 16 | 8; 10; 12; 16 |
i80386 DX | 32 | 20; 25; 33; 40 |
i80386 SX | 16 | 20; 25; 33 |
i80486 DX | 32 | 25; 33; 50; 66;75;100;120 |
i80486 SX | 32 | 16; 20; 25; 33 |
Pentium | 32 | 60; 66; 75; 90; 100; 120; 133; |
Pentium Pro | 32 | 166; 180; 200 |
У таблиці нижче наведені бренди процесорів, які згруповані за поколіннями і є важливими в історії x86.
Покоління | Вперше представлений | Відомі бренди процесорів | Лінійна/фізична адреси простору |
---|---|---|---|
1 | 1978 | Intel 8086, Intel 8088 та клони | Перші x86 мікропроцесори |
1982 | Intel 80186, Intel 80188 та клони, NEC V20/V30 | ||
2 | Intel 80286 та клони | 16-bit (30-bit віртуальні) / 24-bit (сегментовані) | |
3 (IA-32) | 1985 | Intel 80386 та клони, AMD Am386 | 32-bit (46-bit віртуальні) / 32-bit |
4 (FPU) | 1989 | Intel486 та клони, AMD Am486/Am5x86 | |
4/5 | 1997 | IDT/-, -Samuel, VIA C3-Samuel2 / VIA C3-Ezra (2001), VIA C7 (2005) | |
5 | 1993 | Pentium, Pentium MMX, , | |
5/6 | 1996 | AMD K5, | |
6 | 1995 | Pentium Pro, , , -Joshua (2000) | 36-bit фізична (PAE) |
1997 | AMD K6/-2/3, Pentium II/III | ||
2003 | Pentium M, Intel Core (2006) | ||
7 | 1999 | Athlon, Athlon XP | |
2000 | Pentium 4 | ||
7/8 | 2000 | , | |
2004 | Pentium 4 (Prescott) | ||
2006 | Intel Core 2 | ||
2008 | |||
8 (x86-64) | 2003 | Athlon 64, Opteron | |
8/9 | 2007 | AMD Phenom | 48-bit фізична для AMD Phenom |
2008 | Intel Core i3/i5/i7, AMD Phenom II | ||
Intel Atom | |||
2011 | AMD , Llano | ||
9 (GPU) | 2011 | Intel Sandy Bridge/Ivy Bridge, AMD | |
2013 | Intel Larrabee | ||
2014 | Intel Haswell | ||
10 (x86-64) | 20xx | ||
11 (x86-64) | 2020 | Intel Tiger Lake |
Особливості архітектури
x86 є CISC архітектурою із змінною довжиною команд. Сумісність нових моделей процесорів із попередніми була ключовою у розвитку архітектури x86. Архітектура двічі розширювалась до більшого розміру машинного слова. Перші x86 процесори були 16-бітними. У 1985 Intel випустила 32-бітний процесор 80386, його архітектуру назвали x86-32 або IA-32 (Intel Architecture, 32 bits). У 2003, AMD випустила Athlon 64, в якому реалізовано розширення архітектури до 64 біт, яке називають AMD64 (AMD), EM64T (Intel), чи x64 (Microsoft). Нова архітектура x86-64 доповнила і поступово замінила x86 і починаючи з 2003 року стала новим індустріальним стандартом[].
Дозволено невирівняний по машинному слову доступ до пам'яті. Порядок байтів у слові — little-endian (найменш значущий байт має меншу адресу). Сучасні x86 процесори перекладають набір команд x86 на RISC-подібні мікрокоманди для ефективнішого їх виконання.
Реальний режим
(real mode) — класичний режим адресації, який використовувався в перших моделях. Використовує сегментну модель пам'яті, яка організована наступним чином: адресний простір в 1 МіВ розбивається на 16-байтові блоки, які називаються параграфи. Всього параграфів в 1 МіВ — 65536, що дозволяє пронумерувати їх 16-розрядними числами. Сегменти пам'яті мають розмір 65536 байт, і завжди починаються на межі параграфа. Адреса комірки пам'яті складається з двох частин: номер параграфа, з якого починається сегмент та зміщення всередині сегменту і зазвичай записується як SSSS:OOOO, де S та O — шістнадцяткові цифри. SSSS називається сегментною компонентою адреси, а OOOO — зміщення. Адреса комірки, яка видається на шину, являє собою сегментну компоненту помножену на 16 плюс зміщення. Сегментна компонента вміщується в спеціальний регістр, який називається сегментний, а зміщення в регістр ІР(регістр інструкцій). Мікропроцесори 8086/8088, 80186/80188 та 80286 мали чотири сегментні регістри, тобто могли працювати одночасно з чотирма сегментами пам'яті.
Сегментні регістри та їх призначення:
- CS — Сегмент коду. Використовується для вибірки команд програми;
- DS — Сегмент даних. Використовується за замовчуванням для доступу до даних;
- ES — Додатковий сегмент. Є отримувачем даних в командах обробки рядків;
- SS — Сегмент стеку. Використовується для розміщення програмного стеку;
- FS — Додатковий сегментний регістр. Спеціального призначення не має. З'явився в процесорі 80386;
- GS — Аналогічно попередньому, але в нових процесорах с 64-бітною архітектурою має особливий статус: може використовуватись для швидкого переключення контекстів.
Незважаючи на те, що сегментні регістри мають спеціальні призначення, архітектура припускає при звернені до даних змінити один сегмент на інший. Сегменти коду, стеку та отримувача рядків завжди використовують регістри CS, SS та ES та не можуть бути змінені. Загальний об'єм пам'яті, яка адресується в реальному режимі становить 1048576 байт (діапазон адрес 00000-FFFFFh, або у форматі сегмент:зміщення 0:0-F000h:FFFFh). Сегментний підхід дозволяє розділити всю пам'ять на 16 сегментів, які починаються з адрес, кратних 64 Кбайт.
За деякими адресами фізичної пам'яті можуть бути присутні [en], додаткові постійні запам'ятовувачі, «вікна» пам'яті EMS. Зазвичай кожен такий пристрій використовує один 64-кілобайтовий блок пам'яті; відповідно, адреса комірки в адресному просторі пристрою буде збігатися зі зміщенням у сегменті пам'яті комп'ютера.
Також в реальному режимі відсутній захист пам'яті та розмежування прав доступу, тому він вже практично вийшов з використання. Є режимом за замовчуванням для всіх моделей процесорів x86.
Захищений режим
Захищений режим (protected mode) — режим з захистом пам'яті, який вперше з'явився в процесорі 80286 і надалі багаторазово вдосконалювався. Має більшу кількість підрежимів, за якими можна прослідкувати еволюцію сімейства ЦП. Аналогічно реальному режиму, тут також використовується сегментована модель пам'яті, але вже організована за іншим принципом: ділення на параграфи відсутнє, а розташування сегментів описується спеціальними структурами, які розташовані в оперативній пам'яті.
Існує два типи дескрипторних таблиць: глобальна та локальна. Глобальна таблиця описує сегменти операційної системи і розділяє структури даних. Локальна таблиця може бути визначена для кожного процесу. Дескриптор завантажується з пам'яті в кеш, який є прив'язаним до кожного сегментного регістра та автоматично завантажується в момент його модифікації.
Кожний програмний модуль, який виконується в захищеному режимі визначається його сегментом коду, описаним регістром CS, який і визначає його привілеї за доступом до даних та іншим модулям.
Процесор 80386, який з'явився в 1985 році, на відмінну від своїх попередників став 32-бітним. В ньому з'явилась можливість адресуватись до 4 ГіБ пам'яті, що дозволило створювати сегменти пам'яті розміром з весь адресний простір. Тому нові операційні системи використовували вироджену модель організації пам'яті, коли всі сегменти починаються з нуля. Така модель отримала назву плоскої, і адреса задається одним цілим 32-розрядним числом.
Змішані режими
Сегментний блок керування пам'яттю сучасних процесорів, незважаючи на кардинальну різницю двох його основних режимів, в обох працює схожим способом.
Це дозволяє організувати нестандартні режими не описані в офіційній документації, але іноді корисні при написанні програм. Оскільки відомо, що внутрішні кеші дескрипторів використовуються у всіх режимах, і саме вони використовуються для адресації пам'яті, при розумінні логіки їх роботи можливе завантаження в них нестандартних значень для даного режиму. Схожі нестандартні режими отримали назву Unreal mode та активно використовуються BIOS'ами персональних комп'ютерів. Важливо помітити, що в процесорі 80286 також була можливість завантаження нестандартних значень дескриптивного кешу за допомогою недокументованої команди LOADALL, що було особливо актуально, оскільки процесор 80286 не дозволяв скидати прапорець РЕ (із захищеного режиму виходили за допомогою повного перезавантаження (англ. reset) процесора, яке було надзвичайно повільним і серйозно позначалось на продуктивності).
Сторінкова організація пам'яті
У процесорах починаючи з 80386 з'явився модуль керування пам'яттю, яке дозволяє організувати відображення сторінок пам'яті, що було ще одним приводом переходу на плоску модель з появою 32-розрядних обчислень. Використовуючи трансляцію сторінок операційна система може створювати власне лінійний адресний простір для кожного процесу. Слід зазначити, що сторінковий блок управління пам'яттю доступний тільки в захищеному режимі.
Регістри процесора
IP (англ. Instruction Pointer) — регістр, який вказує на зміщення (адреса) інструкцій в сегменті коду (1234:0100h сегмент/зміщення).
IP — 16-бітний (молодша частина EIP)
EIP — 32- бітний аналог (молодша частина RIP)
RIP — 64-бітний аналог
Сегментні регістри — регістри, що вказують на сегменти.
CS (англ. Code Segment), DS (англ. Data Segment), SS (англ. Stack Segment), ES (англ. Extra Segment), FS, GS
В роботи процесора сегментні регістри містять адресу початку 64Kb сегмента, зміщений управо на 4 біта. В захищеному режимі роботи процесора сегментні регістри містять селектор сегмента пам'яті, виділеного ОС.
CS — покажчик на кодовий сегмент. Зв'язка CS: IP (CS: EIP / CS: RIP — в захищеному / 64-бітному режимі) вказує на адресу в пам'яті наступної команди.
Регістри даних — служать для зберігання проміжних обчислень.
RAX, RCX, RDX, RBX, RSP, RBP, RSI, RDI, R8 — R15 — 64-бітні
EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI, R8D — R15D — 32-бітні (extended AX)
AX (англ. Accumulator), CX (англ. Count Register), DX (англ. Data Register), BX (англ. Base Register), SP (англ. Stack Pointer), BP (англ. Base Pointer), SI (англ. Source Index), DI (англ. Destination Index), R8W — R15W — 16-бітні
AH, AL, CH, CL, DH, DL, BH, BL, SPL, BPL, SIL, DIL, R8B — R15B — 8-бітні (половинки 16-бітних регістрів)
наприклад, AH — high AX — старша половинка 8 біт
AL — low AX — молодша половинка 8 біт
RAX | RCX | RDX | RBX | ||||||||||||||||||||||||||||
EAX | ECX | EDX | EBX | ||||||||||||||||||||||||||||
AX | CX | DX | BX | ||||||||||||||||||||||||||||
AH | AL | CH | CL | DH | DL | BH | BL |
RSP | RBP | RSI | RDI | Rx | |||||||||||||||||||||||||||||||||||
ESP | EBP | ESI | EDI | RxD | |||||||||||||||||||||||||||||||||||
SP | BP | SI | DI | RxW | |||||||||||||||||||||||||||||||||||
SPL | BPL | SIL | DIL | RxB |
де x — 8..15.
Регістр прапорів FLAGS (16 біт) / EFLAGS (32 біта) / RFLAGS (64 біта) — містить поточний стан процесора.
Системні регістри GDTR, LDTR і IDTR введені в процесорах починаючи з Intel286 і призначені для зберігання базових адрес таблиць дескрипторів — найважливіших складових системної архітектури при роботі в захищеному режимі.
Регістр містить 32-бітний (24-бітний для Intel 286) базовий адресу і 16-бітний межа глобальної таблиці дескрипторів ().
Видима частина регістра містить тільки селектор дескриптора локальної таблиці дескрипторів (LDT). Сам дескриптор LDT автоматично завантажується в приховану частину LDTR з глобальної таблиці дескрипторів.
Регістр містить 32-бітний (24-бітний для Intel286) базовий адресу і 16-бітний межа таблиці дескрипторів переривань (IDT). У реальному режимі може бути використаний для зміни місця розташування таблиці векторів переривань.
Видима частина регістра TR містить селектор дескриптора сегмента стану задачі (). Сам дескриптор TSS автоматично завантажується в приховану частину TR з глобальної таблиці дескрипторів.
Зсувні регістри представляють собою послідовно з'єднану ланцюжок тригерів. Основний режим роботи — зрушення розрядів коду від одного тригера до іншого на кожен імпульс тактового сигналу. За призначенням регістри розрізняються на:
- Акумулятор — використовується для зберігання проміжних результатів арифметичних і логічних операцій та інструкцій введення-виведення;
- Флагової — зберігають ознаки результатів арифметичних і логічних операцій;
- Загального призначення — зберігають операнди арифметичних і логічних виразів, індекси й адреси;
- Індексні — зберігають індекси вихідних і цільових елементів масиву;
- Вказівні — зберігають покажчики на спеціальні області пам'яті (покажчик поточної операції, покажчик бази, покажчик стека);
- Сегментні — зберігають адреси та селектори сегментів пам'яті;
- Керуючі — зберігають інформацію, керуючу станом процесора, а також адреси системних таблиць.
Лічильник команд
IP (англ. Instruction Pointer) — регістр, що містить адресу-зміщення наступної команди, що підлягає виконанню, щодо кодового сегмента CS.
Регістр IP пов'язаний з CS у вигляді CS: IP, де CS є поточним кодовою сегментом, а IP — поточним зсувом щодо цього сегмента.
Регістр IP є 16-розрядним регістром-покажчиком. Крім нього, до складу регістрів цього типу входять SP (англ. Stack Pointer — покажчик стека) і BP (англ. Base Pointer — базовий покажчик).
- Принцип роботи
Наприклад, CS містить значення 2CB5[0]H
, в регістрі IP зберігається зсув 123H
.
Адреса наступної інструкції, що підлягає виконанню, обчислюється шляхом підсумовування адреси в CS (сегменті коду) зі зміщенням в регістрі IP:
2CB50H + 123H = 2CC73H
Таким чином, адреса наступної інструкції для виконання дорівнює 2CC73H
.
При виконанні поточної інструкції процесор автоматично змінює значення в регістрі IP, в результаті чого реєстрова пара CS: IP завжди вказує на наступну інструкцію, що підлягає виконанню.
Див. також
Джерела
Посилання
- Instruction tables. Lists of instruction latencies, throughputs and micro-operation breakdowns for Intel and AMD CPU's. Agner Fog, Copenhagen University College of Engineering [ 30 липня 2014 у Wayback Machine.]
![]() | Це незавершена стаття про апаратне забезпечення. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Cya stattya mistit perelik posilan ale pohodzhennya tverdzhen u nij zalishayetsya nezrozumilim cherez praktichno povnu vidsutnist vnutrishnotekstovih dzherel vinosok Bud laska dopomozhit polipshiti cyu stattyu peretvorivshi dzherela z pereliku posilan na dzherela vinoski u samomu teksti statti kviten 2020 x86 angl Intel 80x86 arhitektura procesoriv ta yadra mikrokontroleriv z odnojmennoyu sistemoyu komand x86 abo 80x86 ye zagalnoyu nazvoyu mikroprocesornoyi arhitekturi ta arhitekturi rozroblenoyi na yiyi bazi obchislyuvalnoyi tehniki Vpershe realizovana v procesorah kompaniyi Intel Arhitektura x86 u znachno vdoskonalenomu viglyadi i nini koli dominuye na rinku nastilnih i mobilnih komp yuteriv ta malih serveriv x86Procesor Intel 80486 DX2RozrobkaIntel AMDRozryadnist16 32 i 64 bitiPoyava1978 16 bitiv 1985 32 biti 2003 64 biti Tip arhitekturiCISCInstrukciyizminnoyi dovzhini vid 1 do 15 bajtiv Realizaciya perehodivumovniPoryadok bajtivlittle endianRozshirennyax87 IA 32 x86 64 MMX 3DNow SSE SSE2 SSE3 SSSE3 SSE4 SSE4 2 SSE5 AES NI RdRand MPX AVX AVX2 AMD V Vidkritij dizajnchastkovoRegistri16 bitiv 6 chastkovo specializovanih registriv BP i SP specializovani 32 biti 8 zagalnogo priznachennya vklyuchno z EBP i ESP 64 biti 16 zagalnogo priznachennya vklyuchno z RBP i RSPRuhoma koma16 bitiv opcijno okremij spivprocesor 32 biti x87 opcijno SSE2 64 biti x87 i SSE2 opcijno AVX2 i Nazva x86 pohodit vid ostannih cifr u nazvi pershoyi modeli procesora na yiyi bazi Intel 8086 Ci cifri takozh prisutni u nazvah nastupnih modelej Intel 80186 Intel 80286 Intel 80386 Intel 80486 tosho ciyeyi rodini procesoriv Krim Intel cya arhitektura takozh bula realizovana v procesorah inshih virobnikiv AMD VIA Transmeta IDT ta inshi Vdoskonalenij variant ciyeyi arhitekturi iz rozryadnistyu 32 biti nazivayetsya IA 32 Intel Architecture 32 IstoriyaU 1976 roci firma Intel pochala posileno pracyuvati nad mikroprocesorom 8086 Rozmir jogo registriv v porivnyanni z 8080 buv zbilshenij vdvichi sho dalo mozhlivist zbilshiti jogo produktivnist v 10 raziv Krim togo rozmir informacijnih shin buv zbilshenij do 16 rozryadiv sho dalo mozhlivist zbilshiti shvidkist peredachi informaciyi na mikroprocesor i z nogo vdvichi Rozmir jogo adresnoyi shini takozh buv istotno zbilshenij do 20 bit Ce dozvolilo 8086 pryamo kontrolyuvati 1M operativnoyi pam yati U 1982 roci Intel stvorila procesor 80286 Zamist 20 rozryadnoyi adresnoyi shini 8088 8086 80286 mav 24 rozryadnu shinu Ci dodatkovi 4 rozryadi davali mozhlivist zbilshiti maksimum pam yati sho adresuvalasya do 16 Mb Intel 80386 buv stvorenij v 1985 roci Iz zbilshennyam shini danih do 32 bit chislo adresnih linij takozh bulo zbilshene do 32 Same po sobi ce rozshirennya dozvolilo mikroprocesoru pryamo zvertatisya do 4Gb fizichnoyi pam yati Krim togo vin mig pracyuvati z 16 triljonami bajt virtualnoyi pam yati Isnuye modifikaciya procesora Intel 80386 386SX Golovna vidminnist jogo vid 80386 ce 16 bitovij vhid vihid shini danih Yak naslidok jogo vnutrishni registri zapovnyuyutsya v dva kroki Vsi procesori simejstva 486 mayut 32 rozryadnu arhitekturu vnutrishnyu kesh pam yat 8 Kb u DX4 16 KV Modeli SX ne mali vbudovanogo spivprocesora vin buv vinesenij na platu Modeli DX2 realizuyut mehanizm vnutrishnogo podvoyennya chastoti napriklad procesor 486DX2 66 vstanovlyuyetsya na 33 megagercovu sistemnu platu sho dozvolyaye pidnyati shvidkodiyu praktichno vdvichi oskilki efektivnist keshuvannya vnutrishnoyi kesh pam yati stanovit majzhe 90 vidsotkiv Procesori simejstva DX4 486DX4 75 i 486DX4 100 priznacheni dlya ustanovki na 25 ti i 33 megagercovi plati Stvoreni v seredini 1989 i 1995 roku procesori Pentium i Pentium Pro znachno vidriznyalisya za svoyeyu arhitekturoyu vid svoyih poperednikiv V osnovu arhitekturi bula pokladena superskalyarna arhitektura yaka i dala mozhlivist otrimati p yatikratnu produktivnist Pentium v porivnyanni z modellyu 80486 Hocha Pentium proektuvavsya yak 32 rozryadnij dlya zv yazku z reshtoyu komponentiv sistemi vikoristovuvalasya zovnishnya 64 rozryadna shina ProcesorRozryadnist shini danihRobocha chastota Mgci400440 75i800880 8i808082i8086165 8 10i8088165 8i80286168 10 12 16i80386 DX3220 25 33 40i80386 SX1620 25 33i80486 DX3225 33 50 66 75 100 120i80486 SX3216 20 25 33Pentium3260 66 75 90 100 120 133 Pentium Pro32166 180 200 U tablici nizhche navedeni brendi procesoriv yaki zgrupovani za pokolinnyami i ye vazhlivimi v istoriyi x86 Pokolinnya Vpershe predstavlenij Vidomi brendi procesoriv Linijna fizichna adresi prostoru 1 1978 Intel 8086 Intel 8088 ta kloni Pershi x86 mikroprocesori 1982 Intel 80186 Intel 80188 ta kloni NEC V20 V30 2 Intel 80286 ta kloni 16 bit 30 bit virtualni 24 bit segmentovani 3 IA 32 1985 Intel 80386 ta kloni AMD Am386 32 bit 46 bit virtualni 32 bit 4 FPU 1989 Intel486 ta kloni AMD Am486 Am5x86 4 5 1997 IDT Samuel VIA C3 Samuel2 VIA C3 Ezra 2001 VIA C7 2005 5 1993 Pentium Pentium MMX 5 6 1996 AMD K5 6 1995 Pentium Pro Joshua 2000 36 bit fizichna PAE 1997 AMD K6 2 3 Pentium II III 2003 Pentium M Intel Core 2006 7 1999 Athlon Athlon XP 2000 Pentium 4 7 8 2000 2004 Pentium 4 Prescott 2006 Intel Core 2 2008 8 x86 64 2003 Athlon 64 Opteron 8 9 2007 AMD Phenom 48 bit fizichna dlya AMD Phenom 2008 Intel Core i3 i5 i7 AMD Phenom II Intel Atom 2011 AMD Llano 9 GPU 2011 Intel Sandy Bridge Ivy Bridge AMD 2013 Intel Larrabee 2014 Intel Haswell 10 x86 64 20xx 11 x86 64 2020 Intel Tiger LakeOsoblivosti arhitekturix86 ye CISC arhitekturoyu iz zminnoyu dovzhinoyu komand Sumisnist novih modelej procesoriv iz poperednimi bula klyuchovoyu u rozvitku arhitekturi x86 Arhitektura dvichi rozshiryuvalas do bilshogo rozmiru mashinnogo slova Pershi x86 procesori buli 16 bitnimi U 1985 Intel vipustila 32 bitnij procesor 80386 jogo arhitekturu nazvali x86 32 abo IA 32 Intel Architecture 32 bits U 2003 AMD vipustila Athlon 64 v yakomu realizovano rozshirennya arhitekturi do 64 bit yake nazivayut AMD64 AMD EM64T Intel chi x64 Microsoft Nova arhitektura x86 64 dopovnila i postupovo zaminila x86 i pochinayuchi z 2003 roku stala novim industrialnim standartom dzherelo Dozvoleno nevirivnyanij po mashinnomu slovu dostup do pam yati Poryadok bajtiv u slovi little endian najmensh znachushij bajt maye menshu adresu Suchasni x86 procesori perekladayut nabir komand x86 na RISC podibni mikrokomandi dlya efektivnishogo yih vikonannya Realnij rezhim real mode klasichnij rezhim adresaciyi yakij vikoristovuvavsya v pershih modelyah Vikoristovuye segmentnu model pam yati yaka organizovana nastupnim chinom adresnij prostir v 1 MiV rozbivayetsya na 16 bajtovi bloki yaki nazivayutsya paragrafi Vsogo paragrafiv v 1 MiV 65536 sho dozvolyaye pronumeruvati yih 16 rozryadnimi chislami Segmenti pam yati mayut rozmir 65536 bajt i zavzhdi pochinayutsya na mezhi paragrafa Adresa komirki pam yati skladayetsya z dvoh chastin nomer paragrafa z yakogo pochinayetsya segment ta zmishennya vseredini segmentu i zazvichaj zapisuyetsya yak SSSS OOOO de S ta O shistnadcyatkovi cifri SSSS nazivayetsya segmentnoyu komponentoyu adresi a OOOO zmishennya Adresa komirki yaka vidayetsya na shinu yavlyaye soboyu segmentnu komponentu pomnozhenu na 16 plyus zmishennya Segmentna komponenta vmishuyetsya v specialnij registr yakij nazivayetsya segmentnij a zmishennya v registr IR registr instrukcij Mikroprocesori 8086 8088 80186 80188 ta 80286 mali chotiri segmentni registri tobto mogli pracyuvati odnochasno z chotirma segmentami pam yati Segmentni registri ta yih priznachennya CS Segment kodu Vikoristovuyetsya dlya vibirki komand programi DS Segment danih Vikoristovuyetsya za zamovchuvannyam dlya dostupu do danih ES Dodatkovij segment Ye otrimuvachem danih v komandah obrobki ryadkiv SS Segment steku Vikoristovuyetsya dlya rozmishennya programnogo steku FS Dodatkovij segmentnij registr Specialnogo priznachennya ne maye Z yavivsya v procesori 80386 GS Analogichno poperednomu ale v novih procesorah s 64 bitnoyu arhitekturoyu maye osoblivij status mozhe vikoristovuvatis dlya shvidkogo pereklyuchennya kontekstiv Nezvazhayuchi na te sho segmentni registri mayut specialni priznachennya arhitektura pripuskaye pri zverneni do danih zminiti odin segment na inshij Segmenti kodu steku ta otrimuvacha ryadkiv zavzhdi vikoristovuyut registri CS SS ta ES ta ne mozhut buti zmineni Zagalnij ob yem pam yati yaka adresuyetsya v realnomu rezhimi stanovit 1048576 bajt diapazon adres 00000 FFFFFh abo u formati segment zmishennya 0 0 F000h FFFFh Segmentnij pidhid dozvolyaye rozdiliti vsyu pam yat na 16 segmentiv yaki pochinayutsya z adres kratnih 64 Kbajt Za deyakimi adresami fizichnoyi pam yati mozhut buti prisutni en dodatkovi postijni zapam yatovuvachi vikna pam yati EMS Zazvichaj kozhen takij pristrij vikoristovuye odin 64 kilobajtovij blok pam yati vidpovidno adresa komirki v adresnomu prostori pristroyu bude zbigatisya zi zmishennyam u segmenti pam yati komp yutera Takozh v realnomu rezhimi vidsutnij zahist pam yati ta rozmezhuvannya prav dostupu tomu vin vzhe praktichno vijshov z vikoristannya Ye rezhimom za zamovchuvannyam dlya vsih modelej procesoriv x86 Zahishenij rezhim Zahishenij rezhim protected mode rezhim z zahistom pam yati yakij vpershe z yavivsya v procesori 80286 i nadali bagatorazovo vdoskonalyuvavsya Maye bilshu kilkist pidrezhimiv za yakimi mozhna proslidkuvati evolyuciyu simejstva CP Analogichno realnomu rezhimu tut takozh vikoristovuyetsya segmentovana model pam yati ale vzhe organizovana za inshim principom dilennya na paragrafi vidsutnye a roztashuvannya segmentiv opisuyetsya specialnimi strukturami yaki roztashovani v operativnij pam yati Isnuye dva tipi deskriptornih tablic globalna ta lokalna Globalna tablicya opisuye segmenti operacijnoyi sistemi i rozdilyaye strukturi danih Lokalna tablicya mozhe buti viznachena dlya kozhnogo procesu Deskriptor zavantazhuyetsya z pam yati v kesh yakij ye priv yazanim do kozhnogo segmentnogo registra ta avtomatichno zavantazhuyetsya v moment jogo modifikaciyi Kozhnij programnij modul yakij vikonuyetsya v zahishenomu rezhimi viznachayetsya jogo segmentom kodu opisanim registrom CS yakij i viznachaye jogo privileyi za dostupom do danih ta inshim modulyam Procesor 80386 yakij z yavivsya v 1985 roci na vidminnu vid svoyih poperednikiv stav 32 bitnim V nomu z yavilas mozhlivist adresuvatis do 4 GiB pam yati sho dozvolilo stvoryuvati segmenti pam yati rozmirom z ves adresnij prostir Tomu novi operacijni sistemi vikoristovuvali virodzhenu model organizaciyi pam yati koli vsi segmenti pochinayutsya z nulya Taka model otrimala nazvu ploskoyi i adresa zadayetsya odnim cilim 32 rozryadnim chislom Zmishani rezhimi Segmentnij blok keruvannya pam yattyu suchasnih procesoriv nezvazhayuchi na kardinalnu riznicyu dvoh jogo osnovnih rezhimiv v oboh pracyuye shozhim sposobom Ce dozvolyaye organizuvati nestandartni rezhimi ne opisani v oficijnij dokumentaciyi ale inodi korisni pri napisanni program Oskilki vidomo sho vnutrishni keshi deskriptoriv vikoristovuyutsya u vsih rezhimah i same voni vikoristovuyutsya dlya adresaciyi pam yati pri rozuminni logiki yih roboti mozhlive zavantazhennya v nih nestandartnih znachen dlya danogo rezhimu Shozhi nestandartni rezhimi otrimali nazvu Unreal mode ta aktivno vikoristovuyutsya BIOS ami personalnih komp yuteriv Vazhlivo pomititi sho v procesori 80286 takozh bula mozhlivist zavantazhennya nestandartnih znachen deskriptivnogo keshu za dopomogoyu nedokumentovanoyi komandi LOADALL sho bulo osoblivo aktualno oskilki procesor 80286 ne dozvolyav skidati praporec RE iz zahishenogo rezhimu vihodili za dopomogoyu povnogo perezavantazhennya angl reset procesora yake bulo nadzvichajno povilnim i serjozno poznachalos na produktivnosti Storinkova organizaciya pam yati U procesorah pochinayuchi z 80386 z yavivsya modul keruvannya pam yattyu yake dozvolyaye organizuvati vidobrazhennya storinok pam yati sho bulo she odnim privodom perehodu na plosku model z poyavoyu 32 rozryadnih obchislen Vikoristovuyuchi translyaciyu storinok operacijna sistema mozhe stvoryuvati vlasne linijnij adresnij prostir dlya kozhnogo procesu Slid zaznachiti sho storinkovij blok upravlinnya pam yattyu dostupnij tilki v zahishenomu rezhimi Registri procesora IP angl Instruction Pointer registr yakij vkazuye na zmishennya adresa instrukcij v segmenti kodu 1234 0100h segment zmishennya IP 16 bitnij molodsha chastina EIP EIP 32 bitnij analog molodsha chastina RIP RIP 64 bitnij analog Segmentni registri registri sho vkazuyut na segmenti CS angl Code Segment DS angl Data Segment SS angl Stack Segment ES angl Extra Segment FS GS V roboti procesora segmentni registri mistyat adresu pochatku 64Kb segmenta zmishenij upravo na 4 bita V zahishenomu rezhimi roboti procesora segmentni registri mistyat selektor segmenta pam yati vidilenogo OS CS pokazhchik na kodovij segment Zv yazka CS IP CS EIP CS RIP v zahishenomu 64 bitnomu rezhimi vkazuye na adresu v pam yati nastupnoyi komandi Registri danih sluzhat dlya zberigannya promizhnih obchislen RAX RCX RDX RBX RSP RBP RSI RDI R8 R15 64 bitni EAX ECX EDX EBX ESP EBP ESI EDI R8D R15D 32 bitni extended AX AX angl Accumulator CX angl Count Register DX angl Data Register BX angl Base Register SP angl Stack Pointer BP angl Base Pointer SI angl Source Index DI angl Destination Index R8W R15W 16 bitni AH AL CH CL DH DL BH BL SPL BPL SIL DIL R8B R15B 8 bitni polovinki 16 bitnih registriv napriklad AH high AX starsha polovinka 8 bit AL low AX molodsha polovinka 8 bit RAX RCX RDX RBX EAX ECX EDX EBX AX CX DX BX AH AL CH CL DH DL BH BL RSP RBP RSI RDI Rx ESP EBP ESI EDI RxD SP BP SI DI RxW SPL BPL SIL DIL RxB de x 8 15 Registr praporiv FLAGS 16 bit EFLAGS 32 bita RFLAGS 64 bita mistit potochnij stan procesora Sistemni registri GDTR LDTR i IDTR vvedeni v procesorah pochinayuchi z Intel286 i priznacheni dlya zberigannya bazovih adres tablic deskriptoriv najvazhlivishih skladovih sistemnoyi arhitekturi pri roboti v zahishenomu rezhimi Registr mistit 32 bitnij 24 bitnij dlya Intel 286 bazovij adresu i 16 bitnij mezha globalnoyi tablici deskriptoriv Vidima chastina registra mistit tilki selektor deskriptora lokalnoyi tablici deskriptoriv LDT Sam deskriptor LDT avtomatichno zavantazhuyetsya v prihovanu chastinu LDTR z globalnoyi tablici deskriptoriv Registr mistit 32 bitnij 24 bitnij dlya Intel286 bazovij adresu i 16 bitnij mezha tablici deskriptoriv pererivan IDT U realnomu rezhimi mozhe buti vikoristanij dlya zmini miscya roztashuvannya tablici vektoriv pererivan Vidima chastina registra TR mistit selektor deskriptora segmenta stanu zadachi Sam deskriptor TSS avtomatichno zavantazhuyetsya v prihovanu chastinu TR z globalnoyi tablici deskriptoriv Zsuvni registri predstavlyayut soboyu poslidovno z yednanu lancyuzhok trigeriv Osnovnij rezhim roboti zrushennya rozryadiv kodu vid odnogo trigera do inshogo na kozhen impuls taktovogo signalu Za priznachennyam registri rozriznyayutsya na Akumulyator vikoristovuyetsya dlya zberigannya promizhnih rezultativ arifmetichnih i logichnih operacij ta instrukcij vvedennya vivedennya Flagovoyi zberigayut oznaki rezultativ arifmetichnih i logichnih operacij Zagalnogo priznachennya zberigayut operandi arifmetichnih i logichnih viraziv indeksi j adresi Indeksni zberigayut indeksi vihidnih i cilovih elementiv masivu Vkazivni zberigayut pokazhchiki na specialni oblasti pam yati pokazhchik potochnoyi operaciyi pokazhchik bazi pokazhchik steka Segmentni zberigayut adresi ta selektori segmentiv pam yati Keruyuchi zberigayut informaciyu keruyuchu stanom procesora a takozh adresi sistemnih tablic Lichilnik komand Dokladnishe Lichilnik komand IP angl Instruction Pointer registr sho mistit adresu zmishennya nastupnoyi komandi sho pidlyagaye vikonannyu shodo kodovogo segmenta CS Registr IP pov yazanij z CS u viglyadi CS IP de CS ye potochnim kodovoyu segmentom a IP potochnim zsuvom shodo cogo segmenta Registr IP ye 16 rozryadnim registrom pokazhchikom Krim nogo do skladu registriv cogo tipu vhodyat SP angl Stack Pointer pokazhchik steka i BP angl Base Pointer bazovij pokazhchik Princip roboti Napriklad CS mistit znachennya 2CB5 0 a href wiki D0 A8 D1 96 D1 81 D1 82 D0 BD D0 B0 D0 B4 D1 86 D1 8F D1 82 D0 BA D0 BE D0 B2 D0 B0 D1 81 D0 B8 D1 81 D1 82 D0 B5 D0 BC D0 B0 D1 87 D0 B8 D1 81 D0 BB D0 B5 D0 BD D0 BD D1 8F title Shistnadcyatkova sistema chislennya H a v registri IP zberigayetsya zsuv 123H Adresa nastupnoyi instrukciyi sho pidlyagaye vikonannyu obchislyuyetsya shlyahom pidsumovuvannya adresi v CS segmenti kodu zi zmishennyam v registri IP 2CB50H 123H 2CC73H Takim chinom adresa nastupnoyi instrukciyi dlya vikonannya dorivnyuye 2CC73H Pri vikonanni potochnoyi instrukciyi procesor avtomatichno zminyuye znachennya v registri IP v rezultati chogo reyestrova para CS IP zavzhdi vkazuye na nastupnu instrukciyu sho pidlyagaye vikonannyu Div takozhSpisok mikroprocesoriv Intel Komp yuterna platformaDzherelaPosilannyaInstruction tables Lists of instruction latencies throughputs and micro operation breakdowns for Intel and AMD CPU s Agner Fog Copenhagen University College of Engineering 30 lipnya 2014 u Wayback Machine Ce nezavershena stattya pro aparatne zabezpechennya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi