01.12.2012 Views

Architecture of Computing Systems (Lecture Notes in Computer ...

Architecture of Computing Systems (Lecture Notes in Computer ...

Architecture of Computing Systems (Lecture Notes in Computer ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

28 T.B. Preußer, P. Reichel, and R.G. Spallek<br />

Memory Management Unit<br />

Memory<br />

Control<br />

Unit<br />

Mark Management<br />

Mark<br />

Control<br />

Memory Access Management<br />

Reference<br />

Translation Buffer<br />

Scan<br />

Eng<strong>in</strong>e<br />

Memory<br />

Mark<br />

FIFO<br />

Allocation<br />

Eng<strong>in</strong>e<br />

Wishbone<br />

Bridge<br />

GC Bus<br />

Control<br />

Mark<br />

Table<br />

WriteBarrier<br />

SHAP Core<br />

Root Memory<br />

Table Port<br />

GC Bus<br />

(R<strong>in</strong>g)<br />

Mutator<br />

Ports<br />

System Bus<br />

Fig. 1. Memory Management Unit: Structural Overview<br />

creation and field access operations. It is further to support weak references<br />

as def<strong>in</strong>ed for the CLDC 1.1. F<strong>in</strong>ally, it should be capable to serve multiple<br />

mutators.<br />

The GC task obviously grows more complex with the support <strong>of</strong> weak references.<br />

In order to keep its implementation ma<strong>in</strong>ta<strong>in</strong>able and extensible, the FSM<br />

implementation <strong>of</strong> SHAP’s former memory manager [14] was abolished. Instead,<br />

several options for s<strong>of</strong>tware-programmed solutions were explored. The obvious<br />

solution to simply duplicate SHAP itself was soon dismissed as its high-level<br />

Java programm<strong>in</strong>g greatly relies on the memory object abstraction that first<br />

needs to be established by this component. The cont<strong>in</strong>uous access to low-level<br />

memory would further require a unnatural if not abusive use <strong>of</strong> the language.<br />

Last but not least, the microcode implementation used by SHAP would establish<br />

a significant overhead when compared to the still rather compact memory<br />

management task. A reduced variant duplicat<strong>in</strong>g only the core microcode eng<strong>in</strong>e,<br />

f<strong>in</strong>ally, disqualifies due to the low achieved ga<strong>in</strong> <strong>in</strong> abstraction level. Thus,<br />

the search was narrowed to compact RISC cores with a functional C toolcha<strong>in</strong>,<br />

specifically, to the OpenFIRE [15] and the ZPU [16].<br />

Both <strong>of</strong> these cores are freely available but quite contrary <strong>in</strong> philosophy. While<br />

the OpenFIRE is a full-fledged RISC eng<strong>in</strong>e, the ZPU takes a very frugal approach.<br />

ItturnedoutthattheZPUwithafewreplacements <strong>of</strong> emulated by implemented<br />

<strong>in</strong>structions was well-sufficient for the task <strong>of</strong> memory management. It further

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!