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

メモリランク(メモリランク)とは | 意味や読み方など丁寧でわかりやすい用語解説

メモリランク(メモリランク)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

メモリランク (メモリランク)

英語表記

Memory rank (メモリーランク)

用語解説

メモリランクとは、メモリコントローラから見て独立してアドレス指定され、データ転送が行われるメモリ領域の単位である。これはDRAM(Dynamic Random Access Memory)モジュールを構成するDRAMチップの配置と接続方法によって決定され、システムにおけるメモリの管理、容量、および性能に大きな影響を与える重要な概念である。メモリチャネルのデータ幅(一般的に64ビット)を満たすために複数のDRAMチップが並列に接続されるが、このDRAMチップのグループが1つのランクを構成する。

詳細に説明すると、今日の多くのCPUは、メモリとデータをやり取りするためのメモリチャネルを複数備えている。各メモリチャネルは、一度に64ビットのデータを転送できる幅を持つのが一般的である。一方、メモリモジュールに搭載されている個々のDRAMチップは、通常x4、x8、x16といった、より小さなデータ入出力幅を持っている。例えば、x8のDRAMチップは一度に8ビットのデータを送受信できる。この64ビット幅のメモリチャネルを完全に活用するには、8個のx8 DRAMチップを並列に接続する必要がある(8ビット/チップ × 8チップ = 64ビット)。この8個のDRAMチップのグループが、メモリコントローラから見て1つのアドレス指定可能な単位となり、これが1つの「ランク」と定義される。

メモリモジュールには、このランクがいくつ搭載されているかによって「シングルランク (Single Rank: SR)」、「デュアルランク (Dual Rank: DR)」、「クアッドランク (Quad Rank: QR)」などの種類がある。

シングルランクのモジュールは、上記の例のように、1つの64ビット幅のデータチャネルに対して1つのランクのみで構成されている。メモリコントローラは、この単一のランクに対してデータの読み書きを行う。モジュール上にDRAMチップが片面のみに実装されている場合や、両面に実装されていても電気的に1つのランクとして構成されている場合がある。

デュアルランクのモジュールは、1つのメモリモジュール内に2つの独立したランクを持っている。これは、例えば16個のx8 DRAMチップが搭載されている場合、そのうちの8個のチップで1つ目の64ビット幅のランクを構成し、残りの8個のチップで2つ目の64ビット幅のランクを構成するといった形になる。多くの場合、モジュールの両面にDRAMチップが実装されており、それぞれの面が独立したランクを形成する。メモリコントローラは、これら2つのランクを個別のデータ領域として認識し、それぞれに独立したチップセレクト信号を用いてアクセスを切り替える。

クアッドランクのモジュールは、さらに4つの独立したランクを持つ。これは通常、非常に大容量のメモリモジュールや、特定のサーバー向けメモリで採用される構成である。

メモリコントローラは、各ランクを独立したエンティティとして管理し、それぞれに異なるアドレスを割り当ててデータ転送を制御する。物理的なメモリバスはモジュール上の全てのランクで共有されるが、メモリコントローラは一度に1つのランクにしか直接アクセスできない。しかし、複数のランクを持つモジュールの場合、メモリコントローラは「ランクインターリーブ」と呼ばれる技術を利用して、実効的な性能を向上させることが可能である。これは、あるランクに対するデータ転送が完了するまでの間に、別のランクに対して次のアクセス準備(例えば、データの場所を示す行アドレスの指定など)を開始することで、メモリアクセスの待ち時間を短縮し、データバスの利用効率を高める手法である。

このランクインターリーブの効果により、一般的にデュアルランクのモジュールは、同じ容量のシングルランクモジュールと比較して、わずかながら高い実効データ帯域幅を発揮する場合がある。ただし、この性能向上は、CPUのアーキテクチャ、メモリコントローラの実装、そして実行されるアプリケーションのワークロードに強く依存するため、常に顕著な差として現れるとは限らない。

システムの互換性や拡張性を考慮する上でもメモリランクは重要である。CPUやマザーボードのメモリコントローラは、メモリチャネルごとにサポートできる最大ランク数に上限が設定されている場合が多い。例えば、あるCPUが1チャネルあたり最大4ランクまでしかサポートしない場合、デュアルランクのメモリモジュールを2枚挿入すると合計4ランクとなり、それ以上のモジュールを追加すると、システムが不安定になったり、認識容量が減少したり、パフォーマンスが著しく低下したりする可能性がある。そのため、大容量のメモリを搭載するサーバーやワークステーションなどでは、システムの安定稼働と性能を確保するために、メモリランクの選択が特に重要な検討事項となる。メモリモジュールを選ぶ際には、容量だけでなく、シングルランクかデュアルランクかといったランク構成も確認する必要がある。

関連コンテンツ