Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA...

42
Chapter : 4 Programmable DMA controllers The bulk data transfer from fast I/O devices to the memory or from the memory to I/O devices through Accumulator is a time consuming process. Thus Direct memory Access(DMA) technique is performed. Direct memory access (DMA) is a process in which an external device takes over the control of system bus from the CPU. Direct Memory Access (DMA) is a method whereby the memory and I/O space of the microprocessor can be accessed directly without the intervention of the microprocessor or a program. During a DMA access the microprocessor is turned off by placing a logic one on the HOLD input. 1

Transcript of Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA...

Page 1: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

Chapter : 4

Programmable DMA controllers

The bulk data transfer from fast I/O devices to the memory or from the memory to I/O devices through Accumulator is a time consuming process.

Thus Direct memory Access(DMA) technique is performed.

Direct memory access (DMA) is a process in which an external device takes over the control of

system bus from the CPU. Direct Memory Access (DMA) is a method whereby

the memory and I/O space of the microprocessor can be accessed directly without the intervention of the microprocessor or a program.

During a DMA access the microprocessor is turned off by placing a logic one on the HOLD input.

1

Page 2: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

contd.

After placing a logic one on HOLD, the

microprocessor issues a logic one on the HLDA to indicate a hold is in effect.

During a HOLD, the microprocessor stops running the program and it places its address, data, and control bus connections at their impedance state. This in effect is the same as removing the microprocessor from its socket!

2

Page 3: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

Contd.

.

3

Page 4: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

Contd.

.

4

Page 5: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

DMA Controller

A DMA controller interfaces with several peripherals that may request DMA.

The controller decides the priority of simultaneous DMA requests

communicates with the peripheral and the CPU, and provides memory

addresses for data transfer.

DMA controller commonly used with 8086 is the 8237 programmable device.

The 8237 is in fact a special-purpose microprocessor.

Normally it appears as part of the system controller chip-sets.

The 8237 is a 4-channel device. Each channel is dedicated to a specific

peripheral device and capable of addressing 64 K bytes section of memory.

Page 6: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

The 8237 DMA controller

The chipset in a modern computer contains a pair

of 8237 DMA controllers to provide 8 DMA

channels.

The 8237 Multimode Direct Memory Access

(DMA) Controller is a peripheral interface circuit

for microprocessor systems.

It is designed to improve system performance by

allowing external devices to directly transfer

information from the system memory.

6

Page 7: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

Contd.

.

7

Page 8: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

8237 DMA controller pin-out

.

8

Page 9: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

The 8237 Architecture

.

9

Page 10: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

Some Important Signal Pins

VCC: is the +5V power supply pin

GND Ground

CLK: CLOCK INPUT: The Clock Input is used to generate the timing signals which control 82C37A operations.

CS: CHIP SELECT: Chip Select is an active low input used to enable the controller onto the data bus for CPU communications.

RESET: This is an active high input which clears the Command, Status, Request, and Temporary registers, the First/Last Flip-Flop, and the mode register counter. The Mask register is set to ignore requests. Following a Reset, the controller is in an idle cycle.

READY: This signal can be used to extend the memory read and write pulses from the 82C37A to accommodate slow memories or I/O devices.

10

Page 11: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

Some Important Signal Pins

.

11

Page 12: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

Contd. Some Important Signal Pins

.

12

Page 13: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

Contd. Some Important Signal Pins

.

13

Page 14: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

Contd. Some Important Signal Pins

.

14

Page 15: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

Contd. Some Important Signal Pins

DB7-DB0: data bus, connected to microprocessor

and are used during the programming DMA

controller.

A3-A0: address pins select an internal register during programming and provide part of the DMA transfer address during DMA operation.

A7-A4: address pins are outputs that provide part of the DMA transfer address during a DMA operation.

15

Page 16: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

Flow of Control Signals

.

16

Page 17: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

The 8237 Architecture

.

17

(Timing control)

Page 18: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

Contd.

.

18

Page 19: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

Contd.

.

19

Page 20: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

Contd.

Program command control block: This block

decodes the various commands given to the 8237

by microprocessor prior to servicing a DMA request.

It also decodes the mode control word used to select

the type of DMA during the servicing.

Priority encoder block: This block resolves priority

contention between DMA channels requesting

services, simultaneously.

20

Page 21: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

Transfer types

The 8237 provides two basic types of transfers, viz., perioheral transfer and memory to memory transfer.

Peripheral transfers

There are three types of peripheral transfers. These are as follows:

1. DMA read

2. DMA write

3. DMA verify

Each of the three active transfer modes can perform three different types of transfers.

DMA read: DMA Read transfers move data from memory to an I/O device by activating MEMR and IOW.

DMA write: DMA Write transfers move data from an I/O device to the memory by activating MEMW and IOR.

DMA verify : DMA Verify transfers are pseudo transfers. The 8237A operates as in Read or Write transfers generating addresses, and responding to EOP, etc.

Page 22: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

Operating modes of 8237

There are 4 operating modes of 8237.

They are:

I. Auto –initialization mode

II. Priority mode

III. Normal mode and

IV. Compressed timing

22

Page 23: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

Auto –initialization mode

By programming a bit in the mode register, a

channel may be set up as an auto-initialize channel.

During auto-initialize initialization , the original

values of the current address and current word count

registers are automatically restored from the base

address and based word count registers of that

channel following EOP.

Following Auto initialize the channel is ready to

perform another DMA service, without CPU

intervention, as soon as a valid DREQ is detected.

23

Page 24: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

Priority mode

-The 8237 has two types of channel’s priority encoding available as s/w selectable options.

The four DMA channels can be programmed either in a

Fixed priority mode of operation- fixes the channels in priority order- from

CH0 (highest) to CH3 (lowest) priority. i.e.

The channel with the lowest priority is 3 followed by 2, 1 and the highest priority channel, 0.

After the recognition of any one channel for service, the other channels are prevented from interfering with that service until it is completed.

Rotating priority mode of operation – the current channel getting service will become the lowest channel.

Page 25: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

Contd.

Normal Mode

This is the default mode of 8237.

In this mode , read (IOR and MEMR) and write (IOW

and MEMW) pulses are activated during normal

clock time.

Compressed Timing

In order to achieve even greater throughput where

system characteristics permit, the 8237A can

compress the transfer time.

25

Page 26: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

Registers of 8237

.

26

either incremented or decremented during the operation

Page 27: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

Registers of 8237

.

27

Each channels has its

own mode register

i.e. where external signals is not available for DMA

transfer

Page 28: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

Registers of 8237

.

28

i.e. If the mask is set,

The channel is disabled

Page 29: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

Command Register

This is an 8-bit register which controls the

operation of the 8237. It is programmed by the

microprocessor and is cleared by the reset or a

master clear instruction.

The register uses bit position 0 to select the

memory-to-memory DMA transfer mode.

memory-to-memory DMA transfers use DMA

channel 0 to hold the source address

DMA channel 1 holds the destination address

29

Page 30: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

Command Register

30

Page 31: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

Mode Register

Each channel has mode register associated with it.

When the register is being written to by the

microprocessor in the operation condition, bits 0 and 1

determine which channel mode register is to be written.

31

•more than

one 8237A

together for

simple system

expansion

Page 32: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

Request Register

The 8237 can respond to requests for DMA service

which are initiated by software as well as by a DREQ.

very useful in memory-to-memory transfers, where an external

signal is not available to begin the DMA transfer

32

Page 33: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

Mask Register

Each channel has a mask bit which can be set to

disable the incoming DREQ. Each mask bit is set when its

associated channel produces an EOP if the channel is

not programmed for auto-initialize.

33

Page 34: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

Status Registers

The status register shows status of each DMA

channel. The TC bits indicate if the channel has

reached its terminal count (transferred all its

bytes).

When the terminal count is reached, the

DMA transfer is terminated for most modes

of operation.

the request bits indicate whether the DREQ

input for a given channel is active 34

Page 35: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

Contd.

35

Page 36: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

8237 Software commands

Page 37: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

8237 Software Commands

Master clear

Acts exactly the same as the RESET signal to the 8237.

as with the RESET signal, this command disables all channels

Clear mask register

• Enables all four DMA channels.

37

Page 38: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

8237 Software Commands

Clear the first/last flip-flop

Clears the first/last (F/L) flip-flop within 8237.

The F/L flip-flop selects which byte (low or high order) is read/written in the current address and current count registers.

if F/L = 0, the low-order byte is selected

if F/L = 1, the high-order byte is selected

Any read or write to the address or count register automatically toggles the F/L flip-flop.

38

Page 39: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

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

Page 40: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

Interfacing and Programming of DMA with 8085/806

Programming the 8237:

Steps:

1. Write a mode word in the Mode register – that selects the channel and specifies

the type of transfers (read, write, or verify) and the DMA mode (block, single-

byte, etc.)

2. Write the starting address of the data block to be transferred in the channel

Memory Address Register (MAR).

3. Write the byte count in the channel count register.

4. Write a control word in the command register that specifies parameters such as

priority among four channels, DRQ and DACK active levels, and timing, and

enables the 8237.

Page 41: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

.

8085

MP

A15

A8

ALE

AD7 AD0

RD

RW

IO/ W

HOLD

HLDA

CLK(OUT)

RESET OUT 8212 Latch

DS1

DS2 STB DI8

DI1

DO8

DO1

MD

CLR

VCC

82

57

AEN ADSTB

HRQ

HLDA

CLK

RESET

D7

D0

MEMR

IOR

MEMW

IOW

CS

TC

MARK

DRQ1

DRQ0

DRQ2

DRQ3

DACK1

DACK0

DACK2

DACK3

A7

A0 A3

READY

READY

A0

A15

STB

MD

DO8 –DO1

DI8 – DI1

11

2

13

14 8212 Latch CLR

DS1

DS

2

VCC

D7

D0

A-Bus

D-Bus

A1

B1

A2

B2

A3

B3

A4

B4

VCC

11

10

14

2

3

5

6

13

74

LS2

57

4

7

9 12

B OE

1 15 SEL

MEMR

MEMR

IOW

IOR

Control

Bus

Page 42: Chapter : 4 Programmable DMA controllershameroha.com/.../06/Programmable-DMA-controllers.pdf · DMA Controller A DMA controller interfaces with several peripherals that may request

.

A0-A15 BUSEN

HOLD

HOLDA

CLOCKRESETMEMR#

MEMW#IOR#

IOW#

D0-D7

CLKRESETMEMR# MEMW# IOR# IOW#

HRQ

HLDA

AEN A0-A3 A4-A7 CS/ ADSTB

DB0-DB7

DREQ0-3

DACK0-3CPU

I8237A

OE#

STB

8 BIT

LATCH

Address buss A0-A15

Sistem data buss

Control buss

System Data Bus