marekjm / viuavm

Parallel virtual machine designed to reliably run massively concurrent programs
https://viuavm.org/
GNU General Public License v3.0
71 stars 11 forks source link

Very long instruction words #97

Closed marekjm closed 8 years ago

marekjm commented 8 years ago

Implement a VLIW architecture inside the VM. This will require major changes to the bytecode format, and assembly language syntax, but can lead to performance improvements.

Some more information about VLIW on IBM Research.

marekjm commented 8 years ago

Suggested syntax:

{ offset... } instruction operands...

where the { offset... } part is optional (empty offset list means that only one instruction is executed at a time). Many offsets can be specified. Assembler translates the local-instruction index offsets to absolute offsets.

Example code:

.function: main
    {1} istore 1 42
        istore 2 17
    {1} print 1
        iinc 2
    {1,2,3} print 2
        nop
        izero 1
        izero 0
    end
.end
marekjm commented 8 years ago

Closing due to changes in design. Implementing instruction level parallelism put on hold until some undefined moment in the future.