I know that the first instruction stored in BIOS is "mapped" to memory address 0, and that a signal on the reset pin to the microprocessor causes this instruction to be fetched, beginning the POST and all the chain-loading involved in the boot process.

I also know that there is a Memory-Management Unit (MMU?) at the hardware level. Is it in charge of doing this redirect (away from DRAM to the BIOS firmware) so that the processor can interact with the memory of the computer in a blissfully naive way? If so, what other areas (in addition to BIOS) does the MMU map into the total address space?

I know that for modern operating systems with a GUI, the displays are "bitmapped". Does the MMU map a portion of the video RAM on the video card into the global address space as well?

What about virtual memory and paging? Does the hardware MMU have any intrinsic capabilities that facilitate the virtual memory feature provided by the OS?

I may be way off.

  • $\begingroup$ What system are you talking about? The IBM PC / x86 architecture, for example, does not start execution at address 0 and does not have the BIOS mapped at address 0. $\endgroup$ – Andrew Medico Oct 6 '14 at 17:40
  • $\begingroup$ I'm talking about PC/x86. What address does it start execution at? Where is BIOS mapped? It does start with BIOS, right? Fundamentally, I want to understand whether the MMU sits between the CPU and all other RAM, abstracting away the different sources (DRAM vs. BIOS, etc.)? Do the address and data buses lead right from the CPU into the MMU? $\endgroup$ – Padawan Learner Oct 7 '14 at 2:49
  • $\begingroup$ x86 CPUs start executing at 0xFFFF0. $\endgroup$ – Andrew Medico Oct 7 '14 at 14:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.