DRAM のアドレス指定 - 1.0 日本語

Versal ACAP Programmable Network on Chip and Integrated Memory Controller v1.0 LogiCORE IP 製品ガイド (PG313)

Document ID
PG313
Release Date
2021-04-08
Version
1.0 日本語

スタティック RAM (SRAM) ではすべてのアドレスへのアクセスが同等に扱われますが、DRAM は特殊な構造をしており、アクセスするアドレスによってオーバーヘッドが異なります。一般的な DRAM は行、列、バンク、バンク グループなどで構成されます。

DRAM の行 (ページ) は、DRAM 空間の一部の内部リソースを共有したブロックで、行にアクセスするには、まずその行を「オープン」にする必要があります。1 つの行には多くの列が含まれます。一般的な DRAM には 64K の行があります。行を切り替えるには、現在の行を閉じてからプリチャージおよびアクティベートと呼ばれる DRAM コマンドを使用して次の行をオープンする動作が必要です。また、これらのコマンドを発行してから次の読み出し/書き込み動作を開始するまでの間に必要な遅延時間の最小値が決められており、このことも性能に影響します。

DRAM の列は、特定のメモリ位置をアドレス指定します。一般的な DRAM は、1 行に 1024 の列があります。

複数の行をグループ化したものを DRAM バンクと呼びます。1 つのバンク内で同時に複数の行を「オープン」にはできず、行の切り替えには性能のペナルティが生じます。複数のバンクを使用すると、複数の行を同時にオープンにできるため、異なるバンク間で行を切り替えると非常に効率よくアクセスできます。異なるバンクに対するプリチャージおよびアクティベート コマンドは、同時にスケジューリングできます。一般的な DDR4 コンポーネントは 16 バンクで構成されます。

コンポーネントの高速化と複雑化に伴い、DDR4 や HBM などにはバンク グループの概念が追加されています。たとえば、DDR4 DRAM の 16 個のバンクは 4 つのバンク グループに分けられています。バンク グループにも制約があり、異なるバンク グループ間でバンクを切り替える場合は性能のペナルティはありませんが、同じバンク グループ内でバンクを切り替える場合は、数クロック サイクルの待ち時間が必要となり、性能が低下するため注意が必要です。

このほか、ランク、(3DS の) 論理ランク、HBM スタック ID (SID) などの DRAM パーティションも、バンクやバンク グループ同様に性能への影響があります。