DXR165の備忘録

自分用の備忘録です。

DMA(Direct Memory Access)関連調査メモ  

DMA

下の表にしたような、高速通信を行う必要がある周辺I/Oデバイスコントローラは、DMAマスタ機能を内蔵しているものがあるよ。

周辺I/Oデバイス 主な接続バス 備考
ハードディスク SCSI、IDE/ATA、Serial ATA
グラフィックス AGP、PCI Express
USBホスト PCI(USB2.0)、PCI Express(USB3.0) UHCI、OHCI、EHCI、xHCI
ネットワーク PCI Ethernet

これらのコントローラは、自分専用のDMACを内蔵していて、DMAマスタになって能動的にDMA転送を起動することができるんだ。USBホストやEthernetコントローラは、一般にPCI系のバスに接続されていることが多い。

PCIバスの規格では、接続したデバイスがDMAマスタになる機能がサポートされているため、DMA転送とは非常に相性がいいんだ。

このようなDMAマスタデバイスを「バスマスタ型デバイス」と言うこともある。最近のPCでは、USBやネットワークは必須機能になっているから、最初からマザーボードやチップセットに内蔵されている。

例えば、Intelチップセットでは、ICH(I/O Controller Hub)というコンパニオンチップにまとめられているんだ。こういう場合も、CPUとはPCIと互換性のあるバスで接続されているので、ソフトウェア(デバイスドライバ)の視点からはPCIの場合と同じように扱うことができるんだよ。

出典
学校では教えてくれないこと
DMA対応と言われたら(1)
https://www.uquest.co.jp/embedded/learning/lecture15-1.html





DMAの仕様としてISAで規定されていて、

DMAコントローラとして主に使用されていた代表的なICとして8237Aがあります

( 8237Aのデータシート がダウンロードできますので興味の有る方はダウンロードしてみてください)

DMAコントローラ8237Aが導入されたのはIBM PCからとなります。

DMAコントローラ8237Aは4つのチャンネルがありますので、4つのデバイスのデータ転送が可能となります

ATXマザーボードでは1つのDMAコントローラのみでしたが、現在のPCでは2つのICで合計8のデバイスの

データ転送が可能となっています。 割り込みその2で見てきたPICと同じように2つのICが連結されています

2つのDMAコントローラは4MHzのクロックで動作しています。



現在のパソコンでは、ISAのDMAでは8つのデバイスしか転送できない、また64kBまでのメモリまでしか

アクセスできない(理由は後述します)、転送速度が遅いためHDDなどの大容量デバイスかつ高速な

デバイスはUDMA(Ultra Direct Memory Access)が使用されています。

しかし、フロッピーディスクなどの昔からあるデバイスをサポートするためにISAのDMAは

現在でも残っていますので、ISA仕様のDMAは現在のパソコンでも残っています。

このサイトではISA仕様のDMAをISA DMAと表記します
出典
ISA(Industry Standard Architecture)とDMA
http://softwaretechnique.jp/OS_Development/kernel_development13.html












関連記事

category: PC-HW

tb: 0   cm: 0

コメント

コメントの投稿

Secret

トラックバック

トラックバックURL
→http://dxr165.blog.fc2.com/tb.php/434-903b40ff
この記事にトラックバックする(FC2ブログユーザー)

プロフィール

最新コメント

カウンター(2012/3/10以降)