- •Память Архитектура памяти.
- •Классификация и физическая организация микросхем памяти, области их применения.
- •Постоянная память
- •Р исунок 4. Пример масочной пзу.
- •Оперативная память
- •Технологии системной памяти. Классическая память dram.
- •Р исунок 6. Структурная схема динамической памяти.
- •Многобанковая организация памяти
- •Память fpm.
- •Память edo dram.
- •Технологии синхронной памяти.
- •Память sdram.
- •Память ddr sdram
- •Память Direct Rambus dram.
- •Р исунок 13. Структура подсистемы памяти Direct Rambus dram.
- •Конструктивные исполнения памяти dram (модули памяти)
- •Адресация памяти в реальном режиме. Логический и физический адреса.
- •Сегментная адресация в реальном режиме.
- •Р исунок 18. Вычисление физического адреса в реальном режиме.
- •Область верхней памяти (hma)
- •Логическое распределение оперативной памяти в реальном режиме.
- •Р исунок 20. Логическая организация памяти. Стандартная память
- •Верхний блок памяти
- •Дополнительная память (ems)
- •Расширенная память (Extended память, xms)
- •Адресация памяти в защищенном режиме работы процессора
- •Разделение адресного пространства на сегменты (сегментация)
- •Механизм страничной памяти.
- •Кэширование данных. Иерархия запоминающих устройств.
- •Р исунок 27. Иерархия запоминающих устройств
- •Р исунок 28. Схема функционирования кэш-памяти
- •Способы отображения основной памяти на кэш (архитектура кэш-памяти).
- •Полностью ассоциативная кэш - память.
- •Р исунок 29. Полностью ассоциативный кэш.
- •Наборно - ассоциативная кэш - память.
- •Р исунок 30. Наборно ассоциативный кэш.
- •Проблема выбора блока кэш-памяти для замещения при промахе
- •Проблема согласования данных
- •Р исунок 31. Сквозная запись.
- •Р исунок 31. Модифицированная сквозная запись
- •Р исунок 32. Обратная запись. Список терминов.
Р исунок 18. Вычисление физического адреса в реальном режиме.
Логический адрес принято записывать в шестнадцатеричной форме в виде <сегмент : смещение>.
Например, пусть у нас есть логический адрес 1234h:0123h. Содержимое базового регистра равно 1234h, регистра смещения - 0123h. Вычислим физический адрес, соответствующий нашему логическому адресу:
расширяем до 20 бит сегментную компоненту, дописывая справа 4 нулевых бита, получаем число 12340h;
расширяем до 20 бит компоненту смещения, дописывая слева 4 нулевых бита, получаем число 00123h;
для получения физического адреса складываем полученные числа: 12340h + 00123h = 12463h.
Очевидно, что одному физическому адресу может соответствовать несколько логических. Например, физическому адресу 12463h соответствует логический адрес 1246h:0003h.
Фактически в схеме адресации памяти реального режима вся память как бы разбивается на перекрывающиеся сегменты размером 64Кб. Физический адрес начала сегмента (базовый адрес) равен расширенной до 20 бит сегментной компоненте адреса (расширение выполняется дописыванием справа 4 нулевых бит).
Сегмент может начинаться не с любого физического адреса, а только с такого, который кратен 16 байтам. Деление адресного пространства на фрагменты по 16 байт с которых может начинаться сегмент называется делением на параграфы, поэтому обычно говорят, что сегмент может начинаться только с границы параграфа.
Содержимое сегментного регистра при такой схеме адресации определяет номер сегмента, а компонента смещения является смещением внутри сегменты памяти. Рисунок 19 иллюстрирует сказанное выше.
Рисунок
19. Соответствие логического и физического
адресов.
На этом рисунке показано соответствие логического адреса 0002h:0028h физическому адресу 00048h.
Использование сегментной адресации дает дополнительное преимущество при программировании.
Каждой программе выделяется свой собственный сегмент (или даже несколько). Внутри каждого сегмента начинается собственная адресация от нуля - смещение. Таким образом, программист во время кодирования может вообще не заботиться, где именно физически будет размещена программа в памяти.
Операционная система управляет загрузкой и выгрузкой программ примерно так. Свободный сегмент выделяется программе во время загрузки. А после того, как программа завершилась, операционная система снова помечает сегмент как незанятый.
Область верхней памяти (hma)
Логический адрес должен находиться в следующих пределах:
0000h:0000h <= [логический адрес] <= FFFFh:000Fh
Здесь есть одна тонкость. Логический адрес FFFFh:000Fh соответствует максимально возможному физическому адресу FFFFFh. Но используя 16-разрядные регистры процессора можно задать и большее значение для логического адреса, например, FFFFh:0010h. Что произойдёт в этом случае?
Покажем как производиться сложение:
+ |
|
F |
F |
F |
F |
0 |
|
0 |
0 |
0 |
1 |
0 |
|
|
1 |
0 |
0 |
0 |
0 |
0 |
Если в компьютере установлены процессоры i8086 или i8088, произойдёт переполнение адреса, которое будет проигнорировано процессором. В результате 21-й бит теряется и, например, логический адрес FFFF:0010h указывает туда же, куда и адрес 0000:0000h, то есть на физический адрес 00000h.
Если же используются процессоры i80286 или старше, физическая шина адреса шире 20 бит. При работе в реальном режиме используются младшие 20 адресных линий - от A0 до A19, остальные адресные линии аппаратура компьютера блокирует.
Однако есть возможность снять блокировку с адресной линии A20. При этом в реальном режиме переполнения не происходит и появляется ещё одна «льготная» область памяти, лежащая выше границы первого мегабайта. Этот сегмент называется областью верхней или старшей памяти (High Memory Area, HMA). Ему соответствует диапазон адресов от FFFFh: 0010h = 100000h до FFFFh: FFFFh = 10FFEFh. Размер области старшей памяти составляет 64 килобайта без 16 байт.
