In the design space there are three dimensions of interest: performance,
power, and area (which becomes cost at the fab, and price after markup).
There are other dimensions of course, but these three seem the most
important. These three dimensions form a vector space. For ease of
insight, we make "bigger is better" on all three dimensions and set the
scales to "Mips", "1/W", and "1/$".
Any given architecture at any given fab process has hard limits on each
of these dimensions. For the performance dimension, you can't run a
circuit at zero Hz, and you can't get it over some maximum rate either.
The Mill is necessarily a 64-bit design and must have at least four
function pipelines, which sets lower limits on area and power; the upper
limits are more fuzzy, being defined by diminishing returns when
scaling, but are present nonetheless. Other architectures have similar
limits, set by the nature of the architecture. These limits define a 3-D
solid in the design space; points within the solid can be implemented,
and points outside the solid cannot.
The dimensions interact in their limits; we call such interactions
"tradeoffs". Because of the interactions, the design space is not a
regular Euclidean solid, nor even necessarily convex. I think it will
always be strongly connected and topologically equivalent to a sphere
though; thinking about toroidal design spaces makes my head hurt.
As a 3-D solid, the design space has a volume, which has the
dimensionality of the product of the dimensions of the component
vectors, i.e. Mips/W/$. Each architecture occupies such a volume in the
space, which may or may not overlap with the volumes of other
architectures. Because we have defined the dimensions so that "bigger is
better", we can compare the volumes of different architectures by
judging that a larger volume is "better" than a smaller one, and one
further from the origin is "better" than one closer to the origin.
Depending on the actual shapes of the volumes and their degree of
overlap, "better" may be ambiguous.
Particular points in such a volume, i.e. a particular implementation of
the enclosing architecture, have the same dimensionality, defining a
vector rather than a volume. One can get a sense of the size, location
and shape of the design space of an architecture by looking at a set of
such points. Particularly informative are points furthest from the
origin in each dimension (what we call "high end") because the shapes
tend to be less fuzzy there than on the close-to-the-origin boundaries.
Design spaces like these, and the points within them, are useful only to
compare architectures in general. They are not suitable for comparing
individual chips for some particular need. To compare chips, say for a
buying decision, the customer must also define a "utility space" which
defines, at each point of the architecture space, the utility function
(i.e. actual value) of that combination of qualities for that particular
use for that particular user. The product of the design space and the
utility space maps each implementation point into a linear value
dimension, and the higher value wins.
The general utility space is not necessarily smooth or differentiable,
but in practice can be approximated with three functions, one for each
of the dimensions. "I need 120 Mips and a price point of $15, but past
that point then power is three times as important as price and eight
times as important as additional performance" is an example of a
functionally defined utility space.
The Mill is an architecture, not a single chip, and so we have been
concerned with creating an architectural space, not a single point. As a
commercial enterprise, our goal has been to stake out a portion of the
architecture space that is not already occupied by other architectures.
We have tried to place the Mill in the overall space such that, when
combined with utility functions typical of large markets, it will map to
higher value points than the offerings of our competitors. We call it a
"general purpose architecture" because we try to satisfy the centroid of
utility functions, at the cost of being less able for utility functions
that are further away.
The concept of a utility function is well-developed in economics,
although not commonly formalized in engineering design. For more on the
subject see
http://en.wikipedia.org/wiki/Utility_function
Ivan