- Upper Memory Block
-
Upper Memory Area (UMA, неформально верхняя память) — это 384 килобайт памяти, расположенных между адресами А0000h (640 Кб) и до FFFFFh (1024 Кбайт, 1 Мбайт). Является особенностью архитектуры IBM PC-совместимого компьютера.
Содержание
Зарезервированная область памяти
IBM PC для ПЗУ материнской платы и дополнительных устройств и ОЗУ, а так же портов ввода-вывода, адресуемых как память (Memory-Mapped Input/Output). Эта область памяти называется UMA и находится между адресами A0000 (640 Кбайт) и FFFFF (1 Мбайт).
Например, в этой области памяти находятся ОЗУ и ПЗУ EGA-совместимого видеоадаптера и окно отображения расширенной памяти.
Верхняя память условно разделена на три области по 128 Кбайт. Стандартное распределение верхней памяти выглядит таким образом:
- A0000h…BFFFFh — 128 Кбайт, отведено под видеопамять, чаще всего используется не полностью.
- C0000h…DFFFFh — 128 Кбайт, загружаются программы BIOS адаптеров (Adapter ROM, Adapter RAM).
- E0000h…FFFFFh — 128 Кбайт, отведено под использование системного
Использование свободной верхней памяти
В реальной системе не вся зарезервированная область памяти оказывается занятой. Компьютеры, оснащённые процессором Intel 80386 и выше, способны отображать дополнительную память на свободные участки зарезервированной памяти.
Таким образом, формируются блоки верхней памяти (Upper Memory Block, UMB).
Оставшаяся свободная верхняя память с помощью специального драйвера (например, EMM386.EXE) могла отдаваться для нужд ОС и называлась расширенная память.
Чтобы активировать функцию управления UMB, надо включить в файл
device = HIMEM.SYS
device = EMM386.EXE
dos = UMB
devicehigh = ... (этот драйвер будет загружен в UMB)Резидентные программы также могут загружаться в UMB. Для этого служит команда loadhigh.
Кроме того, любое приложение может самостоятельно перенести себя или часть своих данных в UMB, воспользовавшись функцией DOS 58xx.
Однако следует помнить, что не любое приложение способно корректно работать в UMB.
Также следует помнить, что во время загрузки приложение обычно занимает несколько больше памяти, чем его резидентная часть. резидентных программ, а так же воспользоваться расширенным синтаксисом команд devicehigh и loadhigh.
Трудности перевода
Слово англ. Upper обычно переводят на русский как верхний. Но и слово англ. High переводится как верхний. С этим связано множество ошибок перевода на раннем этапе внедрения понятий Upper Memory Area / Upper Memory Block и High Memory Area.
В результате в русскоязычной литературе по прежнему используются оригинальные англоязычные написания — UMB и HMA, а аббревиатура UMA вообще не прижилась.
См. также
Wikimedia Foundation. 2010.