Skip to content

link latency / jitter simulation #6

@charlesdaniels

Description

@charlesdaniels

It should be possible to simulate links with a particular latency and jitter. Links should have an ordered queue used to store the flits that are in-flight. Additionally, flits should have a time to arrival counter which can be used to simulate an arbitrary additional delay. Consider the following example, where 3,1,1,2 would indicate that the head of the queue (next arriving flit) has a delay of 2 cycles, the second from the head has a delay of 1 cycle, and the tail a delay of 3 cycles. An X in the dequeued column indicates that the head of the queue is popped off on that cycle.

cycle queue state (head →) dequeued
n 3,1,1,2
n+1 3,1,1,1 X
n+2 3,1,1 X
n+3 3,1 X
n+4 3
n+5 2
n+6 1 X
n+7

Additionally, these features should be exposed via the TCL scripting interface. I propose that the route command should be extended to add an optional argument for the delay field, with the default being 1. This would allow the user to use any arbitrary TCL procedure to define the additional delay induced at any given link.

Note that the delay should be cleared in between hops (i.e. setting a flit's delay before it traverses some particular link has no bearing on it's delay while traversing any other link before or after).

Metadata

Metadata

Assignees

No one assigned

    Labels

    featurenew features that does not exist currentlyhigh priority

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions