80483977 DMA is Implemented Using a DMA Controller

download 80483977 DMA is Implemented Using a DMA Controller

of 35

Transcript of 80483977 DMA is Implemented Using a DMA Controller

  • 7/29/2019 80483977 DMA is Implemented Using a DMA Controller

    1/35

    OVERVIEW Introduction

    Implementing DMA in a computer system

    Data transfer using DMA controller

    Internal configuration of a DMA controller

    Process of DMA transfer

    DMA transfer modes

    Modification of the CPU to work with DMA

    Summary

  • 7/29/2019 80483977 DMA is Implemented Using a DMA Controller

    2/35

    What is DMA?

    Direct Memory Access

    Assists the movement of data between externalmemory and internal peripherals with minimal CPU

    intervention An internal peripheral is assigned to one or more

    DMA channels.

    Each channel moves data one direction.

    It either receives incoming data or transmitsoutgoing data.

  • 7/29/2019 80483977 DMA is Implemented Using a DMA Controller

    3/35

    Direct Memory Access (DMA)

    To transfer large blocks of data at high speed,

    an alternative approach is used.

    Blocks of data are transferred between an

    external device and the main memory,

    without continuous intervention by the

    processor.

  • 7/29/2019 80483977 DMA is Implemented Using a DMA Controller

    4/35

    Direct Memory Access (DMA)

    Summary

    10 Channels total

    8 channels wired into NET+ARM modules

    Ethernet, Serial, Parallel / ENI

    2 Channels available for external Memory moves Handshaking signals muxed into GPIO lines

    Can move data while ARM executes from Cache

    Simple Implementation

    Good for repetitive data movement

  • 7/29/2019 80483977 DMA is Implemented Using a DMA Controller

    5/35

    DMA is implemented using a DMA controller

    DMA controller

    Acts as slave to processor

    Receives instructions from processor

  • 7/29/2019 80483977 DMA is Implemented Using a DMA Controller

    6/35

    Steps in a DMA operation

    Processor initiates the DMA controller

    Gives device number, memory buffer pointer,

    Called channel initialization

    Once initialized, it is ready for data transfer

    processor DMA controller

    Gives

    device

    number

    I/O device number

  • 7/29/2019 80483977 DMA is Implemented Using a DMA Controller

    7/35

    When ready, I/O device informs the DMA controller

    DMA controller starts the data transfer process

    Obtains bus by going through bus arbitration

    Places memory address and appropriate control signalsCompletes transfer and releases the bus

    Updates memory address and count value

    If more to read, loops back to repeat the process

    DMA controllermicroprocessor

    Data bus

    I/O device number

  • 7/29/2019 80483977 DMA is Implemented Using a DMA Controller

    8/35

    Modes of Operation

    Fly-by

    Data is directly transferred between memory and the

    peripheral

    Memory to Memory

    Data is not directly transferred, but buffered in between

    transfers Data is copied from the source location into a temporary

    area in the DMA channel, and then written into the

    destination location.

  • 7/29/2019 80483977 DMA is Implemented Using a DMA Controller

    9/35

    External DMA Fly By

    Memory

    DMA

    Controller

    Peripheral

    Net+ARM

    Add

    DMA

    Request

    DMA

    Grant

    DATA

  • 7/29/2019 80483977 DMA is Implemented Using a DMA Controller

    10/35

    External DMA Mem To Mem

    Memory

    DMA

    ControllerPeripheral

    Net+ARM

    ADD

    DMARequest

    DMA Grant

    DATA

    DATA

    ADD

    Holding FIFO

  • 7/29/2019 80483977 DMA is Implemented Using a DMA Controller

    11/35

    Implementing DMA in a Computer

    System

    A DMA controller implements direct memory accessin a computer system.

    It connects directly to the I/O device at one end and

    to the system buses at the other end. It also interactswith the CPU, both via the system buses and twonew direct connections.

    It is sometimes referred to as a channel. In an

    alternate configuration, the DMA controller may beincorporated directly into the I/O device.

  • 7/29/2019 80483977 DMA is Implemented Using a DMA Controller

    12/35

    Data Transfer using DMA Controller

    To transfer data from an I/O device to memory, theDMA controller first sends a Bus Request to the CPUby setting BR to 1. When it is ready to grant thisrequest, the CPU sets its Bus grant signal, BG to 1.

    The CPU also tri-states its address,data, and controllines thus truly granting control of the system busesto the DMA controller.

    The CPU will continue to tri-state its outputs as longas BR is asserted.cont

  • 7/29/2019 80483977 DMA is Implemented Using a DMA Controller

    13/35

    Process of DMA Transfer To initiate a DMA transfer, the CPU loads the address

    of the first memory location of the memory block (tobe read or written from) into the DMA addressregister. It does his via an I/O output instruction,

    such as the OTPT instruction for the relatively simpleCPU.

    It then writes the no. of bytes to be transferred intothe DMA count register in the sane manner.

    Finally, it writes one or more commands to the DMAcontrol register.

  • 7/29/2019 80483977 DMA is Implemented Using a DMA Controller

    14/35

    Internal Configuration

    The DMA controller includes several registers :-

    The DMA Address Register contains the memoryaddress to be used in the data transfer. The CPUtreats this signal as one or more output ports.

    The DMA Count Register, also called Word CountRegister, contains the no. of bytes of data to betransferred. Like the DMA address register, it too istreated as an O/P port (with a diff. Address) by theCPU.

    The DMA Control Register accepts commands fromthe CPU. It is also treated as an O/P port by the CPU.

  • 7/29/2019 80483977 DMA is Implemented Using a DMA Controller

    15/35

    Operating Sequence of a DMA Transfer

    To perform a DMA transfer the CPU: allocates a memory block and assigns it to the DMAC;

    writes the transfer mode and the address of the peripheral device tothe DMAC registers;

    waits for DMA request from the peripheral after configuring the

    DMAC. If a peripheral device receives data from outside it asserts the

    request signal to the DMAC.

    The DMAC transfers the received data from the peripheral devicecontroller to the memory and asserts the acknowledge signal to theperipheral device.

    When the transfer is completed a flag in the status register of theDMAC will be set and/or the DMA controller sends an interrupt tothe CPU.

  • 7/29/2019 80483977 DMA is Implemented Using a DMA Controller

    16/35

    Main Features of the DMA Controller

    (I) The DMAC will be designed for an AMBA AHB 2.0 bus with a big-

    endian data format.

    The DMAC is configurable for each valid AHB data bus width from32 bits up to 1024 bits.

    The DMAC has several independent DMA channels. The number of

    these channels is configurable from 1 up to 31. The DMAC executes only dual-access transfers using an internal

    memory organised as FIFO.

    The DMAC supports single transfers as well as a block transfer. Single transfer consists of a read burst and a subsequent write burst.

    A block transfer consists of several successive single transfers.

    The burst length as well as the number of transfers isprogrammable.

  • 7/29/2019 80483977 DMA is Implemented Using a DMA Controller

    17/35

    a n ea ures o eController (II)

    The data width of a transfer is programmable from 8 bits upto the data bus width in steps of powers to the base of two(8 bits, 16 bits, , 1024 bits).

    The controller supports all four possible kinds of transfer

    Peripheral

    Memory Memory Peripheral

    Peripheral Peripheral

    Memory Memory

    A transfer can be triggered by sending a software command

    from the CPU or by asserting of a request signal DREQ. The controller asserts an acknowledge signal DACK as a

    response on a hardware request.

  • 7/29/2019 80483977 DMA is Implemented Using a DMA Controller

    18/35

    rans er a e o eController

    0

    50

    100

    150200

    250

    300

    350

    400

    1 32

    Burst Length

    TransferRateinunitso

    Mbits/sec

    This chart shows the

    theoretical (top curve) and

    measured transfer rate of

    the DMAC. These transfer

    rates apply to a 25 MHz

    system clock.The measured transfer rate

    is lower than the

    theoretical transfer rate

    due to the used memoryconfiguration.

  • 7/29/2019 80483977 DMA is Implemented Using a DMA Controller

    19/35

    Advantages of DMA

    Fast memory transfer of data

    CPU and DMA run concurrently under cache

    mode

    DMA can trigger an interrupt, which frees the

    CPU from polling the channel

  • 7/29/2019 80483977 DMA is Implemented Using a DMA Controller

    20/35

    Buffers and Arbitration

    Most DMACs have a data storage buffernetwork interfaces receive data from mainmemory at bus speed, send data onto

    network at network speed.

    Bus Arbitration is needed to resolve conflicts

    with more than one device (2 DMACs or DMAand processor, etc..) try to use the bus toaccess main memory.

  • 7/29/2019 80483977 DMA is Implemented Using a DMA Controller

    21/35

  • 7/29/2019 80483977 DMA is Implemented Using a DMA Controller

    22/35

  • 7/29/2019 80483977 DMA is Implemented Using a DMA Controller

    23/35

  • 7/29/2019 80483977 DMA is Implemented Using a DMA Controller

    24/35

  • 7/29/2019 80483977 DMA is Implemented Using a DMA Controller

    25/35

  • 7/29/2019 80483977 DMA is Implemented Using a DMA Controller

    26/35

  • 7/29/2019 80483977 DMA is Implemented Using a DMA Controller

    27/35

  • 7/29/2019 80483977 DMA is Implemented Using a DMA Controller

    28/35

  • 7/29/2019 80483977 DMA is Implemented Using a DMA Controller

    29/35

  • 7/29/2019 80483977 DMA is Implemented Using a DMA Controller

    30/35

  • 7/29/2019 80483977 DMA is Implemented Using a DMA Controller

    31/35

  • 7/29/2019 80483977 DMA is Implemented Using a DMA Controller

    32/35

  • 7/29/2019 80483977 DMA is Implemented Using a DMA Controller

    33/35

    Summary Advantages of DMA

    Computer system performance is improved by directtransfer of data between memory and I/O devices,bypassing the CPU.

    CPU is free to perform operations that do not use systembuses.

    Disadvantages of DMA In case of Burst Mode data transfer, the CPU is rendered

    inactive for relatively long periods of time.

    n ma ys em w a

  • 7/29/2019 80483977 DMA is Implemented Using a DMA Controller

    34/35

    n ma ys em w aController

    RequestPeripheral

    Device

    DMA

    Controller

    Memory

    Acknowledge

    CPU

    On-Chip-BusInterrupt

    Bus

    Arbiter

  • 7/29/2019 80483977 DMA is Implemented Using a DMA Controller

    35/35

    Conclusions

    A DMA controller specification for a SoC has been conceivedsupporting a list of typical and application-specific features.

    A sophisticated DMA controller has been designed. The DMA controller has been implemented successfully as a VHDL

    IP core. The DMA Controller has been integrated together with the LEON-2

    IP core in a Xilinx Virtex-II FPGA. The functionality of DMA controller has been tested extensively. The DMAC is suitable for use with High-bandwidth Peripherals. The following CAD tools have been used:

    Mentor ModelSim

    Synplicity Synplify XILINX Foundation ISE 5.1