As part of this lab, you are changing the datapath and state diagram to detect both the protection exception and the timer interrupt. However, you are only simulating the generation of the timer interrupt.
Yes. EXCV is an index into this table and as each entry stores an address, EXCV has to be left-shifted by one to get the correct offset in this table.
We prefer txt, pdf, ps file formats. You can submit jpg, or bmp file format for figures. You are welcome to submit a hard copy if it will be simpler.
If you feel that a word document (or any other format) is more convenient, make sure that you convert it into a form which can be viewed on unix . An easy way of doing this is to print the word document, and choose the "print to file" option - this will create a postscript file which can be viewed on unix.
You should initialize the privilege mode of the processor (PSR[15]) to 1 (user mode) in your simulator.
You can assume that RTI will never be used by a user program. You are not responsible for generating an exception if an RTI instruction is encountered in user mode.
User stack pointer is initialized in the user program (if the user program makes use of the stack).
For the purposes of this assignment, you can assume this.
The elements your user program is supposed to add are bytes. You should store the sum of the 20 8-bit two's complement integers as a 16-bit word at location xC014.
No. You should not access memory if the access causes an exception.
You may declare registers you need as part of the System_Latches struct.
TRAP should be able to execute in user mode, i.e. it must be able to access the trap vector table at 0x0000 to 0x01FF without causing a protection exception.
You may add a line to the initialize() function in the shell code to set the initial value of the PSR.