Spring 2006 1 EE 437 Lillevik 437s06-l9 University of Portland School of Engineering Advanced Computer Architecture Lecture 9 DMA controller design.

Slides:



Advertisements
Similar presentations
The CPU The Central Presentation Unit What is the CPU?
Advertisements

Computer Architecture
I/O Organization popo.
Parul Polytechnic Institute
Input and Output CS 215 Lecture #20.
Programmable Interval Timer
I/O Unit.
Processor System Architecture
MICRO PROCESSER The micro processer is a multipurpose programmable, clock driven, register based, electronic integrated device that has computing and decision.
CS-334: Computer Architecture
FIU Chapter 7: Input/Output Jerome Crooks Panyawat Chiamprasert
DIRECT MEMORY ACCESS CS 147 Thursday July 5,2001 SEEMA RAI.
DMA Direct memory access  Problems with programmed I/O  Processor wastes time polling  In our example I.Waiting for a key to be pressed, II.Waiting.
1 TK2633TK Microprocessor Architecture DR MASRI AYOB.
I/O Subsystem Organization and Interfacing Cs 147 Peter Nguyen
9/20/6Lecture 3 - Instruction Set - Al Hardware interface (part 2)
Input / Output CS 537 – Introduction to Operating Systems.
Spring EE 437 Lillevik 437s06-l2 University of Portland School of Engineering Advanced Computer Architecture Lecture 2 NSD with MUX and ROM Class.
Chapter 10: Input / Output Devices Dr Mohamed Menacer Taibah University
MICROPROCESSOR INPUT/OUTPUT
Spring EE 437 Lillevik 437s06-l8 University of Portland School of Engineering Advanced Computer Architecture Lecture 8 Project 3: memory agent Programmed.
Computer Architecture and Organization Introduction.
CHAPTER 3 TOP LEVEL VIEW OF COMPUTER FUNCTION AND INTERCONNECTION
Khaled A. Al-Utaibi  Interrupt-Driven I/O  Hardware Interrupts  Responding to Hardware Interrupts  INTR and NMI  Computing the.
Computer Architecture Lecture10: Input/output devices Piotr Bilski.
CS 342 – Operating Systems Spring 2003 © Ibrahim Korpeoglu Bilkent University1 Input/Output CS 342 – Operating Systems Ibrahim Korpeoglu Bilkent University.
Spring EE 437 Lillevik 437s06-l24 University of Portland School of Engineering Advanced Computer Architecture Lecture 24 Eight-node distributed.
2009 Sep 10SYSC Dept. Systems and Computer Engineering, Carleton University F09. SYSC2001-Ch7.ppt 1 Chapter 7 Input/Output 7.1 External Devices 7.2.
Spring EE 437 Lillevik 437s06-l16 University of Portland School of Engineering Advanced Computer Architecture Lecture 16 Cache design example Data/tag.
Input-Output Organization
ECEG-3202 Computer Architecture and Organization Chapter 3 Top Level View of Computer Function and Interconnection.
Modes of transfer in computer
Fall EE 333 Lillevik 333f06-l23 University of Portland School of Engineering Computer Organization Lecture 23 RAID Input/output design RS232 serial.
Fall EE 333 Lillevik 333f06-l14 University of Portland School of Engineering Computer Organization Lecture 14 Memory hierarchy, locality Memory.
Computer Hardware A computer is made of internal components Central Processor Unit Internal External and external components.
The computer system’s I/O architecture is its interface to the outside world. This architecture provides a systematic means of controlling interaction.
Computer Architecture Lecture 6 by Engineer A. Lecturer Aymen Hasan AlAwady 1/12/2013 University of Kufa - Informatics Center for Research and Rehabilitation.
Module 11 Adapted By and Prepared James Tan © 2001.
Dr Mohamed Menacer College of Computer Science and Engineering, Taibah University CE-321: Computer.
PROGRAMMABLE PERIPHERAL INTERFACE -8255
CS 342 – Operating Systems Spring 2003 © Ibrahim Korpeoglu Bilkent University1 Input/Output – 2 I/O Software CS 342 – Operating Systems Ibrahim Korpeoglu.
IT3002 Computer Architecture
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.
Spring EE 437 Lillevik 437s06-l5 University of Portland School of Engineering Advanced Computer Architecture Lecture 5 Slave bus agent ROM example.
Input Output Techniques Programmed Interrupt driven Direct Memory Access (DMA)
بسم الله الرحمن الرحيم MEMORY AND I/O.
Fall EE 333 Lillevik 333f06-l22 University of Portland School of Engineering Computer Organization Lecture 22 Project 6 Hard disk drive Bus arbitration.
Practical Session 12 Input &Output (I/O). I/O Device Input / Output (I/O) devices Input / Output (I/O) devices provide the means to interact with the.
1 load [2], [9] Transfer contents of memory location 9 to memory location 2. Illegal instruction.
Spring EE 437 Lillevik 437s06-l4 University of Portland School of Engineering Advanced Computer Architecture Lecture 4 Project 1 reviews CPU controller.
Department of Computer Science and Engineering
8085 Microprocessor Architecture
CS703 - Advanced Operating Systems
Advanced Computer Architecture Lecture 14
Overview Peripheral Devices Input-Output Interface
An Introduction to Microprocessor Architecture using intel 8085 as a classic processor
8085 Microprocessor Architecture
Md. Mojahidul Islam Lecturer Dept. of Computer Science & Engineering
Md. Mojahidul Islam Lecturer Dept. of Computer Science & Engineering
8085 Microprocessor Architecture
Advanced Computer Architecture Lecture 1
Computer components is a programmable machine that receives input, stores and manipulates data, and provides output in a useful format. Computer The computer.
Advanced Computer Architecture Lecture 11
Advanced Computer Architecture Lecture 10
Advanced Computer Architecture Lecture 3
Presentation transcript:

Spring EE 437 Lillevik 437s06-l9 University of Portland School of Engineering Advanced Computer Architecture Lecture 9 DMA controller design

Spring EE 437 Lillevik 437s06-l9 University of Portland School of Engineering Direct memory access Objective: avoid the disadvantages of programmed I/O (eliminate the busy loop) Technique –CPU writes to special controller (word count and memory address) –CPU tells controller to start data transfers –CPU continues with other computing –CPU responds to interrupt from controller: ISR

Spring EE 437 Lillevik 437s06-l9 University of Portland School of Engineering Role of DMA controller Accept initialization data from CPU Access I/O device and drive bus (master) –Input: read I/O device and write data to memory –Output: read memory data and write to I/O device Interrupt CPU when transfer complete

Spring EE 437 Lillevik 437s06-l9 University of Portland School of Engineering DMA hardware view n words adr X adr X+(n-1) Memory I/O device buffer System busadr 0 adr n-1

Spring EE 437 Lillevik 437s06-l9 University of Portland School of Engineering DMA controller architecture Counts up from zero Counts down to zero Preset counter Word Count Data Buffer Memory Address Buffer Address Control D A C Xcvr 5 key blocks

Spring EE 437 Lillevik 437s06-l9 University of Portland School of Engineering DMA initialization instructions? 1.Write start address 2.Write word count (or end address) 3.Write “go” command Each write is to a specific DMA controller port address

Spring EE 437 Lillevik 437s06-l9 University of Portland School of Engineering DMA controller initialization 1 Start address Word Count Data Buffer Memory Address Buffer Address Control D A C Xcvr

Spring EE 437 Lillevik 437s06-l9 University of Portland School of Engineering DMA controller initialization 2 Word count Word Count Data Buffer Memory Address Buffer Address Control D A C Xcvr

Spring EE 437 Lillevik 437s06-l9 University of Portland School of Engineering DMA controller initialization 3 Start Word Count Data Buffer Memory Address Buffer Address Control D A C Xcvr

Spring EE 437 Lillevik 437s06-l9 University of Portland School of Engineering DMA controller driving bus Must enable all tri-state drivers: D, A, and C buses D bus sources the data, memory agent sinks the data A bus contains the memory address decoded by memory agent C bus contains the memory write code

Spring EE 437 Lillevik 437s06-l9 University of Portland School of Engineering DMA controller driving bus Memory write Word Count Data Buffer Memory Address Buffer Address Control D A C Xcvr Memory adr Memory data

Spring EE 437 Lillevik 437s06-l9 University of Portland School of Engineering Hard drive DMA Assumptions –Operation: Input, or read disk, or read file –HD buffer: represent with a ROM Initialization commands –Port 1: start address –Port 2: word count –Port 4: start Design contains 5 sections Project 5

Spring EE 437 Lillevik 437s06-l9 University of Portland School of Engineering Buffer address section Objective: create an address for the HD buffer (ROM) Role: zero counter, count up

Spring EE 437 Lillevik 437s06-l9 University of Portland School of Engineering Buffer address block?

Spring EE 437 Lillevik 437s06-l9 University of Portland School of Engineering Data buffer section Objective: provide data for bus transfers Role: drive the data bus when enabled and addressed

Spring EE 437 Lillevik 437s06-l9 University of Portland School of Engineering Data buffer block?

Spring EE 437 Lillevik 437s06-l9 University of Portland School of Engineering Word count section Objective: keep track of how many data words have been transferred Role: preset to some number, then count down to zero, indicate zero condition

Spring EE 437 Lillevik 437s06-l9 University of Portland School of Engineering Word count block?

Spring EE 437 Lillevik 437s06-l9 University of Portland School of Engineering Memory address section Objective: provide address for bus transfer Role: accept start address, then count up, drive the address bus

Spring EE 437 Lillevik 437s06-l9 University of Portland School of Engineering Memory address block?

Spring EE 437 Lillevik 437s06-l9 University of Portland School of Engineering Updated block diagram Word Count Data Buffer Memory Address Buffer Address Control D A C Xcvr Port1 Port2 BAclr BAinc WCdec MAinc Zero Ben Count

Spring EE 437 Lillevik 437s06-l9 University of Portland School of Engineering Control section Objective: decode the Port instructions, request bus, transfer data across the bus, coordinate the sequence of the other blocks, interrupt CPU when done Role –Contains three subsections: decoder, counters, bus I/F –Bus I/F a FSM similar to CPU model

Spring EE 437 Lillevik 437s06-l9 University of Portland School of Engineering Control section block 1? Decode

Spring EE 437 Lillevik 437s06-l9 University of Portland School of Engineering Control section block 2? Counters

Spring EE 437 Lillevik 437s06-l9 University of Portland School of Engineering Control section block 3? Bus interface

Spring EE 437 Lillevik 437s06-l9 University of Portland School of Engineering

Spring EE 437 Lillevik 437s06-l9 University of Portland School of Engineering Buffer address block? Buffer Address BAclr BAinc BAdr

Spring EE 437 Lillevik 437s06-l9 University of Portland School of Engineering Data buffer block? Data Buffer (ROM) Data Ben BAdr Assume ROM outputs are tri-state

Spring EE 437 Lillevik 437s06-l9 University of Portland School of Engineering Word count block? Word Count Data WCload WCdec Zero

Spring EE 437 Lillevik 437s06-l9 University of Portland School of Engineering Memory address block? Memory Address A Assume MA outputs are tri-state D MAload MAinc Ben

Spring EE 437 Lillevik 437s06-l9 University of Portland School of Engineering Control section block 1? Decode Logic C A Port1 (MAload) Port2 (WCload) Port4 (Start) Decode

Spring EE 437 Lillevik 437s06-l9 University of Portland School of Engineering Control section block 2? Enables Start BAclr BAinc WCdec MAinc Zero Counters One signal?

Spring EE 437 Lillevik 437s06-l9 University of Portland School of Engineering Control section block 3? Bus I/F Bgnt Breq Int Ben Ack Inta C Must drive C bus with memory write instruction Bus interface