You have to distinguish between physical and virtual memory. The MIPS32
architecture supports implementations with up to 36 bits of physical
address space, however the virtual address space in kernel and user mode
is as you describe below.
One note: Many MIPS32 implementations choose not to implement all 36 PA
bits, but limit themselves to 32 bits. This saves a few bits in the TLB
and a few address lines.
And no to the FP thing: FP registers can only be used to hold FP values.
All addressing is done through integer registers. And any given process
can only see 2GB anyway.
Steven J. Hill writes:
> I am just trying to fill in some more MIPS knowledge here. With a 32-bit
> MIPS processor, we are forever limited to a userspace of 2GB in size thanks
> to the kuser region. kseg0/1 map the same 512MB of physical memory. kseg2
> is 1GB in size and hence it could address another 1GB of RAM. So, is the
> maximum amount of RAM for a 32bit MIPS core:
> 1) 1.5GB = 0.5GB kseg0/1 + 1.0GB kseg2
> 2) 4.0GB = largest 32-bit address
> 3) Something larger than 4.0GB by adding fancy external HW logic
> Also, for choice #3, while it would be a hit in performance, could you use
> the fp registers for 64-bit pointers to address larger than 4.0GB?
> Thanks in advance.
> Steven J. Hill - Embedded SW Engineer
_ _ _____ ____ Hartvig Ekner Mailto:email@example.com
|\ /| | |____)(____ Direct: +45 4486 5503
| \/ | | | _____) MIPS Denmark Switch: +45 4486 5555
T E C H N O L O G I E S http://www.mips.com Fax...: +45 4486 5556