SDRAMとは?仕組み・主要コマンドとタイミング(CL/tRCD/tRP)・DDR世代・性能最適化とRowhammer対策

SDRAMとは — 概要

SDRAM(Synchronous DRAM、シンクロナス・ダイナミック・ランダムアクセスメモリ)は、システムクロックと同期して動作するDRAMの一種です。従来の非同期DRAM(命令や信号のタイミングが外部制御に依存するもの)に対し、SDRAMはクロック信号に合わせて内部の操作をパイプライン化できるため、より高い転送効率と予測可能なレイテンシを実現します。1990年代初頭に実用化され、以降のメインメモリはSDRAMおよびその派生(DDRシリーズ)が中心になっています。

DRAMの基本動作とSDRAMの特徴

DRAMは各ビットをキャパシタ(電荷)で記憶し、MOSトランジスタでアクセスします。キャパシタは自然放電するため定期的にリフレッシュが必要です(これが「Dynamic」の由来)。一方でSRAMはフリップフロップで保持し、リフレッシュは不要ですが集積度が低く高コストです。

SDRAMの特徴は主に以下です:

  • クロック同期:すべてのコマンド(読み出し、書き込み、アクティベートなど)がクロックエッジに合わせて処理される。
  • パイプライン処理:複数の命令を重ねて実行でき、バースト転送により連続データを高速に送受信できる。
  • バンク分割:内部が複数のバンクに分かれており、異なるバンクで独立した操作を並列化できる。
  • 行バッファ(Row Buffer):アクセス対象の行(ページ)を開いておき、同じ行への連続アクセスを高速化する(オープンページ)方式が一般的。

主要なコマンドとタイミングパラメータ

SDRAMは一連のコマンドで動作します。代表的なもの:

  • ACTIVATE(行開き):指定した行を行バッファにロードする。
  • READ / WRITE:列アドレスを指定してデータを読み書きする(バースト長に従う)。
  • PRECHARGE(行閉じ):行バッファを閉じ、次の行を開ける準備をする。
  • REFRESH:全セルの情報を再書き込みして保持する操作。自動リフレッシュやバーストリフレッシュがある。

これらのコマンド間には多数のタイミング制約があり、代表的なものは:

  • CL(CAS Latency、CASレイテンシ):READコマンドとデータが最初に出てくるまでのクロックサイクル数。
  • tRCD(RAS to CAS Delay):ACTIVATEとREAD/WRITE間の最小サイクル数。
  • tRP(Row Precharge Time):PRECHARGEから次のACTIVATEまでの最小サイクル数。
  • tRAS(Active to Precharge Time):ACTIVATE後にPRECHARGE可能になるまでの最小時間。
  • tRFC(Refresh Cycle Time):REFRESHを完了するのに必要な時間。

これらは「サイクル数」で規定されるため、クロック周波数が上がると実時間(ns)は変わります。例えばDDR4-3200(3200 MT/s)の場合、内部クロックは1600 MHzで周期は約0.625 ns。CL16なら16×0.625 ≒ 10 nsとなります。

SDRAMとDDRの関係(世代の進化)

「SDRAM」は同期DRAMの総称で、ここから派生して実用的に広まったのがDDR(Double Data Rate)シリーズです。主な流れ:

  • SDR SDRAM:クロックの立ち上がりなど片側でデータ転送(初期のPCメモリ)
  • DDR SDRAM(DDR):クロックの立ち上がりと立ち下がりの両方でデータを転送し、実効転送量を倍増
  • DDR2 / DDR3 / DDR4 / DDR5:それぞれ転送レート向上、電圧低下、内部バンク構成・プリフェッチ幅の変更、電力管理機能やオンチップ制御強化などの改善を順次導入
  • LPDDR(Low Power DDR):モバイル向けに消費電力を最適化
  • HBM(High Bandwidth Memory):多数のI/Oを垂直積層とインターポーザで接続し、極めて高帯域を実現する特殊用途のSDRAM系メモリ

