03.01.2015 Views

80C186EC/80C188EC Microprocessor User's Manual

80C186EC/80C188EC Microprocessor User's Manual

80C186EC/80C188EC Microprocessor User's Manual

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

DIRECT MEMORY ACCESS UNIT<br />

The Chip-Select Unit monitors the BIU addresses to determine which chip-select, if any, to activate.<br />

Because the DMA Unit uses the BIU, chip-selects are active for DMA cycles. If a DMA<br />

channel accesses a region of memory or I/O space within a chip-select’s programmed range, then<br />

that chip-select is asserted during the cycle. The Chip-Select Unit will not recognize DMA cycles<br />

that access I/O space above 64K.<br />

10.1.10 The Two-Channel DMA Module<br />

Two DMA channels are combined with arbitration logic to form a DMA module (see Figure<br />

10-5).<br />

10.1.10.1 DMA Channel Arbitration<br />

Within a two-channel DMA module, the arbitration logic decides which channel takes precedence<br />

when both channels simultaneously request transfers. Each channel can be set to either low<br />

priority or high priority. If the two channels are set to the same priority (either both high or both<br />

low), then the channels rotate priority.<br />

10.1.10.1.1 Fixed Priority<br />

Fixed priority results when one channel in a module is programmed to high priority and the other<br />

is set to low priority. If both DMA requests occur simultaneously, the high priority channel performs<br />

its transfer (or transfers) first. The high priority channel continues to perform transfers as<br />

long as the following conditions are met:<br />

• the channel’s DMA request is still active<br />

• the channel has not terminated or suspended transfers (through programming or interrupts)<br />

• the channel has not released the bus (through the insertion of idle states for destinationsynchronized<br />

transfers)<br />

The last point is extremely important when the two channels use different synchronization. For<br />

example, consider the case in which channel 1 is programmed for high priority and destination<br />

synchronization and channel 0 is programmed for low priority and source synchronization. If a<br />

DMA request occurs for both channels simultaneously, channel 1 performs the first transfer. At<br />

the end of channel 1’s deposit cycle, two idle states are inserted (thus releasing the bus). With the<br />

bus released, channel 0 is free to perform its transfer even though the higher-priority channel<br />

has not completed all of its transfers. Channel 1 regains the bus at the end of channel 0’s transfer.<br />

The transfers will alternate as long as both requests remain active.<br />

10-9

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!