DMACとは? わかりやすく解説

ディーマック【DMAC】

読み方:でぃーまっく

direct memory access controler》⇒DMAコントローラー


ジメチルアセトアミド

分子式C4H9NO
その他の名称酢酸ジメチルアミド、DMAC、N,N-Dimethylacetamide、Acetic acid dimethylamide、U-5954、DMA、NSC-3138、アセトジメチルアミド、Acetdimethylamide、ジメチルアセトアミド、Dimethylacetamide、1-(Dimethylamino)ethanone、N-Acetyldimethylamine、N-Methyl-N-methylacetamide
体系名:N-メチル-N-メチルアセトアミド、N-アセチルジメチルアミン、N,N-ジメチルアセトアミド、1-(ジメチルアミノ)エタノン


Direct Memory Access

(DMAC から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2026/04/26 10:18 UTC 版)

Direct Memory Access(ダイレクトメモリーアクセス、DMA)は、CPUを介さず、バスを使いメモリとメモリ、またはメモリとI/O(周辺デバイス等)の間で直接的にデータ転送を行う機能。[1]

コンピュータにDMAが無い場合はデータ転送はCPUが行うが、DMAを使用している場合、CPUに代わりDMAがデータを転送する[1]。DMAを制御する装置をDMAコントローラ(DMA Controller, DMAC)という。

概要

DMAを使うと高速のデータ転送が可能になり、コンピュータの性能を総合的に上げることができる[1]。 DMAがあれば、CPUは、データ転送の仕事はDMACにまかせて、その時間をCPUにしかできない仕事に使うことができる[1][2][注釈 1]

ただし、DMAは1本しかないバスをCPUと分け合って使うため、バスの使用権の調整が必要となる[1]。 このバスの使用権の調整は英語で「バスアービトレーション(Bus Arbitration)」といい、「バス権の調停」と訳されている[1]。→#使用権の獲得

DMAでのデータ転送は、通常は、DMACが行う。CPUはDMACに、データの転送元・転送先や転送モードやデータ数などを指定し、その後に転送開始のトリガーを送るだけである[3][1]。トリガーを送れば、CPUは他のタスクを開始することができる[3]。DMACの側は、データ転送の仕事を完了したら、CPUに割り込みをかけて転送終了を知らせる[1]。またデータ転送でエラーが生じた場合も、CPUに割り込みをかけて知らせる[3]

AMD DirectGMA はDMAの一形態である。

なお、昔のISAバス方式では、CPUはマザーボードチップセットに内蔵されたDMACに命令を送る方式であった。現代のPCIバスでは、「Bus mastering DMA」すなわちI/O機器の側がPCIバスの制御を任されDMA転送をすべて司る方式が採用されている。一方、組込システムでは、SoC内でバスに直結されたDMACがSoC内のバスを操作してDMAを実現するものがある。また、必要な転送性能や許容可能な消費電力等の使用条件に応じて複数のバスを使い分けることがあるが、この場合はDMACも各バスに対応したものを選ぶ必要がある。

ネットワークのパケット送信や音楽再生やビデオ配信などの際には継続的な読み出しを必要とし、DMAは専用の組み込みチップで使われている。またDMAは、マルチコアでもクラスタリングでも効果を発揮する。この場合、DMA通信の状態通知ピンとして、受信状態を示すHOLDピンと、送信状態を示すHLDAピンが存在する。

DMAの使用を前提とする場合、データバスのビット幅を必ずしもCPUのデータビット幅に合わせる必要はない。特に、データバスのビット幅をCPUのデータビット幅よりも広く取ることにより、CPU経由よりもさらに広帯域のデータ転送が可能となる。例として、AXIバスは2003年リリースの初版から最大1024ビット幅のデータバスをサポートしている。当時のCPUデータ幅は32ビットが主流であり、AXIバスとよく組み合わされているARMアーキテクチャにてAArch64が発表されるよりも8年前のことであった[注釈 2]

使用権の獲得

DMACがCPUから使用権を獲得する(バスアービトレーション)方式の代表的なものとしては、ラウンドロビンサイクルスチールバーストがある。ラウンドロビンはバス権を順番に譲っていく方式。サイクルスチール方式では、CPUがメモリにアクセスしていないバスサイクルの間にDMAがバスを使う。バースト方式は、一定時間、1つのバスマスターがバス権を占有する方式で、優先度の高いデータを急いで転送したい時に使う[4]

サイクルスチールモードDMA
CPUからメモリBUS制御を渡してもらい、1~2ワードずつ転送する方法[5]。CPUは隙間なくメモリBUSを利用するとは限らないので、CPUが処理を進めるのと並行したデータ転送が可能となり得る。
バーストモードDMA(ブロック転送と呼ぶ資料[5]もある)
CPUからメモリBUS制御を渡してもらい、データを一気に転送する方法[5]

使用上の注意

DMAの使用上の注意点として挙げられる主なもののひとつはオーバーランで、もう1つはキャッシュと併用するシステムのメモリの一貫性である。

オーバーラン

オーバーランとは通信機能を使用する時など、受信バッファに取り込まれたデータをCPUやDMAが読み出さないうちに次のデータを取り込んでしまい、1つ前の受信データが失われてしまうこと。特にサイクルスチールやバースト方式では、CPUやDMAがバス使用権を待つ時間が長くなり、待つ間に通信機能が次のデータを受け取ってしまうとオーバーランが発生する。ラウンドロビン方式だと、バス使用権の待ち時間が短く、オーバーランは発生しにくい[6]

データの一貫性問題

キャッシュを使ったシステムでは、キャッシュが持っているデータとキャッシュラインを共有するメインメモリをCPUとDMAのどちらか、ないしは両者が書き換えてしまうと、キャッシュとメインメモリのデータの一貫性が失われてしまうので、一貫性を管理する何らかの方法が必要となる[6]。同じアドレスのメモリをCPUとDMAのいずれか、ないしは両者が更新してはならないことは自明だが、同一キャッシュライン上にDMA転送対象のメモリとそれ以外のメモリが混在している場合にも問題が発生することに注意を要する。

仮想記憶下での物理メモリページ境界

物理メモリアドレスをメモリのアドレッシングに用いる DMAC を使用して DMA を実行する場合、物理メモリのページ境界をまたがないようにする必要がある。境界をまたいだ場合、後続の論理アドレスページに対応する物理アドレスページが同様に連続した後続領域に確保されるとは限らないからである[7]。DMAC がベクトルI/O英語版をサポートしている場合は、各物理アドレスページ毎に DMA 転送を設定し、それらを連続実行することにより物理メモリのページ境界をまたいだ DMA 転送が可能となる。

割り込みの増加

DMAC は一般に転送終了を CPU への割り込みにより通知するが、それとは別にデータ転送の端点となるデバイスが転送終了をデバイス独自の割り込みにより CPU へ通知できる場合がある。この場合、あるデータ転送において DMAC と端点デバイスの両者からほぼ同時に転送終了の割り込みが発生することや、いずれの割り込み処理にあっても同じデータへアクセスしなければならないことに起因する排他制御が必要となるため、CPU やソフトウェア上の負荷が増える。割り込みの負荷を軽減するには、DMAC ないしは端点デバイスのどちらかの割り込みを抑制する必要がある。これが実現できるかどうか、およびどちらの割り込みを抑制するのが良いかは、端点デバイスの仕様や DMA 転送の具体的な手順に依存する。

歴史

DMAはPDPシリーズにおいて採用されていた。

1970年代にリリースされた数MHzで動作するマイクロプロセッサでは、CPUによるデータ転送ハードディスク等の10MB/秒程度の転送速度を発揮する事は困難で、専用のコントローラでデータ転送を行う必要があった。このコントローラは、データ転送を高速に行う機能に特化したCPUであったともいえる。たとえばZ80にはZ80DMA、MC68000には、MC68450などのDMAコントローラ(DMAC)が用意されていた。

また、日立のH8にもDMACが存在している[8]

Intel 80286(APX286。1982年2月発表)などでは、当時通常のI/Oを制御するためには充分な動作速度だったことや、主流のパーソナルコンピュータにおいてi8249等の低速なDMACしか搭載されておらず、他に適当なDMACが存在しなかったことなどから、DMAはあまり使用されなくなった。

1990年代に、CPUの世代がPentiumになり充分に高速になると、今度は、低速なI/Oの管理がボトルネックとなったため、いわゆるチップセットにI/O専用の高速なDMACが搭載されたり、周辺機器制御LSIが簡単なDMA機能を持つようになり、再度DMAが活用されるようになった。Pentium以降主流となったPCIバスでは、バスマスタリングとしてDMAが実装されている。

高機能DMACの登場

初期のDMACは単純に指定されたアドレス範囲を指定されたメモリもしくはポートに入出力する機能のみを備えていた。しかしオペレーティングシステムが普及し、ハードディスクへのI/OにDMACを使う様になってから、DMACには「データブロックを分割する(スキャッタリング)」「データブロックを集約する(ギャザリング)」を行う機能が要求された。MC63450 DMAC等には、DMACがリンクリストを読み取って転送内容を分割したり集約する機能が搭載されている。PC/AT互換機向けのSCSIホストアダプタカード等では、コントローラチップに集積されているDMACがこの機能を担当していた。スキャッタリング・ギャザリング機能が無い場合CPUは最低でも1セクタ分ずつメモリ・メモリ間転送を行わなければならず、またDMACに読み取らせるメモリ領域が転送完了するまで使用できないため、I/O時のCPU負荷上昇とI/O待ち時間が発生しシステム性能に悪影響を与えた。

DMAC、DMA機能を持つLSIおよびIP

代表的なものを挙げる。

脚注

  1. 1 2 3 4 5 6 7 8 EDN, 菅井賢「DMAのメリットって何?」
  2. Tech Target, Direct Memory Access
  3. 1 2 3 Linda Null, Julia Lobur(2006), The Essentials of Computer Organization and Architecture, p.335, Direct Memory Access
  4. 「DMAのメリットって何?2頁」
  5. 1 2 3 Hayes, John P.『Computer Architecture and Organization』McGRAW-HILL INTERNATIONAL BOOK COMPANY、1978年、426-427頁。ISBN 0-07-027363-4
  6. 1 2 https://edn.itmedia.co.jp/edn/articles/1608/18/news015_3.html
  7. Hennessy, John L.; Patterson, David A. (1994). Computer Organization and Design: The Hardware/Software Interface. Morgan Kaufmann Publishers. p. 574. ISBN 1-55860-281-X
  8. CQ「H8-MPUを知る」
  9. 川村 清『PC-9801解析マニュアル[第0巻]』秀和システムトレーディング株式会社、1983年6月30日、199-236頁。
  10. pPD71037 Direct Memory Access (DMA) Controller”. 2024年1月7日閲覧。
  11. µPD71071 DMA Controller”. p. 940(5g1). 2024年4月26日閲覧。
  12. CoreLink DMA-330 DMA Controller Technical Reference Manual”. ARM. 2024年8月12日閲覧。

注釈

  1. 外部入出力(I/O)や周辺装置のデータ転送速度は通常、RAMよりも桁違いに遅いので、DMAが使われる以前は、CPUはデータ転送の仕事の間、ほとんどの時間待っていなければならず、その間は他の仕事ができなかった。
  2. ARM以外を含めても、x64はこれを初採用したAMD OpteronがAXIバスの初版とほぼ同時期にリリースされたばかりで、その他のCPUは一部のRISCを除いて32ビットデータ幅が大半だった。

関連項目

外部リンク


ジメチルアセトアミド

(DMAC から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2026/06/06 13:37 UTC 版)

ジメチルアセトアミド
Skeletal formula of dimethylacetamide
Skeletal formula of dimethylacetamide
Ball and stick model of dimethylacetamide
Ball and stick model of dimethylacetamide
物質名
識別情報
3D model (JSmol)
略称 DMA, DMAC, DMAc[1]
バイルシュタイン 1737614
ChEBI
ChEMBL
ChemSpider
ECHA InfoCard 100.004.389 ウィキデータを編集
EC番号
  • 204-826-4
MeSH dimethylacetamide
PubChem CID
RTECS number
  • AB7700000
UNII
性質
C4H9NO
モル質量 87.122 g·mol−1
外観 無色の液体
匂い アンモニア臭
密度 0.937 g/mL
融点 −20 °C
沸点 165 °C
混和
log POW −0.253
蒸気圧 300 Pa
λmax 270 nm
屈折率 (nD) 1.4375
粘度 0.945 mPa·s [2]
熱化学
標準定圧モル比熱, Cp 178.2 J/(K·mol)
標準生成熱 fH298)
−300.1 kJ/mol
標準燃焼熱 ΔcHo −2.5835–−2.5805 MJ/mol
危険性
GHS表示:
急性毒性(低毒性) 経口・吸飲による有害性
Danger
H312, H319, H332, H360
P280, P308+P313
NFPA 704(ファイア・ダイアモンド)
NFPA 704 four-colored diamond
2
0
引火点 63 °C (145 °F; 336 K)
490 °C (914 °F; 763 K)
爆発限界 1.8–11.5%
致死量または濃度 (LD, LC)
2.24 g/kg (皮膚, ウサギ)
4.3 g/kg (経口, ラット)
4.8 g/kg (経口, ラット)
4.62 g/kg (経口, マウス)[3]
2475 ppm (ラット, 1時間)[3]
NIOSH(米国の健康曝露限度):
PEL
TWA 10 ppm (35 mg/m3) [皮膚][4]
REL
TWA 10 ppm (35 mg/m3) [皮膚][4]
300 ppm[4]
関連する物質
関連物質
特記無き場合、データは標準状態 (25 °C [77 °F], 100 kPa) におけるものである。
☒N verify (what is  ☒N ?)

ジメチルアセトアミドは化学式C4H9NOで表される有機化合物である。N,N-ジメチルアセトアミドとも呼ばれ、DMADMAcと略されることがある。 無色で水に可溶であり、吸湿性を持つ。高沸点の極性溶媒として、有機合成化学において広く用いられる。アルコールエーテルケトンハロゲン化物芳香族などの他の溶媒とも容易に混ざる。しかし、脂肪族炭化水素とはほとんど混ざらない。

アミドの部分は触媒で加水分解される。

CH3CON(CH3)2 + H2O + HCl → CH3COOH + (CH3)2NH·HCl

またナトリウムメトキシドなど強塩基を用いる反応の溶媒にしばしば用いられる[5]

工業的にもよく用いられる溶媒であるが、人体に有害であり、吸入や皮膚の接触は避けなければならない。発がん性や催奇性があると疑われている。日本では消防法により危険物第4類に指定されている。

出典

  1. Munro, D. D.; Stoughton, R. B. (1965). “Dimethylacetamide (DMAC) and Dimethylformamide (DMFA). Effect on Percutaneous Absorption”. Archives of Dermatology 92 (5): 585–586. doi:10.1001/archderm.1965.01600170101020. PMID 5844405.
  2. Iloukhani, H., K. Khanlarzadeh. "Densities, viscosities, and refractive indices for binary and ternary mixtures of N, N-dimethylacetamide (1)+ 2-methylbutan-2-ol (2)+ ethyl acetate (3) at 298.15 K for m liquid region and at ambient pressure". Journal of Chemical & Engineering Data, 51.4 (2006): 1226–1231. doi:10.1021/je050538q.
  3. 1 2 Dimethyl acetamide”. 生活や健康に直接的な危険性がある. アメリカ国立労働安全衛生研究所(NIOSH). 2026年8月22日閲覧。
  4. 1 2 3 NIOSH Pocket Guide to Chemical Hazards 0218
  5. S. Zen, E. Kaji, Organic Syntheses, Coll. Vol. 6, p.503, 1988 (Vol. 57, p.60, 1977). (オンライン版)

外部リンク



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「DMAC」の関連用語

DMACのお隣キーワード

   

英語⇒日本語
日本語⇒英語
   



DMACのページの著作権

   
デジタル大辞泉デジタル大辞泉
(C)Shogakukan Inc.
株式会社 小学館
独立行政法人科学技術振興機構独立行政法人科学技術振興機構
All Rights Reserved, Copyright © Japan Science and Technology Agency
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのDirect Memory Access (改訂履歴)、ジメチルアセトアミド (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2026 GRAS Group, Inc.RSS