CIMFlow LogoCIMFlow

Instruction Design

CIMFlow's 32-bit instruction format and register organization

CIMFlow uses a unified 32-bit instruction format with specialized encodings for different operation types: compute, communication, and control flow.


Instruction Format

All instructions are 32 bits with a 6-bit opcode. The remaining 26 bits vary by encoding type. See Instruction Set for the complete instruction list.

Each instruction contains:

  • Opcode (6 bits): Operation identifier
  • Operand fields (5 bits each): Register addresses (rs, rt, rd, re, rf)
  • Tail field (variable width): Function code, flags, or immediate value
Type31:2625:2120:1615:1110:65:0
Ropcodersrtrdre/rftail
I-Aopcodersrt/rdrd/functimm
I-Bopcodersrtimm
I-Copcoderdimm
Jopcodeimm

Instruction Categories

Compute
CIM matrix ops, vector element-wise, scalar arithmetic
Communication
Inter-core data movement, memory load/store
Control Flow
Branches, loops, synchronization barriers

Register Files

General Register File (GRF)

32 registers (r0-r31) encoded with 5-bit addresses for arithmetic, address calculation, and temporary storage.

Special Register File (SRF)

32 registers split between CIM unit (IDs 0-15) for array configuration and Vector unit (IDs 16-31) for activation and reduction parameters. See Register Files for the complete register map.

Last updated on