What is a GC interrupt
Opened this issue · 1 comments
allenjbaum commented
A GC interrupt is not defined in the Risc-V privileged spec.
What causes it?
What is the mcause value set when the interrupt is taken?
robfinch commented
I’m not sure about the implementation details of a GC interrupt, but I’m
assuming it would work like an external timer interrupt. It would be driven
by a PIT. I feel it’s a little bit outside of the scope of the document to
define the GC hardware as I think this could vary significantly based on
the design. As I’ve got it setup in my system as a lower priority external
hardware interrupt somewhere in the cause code range 32 to 47 (39 IIRC).
It’s not in the RISCV spec I’m reading what causes code are used for what
external hardware interrupts, other than it says that hardware interrupts
set the MSB of the cause register. The rest of the bits are reserved.
However, I use an eight-bit vector in the reserved bits for external
hardware interrupts. The cause code is latched on a bus at the time the IRQ
occurs.
There are actually two GC interrupts planned in the system, the second
interrupt is a time limit interrupt on the amount of GC processing taking
place. The first interrupt triggers a timer for the second interrupt. When
the second interrupt occurs GC operations are suspended. I suppose this
could also be done with an instruction counter.
…On Tue, Sep 1, 2020 at 3:49 PM Allen Baum ***@***.***> wrote:
A GC interrupt is not defined in the Risc-V privileged spec.
What causes it?
What is the mcause value set when the interrupt is taken?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#3>, or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABKOICNKUDC47HC56DMNXQ3SDVF6HANCNFSM4QSDYZJA>
.