Page 98 - Embedded Microprocessor Systems Real World Design
P. 98

THE PROBLEM:
                  DMA REQUEST
                  DMA ACKNOWLEDGE   CPU    I    REQUESTER        I <  cw AND  REQUE~R
                  REQUESTERREQUESTS 4              ~~  1           L
                  ADDRESUDATA BUSES

                  BUS                                             '
                  WITH REQUESTERPROCEEDS  J                I I
                  CPU GIVES UP BUS
                      DMA
                         CYCLE
                  REQUESTER GIVES UP
                   BUS
                   REQUESTER REQUESTS                          I
                   BUS AGAIN .....
                  AND SEES ACKNOWLEDGE
                  STILL ACTIM. TAKES BUS.
                  AT THE SAME TIME CPU
                   COMES  OUT OF HOLD
                   STATE AND TAKES BUS
                   BACK. RESULT IS
                  BUS CONTENTION AS BOTH
                  CPU AND REQUESTER
                  ATTEMPT TO DRIVE THE
                  BUS
                                                             REQUESTER WANTS BUS HERE ....
                                                                  BUTDOESNOTASSERTREQUEST
                                                                  UNTIL CPU HAS REMOVED ACKNOWLEDGE.
                                          THE SOLUTION:
                   DMA REQUEST
                  DMA ACKNOWLEDGE
                  ADDRESWDATA BUSES  \, CW                          CPU

                   REQUESTER MUST NOT
                  ASSERT DMA REQUEST
                   UNLESS DMA
                  ACKNOWLEDGE IS
                   INACTIM.

                   Figure 2.25
                   DMA Timing Problem.



                     Figure 2.25 illustrates this scenario, which can be avoided by  not allowing the
                  bus requester to request the bus a second time until the other processor has reac-
                  quired the bus after the first request.


                   Internal DMA Controllers
                  Some processors, such as the 80186 and 386EX, have internal DMA controllers.
                  These include address counters and logic to handle  the DMA request inside the
                  processor. On the 186 and 386EX, two pins are provided for peripherals to request


                  80                                               Embedded Microprocessor Systems
   93   94   95   96   97   98   99   100   101   102   103