- •Память Архитектура памяти.
- •Классификация и физическая организация микросхем памяти, области их применения.
- •Постоянная память
- •Оперативная память
- •Технологии системной памяти. Классическая памятьDram.
- •Память fpm.
- •ПамятьEdodram.
- •Многобанковая организация памяти
- •Технологии синхронной памяти.
- •ПамятьSdram.
- •Память ddrsdram
- •ПамятьDirectRambusDram.
- •Конструктивные исполнения памяти dram (модули памяти)
- •Адресация памяти в реальном режиме. Логический и физический адреса.
- •Сегментная адресация в реальном режиме.
- •Область верхней памяти (hma)
- •Логическое распределение оперативной памяти в реальном режиме.
- •Стандартная память
- •Верхний блок памяти
- •Дополнительная память (ems)
- •Расширенная память (Extended память, xms)
- •Адресация памяти в защищенном режиме работы процессора
- •Разделение адресного пространства на сегменты (сегментация)
- •Механизм страничной памяти.
- •Кэширование данных. Иерархия запоминающих устройств.
- •Способы отображения основной памяти на кэш (архитектура кэш-памяти).
- •Полностью ассоциативная кэш - память.
- •Наборно - ассоциативная кэш - память.
- •Проблема выбора блока кэш-памяти для замещения при промахе
- •Проблема согласования данных
- •Список терминов.
Область верхней памяти (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 байт.
Логическое распределение оперативной памяти в реальном режиме.
Несмотря на то что в реальном режиме доступен 1Мб оперативной памяти, собственно для загрузки программ выделены первые 640 Кб адресуемого пространства, получившие название стандартной памяти (Conventional memory). Оставшиеся 384 Кб зарезервированы для системного использования и носят название верхний блок памяти (UMB - Upper Memory Block).
Замечание: Слово англ. Upper обычно переводят на русский как верхний. Но и слово англ. High переводится как верхний. С этим связано множество коллизий при переводе названий Upper Memory Block и High Memory Area. В результате, в русскоязычной литературе продолжают использоваться оригинальные англоязычные написания — UMB и HMA
Рассмотрим логическую организацию памяти более детально (рисунок 20)
Рисунок 20. Логическая организация памяти.
Стандартная память
Стандартная оперативная память начинается с адреса 00000 и заканчивается адресом 9FFFF.
Первые 1024 байта оперативной памяти занимает таблица векторов прерываний (занимает 1 Кбайт – 256 элементов по 4 байта). Вектора прерываний - это адреса сервисных программ, входящих в состав операционной системы и BIOS. Каждому прерыванию может соответствовать программа обработки этого прерывания, адрес этой программы это и есть адрес вектор или просто вектор прерывания. Номер прерывания является индексом для таблицы векторов прерываний, а ее элементы - вектора прерываний (4 байта) - представляют собой 16-битные селекторы и 16-битные смещения точек входа в процедуры обработчиков. (рис. 21
Рисунок 21 Таблица векторов прерываний в реальном режиме
Далее следует область данных операционной системы, которая занимает 768 байтов (буфер клавиатуры, счётчик таймера и другая внутренняя информация), после области буферов располагается область для загрузки операционной системы. Система загружается в стандартную оперативная память не полностью, а только частично (ядро), еще выше загружаются драйверы устройств.
Далее в основной области памяти (около 600 Kб) могут располагаться резидентные программы, т.е. программы, которые всегда остаются в памяти.Выше до адреса A000h:0000h все принадлежит только программам и данным.