Основы микропроцессорной техники

Раздел 7. Организация персонального компьютера


«Структура курса | Раздел 1 | Раздел 2 | Раздел 3 | Раздел 4 | Раздел 5 | Раздел 6 | Раздел 7 | Глава 8 | Дополнения

Раздел 7 - Страницы: «1 | 2 | 3 | 4 | 5 | 6 | 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 МГц. Чуть позже (через год) была выпущена упрощенная версия процессора и8086 - и8088, отличавшийся только 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-разрядную внешнюю шину данных. Принципиальным отличием было использование в них так называемой суперскалярной архитектуры, следствием чего стала более высокое быстродействие при той же тактовой частоте, что и и486DX. При тактовой частоте 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 мы начнем с процессоров и8086/8088. Именно заложенные в них архитектурные решения во многом определили архитектуру следующих моделей семейства Intel, поддерживают совместимость с более ранними моделями. В том числе и с недостатками и ограничениями предыдущих моделей.

Процессор и8086 имеет совмещенную (мультиплексированных) 20-разрядную внешнюю шину адреса / данных. Данные передаются по 16 разрядам, адрес - по 20 разрядам. Шина управления имеет 16 разрядов (в частности, в нее входят строб адреса и строб обмена с памятью и устройствами ввода / вывода). Среднее время выполнения команды занимает 12 тактов синхронизации, о дин цикл обмена по внешней шине требует 4 тактов (без учета тактов ожидания, вводимые при асинхронном обмене). В процессора и8088 внешняя шина данных 8-разрядная.

Одна из характерных особенностей процессоров и8086/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 байта операнда.

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

При старте процессора (по внешним сигналом RESET) он переходит в адрес памяти FFFF0 и начинает выполнение программы, которая размещается начиная с этого адреса.

Процессор может обрабатывать 256 типов прерываний: внешних (аппаратных, программных и внутренних. Векторы прерываний у этого процессора это двойное слово (два слова по 16 разрядов), определяющим сегмент и смещение начального адреса программы обработки прерываний. Для векторов прерываний отведена область памяти с адресами 00000 ... 003FF. Внутренние прерывания вырабатываются при особых ситуациях:

  • прерывания 0 соответствует переполнение при делении на ноль;
  • прерывания 1 производится после каждой команды при установленном флаге трассировки TF в регистре состояния процессора (см. раздел 3.2);
  • прерывания 4 производится по специальной командой INTO, если установлен флаг переполнения OF в регистре состояния процессора (это условное прерывание за переполнением.

Особое место занимает немасковане прерывания NMI (Non-Masked Interrupt), которая производится при поступлении внешнего сигнала NMI и не зависит от состояния флага разрешения аппаратных прерываний IF. В компьютере оно используется для контроля четности памяти, контроля корректности обмена с памятью и устройствами ввода / вывода, а также для обработки так называемых исключений, то есть особых условий, возникающих в процессе работы. Немаскованим оно называется именно потому, что его нельзя запретить.

Важная отличительная особенность процессора - разделение операций обмена с устройствами ввода / вывода и с памятью. Для обмена с устройствами ввода / вывода используются как отдельные команды ввода и вывода, так и специальные управляющие сигналы на шине управления. Адреса и данные как при обмене с памятью, так и при обмене с устройствами ввода / вывода передаются теми же шинами. Но если для обмена с памят ю используются все 20 разрядов шины адреса (адресуется 1 Мбайт - адреса 00000 ... FFFFF), то в циклах обмена с устройствами ввода / вывода - только 16 разрядов шины адреса (адресуется 64 Кбайта - адреса 00000. .. 0FFFF). Такой подход имеет как свои преимущества (например, упрощение реализации прямого доступа к памяти), так и недостатки (усложнение системы команд, увеличение количества управляющих сигналов).

Микропроцессоры и8086/8088 выполнены в виде интегральной микросхемы в 40-выводном корпусе. Отличие в назначении выводов микросхемы между ними только одна: адрес в процессоре 8088 НЕ мультиплексированных данных (передается отдельными линиях), а в процессоре 8086 - мультиплексированных.

Процессор работает от одного источника питания напряжением +5 В и требует внешнего тактирующего сигнала с частотой, определяемой номером модели (от 4,77 МГц до 10 МГц).

Специальный управляющий сигнал MN / MX определяет минимальный или максимальный режим работы процессора. В минимальном режиме процессор сам вырабатывает сигналы управления для внешней шины. Этот режим используется для построения простейших систем. Для работы в составе компьютера применяется максимальный режим, при котором сигналы управления внешней шиной производятся специальной микросхемой контроллера шины i8288.

7.2.2. Особенности процессора 80286

Несмотря на то, что процессор 80286 остался 16-разрядным, как и его предшественник 8086, он стал новым поколением процессоров, определило его высокую популярность и обеспечило персональному компьютеру на его основе (IBM PC AT) достаточно долгую жизнь. Этот процессор отличается тем, что он имеет специальные средства для работы в багатокористувацькихи многозадачных системах.

Наиболее существенное отличие от процессора 8086/8088 - это механизм управления адресацией памяти, что обеспечивает четырехуровневая система защиты и поддержку виртуальной памяти. (Виртуальная память - это внешняя память большого объема, с которой процессор может взаимодействовать как со своей системной памятью, но с некоторыми ограничениями). Специальные средства предусмотрены также для поддержки механизма переключения задач (Task switching). То есть процессор способен выполнять несколько задач одновременно, переключаясь время от времени между ними. В процессоре 80286 также расширена система команд за счет придачи команд управления защитой и нескольких новых команд общего назначения.

Процессор 80286 может работать в двух режимах:

  • Реальный режим (8086 Real Address Mode - режим реальной адресации), полностью совместимый с процессором 8086/8088. В этом режиме возможна адресация только в пределах 1 Мбайта физической памяти. Он используется для обеспечения программной преемственности с процессором 8086/8088.
  • Защищенный режим (Protected Virtual Address Mode - защищенный режим виртуальной адресации. В этом режиме возможна адресация в пределах 16 Мбайт физической памяти. Такое решение связано с необходимостью построения компьютеров с большим объемом памяти, которые обеспечивали бы поддержку более сложных программ. В безопасном режиме система команд включает набор команд 8086, который расширен для обеспечения аппаратной поддержки многозадачной режима и виртуальной памяти.

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

В составе компьютера под управлением операционной системы MS DOS процессор 80286 работает в реальном режиме, а защищенный режим используют операционные системы типа UNIX, OS / 2, NetWare286, а также операционные системы семейства MS Windows. Подробнее особенности этих режимов будут рассмотрены в следующем разделе.

Как и процессор 8086, 80286 имеет 16-разрядную внешнюю шину данных и 6-байтных конвейер команд. Однако быстродействие процессора 80286 при тактовой частоте 12,5 МГц примерно в 6 раз выше, чем в 8086 с тактовой частотой 5 МГц. Это достигается за счет усовершенствованной архитектуры и снижение количества тактов на одну команду. Для ускорения выполнения математических операций предусмотрено подключение к процессору 80286 микросхемы математического сопроцессора 80287.

Назначение внутренних регистров процессора 80286 такое же, как у процессора 8086/8088. Но в слове состояния процессора (PSW) добавлены три используемых разряда, и, кроме того, появился еще один внутренний регистр - регистр управления со словом состояния машины (MSW - Machine State Word), в котором используется только четыре биты (Рис. 7.4 .


Рис. 7.4. Форматы регистров признаков (PSW) и управления (MSW) процессора 80286.

Дополнительные биты слова состояния процессора PSW имеют следующее назначение (подробнее о них - в следующем разделе):

  • IOPL (Input / Output Privilege Level) - две биты, определяющие уровень привилегий ввода / вывода;
  • NT (Nested Task flag) - флаг вложенной задачи.

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

  • PE (Protection Enable) - разрешение защиты. Установка этого флага переводит процессор в защищенный режим. Но очистки флага не переводит в реальный режим (требуется аппаратное сброса процессора).
  • MP (Monitor Processor extension) - мониторинг внешнего математического сопроцессора.
  • EM (Processor Extension Emulated) - эмуляция математического сопроцессора.
  • TS (Task Switch) - переключение задач. Как и два предыдущих разряды, этот разряд руководит сопроцессором.

Сочетание MP = 0 EM = 0 TS = 0, которое устанавливается по аппаратным сбросом (по сигналу RESET), обеспечивает совместимость с 8086/8088. Сочетание MP = 1 EM = 0 используется при совместном включении с сопроцессором 80287, а сочетание MP = 0 EM = 1 применяется в случае программной эмуляции сопроцессора, при которой функции сопроцессора выполняются основным процессором, но гораздо медленнее.

Остановимся подробнее на организации памяти процессора 80286. 24-разрядная внешняя шина адреса позволяет адресовать 16 Мбайт физической памяти, но в реальном режиме доступен только 1 Мбайт, начинающийся с нулевой адреса (000000 ... 0FFFFF). Так же, как и в 8086, применяется сегментация памяти, но управление сегментацией в реальном и защищенном режимах происходит по-разному.

В реальном режиме процессор 80286, в отличие от 8086, имеет средства контроля перехода через границу сегмента. Например, при попытке обращения к слову, имеющего смещение FFFF (его старший байт выходит за пределы сегмента), или при выполнении команды, все байты которой не умещаются в данном сегменте, процессор вырабатывает специальное прерывания - Segment Overrun Interrupt.

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

  • Сегментные регистры CS, DS, SS и ES хранят не сами базовые (начальные) адреса сегментов, а селекто ры, определяющие адреса в памяти, по которым сохраняются дескрипторы (описания) сегментов. Область памяти с дескрипторы называется таблицей дескрипторов.
  • Каждый дескриптор сегмента содержит базовую адрес сегмента, размер сегмента (от 1 до 64 Кбайт) и его атрибуты.
  • Базовый адрес сегмента имеет разрядность 24 бит, что и обеспечивает адресацию 16 Мбайт физической памяти.
  • Селекторы, загружаемых в 16-битные сегментные регистры, имеют три поля: RPL (Requested Privilege Level) - запрашиваемый уровень привилегий, TI (Table Indicator) - индикатор использования локальной или глобальной таблицы дескрипторов, INDEX - номер дескриптора в таблице (формат показан на Рис. 7.5).


Рис. 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, ряд додаткових команд, наприклад:

  • збереження константи в стеці, збереження в стеці і відновлення зі стека всіх регістрів однією командою;
  • цілочиельне множення на константу;
  • зсуви (включаючи циклічні) на задану в константі кількість кроків;
  • вхід і вихід із процедур;
  • команди управління захистом.

Спроба виконання недійсної команди (чи спроба виконання в реальному режимі команди, призначеної тільки для захищеного режиму) викликає спеціальний виняток.

Процесор 80286 випускався в 68-вивідних корпусах. Зовнішні шини адреси і даних були розділені. Напруга живлення процесора складала +5В.


« Структура курсу Розділ 7 - Сторінки: « 1 | 2 | 3 | 4 | 5 | 6 | 7 | »