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

[cpu] rework ALU instruction decoding and CPU co-processor interface #1032

Merged
merged 11 commits into from
Sep 24, 2024

Conversation

stnolting
Copy link
Owner

@stnolting stnolting commented Sep 23, 2024

This is a massive rework of the CPU instruction decoding logic that replaces the centralized instruction decoding (inside the control unit) by a "split" decoding.

Only the basic rv32 register-register / register-immediate ALU instruction (alu/alui opcode space) are decoded inside the control unit. All further instructions (including shift operation) are forwarded to the CPU co-processors. If no co-processor generates a response within a bound amount of time the instruction is considered "illegal" (raising an exception). Therefore, each co-processor has to decode all relevant instructions locally.

This change aims to reduce hardware complexity and to make the code base easier to understand and maintain.

@stnolting stnolting added HW Hardware-related optimization Make things faster, smaller and more efficient labels Sep 23, 2024
@stnolting stnolting self-assigned this Sep 23, 2024
@stnolting stnolting marked this pull request as ready for review September 24, 2024 17:39
@stnolting stnolting merged commit 0220614 into main Sep 24, 2024
10 checks passed
@stnolting stnolting deleted the dev230924 branch September 24, 2024 20:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
HW Hardware-related optimization Make things faster, smaller and more efficient
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant