CSIE30300 Computer Architecture Unit 11: Bus and I/O Systems Hsin-Chou Chi [Adapted from material by and

Slides:



Advertisements
Similar presentations
Bus Design.
Advertisements

IT253: Computer Organization
Lecture 21Comp. Arch. Fall 2006 Chapter 8: I/O Systems Adapted from Mary Jane Irwin at Penn State University for Computer Organization and Design, Patterson.
1  1998 Morgan Kaufmann Publishers Interfacing Processors and Peripherals.
Computer Science & Engineering
Datorteknik BusInterfacing bild 1 Bus Interfacing Processor-Memory Bus –High speed memory bus Backplane Bus –Processor-Interface bus –This is what we usually.
IOSystems.1 Review: Major Components of a Computer Processor Control Datapath Memory Devices Input Output  Important metrics for an I/O system l Performance.
EE30332 Ch8 DP – 1 Ch 8 Interfacing Processors and Peripherals Buses °Fundamental tool for designing and building computer systems divide the problem into.
S. Barua – CPSC 440 CHAPTER 8 INTERFACING PROCESSORS AND PERIPHERALS Topics to be covered  How to.
Cache Performance, Interfacing, Multiprocessors CPSC 321 Andreas Klappenecker.
Lecture 25 Buses and I/O (2)
Interfacing Processors and Peripherals Andreas Klappenecker CPSC321 Computer Architecture.
Processor Design 5Z0321 Processor Design 5Z032 Chapter 8 Interfacing Processors and Peripherals Henk Corporaal.
1  1998 Morgan Kaufmann Publishers Chapter 8 Interfacing Processors and Peripherals.
1 CSE SUNY New Paltz Chapters 8 Interfacing Processors and Peripherals.
1 Interfacing Processors and Peripherals I/O Design affected by many factors (expandability, resilience) Performance: — access latency — throughput — connection.
COMP381 by M. Hamdi 1 Input/Output Systems. COMP381 by M. Hamdi 2 Motivation: Who Cares About I/O? CPU Performance: 60% per year I/O system performance.
Chapter 8: Part II Storage, Network and Other Peripherals.
Lecture 12 Today’s topics –CPU basics Registers ALU Control Unit –The bus –Clocks –Input/output subsystem 1.
Chapter 8 Input/Output. Busses l Group of electrical conductors suitable for carrying computer signals from one location to another l Each conductor in.
3/11/2002CSE Input/Output Input/Output Control Datapath Memory Processor Input Output Memory Input Output Network Control Datapath Processor.
CSE431 Chapter 6B.1Irwin, PSU, 2008 Chapter 6B: I/O Systems Mary Jane Irwin ( ) [Adapted from Computer Organization.
CPU BASICS, THE BUS, CLOCKS, I/O SUBSYSTEM Philip Chan.
1chapter 8 Review: Major Components of a Computer Processor Control Datapath Memory Devices Input Output Important metrics for an I/O system –Performance.
Orange Coast College Business Division Computer Science Department CS 116- Computer Architecture Peripherals.
1 (Based on text: David A. Patterson & John L. Hennessy, Computer Organization and Design: The Hardware/Software Interface, 3 rd Ed., Morgan Kaufmann,
CHAPTER 3 TOP LEVEL VIEW OF COMPUTER FUNCTION AND INTERCONNECTION
I/O Example: Disk Drives To access data: — seek: position head over the proper track (8 to 20 ms. avg.) — rotational latency: wait for desired sector (.5.
3/8/2002CSE Buses Buses Pentium 4 Processor L1 and L2 caches Memory Controller Hub RDRAM Disks RDRAM I/O Controller Hub MB/sec (33 MHz, 32.
Storage Systems CS465 Lecture 12 CS465.
CS2100 Computer Organisation Input/Output (AY2010/2011) Semester 2 Adapted from.
Bus Mr. Mukul Varshney. Bus A bus, in computing, is a set of physical connections (cables, printed circuits, etc.) which can be shared by multiple hardware.
I/O Computer Organization II 1 Interconnecting Components Need interconnections between – CPU, memory, I/O controllers Bus: shared communication channel.
August 1, 2001Systems Architecture II1 Systems Architecture II (CS ) Lecture 9: I/O Devices and Communication Buses * Jeremy R. Johnson Wednesday,
MBG 1 CIS501, Fall 99 Lecture 18: Input/Output (I/O): Buses and Peripherals Michael B. Greenwald Computer Architecture CIS 501 Fall 1999.
Datorteknik F1 bild 1 What is a bus? Slow vehicle that many people ride together –well, true... A bunch of wires...
EEE440 Computer Architecture
I/O—I/O Busses Professor Alvin R. Lebeck Computer Science 220 Fall 2001.
Chapter 4 MARIE: An Introduction to a Simple Computer.
L/O/G/O Input Output Chapter 4 CS.216 Computer Architecture and Organization.
Csci 136 Computer Architecture II – Buses and IO
CS2100 Computer Organisation Input/Output – Own reading only (AY2015/6) Semester 1 Adapted from David Patternson’s lecture slides:
1 Chapter 2 Central Processing Unit. 2 CPU The "brain" of the computer system is called the central processing unit. Everything that a computer does is.
Chapter 6 Storage and Other I/O Topics. Chapter 6 — Storage and Other I/O Topics — 2 Introduction I/O devices can be characterized by Behaviour: input,
Processor Memory Processor-memory bus I/O Device Bus Adapter I/O Device I/O Device Bus Adapter I/O Device I/O Device Expansion bus I/O Bus.
1 Lecture 14 Buses and I/O Data Transfer Peng Liu
بسم الله الرحمن الرحيم MEMORY AND I/O.
Mohamed Younis CMCS 411, Computer Architecture 1 CMCS Computer Architecture Lecture 26 Bus Interconnect May 7,
1 Device Controller I/O units typically consist of A mechanical component: the device itself An electronic component: the device controller or adapter.
1  2004 Morgan Kaufmann Publishers Page Tables. 2  2004 Morgan Kaufmann Publishers Page Tables.
CSE431 L24 IOSystems.1Irwin, PSU, 2005 CSE 431 Computer Architecture Fall 2005 Lecture 24. I/O Systems Mary Jane Irwin ( )
CSCE 385: Computer Architecture Spring 2014 Dr. Mike Turi I/O.
1 Computer Architecture & Assembly Language Spring 2001 Dr. Richard Spillman Lecture 19 – IO II.
Lecture 2. A Computer System for Labs
Buses: Presentation Outline
XU, Qiang 徐強 [Adapted from UC Berkeley’s D. Patterson’s and
Bus Interfacing Processor-Memory Bus Backplane Bus I/O Bus
Operating Systems (CS 340 D)
What is a bus? Slow vehicle that many people ride together
Chapter 8-A BUS.
Overview of Computer Architecture and Organization
Lecture 14 Buses and I/O Data Transfer
Peng Liu Lecture 14 I/O Peng Liu
Buses: Presentation Outline
Overview of Computer Architecture and Organization
CSC3050 – Computer Architecture
Presentation transcript:

CSIE30300 Computer Architecture Unit 11: Bus and I/O Systems Hsin-Chou Chi [Adapted from material by and

Review: Major Components of a Computer Processor Control Datapath Memory Devices Input Output  Important metrics for an I/O system l Performance l Expandability l Dependability l Cost, size, weight

Input and Output Devices  I/O devices are incredibly diverse with respect to l Behavior – input, output or storage l Partner – human or machine l Data rate – the peak rate at which data can be transferred between the I/O device and the main memory or processor DeviceBehaviorPartnerData rate (Mb/s) Keyboardinputhuman Mouseinputhuman Laser printeroutputhuman Graphics displayoutputhuman Network/LANinput or output machine Magnetic diskstoragemachine orders of magnitude range

I/O Performance Measures  I/O bandwidth (throughput) – amount of information that can be input (output) and communicated across an interconnect (e.g., a bus) to the processor/memory (I/O device) per unit time 1. How much data can we move through the system in a certain time? 2. How many I/O operations can we do per unit time?  I/O response time (latency) – the total elapsed time to accomplish an input or output operation l An especially important performance metric in real-time systems  Many applications require both high throughput and short response times

A Typical I/O System Processor Cache Memory - I/O Bus Main Memory I/O Controller Disk I/O Controller I/O Controller Graphics Network Interrupts Disk

I/O System Performance  Designing an I/O system to meet a set of bandwidth and/or latency constraints means 1. Finding the weakest link in the I/O system – the component that constrains the design l The processor and memory system ? l The underlying interconnection (e.g., bus) ? l The I/O controllers ? l The I/O devices themselves ? 2. (Re)configuring the weakest link to meet the bandwidth and/or latency requirements 3. Determining requirements for the rest of the components and (re)configuring them to support this latency and/or bandwidth

I/O System Interconnect Issues  A bus is a shared communication link (a single set of wires used to connect multiple subsystems) that needs to support a range of devices with widely varying latencies and data transfer rates l Advantages -Versatile – new devices can be added easily and can be moved between computer systems that use the same bus standard -Low cost – a single set of wires is shared in multiple ways l Disadvantages -Creates a communication bottleneck – bus bandwidth limits the maximum I/O throughput  The maximum bus speed is largely limited by l The length of the bus l The number of devices on the bus

Bus Characteristics  Control lines l Signal requests and acknowledgments l Indicate what type of information is on the data lines  Data lines l Data, addresses, and complex commands  Bus transaction consists of l Master issuing the command (and address) – request l Slave receiving (or sending) the data – action l Defined by what the transaction does to memory -Input – inputs data from the I/O device to the memory -Output – outputs data from the memory to the I/O device Bus Master Bus Slave Control lines: Master initiates requests Data lines: Data can go either way

Types of Buses  Processor-memory bus (proprietary) l Short and high speed l Matched to the memory system to maximize the memory- processor bandwidth l Optimized for cache block transfers  I/O bus (industry standard, e.g., SCSI, USB, Firewire) l Usually is lengthy and slower l Needs to accommodate a wide range of I/O devices l Connects to the processor-memory bus or backplane bus  Backplane bus (industry standard, e.g., ATA, PCIexpress) l The backplane is an interconnection structure within the chassis l Used as an intermediary bus connecting I/O busses to the processor-memory bus

A Computer System with One Bus: Backplane Bus  A single bus (the backplane bus) is used for: l Processor to memory communication l Communication between I/O devices and memory  Advantages: Simple and low cost  Disadvantages: slow and the bus can become a major bottleneck  Example: IBM PC - AT ProcessorMemory I/O Devices Backplane Bus

A Two-Bus System  I/O buses tap into the processor-memory bus via bus adaptors: l Processor-memory bus: mainly for processor-memory traffic l I/O buses: provide expansion slots for I/O devices  Apple Macintosh-II l NuBus: Processor, memory, and a few selected I/O devices l SCCI Bus: the rest of the I/O devices ProcessorMemory I/O Bus Processor Memory Bus Bus Adaptor Bus Adaptor Bus Adaptor I/O Bus I/O Bus

A Three-Bus System  A small number of backplane buses tap into the processor-memory bus l Processor-memory bus is used for processor memory traffic l I/O buses are connected to the backplane bus  Advantage: loading on the processor bus is greatly reduced ProcessorMemory Processor Memory Bus Bus Adaptor Bus Adaptor Bus Adaptor I/O Bus Backplane Bus I/O Bus

Synchronous and Asynchronous Buses  Synchronous bus (e.g., processor-memory buses) l Includes a clock in the control lines and has a fixed protocol for communication that is relative to the clock l Advantage: involves very little logic and can run very fast l Disadvantages: -Every device communicating on the bus must use same clock rate -To avoid clock skew, they cannot be long if they are fast  Asynchronous bus (e.g., I/O buses) l It is not clocked, so requires a handshaking protocol and additional control lines (ReadReq, Ack, DataRdy) l Advantages: -Can accommodate a wide range of devices and device speeds -Can be lengthened without worrying about clock skew or synchronization problems l Disadvantage: slow(er)

Asynchronous Bus Handshaking Protocol 7. I/O device sees DataRdy go low and drops Ack  Output (read) data from memory to an I/O device I/O device signals a request by raising ReadReq and putting the addr on the data lines ReadReq Data Ack DataRdy addrdata Memory sees ReadReq, reads addr from data lines, and raises Ack 2. I/O device sees Ack and releases the ReadReq and data lines 3. Memory sees ReadReq go low and drops Ack 4. When memory has data ready, it places it on data lines and raises DataRdy 5. I/O device sees DataRdy, reads the data from data lines, and raises Ack 6. Memory sees Ack, releases the data lines, and drops DataRdy

The Need for Bus Arbitration  Multiple devices may need to use the bus at the same time so must have a way to arbitrate multiple requests  Bus arbitration schemes usually try to balance: l Bus priority – the highest priority device should be serviced first l Fairness – even the lowest priority device should never be completely locked out from the bus  Bus arbitration schemes can be divided into four classes l Daisy chain arbitration – see next slide l Centralized, parallel arbitration – see next-next slide l Distributed arbitration by self-selection – each device wanting the bus places a code indicating its identity on the bus l Distributed arbitration by collision detection – device uses the bus when its not busy and if a collision happens (because some other device also decides to use the bus) then the device tries again later (Ethernet)

Daisy Chain Bus Arbitration  Advantage: simple  Disadvantages: l Cannot assure fairness – a low-priority device may be locked out indefinitely l Slower – the daisy chain grant signal limits the bus speed Bus Arbiter Device 1 Highest Priority Device N Lowest Priority Device 2 Ack Release Request wired-OR Data/Addr

Centralized Parallel Arbitration  Advantages: flexible, can assure fairness  Disadvantages: more complicated arbiter hardware  Used in essentially all processor-memory buses and in high-speed I/O buses Bus Arbiter Device 1 Device NDevice 2 Ack1 Data/Addr Ack2 AckN Request1Request2RequestN

Bus Bandwidth Determinates  The bandwidth of a bus is determined by l Whether its is synchronous or asynchronous and the timing characteristics of the protocol used l The data bus width l Whether the bus supports block transfers or only word at a time transfers FirewireUSB 2.0 TypeI/O Data lines42 ClockingAsynchronousSynchronous Max # devices63127 Max length4.5 meters5 meters Peak bandwidth 50 MB/s (400 Mbps) 100 MB/s (800 Mbps) 0.2 MB/s (low) 1.5 MB/s (full) 60 MB/s (high)

Example: The Pentium 4’s Buses System Bus (“Front Side Bus”): 64b x 800 MHz (6.4GB/s), 533 MHz, or 400 MHz 2 serial ATAs: 150 MB/s 8 USBs: 60 MB/s 2 parallel ATA: 100 MB/s Hub Bus: 8b x 266 MHz Memory Controller Hub (“Northbridge”) I/O Controller Hub (“Southbridge”) Gbit ethernet: GB/s DDR SDRAM Main Memory Graphics output: 2.0 GB/s PCI: 32b x 33 MHz

Buses in Transition  Companies are transitioning from synchronous, parallel, wide buses to asynchronous narrow buses l Reflection on wires and clock skew makes it difficult to use 16 to 64 parallel wires running at a high clock rate (e.g., ~400 MHz) so companies are transitioning to buses with a few one- way wires running at a very high “clock” rate (~2 GHz) PCIPCI express ATASerial ATA Total # wires # data wires32 – 64 (2-way) 2 x 4 (1-way) 16 (2-way) 2 x 2 (1-way) Clock (MHz)33 – Peak BW (MB/s)128 – (3 Gbps)

Communication of I/O Devices and Processor  How the processor directs the I/O devices l Special I/O instructions -Must specify both the device and the command l Memory-mapped I/O -Portions of the high-order memory address space are assigned to each I/O device -Read and writes to those memory addresses are interpreted as commands to the I/O devices -Load/stores to the I/O address space can only be done by the OS  How the I/O device communicates with the processor l Polling – the processor periodically checks the status of an I/O device to determine its need for service -Processor is totally in control – but does all the work -Can waste a lot of processor time due to speed differences l Interrupt-driven I/O – the I/O device issues an interrupts to the processor to indicate that it needs attention

Interrupt-Driven Input add sub and or beq lbu sb... jr memory user program 1. input interrupt input interrupt service routine Processor Receiver Memory : Keyboard

Interrupt-Driven Input memory user program 1. input interrupt 2.1 save state Processor Receiver Memory add sub and or beq lbu sb... jr 2.2 jump to interrupt service routine 2.4 return to user code Keyboard 2.3 service interrupt input interrupt service routine

Interrupt-Driven Output Processor Trnsmttr Memory Display add sub and or beq lbu sb... jr memory user program 1.output interrupt 2.1 save state output interrupt service routine 2.2 jump to interrupt service routine 2.4 return to user code 2.3 service interrupt

Interrupt-Driven I/O  An I/O interrupt is asynchronous wrt instruction execution l Is not associated with any instruction so doesn’t prevent any instruction from completing -You can pick your own convenient point to handle the interrupt  With I/O interrupts l Need a way to identify the device generating the interrupt l Can have different urgencies (so may need to be prioritized)  Advantages of using interrupts l Relieves the processor from having to continuously poll for an I/O event; user program progress is only suspended during the actual transfer of I/O data to/from user memory space  Disadvantage – special hardware is needed to l Cause an interrupt (I/O device) and detect an interrupt and save the necessary information to resume normal processing after servicing the interrupt (processor)

Direct Memory Access (DMA)  For high-bandwidth devices (like disks) interrupt-driven I/O would consume a lot of processor cycles  DMA – the I/O controller has the ability to transfer data directly to/from the memory without involving the processor 1. The processor initiates the DMA transfer by supplying the I/O device address, the operation to be performed, the memory address destination/source, the number of bytes to transfer 2. The I/O DMA controller manages the entire transfer (possibly thousand of bytes in length), arbitrating for the bus 3. When the DMA transfer is complete, the I/O controller interrupts the processor to let it know that the transfer is complete  There may be multiple DMA devices in one system l Processor and I/O controllers contend for bus cycles and for memory

The DMA Stale Data Problem  In systems with caches, there can be two copies of a data item, one in the cache and one in the main memory l For a DMA read (from disk to memory) – the processor will be using stale data if that location is also in the cache l For a DMA write (from memory to disk) and a write-back cache – the I/O device will receive stale data if the data is in the cache and has not yet been written back to the memory  The coherency problem is solved by 1. Routing all I/O activity through the cache – expensive and a large negative performance impact 2. Having the OS selectively invalidate the cache for an I/O read or force write-backs for an I/O write (flushing) 3. Providing hardware to selectively invalidate or flush the cache – need a hardware snooper

I/O and the Operating System  The operating system acts as the interface between the I/O hardware and the program requesting I/O l To protect the shared I/O resources, the user program is not allowed to communicate directly with the I/O device  Thus OS must be able to give commands to I/O devices, handle interrupts generated by I/O devices, provide equitable access to the shared I/O resources, and schedule I/O requests to enhance system throughput l I/O interrupts result in a transfer of processor control to the supervisor (OS) process