учебники, программирование, основы, введение в,

 

Архитектура персонального компьютера

В настоящее время персональные ЭВМ выпускаются миллионными тиражами с большим разнообразием архитектур. Однако наибольшее распространение получили компьютеры, построенные на базе микропроцессоров фирмы Intel либо микропроцессоров с аналогичной архитектурой, выпускаемых другими фирмами. Поэтому вопросы, связанные с организацией современных ЭВМ, будем рассматривать на примере именно этой архитектуры.
Микропроцессоры фирмы 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.
Структура 16-разрядного микропроцессора
Персональная ЭВМ типа IBM PC включает в себя микропроцессор (МП), оперативную память и устройства ввода-вывода (УВВ), объединенные между собой системной шиной.
Микропроцессор предназначен для выполнения собственно арифметических и логических операций и управления взаимодействием блоков компьютера. Оперативная память хранит операнды и программу во время ее выполнения. Устройства ввода-вывода обеспечивают обмен информацией между ядром компьютера (МП и ОП) и средствами ввода и отображения данных. Сюда относятся мониторы, печатающие устройства, графопостроители, жесткие и гибкие магнитные диски и так далее.
Компьютер строится по магистрально-модульному принципу, при котором все блоки компьютера связываются между собой системной шиной, предназначенной для обмена данными, адресной и управляющей информацией между составными частями ЭВМ. Как правило, при такой организации в любой момент может быть установлена связь только между двумя модулями ЭВМ. Системная шина определяет общий порядок обмена между любыми блоками компьютера, а также максимальное количество используемых устройств ввода-вывода. Она включает в себя шину адреса (ША), шину данных (ШД) и шину управления (ШУ), содержащую набор линий, по которым передаются управляющие сигналы между блоками компьютера. Специфика каждого конкретного блока учитывается особыми управляющими устройствами – контроллерами, входящими в состав этих блоков, например, работой жесткого диска управляет контроллер жесткого диска, используя информацию, поступающую к нему от микропроцессора по системной магистрали.
Структура 16-разрядного микропроцессораI8086 представлена на .
В состав микропроцессора входят:

  1. арифметико-логическое устройство (АЛУ), предназначенное для выполнения арифметических и логических операций;
  2. внутренняя регистровая память, состоящая из восьми 16-разрядных регистров; четыре из них допускают раздельное использование своих младших и старших байтов, обеспечивая тем самым возможность обработки как 16-разрядных слов, так и байтов информации;
  3. устройство управления, включающее в себя
    • буфер команд, который представляет собой регистровую память объемом 6 байт, предназначенную для хранения выполняемой в данный момент команды (аналогично регистру команд в структуре классической ЭВМ) и заполняемую очередными командами из оперативной памяти по мере своего освобождения;
    • дешифратор кода операций, определяющий тип выполняемой команды;
    • блок управления операциями, который на основании расшифрованного дешифратором кода операции формирует управляющие сигналы, организующие работу всех блоков микропроцессора;
  4. указатель команд (IP – instruction pointer), определяющий адрес выполняемой команды в сегменте команд оперативной памяти;
  5. регистр флагов (FLAGS), содержащий признаки результата выполненных команд и некоторую управляющую информацию. Среди признаков результата отметим следующие:

ZF – флаг нуля: равен 1 при получении нулевого результата,
SF – флаг знака: устанавливается равным старшему биту результата,
CF – флаг переноса: фиксирует факт переноса из старшего бита в арифметических операциях,
OF – флаг переполнения: устанавливается в 1 при получении результата вне допустимого диапазона чисел,
PF – флаг паритета: устанавливается в 1, если младшие 8 бит результата операции содержат четное число единиц;
к флагам управления относятся
IF – флаг разрешения прерывания: когда флаг установлен в 1, процессор распознает маскируемые прерывания, что позволяет микропроцессору реагировать на особые ситуации, возникающие в работе внешних устройств; если значение флага равно нулю, то эти прерывания игнорируются,
DF – флаг направления, применяется в командах обработки последовательности байт в памяти: если флаг равен 0, последовательность обрабатывается с элемента, имеющего наименьший адрес; если флаг установлен в 1, последовательность обрабатывается от старшего адреса к младшему,
TF – флаг трассировки: если значение флага равно 1, то в микропроцессоре после выполнения каждой команды генерируется внутреннее прерывание, позволяющее перейти к соответствующей подпрограмме (используется при отладке программ);

  1. блок сегментных регистров, состоящий из четырех 16-разрядных регистров, каждый из которых содержит старшие разряды базового (начального) адреса сегмента оперативной памяти, выделяемого программе при ее выполнении: кодового сегмента CS, в котором содержится код программы; сегмента данных DS; сегмента стека SS и дополнительного сегмента данных ES;
  2. шинный интерфейс, который содержит схемы, обеспечивающие связь внутренней магистрали микропроцессора с системной шиной.

 

Представление данных в ЭВМ
Вся информация в ЭВМ хранится в виде наборов бит, то есть комбинаций 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-разрядных регистрах. Управляя настройками сопроцессора, можно изменять диапазон и точность представления данных этого типа.


Таблица 14.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 разряда влево) и суммируется со значением смещения в сегменте. В результате получается 20-битовое значение физического адреса. При суммировании может возникнуть перенос из старшего бита, который игнорируется. Это приводит к тому, что ОП оказывается как бы организованной по кольцевому принципу. За ячейкой с максимальным адресом FFFFFh следует ячейка с адресом 00000h.
Сегменты физически не привязаны к конкретному адресу ОП, и каждая ячейка памяти может принадлежать одновременно нескольким сегментам, так как базовый адрес сегмента может определяться любым 16-битовым значением. Сегменты могут быть смежными, неперекрывающимися, частично или полностью перекрывающимися. Вместе с тем, в соответствии с алгоритмом вычисления физического адреса, начальные адреса сегментов всегда кратны 16.

 

 
На главную | Содержание | < Назад....Вперёд >
С вопросами и предложениями можно обращаться по nicivas@bk.ru. 2013 г.Яндекс.Метрика