Skip to content

Performance Bug in Snitch decoder #195

@mbertuletti

Description

@mbertuletti

The write_rd signal is used to tag instructions that write the destination register rd in the same cycle where they are decoded. The uses_rd signal is used to generically tag an instruction that will use the destination register at some point.

  • In the decoder assignment write_rd is always asserted and uses_rd=write_rd.
  • S-instructions do not use rd, but the field 11:7 of the instruction is always assigned to the address of the destination register and uses_rd is always asserted.
  • If by chance the field 11:7 corresponds to a register marked in the scoreboard the instruction stalls the core.

The uses_rd signal must be explicitly assigned in instructions that do not use rd.
https://github.com/pulp-platform/mempool/commit/9c5690622f3fc493a5e42eff9eb655ff85baf758

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions