21168

Микропроцессоры 1970-х – 1990-х годов: архитектура и эволюция

Реферат

Информатика, кибернетика и программирование

Новое поколение микропроцессоров ознаменовалось появлением 32битных процессоров 80386 1985 и 486SX 1989 которые могли адресовать до 4 Гбайт памяти и выполнять несколько задач одновременно. Каждая ячейка хранит часть или все данное или команду и с ней ассоциируется идентификатор называемый адресом памяти или просто адресом. Центральный процессор последовательно вводит или выбирает команды из памяти и выполняет определяемые ими задачи. К середине 1990х годов однако из магнитных устройств внешней памяти остались в использовании...

Русский

2013-08-02

439.5 KB

9 чел.

Скробов А. Л.

Микропроцессоры 1970-х – 1990-х годов: архитектура и эволюция

Реферат по информатике

Кафедра информатики СУНЦ УрГУ

г. Екатеринбург

2002 г.

Содержание

Введение

Микропроцессоры

Центральные процессоры

Центральные процессоры: первые ЦП, Intel 4004, Intel 8008

Центральные процессоры: Intel 8080 и Intel 8085

Центральные процессоры: Intel 8086

Центральные процессоры: Intel 8088

Центральные процессоры: Intel 80186 и 80188

Центральные процессоры: Intel 80286

Центральные процессоры: Intel 80386

Центральные процессоры: Intel 486

Центральные процессоры: Intel Pentium

Центральные процессоры: Intel Pentium Pro, Pentium MMX и Pentium II

Центральные процессоры: дальнейшие разработки фирмы Intel

Центральные процессоры: Zilog Z80

Центральные процессоры: Zilog Z8001

Центральные процессоры: Zilog Z80000

Центральные процессоры: MCS6502

Центральные процессоры: Motorola MC6800

Центральные процессоры: Motorola MC68000

Центральные процессоры: Motorola MC68020

Центральные процессоры: ЦП фирмы Cyrix

Центральные процессоры: ЦП фирмы AMD

Центральные процессоры: мультипроцессорные системы

Другие микропроцессоры: сопроцессоры

Другие микропроцессоры: арифметический сопроцессор Intel 8087

Другие микропроцессоры: независимые процессоры

Другие микропроцессоры: арифметические сопроцессоры Weitek

Другие микропроцессоры: процессор ввода-вывода Intel 8089

Вспомогательные микросхемы

Вспомогательные микросхемы: программируемый таймер Intel 8254

Вспомогательные микросхемы: контроллер НГМД Intel 8272A

Вспомогательные микросхемы: контроллер прерываний Intel 8259A

Вспомогательные микросхемы: микросхема поддержки ОС Intel 80130

Советские разработки

Советские разработки: первые МПК

Советские разработки: серия КР580

Советские разработки: серия К1810

Советские разработки: серия К1801

Заключение

Использованная литература

 

Введение

Основная цель данного реферата – описать эволюцию микропроцессоров и их развитие от центров контроллеров простых устройств, таких, как светофоры или станки с ЧПУ (числовым программным управлением), до центров персональных компьютеров. В то же время общее описание направления эволюции не даёт полного представления о ней, так, например, когда мы слышим, что динозавры произошли от кишечнополостных, это не даёт нам никаких сведений об их эволюции, пока мы не узнаём, какими были динозавры и кишечнополостные. Поэтому целью данного реферата являлось не только раскрытие направлений и причин эволюции микропроцессоров, но и описание архитектуры и свойств каждого звена в цепочке эволюции. Однако некоторые несущественные для раскрытия эволюции микропроцессоров аспекты их архитектуры, такие, как системы команд и детали подключения, рассматриваются менее подробно. Они приведены лишь для общего представления о подобных вещах.

К сожалению, в настоящее время литература по архитектуре микропроцессоров пользуется малым спросом и потому практически не издаётся на русском языке. Как следствие, при подготовке данного реферата была использована в основном литература 1980-х – начала 1990-х годов. Это не позволило провести линию эволюции микропроцессоров до нашего времени и вынудило прекратить подробное её рассмотрение на микропроцессоре Intel Pentium. Таким образом, в реферате детально изображены микропроцессоры первого двадцатилетия своего существования. Дальнейшая эволюция микропроцессоров показана лишь схематически.

Хотя в реферате есть раздел, посвящённый советским разработкам в области микроэлектроники, основные достижения в этой области были сделаны американскими инженерами, прежде всего, фирмой Intel. Поэтому неудивительно, что даже в книгах советских авторов часто даются англоязычные термины при наличии соответствующих русскоязычных: считается, что международные термины более понятны и шире распространены. И хотя в тексте данного реферата употребляются преимущественно русскоязычные термины, но для каждого из них в сноске указан международный вариант (кроме случаев, когда русскоязычный вариант является калькой международного). Это позволяет добиться единства обозначений практически со всей советской специальной литературой по данному вопросу.

И последнее замечание по поводу формата реферата. В нём перед названиями и особенно номерами микропроцессоров и других микросхем всегда употреблено слово «процессор», «контроллер», «микросхема» или другое подобное слово. Удаление этих слов превратило бы реферат в некое подобие записи радиоперехвата: «Сто пятнадцатый вызывает семьдесят пятого. Семьдесят пятый, как меня слышно?» – «Семьдесят пятый слушает, приём…» Однако многие из авторов специальной литературы не придерживаются такой позиции, и в их книгах можно встретить фразы типа «8087 может повысить быстродействие 8088 в 5 раз». В данном реферате подобных фраз нет.

 

В реферате четыре раздела – Центральные процессоры, Другие микропроцессоры, Вспомогательные микросхемы, Советские разработки. Первый из них посвящён эволюции и характеристикам центральных процессоров, как наиболее практически важного типа микропроцессоров. Второй раздел описывает другие микропроцессоры – сопроцессоры, независимые процессоры и т.п. Цель третьего раздела – создание общего представления о небезграничности возможностей микропроцессоров и о приложениях, выполняемых вместо них другими устройствами, такими как контроллеры прерываний. И наконец, в четвёртом разделе представлены наши отечественные достижения, прежде всего, в области копирования зарубежных образцов микроэлектронной техники. Первый подраздел реферата – Микропроцессоры – не входит ни в один из перечисленных разделов. Он рассказывает об истории микроэлектроники в целом.

В тексте реферата используются такие понятия, как двоичные и шестнадцатеричные числа, двоичные дроби, упакованный двоично-десятичный код. Поскольку эти понятия относятся не к микроэлектронике, а к математике, то они не вводятся в данном реферате. По этим и другим понятиям «компьютерной математики» имеется множество литературы, к которой следует обратиться интересующимся.

 

Сейчас, когда микропроцессоры окружают нас повсюду, развитие и становление микроэлектроники как отрасли народного хозяйства и завоевание микропроцессорами популярности особенно интересны. Поэтому тема данного реферата не должна остаться без внимания.

 

Микропроцессоры

Начало 70-х годов ознаменовалось рождением нового и, как оказалось, весьма перспективного и беспрецедентного по своим последствиям направления в развитии вычислительной техники – в 1971 г. был выпущен первый в мире микропроцессор. С тех пор за короткое время появилось несколько поколений микропроцессоров, а для прогнозирования перспектив их будущих применений не хватает даже самой богатой фантазии. Совершенствование микропроцессоров идёт параллельно с развитием микроэлектронной технологии, которая позволяет размещать на кристалле всё больше и больше логических схем.

Микропроцессоры, а в более общем плане – большие и сверхбольшие интегральные схемы, революционизировали вычислительную технику в том отношении, что она становится всё более дешёвой, массовой и надёжной, а её применение оказывается экономически эффективным практически во всех областях народного хозяйства. По существу, микропроцессорная техника является фундаментом грандиозной программы компьютеризации общества.

История развития однокристальных микропроцессоров в 1970-х – 1990-х годах показывает их эволюцию от первого 4-битного микропроцессора Intel 4004 через 8- и 16-битные устройства к более новым 32-битным процессорам, функциональные возможности которых превосходят возможности процессоров крупных компьютеров прошлого. И хотя первые микропроцессоры подходили только для калькуляторов и простых контроллеров, современные микропроцессоры используются в качестве ЦП сложных компьютеров широкого назначения.

По степени интеграции микропроцессорных приборов традиционно различают:

  •  малую1 – менее 10 логических вентилей;
  •  среднюю2 – от 10 до 100 вентилей;
  •  большую3 – от 100 до нескольких тысяч вентилей;
  •  сверхбольшую4 – десятки тысяч вентилей;

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

 

Микропроцессоры фирмы Intel в значительной степени определяют направление развития компьютерной техники. Каждые несколько лет фирма Intel демонстрирует новые прорывы в своей технологии, существенно меняя наши представления о возможностях компьютеризации. Базовое семейство микропроцессоров Intel началось с первого в мире 4-битного микропроцессора 4004 (1971), ориентированного на применение в микрокалькуляторах. Затем фирма Intel выпустила 8-битные микропроцессоры 8008 (1972), 8080 (1974) и 8085 (1976), достаточно мощные для построения небольшого компьютера. Они могли выполнять двоичные и двоично-десятичные5 16-битные арифметические операции и адресовать память до 64 Кбайт с помощью 16-битной шины данных. Наконец, был выпущен 16-битный микропроцессор 8086 (1978) с его 8-битным вариантом 8088 (1979) и расширенными вариантами 80186 и 80286 (1982), обладающими более высоким быстродействием и дополнительными возможностями. Процессоры 8086, 8088 и 80186 могли оперировать с 32-битными двоичными и 16-битными двоично-десятичными числами и адресовать память до 1 Мбайт блоками по 64 Кбайт. Новое поколение микропроцессоров ознаменовалось появлением 32-битных процессоров 80386 (1985) и 486SX (1989), которые могли адресовать до 4 Гбайт памяти и выполнять несколько задач одновременно. За 18 лет производительность микропроцессоров фирмы Intel выросло от 60 тыс. до 41 млн операций в секунду. Процессор 486DX имел дополнительно встроенные кэш-память первого уровня и устройство обработки чисел с плавающей точкой, а следующие процессоры фирмы Intel – 64-разрядную шину данных, возможность обработки нескольких инструкций одновременно и набор дополнительных регистров и инструкций. Таковы процессоры Pentium, Pentium MMX, Pentium Pro и Pentium II. Последние два из них также содержат в одном корпусе с процессором встроенную кэш-память второго уровня.

Но фирма Intel не является монополистом в области разработки микропроцессоров. Группа инженеров, отделившихся от фирмы Intel и образовавших фирму Zilog, выпустило 8-битный микропроцессор Z80 (1976), аналогичный Intel 8080, но содержащий дополнительные регистры и команды. Большинство программ процессора 8080 могут выполняться и на процессоре Z80. Аналогичные 8-битные микропроцессоры были выпущены и другими фирмами: процессор 6800 – фирмой Motorola, процессор 6502 – фирмой MOS Technology. Ещё позже фирма Motorola выпустила микропроцессор 68000 (1980), который имеет 16-битную шину данных, но может обрабатывать 32-битные данные и адресовать память до 4 Гбайт. Он выполнял около 800 тыс. операций в секунду. Его преемниками стали микропроцессоры 68010, 68020 и 68030, длительное время составлявшие основную конкуренцию микропроцессорам фирмы Intel.

Другой группой конкурентов фирмы Intel являются фирмы, выпускающие микропроцессоры, совместимые с процессорами фирмы Intel. Таковы фирмы AMD, Cyrix, NexGen, Centaur Technology. Большинство из этих фирм сначала выпускало копии микропроцессоров 80386 по лицензии фирмы Intel, а затем лицензия была отозвана, и таким фирмам пришлось самостоятельно разрабатывать свои следующие микропроцессоры.

Динамика мирового объёма продаж 16-битных микропроцессоров в середине 1980-х годов (по данным журнала «Электроника») имела следующий вид: 1984 г. – $440 млн, 1985 – $550 млн и 1986 – $690 млн. Наиболее популярны тогда были процессоры Intel 8086, Zilog Z8000 и Motorola M68000. Прогнозировали, что к 1990 г. объём их продаж достигнет $2 – 3 млрд.

 

Центральные процессоры

Функция одного из важнейших видов микропроцессоров – центрального процессора6 (ЦПУ, центрального процессорного устройства) – состоит в дешифрации команд и управлении всеми действиями в системе; он же выполняет все арифметические и логические операции. Хотя и имеется множество разновидностей архитектуры ЦП, мы рассмотрим общие принципы работы и основные узлы микропроцессоров.

Для работы ЦП нужны некоторые вспомогательные схемы7, которые могут быть встроены в микросхему ЦП или размещаться в собственных корпусах. Так, генератор синхронизации формирует одну или несколько последовательностей равномерно расположенных импульсов, которые необходимы для синхронизации действий в микропроцессоре и логике управления шиной. Выходные импульсы генератора имеют одну и ту же частоту, но смещены во времени, т. е. имеют различные фазы. В микропроцессорных системах применяются одно- – четырехфазные сигналы синхронизации, причем многофазные сигналы требовались только в первых микропроцессорах. В большинстве современных микропроцессоров схема синхронизации, за исключением осциллятора (кварца), размещается на кристалле самого микропроцессора.

Память предназначена для хранения данных и команд, которые выполняет ЦП. Обычно она состоит из набора модулей, каждый из которых содержит тысячи ячеек. Каждая ячейка хранит часть или все данное или команду и с ней ассоциируется идентификатор, называемый адресом памяти (или просто адресом). Центральный процессор последовательно вводит (или выбирает) команды из памяти и выполняет определяемые ими задачи.

Подсистема ввода-вывода состоит из разнообразных устройств, предназначенных для взаимодействия с «внешним миром» и хранения больших объемов информации. Примерами устройств ввода 1980-х годов служат карточные считыватели, фотосчитывающие ленточные устройства, аналого-цифровые преобразователи, а устройств вывода – строчные принтеры, графопостроители, карточные и ленточные перфораторы и цифро-аналоговые преобразователи. Некоторые устройства, например терминалы (совокупность монитора и клавиатуры), обладают возможностями и ввода, и вывода. В настоящее время появилось много новых видов устройств ввода и вывода. Компоненты компьютера, осуществляющие постоянное хранение программ и данных, называются внешней (массовой) памятью. Наиболее распространены в начале 1980-х годов были ленточные и дисковые накопители, но затем завоевали популярность устройства на цилиндрических магнитных доменах (ЦМД-память) и приборах с зарядовой связью (ПЗС-память). К середине 1990-х годов, однако, из магнитных устройств внешней памяти остались в использовании только накопители на гибких магнитных дисках (НГМД, или дискеты)8 и накопители на жёстких магнитных дисках (НЖМД, или винчестерские диски)9; также появился принципиально новый вид внешней памяти, а именно память на компакт-дисках.10 В настоящее время именно три последних вида внешней памяти пользуются наибольшей популярностью.

Для выполнения программы центральным процессором её необходимо передать из внешней памяти в основную.

ЦП соединяется с памятью и устройствами ввода-вывода совокупностью проводников, образующих системную шину. По этим проводникам, оформленным в виде кабеля или соединений на печатной плате, передается любая информация. Обычно проводники шины объединяются в три группы:

  •  линии данных для передачи информации;
  •  линии адреса, показывающие, откуда или куда передается информация;
  •  линии управления, регулирующие действия на шине.

Сигналы на шине должны быть скоординированы с сигналами, генерируемыми подключенными к шине разнообразными компонентами. Схемы для подключения шины к устройству называются интерфейсом, а логика управления шиной образует интерфейс ЦП. Проектирование интерфейсов и логики управления шиной упрощают разнообразные интерфейсные микросхемы. В зависимости от сложности системы логика управления шиной частично или полностью размещается на кристалле ЦП.

Интерфейсы памяти в основном образуют схемы для дешифрирования адреса целевой ячейки и буферирования данных на (с) шину(ы), а также схемы выполнения операций считывания и записи. Интерфейсы ввода-вывода варьируются от очень простых до очень сложных. Все они должны буферировать данные на (с) системную(ой) шину(ы), принимать приказы от ЦП и передавать в ЦП информацию о состоянии подключенного устройства. Кроме того, интерфейсы внешней памяти должны взаимодействовать непосредственно с памятью, а для этого требуется управление системной шиной. Взаимодействие между интерфейсом ввода-вывода и шиной данных осуществляется через регистры, называемые портами ввода-вывода.

Конечно, все ячейки памяти и регистры ввода-вывода состоят из бит, но так как отдельные биты содержат очень мало информации, они группируются в байты – наименьшие единицы информации, независимо обрабатываемые микропроцессором, и слова – наибольшие такие единицы. Размер байта и слова определяется архитектурой микропроцессора. Поскольку символы обычно имеют длину 7 или 8 бит и поскольку компьютеры более легко работают со степенями 2, байты почти всегда состоят из 8 бит. Слова же состоят из 2, 3 или 4 байт в зависимости от компьютера и структуры его системной шины. Так как 16-битные однокристальные микропроцессоры имеют в своих системных шинах 16 линий данных, в них термин «слово» обозначает 2 байта (16 бит). На самом деле, в фирменных руководствах по 32-битным микропроцессорам, таким как Intel 80386, также говорится о словах как о двойных байтах. Это обеспечивает программную совместимость более поздних микропроцессоров с более ранними 16-битными.

С каждым байтом памяти ассоциируется идентифицирующий его адрес и при обращении к байту его адрес передается в соответствующий интерфейс по линиям адреса. Множество всех возможных адресов в данной ситуации называется адресным пространством. В некоторых компьютерах имеется два адресных пространства, а в других для обращения ко всем ячейкам памяти и регистрам ввода-вывода используется единое адресное пространство. При наличии отдельных адресных пространств памяти и ввода-вывода для указания нужного адресного пространства вместе с линиями адреса необходимо использовать некоторые линии управления. Так как память обычно разделена на модули, несколько старших бит адреса памяти применяют для выбора модуля, а остальные (младшие) биты идентифицируют байт (или слово) в модуле. Аналогично интерфейс идентифицируется старшими битами адреса ввода-вывода, а регистр в интерфейсе выбирается двумя или тремя младшими битами.

Допустимое число бит адреса определяет размер адресного пространства. Если адрес содержит n бит, получается 2n возможных адресов от 0 до 2n - 1. Число линий адреса в системной шине диктует размер пространства памяти (или, возможно, объединенного пространства памяти и ввода-вывода). При наличии n линий адреса максимальная емкость памяти (или памяти и ввода-вывода) составляет 2n байт. Двадцать линий адреса микропроцессора 8086 обеспечивают емкость до 220 = (210)2 ≈ (103)2 = 1 млн байт.

Когда слово состоит из двух байт, возникает вопрос, адрес какого байта использовать для идентификации слова. Кроме того, иногда требуется указывать конкретный бит в байте или в слове. Принято считать адресом слова адрес его младшего байта. Биты нумеруются с нуля, назначаемого младшему биту. В байте старший бит имеет номер 7, а в слове – номер 15. В памяти младший байт слова располагается по меньшему адресу.

В некоторых компьютерах требуется, чтобы слова начинались по адресам, кратным числу байт в слове, и фиксируется ошибка выравнивания, если это правило не соблюдается. В других же, в том числе и в микропроцессоре 8086, слова могут начинаться по любому адресу; однако обращения к «невыравненным» словам требуют нескольких обращений к памяти.

Традиционно ЦП должен «уметь» выполнять действия со следующими объектами:

  •  присваивания и арифметические выражения;
  •  безусловные переходы;
  •  условные переходы, логические выражения и отношения;
  •  циклы;
  •  массивы и другие структуры данных;
  •  подпрограммы;
  •  ввод-вывод.

Поэтому в архитектуре типичного ЦП, обладающего такими возможностями, имеются устройство управления для дешифрации и исполнения команд, набор рабочих регистров, предназначенных для адресации и производства вычислительных операций, арифметико-логическое устройство (АЛУ)11 для выполнения арифметических и логических операций и секция управления вводом-выводом.

Как и программы на языках высокого уровня, программа на машинном языке выполняется последовательно (до тех пор, пока не встретится команда перехода). Регистр команды12 содержит текущую команду на время ее дешифрации и выполнения, а программный счётчик13 предназначен для хранения адреса следующей команды. Когда текущая команда завершена, адрес из счётчика выдается на шину адреса, и память помещает следующую команду на шину данных, чтобы ЦП ввёл эту команду в свой регистр (выполняется выборка14 команды из памяти). Пока дешифрируется эта команда, определяется её длина в байтах и производится инкремент программного счётчика на эту длину; после этого он адресует следующую команду. Когда выполнение данной команды заканчивается, содержимое счётчика помещается на шину адреса и цикл повторяется.

Команды безусловного перехода позволяют изменить естественный порядок следования команд путем замещения содержимого программного счётчика (т.е. адреса следующей по порядку команды) адресом, определяемым самой командой перехода. Команды условных переходов замещают или не замещают содержимое счётчика в зависимости от результатов предыдущих команд, т.е. текущего состояния процессора, определяемого предыдущими командами. Текущее состояние процессора находится в регистре, называемом словом состояния процессора.15 В этом регистре имеются биты, показывающие такие условия, как получение в предыдущих операциях положительного, отрицательного или нулевого результата. Если после команды «вычитания» находится команда «перехода по нулю», переход осуществляется в том случае, когда слово состояния процессора показывает получение при вычитании нулевого результата. Если же это слово фиксирует ненулевой результат вычитания, переход не производится. Когда реализован переход, начинается выполнение новой последовательности команд с адреса, к которому осуществлен переход.

Циклы обычно реализуются с помощью команд условных переходов, хотя в некоторых микропроцессорах имеются команды, которые объединяют счет и (или) проверку с условным переходом. В большинстве циклов языков высокого уровня, например в циклах FOR языка Бейсик, осуществляется инкремент или декремент счетчика после каждого выполнения тела цикла, и цикл повторяется до тех пор, пока счетчик не достигает предела. При каждом изменении счетчика результат сравнивается с пределом, соответственно устанавливается слово состояния процессора и в зависимости от его содержимого переход производится или нет.

Действия, связанные с вызовом подпрограммы, требуют специальной разновидности перехода. Как и в других переходах, вызов подпрограммы также заменяет содержимое программного счётчика на адрес перехода, но при этом запоминается текущее его содержимое, образующее адрес возврата. Команда возврата должна восстановить в программном счётчике адрес возврата, чтобы после завершения подпрограммы продолжалось последовательное выполнение основной программы. При вызове подпрограммы, кроме запоминания адреса возврата, обычно требуется временно сохранить и другую информацию, такую как содержимое рабочих регистров. Это объясняется тем, что подпрограмма может разрушить первоначальное содержимое этих регистров, которое потребуется при возврате в основную программу. Обычно такая информация запоминается в специальной области памяти, называемой стеком. Адрес ячейки стека, к которой производилось последнее обращение (или, как в некоторых компьютерах, к которой будет происходить следующее обращение), находится в регистре указателя стека.16

Рабочие регистры предназначены для временного хранения информации, которая помогает при адресации и в вычислительном процессе. Их можно разделить на две группы: адресную и арифметическую, хотя некоторые регистры можно отнести к обеим.

Адресная группа применяется для гибкой адресации данных. Обрабатываемое командой данное может быть частью команды, его адрес может быть частью команды, оно может находиться в регистре, его адрес может быть в регистре или адрес данного может быть суммой части команды и содержимого одного или нескольких регистров. Иногда при использовании регистра команда просто идентифицирует регистр, содержащий адрес, но чаще адрес определяется более сложно. Например, при обращении к элементам массива адрес элемента состоит из двух частей – базового адреса (т.е. адреса первого элемента массива) и индекса элемента (т.е. его смещения в памяти относительно первого элемента). Так как часто приходится обрабатывать весь массив, удобна возможность легкого инкремента смещения. Поэтому адрес элемента массива часто вычисляется суммированием содержимого двух регистров, один из которых содержит базовый адрес и называется базовым, а второй содержит смещение и называется индексным. Двумерный массив несколько усложняет ситуацию, требуя сложения базы, смещения в столбце и смещения. При этом обычно суммируются часть команды (смещение), базовый регистр и индексный регистр.

Арифметические регистры предназначены для временного хранения операндов и результатов арифметических операций. Так как основным фактором, ограничивающим быстродействие, являются передачи по системной шине, обращение к регистру осуществляется намного быстрее, чем обращение к памяти. Поэтому при необходимости выполнения нескольких операций над набором данных лучше ввести данные в арифметические регистры, произвести требуемые вычисления и поместить результаты в память, чем обрабатывать данные непосредственно из памяти. Обычно чем больше арифметических регистров находится в составе ЦП, тем выше его быстродействие.

Арифметико-логическое устройство реализует арифметические, логические, сдвиговые и другие операции. Секция управления вводом-выводом содержит схемы ЦП, которые управляют операциями ввода-вывода. Какие схемы находятся в ЦП, а какие образуют внешнюю логику управления шиной, зависит от системы.

Микропроцессорную систему называют мультизадачной,17 если она способна выполнять несколько задач одновременно или переключаться между ними через малые интервалы времени. Программирование мультизадачных систем называют мультипрограммированием. Мультизадачная система может быть многопользовательской, когда терминал каждого пользователя обслуживается отдельной задачей, или однопользовательской, когда пользователь может запустить несколько программ, назначать им приоритеты и переключать их по своему желанию. Можно также позволить каждому пользователю многопользовательской системы реализовать мультизадачность на его терминале, если это не приведёт к перегрузке системы.

 

Центральные процессоры: первые ЦП, Intel 4004, Intel 8008

В 1959 г. Роберт Нойс, 31-летний директор и научный руководитель фирмы Fairchild Semiconductors, разработал первую в мире интегральную схему – совокупность нескольких планарных транзисторов. До этого каждый компонент электронной схемы изготавливался отдельно, а затем они спаивались вручную. С 1962 г. интегральные схемы, прозванные «чипами»,18 были пущены в массовое производство. Степень интеграции схем непрерывно увеличивалась – от 10 транзисторов в 1964 г. до 100 транзисторов в 1970 г. на кристалле кремния одного и того же размера (около 7 см2). Стоимость же ИС оставалась примерно постоянной.

В 1968 г. Р. Нойс и двое его коллег из фирмы Fairchild Semiconductors – Гордон Мур и Энди Гроув – основали фирму Intel.19 Первый её завод был построен в районе Пало-Альто, штат Калифорния. Через два года фирма Intel разработала первую в мире ИС для компьютерной памяти, способную хранить 1 Кбит информации. Эта схема размером менее 0,4 см2 заменяла 1024 сердечника старой ферритовой памяти общей площадью порядка 500 см2.

В это же время (1970 г.) Эдвард Хофф, 34-летний инженер фирмы Intel, получил от японской фирмы Busicom заказ на набор из 12 интегральных микросхем для нового семейства микрокалькуляторов. Такие ИС всегда характеризовались узко специализированными функциями и предназначались для выполнения строго определённой работы, и поэтому для каждого нового применения приходилось заново разрабатывать весь набор микросхем. Это показалось Э. Хоффу экономически невыгодным, и при содействии сотрудников фирмы Intel Стэнли Мэйзора и Федерико Фаггина он сократил количество ИС в наборе с 12 до 4, включив центральный процессор, который выполнял арифметические и логические функции сразу нескольких ИС. Процессор состоял из 2250 транзисторов, размещённых на кристалле размером менее 1 см2. Кроме того, его функции не были жёстко зафиксированы. По конструкции он был сходен с центральным процессором большого компьютера, и его можно было запрограммировать на выполнение практически любых функций.

Выпущенный 15 ноября 1971 г., этот микропроцессор получил наименование 4004. Хотя он и не совсем точно соответствовал описанию, в котором фирма охарактеризовала его как «компьютер в одном кристалле», он не был далёк от этого: он выполнял все функции центрального процессора универсального компьютера. В сочетании ещё с тремя микросхемами – памяти, блока управления и интерфейса ввода-вывода – процессор представлял собой микрокомпьютер – машину, не уступавшую по мощности большим компьютерам середины 1950-х годов. Микропроцессор выпускался в 16-контактном корпусе и выполнял 60 тыс. операций в секунду при тактовой частоте 108 КГц. Адресуемая память составляла 640 байт.

Фирма Intel осознала решающее значение микропроцессоров в миниатюризации компьютеров, и поэтому она выкупила у фирмы Busicom права на продажу микропроцессора 4004 и его усовершенствованных версий за $60 тыс. Позже, как мы знаем, фирма Busicom обанкротилась, а фирма Intel и по сей день остаётся одним из мировых лидеров в области производства микроэлектронной техники.

1 апреля 1972 г. фирма Intel выпустила 8-битную версию процессора 4004 и назвала её 8008. Новый микропроцессор имел 18 контактов, расположенных в двух рядах, и работал на тактовой частоте 200 КГц. Он содержал 3500 транзисторов, выполненных, как и в процессоре 4004, по 10-микронной технологии. Производительность процессора 8008 вдвое превышала производительность его 4-битного предшественника. Фирма Intel предполагала его для использования в калькуляторах и закаточных машинах, но в 1974 г. появилось два персональных компьютера – Mark-8 и Scelbi-8N – на базе этого микропроцессора. Mark-8 считается первым в мире промышленно производимым персональным компьютером – по сегодняшним меркам, весьма тяжёлым в сборке, использовании и обслуживании.

Микропроцессор 8008 имеет аккумулятор, который служит операндом во всех арифметических операциях, 6 регистров общего назначения для хранения промежуточных данных, 8 регистров адреса и отдельно от них – указатель стека, недоступный программно. Все регистры процессора 8008 имели длину 8 бит, но для адресации памяти можно было объединять адресные регистры в регистровые пары, позволяя процессору адресовать 16 Кбайт памяти (два старших бита полученного адреса использовались для выбора адресного пространства памяти или ввода-вывода).

Вскоре после выпуска процессора 8008 в широкую продажу поступили десятки микропроцессоров других фирм. Этому способствовало распространение МОП(металл-оксид-полупроводник)20-технологии, которая позволила увеличить количество компонентов в ИС и значительно снизить их стоимость и энергопотребление. Последнее также означает, что новые ИС выделяли мало тепла; в прошлых конструкциях именно значительное тепловыделение сдерживало дальнейшее увеличение плотности интеграции.

В 1974 г. фирма Texas Instruments разработала устройство TMS-1000, объединявшее ЦП, ПЗУ, ОЗУ, тактовый генератор и схемы ввода-вывода на кристалле размером 0,25 см2 с 28 контактами в двух рядах. Это был первый в мире монокристальный микрокомпьютер, предназначенный для управления карманным калькулятором. Подобные монокристальные микрокомпьютеры применяются в телефонах, музыкальных центрах и других бытовых приборах.

 

Центральные процессоры: Intel 8080 и Intel 8085

Изобретение микропроцессоров поистине преобразило историю вычислительной техники; шутят, что кремниевый кристалл превратил «слоноподобный» компьютер в «кролика» по размерам, цене и скорости размножения и распространения. Точно так же изменились и компании, производящие и продающие компьютеры: ранее это могли делать только «гиганты» наподобие IBM, теперь многие молодые предприниматели-энтузиасты могли заработать на производстве и продаже персональных компьютеров миллионы долларов. Например, в первое пятилетие своего существования компания Apple Computer выросла из частного предприятия, почти не имевшего капитала и состоявшего из двух студентов, бросивших колледж и собирающих компьютер в одном из калифорнийских гаражей, в корпорацию, владеющую капиталом, превосходящим миллиард долларов. В 1981 г., когда персональные компьютеры стали привычной принадлежностью школьных классов, деловых контор и даже квартир, количество проданных экземпляров перевалило за миллион.

Но эра персональных компьютеров считается начавшейся в декабре 1974 г., когда журнал Popular Electronics опубликовал на своей обложке фотографию машины Altair-8800 фирмы MITS21 с подписью «первый в мире мини-компьютерный комплект, который может соперничать с промышленными образцами». Комплект стоил $397 ($398 в собранном виде) – существенно дешевле, чем существовавшие тогда миникомпьютеры. Эта машина была построена на основе микропроцессора Intel 8080, выпущенного 1 апреля 1974 – через 2 года после своего предшественника, процессора 8008. Микропроцессор 8080 имел тактовую частоту 1,77 МГц, повышавшую его производительность до 640 тыс. операций в секунду – в 10 раз выше, чем у процессора 8008. Число транзисторов на кристалле микропроцессора было повышено до 4500, причём для поддержки процессора требовалось всего 6 микросхем (для процессора 8008 – 20). Новый микропроцессор был способен адресовать 64 Кбайт памяти.

Главный редактор журнала Popular Electronics Артур Солсберг давно вынашивал идею поместить на обложку своего журнала нечто более впечатляющее, чем персональный компьютер Mark-8, помещённый в сентябре 1974 г. на обложке основного конкурента его издания – журнала Radio Electronics. Добрые отношения с фирмой MITS журнал поддерживал с 1971 г., когда её микрокалькулятор, разрекламированный Popular Electronics, был продан на сумму $1,2 млн. Поэтому А. Солсберг поручил Лесли Соломону, ведущему технический раздел журнала, описать в январском выпуске 1975 г. персональный компьютер фирмы MITS. Название «Altair» для новой машины выбрал также Л. Соломон в честь звезды, к которой направлялся в телешоу Star Trek космический корабль Enterprise; MITS до этого предлагала назвать компьютер PE-8 в честь журнала Popular Electronics.

При цене микропроцессора 8080 в $360 цена комплекта $397 выглядела смехотворной – по выражению Эдварда Робертса, директора фирмы MITS, купить его было «всё равно, что украсть». За месяц были проданы десятки тысяч наборов Altair-8800; к апрелю 1975 г. у Э. Робертса скопилось 4000 неудовлетворённых заявок; впервые в истории вычислительной техники появились рекламации персональных компьютеров. Для фирмы, находившейся в конце 1974 г. на грани банкротства, это был «абсолютный, мгновенный, безумный успех». В июле 1975 г. в США появился первый в мире магазин по продаже компьютеров, разросшийся впоследствии в целую сеть компьютерных магазинов по всей стране. Бюллетень Computer Notes, издаваемый вице-президентом фирмы MITS Дэвидом Баннелом, достиг тиража 12 тыс. экземпляров. Такой энтузиазм покупателей ПК Altair-8800 был весьма удивительным, если учесть, что для сборки комплекта требовались немалые познания владельца в электронике, а собранный компьютер обладал памятью 256 байт и не имел никаких устройств ввода-вывода, кроме рычажков и лампочек на передней панели. К счастью для покупателей компьютера, спецификация 16-битной шины Altair-100 была открытой, а сама машина допускала установку дополнительных устройств. Некоторое время в отделе программного обеспечения фирмы MITS работали Вильям Гейтс и Пол Аллен, основавшие впоследствии собственную фирму Microsoft; они разработали интерпретатор языка Бейсик для компьютера Altair-8800. В 1977 г. фирма MITS была продана фирме Pertec Computer за $6,5 млн.

В марте 1976 г. фирмой Intel была выпущена усовершенствованная версия процессора 8080, названная 8085. Как и его предшественник, процессор 8085 имел 8-битные шины адреса и данных и мог адресовать 64 Кбайт памяти. Впервые микропроцессор питался от одного источника напряжением 5 В, вместо двух напряжениями 5 и 12 В. Несмотря на повышенную до 5 МГц (в модели 8085A – 6,25 МГц, а в модели 8085A-2 – 10 МГц) тактовую частоту, производительность процессора составила всего 370 тыс. операций в секунду. Также впервые в микропроцессорах фирмы Intel была использована 3-микронная технология (вместо 6-микронной в процессоре 8080), позволившая увеличить степень интеграции до 6500 транзисторов на кристалле той же величины, что и 8080.

Кроме улучшенного ЦПУ, на кристалле микропроцессора 8085 располагались также генератор синхронизации и контроллер приоритетных прерываний, позволяющий обслуживать прерывания с четырёх дополнительных входов запросов прерываний.

Оба микропроцессора – 8080 и 8085 – выпускались в 40-контактных двухрядных корпусах. Первому из них требовалась микросхема поддержки 8228, средства которой встроены в процессор 8085; в остальном процессоры работают аналогично. У процессора 8085 линии адреса и данных мультиплексируются, т.е. 8 линий данных разделяют те же контакты процессора, что и 8 младших линий 16-разрядной шины адреса. Для его работы со старыми микросхемами памяти, совместимыми с процессором 8080, у которого линии адреса и данных не мультиплексируются, требуется отдельная микросхема – демультиплексор, например, Intel 8212.

Микропроцессоры 8080/8085 имеют один и тот же набор из семи 8-битных рабочих регистров;22 для работы с 16-битными величинами некоторые пары регистров можно объединять, образуя таким образом три 16-битных регистра23 с возможностью доступа к отдельным 8-битным половинам. Одна из регистровых пар24 применяется также для косвенной адресации. Группу 16-битных указательных регистров образуют указатель стека25 и программный счётчик.26 8-битное слово состояния процессора содержит флажки нуля, чётности, знака, переноса и вспомогательного переноса.27 При сбросе (перезагрузке) процессора все его регистры, включая программный счётчик, обнуляются.

Вектора внешних прерываний сброса28 процессора 8085 фиксированы, им соответствуют шестнадцатеричные значения 002C, 0034 и 0024 для прерываний с номерами 5.5, 6.5 и 7.5 соответственно. Прерыванию ловушки29 процессора 8085 соответствует также фиксированный вектор, совпадающий с вектором прерывания сброса 7.5. Вектор другого типа внешнего прерывания30 (единственного в процессоре 8080) генерируется самим прерывающим устройством и нигде в памяти не хранится.

Система команд микропроцессора 8080 включает 80 команд: 16 команд передачи данных, 31 команду их обработки, 28 команд перехода и 5 команд управления процессором. В командах перехода используется прямая адресация, поэтому программы не являются перемещаемыми в памяти. Процессор 8085 содержит две дополнительные команды управления процессором (считывание и установка маски прерываний),31 связанные с увеличением числа типов внешних прерываний, но у него нет редко используемых команд косвенного перехода32 и работы со стеком.33 Оба микропроцессора, в отличие от их предшественника – процессора 8008, – имеют отдельные команды для работы с портами ввода-вывода, поэтому все 16 бит регистровой пары, используемой для адресации, используются для выбора ячейки памяти. Это позволило увеличить адресуемое пространство памяти в 4 раза.

Формат команд микропроцессоров 8080/8085 сравнительно простой: первый байт команды содержит код операции, идентифицирующий её, а за ним следует от 0 до 2 байт операндов. Иногда (как правило, в арифметических командах) номер регистра-операнда содержится в коде операции, но весь код операции всегда заключён в первом байте команды.

