はじめに
こんにちは。エンジニアとして着々と基板の知識を蓄えているトットです。
ある日メモリに対するお客様サポートで、奮闘している先輩エンジニアの頭領先輩をみてメモリってどのようなものなのだろう ?
と思い
Beryll (ベリル) – Cyclone ® V GX ベースボードで確認してみました。
ただ基板を見てもたくさんデバイスがありどれがメモリだかわかりません。調べてみたところ、 SRAM、DDR3 、EPCS が搭載されていることが分かりました。
SRAM : IDT
新人エンジニアの私は、これを見ても 『・・・・・』 となったので、メモリについて調べてみることにしました。
メモリとは・・・・
新人エンジニアの私は、 『 memory ・・・ メモリ ・・・ 記憶 ・・・ ? 』 と思い浮かべ調べたところ、まさに 『 記憶 』 という意味でした。
メモリとは、データを記憶する場所です。
メモリの種類としては以下が代表的なものとして挙げられます。
(注)上図は一例です。
インテル FPGA デバイスコンフィギュレーションで使われる、 EPCS ROM や EPCQ ROM/EPCQA ROM は、上図の FLASH ROM に分類されます。
先輩エンジニアの頭領が奮闘していたのは、上図のDRAMに分類される DDR3-SDRAM というメモリでした。
そこでDDR3-SDRAM について調べてみることにしました。
DRAM の中の DDR3 の位置づけ
DDR3 を調べてみると DRAM において DDR3 は以下の図の位置づけとなっていることが分かりました。
世代が新しくなっていくにつれてデータ転送速度が速くなっていることが分かりました。
* SDR は、Single Data Rate の略です。
クロックの立ち上がりか立ち下がりでデータを転送します。
* DDR は、Double Data Rate の略です。
クロックの立ち上がり、立ち下がり両方でデータを転送します。
FPGA にとっての DDR3-SDRAM の役割
・FPGA で処理するデータを一時的に保存する。(ライト)
・一時的に保存されたデータを読み込み FPGA でデータを処理する。(リード)
小話
私 : 『 一時的に保存 ? HDD に保存すると何が違うの ? 』 と思い、先輩に聞いたところ、
先輩 : 『 FPGA と HDD をインタフェースする場合、 RAM や ROM に比べデータを処理するのに時間がかかってしまうんだよ。 』
私 : 『 だから PC で HDD が仮想メモリとして働く時は、動作が遅いのか ! 』 と納得しました。
ところで DDR3-SDRAM の動作のリード、ライトの原理ってどうなっているんだろう ?
今回のまとめ
■メモリとはデータを保存しておく場所
■DDR3-SDRAM は FPGA のデータを一時的に保存している。