Direct Memory Access (DMA) Flashcards

1
Q

What is DMA?

A

Direct Memory Access (DMA) is an essential part of any modern computing architecture.

DMA allows the CPU to offload any intensive memory access tasks to other components.

This effectively frees the CPU up and provides more cycles to complex tasks which it really was designed for.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Direct Memory Access (DMA)

A

Using DMA, the CPU initiates the transfer of data and carries out other operations whilst this transfer is in progress.

The CPU then receives aninterruptfrom the DMA controller (DMAC) when the operation is done.

This feature is useful any time the CPU cannot keep up with the rate of data transfer, or where the CPU needs to perform useful work while waiting for a relatively slow I/O data transfer.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Direct Memory Access cont.

A

As an example, you are reading this presentation and will hopefully save this to your drive location for future reference.

Are any sort of calculations being performed here?

When saving, this presentation will simply be received by your network card from the notes drive and routed to your desired storage location.

For the CPU to take part in this menial task is simply just overkill and considered unnecessary.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

More on Direct Memory Access (DMA)

A

*CPU is always busy – operations into and out of memory
*DMA takes pressure of the CPU – using a ‘middle man’ called DMAC (Direct Memory Access controller)
*DMA typically used two chips two DMA controllers) ATX spec now only one (Controller)
*Handles I/O -> memory and memory -> I/O.
*DMA also for “memory to memory” copying or moving of data within memory.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What the DMAC needs

A

*The DMA controller first needs some information related to the upcoming operation.
*The source and destination addresses
*The mode (burst or single cycle)
*The size of the data to be transferred.
*Now DMAC knows what to transfer, where to transfer it to, how to do it, and how long to do it for.
*With this knowledge the DMA controller can then request control of the buses from the CPU.
*When the CPU is ready it sends an acknowledge signal in response to the DMA controller’s request signal.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

DMA (Direct Memory Access)

A

Example – GAMERS! Sound card - if CPU is used – sound stutters as the CPU is also attending to other resources

DMA moves data from RAM to the sound card

Therefore, DMA accesses areas of memory where the sound info is stored – Faster - Efficient

How well did you know this?
1
Not at all
2
3
4
5
Perfectly