17-01-2013, 10:07 AM
ECOMP - an Erlang Processor
ECOMP.ppt (Size: 78.5 KB / Downloads: 42)
What Is an Erlang Processor
A (micro) processor dedicated for execution of Erlang.
Executes compiled Erlang code.
Why a Dedicated Erlang Processor
Increased use of Erlang
Eliminating Performance and Power Dissipations Concerns
Low Power Important in Embedded Control
Simplify use of Erlang for Embedded Control
Eliminate cost for Real-Time Operating System
Provide run-time functionality
Power Dissipation in Processors
Factors Increasing Power Dissipation
Increasing functionality
Less efficient code
Less efficient languages
Increasing speed requirements
Factors Decreasing Power Dissipation
Lower supply voltages
Scaled down mfg. processes
Increased level of integration
Instruction Set Architecture
Optimized for Execution of Erlang Code
Function calls, return from function
Argument transfer
list operations
Register file management
Clean register file upon start of new function
No read/write-back of variables needed
Processor Architecture
Much in common with conven-tional architectures
RISC
LIW
Harvard
Pipelined (3-5 stages)
No complex (advanced) features
Not super-scalar
No OOO-execution or speculative execution
No branch-prediction (but will be added)
Run-Time Functionality
Switch, Spawn, Send, Message-queue handling, Catch/Throw, Time-out
External io, Atom-handling, Registered processes
Implemented in machine code
Built-ins (e.g., element)
Standard Libraries (e.g. lists, ETS)
Performance
About 3-4 lines of machine code per Erlang line
An approximate speed-up of a factor 30 can be seen
measured per use of clock cycles
Tested a larger example
Call Control. 16 KLOC. (714 k dump)
Increasing performance while decreasing power with more than order of a magnitude
Near Future Activities
Compiler Improvements
Product integration's
Distributed control node, e.g., multi-processor execution.
Full-Scale Version.
Multi-threaded Processor.
Prepare for Silicon Implementation.