[erlang-questions] How small could an Erlang emulator be?
ok
ok@REDACTED
Mon Mar 12 06:49:04 CET 2007
I spent last weekend reading the manual for Intel's IXP 1200 series
Network processor.
A seriously weird but interesting machine. It's said to be "low-
cost", but heaven only knows what
that means. I have spent the last 45 minutes searching the web for a
price, to no avail.
These are chips with
- an ARM processor (32-bit sort-of-RISC, rather nice, really)
- 6 "micro-engines", each of which is a 32-bit RISC-cum-
microprogrammable core (as in, memory
referencing is straightforward, but the gap between issuing a
request and the thing happening is
architecturally painfully visible), each having 4 hardware
contexts for very fast thread switch, and
- oodles of special-purpose stuff to interface to various buses and
interfaces.
How could you make parallel programming EASY on one of these things?
Simple: the same way you would make concurrency easy anywhere, use
Erlang.
But could you? The microengines have a 2 k-instruction control store
each (1 k-instruction in the
oldest models; the current IXP2xxx generation have 8 x 8-thread, 4 k-
instruction control stores).
The current Erlang VM (BEAM) and its emulator are aimed at some mix
of portability and speed.
Programming something like a network processor in Erlang would
require a very compact emulator,
which might not be so efficient.
Just out of idle curiosity, has anyone looked at the possibility of
Erlang on a network processor?
If you chucked out bignums and flonums, how small could an Erlang
emulator be?
More information about the erlang-questions
mailing list