Skip to main content
. 2022 Feb 10;12(2):185–195. doi: 10.1007/s13534-022-00217-z

Table 2.

The instruction set of the designed neural network processor

Instruction type Instruction Function
Integer computation add_r $s1 $s2 $dst RF[$dst] = RF[$s1] + RF[$s2]
sub_r $s1 $s2 $dst RF[$dst] = RF[$s1] - RF[$s2]
mult_r $s1 $s2 $dst RF[$dst] = RF[$s1] × RF[$s2]
addi_r $s1 Simm $dst RF[$dst] = RF[$s1] + SignExt[imm]
subi_r $s1 Simm $dst RF[$dst] = RF[$s1] - SignExt[imm]
muli_r $s1 Simm $dst RF[$dst] = RF[$s1] × SignExt[imm]
Fixed-point computation add_e $s1 $s2 DM[$s1] + DM[$s2]
sub_e $s1 $s2 DM[$s1] - DM[$s2]
mult_e $s1 $s2 DM[$s1] × DM[$s2]
addi_e $s1 $s2 DM[$s1] + FPSignExt[imm]
subi_e $s1 $s2 DM[$s1] - FPSignExt[imm]
muli_e $s1 $s2 DM[$s1] × FPSignExt[imm]
wr_alu $s1 DM[$s1] = alu_result
wr_acf1 $s1 $s2 DM[$s1] = DM[$s1] = ACF(alu_result, DM[$s2])
wr_acf2 $s1 $s2 DM[$s1] = DM[$s1] = ACF(acc_result, DM[$s2])
wr_acc $s1 $s2 DM[$s1] = DM[$s1] = acc_result
rst_acc Reset ALU accumulator to zero
Setup iset_acf code Set activation function to sigmoid, tanh, or ReLU
sw_imm Swap ALU inputs
done Assert processor done flag for 1 clock cycle
rd_dm $s1 Read DM[$s1] and write to processor output port
Control beq $s1 $s2 offset Branch to PC+offset if RF[$s1] == RF[$s2]
bneq $s1 $s2 offset Branch to PC+offset if RF[$s1] != RF[$s2]
jump jump_address PC = jump_address
jump_reg $s1 RA = PC+1; PC = RF[$s1]
jump_return PC = RA
nop No operation