
Архитектура процессоров 80x86
Немного истории
Появление первых микропроцессоров можно смело назвать эпохальным событием второй половины XX века, которым мы обязаны фирме Intel Corporation of Santa Clara, что в знаменитой Кремниевой долине в Калифорнии.
Все началось в 1971 году, когда фирма создала микросхему 4004, сумев разместить в одном кристалле большую часть компонентов процессора. Раньше подобное устройство представляло собой весьма объемистый блок. На базе 4004 был сделан первый микрокалькулятор, по тем временам казавшийся чудом техники. Почти в то же время появился специализированный микропроцессор 8008, который предназначался для использования в терминале вычислительной машины. Несмотря на то, что эти микросхемы были встречены без всеобщего восторга, видимо из-за их высокой стоимости и традиционной инертности мышления производителей электронной аппаратуры, фирма Intel продолжила свои работы в этой области, и после объявления в 1974 году о выпуске микропроцессора второго поколения 8080, компьютерная промышленность наконец зашевелилась.
Intel 8080 был первым универсальным устройством, предназначенным не только для замены жесткой логики, но и для вычислений. Он имел довольно высокую производительность, позволял адресовать значительный объем памяти, да и спектр его возможностей был существенно шире, чем у предшественников. Все это, очевидно, послужило причиной того, что микропроцессор быстро стал общепризнанным стандартом, и многие фирмы начали выпускать его по лицензии. Стали появляться улучшенные версии, например, Z80 фирмы Zilog или V10 фирмы NEC, но структура оставалась прежней. Кстати, и сама фирма Intel в 1976 году тоже выпустила модернизированный вариант кристалла 8080,— микропроцессор 8085 — заметно улучшенный аппаратно и, кроме того, дополненный несколькими командами. В него был встроен тактовый генератор и контроллер шины, добавлен простой последовательный порт и увеличена тактовая частота.
В 1978 году появилось третье поколение микропроцессоров, и опять фирма Intel оказалась лидером — кристалл 8086 стал первым микропроцессором, оперирующим 16-разрядными словами данных. Он обладал весьма высокой по тем временам производительностью и серьезными возможностями, в том числе полной десятичной арифметикой, что позволяло применять его в самых различных областях.
Здесь хотелось бы упомянуть, что фирма Intel неоднократно делала, как сказали бы военные, "маневры тактического отступления", приводившие ее к очередному успеху. Например, в 1979 году она упростила процессор 8086, создав микросхему 8088 с 8-разрядной внешней шиной данных. Двумя годами позже фирмой IBM на основе этого кристалла был создан один из первых "настоящих" персональных компьютеров, и всемирное триумфальное шествие микропроцессоров фирмы Intel началось.
Другим "отступлением" явилось создание однокристальной микро-ЭВМ 8748, объединившей процессор, тактовый генератор, контроллер шины, постоянное запоминающее устройство для хранения программ, маленькое ОЗУ и два дополнительных параллельных порта — и все это в единственной микросхеме. Возможности этого. устройства были сильно ограничены — объем оперативной памяти составлял мизерную величину в 64 байта, да и адресуемое пространство программ и количество внешних устройств также были небольшими. Правда, несмотря ни на что, 8748 вместе с еще более простым вариантом — 8035 — быстро завоевали рынок несложных устройств управления.
Но вернемся к семейству 8086. В 1983 году Intel разработала еще два микропроцессора, представлявших собой усовершенствованные варианты 8086 и 8088 — 80186 и 80188, однако получить широкого распространения они не успели, так как в том же году появился процессор 80286, ставший серьезным шагом вперед. Всего через год на его базе был создан персональный компьютер IBM PC/AT, предоставивший в распоряжение пользователя вычислительные мощности средней ЭВМ. С появлением виртуального режима стало возможным создавать на базе 80286 системы с разделением ресурсов, что раньше было прерогативой больших машин. В микропроцессоре было также реализовано управление памятью.
О более поздних моделях процессоров фирмы Intel мы попытаемся рассказать в следующих статьях, посвященных их архитектуре.
В зависимости от набора функциональных узлов и внутренней организации микропроцессора выделяют три основных варианта: однокристальные микропроцессоры, многокристальные секционные микропроцессоры и однокристальные микро-ЭВМ.
Для однокристальных микропроцессоров характерны фиксированная разрядность и фиксированный набор команд. Кристалл содержит, как правило, арифметико-логическое устройство, блок дешифрации команд, устройство управления, устройство управления внутренними узлами и обменом информацией с внешними устройствами, а также буфера шин, согласующие внешние сигналы с внутренними.
Зачастую, в однокристальных микропроцессорах используется совмещенная шина данных и адреса, что объясняется небольшим количеством выводов корпуса микросхемы (обычно 40-48). Устройство управления реализует определенный набор команд, выдавая соответствующие управляющие сигналы различным узлам и внешним устройствам. Набор команд (фактически - логика работы устройства управления) реализован аппаратно и не может быть изменен разработчиком вычислительного устройства.
В многокристальных микропроцессорах используется несколько микросхем, каждая из которых реализует отдельный узел процессора. Как правило такими узлами являются секции АЛУ, блок микропрограммного управления, специальное постоянное запоминающее устройство, содержащее команды, представляющие собой последовательности микроинструкций процессора, а также узлы, обеспечивающие работу микропроцессора. Обычно секции АЛУ выпускаются с определенной разрядностью, но возможно параллельное соединение секций, что дает возможность получения вычислительных систем практически любой разрядности. Такие микропроцессоры применяются в мощных и быстродействующих устройствах, в частности, предназначенных для управления сложными объектами, производствами и т.д.
Однокристальные микро-ЭВМ отличаются тем, что в одной БИС реализован не только микропроцессор, но и другие узлы микроЭВМ, обычно ОЗУ, память программ, тактовый генератор, несложный контроллер прерываний, последовательные и/или параллельные порты, таймеры и т.д. Существуют специализированные однокристальные микроЭВМ для обработки аналоговых сигналов, содержащие еще и многоканальные аналогово-цифровые и цифро-аналоговые преобразователи. Однокристальные микроЭВМ - наиболее универсальные устройства, однако обычно их производительность невелика, поэтому они используются в несложных управляющих системах, в измерительных приборах, в бытовой технике, в электронных игрушках и других подобных вещах.
И.Вязаничев
Архитектура микропроцессоров
Под этим термином понимают совокупность и способ объединения узлов микропроцессора, а также его набор команд. Знание этих двух моментов дает возможность грамотно организовать интерфейс аппаратных и программных средств вычислительной системы. Считается, что минимальная архитектура микропроцессора требует наличия арифметико-логического устройства, выполняющего все операции преобразования поступающих данных, и устройства управления, обеспечивающего выполнение команд процессора и работу с внешними устройствами.
Кроме того, в микропроцессоре обязательно используются шины. Шина — это совокупность линий, по которым передаются цифровые сигналы, необходимые для обмена информацией между устройствами. В микропроцессорах фирмы Intel выделяют три шины: шину данных, шину адреса и шину управления. Кроме того, под шиной может подразумеваться стандартный набор линий, объединяющий в себе все эти три группы.
Архитектура микропроцессора i8080
8080 является однокристальным микропроцессором, работающим с 8-разрядной шиной данных и 16-разрядной шиной адреса. Управляющие сигналы передаются по шине управления. Шины отделены друг от друга. Структура Intel 8080 приведена на рис. 1.
Для увеличения рисунка щелкните на нем мышкой
Микропроцессор содержит внутреннюю шину данных, посредством которой происходит обмен информацией между внутренними регистрами, арифметико-логическим устройством, обрабатывающим 8-разрядные данные и передающим их через буфер на внешнюю шину данных. Кроме того, в состав 8080 входит устройство управления, буфер адресной шины, связанный с регистром команд и блок регистров. В общих чертах работа микропроцессора выглядит следующим образом: в регистре, называемом программным счетчиком, хранится адрес следующей команды, которую необходимо выполнить. Устройство управления подключает этот регистр к шине адреса (конечно, через буфер) и выдает управляющие сигналы, необходимые для чтения кода команды из памяти. На этом завершается первый такт.
В следующем такте микропроцессор проверяет состояние сигналов на входе готовности и запрос останова. При их наличии микропроцессор переходит в соответствующее состояние. В противном случае, после появления на шине управления сигналов, подтверждающих выдачу кода команды на шину данных, устройство управления подключает к ней регистр команды и записывает в нее полученный код. Это требуется потому, что команда передается только в первом машинном цикле, а сохранить ее нужно на все время выполнения команды. Из регистра команды ее код поступает в дешифратор команды и затем в устройство управления, которое в зависимости от поступившей команды либо сразу переходит к ее выполнению, либо считывает данные или адрес, расположенные сразу после кода команды и необходимые для ее выполнения. На это тратится третий такт и, если это необходимо, четвертый и пятый такты. Таким образом, вся команда выполняется за 3-5 тактов. При тактовой частоте 2 МГц это составляет 1.5-2.5 мкс.
Перед выполнением команды проверяется состояние сигнала на входе захвата шины HLD (этот сигнал отключает микропроцессор от шины, давая внешним устройствам возможность прямого доступа в память по общей шине). При его обнаружении микропроцессор переходит в состояние захвата и вырабатывает сигнал подтверждения захвата шины. После снятия сигнала HLD процессор продолжает выполнение команды. В конце машинного цикла вновь анализируется состояние входа захвата, а затем проверяется, завершено ли выполнение команды. Если нет, то микропроцессор переходит к выполнению следующего цикла команды. Это может быть цикл работы с оперативной памятью или с внешним устройством.
После выполнения каждой команды проверяется состояние входа запроса прерывания. Если этот сигнал присутствует, то текущая программа приостанавливается и на шину данных выдается сигнал "подтверждение прерывания". Затем внешний контроллер прерываний передает по шине данных команду и адрес перехода к подпрограмме обработки прерывания. По окончании обработки прерывания происходит возврат к выполнению прерванной программы.
Сигнал готовности позволяет синхронизировать работу микропроцессора с работой более медленных устройств, и, кроме того, используется для пошагового выполнения программ.
Следующим важным узлом микропроцессора является блок регистров. Он включает в себя 16-разрядный регистр для временного хранения данных WZ, шесть 8-разрядных регистров общего назначения B, C, D, E, H, L, которые могут использоваться парами в качестве 16-разрядных — BC, DE, HL (это сделано прежде всего для удобной работы с адресами). Кроме того, блок регистров содержит 16-разрядный регистр адреса команды IP (программный счетчик), 16-разрядный регистр указателя стека SP, а также 16-разрядную схему инкремента-декремента. С помощью последней изменяется, например, состояние программного счетчика после выполнения каждой следующей команды.
Еще один важный узел — регистр результата (аккумулятор), связанный с АЛУ и используемый для хранения одного из исходных операндов или результата выполнения команды.
Последний регистр — это регистр флажков. В нем записан байт, каждый бит которого содержит информацию о результате выполнения последней команды.