Each S2 instruction can be breakdown in to "micro step". This is called register-transfer-level. It describes how data is flow from one register to other. This level of description is useful to understand the "timing" of the instruction execution. How long each instruction will take can be derived from this description (with some additional information).
<Figure S2 microarchitecture>
ld r1 ads ir_ads -> MAR, Mread, x:r1, r:min,
Rwriteld r1 @10 ads Rread, x:r2, c:#n, alu(add), m:alu_out,
-> MAR Mread, r:min, rno:r1, Rwriteld r1 +r2 r3 Rread, x:r2, y:r3, c:y, alu(add),
m:alu_out, -> MAR Mread, r:min, rno:r1, Rwritest r1 ads mads:ir_ads, -> MAR Rread, x:r1, Mwritest r1 @10 r2 Rread, x:r2, c:#n, alu(add),
mads:alu_out, -> MAR Rread, x:r1, Mwriteadd r1 r2 r3 Rread, x:r2, y:r3, c:y, alu(add), r:alu_out, rno:r1, Rwriteadd r1 r2 #n Rread, x:r2, c:#n, alu(add), r:alu_out, rno:r1, Rwrite
<to be continue>
last update 3 March 2015