Для поддержки систем на базе процессоров 8080/8085 фирма Intel выпускала следующие микросхемы: 3-канальный таймер/счётчик 8253, микросхемы последовательного интерфейса 8251 (синхронно-асинхронный интерфейс) и 8256 (УАПП), микросхемы интерфейса с периферией 8255 (без ПЗУ) и 8355 (с 16 Кбайт ПЗУ), 4-канальный контроллер ПДП 8257, контроллер ЭЛТ34 8275, контроллер НГМД 8271, арифметический сопроцессор 8231 (в системе команд микропроцессоров 8080/8085 не было команд умножения и деления), процессор чисел с плавающей точкой 8232 (с поддержкой 32- и 64-битных чисел) и генератор синхронизации 8224. Большинство этих устройств употреблялось и с последующими микропроцессорами фирмы Intel. Для микропроцессора 8080 с немультиплексными линиями адреса и данных производились также системные контроллеры 8228/8238 и приёмопередатчик 8216.

Кроме перечисленных устройств, со всеми 8-битными микропроцессорами могли применяться защёлки адреса 74LS367 (6-битная), 74LS125 (4-битная) и 74LS373/74LS374 (8-битные), а также приёмопередатчик 74LS245 и дешифратор адреса 74LS42. Такие микросхемы производились, например, фирмой Texas Instruments (в серии SN74LS).

Для микропроцессоров 8080/8085 в 1973 г. Гарри Килдолом была разработана операционная система CP/M-80,35 долгое время бывшая стандартом для 8-битных процессоров. В 1975 г. операционная система CP/M-80 была применена в компьютерах Altair-8800, а в 1976 г. Г. Килдол основал фирму Digital Research для продажи своей ОС, так как не мог в одиночку справиться со всё возрастающим потоком заказов. Эта фирма продавала и совершенствовала ОС CP/M-80 до 1979 г., когда 8-битные микропроцессоры типа 8080/8085 были вытеснены более мощными 16-битными. Существовала также многопользовательская версия ОС CP/M-80, называемая MP/M-80.36 ОС MP/M-80 позволяла организовывать многомашинные вычислительные системы на базе микропроцессоров 8080/8085, что способствовало их продвижению не только в домашних, но и в промышленных приложениях.

На базе процессоров 8085/8088 фирмой Intel было выпущено множество монокристальных микрокомпьютеров для применения преимущественно в кассовых аппаратах, микрокалькуляторах и телефонных автоответчиках. Таковы микросхемы 8048, 8748, 8035, 8049, 8022, 8051. Они содержат 64 или 128 байт ЗУПВ, 0, 1, 2 или 4 Кбайт ПЗУ, по 3 порта ввода-вывода и по одному программируемому счётчику. В некоторые из них также включены по аналого-цифровому преобразователю (АЦП)37 или по схеме последовательного интерфейса.

 

Центральные процессоры: Intel 8086

В 1978 г. рынок 8-битных микропроцессоров был переполнен, и вместо того, чтобы продолжать борьбу на нём, фирма Intel сделала качественный шаг вперёд и выпустила первый в мире 16-битный микропроцессор.

16-битный микропроцессор Intel 8086, выпущенный 8 июня 1978 г., содержал на кристалле размером 5,5x5,5 мм около 29000 транзисторов и производился по высококачественной nМОП-технологии. Производительность процессора 8086 значительно превышает производительность его 8-битного предшественника – микропроцессора 8080 – и составляет от 330 до 750 тыс. операций в секунду. Хотя и имеется определённая совместимость микропроцессора 8086 с архитектурой ЦП 8080, разработчики не ставили перед собой цели достичь её полностью. Число линий адреса увеличено с 16 до 20, что позволяет адресовать память 1 Мбайт вместо 64 Кбайт. Увеличение ёмкости памяти упрощает переход к мультипрограммированию, поэтому в микропроцессоре 8086 предусмотрено несколько мультипрограммных возможностей. Кроме того, в микропроцессор 8086 встроены некоторые средства, упрощающие реализацию мультипроцессорных систем, что позволяет применять его с другими процессорами, например с процессором числовых данных 8087.

То обстоятельство, что 16 из линий адреса микропроцессора используются и как линии данных, приводит к тому, что на системную шину нельзя одновременно выдавать адреса и данные. Мультиплексирование адресов и данных во времени сокращает число контактов корпуса до 40, но и замедляет скорость передачи данных. Однако благодаря тщательно разработанной временной диаграмме работы скорость передачи уменьшается не столь значительно, как этого следовало бы ожидать. Микропроцессор имеет 16 линий управления, предназначенных для сигналов квитирования во время передач данных и внешнего управления ЦП. Он рассчитан на одно напряжение питания +5 В и однофазную синхронизацию, частота которой достигает 5 МГц. (Модель 8086-2 имеет частоту синхронизации до 8 МГц, а модель 8086-1 – до 10 МГц.) Потребляемая процессором 8086 мощность составляет 1,75 Вт.

Хотя микропроцессор 8086 может обращаться к слову по любому адресу, при нечётном адресе требуются два обращения к памяти: для младшего и для старшего байтов. Следовательно, возможна некоторая экономия времени, если хранить слова только по чётным адресам.

Внутри микропроцессора имеются следующие регистры: регистр команд, которым фактически служит 6-байтная очередь; 4 регистра данных,38 представляющих собой, по существу, набор арифметических регистров; группа указательных регистров,39 содержащая базовый и два индексных регистра, а также программный счётчик и указатель стека; группа из четырёх сегментных регистров;40 16-битное слово состояния процессора (регистр флажков). Все регистры имеют длину 16 бит. Регистры данных допускают адресацию не только целых регистров, но и их младшей и старшей половин.41

Из 16 бит слова состояния процессора семь не используются, а остальные делятся на флажки условий (флажки знака, нуля, чётности, переноса, вспомогательного переноса и переполнения),42 отражающие результат предыдущей операции, и флажки управления (флажки направления, прерываний и трассировки),43 от которых зависит выполнение специальных функций. Все флажки условий, кроме флажка переполнения, размещены в младшем байте регистра.

Как говорилось ранее, участвующие в формировании адреса указательные регистры имеют длину всего 16 бит, поэтому эффективный адрес (сумма базового и индексного адресов и смещения) имеет такую же длину. Но, с другой стороны, выдаваемый на шину адреса физический адрес должен содержать 20 бит. Дополнительные 4 бита образуются при сложении эффективного адреса с содержимым одного из сегментных регистров, умноженным на 16. Если результат сложения превосходит 220 – 1, 21-й бит отбрасывается; это называется «заворачиванием»44 адреса, потому что за максимальным адресом как бы следует нулевой.

Применение сегментных регистров, по существу, разделяет пространство памяти на перекрывающиеся сегменты, каждый из которых имеет размер 64 Кбайт и начинается на 16-байтной границе (называемой границей параграфа), т.е. начинается с адреса, кратного 16. 16 сегментов, начинающихся с адресов, кратных 64К, называют страницами памяти, а такие адреса – границами страниц. Как нетрудно увидеть, страницы не пересекаются между собой и покрывают всю доступную память. Обычно деление на страницы используется для совместного функционирования устройств, интерфейсы которых отображены на адресное пространство памяти; тогда каждое такое устройство использует одну страницу памяти, и адрес ячейки в адресном пространстве устройства будет совпадать с её адресом в сегменте, начинающемся там же, где и эта страница памяти. Также страничное деление упрощает разработку устройств, совместимых друг с другом, поскольку оно допускает лишь 16 типов устройств, отображающих свои интерфейсы на память. Так, в компьютере IBM PC страницы памяти с A по E используются как «видеопамять» (адресное пространство видеоадаптера), а страница F занята БСВВ, размещённой в ПЗУ45. Это ограничивает память, доступную пользователю, до 640 Кбайт. В защищённом режиме при использовании виртуальной памяти понятию «страница памяти» придаётся совершенно иное значение. Об этом будет рассказано в дальнейшем.

Наличие сегментных регистров обеспечивает следующие преимущества:

  •  ёмкость памяти может доходить до 1 Мбайт, хотя команды оперируют 16-битными адресами;
  •  секции кода, данных и стека могут иметь длину более 64 Кбайт благодаря использованию нескольких сегментов кода, данных или стека;
  •  упрощается использование отдельных областей памяти для программы, её данных и стека;
  •  при каждом выполнении программы она сама и (или) её данные могут размещаться в разных областях памяти. (Это связано также с мультипрограммированием, поскольку позволяет динамически перемещать программы между различными областями памяти.)

Сигнал сброса процессора обнуляет все его регистры, кроме регистра сегмента кода, в который загружается шестнадцатеричное значение FFFF. Таким образом, при перезагрузке процессора управление передаётся по физическому адресу FFFF0 (шестнадцатеричное значение). Обычно блок памяти, адресуемый этим значением, располагается в ПЗУ и содержит инструкции инициализации компьютера.

Очередь команд микропроцессора непрерывно заполняется, когда системная шина не требуется для других операций. Такое «опережение»46 значительно увеличивает пропускную способность ЦП, так как к моменту завершения текущей команды следующая команда чаще всего уже находится в ЦП, и нет необходимости дополнительно считывать её из памяти. В случае перехода очередь сбрасывается и заполняется заново, что не даёт экономии времени, но в среднем это происходит нечасто. Длина команд микропроцессора 8086 составляет от одного до шести байт, но организация очереди позволяет считывать команды только словами по чётным адресам. Имеется только одно исключение, связанное с переходом по нечётному адресу. В этом случае ЦП считывает сначала один байт, а затем продолжает считывать слова по чётным адресам.

Система команд микропроцессора 8086 состоит из 98 команд: 19 команд передачи данных, 38 команд их обработки, 24 команд перехода и 17 команд управления процессором. Каждая команда состоит из кода операции (КОП, или опкод47), идентифицирующего её, и операндов, несущих требуемую для операции информацию. Команды могут содержать несколько операндов, но чем больше операндов и чем они длиннее, тем больше места занимает команда в памяти и тем больше времени требуется для передачи её в ЦП. КОП и операнды могут иметь произвольную длину и не обязаны быть непрерывными; в то же время общая длина команды должна выражаться целым числом байт. Часто КОП занимает первый байт команды и три средних бита второго байта (это 3-битовое поле часто называют mod). КОП других команд занимает часть первого байта команды, а остальные биты этого байта занимает(ют) операнд(ы). Команды, добавленные к системе команд процессора 8086 в более совершенных процессорах (главным образом, в процессорах 80186 и 80386), содержат КОП в первых двух байтах и операнд(ы) – в остальных. Всего же в системе команд процессора 8086 насчитывается более 3800 команд вместе со всеми их вариантами.

Чтобы минимизировать общее число бит в команде, большинство команд процессора 8086 имеют не более двух операндов, причём минимум одним из операндов в двухоперандной команде является регистр, так как адреса памяти и ввода-вывода требуют сравнительно много бит (8…20), а из-за ограниченного числа регистров для определения регистра требуется всего несколько бит. Ограничение двумя операндами, конечно, уменьшает гибкость многих операций, но в действительности излишняя гибкость и не нужна. Например, команда сложения, в которой необходимо указывать два слагаемых и результат, приводится к двум операндам посредством загрузки суммы на место одного из слагаемых. При этом оно теряется, но обычно это не играет роли. Если же слагаемое потребуется в дальнейшем, его приходится дублировать (запоминать где-то ещё) до выполнения сложения.

Для микропроцессора 8086 фирмой Digital Research была разработана операционная система CP/M-86, совместимая с её предыдущей версией CP/M-80 для 8-битных процессоров, а затем и её многопользовательская однозадачная версия MP/M-86 и мультизадачная версия Concurrent CP/M. Однако эти ОС не применялись в персональных компьютерах и потому не получили большого распространения.

В персональных компьютерах микропроцессор 8086 практически не использовался, т.к. до 1980 г. 16-битные микросхемы поддержки для него были весьма дороги и дефицитны, а в 1979 г. уже был выпущен микропроцессор 8088, системы на базе которого дешевле в производстве. Однако в компьютерах Compaq DeskPro использовался именно этот процессор, что повышало производительность таких ПК по сравнению с IBM PC, построенным на основе микропроцессора 8088.

Центральные процессоры: Intel 8088

Несмотря на высокую производительность 16-битного микропроцессора 8086, он долгое время оставался малопопулярным из-за малого количества и дороговизны выпускаемых 16-битных микросхем поддержки. Поэтому 1 июня 1979 г. фирма Intel выпустила микропроцессор 8088, который представляет собой 8-битный микропроцессор, полностью совместимый с микропроцессором 8086 (т.е. имеющий такую же систему команд и набор регистров) и предназначенный для перевода аппаратных конфигураций на базе микропроцессоров 8080/8085 на программную среду микропроцессора 8086 с целью повышения производительности этих 8-битных систем. Новый микропроцессор, как и процессор 8086, содержал около 29000 транзисторов; две различные его модели работали на тактовых частотах 5 и 8 Мгц с производительностью 330 и 750 тыс. операций в секунду соответственно.

В микропроцессоре 8088 сохранены сегментные регистры, 20-битная адресация памяти и средства поддержки мультипроцессорных систем; сохранена также возможность обработки 16-битных операндов. Этот микропроцессор имеет 8 линий данных, как и микропроцессоры 8080/8085, но его архитектура аналогична архитектуре ЦП 8086. Разводка контактов корпуса микропроцессора 8088 такая же, как и у микропроцессора 8086, но старшие линии адреса не используются для передачи данных, а также есть незначительные различия в использовании линий управления. Поскольку, однако, линии управления микропроцессоров 8088 и 8080/8085 различаются, при введении микропроцессора 8088 в систему на базе микропроцессоров 8080/8085 требуется значительно изменить логику управления шиной. При этом в микропроцессоре 8088, как и в микропроцессоре 8085, адреса и данные мультиплексируются, поэтому в подсистемах памяти и ввода-вывода потребуются сравнительно небольшие изменения, если не увеличивать ёмкость памяти от 64 Кбайт, адресуемых микропроцессором 8085, до ёмкостей, использующих 20 линий адреса ЦП 8088.

В отличие от 6-байтной очереди команд микропроцессора 8086 в микропроцессоре 8088 длина очереди команд составляет 4 байта. Причина такого уменьшения длины очереди заключается в том, что микропроцессор 8088 может считывать данные из памяти только побайтно и следующее отсюда увеличение времени выборки следующей команды не позволяет процессору полностью использовать 6-байтную очередь. Алгоритм опережающей выборки отличается тем, что микропроцессор 8088 инициирует выборку команды, когда в очереди оказывается один свободный байт, а не два, как в микропроцессоре 8086.

На основе микропроцессора 8088 в августе 1981 г. фирмой IBM, ранее занимавшейся исключительно разработкой и продажей больших машин, был построен персональный компьютер IBM PC. Позже, весной 1983 г., появился следующий персональный компьютер фирмы IBM – IBM XT,48 аналогичный IBM PC, но со встроенным жёстким диском. По итогам продаж этих персональных компьютеров фирма IBM попала в 500 крупнейших американских фирм – быстрее, чем какая-либо другая компания – и победила в номинации «Триумф бизнеса семидесятых». Для своих персональных компьютеров фирма IBM заказала операционную систему у фирмы Microsoft, разработавшей программное обеспечение для персонального компьютера Altair-8800 ещё в 1975 г. Фирма Microsoft, в свою очередь, купила у фирмы Seattle Computer Products права на ОС 86-DOS, разработанную на основе ОС CP/M, и переименовала её в MS-DOS.49 Новая операционная система получила огромную популярность и стала фактическим стандартом для разработчиков программного обеспечения, не утратившим своё значение до сих пор. Только за интервал с 1981 по 1987 г.г. (версии MS-DOS 1.0 – 4.0) было продано 9 млн её копий.

Фирма IBM также разработала собственную операционную систему – PC-DOS, применённую в более поздних персональных компьютерах фирмы IBM. ОС PC-DOS полностью совместима с MS-DOS, так как фактически является лишь её незначительно модифицированным вариантом. Начиная с версии 3.0, операционные системы MS-DOS и PC-DOS развивались независимо, при этом не теряя взаимной совместимости. Однако версии PC-DOS 5.0 и старше не пользовались большим спросам, и поэтому фирма IBM прекратила дальнейшее совершенствование этой ОС.

Для модернизации систем на базе микропроцессоров 8086/8088 фирмой NEC выпускались микросхемы V20/30, позволяющие увеличить производительность системы на 5% простой заменой процессора фирмы Intel на новый: процессора 8086 – на процессор V30, процессора 8088 – на процессор V20. При этом не требовалось никакой дополнительной настройки системы.

 

Центральные процессоры: Intel 80186 и 80188

Микросхема 80186 представляет собой усовершенствованный вариант процессора 8086 со внутренними средствами, ранее реализовывавшимися 10 отдельными вспомогательными микросхемами. В микросхему 80186, кроме ЦПУ, встроены программируемый генератор синхронизации, программируемый контроллер прерываний, три программируемых таймера/счётчика, два контроллера ПДП со схемами прерываний и программируемые схемы выбора кристалла (дешифраторы адреса). Высокая степень интеграции системных компонентов сокращает число корпусов и контактов в системе, хотя увеличивает число контактов на корпусе ЦП до 68 из-за дополнительных линий, которые подключаются непосредственно к различным интерфейсам и устройствам. Такая степень интеграции позволяет сократить до одной микросхемы и устройств ввода-вывода большинство малых систем, таких, как кассовые аппараты, что ведёт к удешевлению этих систем и повышению их надёжности. В микросхеме 80186 впервые применён корпус типа «держатель кристалла»50 с 4-сторонним расположением контактов; позднее корпуса такого типа применялись и в других микросхемах фирмы Intel и других разработчиков. Процессор имеет одно напряжение питания +5 В.

Микропроцессор 80186 программно и аппаратно совместим с 8086, что позволяет применять в системах с процессором 80186 микросхемы управления шиной 8288/8289 и внешние процессоры 8087 и 8089, которые разработаны для микропроцессоров семейства 8086/8088. Тактовая частота различных моделей процессора 80186 составляла 8 и 16 МГц. Встроенная логика управления прерываниями совместима с контроллером 8259A и имеет четыре режима работы: один – для расширенной поддержки ОС iRMX 86, а три других режима не относятся к iRMX 86. Это вложенный, специальный вложенный и каскадный режимы. В каскадном и специальном вложенном режимах разрешается подключать ведомые контроллеры прерываний, что обеспечивает обслуживание до 128 линий запросов прерываний.

Процессор 80186 имеет три таймера, причём один из них внешне недоступен, но может быть делителем двух других таймеров или источником запросов в одном из внутренних контроллеров ПДП. Внутренняя логика выбора кристалла позволяет интерфейсам получать сигналы выбора кристалла непосредственно от процессора, при этом логика дешифрации адреса в этих интерфейсах не требуется. Имеется шесть линий выбора кристалла в адресном пространстве памяти и семь – в пространстве ввода-вывода. Логику выбора кристалла можно программировать, например, для задания размеров модулей памяти. При этом все модули памяти должны быть одного размера, а именно, от 2 до 128 Кбайт. Так же, каждому интерфейсу ввода-вывода должен быть ассоциирован блок адресного пространства, кратный 128 байт. Кроме этого, в процессоре имеется два независимых контроллера ПДП, которые могут пересылать байты или слова блоками до 64 Кбайт. Регистры управления этих контроллеров отображаются на младшие адреса пространства памяти.

Завершённая система на базе микропроцессора 80186 может состоять из источника питания, кварцевого осциллятора, микропроцессора, защёлок адреса, приёмопередатчиков, ПЗУ, ЗУПВ, периферийного интерфейса, терминала, дискового интерфейса и НГМД. Для образования слабо связанной мультипроцессорной конфигурации потребуется добавить микросхемы контроллера шины и арбитра шины. Отметим в обоих случаях сокращение общего числа микросхем.

Кроме наличия внутренних компонентов, реализующих разнообразные функции, процессор 80186 имеет вдвое более высокую производительность по сравнению с микропроцессором 8086, а его линии адреса/данных и некоторых сигналов управления имеют вдвое большую нагрузочную способность. Наконец, в процессоре 80186 предусмотрены дополнительные команды работы со стеком,51 с портами ввода-вывода,52 арифметические команды53 и команды реализации языков высокого уровня.54

Сравнительно низкая популярность микропроцессора 80186 связана в основном с тем, что он был единственным процессором семейства Intel 80x86, на основе которого фирма IBM не производила персональные компьютеры. Тем не менее, процессор 80186 использовался в персональном компьютере Tandy 2000 фирмы Tandy Radio Shack.

Фирмой Intel выпускался также 8-битный вариант процессора 80186, названный 80188. Построенный на основе микропроцессора 8088, процессор 80188 имел 8-битную шину данных и мог применяться в системах на базе 8-битных микропроцессоров 8080/8085 с некоторыми модификациями этих систем. Процессор 80188 имел ещё меньшую популярность, чем процессор 80186, из-за своей малой производительности по сравнению с другими микропроцессорами того времени. Предназначенный в основном для модернизации 8-битных систем, он был выпущен уже тогда, когда таких систем практически не оставалось. Фирма IBM планировала выпустить на базе процессора 80188 удешевлённый и менее мощный вариант IBM PC – персональный компьютер IBM PCjr, ориентированный на домашнее применение. Но в 1982 г. количества процессоров 80188 ещё не было достаточно для массового производства компьютеров, а к 1983 г., когда процессоры стали выпускаться в достаточном количестве, они уже устарели. В конце 1983 г. IBM PCjr был создан на основе процессора 8088, как и IBM PC, и потерпел полный крах из-за неудобной клавиатуры, неспособности к расширению и других недостатков. В 1985 г. фирма IBM была вынуждена прекратить его производство.

 

Центральные процессоры: Intel 80286

Процессор 80286, выпущенный фирмой Intel 1 февраля 1982 г., является усовершенствованным вариантом микропроцессора 8086, содержащим схемы управления памятью и её защиты для упрощения реализации мультизадачных систем. На кристалле процессора размещено около 134000 транзисторов новой 1,5-микронной технологии, позволившей оформить микропроцессор в таком же, как и у микросхемы 80186, корпусе с 68 контактами, расположенными в четыре ряда. Выпускались модели процессора 80286 с частотами синхронизации 6, 8, 10 и 12,5 МГц производительностью 0,9, 1,2, 1,5 и 2,6 млн операций в секунду соответственно. Все модели микропроцессора имели одно напряжение питания +5 В.

Помимо регистров микропроцессора 8086, дополнительно введены следующие регистры, предназначенные для мультипрограммирования:

  •  слово состояния машины55 (16 бит) для хранения дополнительных бит состояния, связанных с расширенными возможностями процессора 80286, например, бита разрешения защиты, определяющего, в реальном или защищённом режиме работает процессор;
  •  расширения сегментных регистров (по 48 бит) для хранения текущих сегментных дескрипторов;
  •  регистр задачи56 (16 бит) для адресации системного дескриптора сегмента, который определяет базовый адрес, права доступа и размер сегмента состояния текущей задачи;
  •  регистры дескрипторной таблицы57 (один 64-битный и два 40-битных) для адресации дескрипторных таблиц, которые содержат дескрипторы различных сегментов.
  •  Система команд микропроцессора 80286 включает в себя все команды процессоров 8086 и 80186, а также 16 новых команд58 для работы со средствами управления памятью. Программы микропроцессоров 8086/8088 могут выполняться на процессоре 80286 без повторного ассемблирования или с переассемблированием с минимальными модификациями. Это – первый микропроцессор фирмы Intel, принципиально отличающийся от предыдущего и в тоже время способный выполнять все программы для него. Позже такая совместимость стала промышленным стандартом.

После сброса процессор работает в режиме реального адреса (реальном режиме), но возможен переход в режим защищённого виртуального адреса (защищённый режим) путём сброса бита разрешения защиты в слове состояния машины. Вновь перевести процессор в реальный режим может только его сброс.

Суть защищённого режима состоит в том, что физические адреса, которые схема управления памятью посылает в память, могут отличаться от логических, которые генерируются командами в соответствии с режимом адресации. Это позволяет пользователю разрабатывать программу в логическом пространстве, называемом также виртуальным, не учитывая ограничений реально доступной памяти (по общему размеру и особенностям размещения в адресном пространстве). При этом обеспечиваются два основных преимущества. Во-первых, при разделении программ на несколько частей, каждая из которых отображается на область реальной памяти, программа не обязательно должна занимать смежный блок памяти, что уменьшает фрагментацию памяти множеством одновременно выполняющихся программ и вместе с тем пространство, расходуемое впустую. Во-вторых, при выполнении не обязательно хранить в памяти всю программу. При обращении к той части программы, которой в данный момент в памяти нет, операционная система может приостановить программу, загрузить требуемую секцию кода из внешней памяти и возобновить выполнение программы. Следовательно, становятся допустимыми программы, размер которых больше объема имеющейся памяти. Другими словами, пользователю кажется, что он работает с большей памятью, чем на самом деле.

Преобразование логических адресов в физические происходит следующим образом. Как и в микропроцессоре 8086, программа разбивается на сегменты, причём не делается предположений о размещении сегментов в физической памяти. Номер сегмента в логическом адресе служит индексом сегментной таблицы, которая возвращает начальный физический адрес требуемого сегмента. Этот адрес суммируется со смещением ячейки памяти в сегменте, образуя физический адрес ячейки памяти. Если каждому заданию назначается отдельная область в сегментной таблице, то базовый адрес той секции сегментной таблицы, которая ассоциируется с текущим выполняемым заданием, находится в регистре, называемом регистром сегментной таблицы. Индекс сегмента берется относительно регистра сегментной таблицы. Поскольку преобразование адреса должно выполняться при каждом обращении к памяти, либо вся сегментная таблица, либо ее часть, содержащая начальные адреса сегментов выполняемого задания, должна храниться в регистрах, входящих в состав схемы управления памятью.

Каждый элемент в сегментной таблице (длиной до 8192 элементов) называется дескриптором сегмента. Кроме сегментных дескрипторов для сегментов кода, данных и стека, в микропроцессоре 80286 имеются системные управляющие дескрипторы для специальных системных данных и операций передач управления. Дескриптор содержит начальный адрес сегмента, а также следующие атрибуты:

  •  поле состояния, которое показывает, находится в памяти или нет сегмент, к которому производится обращение. Если требуемый сегмент в памяти отсутствует, возникает сегментное нарушение, инициирующее вызов монитора. Монитор загружает нужный сегмент в память, модифицирует сегментную таблицу и возобновляет выполнение программы. Когда достаточного пространства в памяти нет, один или несколько сегментов передаются во внешнюю память и удаляются из оперативной, освобождая в ней место;
  •  поле предела, показывающее размер сегмента (до 64 Кбайт). Эта информация предотвращает обращения к сегментам по недействительному адресу, вызываемые, например, переполнением стека. Когда смещение больше длины сегмента, генерируется прерывание с вызовом монитора;
  •  поле привилегий,59 показывающее, каким минимальным уровнем привилегий должна обладать задача, чтобы получить доступ к сегменту. Микропроцессор 80286 поддерживает 4 уровня привилегий;
  •  поле типа, обеспечивающее защиту от несанкционированных считывания, записи или выполнения сегмента. Это поле содержит 4 бита, которые показывают следующие возможности по обращению к сегменту:
    •  выполнимый – содержимое сегмента можно выполнять как команды, запись в сегмент запрещена;
    •  считываемый (для невыполнимого сегмента) – содержимое сегмента можно считывать как операнды;
    •  записываемый (для выполнимого сегмента) – содержимое сегмента допускается модифицировать;
    •  направление расширения (для невыполнимого сегмента) – сегмент данных растёт вверх, сегмент стека – вниз;
    •  ограниченно выполнимый (для выполнимого сегмента) – содержимое сегмента может выполняться только задачами с уровнем привилегий не ниже привилегий данного сегмента.

Направление расширения сегмента влияет на то, какие адреса считаются недействительными – больше или меньше предела сегмента. Каждому сегменту, как логической единице программы, можно придавать несколько ограничений по доступу посредством установки комбинаций этих бит. Четвёртый бит поля типа определяет тип дескриптора – дескриптор сегмента или системный дескриптор. Системный дескриптор нельзя загрузить в расширение сегментного регистра;

  •  поле доступа, которое обеспечивает полезную информацию о выборе сегмента для замены в случае нехватки физической памяти, когда из внешней памяти вызывается новый сегмент. Были предложены и исследованы такие алгоритмы замены, как очередь,60 замена наименее часто используемого61 и замена наиболее давно используемого.62 Однако, за исключением алгоритма очереди, их реализации требуют сложных аппаратных средств. Альтернативой служат биты доступа, ассоциируемые с каждым сегментом. Когда к сегменту производится обращение, один из его битов доступа автоматически устанавливается в 1. После того, как все биты доступа установлены в 1, монитор может сбросить их в 0. Анализируя биты доступа, монитор выбирает сегмент, к которому давно не было обращений. В дескрипторах микропроцессора 80286 поле доступа имеет длину 1 бит;
  •  поле изменения, которое показывает, модифицировался сегмент или нет после передачи его в память. При замене сегмента, если он был изменен, необходимо передать его во внешнюю память перед загрузкой нового сегмента. Если же сегмент не модифицировался, монитор должен только загрузить новый сегмент из внешней памяти, что позволяет избежать относительно длительной операции записи.

Важно осознавать, что и в защищённом режиме процессора 80286 сегменты могут перекрываться в физической памяти. Это часто используется для создания нескольких дескрипторов одного сегмента с разными правами доступа, например, для передачи дочерней задаче. Другое применение «псевдонимов»63 сегментов состоит в самомодификации кода: запись в сегмент кода, помеченный как выполнимый, не допускается, но возможно создание записываемого сегмента данных по тому же физическому адресу и запись в этот сегмент с модификацией кода.

При обращении к памяти типичная последовательность операций, выполняемых схемой управления памятью, выглядит таким образом:

  •  1. Определить номер сегмента и обратиться к соответствующему элементу сегментной таблицы;
  •  2. Проверить состояние. Если в памяти нужного сегмента нет, генерировать прерывание в монитор, который инициирует процедуру обслуживания сегментного нарушения;
  •  3. Сравнить смещение и длину сегмента. Если смещение слишком велико, генерировать прерывание в монитор;
  •  4. Проверить тип доступа. При попытке несанкционированного обращения генерировать прерывание в монитор;
  •  5. Прибавить начальный адрес сегмента к смещению для образования физического адреса и выдать результат на шину адреса;
  •  6. Модифицировать поля доступа и изменения, а затем ожидать следующего обращения к памяти.

Процедура обслуживания сегментного нарушения реализует следующие действия:

  •  1. Проверить таблицу карты памяти. Если требуемый сегмент помещается в свободную область памяти, перейти к шагу 4;
  •  2. Выбрать удаляемый сегмент, анализируя биты доступа, и модифицировать состояние выбранного сегмента;
  •  3. Проверить бит изменения заменяемого сегмента и, если этот сегмент был модифицирован, записать его во внешнюю память;
  •  4. Загрузить требуемый сегмент в память и модифицировать карту памяти и сегментную таблицу;
  •  5. Возвратиться к команде, которая вызвала сегментное нарушение.

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

Таким образом, в режиме защищенного виртуального адреса (защищенном режиме) микропроцессора 80286 содержимое сегментного регистра используется как селектор сегмента, показывающий, где в дескрипторной таблице хранится дескриптор сегмента. Микропроцессор 80286 поддерживает одну дескрипторную таблицу прерываний, одну глобальную дескрипторную таблицу и неограниченное число локальных дескрипторных таблиц. Каждая задача имеет свою локальную дескрипторную таблицу, которая, следовательно, защищена от других задач, и использует глобальную дескрипторную таблицу для доступа к разделенным сегментам. Эти таблицы могут находиться по любым адресам памяти и адресуются регистром дескрипторной таблицы прерываний, регистром глобальной дескрипторной таблицы и регистром локальной дескрипторной таблицы соответственно. Регистры дескрипторных таблиц должны загружаться операционной системой с помощью специальных команд.

В 48-битных динамически модифицируемых регистрах расширения сегментных регистров хранятся дескрипторы соответствующих сегментов. Эти регистры расширения состоят из 8-битного поля управления доступом, 24-битного поля начального адреса сегмента и 16-битного поля предела. Важно отметить, что регистры расширения не являются программируемыми. Когда содержимое сегментного регистра изменяется командой, первые три слова выбранного сегментного дескриптора автоматически загружается в расширение этого сегментного регистра из соответствующей дескрипторной таблицы, находящейся в памяти. (В дескрипторах таблиц имеется и четвертое слово, но оно пока не используется.) Переключение с одной задачи на другую изменяет содержимое регистра локальной дескрипторной таблицы, и он адресует другую локальную дескрипторную таблицу.

Селектор сегмента, хранимый в сегментном регистре, состоит из бита, определяющего использование для хранения дескриптора сегмента локальной или глобальной дескрипторных таблиц, 13-битного индекса сегмента в этой таблице, и 2-битного уровня привилегий, запрашиваемого для доступа к этому сегменту. Уровень привилегий сегмента можно настраивать для защиты этого сегмента от обращений задач с меньшими уровнями привилегий.

Обращение к памяти в защищённом режиме процессора 80286 происходит следующим образом. Если при этом обращении используемый сегментный регистр не менялся, 24-битный физический адрес формируется сложением эффективного адреса и 24-битного базового адреса сегмента из расширения сегментного регистра (при условии, что предел и права доступа не нарушаются). Если же сегментный регистр изменялся явно (например, командой передачи данных) или неявно (например, командой межсегментного перехода), старшие 13 бит сегментного регистра используются как индекс, который прибавляется к содержимому соответствующего регистра дескрипторной таблицы для получения местоположения дескриптора, автоматически затем загружаемого микропроцессором из дескрипторной таблицы в расширение сегментного регистра. После загрузки нового расширения микропроцессор проверяет, находится ли нужный сегмент в памяти, и если его там нет, генерируется прерывание; тогда операционная система передает сегмент из внешней памяти. Когда сегмент загружен, эффективный адрес прибавляется к базовому адресу сегмента для получения физического адреса операнда в памяти.

Чтобы упростить переключение процессов (или задач), каждая задача имеет сегмент состояния задачи64 размером 104 байта, который служит областью хранения всего состояния выполнения. Текущий сегмент состояния задачи определяется системным сегментным дескриптором, который адресуется регистром задачи. Сегмент состояния задачи в основном предназначен для запоминания регистров. Во время переключения задач микропроцессор 80286 запоминает все состояние выполнения в текущем сегменте состояния задачи и загружает в регистр задачи адрес сегмента состояния новой задачи. Затем из выбранного сегмента состояния задачи загружается новое состояние выполнения и процессор возобновляет новую задачу. Это позволяет переключать задачи всего за 250 – 300 тактов, что соответствует нескольким десяткам микросекунд (до десятков тысяч переключений задач в секунду).

В режиме реального адреса процессор 80286 функционирует так же, как микропроцессор 8086, и дополнительные регистры не используются.

В отличие от микропроцессоров 8086/8088 и 80186, в процессоре 80286 линии данных и адресов не мультиплексируются: имеется 16 линий данных и 24 линии адреса, что позволяет процессору адресовать память до 16 Мбайт. В реальном режиме процессор формирует 20-битный адрес, и четыре старшие линии адреса не используются. Логический адрес, используемый в защищённом режиме микропроцессора 80286, состоит из 14-битного номера сегмента (13-битный индекс таблицы и однобитный индикатор таблицы) и 16-битного эффективного адреса. Это позволяет каждому заданию использовать виртуальную память до 1 Гбайт (230 байт).

Кроме средств управления памятью, увеличенной ёмкости памяти благодаря 24-битным адресам и дополнительных команд, производительность процессора 80286 в мультипрограммной среде в шесть раз выше производительности микропроцессора 8086. Имеются процессор числовых данных 80287, генератор синхронизации 82284, контроллер шины 82288 и арбитр шины 82289, совместимые с процессором 80286 и являющиеся аналогами микросхем 8087, 8284A, 8288 и 8289 для микропроцессоров 8086/8088. Защёлки адреса 8282/8283 и приёмопередатчики 8286/8287 совместимы с процессором 80286.

Отметим, что процессор числовых данных должен контролировать переключения задач центральным процессором, так как иначе он может сохранить результат вычислений одной задачи в памяти другой задачи. Поэтому когда сопроцессор 80287 перехватывает команду «ожидать готовности сопроцессора» после переключения задачи ЦП, он сохраняет своё текущее состояние в сегменте состояния старой задачи и восстанавливает из сегмента состояния вновь запущенной задачи своё новое состояние. Подразумевается, что каждая команда сопроцессора предваряется командой ожидания завершения его предыдущей операции, как это автоматически делают ассемблеры. Таким образом, сопроцессор 80287 также обладает средствами поддержки мультипрограммирования.

Самой известной мультизадачной операционной системой для микропроцессоров 80286 стала Microsoft Windows 3.0. Она позволяла запускать как программы, разработанные специально для неё, так и программы реального режима, разработанные для ОС MS-DOS. При этом программы реального режима не могли выполняться одновременно с программами защищённого режима. В более поздних версиях этой системы (использующих дополнительные возможности микропроцессора 80386) была добавлена возможность одновременного выполнения нескольких программ реального режима, а также возможность одновременного выполнения программ реального и защищённого режима.

Процессор 80286 стал невероятно популярным: на его базе фирмой IBM летом 1984 г. был выпущен персональный компьютер IBM AT,65 с энтузиазмом воспринятый и деловыми кругами, и индивидуальными пользователями. К 1988 г., через 6 лет после выпуска процессора, по всему миру насчитывалось более 15 млн компьютеров на его базе. Микропроцессор 80286 показал, что персональные компьютеры могут быть также мощны, как и большие промышленные компьютеры.

В апреле 1987 г. фирма IBM объявила о создании нового семейства персональных компьютеров, названного PS/2.66 В компьютерах IBM PS/2-30 использовался микропроцессор 8088, как и в оригинальных IBM PC, а в компьютерах IBM PS/2-50/60 – новый микропроцессор 80286. Для последних фирмой Microsoft также была разработана мультизадачная операционная система OS/2. Эта система не имела графического интерфейса, в отличие от ОС Microsoft Windows, и потому была менее требовательна к ресурсам компьютера. Позже фирма IBM выкупила права на систему OS/2 и разрабатывала её самостоятельно.

 

Центральные процессоры: Intel 80386

Микропроцессор 80386, выпущенный 17 октября 1985 г., – «истинно 32-битный» процессор: ширина его шин адреса и данных, а также размер регистров, составляют 32 бита. Это упрощает вычисление адреса, так как весь адрес ячейки памяти может храниться в одном регистре. Кроме того, становится возможной адресация 4 Гбайт физической и 64 Тбайт виртуальной памяти.

