Loading article…
コンピューティングにおいて、バスマスタリングは多くのバスアーキテクチャでサポートされている機能であり、バスに接続されたデバイスがダイレクトメモリアクセス(DMA)トランザクションを開始できるようにするものです。これは、システムDMAコントローラが実際に転送を行うサードパーティDMAとは対照的に、ファーストパーティDMAとも呼ばれます。
バスの種類によっては、トランザクションを開始できるデバイスが1つ(通常はCPUまたはそのプロキシ)のみに制限されているものもあります。PCIなどの最新のバスアーキテクチャの多くは、汎用オペレーティングシステムのパフォーマンスを大幅に向上させるため、複数のデバイスがバスマスターになることを許可しています。リアルタイムオペレーティングシステムの中には、スケジューラがバスの調停を行えなくなり、決定論的なレイテンシを提供できなくなるため、周辺機器がバスマスターになることを禁止しているものもあります。
バスマスタリングは理論的には周辺機器同士が直接通信することを可能にするが、実際にはほとんどすべての周辺機器はメインメモリへのDMAを実行するためだけにバスをマスタリングする。
複数のデバイスがバスをマスターできる場合、複数のデバイスが同時にバスを駆動しようとするのを防ぐためのバス調停方式が必要になります。これにはさまざまな方式が用いられており、例えばSCSIでは各SCSI IDに固定の優先度が割り当てられています。PCIでは使用するアルゴリズムは規定されておらず、優先度の設定は実装に委ねられています。