IOポートとデバイスコントローラーのレジスタの関係は何ですか?[閉まっている]


-4

次の2つの参考文献は、IOポートとデバイスコントローラーのレジスタとの関係について異なる主張を示していますか?実際に彼らの関係は何ですか?

https://cs.nyu.edu/courses/fall10/V22.0436-001/lecture24.htmlからの次の引用は、デバイスコントローラーでは、各レジスタに正確に1つのIOポートがあり、正確に1つあることを意味しますか各IOポートに登録しますか?

各I / Oデバイスは、コントローラーを介してI / Oバスに接続されます。シンプルなコントローラーには、バス上の少なくとも3つのアドレス(ポート)があり、それぞれがコントローラーのレジスタに対応しています

  • データレジスタ(入力デバイスであるか出力デバイスであるかに応じて、読み取り可能または書き込み可能)
  • 制御レジスタ(書き込み可能、​​デバイスの動作を制御するため)
  • ステータスレジスタ(読み取り可能、デバイスのステータスを判断するため、特に、データを受信または提供する準備ができているかどうか)

より複雑なデバイス(ディスクなど)には、複数の制御およびステータスレジスタがあります

オペレーティングシステムの概念からの次の引用は、デバイスコントローラーではIOポートに4つのレジスタがあることを意味していますか?

I / Oポートは通常、ステータス、制御、データ入力、データ出力レジスタと呼ばれる4つのレジスタで構成されます。

•データ入力レジスタは、入力を取得するためにホストによって読み取られます。

•データ出力レジスタは、出力を送信するためにホストによって書き込まれます。

•ステータスレジスタには、ホストが読み取れるビットが含まれています。

•制御レジスタ。...

ありがとう。


実際のハードウェアのデータシートを調べて、何が起こるかをよりよく理解することをお勧めします。これは基本的なアイデアを正しく説明しますが、実際のチップは奇妙であり、ハードウェア設計者が持っているアイデアの範囲を信じられません
...-dirkt

ティム、質問のクローズテキストをもっと詳しく読んでください。このカテゴリの質問は、SUではトピック外です。
Twisty Impersonator

@TwistyImpersonator「製品、サービス、または学習教材の推奨事項」を求めていません。私の質問は有効です。(以前のコメントで「not」を忘れていました)
ティム

@Tim LOL ... OKそれが本当かどうか疑問に思いました。
Twisty Impersonator

1
まあ、私はあなたのコメントに基づいてVTCではなく、あなたの質問に基づいていました。現在の形式では、投票の再開を正当化することはできません。あなたが解決しようとしている実際の問題を説明するためにそれを編集するならば、あなたの質問はより良くなるかもしれません。
Twisty Impersonator

回答:


2

投稿で説明するのは「典型的な」シナリオです。特にI / OがCPUとは異なるバス上にある場合(PCI / PCIが良い例です)、または実際のI / Oデバイスではなくコントローラーと通信している場合。もちろん、現実はもっと厄介です。

ハードウェアは、ハードウェア設計者がCPUからの要求の読み取り/書き込みを希望する方法で反応するように設計できます。

たとえば、次のことが可能です。

  • I / Oアドレスへの単なるアクセス(読み取りまたは書き込み)により、デバイスが何かを実行できるようにします。

  • 同じI / Oアドレスへの読み取りと書き込みが実際にデバイス上の異なるレジスタまたは機能にアクセスするようにします。

  • 単純なデバイスには、データ、制御、およびステータスレジスタが必要ない場合があります。PCパラレルポートは例です。I / Oアドレス空間の1バイトで制御されます。

もちろん、このようなデバイスは、コントローラーの「背後」ではなく、CPUによって直接アドレス指定できます。旧式のISAデバイスであるパラレルポート。最近では実際にはLPCバスですが、LPCはISAのように動作するように設計されています。

上記はPC以前の時代にはるかに一般的でしたが、ARMやMIPSなどの非x86プラットフォームでは一般的だと思います。

複雑なコントローラー(ほとんどのコントローラー)には、コントローラーに接続するデバイスを指定するための追加のメカニズムが必要です。I2Cはこのようなものです。


1

IPは通常、明確に定義された境界を持つモジュールとして設計されています。多くの場合、それらはプロセッサコアのアドレス空間に配置されます。次のようになり可能性を持つI / Oブロックの開発にどちらかのレジスタの単一ビットまでの有線持つ単一の入力または出力ピン、どちらかの入力値を読み取ったり、出力値を設定し...しかし、それは有用ではないですし、かなりアドレス空間を無駄にします。

代わりに、モジュールはより「機能」であるため、場合によってはより並列になるように設計されています-AVR I / Oモジュールには8つの入出力ピンがあり、STM32 I / Oモジュールには16ピンがあります。AVRは基本的なI / O機能を提供しますが、STM32はスルーレート制御と、I / Oピンによって提供されるドライバーにマッピングできる代替機能を備えています。

次のI / Oポートを考慮してください。

AVR

AVR I / Oレジスタ

STM32

stm32 I / Oレジスタ


次の引用[...]は、デバイスコントローラーでは、各レジスタに正確に1つのIOポートがあり、各IOポートに正確に1つのレジスタがあることを意味しますか?

私は「いいえ」と言います-I / Oモジュールには少なくとも何らかの形のデータ、制御、ステータスインターフェイスがあることを意味しています。

多くの教材は、実際に存在する警告と技術的な複雑さを無効にする前に、理解しやすいモデルを提示することを忘れないでください。

オペレーティングシステムの概念からの次の引用は、デバイスコントローラーではIOポートに4つのレジスタがあることを意味していますか?

繰り返しますが、私は「いいえ」と言います...それは、何かが何で構成されているかについての「典型的な」/「基本的な」期待を与えています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.