Знаймо

Додати знання

приховати рекламу

Цей текст може містити помилки.

80386



План:


Введення

Клон мікропроцесора Intel 80386, виготовлений фірмою AMD

Intel 80386 (також відомий як i386 або просто 386) - 32 - бітний x86 -сумісний процесор третього покоління фірми Intel, випущений 17 жовтня 1985. Даний процесор був першим 32-розрядним процесором для IBM PC -сумісних ПК. Застосовувався, переважно, в настільних ПК і портативних ПК (ноутбуки та лептопи). В даний час в основному використовуються в контроллерах, а також в побутовій техніці.


1. Опис

Архітектура мікропроцесора Intel 80386DX

Процесор i386 повністю сумісний зі своїми попередниками - процесорами 8086 - 80286. Він виконує програми, призначені для них, без необхідності модифікації коду і перекомпіляції (або з мінімальними модифікаціями) і робить це більш ефективно:

  • затрачає на виконання менше число тактів синхронізації;
  • має більш високі тактові частоти, за рахунок використання нових технологій;
  • має збільшений, у порівнянні з попередніми процесорами, буфер передвибірки команд - 16 байт (яких вистачає приблизно на п'ять команд); буфер передвибірки забезпечує меншу кількість звернень за командами і виключає зайві звернення в пам'ять в коротких циклах і виконанні строкових команд.

Разом з тим i386 є серйозною переробкою процесора 80286. За деякими оцінками, ні до, ні після i386 архітектура процесорів x86 жодного разу не перероблялася настільки кардинально. У процесорах цієї архітектури вперше були введені основні механізми підтримки сучасних 32-розрядних операційних систем для PC-сумісних платформ.

Основні зміни:


1.1. 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 могло виконуватися тільки на рівні сегментації. Тільки поява нової моделі управління пам'яттю - сторінкового перетворення - забезпечило плоскої моделі її сьогоднішню популярність.

Плоска модель увійшла в побут настільки широко, що сучасні програмісти часто і не підозрюють, що програми звертаються в пам'ять через сегменти.


1.2. Сторінкове перетворення

У i386 був введений новий механізм управління пам'яттю - адресний простір, до якого звертається процесор за даними та кодом, у якому розташовуються сегменти (назване лінійним адресним простором) може не відповідати реальній фізичній пам'яті. Фізична пам'ять (включаючи буфери зовнішніх пристроїв, наприклад відеобуфер) може бути відображена в лінійне адресний простір довільним чином - кожна сторінка (розміром 4 кілобайти) лінійного простору може бути переадресована на будь-яку сторінку фізичної пам'яті через каталог сторінок, що розташовується в оперативній пам'яті (адреса каталогу сторінок визначається значенням нового регістра управління "CR3").

Як і сегменти, сторінки лінійного адресного простору можуть бути оголошені неприсутність (звернення до таких сторінок викликає обробник сторінкового порушення операційної системи). Неприсутність сторінки, в першу чергу, використовуються, для організації віртуальної пам'яті - обробник сторінкового порушення здійснює свопінг сторінок пам'яті з зовнішніми запам'ятовуючими пристроями. Також, неприсутність сторінки використовуються в плоскій моделі пам'яті (де розмір сегмента зазвичай має розмір від 2 до 4 гігабайт, навіть якщо у комп'ютера не є стільки фізичної пам'яті) для маркування сторінок сегмента, в які операційна система не виділила пам'яті. У цьому випадку, сторінкове порушення, як правило, завершує завдання або починає її налагодження.

Через сторінкове перетворення i386 може адресувати до 4 Гбайт фізичної пам'яті і до 64 Тбайт віртуальної пам'яті.


1.3. Покращена підтримка багатозадачності і захисту

Підтримка багатозадачності в процесорах x86 позначає апаратну підтримку "прозорого" переходу з однієї звичайної програми (завдання) на іншу. При перемиканні процесор зберігає свій стан (включаючи адреса наступної команди, селектори сегментів) в сегменті стану (TSS; сегмент пам'яті, з селектором з регістра TR) однієї задачі, після чого відновлює стан іншої задачі з її сегмента стану (селектор сегмента стану нової задачі завантажується з дескриптора її сегмента коду).

Перемикання між завданнями зазвичай здійснюється:

  • перериванням таймера; час, на який налаштований таймер, називається квантом часу для задачі
  • системним викликом (викликом функції операційної системи)
  • винятком - наприклад, при спробі виконати неприпустиму команду або зверненні до неприсутність пам'яті
  • налагодженням

У i386 механізми захисту і багатозадачності були значно розширені і поліпшені. В залежності від характеру порушень, вони можуть тихо ігноруватися (наприклад, деякі біти регістра EFLAGS не можна змінити завантаженням прапорів із стека), викликати оброблювач виключення (операційної системи). Серйозні помилки на рівні операційної системи (або в реальному режимі) можуть призвести процесор в режим аварійного останову (наприклад, при порушенні в обробнику подвійного порушення), з якого можна вийти тільки апаратним скиданням ( англ. reset ) Процесора.

Наприклад, i386 підтримує обмеження доступу до портів вводу-виводу та прапору заборони переривань через:

  • призначення необхідного рівня привілеїв для виконання таких команд (двухбітним полем IOPL регістра прапорів)
  • дозволом задачі вибіркового доступу до портів вводу-виводу через бітову карту в сегменті стану завдання

Спроба виконання невирішеною команди введення-виведення, призводить до виключення, обробник якого (приналежний операційній системі) може завершити завдання помилково, ігнорувати (відновити виконання з наступною команди) або емулювати введення-виведення.

Крім всього багатозадачність i386 повністю підтримує всі нові можливості - для 32-бітових завдань сегмент стану містить всі 32-бітові та необхідні нові регістри (наприклад, регістр CR3 з адресою каталогу сторінок для цієї задачі).


1.4. Віртуальний режим

У процесорі i386 компанія Intel врахувала необхідність кращої підтримки реального режиму, тому що програмне забезпечення часу його появи не було готове повністю працювати в захищеному режимі. Тому, наприклад, в i386 можливо переключення із захищеного режиму назад у реальний (при розробці 80286 вважалося, що це не буде потрібно, тому на комп'ютерах з процесором 80286 повернення в реальний режим здійснюється схемно - через скидання процесора).

В якості розширеної підтримки реального режиму, i386 дозволяє одній або кільком завданням працювати у віртуальному режимі - режимі емуляції режиму реального адреси.

Важливо розуміти що "віртуальний режим", незважаючи на схожість назви є не "третім режимом роботи процесора" (тобто реальний, захищений і віртуальний), а лише режимом роботи завдання в багатозадачному оточенні захищеного режиму.

Віртуальний режим призначається для одночасного виконання програм реального режиму (наприклад, програми для DOS) під багатозадачного операційною системою захищеного режиму.

Виконання у віртуальному режимі практично ідентично реальному, за кількома винятками, обумовленими тим, що віртуальна завдання виконується в захищеному режимі:

  • віртуальна завдання не може виконувати привілейовані команди, бо має нижчий рівень привілеїв
  • всі переривання і виключення обробляються операційною системою захищеного режиму (яка, втім, може ініціювати обробник переривання віртуальної завдання)

разом з тим, в задачі віртуального режиму можна використовувати:

  • сторінкове перетворення, наприклад, для:
    • розширення пам'яті, шляхом включення сторінок в невикористовуване адресний простір
    • емуляції розширень з перемиканням банків (наприклад, EMS-пам'яті)
    • віртуальної розгортки або згортки буферів зовнішніх пристроїв (відеопам'ять, апаратна EMS-пам'ять)
  • емуляцію зовнішніх пристроїв через емуляцію портів вводу-виводу
  • налагодження
  • при виконанні декількох завдань віртуального режиму, кожна з них може виконуватися абсолютно окремо один від одного, чого не можна досягти в реальному режимі

Наприклад, починаючи з версій 4.01 - 5.0, при використанні менеджера пам'яті EMM386 (і його аналогів інших розробників) операційна система MS-DOS працює як задача у віртуальному режимі. EMM386, в цьому випадку є подобою операційної системи захищеного режиму (передаючи більшість системних переривань ядру MS-DOS у віртуальній задачі).

Режим віртуального 8086 підтримується і в подальших 32-бітних процесорах x86, аж до режиму сумісності в x86-64.


1.5. Апаратна відладка

Як і в попередніх процесорах (починаючи з 8086), налагодження в i386 здійснюється викликом отладочного переривання, обробник якого передає керування програмі-відладчику. У попередніх процесорах відладка могла бути викликана двома подіями:

  • покрокове виконання
  • програмні точки зупину

в i386 налагодження також можуть почати:

  • апаратні крапки останова
  • пастка перемикання завдання

1.5.1. Покрокове виконання

Покрокове виконання або трасування (виклик отладочного переривання після виконання кожної команди при встановленому прапорі TF) в i386 залишилося таким же як і в попередніх процесорах, працюючи у всіх нових режимах (32-бітної адресації і режимі віртуальної завдання).

1.5.2. Точки зупину

Точка зупину ( англ. breakpoint ) - Переривання виконання програми по досягненні певного адреси.

У ранніх процесорах x86 для організації точки зупину, було необхідно замінити перший байт команди на команду виклику отладочного переривання (int 3), виклик переривання повертав управління відладчику, який повертав вихідне значення першого байта команди. Крім усього, точки зупину такого роду було неможливо встановлювати в ПЗУ. i386 підтримує такі точки останову для сумісності.

Точки останову i386 визначаються адресою в регістрах налагодження. Оброблювач налагодження викликається, якщо адреса наступної команди збігається з адресою в регістрі. У зв'язку з тим, що такі точки останову не вимагають запису в пам'ять, вони можуть використовуватися для налагодження програм в ПЗУ. i386 дозволяє одночасно встановлювати до чотирьох точок зупину.

Точки останову i386, також можуть бути встановлені на звернення (читання або запис) до змінної за заданою адресою в пам'яті. Процесор викликає обробник налагодження при зверненні команди до пам'яті за заданою адресою.


1.5.3. Пастка перемикання завдання

Налагоджувальної переривання може бути викликане при перемиканні на задачу (для цього в сегменті стану задачі передбачений спеціальний біт).

1.6. Інші зміни

Лінії даних і адрес в процесорі 80386, як і в процесорі 80286, не мультиплексируются: є 32 лінії даних і 32 незалежних від них лінії адреси.

1.7. Регістри

У складі мікропроцесора є 8 32-бітових регістрів загального призначення (EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP). Молодша, 16-бітна, половина кожного з цих регістрів відповідає регістрам AX, BX, CX, DX, SI, DI, BP, SP в попередніх процесорах сімейства x86. Як і раніше можлива адресація молодших і старших 8-бітних половин, молодшої 16-бітної половини 32-розрядних регістрів даних (AL і AH, BL і BH, CL і CH, DL і DH). Регістр покажчик команди і регістр прапорів також стали 32-бітними (EIP і EFLAGS відповідно), причому в регістрі прапорів додані нова група прапорців. До 4-м 16-бітовим сегментних регістрів (ES, CS, SS, DS) додалися ще 2 16-бітних регістра (FS і GS), тепер стало 6 сегментних регістрів. Додано кілька нових груп регістрів (кожний регістр розміром 32 біт): 3 регістру управління (CR0 (MSW), CR2, CR3), 8 регістрів налагодження (DR0, DR1, DR2, DR3, DR6, DR7), 2 тестових регістра (TR6, TR7).


1.8. Набір інструкцій

Набір інструкцій i386 був розширений, в основному, за рахунок додавання 32-бітних варіантів існуючих інструкцій (утворених 32-бітними префіксами), включаючи ті у яких 32-бітові варіанти мають інші мнемоніки (pushad / popad, pushfd / popfd, cwd * / cdq , movsd / cmpsd / scasd / lodsd / insd / outsd, iretd), а також команди mov для нових регістрів. Інші нові інструкції:

  • установка байта по умові (set *)
  • команди переходів (jmp, j *) з відносним 16-бітовим зміщенням
  • команди завантаження повної адреси для нових сегментних регістрів (lfs, lgs)

Середня довжина інструкцій складає 3,2 байта.


1.9. Математичний співпроцесор

Так само, як і у випадку зв'язки 80286-80287, обмін даними процесора 80386 з його співпроцесором йшов через порти з адресами 0F0H-0FFH, і, в принципі, невеликим доповненням схеми можна було підключити співпроцесор 80287 до процесора 80386DX [3] [4], це пропонувалося в якості дешевої альтернативи використанню співпроцесора 80387.

Спеціально для мікропроцесорів Intel 80386 були розроблені математичні співпроцесори 387SX і 387DX, що об'єднуються єдиним найменуванням Intel 80387. Ці співпроцесори сумісні з процесорами 386SX і 386DX відповідно; так, співпроцесор 387DX можливо підключити до 32-розрядній шині процесора. В іншому, обидві моделі аналогічні математичному сопроцессору 80287, який також можна використовувати разом з процесором 80386.


2. Моделі

З 1985 було випущено безліч модифікацій процесора i386, що відрізняються між собою продуктивністю, споживаною потужністю, роз'ємами і корпусами та іншими характеристиками.

2.1. 386DX

Перший процесор сімейства 386 випущений 13 жовтня 1985 і мав тактову частоту 16 МГц. Після випуску процесорів 386SX процесори цієї серії отримали індекс'' DX'' -'' D'' ouble-word e'' X'' ternal, що вказувало на його 32-розрядну зовнішню шину. Процесор позиціонувався як продуктивне рішення для настільних систем. Производился процессор по CHMOS IV технологии и потреблял 400 мА, что значительно меньше, чем Intel 8086. 16 февраля 1987 года анонсирована модель с частотой 20 МГц; 4 квітня 1988 года с частотой 25 МГц и 10 апреля 1989 года с частотой 33 МГц. Процессор выпускался в корпусах PQFP -132 (такие процессоры имели литеру "NG" в начале названия, например, NG80386DX25) или в керамическом PGA-132 (такие процессоры имели литеру "A" в начале названия, например, A80386DX25)

Первые процессоры 386DX имели ошибку, которая иногда приводила к неверным результатам при работе с 32-разрядными числами в таких программах, как OS/2 2.x, UNIX/386, или Windows в расширенном режиме. Ошибка приводила к тому, что система зависала. Вследствие некоторых проблем, в том числе из-за отсутствия 32-битных операционных систем устранить ошибку удалось лишь в апреле 1987 года. Уже вышедшие процессоры прошли проверку, в результате которой процессоры, не имеющие ошибку, были промаркированы двойным символом "сигма" и/или одним символом "IV".


2.2. 386SX

Первая модель этого семейства была представлена 16 червня 1988 года и имела частоту 16 МГц, позже были представлены и более быстрые модели: 20 МГц (25 января 1989 года), 25 МГц и 33 МГц (оба процессора представлены 26 жовтня 1992 года). Процессоры позиционировались как решения для настольных ПК начального уровня и портативных ПК. Семейство SX отличалось от семейства DX тем, что у него разрядность внешней шины данных составляла 16 бит, а разрядность внешней шины адреса 24 бит. В результате чего процессор мог адресовать только 16 Мбайт физической памяти, что делало вычислительные системы построенные на его основе аппаратно совместимым со предыдущими процессорами Intel 80286. В то же время, процессор 386SX мог выполнять все программы, написанные для 386DX и это сделало его популярным для изготовления "Турбо-плат", например, Cumulus 386SX, Intel InBoard или Orchid Tiny Turbo.

В рамках серии SX были выпущены процессоры с маркировками 80386SXTA, 80386SXSA, 80386SXLP, которые представляли собой встраиваемые (embedded) процессоры (серия SXSA), процессоры низкого потребления (Low Power), а также использовались в других целях.


2.3. 386SL

Первая модель этого семейства была представлена 15 жовтня 1990 года и имела частоту 20 МГц, позже была представлена модель 25 МГц (30 сентября 1991 года). Процессоры позиционировались как первые энергоэффективные микропроцессоры, специально предназначенные для портативных ПК. Семейство SL отличалось от семейства SX тем, что имело на кристалле также контроллер оперативной памяти, контроллер внешней кэш-памяти объёмом от 16 до 64Кбайт и контроллер шины.


2.4. 386EX

Представляет собой модификацию процессора 386SX. Процессор предназначался для встраиваемых приложений с высокой интеграцией и малой потребляемой мощностью. Ключевые особенности этого процессора - низкое энергопотребление, пониженное напряжение питания, расположенные на кристалле контроллер прерываний, микросхема выбора чипа, счётчики и таймеры, логика тестирования JTAG. Эта серия процессоров имела несколько модификаций: EXSA, EXTA, EXTB, EXTC. Максимальный ток потребляемый процессорами составляет 320 мА для процессоров серии EXTC и 140 мА для процессоров серии EXTB.

Использовался на борту различных орбитальных спутников и микроспутников и в NASA -овском проекте FlightLinux.

  • Intel i386DX, 25 МГц

  • Intel i386EXTC, 25 МГц

  • Intel i386CXSA, 25 МГц

  • Intel i386 упакованный фирмой IBM

  • Процессоры для upgrade (Cyrix and Texas Instruments)


3. Компьютеры на базе процессора Intel 80386

На основе микропроцессоров 80386 фирмой IBM были созданы персональные компьютеры IBM AT 386 (семейство PC) и IBM PS/2-80 (семейство PS/2). В первом применялась ОС PC-DOS, а во втором - OS/2.

4. Команда разработчиков

  • John Crawford, главный архитектор
  • Jim Slager, главный инженер
  • Patrick Gelsinger
  • Khaled El-Ayat
  • Riaz Haq
  • Gene Hill
  • Jan Wiliam L. Prak
  • David Vannier
  • Joseph "Chip" Krauskopf
  • Ken Shoemaker
  • Paul Ries
  • Saurabha Radhika

5. Технические характеристики различных моделей

5.1. Данные, относящиеся ко всем моделям

Характерисика, параметр 386DX 386SX 386SL 386EX
Дата анонса первой модели 13 жовтня 1985 года 16 червня 1988 года 15 жовтня 1990 года Серпень 1994 года
Тактовые частоты (МГц) 16, 20, 25, 33, 40 12(серия SXSA), 16, 20, 25, 33, 40(серии SXSA и SXTA) 20, 25 16, 20, 25, 33 (возможно существовали и другие модели)
Разрядность внешней шины данных 32 бит 16 біт 16 біт 16 біт
Разрядность внешней шины адреса 32 бит 24 біт 24 біт 26 бит
Объём физической адресуемой памяти 4 ГБ 16 Мбайт 16 Мбайт [ источник не указан 931 день ] 64 Мбайт (для серий EXTB, EXTC)
Напряжение питания, вольт 5 5 5 2,7~3,6 В (серия EXTB)
4,5~5,5В (серия EXTC)
Количество транзисторов 275000 275000 855000 275000
Техпроцес (нм) 1500 і 1000 (модель 33 МГц) 1500 і 1000 1000 800
Площа кристала 42 мм (для моделі 33 МГц) Немає даних Немає даних Немає даних
Максимально споживаний струм 0,39 А (модель 33 МГц) 0,38 А (модель 33 МГц) Немає даних Немає даних
Максимально споживана потужність, Вт 1,95 (модель 33 МГц) 1,9 (модель 33 МГц) Немає даних Немає даних
Роз'єм Гніздо типу "Socket" або припаюють до плати Процесор припаюють до плати Процесор припаюють до плати Процесор припаюють до плати
Корпус 132-контактний керамічний PGA, або 132-контактний PQFP 100-контактний PQFP 196-контактний PQFP 132-контактний PQFP, 144-контактний TQFP
Набір інструкцій x86 (150 інструкцій, не рахуючи модифікацій) x86 (150 інструкцій, не рахуючи модифікацій) x86 x86

Примітки

  1. Intel cashes in ancient chips - www.reghardware.co.uk/2006/05/18/intel_cans_386_486_960_cpus/ (Англ.) . Читальний - www.webcitation.org/618aFir9z з першоджерела 23 серпня 2011.
  2. Product Change Notification # 106013 - 00 - www.yeralan.org/agen/pdf/PCN106013.pdf
  3. короткий опис 80287 на cadcenter - cadcenter.ru/content/view/478/33 /
  4. BootPrompt-HOWTO у Linux - www.linuxrsp.ru/docs/BootPrompt-HOWTO-3.html: "Параметр завантаження ядра 'no387': У деяких співпроцесор i387 є помилки, які є найвищими в 32-бітовому захищеному режимі. Наприклад, деякі ранні чіпи ULSI-387 викликають жорстке зависання при обчисленнях з плаваючою комою, очевидно через помилки в командах FRSAV / FRRESTOR. Параметр завантаження `no387 'дозволяє Linux ігнорувати мат. співпроцесор, навіть якщо він є. Звичайно, у вас тоді має бути ядро ​​з підтримкою математичної емуляції. Це може бути також корисним, якщо у вас дійсно одна з старих 386 машин з 80287 FPU, так як Linux не може використовувати 80287. "; оригінал англійською - www.faqs.org/docs/Linux-HOWTO/BootPrompt- HOWTO.html
  5. Intel 80386 - www.lycos.com - www.lycos.com/info/intel-80386.html (Англ.) . Читальний - www.webcitation.org/618aGLOBn з першоджерела 23 серпня 2011.

Цей текст може містити помилки.

Схожі роботи | скачати
© Усі права захищені
написати до нас