データバスの仕組み:コンピュータ内部の効率的なデータ転送を支える基盤技術
コンピュータ内部でデータがどのように転送されているか、気になったことはありませんか? その「魔法」を実現しているのがデータバスです。
実はデータバスにはいくつかの種類があり、それぞれデータ転送能力が異なります。では、データバスは具体的にどのように動作しているのでしょうか?
この記事では、データバスの基本から動作原理、さらに「データベース」との違いまで詳しく解説します。
データバスとは何か
データバスは、パーソナルコンピュータの黎明期から存在するサブシステムです。マザーボードやシステムボード上でのデータ転送を担い、主にCPUとメモリ、あるいは各コンポーネント間でデータをやり取りします。

また、データバスは2台のコンピュータ間でのデータ転送も可能にします。1本のデータバスで複数ビットのデータを扱え、この転送能力のことを「帯域幅」と呼びます。
一般的なデータバスの幅は32ビットで、これは1秒間に最大32ビットのデータを転送できることを意味します。しかし、技術の進歩により、現在では64ビット、さらには96ビットのデータバスを備え、それらの高ビットレートを処理できるデバイスも登場しています。
バスコントローラが重要な理由
初期のパソコン用マザーボードには問題がありました。データバスがメモリと周辺機器を区別できず、直接接続されていたためです。
この直接接続がさまざまな問題を引き起こしました。たとえば、すべてのデバイスが同じ動作速度で動くことを強いられ、動作が遅く、頻繁にクラッシュするPCが量産される結果となりました。

しかし、バスコントローラの導入によりこの問題は解決しました。バスコントローラは、コンピュータのメモリ・CPUと周辺機器を分離します。その結果、CPUとメモリは周辺機器に影響を与えず、より高速かつ異なる速度で動作できるようになりました。
さらに、バスコントローラにより拡張カード同士が直接通信できるようになり、CPUを経由せずに高速なデータ転送が可能になりました。バス速度が遅ければ、システム全体の性能も低下します。

データベースとデータバスの違い
「データバスにもデータベースがあるのでは?」と誤解されがちですが、両者は全く異なる概念です。一言で言えば、データバスは「動いているデータ」を扱い、データベースは「静止しているデータ」を扱います。
データベースはストレージユニットのようなもので、後でアクセスや検索ができるよう情報を保存します。つまり、データ中心の「保存」に焦点を当てています。

一方、データバスは転送指向です。コンポーネント間の通信に焦点を当て、入出力データを処理します。データ中心の「やり取り」を担うのです。
データバスの中にデータベースは存在しません。データベースの概念はストレージに関わりますが、データバスは仮想的なグローバルデータスペースを用い、データ転送を意味します。
データバスの種類
データバスの種類は大きく2つの分類軸で整理できます。「並列・直列」と「内部・外部」です。それぞれ見ていきましょう。
並列データバスと直列データバス
現代のコンピュータには並列と直列の両方のデータバスが搭載されています。特徴は異なりますが、両者が協調して動作することで、より高速で信頼性の高いデータ転送を実現しています。
並列データバスは、複数の経路を使ってデータを同時に転送します。ただし、各経路は1ビットずつしか運べません。代表例として、PCカード、SCSI(Small Computer System Interface)、ATA(Advanced Technology Attachment)などがあります。
一方、直列データバスは経路が1本だけですが、すべてのビットを順番に流します。現在主流の例として、シリアル接続SCSI、FireWire、Serial ATA、そして広く知られるUSB(Universal Serial Bus)があります。

内部データバスと外部データバス
ほぼすべてのコンピュータに内部と外部のデータバスが存在します。内部データバス(ローカルバス)は、マザーボード上のすべてのコンポーネントを接続します。
外部データバスは、マザーボード上の周辺機器すべてを扱います。多くのコンピュータには複数の外部バスがあり、接続する外部デバイスに応じてHDMIやVGAなど、ケーブルの種類が決まります。

制御バスとアドレスバス

データバスの他にも、制御バスとアドレスバスという重要なバスが存在します。データバスがデータを送ると、まずアドレスバスがそれを受け取り、その後制御バスが実行を制御します。これら2つのバスの働きを詳しく見ていきましょう。
制御バス
CPUは制御バスを通じてマザーボード上の他コンポーネントと通信します。この通信にはケーブル接続やプリント基板が用いられ、制御バスはコンピュータにとって不可欠な構成要素の一つです。
制御バスは双方向で、コンポーネント間の双方向データ転送を可能にします。また、CPUが外部機能や内部ツールの制御信号を整理するのにも役立ちます。
制御バスは複数の信号線で構成されます。バイトイネーブル、ステータス、割り込み、読み書き信号線などが含まれます。
制御バスはCPUの「意思決定機関」のようなものです。これがないと、CPUはシステムがデータを送受信したことを独自に検知できません。正常な動作には制御バスが必須です。
アドレスバス
アドレスバスもシステムにとって不可欠です。データバスがデータを送受信し、制御バスが実行するのに対し、アドレスバスは転送先を受け取り、決定します。
CPUは読み書きコマンドの送り先を知るためにアドレスバスを必要とします。CPUはアドレスバス上のすべてのアドレスをビット単位で読み書きできます。
32ビットのアドレスバスを持つシステムでは、最大4ギビバイト(GiB)のメモリ空間しかアドレス指定できません。一方、64ビットのアドレスバスでは、最大16,384ペビバイト(PiB)という巨大なメモリ空間にアクセス可能です。ただし、OS側もそれに対応している必要があります。
アドレスバスを「I/Oデバイスやメモリのアドレスを伝送する配線の集合」と見なす開発者もおり、この場合アドレスバスは非方向性とされます。
例として、16ビットアドレスバスを持つIntel 8085マイクロプロセッサを挙げます。このプロセッサは最大65,536(注:原文の665,5536は誤記と思われる)のメモリ位置をアドレス指定できます。また、さまざまな信号を1本の8ビットデータバスに多重化しています。上位アドレスビットはアドレスバスを通り、下位ビット(LSB)は多重化されたデータバスを通ります。

まとめ

データバスというサブシステムは長年私たちと共にあり、大きな改良を経て、より高速なデータ処理システムの発展を支えてきました。
初期のシンプルなバスシステムが引き起こした速度問題は、現代のコンピュータには到底耐えられません。直接接続方式では全コンポーネントが同一速度で動くため、CPUとメモリの高速化が困難でした。
しかし、バスコントローラやその他のバスシステムの導入により、この速度問題は解決しました。その結果、最大96ビットに達する大容量データバスを備えた高性能システムが実現しています。
ご質問がありましたら、お気軽にお問い合わせください。
産業技術
- 2017年のインダストリー4.0:未来を牽引する7つのキートレンド
- インダストリー4.0:クラウドとエッジを活用したスマート製造
- パンデミックがサプライチェーン意思決定に与えた影響:新しいパラダイム
- 建設現場の効率を最大化:ライブフィールドデータを活用する4つの質問
- 重機メーカーのための最適なIIoTソリューション選定ガイド
- KepwareとMachineMetrics:産業機械データ収集の最適プラットフォーム選び
- センサーが変える製造効率とインサイト
- 将来展望:生産卓越性に向けた産業用IoTの推進
- 産業データサイエンス成功のための基盤構築
- エッジAI:処理がデバイス層へシフトする理由
- DataOps:医療自動化を革新、コスト効率と収益成長を実現