Кроме повышения разрядности, в процессоре 80386 имеется и ряд других важных нововведений: 6-байтная очередь команд процессора 8086 заменена 2-ступенчатым «конвейером»: 16-байтной очередью команд и отдельной от неё очередью инструкций. Устройство выборки по мере освобождения очереди команд выбирает из памяти новые команды и помещает их в очередь, а дешифратор команд по мере освобождения очереди инструкций выбирает из очереди команд новые команды, преобразует их в 112-битный внутренний формат и помещает в очередь инструкций. Устройство управления процессора выбирает уже дешифрованные команды из очереди инструкций и выполняет их. Обычно по завершению выполнения одной команды немедленно начинается выполнение следующей, которая уже выбрана из памяти и дешифрована. Однако, как и в микропроцессоре 8086, команды перехода сбрасывают обе очереди конвейера, и требуется время на их повторное заполнение. В таком случае конвейеризация не даёт выигрыша производительности.

Все программируемые регистры процессора 80386, кроме сегментных, 32-битные, но для обеспечения совместимости с предыдущими процессорами семейства Intel 80x86 можно отдельно адресовать их младшие 16-битные половины. Таковы 8 регистров общего назначения:67 можно адресовать их целиком, только младшую половину,68 а для регистров данных также каждую из половин младшей половины69 (как и в предыдущих процессорах семейства). Сегментных регистров70 шесть, все они 16-битные, как и в предыдущих процессорах (где их было четыре). Два других программируемых регистра – 32-битный указатель команды71 и 32-битный регистр флажков. В старшем байте младшего слова регистра флажков имеются новые флажки, которых не было в старшем байте 16-битного регистра флажков предыдущих процессоров. По сравнению с теми процессорами, добавлена новая группа флажков – системные флажки, которые отражают текущее состояние компьютера в целом и чаще используются операционной системой, а не прикладными программами. Это флажки виртуального режима, возобновления, вложенной задачи и уровня привилегии ввода-вывода.72 14 бит регистра флажков зарезервированы фирмой Intel и не используются.

Кроме программируемых регистров, в микропроцессоре 80386 имеются также регистры управления, проверки и отладки, доступ к которым ограничен. Эти регистры обычно не используются прикладными программами, но они применяются для поддержки операционной системы, мультизадачности, отладки и других компонентов среды разработки и выполнения программ (операционной среды). Регистры управления, проверки и отладки не могут быть операндами никаких команд, кроме команд передачи их содержимого в другой регистр микропроцессора (или наоборот), причём даже эти команды возможно выполнить только имея наивысший уровень привилегий. Имеется четыре 32-битных регистра управления;73 первый из них соответствует слову состояния машины процессора 80286, но в нём используется больше битов. Второй регистр управления зарезервирован, а два остальных используются для страничной организации памяти. Речь о ней пойдёт в дальнейшем. В первом регистре управления имеются следующие флажки: разрешения страниц, типа сопроцессора, переключения задачи, эмуляции сопроцессора, наличия сопроцессора и разрешения защиты.74 Как видно, большая часть этих флагов применяется для управления сопроцессором.

Из восьми 32-битных регистров отладки75 два не используются, а остальные являются важным элементом мощных отладочных средств микропроцессора 80386. Четыре из них хранят четыре физических адреса точек останова, а два других – флажки условий останова, состояния отлаживаемой задачи, длин элементов, на которые ссылаются адреса точек останова, локальности или глобальности этих адресов, запрещения или разрешения опережающей выборки команд по указанным адресам. Останов можно запрограммировать так, чтобы он происходил при выполнении, чтении или записи данных по перечисленным адресам. Два 32-битных проверочных регистра76 используются программистами драйверов устройств для написания тестовых программ. Они практически не используются прикладными и системными программистами.

Система команд процессора 80386 аналогична системе команд процессора 80286, причём все команды могут выполняться над 32-битными или меньшими регистрами. Кроме того, добавлены команды обработки отдельных битов операнда,77 работы с двойными словами78 и с сегментными регистрами.79 Режимы адресации микропроцессора существенно превосходят режимы предыдущих процессоров. Теперь в качестве базового и индексного регистра можно использовать любой из восьми регистров общего назначения (кроме регистра указателя стека), причём для индекса можно задавать коэффициент умножения (1, 2, 4 или 8). Различные коэффициенты используются при работе с массивами байтов, слов, двойных слов или четверных слов.

Значительная часть команд процессора 80386 более эффективно реализована, чем в его предшественниках; особенно сильно это касается арифметических команд. Так, процессор 8086 выполняет команды сравнения, декремента, деления и умножения80 соответственно за 15, 21, 165 и 137 тактов синхронизации (в среднем), а процессор 80286 – за 7, 7, 25 и 24 тактов. Процессор 80386 выполняет те же команды за 5, 6, 25 и 18 тактов, что вместе с увеличенной тактовой частотой даёт существенное увеличение производительности компьютера.

Кроме того, в реальном режиме процессора 80386 не используется «заворачивание» адресного пространства, как в более ранних процессорах. Попытка обращения к адресу за пределами сегмента приводит к генерации особого случая, а за пределами 1 Мбайта адресного пространства – к использованию полученного адреса без его усечения. Это позволяет программам реального режима адресовать 1114096 байт (около 1088 Кбайт) памяти, хотя и за счёт некоторой потери совместимости со старыми программами. Более того, по-другому ведут себя некоторые команды81 при задании им некорректных операндов.

Микропроцессор 80386 имеет три режима работы: реальный, в котором он работает полностью аналогично процессору 8086, защищённый, в котором он работает так же, как и процессор 80286 в защищённом режиме, и режим виртуального процессора 8086 (виртуальный режим). И реальный, и защищённый режим отличаются от соответствующих режимов процессора 80286 только быстродействием, размером и количеством регистров и наличием дополнительных команд. Кроме того, в защищённом режиме появилась возможность создавать большие (до 4 Гбайт) сегменты, позволяющая использовать плоскую модель адресации памяти, подобную применяемой в микропроцессоре 68000 фирмы Motorola.

Режим виртуального процессора 8086, впервые появившийся в процессоре 80386, состоит в том, что отдельная задача может выполняться как будто в реальном режиме, хотя ОС имеет доступ ко всем возможностям защищённого режима: например, могут одновременно выполняться 16-битные программы реального режима и новые 32-битные программы. Хотя компьютер в целом может работать только в реальном или защищённом режиме, но в последнем отдельная задача может выполняться в виртуальном режиме, что обеспечивает ей среду процессора 8086, такую же, как среда реального режима процессора 80386. Тем временем главная мультизадачная ОС компьютера и другие программы защищённого режима имеют доступ ко всем ресурсам защищённого режима компьютера. Операционная система реального режима, как и любая прикладная программа, может выполняться как задача, позволяя пользователю выполнять программы реального режима процессоров 8086/8088 и 80286. Следовательно, мы имеем ОС, выполняющуюся под собственной операционной системой защищённого режима, которая управляет виртуальной памятью и приоритетами среди других задач. Собственную ОС процессора 80386 называют также гипервизором, чтобы отличить её от другой операционной системы, выполняющейся как задача.

«Виртуальной машиной» (по аналогии с виртуальной памятью, распределяемой ОС) называют совокупность памяти и устройств ввода-вывода (например, клавиатуры и дисплея), доступ к которым перехватывается и обрабатывается операционной системой. Например, на виртуальной машине 8086 программа выполняется так, как будто она имеет в распоряжении целую машину, но когда она осуществляет доступ к системным ресурсам, гипервизор перехватывает это действие и разрешает его либо производит своими средствами. Важно понимать, что виртуальные машины реализуются средствами операционной системы, а не процессора. Так, в некоторым мультизадачных системах, в которых разрешается одновременно запускать несколько программ реального режима (например, Microsoft Windows 3.11), их совместный вывод на экран осуществляется так: программа вызывает функцию ОС реального режима для вывода на экран; ОС пытается произвести запись в видеопамять, защищённую от записи гипервизором; возникает особый случай защиты, который вызывает гипервизор; гипервизор определяет, что производится вывод на экран, и эмулирует его, производя вывод в область экрана, соответствующую выполняемой программе; затем управление возвращается программе. Чем больше таких перехватов происходит, тем сильнее замедляется программа реального режима, когда она или ОС, под которой она выполняется, пытается производить операции ввода-вывода или пользоваться другими системными ресурсами. Поэтому программы реального режима, интенсивно использующие системные ресурсы, например, программа фоновой печати, в виртуальном режиме процессора 80386 выполняются неэффективно и должны выполняться в реальном режиме или быть переписаны под защищённый режим.

Идея виртуальных машин впервые была реализована в конце 1960-х годов в компьютере IBM/370. Операционная система82 этих компьютеров состояла из двух частей – управляющей программы83 (гипервизора) и диалоговой мониторной системы,84 под которой и выполнялись прикладные программы. Управляющая программа могла запускать другие копии управляющей программы как собственные задачи, и ни одна её копия не имела средств определить, управляет ли она компьютером или выполняется под другой копией управляющей программы. Процессор 80386, наоборот, не поддерживает «виртуальные машины 80386»: гипервизор не может запускать копии себя как собственные задачи; другими словами, ОС защищённого режима не может выполнять другие ОС защищённого режима.

Бит виртуального режима в расширении регистра флажков процессора 80386 показывает, что надо формировать 20-битные линейные адреса и управлять сегментами так же, как в реальном режиме. Этот бит также запрещает некоторые инструкции процессора, применяемые программами защищённого режима, и делает доступными текущей задаче только младшие слова расширенных регистров, в частности, регистра флагов. Поэтому сам бит виртуального режима недоступен задаче реального режима, и она не может определить, выполняется ли она в реальном режиме процессора или под гипервизором. Для контроля доступа к памяти задач виртуального режима применяется страничная организация памяти, так как все задачи виртуального режима адресуют один и тот же участок физической памяти размером 1 Мбайт.

Страничная организация памяти – одна из наиболее интересных и новых возможностей микропроцессора 80386 – ничего не имеет общего со страницами памяти процессоров 8086/8088. Эта возможность предназначена только для проектирования операционных систем, так как пользователю страницы недоступны. Страница памяти процессора 80386 – это блок памяти размером 4 Кбайт, начинающийся с адреса, кратного 4096 байт. Элемент данных, который начинается по любому из этих адресов, называется выравненным по границе страницы. В виртуальной памяти по мере необходимости производится обмен страниц между оперативной и внешней памятью; 4-Кбайтные секции внешней памяти, предназначенные для хранения страниц, называются страничными слотами. Адресация страницы в физическом 4-Гбайтном адресном пространстве упрощается, так как для идентификации страницы достаточно 20 бит. Это обеспечивает простое назначение физического адреса для замены сформированного программой линейного адреса, позволяя нескольким программам одновременно пользоваться всем 1 Мбайтом адресного пространства процессоров 8086/8088. Поэтому страничная организация применяется для обеспечения совместимости микропроцессора со старыми программами. Допускается работать вовсе без сегментации памяти (используя плоскую модель адресации) – только с её страничным разбиением.

Для управления страницами памяти используются каталоги страниц85 и таблицы страниц.86 Каждый каталог страниц может адресовать до 1024 таблиц страниц, а каждая таблица страниц – до 1024 страниц; таким образом, один каталог страниц может адресовать всё адресное пространство процессора (4 Гбайт). Формат элементов таблиц и каталогов страниц почти идентичен формату дескрипторов сегментов, поэтому эти элементы называют также «дескриптором таблицы страниц» и «дескриптором страницы» соответственно. Однако всё это означает, что при страничной организации памяти для получения физического адреса ячейки требуются два дополнительных обращения к памяти – чтение дескриптора таблицы страниц и чтение дескриптора страницы. Для уменьшения временных затрат на доступ к памяти в страничном устройстве применяется буфер преобразования,87 содержащий 32 последних использованных таблицы страниц.

Линии данных и адресов в процессоре 80386, как и в процессоре 80286, не мультиплексируются: имеется 32 линий данных и 32 независимых от них линии адреса. Для ускорения последовательных обращений к памяти применяется их конвейеризация: одновременно с передачей или приёмом данных из одной ячейки памяти на шину адреса выдаётся адрес следующей ячейки. Конвейеризация адреса возможна только при использовании 32-битных микросхем памяти без мультиплексирования линий адреса и данных. Также для ускорения доступа к памяти в процессоре 80386 впервые было применено кэширование88 памяти – применение небольшой быстрой памяти для хранения наиболее часто используемой информации. Применяются микросхемы кэш-памяти89 прямого отображения и с двухсторонней или четырёхсторонней ассоциативностью. В первом случае каждая ячейка кэш-памяти соответствует 256 адресам физической памяти и содержит значение той из них, к которой процессор обращался последней. Обычно такая кэш-память разделяется на блоки по 256 ячеек, причём 256 последовательных ячеек физической памяти всегда отображаются на различные ячейки кэш-памяти. Один такой блок обслуживает 4 Кбайта физической памяти. В случае кэш-памяти с двухсторонней ассоциативностью каждой ячейке физической памяти сопоставляется две ячейки кэш-памяти, и при считывании её в кэш-память она помещается в ту из ячеек, к которой дольше не было обращений процессора. Это позволяет увеличить процент попаданий в кэш-память при значительном усложнении схемы управления ей, а значит, при её удорожании. Четырёх- и более- сторонняя ассоциативность кэш-памяти применяется редко. Возможно реализовать и полностью ассоциативную кэш-память, когда каждая ячейка физической памяти может быть помещена в любую ячейку кэш-памяти. При этом расходы на реализацию кэширования растут, а увеличение процента попаданий невелико.

При обращении к памяти процессор 80386 считывает и записывает двойные слова, а затем выбирает из них требуемые байты. Поэтому выгоднее выравнивать данные в памяти по границе двойных слов, а не слов, как в 16-битных процессорах: для считывания или записи невыравненного двойного слова потребуются два цикла обращения к памяти. Поскольку таким образом данные всегда считываются и записываются по адресам, кратным 4, то процессору достаточно иметь 30 контактов адреса; нули в двух младших разрядах адреса подразумеваются. Вместо двух младших линий адреса применяются 4 независимых линии для разрешения передачи отдельных байтов. Процессор может быть подключён и к 16-разрядной шине адреса и (или) данных; тогда старшие 16 контактов соответствующих линий не используются.

Выпускались модели микропроцессора 80386, работающие на тактовой частоте 16, 20 (с февраля 1987 г.), 25 (с апреля 1988 г.) и 33 (с апреля 1989 г.) МГц; эти модели имели производительность 5,5, 6,5, 8,5 и 11,5 млн операций в секунду соответственно. На кристалле процессора содержалось около 275000 транзисторов. Позже, с 16 июня 1988, выпускались и 16-битные версии процессора 80386, названные 386SX. По отношению к 32-битным процессорам 80386, с тех пор называемым 386DX, они были тем же, чем процессоры 8088 были по отношению к процессорам 8086: имея внутреннюю архитектуру, полностью аналогичную архитектуре процессоров 386DX, процессоры 386SX, подобно 16-битным процессорам 80286, имели 24-битные шины адреса и 16-битные шины данных. Процессор 386SX мог адресовать только 16 Мбайт памяти, что делало его совместимым со старыми 16-разрядными микросхемами памяти и другими 16-битными микросхемами, разработанными для микропроцессора 80286. С другой стороны, процессор 386SX мог выполнять все программы, написанные для 386DX, и наоборот. Это сделало его популярным для изготовления «Турбо-плат», например, Cumulus 386SX, Intel InBoard или Orchid Tiny Turbo. Такая «Турбо-плата» содержит микропроцессор 386SX, схемы, обеспечивающие совместимость этой платы с системой на базе процессора 80286, а также, возможно, дополнительную оперативную память, увеличивающую прирост производительности. «Турбо-плату» возможно подключить вместо процессора 80286 в компьютер типа IBM AT, таким образом увеличивая производительность системы на базе процессора 80286, только заменив в ней ЦП на «Турбо-плату». Компьютеры с «Турбо-платами» приближаются по производительности к компьютерам изначально на базе процессора 386DX, но стоят гораздо дешевле. Кроме того, установка «Турбо-платы» в систему позволяет выполнять на ней любое программное обеспечение, разработанное для микропроцессоров 80386.

Для систем на базе микропроцессоров 80286 выпускались также отдельные микросхемы, приближающие её по производительности к системам с процессором 80386 и добавляющие некоторые из новых возможностей этого микропроцессора. Таковы микросхемы SOTA POP фирмы SOTA Technology и ALL ChargeCard фирмы ALL Computer; установленные в систему с процессором 80286, они добавляют возможности управления памятью, имеющиеся в процессоре 80386. Такие микросхемы представляют собой более дешёвый способ модернизации системы на базе процессора 80286, так как сами эти микросхемы не содержат процессора 386SX или аналогичного.

Различные модели процессоров 386SX были рассчитаны на те же тактовые частоты, что и соответствующие модели процессоров 386DX, но выпускались после них с примерно 2-годовой задержкой. Как и процессоры 386DX, процессоры 386SX содержали на кристалле около 275000 транзисторов, но в связи с 16-битной шиной данных производительность процессоров 386SX была сравнительно низкой – от 2,5 до 2,9 млн операций в секунду соответственно.

Другая разновидность процессоров фирмы Intel с 32-битной архитектурой – 386SL, выпущенный 15 октября 1990 г. Это первый микропроцессор, специально разработанный для применения в переносных компьютерах90 («лаптопах») и компьютерах-блокнотах91 («ноутбуках») и потому имеющий пониженное энергопотребление. Полностью аналогичный по своей архитектуре процессорам 386DX и 386SX, процессор 386SL дополнительно содержит на кристалле контроллеры оперативной памяти, кэш-памяти до 64 Кбайт и шины (общим счётом около 855000 транзисторов), что увеличивает размер корпуса микропроцессора до размеров примерно четырёх корпусов процессоров 386DX/SX, несмотря на применение новой 1-микронной технологии. Выпускались модели процессора 386SL, работающие на тактовой частоте 20 и 25 (с сентября 1991 г.) МГц и имеющие производительность 4,2 и 5,3 млн операций в секунду. Название «80386» объединяет все три разновидности 32-битных процессоров фирмы Intel – 386DX, 386SX и 386SL.

Специально для микропроцессоров 80386 были разработаны процессоры числовых данных 387SX и 387DX, объединяемые единым наименованием 80387. Эти сопроцессоры совместимы с процессорами 386SX и 386DX соответственно; так, сопроцессор 387DX возможно подключить к 32-разрядной шине процессора. В остальном оба сопроцессора аналогичны процессору числовых данных 80287, который также можно использовать вместе с процессором 80386. Производительность сопроцессоров 80387 превышает производительность их предшественника – сопроцессора 80287 – по меньшей мере в три раза. Фирмой Cyrix были разработаны более мощные варианты арифметических сопроцессоров, аппаратно и программно совместимые с 80387 – сопроцессоры Cx83S87 и Cx83D87. Однако они не получили большого распространения.

Также фирмой Intel для применения совместно с микропроцессором 80386 был разработан набор из микросхем 82258 (контроллер ПДП), 82786 (графический сопроцессор), 82530 (последовательный интерфейс), 82586 (контроллер локальной вычислительной сети (ЛВС)92). Для применения в компьютерах-блокнотах совместно с микропроцессорами 386SL дополнительно был разработан набор периферии 82360SL, заключающий в едином корпусе все схемы, необходимые для поддержки процессора, такие, как контроллеры прерываний и ПДП.

Для 32-битных микропроцессоров, таких, как 80386, были созданы операционные системы MicrosoftWindows NT93 и Microsoft Windows 95 (последняя известна также под названием «Chicago»). Обе системы являются мультизадачными; каждая из них может выполнять программы реального режима для ОС MS-DOS и программы защищённого режима ОС Microsoft Windows 3.x вдобавок к программам, написанным специально для этих систем. Эти системы называют 32-битными в том смысле, что они используют плоскую (несегментированную) модель памяти: содержимое сегментного регистра указывает лишь на права доступа к нему, а не на его местоположение в физической памяти; физический адрес, выдаваемый процессором на шину адреса, совпадает с 32-битным эффективным адресом. Такая модель памяти позволяет непосредственно адресовать до 4 Гбайт (232 байт) оперативной памяти. Система Microsoft Windows NT отличается большей степенью безопасности и потому применяется на рабочих станциях, объединённых в сеть, а Microsoft Windows 95 – преимущественно на домашних компьютерах, поскольку она обеспечивает большую совместимость с программами, разработанными для ОС MS-DOS и Microsoft Windows 3.x.

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

 

Центральные процессоры: Intel 486

10 апреля 1989 г. фирма Intel выпустила усовершенствованную версию процессора 80386 и назвала её 486. Вдобавок к ЦПУ класса 80386 на кристалле процессора 486 также располагались кэш-память первого уровня (объёмом 8 или 16 Кбайт) и устройство обработки чисел с плавающей точкой; длина очереди команд процессора была увеличена до 32 байт. Это был первый в мире ЦП со встроенным эквивалентом математического сопроцессора: больше не стояла проблема его эмуляции на системах без сопроцессора, а также удешевлялась и ускорялась система за счёт уменьшения общего числа контактов и корпусов микросхем. С другой стороны, нельзя было установить в систему другой сопроцессор, поскольку команды сопроцессора выполнялись встроенным устройством обработки чисел с плавающей точкой. Поэтому выпускались два варианта процессора 486 – 486DX и 486SX, идентичные по архитектуре, за исключением того, что процессор 486SX не содержал устройства обработки чисел с плавающей точкой.

Процессор 486DX содержал около 1,2 млн транзисторов, а процессор 486SX – около 1185 тыс. Выпускались модели процессоров 486, способные работать на тактовых частотах 25 и 33 (с мая 1990) МГц, а также модели процессоров 486SX, рассчитанные на частоты 16 (с сентября 1991) и 20 (с апреля 1991) МГц и модель процессора 486DX, работающая на частоте 50 МГц (с июня 1991). Соответственно производительность процессора 486DX составляла от 20 до 41 млн, а процессора 486SX – от 13 до 27 млн операций в секунду. Последние (с 1992 г.) образцы процессоров 486SX изготовлялись по новой 0,8-микронной технологии и содержали всего 900 тыс. транзисторов.

Кроме вариантов 486DX и 486SX, процессор 486 с 9 ноября 1992 г. выпускался также в варианте 486SL, рассчитанном, как и процессор 386SL, на применение в компьютерах-блокнотах. Процессор 486SL имел только 26 линий адреса, что позволяло ему адресовать лишь 64 Мбайт оперативной памяти. В остальном он был аналогичен процессору 486DX. Процессор 486SL содержал 1,4 млн транзисторов; различные его модели могли работать на тактовых частотах 20, 25 и 33 МГц, имея производительность 15,4, 19 и 25 млн операций в секунду соответственно. Некоторые модели процессоров 486SL для их удешевления не имели встроенного устройства обработки чисел с плавающей точкой.

Процессор 486DX также выпускался в вариантах 486DX2 (с 3 марта 1992) и 486DX4 (с 7 марта 1994), которые использовали новую технологию «удвоения» и «утроения» частоты, когда микропроцессор работает соответственно на удвоенной или утроенной тактовой частоте системной шины. Это позволило существенно увеличить рабочую тактовую частоту микропроцессора при сохранении его совместимости с относительно медленными внешними устройствами, например, микросхемами памяти. Поэтому со времён процессоров 486DX2 и 486DX4 обращения к памяти занимают по 4 и более тактов синхронизации, тогда как обращения к внутренним регистрам процессора выполняются за 1 – 2 такта. Это показывает также всю важность интеграции кэш-памяти в корпус процессора, поскольку внутренняя для процессора кэш-память работает на одной частоте с ним, и обращения к ней практически так же быстры, как и обращения к внутренним регистрам. Однако кэш-память первого уровня на кристалле процессора невозможно наращивать, и поэтому применяют кэш-память второго уровня, размещённую вне процессора и обычно более медленную (а значит, и более дешёвую), чем кэш-память первого уровня. Как правило, её требуется установить довольно много для заметного увеличения производительности системы, но это всё же получается дешевле, чем покупать более быстрый процессор для обеспечения той же производительности.

Для работы со внутренней кэш-памятью в систему команд микропроцессора 486 были добавлены новые команды.94 Другая новая команда95 предназначена для обеспечения совместимости с процессорами группы 68000 фирмы Motorola. В этих процессорах, применяемых в достаточно распространённых ПК Apple Macintosh, используется другой порядок байт в словах и двойных словах (младший байт хранится по старшему адресу), и поэтому программы для процессоров фирм Intel и Motorola несовместимы даже по ассемблерным программам и файлам данных. Для обеспечения совместимости между ними и применяются команды обмена местами байт в слове или двойном слове.

Процессор 486DX2 содержал 1,2 млн, а 486DX4 – 1,6 млн транзисторов, причём последний выпускался по новой 0,6-микронной технологии. Модели процессоров 486DX2 и 486DX4 могли работать на тактовых частотах 50, 66 (с августа 1992), 75 и 100 МГц, обеспечивая производительность 41, 54, 53 и 71 млн операций в секунду соответственно. Процессор 486DX4-75 МГц имел меньшую производительность, чем процессор 486DX2-66 МГц из-за того, что более медленная системная шина в первом случае существенно замедляла обращения процессора к памяти. В процессорах 486 впервые был применён корпус с матрицей контактов96 вместо корпуса типа «держатель кристалла». Такие процессоры 486 имели 168, 169, 237 или 238 контактов (процессоры 486DX4 – 235 или 237 контактов). Другие модели процессоров 486SL и 486DX4 выпускались в 208-контактных квадратных97 корпусах.

Совместимость корпусов микросхем 486 (все они вставлялись в одинаковые гнёзда 17x17 или 19x19 контактов) позволяла легко модернизировать систему простой заменой процессора в гнезде на более совершенный. Но отдел маркетинга фирмы Intel выяснил, что многие люди просто боятся вынимать центральный процессор из гнезда. Кроме описанных ниже процессоров OverDrive, для устранения этого «психологического барьера» фирма Intel выпустила ещё один вариант процессора 486 – процессор 487SX. Он выпускался в 169-контактном корпусе и вставлялся в разъём для сопроцессора на платах с процессором 486SX. Фактически это был процессор 486DX в другом корпусе, так как после установки процессор 487SX отключал главный процессор 486SX и выполнял программы сам. Это позволяло модернизировать системы на основе микропроцессора 486SX, не удаляя старый центральный процессор.

Технология OverDrive, реализованная в процессорах 486SX, позволяла усовершенствовать центральный процессор добавлением на него так называемого «процессора OverDrive» в специально для этого предназначенное гнездо платы. Старый процессор при этом оставался в системе и выполнял вспомогательные функции. Фирмой Intel выпускались OverDrive-процессоры 486DX2, 486DX4 и Pentium.

Большинство процессоров 486 могли работать с двумя напряжениями питания – 3,3 и 5 В – и переключаться между ними во время работы. Эта возможность нашла применение в компьютерах-блокнотах, так как позволяла гибко регулировать энергопотребление процессора.

Предназначались процессоры 486DX2 и 486DX4 прежде всего как дешёвая альтернатива процессорам Pentium в персональных компьютерах низкого и среднего уровня; в конторских компьютерах и серверах они не применялись, так как даже при равных тактовых частотах с процессорами Pentium процессоры 486DX2 были вдвое менее производительны. С другой стороны, корпуса процессоров Pentium были очень большими (30 см2) и не могли применяться в компьютерах-блокнотах. Там их также заменяли процессоры 486DX4.

Для использования в персональных компьютерах фирма IBM по лицензии фирмы Intel производила собственные аналоги микропроцессоров 486. При этом микропроцессоры 386SLC и 486SLC примерно соответствуют 486SX; 486SLC2/SLC3 – то же самое, но с удвоением/утроением рабочей частоты; 486DLC и 486BLX («Blue Lightning») – аналоги 486DX; 486BLX2/BLX3 – аналоги 486DX2/DX4; 486LC2 – аналог 486SX с пониженным энергопотреблением. Аналоги микропроцессоров 486 производили также фирмы Advanced Micro Devices, Cyrix и Texas Instruments. Микропроцессоры этих фирм называются так же, как и их Intel-прототипы, но с добавлением букв Am, Cx, Ti соответственно, например, Cx486DX2.

Микропроцессоры 486 использовались фирмой IBM в персональных компьютерах IBM AT 486 (семейство PC) и IBM PS/2-90/95 (семейство PS/2). Как обычно, в ПК IBM AT применялась ОС PC-DOS, а в IBM PS/2 – OS/2. Персональный компьютер IBM AT 486 – последний из выпущенных фирмой IBM в рамках семейства IBM PC. Поскольку все ПК этого семейства обладали открытой архитектурой, то фирма IBM испытывала очень жёсткую конкуренцию в области изготовления PC-совместимых компьютеров, главным образом, со стороны фирм Юго-Восточной Азии. Крупные фирмы, такие как Dell и Compaq, также предлагали свои аналоги компьютеров семейства IBM PC, и оригинальные IBM AT на их фоне выглядели достаточно бледно. Поэтому фирма IBM прекратила борьбу за переполненный рынок PC-клонов и переориентировалась на компьютеры семейства PS/2, шина которых (типа «микро-канал»98) была запатентована фирмой IBM. Соответственно, другие производители оборудования не могли выпускать модули расширения для шины ПК IBM PS/2, равно как и компьютеры с такой шиной (клоны IBM PS/2), без авторских отчислений фирме IBM. На самом деле, такое «отстранение» от производства компьютеров наиболее популярного типа (по оценкам, сегодня около 90% всех ПК совместимы с IBM PC) только уменьшило прибыли фирмы IBM.

 

Процессор 486DX-50 МГц был выпущен незадолго до двадцатилетия со дня выпуска первого микропроцессора фирмы Intel. За эти двадцать лет быстродействие процессоров выросло в 500 раз, число транзисторов – в 522 раза, производительность – в 683 раза, адресуемая память – в 6,7 млн раз. Осенью 2001 г., через 30 лет после выпуска микропроцессора 4004, был выпущен процессор Xeon-2ГГц. Его тактовая частота превосходит частоту процессора 4004 в 20 млн раз; сотрудники фирмы Intel показывают, что если бы скорость автомобиля увеличилась в то же число раз, то путь от Сан-Франциско до Нью-Йорка занимал бы 10 секунд.

 

Центральные процессоры: Intel Pentium

В 1992 г. фирмой Intel было объявлено о том, что новый процессор будет назван вопреки старой системе наименования (x86). Поскольку названия из цифр не защищаются авторским правом и законом о торговых знаках, конкуренты фирмы Intel выпускали собственные процессоры с названиями вроде 386 и 486. «Естественно, Intel это не понравилось. Руководству корпорации хотелось, чтобы люди, думая о 386 и 486 машинах, вспоминали только Intel, а не «какой-то там» AMD.» – пишет П. Нортон в одной из своих книг. Кроме того, фирма Cyrix выпустила собственный процессор, полностью идентичный процессору 80386, но названный Cx486. «Это вносит сумятицу в стройные ряды наших покупателей», – заявила пресс-секретарь фирмы Intel Нэнси Прессел на конференции в июне 1992 г. Позже (в октябре 1992) для нового процессора было выбрано название Pentium, так как он был представителем «пятого поколения» процессоров (8086 – 80286 – 80386 – 486 – Pentium). С тех времён новые процессоры получают словные, а не числовые, названия.

Так как «Pentium» является словом, а не числом, на него могли быть получены авторские права, ограждающие Intel от использования этого названия другими производителями процессоров. Тогда-то и была проведена знаменитая кампания «Ищите Intel inside»: «Процессор выпущен фирмой Intel не тогда, когда он называется 486, а когда на нём написано Intel inside». На все компьютеры с процессорами фирмы Intel также были наклеены наклейки Intel inside, ставшие своеобразным знаком качества. Позже фирмой AMD были выпущены собственные конкурентоспособные процессоры K5 и K6, гораздо более мощные, чем аналогичные процессоры фирмы Intel, и притом более дешёвые. Тогда ажиотаж с процессорами «Intel inside» утих, и теперь наклейки Intel inside можно найти лишь на немногих компьютерах с процессорами фирмы Intel.

Процессор Pentium имел 64-битную шину данных, позволяющую ему вводить и выводить по 8 байт за один такт. При этом АЛУ у него было 32-битным, т.е. процессор Pentium мог одновременно обрабатывать не более 32 бит информации, являясь при этом неким 32-64-битным процессором. Это позволяет эффективно работать и с более старыми 32-битными, и с новыми 64-битными микросхемами памяти. Далее, объём внутренней кэш-памяти процессора был увеличен до 16 Кбайт, как и в процессорах 486DX2/DX4, и была улучшена логика управления этой кэш-памятью. 8 Кбайт этой кэш-памяти используется для хранения наиболее часто используемых команд, а другие 8 Кбайт – для хранения часто используемых данных. Это позволяет оптимизировать выполнение процессором циклов программы, т.к. в них очередь команд если и очищается, то очень быстро заполняется из кэш-памяти команд.

Кроме перечисленных выше усовершенствований, у процессора Pentium есть два независимых конвейера обработки команд, т.е. если две последовательные команды не зависят друг от друга, то они дешифратором команд передаются в различные очереди инструкций и выполняются процессором одновременно. Это позволяет достичь производительности двухпроцессорной системы при установке в неё всего одного процессора. На самом деле, преимущества новой двухконвейерной («сверхмасштабной»)99 архитектуры становятся заметны лишь при использовании соответствующим образом написанных программ. Другое усовершенствование – дополнительный буфер команд, который реализует технологию предсказания ветвлений:100 как только дешифратор команд дешифрует команду перехода (условного или безусловного), этот дополнительный буфер команд заполняется командами по адресу перехода. Если переход выполняется, то очередь команд моментально заполняется командами из буфера, и потери производительности из-за необходимости заполнения очереди команд не происходит. Наконец, в 2 – 10 раз была повышена производительность встроенного в процессор устройства обработки чисел с плавающей точкой.

В более поздних процессорах Pentium дополнительно имеются программируемый контроллер прерываний и средства реализации симметричных двухпроцессорных систем,101 когда схемы арбитража системной шины размещены в самих процессорах. Однако для реализации преимуществ таких двухпроцессорных систем опять же нужны соответствующим образом написанные программы и операционные системы.

Первые процессоры Pentium были выпущены 22 марта 1993 г. Они содержали 3,1 млн транзисторов, работали на тактовых частотах 60 и 66 МГц и имели производительность 100 и 112 млн операций в секунду соответственно. Эти процессоры выпускались в 273-контактных корпусах с сеткой контактов 21x21 и имели напряжение питания 5 В. Более поздние процессоры Pentium, работавшие на тактовых частотах 75 (с октября 1994), 90, 100 (с марта 1994), 120 (с марта 1995), 133 (с июня 1995), 150, 166 (с января 1996) и 200 (с июня 1996) МГц, выпускались также в 296- и 320-контактных корпусах с шахматным расположением контактов102 в сетке 37x37. Эти более новые процессоры Pentium имели напряжение питания 3,3 В, размеры всего 25 см2 и содержали 3,2 – 3,3 млн транзисторов новой 0,35-микронной технологии.

Процессоры Pentium-60/66 МГц назывались также Pentium-1, а с большими тактовыми частотами – Pentium-2. Процессоры Pentium-1 не могли заменяться на процессоры Pentium-2, так как имели другое напряжение питания и другие размеры гнезда (сокета). Процессоры Pentium-2 имели производительность от 126,5 до 219 млн операций в секунду.

Кроме всего перечисленного, процессоры Pentium получили «известность» благодаря ошибке в микрокодах устройства обработки чисел с плавающей точкой в первом тираже процессоров Pentium-1. Хотя фирма Intel бесплатно заменила всем обладателям дефектных микропроцессоров эти экземпляры на новые, доверие к ней было пошатнуто. Это ещё сильнее увеличило популярность микропроцессоров фирм-конкурентов Intel.

Центральные процессоры: Intel Pentium Pro, Pentium MMX и Pentium II

Следующим шагом вперёд в микропроцессорах фирмы Intel стал процессор Pentium Pro, выпущенный 1 ноября 1995 г. Аналогичный по своей внутренней архитектуре процессору Pentium, процессор Pentium Pro дополнительно имел внутреннюю шину данных, работающую на скорости процессора и соединяющую его с внутренней кэш-памятью второго уровня объёмом 256, 512 Кбайт или 1 Мбайт (с августа 1997). Дополнительно к этой кэш-памяти, на системную плату можно было установить кэш-память третьего уровня, ещё повышающую производительность системы.

Другое улучшение, введённое в процессоры Pentium Pro – усовершенствованный конвейер команд, позволяющий во время более длительных операций выполнять следующие за ними быстрые, если данные для них уже доступны. Это улучшение позволяло уменьшить потери производительности системы за счёт медленной системной шины, так как во время длительных операций обмена данных с памятью могут выполняться следующие за ними инструкции. Такое усовершенствование называют продуманным (или динамическим) выполнением.103 Главное его достоинство – для его реализации не требуется специально созданного программного обеспечения, увеличение производительности достигается при выполнении любых программ. Наконец, процессор Pentium Pro имел поддержку симметричных четырёхпроцессорных систем и был оптимизирован для выполнения 32-битных инструкций (это было также и недостатком при выполнении старых программ).

В итоге фирмой Intel был получен очень мощный процессор, применяющийся в высококлассных рабочих станциях и серверах с 32-битными операционными системами. При работе на тактовых частотах 150, 166, 180 и 200 МГц достигалась производительность, сравнимая с процессорами Pentium II-300 МГц. В персональных компьютерах процессор Pentium Pro практически не применялся. Для процессоров Pentium Pro специально был разработан 387-контактный корпус особого типа размерами 42 см2. Процессоры Pentium Pro содержали на кристалле от 21 до 67 млн транзисторов, в зависимости от размера кэш-памяти.

Затем фирма Intel расширила набор команд процессора Pentium на 57 команд и увеличила размер его внутренней кэш-памяти первого уровня до 32 Кбайт. Новый набор команд получил название MMX,104 а новые процессоры были названы Pentium MMX. Хотя название новой технологии предполагает её использование в компьютерных играх и видеопрезентациях, практически любая прикладная программа может быть написана так, чтобы пользоваться преимуществами, предлагаемыми технологией MMX. На технологию MMX фирмой Intel не был взят патент, и потому многие другие производители микропроцессоров вскоре включили эту технологию в свои процессоры.

Процессор PentiumMMX был выпущен 8 января 1997 г., и его модели работали на тактовых частотах 166, 200, 233 (с июня 1997), 266 (с января 1998) и 300 (с января 1999) МГц. Так как процессор Pentium MMX выпускался в таких же 296-контактных корпусах, как и процессоры Pentium-2, системы на базе процессоров Pentium-2 можно было легко модернизировать простой заменой процессора на процессор Pentium MMX. Процессоры Pentium MMX содержали около 4,5 млн транзисторов. Выполненные по новой 0,25-микронной технологии, они упаковывались в 320-контактные корпуса особого вида, предназначенные для употребления в компьютерах-блокнотах.

Процессоры Pentium Pro с добавлением технологии MMX и 32-Кбайтной кэш-памятью первого уровня получили название Pentium II. Кроме добавления поддержки команд технологии MMX, в новом процессоре было усовершенствовано устройство обработки чисел с плавающей точкой. Выпускались модели процессора Pentium II, работающие на тактовых частотах 233, 266, 300 (с мая 1997), 333 (с января 1998), 350, 400 (с апреля 1998) и 450 (с августа 1998) МГц. Для них были разработаны новые 242-контактные корпуса размерами 14x6,3x1,6 см, названные односторонними картриджами.105 Односторонние картриджи были запатентованы фирмой Intel, поэтому в платы с разъёмами для процессоров Pentium II невозможно вставить процессоры других фирм. С другой стороны, разъём для одностороннего картриджа106 дешевле в производстве, чем гнездо для 296-контактного корпуса с сеткой контактов,107 а вставлять процессор легче в разъём; поэтому создание нового корпуса объяснялось, по видимому, не только намерением «оторваться» от конкурентов, а также и определённой «заботой» о пользователе. В конце концов, односторонний картридж сложнее повредить физически.

Модели процессоров Pentium II для компьютеров-блокнотов имели пониженное энергопотребление и выпускались в 240-контактных маленьких корпусах. Их напряжение питания составляет всего 1,7 В.

Процессоры Pentium II содержат около 7,5 млн транзисторов. В отличие от процессоров Pentium Pro, в которых кэш-память второго уровня работает на той же частоте, что и ЦПУ, в процессорах Pentium II такая кэш-память работает только на половине частоты ЦПУ, что несколько снижает производительность процессора.

 

Центральные процессоры: дальнейшие разработки фирмы Intel

Для персональных компьютеров фирмой Intel выпускались процессоры Celeron, являющиеся «облегченными» вариантами Pentium II без внутренней кэш-памяти второго уровня. Выпускаемые в таких же односторонних картриджах, как и процессоры Pentium II, процессоры Celeron имели меньшую рабочую тактовую частоту, а именно 266 (с апреля 1998) и 300 (с июня 1998) МГц. Процессоры Celeron содержат, как и процессоры Pentium II, 7,5 млн транзисторов.

Другие модели процессоров Celeron, объединённые названием Celeron A, имели рабочую тактовую частоту 333 (с августа 1998), 366, 400 (с января 1999), 433 (с марта 1999), 466 (с апреля 1999), 500 (с августа 1999), 533 (с января 2000), 566, 600 (с марта 2000), 633, 667, 700 (с июня 2000), 733, 766 (с ноября 2000), 800 (с января 2001), 850 (с мая 2001), 900 (с июля 2001), 950, 1000, 1100 (с августа 2001), 1200 (с октября 2001) и 1300 (с января 2002) МГц. Совершенствование процессоров Celeron A продолжается и поныне. Наиболее мощные из них содержат 19 млн транзисторов (вместе с 128 или 256 Кбайт внутренней кэш-памяти второго уровня) и изготавливаются по 0,18- или 0,13-микронной технологии. Процессоры Celeron A используют напряжение питания 1,5 В и выпускаются в 370-контактных корпусах. Другие модели процессоров Celeron, разработанные для компьютеров-блокнотов, используют напряжение питания 1,4 или 1,15 В, потребляют мощность менее 1 Вт и производятся в корпусах размером около 1 см2. Процессоры Celeron A используются в наиболее мощных персональных компьютерах, хотя они и не обеспечивают производительность, необходимую для серверов.

Дальнейшие разработки фирмы Intel включают процессоры Pentium III, Pentium 4, Xeon и Itanium. Последний из них – процессор Itanium – является полностью 64-битным и содержит на кристалле 2 или 4 Мбайт кэш-памяти третьего уровня; модели процессора Xeon могут работать на тактовых частотах до 2,4 ГГц. Об этих процессорах ещё сложно говорить что-то определённое, т.к. разработка новых моделей этих процессоров не завершена.

 

Центральные процессоры: Zilog Z80

Разработка микропроцессора Z80 фирмы Zilog базировалась на микропроцессорах 8080/8085 фирмы Intel, поэтому процессор Z80 совместим вверх с процессором 8085 по системе команд и машинному коду, т.е. он может выполнять любые программы, написанные для микропроцессора 8085. Например, ОС CP/M-80 может выполняться на любом из процессоров 8080, 8085, Z80. Но совместимость в обратном направлении достигается не всегда, прежде всего из-за наличия в процессоре Z80 дополнительных команд и регистров, а также других дополнительных возможностей.

Как и процессоры 8080/8085, процессор Z80 выпускался в 40-контактном корпусе с двумя рядами контактов. Имелось две модели процессора, отличающихся тактовой частотой: процессор Z80A работал на частоте 4 МГц, а процессор Z80B – на частоте 6 МГц. Линии адреса данных у него, в отличие от процессора 8085, не мультиплексируются, в связи с чем сокращено число линий управления и видов прерываний. Прерывания микропроцессора Z80 могут быть двух видов – маскируемое прерывание108 и немаскируемое прерывание.109 Вектор немаскируемого прерывания зафиксирован и равен шестнадцатеричному значению 0066. При сбросе (перезагрузке) процессора все его регистры, включая программный счётчик, обнуляются.

Внутренние регистры микропроцессора Z80 делятся на две идентичные группы из семи 8-битных рабочих регистров и 8-битного слова состояния процессора, два 16-битных индексных регистра,110 16-битные указатель стека и программный счётчик, 8-битный вектор маскируемого прерывания и 8-битный временный регистр регенерации динамических ЗУПВ. Каждая группа рабочих регистров аналогична набору рабочих регистров процессоров 8080/8085. Наличие двух наборов регистров значительно облегчает работу программиста при вызове подпрограммы или обработчика прерывания, потому что программист может использовать для них альтернативный набор регистров, избегая сохранения содержимого регистров основной программы в памяти (например, в стеке). Команды процессора Z80 позволяют работать только с регистрами первой группы, но при необходимости содержимое регистров обеих групп может быть обменяно местами.

Индексные регистры используются для более сложной косвенной адресации операндов в памяти, а вектор маскируемого прерывания задаёт младшие или старшие (в зависимости от текущего режима прерывания) 8 бит адреса процедуры обработки маскируемого прерывания. Существует три режима прерывания: в первом из них вектор маскируемого прерывания зафиксирован и равен шестнадцатеричному значению 0038, во втором – соответствует значению регистра вектора прерывания (старшие 8 бит адреса заполняются нулями), в третьем – старшие 8 бит адреса берутся из регистра вектора прерывания, а младшие вводятся в процессор устройством, вызвавшим прерывание. Перевод процессора из одного режима прерывания в другой осуществляется соответствующей командой.

Система команд микропроцессора Z80 совместима с системой команд процессора 8085, хотя используемые мнемоники команд различаются. Добавлены команды блоковых передач, проверки/установки отдельных бит операнда, работы с упакованным двоично-десятичным кодом, организации циклов, относительных переходов. Многие команды передачи данных поддерживают использование более широкого диапазона операндов.

У микропроцессора Z80 нет внутреннего генератора синхронизации, как у процессора 8085, поэтому требуется внешняя микросхема синхронизации. Наличие всего одного входа для маскируемых запросов прерываний вызывает необходимость объединять подключаемые к процессору устройства в приоритетную цепочку. Все вспомогательные микросхемы для процессора Z80, выпущенные фирмой Zilog, называются «Z80-тип микросхемы», например, Z80-PIO,111 Z80-DART.112 Применялись также микросхемы серии 74LS, выпускаемые, в частности, фирмой Texas Instruments: приёмопередатчик 74LS245, защёлки адреса 74LS367, 74LS125, 74LS373/74LS374, дешифратор адреса 74LS42.

Процессор Z80 использовался в персональном компьютере TRS-80 фирмы Tandy Radio Shack. Этот компьютер, практически в одиночку разработанный Стивеном Лейнинджером, продавался вместе с видеомонитором, клавиатурой, кассетным магнитофоном и кассетами, содержащими операционную систему CP/M-80 и прикладные программы. В сентябре 1977 г. компьютер был пущен в продажу и продавался в течение года по 10 тыс. экземпляров в месяц. Позже продажа персонального компьютера собранным и со всеми необходимыми компонентами стала естественной и привычной.

Кроме TRS-80, процессор Z80 также использовался в персональных компьютерах ZX80/81 и ZX-Spectrum английской фирмы Sinclair Radions Incorporated, которые получили столь большое распространение, что стали фактическим стандартом для 8-битных персональных систем, таким же, как IBM PC/XT/AT для 16-битных. По названию этих компьютеров 8-битные микропроцессорные системы стали называть «системами класса ZX-Spectrum», так же, как системы, построенные на микропроцессорах семейства Intel 80x86 или совместимых с ними, – «системами класса IBM PC». Компьютеры ZX81 производились до 1983 г., когда их цена в США составила $50, и дальнейшее их производство стало экономически невыгодным. Среди радиолюбителей Spectrum и его клоны распространены до сих пор.

Фирма Zilog выпустила семейство монокристальных микрокомпьютеров на базе микропроцессора Z80. В это семейство входят микросхемы Z8601, Z8602, Z8603, Z8611, Z8612, Z8613, Z8671. Они содержат 144 байт ЗУПВ, 0, 1, 2, 4 или 6 Кбайт ПЗУ, по 4 порта ввода-вывода, по два программируемых счётчика и по схеме последовательного интерфейса. В микросхему Z8671 также включён интерпретатор языка Бейсик, что делает её пригодной для использования в микрокалькуляторах, программируемых на этом языке.

 

Центральные процессоры: Zilog Z8001

В семейство микропроцессоров Z800x фирмы Zilog входят несколько 16-битных ЦП, отличающихся друг от друга только размером адресуемой памяти (включая виртуальную память), и несколько вспомогательных процессоров. Основными ЦП семейства являются процессор Z8001 с 23-разрядной шиной адреса и 16-разрядной шиной данных (адресуемая память 8 Мбайт) и процессор Z8002 с 16-разрядными шинами адреса и данных (адресуемая память 64 Кбайт). Оба этих ЦП выпускались в корпусах с двухрядным расположением контактов: процессор Z8001 – в 48-контактном, процессор Z8002 – в 40-контактном. Два других ЦП семейства – процессоры Z8003 и Z8004 – аналогичны по своей архитектуре процессору Z8001. Их различия для нас несущественны.

Совместно с микропроцессором Z8001 для управления памятью применяется микросхема Z8010, обеспечивающая перемещение сегментов в физической памяти и её защиту. Микропроцессоры Z8002, Z8003 и Z8004 не допускают организации виртуальной памяти.

Все ЦП семейства Z800x имеют мультиплексную шину адреса/данных, причём старшие 7 бит адреса в микропроцессоре Z8001 обозначают номер сегмента, а младшие 16 бит, имеющиеся во всех ЦП семейства Z800x, – смещение в этом сегменте. Преобразование такого логического адреса в 24-битный физический происходит за пределами микропроцессора, поэтому программист не может делать никаких предположений о размещении сегментов его программы в физической памяти, как и о наличии или отсутствии их перекрытия. Далее, сегменты могут иметь произвольную длину. Из процессоров фирмы Intel подобная организация памяти характерна только для достаточно поздних образцов (начиная с микропроцессора 80286). Микропроцессоры семейства Z800x адресуют память байтами, а не словами, как процессор 8086.

Для преобразования логического адреса в физический микросхема Z8010 использует таблицу идентификаторов блоков, в которой для каждого сегмента приведено 16-битное значение базового физического адреса 256-байтного блока памяти. Эти 16 бит копируются в 16 старших бит физического адреса, после чего к полученному адресу прибавляется смещение ячейки памяти в сегменте. Таким образом, младшие 8 бит физического адреса (адрес ячейки памяти в блоке) заполняются из смещения без каких-либо его преобразований. Поэтому возможно иметь до 64 сегментов размерами от 256 байт до 64 Кбайт, что обеспечивает возможность организации виртуальной памяти. Каждому сегменту также можно присвоить индивидуальные права доступа.

Кроме входа для сигнала сброса, во всех микропроцессорах семейства имеется по 3 входа запросов прерываний: запрос немаскируемого, невекторного и векторного прерываний. При этом номера невекторного и немаскируемого прерываний фиксированы, а номер векторного прерывания должен формироваться прерывающим устройством. Допускается до 256 номеров прерываний; по номеру прерывания в таблице векторов прерываний, хранимой в памяти, находится 27-битный вектор данного прерывания (сегмент и смещение его обработчика). Микропроцессор Z8001 имеет также вход для сигнала сегментного нарушения, являющегося своеобразным прерыванием, генерируемым устройством управления памятью Z8010.

Блок рабочих регистров процессора Z8001 содержит 16 регистров длиной 16 бит, каждый из которых можно использовать как аккумулятор, индексный регистр, или для хранения промежуточных данных. Восемь из этих рабочих регистров допускают обращения к их отдельным байтам, остальные восемь – только к регистру целиком. Допускается объединение рабочих регистров в 32-битные регистровые пары, используемые некоторыми операциями. Допускается также ограниченная обработка 64-битных операндов. Для совместимости с программами процессора Z80 в процессоре Z8001 сохранён 16-битный счётчик регенерации динамических ЗУПВ.

Два из рабочих регистров процессора Z8001 используются как указатели стеков – системного и пользовательского. В них хранятся смещения вершин этих стеков, а в их 7-битовых расширениях – номера сегментов стека. Программный счётчик процессора Z8001 также состоит из 16-битной основной части для хранения смещения следующей выполнимой команды и 7-битового расширения для хранения номера сегмента кода.

Микропроцессор Z8001, подобно процессорам семейства MC680xx фирмы Motorola, может работать в двух режимах – обычном (аналогичном режиму пользователя процессора MC68000) и системном (аналогичном режиму супервизора). Текущий режим определяется битом в 16-битном регистре состояния. Как и в микропроцессоре MC68000, в процессоре Z8001 имеется два отдельных стека, используемых программами обычного и системного режимов. В системном режиме программе становятся доступными некоторые дополнительные команды процессора Z8001, например, команды работы с портами ввода-вывода. Поэтому в мультипрограммной среде программа пользователя, работающая в обычном режиме, для выполнения задач ввода-вывода должна запрашивать операционную систему, работающую в системном режиме.

Конвейеризации с помощью очереди команд, как в микропроцессорах семейства Intel 80x86, в процессоре Z8001 нет, но зато в нём введена система ранней дешифрации команд, позволяющая проводить дешифрацию команды параллельно с выполнением предыдущей.

Система команд процессора Z8001 насчитывает 56 команд, включающих 8 команд передачи данных, 33 команды их обработки, 8 команд перехода и 7 команд управления процессором. Мнемоники этих команд напоминают мнемоники команд процессора Z80, но совместимости между ним и процессором Z8001 нет ни по ассемблерному, ни по машинному коду. Коды всех операций имеют длину 16 бит и всегда начинаются по чётным адресам памяти. Слова данных, с которыми возможна работа, тоже должны располагаться по чётным адресам.

С микропроцессорами семейства Z800x можно использовать 8-битные вспомогательные микросхемы для ЦП Z80, если демультиплексировать шину адреса/данных. Однако для новых микропроцессоров дополнительно выпускались 16-битные микросхемы, такие как контроллер ПДП Z8016/Z8516, последовательный интерфейс Z8030/Z8530, двухканальный УАПП Z8031/Z8531, трёхканальный счётчик/таймер с параллельным интерфейсом Z8036/Z8536, интерфейс очереди Z8038/Z8538, буфер очереди Z8060/Z8560, сопроцессор шифрования Z8068, арифметический сопроцессор Z8070, периферийные интерфейсы Z8090/Z8590 и Z8094/Z8594. При этом устройства Z80xx подключаются к мультиплексной шине адреса/данных, а устройства Z85xx – к демультиплексированной. Каждый из контроллеров периферийного интерфейса Z8090/Z8590 содержит двухканальный счётчик/таймер, два порта ввода-вывода и контроллер прерываний. Устройства поддержки очереди упрощают буферизацию передач между центральными процессорами мультипроцессорной системы или между ЦП и периферийным устройством. Процессор числовых данных Z8070 работает подобно сопроцессору 8087 и также обеспечивает работу с вещественными числами длиной до 80 бит.

 

Центральные процессоры: Zilog Z80000

32-битный микропроцессор Z80000 фирмы Zilog совместим вверх с 16-битными микропроцессорами Z8001 и Z8002, т.е. может выполнять все их программы. Он представляет собой один из наиболее мощных 32-битных процессоров, конкурирующий с процессором 80386 фирмы Intel, так как содержит внутреннюю кэш-память, устройство управления страничной памятью и 6-каскадный командный конвейер. В итоге производительность процессора Z80000 может достигать 5 млн операций в секунду.

Кроме 16 16-битных рабочих регистров, имевшихся в процессоре Z8001, в процессор Z80000 добавлено также восемь 32-битных рабочих регистров. 16-битные рабочие регистры также объединены в восемь 32-битных регистровых пар, допускающих обращения к паре целиком или к каждой из её 16-битных частей. Восемь из 16-битных рабочих регистров допускают обращения к каждому из своих байтов, поэтому четыре из 32-битных регистровых пар также допускают обращения к каждому из своих байтов. Далее, 32-битные рабочие регистры и регистровые пары объединены в восемь 64-битных регистров, допускающих обращения к каждой из своих 32-битных половин. Понятно, что два из этих 64-битных регистров также допускают обращения к каждому из восьми своих байтов. Такой гибкий регистровый набор микропроцессора Z80000 позволяет очень эффективно объединять элементы данных и разбивать их на составляющие.

Кроме рабочих регистров, микропроцессор Z80000 также имеет 16-битный регистр состояния, 32-битный программный счётчик, 32-битные указатели стека программы и процедуры обработки прерывания, а также четыре 32-битных дескриптора таблицы преобразования и два 32-битных регистра управления внешними по отношению к ЦПУ устройствами. Дескрипторы таблицы преобразования используются устройством управления памятью (УУП)113 для преобразования логических адресов в физические, а регистры управления внешними устройствами – главным образом для управления внутренней кэш-памятью и УУП.

Как и его 16-битные предшественники, процессор Z80000 может работать в двух режимах: обычном и системном. В зависимости от режима работы и других установок в регистре состояния микропроцессора, 32-битный эффективный адрес может трактоваться как линейный адрес (адресация 4 Гбайт памяти без сегментации), как 15-битный номер сегмента и 16-битное смещение, как 7-битный номер сегмента и 24-битное смещение, и как 16-битное смещение в единственном сегменте (старшие 16 бит отсекаются, возможна адресация 64 Кбайт памяти). Эти режимы применяются для совместимости с процессорами групп 80386 (защищённый режим), 80x86 (реальный режим), Z800x и Z80/8080/8085. Естественно, полная совместимость доступна лишь с микропроцессорами группы Z800x. Отметим, что в режимах с сегментацией памяти старший бит эффективного адреса не используется.

Как и в процессоре 80386, УУП процессора Z80000 содержит буфер преобразования, хранящий информацию о 16 последних использованных страницах памяти. Если информация о необходимой странице не находится в буфере преобразования, ЦПУ приходится обращаться к таблицам преобразования в памяти, используя для этого один из четырёх регистров таблиц дескрипторов; затем информация об этой странице передаётся в тот элемент буфера преобразования, к которому дольше всего не было обращения. Это значительно замедляет обращения к памяти в давно не использовавшихся сегментах, поэтому размер буфера преобразования имеет достаточно большое значение для производительности системы в целом. Кроме управления страничной организацией памяти, УУП процессора Z80000 также управляет правами доступа к каждой из страниц памяти и генерирует прерывание ЦП, когда права доступа к памяти нарушаются.

Внутренняя кэш-память процессора Z80000 состоит из 16 элементов длиной 16 байт каждый. Когда ячейка памяти, к которой обращается ЦП, не содержится в кэш-памяти, из смежных с ней ячеек памяти передаётся целый пакет из 16 байт, что оптимизирует процесс считывания из памяти: часто данные находятся в памяти в виде последовательных структур, и при однократном «промахе» мимо структуры она передаётся в кэш-память целиком, что значительно ускоряет её дальнейшую обработку. Так же ускоряется и выборка команд в кэш-память 16-байтными пакетами.

Система команд процессора Z80000 допускает операции как над 32-битными, так и над 64-битными операндами, поэтому процессор Z80000 может быть назван «32-64-битным» процессором, как и выпущенный существенно позднее фирмой Intel процессор Pentium. Некоторые команды, такие как команды ввода-вывода, могут выполняться процессором Z80000 только в системном режиме.

Процессор Z80000 совместим со всеми вспомогательными микросхемами, разработанными для процессоров семейства Z800x и подключаемыми к мультиплексной шине адреса/данных, например, с процессором числовых данных Z8070.

 

Центральные процессоры: MCS6502

Микропроцессорное семейство MCS65xx фирмы MOS Technology представляет собой усовершенствованный вариант семейства MC68xx так же, как микропроцессор Z80 является усовершенствованным вариантом микропроцессора Intel 8085. Совместимость по машинному коду между процессорами семейств MCS65xx и MC68xx отсутствует, но архитектуры процессоров аналогичны, и некоторые вспомогательные микросхемы можно применять с любым из этих микропроцессоров.

Если в семейства фирм Intel, Zilog и Motorola входят один или два микропроцессора, то семейство MCS65xx состоит из десяти процессоров MCS6502, MCS6503, MCS6504, MCS6505, MCS6506, MCS6507, MCS6512, MCS6513, MCS6514, MCS6515. Микропроцессоры семейства отличались числом контактов корпуса (28 или 40) и числом линий данных (12, 13 или 16). Все они имеют внутренний генератор синхронизации. Кроме фирмы MOS Technology, микропроцессоры данного семейства выпускали также фирмы Synertec и Rockwell International.

Процессор MCS6502 был выпущен в 1975 г. и содержал 4300 транзисторов; его производительность составляла около 1 млн операций в секунду. Напряжение питания процессора составляло +5 В. Как и в процессоре Z80, имеется всего два входа запросов прерываний – маскируемого и немаскируемого, но возможна установка флажка переполнения внешним импульсом, таким образом давая как бы третий тип прерывания.

Наборы регистров, системы команд и режимы адресации всех микропроцессоров семейства MCS65xx совпадают. В каждом из них имеются 8-битный регистр аккумулятора (единственный регистр данных), два 8-битных индексных регистра, 16-битный программный счётчик, 8-битный указатель стека и 8-битный регистр состояния с флажками переноса, нуля, знака, переполнения, десятичного режима и разрешения прерываний. Как видно, доступных регистров в микропроцессорах семейства существенно меньше, чем в процессорах фирм Intel и Zilog, поэтому в программах для процессоров семейства MCS65xx интенсивнее используются относительно медленные команды работы с памятью.

Адресное пространство процессоров разделяется на «страницы памяти» по 256 байт, начинающиеся по адресам, кратным 256. Различные микропроцессоры семейства могут адресовать данные в 16, 32 или 256 страницах. Страница 0 хранит доступные программе данные, страница 1 – стек, страницы с 2 по предпоследнюю – код программы, последняя страница – вектора маскируемого и немаскируемого прерываний и адрес, загружаемый в программный счётчик при сбросе процессора (адрес процедуры инициализации). Обычно последняя страница памяти реализуется в виде ПЗУ.

В системе команд процессоров семейства MCS65xx отсутствуют команды работы с портами ввода-вывода, поэтому они должны отображаться на память. Имеется 57 команд: 16 команд передачи данных, 27 команд их обработки, 12 команд перехода и 2 команды управления процессором. Мнемоники команд схожи с мнемониками процессора MC6800.

Для поддержки микропроцессоров семейства MCS65xx фирмой MOS Technology производились микросхемы интерфейса с периферией MCS6520/6521 и MCS6522, а фирмой Synertec – микросхемы последовательного интерфейса SY6551, способные работать также и с процессорами MC68xx фирмы Motorola. Также выпускались микросхемы, содержащие ЦП MCS65xx, ПЗУ 0, 1 или 2 Кбайт, ЗУПВ 64 или 128 байт, программируемый таймер, по два или четыре порта ввода-вывода и по схеме управления прерываниями – MCS6530, MCS6532, R6531. Но эти микросхемы не являются законченными монокристальными микрокомпьютерами.

Достоинство семейства микропроцессоров MCS65xx в том, что для каждого конкретного применения можно выбрать наиболее подходящий микропроцессор. Особой популярностью пользовался процессор MCS6502, который стоил всего $20 – на порядок дешевле своего аналога, процессора Intel 8080. В 1975 г. Стефен Возняк решил использовать процессор MCS6502 своей машине Apple-1, а Стивен Джобс уговорил своего товарища сделать компьютер коммерческим. Так появилась фирма Apple Computers114, названная Джобсом в честь яблоневого сада фермы-коммуны, где он работал после того, как бросил колледж. В 1977 г. в фирму вошёл А. К. Маркулла – бывший администратор фирмы Intel. Под его руководством была создана машина Apple-2, заключённая в красивый пластмассовый корпус и снабжённая системой цветной графики. За год были проданы компьютеры на сумму $2,7 млн, а к 1980 г. годовой доход корпорации Apple Computers составил $117 млн. С 1983 г. корпорация Apple Computers входит в 500 крупнейших американских фирм.

Кроме персональных компьютеров Apple-1 и Apple-2, микропроцессор MCS6502 использовался также в компьютерах PET115 и VIC-20 фирмы Commodore. А в 1976 г. сама фирма MOS Technology была куплена Джеком Трэмиелом, основателем фирмы Commodore, для обеспечения его фирмы процессорами.

 

Центральные процессоры: Motorola MC6800

Микропроцессоры семейства MC68xx разрабатывались фирмой Motorola примерно в то же время, когда фирма Intel выпустила процессор 8080 – в 1974 г. Учитывая популярность этого процессора, были разработаны аналогичные ему микропроцессоры семейства MC68xx. Семейство, начатое процессором MC6800, завершил процессор MC6809, появившийся позже 8-битных микропроцессоров других фирм и потому являвшийся наиболее мощным 8-битным микропроцессором с широким набором возможностей.

Микропроцессор MC6800, содержавший около 4000 транзисторов, выпускался в корпусе с 40 контактами в два ряда и имел, как и процессор Z80, два входа запросов прерываний – маскируемого и немаскируемого, а также вход приостановки, сигнал на котором прекращал выполнение микропроцессором всех операций. Вход приостановки использовался для отладки и пошагового выполнения (трассировки) программ. В микропроцессоре MC6809, также выпускавшемся в 40-контактном корпусе, имеется кроме этого дополнительный вход запросов прерываний. Линии адреса и данных микропроцессоров семейства не мультиплексируются.

В микропроцессоре MC6800 имеется 3 рабочих регистра – два 8-битных регистра данных и 16-битный индексный регистр, а также 16-битные программный счётчик и указатель стека. В 8-битном регистре состояния (регистре кода условия) имеются флажки переноса, нуля, знака, переполнения и разрешения прерываний; остальные биты всегда установлены. Процессор MC6809 дополнительно имеет второй индексный регистр и второй указатель стека (один стек используется процессором, а другой – программой).

В восьми старших байтах адресного пространства хранятся вектора прерываний и адрес процедуры инициализации компьютера, загружаемый в программный счётчик при сбросе процессора. При возникновении прерывания процессор автоматически помещает в стек содержимое всех регистров, включая регистр состояния. Команда возврата из обработчика прерывания восстанавливает все эти регистры из стека. Это обеспечивает большую свободу для авторов процедур обработки прерываний, поскольку такая процедура может свободно изменять любые регистры процессора.

Микропроцессор MC6800 имеет 72 команды: 12 команд передачи данных, 37 команд их обработки, 20 команд перехода и 3 команды управления процессором. Команды работы с портами ввода-вывода среди них отсутствуют, поэтому необходимо применять ввод-вывод, отображённый на память. Имеются укороченные формы команд для работы с ячейками первых 256 байт памяти.

Фирмой Motorola выпускались микросхемы интерфейса с периферией MC6820/6821 и последовательного интерфейса MC6850 для поддержки своего микропроцессорного семейства MC68xx. Производились и другие вспомогательные микросхемы: контроллер приоритетных прерываний MC8507, микросхемы последовательного интерфейса MC6852 (синхронный интерфейс) и MC6850 (асинхронный интерфейс), генераторы синхронизации MC6870, MC6871/6871A и MC6875, контроллер ЭЛТ MC6845, микросхемы памяти MC6830 (ПЗУ) и MC6810 (ЗУПВ). Процессор MC6809 допускал также подключение к себе математического сопроцессора MC6839 и устройства управления памятью MC6829.

 

Центральные процессоры: Motorola MC68000

Первый 16-битный микропроцессор фирмы Motorola, названный MC68000, быт выпущен в 1979 г. Он содержал 70000 транзисторов и имел производительность 2 млн операций в секунду – значительно выше, чем 16-битные микропроцессоры семейства Intel 80x86. Хотя разрабатывался новый микропроцессор как замена для 8-битного процессора MC6809, программная совместимость между ним и 16-битным процессором MC68000 отсутствует. С другой стороны, совместно с микропроцессором MC68000 можно применять микросхемы, разработанные для его 8-битного предшественника.

Всё микропроцессорное семейство MC680xx, состоящее из процессоров MC68000, MC68008 и MC68010, имеет 32-битные рабочие регистры, таким образом являясь неким аналогом процессора Intel 386SL, выпущенного значительно позднее. Конечно, микропроцессоры семейств MC680xx и Intel 80x86 несовместимы; к тому же в микросхемах фирмы Motorola нет аналогов мультизадачности, поддерживаемой процессорами 80286/80386.

Различные микропроцессоры семейства MC680xx имеют шины различной разрядности: процессор MC68000 – 24-битную шину адреса и 16-битную шину данных; процессор MC68008 – 20-битную шину адреса и 8-битную шину данных; процессор MC68010 – 24-битную шину адреса и 16-битную шину данных. Имеются определённые сходства между процессорами этого семейства и семейства Intel 80x86: аналогичны процессоры MC68000 и 80286, MC68008 и 8088, MC68010 и 80386.

Микропроцессор MC68000 – один из самых мощных и универсальных 16-битных микропроцессоров. Корпус этого процессора имел 64 контакта в двух рядах; большое число контактов корпуса позволило не мультиплексировать линии адреса и данных процессора, а также увеличить число линий управления. Поэтому процессору MC68000 не требуются внешние контроллер шины и защёлки адреса, необходимые 16-битным микропроцессорам фирмы Intel. Используя совместно с линиями адреса также 3 линии выбора кристалла, процессор может адресовать до 64 Мбайт памяти. Микропроцессор имеет также 3 входа запросов прерываний.

Рабочие регистры микропроцессора MC68000 делятся на две группы из восьми 32-битных регистров данных и семи 32-битных регистров адреса. Кроме них, имеется два 32-битных указателя стека, позволяющие иметь отдельные системный и пользовательский стеки, 32-битный программный счётчик и 16-битный регистр состояния. Все рабочие регистры допускают обращения к своим младшим словам, а регистры данных – ещё и к своим младшим байтам; все рабочие регистры могут использоваться как индексные. Регистр состояния содержит флажки трассировки, режима работы, расширения, знака, нуля, переполнения и переноса, а также 3-битную маску прерываний.

Хотя регистры процессора MC68000 32-битные, в нём имеется только 16-битное АЛУ, позволяющее совершать операции только с младшими словами регистров. Конвейеризация в процессоре MC68000 применяется, но с большими ограничениями, так как выборка команды из памяти в очередь команд процессора производится только во время выполнения двух предыдущих команд.

Микропроцессор MC68000 имеет два режима работы, выбираемые флажком режима работы в его регистре состояния. Эти режимы примерно соответствуют реальному и защищённому режимам процессора 80286. «Защищённый» режим работы процессора MC68000, называемый режимом супервизора, состоит в том, что программа-супервизор может запустить другую программу в «виртуальном» режиме; при этом программа-супервизор будет использовать системный стек, а запущенная ей программа – пользовательский. Кроме того, программе-супервизору становятся доступны дополнительные команды процессора, недоступные в обычном режиме. Так, например, флажок трассировки может изменять только программа-супервизор. При этом программа обычного режима не может определить, выполняется ли она в обычном режиме (самостоятельно) или в «виртуальном» (под супервизором). Режим супервизора процессора MC68000 применяется, как правило, для отладки программ, хотя теоретически его можно использовать и для реализации многозадачности.

Как и микропроцессоры семейства Intel 80x86, процессор MC68000 имеет 254 типа прерываний, и часть их вызывается «особыми случаями», а часть – аппаратно или программно. Особые случаи микропроцессора MC68000 возникают при нарушении привилегий (попытке выполнения команд режима супервизора программой обычного режима) и при выборке команды с недопустимым кодом операции. Вектора прерываний хранятся, как и в процессорах семейства Intel 80x86, в младших адресах памяти; один вектор занимает 32 бита, так как программный счётчик процессора MC68000 имеет длину 32 бита. Вектор сброса процессора (прерывания с номером 0) занимает 64 бита, из которых 32 бита загружаются процессором в программный счётчик и 32 – в указатель стека. Номера прерываний распределены следующим образом: от 2 до 24 – особые случаи процессора, от 25 до 31 – аппаратные прерывания, от 32 до 47 – программные прерывания, от 48 до 63 – зарезервированы, от 64 до 255 – не используются и могут быть перепрограммированы пользователем для своих целей.

В каждой команде микропроцессора MC68000 код операции занимает 16 бит, из которых по 4 бита занимают номер регистра-операнда и (или) код режима адресации, когда это необходимо. Полная длина команд процессора составляет от 2 до 10 байт, в зависимости от режима адресации и длины данных. Существует 54 команды: 6 команд передачи данных, 28 команд их обработки, 9 команд перехода и 11 команд управления процессором. Как и в его 8-битном предшественнике, в процессоре MC68000 команды работы с портами ввода-вывода отсутствуют, и поэтому они должны быть отображены на память.

Микропроцессоры семейства MC680xx широко применялись в персональных компьютерах: MC68000 – в ПК AppleMacintosh, MC68008 – в ПК Sinclair QL, MC68010 – в ПК Hewlett-Packard 9000. Компьютеры Apple Macintosh по сей день считаются символом корпорации Apple Computers. Первый из них, Macintosh Classic, был выпущен в 1984 г. В нём впервые были применены концепции графического интерфейса пользователя,116 технологии «подключи и работай»,117 встроенной поддержки локальных вычислительных сетей и другие разработки фирмы Apple Computers (На самом деле, концепция графического интерфейса пользователя была разработана фирмой Xerox Corporation, но эта фирма не занималась внедрением своей разработки). Поскольку фирма Apple Computers до 1995 г. отвергала выдачу лицензий производителям компьютеров, совместимых с Apple Macintosh, то такие компьютеры сейчас мало распространены (около 10% всех ПК). Широкие мультимедийные возможности компьютеров Apple Macintosh сделали их привлекательными прежде всего для художников и композиторов, а также для использования в обучении. В деловых приложениях, например, в бухгалтерии, компьютеры Apple Macintosh применяются весьма редко.

 

Центральные процессоры: Motorola MC68020

Первый в мире «истинно 32-битный» микропроцессор был выпущен фирмой Hewlett-Packard в 1981 г. Этот процессор, гордо названный HP Superchip, содержал 450 тыс. транзисторов и работал с производительностью в 7 раз выше, чем у процессора MC68020. Однако процессор HP Superchip был весьма дорог и потому применялся только в суперкомпьютерах. Вскоре после этого (в 1984 г.) фирмой Motorola в рамках своего семейства микропроцессоров MC680xx был выпущен микропроцессор MC68020 – первый «истинно 32-битный» микропроцессор, применимый в персональных компьютерах.

Микропроцессор MC68020 выпускался в 114-контактном корпусе типа «держатель кристалла» и содержал на кристалле размером около 0,88 см2 порядка 200 тыс. транзисторов. Работал процессор на тактовой частоте 16 МГц (вдвое большей, чем у процессора MC68000). В новом процессоре сохранена совместимость по машинному коду с более ранними микропроцессорами семейства MC680xx – 16-битными процессорами MC68008 и MC68010, поэтому программное обеспечение для этих процессоров можно использовать и в более производительных системах на базе микропроцессора MC68020.

В отличие от своих 16-битных предшественников микропроцессор MC68020 содержит небольшую внутреннюю кэш-память и конвейер для повышения скорости выполнения программ. В его набор регистров включено несколько дополнительных регистров для поддержки мультизадачной операционной системы, а именно, отдельный указатель стека для процедур обработки прерываний, векторный базовый регистр и два регистра для работы с кэш-памятью. Как и в процессорах типа MC68010, все регистры, кроме 16-битного регистра состояния, имеют длину 32 бита.

АЛУ микропроцессора MC68020 не 16-битное, как у его предшественников из семейства MC680xx, а 32-битное, и оно также позволяет ограниченно выполнять операции над 64-битными операндами.

В микропроцессоре MC68020 по-прежнему имеется два режима работы – пользовательский и режим супервизора. Наличие векторного базового регистра позволяет размещать таблицу векторов прерываний процессора в любой области памяти. Регистр управления кэш-памятью применяется для таких операций с ней, как её разрешение/запрещение или очистка. Сама кэш-память состоит из 64 элементов длиной 64 бита каждый, причём каждый элемент состоит из 32 бит данных и 32-битного поля тэга, показывающего, где в физической памяти расположены (должны располагаться) эти данные. Таким образом, внутренняя кэш-память микропроцессора MC68020 является полностью ассоциативной. С каждым элементом кэш-памяти также ассоциировано 3-битное поле кода функции, показывающее тип этого элемента: данные, программа пользователя, программа супервизора и т.д. Возможно подключение к процессору MC68020 внешней кэш-памяти второго уровня.

В системе команд микропроцессора MC68020, как и у его предшественников, нет команд работы с портами ввода-вывода, поэтому эти порты должны быть отображены на память


 

А также другие работы, которые могут Вас заинтересовать

29272. Миф как универсальная культурно-историческая форма 51.5 KB
  Мифы –– создания коллективной общенародной фантазии обобщённо отражающие действительность в виде чувственноконкретных персонификаций и одушевлённых существ которые мыслятся первобытным сознанием реальными С. В первобытной культуре мифы выполняли роль науки это целостная система в терминах которой воспринимается весь мир. Этиологические мифы от греч. – причина – мифы объяснительные мифы повествования в которых в мифологически олицетворённой форме разъясняются происхождение какоголибо явления природы или социальной жизни.