Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OEVM_Lec_2011(1).doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
2.92 Mб
Скачать

Микропроцессорная память

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

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

Структура адресной памяти процессора

Память состоит из ячеек, каждая из которых может хранить некоторую порцию информации. Каждая ячейка имеет номер, который называется адресом. Если память содержит n ячеек, они будут иметь адреса от 0 до N-1, как правило, каждая ячейка содержит один байт. Такое представление памяти называется адресным пространством памяти. Если шина адреса имеет n линий, то N=2n . Таким образом, адресное пространство процессора 8086 с n=20 составляет 220 = 1 Мбайт, а процессора i486 с n=32 составляет 4 Гбайт. Для процессора байтовая организация оперативной памяти является не только основной, но и вполне естественной (рис. 6.6).

А

Элементарной единицей памяти всех современных компьютеров является байт, состоящий из восьми двоичных разрядов. Каждый байт имеет свой адрес. В наиболее распространенной 32-разрядной архитектуре адреса байтов изменяются от 0 до 232 - 1 с шагом 1. Память, с логической точки зрения, можно рассматривать как массив байтов: можно прочесть или записать байт с заданным адресом. Содержимое байта трактуется либо как неотрицательное целое число в диапазоне от 0 до 255, либо как число со знаком в диапазоне от -128 до 127.

дрес байта 7 . . . . . . 0

N -1

.

.

.

.

.

2

1

0

Рис. 6.6 Байтовая организация памяти

Однако при работе с памятью по шине передаются не отдельные байты, а машинные слова. В 32-разрядной архитектуре машинное слово — это четыре байта, при этом адрес младшего байта кратен четырем. (В 64-разрядной архитектуре машинное слово состоит из восьми байтов.) Принято нумеровать биты внутри машинного слова (как и внутри байта) справа налево, начиная с нуля и кончая 31. Младший бит имеет нулевой номер, старший, или знаковый, бит — номер 31 . При обращении к памяти для считывания/записи слова или двойного слова возникает вопрос о том, какой адрес использовать для этого обращения: действительно, каждый из байт, образующих слово или двойное слово, имеет свой адрес. В процессорах Intel для адресации составных единиц памяти принимают меньший из адресов тех байт, которые образуют эту единицу обращения (прямой порядок). При этом младшие биты числа находятся в младших битах машинного слова. В этом случае каждое 16-разрядное слово состоит из двух последовательно расположенных байтов, двойное слово из четырех. Например, адрес памяти А определяет байт с этим адресом (содержимое ячейки – 12h), слово, байты которого имеют адреса А и А+1 с содержимым 3412h, двойное слово, байты которого имеют адреса А, А+1, А+2 и А+3 с содержимым 78563412h.

Рис. 6.7 Прямой порядок хранения слова

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

Рассмотрим пример: - записать двухбайтовое слово 1 7 B A

Обратный порядок байтов Прямой порядок байтов

«0» «1» «1» «0»

1 7 B A

4 8 5 E

1 7 B A

4 8 5 E

0 0

2 2

Байт с наиболее значащей частью

(“big-end”, в исходном числе он находится слева) сохраняется в память по наименьшему адресу N=0, (n=2),

машины: Sparc, Apple, IBM-370 ….

Байт с наиболее значащей частью (слева)

сохраняется в память по наибольшему адресу N= 1 (n=3), (“little-end”),

машины: Intel, Alpha, VAX…

Рис. 6.8 Два способа хранения многобайтовых данных

Необходимо отметить, что и в том, и в другом случае слово, содержащее это число, имеет, адрес – 0, но в одном случае мы записываем его в прямом виде - 17BA, а в другом в перевернутом – ВА17. Принято в качестве адреса слова, которое состоит из нескольких последовательно расположенных байтов, использовать адрес байта с наименьшим номером. В итоге адреса слов уже не будут меняться через единицу, приращение будет зависеть от длины машинного слова. Например, при обращении к целому слову (с содержимым 17BA) процессор выставляет адрес 0. При обращении к младшему байту этой ячейки (с содержимым BA) процессор выставляет тот же самый адрес 0, но использует команду адресующую байт, а не слово. При обращении к старшему байту этой же ячейки (с содержимым 17) процессор выставляет адрес 1 и использует команду адресующую байт. Например, все протоколы сети Internet передают данные в формате Big End, т.к. они были разработаны в 70-х годах XX века. На машинах с архитектурой Little End приходится переставлять байты внутри слова перед отправкой IP-пакета в сеть или при получении IP-пакета из сети.

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