home | list info | list archive | date index | thread index

Re: [OCLUG-Tech] One last Power on Question.

William Case wrote:
> Hi;
> 
 > " ... the CPU starts processing.
> 
> The very first operation performed by a CPU is to fetch an instruction
> from address FFFF:0000h. Since this address is almost at the end of
> available ROM space, the instruction is almost always a jump command
> (JMP) followed by the actual BIOS ROM starting address. ..."
> 
> and further on;
> 
> "... Next, BIOS looks for the presence of a video ROM between memory
> locations C000:0000h through C780:000h. In just about all systems, the
> search will reveal a video BIOS ROM on a video adapter board plugged
> into an available expansion slot. ..." 
> 
> In both statements, there is mention of two separate ROM addresses as
> opposed to the computer's RAM addresses.  How does the CPU know that a
> particular address is ROM based, 


HI Bill, to tell the truth, it does not actually know or care.

On start up the processor will go to a known address which is "hard
wired" in the chip.  Since the designer of the mother board knows that
is where the processor will look, they arrange for some interesting ROM
to appear at that address on startup.  Since the processor may also be
running a part of the BIOS that would like ot have some ram, they
provide some - generaly at the bottom of memory.

AS soon as the bios starts, it may very well use the memory management
features to switch what the processor sees.  Certainly by the time Linux
is loaded, the BIOS is completly out of the picture as the (80386 and
above) CPU will swich to the 32 Bit (or 64 bit) mode.  The BIOS may (and
probaly is these days) designed to memory manage itself  away as soon as
the real Operating system is loaded.

The CPU does not directly care if what it is seeing is rom or ram, they
both look more or less the same, as long as there are valid instuctions.
 ROM these days is quite a bit slower than RAM, so when it is accessed,
the hardware will generate a "wait State" or three for each fetch. but
that is a hardware signal which the logic of the processor does not see,
it just is held back in speed.

Some CPUs like the 6502 found on the Apple][ and PET even by default use
"memory addresses" which are read or written to as direct control of IO
chips.  A PC can also use this method, although there are special IO
addreses, which look like memory addresses, but have a different
hardware signal associated with them.

I don't really want to refer you to the 6502 books as they may just
confuse you more, but the mechnism is simalar without all the layers of
abstraction that you seem determined to penetrate.





-- 
Charles MacDonald               Stittsville Ontario
 cmacd [ at ] TelecomOttawa [ dot ] net        Just Beyond the Fringe
        http://www.TelecomOttawa.net/~cmacd/
   No Microsoft Products were used in sending this e-mail.


references