Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

arx230910

.pdf
Скачиваний:
25
Добавлен:
11.05.2015
Размер:
2 Mб
Скачать

 

Транзитная область

~550 кбайт

 

0A0000h

Графический

64 кбайт

 

 

видеоадаптер

 

Верхняя память 384 кб.

0B0000h

Транзитная область

32 кбайт

 

 

 

UM

B80000h

Текствидео буфер

32 кбайт

(Upper memory)

0C0000h

Транзитная область

192 кбайт

 

0F0000h

BIOS

64 кбайт

 

100000h

HMA

64 кбайт

Верхняя память

 

 

 

High Memory Area (HMA)

10FFF0h

Расширенная память

До 4 Гбайт

Extended Memory

 

 

 

Specification (XMS, EMS)

2.5. Развитие архитектуры процессора Intel

Описанная в предыдущем пункте архитектура процессора характерна для моделей до Int 80286 включительно. В компьютер мог устанавливаться так называемый арифметический сопроцессор 80х87 для аппаратной поддержки арифметики чисел с плавающей точкой. Работа с двойными словами аппаратно не поддерживалась.

Начиная с модели Int. 80386 процессор Intel был существенно модернизирован. В основном, целью этой модернизации была поддержка надежной работы защищенного режима, однако возможности реалбного режима были также существенно расширены (в частности, введена аппаратная поддержка двойных слов). Все регистры общего назначения были расширены до 32 разрядов и получили наименования EAX, EBX, ECX, EDX, ESI, EBP, ESP (буква E в названии означает Extended – расширенный). Программист получил возможность работать как с полным 32-разрядным регистром (например, ESI), так и с его младшим словом (ES). Кроме того схранилась возможность работать со старшим и младшим байтами младшего слова первых четырех регистров (например, DH и DL).

Сегментные регистры были сохранены 16-разрядными, но введены два новых дополнительных регистра FS и GS. Их роль полностью аналогична роли старого сегментногосегментного регистра ES. Регистры флагов и указателя команд также были расширены до 32 разрядов и получили имена

EFLAGS и EIP.

Начиная с процессора Int 80486 арифметический сопроцессор был интегрирован с основным процессором, в результате чего последний получил 11 новых регистров (FPU/NPX) для поддержки арифметики с плавающей точкой.

Начиная с процессора Pentium Pro в стандарт процессора вводится расширение MMX (MultiMedia eXtension) для упрощения обработки больших потоков данных, связанных, в основном, со звуком и изображением. Идея MMX состоит в использовании регистров арифметики с плавающей точкой для аппаратной поддержки учетверенных (64-битных) слов. Для MMX введена также новая арифметика “с насыщением”. Например, если результат байтовой операции превышает 255, в режиме насыщения он полагается

41

равным 255. Далее вводятся расширения уже к базовому набору команд

MMX, например, AMD 3D.

Лекция 3. Адресация процессора

Адресное пространство называется множество адресов, которые может генерировать данный процессор.

3.1. Сегментный способ адресации памяти

Последовательность номера, который присваивается к ячейкамназывается

физическим адресом ячейки.

Параграфом- называется последовательные участки памяти по 16 байт. Расположение парагрфов в ОП:

1параграф. Начало –0h- конец –0Fh

2параграф. Начало –10h- конец –1Fh

3параграф. Начало –20h- конец –2Fh

X параграф. Начало –X0h- конец –XFh

Важно заметить, что физический адрес первого байта в начале каждого параграфа оканчивается на шестнадцатеричный – 0h=0000b.

Рис. 3.1. Фиксированы начала и концы параграфов ОП.

Адресное пространство процессора расширяется за счет сегментной адресации.

Сегментом называют сплошную область памяти, размером не более 64к.байт, начало которого совпадает с началом определенного параграфа. Иначе говоря, физический адрес первого байта сегмента должен быть кратен 16. Поэтому последняя шестнадцатеричная цифра физического адреса сегмента не будет нести ни какой полезной информации – она заведомо будет нулем.

Назовем сегментной частью адреса (Segment) физический адрес начала сегмента с откинутым шестнадцатеричным 0. Положение отдельного байта внутри сегмента будем называть смещением (Offset). Смещение есть номер отдельного байта, отсчитанный от начала сегмента. Комбинацию сегмента и смещения называют просто адресом байта в памяти и записывают двумя 4- значными шестн.-и цифрами через двоеточие:

СЕГМЕНТ:СМЕЩЕНИЕ

Пример: 0B000:1F4E (перед буквой в начале всегда необходимо писать – 0).

42

Рис. 3.2. Фиксировано смещение от начала 3 параграфа.

Назовем сегментной частью адреса – физический адрес начала сегмента (байта) с откинутым 16-м нулем. Положение отдельного байта (номер) в сегменте будем называть смещением.

Параграфы, сегменты и смещения

На рисунке 3.3 показано, что каждая точка памяти имеет физический адрес и логический, выраженный через смещение от начала сегмента.

Рис. 3.3. Расположение сегментов вОП.

1048576 : 16 = 65536 - максимальное количество параграфов для 1 Мбайта

Сегменты физически не выделены в памяти. Сегмент - это логические окна, через которые программы просматривают области памяти по 64 Кбайт.

Начальное положение сегмента (логический адрес) определяется программистом и может иметь любое значение от 0000 до FFFF в шестнадцатиричном представлении. Каждое логическое значение сегмента (0, 1, 2, . . ., 65535) соответствует физической границе параграфа (0, 16, 32,..., 1048560). Размеры сегментов могут изменяться от 16 байт до 64 Кбайт. Сегменты не обязательно располагаются физически в памяти один за другим. Сегменты могут перекрываться один другим, поэтому один и тот же байт памяти может иметь различные логические адреса. Но, несмотря на это, каждый байт имеет только единственный 20-битовый физический адрес.

43

Пример.

Логический адрес при сегментной адресации задан парой сегмент-смещение:

а) первый логический адрес

0000:0010

б) второй логический адрес

0001:0000

а) физический адрес

(0000

х 16)

+ 16 =16

б) физический адрес

(0001

х 16)

+ 0 = 16

Пара сегмент и смещение обычно записываются через двоеточие шестнадцатиричными числами: 40À7 : 55FC

Запись какого-либо числа в сегментный регистр (например, 1000h) означает: задан сегмент размером в 64 Кбайт (адреса с 1000 : 0000 до 1000 : FFFF). Обращение к памяти всегда происходит с помощью пары регистров.

Запись [ BX ] означает DS : [ BX ]

Замечание. Сегментные регистры изменять непосредственно нельзя. Для изменения их сначала копируют в регистры общего назначения, зменяют там, и получившееся значение копируется в сегментный регистр.

3.2. Команда ЭВМ

Формат машинной команды процессора определяет одну из основных характеристик архитектуры центрального процессора ЭВМ. Состав команды определяет содержимое следующих двух ее полей:

Код операции указывает операцию, которая должна выполнить ЭВМ (сложение, вычитание, сравнение и т.п.).

В поле операции хранятся указатели на местоположение операндов (адреса памяти или регистров).

В частном случае в поле операции могут быть константы. Команды, в которых отсутствует поле операндов, называются безадресными.

Форматы адресных команд.

1) Одноадресная команда.

Схема выполнения одноадресной команды:

а) Выполняется операция в соответствии с кодом операции, первым операндом которой является содержимое внутреннего регистра процессора – аккумулятора, вторым – содержимое памяти по адресу А; б) Результат заносится в аккумулятор.

44

2) Двухадресная команда.

Схема выполнения:

а) выполнение операций в соответствии с указанным кодом операции над операндами по адресам A1 и A2;

б) Результат заносится по адресу А1; 3) Трехадресная команда.

Схема выполнения:

а) выполнение операций в соответствии с указанным кодом операции над операндами по адресам A1 и A2;

б) Результат заносится по адресу А3;

3.3. Общая структура процессора

Структурная схема учебного 8-разрядного микропроцессора дает возможность наглядно рассмотреть его работу по выполнению двух основных функций: обработке и манипулированию данными.

Рис. 3.4. Схема учебного 8-разрядного процессора Согласно рис. 3.4. процессор состоит из трех основных блоков: АЛУ,

нескольких регистров и устройства управления. Для передачи данных между этими блоками процессора используется внутренняя шина данных.

45

3.3.1. Арифметико-логическое устройство (АЛУ)

АЛУ выполняет одну из главных функций процессора – обработку данных. АЛУ имеет два входных порта, обозначенных как “Вход” и один выходной порт – “Выход”. Назначение входного порта – ввод слова данных в АЛУ, а выходного вывод такого слова. Оба входных порта снабжены буферами, роль которых выполняют регистры временного хранения данных (буферные регистры). Каждый порт соединен со своим буферным регистром, способным хранить для АЛУ одно слово данных.

Два входных порта позволяют АЛУ принимать данные или с внутренней шины данных процессора, или специального регистра, именуемого аккумулятором. Единственный выходной порт АЛУ предоставляет последнему возможность пересылать слово данных в аккумулятор.

