
同期ダイナミックランダムアクセスメモリ(同期ダイナミックRAMまたはSDRAM)とは、外部ピンインターフェースの動作が外部から供給されるクロック信号によって調整されるDRAMのことです。
1970年代初頭から1990年代初頭にかけて製造されたDRAM集積回路(IC)は非同期インターフェースを使用しており、入力制御信号は半導体経路を通過する時間だけ遅延して内部機能に直接影響を与えます。SDRAMは同期インターフェースを採用しており、制御入力の変化はクロック入力の立ち上がりエッジ後に認識されます。JEDECによって標準化されたSDRAMファミリでは、クロック信号が、入力コマンドに応答する内部有限状態機械のステップ動作を制御します。これらのコマンドはパイプライン化することでパフォーマンスを向上させることができ、新しいコマンドが受信される間に、以前に開始された操作が完了します。メモリは、バンクと呼ばれる複数の等サイズで独立したセクションに分割されており、デバイスは各バンクのメモリアクセスコマンドを同時に処理し、インターリーブ方式でアクセスを高速化できます。これにより、SDRAMは非同期DRAMよりも高い並列性と高速なデータ転送速度を実現できます。
パイプライン処理とは、チップが前のコマンドの処理を完了する前に、新しいコマンドを受け付けることができる仕組みです。パイプライン書き込みの場合、書き込みコマンドの直後に、メモリ配列へのデータの書き込みを待つことなく、別のコマンドを実行できます。パイプライン読み出しの場合、要求されたデータは読み出しコマンドの一定クロックサイクル(レイテンシ)後に現れ、その間に追加のコマンドを送信できます。

初期の DRAM は、多くの場合 CPU クロックと同期 (クロック付き) しており、初期のマイクロプロセッサで使用されていました。1970 年代半ばには、DRAM は非同期設計に移行しましたが、1990 年代には同期動作に戻りました。[ 1 ] [ 2 ] 1980 年代後半には、 IBM はデュアルエッジ クロック機能を使用した DRAM を製造し、1990 年の国際固体回路会議でその結果を発表しました。ただし、それは標準DRAMであり、SDRAM ではありませんでした。[ 3 ] [ 4 ]
最初の商用SDRAMは、容量16MbitのSamsung KM48SL2000メモリチップ でした。[ 5 ]これは1992年にSamsung ElectronicsがCMOS(相補型金属酸化膜半導体)製造プロセスを使用して製造し、 [ 6 ] 1993年に量産されました。[ 5 ] 2000年までに、SDRAMは、その優れた性能により、現代のコンピュータで事実上他のすべてのタイプのDRAMに取って代わりました。
SDRAMのレイテンシは、非同期DRAMに比べて本質的に低い(アクセス時間が速い)わけではありません。実際、初期のSDRAMは、追加のロジック回路のために、同時代のバーストEDO DRAMよりも若干低速でした。SDRAMの内部バッファリングの利点は、複数のメモリバンクへの演算をインターリーブすることで、実効帯域幅を向上させることができる点にあります。
DDR SDRAMとして知られるダブルデータレートSDRAMは、1997年にサムスンによって初めて実証されました。[ 7 ]サムスンは1998年6月に最初の商用DDR SDRAMチップ(64Mbit [ 8 ] )をリリースし、 [ 9 ] [ 10 ] [ 11 ]同じ年に現代電子(現在のSKハイニックス)がすぐにそれに続きました。 [ 12 ]
現在、SDRAMのほぼすべては、電子部品の相互運用性を促進するためにオープンスタンダードを採用する電子業界団体であるJEDECが定めた規格に準拠して製造されています。JEDECは1993年に最初のSDRAM規格を正式に採用し、その後、DDR、DDR2、DDR3 SDRAMなどの他のSDRAM規格も採用しました。
SDRAMには、サーバーやワークステーションなど、より高い拡張性を必要とするシステム向けに、レジスタードタイプも用意されている。
現在、世界最大のSDRAMメーカーには、SKハイニックス、サムスン電子、マイクロンテクノロジー、長信メモリテクノロジー、南亜テクノロジーなどが含まれる。
DRAMの性能にはいくつかの制限があります。最もよく知られているのは読み出しサイクル時間、つまりオープン行への連続読み出し操作間の時間です。この時間は、66MHz SDRAM(1MHz = 10⁶Hz) の15ナノ秒からDDR-400の5ナノ秒に短縮されましたが、DDR2-800およびDDR3-1600世代では比較的変化がありませんでした。しかし、インターフェース回路を基本読み出し速度の倍数で動作させることで、達成可能な帯域幅は急速に増加しました。
もう一つの制限はCASレイテンシ、つまりカラムアドレスを指定してから対応するデータを受信するまでの時間です。これもまた、DDR SDRAMのここ数世代を通して10~15ナノ秒で比較的安定しています。
動作時、CASレイテンシはSDRAMのモードレジスタにプログラムされ、DRAMコントローラが想定する特定のクロックサイクル数です。任意の値をプログラムできますが、値が低すぎるとSDRAMは正しく動作しません。クロックレートが高いほど、有効なCASレイテンシ(クロックサイクル数)は当然増加します。10~15 ナノ秒は、DDR-400 SDRAMの200MHzクロックの2~3サイクル(CL2~3) 、DDR2-800のCL4~6、DDR3-1600のCL8~12に相当します。クロックサイクルが遅いほど、CASレイテンシのサイクル数は当然少なくなります。
SDRAMモジュールには独自のタイミング仕様があり、モジュール上のチップのタイミング仕様よりも遅い場合があります。100MHzの SDRAMチップが初めて登場したとき、一部のメーカーは、 そのクロックレートで安定して動作しない「100MHz」モジュールを販売していました。これに対し、インテルはPC100規格を発表しました。この規格は、100MHzで安定して動作できるメモリモジュールを製造するための要件とガイドラインを定めています 。この規格は広く影響力があり、「PC100」という用語はすぐに100MHz SDRAMモジュールの一般的な識別子となり 、現在ではモジュールは一般的に「PC」で始まる番号(PC66、PC100、PC133など。ただし、これらの番号の実際の意味は変更されています)で指定されています。
すべてのコマンドはクロック信号の立ち上がりエッジを基準にタイミングが設定されます。クロック信号に加えて、6つの制御信号があり、そのほとんどはアクティブローで、クロックの立ち上がりエッジでサンプリングされます。
SDRAMデバイスは、内部的に2つ、4つ、または8つの独立したデータバンクに分割されています。1つから3つのバンクアドレス入力(BA0、BA1、BA2)を使用して、コマンドの送信先となるバンクを選択します。
多くのコマンドは、アドレス入力ピンに表示されるアドレスを使用します。アドレスを使用しない、または列アドレスを表示する一部のコマンドも、A10を使用してバリアントを選択します。
SDR SDRAMコマンドは以下のように定義されます。
すべてのSDRAM世代(SDRおよびDDRx)は基本的に同じコマンドを使用しますが、変更点は以下のとおりです。

例えば、512 MB SDRAM DIMM(512 MB を内蔵 )は、8 個または 9 個の SDRAM チップで構成され、各チップは 512 Mbit のストレージを内蔵し、DIMM の 64 ビットまたは 72 ビット幅に 8 ビットずつ割り当てられます。一般的な 512 Mbit SDRAMチップは、内部に 4 つの独立した 16 MB メモリ バンクを内蔵しています。各バンクは、それぞれ 16,384 ビットの 8,192 行の配列です(2048 個の 8 ビット列)。バンクは、アイドル状態、アクティブ状態、またはその間の切り替え状態のいずれかになります。[ 8 ]
アクティブコマンドは、アイドル状態のバンクをアクティブ化します。このコマンドは、2ビットのバンクアドレス(BA0 ~ BA1)と13ビットの行アドレス(A0 ~ A12)を提示し、その行をバンク内の16,384個のカラムセンスアンプのアレイ全体に読み出します。これは行の「オープン」とも呼ばれます。この操作には、その行のダイナミック(容量性)メモリ記憶セルをリフレッシュするという副作用があります。
行がアクティブ化または「オープン」されると、その行に対して読み取りコマンドと書き込みコマンドを実行できるようになります。アクティブ化には、行から列への遅延時間(t RCD)と呼ばれる最小時間が必要で、この時間が経過すると読み取りまたは書き込みが可能になります。この時間は、クロック周期の次の倍数に切り上げられ、アクティブなコマンドと読み取りまたは書き込みコマンドの間の最小待機サイクル数を指定します。各バンクは完全に独立して動作するため、これらの待機サイクル中に他のバンクに追加のコマンドを送信できます。
読み出しコマンドと書き込みコマンドの両方に列アドレスが必要です。各チップは一度に8ビットのデータにアクセスするため、可能な列アドレスは2,048通りあり、必要なアドレス線はわずか11本(A0 ~ A9、A11)です。
読み出しコマンドが発行されると、SDRAMは、設定されたCASレイテンシに応じて、数クロックサイクル後のクロックの立ち上がりエッジに合わせて、対応する出力データをDQライン上に生成します。バーストの次のワードは、次のクロックの立ち上がりエッジに合わせて生成されます。
書き込みコマンドと同時に、書き込み対象データがクロックの立ち上がりエッジでDQラインに書き込まれます。メモリコントローラは、SDRAMが書き込みデータを書き込む必要があるのと同時に、読み出しデータもDQラインに書き込まないようにする必要があります。これは、読み出しバーストが終了するまで待つ、読み出しバーストを終了する、またはDQM制御線を使用することによって実現できます。
メモリコントローラが別の行にアクセスする必要がある場合、まずそのバンクのセンスアンプをアイドル状態に戻し、次の行を感知できる状態にする必要があります。これは「プリチャージ」操作、または行の「クローズ」と呼ばれます。プリチャージは明示的にコマンドすることも、読み出しまたは書き込み操作の終了時に自動的に実行することもできます。ここでも、行が完全に「クローズ」され、バンクがアイドル状態になって次のアクティブ化コマンドを受信できるようになるまでには、行プリチャージ遅延時間 t RPという最小時間が経過する必要があります。
行の更新は、行をアクティブ化すると自動的に発生する副作用ですが、更新には最低限の時間が必要です。これは、行を開くアクティブコマンドと、それに対応するプリチャージコマンドが行を閉じるまでの間に、最低限の行アクセス時間 t RAS の遅延が必要であることを意味します。この制限は通常、行に対する読み取りおよび書き込みコマンドの数に比べてはるかに小さいため、その値は一般的なパフォーマンスにほとんど影響を与えません。
操作なしコマンドは常に許可されますが、ロードモードレジスタコマンドでは、すべてのバンクがアイドル状態である必要があり、変更が有効になるまで遅延が発生します。自動リフレッシュコマンドでも、すべてのバンクがアイドル状態である必要があり、チップをアイドル状態に戻すにはリフレッシュサイクル時間 tRFC が必要です。(この時間は通常 tRCD + tRP に等しくなります。)アイドル状態のバンクで許可される他のコマンドはアクティブコマンドのみです。このコマンドは、前述のように、行が完全に開いて読み取りコマンドと書き込みコマンドを受け付けられるようになるまでtRCDかかります。
バンクが開いているときは、読み取り、書き込み、バースト終了、プリチャージの4つのコマンドが許可されます。読み取りコマンドと書き込みコマンドはバーストを開始し、後続のコマンドによって中断することができます。
読み取りコマンドの後であればいつでも、読み取り、バースト終了、またはプリチャージコマンドを発行できます。これらのコマンドは、設定されたCASレイテンシの後に読み取りバーストを中断します。したがって、サイクル0で読み取りコマンドが発行され、サイクル2で別の読み取りコマンドが発行され、CASレイテンシが3の場合、最初の読み取りコマンドはサイクル3と4の間にデータのバースト送信を開始し、2番目の読み取りコマンドの結果はサイクル5から表示されます。
サイクル2で発行されたコマンドがバースト終端、またはアクティブバンクのプリチャージであった場合、サイクル5では出力は生成されません。
割り込みとなる読み出しはどのアクティブなバンクに対しても行われる可能性がありますが、プリチャージコマンドが同じバンクまたはすべてのバンクに対して行われた場合にのみ、読み出しバーストを中断します。異なるバンクに対するプリチャージコマンドは、読み出しバーストを中断しません。
読み出しバーストを書き込みコマンドで中断することは可能ですが、より困難です。メモリコントローラが書き込み操作に間に合うようにDQラインを介してSDRAMにデータを転送できるように、DQM信号を使用してSDRAMからの出力を抑制することで、これが可能になります。読み出しデータに対するDQMの影響は2サイクル遅れますが、書き込みデータに対するDQMの影響は即時であるため、書き込みコマンドの少なくとも2サイクル前からDQMを上げて(読み出しデータをマスクするため)、書き込みコマンドのサイクル中はDQMを下げる必要があります(書き込みコマンドが効果を発揮することを想定した場合)。
これをわずか2クロックサイクルで実行するには、SDRAMがクロックエッジで出力をオフにする時間と、次のクロックエッジで書き込みのためにSDRAMに入力としてデータを供給する時間との間で、綿密な調整が必要です。クロック周波数が高すぎて十分な時間が確保できない場合は、3サイクルが必要になる場合があります。
読み取りコマンドに自動プリチャージが含まれている場合、プリチャージは割り込みコマンドと同じサイクルで開始されます。
キャッシュを備えた最新のマイクロプロセッサは、一般的にキャッシュライン単位でメモリにアクセスします。64 バイトのキャッシュラインを転送するには、64 ビット DIMM への 8 回の連続アクセスが必要ですが、モード レジスタを使用して SDRAM チップを構成し、8 ワードバーストを実行することで、単一の読み出しまたは書き込みコマンドでこれらすべてをトリガーできます。キャッシュ ラインのフェッチは通常、特定のアドレスからの読み出しによってトリガーされ、SDRAM ではキャッシュ ラインの「クリティカル ワード」を最初に転送できます。(ここで「ワード」とは、SDRAM チップまたは DIMM の幅を指し、一般的な DIMM では 64 ビットです。)SDRAM チップは、キャッシュ ライン内の残りのワードの順序に関して 2 つの可能な規則をサポートしています。
バーストは常に、BL の倍数から始まる、BL 連続するワードの整列ブロックにアクセスします。したがって、たとえば、4 列目から 7 列目までの任意のアドレスへの 4 ワードのバースト アクセスでは、4 番目から 7 番目のワードが返されます。ただし、順序は要求されたアドレスと、設定されたバースト タイプ オプション (シーケンシャルまたはインターリーブ) によって異なります。通常、メモリ コントローラはどちらか一方を必要とします。バースト長が 1 または 2 の場合、バースト タイプは関係ありません。バースト長が 1 の場合、要求されたワードのみがアクセスされます。バースト長が 2 の場合、要求されたワードが最初にアクセスされ、整列ブロック内のもう 1 つのワードが 2 番目にアクセスされます。偶数アドレスが指定された場合は次のワード、奇数アドレスが指定された場合は前のワードがこれに該当します。
シーケンシャルバーストモードでは、後続のワードはアドレスの昇順でアクセスされ、末尾に達するとブロックの先頭に戻ります。たとえば、バースト長が4で、要求された列アドレスが5の場合、ワードは5-6-7-4の順でアクセスされます。バースト長が8の場合、アクセス順序は5-6-7-0-1-2-3-4になります。これは、列アドレスにカウンタを追加し、バースト長を超える桁上がりを無視することによって行われます。インターリーブバーストモードでは、カウンタとアドレス間の排他的論理和演算を使用してアドレスを計算します。同じ開始アドレス5を使用すると、4ワードのバーストでは、ワードは5-4-7-6の順で返されます。8ワードのバーストでは、5-4-7-6-1-0-3-2になります。[ 13 ]
要求された列アドレスがブロックの先頭にある場合、バーストモード(シーケンシャルモードとインターリーブモード)の両方で、データは0-1-2-3-4-5-6-7の同じシーケンシャルシーケンスで返されます。この違いが問題となるのは、メモリからキャッシュラインをクリティカルワード優先でフェッチする場合のみです。
シングルデータレートSDRAMには、10ビットのプログラマブルモードレジスタが1つだけ搭載されています。後のダブルデータレートSDRAM規格では、バンクアドレスピンを使用してアドレス指定するモードレジスタが追加されています。SDR SDRAMの場合、バンクアドレスピンとアドレスラインA10以降は無視されますが、モードレジスタへの書き込み中はゼロにする必要があります。
ビットはM9からM0で、ロードモードレジスタのサイクル中にアドレス線A9からA0に表示されます。
後期の(ダブルデータレート)SDRAM規格では、より多くのモードレジスタビットが使用され、「拡張モードレジスタ」と呼ばれる追加のモードレジスタが提供されます。レジスタ番号は、ロードモードレジスタコマンド中にバンクアドレスピンにエンコードされます。例えば、DDR2 SDRAMには、13ビットのモードレジスタ、13ビットの拡張モードレジスタNo.1(EMR1)、および5ビットの拡張モードレジスタNo.2(EMR2)があります。
RAMチップをリフレッシュするには、各バンクの各行を開閉(アクティブ化とプリチャージ)する必要があります。しかし、メモリコントローラを簡素化するために、SDRAMチップは「自動リフレッシュ」コマンドをサポートしており、各バンクの1行に対してこれらの操作を同時に実行します。SDRAMには、すべての可能な行を順に処理する内部カウンタも備わっています。メモリコントローラは、リフレッシュ間隔(tREF = 64 msが一般的な値)ごとに、十分な数の自動リフレッシュコマンド(行ごとに1つ、この例では8192)を発行するだけで済みます。このコマンドを発行する際には、すべてのバンクがアイドル状態(閉じられ、プリチャージ済み)である必要があります。
前述のとおり、クロックイネーブル(CKE)入力を使用すると、SDRAMへのクロックを効果的に停止できます。CKE入力はクロックの立ち上がりエッジごとにサンプリングされ、ローレベルの場合、CKEチェック以外の目的で次のクロックの立ち上がりエッジは無視されます。CKEがローレベルである限り、クロックレートを変更したり、クロックを完全に停止したりすることが可能になります。
SDRAMが動作中にCKEが低下すると、CKEが再び上昇するまでSDRAMはその場で「フリーズ」状態になります。
CKEが下げられたときにSDRAMがアイドル状態(すべてのバンクがプリチャージ済みで、コマンドが実行中ではない状態)であれば、SDRAMは自動的にパワーダウンモードに入り、CKEが再び上げられるまで最小限の電力を消費します。この状態は最大リフレッシュ間隔tREFを超えてはなりません。超えるとメモリの内容が失われる可能性があります。この間、クロックを完全に停止することで、さらに電力を節約できます。
最後に、SDRAMに自動リフレッシュコマンドが送信されると同時にCKEが低下すると、SDRAMはセルフリフレッシュモードに入ります。これは電源オフに似ていますが、SDRAMはオンチップタイマーを使用して必要に応じて内部リフレッシュサイクルを生成します。この間、クロックは停止する場合があります。セルフリフレッシュモードは電源オフモードよりもわずかに消費電力が多くなりますが、メモリコントローラを完全に無効にできるため、通常はその差を十分に補うことができます。
バッテリー駆動デバイス向けに設計されたSDRAMには、いくつかの追加の省電力オプションがあります。1つは温度依存リフレッシュです。オンチップの温度センサーが、常に最悪の場合のリフレッシュレートで動作させるのではなく、低温時にはリフレッシュレートを下げます。もう1つは選択的リフレッシュで、DRAMアレイの一部に自己リフレッシュを制限します。リフレッシュされる部分は、拡張モードレジスタを使用して構成されます。3つ目は、モバイルDDR(LPDDR)およびLPDDR2に実装されている「ディープパワーダウン」モードで、メモリを無効化し、終了するには完全な再初期化が必要です。これは、CKEを下げながら「バースト終了」コマンドを送信することでアクティブになります。
DDR SDRAMはプリフェッチアーキテクチャを採用することで、メモリ内の共通の物理行に配置された複数のデータワードに迅速かつ容易にアクセスできるようにしています。
プリフェッチアーキテクチャは、DRAMへのメモリアクセスの特定の特性を利用します。一般的なDRAMメモリ操作は、ビットラインのプリチャージ、行アクセス、列アクセスの3つのフェーズで構成されます。行アクセスは、DRAMメモリセル内の微弱な信号を注意深く検出する必要があるため、読み出し操作の中核であり、メモリ操作の中で最も遅いフェーズです。しかし、行が読み出されると、センスアンプがラッチとしても機能するため、同じ行への後続の列アクセスは非常に高速になります。参考までに、1 Gbit [ 8 ] DDR3デバイスの1行は2,048ビット幅であるため、行アクセスフェーズでは、内部的に2,048ビットが2,048個の個別のセンスアンプに読み込まれます。行アクセスはDRAMの速度に応じて50 nsかかる場合がありますが、開いている行からの列アクセスは10 ns未満です。
従来のDRAMアーキテクチャでは、オープン行上のビットへの高速なカラムアクセスが長らくサポートされてきました。8ビット幅のメモリチップで2,048ビット幅の行がある場合、他の行へのアクセスが間に発生しない限り、その行上の256個のデータワード(2048/8)のいずれにも非常に高速にアクセスできます。
従来の高速列アクセス方式の欠点は、行上のデータワードが追加されるたびに新しい列アドレスを送信する必要があったことです。アドレスバスはデータバスと同じ周波数で動作しなければなりませんでした。プリフェッチアーキテクチャは、単一のアドレス要求で複数のデータワードを取得できるようにすることで、このプロセスを簡素化します。
プリフェッチ バッファ アーキテクチャでは、行へのメモリ アクセスが発生すると、バッファは行上の隣接するデータ ワードのセットを取得し、個々の列アドレス要求を必要とせずに、IO ピン上で高速シーケンスで読み出 (「バースト」) します。これは、CPU がメモリ内に隣接するデータ ワードを必要としていることを前提としており、実際には多くの場合その通りです。たとえば、DDR1 では、同じクロック サイクルで各チップから 2 つの隣接するデータ ワードが読み出され、プリフェッチ バッファに配置されます。その後、各ワードはクロック サイクルの連続する立ち上がりエッジと立ち下がりエッジで送信されます。同様に、4n プリフェッチ バッファを備えた DDR2 では、4 つの連続するデータ ワードが読み出されてバッファに配置され、DDR の内部クロックの 2 倍の速さのクロックが、より高速な外部クロックの連続する立ち上がりエッジと立ち下がりエッジで各ワードを送信します[ 14 ]
プリフェッチバッファの深さは、コアメモリ周波数とIO周波数の比と考えることもできます。8nプリフェッチアーキテクチャ(DDR3など)では、IOはメモリコアの8倍の速度で動作します(メモリへのアクセスごとに、IO上で8データワードのバーストが発生します)。したがって、200MHzのメモリコアは、 それぞれ8倍の速度(1秒あたり1600メガビット)で動作するIOと組み合わされます。メモリに16個のIOがある場合、合計読み出し帯域幅は200MHz × 8データワード/アクセス × 16IO = 25.6ギガビット/秒(Gbit/s)または3.2ギガバイト/秒(GB/s)となります。複数のDRAMチップを搭載したモジュールは、それに応じてより高い帯域幅を提供できます。
SDRAMの各世代は、プリフェッチバッファのサイズが異なります。

