Glossary
0 a b c d e f g h i j k l m n o p q r s t u v w x y z
Abstract Code – general data flow code for the Mill architecture, distribution format
Abstract Assembly – general data flow code for the Mill architecture in human readable form, mainly used as compiler output
Belt – provides the functionality of general purpose registers
Belt Position/Belt Location – the read only data source for machine operations
Bundle – a collection of instructions that get fetched from memory together
Concrete Code – specialized executable code for a specific Mill processor
Concrete Assembly – specialized executable code for a specific Mill processor in human readable form, mainly used for testing and in the debugger
Decode – turning instruciton stream bit patters into requests to functional units
EBB - extended basic block, a batch or sequence of instructions with one entry point and one or more exit points
Encoding – the semantic bit patterns representing operations
Exit – a point where the instruction stream can leave the EBB
Exit Table - a hardware hash table containing exit point usage for EBBs, used to predict control flow
ExuCore - the collection of functional units and facilities serving operations from the exu instruction stream
FlowCore - the collection of functional units and facilities serving operations from the flow instruction stream
Functional Unit - the hardware module that provides the functionality to perform an operation
Ganging - combining more than two belt operands in more than one slot to perform a more complex operation
Implicit Zero - loads from new stack frames are implicitly zero
Instruction – a collection of operations that get executed together
Instruction Stream – a sequence of instructions, the Mill has 2 working in parallel
Metadata – tags attached to belt slots that describe the data in it
None – undefined data in a slot that is silently ignored by operations
NaR – Not a Result, undefined data that traps when used in certain operations
Operation – the most basic semantically defined hardware unit of execution
Phase, Phasing - sequenced execution of different operations within one instruction
PLB - on chip cache for looking up protection regions for a virtual address
Pipelining - arrangeing operations in the instruction stream in such a way as to maximize functional unit utilization
Portal - a gateway between different protection domains or turfs a thread can pass through
PLB – Protection Lookaside Buffer
Portal – a cross turf call destination
Protection Region – specified continuous memory region with attached permissions
Replay - the way the hardware restores machine state after being interrupted
Region Table - the memory backing for the PLB
Scratchpad – Temporary buffer for operands from the belt
SAS – Single Address Space
Service – a stateful call interface that can cross protection barriers
Slot - a data path pipeline with two inputs providing one or more functional units to perform operations
Specializer – turns general/abstract Mill code into concrete hardware specific machine instructions
Speculation – computing several paths in branches in parallel only to later throw away the unneeded results
Spiller – securely manages temporary memory used by certain operations in hardware
Stacklet – hardware managed memory line used in fragmented stacks
Stacklet Info Block – preserves stacklet state for a thread across portal calls
Thread - a contained and IDd flow of execution
TLB – Translation Lookaside Buffer
Turf – memory protection domain on the Mill, a collection of regions
Virtual Zero - loads from all uninitialized memory yield zero
WKR, Well Known Region – protection regions not defined in the PLB but in registers, automatically managed by hardware