-
Notifications
You must be signed in to change notification settings - Fork 92
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
define asynchronous interrupt priorities #802
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The spec changes look right to me. I have two requests for the PR:
- Can you give it a more descriptive title? Something like "define asynchronous interrupt priorities" or anything where someone reading just the title could guess what the change relates to.
- Don't include the PDF in the PR. It just leads to conflicts and a lot of churn.
dd59bef
to
c6d9ef6
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good, but I'd like @pdonahue-ventana's opinion too. He has a better head for stuff like this.
This table in the debug spec mirrors table 3.7 of the latest priv spec which doesn't have interrupts. This PR specifies the priority of interrupts with respect to non-debug exceptions, not just debug exceptions. I don't think that the priv spec defines that interrupt vs. synchronous exception priority and it's not appropriate for the debug spec to define that. |
Table 3.7 doesn't mention interrupts because they are not synchronous traps on the current instruction resulting from execution of that instruction. The behaviour of interrupts in the case we are considering here (enabling a pending interrupt by execution of The issue is that the Debug Specification introduces other high priority synchronous events with timing 'after' (e.g. stepi trigger events), and therefore needs to define the priority of interrupts with respect to those. For example, if you stepi over an I agree that it feels a bit awkward inserting interrupts into the table as I have tried to do; can you think of a better way to make clear where interrupts sit? Thanks, James. |
I see your point. Let me think about it. |
Is this a bugfix, clarification, or something else? |
It's an attempt to specify something that is missing entirely at the moment - see our previous discussion on #796. Not sure whether that counts as a bugfix or clarification. |
This PR clarifies the priority between precise/synchronous interrupts and triggers with timing=after. The current Spike does not provide this behavior. Is there any update on this clarification? |
Hi @timsifive - I've made an attempt at this (reference #796)