インターネットデパート - 取扱い商品数1000万点以上の通販サイト。送料無料商品も多数あります。

0から作るOS開発 Vol.8 カーネル編 DMAドライバー

価格: ¥0
カテゴリ: Kindle版
ブランド: yabusame2001
Amazon.co.jpで確認
C言語で0から作るOSを開発について説明していきます。このシリーズではカーネルの開発について説明しています。
今回はディスクを読み書きするときのデータ転送をCPUの代わり行ってくれるDMAについてそのコントローラとレジスター制御について説明していきます。

[第2版 改定]
DMAコントローラーに読み込み転送モードを設定関数が正しく表示できていない問題を修正しました。

[目次]
前回までの内容
DMA(Direct Memory Access)の概要
  ポーリングによるデータ転送
  割り込みを受けてからのデータ転送
  DMA(Direct Memory Access)による転送
  DMAの特徴
  ISA(Industry Standard Architecture)とDMA
DMA(Direct Memory Access)の動作
  DMA転送を行っていないときのバス制御
  DMA転送を行っているときのバス制御
  DMA転送するまでの手順
  PCIについて
DMAコントローラー8237A
  8237A
    DMAコントローラーICの特徴
    DMAコントローラーとフロッピーディスクコントローラー
  DMA転送とアドレス
  ISA DMAとシステムバス
x86のDMAコントローラー
  x86のDMAコントローラーの特徴
DMAコントローラー8237Aのレジスター制御
  制御レジスター
  制御レジスターの定義
  チャンネル制御レジスター
  ベースアドレスレジスターとベースワードカウントレジスター
    マスター(16ビット動作)の転送アドレス操作
  ベースアドレスレジスターとベースワードカウントレジスターの実装
    カレントアドレスレジスターとカレントカウントレジスター
  拡張ページアドレスレジスター
    拡張ページアドレスレジスター詳細
  拡張ページアドレスレジスターの実装
制御レジスター詳細
  コマンドレジスター
  モードレジスター
    DMA転送モードについて
      シングル転送モード
      ブロック転送モード
      DMA転送要求時にDMA転送するモード
      カスケードモード
    モードレジスターのビット定義
    モードレジスターを制御する関数の実装
  リクエストレジスター
  シングルチャンネルマスクレジスター
  オールマスクレジスター
    オールマスクレジスターの実装
  ステータスレジスター
ISA DMAコマンドレジスター
  クリアーバイトポインタレジスター(フリップフロップリセットレジスター)
  クリアーバイトポインタレジスター(フリップフロップリセットレジスター)の実装
  マスクリセットレジスター
  マスタークリアーレジスター
DMAドライバーの実装例
  フロッピーディスクコントローラーのセクター読み込み関数例の復習
  initDMAforReadFDD関数