Note that there are some explanatory texts on larger screens.

plurals
  1. POMMIX: questions on dynamic trap
    text
    copied!<p>I have some questions on MMIX's interrupt. The definition of the special register rK is "interrupt mask register". But it seems it treat different event differently.</p> <ul> <li><p>for I/O bits(let's call ** bit: This is a normal case. When an external interrupt come, if rK's ** bit is 0, rQ's ** bit will hold '1' until rK's ** bit is set to 1, and the trap will occur.</p></li> <li><p>for S-bit (program): Accroding to the source-code of <code>mmix-pipe</code>, even when rK's S-bit is 0, a security exception will occur. and rK's S-bit will be alter from 0 to 1. So, in positive-address, rK's S-bit should be 1, and in negative-address rK's S-bit don't have any effect. Only rQ's S-bit is used to tell system that "there was a security issue", rK's S-bit seems useless.</p></li> <li><p>for P-bit (program): It is sad "instruction comes from a privileged (negative) virtual address." in mmix-doc.pdf. But if PC is in a negative-address, rQ's P-bit will not always be set to 1. (mmix-pipe also not set rQ's P-bit). <br/> I can prove it: If all the instructions that executed before the "resume" insn will set rQ's P-bit to 1, then resume will also set rQ's P-bit to 1. As a result, after the resume, the 'user' insn will always trigger a TRAP. that is impossible. So when P-exception is inhibited, rQ's P-bit will not set to 1. <br/> so rK's P-bit is not just used as a mask, it is used as a "option to bypass a exception-checking".</p></li> </ul> <hr> <p>Here are some questions.</p> <ul> <li><p>Why not make all rK's bits just as a mask for interrupt? Is there any reason made S/P bits so strange?</p></li> <li><p>do other rQ's program bits (rwxnkb) set to 1 if rK's corresponding bits is 0?</p></li> <li><p>As in Neg-address, trip will not occur, do DVWIOUZX bits hold 1 after it just happened?</p></li> </ul>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload