S2 Micro Step

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).

s2 micro step

<Figure S2 microarchitecture>


Read/Write from Memory

ld r1 ads
      ir_ads -> MAR, Mread, x:r1, r:min, Rwrite
ld r1 @10 ads
      Rread, x:r2, c:#n, alu(add), m:alu_out, -> MAR
      Mread, r:min, rno:r1, Rwrite
ld r1 +r2 r3
      Rread, x:r2, y:r3, c:y, alu(add), m:alu_out, -> MAR
      Mread, r:min, rno:r1, Rwrite
st r1 ads
      mads:ir_ads, -> MAR
      Rread, x:r1, Mwrite
st r1 @10 r2
      Rread, x:r2, c:#n, alu(add), mads:alu_out, -> MAR
      Rread, x:r1, Mwrite

Arithmetic Logic operations

add r1 r2 r3
     Rread, x:r2, y:r3, c:y, alu(add),
     r:alu_out, rno:r1, Rwrite
add r1 r2 #n
     Rread, x:r2, c:#n, alu(add),
     r:alu_out, rno:r1, Rwrite

<to be continue>

last update 3 March 2015