Lectures More I/O

Similar documents
Lecture 23. Finish-up buses Storage

Introduction to I/O. April 30, Howard Huang 1

Components of the Virtual Memory System

PC I/O. May 7, Howard Huang 1

Module 6: INPUT - OUTPUT (I/O)

IT 252 Computer Organization and Architecture. Introduction to I/O

FUNCTIONS OF COMPONENTS OF A PERSONAL COMPUTER

Storage Systems. Storage Systems

Chapter 8. A Typical collection of I/O devices. Interrupts. Processor. Cache. Memory I/O bus. I/O controller I/O I/O. Main memory.

Administrivia. CMSC 411 Computer Systems Architecture Lecture 19 Storage Systems, cont. Disks (cont.) Disks - review

CPS104 Computer Organization and Programming Lecture 18: Input-Output. Outline of Today s Lecture. The Big Picture: Where are We Now?

Computer Organization and Structure. Bing-Yu Chen National Taiwan University

INPUT/OUTPUT DEVICES Dr. Bill Yi Santa Clara University

Lecture 23: Storage Systems. Topics: disk access, bus design, evaluation metrics, RAID (Sections )

A+ Guide to Hardware: Managing, Maintaining, and Troubleshooting, 5e. Chapter 1 Introducing Hardware

About the Presentations

Storage systems. Computer Systems Architecture CMSC 411 Unit 6 Storage Systems. (Hard) Disks. Disk and Tape Technologies. Disks (cont.

Readings. Storage Hierarchy III: I/O System. I/O (Disk) Performance. I/O Device Characteristics. often boring, but still quite important

Computer Overview. A computer item you can physically see or touch. A computer program that tells computer hardware how to operate.

Where We Are in This Course Right Now. ECE 152 Introduction to Computer Architecture Input/Output (I/O) Copyright 2012 Daniel J. Sorin Duke University

Lecture 13. Storage, Network and Other Peripherals

Storage. Hwansoo Han

Chapter Seven Morgan Kaufmann Publishers

EE108B Lecture 17 I/O Buses and Interfacing to CPU. Christos Kozyrakis Stanford University

Computer Science 146. Computer Architecture

Introduction To Computer Hardware. Hafijur Rahman

7/28/ Prentice-Hall, Inc Prentice-Hall, Inc Prentice-Hall, Inc Prentice-Hall, Inc Prentice-Hall, Inc.

I/O CANNOT BE IGNORED

Chapter 6 Storage and Other I/O Topics

Quiz for Chapter 6 Storage and Other I/O Topics 3.10

So computers can't think in the same way that people do. But what they do, they do excellently well and very, very fast.

Input/Output. Today. Next. Principles of I/O hardware & software I/O software layers Disks. Protection & Security

This page intentionally left blank

Technology in Action

Virtual Memory. Reading. Sections 5.4, 5.5, 5.6, 5.8, 5.10 (2) Lecture notes from MKP and S. Yalamanchili

CS 201 The Memory Hierarchy. Gerson Robboy Portland State University

Key Points. Rotational delay vs seek delay Disks are slow. Techniques for making disks faster. Flash and SSDs

ECE232: Hardware Organization and Design

Final Lecture. A few minutes to wrap up and add some perspective

Buses. Disks PCI RDRAM RDRAM LAN. Some slides adapted from lecture by David Culler. Pentium 4 Processor. Memory Controller Hub.

I/O CANNOT BE IGNORED

I/O. Fall Tore Larsen. Including slides from Pål Halvorsen, Tore Larsen, Kai Li, and Andrew S. Tanenbaum)

I/O. Fall Tore Larsen. Including slides from Pål Halvorsen, Tore Larsen, Kai Li, and Andrew S. Tanenbaum)

CSE 120. Operating Systems. March 27, 2014 Lecture 17. Mass Storage. Instructor: Neil Rhodes. Wednesday, March 26, 14

Multilevel Memories. Joel Emer Computer Science and Artificial Intelligence Laboratory Massachusetts Institute of Technology

Providing Fundamental ICT Skills for Syrian Refugees PFISR

CMSC 313 Lecture 26 DigSim Assignment 3 Cache Memory Virtual Memory + Cache Memory I/O Architecture

CS232: Computer Architecture II

Some material adapted from Mohamed Younis, UMBC CMSC 611 Spr 2003 course slides Some material adapted from Hennessy & Patterson / 2003 Elsevier

ECE 485/585 Microprocessor System Design

CSCI-GA Database Systems Lecture 8: Physical Schema: Storage

CS 31: Intro to Systems Storage and Memory. Kevin Webb Swarthmore College March 17, 2015

Storage. CS 3410 Computer System Organization & Programming

HARDWARE AND OPERATING SYSTEMS

Introduction to Input and Output

CS 265. Computer Architecture. Wei Lu, Ph.D., P.Eng.

Main Parts of Personal Computer

CS 261 Fall Mike Lam, Professor. Memory

Database Systems II. Secondary Storage

Data Storage and Query Answering. Data Storage and Disk Structure (2)

Connectivity. Module 2.2. Copyright 2006 EMC Corporation. Do not Copy - All Rights Reserved. Connectivity - 1

CS152 Computer Architecture and Engineering Lecture 19: I/O Systems

Computer System Architecture

Homeschool Enrichment. The System Unit: Processing & Memory

CENG3420 Lecture 08: Memory Organization

Introduction to the Personal Computer

Principles of Data Management. Lecture #2 (Storing Data: Disks and Files)

UC Santa Barbara. Operating Systems. Christopher Kruegel Department of Computer Science UC Santa Barbara

Storage Technologies and the Memory Hierarchy

VIA ProSavageDDR KM266 Chipset

COMP283-Lecture 3 Applied Database Management

1 PC Hardware Basics Microprocessors (A) PC Hardware Basics Fal 2004 Hadassah College Dr. Martin Land

Pharmacy college.. Assist.Prof. Dr. Abdullah A. Abdullah

Reading and References. Input / Output. Why Input and Output? A typical organization. CSE 410, Spring 2004 Computer Systems

Lecture 25: Interconnection Networks, Disks. Topics: flow control, router microarchitecture, RAID

CS 101, Mock Computer Architecture

The Memory Hierarchy. Cache, Main Memory, and Virtual Memory (Part 2)

QUIZ Ch.6. The EAT for a two-level memory is given by:

Module 1: Basics and Background Lecture 4: Memory and Disk Accesses. The Lecture Contains: Memory organisation. Memory hierarchy. Disks.

Chapter 5A. Large and Fast: Exploiting Memory Hierarchy

Computer Performance

Chapter Two. Hardware Basics: Inside the Box

Computer Architecture

Computer Hardware 2. Type of Computers. User Point of View. The Motherboard. Inside. Content

High-Performance Storage Systems

CSE 120. Overview. July 27, Day 8 Input/Output. Instructor: Neil Rhodes. Hardware. Hardware. Hardware

I/O Handling. ECE 650 Systems Programming & Engineering Duke University, Spring Based on Operating Systems Concepts, Silberschatz Chapter 13

Introduction to computers

Computers Are Your Future

Mass-Storage. ICS332 - Fall 2017 Operating Systems. Henri Casanova

Welcome to COMPSCI111/111G!

CIT 668: System Architecture. Computer Systems Architecture

Chapter 9: Peripheral Devices. By: Derek Hildreth Chad Davis

Chapter-6. SUBJECT:- Operating System TOPICS:- I/O Management. Created by : - Sanjay Patel

Introduction Disks RAID Tertiary storage. Mass Storage. CMSC 420, York College. November 21, 2006

Computer Architecture Computer Science & Engineering. Chapter 6. Storage and Other I/O Topics BK TP.HCM

CS 152 Computer Architecture and Engineering

A+ Guide to Hardware: Managing, Maintaining, and Troubleshooting, 5e. Chapter 6 Supporting Hard Drives

Chapter 6. Storage and Other I/O Topics

The Components of the System Unit

Transcription:

Lectures 24-25 More I/O 1

I/O is slow! How fast can a typical I/O device supply data to a computer? A fast typist can enter 9-10 characters a second on a keyboard. Common local-area network (LAN) speeds go up to 100 Mbit/s, which is about 12.5MB/s. Today s hard disks provide a lot of storage and transfer speeds around 40-60MB per second. Unfortunately, this is excruciatingly slow compared to modern processors and memory systems: Modern CPUs can execute more than a billion instructions per second. Modern memory systems can provide 2-4 GB/s bandwidth. I/O performance has not increased as quickly as CPU performance, partially due to neglect and partially to physical limitations. This is changing, with faster networks, better I/O buses, RAID drive arrays, and other new technologies. 2

I/O speeds often limit system performance Many computing tasks are I/O-bound, and the speed of the input and output devices limits the overall system performance. This is another instance of Amdahl s Law. Improved CPU performance alone has a limited effect on overall system speed. Execution time after improvement = Time affected by improvement Amount of improvement + Time unaffected by improvement 3

Common I/O devices Hard drives are almost a necessity these days, so their speed has a big impact on system performance. They store all the programs, movies and assignments you crave. Virtual memory systems let a hard disk act as a large (but slow) part of main memory. Networks are also ubiquitous nowadays. They give you access to data from around the world. Hard disks can act as a cache for network data. For example, web browsers often store local copies of recently viewed web pages. 4

The Hardware (the motherboard) CPU socket Serial, parallel, and USB ports (Back) Memory slots IDE drive connectors (Front) AGP slot PCI slots 5

What is all that stuff? Different motherboards support different CPUs, types of memories, and expansion options. The picture is an Asus A7V. The CPU socket supports AMD Duron and Athlon processors. There are three DIMM slots for standard PC100 memory. Using 512MB DIMMs, you can get up to 1.5GB of main memory. The AGP slot is for video cards, which generate and send images from the PC to a monitor. IDE ports connect internal storage devices like hard drives, CD-ROMs, and Zip drives (anyone remember those?). PCI slots hold other internal devices such as network and sound cards and modems. Serial, parallel and USB ports are used to attach external devices such as scanners and printers. 6

How is it all connected? CPU Memory North Bridge chip AGP port Video card PCI bus PCI slots South Bridge chip Modem Sound card IDE controller Serial, parallel and USB ports Hard disks CD-ROM 7

Networks and Buses There are two main ingredients to I/O systems. Devices like hard drives that we discussed last time. Buses/Networks connect devices to each other and the processor. Back of the envelope performance metrics Bus organization and Performance Serial vs. Parallel 8

Networks (e.g., the Internet) When communicating over a network, typically your communication is broken into a collection of packets Each packet carries ~1kB of data Packets are reassembled into the original message at the destination. 9

Network (and I/O) Performance There are two fundamental performance metrics for I/O systems: Bandwidth: the amount of data that can be transferred in unit time (units = bytes/time) This is a primary concern for applications which transfer large amounts of data in big blocks. If you download large files, bandwidth will be the limiting factor. Latency: the time taken for the smallest transfer (units = time) This is a primary concern for programs that do many small dependent transfers. It takes time for bits to travel across states, countries and oceans! >ping www.washington.edu Approximate round trip times in milli-seconds: Minimum = 104ms, Maximum = 115ms, Average = 112ms >ping www.stanford.edu Approximate round trip times in milli-seconds: Minimum = 160ms, Maximum = 170ms, Average = 164ms >ping nus.edu.sg Approximate round trip times in milli-seconds: Minimum = 410ms, Maximum = 437ms, Average = 420ms 10

Back of the Envelope Calculation Because the transmission of network packets can be pipelined, the time for a transfer can be estimated as: Transfer time = latency + transfer_size / bandwidth = time + bytes / (bytes/time) Dominant term for small transfers Dominant term for large transfers 11

Computer buses Every computer has several small networks inside, called buses, to connect processors, memory, and I/O devices. The simplest kind of bus is linear, as shown below. All devices share the same bus. Only one device at a time may transfer data on the bus. Simple is not always good! With many devices, there might be a lot of contention. The distance from one end of the bus to the other may also be relatively long, increasing latencies. System bus CPU Memory Hard disks CD-ROM Network Display 12

Hierarchical buses We could split the bus into different segments. Since the CPU and memory need to communicate so often, a shorter and faster processor-memory bus can be dedicated to them. A separate I/O bus would connect the slower devices to each other, and eventually to the processor. CPU Memory Processor-memory bus I/O bus Hard disks CD-ROM Network Display 13

Basic bus protocols Although physically, our computer may have a hierarchy of buses (for performance), logically it behaves like a single bus Last time we discussed how I/O reads and writes can be programmed like loads and stores, using addresses. Two devices might interact as follows. 1. An initiator sends an address and data over the bus to a target. 2. The target processes the request by reading or writing data. 3. The target sends a reply over the bus back to the initiator. The bus width limits the number of bits transferred per cycle. (1) (3) System bus CPU Memory Hard disks CD-ROM Network Display (2) 14

What is the bus anyway? A bus is just a bunch of wires which transmits three kinds of information. Control signals specify commands like read or write. The location on the device to read or write is the address. Finally, there is also the actual data being transferred. Some buses include separate control, address and data lines, so all of this information can be sent in one clock cycle. Control Address Data CPU Memory Hard disks CD-ROM Network Display 15

Multiplexed bus lines Unfortunately, this could lead to many wires and wires cost money. Many buses transfer 32 to 64 bits of data at a time. Addresses are usually at least 32-bits long. Another common approach is to multiplex some lines. For example, we can use the same lines to send both the address and the data, one after the other. The drawback is that now it takes two cycles to transmit both pieces of information. Control Address & Data CPU Memory Hard disks CD-ROM Network Display 16

Example bus problems I/O problems always start with some assumptions about a system. A CPU and memory share a 32-bit bus running at 100MHz. The memory needs 50ns to access a 64-bit value from one address. Then, questions generally ask about the latency or throughput. How long does it take to read one address of memory? How many random addresses can be read per second? You need to find the total time for a single transaction. 1. It takes one cycle to send a 32-bit address to the memory. 2. The memory needs 50ns, or 5 cycles, to read a 64-bit value. 3. It takes two cycles to send 64 bits over a 32-bit wide bus. Then you can calculate latencies and throughputs. The time to read from one address is eight cycles or 80ns. You can do 12.5 million reads per second, for an effective bandwidth of (12.5 x 10 6 reads/second) x (8 bytes/read) = 100MB/s. 17

Example Bus Problems, cont. 2) Assume the following system: A CPU and memory share a 32-bit bus running at 100MHz. The memory needs 50ns to access a 64-bit value from one address. For this system, a single read can be performed in eight cycles or 80ns for an effective bandwidth of (12.5 x 10 6 reads/second) x (8 bytes/read) = 100MB/s. A) If the memory was widened, such that 128-bit values could be read in 50ns, what is the new effective bandwidth? B) What is the bus utilization (fraction of cycles the bus is used) to achieve the above bandwidth? C) If utilization were 100% (achievable by adding additional memories), what effective bandwidth would be achieved? 18

Synchronous and asynchronous buses A synchronous bus operates with a central clock signal. Bus transactions can be handled easily with finite state machines. However, the clock rate and bus length are inversely proportional; faster clocks mean less time for data to travel. This is one reason why PCs never have more than about five expansion slots. All devices on the bus must run at the same speed, even if they are capable of going faster. An asynchronous bus does not rely on clock signals. Bus transactions rely on complicated handshaking protocols so each device can determine when other ones are available or ready. On the other hand, the bus can be longer and individual devices can operate at different speeds. Many external buses like USB and Firewire are asynchronous. 19

Buses in modern PCs CPU Memory North Bridge chip AGP port Video card PCI bus PCI slots South Bridge chip Modem Sound card IDE controller Serial, parallel and USB ports Hard disks CD-ROM 20

PCI Peripheral Component Interconnect is a synchronous 32-bit bus running at 33MHz, although it can be extended to 64 bits and 66MHz. The maximum bandwidth is about 132 MB/s. 33 million transfers/second x 4 bytes/transfer = 132MB/s Cards in the motherboard PCI slots plug directly into the PCI bus. Devices made for the older and slower ISA bus standard are connected via a south bridge controller chip, in a hierarchical manner. North Bridge chip 33 MHz PCI bus PCI slots South Bridge chip 21

Frequencies CPUs actually operate at two frequencies. The internal frequency is the clock rate inside the CPU, which is what we ve been talking about so far. The external frequency is the speed of the processor bus, which limits how fast the CPU can transfer data. The internal frequency is usually a multiple of the external bus speed. A 2.167 GHz Athlon XP sits on a 166 MHz bus (166 x 13). A 2.66 GHz Pentium 4 might use a 133 MHz bus (133 x 20). You may have seen the Pentium 4 s bus speed quoted at 533MHz. This is because the Pentium 4 s bus is quad-pumped, so that it transfers 4 data items every clock cycle. Processor and Memory data rates far exceed PCI s capabilities: With an 8-byte wide 533 MHz bus, the Pentium 4 achieves 4.3GB/s A bank of 166MHz Double Data Rate (DDR-333) Memory achieves 2.7GB/s 22

The North Bridge To achieve the necessary bandwidths, a frontside bus is often dedicated to the CPU and main memory. bus is actually a bit of a misnomer as, in most systems, the interconnect consists of point-to-point links. The video card, which also need significant bandwidth, is also given a direct link to memory via the Accelerated Graphics Port (AGP). All this CPU-memory traffic goes through the north bridge controller, which can get very hot (hence the little green heatsink). CPU Memory 64 North Bridge chip 32 AGP port Video card 2.7GB/s @ 133MHz 1.1GB/s @ 133MHz x 2 23

