Микропроцессоры
фирмы Intel
в ходе своего развития к настоящему
времени прошли ряд этапов, которые
с определенным приближением можно
характеризовать разрядностью
микропроцессора.
Первым в мире микропроцессором
был выпущенный в 1971 году 4-разрядный
микропроцессор
Intel
4004.
Следующим шагом стало появление
ряда 8-разрядных микропроцессоров,
наиболее характерным представителем
которых стал нашедший чрезвычайно
широкое применение Intel
8080,
архитектурный аналог которого
выпускался в СССР в составе
микропроцессорного комплекта К580.
Разработанный затем 16-разрядный
микропроцессор
Intel-8086
(советский аналог – микропроцессор
К1810ВМ80)
лег в основу первых персональных
ЭВМ. Его
архитектура, получившая обозначение
x86,
стала де факто стандартом на длительный
период последующего развития этого
направления вычислительной техники.
Микропроцессор
Intel
286
представлял собой некоторый переходный
этап к архитектуре 32-разрядных
микропроцессоров
IA-32
(Intel
Architеcture-32),
которая с определенными модификациями
развивается, начиная с выпущенного
в 1985 году микропроцессора
Intel
386.
Появление в 2001 году микропроцессора
Itanium
ознаменовало начало периода
64-разрядных микропроцессоров.
Базовые
понятия архитектуры ЭВМ рассмотрим
на примере компьютера, имеющего в
своей основе микропроцессор
с архитектурой x86.
В тех вопросах, где это необходимо
(аппаратные средства защиты информации,
организация виртуальной памяти и
т.д.), изложение материала будет
базироваться на компьютерах, имеющих
в своем составе микропроцессоры
с архитектурой IA-32.
Персональная
ЭВМ типа
IBM
PC
(рис.
5)
включает в себя микропроцессор
(МП),
оперативную память и устройства
ввода-вывода (УВВ), объединенные
между собой системной шиной.
Рис.
5.
Структура персональной ЭВМ
Микропроцессор
предназначен для выполнения собственно
арифметических и логических операций
и управления взаимодействием блоков
компьютера. Оперативная память
хранит операнды и программу во время
ее выполнения. Устройства ввода-вывода
обеспечивают обмен информацией
между ядром компьютера (МП
и ОП)
и средствами ввода и отображения
данных. Сюда относятся мониторы,
печатающие устройства, графопостроители,
жесткие и гибкие магнитные диски и
так далее. Магистрально-модульный
принцип построения компьютера
Под
архитектурой компьютера понимается
его логическая организация, структура,
ресурсы, т. е. средства вычислительной
системы, которые могут быть выделены
процессу обработки данных на
определенный интервал времени.
Архитектура современных ПК основана
на
магистрально-модульном принципе.
Модульный
принцип позволяет потребителю самому
подобрать нужную ему конфигурацию
компьютера и производить при
необходимости его модернизацию.
Модульная организация системы
опирается на магистральный (шинный)
принцип обмена информации. Магистраль
или системная
шина -
это набор электронных линий,
связывающих воедино по адресации
памяти, передачи данных и служебных
сигналов процессор, память и
периферийные устройства.
Обмен
информацией между отдельными
устройствами ЭВМ производится по
трем многоразрядным шинам, соединяющим
все модули, - шине
данных, шине адресов и шине управления.
Подключение
отдельных модулей компьютера к
магистрали на физическом уровне
осуществляется с помощью контроллеров,
а на программном обеспечивается
драйверами. Контроллер принимает
сигнал от процессора и дешифрует
его, чтобы соответствующее устройство
смогло принять этот сигнал и
отреагировать на него. За реакцию
устройства процессор не отвечает -
что функция контроллера. Поэтому
внешние устройства ЭВМ заменяемы,
и набор таких модулей произволен.
Разрядность
шины
данных
задается разрядностью процессора,
т. е. количеством двоичных разрядов,
которые процессор обрабатывает за
один такт.
Данные
по шине данных могут передаваться
как от процессора к какому-либо
устройству, так и в обратную сторону,
т. е. шина данных является двунаправленной.
К основным режимам работы процессора
с использованием шины передачи
данных можно отнести следующие:
запись/чтение данных из оперативной
памяти и из внешних запоминающих
устройств, чтение данных с устройств
ввода, пересылка данных на устройства
вывода.
Выбор
абонента по обмену данными производит
процессор, который формирует код
адреса данного устройства, а для ОЗУ
- код адреса ячейки памяти. Код адреса
передается по адресной
шине,
причем сигналы передаются в одном
направлении, от процессора к
устройствам, т. е. эта шина является
однонаправленной.
По
шине
управления
передаются сигналы, определяющие
характер обмена информацией, и
сигналы, синхронизирующие взаимодействие
устройств, участвующих в обмене
информацией.
Внешние
устройства к шинам подключаются
посредством интерфейса.
Под интерфейсом понимают совокупность
различных характеристик какого-либо
переферийного устройства ПК,
определяющих организацию обмена
информацией между ним и центральным
процессором. В случае несовместимости
интерфейсов (например, интерфейс
системной шины и интерфейс винчестера)
используют контроллеры.
Чтобы
устройства, входящие в состав
компьютера, могли взаимодействовать
с центральным процессором, в
IBM-совместимых компьютерах предусмотрена
система
прерываний (Interrupts).
Система прерываний позволяет
компьютеру приостановить текущее
действие и переключиться на другие
в ответ на поступивший запрос,
например, на нажатие клавиши на
клавиатуре. Ведь с одной стороны,
желательно, чтобы компьютер был
занят возложенной на него работой,
а с другой - необходима его мгновенная
реакция на любой требующий внимания
запрос. Прерывания обеспечивают
немедленную реакцию системы.
Прогресс
компьютерных технологий идет
семимильными шагами. Каждый год
появляются новые процессоры, платы,
накопители и прочие периферийные
устройства. Рост потенциальных
возможностей ПК и появление новых
более производительных компонентов
неизбежно вызывает желание
модернизировать свой компьютер.
Однако нельзя в полной мере оценить
новые достижения компьютерной
технологии без сравнения их с
существующими стандартами. Структура
16-разрядного микропроцессора
Структура
16-разрядного микропроцессораI8086
представлена на рис.
6.
Рис.
6.Структура 16-разрядного
микропроцессора
В
состав микропроцессора
входят:
арифметико-логическое
устройство (АЛУ),
предназначенное для выполнения
арифметических и логических операций;
внутренняя
регистровая
память,
состоящая из восьми 16-разрядных
регистров; четыре из них допускают
раздельное использование своих
младших и старших байтов, обеспечивая
тем самым возможность обработки
как 16-разрядных слов, так и байтов
информации;
устройство
управления,
включающее в себя
буфер
команд, который представляет собой
регистровую
память
объемом 6 байт, предназначенную для
хранения выполняемой в данный
момент команды (аналогично регистру
команд в структуре классической
ЭВМ) и заполняемую очередными
командами из оперативной памяти
по мере своего освобождения;
дешифратор
кода операций, определяющий тип
выполняемой команды;
блок
управления операциями, который на
основании расшифрованного
дешифратором кода операции формирует
управляющие сигналы, организующие
работу всех блоков микропроцессора;
указатель
команд (IP
– instruction pointer),
определяющий адрес выполняемой
команды в сегменте
команд оперативной памяти;
регистр
флагов
(FLAGS),
содержащий признаки результата
выполненных команд и некоторую
управляющую информацию. Среди
признаков результата отметим
следующие:
ZF
– флаг нуля: равен 1 при получении
нулевого результата,
SF
– флаг знака: устанавливается равным
старшему биту результата,
CF
– флаг переноса: фиксирует факт
переноса из старшего бита в
арифметических операциях,
OF
– флаг переполнения: устанавливается
в 1 при получении результата вне
допустимого диапазона чисел,
PF
– флаг паритета: устанавливается в
1, если младшие 8 бит результата
операции содержат четное число
единиц;
к
флагам управления относятся
IF
– флаг разрешения прерывания: когда
флаг установлен в 1, процессор
распознает маскируемые прерывания,
что позволяет микропроцессору
реагировать на особые ситуации,
возникающие в работе внешних
устройств; если значение флага равно
нулю, то эти прерывания игнорируются,
DF
– флаг направления, применяется в
командах обработки последовательности
байт в памяти: если флаг равен 0,
последовательность обрабатывается
с элемента, имеющего наименьший
адрес; если флаг установлен в 1,
последовательность обрабатывается
от старшего адреса к младшему,
TF
– флаг трассировки: если значение
флага равно 1, то в микропроцессоре
после выполнения каждой команды
генерируется внутреннее прерывание,
позволяющее перейти к соответствующей
подпрограмме (используется при
отладке программ);
блок
сегментных регистров, состоящий из
четырех 16-разрядных регистров,
каждый из которых содержит старшие
разряды базового (начального) адреса
сегмента
оперативной
памяти, выделяемого программе при
ее выполнении: кодового сегмента
CS,
в котором содержится код программы;
сегмента
данных DS;
сегмента
стека SS
и дополнительного сегмента
данных
ES;
шинный
интерфейс, который содержит схемы,
обеспечивающие связь внутренней
магистрали микропроцессора
с системной шиной. Представление
данных в ЭВМ
Вся
информация в ЭВМ хранится в виде
наборов бит, то есть комбинаций 0
и 1.
Числа представляются двоичными
комбинациями в соответствии с
числовыми форматами, принятыми для
работы в данной ЭВМ, а символьный
код устанавливает соответствие букв
и других символов двоичным комбинациям.
Для
чисел имеется три числовых формата:
двоичный
с фиксированной точкой;
двоичный
с плавающей запятой;
двоично-кодированный
десятичный (BCD).
В
двоичном формате с фиксированной
точкой числа могут быть представлены
без знака (коды) или со знаком. Для
представления чисел со знаком в
современных ЭВМ в основном применяется
дополнительный код. Это приводит к
тому, что, как показано ранее,
отрицательных чисел при заданной
длине разрядной сетки можно представить
на одно больше, чем положительных.
Хотя операции в ЭВМ осуществляются
над двоичными числами, для записи
их в языках программирования, в
документации и отображения на экране
дисплея часто используют более
удобное восьмеричное, шестнадцатеричное
и десятичное представление.
В
двоично-кодированном десятичном
формате каждая десятичная цифра
представляется в виде 4 битного
двоичного эквивалента. Существуют
две основные разновидности этого
формата: упакованный и неупакованный.
В упакованном BCD-формате
цепочка десятичных цифр хранится в
виде последовательности 4-битных
групп. Например, число 3904
представляется в виде двоичного
числа 0011
1001 0000 0100.
В неупакованном BCD-формате
каждая десятичная цифра находится
в младшей тетраде 8-битной группы
(байте), а содержимое старшей тетрады
определяется используемой в данной
ЭВМ системой кодирования, и в данном
случае несущественно. То же число
3904 в неупакованном формате будет
занимать 4 байта и иметь вид: xxxx0011
xxxx1001 xxxx0000 xxxx0100 .
Числа
с плавающей запятой
обрабатываются на специальном
сопроцессоре (FPU
- floating point unit),
который, начиная с МП
I486,
входит в состав БИС
микропроцессора.
Данные в нем хранятся в 80-разрядных
регистрах. Управляя настройками
сопроцессора, можно изменять диапазон
и точность представления данных
этого типа (таблица
1).
Таблица
1. |
Тип
данных |
Размер
(бит) |
Диапазон |
Обрабатывающий
блок |
Целые
без знака |
1
байт
1
слово 1
двойное слово |
8
16 32 |
0...255
0...65535 0...4294967295 |
АЛУ |
Целые
со знаком |
1
байт |
8 |
-128...+127 |
АЛУ |
1
слово |
16 |
-32768...+32767 |
FPU |
1
двойное слово |
32 |
-2147483648...+2147483647 |
1
учетверенное слово |
64 |
≈(
0.92*1019) |
Числа
с плавающей запятой |
действительное
число |
32
(1+8+23) |
≈(
0.34*1039) |
FPU |
с
двойной точностью |
64
(1+11+52) |
≈(
0.18*10309) |
с
увеличенной точностью |
80
(1+15+64) |
≈(
0.12*104933) |
Двоично-десятичные
числа |
1
байт неупакованное |
8 |
0...9 |
АЛУ |
1
байт упакованное |
8 |
0...99 |
АЛУ |
10
байт упакованное |
80 |
0...(99...99)18цифр |
FPU | Организация
оперативной памяти
ОП
является основной памятью для
хранения информации. Она организована
как одномерный массив ячеек памяти
размером в 1 байт. Каждый из байтов
имеет уникальный 20 битный физический
адрес в
диапазоне от 00000
до FFFFFh
(здесь и далее для записи адресов
используется шестнадцатеричная
система счисления, признаком которой
является символ h
в конце кода). Таким образом, размер
адресного пространства ОП составляет
220
= 1Мбайт.
Любые два смежных байта в памяти
могут рассматриваться как 16-битовое
слово. Младший байт слова имеет
меньший адрес, а старший - больший.
Так шестнадцатеричное число 1F8Ah,
занимающее слово, в памяти будет
расположено в последовательности
8Ah,
1Fh.
Адресом слова считается адрес его
младшего байта. Поэтому 20 битовый
адрес памяти может рассматриваться
и как адрес байта, и как адрес слова.
Команды,
байты и слова данных можно размещать
по любому адресу, что позволяет
экономить память вследствие ее более
полного заполнения. Однако для
экономии времени выполнения программ
целесообразно размещать слова данных
в памяти, начиная с четного адреса,
так как микропроцессор
передает такие слова за один цикл
работы шины. Слово с четным адресом
называется выровненным по границе
слов. Невыровненные слова данных с
нечетным адресом допустимы, но для
их передачи требуется два цикла
шины, что снижает производительность
ЭВМ. Заметим, что необходимое
количество циклов считывания слова
данных инициируется микропроцессором
автоматически. Следует иметь в виду,
что при операциях со стеком слова
данных должны быть выровнены, а
указатель стека инициирован на
четный адрес, так как в таких операциях
участвуют только слова данных.
Поток
команд разделяется на байты при
заполнении очереди команд внутри
микропроцессора.
Поэтому выравнивание команд
практически не влияет на
производительность и не используется.
Адресное
пространство ОП делится на сегменты.
Сегмент
состоит
из смежных ячеек ОП и является
независимой и отдельно адресуемой
единицей памяти, которая в базовой
архитектуре персональной
ЭВМ имеет
фиксированную емкость 216
= 64К
байт. Каждому сегменту
назначается
начальный (базовый) адрес, являющийся
адресом первого байта сегмента
в адресном поле ОП. Значение физического
адреса ячейки
складывается из адреса сегмента
и смещения
ячейки памяти относительно начала
сегмента
(внутрисегментное смещение). Для
хранения значений адреса сегмента
и смещения используются 16-битовые
слова.
Чтобы
получить 20-битовый физический
адрес,
микропроцессор
автоматически осуществляет следующие
операции. Значение базового адреса
сегмента
умножается на 16 (сдвиг на 4 разряда
влево) и суммируется со значением
смещения в сегменте
(рис.
7).
В результате получается 20-битовое
значение физического
адреса.
При суммировании может возникнуть
перенос из старшего бита, который
игнорируется. Это приводит к тому,
что ОП оказывается как бы организованной
по кольцевому принципу. За ячейкой
с максимальным адресом FFFFFh
следует ячейка с адресом 00000h.
Рис.
7.
Схема получения физического адреса
Сегменты
физически не привязаны к конкретному
адресу ОП, и каждая ячейка памяти
может принадлежать одновременно
нескольким сегментам,
так как базовый адрес сегмента
может определяться любым 16-битовым
значением. Сегменты
могут быть смежными, неперекрывающимися,
частично или полностью перекрывающимися.
Вместе с тем, в соответствии с
алгоритмом вычисления физического
адреса,
начальные адреса сегментов
всегда
кратны 16. |