Intel 80386: відмінності між версіями

[неперевірена версія][неперевірена версія]
Вилучено вміст Додано вміст
Shynkar (обговорення | внесок)
Shynkar (обговорення | внесок)
Рядок 10:
 
Разом з тим i386 є серйозною переробкою процесора 80286. За деякими оцінками, ні до, ні після i386 архітектура процесорів x86 жодного разу не перероблялася настільки кардинально. У процесорах цієї архітектури вперше були введені основні механізми підтримки сучасних 32-розрядних операційних систем для PC-сумісних платформ.
 
==32 біта==
 
Вся архітектура x86 була розширена до 32 біт - всі регістри (за винятком сегментних) стали 32-бітними, отримавши у назві префікс «E» (EAX, EBX, EIP, EFLAGS тощо), із збереженням повного набору команд для роботи з ними. У тому числі:
 
*регістр прапорів, який отримав безліч нових прапорів для управління багатозадачністю
*регістр управління процесором MSW процесора 80286, названий на i386 «CR0»
 
32-бітної стала і адресація в захищеному режимі (з можливістю створення 16-бітних сегментів, для сумісності з 80286). Вона дозволила вперше з часу появи 8086 забути про сегментації, а точніше, обмеження розміру сегмента 64 кілобайтами (обмеження 16-бітного адреси), яке давно перестало влаштовувати програмістів.
 
До появи i386 програми та операційні системи використовували кілька головоломних моделей організації пам'яті (крихітна - tiny, мала - small, велика - large, величезна - huge), що розрізняються по організації в пам'яті сегментів коду, стека і даних. 32-бітний адресу дозволив використовувати замість них одну просту плоску модель (англ. flat) - 32-бітний варіант крихітної моделі, в якій всі сегменти завдання знаходяться в одному адресному просторі. Плоска модель забезпечує розмір такого «загального» сегмента до майже 4 гігабайт, яких на ті часи вистачало для будь-якого мислимого завдання.
 
Плоска модель має й недоліки:
 
*в ній з'являються проблеми переміщуваності машинного коду, які раніше легко обходилися сегментацією, забезпечення переміщуваності лягло на плечі операційних систем, з новими форматами дискового образу програми.
*плоска модель практично зводить нанівець управління пам'яттю в захищеному режимі (обмеження доступу та підтримка віртуальної пам'яті), яке до i386 могло виконуватися тільки на рівні сегментації. Тільки поява нової моделі управління пам'яттю - сторінкового перетворення - забезпечило плоскій моделі її сьогоднішню популярність.
 
Плоска модель увійшла в побут настільки широко, що сучасні програмісти часто і не підозрюють, що програми звертаються в пам'ять через сегменти.
 
== Див. також ==