Transcript
Page 1: Dma and dma controller 8237

PRESENATION ON DMA AND DMA CONROLLER

8237

BY ASHWINI AWATARE

Page 2: Dma and dma controller 8237

CONTENTS :->What is DMA DMA definationBasic DMA operation DMA controllerData transfer with DMA controller DMA Controller options for data transfer8237 DMA Controller Register Organization of 8237Data Transfer modes

Page 3: Dma and dma controller 8237

What is DMA :-direct memory accessdata are transfered by executing instructions such as move DATAIN,R0An instruction to transfer input or output data is

executed only after the processer determines that the I/O device is ready .

to transfer large blocks of data at high speed, an alternative approach is used . A special control unit may be provided to allow transfer of a block of data directly

between an external device and the main memory ,without continues intervention by the processer. this approach is called 'direct memory access'

Page 4: Dma and dma controller 8237

DMA transfers are performed by a control circuit that is part of the I/O device interface.

we refer to this circuit as a DMA controller. the DMA controller performs the function

that would normally be carried out by the processer when accessing the main memory.

Device wishing to perform DMA asserts the processors bus request signal

Processor completes the current bus cycle and then asserts the bus grant signal to the device.

Page 5: Dma and dma controller 8237

The device then asserts the bus grant ack. signal.

The processor senses in the change in the state of bus grant ack. signal and starts listening to the data and address bus for DMA activity.

The DMA device performs the transfer from the source to destination address.

During these transfers, the processor monitors the addresses on the bus and checks if any location modified during DMA operations is cached in the processor. If the processor detects a cached address on the bus…..cnti..

Page 6: Dma and dma controller 8237

it can take one of the two actions:Processor invalidates the internal cache

entry for the address involved in DMA write operation

Processor updates the internal cache when a DMA write is detected

Once the DMA operations have been completed, the device releases the bus by asserting the bus release signal.

Processor acknowledges the bus release and resumes its bus cycles from the point it left off.

Page 7: Dma and dma controller 8237

DMA DMA Definitions:

DMA occurs between an I/O device and memory without the use of the microprocessor

DMA read transfer data from the memory to I/O device

DMA write transfer data from the I/O to memory

MRDC & IOWC signals to simultaneously activate for read DMA

Page 8: Dma and dma controller 8237

Basic DMA operation :-The direct memory access (DMA) I/O technique

provides direct access to the memory while the microprocessor is temporarily disabled.

A DMA controller temporarily borrows the address bus, data bus, and control bus from the microprocessor and transfers the data bytes directly between an I/O port and a series of memory locations.

The DMA transfer is also used to do high-speed memory-to memory transfers.

Two control signals are used to request and acknowledge a DMA transfer in the microprocessor-based system.

Page 9: Dma and dma controller 8237

The HOLD signal is a bus request signal which asks the microprocessor to release control of the buses after the current bus cycle.

The HLDA signal is a bus grant signal which indicates that the microprocessor has indeed released control of its buses by placing the buses at their high-impedance states.

The HOLD input has a higher priority than the INTR or NMI interrupt inputs.

Page 10: Dma and dma controller 8237

Data transfer with a DMA Controller

Page 11: Dma and dma controller 8237

Data transfer with DMA controller During a block input byte transfer, the

following sequence occurs as the data byte is sent from the interface to the memory:

The interface sends the DMA controller a request for DMA service.

A Bus request is made to the HOLD pin (active High) on the 8086 microprocessor  and the controller gains control of the bus.

A Bus grant is returned to the DMA controller from the Hold Acknowledge (HLDA) pin (active High) on the 8086 microprocessor.

Page 12: Dma and dma controller 8237

The  DMA controller places contents of the address register onto the address bus.

The controller sends the interface a DMA acknowledgment, which tells the interface to put data on the data bus. (For an output it signals the interface to latch the next data placed on the bus.)

The data byte is transferred to the memory location indicated by the address bus.

The interface latches the data.

Page 13: Dma and dma controller 8237

The Bus request is dropped, the HOLD pin goes Low, and the controller relinquishes the bus.

The Bus grant from the 8086 microprocessor is dropped and the HLDA pin goes Low.

The address register is incremented by 1.The byte count is decremented by 1.If the byte count is non-zero, return to

step 1, otherwise stop

Page 14: Dma and dma controller 8237

DMA Controller options for data transfer

The DMA Controller has several options available for the transfer of data.

They are:-1) Cycle steal 2) Burst transfer3) Hidden DMA

Page 15: Dma and dma controller 8237

1)CYCLE STEAL :->

•A read or write signal is generated by the DMAC, and the I/O device either generates or latches the data. The DMAC effectively steals cycles from the processor in order to transfer the byte, so single byte transfer is also known as cycle stealing

Page 16: Dma and dma controller 8237

2). BURST TRANSFER :->

•To achieve block transfers, some DMAC's incorporate an automatic sequencing of the value presented on the address bus. A register is used as a byte count, being decremented for each byte transfer, and upon the byte count reaching zero, the DMAC will release the bus. When the DMAC operates in burst mode, the CPU is halted for the duration of the data transfer.

Page 17: Dma and dma controller 8237

3) HIDDEN DMA:->

• It is possible to perform hidden DMA, which is transparent to the normal operation of the CPU. In other words, the bus is grabbed by the DMAC when the processor is not using it.

• The DMAC monitors the execution of the processor, and when it recognises the processor executing an instruction which has sufficient empty clock cycles to perform a byte transfer, it waits till the processor is decoding the op code, then grabs the bus during this time.  The processor is not slowed down, but continues processing normally. Naturally, the data transfer by the DMAC must be completed before the processor starts

Page 18: Dma and dma controller 8237

EX- Memory to device transfer

Page 19: Dma and dma controller 8237

8237 DMA Controller The 8237 DMA controller supplies the

memory and I/O with control signals and memory address information during the DMA transfer.

The 8237 is capable of DMA transfers at rates of up to 1.6M bytes per second.

Each channel is capable of addressing a full 64K-byte section of memory and can transfer up to 64K bytes with a single programming.

Page 20: Dma and dma controller 8237

Register Organization of 8237

Page 21: Dma and dma controller 8237

1. Current Address Register Each of 4 DMA channels of 8237 has a 16-

bit current address register that holds the current memory address , being accessed during DMA transfer .

The address is automatically incremented or decremented after each transfer & resulting address value is again stored current address register .

This can be byte – wise programmed by CPU i.e. lower byte 1st & higher byte later .

Page 22: Dma and dma controller 8237

2.Current Word Register Each channel has a 16- bit current word

register that holds the number of data byte transfers of be carried out.

The word count is decremented after each transfer &new value is again stored back to the current word register .

When count becomes zero an EOP signal will be generated . This can be written in successive bytes by the CPU ,in program mode

Page 23: Dma and dma controller 8237

3.Base Address & Base Word Count RegisterEach channel has a pair of these register .

These maintains an original copy of the resp. initial current address register & current word register (before increment or decrement) resp.

These are automatically written along with current register .

These cannot be read by the CPU . The contents of these register are used internally for auto – initialization.

Page 24: Dma and dma controller 8237

4. Command Register This is 8 – bit controls the complete

operation of 8237.This can be programmed by the CPU and

cleared by a reset operation .

Page 25: Dma and dma controller 8237

5.Mode RegisterEach of channel has 8 bit mode register .

This is written by the CPU program mode.Bits 0 or 1 of mode register determine

which of the four channel mode register is to be written .

The bits 2 & 3 indicate the type of DMA transfer.

Bit 4 indicates whether auto- initialization is selected or not , while bit 5 indicates whether address increment or decrement mode is selected .

Page 26: Dma and dma controller 8237

6.Request RegisterEach channel has a request register bit

associated with it , in the request register .

These are nonmaskable & subject to prioritization by the priority resolving network of 8237 .

Each bit is set or reset under program control or is cleared upon generation of a TC or an external EOP. This register is cleared by reset.

Page 27: Dma and dma controller 8237

7.Mask Register Each of 4 channel has a mask bit which

can be set under program control to disable the incoming DREQ request at the specific channel .

This bit is set when corresponding channel produces an EOP signal , if channel is not programmed for auto – initialization .

The register is set to FFH after a reset operation. This disables all the DMA request till the mask register is cleared

Page 28: Dma and dma controller 8237

8.Temporary Register The temporary register holds data during

memory to memory data transfers .After the completion of the transfer

operation , the last word transferred remains in the temporary register till it is cleared by the reset operation .

Page 29: Dma and dma controller 8237

9.Status Register Status register keeps the track of the all

DMA channel pending request & status of their terminal count .

The bit Do-D3 are updates every time , the corresponding channel reaches TC or external EOP occurs . These are cleared upon reset and also on each status read operation .

Page 30: Dma and dma controller 8237

Important signal pins

DREQ3 – DREQ0 (DMA request): Used to request a DMA transfer for a particular DMA channel.

DACK3 – DACK0 (DMA channel acknowledge): Acknowledges a channel DMA request from a device.

HRQ (Hold request): Requests a DMA transfer.

Page 31: Dma and dma controller 8237

HLDA (Hold acknowledge) signals the 8237 that the microprocessor has relinquished control of the address, data and control buses.

MEMW (Memory write): Used as an output to cause memory to write data during a DMA write cycle.

MEMR (Memory read): Used as an output to cause memory to read data during a DMA read cycle

Page 32: Dma and dma controller 8237

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.

DB0 – DB7 : data bus, connected to microprocessor and are used during the programming DMA controller.

Page 33: Dma and dma controller 8237

Data Transfer modes1) Single Transfer Mode In Single Transfer mode the device is

programmed to make one transfer only.

The word count will be decremented and the address decremented or incremented following each transfer.

When the word count ``rolls over'' from zero to FFFFH, a Terminal Count (TC) will cause an Auto initialize if the channel has been programmed to do so.

Page 34: Dma and dma controller 8237

2) Block Transfer Mode

In Block Transfer mode the device is activated by DREQ to continue making transfers during the service until a TC, caused by word count going to FFFFH, or an external End of Process (EOP) is encountered.

DREQ need only be held active until DACK becomes active. Again, an Auto initialization will occur at the end of the service if the channel has been programmed for it.

Page 35: Dma and dma controller 8237

3)Demand transfer mode

Device continues transfer until a TC is reached or an external EOP is detected or the DREQ signal goes inactive .

After the I/O device is able to catch up , the service mat be re-established activating DREQ signal again.

Only EOP generated by TC or external EOP can cause the auto- initialization and only if it is programmed for .

Page 36: Dma and dma controller 8237

4)Cascade mode In this mode ,more than one 8237 can be

connected together to provide more than four DMA channels .

The HRQ & HLDA signals from additional 8237s are connected with DREQ & DACK pins of channel of the host rsp.

The priority of the DMA requests may be preserved at each level.

Page 37: Dma and dma controller 8237

5)Memory to memory transfer

•To perform the transfer of the block of data from one set of memory address to another one ,this mode is used.

•The transfer is initialize by setting DREQo using software command .

•The 8237 sends HRQ signal to CPU as usual & when HLDA signal is activated by CPU ,device starts operating in block transfer mode to read the data from file.

Page 38: Dma and dma controller 8237

•The channel 0 current register acts as a source pointer.

•The byte read data from memory is stored in an internal temporary register of 8237.

•The channel 1 current register acts as a destination pointer to write the data from temporary register to the destination memory.

•The pointers are automatically incremented or decremented , depending upon the programming .

Page 39: Dma and dma controller 8237

THANK YOU


Top Related