Skip to content

Reduce Extra Cycle Latency of Pipeline Calls #49

@dzagieboylo

Description

@dzagieboylo

Currently, when you call a different PDL pipeline, this translates into enqueuing onto an input FIFO, and getting the response requires dequeuing from an output FIFO.

This means, if you make a request in cycle 1 the minimum cycle number when you can use the response as a client is cycle 3
(enq to input on 1, enq to out on 2, deq from out on 3).

We'd really like this minimum latency to come down 1 cycle -> calling PDL pipelines can take a long time but the minimum time should be a single cycle.

We need to pick a solution that doesn't impact how looping pipelines (i.e. that send data to themselves) works.

Options

  1. input "FIFO" can be read on the same cycle (i.e., bypass queue in BSV library terms)
  2. output "FIFO" can be read on the same cycle

I prefer (1), except this makes calling "recursively" different from calling out to different pipelines (we don't want recursive calls to execute the first stage in the same cycle as the call)

Metadata

Metadata

Assignees

No one assigned

    Labels

    code generationRelated to Generating RTL CodeenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions