МІНІСТЕРСТВО ОСВІТИ І НАУКИ p>
РОСІЙСЬКОЇ ФЕДЕРАЦІЇ p>
Східно-Сибірської ДЕРЖАВНИЙ p>
ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ p>
Кафедра Систем інформатики p >
Звіт по другій половині навчальної практики на тему: p>
"ПРОЦЕСОРИ. ІСТРОІЯ РОЗВИТКУ. СТРУКТУРА. АРХІТЕКТУРА. " P>
Виконав студент групи: 637 - 1 p>
637001 Cruel Angel p>
Оцінка: Дата захисту. P>
Керівник: p>
м. Улан - Уде, 1998 р. p>
Зміст: p>
ВСТУП
.................................................. ..........................< br>................... 3 p>
1. 16-бітна p>
ПРОЦЕСОРИ ....................................... .................. p>
7 p>
1.1. Процесори i8086/88 .............................................. ................ p>
............. 8 p>
1.1.1. Організація пам'яті p>
8086/88 ...................................... ...................... 8 p>
1.1.2. Адресація введення-виведення .............................................. .................. p>
... 9 p>
1.1.3 Система команд ......... .................................................. ..... p>
.................. 9 p>
1.2. Процесори p>
80186/80188 ....................................... .................... p>
.......... 10 p>
1.2.1. Математичний співпроцесор p>
8087 ........................................ ......... 10 p>
1.3. Процесор p>
80286 ......................................... ........................ p>
................. 10
1.3.1. Організація пам'яті p>
80286 ........................................ ....................... 11 p>
1.3.2. Введення-вивід ............................................... .................. p>
....................... 12
1.3.3. Початковий скидання і перехід в захищенийрежим ......................... 12 p>
1.3.4.
Захист ................................................. .....................< br>........................... 13 p>
2. АРХІТЕКТУРА 32-розрядних p>
ПРОЦЕСОР ............................. 14 p>
2.1 .1. Організаціяпам'яті ................................................. .....................< br>...... 15 p>
2.1.2. Переривання івинятку ................................................. .................< br>18 p>
2.1.3. Початковий скидання ісамотестування ................................................ 19 p>
2.1.4. Купівля -висновок ................................................. ......................< br>.................... 19 p>
2.1.5. Режим системного управління
SMM ................................................. .19 p>
2.1.6. Розширення
ММХ ................................................. ........................< br>....... 21 p>
2.1.7. Внутрішнійкеш ................................................. ........................< br>......... 22 p>
2.2. Процесор
80386 ................................................. ......................< br>............... 24 p>
2.3. Процесор
80486 ................................................. ......................< br>............... 25 p>
2.4. Процесор
Pentium ................................................. ....................< br>.............. 25 p>
2.5. Процесор
Celeron ................................................. ....................< br>............... 29 p>
2.6. Процесор PENTIUM ® II
XEON ®................................................ ......... 30 p>
ДОДАТОК ................................ ............................< br>.................................... 32 p>
СПИСОК
ЛІТЕРАТУРИ ................................................. .................< br>.............. 34 p>
ВСТУП p>
Історія процесорів почалася в 1979 році, коли фірма Intel випустилаперший мікропроцесор i4004. Він мав розрядність даних 4 біта, спроможністьадресувати 640 байт пам'яті, тактову частоту 108 кГц і продуктивність
0.06 MIPS. Такий процесор вже міг працювати в якості обчислювального ядракалькулятора. Він містив 2300 транзисторів і виконувався по технології здозволом 10 мкм. Через рік з'явився його 8-бітний "родич" - i8008,адресою вже 16 Кб пам'яті. p>
У 1974 році з'явився 8-розрядний процесор i8080, що став вельмипопулярним пристроєм. Він вже мав частоту 2 МГц і адресував 64 Кб пам'яті.
6000 транзисторів дозволила розмістити 6-мкм технологія виготовлення.
Процесор вимагав трьох джерел живлення (+5 В, +12 В і-5В) і складноюдвох контактної синхронізації. На цьому процесорі будувалися різноманітнітермінали, контролери і навіть перший ПК Altair. У нашій країні запізнілимлуною 8086 стали процесори 580ИК80 і КР580ВМ80, на базі яких на початку ісередині 80-х років будувалося багато "саморобний" ПК. p>
Наступним етапом став процесор i8085 (5 МГц, 0.37 MIPS, 6500транзисторів, 3-мкм технологія). Він зберіг популярну реєстровуархітектуру 8080 і програмну сумісність, але в нього додався портпослідовного інтерфейсу, скасували спеціальні ІС підтримки
(тактового генератора і системного контролера) і дещо змінилизовнішній інтерфейс. Головним подарунком розробникам апаратури стало одненапругу живлення 5 В. p>
Варіації на тему 8080 і 8085 представляє процесор Z80 фірми Zilog.
Зберігши програмну сумісність з 8080, в нього ввели додатковірегістри, що дозволило істотно підвищити продуктивність. Результатвиявився вражаючим - ще недавно популярні комп'ютери Sinclair,побудовані на Z80, демонстрували на іграх графіку, не поступається PC на
16-розрядному процесорі 286. P>
Перший 16-розрядний процесор 8086 фірма Intel випустила в 1978 році.
Частота 5 МГц, продуктивність 0.33 MIPS, але інструкції вже з 16-бітнимиоперандами (пізніше з'явилися процесори 8 і 10 МГц). Технологія 3 мкм, 29тис. транзисторів. Адресуемая пам'ять 1 Мб. Реєстрова архітектура ісистема команд істотно відрізнялася від 8080, але природнопростежуються загальні ідеї. Через рік з'явився 8088 - той же процесор, алез 8-бітної шиною даних. З нього почалася історія IBM PC, наклали свійвідбиток на подальший розвиток цієї лінії процесорів Intel. Масовепоширення і відкритість архітектури PC прищепили до лавиноподібногопояві програмного забезпечення, що розробляється крупними, середніми ідрібними фірмами і ентузіастами-одинаками. Технічний вимагав (і заразвимагає) розвитку процесорів, але вантаж програмного забезпечення PC,яка повинна працювати і на більш нових процесорах, в свою чергувимагав зворотного програмної сумісності. Таким чином, всінововведення в архітектурі наступних процесорів повинні булипристроюватися до існуючого ядра. А тут ще сама архітектура PC
"Підкинула", наприклад, складнощі з використанням вектора переривань.
Фірма Intel зарезервувала перші 32 вектору "для службового користування",однак на них "наїхали" переривання BIOS PC. Один з результатів --додатковий спосіб обробки виключень співпроцесора, застосовувана встарших моделях PC. p>
Процесор 80286, що заміняє наступний етап архітектури, з'явивсятільки в 1982 році. Він вже мав 134 тис. транзисторів (технологія 1.5 мкм)і адресував до 16 Мб фізичної пам'яті. Його принципове нововведення --захищений режим і віртуальна пам'ять розміром до 1 Гб - не знайшли масовогозастосування, процесор більшою частиною використовувався як дуже швидкий 8088. p>
Клас 32-розрядних процесорів був відкритий в 1985 році моделлю 80386
(275 тис. транзисторів, 1,5 мкм). Розрядність шини даних (як і внутрішніхрегістрів) досягла 23 біт, адресується фізична пам'ять - 4 Гб. З'явилисянові регістри, нові 32-бітні операції, істотно доопрацьований захищенийрежим, з'явився режим V86, сторінкове управління пам'яттю. Процесор знайшовшироке застосування в PC, і на благодатному грунті його властивостей ставрозростатися "найбільший вірус" - MS Windows з додатками. З цьогочасу стала помітна тенденція "позитивного зворотного зв'язку": напоява нового процесора виробники ПО реагують випуском новихпривабливих продуктів, наступним версіям яких стає явнотісно в рамках цього процесора. З'являється більш продуктивнийпроцесор, але після нетривалого захоплення і його ресурси швидко
"З'їдають" і т. д. Це "вічне" рух, звичайно, природно, але єобгрунтована підозра, що великі ресурси розбещують (або, по крайнеймірою, розслаблюють) розробника ПО, не змушуючи його напружуватися в пошукахбільш ефективних способів вирішення задачі. Прикладом ефективногопрограмування можна вважати іграшки на Sinclair ZX-Spectrum, якіреалізуються на іграшкових ресурсах - 8-бітному процесорі і 64 (128) Кбайт
ОЗУ. З протилежними прикладами більшість користувачів PC стикаютьсярегулярно, але з процесором Pentium 200 і 32 Мб ОЗП на них не завждизвертають увагу. p>
Історія процесора 386 нагадує історію 8086: першу модель з 32бітної шиною даних (згодом названою 386DX) змінив 386 SX з 16бітної шиною. Він досить легко вписувався в архітектуру PC AT, ранішебазувалася на процесорі 286. p>
Процесор Intel486DX з'явився в 1989 році. Транзистори -1,2 млн.,технологія 1 мкм. Від 386-го істотно відрізняється розміщенням на кристаліпервинного кеша і вбудованого математичного співпроцесора (попередніпроцесори мали можливість використання зовнішніх x87 співпроцесорів).
Крім того, для підвищення продуктивності в цьому CISC-процесорі (як ів наступних) застосоване RISC-ядро. Далі з'явилися його різновиди,що відрізняються наявністю або відсутністю співпроцесор, застосуванням внутрішньогомноження частоти, політикою запису кеша і іншими. Зайнялисяенергозбереженням (з'явився режим SMM), що відбилося і в продовженнілінії процесорів 386 (з'явився процесор Intel386SL). p>
У 19993 році з'явилися перші процесори Pentium частотою 60 і 66 МГц
- 32 розрядні процесори з 64-бітної шиною даних. Транзисторів 3,1 млн,технологія 0,8 мкм, живлення 5 В. Від 486-го його принципово відрізняєтьсясуперскалярної архітектурою - спроможністю за один такт випускати зконвеєрів до двох інструкцій (що, зрозуміло, не означає можливістьпроходження інструкцій через процесор за полтакта, або один такт).
Інтерес до процесора з боку виробників і покупців PCстримувався його дуже високою ціною. Крім того, виник скандал звиявленням помилки співпроцесора. Хоча фірма Intel математично обгрунтувалане високу імовірність її прояви (раз на кілька років), вона все-такипішла на безкоштовну заміну вже проданих процесорів на виправлені. p>
Процесори Pentium з частотою 75, 90 і 100МГц, що з'явилися в 1994році, представили вже друге покоління процесорів Pentium. При майже томуж числі транзисторів вони виконувалися за технологією 0,6 мкм, що дозволилознизити споживану потужність. Від першого покоління вони відрізнялисявнутрішньому множенням частоти, підтримкою мультипроцесорних конфігурацій імали інший тип корпуса. З'явилися версії (75 МГц в мініатюрному корпусі)для мобільних застосувань (блокнотние ПК). Процесори Pentium другупокоління стали досить популярні в PC. У 1995 році з'явилися процесори на
120 і 133 МГц, виконані вже за технологією 0,35 мкм (перші процесори на
120 МГц робилися ще за технологією 0,6 мкм). 1996-й називають роком Pentium
-З'явилися процесори на 150, 166 і 200 МГц, і Pentium став рядовимпроцесором для PC широкого застосування. p>
Паралельно з Pentium розвинувся і процесор Pentium Pro, якийвідрізнявся новинками "динамічного виконання інструкцій". Крім того, вйого корпусі розмістили і вторинний кеш, для початку об'ємом 256 Кб. Однакна 16-бітних програмах, а також в середовищі Windows 95 його застосування на даєпереваг. Процесор містить 5,5 млн транзисторів ядра, і 15,5 млнтранзисторів для вторинного кеша обсягом 256 Кб. Перший процесор зчастотою 150 МГц з'явився на початку 1995 року (технологія 0,6 мкм), а вже вкінці року з'явилися процесори з частотою 166, 180, 200 МГц (технологія
0,35 мкм), у яких кеш досягав 512 Кб. P>
Після довгих обіцянок в початку 1997 року з'явилися процесори Pentium
MMX. Розширення ММХ припускає паралельну обробку групи операндіводнією інструкцією. Технологія ММХ покликана прискорювати виконаннямультимедійних додатків, зокрема операції з зображеннями і обробкусигналів. Її ефективність викликає суперечки в середовищі розробників, оскількивиграш в самих операціях обробки компенсується програшем надодаткових операціях упаковки-розпакування. Крім того обмеженарозрядність ставить під сумнів застосування ММХ в декодери MPEG-2, вяких вимагається обробка 80-бітових операндів. Крім розширення ММХ ціпроцесори, у порівнянні зі звичайним Pentium, мають подвоєний об'ємпервинного кеша, і деякі елементи архітектури, запозичені у
Pentium Pr, що підвищує продуктивність процесора Pentium ММХ і назвичайних додатках. Процесори Pentium ММХ мають 4,5 млн транзисторів івиконані за технологією -, 35 мкм. Станом на червень 1997 єпроцесор з тактовою частотою 166, 200 і 233 МГц. p>
Технологія ММХ була з'єднана з архітектурою Pentium Pro - і в травні
1997 з'явився процесор Pentium II. Він являє собою злегкаурізаний варіант ядра Pentium Pro з більш високою внутрішньою тактовоючастотою, в яку внесли підтримку ММХ. Труднощі розміщення вторинногокеша в одному корпусі з процесором подолали нехитрим способом - кристалз ядром процесора і набір кристалів статичної пам'яті і додатковихсхем, що реалізують вторинний кеш, розмістили на невеликій друкарській платі -картриджі. Всі кристали закриті загальною спеціальною кришкою і охолоджуютьсяспеціальним вентилятором. Тактова частота ядра - 233, 266 і 300 МГц. P>
Звичайно ж, які перелічені моделями не вичерпується весь світовийасортимент мікропроцесорів. Це тільки представники сімействапроцесорів, що мають узагальнену назву х86. Ряд фірм (DEC? Motorola,
Texas Instruments та інші) маю розробки, що істотно відрізняються відданого сімейства; є інші класи процесорів і в Intel. Серед них єнабагато більш потужні процесори пов'язані, до таких класів як RISC, такі CISC архітектуру. Однак процесори Pentium особливо з підтримкою ММХ,мають найскладнішу у світі систему команд. p>
Процесори, сумісні з сімейством х86, випускаються не тількифірмою Intel. Традиційний конкурент - AMD - випускає сумісніпроцесори звичайного трохи пізніше, але помітно дешевше, іноді по рядутехнічних властивостей вони навіть випереджають аналогічні процесори Intel. Фірма
Cyrix славиться своїми швидкими сопроцессорами. P>
Як уже згадувалося вище, за системою команд і архітектурі розрізняютьсяпроцесори RISC і CISC. p>
RISC - Reduced (Restricted) Instruction Set Computer - процесори
(комп'ютери) з скороченою системою команд. Ці процесори зазвичай маютьнабір однорідних регістрів універсального призначення, і їх система командвідрізняється відносною простотою. У результаті апаратна реалізаціятакої архітектури дозволяє з невеликими витратами виконати за мінімальний
(в межах 1) число тактів синхронізації. p>
CISC - Complete Instruction Set Computer - процесори (комп'ютери) зповним набором інструкцій, до яких і відноситься сімейство х86. Склад іпризначення їх регістрів істотно не однорідні, широкий набір ускладнюєдекодування інструкцій, на що витрачаються апаратні ресурси. Зростаєі число тактів необхідне для виконання інструкцій. p>
У процесорах розглянутого сімейства, починаючи з 486-го,застосовується комбінована архітектура - CISC-процесор має RISC-ядро. p>
Сімейство 80х86 фірми Intel почалося з 16-розрядного процесора 8086.
Всі старші моделі процесорів, у тому числі 32-розрядні (386-й, 486-й,
Pentium, Pentium Pro) і з 64-розрядних розширенням ММХ, включають в себепідмножина системи команд і архітектури нижчестоящих моделей, забезпечуючисумісність з раніше написаним ПЗ. p>
Розділ 1 p>
16-розрядні процесори p>
16-розрядні процесори самі по собі вже представляють в основному лишеісторичний інтерес. Але саме на них "виїхали" мільйони РС,забезпечують живучість і чатують на розвитку всього сімейства. p>
1.1. Процесори i8086/8088
Процесори 8086, випущені фірмою Intel у 1978 році, відносяться до першогопоколінню 16-бітових процесорів. Роком пізніше з'явилася його модифікація
1088. Обидва ці процесора виконують 8/86-бітние логічні і арифметичніоперації, включаючи множення і ділення, операції з рядками та операції вводу -виводу. Процесори мають 20-розрядну шину адреси, яка дозволяєадресувати до 1 Мб пам'яті. Шина даних у 8086 16-розрядна, у 8088розрядність шини даних скорочена до 8 біт. Це скорочення,зроблене з метою здешевлення системи в цілому, обертається деякимзниженням продуктивності: 8086 за рахунок більшої розрядності шинипрацює приблизно на 20-60% швидше, ніж 8088 з тією ж тактовою частотою.
Функціональні відмінності цих процесорів, обумовлені різною розрядністюшини, з'являються тільки в способі підключення 8 - і 16-розрядних зовнішніхпристроїв. З програмної точки зору ці процесори ідентичні, їхня системакоманд і набір процесорів включені у всі процесори РС-суміснихкомп'ютерів. Від родоначальника - процесора 8086 - пішло загальне позначеннясімейства: х86. Процесори підтримують апаратні і програмні перериванняі допускають колективні використання шини спільно з іншимипроцесорами або контролерами (наприклад к, прямого доступу до пам'яті - DMA)
. Також передбачено використання математичного співпроцесора 8087,істотно підвищує продуктивність обчислень. p>
У процесорах застосовується конвеєрна архітектура, що дозволяє виконативибірку кодів інструкцій з пам'яті їх декодування під час виконаннявнутрішніх операцій. Конвеєр підвищує продуктивність процесора зарахунок скорочення часу простою його операційних вузлів. Конвеєрпроцесора 8086 має 6-байтним внутрішню чергу інструкцій. Блокпопередньої вибірки при наявності 2 вільних байт в черзі намагається їїзаповнити в той час, коли внешняя шина процесора не зайнята операціямиобміну. Черга у процесора 8088 скорочена до 4 байт, а попереднявибірка здійснюється вже за наявності одного вільного байта. Це відмінностіоптимізують конвеєр з урахуванням розрядності шини даних. Черга обнуляєтьсяпри виконанні будь-якої команди передачі керування, навіть при переході нанаступну адресу. Цією властивістю часто користуються при програмуваннікерування пристроями введення-виведення, що вимагають затримки між сусіднімиопераціями обміну. p>
Процесор має 14 регістрів розрядністю 16 біт, операнди можуть мати
8 або 16 біт і представляти знакові і беззнакові і двійковій-десятковічисла. Система команд має 24 режиму адресації операндів. Середній часвиконання команди займає 12 тактів синхронізації, один цикл обміну назовнішній шині займає 2 такту (без тактів очікування). Тактова частотапроцесора 8088, що застосовується в превью РС, була 4,77 МГц, надаліз'явилися процесори з частотою 8 і 10 МГц (застосовувалися в Turbo XT). p>
1. 1. 1. Організація пам'яті 8086/88
Пам'ять для процесорів 8086/8088 представляється у вигляді лінійноїпослідовності байт. Для звернення до пам'яті процесор (спільно ззовнішньої схемою) формує шинні сигнали MEMWR # (Memory Write) і MEMRD #
(Memory Read) для операції запису та зчитування відповідно. Охопленняпростору розміром 1 Мб забезпечується 20-розрядної шиною адреси.
Логічна пам'ять розбивається на сегменти розміром 65 Кб. Фізична адресапам'яті (що надходить на шину адреси розрядністю 20 біт) складається з двох 16 --бітних частин - адресу сегменту Seg та виконавчого адреси ЕА (executiveaddress), сумміруемих із зсувом на 4 біта (рис 2.1). p>
Рис. 2.1. Формування фізичної адреси пам'яті процесором 8086/8088 p>
Процесор може звертатися до одного байта пам'яті, так і слова, абоподвійного слову. При розміщенні слова в пам'яті з адресою, відповіднимадресою слова, містить його молодшу частину (Low), наступний байт міститьстаршу частину (High). Слово може розміщуватися в пам'яті як за парним
(Even), так і по не непарним (Odd) адресою. Подвійне слово зазвичайвикористовується для зберігання повної адреси, і в ньому розташовується спочаткуслово зміщення (в порядку L, H), а потім сегмента (у тому ж порядку).
Сегментація пам'яті в порядку L, H є характерною рисою процесорів
Intel. P>
Весь простір пам'яті розбивається на параграфи - області з 16суміжних байт, починаючи з нульового адреси. Цілком очевидно, що будь-який сегментможе починатися тільки на кордоні параграфа (чотири молодших біта адреса --нульові). p>
1.1.2. Адресація введення-виведення
Для звернення до пристроїв введення-виведення процесор має окремі команди
IN і OUT, результатом виконання яких є формування шиннихсигналів IORD # (Input/Output Write) для читання або запису одного або двохбайт. Дані при читанні можуть міститися тільки в регістр AL або AX івиводяться з цих же регістрів. У циклах введення-виведення використовується тільки
16 молодших біт шини адреси (старші біти при цьому нульові), що дозволяєадресувати до 64 Кб регістрів вводу-виводу. Адреса пристрою задається абов команді (тільки молодший байт, старший - нульовий), або береться зрегістра DX (повний 16-бітний адресу). p>
1.1.3. Система команд
Набір команд 8086/88 включає наступні основні групи: p>
. інструкції пересилання даних p>
. арифметичні та логічні інструкції; p>
. інструкції з рядками; p>
. інструкції передачі управління; p>
. інструкції управління процесором; p>
Кожна команда має один або два байти інструкції, за якими можеслідувати 1, 2 або 4 байти операнда. Перед кодом інструкції можливозастосування префіксів CS;, DS;, ES;, SS;, що вказують на використаннязаданих сегментних регістрів замість звичайного, префікса REP, що вказуєна необхідність повтору інструкції зазначене в регістрі СХ кількість разів, іпрефікса LOCK, що блокує системну шину на час виконання інструкції.
З позиції сьогоднішнього дня можна вважати, що система команд 16-розрядногопроцесора 8086/88 є підмножиною команд 32-розрядних процесорів
80х86. P>
2. . Процесори 80186/80188
Процесори i80186/80188 та їх модифікації 80С186/80С188 не уявляютьнового подання архітектури: як і 8085/8088, вони єпроцесорами з 16-розрядної внутрішньої архітектурою і програмносумісними з 8086ю Розрядність шини адреси - 20 біт, шини даних у 80186
- 16 біт, у 80188 - 8 біт. Ці процесори мають вбудовані периферійніконтролери переривання, прямого доступу до пам'яті, трьохканальний таймер ігенератор синхронізації. За рахунок архітектурних поліпшень скорочено числотактів, необхідних для виконання деяких команд. Процесори 80С186/80С188мають засоби керування енергоспоживанням, є їх модифікаціївбудованими послідовними портами і контролерами регенераціїдинамічної пам'яті. Вбудована периферія цих процесорів маєпрограмний інтерфейс, не сумісні з IBM РС - специфікаціями. Ціпроцесори використовуються у вбудованих контролерах і комп'ютерах, невимагають 100% IBM - сумісності (можливе забезпечення сумісності нарівні MS DOS). p>
1.2.1. Математичний співпроцесор 8087
Співпроцесор 8087, офіційно (фірмою Intel) званий NPX (Numeric
Processor eXtension), призначений для розширення обчислювальнихможливостей центрального процесора (CPU) 8086/8088, 80186/80188. Йогозастосування до системи команд 8086 додається 68 мнемонік, що включаютьарифметичні, тригонометричні, експоненціальні і логарифмічні. p>
3. Процесор 80286
Процесор 80286, випущений в 1982 році, представляє друге покоління 16 --розрядних процесорів. Він має спеціальні засоби для роботи вбагатокористувацьких і багатозадачних системах. Найбільш істотною відмінністювід 8086/88 є механізм управління адресації пам'яті, якийзабезпечує чотирьохрівневий систему захисту і підтримки віртуальноїпам'яті. Спеціальні кошти призначені для підтримки механізмуперемикання завдань (Task switching). Процесор має розширену системукоманд, яка крім команд управління захистом включає всі команди 8086 ні кілька нових команд загального призначення. Процесор може працювати в двохрежимах: p>
8086 Real Address Mode - режим реальної адресації (або просто реальнийрежим - Real Mode), повністю сумісний з 8086. У цьому режимі можливаадресація до 1 Мбайт фізичної пам'яті (насправді, за рахунок "вдалою"помилки, майже на 64 Кб більше). p>
Protect Virtual Address Mode - захищений режим віртуальної адресації
(або просто захищений режим - Protect Mode). У цьому режимі процесордозволяє адресувати до 16 Мбайт фізичної пам'яті, через які привикористанні сторінкової адресації можуть відображатися до 1 Гб віртуальноїпам'яті кожного завдання. Система команд в цьому режимі також включає набіркоманд 8086, розширений для забезпечення апаратної реалізації функційсупервізора багатозадачного ОС і віртуальної пам'яті. Переключення взахищений режим здійснюється однією командою (з попередньопідготовленими таблицями дескрипторів) досить швидко. Зворотнеперемикання в реальний режим можливо тільки через апаратний скиданняпроцесора. p>
По складу і призначенню в реальному режимі регістри 80286 в основномузбігаються з регістрами 8086/88. Зміни стосуються призначення біт регістра
8086, процесор 80286 має 16-бітну шину даних і черга команд 6 байт.
За рахунок архітектури скорочено час виконання операції: процесор 20286 зтактовою частотою 12,5 МГц працює більш ніж у 6 разів швидше ніж 8086 зтактовою частотою 5 МГц. Передбачена можливість використаннявисокопродуктивного процесора 80287, програмно сумісного з 8087. p>
Під управлінням MSDOS процесор 80286 зазвичай використовують у реальномурежимі роботи. Захищений режим використовують ОС типу XENIX, UNIX, OS/2,
NetWare286 і оболонка MS Windows. Хоча його переваги в РС реалізованілише частково (він в основному використовувався як швидкий процесор 8086),саме з цим процесором пов'язаний справжній "бум" на ринку РС. p>
1.3.1. Організація пам'яті 80286
Як і у процесорів 8086/8088, для звернення до пам'яті процесор (спільноіз зовнішньою схемою) формує шинні сигнали MEMWR # (Memory Write) і MEMRD #
(Memory Read) для операції запису та зчитування відповідно. Шина адресирозрядністю 24 біта дозволяє адресувати 16 Мб фізичної пам'яті, але вреальному режимі доступний тільки 1 Мб, що починається з молодших адрес. Зпрограмної точки зору пам'ять також організовується у вигляді сегментів, алеуправління сегментацією має суттєві відмінності для реального ізахищеного режимів. p>
У реальному режимі по адресації пам'яті декларується повнасумісність з процесором 8086, який своєю 16-бітної адресною шиноюохоплює простір в 1 Мб. Насправді на радість розробниківпрограмного забезпечення РС, 80286 має помилку, "узаконеного" і внаступних покоління процесорів. При обчисленні фізичної адреси можливовиникнення переповнення, яке з 20-бітної шиною адреси простоігнорується. Наприклад, Seg = FFFFh і EA = FFFF, фізичну адресу, обчисленийза формулою PA = 16 * Seg + EA = 10FFEF, процесором 8086 трактується як 0FFEF --адреса, що належить першому мегабайту. Однак на виході А20 процесора
80286 в цьому випадку встановлюється одиничне значення, що відповідаєадресою комірки з другого мегабайта фізичної пам'яті. Для забезпеченняповної програмної сумісності з 8086 до схеми РС був введений спеціальнийвентиль Gate A20, примусово обнуляє біт А20 системної шини адреси.
Не оцінивши потенційної вигоди від цієї помилки, управління вентилемузаконили через програмно-керовані біт контролера клавіатури 8042.
Коли оперативна пам'ять подешевшала, а "апетит" програмного забезпеченнявиріс, в цю невелику область (64К-16 біт) стали поміщати деякірезидентні програми або навіть частину операційний системи, а для прискоренняуправлінням вентилем з'явилися більш швидкі способи (Gate A20 Fast
Control). P>
На відміну від 8086 процесор 80286 має засоби контролю за переходомчерез кордон сегмента, що працюють в реальному режимі. При спробі адресаціїдо речі, що має зсув FFFh (його старший байт виходить за кордонсегмента), або виконання інструкції, всі байти якої не вміщаються водному сегменті, процесор виробляє переривання - виключення 13 (0Dh) -
Segment Overrun Exception. При спробі виконання інструкції ES-CAPE зоперандом пам'яті, що не вміщається в сегменті, виробляється виключення 9 -
Processor Extension Segment Interrupt. P>
У захищеному режимі працюють не всі режими адресації, допустимі для
8086 і реального режиму 80286. Відмінності стосуються визначення сегментів: p>
. сегментні регістри CS, DS, SS і ES зберігають не самі базові адреси сегментів, а селектори, за якими з таблиці, що зберігається в ОЗУ, витягуються дескриптори сегментів; p>
. дескриптор описує базовий адреса, розмір сегмента (1-64 Кб) і його атрибути; p>
. базова адреса сегмента має розрядність 24 біта, що й забезпечує адресацію 16 Мб фізичної пам'яті. p>
Селектори, програми для завантаження в 16-бітові сегментні регістри, мають три поля:
RPL (біти 0, 1), TI (біт 2) і INDEX (біти 3-15):
RPL (Requested Privilege Level) - запитаний рівень привілеїв;
TI (Table Indicator) - індикатор використання GDT - глобальна (TI = 0) або
LDT - локальної (TI = 1) таблиці дескрипторів;
INDEX - номер дескриптора в таблиці. P>
Дескриптори зберігаються в слові і займають по чотири суміжних слова (8байт). При завантаженні нового значення селектора дескриптори зчитуються з
ОЗУ і кешуються у внутрішніх програмно які будуть недоступні (і невидимих)регістрах процесора. До зміни значення селектора при звернення до пам'ятівикористовуються значення дескрипторів тільки з кеш-регістрів. Звернення додескриптора виконуються як заблоковані шинні цикли, що забезпечуєцілісність дескрипторів і за наявності інших контролерів шини. p>
Для функцій передачі керування й перемикання завдань визначеніспеціальні типи дескрипторів p>
1.3.2. Введення-вивід
Як і 8086, процесор 80286 дозволяє адресувати до 64К однобайтних або 32Кдвухбайтних регістрів в просторі, окремому від пам'яті (команди введення -виведення викликають шинні цикли з активними сигналами IORD #, IOWR #). Уадресному просторі введення-виведення область 00F8-00FF зарезервована длявикористання співпроцесором. При операціях введення-виведення старші бітиадреси (лінії А [16:20]) не використовуються. Адреса пристрою або задається вкоманді (тільки молодший байт, старший - нульовий), або береться з регістра
DX (повний 16-бітний адресу). Рядкові команди REP INSB/INSW, REP
OUTSB/OUTSW забезпечують блочний ввід-вивід зі швидкістю, що перевищуєаналогічні операції зі стандартним контролером DMA. p>
У захищеному режимі інструкції вводу-виводу єпривілейованими. Це означає, що вони можуть виповняться завданнями тількиз певним рівнем привілеїв, визначеним полем IOPL регістра прапорів.
Несанкціоноване спроба виконання цих інструкцій викликає виключення
13 - порушення захисту (знамените повідомлення "General Protection Error "). p>
1.3.3. Початковий скидання і перехід в захищений режим
За високого рівня сигналу на вході RESET процесор припиняє виконанняінструкцій і перестає керувати локальної шиною. Після апаратного скиданняпроцесор переходить до виконання команди, зчитаної з фізичного адресою
FFFF0h. Скидання (і тільки скидання!) Переводить процесор в реальний режим івстановлює значення деяких регістрів. p>
Тільки після скидання і до першої команди межсегментного переходу абовиклику на шині адреси в реальному режимі біта А [20:23] в циклах вибіркикоманд мають одиничне значення. З цього випливає, що принаймні напочатковий період часу після сигналу RESET комп'ютер повинен мати образ
BIOS в адресах FFFFF0-FFFFFFh, у той час як РС на 8086/88 ROM BIOSрозташовувалася під кордоном 0FFFFFh. Переміщення BIOS з першого мегабайтапам'яті в старші адреси "назавжди" неможливо, оскільки векторипереривання, що мають посилання на сервіси BIOS, у реальному режимі можутьадресуватися тільки до пам'яті в діапазоні адрес 0-0FFFFh (0-10FFEF привідкритому вентилі Gate A20). Таким чином, у РС/AT на процесорі 80286 (істарше) ROM BIOS відображається принаймні на дві області пам'яті,розташовані під верхніми межами першого і останнього мегабайтівфізичної пам'яті. p>
Переклад процесора в захищений режим здійснюється завантаженням у MSWслова з одиничним значенням біта РЕ (Protect Enable). Перед цим в пам'ятіповинні бути проініціалізувати необхідні таблиці дескрипторів IDT і
GDT, а в базові регістри IDT GDT і повинні бути занесені їхні фізичніадреси (24-бітові) і розмір. Після виконання інструкції LMSW,встановлює біт РЕ, відразу повинна виконуватися команда внутрісегментногопереходу JMP для очищення черги інструкцій, декодувати в реальномурежимі. p>
Для установки регістрів процесора в початковий стан захищеногорежиму, передбачуване системне ПЗ, виконують інструкцію JMP з посиланням населектора початкового TSS системи. При цьому завантажиться регістр завдання,регістри LDT, регістри сегментів і загальні регістри. Регістр завдання TR повиненвказувати на дійсний TSS, оскільки операція перемикання завданьспричинить збереження поточного стану завдань. p>
1.3.4. Захист
Процесор 80286 має механізми захисту від несанкціонованого виконаннякритичних інструкцій - команди HLT, яка зупиняє процесор, ікоманд, що впливають на сегменти коду і даних. Механізми згруповані у тригрупи: p>
. обмеження використання сегментів (наприклад, заборона на записи в тільки читаються сегменти даних); доступність використання тільки сегментів, дескриптори яких описані в GDT і LDT; p>
. обмеження доступу до сегментів через правила привілеїв; p>
. виділення привілейованих інструкцій або операцій, які можна виконувати тільки за певних рівнях CPL і IOPL (біти 13 і 14 регістра прапорів). p>
Розділ 2 p>
Архітектура 32-розрядних процесорів p>
Історія 32-розрядних процесорів почалася з процесора Intel386. Ціпроцесора увібрали в себе всі властивості своїх 16-розрядних попередників
8086/88 і 80286 для забезпечення програмної сумісності з величезнимоб'ємом раніше написаного ПЗ. Однак у них за сучасними мірками подоланодуже жорстке обмеження на довжину безперервного сегменту пам'яті - 64 Кб. Узахищеному режимі 32-бітових процесорів воно відсунулося до 4 Гб - межіфізично адресується пам'яті, що како-то час можна вважати "майженескінченністю ". Всі ці процесори мають підтримку віртуальної пам'ятіобсягом до 64 Тб, вбудований блок керування пам'яттю підтримує механізмисегментації та сторінкової трансляції адрес (Paging). Процесоризабезпечують чотирьохрівневої системи захисту пам'яті та вводу-виводу,перемикання завдань. Вони мають розширену систему команд, що включає всікоманди 8086, 80286. Процесор може працювати в двох режимах, міжякими забезпечується досить швидке перемикання в обидві сторони: p>
Real Address Mode - режим реал?? ної адресації, повністю сумісний з
8086. У цьому режимі можлива адресація до 1 Мб фізичної пам'яті (на самомсправі майже на 64 Кб більше). p>
Protected Virtual Address Mode - захищений режим віртуальноїадресації. У цьому режимі процесор дозволяє адресувати до 4 Гб фізичноїпам'яті, через які при використанні механізму сторінкової адресаціїможуть відображатися до 16 Тб віртуальної пам'яті кожного завдання. Істотнимдоповненням є Virtual 8086 Mode - режим віртуального процесора
8086. Це режим є особливим станом завдання захищеного режиму, вякому процесор функціонує як 8086. На одному процесорі в такомурежимі можуть одночасно виконуватися кілька завдань з ізольованими одинвід одного реальними ресурсами. При цьому використання фізичного адресногопростору пам'яті керується механізмами сегментації і трансляціїсторінок. Спроби виконання команд, виходу за рамки відведеногопростору пам'яті і дозволеною області вводу-виводу контролюєтьсясистемою захисту. p>
Процесори можуть оперувати з 8, 16 і 32-бітними операндами байт,слів і подвійних слів, а також з бітам, бітовими полями і рядками біт. p>
Розглянемо базову архітектуру, загальну для всіх існуючих на даниймомент 32-розрядних процесорів: 386, 486, Pentium, Pentium Pro і Pentium
II. P>
2.1.1. Організація пам'яті
Пам'ять для процесорів 80х86 поділяються на байти (8 біт), слова (16 біт),подвійні слова (32 біт). Слова записуються у двох суміжних байтах, починаючи змолодшого. Адресою слова є адреса його молодшого байта. Подвійні словазаписуються в чотирьох суміжних байтах. p>
Більш крупними одиницями є сторінки і сегменти. Пам'ять можелогічно організовуватися у вигляді одного або безлічі сегментів змінноїдовжини (в реальному режимі - фіксованого). Сегменти можуть розвантажуватися надиску і по мірі необхідності з нього підкачуватися у фізичну пам'ять.
Крім сегментації, у захищеному режимі можливо розбиття логічної пам'ятіна сторінки розміром 4 Кб (Paging), кожна з яких може відображатися набудь-яку область фізичної пам'яті. Сегментація і розбиття на сторінки можутьзастосовуватися в будь-яких поєднаннях. Сегментація є засобом організаціїлогічної пам'яті, що використовуються на прикладному рівні. Розбиття на сторінкизастосовуються на системному рівні для управлінні фізичної пам'яттю. p>
Стосовно до пам'яті розрізняють на три адресних простору:логічне, лінійне і фізична. Основним режимом роботи 32-розряднихпроцесорів вважається захищений режим, у якому працюють всі механізмиперетворення адресних просторів. p>
Логічний адресу, також називається віртуальним, складається з селектора
(в реальному режимі - просто сегмента) і зсув. Зсув формуєтьсяпідсумовуванням компонентів (base, index, disp) на ефективний адресу.
Оскільки кожна задача може мати до 16К селектор, а зсув,обмежений розміром сегмента, може досягати 4 Гб, логічне адреснепростір для кожного завдання може досягати 64 Тб. Все це простірвіртуальної пам'яті в принципі є програміст