High Memory Area

High Memory Area

High Memory Area, HMA — начальный участок дополнительной памяти объёмом 65520 байт (64 килобайта минус 16 байт) с адресами от 10000016 до 10FFEF16 (сразу после Upper Memory Area), доступный в реальном режиме через верхние сегменты адресного пространства. Особенность процессоров 80286 и выше и построенных на них IBM PC/AT-совместимых компьютеров.

Термин HMA был придуман Microsoft и долгое время использовался ею без расшифровки, что породило расшифровку High Memory Area — область высокой памяти. Однако позднее Microsoft документировала HMA как High Memory Arena.[источник не указан 475 дней]

Содержание

Описание

Адресация памяти в процессорах 8086 и 8088 сегментная: полный (линейный) адрес памяти задаётся 16-битным номером сегмента («параграфа») и 16-битным смещением внутри этого сегмента (оба числа, как правило, записываются в шестнадцатеричной форме) и вычисляется по формуле

(сегмент) × 16 + (смещение).

(При этом один и тот же адрес может получаться из разных пар сегмент/смещение — например, полный адрес 100016 доступен и как 0000:1000, и как 0100:0000, и как 0060:0A00).

С помощью сегментной адресации доступны линейные адреса от 0 (0000:0000) до 10FFEF16 (FFFF:FFFF, 1088 Кб). Однако адресная шина процессоров 808x 20-битная и может адресовать только 220 байт (1024 Кб или 1 Мб) памяти, то есть область с адресами от 0 до FFFFF16 (от 0000:0000 до FFFF:000F). Адреса же от 10000016 до 10FFEF16 (от FFFF:0010 до FFFF:FFFF) — 21-битные, поэтому при их использовании возникает переполнение, 21-й бит теряется и, например, адрес 10000016 (FFFF:0010) указывает туда же, куда и адрес 0 (0000:0000).

В процессорах 80286/80288 адресная шина 24-битная (возможна адресация 224 = 16 Мб памяти), поэтому в них переполнения не происходит.

Компьютеры IBM PC/AT построены на процессоре 80286, но из соображений совместимости с IBM PC и IBM PC/XT, построенных на процессорах 808x, в них был введён логический элемент (вентиль), отключающий 21-й адресный провод (A20) от схемы управления памятью. Этот логический элемент (Gate A20 (англ. A20 line)) управляется через контроллер клавиатуры (микросхема Intel 8042) и по умолчанию он включён.

Позднее были разработаны программы-драйверы, так называемые A20 handler, которые динамически управляют адресацией и позволяют приложениям, работающим в реальном режиме, использовать область памяти между 1024 и 1088 Кб.

MS-DOS

Впервые HMA была использована в Windows 2.1 (которая работает поверх MS-DOS) в 1988 году и функции A20 handler там выполнял драйвер HIMEM.SYS.

В 1991 году вышла MS-DOS 5.0, умеющая загружать в HMA своё ядро, тем самым освобождая 46 Кб основной памяти для приложений. Последующие версии MS-DOS также поддерживают такую возможность. Драйвер HIMEM.SYS был включён в состав MS-DOS.

Чтобы DOS загрузила своё ядро в HMA, в файл CONFIG.SYS нужно добавить строки:

device = HIMEM.SYS
dos = high

Другие приложения также могут использовать HMA с помощью функций DOS или прямо через функции HIMEM.SYS, хотя после переноса в HMA ядра DOS свободного места там почти не остаётся.

Путаница названий

Слово англ. upper обычно переводят на русский как «верхний» («расположенный наверху»[1]), но и слово high может переводиться как «верхний» (или «высокий» — «находящийся вверху»[2]). С этим связано множество коллизий при переводе названий Upper Memory Area (Upper Memory Block) и High Memory Area.

В результате, в русскоязычной литературе продолжают использоваться оригинальные англоязычные написания — UMB и HMA (аббревиатура UMA практически не прижилась).

Кроме того, команды devicehigh и loadhigh, несмотря на слово high в названии, загружают программы в UMB, а не HMA. HMA DOS использует только для загрузки своего ядра (если использована команда dos=high или dos=high,umb).

См. также

Примечания

  1. upper в Яндекс.словарях
  2. high в Яндекс.словарях



Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Полезное


Смотреть что такое "High Memory Area" в других словарях:

  • High Memory Area —   [Abk. HMA, dt. »hoher Speicherbereich«] die, (hoher Speicher), unter DOS ein 64 KByte großer Bereich des Arbeitsspeichers, der am Beginn des XMS Speichers lag, also direkt an das erste MByte des Arbeitsspeichers anschloss. Die HMA konnte… …   Universal-Lexikon

  • High Memory Area — The High Memory Area (HMA) is the RAM area consisting of the first 64 kibibytes (KiB), minus 16 bytes, of the extended memory on an IBM PC or compatible microcomputer.In real mode, the segmentation architecture of the Intel 80286 and subsequent… …   Wikipedia

  • High Memory Area — Der Begriff High Memory Area bezeichnet bei einem x86 kompatiblen Prozessor die ersten 65520 Byte oberhalb der 1 MB Grenze. Die deutsche Übersetzung hoher Speicherbereich ist gebräuchlich, aber auch im deutschen Sprachraum wird zumeist… …   Deutsch Wikipedia

  • high memory area —    Abbreviated HMA. In a computer running MS DOS, the first 64KB of extended memory above the 1MB limit of 8086 and 8088 addresses. Programs that conform to the Extended Memory Specification (EMS) can use this memory as an extension of… …   Dictionary of networking

  • High Memory Area — first 640k of memory extended beyond 1 megabyte used to expand the basic memory in computers running on DOS, HMA …   English contemporary dictionary

  • High memory — is the part of physical memory in a computer which is not directly mapped by the page tables of its operating system kernel. The phrase is also sometimes used as shorthand for the High Memory Area, which is a different concept entirely.Some… …   Wikipedia

  • Upper Memory Area — The Upper Memory Area (UMA) is a design feature of IBM PC compatible x86 computers that was responsible for the 640 KB barrier.Reserved memory spaceIBM reserved the uppermost region of the PC memory map for ROM, RAM on peripherals and memory… …   Wikipedia

  • Upper Memory Area — Иное название этого понятия  «UMA»; см. также другие значения. Upper Memory Area (UMA), Upper Memory Blocks (UMB), неформально верхняя память  384 килобайта памяти, расположенные после основной памяти по адресам от А000016 (640 Кб) до… …   Википедия

  • Upper Memory Area — UMB (Upper Memory Block, englisch für „oberer Speicherblock“) ist ein Begriff aus der Speicherverwaltung von DOS und bezeichnet die frei nutzbaren Bereiche im UMA (Upper Memory Area, englisch für „oberer Speicherbereich“) oberhalb des… …   Deutsch Wikipedia

  • Upper Memory Area —   [Abk. UMA, dt. oberer Speicherbereich] die, der Adressbereich zwischen den Speicheradressen 640 KByte und 1023 KByte (0xA000 0xFFFF) im Arbeitsspeicher bei DOS bzw. älteren Windows PCs. Unter DOS konnte ein Rechner maximal ein Megabyte… …   Universal-Lexikon


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»