(Translated by https://www.hiragana.jp/)
SDRAM - Wikipedia

SDRAM (Synchronous Dynamic Random Access Memory) は、システムバス同期どうきして動作どうさするDRAM (Dynamic Random Access Memory)。シンクロナスDRAMとも。初期しょきのDRAMのインタフェースは非同期ひどうきしきであり、制御せいぎょ入力にゅうりょく変化へんか反応はんのうして可能かのうかぎ素早すばや応答おうとうするようになっていた。SDRAMのインタフェースは同期どうきしきであり、制御せいぎょ入力にゅうりょく応答おうとうするまえクロック信号しんごうつため、コンピュータのシステムバスに同期どうきして動作どうさする。クロックははいってくる命令めいれいをパイプラインする内部ないぶ有限ゆうげん状態じょうたい機械きかい駆動くどうするのに使つかわれる。そのためSDRAMのチップは非同期ひどうきDRAMよりも複雑ふくざつ操作そうさパターンをつことができ、より高速こうそく動作どうさできる。

パイプラインとはこの場合ばあい、SDRAMのチップがまえ命令めいれい処理しょり完了かんりょうするまえあらたな命令めいれいけられることを意味いみする。パイプラインされたみでは、命令めいれいのすぐむべきデータがメモリアレイに到着とうちゃくするまえでもつぎ命令めいれいけられる。パイプラインされたしでは、要求ようきゅうしたデータは命令めいれいからある固定こていすうのクロックパルスが経過けいかしたのち出力しゅつりょくされ、そのあいだのサイクルのあいだべつ命令めいれいおくることができる。命令めいれいからデータが出力しゅつりょくされるまでの遅延ちえんを「レイテンシ」とび、SDRAMを選択せんたくするさい重要じゅうよう観点かんてんとなっている。

SDRAMはコンピュータひろ使つかわれている。元々もともとのSDRAMだけでなく、そこから発展はってんした世代せだいであるDDR (DDR1)、DDR2、DDR3、DDR4、DDR5が量産りょうさんされている。

 
8のSDRAMチップを PC100 DIMM パッケージに搭載とうさいしたもの

SDRAMのコンセプトは1970年代ねんだいにはすでられており、インテル初期しょきのプロセッサでも使つかわれていたが、ひろ使つかわれるようになったのは1993ねん以降いこうのことである。1993ねんサムスン電子でんしがSDRAMチップ KM48SL2000 を導入どうにゅう性能せいのうがよいため、コンピュータのしゅ記憶きおくとして使つかわれるDRAMは2000ねんまでにほぼすべてがSDRAMとなった。

SDRAMのレイテンシは元々もともと非同期ひどうきがたのDRAMにくらべて無視むしできるものではなかった。実際じっさい初期しょきのSDRAMは内部ないぶロジックが複雑ふくざつだったため、どう時期じきburst EDO RAMくらべて性能せいのうひくかった。SDRAM内部ないぶでのバッファリングはメモリの複数ふくすうバンクへの操作そうさインターリーブできることに由来ゆらいし、それによって実質じっしつてき帯域たいいきはば向上こうじょうさせている。

いまでは事実じじつじょうすべてのSDRAMが、電子でんし部品ぶひん相互そうご運用うんよう促進そくしんするためにオープン標準ひょうじゅん採用さいようすすめる電子でんし業界ぎょうかい団体だんたいJEDEC規格きかく準拠じゅんきょして生産せいさんされている。JEDECは1993ねん最初さいしょのSDRAMの規格きかくさだめ、そのDDRDDR2DDR3 SDRAM といったSDRAMの規格きかくさだめてきた。

SDRAMにはレジスタ派生はせいひんもあり、サーバワークステーションなどよりよいスケーラビリティを要求ようきゅうするシステムで使つかわれる。

2017ねん現在げんざい、パーソナルコンピュータのしゅ記憶きおくたんなるSDRAMが使つかわれることはなく、DDR3 SDRAMDDR4 SDRAM主流しゅりゅうである。

SDRAMのおもなメーカーとしては、サムスン電子でんしハイニックス半導体はんどうたいエルピーダメモリマイクロン・テクノロジなどがある。

DRAMの性能せいのう制限せいげんする要因よういんはいくつかある。なかでも重視じゅうしされるのがリードサイクル時間じかんで、オープン状態じょうたい(SDRAMのくだりデータをセンスアンプの配列はいれつ格納かくのうした状態じょうたい)のロウ(くだり)への連続れんぞく操作そうさあいだ時間じかんである。100MHzのSDRAMでは10nsだったその時間じかんが、DDR-400では5nsに短縮たんしゅくされたものの、DDR2-800 と DDR3-1600 の世代せだいでは相対そうたいてきにほとんど短縮たんしゅくされていない。しかし、インタフェース回路かいろ基本きほんリードレートよりもなんばいものはやさで操作そうさすることにより、帯域たいいきはば急激きゅうげき増大ぞうだいした。

もう1つの制限せいげん要因よういんCASレイテンシで、カラムアドレスを供給きょうきゅうしてから対応たいおうするデータがられるまでの時間じかんである。これも最近さいきんの DDR SDRAM のすう世代せだいとおして 10-15ns と相対そうたいてき一定いっていとなっている。

実装じっそうにおいてはCASレイテンシは、SDRAMのモードレジスタをとおしてクロックサイクルすうかたちでプログラム可能かのうであり、DRAMコントローラが期待きたいする設定せっていする。任意にんいをプログラム可能かのうだが、あまりにちいさい設定せっていするとSDRAMはまさしく動作どうさできない。クロックレートがたかいと、実用じつよう可能かのうなCASレイテンシのクロックサイクルすう増大ぞうだいする。10-15ns という時間じかんは、200MHzの DDR-400 SDRAM では 2-3サイクル (CL2-3)、DDR2-800 では CL4-6、DDR3-1600 では CL8-12 となる。クロックサイクルがおそければ、当然とうぜんながらCASレイテンシのサイクルすうちいさくなる。

SDRAMモジュールにはそれぞれのタイミング仕様しようがあり、そのモジュールで使つかっているチップ自体じたいのそれよりもおそいことがある。100MHz SDRAMチップが登場とうじょうしたころ、100MHz対応たいおうしょうしたモジュールはそのクロックレートでは確実かくじつ動作どうさできないことがあった。そのためインテルは PC100 規格きかく策定さくていし、100MHzで安定あんてい動作どうさできるメモリモジュールを生産せいさんするためのガイドラインと要求ようきゅう仕様しようさだめた。この規格きかくひろ影響えいきょうおよぼし、PC100 は100MHzのSDRAMモジュールを用語ようごとなり、"PC" ののち数字すうじをつけた名称めいしょうひろ使つかわれるようになった(その数字すうじ意味いみ変化へんかしている)。

 
Sound Blaster X-Fi Fatal1ty Pro搭載とうさいされた64MBのメモリ。マイクロンせいの 48LC32M8A2-75 C というSDRAMチップ(8ビットはば)を133MHz (7.5ns) で駆動くどう [1]

元々もともとたんにSDRAMとばれていた SDR(シングルデータレート)SDRAMは、クロックサイクルたり1つのコマンドをけつけるか、1ワードのデータを転送てんそうできる。典型てんけいてきなクロック周波数しゅうはすうは100MHzと133MHzである。様々さまざまなデータバスはばのチップがあるが(4ビット、8ビット、16ビットなど)、一般いっぱんに168ピンのDIMMかたちでモジュールされ、64ビット(ECCなし)または72ビット(ECC)をいちきできる。

データバスの使つかかた複雑ふくざつで、そのため複雑ふくざつなDRAM制御せいぎょ回路かいろ必要ひつようとする。たとえば、みのさいにはライトコマンドとおなじサイクルでむべきデータを提示ていじしなければならないが、操作そうさではリードコマンドの2または3サイクルにデータが出力しゅつりょくされる。そのため、DRAMコントローラはリードとライトが同時どうじにデータバスを必要ひつようとしないように調整ちょうせいしなければならない。

典型てんけいてきな SDR SDRAM のクロックレートは 66MHz、100MHz、133MHz である(それぞれ、15ns、10ns、7.5ns)。

制御せいぎょ信号しんごう

編集へんしゅう

すべてのコマンドはクロック信号しんごうがりのタイミングでとられる。クロックにくわえて6つの制御せいぎょ信号しんごうがあり、たいていは論理ろんりで、クロックのがりのタイミングでサンプリングされる。

CKE (Clock Enable)
この信号しんごうがローレベルのとき、チップはクロックが停止ていししているかのように動作どうさする。コマンドはまった解釈かいしゃくされず、コマンドレイテンシ時間じかん経過けいかしない。制御せいぎょせん状態じょうたい考慮こうりょされない。この信号しんごう効力こうりょく実際じっさいには1クロックサイクルだけ遅延ちえんされる。すなわち現在げんざいのクロックサイクルは通常つうじょうどお進行しんこうするが、つぎのクロックサイクルは無視むしされ、CKE入力にゅうりょくのチェックだけがおこなわれる。CKEがハイレベルとなったクロックサイクルがりの時点じてんから通常つうじょう処理しょり続行ぞっこうされる。
いかえれば、すべての処理しょりはマスクされたクロックのがりに対応たいおうして進行しんこうする。マスクされたクロックとは、クロック入力にゅうりょく直前ちょくぜんのクロック入力にゅうりょくがりのCKE信号しんごう状態じょうたい論理ろんりせきである。
/CS (Chip Select)
この信号しんごうがハイのとき、チップはすべての入力にゅうりょく(CKE以外いがい)を無視むしし、NOPコマンドをったかのように動作どうさする。
DQM (Data Mask)
略号りゃくごうに"Q"という文字もじがあるのは、データせんを"DQ"せんぶことがあるためである。この信号しんごうがハイのとき、それらの信号しんごうはデータI/Oを抑制よくせいする。みデータをともな場合ばあい、そのデータは実際じっさいにはDRAMにまれない。リードサイクルのまえに2サイクルのあいだハイにした場合ばあい、リードデータはチップから出力しゅつりょくされない。DQMせんは x16のメモリチップまたはDIMMの8ビットごとに1つある。
/RAS (Row Address Strobe)
名前なまえに「ストローブ」とあるが、たんなるコマンドビットとして機能きのうする。/CAS および /WE とわせて8種類しゅるいのコマンドを指定していする。
/CAS (Column Address Strobe)
名前なまえに「ストローブ」とあるが、たんなるコマンドビットとして機能きのうする。/RAS および /WE とわせて8種類しゅるいのコマンドを指定していする。
/WE (Write enable)
/RAS および /CAS とわせて、8種類しゅるいのコマンドを指定していする。一般いっぱんけいコマンドとけいコマンドを区別くべつする信号しんごうである。

SDRAMデバイスは内部ないぶが2または4独立どくりつしたバンクにけられている。バンクアドレス入力にゅうりょくが1つ以上いじょうあり(BA0、BA1)、コマンドがどのバンクにたいするものかを選択せんたくするようになっている。

コマンドのおおくはアドレス入力にゅうりょくピンでしめされるアドレスを使つかう。アドレスを使つかわない一部いちぶのコマンドやカラムアドレスをしめさない一部いちぶのコマンドでもA10を使つかってコマンドの種別しゅべつしめす。

コマンドをつぎひょうしめす。

/CS /RAS /CAS /WE BAn A10 An コマンド
H x x x x x x コマンド抑制よくせいなにもしない)
L H H H x x x なにもしない(NOP)
L H H L x x x バースト終了しゅうりょう: 実行じっこうちゅうのバーストリードまたはバーストライトを停止ていし
L H L H バンク L カラム リード: 現在げんざいアクティブなロウからデータをバーストです。
L H L H バンク H カラム 自動じどうプリチャージきリード: リードとおなじことをおこない、完了かんりょうにプリチャージする(ロウをじる)。
L H L L バンク L カラム ライト: 現在げんざいアクティブなロウにデータをバーストでむ。
L H L L バンク H カラム 自動じどうプリチャージきライト: ライトとおなじことをおこない、完了かんりょうにプリチャージする(ロウをじる)。
L L H H バンク ロウ アクティブ(活性かっせい): リードまたはライトコマンドのためにロウをひらく。
L L H L バンク L x プリチャージ: 選択せんたくしたバンクの現在げんざいのロウを活性かっせいする。
L L H L x H x ぜんプリチャージ: ぜんバンクの現在げんざいのロウを活性かっせいする。
L L L H x x x オートリフレッシュ: 内部ないぶカウンタを使つかい、かくバンクの1つのロウをリフレッシュする。ぜんバンクをプリチャージしなければならない。
L L L L 0 0 モード モードレジスタのロード: DRAMチップを設定せっていするため、A0からA9までをロードする。もっと重要じゅうよう設定せっていはCASレイテンシ(2または3サイクル)とバーストちょう(1/2/4/8サイクル)である。

DDRx SDRAM でも基本きほんてきなコマンドはおなじであり、若干じゃっかん追加ついかがある。追加ついかのモードレジスタは、バンクアドレスビットを使つかって識別しきべつされ、3番目ばんめのバンクアドレスビットが追加ついかされている。

512MB SDRAM DIMM(正確せいかくには 512MiB = 512 × 10242 bytes = 536,870,912 bytes)は8か9のSDRAMチップで構成こうせいされ、それぞれのチップが512Mbit格納かくのうし、DIMMの64ビットまたは72ビットのワードはばのうちの8ビットをかくチップが分担ぶんたんしている。典型てんけいてきな512Mbit SDRAMチップの内部ないぶには4つの独立どくりつした16MBメモリバンクがある。それぞれのバンクは、16,384ビットのロウ(くだり)が8,192ならんだアレイになっている。バンクはアイドル状態じょうたい、アクティブ状態じょうたい、またはそれらのあいだ遷移せんいちゅう状態じょうたいのいずれかである。

アクティブ・コマンドはアイドル状態じょうたいのバンクを活性かっせいする。2ビットのバンクアドレス (BA0–BA1) でバンクをしめし、13ビットのロウアドレス (A0–A12) でロウをしめし、バンクのつ16,384のカラム(れつ)のセンスアンプにそのロウの内容ないようおくむ。この操作そうさを「ロウをひらく」とぶ。この操作そうさ副作用ふくさようとして、そのロウないのメモリセルのリフレッシュがおこなわれる。

