Еще большее изумление вызвала возможность адресовать 1 Мбайт оперативной памяти, используя шестнадцатиразрядную шину данных. Фактически, такими возможностями тогда обладали большие вычислительные машины. В то время, например, размер оперативной памяти в 64 Кбайт казался верхом совершенства.
Можно сказать, что появление первого шестнадцатиразрядного процессора, который позволял использовать столько оперативной памяти, хотя это и было преждевременно, открывало перед программистами колоссальное поле деятельности. То есть в руки рядовых программистов попадал компьютер, не уступавший по своим возможностям труднодоступным машинам вычислительных центров.
Понимая, что шестнадцатиразрядная шина появилась преждевременно, т. к. требовала удвоенного количества интерфейсных микросхем, в июне 1979 г. корпорация Intel объявила о выпуске процессора 8088. Разница между ним и процессором 8086 состояла в том, что разрядность шины данных была сокращена до 8 битов. Это позволяло сохранять некоторую преемственность между конструкциями на восьмиразрядных процессорах и первыми процессорами линейки х86. Естественно, уменьшалась цена компьютеров, собранных на процессоре 8088, что, в общем-то, и определило успех компьютера IBM PC и его клонов.
Процессор 8088 выпускался с тактовыми частотами 5 МГц (0,33 млн. операций в секунду) и 8 МГц (0,75 млн. операций в секунду). Все остальные параметры соответствовали его предшественнику.
По мере снижения стоимости интерфейсных микросхем и увеличения их сложности процессор 8088 уступил место в компьютерах своему предку.
Процессор 80186
Для применения в различных контроллерах корпорацией Intel на базе процессора 8086/8088 в 1982 г. были выпущены процессоры 80186/80188, у которых на одном кристалле находился не только центральный процессор, но и периферийные устройства. Так как предполагалось использовать эти микропроцессоры в качестве встроенных интеллектуальных устройств для самых различных промышленных систем, то интегрированные в него периферийные устройства имели интерфейсы, не совместимые со спецификацией IBM PC.
На кристалле процессора 80186/80188 удалось расположить контроллеры прерываний и прямого доступа к памяти, трехканальный таймер и генератор синхроимпульсов. Процессоры 80C186/80C188, изготовленные по более современной технологии, имели не только пониженную потребляемую мощность, но и систему управления энергопотреблением.
Присутствие на одном кристалле всех необходимых периферийных устройств позволило использовать эти микропроцессоры для управления самыми разнообразными устройствами. Например, модемы фирмы U.S. Robotics не в малой степени обязаны своей популярностью именно применением в них микропроцессоров 80186/80188. Это позволило не только удешевить конструкцию и повысить надежность работы сложного электронного устройства, но и очень быстро, за счет смены микропрограммы, выпускать на рынок новые типы модемов.
Процессор 80286
Второе поколение 16-битных процессоров в линейке x86 – это 80286, о котором объявили в феврале 1982 г. Для него впервые стало использоваться сокращенное обозначение – 286-й процессор (подобная практика использовалась потом и для процессоров 80386 и 80486, кстати, Pentium – это тот же 586).
Хотя процессор 80286 получился со многими недоработками и в большинстве случаев использовался как быстрый 8086, его появление обеспечило победу IBM PC совместимым компьютерам и операционной системе MS-DOS в конкурентной борьбе с другими фирмами.
Процессор 80286 (рис. 2.6) выпускался с тактовыми частотами 6, 10 и 12 МГц, что составляло скорость выполнения 0,9, 1,5 и 2,66 млн. операций в секунду. Количество транзисторов превысило 134 000 (использовалась технология 1,5 мкм).
Рис. 2.6. Процессор 80286
Основная задача, которую хотели решить инженеры корпорации Intel, – это создание процессора для многопользовательских и многозадачных систем. Для этого в процессор была встроена четырехуровневая система защиты, механизм переключения задач и поддержка виртуальной памяти. Режим работы с такими возможностями был назван защищенным режимом виртуальной адресации (Protected Virtual Address Mode), сегодня для него используется термин – «защищенный режим» (Protected Mode). В этом режиме работают все многозадачные операционные системы, в том числе и Windows.
Суть этого режима вот в чем. Многопользовательский режим в однопроцессорных компьютерах реализуется на принципе выделения выполняемым задачам (программам) небольших квантов времени, в течение которых все разрешенные для данной задачи ресурсы процессора и внешних устройств принадлежат конкретной задаче. При переключении по сигналу таймера на другую задачу все текущие данные, относящиеся к первой задаче, сохраняются в специально выделенной памяти (обычно это стек), а процессор начинает выполнять инструкции другой программы. Когда приходит время выполнения первой задачи, сохраненные ранее ее текущие данные загружаются из стека, что создает видимость непрерывного выполнения задачи. Процессор продолжает выполнять прерванную задачу с того момента, когда она была отложена.
Чтобы прерванная задача могла без проблем продолжать свою работу, требуется защитить данные, которые она использует, от воздействия любых других задач. В первую очередь должны быть защищены блоки оперативной памяти, с которыми работает данная программа (отсюда и пошло название режима). Во-вторых, надо присвоить каждой задаче определенный уровень привилегий (возможность использовать те или иные ресурсы компьютера).
В защищенном режиме 24-разрядная шина адреса позволила программисту использовать 16 Мбайт памяти, а при включении механизма страничной адресации отображать до 1 Гбайт так называемой виртуальной памяти.
Для использования новых возможностей была расширена система команд 8086, что дало толчок началу процесса "простого" добавления новых команд к старым.
Если до появления чипа 80286 любая ошибка в конструкции какого-либо микропроцессора приводила к его провалу на рынке, то, начиная с этого процессора корпорации Intel, несуразицы в конструкции стали использоваться программистами и разработчиками. А самое удивительное, в последующих версиях процессоров корпорации Intel и их аналогов от других производителей такие просчеты закреплялись как стандарт de-facto. Только грубые (очевидные) ошибки исправлялись, и корпорация брала на себя обязательства по замене дефектных чипов.
Вот тут можно сказать, что случайно допущенные ошибки в архитектуре этого микропроцессора дали возможность программистам принимать весьма оригинальные решения при создании программного обеспечения. Поэтому, в дальнейшем, новые процессоры корпорации Intel и все IBM PC совместимые компьютеры вынуждены были поддерживать проблемы архитектуры 80286.
Наиболее очевидная, причем грубая ошибка – это неправильная адресация памяти в реальном режиме. Но она оказалась настолько "удачной", что ее восторженно приняли программисты, которым уже не хватало ресурсов памяти стандартной архитектуры 8086. А вот защищенный режим адресации памяти в 286 процессоре остался, в большинстве случаев, не востребованным – слишком много оказалось технических проблем, а, точнее, недоработок, которые мешали использовать такую возможность.
В заключение следует обратить внимание, что два процессора из линейки х86 – 8088 и 80386SX, являются переходными моделями, т. к. были разработаны в целях удешевления персональных компьютеров, собранных на их основе. Оба микропроцессора были как бы шагом назад по сравнению с базовым аналогом. Сохраняя все программные возможности, они имели укороченную в два раза шину данных. Такое техническое решение позволяло удешевить производство персональных компьютеров – 8088 имел 8-разрядную шину данных, сохраняя 16-разрядную архитектуру, a 80386SX для совместимости с 80286, которой на самом деле не оказалось, получил 16-разрядную шину данных.
Так как выпуск 16-разрядных процессоров был пионерской разработкой, которая внесла в компьютерный мир много нового, то именно архитектуре этих процессоров стали подражать большинство разработчиков микросхем. Теперь можно сказать, что процессор 8086 стал родоначальником семейства процессоров х86, которое явилось эталоном для подражания.
К сожалению, новые идеи и конструкции всегда несут в себе ошибки и проблемы. Не стал исключением и 8086, который как бы заложил мину замедленного действия для своих потомков.
В первую очередь – сумбурную, сложную и малопонятную систему команд, которая сегодня заставляет использовать в современном процессоре х86 две системы команд – одну для ядра, которое выполняет основные операции в процессоре, а вторую для общения с внешним миром. Отсюда необходимость специальных блоков внутри процессоров для перевода команд из одной системы в другую.
Второй серьезный недостаток – малое количество оперативных регистров – ячеек внутри процессора, которые служат для запоминания команд и операндов. Для текстового режима, в котором работали в то время все компьютеры, регистров и их размерности хватало, но в графическом режиме такая архитектура требует много лишних команд для пересылки данных из регистров в оперативную память и обратно.
Если проанализировать дальнейшее развитие семейства х86, то основные направления совершенствования, в большинстве случаев, касались преодоления проблем архитектуры 8086. Сегодня можно констатировать, что современные Pentium обладают самой сложной, не поддающейся логическому объяснению системой команд. Правда, в процессоре Pentium 4 наметились новые подходы решения накопившихся проблем.
32-разрядные процессоры
Сегодня программисты обычно уже не вспоминают о 16-разрядных процессорах и разрабатывают новые программы с учетом того, что они будут использоваться на компьютере с процессором не ниже 80386 (конечно, с тактовой частотой 33 или 40 МГц). К тому же, только в последних моделях процессоров Intel и AMD внутренняя архитектура перестает быть улучшенным вариантом 286/386. Можно сказать, что сейчас происходит не просто увеличение разрядности процессоров и смена их поколений, а идет мучительный поиск наиболее оптимальных принципов работы будущих компьютеров.
Если вспомнить, то именно неудачная архитектура 80286 и защищенного режима, который, как надеялись разработчики, позволит реализовать для персональных компьютеров многозадачную работу, заставила инженеров корпорации Intel очень серьезно подойти к разработке архитектуры 32-разрядного процессора. Перед ними стояла непростая задача – сохранить возможность использования уже наработанного программного обеспечения и предусмотреть удобное применение процессора в многозадачных системах.
Использование в новом процессоре полной 32-разрядной архитектуры, конечно, было не совсем оправданным, но закладывало необычайно большой резерв возможностей, на которые можно будет опереться в будущем. Это подтвердил тот факт, что только Windows 95 стала первой массовой операционной системой, использовавшей все возможности Intel 386, а до этого основной режим, для которого создавалось подавляющее число программ, был 16-разрядным.
Когда, 17 октября 1985 г., было объявлено о начале выпуска 32-разрядного процессора Intel 80386, особого интереса это событие в то время не вызвало. Программистам вполне хватало возможностей 80286 процессора, а 32-разрядная арифметика считалась непозволительной роскошью. Тогда никто из рядовых пользователей не думал, что архитектура и принципы Intel 386 станут образцом на долгие годы, утвердив доминирование корпорации Intel в компьютерном мире. Только на переломе веков, спустя 15 лет, стали производиться 64-разрядные процессоры, предназначенные для применения в персональных компьютерах.
Процессор Intel 386
Процессор 80386 выпускался достаточно долгое время в самых различных модификациях. Первая версия процессора имела тактовую частоту 16 МГц, выполняя от 5 до 6 млн. операций в секунду. В 1987 г. тактовая частота увеличилась до 20 МГц (от 6 до 7 млн. операций в секунду). Планка в 25 МГц была взята в 1988 г. (8,5 млн. операций в секунду). Дальнейшее улучшение технологии позволило в 1989 г. достичь частоты в 33 МГц (11,4 млн. операций в секунду).
Количество транзисторов в процессоре 80386 (рис. 2.7) достигло рекордной для того времени величины – 275 000 (вначале использовалась технология 1,5 мкм, а в дальнейшем – 1 мкм).
Рис. 2.7. Процессор 386
С помощью нового процессора стало возможным адресовать 4 Гбайт памяти, а размеры виртуальной памяти достигли 64 Тбайт (терабайт). В 1985 г. такие возможности были просто ошеломляющи, но посмотрите на свой персональный компьютер – сегодня винчестер в 4 Гбайт явно маловат для мультимедийных применений!
Процессор 80386 выпускался не только корпорацией Intel, но и многими другими фирмами в самых разных модификациях. Например, наиболее популярным вариантом корпуса стал пластмассовый с планарными выводами, которые припаивались к материнской плате, что не допускало смены процессора. А компьютеры с таким типом процессора, которые до сих пор с успехом используются, имеют тактовые частоты 33 и 40 МГц. Заметим, что для промышленных компьютеров даже сейчас выпускаются не только процессоры 386, но и 16-разрядные 8088 и 80286.
Несмотря на тщательность проработки конструкции, к великому сожалению, в первых версиях процессора Intel 386 содержалась ошибка, касающаяся выполнения 32-разрядных арифметических операций. Поэтому на корпуса процессоров, которые неправильно функционируют в 32-разрядном режиме, нанесена маркировка "16 bit operations only". То есть такие процессоры могут правильно выполнять только программы, работающие в 16-разрядном режиме, а, например, установить Windows 95 на компьютер с таким процессором не удастся.
Так как многие возможности Intel 386 довольно долгое время были не востребованы широким кругом пользователей, то для уменьшения цены на компьютеры в 1988 г. был выпущен процессор, который маркировался суффиксом SX. Процессор Intel 386SX, как и 8088, обладал сокращенной в два раза шиной данных, а для адресации ячеек памяти использовалось всего 24 разряда вместо 32-х. После выхода Intel 386SX полноразрядные варианты стали носить название Intel 386DX.
Для портативных компьютеров в 1990 г. был выпущен процессор Intel 386SL. Он полностью повторял основные технические характеристики Intel 386SX. Для целей энергосбережения использовались технические решения, которые позволяли отключать неиспользуемые внутренние блоки. Кроме того, в архитектуру процессора включили кэш-память и средства управления памятью. Количество транзисторов в процессоре увеличилось до 855 000 (технология 1 мкм).
Сопроцессоры
Прежде чем мы перейдем к обсуждению процессоров Intel 486, которые относятся ко второму поколению 32-разрядных процессоров, надо вспомнить еще об одной линии компьютерных микросхем – математических сопроцессорах, предназначенных для использования в компьютерах.
Когда-то тема использования сопроцессора была так же актуальна, как сегодня диспут о различных ускорителях для видеокарт. Теперь же, когда в процессорах Pentium сопроцессор встроен непосредственно в ядро, являясь одним из его многочисленных логических блоков, о нем вспоминают только программисты. Но поскольку принципы работы встроенного сопроцессора остались неизменными, и с учетом того, что в процессорах Pentium ММХ регистры сопроцессора используются по другому назначению, то кратко рассмотрим историю развития и этого семейства микросхем.
У компьютеров минимальная единица данных – это бит, который может быть равен 0 или 1. Наиболее популярное машинное слово – байт, в котором 8 битов. Если в байте все биты равны нулю, то считается, что в байте записано число 0.
Добавляя по 1 к содержимому байта, мы получим ряд:
• 0000 0001 – десятичное число 1;
• 1111 1111 – десятичное число 255 (в ряде случаев компьютер считает, что это минус единица).
Получается ряд целых чисел: 0, 1, 2, 3, …, 100, …, 255.