High Memory Area

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 processors identifies memory locations with 16-bit segment and 16-bit offset, which is resolved into a physical address via ( extrm{segment}) imes 16 + ( extrm{offset}). Although intended to address only 1 megabyte (2^{20} bytes) of memory, segment:offset addresses at FFFF:0010 and beyond reference memory beyond 1 megabyte (FFFF0 + 0010 = 100000). So this syntax can actually address 17×64 KiB minus 16 bytes of memory from 0000:0000 to FFFF:FFFF. The Intel 8086 and Intel 8088 processors, unable to handle more than 1 mebibyte of memory, wrapped around at the 20th bit, so that address FFFF:0010 was equivalent to 0000:0000.

In order to allow running existing MS-DOS programs which relied on this feature on their newer IBM PC AT computers, IBM added special circuitry on the motherboard to simulate the wrapping around. This circuit was a simple logic gate which could disconnect the microprocessor's 20th addressing line, A20, from the rest of the motherboard. This gate could be controlled, initially through the keyboard controller, to allow running programs which wanted to access the entire RAM.

So-called A20 handlers could control the addressing mode dynamically, thereby allowing programs to load themselves into the 1024–1088 KiB region and run in real mode. The first user of the HMA among Microsoft products was Windows/286 2.1 in 1988, which introduced the HIMEM.SYS device driver. Starting with versions 5.0 of DR-DOS (1990) and of MS-DOS (1991), parts of the operating system could be loaded into HMA as well, freeing up to 46 KB of conventional memory. Other components, such as device drivers and TSRs, could be loaded into the Upper Memory Area.

See also

* Unreal mode
* Conventional memory
* Upper Memory Area
* Extended memory
* Expanded memory


Wikimedia Foundation. 2010.

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

Look at other dictionaries:

  • High Memory Area — High Memory Area, HMA  начальный участок дополнительной памяти объёмом 65520 байт (64 килобайта минус 16 байт) с адресами от 10000016 до 10FFEF16 (сразу после Upper 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 — 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

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”