Skip to content

Performance Bug in Snitch decoder #195

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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions