Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции 2007.doc
Скачиваний:
117
Добавлен:
20.05.2014
Размер:
3.24 Mб
Скачать

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

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

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

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

Память состоит из ячеек, каждая из которых может хранить некоторую порцию информации. Каждая ячейка имеет номер, который называется адресом. Если память содержит nячеек, они будут иметь адреса от 0 доn-1, как правило, каждая ячейка содержит один байт. Для процессора байтовая организация оперативной памяти является не только основной, но и вполне естественной (см. рис. 6.6). Для хранения данных в такой памяти и обращения к ней надо каждый раз наращивать (инкрементировать) счетчик команд на единицу.

А

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

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

0

1

2

.

.

.

65533

65534

65535

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

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

Адрес15 . . . . . . 8 7. . . . . . . 0Адрес15 . . . . . . 8 7. . . . . . . 0

слова слова

10 0 1

32 2 3

54 4 5

.

.

65533 65532 65532 65533

65535 65534 65534 65535

.

.

“A” “B”

Рис. 6.7 Прямой и обратный порядок хранения 2-х байтового слова при прямом и обратном порядке хранения

Рассмотрим пример:

- записать двухбайтовое слово 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

22

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

(“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 и использует команду адресующую байт. Архитектура Big End была популярна в середине XX века. К концу 70-х годов программисты осознали, что Little End-архитектура гораздо удобнее. Тем не менее многие компьютерные протоколы ориентируются на Big End, поскольку они были приняты достаточно давно. Например, все протоколы сети Internet передают данные в формате Big End, т.к. они были разработаны в 70-х годах XX века. На машинах с архитектурой Little End приходится переставлять байты внутри слова перед отправкой IP-пакета в сеть или при получении IP-пакета из сети.