Download PDF1 - Greg Gibeling

Transcript
Chapter 13
Fleet
In this section we present the design and operation of a novel computer architecture we have been
developing, called Fleet, along with the development of a simulator for it, developed in the RAMP
Description Language (RDL). This is intended as a
walk-through for a designer wishing to experiment
with Fleet, and includes an architectural description (see Section 13.1), a guide to the code (see
Section 13) and instructions for building and programming a Fleet. Not only is Fleet a novel architecture, but this work represents the first hardware
implementation of a complete Fleet processor capable of executing code, though there have been
circuit-test ASICs with the name Fleet.
It is interesting to note that while this project has
successfully made good use of RDL it is not part of
the main RAMP effort. Though it is obviously a
hardware projects with some element of computer
architecture, there is quite a bit of variety when
compared to the manycore experiments which are
the bastion of RAMP. This shows some of the main
strength of RDL, though clearly rooted in the needs
of RAMP, it has proven useful on a slightly wider
range of applications.
to guarantee sequential operation of seas of transistors, only to realize now that we want concurrent processors in the end and that sequentiality is
costly and counter productive.
13.1.1
ISA
A classic ISA is focused on the storage (register
file or memory) and operation (ALU, etc.) operations relying on the hardware designer to be clever
about making these things happen. This was a reasonable approach as it allows an assembly language
programmer to easily translate an algorithm, and a
hardware designer to optimize these expensive transistor heavy operations.
Fleet is based around collections of concurrent
instances of a single instruction: move. The ISA
thus focuses on the movement of data, the expensive operation given the relative cost of transistors
and wires, allowing the high performance hardware
designer and programmer to cooperate rather than
working against one another. Of course storage,
computation and sequentiality are still necessary,
but these operations in Fleet are encoded in the
locations to which data items are moved and dependencies between moves.
13.1 A New Architecture
In many ways Fleet turns the job of microarchitectural scheduling over to the compiler or proFleet [31, 85, 86, 87] is a novel computer architecgrammer rather than forcing a architect or hardture based on the idea that the ISA should be foware designer to make the relevant decisions. In
cused on exposing the hardware’s abilities to the
essence one might view a Fleet processor as a
programmer, instead of hiding them below abstracstandard Tomasulo or Out-of-Order processor core,
tions. Most notably, in the years since the emerfrom which the forwarding logic, score-boarding
gence of class CISC and RISC architectures, there
and such logic have been removed. This shift means
has been a cost inversion in IC design between wires
that a Fleet processor can easily be more efficient,
and transistors. Transistors, once the most expenparticularly for streaming applications, at the cost
sive part of a CMOS IC, are now often considered
of a more advanced compiler or a better assembly
free as they fit easily below the massive amounts of
language programmer.
on chip wires necessary to implement busses and
Figure 54 shows a high level hypothetical block
other higher performance interconnects. Taking
diagram of a Fleet processor. A Fleet procesthis a step further, we have worked for 30 years
sor consits of a collection of operators over data
0 The ideas behind Fleet are in main the work of Ivan
words called Ships1 , and some form of switch fabSutherland, and numerous others including Adam Megacz
and Igor Benko.
113
1 If
you don’t like nautical themed jokes, we recommend