Skip to content
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

Dynamic local and remote order #2461

Merged
merged 5 commits into from
May 15, 2020
Merged

Conversation

terpstra
Copy link
Contributor

Type of change: bug report
Impact: no functional change
Development Phase: implementation

Release Notes
Improved QoR in designs with large physical address maps.

terpstra added 4 commits May 11, 2020 18:20
Something is broken with scala.collection.mutable.HashMap.
Insertions get slower and slower as the map gets more full.
groupBy is more idiomatic anyway.
No longer exponential time!
The perfect implementation of this algorithm would be to perform a full
circuit minimization, ala Quine–McCluskey.  However, that would require
expanding out to every addres, very exponential time!

The previous heuristic algorithm was O(n^2) for n AddressSet terms.
However, it did not always merge sets by the same bit in order.
This led to poor outcomes on common inputs.

The new heuristic merges by lowest bits first.
This is O(n * bits), which has better worst-case performance.
On contiguous ranges it also finds better results.
The remote/local routing decision is too granular to leave to a static
FIFOFixer.  If you have 1MiB of local memory in a 256MiB region, you had to
describe 256 different FIFO regions, one for each potential offset of the
local memory.

There are actually only two options: local or remote.

Use the dynamic routing information of the AddressAdjuster.
@terpstra terpstra requested a review from hcook May 12, 2020 01:31
@terpstra terpstra force-pushed the dynamic-local-and-remote-order branch from add2b15 to e9beab8 Compare May 12, 2020 02:13
@hcook hcook self-requested a review May 13, 2020 18:21
@terpstra terpstra merged commit 55ddc23 into master May 15, 2020
@terpstra terpstra deleted the dynamic-local-and-remote-order branch May 15, 2020 06:27
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.

4 participants