2

これは何が起こるかについての私の心のイメージであり、私はいくつかの修正、明確化、そしておそらくさらに詳細を望んでいます。

基本的に、コンピュータの電源がオンになると、BIOSはPCIバス上のすべてのデバイスをロードし、特定の事前定義されたアドレスでそれらを使用できるようにします。PCI-Expressバスでも同じことが起こります。

ドライバーはバスアドレスでコマンドを探す場所を知っているので、各デバイスはコマンドを受信できますか?

サウンドカードに指示を送信したい場合、ドライバーがCPUに指示を適切なバスでブロードキャストするように指示し、指定されたアドレスの正しいデバイスが指示を取得して実行すると仮定して、私はさらに正しいですか?もの?

この視覚化は正しいですか?関係するデータの量によって、ビデオの動作は異なりますか?

4

3 に答える 3

2

ほとんどの新しいバスシステムにはプロービングメカニズムがあり、システムはすべてのデバイスに自分自身とバス上の位置を識別するように要求でき、OSはそれらの識別をデバイスドライバーにマップできます。デバイスドライバーは必要な他のリソースを指定できます。USB、PCI、PCI-Express、AGP、Firewire、SATA、Infiniband、Lightportはすべてこれを行います。ただし、必ずしも「アドレス」によって正確に機能するわけではありませんが、別のバスコントローラモードを使用することも、完全に別のバスを使用することもできます。たとえば、RAMチップにはそれらを構成するためのSPIインターフェイスがありますが、実際のデータは他の相互接続上を移動します。オペレーティングシステムを保持するフラッシュディスクへのバスアクセスを構成するためにSPIを使用する組み込みシステムが稼働していました...これは、起動するのに非常に面倒なデバイスでした。

PCのBIOSは実際にはすべてのPCIデバイスをセットアップしますが、ほとんどの新しいオペレーティングシステムは、プロセスを最初からすぐにやり直します。したがって、IntelベースのMac(および多くのサーバー)のEFIファームウェアは、OSカーネルをロードするために実際に必要なものだけをセットアップし、残りはOSに任せます。そのため、WindowsがMacまたはハイエンドサーバーで実際に起動するには、BootCampまたはHALディスクが必要です。Windowsは通常のPCではPCIプローブをかなり遅く実行し、しばらくの間BIOSセットアップが必要ですが、Macおよび一部のサーバーシステムでは、ハードウェアスキャンをすぐに実行するために別のHALをロードする必要があります。

このことを本当に理解したいのであれば、Linuxカーネルを読むことは、特にPCと他のシステムの違いに関して非常に有益です。

于 2010-01-22T08:49:34.800 に答える
1

グラフィックカードはノースブリッジによって処理されるAGPバスに接続され、PCIデバイスとATAデバイスはサウスブリッジに接続されます。素敵な紹介はここにあります

于 2010-01-22T07:53:24.983 に答える
0

はい、この簡略化を使用して、それがどのように機能するかを大まかに想像することができます。また、ビデオでも同じように機能します。

もちろん、詳細に入ると、いくつかの手法が関係しており、理論的にはすべてのデバイスが少し異なる動作をする可能性があるため、少し複雑になります。IRQ、DMA、さまざまなメモリマッピングなどに直面する準備をしてください...

于 2010-01-22T07:45:16.593 に答える