Introduction to Direct Memory Access (DMA)

แชร์
ฝัง
  • เผยแพร่เมื่อ 1 ม.ค. 2021
  • We've learned how interrupts relieve the CPU of the burden of polling, but what about the data transfer? A DMA will handle that for us. This lesson shows how.
    Takeaways: At the completion of this lesson, each student should be able to:
    • explain the benefits of direct memory access (DMA),
    • describe the process of cycle stealing,
    • explain how a cache supports the use of DMA,
    • list the four things the DMA needs to complete a transfer, and
    • show how different DMA configurations affect the number of memory cycles stolen per data element transfer.
    #dma #io #bus

ความคิดเห็น • 21

  • @Harko33
    @Harko33 2 ปีที่แล้ว +40

    Just discovered this channel. Awesome. You're a very good teacher, thank you.

  • @toms_lii2065
    @toms_lii2065 3 ปีที่แล้ว +26

    So underrated content. Thank you!

  • @thuantta
    @thuantta 3 ปีที่แล้ว +8

    Very cool overview about what DMA is! Easy to understand explanation

  • @wtfitsdrewbritton
    @wtfitsdrewbritton 2 ปีที่แล้ว +3

    Wish I found your videos sooner! Good stuff

  • @johnw8154
    @johnw8154 2 ปีที่แล้ว +1

    this should be trending honestly

  • @kyrilkaplan5011
    @kyrilkaplan5011 2 ปีที่แล้ว +1

    Excellent teaching : the what and the why...thanks !

  • @user-kq1de9ef2t
    @user-kq1de9ef2t 2 ปีที่แล้ว +1

    Thank you... perfect explanation!!

  • @radioactivepeter
    @radioactivepeter 2 ปีที่แล้ว +3

    Excellent video, keep up the good work!

  • @user-kh4kh2wl9p
    @user-kh4kh2wl9p 2 ปีที่แล้ว +2

    Thanks!!

  • @leprofeet9989
    @leprofeet9989 2 ปีที่แล้ว +1

    wowie this is useful thanks a lot

  • @ayusssapkota327
    @ayusssapkota327 2 ปีที่แล้ว +14

    How're you writing like that?

  • @goodwill7643
    @goodwill7643 3 ปีที่แล้ว

    So as I understand, these functions (DMA Channels) are fixed and connected to specific/predefined interfaces like timers, UART or SPI and can be configured only with corresponding interface in order to decries clock cycles for data transfer. In other words I can't choose any random interface on software level and say ok, now do data transfer for ADC for example (if there is no DMA Channel for it).
    I think I got it. Thank you.

    • @Intermation
      @Intermation  3 ปีที่แล้ว +1

      Depending on the hardware, you may or may not have the ability to transfer data between any device and memory. I've worked with a number of architectures where you just give the DMA a source address, a destination address, whether to increment, decrement, or leave static each of those addresses with each transfer, and the amount of data to transfer, and it handles the transfer.

    • @TNTsundar
      @TNTsundar 3 ปีที่แล้ว

      It depends entirely on the DMA engine’s design. You could have mere copiers to more sophisticated ones that understand a lot more context. If the DMA is based on a one-size-fits-all design principle then yes, you could transfer between any peripheral on your chip to any other peripheral or memory.

  • @subashsuresh8953
    @subashsuresh8953 2 ปีที่แล้ว

    But sir here we use the arrays that are a run-time storage right, here it's possible for that

  • @goncalosousa9691
    @goncalosousa9691 3 ปีที่แล้ว

    That means DMA interact with CPU?

  • @natrua100
    @natrua100 2 ปีที่แล้ว

    why DMA have number of channels? Do they help to increase the speed of transfer?

    • @Intermation
      @Intermation  2 ปีที่แล้ว +1

      As I've always understood it, a channel is assigned to a specific device. It can be rotated to another device, but only after completing its transfer for the first device.

  • @mrsteven1211
    @mrsteven1211 3 ปีที่แล้ว

    No entendí nada =/

    • @Intermation
      @Intermation  3 ปีที่แล้ว +1

      I'm guessing you understand a lot more than you think!

  • @blainegabriel8906
    @blainegabriel8906 3 ปีที่แล้ว

    I'm Alone 😍😥