元々は単にSDRAMと呼ばれていたシングルデータレートSDRAMは、クロックサイクルごとに1つのコマンドを受け取り、1ワードのデータを転送できます。チップはさまざまなデータバスサイズ(最も一般的なのは4、8、または16ビット)で製造されていますが、通常は168ピンのDIMMに組み立てられ、一度に64ビット(非ECC)または72ビット(ECC )のデータの読み書きを行います。
データバスの利用は複雑であるため、複雑なDRAMコントローラ回路が必要となる。これは、DRAMに書き込まれるデータは書き込みコマンドと同じサイクルで提示される必要がある一方、読み出しは読み出しコマンドから2~3サイクル後に出力されるためである。DRAMコントローラは、データバスが読み出しと書き込みに同時に使用されないようにする必要がある。
一般的なSDR SDRAMのクロック周波数は、66MHz、100MHz、133MHz (周期はそれぞれ15ns、10ns、7.5ns )で、それぞれPC66、PC100、PC133と表記されます。最大200MHzのクロック周波数も 利用可能でした。動作電圧は3.3Vです 。
このタイプのSDRAMは、クロックサイクルごとに1ワードのデータしか送信されない(シングルデータレート)ため、DDR系よりも低速です。しかし、1ワードのデータを転送するのに通常2~3クロックを要した前身の拡張データ出力DRAM(EDO-RAM)や高速ページモードDRAM(FPM-RAM)よりは高速です。
PC66は、 JEDECによって定義されたコンピュータ内部のリムーバブルメモリ規格です。PC66は、64ビットバス上で66.66MHzのクロック周波数、3.3Vの電圧で動作する同期DRAMです。PC66は、168ピンDIMMと144ピンSO-DIMMのフォームファクタで提供されています。理論上の帯域幅は533MB /秒です(1MB /秒=100万バイト/秒)。
この規格は、Intel PentiumおよびAMD K6ベースのPCで使用されていました。また、ベージュカラーのPower Mac G3、初期のiBook、PowerBook G3にも採用されています。さらに、 66MHzのFSBを搭載した初期のIntel Celeronシステムでも多数使用されています。この規格は、PC100およびPC133規格に取って代わられました。

PC100は、 JEDECによって定義された、コンピュータ内部のリムーバブルランダムアクセスメモリの規格です。PC100は、クロック周波数100MHz 、64ビット幅のバス、3.3Vの電圧で動作する同期DRAMを指します。PC100は、168ピンDIMMと144ピンSO-DIMMのフォームファクタで提供されています。PC100はPC66との下位互換性があり、PC133規格に置き換えられました。
100MHz SDRAMチップで構成されたモジュールが 、必ずしも100MHzで動作するとは限りません。PC100規格は、メモリモジュール 全体の性能を規定しています。PC100は多くの旧型コンピュータで使用されており、1990年代後半頃のPCはPC100メモリを搭載した最も一般的なコンピュータでした。
PC133は、 JEDECによって定義されたコンピュータメモリ規格です。PC133は、クロック周波数133MHz 、64ビット幅のバス、電圧3.3Vで動作するSDR SDRAMを指します。PC133は、168ピンDIMMと144ピンSO-DIMMのフォームファクタで利用可能です。PC133は、JEDECによって承認された最速かつ最終的なSDR SDRAM規格であり、1秒あたり1.066GBの帯域幅を実現します([133.33MHz * 64/8]=1.066GB /秒)。(1GB/秒 = 10億バイト/秒)PC133は、 PC100およびPC66との下位互換性があります。
DRAMのアクセスレイテンシは基本的にDRAMアレイによって制限されますが、DRAMは内部読み出しが実際には数千ビットの行であるため、非常に高い帯域幅の潜在能力を持っています。この帯域幅をより多くユーザーに提供するために、ダブルデータレートインターフェースが開発されました。これは、1サイクルに1回受け入れられる同じコマンドを使用しますが、クロックサイクルごとに2ワードのデータを読み書きします。DDRインターフェースは、クロック信号の立ち上がりエッジと立ち下がりエッジの両方でデータを読み書きすることでこれを実現します。さらに、後からSDRインターフェースのタイミングに若干の変更が加えられ、供給電圧が3.3Vから2.5Vに下げられました。 その結果、DDR SDRAMはSDR SDRAMとの下位互換性がありません。
DDR SDRAM(より分かりやすくするためにDDR1と呼ばれることもある)は、最小読み出し/書き込み単位を2倍に拡大し、すべてのアクセスは少なくとも2つの連続するワードを参照する。
一般的なDDR SDRAMのクロック周波数は133MHz、166MHz、200MHz (7.5ns/サイクル、6ns/サイクル、5ns/サイクル)で、それぞれDDR-266、DDR-333、DDR-400(3.75ns/ サイクル、3ns/サイクル、2.5ns/サイクル)と表記されます。対応する184ピンDIMMは、PC-2100、PC-2700、PC-3200として知られています。DDR-550(PC-4400)までの性能を持つ製品も利用可能です。
DDR2 SDRAMはDDR SDRAMと非常によく似ていますが、最小読み出し/書き込み単位がさらに2倍になり、連続する4ワードになりました。バスプロトコルも簡素化され、より高性能な動作が可能になりました(特に、「バースト終了」コマンドが削除されました)。これにより、内部RAM動作のクロック周波数を上げることなくSDRAMのバス速度を2倍にすることができ、代わりに内部動作はSDRAMの4倍の幅の単位で実行されます。また、大型RAMチップで8バンクを使用できるように、バンクアドレスピン(BA2)が追加されました。
一般的な DDR2 SDRAM のクロック周波数は 200、266、333、または 400 MHz (周期は 5、3.75、3、2.5 ns) で、一般的に DDR2-400、DDR2-533、DDR2-667、DDR2-800 (周期は 2.5、1.875、1.5、1.25 ns) と呼ばれています。対応する 240 ピン DIMM は PC2-3200 から PC2-6400 と呼ばれています。DDR2 SDRAM は現在、533 MHz のクロック周波数でも利用可能で、 一般的に DDR2-1066 と呼ばれ、対応する DIMM は PC2-8500 (メーカーによっては PC2-8600 とも呼ばれる) と呼ばれています。DDR2-1250 (PC2-10000) までのパフォーマンスが利用可能です。
内部動作がクロック周波数の半分で行われるため、DDR2-400メモリ(内部クロック周波数100MHz )はDDR-400(内部クロック周波数200MHz )よりもレイテンシが若干高くなることに注意してください。
DDR3は、この傾向をさらに推し進め、最小読み出し/書き込み単位を8ワードに倍増させています。これにより、内部動作のクロック周波数を変更することなく、帯域幅と外部バス速度をさらに倍増させることが可能になりました。800~1600 M転送/秒(400~800 MHzクロックの両端 )を維持するには、内部RAMアレイが 毎秒100~200 Mフェッチを実行する必要があります。
繰り返しになりますが、倍増するたびに、デメリットはレイテンシの増加です。すべてのDDR SDRAM世代と同様に、コマンドは依然として1クロックエッジに制限されており、コマンドレイテンシはクロックサイクルで表されます。これは、通常引用される転送速度の半分の速度です(DDR3-800のCASレイテンシ 8は8/( 400MHz) = 20 nsで、PC100 SDR SDRAMのCAS2のレイテンシとまったく同じです)。
DDR3 メモリ チップは 2006 年より市販されており[ 17 ]、それを使用するコンピュータ システムは 2007 年後半から入手可能になり[ 18 ] 、 2008 年以降は広く使用されるようになった[ 19 ] 。初期のクロック レートは 400 MHz と 533 MHz で、DDR3-800 と DDR3-1066 (PC3-6400 および PC3-8500 モジュール) と呼ばれていたが、 現在では 667 MHz と 800 MHz が一般的で、DDR3-1333 と DDR3-1600 (PC3-10600 および PC3-12800 モジュール) と呼ばれている[ 20 ] 。DDR3-2800 (PC3 22400 モジュール) までのパフォーマンスが利用可能である[ 21 ]。
DDR3 SDRAMは2025年初頭の時点ではまだ生産されていたが、メーカーが年末までに生産を中止する計画を立てているという報告があった。[ 22 ]
DDR4 SDRAMはDDR3 SDRAMの後継です。 2008年にサンフランシスコで開催されたインテル開発者フォーラムで発表され、2011年に市場に投入される予定でした。開発中、発売時期は大きく変動しました。当初は2012年に発売される予定でしたが[ 23 ]、その後(2010年)2015年に発売される予定となり[ 24 ] 、 2011年初頭にサンプルが発表され、メーカー各社が2012年に商用生産と市場投入が予定されていると発表し始めました。DDR4は2015年頃にマスマーケットに普及しましたが、これはDDR3がDDR2からマスマーケットへの移行を達成するのに要した約5年とほぼ同等です。
DDR4チップは、DDR3チップの1.5Vと比較して1.2V以下で動作し[ 25 ] [ 26 ] 、毎秒20億回を超えるデータ転送が可能です。2013年までに、周波数は2133MHzで導入され、最大4266MHz [ 27 ]まで上昇し、電圧は1.05V [ 28 ]に低下すると予想されていました。
DDR4は内部プリフェッチ幅を再び2倍にせず、DDR3と同じ8nプリフェッチを使用する。 [ 29 ]そのため、データバスをビジー状態に保つために、複数のバンクからの読み出しをインターリーブする必要がある。
2009 年 2 月、サムスンは40 nm DRAM チップの検証を行いました。これは DDR4 開発に向けた「重要な一歩」と見なされました[ 30 ] 。2009年時点では、現在の DRAM チップは 50 nm プロセスへの移行が始まったばかりでした。[ 31 ] 2011 年 1 月、サムスンは 30 nm 2048 MB [ 8 ] DDR4 DRAM モジュールの完成とテスト開始を発表しました。これは1.2 V で最大帯域幅 2.13 Gbit/sを持ち、擬似オープンドレイン技術を使用し、同等の DDR3 モジュールよりも 40% 消費電力が少なくなっています。[ 32 ] [ 33 ]
2017年3月、JEDECはDDR5規格が開発中であることを発表したが[ 34 ]、DDR4の帯域幅を2倍にし、消費電力を削減し、2018年に規格を公開するという目標以外には詳細を明らかにしなかった。規格は2020年7月14日に公開された[ 35 ]。
これはDDR SDRAMの将来シリーズであり、2027年を目標としている。4つのメモリチャネルを備え、8,800~17,600 MT/sの速度と最大134.4 GB/sの帯域幅を持つ[ 36 ]。
DDR以外にも、SDR SDRAMの後継となるメモリ技術として、いくつかの提案があった。
RDRAMはDDRに対抗する独自の技術であった。しかし、比較的高価格であることと、高いレイテンシとDDRの64ビットチャネルに対して狭い16ビットデータチャネルに起因する性能の低さから、SDR SDRAMの後継者としての地位を勝ち取ることはできなかった。
SLDRAMは、より高い性能を誇り、RDRAMと競合しました。1990年代後半にSLDRAMコンソーシアムによって開発されました。SLDRAMコンソーシアムは、約20社の主要DRAMおよびコンピュータ業界メーカーで構成されていました。(SLDRAMコンソーシアムはSLDRAM Inc.として法人化され、その後Advanced Memory International, Inc.に社名を変更しました。)SLDRAMはオープンスタンダードであり、ライセンス料は不要でした。仕様では、200、300、または400MHz のクロック周波数で動作する64ビットバスが要求されていました。これは、すべての信号が同じライン上にあるため、複数のラインの同期時間を回避できることで実現されます。DDR SDRAMと同様に、SLDRAMはダブルポンプバスを使用しており、実効速度は400、[ 37 ] 600、[ 38 ]または800MT /sです。(1MT/s = 1000 2転送/秒)
SLDRAMは、11ビットのコマンドバス(10個のコマンドビットCA9:0と1つのコマンド開始フラグ線)を使用して、差動コマンドクロック(CCLK/CCLK#)の4つの連続エッジで40ビットのコマンドパケットを送信しました。SDRAMとは異なり、チップごとの選択信号はありませんでした。各チップはリセット時にIDが割り当てられ、コマンドにはそれを処理するチップのIDが含まれていました。データは、2つの差動データクロック(DCLK0/DCLK0#とDCLK1/DCLK1#)のいずれかを使用して、18ビット(チップごと)のデータバスを介して4ワードまたは8ワードのバーストで転送されました。標準のSDRAMとは異なり、クロックはデータソース(読み出し操作の場合はSLDRAMチップ)によって生成され、データと同じ方向に送信されるため、データスキューが大幅に低減されます。DCLKのソースが変更されたときに一時停止する必要がないように、各コマンドは使用するDCLKペアを指定しました。[ 39 ]
基本的な読み書きコマンドは(最初の単語のCA9から始まる)以下の通りであった。
個々のデバイスには8ビットのIDが割り当てられていました。コマンドで送信されるIDの9ビット目は、複数のデバイスをアドレス指定するために使用されました。2のべき乗のサイズに整列した任意のグループをアドレス指定できました。送信された最上位ビット(msbit)がセットされている場合、送信されたアドレスの最下位ビット0を含むすべての最下位ビットは、「これは自分宛てか?」という判断のために無視されました。(ID8ビットが実際にID0ビットよりも下位とみなされる場合、ユニキャストアドレスのマッチングはこのパターンの特殊なケースとなります。)
読み書きコマンドによってmsbitがクリアされた。
この仕様で注目すべき点として、バイト単位の書き込み有効化機能が欠落していた。これは、キャッシュとECCメモリを備えたシステム向けに設計されたもので、これらのシステムでは常にキャッシュラインの倍数単位で書き込みが行われるためである。
(CMD5が設定されている)追加コマンドは、データ転送なしで行を開閉したり、更新操作を実行したり、構成レジスタを読み書きしたり、その他のメンテナンス操作を実行したりしました。これらのコマンドのほとんどは、追加の4ビットのサブID(プライマリIDと同じ複数宛先エンコーディングを使用して5ビットとして送信)をサポートしており、並列接続されて常に同時に読み書きされるため同じプライマリIDが割り当てられたデバイスを区別するために使用できました。
様々なデバイスのタイミングパラメータを制御するために、多数の8ビット制御レジスタと32ビットステータスレジスタが用意されていた。
VCMはNECが設計した独自のSDRAMタイプでしたが、ライセンス料なしでオープンスタンダードとしてリリースされました。標準SDRAMとピン互換性がありますが、コマンドが異なります。VCMはRDRAMほど高価ではなかったため、この技術はRDRAMの潜在的な競合相手でした。仮想チャネルメモリ(VCM)モジュールは、標準SDRAMと機械的にも電気的にも互換性があるため、両方のサポートはメモリコントローラの機能のみに依存します。1990年代後半には、多くのPCノースブリッジチップセット(人気のVIA KX133やKT133など)がVCSDRAMをサポートしていました。
VCMは、DRAMバンクのセンスアンプ行とデータI/Oピンの間に、それぞれ1/4行の「セグメント」サイズを持つ16個の「チャネル」バッファからなるSRAMキャッシュを挿入します。VCSDRAM固有の「プリフェッチ」コマンドと「リストア」コマンドは、DRAMのセンスアンプ行とチャネルバッファ間でデータをコピーし、SDRAMの読み出しコマンドと書き込みコマンドに相当するコマンドは、アクセスするチャネル番号を指定します。そのため、読み出しと書き込みは、DRAMアレイの現在のアクティブ状態とは独立して実行でき、一度に4行分のDRAM行がアクセス可能になります。これは、標準的な2バンクSDRAMで可能な2行分のオープン状態よりも優れています。(実際には、一部の操作で使用される17番目の「ダミーチャネル」があります。)
VCSDRAMから読み出しを行うには、アクティブコマンドの後に、センスアンプアレイからチャネルSDRAMにデータをコピーするための「プリフェッチ」コマンドが必要です。このコマンドでは、バンク、2ビットの列アドレス(行のセグメントを選択するため)、および4ビットのチャネル番号を指定します。この処理が完了すると、チャネルバッファへの読み出しコマンドが継続されている間、DRAMアレイをプリチャージできます。書き込みを行うには、まずチャネルバッファ(通常はプリフェッチコマンドを使用して事前に初期化済み)にデータを書き込み、次にプリフェッチコマンドと同じパラメータを持つリストアコマンドによって、チャネルからセンスアンプアレイにデータセグメントをコピーします。
通常の SDRAM 書き込みはアクティブ (オープン) 行に対して実行する必要がありますが、VCSDRAM バンクは復元コマンドが発行されるときにプリチャージ (クローズ) されている必要があります。復元コマンドの直後にアクティブ コマンドを指定すると、DRAM 行が DRAM アレイへの書き込みを完了します。さらに、現在オープンしている行への書き込みを可能にする 17 番目の「ダミー チャネル」があります。このチャネルからは読み出しできませんが、センス アンプ アレイにプリフェッチ、書き込み、復元することができます。[ 40 ] [ 41 ]
通常、セグメントはプリフェッチされたメモリ アドレスと同じメモリ アドレスに復元されますが、チャネル バッファは、大きな整列されたメモリ ブロックの非常に効率的なコピーやクリアにも使用できます。(1/4 行セグメントの使用は、DRAM セルが SRAM セルよりも狭いという事実に基づいています。)SRAM ビットは、4 つの DRAM ビット幅になるように設計されており、それらがまたがる 4 つの DRAM ビットのいずれかに便利に接続されています。追加のコマンドは、2 つのセグメントを 2 つのチャネルにプリフェッチし、オプションのコマンドは、プリフェッチ、読み出し、およびプリチャージを組み合わせて、ランダム読み出しのオーバーヘッドを削減します。
上記はJEDEC規格に準拠したコマンドです。以前のチップはダミーチャネルやペアプリフェッチをサポートしておらず、プリチャージには異なるエンコーディングを使用していました。
図に示す13ビットアドレスバスは、最大128Mbitのデバイスに適しています [ 8 ] 。2つのバンクがあり、それぞれ8,192行と8,192列が含まれています。したがって、行アドレスは13ビット、セグメントアドレスは2ビット、セグメント内の2,048ビット(256バイト)から1バイトを選択するには8列アドレスビットが必要です。
同期グラフィックスRAM(SGRAM)は、グラフィックスアダプタ向けのSDRAMの特殊な形態です。ビデオカードに搭載されているテクスチャメモリやフレームバッファなど、グラフィックス関連のタスク向けに設計されています。ビットマスキング(他のビットプレーンに影響を与えずに特定のビットプレーンに書き込む)やブロック書き込み(メモリブロックを単一の色で塗りつぶす)などの機能が追加されています。VRAMやWRAMとは異なり、 SGRAMはシングルポートです。ただし、2つのメモリページを同時に開くことができ、他のビデオRAM技術のデュアルポート特性をシミュレートします。
SGRAMメモリとして知られている最も初期のものは、1994年に遡る 8Mbit [ 8 ]チップで、1994年11月に発表された日立HM5283206 [ 42 ]と、1994年12月に発表されたNEC μPD481850 [ 43 ]です。SGRAMを使用した最も初期の商用デバイスとして知られているのは、ソニーのPlayStation (PS)ビデオゲームコンソールで、1995年12月に発売された日本のSCPH-5000モデルから始まり、NEC μPD481850チップを使用しています。[ 44 ] [ 45 ]
バイト単位でアクセスできるSDRAMと比較して、SGRAMはブロック単位でアクセスできる。[ 46 ]
グラフィックスダブルデータレートSDRAM(GDDR SDRAM )は、グラフィックス処理ユニット(GPU)のメインメモリとして使用するために設計された特殊なDDR SDRAMの一種です。GDDR SDRAMは、DDR3などの一般的なDDR SDRAMとは異なりますが、いくつかのコア技術を共有しています。主な特徴は、DRAMコアとI/Oインターフェースの両方のクロック周波数が高く、GPUのメモリ帯域幅が広くなることです。2025年現在、GDDRにはGDDR2、GDDR3、GDDR4、GDDR5、GDDR5X、GDDR6、GDDR6X、GDDR6W、GDDR7の9世代が存在します。
GDDRは当初DDR SGRAMとして知られていました。 1998年にサムスン電子によって16Mビット[ 8 ]メモリチップとして商用化されました。[ 10 ]
高帯域幅メモリ(HBM)は、 Samsung、AMD、SK Hynixの3DスタックSDRAM用の高性能RAMインターフェースです。高性能グラフィックスアクセラレータやネットワークデバイスと組み合わせて使用するように設計されています。[ 47 ]最初のHBMメモリチップは、2013年にSK Hynixによって製造されました。[ 48 ]
最初の商用同期DRAMであるSamsung 16-Mbit KM48SL2000は、システム設計者が非同期システムから同期システムへ容易に移行できるシングルバンクアーキテクチャを採用しています。
{{cite web}}: CS1メンテナンス: アーカイブサービスは非推奨になりました (リンク)