Upper memory area

UMB ( Upper Memory Block, English for " upper memory block " ) is a term from the memory management of DOS and refers to the freely usable areas in the UMA ( Upper Memory Area, English for " upper memory area" ) above the conventional memory of 640 KB ( = 655360 bytes), and below the 1 MB line ( = 1,048,576 bytes).

Details

The address space above the memory address 0xA0000 (equivalent to 640 KB ) is reserved under DOS for additional hardware ( graphics cards, SCSI controllers, and the like) and for the BIOS. In the first IBM PCs, who brought just 16 or 64 KB RAM, this meant no appreciable restriction. Later, however, the programs were always memory hungry, many demanded that a very large part of conventional memory was available for them (below 0xA0000 ). This then was a problem, though still several drivers and TSR programs should be loaded into conventional memory - the remaining memory was then ultimately too small for many applications. At the same time the address space was above 0xA0000 but completely occupied only in the rarest cases of additional hardware and the BIOS; mostly stayed here 128-256 KB unused, and not immediately after the end of conventional memory at 0xA0000 ( here sits the graphics card ), but in the middle of the reserved area, a maximum of 0xC8000 to 0xF8000.

Conventional DOS programs can address these specific address space though and use easily, but here is just not a RAM memory, because this area is indeed free for additional hardware. If you want to not load programs, drivers or TSR programs into conventional memory, but for use UMBs, you need a driver, the usual with the help of special registers of the chipset on 80286 -based PCs or using the existing as of the i386 MMU RAM memory from higher addresses in this address space " moved " (beyond the 1 MB limit). Such drivers are eg EMM386 or UMBPCI.SYS. This will ensure that RAM is visible in the UMBs. The conventional memory must be a single contiguous address space under DOS always, therefore UMBs are not directly usable as part of conventional memory. For now though drivers and TSR programs can be loaded into this RAM, the operating system has to play along; it provides the new commands DEVICE HIGH ( for drivers ) and LOAD HIGH ( short LH, for TSRs ) are available, which charge their goal each in UMBs. In addition, new system calls were introduced (via Interrupt 21h), with which a program memory could prove from the UMA. In this way, the amount can be increased at constant free conventional memory, so that for ordinary application programs and games remains more memory.

Digital Research UMB use was introduced in May 1990 with DR- DOS 5.0, Microsoft moved in June 1991 with MS- DOS 5.0 after.

Confusion

In the German MS -DOS versions which supported the High Memory Area (HMA ), these as " Upper memory area" was designated. As support for UMBs was added, would then be used for this called " high memory area ". The designation was thus handled just reversed in German as in English, which led, together with the total heavy intelligibility of the MS -DOS memory management too much confusion among users. Only under Windows 95, the German terms were reversed, so that they now correspond to direct the English.

  • Memory management
  • DOS operating system component
794403
de