[comp.arch] Addressing registers in register file architectures.

sbw@naucse.UUCP (Steve Wampler) (08/23/87)

I have a question on addressing registers on register file
machines (I think that is the term - machines with overlapping
register windows such as RISC I and II).  How do real machines
implement this?

I have minor dealings with a company that is building a similar
machine, except that they have been unable to get register addressing
to work.  Some additional information might guide people's answers:

It seems to me that, for register addressing to be effective, there
should be no difference in the use of the address versus a
'conventional' memory address.  I.e. anywhere, anyway a memory address
is used, a register address would also work.  For example, one
should be able to allocate a (small) array in registers, take the
address of the first position, then step through the array a byte
at a time.  Do real machines allow this?  Must one step through
a register width at a time?  Further, if the register file overflows
and some windows are moved out, or if it later underflows and
some (possibly different) windows are moved in, there so be no
difference (other than possibly performance) from the point of
view of the user of the register address.

This particular machine has the least significant byte on the right
in registers and on the left in memory, could that be the reason
they were having troubles, or is my view of how register files
operate that unreasonable from a hardware point of view?

I think that the IBM RT RISC machine doesn't operate with a
register file, and doesn't have a 'CAR' compute address of a
register machine.  I would love to have *accurate* information
on other machines.

Please email me, I don't get out this way very often.  Thanks.

Steve Wampler
{....!arizona!naucse!sbw}