| |
Line 1: | Line 1: |
− | <p style="font-size: 12pt;"> | + | The Mill is a new general purpose processor architecture. |
− | [[#0|0]]
| + | It intends to run general purpose code at <abbr title="Digital Signal Processor">DSP</abbr> speed and power requirements. |
− | [[#a|a]]
| + | A number of new innovations and established old technologies used in a new context need to be employed to achieve this goal. |
− | [[#b|b]]
| + | |
− | [[#c|c]]
| + | |
− | [[#d|d]]
| + | |
− | [[#e|e]]
| + | |
− | [[#f|f]]
| + | |
− | [[#g|g]]
| + | |
− | [[#h|h]]
| + | |
− | [[#i|i]]
| + | |
− | [[#j|j]]
| + | |
− | [[#k|k]]
| + | |
− | [[#l|l]]
| + | |
− | [[#m|m]]
| + | |
− | [[#n|n]]
| + | |
− | [[#o|o]]
| + | |
− | [[#p|p]]
| + | |
− | [[#q|q]]
| + | |
− | [[#r|r]]
| + | |
− | [[#s|s]]
| + | |
− | [[#t|t]]
| + | |
− | [[#u|u]]
| + | |
− | [[#v|v]]
| + | |
− | [[#w|w]]
| + | |
− | [[#x|x]]
| + | |
− | [[#y|y]]
| + | |
− | [[#z|z]]
| + | |
− | </p> | + | |
| | | |
− | <div style="font-size: 10pt; font-weight: bold;" id="0">0</div> | + | <table style="width: 50%; padding: 2% 5%; font-size: 12pt"> |
− | | + | <tr><td>'''[[Architecture]]'''</td><td>'''[[Infrastructure]]'''</td></tr> |
− | <div style="font-size: 10pt; font-weight: bold;" id="a">a</div>
| + | <tr><td>[[Belt]]</td><td>[[Synthesis]]</td></tr> |
− | | + | <tr><td>[[Encoding]]</td><td>[[Compiler]]</td></tr> |
− | <div style="font-size: 10pt; font-weight: bold;" id="b">b</div> | + | <tr><td>[[Memory]]</td><td>[[Specializer]]</td></tr> |
− | [[Belt]] – provides the functionality of general purpose registers<br /> | + | <tr><td>[[Metadata]]</td><td>[[Debugger]]</td></tr> |
− | [[Belt Slot]] – the read only data source for machine operations<br />
| + | <tr><td>[[Protection]]</td><td>[[Simulator]]</td></tr> |
− | [[Bundle]] – a collection of instructions that get fetched from memory together<br /> | + | <tr><td>[[Prediction]]</td><td>[[Specification]]</td></tr> |
− | | + | <tr><td>[[Execution]]</td><td></td></tr> |
− | <div style="font-size: 10pt; font-weight: bold;" id="c">c</div>
| + | <tr><td>[[Instruction Set]]</td><td></td></tr> |
− | | + | </table> |
− | <div style="font-size: 10pt; font-weight: bold;" id="d">d</div> | + | |
− | | + | |
− | <div style="font-size: 10pt; font-weight: bold;" id="e">e</div>
| + | |
− | [[EBB]] – Extended Basic Block<br /> | + | |
− | [[Exit]] – a point where the instruction stream can leave the EBB<br /> | + | |
− | | + | |
− | <div style="font-size: 10pt; font-weight: bold;" id="f">f</div>
| + | |
− | | + | |
− | <div style="font-size: 10pt; font-weight: bold;" id="g">g</div> | + | |
− | | + | |
− | <div style="font-size: 10pt; font-weight: bold;" id="h">h</div>
| + | |
− | | + | |
− | <div style="font-size: 10pt; font-weight: bold;" id="i">i</div>
| + | |
− | [[Implicit Zero]] - uninitialized memory loads are implicitly zero<br /> | + | |
− | [[Instruction]] – a collection of operations that get executed together<br />
| + | |
− | [[Instruction Stream]] – a sequence of instructions, the Mill has 2 working in parallel<br /> | + | |
− | | + | |
− | <div style="font-size: 10pt; font-weight: bold;" id="j">j</div>
| + | |
− | | + | |
− | <div style="font-size: 10pt; font-weight: bold;" id="k">k</div> | + | |
− | | + | |
− | <div style="font-size: 10pt; font-weight: bold;" id="l">l</div>
| + | |
− | | + | |
− | <div style="font-size: 10pt; font-weight: bold;" id="m">m</div>
| + | |
− | [[Metadata]] – tags attached to belt slots that describe the data in it<br /> | + | |
− | | + | |
− | <div style="font-size: 10pt; font-weight: bold;" id="n">n</div> | + | |
− | [[None]] – undefined data in a slot that is silently ignored by operations<br /> | + | |
− | [[NaR]] – Not a Result, undefined data that traps when used in certain operations<br />
| + | |
− | | + | |
− | <div style="font-size: 10pt; font-weight: bold;" id="o">o</div> | + | |
− | [[Operation]] – the most basic semantically defined hardware unit of execution<br /> | + | |
− | | + | |
− | <div style="font-size: 10pt; font-weight: bold;" id="p">p</div> | + | |
− | [[Phase]] - sequenced execution of different operations within one instruction<br /> | + | |
− | [[PLB]] – Protection Lookaside Buffer<br />
| + | |
− | [[Portal]] – a cross turf call destination<br />
| + | |
− | [[Protection Region]] – specified continuous memory region with attached permissions<br /> | + | |
− | | + | |
− | <div style="font-size: 10pt; font-weight: bold;" id="q">q</div> | + | |
− | | + | |
− | <div style="font-size: 10pt; font-weight: bold;" id="r">r</div>
| + | |
− | [[Replay]] - the way the hardware restores machine state after being interrupted<br /> | + | |
− | | + | |
− | <div style="font-size: 10pt; font-weight: bold;" id="s">s</div>
| + | |
− | [[SAS]] – Single Address Space<br />
| + | |
− | [[Service]] – a stateful call interface that can cross protection barriers<br />
| + | |
− | [[Specializer]] – turns general mill assembly into hardware specific machine instructions<br /> | + | |
− | [[Spiller]] – securely manages temporary memory used by certain operations in hardware<br /> | + | |
− | [[Stacklet]] – hardware managed memory line used in fragmented stacks<br />
| + | |
− | | + | |
− | <div style="font-size: 10pt; font-weight: bold;" id="t">t</div> | + | |
− | [[TLB]] – Translation Lookaside Buffer<br /> | + | |
− | [[Turf]] – memory protection domain on the Mill, a collection of regions<br />
| + | |
− | | + | |
− | <div style="font-size: 10pt; font-weight: bold;" id="u">u</div> | + | |
− | <div style="font-size: 10pt; font-weight: bold;" id="v">v</div> | + | |
− | <div style="font-size: 10pt; font-weight: bold;" id="w">w</div>
| + | |
− | <div style="font-size: 10pt; font-weight: bold;" id="x">x</div> | + | |
− | <div style="font-size: 10pt; font-weight: bold;" id="y">y</div>
| + | |
− | <div style="font-size: 10pt; font-weight: bold;" id="z">z</div>
| + | |
The Mill is a new general purpose processor architecture.
It intends to run general purpose code at DSP speed and power requirements.
A number of new innovations and established old technologies used in a new context need to be employed to achieve this goal.