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

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

作成日: 更新日:

読み方

日本語表記

アドレスバス (アドレスバス)

英語表記

Address Bus (アドレスバス)

用語解説

アドレスバスは、コンピュータのCPU(中央処理装置)がメインメモリやI/Oデバイス(入出力装置)へアクセスする際に、目的とするデータの位置や格納先の「番地」、すなわちアドレスを指定するための電気的な信号線群である。CPUが命令を実行する過程で、特定のメモリセルからデータを読み出したり、I/Oデバイス内のレジスタにデータを書き込んだりする必要が生じた場合、その操作の対象がシステムのどこに存在するのかという情報(物理アドレス)をアドレスバスを通じて出力する。アドレスバスはCPUからメモリコントローラやI/Oコントローラへと一方向で信号が伝達される。このアドレスバスは、実際にデータをやり取りするデータバス、そしてデータの読み書きの指示やタイミングを制御するコントロールバスとともに、コンピュータシステムにおける基本的な情報伝達の根幹を成す重要な構成要素である。

アドレスバスは、複数の独立した電気信号線が束になった並列バスとして構成されている。それぞれの信号線は、デジタル信号の「0」または「1」を表現し、これら多数の信号線の組み合わせによって、一意のアドレス値(番地)が形成される。例えば、32本の信号線を持つアドレスバスであれば、2の32乗通りの異なるアドレスを表現できる。このアドレス値は、メインメモリ上の特定の記憶位置、I/Oデバイス内部のレジスタ、あるいはI/Oポートといった、システム内の物理的なリソースを一意に識別するための識別子となる。

CPUが何らかのデータを読み書きしようとする際、まずアクセスしたいデータの物理的な位置を示すアドレス値を算出し、そのアドレス値をアドレスバスに出力する。このアドレス信号は、システム内のメモリコントローラやチップセット、あるいはI/Oコントローラなどの周辺回路に到達する。これらのコントローラはアドレスバスからの情報を受け取り、どこのメモリチップの何番地、あるいはどのI/Oデバイスのどのレジスタにアクセスすべきかを判断し、実際にその物理的な場所を選択する。例えば、メモリへのアクセスの場合、アドレス値はメモリチップ内の特定の行と列のアドレスにデコードされ、目的のメモリセルが活性化されることで、データの読み書きが可能となる。

アドレスバスの信号線の総数、すなわち「アドレス幅」は、CPUが直接指定できる物理アドレス空間の最大サイズを決定する重要な要素である。Nビットのアドレスバスは、理論上2のN乗個の異なるアドレスを指定可能であり、通常は2のN乗バイト(またはワード)の物理アドレス空間を扱うことができると解釈される。例えば、初期のマイクロプロセッサでは8ビットや16ビットのアドレスバスが一般的であり、それぞれ256バイトや65,536バイト(64KB)のアドレス空間しか指定できなかった。その後、広く普及したIntel 8086プロセッサは20ビットのアドレスバスを持ち、1MBの物理アドレス空間を扱った。現代の主流である64ビットCPUでは、多くの場合、理論上64ビットのアドレスバスに対応しており、2の64乗バイト、すなわち約18エクサバイト(EB)という広大な物理アドレス空間を指定可能である。この物理アドレス空間の広さは、システムに搭載可能な最大物理メモリ量や、接続可能なI/Oデバイスを配置できる範囲に直接的な影響を与える。ただし、実際に実装される物理メモリの上限は、アドレスバスの幅だけでなく、メモリコントローラやシステム全体の設計、搭載するオペレーティングシステムの制約などによって決まることが多い。

アドレスバスはメインメモリだけでなく、I/Oデバイスの制御にも広く用いられる。多くのコンピュータシステムでは、「メモリマップドI/O」という方式が採用されており、I/Oデバイス内のレジスタやI/Oポートが、メモリ空間の一部として論理的に割り当てられている。この方式の場合、CPUはI/Oデバイスにアクセスする際も、メモリにアクセスするのと全く同様に、アドレスバスにI/Oデバイスの物理的な「番地」を出力し、データバスを介してデータをやり取りする。これにより、CPUはI/Oデバイスを制御するために特別な命令セットを必要とせず、メモリ操作と同じ命令でデバイスを扱えるため、システム設計の簡素化に寄与している。

アドレスバスは、データバス、コントロールバスと密接に連携して動作する。アドレスバスが「どこに」アクセスするかを指示し、データバスが実際に「何を」(読み書きするデータ)伝達し、コントロールバスが「どのように」(読み書きの方向やタイミングなどの操作の種類)動作するかを指示する。これらのバスが協調することで、CPUはシステム内のあらゆるコンポーネントと効率的に情報のやり取りを行うことが可能になる。今日の高性能コンピュータシステムでは、CPUとメインメモリ間のバスは、DDRメモリインターフェースのようなより高速で複雑な専用インターフェースが主流となっているが、その根底には、CPUが発行する論理的なアドレス要求を物理的なバス上の信号に変換し、目的のメモリやデバイスへ伝達するという、アドレスバスの基本的な役割が依然として存在している。アドレスバスはコンピュータの基本的なアーキテクチャを理解する上で不可欠な要素であり、システムの性能や拡張性を左右する重要な仕様の一つである。

関連コンテンツ