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

Bus-error clarification #1725

Open
oolegoon opened this issue Nov 14, 2024 · 2 comments
Open

Bus-error clarification #1725

oolegoon opened this issue Nov 14, 2024 · 2 comments

Comments

@oolegoon
Copy link

The privileged specification states that:

Precise PMA traps might not always be possible, for example, when probing a legacy bus architecture that uses access failures as part of the discovery mechanism. In this case, error responses from peripheral devices will be reported as imprecise bus-error interrupts.

I have several questions about that:

  1. Do I understand correctly that in the case of a bus error no synchronous exception will be generated, but an asynchronous interrupt?
  2. If so, how could this discovery mechanism (probing) be implemented in software? What should software do in this case? Should it wait for an interrupt or poll something?
  3. We have profiles specs (RVA22/23) with the goal to align processor vendors targeting binary software markets, so software can rely on the existence of a certain set of ISA features in a particular generation of RISC-V implementations.
    How does bus-error relate to the profile? Shouldn't it be described in the profile, because now it is vendor-specific. In a comment (Is it appropriate to specify an exception vs interrupt priority? #544 (comment)) @aswaterman indicated that this issue would be addressed to the RVI TG for standardization. Is there any progress on this TG?
  4. In a comment (Is it appropriate to specify an exception vs interrupt priority? #544 (comment)) @allenjbaum states (and the similar behavior is described in some other sources) that the bus error is handled as an asynchronous interrupt, since after accessing memory, high-performance implementations execute subsequent instructions. Executing subsequent instructions means changing the PC and retirement of the instruction that performed the access?
@allenjbaum
Copy link

allenjbaum commented Nov 14, 2024 via email

@aswaterman
Copy link
Member

Agreed with Allen overall. I'd just add that the standardization of these events is within the domain of RAS/RERI.

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

No branches or pull requests

3 participants