CS 61C: Great Ideas in Computer Architecture (Machine Structures) Lecture 36: IO Basics Instructor: Dan Garcia

Slides:



Advertisements
Similar presentations
Chapter 4 The Processor CprE 381 Computer Organization and Assembly Level Programming, Fall 2013 Zhao Zhang Iowa State University Revised from original.
Advertisements

Input and Output CS 215 Lecture #20.
Avishai Wool lecture Introduction to Systems Programming Lecture 8 Input-Output.
Instructor: Justin Hsia CS 61C: Great Ideas in Computer Architecture Input/Output 7/31/20121Summer Lecture #25.
CS61C L36 Input / Output (1) Garcia, Spring 2007 © UCB Robson disk $  Intel has a NAND flash-based disk cache which can speed up access for laptops and.
Inst.eecs.berkeley.edu/~cs61c UCB CS61C : Machine Structures Lecture 34 – Input / Output “Arduino is an open-source electronics prototyping.
CS 430 – Computer Architecture 1 CS 430 – Computer Architecture Input/Output: Polling and Interrupts William J. Taffe using the slides of David Patterson.
CS61C L25 I/O (1) A Carle, Summer 2005 © UCB inst.eecs.berkeley.edu/~cs61c/su05 CS61C : Machine Structures Lecture #25: I/O Andy Carle.
Architectural Support for Operating Systems. Announcements Most office hours are finalized Assignments up every Wednesday, due next week CS 415 section.
CS61C L18 Introduction to CPU Design (1) Beamer, Summer 2007 © UCB Scott Beamer, Instructor inst.eecs.berkeley.edu/~cs61c CS61C : Machine Structures Lecture.
CS61C L24 Input/Output, Networks I (1) Garcia, Fall 2005 © UCB Lecturer PSOE, new dad Dan Garcia inst.eecs.berkeley.edu/~cs61c.
Pipeline Exceptions & ControlCSCE430/830 Pipeline: Exceptions & Control CSCE430/830 Computer Architecture Lecturer: Prof. Hong Jiang Courtesy of Yifeng.
CS61C L26 Virtual Memory II (1) Beamer, Summer 2007 © UCB Scott Beamer, Instructor inst.eecs.berkeley.edu/~cs61c CS61C : Machine Structures Lecture #26.
CS61C L13 I/O © UC Regents 1 CS61C - Machine Structures Lecture 13 - Input/Output: Polling and Interrupts October 11, 2000 David Patterson
CS61C L24 Introduction to CPU Design (1) Garcia, Fall 2006 © UCB Fedora Core 6 (FC6) just out  The latest version of the distro has been released; they.
Inst.eecs.berkeley.edu/~cs61c UCB CS61C : Machine Structures Lecture 24 Introduction to CPU design Stanford researchers developing 3D camera.
CS 61C L39 I/O (1) Garcia, Spring 2004 © UCB Lecturer PSOE Dan Garcia inst.eecs.berkeley.edu/~cs61c CS61C : Machine Structures.
CS61C L37 I/O (1) Garcia © UCB Lecturer PSOE Dan Garcia inst.eecs.berkeley.edu/~cs61c CS61C : Machine Structures Lecture.
Cs 61C L12 I/O.1 Patterson Spring 99 ©UCB CS61C Input/Output Lecture 12 February 26, 1999 Dave Patterson (http.cs.berkeley.edu/~patterson) www-inst.eecs.berkeley.edu/~cs61c/schedule.html.
CS 61C: Great Ideas in Computer Architecture (Machine Structures) Lecture 27: Single-Cycle CPU Datapath Design Instructor: Sr Lecturer SOE Dan Garcia
Instructor: Justin Hsia CS 61C: Great Ideas in Computer Architecture Input/Output 8/12/20131Summer Lecture #28.
I/O Tanenbaum, ch. 5 p. 329 – 427 Silberschatz, ch. 13 p
What are Exception and Interrupts? MIPS terminology Exception: any unexpected change in the internal control flow – Invoking an operating system service.
CS 61C: Great Ideas in Computer Architecture Lecture 22: Operating Systems, Interrupts, and Virtual Memory Part 1 Instructor: Sagar Karandikar
Input/Output. Input/Output Problems Wide variety of peripherals —Delivering different amounts of data —At different speeds —In different formats All slower.
CS 61C: Great Ideas in Computer Architecture (Machine Structures) Operating Systems, Interrupts, Virtual Memory Instructors: Krste Asanovic & Vladimir.
CS 61C: Great Ideas in Computer Architecture (Machine Structures) Lecture 38: IO and Networking Instructor: Dan Garcia
3/11/2002CSE Input/Output Input/Output Control Datapath Memory Processor Input Output Memory Input Output Network Control Datapath Processor.
Input and Output Computer Organization and Assembly Language: Module 9.
ECE/CS 552: Microprogramming and Exceptions Instructor: Mikko H Lipasti Fall 2010 University of Wisconsin-Madison Lecture notes based on set created by.
Chapter 2: Computer-System Structures Computer System Operation I/O Structure Storage Structure Storage Hierarchy Hardware Protection Network Structure.
CH10 Input/Output DDDData Transfer EEEExternal Devices IIII/O Modules PPPProgrammed I/O IIIInterrupt-Driven I/O DDDDirect Memory.
Interrupt driven I/O. MIPS RISC Exception Mechanism The processor operates in The processor operates in user mode user mode kernel mode kernel mode Access.
CE Operating Systems Lecture 2 Low level hardware support for operating systems.
CS2100 Computer Organisation Input/Output – Own reading only (AY2015/6) Semester 1 Adapted from David Patternson’s lecture slides:
CS 61C: Great Ideas in Computer Architecture (Machine Structures) Operating Systems, Interrupts, Virtual Memory Instructors: John Wawrzynek & Vladimir.
Microprogramming and Exceptions Spring 2005 Ilam University.
CS 61C: Great Ideas in Computer Architecture (Machine Structures) Lecture 37: IO Basics Instructor: Dan Garcia
Adapted from Computer Organization and Design, Patterson & Hennessy ECE232: Hardware Organization and Design Part 17: Input/Output Chapter 6
1 Lecture 1: Computer System Structures We go over the aspects of computer architecture relevant to OS design  overview  input and output (I/O) organization.
Input/Output Problems Wide variety of peripherals —Delivering different amounts of data —At different speeds —In different formats All slower than CPU.
University of Texas at Austin CS352H - Computer Systems Architecture Fall 2009 Don Fussell CS352H: Computer Systems Architecture Topic 9: MIPS Pipeline.
Interrupt driven I/O Computer Organization and Assembly Language: Module 12.
Input Output Techniques Programmed Interrupt driven Direct Memory Access (DMA)
بسم الله الرحمن الرحيم MEMORY AND I/O.
LECTURE 10 Pipelining: Advanced ILP. EXCEPTIONS An exception, or interrupt, is an event other than regular transfers of control (branches, jumps, calls,
1 Device Controller I/O units typically consist of A mechanical component: the device itself An electronic component: the device controller or adapter.
Interrupts and Exception Handling. Execution We are quite aware of the Fetch, Execute process of the control unit of the CPU –Fetch and instruction as.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Operating Systems Overview: Using Hardware.
Introduction to Exceptions 1 Introduction to Exceptions ARM Advanced RISC Machines.
CS 110 Computer Architecture Lecture 22: Operating Systems, Interrupts, Virtual Memory Instructor: Sören Schwertfeger School.
Exceptions and Interrupts “Unexpected” events requiring change in flow of control – Different ISAs use the terms differently Exception – Arises within.
Computer Organization CS224
Handling Exceptions In MIPS, exceptions managed by a System Control Coprocessor (CP0) Save PC of offending (or interrupted) instruction In MIPS: Exception.
Inst.eecs.berkeley.edu/~cs61c UC Berkeley CS61C : Machine Structures Lecture 35 – Input / Output Lecturer SOE Dan Garcia
Morgan Kaufmann Publishers The Processor
Instructors: Yuanqing Cheng
Pipelining: Advanced ILP
The processor: Exceptions and Interrupts
The processor: Pipelining and Branching
Guest Lecturer TA: Shreyas Chand
Interrupts and Exception Handling
ECE 445 – Computer Organization
Control Hazards Branches (conditional, unconditional, call-return)
CS61C - Machine Structures Lecture 14 - Input/Output
Interrupts and exceptions
Chapter 13: I/O Systems.
Interrupts and Exception Handling
Presentation transcript:

CS 61C: Great Ideas in Computer Architecture (Machine Structures) Lecture 36: IO Basics Instructor: Dan Garcia

Review Manage memory to disk? Treat as cache – Included protection as bonus, now critical – Use Page Table of mappings for each process vs. tag/data in cache – TLB is cache of Virtual  Physical addr trans Virtual Memory allows protected sharing of memory between processes Temporal and Spatial Locality means Working Set of Pages is all that must be in memory for process to run fairly well

Recall : 5 components of any Computer Processor (active) Computer Control (“brain”) Datapath (“brawn”) Memory (passive) (where programs, data live when running) Devices Input Output Keyboard, Mouse Display, Printer Disk, Network Earlier LecturesCurrent Lectures

Motivation for Input/Output I/O is how humans interact with computers I/O gives computers long-term memory. I/O lets computers do amazing things: Computer without I/O like a car w/no wheels; great technology, but gets you nowhere MIT Media Lab “Sixth Sense”

I/O Speed: bytes transferred per second (from mouse to Gigabit LAN: 7 orders of magnitude!) DeviceBehaviorPartner Data Rate (KBytes/s) KeyboardInputHuman0.01 MouseInputHuman0.02 Voice outputOutputHuman5.00 Floppy diskStorageMachine50.00 Laser PrinterOutputHuman Magnetic DiskStorageMachine10, Wireless NetworkI or OMachine 10, Graphics DisplayOutputHuman30, Wired LAN NetworkI or OMachine125, When discussing transfer rates, use 10 x I/O Device Examples and Speeds

What do we need to make I/O work? A way to connect many types of devices A way to control these devices, respond to them, and transfer data A way to present them to user programs so they are useful cmd reg. data reg. Operating System APIsFiles Proc Mem PCI Bus SCSI Bus

Instruction Set Architecture for I/O What must the processor do for I/O? – Input: reads a sequence of bytes – Output: writes a sequence of bytes Some processors have special input and output instructions Alternative model (used by MIPS): – Use loads for input, stores for output (in small pieces) – Called Memory Mapped Input/Output – A portion of the address space dedicated to communication paths to Input or Output devices (no memory there)

Memory Mapped I/O Certain addresses are not regular memory Instead, they correspond to registers in I/O devices cntrl reg. data reg. 0 0xFFFFFFFF 0xFFFF0000 address

Processor-I/O Speed Mismatch 1GHz microprocessor can execute 1 billion load or store instructions per second, or 4,000,000 KB/s data rate I/O devices data rates range from 0.01 KB/s to 125,000 KB/s Input: device may not be ready to send data as fast as the processor loads it Also, might be waiting for human to act Output: device not be ready to accept data as fast as processor stores it What to do?

Processor Checks Status before Acting Path to a device generally has 2 registers: Control Register, says it’s OK to read/write (I/O ready) [think of a flagman on a road] Data Register, contains data Processor reads from Control Register in loop, waiting for device to set Ready bit in Control reg (0  1) to say its OK Processor then loads from (input) or writes to (output) data register Load from or Store into Data Register resets Ready bit (1  0) of Control Register This is called “Polling”

Input: Read from keyboard into $v0 lui$t0, 0xffff #ffff0000 Waitloop:lw$t1, 0($t0) #control andi$t1,$t1,0x1 beq$t1,$zero, Waitloop lw$v0, 4($t0) #data Output: Write to display from $a0 lui$t0, 0xffff #ffff0000 Waitloop:lw$t1, 8($t0) #control andi$t1,$t1,0x1 beq$t1,$zero, Waitloop sw$a0, 12($t0) #data “Ready” bit is from processor’s point of view! I/O Example (polling)

Cost of Polling a Mouse? Assume for a processor with a 1GHz clock it takes 400 clock cycles for a polling operation (call polling routine, accessing the device, and returning). Determine % of processor time for polling Mouse: polled 30 times/sec so as not to miss user movement Mouse Polling [clocks/sec] = 30 [polls/s] * 400 [clocks/poll] = 12K [clocks/s] % Processor for polling: 12*10 3 [clocks/s] / 1*10 9 [clocks/s] = %  Polling mouse little impact on processor

% Processor time to poll hard disk Hard disk: transfers data in 16-Byte chunks and can transfer at 16 MB/second. No transfer can be missed. (we’ll come up with a better way to do this) Frequency of Polling Disk = 16 [MB/s] / 16 [B/poll] = 1M [polls/s] Disk Polling, Clocks/sec = 1M [polls/s] * 400 [clocks/poll] = 400M [clocks/s] % Processor for polling: 400*10 6 [clocks/s] / 1*10 9 [clocks/s] = 40%  Unacceptable (Polling is only part of the problem – main problem is that accessing in small chunks is inefficient)

What is the alternative to polling? Wasteful to have processor spend most of its time “spin-waiting” for I/O to be ready Would like an unplanned procedure call that would be invoked only when I/O device is ready Solution: use exception mechanism to help I/O. Interrupt program when I/O ready, return when done with data transfer

Exceptions and Interrupts “Unexpected” events requiring change in flow of control – Different ISAs use the terms differently Exception – Arises within the CPU e.g., Undefined opcode, overflow, syscall, TLB Miss,… Interrupt – From an external I/O controller Dealing with them without sacrificing performance is difficult §4.9 Exceptions 15

Handling Exceptions In MIPS, exceptions managed by a System Control Coprocessor (CP0) Save PC of offending (or interrupted) instruction – In MIPS: save in special register called Exception Program Counter (EPC) Save indication of the problem – In MIPS: saved in special register called Cause register – We’ll assume 1-bit 0 for undefined opcode, 1 for overflow Jump to exception handler code at address hex 16

Exception Properties Restartable exceptions – Pipeline can flush the instruction – Handler executes, then returns to the instruction Refetched and executed from scratch PC saved in EPC register – Identifies causing instruction – Actually PC + 4 is saved because of pipelined implementation Handler must adjust PC to get right address 17

Handler Actions Read Cause register, and transfer to relevant handler Determine action required If restartable exception – Take corrective action – use EPC to return to program Otherwise – Terminate program – Report error using EPC, cause, … 18

Exceptions in a Pipeline Another kind of control hazard Consider overflow on add in EX stage add $1, $2, $1 – Prevent $1 from being clobbered – Complete previous instructions – Flush add and subsequent instructions – Set Cause and EPC register values – Transfer control to handler Similar to mispredicted branch – Use much of the same hardware 19

Exception Example I$ and or add slt lw ALU I$ Reg D$Reg ALU I$ Reg D$Reg ALU I$ Reg D$Reg ALU Reg D$Reg ALU I$ Reg D$Reg I n s t r. O r d e r Time (clock cycles) ALU I$ Reg D$Reg lui 20

Exception Example I$ and or (bubble) ALU I$ Reg D$Reg ALU I$ Reg D$Reg ALU I$ Reg D$Reg ALU Reg D$Reg ALU I$ Reg D$Reg I n s t r. O r d e r Time (clock cycles) ALU I$ Reg D$Reg sw Save PC+4 into EPC 1 st instruction of handler Flush add, slt, lw 21

I/O Interrupt An I/O interrupt is like an exception except: – An I/O interrupt is “asynchronous” – More information needs to be conveyed An I/O interrupt is asynchronous with respect to instruction execution: – I/O interrupt is not associated with any instruction, but it can happen in the middle of any given instruction – I/O interrupt does not prevent any instruction from completion 22

Interrupt-Driven Data Transfer (1) I/O interrupt (2) save PC Memory add sub and or user program read store... jr interrupt service routine (3) jump to interrupt service routine (4) perform transfer (5) 23

Find the % of processor consumed if the hard disk is only active 5% of the time. Assuming 500 clock cycle overhead for each transfer, including interrupt: Disk Interrupts/s = 5% * 16 [MB/s] / 16 [B/interrupt] = 50,000 [interrupts/s] Disk Interrupts [clocks/s] = 50,000 [interrupts/s] * 500 [clocks/interrupt] = 25,000,000 [clocks/s] % Processor for during transfer: 2.5*10 7 [clocks/s] / 1*10 9 [clocks/s] = 2.5% Busy DMA (Direct Memory Access) even better – only one interrupt for an entire page! Benefit of Interrupt-Driven I/O 24

Peer Instruction 1)A faster CPU will result in faster I/O. 2)Hardware designers handle mouse input with interrupts since it is better than polling in almost all cases. 3)Low-level I/O is actually quite simple, as it’s really only reading and writing bytes. 123 A: FFF B: FFT B: FTF C: FTT C: TFF D: TFT D: TTF E: TTT

Peer Instruction Answer 1)A faster CPU will result in faster I/O. 2)Hardware designers handle mouse input with interrupts since it is better than polling in almost all cases. 3)Low-level I/O is actually quite simple, as it’s really only reading and writing bytes. F A L S E T R U E 1)Less sync data idle time 2)Because mouse has low I/O rate polling often used 3)Concurrency, device requirements vary! F A L S E 123 A: FFF B: FFT B: FTF C: FTT C: TFF D: TFT D: TTF E: TTT

“And in conclusion…” I/O gives computers their 5 senses + long term memory I/O speed range is 7 Orders of Magnitude (or more!) Processor speed means must synchronize with I/O devices before use Polling works, but expensive – processor repeatedly queries devices Interrupts work, more complex – we’ll talk about these next I/O control leads to Operating Systems

Multiple Exceptions Pipelining overlaps multiple instructions – Could have multiple exceptions at once – E.g., Page fault in LW same clock cycle as Overflow of following instruction ADD Simple approach: deal with exception from earliest instruction, e.g., LW exception serviced 1st – Flush subsequent instructions Called Precise exceptions In complex pipelines: – Multiple instructions issued per cycle – Out-of-order completion – Maintaining precise exceptions is difficult! 28

Imprecise Exceptions Just stop pipeline and save state – Including exception cause(s) Let the software handler work out – Which instruction(s) had exceptions – Which to complete or flush May require “manual” completion Simplifies hardware, but more complex handler software Not feasible for complex multiple-issue out-of-order pipelines to always get exact instruction All computers today offer precise exceptions—affects performance though 29