Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

[rtl] add generic cache module (not used yet) #842

Merged
merged 11 commits into from
Mar 9, 2024
Merged

Conversation

stnolting
Copy link
Owner

This PR adds a new generic cache module that will might replace the I- and D-cache modules. Right now, this new cache module is not used at all by the default processor setup.

Cache specs:

  • direct-mapped, configurable block size ("cache lines"), configurable number of blocks
  • write-back strategy: write back dirty cache blocks when the block is replaced
  • write-allocate: a write miss will load the entire block from memory
  • supports direct (uncached) memory accesses

stnolting added 10 commits March 4, 2024 22:02
⚠️ work in progress (but synthesis and simulation looks good)
the sim target can be used to simulate "any" configuration (when the default testbench is adjusted) and maybe APP_IMG is not used at all
they take too much time (clearing the caches); fence[.i] instructions are tested implicitly by other test cases
- no fence request via direct access port
- add UC_ENABLE to enable/disable direct/uncached accesses
can cause unresolvable aliasing
@stnolting stnolting added HW Hardware-related optimization Make things faster, smaller and more efficient labels Mar 9, 2024
@stnolting stnolting self-assigned this Mar 9, 2024
@stnolting stnolting marked this pull request as ready for review March 9, 2024 06:58
@stnolting stnolting merged commit a2bc846 into main Mar 9, 2024
10 checks passed
@stnolting stnolting deleted the generic_cache branch March 9, 2024 09:16
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
HW Hardware-related optimization Make things faster, smaller and more efficient
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant