Dataflow Software Stack
032db78
Master Thesis of Mathijs Saey at the VUB
|
Dataflow Virtual Machine. More...
Namespaces | |
context | |
DVM Contexts. | |
contextMatcher | |
DVM context matcher. | |
dispatcher | |
DVM token dispatcher. | |
instruction | |
DVM instruction definitions. | |
memory | |
DVM instruction memory. | |
runtime | |
DVM runtime core. | |
scheduler | |
DVM instruction scheduler. | |
token | |
DVM Tagged tokens. | |
tokenizer | |
DVM token creator. | |
Functions | |
def | addOperationInstruction |
Add an operation instruction. More... | |
def | addConstant |
Add a constant instruction. More... | |
def | addSink |
Add a sink instruction. More... | |
def | addSwitch |
Create a switch instruction. More... | |
def | addContextChange |
Add a context change instruction. More... | |
def | addSplit |
Add a split instruction. More... | |
def | addContextRestore |
Add a context restore instruction. More... | |
def | addStopInstruction |
Add a stop instruction. More... | |
def | addDestination |
Add a destination to a given instruction. More... | |
def | addLiteral |
Add a literal to a given instruction. More... | |
def | start |
Start the execution cores. More... | |
def | addData |
Add an external token containing data. More... | |
def | addTrivial |
Add data to the core, that immediately adds a stop token containing data. More... | |
def | getPort |
Check the current port of the runtime. More... | |
def | getIn |
Return the amount of input the runtime requires. More... | |
def | setIn |
Set the amount of inputs that the runtime expects. More... | |
def | hasIn |
See if the runtime expects additional input. More... | |
Dataflow Virtual Machine.
This is the core of DVM. It contains the code that is necessary to execute the program in instruction memory.
This top level namespace also declares some convenience functions to control the instruction memory and runtime.
def core.addOperationInstruction | ( | op, | |
inputs | |||
) |
Add an operation instruction.
op | The operation of this instruction. |
inputs | The amount of inputs this instruction will accept. |
def core.addConstant | ( | value | ) |
Add a constant instruction.
value | The value the constant should return. |
def core.addSink | ( | ) |
Add a sink instruction.
def core.addSwitch | ( | dstList | ) |
Create a switch instruction.
dstList | The list of the possible destinations. |
def core.addContextChange | ( | binds, | |
restores, | |||
destSink, | |||
retSink | |||
) |
Add a context change instruction.
binds | The amount of tokens to bind to a new context. |
restores | The amount of tokens the context will produce before being deleted. |
destSink | The destination of the token after the context change. |
retSink | The destination of the token after the context restore. |
def core.addSplit | ( | binds, | |
dest, | |||
merge | |||
) |
Add a split instruction.
binds | The amount of inputs that the split will take. A split should always take at least one argument, which is the array that will be split. |
dest | The destination of the tokens after the context change. |
merge | The instruction that will recreate the array after the contextrestore. |
def core.addContextRestore | ( | ) |
Add a context restore instruction.
def core.addStopInstruction | ( | ) |
Add a stop instruction.
def core.addDestination | ( | srcKey, | |
srcPort, | |||
dstKey, | |||
dstPort | |||
) |
Add a destination to a given instruction.
This only works on instruction::OperationInstruction and on instruction::Sink
srcKey | The key of the from instruction. |
srcPort | The index of the from port. |
dstKey | The key of the destination instruction. |
dstPort | The index of the destination port. |
def core.addLiteral | ( | key, | |
port, | |||
val | |||
) |
Add a literal to a given instruction.
This only works on instruction::OperationInstruction and on instruction:ContextChangeInstruction
def core.start | ( | cores | ) |
Start the execution cores.
def core.addData | ( | data | ) |
Add an external token containing data.
def core.addTrivial | ( | data | ) |
Add data to the core, that immediately adds a stop token containing data.
This can be used if the program does not require any user input.
def core.getPort | ( | ) |
Check the current port of the runtime.
def core.getIn | ( | ) |
Return the amount of input the runtime requires.
def core.setIn | ( | i | ) |
Set the amount of inputs that the runtime expects.
def core.hasIn | ( | ) |
See if the runtime expects additional input.