Skip to content

[Handshake] Adding completion signals to store operations #191

@rpirayadi

Description

@rpirayadi

Currently, the handshake::LSQStoreOp and handshake::MCStoreOp do not provide a completion signal. More precisely, they produce only two results (i.e. address and data value which are fed to handshake::LSQOp and handshake::MemoryControllerOp recpectively).
Generally speaking, for keeping track of memory consistency, it is nice to have a completion signal. Moreover, I would like to sequentialize load and stores without using the LSQ, so I need the store to produce this signal. This way, I can make sure the successor doesn't start before the store finishes.

The challenges I believe exist for adding this signal are listed below.

  1. The completion signal should be produced in handshake::LSQOp and handshake::MemoryControllerOp for every store connected to them.
  2. There should be a sink inserted for the output of store operation anywhere this signal is not used (which is probably everywhere except my use case).
  3. The new signal should also be taken into consideration when translating handshake to HW.

I would appreciate any insights related to the procedure of adding such signal to store operations from @lucas-rami or anyone else who has a comment.

  • small side note: As mentioned here handshake::LSQStoreOp and handshake::MCStoreOp may be merged into one handshaek::StoreOp and the signal could be add to this operation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions