Eastern Mediterranean University School of Computing and Technology INPUT / OUTPUT

Similar documents
Computer Organization ECE514. Chapter 5 Input/Output (9hrs)

Generic Model of I/O Module Interface to CPU and Memory Interface to one or more peripherals

Chapter 7 : Input-Output Organization

Input/Output Problems. External Devices. Input/Output Module. I/O Steps. I/O Module Function Computer Architecture

Organisasi Sistem Komputer

Input / Output. School of Computer Science G51CSA

Digital Design Laboratory Lecture 6 I/O

Programmed I/O Interrupt-Driven I/O Direct Memory Access (DMA) I/O Processors. 10/12/2017 Input/Output Systems and Peripheral Devices (02-2)

INPUT-OUTPUT ORGANIZATION

Announcement. Computer Architecture (CSC-3501) Lecture 23 (17 April 2008) Chapter 7 Objectives. 7.1 Introduction. 7.2 I/O and Performance

INPUT/OUTPUT ORGANIZATION

INPUT/OUTPUT ORGANIZATION

Module- 6 I/O Organization and Peripherals

Unit 5. Memory and I/O System

Computer Organization


Unit 3 and Unit 4: Chapter 4 INPUT/OUTPUT ORGANIZATION

1. Define Peripherals. Explain I/O Bus and Interface Modules. Peripherals: Input-output device attached to the computer are also called peripherals.

Modes of Transfer. Interface. Data Register. Status Register. F= Flag Bit. Fig. (1) Data transfer from I/O to CPU

Computer Architecture CS 355 Busses & I/O System


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

Top-Level View of Computer Organization

Chapter 11: Input/Output Organisation. Lesson 17: Standard I/O buses USB (Universal Serial Bus) and IEEE1394 FireWire Buses

Computer-System Organization (cont.)

I/O Management and Disk Scheduling. Chapter 11

HANDLING MULTIPLE DEVICES

Chapter 1 Computer System Overview

CSC 553 Operating Systems

Input/Output Management

5.b Principles of I/O Hardware CPU-I/O communication

Computer Organization

I/O Management Intro. Chapter 5

I/O Devices. I/O Management Intro. Sample Data Rates. I/O Device Handling. Categories of I/O Devices (by usage)

ECE 341. Lecture # 19

I/O Systems. Jo, Heeseung

[08] IO SUBSYSTEM 1. 1

Input/Output Systems

STANDARD I/O INTERFACES

Input Output (IO) Management

Chapter 5 Input/Output Organization. Jin-Fu Li Department of Electrical Engineering National Central University Jungli, Taiwan

3. Controtlto specify the mode of transfer such as read or write 4. A control to start the DMA transfer

CS330: Operating System and Lab. (Spring 2006) I/O Systems

COSC 243. Input / Output. Lecture 13 Input/Output. COSC 243 (Computer Architecture)

Microprocessor & Interfacing Lecture DMA Controller--1

CS370 Operating Systems

INPUT-OUTPUT ORGANIZATION

ECE331: Hardware Organization and Design

Device-Functionality Progression

Chapter 12: I/O Systems. I/O Hardware

by I.-C. Lin, Dept. CS, NCTU. Textbook: Operating System Concepts 8ed CHAPTER 13: I/O SYSTEMS

Module 6: INPUT - OUTPUT (I/O)

Computer Organization (Input-output)

Advanced Parallel Architecture Lesson 4 bis. Annalisa Massini /2015

Bus System. Bus Lines. Bus Systems. Chapter 8. Common connection between the CPU, the memory, and the peripheral devices.

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

操作系统概念 13. I/O Systems

Introduction to Input and Output

I/O Systems. Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University

Chapter 13: I/O Systems

Readings, exercises: Chapter 11 (Due: 10/4) Homework keys Study group(s) Prelim 1 10/6!

CS152 Computer Architecture and Engineering Lecture 20: Busses and OS s Responsibilities. Recap: IO Benchmarks and I/O Devices

Operating Systems 2010/2011

INPUT/OUTPUT DEVICES Dr. Bill Yi Santa Clara University

The control of I/O devices is a major concern for OS designers

INPUT-OUTPUT ORGANIZATION

Chapter 3. Top Level View of Computer Function and Interconnection. Yonsei University

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

Operating System: Chap13 I/O Systems. National Tsing-Hua University 2016, Fall Semester

Operating Systems. Lecture 09: Input/Output Management. Elvis C. Foster

I/O. CS 416: Operating Systems Design Department of Computer Science Rutgers University

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)

Computer System Overview OPERATING SYSTEM TOP-LEVEL COMPONENTS. Simplified view: Operating Systems. Slide 1. Slide /S2. Slide 2.

C02: Interrupts and I/O

Computer System Overview

ECE232: Hardware Organization and Design

CSE 380 Computer Operating Systems

Chapter 13: I/O Systems

Part I Overview Chapter 1: Introduction

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.

Computer Organization

Chapter 13: I/O Systems

5 Computer Organization

Eastern Mediterranean University School of Computing and Technology CACHE MEMORY. Computer memory is organized into a hierarchy.

OPERATING SYSTEMS CS136

INFORMATION COMUNICATION TECHNOLOGY SKS Lecture Two

Module 12: I/O Systems

I/O - input/output. system components: CPU, memory, and bus -- now add I/O controllers and peripheral devices. CPU Cache

Operating Systems (CS1022) Input/Output. Yagiz Özbek Evren

Module 2: Computer-System Structures. Computer-System Architecture

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

CSCI-GA Operating Systems I/O. Hubertus Franke

Digital System Design

B.H.GARDI COLLEGE OF MASTER OF COMPUTER APPLICATION

4 Multiplexer. Y Fig Keyboard Scan Matrix

5 Computer Organization

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

UNIT I OPERATING SYSTEMS OVERVIEW

Chapter 13: I/O Systems

Transcription:

Eastern Mediterranean University School of Computing and Technology ITEC255 Computer Organization & Architecture INPUT / OUTPUT Introduction Computer system s I/O architecture is its interface to outside world. This architecture provides a systematic means of controlling interaction with the outside world and provides the operating system with the information it needs to manage I/O activity effectively. 2 1

Introduction Each I/O module interfaces to system bus and controls one or more peripheral devices. Why not connect peripherals directly to system bus? There are a wide variety of peripherals with various methods of operation. Data transfer rate of peripherals is often much slower than memory or CPU. Peripherals often use different data formats and word lengths than the computer to which they are attached. Thus, an I/O module is required. 3 Introduction Two major functions of an I/O module are: Interface to CPU and memory via system bus or central switch. Interface to one or more peripheral devices by tailored data links. 4 2

External Devices An external device attaches to an I/O module by a link. The link is used to exchange control, status and data between the I/O module and the external device. An external device connected to an I/O module is often referred to as peripheral device or simply peripheral. 5 External Devices External devices are classified into three categories: Human readable: Suitable for communicating with the computer user (e.g. video display terminals, printers). Machine readable: Suitable for communicating with equipment (e.g. magnetic disks, tape systems, sensors). Communication: Suitable for communicating with remote devices (e.g. modems, NICs). 6 3

External Devices The nature of an external device is shown below. The interface to the I/O module is in the form of control, data and status signals. 7 External Devices Control signals determine the function that the device will perform, such as send data to the I/O module (INPUT or READ) accept data from the I/O module (OUTPUT or WRITE) report status perform some control function particular to the device (e.g. position a disk head). Data are in the form of a set of bits to be sent to or received from the I/O module. Status signals indicate the state of the device. Examples are READY/NOT-READY to show whether the device is ready for data transfer. 8 4

External Devices Control logic associated with the device, controls the device s operation in response to direction from the I/O module. The transducer converts data from electrical to other forms of energy during output and from other forms to electrical during input. Typically, a buffer is associated with the transducer to temporarily hold data being transferred between the I/O module and the external environment. 9 I/O Modules Function The major functions or requirements for an I/O module fall into the following categories: Control and timing: Coordinates flow of traffic between internal resources and external devices. Processor communication involves following: Command decoding: I/O module accepts commands from CPU typically sent as signals on control bus (e.g. READ sector, WRITE sector, SEEK track number). Data: Data are exchanged between CPU and I/O module over data bus. Status reporting: Used to know status of I/O module. Common status signals are BUSY and READY. Address recognition: An I/O module must recognize one unique address for each peripheral it controls. 10 5

I/O Modules Function Device communication: On the other side of I/O module, communication involves commands, status information and data. Data buffering: Rate of data transfer to or from CPU is orders of magnitude faster than to or from external devices. I/O module buffers data so that peripheral can send or receive at its rate and CPU can send or receive at its rate. Error detection: I/O module must detect and correct or report error that occur to CPU. One class of errors includes mechanical and electrical malfunctions reported by device (e.g. paper jam). Another class includes data errors during transmission. 11 I/O Modules Structure General block diagram of an I/O module: 12 6

I/O Modules Structure The module connects to the rest of the computer through a set of signal lines (e.g. system bus lines). Data transferred to and from the module are buffered in one or more data registers. There may also be one or more status registers that provide current status information. A status register may also function as a control register, to accept detailed control information from the processor. The logic within the module interacts with the processor via a set of control lines. 13 I/O Modules Structure The processor uses the control lines to issue commands to the I/O module. The module must also be able to recognize and generate addresses associated with the devices it controls. Each I/O module has a unique address or, if it controls more than one external device, a unique set of addresses. Finally, the I/O module contains logic specific to the interface with each device that it controls. 14 7

I/O Techniques There are three techniques for I/O operations. Programmed I/O Interrupt-driven I/O Direct memory access (DMA) 15 Programmed I/O With programmed I/O, data are exchanged between the processor and the I/O module. When the processor issues a command to the I/O module, it must wait until the I/O operation is complete. If the processor is faster than the I/O module, this is wasteful of processor time. The processor is responsible for extracting data from main memory for output and storing data in main memory for input. 16 8

Programmed I/O Overview of programmed I/O: When the processor is executing a program and encounters an instruction relating to I/O, it executes that instruction by issuing a command to the appropriate I/O module. The I/O module will perform the requested action and then set the appropriate bits in the I/O status register. The I/O module takes no further action to alert the processor. Thus, it is the responsibility of the processor periodically to check the status of the I/O module until it finds that the operation is complete. 17 Interrupt-Driven I/O The problem with programmed I/O is that the processor has to wait a long time for the I/O module. The processor must repeatedly check the status of the I/O module. As a result, the level of the performance of the entire system is severely degraded. An alternative is for the processor to issue an I/O command to a module and then go on to do some other useful work. The I/O module will then interrupt the processor to request service when it is ready to exchange data with the processor. 18 9

Interrupt-Driven I/O Two design issues in implementing interrupt-driven I/O should be considered. How does the processor determine which device issued the interrupt? If multiple interrupts have occurred, how does the processor decide which one to process? Initially, the answer to the first question is mentioned. There are four general techniques for device identification: Multiple interrupt lines Software poll Daisy chain Bus arbitration 19 Interrupt-Driven I/O Multiple interrupt lines It is the most straightforward approach. It provides multiple interrupt lines between the CPU and I/O modules. However, it is impractical to dedicate more than a few bus lines. Even if multiple lines are used, it is likely that each line will have multiple I/O modules attached to it. Thus, one of the other three techniques must be used on each line. 20 10

Interrupt-Driven I/O Software poll When the processor detects an interrupt, it branches to an interrupt-service routine whose job it is to poll each I/O module to determine which module caused the interrupt. The poll could be in the form of a separate command line. In this case, the processor raises TESTI/O command and places the address of a particular I/O module on the address lines. The I/O module responds positively if it set the interrupt. Once the correct module is identified, the processor branches to a device-service routine specific to that device. It is a time consuming process. 21 Interrupt-Driven I/O Daisy chain For interrupts, all I/O modules share a common interrupt request line. The interrupt acknowledge line is daisy chained through the modules. When the processor senses an interrupt, it sends out an interrupt acknowledge. This signal propagates through a series of I/O modules until it gets to a requesting module. The requesting module typically responds by placing a word on the data lines. This word is referred to as a vector and is either the address of the I/O module or some other unique identifier. In either case, the processor uses the vector as a pointer to the appropriate device-service routine. This avoids the need to execute a general interrupt-service routine first. This technique is also called a vectored interrupt. 22 11

Interrupt-Driven I/O Bus arbitration An I/O module must first gain control of the bus before it can raise the interrupt request line. Thus, only one module can raise the line at a time. When the processor detects the interrupt, it responds on the interrupt acknowledge line. The requesting module then places its vector on the data lines. 23 Interrupt-Driven I/O If multiple interrupts have occurred, how does the processor decide which one to process? With multiple lines, the processor picks the interrupt line with the highest priority. With software polling, the order in which modules are polled determines their priority. The order of modules on a daisy chain determines their priority. Bus arbitration can also employ a priority scheme. 24 12

Direct Memory Access Drawbacks of programmed I/O and interrupt-driven I/O are: The I/O transfer rate is limited by speed with which the CPU can test and service a device. The CPU is tied up in managing an I/O transfer; a number of instructions must be executed for each I/O transfer. When large volume of data are to be moved, a more efficient technique is required, called direct memory access (DMA). 25 DMA Function DMA involves an additional module on the system bus. The DMA module is capable of mimicking the CPU and taking over the control of the system from CPU. 26 13

DMA Function When CPU wishes to read or write a block of data, it issues a command to DMA module containing: Whether a read or write is requested, using read or write control lines. Address of the I/O device involved, communicated on data lines. Starting location in memory to read from or write to, communicated on data lines and stored by DMA module in its address register. Number of words to be read or written, communicated via data lines and stored in data count register. 27 DMA Function In this way, CPU continues with other work. DMA module handles entire operation, directly to or from memory without going through CPU. When the transfer is complete, the DMA module sends an interrupt signal to the processor. Thus, the processor is involved only at the beginning and end of the transfer. DMA module can force CPU to suspend operation while it transfers a word. This is not an interrupt since CPU does not save anything, it is just a wait state. Overall effect is to slow operation of CPU, but still DMA is far more efficient than interrupt-driven or programmed I/O. 28 14

I/O Techniques 29 I/O Channels and Processors The evolution of the I/O function can be summarized as follows: 1. The CPU directly controls a peripheral device. 2. A controller or I/O module is added. The CPU uses programmed I/O without interrupts. 3. Interrupts are employed and the CPU need not spend time waiting for an I/O operation to be performed. 4. The I/O module is given direct access to memory via DMA. 5. The I/O module is enhanced to become a processor in its own right, with a specialized instruction set tailored for I/O. 6. The I/O module has a local memory of its own and is, in fact, a computer in its own right. 30 15

I/O Channels and Processors Two types of I/O channels are common: A selector channel controls multiple high-speed devices and, at any one time, is dedicated to the transfer of data with one of those devices. Thus, the I/O channel selects one device and effects the data transfer. Each device, or a small set of devices, is handled by a controller. The I/O channel serves in place of the CPU in controlling these I/O controllers. 31 I/O Channels and Processors A multiplexor channel can handle I/O with multiple devices at the same time. For low-speed devices, a byte multiplexor accepts or transmits characters as fast as possible to multiple devices. 32 16

The External Interface One major characteristic of the interface is whether it is serial or parallel. In a parallel interface, there are multiple lines connecting the I/O module and the peripheral, and multiple bits are transferred simultaneously. In a serial interface, there is only one line used to transmit data, and bits must be transmitted one at a time. 33 External Interface Key to the operation of an I/O module is an internal buffer that can store data being passed between the peripheral and the rest of the system. With a new generation of high-speed serial interfaces, parallel interfaces are becoming much less common. 34 17

External Interface The connection between an I/O module in a computer system and external devices can be: A point-to-point interface provides a dedicated line between the I/O module and the external device. On small systems (PCs, workstations), typical point-to-point links include those to the keyboard, printer and external modem. Of increasing importance are multipoint external interfaces, used to support external mass storage devices (disk and tape drives) and multimedia devices (CD-ROMs, video, audio). These multipoint interfaces are in effect external buses. Two key examples are FireWire and Infiniband for point-topoint and multipoint interfaces, respectively. 35 FireWire FireWire is a high-speed, low cost and easy to implement serial bus. In fact, FireWire is finding favor not only for computer systems, but also in consumer electronics products, such as digital cameras, DVD players/recorders, and televisions. In these products, FireWire is used to transport video images, which are increasingly coming from digitized sources. One of the strengths of the FireWire interface is that it uses serial transmission (bit at a time) rather than parallel. It does not require wide cables like parallel architectures. Thus, it is physically small. FireWire provides hot plugging, which makes it possible to connect and disconnect peripherals without having to power the computer system down or reconfigure the system. 36 18

InfiniBand InfiniBand is a recent I/O specification aimed at the highend server market. InfiniBand has become a popular interface for storage area networking and other large storage configurations. In essence, InfiniBand enables servers, remote storage, and other network devices to be attached in a central fabric of switches and links. The switch-based architecture can connect up to 64,000 servers, storage systems, and networking devices. 37 InfiniBand Figure illustrates the InfiniBand architecture: 38 19

InfiniBand The key elements are: Host channel adapter (HCA) links the server to an InfiniBand switch. The HCA attaches to the server at a memory controller, which has access to the system bus and controls traffic between the processor and memory and between the HCA and memory. Target channel adapter (TCA) is used to connect storage systems, routers and other peripheral devices to an InfiniBand switch. InfiniBand switch provides point-to-point physical connections to a variety of devices and switches traffic from one link to another. 39 InfiniBand Links are used between a switch and a channel adapter, or between two switches. Subnet consists of one or more interconnected switches plus the links that connect other devices to those switches. Router connects InfiniBand subnets, or connects an Infiniband switch to a network, such as a local area network, wide area network, or storage area network. 40 20