-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support Tile Clusters (tree-like hierarchies) #3238
Conversation
will this PR block the 3.6 bump? |
No. I don't think this PR should block anything, we should delay features while more critical things are going in. |
the semantic of hartid and tileid is different in MT cores(although there are no opensource MT core for now). This PR seems to remove the hartid, is this a desidered refactor? |
@@ -2,15 +2,16 @@ | |||
|
|||
package freechips.rocketchip.subsystem | |||
|
|||
import chisel3.Flipped | |||
import chisel3.experimental.IO |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No need in 3.6
tileId is static, and should only be referenced by generator (its the old "staticIdForMetadataUseOnly"). Future work can allow a tile to support multiple hartid. |
Great! |
Replaced by #3490 |
This work substantially refactors the existing Tile/TilePRCIDomain/HasTiles/InstantiatesTiles code into a system that support recursive clusters of tiles.
This PR defines an
Element
as an abstract node in the hierarchy tree.Element
s can beBaseTile
s orCluster
s, whereBaseTile
s are leaf nodes in the hierarchy, clusters are non-root nodes, and theBaseSubsystem
is the root node.BaseTile
andCluster
will support deduplication.Notably
Cluster
s support recursive instantiation, aCluster
can containTile
s or internalCluster
s. TheCluster
bus topology should be capable of both supporting hierarchical coherence, and theBaseSubsystem
s topology handle managing all coherence, depending on configuration variables.This PR still requires more time. Some of the interrupt handling is not satisfying, and some decisions over clock/reset crossing ought to be addressed.
Type of change: other enhancement
Impact: API modification
Development Phase: implementation
Release Notes