External buses External buses are provided to support the frequent plugging and unplugging of devices As a result their designs significantly differ from internal buses Two modern external buses, Universal Serial Bus (USB) and FireWire, have the following (desirable) characteristics: Plug-and-play standards allow devices to be configured with software, instead of flipping switches or setting jumpers. Hot plugging means that you don t have to turn off a machine to add or remove a peripheral. The cable transmits power! No more power cables or extension cords. Serial links are used, so the cable and connectors are small. 24

Serial/Parallel Why are modern external buses serial rather than parallel? Generally, one would think that having more wires would increase bandwidth and reduce latency, right? Yes, but only if they can be clocked at comparable frequencies. Two physical issues allow serial links to be clocked significantly faster: On parallel interconnects, interference between the signal wires becomes a serious issue. Skew is also a problem; all of the bits in a parallel transfer could arrive at slightly different times. Serial links are being increasingly considered for internal buses: Serial ATA is a new standard for hard drive interconnects PCI-Express (aka 3GI/O) is a PCI bus replacement that uses serial links 25

The ugly guts of a hard disk. Hard drives Data is stored on double-sided magnetic disks called platters. Each platter is arranged like a record, with many concentric tracks. Tracks are further divided into individual sectors, which are the basic unit of data transfer. Each surface has a read/write head like the arm on a record player, but all the heads are connected and move together. A 75GB IBM Deskstar has roughly: 5 platters (10 surfaces), 27,000 tracks per surface, 512 sectors per track, and 512 bytes per sector. P latter P latters Tra cks S e ctors T rack 26

Accessing data on a hard disk Accessing a sector on a track on a hard disk takes a lot of time! Seek time measures the delay for the disk head to reach the track. A rotational delay accounts for the time to get to the right sector. The transfer time is how long the actual data read or write takes. There may be additional overhead for the operating system or the controller hardware on the hard disk drive. Rotational speed, measured in revolutions per minute or RPM, partially determines the rotational delay and transfer time. Tracks Platter Sectors Track 27

Estimating disk latencies (seek time) Manufacturers often report average seek times of 8-10ms. These times average the time to seek from any track to any other track. In practice, seek times are often much better. For example, if the head is already on or near the desired track, then seek time is much smaller. In other words, locality is important! Actual average seek times are often just 2-3ms. 28

Estimating Disk Latencies (rotational latency) Once the head is in place, we need to wait until the right sector is underneath the head. This may require as little as no time (reading consecutive sectors) or as much as a full rotation (just missed it). On average, for random reads/writes, we can assume that the disk spins halfway on average. Rotational delay depends partly on how fast the disk platters spin. Average rotational delay = 0.5 x rotations x rotational speed For example, a 5400 RPM disk has an average rotational delay of: 0.5 rotations / (5400 rotations/minute) = 5.55ms 29

Estimating disk times The overall response time is the sum of the seek time, rotational delay, transfer time, and overhead. Assume a disk has the following specifications. An average seek time of 9ms A 5400 RPM rotational speed A 10MB/s average transfer rate 2ms of overheads How long does it take to read a random 1,024 byte sector? The average rotational delay is 5.55ms. The transfer time will be about (1024 bytes / 10 MB/s) = 0.1ms. The response time is then 9ms + 5.55ms + 0.1ms + 2ms = 16.7ms. That s 16,700,000 cycles for a 1GHz processor! One possible measure of throughput would be the number of random sectors that can be read in one second. (1 sector / 16.7ms) x (1000ms / 1s) = 60 sectors/second. 30

Estimating disk times The overall response time is the sum of the seek time, rotational delay, transfer time, and overhead. Assume a disk has the following specifications. An average seek time of 3ms A 7200 RPM rotational speed A 10MB/s average transfer rate 2ms of overheads How long does it take to read a random 1,024 byte sector? The average rotational delay is: The transfer time will be about: The response time is then: How long would it take to read a whole track (512 sectors) selected at random, if the sectors could be read in any order? 31

Parallel I/O Many hardware systems use parallelism for increased speed. Pipelined processors include extra hardware so they can execute multiple instructions simultaneously. Dividing memory into banks lets us access several words at once. A redundant array of inexpensive disks or RAID system allows access to several hard drives at once, for increased bandwidth. The picture below shows a single data file with fifteen sectors denoted A-O, which are striped across four disks. This is reminiscent of interleaved main memories from last week. 32