dポイントプレゼントキャンペーン実施中!

ソフトウェア開発技術者(平成15年 問20)やプロダクションエンジニアの過去問題で、DMA制御方式の説明を選ぶ問題があります。

「イ CPUを介さずに入出力装置と主記憶装置間のデータ転送を行う」
これが正解なのは納得できますが、
「エ 入出力制御専用のプロセッサによってデータ転送を制御する」
これが不正解な理由が分かりません。

様々なサイトによると、入出力制御専用プロセッサ方式をIOPともいうらしいですが、ではDMAとIOPの違いは何なのでしょうか。

この区別を図示したサイトを探していますが、見つかりませんでした。

DMAとIOPの違いを教えてください。

A 回答 (2件)

> DMAとIOPの違いは



「DMA」の定義を正確に知らないので参考程度にして頂きたいのですが、
以下のような方式もあります。
メモリからデータを読み出す時、DMA コントローラがアドレスを指し、メモリからデータが出てきたら
データを使うデバイスがタイミングをあわせてそのデータを取り込みます。
メモリへの書き込み時はその逆です。
つまり、1回のデータ転送が、1バスサイクルで完了します。
対して、CPU や IOP による転送は、1.自らがメモリを読み、一旦取り込む2.データを使うデバイスにデータを渡す と、
2サイクルを要します。
IOP とは、「転送専用のサブCPUのようなもの」で、
データ転送の方式は CPU と同じだったりします。
うろ覚えですが、かつての 8086 CPU用の 8089 というIOP がこのようなモノでした。

前者の「1バスサイクルで済む方式」は、速度が出ますが、
例えばメモリに書き込む際はバスを駆動するデバイスが2者であり連携が必要になるなど、
ハードウェア的に若干煩雑になります。
    • good
    • 0
この回答へのお礼

ありがとうございます。

1サイクルと2サイクルの区別がとても分かりやすかったです。
また、「IOP とは、「転送専用のサブCPUのようなもの」」ということで、イメージ的には「しっかりと独立したプロセッサ」という感じがしました。
それに対してDMAは、入出力部分をサポートする簡易なコントローラという感じでしょうか。

なるほど、8086 CPU用ということは、かつて制御用?(マイコン)などで使われていたということですね。
「制御用で目にしたことがある」という記事を見つけたのですが、このことでしたか。

大分イメージできました。

お礼日時:2009/09/13 14:17

No.1 です。


> 8086 CPU用ということは、かつて制御用?(マイコン)などで

いえいえ、あのPC-9801 初代機のメインCPUはたしかコレですから。
「制御用CPU」というわけでもありません。

尚、コントローラとプロセッサの境界も曖昧になりつつある気もします、
明確な呼び分けは「メーカがそう命名した」のに従うしかないのかとも思います。
    • good
    • 0
この回答へのお礼

ありがとうございました。

8086用CPU、制御用 ---> すみません。うろ覚えのZ80と勘違いしてトンチンカンなこと言ってました。

>あのPC-9801 初代機のメインCPUはたしかコレ

あぁ!なるほど。
15年位前のNECの98シリーズですね。ズバリ分かりました。
 

お礼日時:2009/09/14 15:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!