メモリランク 【memory rank】
概要
メモリランク(memory rank)とは、メモリモジュールの仕様を表す属性の一つで、基板上の複数のメモリチップを一つにまとめたグループのこと。ランクごとに独立した信号線が用意されており、同じランクのチップに同時にアクセスする。パソコンやサーバなどのメインメモリに用いられるDRAMは「メモリモジュール」(近年ものはDIMM)という細長い小型の電子基板として提供され、コンピュータの主基板(マザーボード)の所定の端子(メモリスロット)に差し込んで使用する。
一枚のメモリモジュール上には複数のメモリチップ(DRAMチップ)が実装されており、端子側から伸びる信号線に繋がれている。CPUとメモリはバスと呼ばれる伝送路で結ばれており、一度の読み出しあるいは書き込み操作で伝送できるビット数が決まっている。これをデータバス幅と呼び、近年の規格では64ビット単位、誤り訂正符号が追加されるECCメモリでは72ビット単位で伝送を行う。
各メモリチップにも一度に読み書きできるビット数が決まっており、4ビット、8ビット、16ビットなど、モジュール全体のバス幅よりも小さい。このため、メモリコントローラはモジュール上の複数のチップをグループ化し、各チップに均等に分散して同時にデータを書き込み、読み出し時も同時にアクセスする。
例えば、8ビット単位でアクセスするメモリチップ(x8)を8枚実装した非ECCモジュールでは、一度のアクセスで64ビットを8ビットずつに分割し、8枚同時にアクセスする。グループ分けする必要がない「シングルランク」(single rank)構成である。一方、同じチップを16枚実装したモジュールでは、8枚ずつのグループを2つ作り、一度のアクセスで同じグループの8枚にアクセスする。これを「デュアルランク」(dual rank)という。
複数のランクを持つモジュールには、ランクごとに独立した信号線が配線されており、それぞれ独立にアクセス動作を行うことができる。本体側の端子とバスは共通であるため、ランクごとに交互にアクセスが行われる。デュアルランク以外にも、4つのグループに分かれた「クアッドランク」(quad rank)、8つに分かれた「オクタルランク」(octal rank)などがある。
一つのモジュールに多数のチップを積載する場合に複数のランクが必要になり、デュアルランク以上のモジュールは大量のメモリを必要とするサーバ向けメモリ製品に多い。一台のコンピュータに搭載できるランク数の総数は決まっているため、増設などの際には上限を超えないよう注意が必要である。