1 / 13

Interrupt-Driven Input/Output

Interrupt-Driven Input/Output. Last Time Busses, Arbitration, Interoperability Polled Input/Output Operations Inefficiencies This Time Interrupts Interrupt-Driven I/O Serial and Block Device Examples Reminders/Announcements Reading P&H, Chapter 8.5-8.9 Next week, 6/4 Course Review

Download Presentation

Interrupt-Driven Input/Output

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. Interrupt-Driven Input/Output • Last Time • Busses, Arbitration, Interoperability • Polled Input/Output Operations • Inefficiencies • This Time • Interrupts • Interrupt-Driven I/O • Serial and Block Device Examples • Reminders/Announcements • Reading P&H, Chapter 8.5-8.9 • Next week, 6/4 Course Review • Final Exam, 6/7, 8-11am (location tbd) • HW4 due on 6/4 (in class)

  2. Exceptions and Interrupts • Exceptions cause a control transfer to an exception handler in response to an unusual event. • Ex. floating point overflow, memory addressing error, segmentation fault, etc. • This control transfer looks like a “Dynamic Procedure call” • Exceptions are caused by the executing instruction(s) • Happen “at a particular instruction” • One handler for each exception, “vectored exceptions” • Handler decodes the exception based on stored status info (PC, exception register, etc.), and performs appropriate action

  3. Interrupts • Interrupts = “externally caused exceptions” • Dynamic Procedure call (same as an internal exception) • Have NOTHING to do with current execution, not synchronized with instruction stream, so delays can be tolerated. • Interrupt -> “interrupts” what the processor is doing Processor Processor Interrupt Exception

  4. Interrupt Example inst0 inst1 inst2 inst3 inst4 ... • External Device causes interrupt • Executing code is stopped, dynamic procedure call • Delay doesn’t matter much • State is saved (as with an exception), control is passed to the “interrupt handler” • After servicing interrupt, control returned to previously running program I/O Device Processor • ihandler: instA • instB • instC • rte I/O Device Interrupt Controller

  5. Using Interrupts for Input/Output • Why are interrupts useful? • External analogy to exceptions • Allow response to unusual external events without inline overhead (polling). • Idea: Use interrupts to reduce polling overhead for Input/output • Processor initiates I/O operation • Device interrupts processor when its ready • Interrupt handler transfers data into the memory • Control returned to currently executing program • Analogous schedule for output operations • Polling overhead vs. Interrupt handling cost

  6. Advantages &Complications • Advantages • Reduced polling time vs. interrupt cost • Improved program modularity (no more polling code) • Preserves the ability of old programs to run in new configurations • Complications • Additional hardware required (interrupt controller, etc.) • How to deal with several devices? • What if more than one interrupt occurs at once? • We’ll deal with these questions next.

  7. Multiple sources of Interrupts • How to determine which device caused the interrupt? • Single device per priority • Devices place their ID number on the address bus • Processor polls devices to find out which caused the interrupt • Interrupt Handler -> reads some hardware status registers to determine the source of the interrupt • How to handle an interrupt within an interrupt? • Many systems don’t; disable interrupts when within an interrupt handler • Some systems have interrupt priorities, while in an interrupt handler; only a higher priority interrupt will be handled

  8. Interrupt Handler Structure inthandler: disableInts lw $2,device($0) ... do the work ... enableInts rte • Disable Interrupts • Determine device causing interrupt • Do appropriate processing • Enable Interrupts • What does the stack look like during the interrupt? • stuff on stack before interrupt • stack frame for the interrupt handler? Special return instruction (rte) • when can you allocate stack frame memory? (when is it safe?)

  9. Interrupts and Response Time • Device Number Interrupt Priority • -------------------- ------------------------ • 0 3 • 1 2 • 2 2 • 3 1 • Lower numbers are “higher priority” • How should we assign priorities to devices? • Latency is critical for some devices. • Ordering can have big impact on latency. • Assume non-preemptive priority system. • Interrupts cannot be interrupted. • Pending interrupts are processed in order of priority.

  10. Guaranteed Maximum Latency Guaranteed Maximum ( I ) = MAX(service time of devices at I) Latency + SUM(service time of devices with greater priority) • Device Number Interrupt Priority Service Guar. Max. Latency • -------------------- ------------------------ ---------- -------------------------- • 0 3 10 • 1 2 10 • 2 2 10 • 3 1 10

  11. Real-Time Systems (Embedded systems) • Timeliness of response is fundamental requirement of system design • Control (cars, airplanes, manufacturing) • Instrumentation (measurement, data capture) • Tracking, Guidance (military apps) • Otherwise, system fails! • Real-Time requirements fundamentally affect the nature of system design.

  12. Memory Bus I/O Bus P Mem I/O I/O Interrupt-Driven I/O (Overview) • Processor sets up I/O operation, continues its work • Device performs I/O (a long time) • Device completes, interrupts the processor • Processor responds to interrupt, transfers the data • I/O is complete. • => Interrupts save overhead of polling.

  13. Summary • Interrupts as external exceptions • Interrupt Handling • Motivation for Interrupt-Driven Input/Output • How Interrupt-Driven Input/Output works • Next time: How to make I/O even more efficient (DMA)! • Where is there still overhead? (data movement) • Size of data transfers? Cost?

More Related