Charles Papon
unread,Jun 9, 2023, 5:27:16 AM6/9/23Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to RISC-V HW Dev, asutosh....@gmail.com, Charles Papon, john.i...@sifive.com, RISC-V HW Dev
Ahhh ok ^^
> That is why in our implementation slave denies these kind of request.
Hmm i think that the issue with that design is that the slave has no way to accuratly identify that case (Acquire BtoT sent, despite the master know it has None permission)
Here are two scenario :
scenario case 2 :
- Master is in B state(and the slave knows about it)
- Master send Acquire BtoT
- Slave send probe toT
- Master execute probe
- Slave now consider master is in N state
- ... Some time passes, that Acquire BtoT got stuck a loooong time somewere in the interconnect
- Slave receive the master Acquire BtoT (and mutate it to a Acquire NtoT)
- Master is in N state (and the slave knows about it)
- Master send Acquire BtoT (spec violation)
- Slave receive the master Acquire BtoT (what should it do now ?)
Question is, in scenario case 1, what should the slave do ? the only information it has, is that it receive a Acquire BtoT from a "N" master. That's "exactly" the same amount of information than in scenario case 2.
So for that reason, i think scenario case 1 and scenario case 2 can't be properly distinguished by the slave, and so, should always be managed the same (mutate Acquire BtoT into a Acquire NtoT)
Unless I miss something :)