Re: The Linear Address Space

From: Cameron Gibbs (odly_at_hotmail.com)
Date: 04/29/04


Date: Thu, 29 Apr 2004 08:52:52 +0000 (UTC)

Even closer I think :)
Please correct where necessary.

Rewritten after the help from Charles.
Thanks Charles.

There is an I/O Address Space and the Address Space described in the IA-32
manuals under the heading of Basic Execution Environment (called the Virtual
Address Space).

When a computer starts up, hardware sets up the addresses for things like
the Hard Drive which works to assign address values to things like it's
accessible registers and these addresses are a part of the I/O address
space.
    Alot of registers for other devices are included here too.
A programmer uses these registers (at their assigned address) to write
binary numbers to it that act to command the device.
In the case of a Hard Drive, the registers can be used to send packets of
data (512b or 1k packets) to RAM which are then executed or read by a
program.
When a packet of data is sent to RAM, it exists in the Virtual Address
Space.

So if you want to access a byte of Hard Disk space, one first commands it's
HDD sector to read it into RAM and then one can select the byte with it's
Virtual Address which would automatically make itself relative when you use
the paging mechanism.... I think.

A few things still to clear up (sowwy I'm slow :):
If for example a program has a loop in it, then at some stage it has to
point (address) back to a previous part of itself.
When writing a program, one would use the Virtual Address Space and can
start using the addresses from 00.
If you write another program, does it also use the same Virtual Address
Space and can it also start from the address 00?
When you put these two programs into RAM, if they are both using the same
Address Spaces, how does the processor make the distinction?
Is this where paging is needed?
Can you do this without paging?

I think I can summarize by saying that one addresses the HDD in blocks, and
these blocks have addresses within them that use the Virtual Address Space.

I no longer think this is related but out of curiosity, does RAM have it's
own set of addresses (probably in the I/O Address Space)?

Thanks enormously to all who are helping.

--
______________________________
Reply to the group.
______________________________
Procedurized mind at work.
       Adhere to the sequence.
The PC & Electronic Data Map Project:
http://members.dodo.com.au/~cameron111
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.669 / Virus Database: 431 - Release Date: 4/26/04


Relevant Pages

  • Re: The Linear Address Space
    ... This would probably also mean that all of the processor registers, ... So if you want to access a byte of Hard Disk space, ... sector to read it into RAM and then selects it's offset. ... So paging is not actually necessary for the execution of a program and RAM ...
    (comp.lang.asm.x86)
  • Re: Alpha remembrance day
    ... just read the 8400 configuration guide. ... impossible to configure with redundant I/O and 14CPU's and 14GB of RAM. ... You don't need 64bit support to ...
    (comp.os.vms)
  • Re: How does the ZIP chip work?
    ... kind of cache? ... the zipchip has internal ram. ... to the screen buffers ot the i/o addresses (of course i/o addresses are ... zipchip to enable/disable caching for rom addresses. ...
    (comp.sys.apple2)
  • Re: How does the ZIP chip work?
    ... If the ZIP chip does not have it's own memory, ... kind of cache? ... the zipchip has internal ram. ... to the screen buffers ot the i/o addresses (of course i/o addresses are ...
    (comp.sys.apple2)
  • Re: Hard Disk Driver
    ... > I've been told that most modern devices have both legacy I/O control ... > registers within the I/O address space and some registers mapped to the ... > Registers mapped to the Memory Address Space might be drive specific... ... Btw the current address limit on ata drives is 48 bits. ...
    (comp.lang.asm.x86)