[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