Re: Memory map?



If you have an address space that is larger than the amount of
memory you are going to use then you use some address bits
or combinations of them to select io connections.

If you have a small address space and it is filled with memory
you have to disable the memory access circuits in addition
to enable your io on the addresses you use. If you used a 3-and
of address bit-15, address bit-1 and address bit-0 you would
get a true when addressing only addresses where those
bits were true. If you have only 32K or less of memory then
access to address 8003h would enable the io device connected.
In fact if you only used 3 bits in your decoder any address
above 8000h that had bits 0 and 1 true would select this
device, 8003, 8007, 800B, 800F, ... FFF3, FFF7, FFFB, FFFF
If you only needed two io devices you could use two bits,
if you needed 32 registers you would need to decode 6 bits
in your io device select circuit etc.

One advantage of using a memory mapped io design is that
you will use the regular memory access instructions and you
won't need any special or restricted 'port' access opcodes
to complicate things.

.



Relevant Pages

  • Re: Results of the memswap() smackdown from the thread "Sorting" assignment
    ... Use in C is memswap; a, b are pointers to a block of memory, n is ... The memory access is serial: one read and one write access per location, ... registers, and taking care of the unaligned first 16 bytes with movdqu, ... If you want to get even more extreme you can tweak the MTRR for very ...
    (comp.programming)
  • Re: Memory ordering and flag/state variables
    ... one-byte memory access always result in bus locking. ... be seen by all CPUs before the function returns? ... barriers as I'd expect and I wonder why it works. ...
    (microsoft.public.development.device.drivers)
  • Re: Problem with memory access in C++?
    ... > any previously stored heap data to show as pixels on the screen. ... Just a simple memory access. ... > private member variables of VgaDos. ...
    (comp.programming)
  • Re: fork() (Was: Re: Will "COM for OpenVMS" be ported to Itanium ?) ?) ?) ?) ?)
    ... > multiple bullet wounds from dealing with global memory access on ... If no Memory Barrier instruction is executed, ... shared memory access that it becomes important. ... instruction set manuals and the Alpha architecture manuals and know what ...
    (comp.os.vms)
  • Re: Register-less CPU
    ... sets located at arbitrary addresses in main memory. ... switch, just load an address into the pointer register and switch. ... Also, the BASIC interpreter was ... IIRC, TI took out any direct memory access and the ability to ...
    (comp.arch)