Skip to content

Enable Full Out-Of-Order Execution #69

@dzagieboylo

Description

@dzagieboylo

We want to effectively allow instruction reordering at pipeline edges, which means reordering is associated with --- operators.
Then, we also need to re-establish the original order at some later point in the pipeline (a different --- boundary).

Tasks for this feature:

  • syntax that wraps a "re-order" region (i.e., a start and finish). Options are "block" syntax, or "start" and "end" statements. I tend to prefer the former. We want this to be associated with two edges between pipeline stages.
  • rethink existing "Out-of-order" parallel execution of branches in if statements. If these are inside of a "re-order" region, we could relax the in-order requirement part since they will get re-ordered correctly later (potentially).
  • runtime implementation of a re-order buffer which checks all of the necessary blocking conditions (i.e., block statements for each entry)
  • a pluggable issue scheduler that can take data from the instruction and order issue requests based on custom logic.

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