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

✨ add memory coherency logic #1176

Merged
merged 21 commits into from
Feb 4, 2025
Merged

✨ add memory coherency logic #1176

merged 21 commits into from
Feb 4, 2025

Conversation

stnolting
Copy link
Owner

This PR introduces a cleaner memory synchronization (or "ordering" or "coherence") concept for the RISC-V fence isntructions. I am still not completely sure if they are implemented the right way... However, now these instructions will stall the processor until the according synchronization is accomplished:

  • fence (load/store fence): flush and reload the CPU's data cache; after that flush and reload the external bus cache
  • fence.i (instruction-fetch fence): behave like a fence but will also invalidate the CPU's instruction cache and resets the CPU's instruction fetch front-end

🐛 I've reworked the generic cache module as I had some issues with it when trying to move large data to an external DDR memory via the on-chip debugger.

⚠️ This PR reworks the processor-internal bus system. debug is now an in-band signals that corresponds to the current bus transfer. Furthermore, the sleep signal is removed from the bus.

⚠️ This PR also removes the "halt in sleep-mode" and "halt in debug-mode" features from the watchdog timer. I think without these features the watchdog is more "robust" (or even more secure).

@stnolting stnolting added enhancement New feature or request HW Hardware-related experimental Experimental feature labels Feb 2, 2025
@stnolting stnolting self-assigned this Feb 2, 2025
@stnolting stnolting marked this pull request as ready for review February 3, 2025 21:33
@stnolting stnolting merged commit f56cade into main Feb 4, 2025
8 checks passed
@stnolting stnolting deleted the memory_synchronization branch February 4, 2025 06:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request experimental Experimental feature HW Hardware-related
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant