バスマスタ〖の涪嘎があれば、コンピュ〖タの回带炭吾废琵を积つ。これにより件收チップやメモリを毁芹布に弥くことができる。コンピュ〖タが弹瓢した木稿は答塑弄にMPUがバスマスタ〖になる。ところが、眷圭によってデ〖タの啪流を光庐步するために、DMAコントロ〖ラ∈毋えばディスプレイインタフェ〖スに矢机や茶咙を啪流するとき∷やFDコントロ〖ラ∈FDとデ〖タの粕み今きをする箕∷にバスマスタ〖の涪嘎を败すことがある。
デ〖タ翁が驴いとき、マイコンのバスをCPUの毁芹から艰り惧げ、办箕弄に戮の刘弥がこのバスを漓铜して、跟唯を惧げる。この数恕をDMAという。つまり、DMAとは掐叫蜗扩告の办硷である。この眷圭は、CPUを奶さずに、木儡嘲婶怠达とメモリの粗でデ〖タ啪流を乖うので、光庐刨で驴翁のデ〖タをブロックとして啪流できる。
办数、CPUを拆哼させてINPUT炭吾、OUTPUT炭吾などを悸乖してデ〖タ啪流を乖う数恕をProgrammed I/O数及∈PIO数及∷という。このときは炭吾胳が10镍刨涩妥になり、啪流件袋は100[μs]涟稿になり、光庐な啪流に稍羹きである。つまり、掐叫蜗のための炭吾胳などを悸乖することがスピ〖ド你布を痉いているのである。
よって、DMAはCPUを纳庶して、件收怠达∈FDDˇディスプレイˇカセットテ〖プレコ〖ダ〖∷とメモリを木冯してしまうという雇えである。ただし、CPUの洛わりにDMAコントロ〖ラ∈DMAC∷と钙ばれるハ〖ドウェアが涩妥である。
DMA数及で啪流を乖うためには、啪流を幌める涟にプログラムによる肌の介袋拎侯を涩妥とされる。
1¨アドレスレジスタへDMA啪流を倡幌するメモリの戎孟を啪流する。
2¨啪流するデ〖タの改眶をカウンタへ啪流する。カウンタの洛わりにアドレスレジスタがもうひとつあるときは、DMA啪流の姜位メモリ戎孟を啪流する眷圭もある。
3¨ステ〖タスレジスタに扩告コ〖ドを啪流する。扩告コ〖ドとは件收怠达からメモリへデ〖タを啪流するのか∈デ〖タ啪流∷、メモリから件收怠达へ啪流するのか、DMA瓢侯をアクティブにするのかインアクティブにするのかを、泼年の疤弥のビットの0/1で年めるものである。
これらの攫鼠は、デ〖タバスを沸てDMAコントロ〖ラのレジスタに今き哈まれる。
件收怠达からDMAREQ∈DMA Request¨DMA妥滇慨规∷が、DMAコントロ〖ラに丸たとする。このとき、ステ〖タスレジスタがDMA瓢侯のアクティブを绩していれば、DMAコントロ〖ラはCPUに滦してHOLD REQ慨规を流慨する。HOLDが钓材されると、件收怠达へアクノレッジド慨规DMAACKを叫蜗する。
デ〖タ啪流がメモリへの今き哈みだとすると、DMAACKが丸るごとに件收怠达はデ〖タバスに啪流するべき攫鼠を流り叫す。办数、DMAコントロ〖ラはアドレスレジスタの柒推をアドレスバスに流り叫して、WRITE瓢侯を绩す扩告俐をステ〖タスレジスタにしたがってアクティブにする。
笆惧の瓢侯のタイミングがうまくとれていれば、メモリのほうはアドレスの绩すチップ柒のメモリセルのデ〖タを艰り哈むことになる。扩告慨规ˇデ〖タˇアドレス慨规の券栏富がCPUであっても、DMAコントロ〖ラであっても、RAMには簇犯ないことである。1つ啪流するごとにDMAコントロ〖ラはカウンタの猛をデクリメントするので、ゼロになれば啪流を姜位したことになる。なお、カウンタの洛わりに姜位戎孟を绩すレジスタがある眷圭には、黎片戎孟を绩すレジスタをインクリメントしていく。
DMA啪流が姜位し眷圭に、充り哈みをかけてCPUに梦らせる眷圭もある。
また、介袋猛脱の淡脖レジスタを积っていれば、浩刨介袋肋年を乖い、CPUが贿まるまで借妄を悸乖する眷圭もある。
件收怠达が剩眶赂哼し、称」がDMA啪流を妥滇する眷圭でも、付妄弄には办つの眷圭と恃わらない。称DMA啪流妥滇に滦して、アドレスレジスタ、カウンタ、ステ〖タスレジスタをDMAコントロ〖ラの面に肋けておき、介袋肋年のプログラムで努碰な猛を今き哈んでおけばよいのである。
啼玛はDMAREQの庭黎刨であるが、DMAコントロ〖ラ巴赂になる。