Opisane przesłaniami rejestrowymi.
Rozkaz komputera winDLX jest pięciofazowy. Najpierw rozkaz jest pobierany (Instruction Fetch), następnie dekodowany (Decode), wykonywany (EXecute), następują ew. odwołania do pamięci (MEM) i w ostatniej fazie zakończenie cyklu i powrót na początek układu (Write Back).
Instrucion Fetch :
IR <- MEM[PC] ->do rejestru rozkazu ładowany jest z pamięci rozkaz o adresie znajdującym się w liczniku rozkazów
NPC <- NP + 4 ->następnie licznik rozkazów zwiększany jest o 4(tyle wynosi długość słowa dla tej architektury), by w następnym cyklu móc pobrać kolejny rozkaz
Decode :
A <- Regs[IR6..10]
B<-Regs[IR11..15]
Imm <- ((IR16)16##IR16..31)
Do odpowiednich rejestrów przesyłane są odpowiednie fragmenty rozkazu, które będą potrzebne w późniejszych fazach cyklu
EXecute :
MEMory : ALUOutput <-A + Imm
Register-Register : ALUOutput <- A op B
Register-Immediate : ALUOutput <- A op Imm
Branch : ALUOutput <- NPC + Imm
cond <- A op 0
Fragmenty zdekodowanych rozkazów są wykorzystywane do ich wykonywania, jak widać dla różnych rozkazów inaczej wygląda ścieżka przepływu.
Memory :
LMD <- Mem[ALUOutput] lub Mem[ALUOutput] <- B
Ten fragment występuje tylko dla odwoływań do pamięci (LOAD/STORE) a także dla skoków (branche) :
if (cond) PC <- ALUOutput
else PC <- NPC
Write Back :
Register-Register : REGS[IR16..20]<-ALUOutput
Register-Immediate : REGS[IR11..15]<-ALUOutput
Load Instruction : REGS[IR11..15]<-LMD
Celem jest jeden z dwóch fragmentów, jest określany na podstawie kodu operacji rozkazu (OPCode).