1 / 12

CS232 Section 3.7 Reminders - Interrupts and the Interrupt Handler

In this reminder for CS232 Section 3.7, we focus on interrupts and their handling. Key points include the unpredictable nature of interrupts and the necessity for the interrupt handler, starting at address 0x80000080, to save all registers it intends to use. The handling conventions regarding registers $k0 and $k1 are discussed, as these can be overwritten without affecting the main program. Additionally, we address the implications of using the stack for saving registers and the appropriate strategies for saving additional registers in the interrupt handler code.

ollie
Télécharger la présentation

CS232 Section 3.7 Reminders - Interrupts and the Interrupt Handler

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS232 – Section 3 7 February 2010

  2. Reminders • Can meet after this section in 0212 SC • MP3 is released, due Friday Feb 18, 6:00pm

  3. Questions?

  4. Interrupts • Can happen at any time • Can’t prepare for them • Patterson/Hennessey – “unscheduled procedure call” • Calling conventions don’t apply • $a[0-3]/$t[0-9], etc… must all be saved

  5. Interrupt Handler • Code located at 0x80000080 • Processor starts executing at that address on interrupt/exception • Can’t clobber any registers

  6. Question 1: Saving registers • In order to preserve registers, the interrupt handler must first save every register it intends to use in memory. Should it use the stack for this?

  7. Question 2: Saving registers to chunkIH • By convention, the registers $k0 and $k1 are used only by the interrupt handler (i.e., the interrupt handler is free to squash these registers without affecting any active programs). What is wrong with the following code to save additional registers to chunkIH?

  8. “la” instruction Source: http://en.wikipedia.org/wiki/MIPS_architecture#Pseudo_instructions

  9. Details on the Interrupt Handler

  10. Source: http://pages.cs.wisc.edu/~larus/HP_AppA.pdf (Appendix A of Patterson/Hennessey text)

  11. SPIMbot Memory-Mapped I/O

More Related