Re: Register Files

hobbs@steven.enet.dec.com (Steve Hobbs)
Tue, 6 Oct 1992 23:09:02 GMT

          From comp.compilers

Related articles
Register Files storm@binkley.cs.mcgill.ca (1992-10-05)
Re: Register Files preston@helena.cs.rice.edu (1992-10-05)
Re: Register Files ssimmons@convex.com (1992-10-06)
Re: Register Files cliffc@cs.rice.edu (1992-10-06)
Re: Register Files hobbs@steven.enet.dec.com (1992-10-06)
Re: Register Files kendall@centerline.com (1992-10-07)
Re: Register Files bart@cs.uoregon.edu (1992-10-07)
Re: Register Files henry@zoo.toronto.edu (1992-10-07)
Re: Register Files ali@LARK.WARP.CS.CMU.EDU (Ali-Reza Adl-Tabatabai) (1992-10-22)
Re: Register Files idacrd!desj@uunet.UU.NET (1992-10-23)
| List of all articles for this month |

Newsgroups: comp.compilers
From: hobbs@steven.enet.dec.com (Steve Hobbs)
Organization: Digital Equipment Corporation
Date: Tue, 6 Oct 1992 23:09:02 GMT
References: 92-10-013
Keywords: registers

>[why did DEC compiler writers care if Alpha has combined or separate
>integer and FP registers?]


Imagine that it has been decided to allocate 5 bit instruction fields to
represent register operands. The choice then becomes: should you have 32
combined float/int registers or should you have 64 registers split between
32 integer and 32 float. It is a fairly easy tradeoff for a compiler
person to choose double the number of registers at the cost of having to
move between the register banks when casting or converting between integer
and floating point formats.


The hardware people also like split registers. They want to keep the
floating adder and floating multiplier close to the registers that hold
floating values and they want to keep the registers that hold integers
close to the ALU, shifter and integer multiplier. This is much easier to
do if the registers holding floating values can be placed in a different
chip location than the registers holding integers.


A more interesting question is why doesn't the Alpha AXP architecture have
any instructions that transfer values directly between the split register
sets. The compiler people lobbied hard for such instructions. The
hardware people pointed out that such instructions would require precious
chip area to run wires between the two register sets and it would require
bigger muxes in the floating and integer data paths. The size of the
integer data path is particularly important to peak chip cycle speed and
adding a mux here would reduce that peak. The compiler people agreed to
trade off easy transfer between register banks in return for getting a
faster cycle speed. Transfers between registers banks are not all that
common and increasing the speed of other operations even a small
percentage justifies this decision.


It is easy for a compiler person to agree with the architecture trade-offs
when the hardware experts explain and quantify the losses caused elsewhere
by any particular change.
--


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.