Difference between revisions of "Memory"

From Mill Computing Wiki
Jump to: navigation, search
(create)
 
Line 27:Line 27:
 
</imagemap>
 
</imagemap>
 
<br />
 
<br />
 +
 +
The Mill architecture is a 64bit architecture, there are no 32bit Mills. For this reason it is possible and indeed prudent to adopt a single address space (SAS) memory model. All threads and processes share the same address space. Any address points to the same location for every process. To do this securely and efficiently the [[Protection|memory access protection]] and address translation have been split into two separate modules, whereas on conventional architectures those two tasks are conflated into one.
  
 
As can be seen from this rough system chart, There is a combined L2 cache, although some low level implementations may choose to omit this for space and energy reasons. The Mill has facilities that make an L2 cache less critical.<br />
 
As can be seen from this rough system chart, There is a combined L2 cache, although some low level implementations may choose to omit this for space and energy reasons. The Mill has facilities that make an L2 cache less critical.<br />
 
L1 caches are separate for instructions and data already, and even more, they are already separate for [[ExuCore]] instrucions and [[FlowCore]] instructions. Smaller, more specialized caches can be made faster and more efficient in many regards, but chiefly via shorter signal paths.<br />
 
L1 caches are separate for instructions and data already, and even more, they are already separate for [[ExuCore]] instrucions and [[FlowCore]] instructions. Smaller, more specialized caches can be made faster and more efficient in many regards, but chiefly via shorter signal paths.<br />
 
The D$1 data cache feeds into the retire stations with [[Instruction Set/Load|load instructions]] and recieves the values from the [[Instruction Set/Store|Store instructions]].
 
The D$1 data cache feeds into the retire stations with [[Instruction Set/Load|load instructions]] and recieves the values from the [[Instruction Set/Store|Store instructions]].
 +
 +
== Address Translation ==
 +
 +
=== Reserved Address Space ===
 +
 +
== Virtual Zero ==
 +
 +
== Caches ==

Revision as of 05:36, 30 July 2014

A lot of the power and performance gains of the Mill, but also many of its security improvements over conventional architecures come from the various facilities of the memory management. Most subsystems have their own dedicated pages. This page is an overview.

Hierarchy


Mill ArchitectureStreamerPrefetchPredictionProtectionProtectionDecodeMetadataMetadataBeltBelt#Belt Position Data FormatExuCoreFlowCoreRegistersScratchpadSpillerMemory


The Mill architecture is a 64bit architecture, there are no 32bit Mills. For this reason it is possible and indeed prudent to adopt a single address space (SAS) memory model. All threads and processes share the same address space. Any address points to the same location for every process. To do this securely and efficiently the memory access protection and address translation have been split into two separate modules, whereas on conventional architectures those two tasks are conflated into one.

As can be seen from this rough system chart, There is a combined L2 cache, although some low level implementations may choose to omit this for space and energy reasons. The Mill has facilities that make an L2 cache less critical.
L1 caches are separate for instructions and data already, and even more, they are already separate for ExuCore instrucions and FlowCore instructions. Smaller, more specialized caches can be made faster and more efficient in many regards, but chiefly via shorter signal paths.
The D$1 data cache feeds into the retire stations with load instructions and recieves the values from the Store instructions.

Address Translation

Reserved Address Space

Virtual Zero

Caches