コンピューターバスの画像を理解しよう


10

コンピュータのバスを説明するhttp://en.kioskea.net/contents/pc/bus.php3からのこの画像では

ここに画像の説明を入力してください

  1. CPUからサウスブリッジへの黒い線もバスなのかしら?写真では名前が付いていませんが、その名前は何ですか?
  2. これらの短い黒い線はLAN、SCSI、ISA、USB、IDEもバスから生じているのですか、またそれらの名前は何ですか?

    レベル2キャッシュ、AGP、およびRAMに由来するこれらの黒い線は、図ではそれぞれプロセッサバス、AGPバス、およびメモリバスと呼ばれていることに注意してください。

  3. CPUからサウスブリッジへの黒い線は、PCIバスとプロセッサバスの両方と交差していますか?
  4. データの流れはどうですか?

    たとえば、私の理解は正しいですか?

    CPUからレベル2キャッシュへのルートは、CPUおよびプロセッサバスから生じる黒い線です。

    CPUからAGPまたはRAMへのルートは、CPU、ノースブリッジ、AGPバスまたはメモリバスから生じる黒い線です。

    CPUからLANまたはSCSIへのルートは、CPU、ノースブリッジ、PCIバスに由来する黒い線と、LANまたはSCSIに由来する黒い線です。

    CPUからISA、USB、およびIDEのいずれかに至るルートは、CPU、ノースブリッジ、サウスブリッジに由来する黒い線、ISA、USB、またはIDEに由来する黒い線です。

    非CPUコンポーネント間のデータフローはどのようになっていますか?

ありがとう!

回答:


12

バスは、次のプロパティとの通信手段にすぎません。

  • 複数のエンティティを接続できます
  • 1つのエンティティがバスにメッセージを送信するか「何かを行う」場合、他のすべてのエンティティはそれを見ることができます
  • 2つのエンティティが正確に同時に通信しようとすると、悪いことが起こります。
  • プロトコルまたはルールセットは、バス上のすべてのコンポーネントが、それを使用して順番に実行できるシステムを持つために必要です。通常、このプロトコルはバスの目的と速度によって異なります
  • ある種のアドレス指定スキームが使用され、デバイスは自分が誰で、誰と話したいのかを言うことができます
  • 複数のエンティティが同じアドレスを持っている場合、悪いことが起こります
  • 少なくともバスで「話したい」と考える人は、バスを介してデータを送信しようとする前に、アクティビティが発生しているかどうかを確認する必要があります。
  • バスで「リッスン」したいエンティティは、通常、自分のアドレスをリッスンし、意味のあるデータのみを取得する必要があります

ネットワーキングの知識があり、これのほとんどがおなじみのように聞こえる場合、概念はほとんど同じです。

水色の線はバスを表しています。濃い青色の線は、バスに接続されているものを表します。

あなたの質問に答えるには:

  1. CPUがサウスブリッジに到達するには、プロセッサバス、ノースブリッジ、PCIバスを経由する必要があるように見えます。
  2. 私はそれらがバスへの接続を表すと信じています。私には、ラベルが太い水色の線を識別しているように見えます。図は少し良いIMHOかもしれません。AGPは「Accelerated Graphics Port」の略であることに注意してください-複数のコンポーネントがそこで機能しないため、技術的にはバスではありません(AGPが発明された理由の1つです)。ソフトウェアから見ると、別のPCIバスのように見えます。
  3. 私はそう思う。IIRCデバイスドライバーは、サウスブリッジコンポーネントにアクセスするために、プログラムでPCIバスと対話する必要があります。
  4. 私の最初の段落を参照してください。バスが別のバスに接続され、それを介してデータを転送する責任を引き受けることが可能です。これらは、Windowsデバイスマネージャまたはでこれまでに見たことのある「PCI-PCIブリッジ」デバイスですlspci


2

