Компьютер 386 когда появился
Архив Intel продолжает напоминать нам о знаменательных страницах истории компании — а их за прошедшие 50 с лишним лет было, как вы понимаете, немало. Сегодня мы перенесемся в середину восьмидесятых, а именно в 1985 год, когда Intel объявила о запуске своего нового процессора, получившего индекс 386.
Когда Intel в 1971 году изобрела первый микропроцессор, лишь немногие люди осознавали, какие последствия для всей электронной индустрии будет иметь этот факт. В самое кратчайшее время микропроцессор прошел путь от эскиза на чертежной доске до силы, создавшей целый новый сегмент рынка и разительным образом изменившей сущность компьютерной науки.
Так было написано в ежемесячном информационном листе Intel за октябрь 1985 года, выходившем для сотрудников компании. В нем же объявлялось, что 16 октября вышел новый процессор 80386, так же известный как i386 или просто 386 — первый 32-битный процессор Intel, содержащий 275 тысяч транзисторов. Это случилось, как вы понимаете, ровно 35 лет назад.
Официальном запуск i386 для прессы и вендоров состоялся в Музее де Янга, Сан Франциско, с участием Энди Гроува и других руководителей Intel.
Клод Леглиз (слева) и Жан-Клод Корне на фоне гигантской схемы процессора 80386
«386 — самый производительный коммерческий процессор из когда-либо создававшихся. Он работает со средней скоростью в 3-4 миллиона инструкций в секунду на частоте 16 мегагерц, что существенно выше, чем у ближайших конкурентов.» — утверждал Клод Леглиз, продакт-менеджер i386 по маркетингу.
Сегодняшние топовые процессоры Intel содержат более 7 миллиардов транзисторов и обрабатывает до 2 миллиардов инструкций в секунду, но 30 с лишним лет назад 386 был просто-таки ошеломляюще быстрым.
Инженеры Intel изучают схематику процессора i386
Во время официальной церемонии запуска президент Intel сказал: «у нас ведется совместная работа с 30 крупнейшими компьютерными производителями по созданию оборудования на базе i386. Названия этих компаний всем прекрасно знакомы». И это действительно так, сейчас мы знаем, что Энди имел в виду AT&T, Compaq, IBM, McDonnell Douglas и других.
Стоит отметить, что запуск процессора 80386 произошел через 6 дней после объявления Intel об уходе с рынка чипов памяти. Причиной ухода стало падение цен на DRAM и уменьшение прибыльности бизнеса. Этот драматический эпизод истории Intel описан в книге Энди Гроува «Выживают только параноики», соответствующий отрывок из которой мы когда-то публиковали в блоге.
Позже мероприятия, связанные с запуском 386, прошли в Токио, Лондоне, Париже и Мюнхене. Впервые в своей истории представлял не просто чип, а целое семейство продуктов, включавшее в себя материнские платы, сопроцессоры, компиляторы, операционные системы и так далее.
Центральный процессор представляет из себя сложную интегральную схему, которая является одним из ключевых составляющих элементов современного ПК. Первые компьютеры появились примерно в 40-х годах прошлого века, работая на электромеханических реле и вакуумных лампах. Они обеспечивали функционирование первых вычислительных машин. В 60-х годах появились первые интегральные микросхемы которые на долгое время стали неотъемлемой частью любого вычислительного устройства. Началом эпохи современных CPU можно смело назвать 1971-й год.
Intel 4004
Первым однокристальным микропроцессором считается 4-битный Intel 4004, вышедший 15 ноября 1971 года. Компания Intel только начинала свой путь становления и ее создатели, Роберт Нойс, Гордон Мур и Эндрю Гроув, потратили немало сил на процесс развития. Благодаря вкладу итальянского физика Федерико Фаджина, инженерам компании удалось разместить ключевые компоненты на один чип и создать микропроцессор 4004.
Intel 4004 производился по 10-мкм техпроцессу, насчитывал 2250 транзисторов и работал на частоте 108 кГц (проводил 92 600 операций в секунду). Частота синхронизации была 740 кГц. Объем памяти доходил до 4 Кб, разрядность шины — 4 бита. Площадь кристалла составляла 12 мм 2 .
Intel 8008
Одной из первых компьютерных систем на основе микропроцессора стал проект Sac State 8008 (1972 год). Это был полноценный микрокомпьютер с дисковой ОС, цветным дисплеем, ОЗУ 8 Кб и диском 3+2 Мб, клавиатурой, модемом, принтером. Он предназначался для обработки и хранения медицинских записей.
Intel 8080
За счет высокой производительности процессора пользовался успехом. На базе Intel 8080 компания MITS выпустила микрокомпьютер Altair-8800. Несмотря на скромные характеристики (256 байт оперативной памяти, отсутствие монитора и клавиатуры) он обрел небывалую популярность и раскупался очень быстро.
Существовало немало клонов Intel 8080 от других компаний, таких, как National Semiconductor, NEC, Siemens и AMD. Был и советский аналог от Киевского НИИ микроприборов — микропроцессор КР580ВМ80А (1977 год).
Motorola 6800
В 1974 году компания Motorola выпустила свой процессор — 6800. Кристалл производился по 6-мкм техпроцессу, с тактовой частотой 2 МГц и памятью 64 Кб. Использовалась технология N-МОП. Процессор имел 16-битную адресную шину и систему команд из 78 операций. Присутствовал индексный регистр.
Motorola 6800 был весьма популярным, он применялся во многих ПК. На базе его архитектуры были созданы микроконтроллеры Motorola 6801 и 6803.
MOS Technology 6502
Преимуществом данной модели была цена — всего $25 (в разы дешевле чем у Intel и Motorola). Это поспособствовало стремительному росту продаж процессора.
6502 использовался в таких ПК, как Apple I, Apple II, Commodore PET и т.д. Также процессоры данной серии нашел применение в видеоиграх, начиная с приставки Atari 2600, использующую модель 6507 с меньшим количеством выводов и возможностью адресации только 8 Кб памяти.
MOS Technology предоставили лицензии компаниями Rockwell, Synertek на производство процессоров и применение 6502. Существовал советский аналог 4К602ВМ1.
Zilog Z80
Во второй половине 70-х из Intel ушел один из создателей микропроцессора, итальянец Федерико Фаджин. Объединившись с инженером Ральфом Уингерманном и японским инженером Масатоси Симой они основали компанию Zilog. И уже в начале лета 1976 года на рынок вышел процессор Zilog Z80, который по своей архитектуре напоминал улучшенный 8080. У микропроцессора был расширен набор команд, появились новые регистры, режимы прерываний, два отдельных блока регистров.
Z80 производился по 3-мкм техпроцессу с использованием технологии КМОП, содержал 8500 транзисторов. Тактовая частота варьировалась в пределах 2,5 МГц — 8 МГц для основной версии и 1 МГц — 20 МГц для КМОП-версии. Объем памяти доходил до 64 Кб, с 16-битной адресной шиной. Размеры кристалла составляли 4,6 мм х 4,9 мм, с площадью 22,54 мм 2 . Помимо технических преимуществ, Z80 стоил к тому же дешевле интеловского процессора.
CPU выходил в разных вариантах: Z80 (2,5 МГц), Z80A (4 МГц), Z80B (6 МГц) и Z80H (8 МГц). Применялся в компьютерах Sharp, NEC и других.
Intel 8086 и 8088
В 1978 году компания Intel выпустила первый 16-битный микропроцессор 8086. Его разработка велась более двух лет. Процессор производился по 3-мкм техпроцессу, содержал 29 000 транзисторов. Объем памяти достигал 1 Мб. Тактовая частота составляла 4 МГц — 10 МГц, разрядность регистров и шины данных была 16 бит, а разрядность шины адреса — 20 бит. Intel 8086 отличался скоростью работы.
В процессоре 8086 насчитывалось четырнадцать 16-разрядных регистров: 4 общего назначения (AX, BX, CX, DX), 2 индексных регистра (SI, DI), 2 указательных (BP, SP), 4 сегментных регистра (CS, SS, DS, ES), программный счётчик или указатель команды (IP) и регистр флагов (FLAGS, включает в себя 9 флагов).
Процессор использовался в первой модели линейки IBM РС 5150 (1981 год). Многие крупные компании, вроде AMD, Siemens, NEC и других, клонировали 8088.
Zilog Z8000
В 1979 году компания Zilog выпустила свой 16 битный микропроцессор Z8000. Он производился по 6-мкм — 3-мкм техпроцессу с количеством транзисторов 17500. Тактовая частота варьировалась от 4 МГц до 10 МГц для основной версии и от 4 МГц до 20 МГц для КМОП. Объем памяти достигал 8 Мб для Z8001 и 64 Кб для Z8002. Разрядность шины данных была 16 бит, а шины адреса — 23 бит (в версии Z8002 — 16 бит).
Изначально были выпущены две версии процессора: Z8001 и Z8002. Их различия заключались лишь в том, что первый работал с адресацией до 8 Мб памяти, а второй — лишь до 64 Кб. Несколько позже появились модели Z8003 и Z8004, которые умели работать с виртуальной памятью.
Процессоры Z8000 применялись в настольных Unix-компьютерах, позволяющих создавать настоящие многопользовательские системы.
Motorola 68000
Серия CISC-микропроцессоров Motorola 68000 (68к) была представлена в 1979 году. Кристалл имел 32-битное ядро, но работал посредством 16-битных шин данных и 24-разрядной шиной адресов. Его частота составляла 8 МГц — 20 МГц, а количество транзисторов насчитывало 68 000 штук. CPU производился в форм-факторе DIP с 64 контактами. Но также существовали модели с разъемами LCC и PGA.
Процессор приобрел популярность у многих компаний и применялся в различных ПК. Но конечно, наиболее известными являются компьютеры Apple: Lisa и Macintosh.
Intel 80186
Следующим процессором Intel стал 80186, в основе которого лежала архитектура 8086. Он производился по 3-мкм техпроцессу и содержал 134 000 транзисторов. Объем памяти составлял 1 Мб, разрядность шины данных была 16-бит, а шины адреса — 20-бит. Тактовая частота достигала 6 МГц — 25 МГц.
В 80186 добавились новые команды:
— два контроллера прямого доступа к памяти со схемами прерываний (DMA);
— дешифраторы адреса;
— трех-канальный программируемый таймер-счетчик;
— генератор синхронизации;
— программируемый контроллер прерываний.
Процессоры мало применялись в компьютерах, только в некоторых моделях ПК, вроде Compis (Швеция), RM Nimbus (Великобритания), Unisys ICON (Канада), HP 200lx (США), и Tandy 2000 (США).
Intel 80286
Следующая модель компании вышла в феврале 1982 года. Это был 16-битный x86-совместимый микропроцессор второго поколения 80286. Имелась поддержка реального режима. В защищенном режиме емкость адресного пространства могла составлять до 1 Гб за счет изменения механизма адресации памяти.
По техническим характеристикам процессор превосходил предыдущую модель. Он выпускался по 1,5-мкм техпроцессу с количеством транзисторов в 134 000 штук. Объем оперативной памяти составлял 16 Мб, а в защищенном режиме можно было использовать до 1 Гб виртуальной памяти. Разрядность регистров и шины данных составляла 16-бит. В зависимости от модели, тактовая частота могла быть 6 МГц, 8 МГц, 10 МГц или 12,5 МГц (при 12,5 МГц процессор выполнял не менее 2,66 млн операций в секунду).
WDC W65C816S
В 1984 году компания Western Design Center (WDC) выпустила 16-битный микропроцессор W65C816S. В модели была 24-битная адресация памяти и поддерживалось до 16 Мб памяти с произвольным доступом, а также присутствовал расширенный набор инструкций.
Процессор применялся в компьютере Apple IIGS, а также системах Acorn Communicator и C-One.
Intel i386
В 1985 году вышел 32-битный процессор с архитектурой x86 третьего поколения Intel 80386 (или i386). Процессор сохранил обратную совместимость с 8086 и 80286. Производился по 1,5-мкм — 1,0-мкм техпроцессу. Через страничное преобразование процессор мог адресовать до 4 Гб физической памяти и до 64 Гб виртуальной памяти. Тактовая частота составляла 12 МГц — 40 МГц.
Процессор Intel i386 представлялся в разных модификациях, отличающихся между собой производительностью, потребляемой мощностью, разъемами, корпусами и другими характеристиками. Модели: 386DX (DX — Double-word eXternal), 386SX, 386SL и 386EX (модификация процессора 386SX).
Первым компьютером, использующим процессор, стал Compaq Deskpro 386. Также модель была первым 32-разрядным процессором для настольных и портативных IBM PC.
У i386 было довольно много клонов, которые производились компаниями AMD, Cyrix и IBM. Топовая модель компании AMD была Am386DX, которая не уступала в производительности, стоила дешевле и имела тактовую частоту 40 МГц. Клоны компании Cyrix 86SLC и 486DLC также хорошо воспринялись пользователями. Наиболее известные клоны компании IBM были процессоры 386SLC и 386DLC, которые использовались в настольных компьютерах IBM PS/2 и PS/ValuePoint.
Intel i486
Процессор дополнился:
— кэш-памятью (8 Кб);
— вычислительным конвейером, который занимался разделением обработки компьютерной инструкции на последовательность независимых стадий с сохранением результатов в конце каждой из них. Конвейер включал в себя выборку, декодирование, декодирование адресов операндов, выполнение команды и запись результата выполнения инструкции;
— встроенным сопроцессором (модулем операций с плавающей запятой), помогающим выполнять математические операции над вещественными числами;
— коэффициентом умножения (множителем).
Разные компании также копировали Intel i486, как и предыдущие модели. Производством клонов занимались AMD, Cyrix, IBM, Texas Instruments и другие.
Motorola 68020, 68030, 68040
С 1984 по 1990 годы компания Motorola выпустила линейку своих 32-битных процессоров: 68020, 68030, 68040. «Пионер» i386 (68020) производился по 2-мкм техпроцессу и насчитывал 190 000 транзисторов. Его тактовая частота составляла 12 МГц — 33 МГц. 68020 стал первым процессором в линейке Motorola 68k со встроенной кэш-памятью первого уровня (объем 256 байт).
Процессор применялся в компьютерах Apple: Macintosh II и Macintosh LC.
Motorola 68030 также применялся в компьютерах Apple Macintosh II и Commodore Amiga, в системах Next Cube, Sun 3/80, Atari TT и Atari Falcon.
В 1990 году на рынок вышел процессор 68040. В нем появился встроенный сопроцессор. Объем кэша-памяти инструкций и кэш-памяти данных увеличился до 4 Кб. Принцип работы процессора основывался на вычислительных конвейерах, которые состояли из шести стадий. Тактовая частота достигала 40 МГц.
Процессор 68040 стал основой High-End-системы Macintosh Quadra. Macintosh Centris и Performa также использовали процессоры семейства 68040.
DEC VAX
В период с 80-х по 90-е компания DEC выпустила целую серию 32-битных процессоров, которые базировались на собственной архитектуре VAX (32-битная компьютерная архитектура, была разработана Digital Equipment Corporation в рамках проекта Star).
Первым в серии был MicroVAX 78032. Он изготавливался по 3-мкм техпроцессу и содержащий 125 000 транзисторов, работал на частоте 5 МГц.
В 1987 году был представлен чипсет CVAX, тактовая частота которого составляла 11,11 МГц или 12,5 МГц. Производился процессор с помощью технологии CMOS первого поколения, общий объем кэш-памяти инструкций и данных составлял 1 Кб и поддерживалось 64 Кб внешней кэш-памяти.
NEC V60, V70, V80
Отдельного упоминания достойны процессоры внутреннего рынка Японии.
Первый 32-битный процессор V60 был выпущен компанией NEC в 1986 году. Производился этот CPU по 1,5-мкм техпроцессу и насчитывал 375 000 транзисторов. Он использовал вычислительные конвейеры с шестью стадиями, а также имел встроенный сопроцессор и блок управления памятью. Тактовая частота достигала 16 МГц.
В 1987 году вышел V70, который со временем начал производиться по 1,2-мкм техпроцессу. Тактовая частота составляла 20 МГц. При такой скорости работы производительность чипа доходила до 6,6 млн инструкций в секунду.
В 1982 году компания Intel представила микропроцессор 80286, который стал первым чипом семейства x86, получившим полностью раздельные шины адреса и данных, а также защищённый режим и встроенные возможности управления памятью. Таким образом, благодаря этому процессору IBM-совместимые системы впервые получили возможность запуска сложных операционных систем с поддержкой многозадачности и защиты памяти.
Однако у 80286 было несколько проблем. Во-первых, единственным способом переключиться из защищённого режима обратно в реальный режим была перезагрузка компьютера. Во-вторых, DOS-программы могли выполняться в защищённом режиме только при выполнении большого количества условий, которые в реальных приложениях нарушались почти всегда. И если изначально предполагалось, что операционные системы OS/2 (совместная разработка IBM и Microsoft) и FlexOS 286 (разработанная компанией Digital Research) смогут одновременно запускать несколько DOS-приложений, то описанные выше ограничения поставили на этих планах крест. То же самое относилось и к Windows. Именно поэтому Билл Гейтс в своё время назвал 80286 «безмозглым процессором».
В 1985 году Intel представила процессор 80386, который стал первым 32-битным процессором семейства x86. Помимо расширения разрядности, в 80386 появился страничный доступ к памяти (что сделало возможным реализацию операционных систем с поддержкой виртуальной памяти). В защищённом режиме процессор эмулирует плоскую модель доступа к памяти, за счёт чего для приложений вся память (как физическая, так виртуальная) выглядит как единое адресное пространство. Ещё одним нововведением 80386 стал режим виртуального 8086 — по сути, один из ранних вариантов аппаратной виртуализации. В этом режиме эмуляция процессора 8086 работает как задача в защищённом режиме. Соответственно, пользователь может запускать программы, предназначенные для реального режима, параллельно с приложениями, работающими в защищённом режиме. Именно этот факт позволил Microsoft реализовать многозадачность для DOS-приложений в оболочке Windows 3.x и операционных системах Windows 95/98/ME.
Первые версии 80386 содержали 275000 транзисторов, то есть были практически на порядок более сложными, чем 8086. Планировалось, что изначально тактовая частота процессора составит минимум 16 МГц, однако из-за сложности чипа выход годных экземпляров, способных работать на такой частоте, был невысоким, поэтому нижний порог был снижен до 12 МГц. Впоследствии были выпущены процессоры 80386 с тактовой частотой 16, 20, 25 и 33 МГц.
Модели
С 1985 года было выпущено множество модификаций процессора i386, отличающихся между собой производительностью, потребляемой мощностью, разъёмами и корпусами и прочими характеристиками.
Викторина «50 лет закону Мура»
В этот раз мы предлагаем вам совершенно необычный конкурс, напоминающий закон Мура в действии. В течение двух недель мы проведем 5 викторин. По одной каждые три дня. И с каждым новым конкурсом количество разыгрываемых призов будет. удваиваться!
Intel 80386 (также известный как i386 или просто 386) — 32-битный x86-совместимый процессор третьего поколения фирмы Intel выпущенный 17 октября 1985 года. Данный процессор был первым 32-разрядным процессором для IBM PC-совместимых ПК. Применялся, преимущественно, в настольных ПК и портативных ПК (ноутбуки и лэптопы).
Оглавление документа
Другие изменения
Линии данных и адресов в процессоре 80386, как и в процессоре 80286, не мультиплексируются: имеется 32 линий данных и 32 независимых от них линии адреса.
Страничное преобразование
В i386 был введен новый механизм управления памятью — адресное пространство, к которому обращается процессор за данными и кодом, в котором располагаются сегменты (названное линейным адресным пространством) может не соответствовать реальной физической памяти. Физическая память (включая буферы внешних устройств, например видеобуфер) может быть отображена в линейное адресное пространство произвольным образом — каждая страница (размером 4 килобайта) линейного пространства может быть переадресована на любую страницу физической памяти через каталог страниц, располагающийся в оперативной памяти (адрес каталога страниц определяется значением нового регистра управления «CR3»).
Как и сегменты, страницы линейного адресного пространства могут быть объявлены неприсутствующими (обращение к таким страницам вызывает обработчик страничного нарушения операционной системы). Неприсутствующие страницы, в первую очередь, используются, для организации виртуальной памяти — обработчик страничного нарушения осуществляет свопинг страниц памяти с внешними запоминающими устройствами. Также, неприсутствующие страницы используются в плоской модели памяти (где размер сегмента обычно имеет размер от 2 до 4 гигабайт, даже если у компьютера не имеется столько физической памяти) для маркировки страниц сегмента, в которые операционная система не выделила памяти. В этом случае, страничное нарушение, обычно, завершает задачу или начинает ее отладку.
Через страничное преобразование i386 может адресовать до 4 Гбайт физической памяти и до 64 Тбайт виртуальной памяти.
Набор инструкции
Набор инструкций 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 байта.
Викторина «50 лет закону Мура»
В этот раз мы предлагаем вам совершенно необычный конкурс, напоминающий закон Мура в действии. В течение двух недель мы проведем 5 викторин. По одной каждые три дня. И с каждым новым конкурсом количество разыгрываемых призов будет. удваиваться!
На смену Intel 8008 пришла модель 8080, которая содержала 4500 транзисторов и которую часто называют «первым в мире микропроцессором, пригодным к использованию». Ключевым отличием 8080 от 8008 стали раздельные шины инструкций и адреса, что (вкупе с архитектурными усовершенствованиями) позволило существенно повысить производительность при той же тактовой частоте. Вскоре после выхода Intel 8080 была выпущена модель 8085 (6500 транзисторов). Этот процессор был совместим со своим предшественником на бинарном уровне, но при этом в нём были реализованы некоторые функции, которые раньше можно было реализовать только при помощи внешней логики. За счёт этого компьютеры на основе 8085 требовали меньшего количества компонентов и были дешевле в производстве.
В 1975 году Intel начала работу над 32-битным микропроцессором iAPX432, который в конце концов увидел свет только в 1982 году. Практически одновременно с этим началась работа над более простым 16-битным микропроцессором, который должен был стать временным решением и существовать до момента выхода iPAX432 на рынок.
Кристалл микропроцессора Intel 8086
Это «временное» решение получило имя Intel 8086 и стало самым популярным микропроцессором своего времени. Данный чип содержал 29500 транзисторов (то есть был на порядок сложнее предшествующих решений), а его набор инструкций был полностью 16-разрядным. Что немаловажно, 8086 был совместим с 8008, 8080 и 8085 на уровне исходного кода; иными словами, разработчики могли автоматически конвертировать ассемблерный код для более ранних процессоров Intel в код для Intel 8086. Как тогда было принято, процессор содержал только блок для работы с целыми числами (арифметико-логическое устройство, АЛУ), но разработчики изначально предусмотрели возможность подключения математического сопроцессора 8087, предназначенного для работы с числами с плавающей точкой.
386DX
Первый процессор семейства 386 выпущен 17 октября 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».
Виртуальный режим
В процессоре i386 компания Intel учла необходимость лучшей поддержки реального режима, потому что программное обеспечение времени его появления не было готово полностью работать в защищенном режиме. Поэтому, например, в i386, возможно переключение из защищенного режима обратно в реальный (при разработке 80286 считалось, что это не потребуется, поэтому на компьютерах с процессором 80286 возврат в реальный режим осуществляется схемно — через сброс процессора).
В качестве дополнительной поддержки реального режима, i386 позволяет задаче (или нескольким задачам) защищенного работать в виртуальном режиме — режиме эмуляции режима реального адреса (таким образом в переключении в реальный режим уже нет необходимости). Виртуальный режим предназначается для одновременного выполнения программы реального режима (например, программы DOS) под операционной системой защищенного режима.
Выполнение в виртуальном режиме практически идентично реальному, за несколькими исключениями, обусловленными тем, что виртуальная задача выполняется в защищенном режиме:
- виртуальная задача не может выполнять привилегированные команды, потому что имеет наинизший уровень привилегий
- все прерывания и исключения обрабатываются операционной системой защищенного режима (которая, впрочем, может инициировать обработчик прерывания виртуальной задачи)
вместе с тем, в задаче виртуального режима можно использовать:
- страничное преобразование, например, для:
- расширения памяти, путем включения страниц в неиспользуемое адресное пространство
- эмуляциии расширений с переключением банков (например, EMS-памяти)
- виртуальной развертки или свертки буферов внешних устройств (видеопамять, аппаратная EMS-память)
Например, начиная с версий 4.01 — 5.0, при использовании менеджера памяти EMM386 (и его аналогов других разработчиков) операционная система MS-DOS работает как задача в виртуальном режиме. EMM386, в этом случае является подобием операционной системы защищенного режима (передавая большинство системных событий ядру MS-DOS в виртуальной задаче).
Режим виртуального 8086 поддерживается и в последующих 32-битных процессорах x86, вплоть до режима совместимости в x 86–64 .
Компьютеры на базе процессора Intel 80386
На основе микропроцессоров 80386 фирмой IBM были созданы персональные компьютеры IBM AT 386 (семейство PC) и IBM PS/ 2–80 (семейство PS/2). В первом применялась ОС PC-DOS, а во втором — OS/2.
386SX
Первая модель этого семейства была представлена 16 июня 1988 года и имела частоту 16 МГц, позже были представлены и более быстрые модели: 20МГц (25 января 1989 года), 25МГц и 33МГц (оба процессора представлены 26 октября 1992 года). Процессоры позиционировались как решения для настольных ПК начального уровня и портативных ПК. Семейство SX отличалось от семейства DX тем, что у него разрядность внешней шины данных составляла 16 бит, а разрядность внешней шины адреса 24 бит. В результате чего процессор мог адресовать только 16Мбайт физической памяти, что делало его совместимым со старыми процессорами (Intel 80286). С другой стороны, процессор 386SX мог выполнять все программы, написанные для 386DX, и наоборот. Это сделало его популярным для изготовления «Турбо-плат», например, Cumulus 386SX, Intel In Board ? или Orchid Tiny Turbo.
В рамках серии SX были выпущены процессоры с маркировками 80386SXTA, 80386SXSA, 80386SXLP, которые представляли собой встраиваемые (embedded) процессоры (серия SXSA), процессоры низкого потребления (Low Power), а так же использовались в других целях.
386EX
Представляет собой модификацию процессора 386SX. Процессор предназначался для встраиваемых приложений с высокой интеграцией и малой потребляемой мощностью. Ключевые особенности этого процессора — низкое энергопотребление, пониженное напряжение питания, расположенные на кристалле контроллер прерываний, микросхема выбора чипа, счётчики и таймеры, логика тестирования JTAG. Эта серия процессоров имела несколько модификаций: EXSA, EXTA, EXTB, EXTC. Максимальный ток потребляемый процессорами составляет 320мА для процессоров серии EXTC и 140мА для процессоров серии EXTB.
Использовался на борту различных орбитальных спутников и микроспутников и в NASA-овском проекте Flight Linux ?.
386SL
Первая модель этого семейства была представлена 15 октября 1990 года и имела частоту 20 МГц, позже была представлена модель 25МГц (30 сентября 1991 года). Процессоры позиционировались как первые микропроцессоры специально предназначенные для портативных ПК. Семейство SL отличалось от семейства DX тем, что имел в кристалле также контроллеры оперативной памяти, кэш-памяти до 64Кбайт и шины.
Выход на рынок
Несмотря на передовые технические характеристики, процессор 80386 был прохладно воспринят IBM, которая на тот момент оставалась лидером рынка ПК. Компьютер с 32-разрядным процессором, способный адресовать до 4 ГБ оперативной памяти и запускать сразу много приложений в многозадачном режиме, был слишком похож на гораздо более дорогие мейнфреймы и миникомпьютеры IBM. Именно поэтому компания решила попросту игнорировать новинку и ограничиться процессором 286 для своих PC.
Но, как это часто бывает, природа не терпит пустоты, поэтому жёлтую майку лидера-инноватора решила примерить молодая и амбициозная компания Compaq. Выпущенный в октябре 1985 года Compaq Desqpro 386 стал самым быстрым персональным компьютером в мире на тот момент, хитом продаж и любимцем всех обозревателей. И хотя для массового пользователя эпоха 32-битных вычислений не наступила вплоть до выхода Windows 95, требовательные приложения (особенно игры) очень быстро начали использовать усовершенствованный защищённый режим процессора. Появился даже целый класс системных утилит — «расширителей DOS» (DOS Extenders), которые позволяли создавать DOS-приложения, работающие в защищённом режиме. Самым популярным из них был DOS/4G (позже переименованный в DOS/4GW), использовавшийся большинством компьютерных игр.
Интересный факт: с выходом 80386 компания Intel решила отказаться от практики лицензирования своих процессоров сторонним производителям. Вместо этого производство 80386 было запущено одновременно на трёх фабриках, а Энди Гроув, который к тому моменту уже стал главным исполнительным директором Intel, сумел убедить покупателей, что этого достаточно для обеспечения бесперебойных поставок процессора. В результате Intel в одночасье превратилась из «одного из многих поставщиков процессоров» в ключевого игрока PC-индустрии. Одновременно с этим компания приняла решение отказаться от производства памяти и полностью переориентироваться на производство процессоров. Как показала практика, это было очень мудрое решение, поскольку во второй половине 1980-х выход на этот рынок японских полупроводниковых компаний и кризис перепроизводства привели к резкому падению цен на микросхемы памяти и финансовым проблемам производителей памяти.
Выход на рынок
Несмотря на передовые технические характеристики, процессор 80386 был прохладно воспринят IBM, которая на тот момент оставалась лидером рынка ПК. Компьютер с 32-разрядным процессором, способный адресовать до 4 ГБ оперативной памяти и запускать сразу много приложений в многозадачном режиме, был слишком похож на гораздо более дорогие мейнфреймы и миникомпьютеры IBM. Именно поэтому компания решила попросту игнорировать новинку и ограничиться процессором 286 для своих PC.
Но, как это часто бывает, природа не терпит пустоты, поэтому жёлтую майку лидера-инноватора решила примерить молодая и амбициозная компания Compaq. Выпущенный в октябре 1985 года Compaq Desqpro 386 стал самым быстрым персональным компьютером в мире на тот момент, хитом продаж и любимцем всех обозревателей. И хотя для массового пользователя эпоха 32-битных вычислений не наступила вплоть до выхода Windows 95, требовательные приложения (особенно игры) очень быстро начали использовать усовершенствованный защищённый режим процессора. Появился даже целый класс системных утилит — «расширителей DOS» (DOS Extenders), которые позволяли создавать DOS-приложения, работающие в защищённом режиме. Самым популярным из них был DOS/4G (позже переименованный в DOS/4GW), использовавшийся большинством компьютерных игр.
Интересный факт: с выходом 80386 компания Intel решила отказаться от практики лицензирования своих процессоров сторонним производителям. Вместо этого производство 80386 было запущено одновременно на трёх фабриках, а Энди Гроув, который к тому моменту уже стал главным исполнительным директором Intel, сумел убедить покупателей, что этого достаточно для обеспечения бесперебойных поставок процессора. В результате Intel в одночасье превратилась из «одного из многих поставщиков процессоров» в ключевого игрока PC-индустрии. Одновременно с этим компания приняла решение отказаться от производства памяти и полностью переориентироваться на производство процессоров. Как показала практика, это было очень мудрое решение, поскольку во второй половине 1980-х выход на этот рынок японских полупроводниковых компаний и кризис перепроизводства привели к резкому падению цен на микросхемы памяти и финансовым проблемам производителей памяти.
Первый IBM PC
В конце 70-х годов IBM была признанным лидером рынка мейнфреймов. Однако растущие продажи персональных компьютеров и в частности успех Apple II заставили компанию обратить внимание на рынок ПК. Специально для создания микрокомпьютера (как тогда было принято их называть) IBM была создана отдельная рабочая группа, которой была предоставлена полная свобода в принятии решений о характеристиках и архитектуре проекта «Шахматы» (project Chess — именно таким было кодовое имя IBM PC во время разработки).
IBM PC (Model 5150) был выпущен на рынок в августе 1981 года. Компьютер оснащался процессором Intel 8088, оперативной памятью объёмом вплоть до 256 КБ и одним или двумя дисководами для 5-дюймовых дискет. IBM PC сразу же стал настоящим хитом, поскольку он сочетал отличную для своего времени производительность, продуманную архитектуру, широкие возможности расширения и престиж имени IBM.
ПК IBM Model 5150 с монитором IBM Model 5151
Ключевым компонентом успеха IBM PC стала его открытая архитектура: IBM выпустила подробную документацию по разработке программ, плат расширения и периферии для PC, чем создала гигантский рынок комплектующих и программного обеспечения. А сам IBM PC стал самым клонируемым компьютером своего времени, особенно после того как компании Phoenix и American Megatrends разработали «чистые» с легальной точки зрения клоны BIOS оригинального PC (т. к. именно BIOS был единственной проприетарной и закрытой частью компьютера).
Чип-долгожитель
У процессора 80386 была долгая и счастливая жизнь. В 1988 году была выпущена его удешевлённая версия 80386SX, которая отличалась от DX-версии разрядностью шины данных (16 бит против 32). Подобное упрощение позволило использовать с 80386SX наборы системной логики для процессора 80286, что было актуально для недорогих систем. Даже после выхода процессора 80486 (P4) топовые варианты 80386 (с тактовой частотой 33 МГц) часто использовались энтузиастами как более дешёвое и проверенное временем решение.
В середине девяностых 80386 был окончательно вытеснен из компьютеров более производительными чипами. Однако в качестве процессора для встроенных решений он выпускался вплоть до 2007 года и даже успел стать основой некоторых смартфонов, включая Blackberry 950 и Nokia 9000 Communicator.
Nokia 9000 Communicator на базе процессора Intel 80386EX
80386 интересен ещё и тем, что после него базовый набор команд процессоров Intel оставался практически неизменным в течение 18 лет — вплоть до появления 64-битных расширений для x86 в 2003 году.
Улучшенная поддержка многозадачности и защиты
Поддержка многозадачности в процессорах x86 обозначает аппаратную поддержку «прозрачного» переключения с одной обычной программы (задачи) на другую. При переключении процессор сохраняет свое состояние (включая адрес следующей команды, селекторы сегментов) в сегменте состояния (TSS; сегмент памяти, с селектором из регистра TR) одной задачи, после чего восстанавливает состояние другой задачи из ее сегмента состояния (селектор сегмента состояния новой задачи загружается из дескриптора ее сегмента кода).
Переключение между задачами обычно осуществляется:
- прерыванием таймера; время, на которое настроен таймер, называется квантом времени для задачи
- системным вызовом (вызовом функции операционной системы)
- исключением — например, при попытке выполнить недопустимую команду или обращении к неприсутствующей памяти
- отладкой
В i386 механизмы защиты и многозадачности были значительно расширены и улучшены. В зависимости от характера нарушений, они могут тихо игнорироваться (например, некоторые биты регистра EFLAGS нельзя изменить загрузкой флагов из стека), вызывать обработчик исключения (операционной системы). Серьезные ошибки на уровне операционной системы (или в реальном режиме) могут привести процессор в режим аварийного останова (например, при нарушении в обработчике двойного нарушения), из которого можно выйти только аппаратным сбросом (англ. reset) процессора.
Например, i386 поддерживает ограничение доступа к портам ввода-вывода и флагу запрещения прерываний через:
- назначение необходимого уровня привилегий для выполнения таких команд (двухбитным полем IOPL регистра флагов)
- разрешением задаче выборочного доступа к портам ввода-вывода через битовую карту в сегменте состояния задачи
Попытка исполнения неразрешенной команды ввода-вывода, приводит к исключению, обработчик которого (принадлежащий операционной системе) может завершить задачу по ошибке, игнорировать (возобновить выполнение со следующей команды) или эмулировать ввод-вывод.
Кроме всего многозадачность i386 полностью поддерживает все новые возможности — для 32-битных задач сегмент состояния содержит все 32-битные и необходимые новые регистры (например, регистр CR3 с адресом каталога страниц для этой задачи).
Сопроцессор
Специально для микропроцессоров Intel 80386 были разработаны математические сопроцессоры 387SX и 387DX, объединяемые единым наименованием 80387. Эти сопроцессоры совместимы с процессорами 386SX и 386DX соответственно; так, сопроцессор 387DX возможно подключить к 32-разрядной шине процессора. В остальном, обе модели аналогичны математическому сопроцессору 80287, который также можно использовать вместе с процессором 80386.
Клоны Intel 8088 и 8086
Корпоративные правила IBM требовали, чтобы все компоненты были доступны более чем от одного поставщика. Именно поэтому Intel продавала лицензии на производство ранних процессоров семейства x86 различным компаниям (AMD, NEC и так далее). Даже сама IBM приобрела такую лицензию.
К слову, клон процессора 8086 (под названием КР1810ВМ86) производился даже в Советском Союзе.
Описание
Процессор i386 полностью совместим со своими предшественниками — процессорами 80 86–802 86. Он выполняет программы, предназначенные для них без необходимости модификации кода и перекомпиляции (или с минимальными модификациями) и делает это более эффективно:
- затрачивает на выполнение меньшее число тактов синхронизации
- имеет более высокие тактовые частоты, за счет использования новых технологий
- имеет увеличенный, по сравнению с предыдущими процессорами буфер предвыборки команд — 16 байт (которых хватает примерно на пять команд); буфер предвыборки обеспечивает меньшее количество обращений за командами и исключает лишние обращения в память в коротких циклах и выполнении строковых команд
- первым из процессоров x86 имеет встроенную кэш-память, обеспечивающую меньшее количество обращений в память при последовательном чтении и данных, а также обращении к одним и тем же данным
Вместе с тем i386 является серьезной переработкой процессора 80286. По некоторым оценкам, ни до, ни после i386, архитектура процессоров x86 ни разу не переделывались столь кардинально. Современные операционные системы называют аппаратную платформу PC-совместимых компьютеров никак не иначе как «i386», потому что не способны работать на процессорах ниже этого.
Изобретение процессоров Intel 80386 и Intel 80286 было большим шагом в улучшении архитектуры и производительности процессоров фирмы Intel, сейчас эти процессоры морально устарели и в основном используются в контроллерах, а так же в бытовой технике.
Основные изменения:
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 могло выполняться только на уровне сегментации. Только появление новой модели управления памятью — страничного преобразования, обеспечило плоской модели ее сегодняшнюю популярность.
Плоская модель вошла в обиход столь широко, что современные программисты, зачастую, и не подозревают что программы обращаются в память через сегменты.
Аппаратная отладка
Как и в предыдущих процессорах (начиная с 8086), отладка в i386 осуществляется вызовом отладочного прерывания, обработчик которого передает управление программе-отладчику. В предыдущих процессорах отладка могла быть вызвана двумя событиями:
- пошаговое выполнение
- программные точки останова
в i386 отладку также могут начать:
- аппаратные точки останова
- ловушка переключения задачи
Пошаговое выполнение
Пошаговое выполнение или трассивка (вызов отладочного прерывания после выполнения каждой команды при установленном флаге TF) в i386 осталось таким же как и в предыдущих процессорах, работая во всех новых режимах (32-битной адресации и режиме виртуальной задачи).
Точки прерывания
Точка прерывания (англ. breakpoint) — прекращение выполнения программы по достижении определенной команды.
В ранних процессорах x86 для организации точки останова, было необходимо заменить первый байт команды на команду вызова отладочного прерывания (int 3), вызов прерывания возвращал управление отладчику, который возвращал исходное значение первого байта команды. Кроме всего, точки останова такого рода было невозможно устанавливать в ПЗУ. i386 поддерживает такие точки останова для совместимости.
Точки прерывания i386 определяются адресом в регистрах отладки. Обработчик отладки вызывается, если адрес следующей команды совпадает с адресом в регистре. В связи с тем, что такие точки прерывания не требуют записи в память, они могут использоваться для отладки программ в ПЗУ. i386 позволяет одновременно устанавливать до четырех точек прерывания.
Точки прерывания i386, также могут быть установлены на обращение (чтение или запись) к переменной по заданному адресу в памяти. Процессор вызывает обработчик отладки при обращении команды к памяти по заданному адресу.
Ловушка переключения задачи
Отладочное прерывание может быть вызвано при переключении на задачу (для этого в сегменте состояния задачи предусмотрен специальный бит).
Регистры
Читайте также: