[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.

More information about the Haskell-Cafe mailing list