I had read that at start, the CPU program counter register is fill with F000.

I though that:

  • PC registers contain the next instruction address.
  • This address is send to the address bus and value return to the data bus

Does the address bus only deal with RAM? Obviously the bios isn't store in ram.

So HOW F000 target the ROM to start BIOS execution


closed as off-topic by Leon Heller, Nick Alexeev Mar 15 '14 at 17:51

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions on the use of electronic devices are off-topic as this site is intended specifically for questions on electronics design." – Leon Heller, Nick Alexeev
If this question can be reworded to fit the rules in the help center, please edit the question.

  • \$\begingroup\$ What CPU are you referring to? \$\endgroup\$ – jippie Mar 15 '14 at 17:04
  • \$\begingroup\$ @jippie He refers to motherboards, so presumably x86, but you're right, there are other options such as ARMxx. \$\endgroup\$ – Spehro Pefhany Mar 15 '14 at 17:07
  • \$\begingroup\$ @SpehroPefhany, in my case its x86. However don't they share the same logic? \$\endgroup\$ – user2192934 Mar 15 '14 at 17:29
  • \$\begingroup\$ ARM7 (for example) boot from a vector at address 0x00, so not exactly, but the general answer I gave it correct- it's done by hardware, and must be because there is no software or firmware yet. \$\endgroup\$ – Spehro Pefhany Mar 15 '14 at 17:33

There's a fairly detailed answer on stackoverflow here.

Bottom line, is that the hardware has to decode the address space such that the BIOS ROM appears at the appropriate address.

Here, for example, is the original IBM PC memory map from an online book. Things have moved on since then, but this should give you an idea. The actual decoding logic is the equivalent of gates, probably implemented in some other form (used to be PLDs, but probably a side job of more complex support chips now).

enter image description here

  • \$\begingroup\$ Thank you, Sorry for the duplicated. Also I know that its the hardware job, Its exactly that I want to learn all the hardware behavior for rom/ram address mapping \$\endgroup\$ – user2192934 Mar 15 '14 at 17:33
  • \$\begingroup\$ I added the original PC memory map. \$\endgroup\$ – Spehro Pefhany Mar 15 '14 at 17:43
  • \$\begingroup\$ Laster question, from which book this image is from? \$\endgroup\$ – user2192934 Mar 15 '14 at 17:48
  • \$\begingroup\$ See the link included in my edit "ISA System Architecture 3rd Edition". \$\endgroup\$ – Spehro Pefhany Mar 15 '14 at 17:49

Not the answer you're looking for? Browse other questions tagged or ask your own question.