[Haskell-cafe] CPU with Haskell support
Joachim Durchholz
jo at durchholz.org
Wed Jan 20 07:51:23 UTC 2016
Am 19.01.2016 um 23:12 schrieb Henning Thielemann:
>
> Fortunately, there are
> processors that are designed for custom instruction set extensions:
> https://en.wikipedia.org/wiki/Xtensa
Unfortunately, the WP article does not say anything that couldn't be
said about, say, an ARM core. Other than that Xtensa core being some
VLIW design.
> Would it be sensible to create a processor based on such a design?
Very, very unlikely, for multiple reasons.
Special-purpose CPUs have been built, most notably for LISP, less
notably for Java, and probably for other purposes that I haven't heard of.
Invariably, their architectural advantages were obsoleted by economy of
scale: Mainstream CPUs are being produced in such huge numbers that
Intel etc. could affort more engineers to optimize every nook and
cranny, more engineers to optimize the structure downscaling, and larger
fabs that could do more chips on more one-time expensive but per-piece
cheap equipment, and in the end, the special-purpose chips were slower
and more expensive. It's an extremely strong competition you are facing
if you try this.
Also, it is very easy to misidentify the actual bottlenecks and make
instructions for the wrong ones.
If caching is the main bottleneck (which it usually is), no amount of
CPU improvement will help you and you'll simply need a larger cache. Or,
probably, a compiler that knows enough about the program and its data
flow to arrange the data in a cache-line-friendly fashion.
I do not think this is going to be a long-term problem though. Pure
languages have huge advantages for fine-grained parallel processing, and
CPU technology is pushing towards multiple cores, so that's a natural
match. As pure languages come into more widespread use, the engineers at
Intel, AMD etc. will look at what the pure languages need, and add
optimizations for these.
Just my 2 cents.
Jo
More information about the Haskell-Cafe
mailing list