ロウが活性かっせいされひらかれる(オープン状態じょうたいになる)と、リード・コマンドとライト・コマンドをそのロウにたいして実行じっこう可能かのうとなる。活性かっせい必要ひつよう時間じかんすうクロックであり、それを「row-to-column 遅延ちえん」または tRCDび、アクティブ・コマンド発行はっこうにリードまたはライトを発行はっこう可能かのうとなるまでの時間じかんし、通常つうじょうクロックサイクルすうまるめたかたちしめす。それぞれのバンクは完全かんぜん独立どくりつしているため、このウェイトサイクルのあいだでものバンクにたいしてコマンドを発行はっこうできる。

リード・コマンドとライト・コマンドはカラムアドレスを必要ひつようとする。ひとつのチップはいちに8ビットのデータにアクセスするので、カラムアドレスは2048種類しゅるいあり(16384÷8=2048)、アドレスせんは11ほんだけ必要ひつようとなる(A0-A9、A11)。

リード・コマンドを発行はっこうすると、SDRAMは2または3クロックサイクル(CASレイテンシの設定せっていによる)のクロックがりの時点じてんでDQせん対応たいおうする出力しゅつりょくデータを出力しゅつりょくする。それにつづくワードのバーストがつづきクロック信号しんごうがりにあわせて出力しゅつりょくされる。

ライト・コマンドはむべきデータをともない、クロック信号しんごうがりの時点じてんでDQせんをそのデータで駆動くどうする。ライト・コマンドでDQせんにデータを伝送でんそうするさいにSDRAMがリード・コマンドのデータを同時どうじ出力しゅつりょくしないようにしなければならない。これはメモリコントローラの役目やくめである。これは通常つうじょうリード・バーストの完了かんりょうわせるか、リード・バーストを停止ていしするか、DQM制御せいぎょせん使つかうことでなされる。

メモリコントローラがべつのロウにアクセスする必要ひつようしょうじると、まずそのロウの所属しょぞくするバンクのセンスアンプをアイドル状態じょうたいもど必要ひつようがあり、そのつぎのロウにアクセスする準備じゅんびをする。これを「プリチャージ」としょうし、「ロウをじる」とぶ。プリチャージは独立どくりつしたコマンドとして実行じっこうすることもあるし、リードまたはライトのさい自動的じどうてきおこなうこともある。プリチャージにも時間じかんがかかり、ロウ・プリチャージ遅延ちえんまたは tRPぶ。指定していしたバンクが完全かんぜんにアイドル状態じょうたいとなるまでにかかる時間じかんであり、そのつぎのアクティブ・コマンドをけられるようになる。

ロウを活性かっせいすると副作用ふくさようとしてリフレッシュがおこなわれるが、それにも時間じかんがかかる。これを最小さいしょうロウアクセス時間じかん tRASび、あるロウをアクティブ・コマンドでひらいたのちからプリチャージ・コマンドでじることができるようになるまでのあいだしょうじる遅延ちえん時間じかんとしてあらわれる(いいかえると、アクティブ・コマンドとプリチャージ・コマンドのあいだでカラムアドレスをすこと以外いがいなにもしなくても遅延ちえん時間じかん発生はっせいする)。しかし、通常つうじょうアクティブ・コマンドののちにはリードまたはライトをおこなうので、性能せいのうにはほとんど影響えいきょうおよぼさない。リード・ライトの動作どうさほうが tRAS よりもながいからである。

コマンドによる対話たいわ

編集へんしゅう

どのような状態じょうたいでもNOPコマンドはつねけられる。

ぜんバンクがアイドル状態じょうたいのとき、以下いかのコマンドが発行はっこうできる。

  • モードレジスタのロード・コマンド:モードレジスタの変更へんこう効力こうりょくつまである遅延ちえん時間じかんがかかる。
  • オートリフレッシュ・コマンド:チップがアイドル状態じょうたいもどるまでにリフレッシュサイクル時間じかん tRFC がかかる。この時間じかん一般いっぱんに tRCD+tRPおなじである。

ぜんバンクではなく、対話たいわしたい特定とくていのバンクがアイドル状態じょうたいのときに発行はっこうできるコマンド

  • アクティブ・コマンド:上述じょうじゅつとおり、アクティブ・コマンドはロウが完全かんぜんひらいてリードまたはライト・コマンドをけつけ可能かのうになるまで tRCD という時間じかんようする。

バンクがひらいているとき(オープン状態じょうたいのとき)、4つのコマンドをけられる。

  • リード・コマンド
  • ライト・コマンド
  • バースト終了しゅうりょうコマンド
  • プリチャージ・コマンド

リード・コマンドはリードバースト(連続れんぞく読出)を開始かいしする。一方いっぽう、ライト・コマンドはライトバースト(連続れんぞく書込かきこめ)を開始かいしする。そして、つづくコマンドによってバーストを中断ちゅうだんできる。

リードバースト

編集へんしゅう

「リード・コマンド」「バースト終了しゅうりょうコマンド」「プリチャージ・コマンド」は、リードバースト開始かいし任意にんい時点じてん発行はっこうでき、設定せっていされたCASレイテンシにリードバーストにむことができる。

リード・コマンドをサイクル0で発行はっこうし、べつのリード・コマンドをサイクル2で発行はっこうしたとする。CASレイテンシが3の場合ばあい最初さいしょのリード・コマンドはデータのバースト出力しゅつりょくをサイクル3および4で開始かいしし、2つのリード・コマンドの処理しょりはサイクル5から開始かいしされる。

以上いじょうをまとめると以下いかのようになる。