各世代はJEDECによる規格化を通じて策定されています。

物理形状とモジュール種類

SDRAMチップはいくつかのモジュール形状で使用されます。主なもの:

  • DIMM(Desktop DIMM):デスクトップ向け、一般には64ビットデータ幅(非ECC)で、DDR3は240ピン、DDR4は288ピン(物理的なキー位置やピン割付は世代ごとに異なる)。
  • SO-DIMM:ノートPCや小型機器向けの小型モジュール。
  • Registered DIMM(RDIMM) / Load-Reduced DIMM(LRDIMM):サーバ向けにレジスタやバッファを入れて信号品質を改善し、大容量運用を可能にする。
  • ECC(Error-Correcting Code)メモリ:1ビットの誤り訂正などを行いサーバやミッションクリティカル用途で用いられる。

性能指標の見方 — 帯域幅とレイテンシ

メモリ性能は概ね「帯域幅(Throughput)」と「レイテンシ(遅延)」で評価されます。帯域は理論的には次の式で求められます:

モジュール帯域(GB/s) = 転送速度(MT/s) × バス幅(ビット) / 8 / 1000(または1024)

例:DDR4-3200の1チャネル(64ビット)なら 3200 × 64 / 8 = 25,600 MB/s = 25.6 GB/s。

一方でレイテンシはCLなどのサイクル指定を基に実時間で考えるべきで、高クロック化は帯域を増すがサイクル数は変動するため、実際のnsレイテンシは世代や設定で一概に小さくならないことがあります。したがって高帯域×高CLは「高スループットだが相対的に長い初期応答」を意味することがあります。

実装上の注意点と最適化

メモリ性能を最大限引き出すには、以下の点に注意します:

  • チャネル構成:デュアル/クアッドチャネルなど複数チャネルを有効にすると帯域が線形に増加する(メモリコントローラとマザーボードの仕様に依存)。
  • ランク(Rank)とバンク:ランク数が多いと並列性が向上することがあるが、レイテンシや互換性へ影響が出る場合がある。
  • SPD/XMP:DIMM上のSPD EEPROMに格納されたタイミング情報や、オーバークロック用のXMPプロファイルを利用することで動作周波数やタイミングを設定する。
  • ECC:サーバ用途では誤り訂正を有効にして信頼性を確保する。
  • 電圧と冷却:高クロックや高密度実装では電力・熱が増え、安定性に影響する。

信頼性の課題:Rowhammerなど

SDRAMには製造微細化の進展に伴う脆弱性や信頼性課題が現れます。代表的なものが「Rowhammer」と呼ばれる問題で、ある行を高速に繰り返しアクセス(ハンマー)することで隣接行のビットが反転する現象です。これを防ぐためにメーカーはターゲット行リフレッシュ(TRR)やOn-Die ECC、メモリコントローラでの対策などを導入しています。

最新動向と今後

近年の主流はDDR4からDDR5へ移行しつつあり、DDR5はデータレート増加だけでなくオンチップECC、バンクグループの拡張、電力管理の改良などを導入しています。モバイル向けにはLPDDR(低電力版)が進化し、GPUやAI向けにはHBMのような高帯域スタックメモリが利用されます。一方でメインメモリのアクセスコスト(レイテンシ)がボトルネックとなるため、キャッシュアーキテクチャやメモリ階層の最適化、インメモリ計算や近接メモリ技術の研究も進んでいます。

まとめ

SDRAMは「クロック同期」と「パイプライン化」によって高効率なメインメモリ動作を実現する技術で、現代のPC・サーバ・モバイルの主流メモリ技術の基盤です。DDRシリーズやLPDDR、HBMといった派生を通じて性能と効率が向上し続けていますが、タイミング制御、リフレッシュ、信頼性対策(例:Rowhammer)など設計上の考慮点は依然重要です。システム設計では帯域とレイテンシのトレードオフ、チャネル構成、ECCの必要性、消費電力と熱設計を総合的に評価することが求められます。

参考文献