パソコンの中では、常に大量のデータがやり取りされています。
特に、ハードディスクやSSDなどのストレージと、CPU(中央処理装置)の間では、頻繁にデータの読み書きが行われているんです。
このデータ転送の方法には、いくつかの種類があります。その中でも古くから使われてきたのがPIOモード(Programmed I/O mode)です。
PIOモードとは、CPU自身がデータを1つずつ運ぶ転送方式のこと。
例えるなら、社長(CPU)が自ら荷物(データ)を倉庫(ストレージ)から運んでくるようなものです。効率は悪いかもしれませんが、シンプルで確実な方法なんですね。
この記事では、PIOモードの仕組みから、より効率的なDMAモードとの違い、そして現代における位置づけまで、初心者の方にも分かりやすく解説していきます。
PIOモードの基本概念

I/Oとは何か
まず、I/O(Input/Output)という言葉を理解しましょう。
I/Oは「入出力」のこと。コンピュータと外部デバイスの間でデータをやり取りすることを指します。
I/Oの例:
- キーボードからの入力
- モニターへの出力
- ハードディスクからのデータ読み込み
- USBメモリへのデータ書き込み
これらすべてがI/O操作なんです。
Programmed I/Oの意味
Programmed I/O(プログラムド・アイオー)は、直訳すると「プログラムされた入出力」。
つまり、CPUがプログラムの指示に従って、1つ1つのデータを直接転送する方式を意味します。
PIOモードの基本的な仕組み
PIOモードでは、次のような流れでデータが転送されます。
データ読み込みの流れ:
- CPUがストレージに「データを読みたい」と指示を出す
- ストレージがデータを準備する
- CPUがデータを1バイトずつ読み取る
- 読み取ったデータをメモリに書き込む
- すべてのデータを転送するまで、3-4を繰り返す
重要なのは、CPUが転送作業に付きっきりになることです。
PIOモードの動作原理を詳しく見る
CPUの役割
PIOモードでは、CPUが「運送業者」のような役割を果たします。
CPUがやること:
- アドレス指定:どこのデータが欲しいかを伝える
- データ読み取り:ストレージからデータを受け取る
- メモリへの書き込み:受け取ったデータをメモリに保存
- 繰り返し処理:必要な量だけ上記を繰り返す
この間、CPUは他の仕事ができません。データ転送に専念する必要があるんです。
レジスタを使った転送
PIOモードでは、CPUのレジスタを経由してデータが転送されます。
レジスタとは:
CPUの中にある、超高速な一時記憶場所です。
転送の流れ:
ストレージ → CPUレジスタ → メモリ
データはCPUレジスタを必ず通過します。これがPIOモードの特徴なんですね。
ポーリングとインタラプト
CPUがストレージの準備ができたか確認する方法には、2つあります。
ポーリング(Polling)方式:
CPUが定期的に「準備できた?」と確認し続ける方法。
まるで子どもが「まだ?まだ?」と聞き続けるようなものです。
インタラプト(Interrupt)方式:
ストレージが準備できたらCPUに「準備完了!」と通知する方法。
呼び出しベルを押すようなイメージですね。
インタラプト方式の方が効率的ですが、どちらもCPUがデータ転送作業をする点は同じです。
PIOモードの種類と転送速度
PIOモードにも、いくつかの世代があります。技術の進化とともに、転送速度が向上していきました。
PIOモードの世代
PIO Mode 0(最も古い)
- 転送速度:3.3 MB/秒
- サイクルタイム:600ナノ秒
PIO Mode 1
- 転送速度:5.2 MB/秒
- サイクルタイム:383ナノ秒
PIO Mode 2
- 転送速度:8.3 MB/秒
- サイクルタイム:240ナノ秒
PIO Mode 3
- 転送速度:11.1 MB/秒
- サイクルタイム:180ナノ秒
PIO Mode 4(最新)
- 転送速度:16.6 MB/秒
- サイクルタイム:120ナノ秒
PIO Mode 4でも、わずか16.6 MB/秒。現代の基準では非常に遅い速度です。
速度向上の限界
PIOモードの転送速度には、物理的な限界がありました。
限界の理由:
- CPUの処理能力に依存:CPUが他の仕事をできない
- 1バイトずつの転送:大量データに不向き
- バスの速度制限:データバスの速度が上限
これらの理由から、PIO Mode 4が事実上の最終形となりました。
DMAモードとの決定的な違い
PIOモードの限界を克服するために登場したのがDMAモードです。
DMA(Direct Memory Access)とは
DMAは「直接メモリアクセス」という意味。
CPUを介さずに、ストレージとメモリが直接データをやり取りする方式です。
転送方法の比較
PIOモードの場合:
ストレージ → CPU → メモリ
CPUが仲介役として必ず関与します。
DMAモードの場合:
ストレージ → DMAコントローラー → メモリ
CPUは転送開始の指示を出すだけ。実際の転送はDMAコントローラーという専用の回路が行います。
CPUの負荷比較
PIOモード:
- CPU使用率:ほぼ100%
- データ転送中、CPUは他の作業ができない
- 小さなファイルなら問題なし
- 大きなファイルでは非効率
DMAモード:
- CPU使用率:5〜10%程度
- CPUは転送開始の指示だけ出す
- 転送中、CPUは他の作業を続けられる
- 大量データでも効率的
速度の比較
PIOモード:
- 最大16.6 MB/秒(PIO Mode 4)
DMAモード:
- DMA Mode 2:16.6 MB/秒(PIO Mode 4と同等)
- Ultra DMA/133:133 MB/秒(PIOの約8倍)
DMAモードの方が圧倒的に高速なんです。
PIOモードの利点と欠点
PIOモードの利点
技術的には古いPIOモードですが、いくつかの利点もあります。
1. シンプルな仕組み
特別な回路(DMAコントローラー)が不要で、実装が簡単です。
2. 確実な転送
CPUが直接管理するため、エラーの検出と対処が容易です。
3. 小容量データに適している
わずか数バイトのデータなら、DMAよりPIOの方が手軽です。
4. 古いシステムとの互換性
古い機器やシステムでも確実に動作します。
PIOモードの欠点
一方で、現代のコンピュータには不向きな点も多々あります。
1. CPUの占有
データ転送中、CPUは他の処理ができません。
パソコン全体の動作が遅くなる原因になります。
2. 低速な転送速度
最大でも16.6 MB/秒は、現代の基準では非常に遅いです。
3. 大容量データに不向き
ギガバイト単位のファイルを転送すると、CPUが長時間占有されてしまいます。
4. マルチタスクの妨げ
複数のアプリケーションを同時に動かす現代のパソコンには不適切です。
実例:
1GBのファイルをPIO Mode 4で転送すると、理論上約60秒かかります。
その間、CPUはデータ転送に専念し、他の処理がほとんどできません。
PIOモードの歴史的背景
1980年代:PIOモードの誕生
PIOモードは、1980年代のパソコン黎明期に広く使われました。
当時の状況:
- CPUの性能が低かった
- ハードディスク容量も小さかった(数十MB程度)
- マルチタスクは一般的ではなかった
このような環境では、PIOモードで十分だったんです。
1990年代:DMAモードへの移行
1990年代に入ると、状況が変化しました。
変化の要因:
- Windows 95などのマルチタスクOSの普及
- マルチメディアコンテンツの増加
- ハードディスク容量の増大
CPUをデータ転送で占有することが、深刻な問題になってきたんです。
DMA登場の効果:
DMAモードの採用により、動画再生やゲームなどの処理がスムーズになりました。
CPUが他の仕事をしながら、バックグラウンドでデータ転送ができるようになったからです。
2000年代以降:PIOモードの衰退
Ultra DMAの普及
2000年代には、Ultra DMA/100、Ultra DMA/133などの高速DMAモードが標準化。
PIOモードは完全に過去のものとなりました。
SATAの登場
2003年のSATA登場により、IDE/PATA時代のPIO/DMA議論自体が古くなりました。
SATAはDMAのみをサポートし、PIOモードはサポートしていません。
現代におけるPIOモードの位置づけ
現在のパソコンではほぼ使われない
現代のストレージ転送方式:
- SATA SSD/HDD:DMAのみ使用
- NVMe SSD:PCIe経由でDMA転送
- USB外付けドライブ:DMA転送
PIOモードは、現代のパソコンではほとんど見かけません。
まだPIOモードが使われる場面
ただし、特殊な状況では今でもPIOモードが使われることがあります。
1. 組み込みシステム
マイコンを使った小型デバイスでは、シンプルなPIO転送が使われることがあります。
2. レガシーシステム
古い産業機器や医療機器など、長年使われ続けているシステムです。
3. 緊急時のフォールバック
DMAモードで問題が発生した際、互換性確保のためPIOモードに戻すことがあります。
4. 教育目的
コンピュータの動作原理を学ぶ際、シンプルなPIOモードが教材として使われます。
学習する価値はある?
現代のエンジニアにとって、PIOモードの深い知識は必須ではありません。
しかし、コンピュータの基本原理を理解する上で、学習する価値はあります。
学習のメリット:
- データ転送の基礎概念が理解できる
- CPUの動作原理が分かる
- DMAモードの優位性を実感できる
- コンピュータの歴史を知ることができる
PIOモードに関する実際のトラブルと対処法
Windows 98/ME時代によくあった問題
症状:
「ハードディスクへのアクセス中、パソコンが固まる」
原因:
何らかの理由でDMAモードが無効になり、PIOモードに戻ってしまっていました。
確認方法:
Windows 98/MEでは、次の手順で確認できました:
- マイコンピュータを右クリック→「プロパティ」
- 「デバイスマネージャ」タブを選択
- 「ディスクドライブ」を展開
- ハードディスクのプロパティで転送モードを確認
対処法:
DMAモードを有効にする設定に変更することで、問題が解決しました。
BIOSでの設定
古いパソコンのBIOSでは、PIOモードとDMAモードを手動で切り替えられました。
BIOS設定項目:
- PIO Mode(Mode 0〜4)
- DMA Mode(Multi-word DMA、Ultra DMA)
- Transfer Mode(Auto、PIO Only、DMA Onlyなど)
通常は「Auto」に設定しておけば、自動的に最適なモードが選ばれます。
よくある疑問:PIOモードについて
Q1:現在のパソコンでPIOモードは使えるの?
A:SATAではサポートされていません
2003年以降のSATA規格では、PIOモードはサポートされていません。
古いIDE/PATA接続のハードディスクでのみ使用可能です。
Q2:PIOモードとDMAモードは同時に使える?
A:デバイスごとに設定されます
1台のパソコンに複数のドライブがある場合、それぞれ個別に転送モードが設定されます。
ただし、通常はすべてDMAモードで動作するように設定されています。
Q3:なぜPIO Mode 4が最終形なの?
A:物理的・技術的な限界に達したためです
CPUを介する方式では、これ以上の高速化が困難でした。
そのため、CPUを介さないDMAモードへの移行が進んだんです。
Q4:SSDでもPIOモードの概念はある?
A:ありません
SSDはSATAまたはNVMe(PCIe)で接続され、どちらもDMA転送のみをサポートしています。
PIOモードという概念自体が存在しません。
Q5:ゲーム機やスマートフォンでもPIOモードは使われている?
A:基本的には使われていません
現代のゲーム機やスマートフォンは、効率的なDMA転送を使用しています。
ただし、一部のマイコン制御部分では、簡易的なPIO的な転送が使われることもあります。
まとめ:PIOモードはデータ転送の歴史的な方式
PIOモードは、CPUが直接データを転送する方式で、コンピュータ初期に広く使われました。
この記事のポイント:
✅ PIOモードとは
CPUが自らデータを1つずつ運ぶ転送方式。シンプルだが非効率
✅ 動作原理
ストレージ→CPUレジスタ→メモリという経路でデータが流れる
✅ 転送速度
PIO Mode 0(3.3 MB/秒)からPIO Mode 4(16.6 MB/秒)まで進化
✅ DMAモードとの違い
PIOはCPUが転送を担当、DMAは専用コントローラーが担当
✅ 利点
シンプル、確実、小容量データに適している
✅ 欠点
CPUを占有、低速、大容量データに不向き、マルチタスクの妨げ
✅ 歴史的位置づけ
1980〜1990年代に主流、2000年代以降はDMAに置き換わった
✅ 現代の状況
SATAやNVMeではサポートされず、ほとんど使われない
PIOモードは、現代のパソコンではほぼ見かけない古い技術です。
しかし、コンピュータがどのようにデータを扱うかという基本原理を理解する上で、重要な概念なんです。
CPUが直接データを運ぶPIOモードから、専用回路が運ぶDMAモードへの進化は、コンピュータの効率化の歴史そのもの。
現代のパソコンが快適に動作するのは、こうした技術の積み重ねがあるからなんですね。
古い技術を学ぶことで、現代の技術がなぜ優れているかを実感できます。PIOモードを理解することは、コンピュータ技術の進化を知る第一歩と言えるでしょう。

コメント