DRAMについて




 やっとTukwillaでたのね。DDR3メモリ採用で次世代Xeon(Nehalem EX)とプラットフォーム共通化ということは、従来のXeon(Nehalem)で採用しているFB-DIMMはこれで終了ということか。

FB-DIMMに向かうサーバ向けメモリを知る(@IT) ※2006/12の記事
 FB-DIMMはAMBというDIMM上のチップがメモリをコントロールするので、メモリの種別(DDR2,DDR3)の違いを吸収でき、より多くのメモリをメモリバスに繋ぐことが出来る。ただ、AMBは発熱が多いといわれ、メモリから見たら間に入る余計なデバイスでもある。以前、あるメーカー(たしかNEC)でDRAMのアクセス速度を見掛け上速くするキャッシュメモリを積んだDIMMも出ていたがはやらなかった。DRAMのプロセスの進化する速度とロジックLSIのプロセスの進化では足並みが揃わず、DRAMはDRAMだけをモジュール化したほうがよりシンプルでいいということだろう。

 ここからは過去から現在までたどる話。まあ昔話です。

 最初にDRAMを見たのは部品屋の店頭、4KbitのDRAMだった。4キロビットですよ。以降次世代が出るごとに4倍のサイズになっていく。
 そこから16KbitDRAMと進化し、パソコンではPC-8001等に使われた。64KbitDRAMは8個で8bitCPUの物理アドレス空間をすべて埋めることができた。また、初の5V単一電源動作品だった。パソコンのFM-7の初期のものはメインメモリが64KbitDRAMで、サブシステムで使うVRAMは16KbitDRAM×8をR,G,Bの3セット持った合計48Kバイトだった。マイコン雑誌にはDRAMを使ったマイコンシステムの製作記事が多数出ていたなあ。
 DRAMが容量の割にピン数が少ないのは、アドレスバスを二分割して与えるから。RAS(row address strobe)信号がアクティブな間に行アドレスを、CAS(column address strobe)信号がアクティブな間に列アドレスを与え、一定時間の後にデータアクセスする。ここまでかかる時間をアクセスタイムと呼ぶ。その後しばらくアクセスは出来ず、前のRASから次のRASが開始できるまでの間の時間をサイクルタイムと呼ぶ。なおSRAMはアクセスタイム=サイクルタイムである。
 DRAMはメモリの内容をコンデンサに貯めるので時間が経つと消えてしまう。そこで定期的にリフレッシュという動作を行わなければならない。この間はメモリとしてのアクセスは出来ない。また、リフレッシュ生成回路が必要だった。のちにセルフ・リフレッシュといってリフレッシュ回路をDRAMに内蔵するようになった。使う方はリフレッシュのタイミングだけ指示して待てばよい。今は見ないが疑似SRAMというのがあった。ピンアサインは同容量のStaticRAMと同じで中身はDRAM、リフレッシュが必要、というものだった。
 256Kbitメモリのアクセス速度は120ns~150ns程度だった。この頃は日本製が主流。富士通の120ns品が性能がいい、ということで秋葉原の鈴商に買いに行ってFM-16βのマザーボードにハンダ付けしたことがある。
 1Mbitの時代になるとDOS/Vブームでメモリはモジュール化されたものが使われるようになる。最初は30pinSIMM。1Mbit×9(パリティ付き)という構成だった。この頃はパリティビットで保護されていたのだ。CPUは80386ぐらいの世代。なおMacintoshはパリティなしのモジュールだった。1枚で1Mバイトあるいは4Mバイト、32bitバスのシステムでは4枚セットで使っていた。
 80486からPentiumの世代になると、72pinSIMMが出てきた。容量は最大で32Mバイトくらい(64MB品あったかな?)。当時はパソコンブームでDRAMの需要が逼迫し、なんとパリティを生成するICを取り付けた製品も出ていた。その方が安かったのだ。72pinSIMMの後期では改良品のEDO-DRAMとなり、非同期動作のメモリはこれが最後となる。また、5V動作していたのもここまで。
 次の世代は非同期型のEDOと同期型のSDRAMがしばらく混在する。電圧も5V品と3.3V品があった。モジュールはDIMMと呼ばれるようになった。徐々にSDRAMに移行し、最大1枚あたり256Mバイトか512Mバイトだったと思う(自分は512MB品は見た事がないが)。パソコン向けのモジュールにはパリティ(ECC)の保護用メモリは外された。また、ワークステーション向けには1サイクルのレイテンシの遅れはでるものの安定したアクセスを保証するためのRegisterd品が出た。単純に言うとデータバスにFFをかませたもの。日本製のDRAMが目立たなくなり海外勢が主流になってきたのもこの頃。秋葉原の店頭にて、Samsungあたりは知ってたがTwinMOSとかは始めて知ったよ。SPDと呼ばれるI2C(SMBus)接続のROMで、メモリの構成やアクセススピードをモジュール自体に埋め込むようになったのもここから。
 次はDDRメモリで、パソコンでは1GBのDIMMモジュール×4枚搭載で4GBと、32bitプロセッサの物理アドレス空間と同じサイズになった。DDRとは1サイクルの立ち上がりと立ち下がりでデータを取る、以前のSDRAMとくらべて同一クロックで二倍の速度で動作するもの。私はこの時期はパソコンの組み立てをやってなかったのであまり詳しいことは知らない。
 現在はDDR2,DDR3メモリが主流。だんだんとDDR3メモリに移行しつつある。デュアルチャネルというのは、独立した二系統のメモリバスを使うことによりサイクルタイムの遅れを見掛け上減らしたもの。体感上は大して速くならないが、大量のメモリアクセスを行うサーバ機ではメモリインターリーブといった手法は以前から使われていた。これはデュアルチャネルのチャネル数を増やしたものと考えればよい。考え方が逆か。2インターリーブがパソコンで言うデュアルチャネルなのだ。

 記憶違いなどあるかもしれません。ツッコミ大歓迎。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック