Skip to content

LLC Config: support concurrent and non-concurrent SPM/FLUSH settings#26

Open
flague wants to merge 1 commit intopulp-platform:masterfrom
flague:fg/dev-llc-config
Open

LLC Config: support concurrent and non-concurrent SPM/FLUSH settings#26
flague wants to merge 1 commit intopulp-platform:masterfrom
flague:fg/dev-llc-config

Conversation

@flague
Copy link

@flague flague commented Sep 13, 2025

Bug Description

The current version of the LLC config module causes the FSM to remain stuck when writing only the FLUSH register and committing its value (e.g. LLC is currently configured with SPM=0x03, and a flush is sent on all ways).

This is due to an incorrect assignment of the cfg_o.flushed, in the FsmInitState state of the FSM. cfg_o.flushed is updated taking into account only the cfg_i.spm register value. This causes the flush to be repeated infinite times on some ways.

Proposed Solution

The provided solution ensures that in the above described scenario, the cfg_o.flushed is correctly updated at the beginning of each way-flush.
Furthermore, it ensures that when no ways have to be flushed (to_flush_d =0), the cfg.flushed register is correctly update with the new SPM configuration.

Test Cases

The solution provided has been tested in the following cases:

  1. LLC with a certain SPM register conf committed: Flush an arbitrary number of ways:
    a. If the ways to be flushed are already in SPM, they won’t be flushed and cfg.flushed register will maintain the old SPM configuration.
    b. If some of the ways to be flushed are not in SPM, they will be flushed, and, at the end of the process, in FsmEndFlush state, cfg.flushed will be restored with the current SPM configuration. This works both for overlapping and non-overlapping SPM and FLUSH ways.
  2. LLC with a certain SPM conf committed: concurrent write to SPM and FLUSH.

A series of corner cases, even though not exhaustive, for non-overlapping, partially overlapping and completely overlapping configs have been tested.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant