Difference between revisions of "Encoding"

From Mill Computing Wiki
Jump to: navigation, search
(structure)
Line 3:Line 3:
 
== Semantics ==
 
== Semantics ==
  
== <span id="EBB"> Extended Basic Block </span> ==
+
=== <span id="EBB">Extended Basic Block</span> ===
Code on the Mill is organised into <abbr title="Extended Basic Block">EBB</abbr>s, i.e. batches of code with one entry point and one or more exit points.
+
Code on the Mill is organised into <abbr title="Extended Basic Block">EBB</abbr>s, i.e. batches of code with one entry point and one or more exit points. There is no implicit fallthrough in EBBs, the instruction flow can only leave them with an explicit branch, which means at least the last operation in every EBB is a branch.
 +
 
 +
=== <span id="instructions">Instructions and Operations and Bundles</span> ===
 +
The unusual encoding makes it necessary make clear distincitons between instructions and operations and bundles that are not really necessary on traditional machines. In the earliest <abbr title="Reduced Instructions Set Computer">RISC</abbr> architectures an instruction and an operation and a bundle are usually the same thing: a word size bundle of bits is retrieved from last instruction cache line and dropped into the decoder. There one instruction is retrieved and issued resulting in one operation being performed. On wide issue machines one instruction can contain several operations that are all issued together. Modern machines drop a bundle containing several instuctions at once into the decoder.
 +
 
 +
So, a bundle is the batch of memory that gets dropped into the decoder together.<br />
 +
An instruction is all the operations that get issued to the functional units together.<br />
 +
And an operation is the most basic piece of processing in a functional unit, an add or xor for example.
 +
 
 +
== Bit Format ==
 +
 
 +
== Rationale ==
 +
 
 +
 
 +
== Implementation ==
 +
 
 +
== Media ==
 +
[http://www.youtube.com/watch?v=LgLNyMAi-0I Presentation on the Encoding by Ivan Godard] - [http://millcomputing.com/blog/wp-content/uploads/2013/12/2013-07-11_mill_cpu_encoding_08.pptx Slides]

Revision as of 02:14, 25 July 2014

The Mill architecure employ a unique split stream instruction encoding that through being wide issue and very dense enables sustained decoding rates of over 30 operations per cycle. And it provides those unparalleled numbers, it does so at the fraction of the energy and transistor cost of mainstream variable instruction length instruction sets like x46.

Semantics

Extended Basic Block

Code on the Mill is organised into EBBs, i.e. batches of code with one entry point and one or more exit points. There is no implicit fallthrough in EBBs, the instruction flow can only leave them with an explicit branch, which means at least the last operation in every EBB is a branch.

Instructions and Operations and Bundles

The unusual encoding makes it necessary make clear distincitons between instructions and operations and bundles that are not really necessary on traditional machines. In the earliest RISC architectures an instruction and an operation and a bundle are usually the same thing: a word size bundle of bits is retrieved from last instruction cache line and dropped into the decoder. There one instruction is retrieved and issued resulting in one operation being performed. On wide issue machines one instruction can contain several operations that are all issued together. Modern machines drop a bundle containing several instuctions at once into the decoder.

So, a bundle is the batch of memory that gets dropped into the decoder together.
An instruction is all the operations that get issued to the functional units together.
And an operation is the most basic piece of processing in a functional unit, an add or xor for example.

Bit Format

Rationale

Implementation

Media

Presentation on the Encoding by Ivan Godard - Slides