Skip to content

What constrains the CPU->cache bandwidth with O3CPU and Ruby #385

Closed Answered by powerjg
powerjg asked this question in Q&A
Discussion options

You must be logged in to vote

First, there are two parameters in the O3CPU:

These are used in the LSQ.
On each cycle, the LSQ increments the number of usedStorePorts and usedLoadPorts and if the number of used ports exceeds the parameter value then the LSQ port is blocked and trySendPacket fails.

Note that by default, these values are large (200 in the codebase today).
So, this means that in a default O3CPU configuration, the LSQ should not stall except because the cache cannot accept the request.

You can find the number of times this parameter or generally the cache blocks the LSQ with the statistic blockedByCache.

The other place that could cause load or store instructions to stall i…

Replies: 1 comment 1 reply

Comment options

powerjg
Oct 3, 2023
Maintainer Author

You must be logged in to vote
1 reply
@hegdeprajwal
Comment options

Answer selected by BobbyRBruce
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants