Real mode

From Computer History Wiki
Jump to: navigation, search

Real mode is an Intel-specific term used with the 80286 and later members of the Intel x86 line which refers to a mode of the CPU in which the extended architectures of the later chips, including hardware support for virtual memory, is apparently (to the program) not present.

These chips power on in real mode, in which they appear to be 8086's; this is for purposes of backward compatibility at the object code level. A small extension to that architecture allows them to switch into protected mode, where all the extended features of the later architectures are available. Real mode in the later x86 machines is almost entirely the same as an 8086, but there are minor differences (e.g. different Instruction Clock Counts).

History

The first Intel 16/8 bit microprocessors could only address 1Mb of physical main memory; later, Intel referred to these processors as real mode only. LIM memory was developed to swap pages over the bus into the 1Mb address space. The Intel 8088, and 8086, had a real mode memory of 1Mb; since 384K was reserved for I/O pages, it created a real mode barrier of 640Kb of memory.

Later chips had developing memory modes: the Intel 80286 had a real mode address space of 1Mb, and a protected mode of 16Mb; these memory addresses could not only be relocated, but they could be swapped out to disk. (Virtual memory). Switching to protected mode was relativity simple, but switching back to real mode, required a processor reset.

In Real mode, everything is 16 bits. The entire memory is not accessed with an absolute index from 0, but it is divided into segments. Each segment represents the actual offset from 0, multiplied by 16. To this segment, an offset value can be added to refer to a distance from the start of this segment.

The Intel 80386, had a real mode of 16Mb, and both a protected mode of 16Mb, which memory address could not only be relocated, but also could be swapped out to disk. The Intel 80386 also had a virtual 8086 mode, where memory address could not only be moved (relocated), and swapped to disk (virtualized), but with the ability to swap in register files (a complete set of 8086 registers), could support a virtual machine environment. A task will run in real mode, unless virtual memory is on, and it is started in virtual 8086 mode.

Starting with the Westmere Processor core, not only were memory addresses virtualized, (VT-x) and register files virtualised, but I/O address could be virtualized (VT-d) which is direct I/O. A virtual machine can address Input/Output directly. In the x86-64 computer architecture, long mode is the mode where a 64-bit operating system can access 64-bit instructions and registers. ... Real mode or virtual 8086 mode programs cannot be natively run in long mode.

  • Intel 8088 was a 16-bit processor with an 8 bit bus.
  • Intel 8086 was a 16-bit processor with a 16-bit bus.
  • Intel 80286 was a 16-bit processor with a 24-bit bus.
  • Intel 80836 was a 32-bit processor with a 32-bit bus, and a 16-bit real mode.

See also

External links