どのコンピュータにも、データ、アドレス、制御の3つの「バス」しかありません。それでおしまい。これは非常に単純なトップダウンの見方です。データバスとアドレスバスはかなり明白で、比較的単純です。ただし、コントロールバスは、タイミングを含む他のほとんどすべての要素を必要とするため、非常に複雑になる可能性があります。

ここに表示されているのは、基本的なシステムチャートです。システム内の特定のものは、特定のリソース/プロセスを担当します。ご想像のとおり、CPUはヒープの一番上にあり、ほとんどすべてを担当しています。階層のすぐ下に、ビデオとRAMを直接制御するノースブリッジがあります。ノースブリッジは、PCI "バス"とLANおよびSCSIシステムを介して間接的にサウスブリッジを制御します。ただし、サウスブリッジはISA、USB、およびIDEデバイスを直接制御します。したがって、IDEドライブのデータを取得したい場合、CPUはノースブリッジを経由し、PCIバスを介してこれを要求します。次に、サウスブリッジがIDEリソースを取得してそれを提供します(正確には、サウスブリッジはIDEデバイスが情報をアドレス/データバスに配置するタイミング-CPUが実際に制御している)。

おそらく、これを必要以上に難しくしています。CPUは依然としてすべてのコンピューターの心臓部です。したがって、この図は実際に使用されている「バス」の恐ろしい例です。実際、ダイアグラム全体は、コントロールバスの説明であり、コントロールバスのみであると考えられます。これは、特定のサブシステムが行うこと、および特定のリソースを直接制御することについても優れたビジュアルですが、実際にハードワイヤードされているものや、コンピューター全体が実際にバス構造に関して実際にどのように機能するかはまったくわかりません。


1
  1. ノースブリッジはサウスブリッジをCPUに接続しているため、CPUとSBの間に直接バスはありません。
  2. これらの「バス」のほとんどは、ISAバス、PCIバスなど、独自の自己記述的な名前を持っています。他のほとんどは、低帯域幅デバイスのほとんどをSBに接続するLPCバスや、CPU(例:スーパーI / Oコントローラ、BIOSなど)。
  3. いいえ、この「バス」は説明されているように存在しません。ただし、図の下半分にあるデバイスとの通信のシナリオでは、データはCPUからノースブリッジへの「バス」を通過する必要があります(NBはCPUに統合されている場合があるため、バスを引用しています)。繰り返しになりますが、SBへの通常のPCIバスであり、その逆も同様です。
  4. 今日のプロセッサはより複雑になり、メモリ、バス、キャッシュへのアクセスにさまざまなアプローチを取っているため、この質問に答える簡単な方法はありません。最近のほとんどのプロセッサにはメモリコントローラが統合されているため、DMAのためにノースブリッジと通信する必要はありません。たとえば、QPIバスを備えたIntelの新しいプロセッサは、メモリコントローラーがなく、従来のフロントサイドバス[FSB]に代わるQPIバスを介してCPUと通信することを除いて、従来のノースブリッジと同様のチップと通信します。

このWikiの画像は、http://upload.wikimedia.org/wikipedia/commons/b/bd/Motherboard_diagram.svg (SVGファイルを埋め込むことはできません)から学ぶのに、より便利なニーモニックデバイスになると思います。


ありがとう!(1)「ほとんどの最新のプロセッサにはメモリコントローラが組み込まれているため、DMAのためにノースブリッジと通信する必要はありません。」「DMA」とは、CPUアクセスメモリを意味しますか?CPUを介さずに直接メモリにアクセスするデバイスを意味すると思います。en.wikipedia.org/wiki/Direct_memory_accessを参照してください。
Tim

(2)「データはCPUからノースブリッジ(NBはCPUに統合されている可能性があるのでバスを引用しています)に「バス」を通過する必要があり、次に、通常はSBへのPCIバスであるバスを通過します。」しかし、ウィキペディアの画像では、NBとSB間の接続は内部バスと呼ばれています。NBとSBの間の通信がPCIを経由していないのでしょうか?
Tim
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.