Interrupts

Interrupts - I/O, Peripherals, HW/SW Interface Forrest...

Info iconThis preview shows pages 1–6. Sign up to view the full content.

View Full Document Right Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: I/O, Peripherals, HW/SW Interface Forrest Brewer Chandra Krintz I/O Device Interface Interface is composed of: Driver (SW), bus and HW peripheral, physical HW device Overall, the interface introduces an abstraction layer (or several) simplifying the process of making use of the physical (or virtual) device. File I/O in linux/windows looks like byte stream or record I/O Network officially uses 7 layers of abstraction Typically: Driver implements: Device Initialization and Reset Initialization of Data Transfers and Management of Data Flow Device Shutdown and Removal Often two driver interfaces: data channel and device control I/O device: software side Memory Map Hardware Glue is used to create a physical address space which is serviced by dedicated hardware as if it was memory Conceptually Simple from program viewpoint Potentially Breaks Memory Paradigm Memory values change w/o CPU activity I/O port Use two or more address spaces Ports can be written or read, but are not Memories Sometimes special I/O instructions or Status Bit Issues Kernel time limited but CPU protection modes Coherence atomicity Preservation of Device State Minimal Kernel state for synchronization/modal behavior I/O Device: hardware side Physically must decode Memory address bus or I/O port address, then manage physical data transfer to device Data formats and rates often very different EG SPI based A/D is a bit-serial interface with rates between 20kHz and 50+MHz, yet CPU is expecting a Byte or Word parallel transfer on its event timing. Physical device usually has own idea about time and who is boss Usually CPU is forgiving about adding wait states or delaying trasnfers Device operation timescales can be much faster or much slower than CPU software events, yet a reliable, efficient interface is needed. Minimal: HW synchronization from event to CPU Bus Often, buffering FIFO and interrupt generation as well as protocol Efficient Interfacing Service dozens of peripherals, each with own time scale How to keep data transfers coherent? How to prevent slow devices from slowing down system? Classically, two kinds of Interface Polling (Program Driven I/O) CPU polls the device addresses and takes action when needed Simple to build HW, but CPU needs to poll often so may not be efficient if lots of devices Sequential program flow is maintained Interrupts (Event Driven I/0) Set up event, then go off and do other things until signaled On signal, drop everything, service need and resume other things...
View Full Document

This note was uploaded on 12/29/2011 for the course ECE 253 taught by Professor Brewer,f during the Fall '08 term at UCSB.

Page1 / 70

Interrupts - I/O, Peripherals, HW/SW Interface Forrest...

This preview shows document pages 1 - 6. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online