Аккумулятор предназначен для хранения слова данных, посланного в него из выходного порта АЛУ или извлеченного из памяти. Когда, например, АЛУ складывает два слова данных, одно из них находится в аккумуляторе. После выполнения сложения результат – посылается в аккумулятор на храненение. АЛУ оперирует одним или двумя словами в зависимости от вида выполняемой операции (команды). Перечень функций АЛУ зависит от функций процессора и различен для машин разных типов. Функции АЛУ определяют архитектуру процессора. Типичные операции, выполняемые АЛУ, являются следующие: сложение, вычитание, и, или, исключающее или, инверсия, сдвиг вправо, сдвиг влево, приращение.

3.3.2. Регистры процессора

Регистры являются важной составной частью любого процессора. Они участвуют в реализации основных логических функции процессора независимо от количества регистров. Каждый регистр процессора может использоваться для временного хранения одного слова данных. Некоторые регистры имеют специальное назначение, другие – многоцелевое. Регистры последнего типа называют регистрами общего назначения и могут использоваться программистом по его усмотрению.

Количество и назначение регистров в процессоре зависит от архитектуры. Однако почти все процессоры имеют шесть основных регистров: состояния, буферные, команд, адреса памяти, счетчик команд, и аккумулятор. В процессе ознакомления с каждым из основных регистров следует обращать внимание на то, какое влияние оказывает именно этот регистр на данные проходящие “сквозь” процессор. Только понимание влияние каждого основного регистра на поток данных в процессоре позволяет получить правильное представление о функционировании процессора.

3.3.3. Аккумулятор

46

Аккумулятор – главный регистр процессора при различных манипуляциях с данными. Большинство арифметических и логических операций осуществляется путем использования АЛУ и аккумулятора. Любая из таких операций над двумя словами данных (операндами) предполагает размещение одного из них в аккумуляторе, а другого в памяти или еще в каком либо регистре.

Пример 1. При сложении двух слов, А и В, расположенных в аккумуляторе и памяти соответственно. Результирующая сумма С загружается в аккумулятор, замещая слово А.

Аккумулятор является наиболее универсальным регистром процессора. Для выполнения любой операции необходимо поместить их в аккумулятор. Из рис. 3.1. следует, что данные в него поступают с внутренней шины данных процессора. В свою очередь аккумулятор может посылать данные на эту шину. Количество бит аккумулятора соответствует длине слова процессора.

3.3.4. Счетчик команд

Как известно, программа – это последовательность команд, хранимых в памяти ЭВМ и предназначенных для того, чтобы инструктировать машину, как решать поставленную задачу. Для корректного выполнения последней, команды должны поступать в строго определенном порядке. На счетчике команд лежит ответственность следить за тем, какая команда выполняется, а какая полежит выполнению следующей. Часто в ЭВМ счетчик команд имеет больше разрядов, чем остальные регистры. Так в нашем учебном 8- разрядном процессоре, число разрядов счетчика равно – 16, что позволяет адресоваться к памяти 216=65 КБ. Чтобы обратиться к любой ячейки из доступных 65536, т.е. в пределах диапазона значений адресов от 0 до 65535 счетчик должен располагать 16 двоичными разрядами.

Согласно рис. 3.4, счетчик команд соединен с внутренней шинной данных процессора. Теоретически счетчик может получать данные об адресах программы из любого блока процессора, подключенного к внутренней шине. Однако на практике данные обычно поступают в счетчик команд из ОП ЭВМ.

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

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

Перед выполнением программы счетчик команд необходимо загрузить числовым адресом области памяти, содержащей первую команду программы.

47

Обратите внимание на рис. 3.4 регистр адреса памяти расположен ниже счетчика команд. Адрес области памяти, содержащей первую команду программы, посылается из счетчика команд в регистр адреса памяти, после чего содержимое обоих регистров становится одинаковым.

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

После извлечения команды из памяти, процессор автоматически дает приращение содержимому счетчика команд. Это приращение счетчик как раз в тот момент, когда процессор начинает выполнять команду, только что извлеченную из памяти. Следовательно, начиная с этого момента счетчик команд, указывает, какой будет следующая команда.

Программируя работу процессора, иногда возникает необходимость в использовании текущего содержимого счетчика команд.

Определение. Счетчик команд указывает на адрес следующей команды, которая должна быть выполнена после завершения текущей команды.

3.3.5. Регистр адреса памяти

При каждом обращении к памяти ЭВМ регистр адреса памяти указывает адрес области памяти (ячейки), которая подлежит использованию процессором. Регистр адреса памяти содержит двоичное число – адрес области памяти. Выход этого регистра называется адресной шиной и используется для выбора области памяти или в некоторых случаях для выбора порта ввода-вывода.

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

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

