Skip to content

Multi-group CachePool with coherence-free write-through private L1 cache - #24

Open
HHT1228 wants to merge 39 commits into
pulp-platform:dev/wt-l1from
HHT1228:hohung-multi-group
Open

Multi-group CachePool with coherence-free write-through private L1 cache#24
HHT1228 wants to merge 39 commits into
pulp-platform:dev/wt-l1from
HHT1228:hohung-multi-group

Conversation

@HHT1228

@HHT1228 HHT1228 commented Jul 20, 2026

Copy link
Copy Markdown

Adds a coherence-free per-core private L1 cache (LP1) with write-through mode. Includes end-to-end AMO support and a per-core CMO runtime function (lp1_inval/lp1_wt_flush) for explicit software data protection. Data protection applied and tested on selected kernels (e.g., fdotp, fmatmul, fft, spin/mcs-lock, gemv).

See WTL1_note.md for details.

Note: two Bender.yml deps (Insitu-Cache, hpdcache) still point to my personal forks.

msc25h24 Ho Tin Hung (hohung) and others added 30 commits June 15, 2026 17:22

@DiyouS DiyouS left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See comments t each file.
General Issues:

  1. Bender.lock seems completely broken now. Need fix
  2. Unused/comment codes needs to be removed
  3. Why HPD cache is configured through peripherals? It eats a huge area and at super bad performance! They should be configured directly from the core, using CSR instead!

Comment thread hardware/cachepool_peripheral/cachepool_peripheral.sv
Comment thread hardware/cachepool_peripheral/cachepool_peripheral_reg.hjson
Comment thread hardware/src/axi_hier_interco.sv
import reqrsp_pkg::*;
#(
// Core-side topology
parameter int unsigned NrTCDMPortsPerCore = 5, // Spatz lanes + 1 Snitch

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a coding style note: We usually do not accept end-of-line comments. It is cleaner to put comments in the line above

input l2_cache_rsp_t l2_rsp_i,
output logic l2_rsp_ready_o, // response ready -> interco core_rsp_ready_i

// Performance events

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe better to pack all performance related signals into a structure

}
// if(core_id != 0) {
// while(1){}
// }

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove if not needed

Comment thread Bender.lock Outdated
Comment thread Bender.lock
Comment thread Bender.lock Outdated
Comment thread Makefile
CXX ?= /usr/pack/gcc-11.2.0-af/linux-x64/bin/g++
CC ?= /usr/pack/gcc-11.2.0-af/linux-x64/bin/gcc
CXX := /usr/pack/gcc-11.2.0-af/linux-x64/bin/g++
CC := /usr/pack/gcc-11.2.0-af/linux-x64/bin/gcc

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Keep it ?=. The written path only works in ETH environment

Comment thread hardware/cachepool_peripheral/cachepool_peripheral.sv Outdated
Comment thread hardware/cachepool_peripheral/cachepool_peripheral_reg.hjson
Comment thread hardware/cachepool_peripheral/Makefile Outdated
Comment thread Bender.local
Comment thread Bender.lock
common_cells:
revision: 9ca8a7655f741e7dd5736669a20a301325194c28
version: 1.39.0
revision: 1281545696eb3fcba50ec5b4275993476a3c710e

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

any reason of switching to a new version?

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.

2 participants