Особенности процессоров /
Описание микропроцессоров фирмы Intel мы начнем с процессоров i8086/8088. Именно заложенные в них архитектурные решения во многом определили архитектуру последующих моделей семейства Intel, поддерживающих совместимость с более ранними моделями. В том числе и с недостатками и ограничениями предыдущих моделей.
Процессор i8086 имеет совмещенную (мультиплексированную) 20-разрядную внешнюю шину адреса/данных. Данные передаются по 16 разрядам, адрес — по 20 разрядам. Шина управления имеет 16 разрядов (в частности, в нее входят строб адреса и стробы обмена с памятью и устройствами ввода/вывода). Среднее время выполнения команды занимает 12 тактов синхронизации, один цикл обмена по внешней шине требует 4 тактов (без учета тактов ожидания, вводимых при асинхронном обмене). У процессора i8088 внешняя шина данных 8-разрядная.
Одна из характерных особенностей процессоров i8086/8088 — принцип сегментирования памяти. То есть вся память представляется не в виде непрерывного пространства, а в виде нескольких кусков — сегментов заданного размера (по 64 Кбайта), положение которых в пространстве памяти можно программно изменять. Об этом уже говорилось в разделе 3.1.2 (см. рис. 3.5 и 3.6).
Процессор 8086/8088 имеет 14 регистров разрядностью по 16 бит. Об их назначении также уже говорилось в разделе 3.2.
Для ускорения выборки команд из памяти в процессоре 8086 предусмотрен внутренний 6-байтный конвейер (в процессоре 8088 — 4-байтный). Конвейер заполняется читаемыми из памяти командами во время выполнения предыдущей команды и сбрасывается (считается пустым) при выполнении любой команды перехода (даже если это команда перехода на следующий адрес).
Система команд процессора включает в себя 133 команды, поддерживающие 24 метода адресации операндов. Такое большое число команд может рассматриваться как достоинство (можно гибко выбирать команду, оптимально подходящую для каждого конкретного случая), но оно же заметно усложняет структуру процессора.
Каждая команда содержит 1, 2 или 4 байта кода команды, за которыми могут следовать 1, 2 или 4 байта операнда.
В процессоре предусмотрены программные и аппаратные прерывания, разделение внешней шины с другими процессорами или с контроллером прямого доступа к памяти, а также возможность подключения математического сопроцессора i8087, существенно увеличивающего производительность вычислений.
При старте процессора (по внешнему сигналу RESET) он переходит в адрес памяти FFFF0 и начинает выполнение программы, которая размещается начиная с этого адреса.
Процессор может обрабатывать 256 типов прерываний: внешних (аппаратных), программных и внутренних. Векторы прерываний представляют собой двойное слово (два слова по 16 разрядов), определяющее сегмент и смещение начального адреса программы обработки прерываний. Для векторов прерываний отведена область памяти с адресами 00000…003FF. Внутренние прерывания вырабатываются при особых ситуациях:
- прерывание 0 соответствует переполнению при делении на нуль;
- прерывание 1 вырабатывается после каждой команды при установленном флаге трассировки TF в регистре состояния процессора (см. раздел 3.2);
- прерывание 4 вырабатывается по специальной команде INTO, если установлен флаг переполнения OF в регистре состояния процессора (это условное прерывание по переполнению).
Важная отличительная особенность процессора — разделение операций обмена с устройствами ввода/вывода и с памятью. Для обмена с устройствами ввода/вывода используются как отдельные команды ввода и вывода, так и специальные управляющие сигналы на шине управления. Адреса и данные как при обмене с памятью, так и при обмене с устройствами ввода/вывода передаются по одним и тем же шинам.
Но если для обмена с памятью используются все 20 разрядов шины адреса (адресуется 1 Мбайт — адреса 00000 ... FFFFF), то в циклах обмена с устройствами ввода/вывода — только 16 разрядов шины адреса (адресуется 64 Кбайта — адреса 00000 ... 0FFFF). Такой подход имеет как свои преимущества (например, упрощение реализации прямого доступа к памяти), так и недостатки (усложнение системы команд, увеличение количества управляющих сигналов).
Микропроцессоры i8086/8088 выполнены в виде интегральной микросхемы в 40-выводном корпусе. Отличие в назначении выводов микросхемы между ними только одно: адрес в процессоре 8088 не мультиплексирован с данными (передается по отдельным линиям), а в процессоре 8086 — мультиплексирован.
Процессор работает от одного источника питания напряжением +5В и требует внешнего тактирующего сигнала с частотой, определяемой номером модели (от 4,77 МГц до 10 МГц).
Специальный управляющий сигнал MN/MX определяет минимальный или максимальный режим работы процессора. В минимальном режиме процессор сам вырабатывает сигналы управления для внешней шины. Этот режим используется для построения простейших систем. Для работы в составе компьютера применяется максимальный режим, при котором сигналы управления внешней шиной вырабатываются специальной микросхемой контроллера шины i8288.