[erlang-questions] How small could an Erlang emulator be?

Kenneth Lundin <>
Tue Mar 13 11:11:12 CET 2007


Hi,

Just like the Cell processor this processor consist of one general
purpose processor which can run a normal operating system like Linux,
Vxworks, OSE etc.
The microkernels around this general purpose processor does not have
program-memory and instruction set which fits for running an operating
system and applications on top of that AFAIK.

The current Erlang emulator is built as an user space application on
top of an operating system. How small footprint that implementation or
a similar implementation can have is not very interesting in this case
I think.

If is should be possible to run Erlang on the microkernels we are
talking about a completely new Erlang VM with nothing in common with
the one we have to day.
I even doubt if it is possible in practice to run it in a very limited
environment like that.
Another approach that is realistic is to run the Erlang VM and an
Operating system
on the general purpose processor and having some kind of linked in
driver which supports execution of special code on the microkernels. I
don't think we are talking about Erlang code executing there.

So if we are interested in the minimal footprint of todays
implementation (or something derived from that) I think it is the
memory limitations of the general purpose processor (ARM) that is
interesting.

/Regards Kenneth

On 3/12/07, ok <> wrote:
> 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?
>
>
> _______________________________________________
> erlang-questions mailing list
> 
> http://www.erlang.org/mailman/listinfo/erlang-questions
>



More information about the erlang-questions mailing list