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

Use bit vector allocator for free registers #766

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

tilk
Copy link
Member

@tilk tilk commented Nov 27, 2024

This PR replaces the free register FIFO with a bit vector, with a possibility of superscalar use later.

Closes #697.

@tilk tilk added refactor Doesn't change functionality, but makes stuff nicer benchmark Benchmarks should be run for this change and removed benchmark Benchmarks should be run for this change labels Nov 27, 2024
Copy link

Benchmarks summary

Performance benchmarks

aha-mont64 crc32 minver nettle-sha256 nsichneu slre statemate ud
0.417 (0.000) 0.513 (0.000) 0.337 (0.000) 0.655 (0.000) 0.361 (0.000) 0.290 (0.000) 0.326 (0.000) 0.431 (0.000)

You can view all the metrics here.

Synthesis benchmarks (basic)

Device utilisation: (ECP5) LUTs used as DFF: (ECP5) LUTs used as carry: (ECP5) LUTs used as ram: (ECP5) Max clock frequency (Fmax)
▲ 14638 (+969) ▲ 4296 (+33) ▼ 1456 (-2) ▼ 1420 (-32) ▼ 45 (-8)

Synthesis benchmarks (full)

Device utilisation: (ECP5) LUTs used as DFF: (ECP5) LUTs used as carry: (ECP5) LUTs used as ram: (ECP5) Max clock frequency (Fmax)
▼ 26401 (-89) ▲ 6911 (+33) ▼ 1818 (-2) ▼ 1472 (-32) ▲ 42 (+2)

Copy link

Benchmarks summary

Performance benchmarks

aha-mont64 crc32 minver nettle-sha256 nsichneu slre statemate ud
0.417 (0.000) 0.513 (0.000) 0.337 (0.000) 0.655 (0.000) 0.361 (0.000) 0.290 (0.000) 0.326 (0.000) 0.431 (0.000)

You can view all the metrics here.

Synthesis benchmarks (basic)

Device utilisation: (ECP5) LUTs used as DFF: (ECP5) LUTs used as carry: (ECP5) LUTs used as ram: (ECP5) Max clock frequency (Fmax)
▲ 14025 (+356) ▲ 4296 (+33) ▼ 1456 (-2) ▼ 1420 (-32) ▼ 50 (-3)

Synthesis benchmarks (full)

Device utilisation: (ECP5) LUTs used as DFF: (ECP5) LUTs used as carry: (ECP5) LUTs used as ram: (ECP5) Max clock frequency (Fmax)
▼ 22221 (-4269) ▲ 6911 (+33) ▼ 1818 (-2) ▼ 1472 (-32) ▲ 46 (+6)

Copy link

Benchmarks summary

Performance benchmarks

aha-mont64 crc32 minver nettle-sha256 nsichneu slre statemate ud
0.417 (0.000) 0.513 (0.000) 0.337 (0.000) 0.655 (0.000) 0.361 (0.000) 0.290 (0.000) 0.326 (0.000) 0.431 (0.000)

You can view all the metrics here.

Synthesis benchmarks (basic)

Device utilisation: (ECP5) LUTs used as DFF: (ECP5) LUTs used as carry: (ECP5) LUTs used as ram: (ECP5) Max clock frequency (Fmax)
▼ 13137 (-532) ▲ 4296 (+33) ▼ 1456 (-2) ▼ 1420 (-32) ▼ 51 (-2)

Synthesis benchmarks (full)

Device utilisation: (ECP5) LUTs used as DFF: (ECP5) LUTs used as carry: (ECP5) LUTs used as ram: (ECP5) Max clock frequency (Fmax)
▼ 24655 (-1835) ▲ 6911 (+33) ▼ 1818 (-2) ▼ 1472 (-32) ▲ 45 (+5)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
benchmark Benchmarks should be run for this change refactor Doesn't change functionality, but makes stuff nicer
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Bit-vector free RF list with superscalarity
1 participant