明日はどっちだ?!

DDRとDRDRAM

 まずDDR SDRAMというのは現在の主要メモリであるSDRAMの改良版です。
どこをどのように改良したかというと、データの読み出し/書き出しの部分を改良しています。
SDRAMというメモリはクロックに同期して動作するのですが、実際にはクロックの立ち上がり(電圧が低いレベルから高いレベルになる時)のみに同期して動作していました。
これに対しDDR SDRAMはデータの読み出し/書き出し部分のみクロックの立ち上がりと立ち下がり(電圧が高いレベルから低いレベルになる時)の両方に同期するようになっています。
このため見かけ上SDRAMの倍の速度でデータの読み/書きができるのです。
(動作周波数自体は現在のところSDRAMと変わっていません。)

 これに対しDRDRAMは独自のアーキテクチャを用いることによってデータの読み/書きの高速化を図っています。
SDRAMやDDR SDRAMはコマンドを入れるのと同時にロウアドレスまたはカラムアドレスを入れるのでコマンド入力用のピン(実際にDRAMとかとCPUとかを結ぶ端子。黒い物体についている銀色の足です。)とアドレス入力用にピンと両方あるのですが、DRDRAMにはアドレス入力用のピンというものがありません。
ではどうやってアドレスを入力するのかといいますと、コマンドとアドレスを幾つかに分解し、クロックに同期させて1連の連続したデータとして入力するのです。(パケットと呼ばれています)
このためDRDRAMはSDRAMに比べて入力用のピン数が少なくて済み、そのぶん他のピンに回すことができます(電源とか)。
 またバンク数もDRDRAMの方が細かく分かれています。
(SDRAMやDDR SDRAMが4つなのに対してDRDRAMは32個と8倍)
例えば10000人を4つの学年に分けるよりも、32の学年に分けた方が、呼び出したい人を捜しやすいのと同様に動作の高速化に繋がるのです。
DRDRAMの動作周波数が400MhzとSDRAM/DDR SDRAMのほぼ三倍(SDRAMは現時点では133Mhz)となっていることからも、その独自アーキテクチャによる高速化が成功しているといえるでしょう。
(ただし400Mhzで動いているのはインターフェース部分(Rambusインターフェース)だけです。内部コアはSDRAMと同じ100Mhzで動いています。)

ちなみにRambus社自体はDRDRAMを生産していません。
このRambus社は独自アーキテクチャを特許として、他の会社(三星とかNECとか東芝とか)にライセンス供与して、そのライセンス料を主な収入源としています。


お目当てのスピード比較

 さて、ではDDR SDRAMとDRDRAMがSDRAMと比べて実際にどれくらい早いのかを比較する為に、下図の様に纏めてみました。
この図はACT(ロウアドレスを取り込むコマンド)のクロック立ち上がりを基点にしており、また一応tCKの縮尺ではあってますので、どれが早いのか/遅いのかは見たままです。
(もっかしたら間違いがあるかもしれませんが(^^;)

 図を見てお気づきかと思いますが、例に挙げた5つ(全7種類)のなかでデータが出はじめるのが一番遅いのがなんとDRDRAMですね(^^;
これは何故かといいますとDRDRAMは踊るSDRAMの中で述べた”バースト動作”と”ランダムにカラムアドレスを変更した場合(←そのまんまランダムカラムアクセス動作といいます)”にのみ、その高速化されたアーキテクチャの実力を発揮できるのです。(といいますかそのように作られているらしい。)
このため”バースト動作”と”ランダムカラムアクセス動作”ではSDRAMとDDR SDRAMはDRDRAMに太刀打ちすることはできません。
が、残念ながら現在のメモリの使用環境ではDRDRAMのその強さを発揮できる時というのが少ないというのが現状のようです。
というわけなのでDRDRAMはPCに乗っかると良くてSDRAM並みの性能しか(ことによったらSDRAM以下)でないのです。
このことはインテル自体も認めています。intelのベンチマーク結果(英語)
(ニュースだとインテルがベンチマークでRambusを低く評価 とか)

インテルのチップセットである820と815との比較なので、もしかしたら現行のソフトではDRDRAMの強みを活かせないということなのかもしれませんがね(^^;
(この図を見る限りランダムロウアクセス動作を頻繁にされたら、どーしてもSDRAMより遅くなりそうですが(^^;)

ただし現行のi850世代ではこの辺割と改善されているようで、かなり良いパフォーマンスをたたき出しているようです。


モジュール

 メモリをパソコンなどに増設する場合、もちろん単体のままではなくSDRAMやDRDRAMが何個か載った板を差し込みます。
この板のことをモジュールといい、SDRAMやDDRSDRAMなどが乗っかっているのはDIMM、DRDRAMが乗っかっているのはRIMMといいます。
そして実際にモジュールとCPUなどを繋いでいるのはメモリバスと呼ばれる線で、DIMMのこの線の数は64本(つまり64bitの幅)、RIMMの線の数は16本(つまり16bit)です。
もちろんこのバスの幅が大きいほど一度に大量のデータをCPUに送ることができます。
(64車線と16車線では一度に走れる車の数は当然違いますよね(^^;)
この差のおかげでDDR SDRAMのDIMMとRIMMのデータ転送速度は同等ということになっているのですが、さて、ではなんでRIMMの方はメモリバスが16bit幅しかないかといいますと、SDRAMに比べて高速品だからではないかと思われます。
サイクルが2.5NSとなると配線自体につく寄生容量や配線抵抗なども無視できず、きちんとこれ以下でないと動かない、ということになるのではないかと。
この幅が大きくなればなるほど信号のばらつきも大きくなっていきますしね(^^;

現在ではパフォーマンス改善のためにモジュールを二枚同時にアクセスできるようにしたDUAL CAHNNELに対応したチップセットも出ています。
ですがDUAL CHANNELにすると当然メモリバス幅は増えますので、増えたことによる影響とかも大きいわけなんですが。


データ転送速度

 よくメモリの性能を「データ転送速度」というもので示しますが、これはDIMMないしRIMMが1秒間に最大でどれくらいのデータを読み出せるか、ということを表わしています。
というわけで簡単に計算してみましょう。
SDRAMとDDR SDRAMはDIMMにのっかっていますから一度に読み出せるデータは64bit。
SDRAMのPC100規格の場合、データは1サイクル(=10NS)に一個しか出せません。
ということは1秒間に100M回データの読み出しができます。 DDR SDRAMのPC1600(DDR200)の場合、データは1サイクル(=10NS)に二つ読み出せます。
ということはPC100のSDRAMの倍ですから100M回×2個のデータの読み出しができます。
つまり

SDRAM(PC100) :64bit×100M回   = 6400Mbit/秒= 800Mbyte/秒
DDR SDRAM(DDR200):64bit×100M回x2個=12800Mbit/秒=1600Mbyte/秒=1.6Gbyte/秒

となります。
同様にPC133とPC2100(DDR266)の場合は

SDRAM(PC133) :64bit×133M回   = 8512Mbit/秒=1064Mbyte/秒
DDR SDRAM(DDR266A):64bit×133M回x2個=17024Mbit/秒=2128Mbyte/秒=約2.1Gbyte/秒

となります。

 これに対しDRDRAM(PC800)はRIMMですから一度に読み出せるデータは16bit。
PC800の場合動作クロックは400MHzでデータはDDR SDRAMと同じように1クロックに2回出てきますので、1秒間に400M回×2個のデータの読み出しができます。
ということは

DRDRAM(PC800) :16bit×400M回×2個=12800Mbit/秒=1600Mbyte/秒=1.6Gbyte/秒

理論値的にはDDR SDRAM(PC1600)のDIMMとDRDRAM(PC800)のRIMMは同等の性能ということになりますね。
(あくまで理論値なんで、実際ほんとに1秒間にこんだけ出せるのかというとかーなり疑問な値ですが(^^;)


DRDRAMの高速化技術

 さて、ここでなぜDRDRAMは面積とランダムロウ動作を犠牲にしてまでバースト動作またはランダムカラム動作に着目して高速化を計っているのか?という疑問があるかと思います。
これについてはパソコンのメモリの管理方法に踏み込まなくては行けないんですが、簡単にお伝えしますね。
そもそもDRDRAMはintelによって次世代のパソコン用の主要メモリになる、という風に位置づけられてます。
つまりもともとDRDRAMはパソコンのメモリを主眼において作られている、と思われるのです。
で、ここでパソコンのメモリの管理なんですが、大体以下のようになっています。
そもそもパソコンにはXアドレスとかYアドレス、果てはバンクなんていう概念はありません。
64MByteのメモリがあるとしたら下から順に0,1,2・・・・・64MByteと管理していきます。
つまりどういう事かといいますと

PCのメモリ番地  実際の石の番地(X,Y)
       0        0,  0
       1        0,  1
       2        0,  2
       ・        ・   ・
       ・        ・   ・
       N        1,  0
     N+1        1,  1
       ・        ・   ・
       ・        ・   ・
    64MB      MAX,MAX

という風にまずY側のアドレスを足していくんです。
で、Yアドレスが最後まで行ったら初めてXアドレスを1進めてまたYアドレスの最後まで進んでいくと。
このためDRDRAMはY方向のアドレスの動きが高速にできるように特化しているわけなんです。
ただし実際のメモリにデータが書き込まれる際、下から順に奇麗に書き込まれていくなんてことはめったにないんですよね(^^;
だからベンチマークなどでは、バースト動作の高速化のメリットよりもランダムロウ動作のデメリットが目立ってしまって、 SDRAM並みかそれ以下にしか見えなかったりします。
とまあ非常におおざっぱなんですが、こんな理由でDRDRAMのアーキテクチャは決められたんではないかと(^^;


トップに戻る
メールはこちらまでgimlet@mars.dti.ne.jp