Вбольшинстве процессоров регистры адреса памяти и счетчика команд имеют одинаковое число разрядов. Как и счетчик команд, регистр адреса памяти должен располагать количеством разрядов, достаточным для адресации любой области ОП. В нашем 8-разрядном процессоре, количество разрядов регистра адреса памяти – 16. Такой регистр можно разделить на два отдельных регистра, каждый из которых имеет независимое подключение к шине данных процессора. Один из этих регистров называют регистром старшего байта (СБ), другой – регистром младшего байта (МБ).

48

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

Определение. Регистр адреса – содержит адрес ячейки, из которой будет считана команда или операнд. В ней может, содержатся адрес ячейка памяти, в которую требуется записать результат выполнения команды.

3.3.6. Регистр команд

Регистр команд предназначен исключительно для хранения текущей выполняемой команды, причем эта функция реализуется процессором автоматически с началом цикла выборка-выполнение, называемого также машинным циклом. Машинный цикл состоит из двух подциклов – выборки и выполнения. За исключением загрузки команды, период подцикла выборки программист не может по другому использовать регистр команд. Согласно схеме на рис. 3.4, этот регистр соединен с внутренней шиной данных, однако он только принимает данные – посылать данные на шину он не может.

Хотя функции регистра команд ограничены, роль его в работе процессора велика, поскольку выход этого регистра является частью

дешифратора команд.

Проследим состояния регистра команд в последовательности реализации цикла выборки-исполнения (команды ЭВМ, машинного цикла). Сначала команда извлекается из памяти, затем счетчик команд настраивается на указание следующей команды, подлежащей выполнению. При извлечении команды из соответствующей области памяти копия команды помещается на внутреннюю шину данных и пересылается в регистр команд. После этого начинается подцикл выполнения команды, в течение которого дешифратор команд читает содержимое регистра команд, сообщая процессору, что делать для реализации операций команды. Число разрядов регистра команд учебного 8-разрядного процессора – 8.

3.3.7. Регистр состояния

Наличием регистра состояния подлинная ЭВМ отличается от простого калькулятора. Указанный регистр предназначен для хранения результатов некоторых проверок, осуществляемых в процессе выполнения программы. Разряды регистра состояния принимают то или иное значение при выполнении операций, использующих АЛУ и некоторые регистры.

Запоминание результатов упомянутых проверок позволяет использовать программы, содержащие переходы (нарушения естественной последовательности выполнения команд).

При наличии в программе перехода выполнение программы начинается с некоторой новой области (ячейки) памяти, т.е. счетчик команд, загружается новым числом. В случае условного перехода такое действие имеет место, если результаты определенных проверок совпадают с ожидаемыми

49

значениями. Указанные результаты находятся в регистре состояния. Возможности программирования с передачей управления (переходами) – отличительная характеристика ЭВМ по сравнению с простыми калькуляторами. Регистр состояния предоставляет программисту возможность организовать работу процессора так, чтобы при определенных условиях менялся порядок выполнения команд. Можно сказать, что процессор принимает решение о том или ином продолжении хода вычисления в зависимости от указанных условий. Калькулятор такого решения принимать не может. Количество разрядов учебного процессора 8, назначение и функции которых аналогичны регистру состояния 16разрядного процессора, рассмотренного выше.

3.3.8. Буферные регистры

На рис. 3.4 показаны два буферных регистра, каждый из которых предназначен для временного хранения одного слова данных. Один из этих регистров (ближайший к аккумулятору) называется буфером аккумулятора АЛУ. Что касается другого буферного регистра, то в него на временное хранение поступают данные с внутренней шины процессора. Необходимость такого регистра вызвана отсутствием в АЛУ своего запоминающего устройства. В состав АЛУ включены только комбинационные схемы, и поэтому при поступлении исходных данных на входе АЛУ немедленно появляются результирующие данные на его выходе как следствие выполнения операций данной программы.

АЛУ должно получать данные с внутренней шины процессора, модифицировать их, а затем помещать обработанные данные в аккумулятор. Но это неосуществимо без регистра временного хранения данных. Отметим особо, что буферные регистры не могут быть использованы программистом.

Если на вход описанного выше буферного регистра могут поступать данные только с внутренней шины данных процессора, то на вход другого буферного регистра (буф. аккумулятора), данные могут поступать, кроме того, и с выхода аккумулятора. Когда в арифметической или логической операции АЛУ участвуют два слова, одно из них поступает из аккумулятора. Результат подобной операции помещается в аккумулятор.

3.3.9. Регистры общего назначения

Регистры предоставляемые в распоряжение пользователя или для временного хранения данных процессора получили название регистров общего назначения. Учебный процессор имеет три таких регистра: B, C, D. Выбор конкретного регистра для выполнения определенного вид работ определяется лишь тем, какой из них доступен и кажется наиболее удобным. Обычно операции, использующие эти регистры влияют на содержимое регистра состояния.

3.3.10. Схемы управления

50

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]