Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

データバス(データバス)とは | 意味や読み方など丁寧でわかりやすい用語解説

データバス(データバス)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

データバス (データバス)

英語表記

data bus (データバス)

用語解説

コンピュータシステムにおいて、異なるコンポーネント間で情報がやり取りされる経路を「バス」と呼ぶ。その中でも、実際にデータ本体を運ぶ役割を担うのが「データバス」である。これは、CPU(中央処理装置)、メモリ(主記憶装置)、そして入出力(I/O)デバイス(ストレージ、ネットワークインターフェース、グラフィックカードなど)といった主要な部品が互いに連携し、機能するために不可欠な要素である。

概要として、データバスはコンピュータ内部におけるデータの搬送路と理解できる。CPUがメモリから計算に必要な数値を読み込んだり、計算結果をメモリに書き込んだりする際、あるいはストレージからファイルを読み出してメモリに展開したり、ネットワークを通じて送受信されるデータを扱ったりする際、それらのデータ本体がこのデータバスを通って転送される。データバスは通常、双方向性を持つ。つまり、CPUからメモリへ、あるいはメモリからCPUへ、といった具合に、双方の方向へデータを送ることができる。この双方向性こそが、コンポーネント間の柔軟なデータ交換を可能にし、コンピュータシステム全体の動作を支えている。データの転送効率は、このデータバスの性能に大きく依存するため、システムの処理能力を決定する重要な要素の一つである。

詳細に入ると、データバスは物理的には複数の導線(電気信号が流れる線)の集合体で構成される。これらの各導線は1ビットのデータを同時に運ぶことができるため、データバスの「幅」(ビット幅)が広ければ広いほど、一度に転送できるデータ量が多くなる。例えば、8ビットのデータバスであれば一度に8ビットのデータを転送でき、32ビットのデータバスであれば一度に32ビットのデータを転送できる。現代の一般的なパーソナルコンピュータでは、CPUとメインメモリ間のデータバスは64ビット幅が主流であり、これにより大量のデータを高速にやり取りすることが可能となっている。このバス幅は、データ転送速度、すなわち帯域幅を決定する主要な要因の一つである。

データバスは、単独で機能するわけではない。コンピュータのバスシステムは、データバスの他に「アドレスバス」と「コントロールバス」という二つの主要な要素から構成され、これらを総称して「システムバス」と呼ぶことが多い。アドレスバスは、データがどこへ送られるべきか、あるいはどこから来るべきかという「場所」(アドレス)を指定するために使われる。メモリの特定の番地や、I/Oデバイスのレジスタなど、データの送信先や受信元を一意に識別するための情報がアドレスバスを通じて伝達される。一方、コントロールバスは、データの転送を制御するための信号を運ぶ。例えば、データの「読み出し」か「書き込み」か、いつ転送を開始・終了するか、といったタイミングや動作の種類に関する指示がコントロールバスを通じて送られる。データバスは、このアドレスバスとコントロールバスからの指示に基づいて、実際のデータ本体を適切なタイミングで、指定された場所へと運ぶ役割を担っている。

具体的な動作例としては、CPUがメモリからデータを読み出す場合を考える。まずCPUは、読み出したいデータが格納されているメモリのアドレス(番地)をアドレスバスに乗せて出力する。次に、コントロールバスを通じて「メモリ読み出し」という信号を送る。これを受け取ったメモリは、指定されたアドレスに格納されているデータをデータバスに乗せてCPUへと送り返す。CPUはデータバスからそのデータを受け取り、内部のレジスタに格納したり、演算に利用したりする。この一連のプロセスは極めて高速に行われ、コンピュータの動作を支えている。

データバスの性能は、そのバス幅に加えて、動作周波数(クロック周波数)によっても左右される。動作周波数が高ければ高いほど、単位時間あたりに転送できるデータの量が増える。バス幅と動作周波数を掛け合わせたものが、理論上の最大データ転送速度(帯域幅)となる。システムの他のコンポーネント(CPUやメモリ)がどれほど高速であっても、データバスの帯域幅がボトルネックとなれば、システム全体の性能は向上しない。そのため、コンピュータシステムの進化とともに、データバスもより広帯域化、高速化が進められてきた。

歴史的に見ると、データバスはCPUとメインメモリを繋ぐ「フロントサイドバス(FSB)」や、拡張カードを接続するための「PCI(Peripheral Component Interconnect)」バスなど、様々な形態で存在してきた。初期のバスはパラレル(並列)転送方式が主流であり、複数の導線を使って同時に複数のビットを転送していた。しかし、動作周波数が高まるにつれて、パラレルバスでは導線間の信号干渉(クロストーク)やタイミングのずれ(スキュー)といった問題が顕著になり、さらなる高速化が困難になった。

この問題を解決するために登場したのが、「シリアル(直列)転送」方式のデータバスである。例えば、現代のグラフィックカードや高速ストレージ(NVMe SSD)が接続される「PCI Express (PCIe)」や、ストレージ接続に使われる「SATA」、外部デバイス接続に使われる「USB」などは、データバスの広義の概念に含まれるシリアル転送方式のバスである。シリアルバスは、一本の導線ペアでデータを高速に直列転送し、さらに複数のレーンを束ねることで広帯域を実現している。これにより、パラレルバスの物理的な限界を超え、飛躍的なデータ転送速度の向上を達成している。

このように、データバスはコンピュータの基本的なデータ転送経路として、その役割を変化させつつも、常にシステムの性能を左右する重要な要素であり続けている。システムエンジニアを目指す上で、コンピュータがどのようにデータをやり取りしているかを理解する上で、データバスの基本的な概念とその進化を把握することは不可欠である。

関連コンテンツ