サイクル0 : リード・コマンド(1つ
サイクル1 :
サイクル2 : リード・コマンド(2つ
サイクル3 : リードバースト開始かいし
サイクル4 : (ここでリードバースト開始かいしになることもある)
サイクル5 : 2つのリード・コマンドの処理しょり開始かいし

サイクル2で発行はっこうしたコマンドがバースト終了しゅうりょうまたはアクティブなバンクのプリチャージだった場合ばあい、サイクル5までのあいだ出力しゅつりょく生成せいせいされない。

リードバーストみは任意にんいのアクティブなバンクできうるが、プリチャージ・コマンドがリードバーストにむのは、それがおなじバンクにたいするものかぜんバンクにたいするものだった場合ばあいだけである。ことなるバンクへのプリチャージ・コマンドはリードバーストにまない。

ライト・コマンドでリードバーストにむことも可能かのうだが、ややむずかしい。ライトのさいにはDQせんでSDRAMにむデータをしめ必要ひつようがあるため、メモリコントローラはDQM信号しんごう使つかってSDRAMの出力しゅつりょく抑制よくせいする必要ひつようがある。DQMによるリードデータ抑制よくせい効果こうかは2サイクル遅延ちえんするが、ライトデータへの効果こうか即座そくざあらわれる。したがってライト・コマンドのすくなくとも2サイクルまえにDQMをアサートしてリードデータをマスクする必要ひつようがあるが、ライト・コマンドを発行はっこうする時点じてんにはDQMをげておく必要ひつようがある。そのあいだはわずか2サイクルであり、微妙びみょうなタイミング調整ちょうせい必要ひつようとする。クロック周波数しゅうはすうたか場合ばあいは3サイクルを必要ひつようとすることもある。

自動じどうプリチャージきのリード・コマンドの場合ばあい、プリチャージはコマンドにむのとおなじサイクルで開始かいしされる。

バースト要求ようきゅう

編集へんしゅう

最近さいきんキャッシュマイクロプロセッサは、一般いっぱんキャッシュライン単位たんいでメモリにアクセスする。キャッシュラインが64バイト(512bit)の場合ばあい、64ビットのDIMMに8かい連続れんぞくアクセスする必要ひつようがある。64ビットのDIMMが8つのSDRAMチップで構成こうせいされている場合ばあい、1つのSDRAMチップは8bit単位たんいで8かい連続れんぞくアクセスされることになる。それを1かいのリードまたはライト・コマンドで開始かいしするよう設定せっていできる。すなわち、モードレジスタで8ワードのバースト転送てんそう設定せっていすればよい(BL=8、BLとは「バーストちょう」)。

キャッシュラインのフェッチは一般いっぱん特定とくていアドレスからのリードで開始かいしされ、SDRAMは「クリティカルワード」(キャッシュラインの先頭せんとう位置いちしないワード)を最初さいしょ転送てんそうすることを可能かのうとしている。ここでいう「ワード」のながさは、SDRAMチップまたはDIMMのデータ出力しゅつりょくはばであり、典型てんけいてきなDIMMでは64ビットである。SDRAMチップは、キャッシュラインないのこりのワードの転送てんそう順序じゅんじょを2種類しゅるいサポートする。

バーストはつねにバーストちょう (BL) でアライン(整列せいれつ)されたブロック(キャッシュラインに対応たいおう)にアクセスし、ブロックの開始かいしアドレスはBLの整数せいすうばい位置いちとなる。たとえば4ワード・バーストでカラムアドレス4から7のいずれかにアクセスしようとすると、4-7の4ワードがバースト転送てんそうされる。ブロックの先頭せんとうから転送てんそう要求ようきゅうした場合ばあい順番じゅんばん転送てんそうされるだけである。しかし、ブロックの途中とちゅうのアドレスから転送てんそう要求ようきゅうすると、その転送てんそう順序じゅんじょ要求ようきゅうしたアドレスに依存いぞんし、「シーケンシャル」または「インターリーブ」という2つのバースト種別しゅべつのオプションで設定せっていされる。一般いっぱんにメモリコントローラはどちらか一方いっぽうをサポートしている。

バーストちょうが1または2の場合ばあい、バースト種別しゅべつ問題もんだいとはならない。バーストちょうが1なら、要求ようきゅうされたワードにアクセスするだけである。バーストちょうが2なら、まず要求ようきゅうされたアドレスのワードにアクセスし、つぎにブロックを構成こうせいするもう1つのワードにアクセスする。指定していしたアドレスが偶数ぐうすうなら2番目ばんめにアクセスするのはそのつぎのワードであり、奇数きすうなら1つまえのワードということになる。

シーケンシャルがたのバーストモードでは、指定していされたアドレスを起点きてんとしてアドレスがおおきくなるじゅんにアクセスしていき、ブロック境界きょうかいまでるとブロック先頭せんとうもどってじゅんにアクセスしていく。たとえばバーストちょうが4の場合ばあい要求ようきゅうしたカラムアドレスが5だとすると、アクセスするワードの順序じゅんじょは 5-6-7-4 となる。バーストちょうが8の場合ばあい、アクセス順序じゅんじょは 5-6-7-0-1-2-3-4 となる。これはカラムアドレスにカウンタの加算かさんすることでなされ、バーストちょうえたときにキャリーを無視むしすることでこのような順序じゅんじょとなる。

インターリーブがたのバーストモードでは、カウンタと指定していされたアドレスのあいだ排他はいたてき論理ろんり操作そうさをおこなってアドレスを計算けいさんする。バーストちょうが4ワードの場合ばあいおなじようにアドレス5で開始かいしすると、アクセス順序じゅんじょは 5-4-7-6 となる。同様どうように8ワードバーストなら 5-4-7-6-1-0-3-2 となる。人間にんげんにはこのような順序じゅんじょわかりにくいが、ハードウェアでの実装じっそう容易よういであり、インテルせいマイクロプロセッサがこの方式ほうしきをよく採用さいようしている(どのような順番じゅんばんでもブロックないすべ転送てんそうされればよい)。

要求ようきゅうされたカラムアドレスがブロック(キャッシュラインに対応たいおう)の先頭せんとうだった場合ばあい、どちらのモードであってもおなじ 0-1-2-3-4-5-6-7 という整列せいれつした順序じゅんじょでデータをかえす。2つのモードのちがいが問題もんだいとなるのは、クリティカルワードを最初さいしょとしてキャッシュラインをフェッチする場合ばあいである。

モードレジスタ

編集へんしゅう

シングルデータレートのSDRAMには、10ビットのプログラム可能かのうなモードレジスタがある。DDR SDRAM の規格きかくではモードレジスタがさらに追加ついかされており、バンクアドレスピンを使つかって指定していできる。SDR SDRAM の場合ばあい、バンクアドレスピンや A10 以上いじょうのアドレスせん無視むしされるが、モードレジスタにさいはそれらを0にしておくべきである。

モードレジスタのロードをおこなうサイクルでは、アドレスせん A0 から A9 でモードレジスタの内容ないよう指定していし、それぞれ M0 から M9 のビットに対応たいおうしている。

  1. M9: ライトバーストモード。0の場合ばあい、ライト・コマンドでもリードバーストのながさとモードでバースト転送てんそうする。1の場合ばあいすべてのライトはバースト転送てんそうしない(1ワードのみのみとなる)。
  2. M8, M7: 予約よやくされている。つねに 00 とする。
  3. M6, M5, M4: CASレイテンシ。一般いっぱんに 010 (CL2) と 011 (CL3) のみが妥当だとうである。リード・コマンドからデータ出力しゅつりょくまでのサイクルすう指定していする。チップにはナノびょう単位たんい基本きほんてき限界げんかい存在そんざいする。初期しょきさいにメモリコントローラがその限界げんかい考慮こうりょして適切てきせつなサイクルすう変換へんかんして設定せっていしなければならない。
  4. M3: バースト種別しゅべつ。0の場合ばあいはシーケンシャルがたのバースト順序じゅんじょ、1の場合ばあいはインターリーブがたのバースト順序じゅんじょとなる。
  5. M2, M1, M0: バーストちょう。000、001、010、011 がそれぞれ1ワード、2ワード、4ワード、8ワードに対応たいおうする。リード・コマンド(M9が0ならライトも)は、指定していされたながさでアクセスするが、バースト終了しゅうりょうまたはのコマンドでむこともできる。111と設定せっていした場合ばあい、ロウ全体ぜんたいのバースト転送てんそうとなる。バーストはむまでつづく。ロウ全体ぜんたいのバーストはシーケンシャルモードのときのみ可能かのうである。

オートリフレッシュ

編集へんしゅう

それぞれのバンクのそれぞれのロウをひらいてじる(アクティブとプリチャージ)ことで、メモリセルをリフレッシュできる。しかし、メモリコントローラを単純たんじゅんするため、SDRAMチップには「オートリフレッシュ」コマンドがあり、それぞれのバンクの1つのロウにたいして同時どうじにリフレッシュをおこなうことができる。SDRAMは内部ないぶにカウンタをっていて、バンクないのロウを順番じゅんばんにオートリフレッシュすることができる。メモリコントローラはリフレッシュインターバル(一般いっぱんに tREF = 64 ms)ごとにロウのかず(これまで説明せつめいしてきたれいでは4096)をカバーするのに十分じゅうぶんなだけのオートリフレッシュ・コマンドを発行はっこうすればよい(このれいだと、64msないに4096かい発行はっこうするということ)。このコマンドを発行はっこうするさいにはぜんバンクがアイドル状態じょうたいでなければならない。

しょう電力でんりょくモード

編集へんしゅう

CKE (clock enable) 信号しんごう使つかうと、SDRAMのクロックを事実じじつじょう停止ていしすることができる。CKE信号しんごうはクロック波形はけいがりごとにサンプリングされ、ローレベルであればつぎのクロックのがりが無視むしされ、CKE信号しんごうのチェック以外いがい処理しょりおこなわれなくなる。CKEをローレベルにしているあいだはクロック周波数しゅうはすう変更へんこうしたり、クロックを完全かんぜんめたりすることも可能かのうである。

CKEがローレベルになるとSDRAMは処理しょりをフリーズさせ、CKEがハイレベルになるまでその状態じょうたいたもつ。

CKEがローレベルとなってSDRAMがアイドル状態じょうたいなら(ぜんバンクがプリチャージされ、コマンドを処理しょりちゅうでない場合ばあい)、SDRAMは自動的じどうてきはぶけ電力でんりょくモードとなり、CKEがハイレベルになるまで最小限さいしょうげん電力でんりょくしか消費しょうひしない状態じょうたいとなる。ただし、リフレッシュインターバル tREF 以上いじょうにこのモードをつづけることはできない(メモリの内容ないよううしなわれてしまうため)。この状態じょうたいでクロックを完全かんぜんめれば、さらに電力でんりょく消費しょうひおさえることができる。

また、CKEをローレベルにしたときにオートリフレッシュ・コマンドをSDRAMにおくれば、SDRAMはセルフリフレッシュ・モードとなる。この場合ばあいはぶけ電力でんりょく状態じょうたいとなるが、SDRAMは内部ないぶのタイマを使つかって必要ひつようなリフレッシュサイクルを生成せいせいする。この場合ばあいもクロック供給きょうきゅうめることができる。上述じょうじゅつしょう電力でんりょくモードよりも電力でんりょく消費しょうひ若干じゃっかんおおいが、メモリコントローラを完全かんぜん停止ていしさせることができ、システム全体ぜんたいとしてはこちらのほうしょう電力でんりょくとなる。

バッテリ駆動くどう機器ききけにさらなるしょう電力でんりょくオプションが用意よういされている。

  1. 温度おんど対応たいおうがたリフレッシュ : チップじょう温度おんどセンサが温度おんど測定そくていし、低温ていおんになるほどセルフリフレッシュでのリフレッシュレートを低減ていげんさせる。
  2. 選択せんたくてきリフレッシュ : DRAMアレイの一部いちぶだけでセルフリフレッシュをおこなう。どの部分ぶぶんをリフレッシュするかは追加ついかのモードレジスタで設定せっていする。
  3. DPD (deep power down) モード : モバイルDDR (LPDDR) やLPDDR2が実装じっそうしている。メモリ内容ないよう無効むこうして、通常つうじょう状態じょうたい復帰ふっきするときにさい設定せってい必要ひつようとする。CKEをローレベルにするさいにバースト終了しゅうりょうコマンドを発行はっこうすることでDPDモードとなる。

SDR SDRAM(詳細しょうさい前述ぜんじゅつ)は、1クロックサイクルのかたエッジでの転送てんそうである(シングルデータレート(SDR))。

その提案ていあん

編集へんしゅう

SDR SDRAMの後継こうけいとしてDDR SDRAMが普及ふきゅうするまでのあいだに、多少たしょう技術ぎじゅつてき政治せいじてき混沌こんとんがあった。#成功せいこうしなかった後継こうけいテクノロジーふし参照さんしょう

DRAMのアクセスレイテンシはDRAMアレイによって基本きほんてき制限せいげんされているが、内部ないぶではすうせんビットのロウをいちすので、帯域たいいきはばはさらにたかめられる可能かのうせいっている。ユーザーにたいしてさらなる帯域たいいきはば提供ていきょうするため、ダブルデータレートというインタフェースが開発かいはつされた。コマンドを1サイクルに1つけるのは従来じゅうらいおなじだが、リードとライトは1クロックサイクルに2ワードのデータをあつかう。またSDRインタフェースでのタイミングにいくつかマイナーな変更へんこうくわえ、電源でんげん電圧でんあつを3.3Vから2.5Vにげた。結果けっかとして DDR SDRAM は SDR SDRAM との互換ごかんせいたもっていない。

DDR SDRAM(その製品せいひん区別くべつするため "DDR1" とされることもある)は最小さいしょう単位たんいばいにし、1かいのアクセスですくなくとも2ワードを参照さんしょうするようになった。

DDR SDRAM の典型てんけいてきなクロック周波数しゅうはすうは 133MHz、166MHz、200MHz(それぞれサイクル時間じかんは 7.5ns、6ns、5ns)で、それぞれ DDR-266、DDR-333、DDR-400 とばれる。対応たいおうする184ピンのDIMMはそれぞれ PC-2100、PC-2700、PC-3200 とばれる。さらに高性能こうせいのうな DDR-550 (PC-4400) までそれなりの価格かかく入手にゅうしゅ可能かのうである。

DDR2 SDRAM は DDR SDRAM とよくているが、最小さいしょう単位たんいをさらにばいにし、4ワード単位たんいとしている。また、高速こうそく操作そうさ実現じつげんするためにバスプロトコルを単純たんじゅんしている。とくにバースト終了しゅうりょうコマンドを削除さくじょした。それによって内部ないぶのRAM操作そうさのクロック周波数しゅうはすうげずにSDRAMのバスレートをばいにしている。そのわり、内部ないぶ操作そうさはもともとのSDRAMの4ばい単位たんいおこなっている。またチップのメモリ容量ようりょう増大ぞうだい対応たいおうするため、バンクすうを8にできるようあらたなバンクアドレスピン (BA2) を追加ついかしている。

DDR2 SDRAM の典型てんけいてきなクロック周波数しゅうはすうは 200MHz、266MHz、333MHz、400MHz(それぞれ 5ns、3.75ns、3ns、2.5ns)で、それぞれ DDR2-400、DDR2-533、DDR2-667、DDR2-800 とばれる。対応たいおうする240ピンのDIMMは、PC2-3200からPC2-6400までの名称めいしょうである。最近さいきんでは533MHzのものもあり DDR2-1066 とばれ、対応たいおうするDIMMは PC2-8500(メーカーによっては PC2-8600 とも)とばれている。さらに高性能こうせいのうな DDR2-1250 (PC2-10000) までそれなりの価格かかく入手にゅうしゅ可能かのうである。

内部ないぶ操作そうさは2ぶんの1のクロックレートでおこなわれるため、DDR2-400(内部ないぶクロック周波数しゅうはすうは100MHz)はDDR-400(内部ないぶクロック周波数しゅうはすうは200MHz)よりも各種かくしゅレイテンシがおおきい。

DDR3でも同様どうよう進化しんか傾向けいこう継続けいぞくされ、きの最小さいしょう単位たんい連続れんぞくする8ワードとばいになった。これによって内部ないぶクロックレートを変更へんこうせずに外部がいぶバスの周波数しゅうはすう帯域たいいきはば倍増ばいぞうさせることが可能かのうになった。毎秒まいびょう800Mから1600Mかい転送てんそう実現じつげんするため(400-800MHzのクロックの両方りょうほうのエッジで転送てんそう)、内部ないぶのメモリアレイでは毎秒まいびょう100Mから200Mかいのフェッチを実行じっこうする。

この場合ばあい問題もんだいレイテンシ相対そうたいてき増大ぞうだいである。DDR SDRAM 全般ぜんぱんえることだが、コマンドは依然いぜんとしてクロックサイクルのがりに1かいだけ発行はっこうできるだけで、通常つうじょうわれる転送てんそう速度そくど半分はんぶん速度そくどである。おなじ100MHzでメモリセルがうごいている、DDR3-800のCASレイテンシは 8/(400MHz) = 20ns であり、PC100の SDR SDRAM の CAS2 のレイテンシとまった同一どういつである。メモリセルのクロック周波数しゅうはすうはDDR以降いこう、133MHz〜266MHzが商品しょうひん中心ちゅうしんであり、クロック周波数しゅうはすうびていなく、1クロックで取得しゅとくできるビットすうが2ばいずつえているだけである。この傾向けいこうはDDR4でもつづ予定よてい

DDR3メモリチップは2007ねん後半こうはん出荷しゅっか開始かいしされ[2]、2008ねん以降いこう徐々じょじょ生産せいさんりょうびている[3][4]当初とうしょのクロック周波数しゅうはすうは400MHzと533MHzで、それぞれ DDR3-800 と DDR3-1066(DIMMモジュールは PC3-6400 と PC3-8500)とばれていたが、いまでは DDR3-1333 と DDR3-1600(DIMMモジュールは PC3-10600 と PC3-12800)が一般いっぱんてきとなっている[5]。さらに高性能こうせいのうな DDR3-2200 までそれなりの価格かかく入手にゅうしゅ可能かのうである[6]

DDR3 SDRAM後継こうけいとされているのが DDR4 SDRAM である。2008ねんサンフランシスコ開催かいさいされたインテル・デベロッパー・フォーラムあきらかにされ、当初とうしょ2012ねんまでのリリースが期待きたいされていた[7]いまは、サーバーけが2013ねん、PCけが2015ねんのリリースが期待きたいされている[8][9]。DDR以降いこう、3〜5ねんで2ばい高速こうそくをしていたメモリの転送てんそう速度そくどびが鈍化どんかするかたちとなる。

転送てんそう能力のうりょくは2.133GT/s(DDR4-2133, 133MHz, 17.066GB/s)のものが最初さいしょ登場とうじょうし、最終さいしゅうてきに4.266GT/s(DDR4-4266, 266MHz, 34.133GB/s) まで向上こうじょうすると予測よそくされていて[10]、DDR3の2ばいとなる。メモリクロックはDDR〜DDR3同様どうよう、133MHz〜266MHzあたりが中心ちゅうしんとなる。また、電源でんげん電圧でんあつはDDR3の1.5Vにたいして1.2V以下いか予定よていされており[11][12]、1.0Vまでげられると予測よそくされている[13]

2009ねん2がつサムスン電子でんしはDDR4開発かいはつ重要じゅうようなステップとして 40nmルールのDRAMチップの試作しさく検証けんしょうおこなった[14]。2009ねん時点じてん一般いっぱん製造せいぞうされているDRAMチップは50nmルールに移行いこうしつつある状態じょうたいだった[15]

2011ねん2がつ、サムスン電子でんしは2GBの DDR4 SDRAM モジュールの開発かいはつ発表はっぴょうした。電源でんげん電圧でんあつ 1.2V での最大さいだい帯域たいいきはばは 2.133Gbps で、30nmプロセス技術ぎじゅつで「擬似ぎじオープンドレイン」テクノロジーを採用さいよう同等どうとうのDDR3モジュールと比較ひかくすると消費しょうひ電力でんりょくを40%おさえている[16] [17]

2014ねん6がつ下旬げじゅん販売はんばい開始かいしIntelの「Haswell-E」およびX99チップセットが対応たいおうする

2015ねん9がつ Intelがだい6世代せだいCoreプロセッサを発表はっぴょういままでハイエンドモデルでのみ対応たいおうしていたDDR4がメインスリームけCPUで対応たいおうした。

DDR4 SDRAM比較ひかくして、DDR5は消費しょうひ電力でんりょく削減さくげんしつつ帯域たいいきはばが2ばいになる[18]2020ねん7がつ14にち標準ひょうじゅん規格きかく発表はっぴょうされた[19][20]

仕様しよう比較ひかく

編集へんしゅう
種類しゅるい 仕様しよう
SDRAM Vcc = 3.3 V
信号しんごう: LVTTL
DDR1 アクセスは2ワード単位たんい以上いじょう
ダブルデータレート
Vcc = 2.5 V
1サイクルたり 2.5 - 7.5 ns
信号しんごう: SSTL_2 (2.5V)[21]
DDR2 アクセスは4ワード単位たんい以上いじょう
"Burst terminate" を削除さくじょ
4ユニットを並列へいれつ接続せつぞくして使用しよう
1サイクルたり 1.25 - 5 ns
内部ないぶ操作そうさは1/2のクロックレートでおこなわれる。
信号しんごう: SSTL_18 (1.8V)[21]
DDR3 アクセスは8ワード単位たんい以上いじょう
信号しんごう: SSTL_15 (1.5V)[21]
CASレイテンシがながい。
DDR4 Vcc ≤ 1.2 V
DDR5 Vdd ≤ 1.1 V

成功せいこうしなかった後継こうけいテクノロジー

編集へんしゅう

SDR SDRAM の後継こうけいとして、DDR以外いがいにもつぎのようなメモリテクノロジーが提案ていあんされてきた。

Rambus DRAM (RDRAM)

編集へんしゅう

RDRAMはDDRと競合きょうごうした独自どくじテクノロジーだった。比較的ひかくてき高価こうか性能せいのう期待きたいされたほどではなく(レイテンシがおおきく、データ転送てんそうはばもSDRAMの64ビットにくらべてちいさい)、SDRAMとの競争きょうそう敗退はいたいした。

編集へんしゅう

SLDRAMもRDRAMと競合きょうごうした。1990年代ねんだい後半こうはんにSLDRAMコンソーシアムが開発かいはつしたもので、どうコンソーシアムはやく20しゃ主要しゅようメーカーが結成けっせいしたものである。オープン標準ひょうじゅんであり、ライセンスりょう徴収ちょうしゅうしない規格きかくだった。64ビット200MHzのバスに接続せつぞくする。おな線上せんじょうすべての信号しんごう転送てんそうし、複数ふくすうせん同期どうき問題もんだい解消かいしょうしている。DDR SDRAM同様どうよう、SLDRAMもクロックのがりとがりでデータを転送てんそうするため、毎秒まいびょう400Mかいのデータ転送てんそうおこな仕様しようだった[22]

Virtual Channel Memory (VCM) SDRAM

編集へんしゅう

VCMはNEC独自どくじ開発かいはつしたSDRAMの一種いっしゅだが、オープン標準ひょうじゅんとしてリリースされ、ライセンスりょう徴収ちょうしゅうしなかった。VCMでは各種かくしゅシステムプロセスにそれぞれ仮想かそうチャネルをてられるため、プロセスぐんがバッファ空間くうかん共有きょうゆうする必要ひつようせいけ、システム全体ぜんたい効率こうりつ向上こうじょうさせる方式ほうしきだった。具体ぐたいてきにはメモリを独立どくりつしたブロックぐん構成こうせいし、ブロックごとにメモリコントローラとのインタフェースとバッファ空間くうかんもうけていた。SDRAMにくらべてレイテンシが格段かくだんちいさく、高性能こうせいのうだった。RDRAMくらべると安価あんかで、そのモジュールは通常つうじょうのSDRAMと互換ごかんせいがあったが、メモリコントローラはVCMであることを認識にんしきして対応たいおうする必要ひつようがあった。VCMをサポートしたマザーボードは数少かずすくない。

セキュリティ

編集へんしゅう

一般いっぱんには揮発きはつせいメモリの内容ないよう電源でんげんれた途端とたんえてしまうものとかんがえるが、じつはSDRAMの記憶きおくした内容ないようはすぐにはえない。完全かんぜんえるまでには常温じょうおんではすうびょうかかり、より低温ていおんではそれをすうふんまでばすことができる。これを利用りようして直前ちょくぜんまで動作どうさしていたメモリじょうのデータを復元ふくげんしてぬすむという手法しゅほうかんがえられる[23]。これを「コールド・ブート攻撃こうげき」あるいは「アイスマン攻撃こうげき」などとぶこともある。

脚注きゃくちゅう出典しゅってん

編集へんしゅう
  1. ^ SDRAM Part Catalog”. 2011ねん2がつ18にち閲覧えつらん micron.com
  2. ^ Thomas Soderstrom (June 5, 2007). “Pipe Dreams: Six P35-DDR3 Motherboards Compared”. Tom's Hardware. 2011ねん2がつ22にち閲覧えつらん
  3. ^ What is DDR memory?”. 2011ねん2がつ22にち閲覧えつらん
  4. ^ AMD to Adopt DDR3 in Three Years”. 2011ねん2がつ22にち閲覧えつらん
  5. ^ Wesly Fink (July 20, 2007). “Super Talent & TEAM: DDR3-1600 Is Here!”. Anandtech. 2011ねん2がつ22にち閲覧えつらん
  6. ^ Thomas Jørgen Jacobsen (28 July 2009). “A-Data launches DDR3-2200 with 2oz. copper PCB”. 2011ねん2がつ22にち閲覧えつらん
  7. ^ DDR4 PDF page 23[リンク]
  8. ^ 後藤ごとうひろししげるのWeekly海外かいがいニュース】 JEDECが「DDR4」とTSVを使つかう「3DS」メモリ技術ぎじゅつ概要がいようあきらかに
  9. ^ DDR4 not expected until 2015 - SemiAccurate
  10. ^ Next-Generation DDR4 Memory to Reach 4.266GHz - Report”. Xbitlabs.com (August 16, 2010). 2011ねん1がつ3にち閲覧えつらん
  11. ^ Looking forward to DDR4
  12. ^ DDR3 successor
  13. ^ “IDF: DDR4 memory targeted for 2012” (German). hardware-infos.com. http://www.hardware-infos.com/news.php?news=2332 2009ねん6がつ16にち閲覧えつらん [リンク] English translation
  14. ^ Gruener, Wolfgang (February 4, 2009). “Samsung hints to DDR4 with first validated 40 nm DRAM”. tgdaily.com. http://www.tgdaily.com/content/view/41316/139/ 2009ねん6がつ16にち閲覧えつらん 
  15. ^ Jansen, Ng (January 20, 2009). “DDR3 Will be Cheaper, Faster in 2009”. dailytech.com. 2009ねん6がつ17にち閲覧えつらん
  16. ^ Samsung develops DDR4 memory, up to 40% more efficient
  17. ^ Samsung develops DDR4 memory with up to 40 percent better energy efficiency than DDR3
  18. ^ Manion, Wayne (March 31, 2017). “DDR5 will boost bandwidth and lower power consumption”. Tech Report. https://techreport.com/news/31673/ddr5-will-boost-bandwidth-and-lower-power-consumption April 1, 2017閲覧えつらん 
  19. ^ JEDEC Publishes New DDR5 Standard for Advancing Next-Generation High Performance Computing Systems”. 2022ねん1がつ16にち閲覧えつらん
  20. ^ 次世代じせだいメモリの標準ひょうじゅん規格きかく「DDR5」の最終さいしゅう仕様しようをJEDECが発表はっぴょう、DDR4からなに進化しんかしたのか?”. GIGAZINE. 2020ねん7がつ30にち閲覧えつらん
  21. ^ a b c EDA DesignLine, januari 12, 2007, The outlook for DRAMs in consumer electronics”. 2010ねん6がつ22にち閲覧えつらん edadesignline.com[リンク]
  22. ^ Dean Kent (1998-10-24), RAM Guide: SLDRAM, Tom's Hardware, http://www.tomshardware.com/reviews/ram-guide,89-15.html 2011ねん1がつ1にち閲覧えつらん 
  23. ^ Cold Boot Attacks on Encryption Keys Princeton University

関連かんれん項目こうもく

編集へんしゅう