- •Организация памяти вс
- •Иерархическая структура памяти
- •Емкость (объем)
- •Организация внутренней памяти вс
- •Архитектура оперативной памяти
- •Адресная память
- •Ассоциативные запоминающие устройства
- •Стековые запоминающие устройства
- •Увеличение объема внутренней памяти
- •Логическая организация памяти
- •Вычисление физического адреса памяти
- •Сегментная структура памяти
- •Согласование оперативной памяти с процессором по быстродействию
- •Конвейеризация (опережающая выборка команд из памяти).
- •Организация банков (модулей) памяти.
- •Использование буферной (сверхоперативной) памяти.
- •Структура кэш-памяти
- •Технологии флэш-памяти
- •Где нужна память…
- •И будет флэш…
Вычисление физического адреса памяти
Физический адрес представляет собой 20-битное число в диапазоне 0...FFFFFh и 32-битное число в диапазоне 0…FFFFFFFFh для 16-битной и 32-битной адресации, которое однозначно определяет положение каждого байта в пространстве памяти объемом 1 Мбайт и 4 Гбайт соответственно.
Рассмотрим вычисление адреса ячейки памяти при 16-битной адресации.
При вычислении физического адреса база сегмента segment сдвигается влево на 4 бита и складывается со смещением offset в соответствии со схемой приведенной на рис.3.7.
Перенос из старшего разряда, возникающий при суммировании, игнорируется. Это приводит к кольцевой организации памяти, при которой за ячейкой с максимальным адресом FFFFFh следует ячейка с нулевым адресом. Аналогичную кольцевую организацию имеет и каждый сегмент. Кроме того, на рис.3.7 указаны различные источники компонент логического адреса, которые могут использоваться для вычисления физического адреса. При этом обозначение ЕА соответствует эффективному адресу, вычисляемому в соответствии с указанным в команде способом адресации операндов.
При различных типах обращения к памяти компоненты логического адреса выбираются из различных источников. Допустимые варианты источников приведены в табл. 3.1.
Из анализа этой таблицы следует, что команды всегда выбираются из текущего сегмента программного кода по логическому адресу CS:IP, стековые операции всегда выполняются в текущем сегменте стека по логическому адресу SS:SP, а при обращении к данным возможны различные варианты..
Как правило, по умолчанию считается, что данные находятся в основном, сегменте данных, и обращение к ним осуществляется по логическому адресу DS:EA. Однако, путем явного указания сегмента в описании операнда можно обратиться к данным и из любого другого сегмента.
Таблица 3.1
Источники компонент логического адреса
Тип обращения к памяти |
Сегмент (по умолчанию) |
Вариант сегмента |
Смещение |
Выборка команды |
CS |
Нет |
IP |
Стековая операция |
SS |
Нет |
SP |
Обращение к данным |
DS |
CS,ES,SS |
ЕА |
Обращение к цепочке-источнику |
DS |
CS,ES,SS |
SI |
Обращение к цепочке-приемнику |
ES |
Нет |
DI |
Обращение к данным через регистр ВР |
SS |
CS,DS,ES |
ЕА |
Разновидностью данных, обрабатываемых МП i8086/8088, являются цепочки (строки). При обработке таких данных, одна команда может оперировать с целой цепочкой элементов. При этом элементы цепочки-источника по умолчанию выбираются из основного сегмента данных по логическому адресу DS:SI, но могут выбираться и из любого другого сегмента. Цепочка-приемник может находиться только в дополнительном сегменте данных, и обращение к ее элементам осуществляется по логическому адресу ES:DI.
Если в описании операнда используется регистр ВР, то по умолчанию считается, что этот операнд находится в сегменте стека. Однако, в этом случае стековый принцип выборки данных игнорируется, и обращение к сегменту стека осуществляется как к ОЗУ с произвольным доступом. Это обеспечивает большую гибкость при обращении к данным, находящимся в стеке.