Глава 7. Организация персонального компьютера
7.2. Процессоры персональных компьютеров
Несмотря на то, что первый персональный компьютер был выпущен фирмой Apple, сейчас персональными компьютерами называют в основном IBM PC-совместимые компьютеры. Это связано, прежде всего, с тем, что фирма IBM выбрала правильную рыночную политику: она не скрывала принципов устройства своих компьютеров и не патентовала основных решений. В результате многие производители стали выпускать совместимые компьютеры, и они быстро стали фактическим стандартом. Из-за большого объема выпуска персональные компьютеры начали быстро дешеветь. К тому же для IBM-совместимых персональных компьютеров стали разрабатывать множество программных средств, что еще больше способствовало их распространению. Поэтому, несмотря на некоторые существенные архитектурные недостатки, IBM-совместимые персональные компьютеры сейчас уверенно занимают первое место на рынке.
С самого начала фирма IBM ориентировалась на процессоры Intel. У этих процессоров были очень мощные конкуренты, например, процессоры фирм Motorola или Zilog, превосходившие процессоры Intel по многим параметрам, но именно благодаря персональным компьютерам процессоры Intel смогли выйти победителями в конкурентной борьбе. К тому же еще некоторые фирмы (например, AMD, VIA, Cyrix) выпускают Intel-совместимые процессоры. Поэтому мы рассмотрим основные особенности процессоров фирмы Intel. Это позволит нам также проследить основные тенденции в развитии процессоров за последние десятилетия.
Свой первый 16-разрядный процессор i8086 фирма Intel выпустила в 1978 году. Он мог адресовать 1 Мбайт памяти (то есть имел 20-разрядную шину адреса), производительность его при тактовой частоте 5 МГц составляла 0,33 MIPS, но вскоре появились процессоры с тактовой частотой 8 и 10 МГц. Чуть позже (через год) была выпущена упрощенная версия процессора i8086 — i8088, который отличался только 8-разрядной внешней шиной данных. За счет этого он был медленнее, чем i8086, на 20—60% при той же тактовой частоте, но зато заметно дешевле. Именно на его основе был собран очень популярный персональный компьютер IBM PC XT.
16-разрядный процессор i80286, выпущенный в 1982 году, был использован в персональных компьютерах IBM PC AT. Принципиально новым было в нем то, что он мог адресовать до 16 Мбайт памяти и имел помимо реального режима, аналогичного i8086, еще и так называемый защищенный режим, позволяющий более гибко управлять памятью. Производительность этого процессора при тактовой частоте 8 МГц составляла 1,2 MIPS.
Важным шагом стало появление в 1985 году полностью 32-разрядного процессора i80386, способного адресовать до 4 Гбайт памяти (32-разрядная адресная шина). Он имел еще более развитую систему управления памятью MMU (Memory Management Unit). Производительность его при тактовой частоте 16 МГц составляла 6 MIPS. С появлением этого процессора стала бурно развиваться операционная система MS Windows, существенно изменившая процесс работы с компьютерами типа IBM PC.
Еще одним принципиальным шагом стало создание в 1989 году процессора Intel 486DX, в котором появились встроенный математический сопроцессор, существенно ускоривший выполнение арифметических операций, и внутренняя кэш-память, ускоряющая обмен с оперативной памятью. Максимальный объем адресуемой памяти этого процессора — 4 Гбайт. На тактовой частоте 25 МГц производительность была 16,5 MIPS. Начиная с процессора 486, получило распространение так называемое умножение тактовой частоты, то есть внутреннее удвоение и даже учетверение внешней тактовой частоты (обозначается 486DX2, 486DX4).
В 1995 году появились первые процессоры Pentium, открывшие новый этап в развитии семейства. Они были 32-разрядными внутри, но имели 64-разрядную внешнюю шину данных. Принципиальным отличием было использование в них так называемой суперскалярной архитектуры, следствием чего стало более высокое быстродействие при той же тактовой частоте, что и i486DX. При тактовой частоте 66 МГц производительность процессора достигала 112 MIPS. В 1996 году тактовая частота Pentium была доведена до 200 МГц, а стоимость снизилась настолько, что он стал рядовым процессором персональных компьютеров семейства IBM PC.
В 1997 году Pentium был дополнен технологией MMX, призванной ускорять выполнение мультимедийных приложений (обработку изображений и звука). И в этом же году появился процессор Pentium II, который включает в себя технологию ММХ и имеет более высокое быстродействие. Возможная тактовая частота достигла 400 МГц.
В последние годы появились процессоры Pentium III и Pentium IV, имеющие еще более развитую архитектуру и тактовую частоту, превышающую 1 ГГц у Pentium III и 3 ГГц у Pentium IV.
Таким образом, содружество компании Intel и производителей IBM-совместимых персональных компьютеров успешно продолжается. Другие фирмы, выпускающие процессоры, вряд ли существенно потеснят в ближайшие годы Intel. Поэтому рассмотрим чуть подробнее характерные особенности процессоров для персональных компьютеров этой компании.
7.2.1. Особенности процессоров 8086/8088
Описание микропроцессоров фирмы 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. Внутренние прерывания вырабатываются при особых ситуациях:
Рис. 7.4. Форматы регистров признаков (PSW) и управления (MSW) процессора 80286.
Дополнительные биты слова состояния процессора PSW имеют следующее назначение (подробнее о них — в следующем разделе):
Рис. 7.5. Формат селектора сегмента процессора 80286.
О порядке вычисления адреса памяти в защищенном режиме процессора 80286 уже говорилось в разделе 3.1.2 (см. рис.3.7). На сумматор, вычисляющий физический адрес памяти, подается не содержимое сегментного регистра, а базовый адрес сегмента из таблицы дескрипторов.
Дескрипторы хранятся в памяти и занимают по четыре смежных 16-разрядных слова (то есть 8 байт). При загрузке нового значения селектора дескрипторы считываются из памяти и сохраняются во внутренних программно недоступных (и невидимых) регистрах процессора. До смены значения селектора при обращениях к памяти используются значения дескрипторов только из этих невидимых регистров (их называют кэш-регистрами).
В защищенном режиме команды ввода/вывода процессора являются привилегированными. Это означает, что они могут выполняться задачами только с определенным уровнем привилегий, определяемых полем IOPL регистра признаков. Несанкционированная попытка выполнения этих команд вызывает прерывание по нарушению защиты.
Как и 8086, процессор 80286 может обрабатывать до 256 типов прерываний. Прерывания подразделяются на аппаратные (маскируемые или немаскируемые), вызываемые сигналами на входах процессора, программные, вызываемые командой INT, и исключения инструкций. При этом аппаратные и программные прерывания работают точно так же, как в 8086/8088.
Исключения инструкций (Instruction Exceptions) или просто исключения случаются при возникновении особых условий при выполнении операций (в 8086 аналогом исключений являлись внутренние прерывания процессора). Обработка исключений проводится аналогично обработке прерываний.
Каждому номеру прерывания соответствует свой элемент в таблице дескрипторов прерываний IDT (Interrupt Descriptor Table). В реальном режиме эта таблица организована так же, как у 8086/8088, то есть содержит двойные слова, определяющие адрес начала процедур обработки прерываний. В защищенном режиме таблица содержит 8-байтные дескрипторы прерываний. Ее размер может быть от 32 до 256 дескрипторов, и располагаться она может в любом месте памяти.
Система команд процессора 80286 включает, помимо полного набора8086, ряд дополнительных команд, например:
|
|
Дата добавления: 2015-02-28; просмотров: 926;

Рис. 7.4. Форматы регистров признаков (PSW) и управления (MSW) процессора 80286.
Дополнительные биты слова состояния процессора PSW имеют следующее назначение (подробнее о них — в следующем разделе):
Рис. 7.5. Формат селектора сегмента процессора 80286.
О порядке вычисления адреса памяти в защищенном режиме процессора 80286 уже говорилось в разделе 3.1.2 (см. рис.3.7). На сумматор, вычисляющий физический адрес памяти, подается не содержимое сегментного регистра, а базовый адрес сегмента из таблицы дескрипторов.
Дескрипторы хранятся в памяти и занимают по четыре смежных 16-разрядных слова (то есть 8 байт). При загрузке нового значения селектора дескрипторы считываются из памяти и сохраняются во внутренних программно недоступных (и невидимых) регистрах процессора. До смены значения селектора при обращениях к памяти используются значения дескрипторов только из этих невидимых регистров (их называют кэш-регистрами).
В защищенном режиме команды ввода/вывода процессора являются привилегированными. Это означает, что они могут выполняться задачами только с определенным уровнем привилегий, определяемых полем IOPL регистра признаков. Несанкционированная попытка выполнения этих команд вызывает прерывание по нарушению защиты.
Как и 8086, процессор 80286 может обрабатывать до 256 типов прерываний. Прерывания подразделяются на аппаратные (маскируемые или немаскируемые), вызываемые сигналами на входах процессора, программные, вызываемые командой INT, и исключения инструкций. При этом аппаратные и программные прерывания работают точно так же, как в 8086/8088.
Исключения инструкций (Instruction Exceptions) или просто исключения случаются при возникновении особых условий при выполнении операций (в 8086 аналогом исключений являлись внутренние прерывания процессора). Обработка исключений проводится аналогично обработке прерываний.
Каждому номеру прерывания соответствует свой элемент в таблице дескрипторов прерываний IDT (Interrupt Descriptor Table). В реальном режиме эта таблица организована так же, как у 8086/8088, то есть содержит двойные слова, определяющие адрес начала процедур обработки прерываний. В защищенном режиме таблица содержит 8-байтные дескрипторы прерываний. Ее размер может быть от 32 до 256 дескрипторов, и располагаться она может в любом месте памяти.
Система команд процессора 80286 включает, помимо полного набора8086, ряд дополнительных команд, например: