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

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

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

Organisasi Sistem Komputer

Digital Design Laboratory Lecture 6 I/O

Chapter 7 : Input-Output Organization

Advanced Parallel Architecture Lesson 4 bis. Annalisa Massini /2015

Input / Output. School of Computer Science G51CSA

Eastern Mediterranean University School of Computing and Technology INPUT / OUTPUT

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

Unit DMA CONTROLLER 8257


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

INTERFACING INTERFACING. Richa Upadhyay Prabhu. February 29, 2016

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

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

Computer System Overview

I/O Management and Disk Scheduling. Chapter 11

I/O Design, I/O Subsystem, I/O-Handler Device Driver, Buffering, Disks, RAID January WT 2008/09

Unit 5. Memory and I/O System

Introduction. Description of the BUS. PC KITS-tutorial page (ISA BUS) Pagina 1 di 5

Chapter TEN. Memory and Memory Interfacing

ECE 341. Lecture # 19

Summary of Computer Architecture

OS And Hardware. Computer Hardware Review PROCESSORS. CPU Registers. CPU Registers 02/04/2013

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

INPUT/OUTPUT ORGANIZATION

6 Direct Memory Access (DMA)

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

Unit 1. Chapter 3 Top Level View of Computer Function and Interconnection

Input/Output Systems

INPUT-OUTPUT ORGANIZATION

Design with Microprocessors

OPERATING SYSTEMS CS136

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

INPUT-OUTPUT ORGANIZATION

CS 134. Operating Systems. April 8, 2013 Lecture 20. Input/Output. Instructor: Neil Rhodes. Monday, April 7, 14

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

Microprocessor & Interfacing Lecture DMA Controller--1

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

ECE331: Hardware Organization and Design

Today: I/O Systems. Architecture of I/O Systems

Input/Output. 198:231 Introduction to Computer Organization Lecture 15. Instructor: Nicole Hynes

PC Interrupt Structure and 8259 DMA Controllers

I/O and Device Drivers

Input Output (IO) Management

What Operating Systems Do An operating system is a program hardware that manages the computer provides a basis for application programs acts as an int

Computer Organization

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

Chapter 13 Direct Memory Access and DMA-Controlled I/O

CSC 553 Operating Systems

I/O Management Intro. Chapter 5

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

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

Digital System Design

Device-Functionality Progression

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

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

INPUT/OUTPUT ORGANIZATION

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

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

Input-Output (I/O) Input - Output. I/O Devices. I/O Devices. I/O Devices. I/O Devices. operating system must control all I/O devices.

Section I Section Real Time Systems. Processes. 1.6 Input/Output Management. (Textbook: A. S. Tanenbaum Modern OS - ch. 5)

C02: Interrupts and I/O

Last class: Today: Course administration OS definition, some history. Background on Computer Architecture

Chapter 1 Computer System Overview

Module 11: I/O Systems

These three counters can be programmed for either binary or BCD count.

Question Bank Microprocessor and Microcontroller

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

Common Computer-System and OS Structures

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

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

Advanced Parallel Architecture Lesson 4. Annalisa Massini /2015

Top-Level View of Computer Organization

5 Computer Organization

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

CSCI-GA Operating Systems I/O. Hubertus Franke

Architecture of 8085 microprocessor

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

Computer Organization. Submitted By: Dalvir Hooda

Computer Organization (Input-output)

Chapter 1 Computer System Overview

Computer-System Organization (cont.)

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

Computer Organization

ECE232: Hardware Organization and Design

Computer Systems Overview

INPUT-OUTPUT ORGANIZATION

Chapter 5 - Input / Output


Topics. Interfacing chips

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

[08] IO SUBSYSTEM 1. 1

Design with Microprocessors

I/O Systems. Jo, Heeseung

Chapter 13: I/O Systems

SAE5C Computer Organization and Architecture. Unit : I - V

5 Computer Organization

Interfacing. Introduction. Introduction Addressing Interrupt DMA Arbitration Advanced communication architectures. Vahid, Givargis

Transcription:

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

Learning Outcomes Course Outcome (CO) - CO2 Describe the architecture and organization of computer systems Program Outcome (PO) PO1 Apply knowledge of mathematics, science and engineering fundamentals to the solution of complex electrical / electronic engineering problems L01-Knowledge in specific area-content

Input/Output Problems Wide variety of peripherals Delivering different amounts of data At different speeds In different formats All slower than CPU and RAM Need I/O modules

Input/Output Modules Interface to CPU and Memory Interface to one or more peripherals

External Devices Human readable Screen, printer, keyboard Machine readable Monitoring and control Magnetic disk and tapes, sensors and actuators Communication Modem Network Interface Card (NIC)

External Device Block Diagram

I/O Module Function Control & Timing To coordinate the flow of traffic (data) CPU Communication Command decoding (read or write) Data exchanged between I/O and CPU Status reporting (device ready or busy) I/O address recognition Device Communication Send commands, send or accept data and perform status reporting Data Buffering Data are buffered before being sent/accepted from peripherals Error Detection Detect error and report to the processor

I/O Module Diagram

I/O Module Hide or reveal device properties to CPU Support multiple or single device Control device functions or leave for CPU Also O/S decisions e.g. Unix treats everything it can as a file

Exercise With the aid of a diagram, explain the structure of an I/O module.

Process The I/O module connects to a CPU through the system bus lines (address, data, control lines). Data transferred to or from the module are buffered in one or more data registers. A status register provides the current I/O status information (eg. data ready) to be read by CPU. The status register can also function as a control register, to accept detailed control information from the CPU. The I/O logic interacts with the CPU via a set of control lines. The CPU uses the control lines to issue commands to the I/O module. The I/O module can recognize and generate addresses associated with each external devices it controls. The I/O module also contains logic specific to the interface with each external device that it controls.

Input Output Techniques Programmed Interrupt driven Direct Memory Access (DMA)

Three Techniques for Input of a Block of Data

Programmed I/O CPU has direct control over I/O Sensing status Read/write commands Transferring data CPU waits for I/O module to complete operation Wastes CPU time

Programmed I/O - detail CPU requests I/O operation I/O module performs operation I/O module sets status bits CPU checks status bits periodically I/O module does not inform CPU directly I/O module does not interrupt CPU CPU may wait or come back later

I/O Commands CPU issues address Identifies module (& device if >1 per module) CPU issues command Control - telling module what to do e.g. spin up disk Test - check status e.g. power? Error? Read/Write Module transfers data via buffer from/to device

Addressing I/O Devices Under programmed I/O data transfer is very like memory access (CPU viewpoint) Each device given unique identifier CPU commands contain identifier (address)

I/O Mapping Memory mapped I/O Devices and memory share an address space I/O looks just like memory read/write No special commands for I/O Isolated I/O Large selection of memory access commands available Separate address spaces Need I/O or memory select lines Special commands for I/O Limited set

Memory Mapped and Isolated I/O

Interrupt Driven I/O Overcomes CPU waiting No repeated CPU checking of device I/O module interrupts when ready

Interrupt Driven I/O Basic Operation CPU issues read command I/O module gets data from peripheral whilst CPU does other work I/O module interrupts CPU CPU requests data I/O module transfers data

Simple Interrupt Processing

CPU Viewpoint Issue read command Do other work Check for interrupt at end of each instruction cycle If interrupted:- Save context (registers) Process interrupt Fetch data & store See Operating Systems notes

Changes in Memory and Registers for an Interrupt

Design Issues How do you identify the module issuing the interrupt? How do you deal with multiple interrupts? i.e. an interrupt handler being interrupted

Identifying Interrupting Module (1) Different line for each module PC Limits number of devices Software poll CPU asks each module in turn Slow

Identifying Interrupting Module (2) Daisy Chain or Hardware poll Interrupt Acknowledge sent down a chain Module responsible places vector on bus CPU uses vector to identify handler routine Bus Master Module must claim the bus before it can raise interrupt e.g. PCI & SCSI

Multiple Interrupts Each interrupt line has a priority Higher priority lines can interrupt lower priority lines If bus mastering only current master can interrupt

Example - PC Bus 80x86 has one interrupt line 8086 based systems use one 8259A interrupt controller 8259A has 8 interrupt lines

Sequence of Events 8259A accepts interrupts 8259A determines priority 8259A signals 8086 (raises INTR line) CPU Acknowledges 8259A puts correct vector on data bus CPU processes interrupt

Exercise 8 bits Processor 050A 050B 050C 050D 050E 050F 16 bits 1021 Program Counter 16 bits 050F Stack Pointer 0800 Interrupt Service 0A Register A Routine F2 Register B 0900 Return 8C 1000 1020 User's Program Program Status Word General Purpose Registers Interrupt line from I/O module Main Memory Figure 2

By referring to Figure 2, a processor is connected to a main memory and an I/O module. The I/O module can issue an interrupt request signal to a processor through an interrupt line. The processor is currently executing an instruction at address 1020 when an interrupt signal is received from the I/O module. Determine the sequence of actions that would take place after the processor receives the interrupt signal and the contents of affected registers / memory locations. Assume the next instruction to be executed by the processor is at address 1021.

ISA Bus Interrupt System ISA bus chains two 8259As together Link is via interrupt 2 Gives 15 lines 16 lines less one for link IRQ 9 is used to re-route anything trying to use IRQ 2 Backwards compatibility Incorporated in chip set

82C59A Interrupt Controller

Intel 82C55A Programmable Peripheral Interface

Keyboard/Display Interfaces to 82C55A

Direct Memory Access Interrupt driven and programmed I/O require active CPU intervention Transfer rate is limited CPU is tied up DMA is the answer

DMA Function Additional Module (hardware) on bus DMA controller takes over from CPU for I/O

Typical DMA Module Diagram

DMA Operation CPU tells DMA controller:- Read/Write Device address Starting address of memory block for data Amount of data to be transferred CPU carries on with other work DMA controller deals with transfer DMA controller sends interrupt when finished

DMA Transfer Cycle Stealing DMA controller takes over bus for a cycle Transfer of one word of data Not an interrupt CPU does not switch context CPU suspended just before it accesses bus i.e. before an operand or data fetch or a data write Slows down CPU but not as much as CPU doing transfer

Cycle stealing The DMA controller request usage of system bus for one byte of data transfer, then returns the control of system bus back to the CPU. It repeats this continually until the whole block of data has been transferred. In this way, the CPU is not idled for too long. Burst transfer The DMA controller request usage of system bus for the entire block of data transfer, then returns the control of system bus back to the CPU. In this way, the CPU is idled for a relatively long periods of time. Transparent The DMA controller performs data transfer when the CPU is performing operations that do not require the use of system bus. However, this adds complexity to the hardware since there is a need to determine when the CPU does not use the system bus.

DMA and Interrupt Breakpoints During an Instruction Cycle

Aside What effect does caching memory have on DMA? What about on board cache? Hint: how much are the system buses available?

DMA Configurations (1) Single Bus, Detached DMA controller Each transfer uses bus twice I/O to DMA then DMA to memory CPU is suspended twice

DMA Configurations (2) Single Bus, Integrated DMA controller Controller may support >1 device Each transfer uses bus once DMA to memory CPU is suspended once

DMA Configurations (3) Separate I/O Bus Bus supports all DMA enabled devices Each transfer uses bus once DMA to memory CPU is suspended once

Intel 8237A DMA Controller Interfaces to 80x86 family and DRAM When DMA module needs buses it sends HOLD signal to processor CPU responds HLDA (hold acknowledge) DMA module can use buses E.g. transfer data from memory to disk 1. Device requests service of DMA by pulling DREQ (DMA request) high 2. DMA puts high on HRQ (hold request), 3. CPU finishes present bus cycle (not necessarily present instruction) and puts high on HDLA (hold acknowledge). HOLD remains active for duration of DMA 4. DMA activates DACK (DMA acknowledge), telling device to start transfer 5. DMA starts transfer by putting address of first byte on address bus and activating MEMR; it then activates IOW to write to peripheral. DMA decrements counter and increments address pointer. Repeat until count reaches zero 6. DMA deactivates HRQ, giving bus back to CPU

8237 DMA Usage of Systems Bus

Fly-By While DMA using buses processor idle Processor using bus, DMA idle Known as fly-by DMA controller Data does not pass through and is not stored in DMA chip DMA only between I/O port and memory Not between two I/O ports or two memory locations Can do memory to memory via register 8237 contains four DMA channels Programmed independently Any one active Numbered 0, 1, 2, and 3

I/O Channels I/O devices getting more sophisticated e.g. 3D graphics cards CPU instructs I/O controller to do transfer I/O controller does entire transfer Improves speed Takes load off CPU Dedicated processor is faster

I/O Channel Architecture

END