2012年2月18日土曜日

FIFOメモリ色々・・・

て、“FIFOメモリ”というキーワードを聞いて、ピンと来る方は「まだまだ珍しい存在」かも知れない。 ほとんどの方は「何それ?」状態だろうと思う。

一般的なメモリは、その容量に応じたアドレスを指定するための信号線を持っており、読み書きしたい番地を先にそれらの信号線に設定してやらないといけない。 例えばメモリの連続した番地に目的のデータが入っている場合でも、アドレスを一つずつ進めてやりながら設定し、読み出し処理を繰り返してやる必要がある。
ここでFIFOメモリの最も大きな特徴を記すなら、First In First Outというその名前が表すとおり「アドレスの指定がいらない」という点があげられる。 ウラを返せば「好き勝手なアドレスを指定することができない」ということになるのだが、要はアドレスを管理する仕組みはメモリのチップ中に取り込まれているので、外部からは読み書きの際に「プラス1」される以外には、「リセット」して「0番地に戻す」ことしかできない。 つまり、ランダムアクセスはできない代わり、純粋なシーケンシャルアクセスならデータの更新周期に合ったクロックを与えるだけで自動的にデータの入出力が行えるという、モノグサな人間に持ってこいなデバイスだ。
それともう一つ、データのリードとライト「別系統で同時に行える」のが最もありがたい機能だろうか。 これらをうまく活用すれば、タイミングに制約があるデータの「一時的なタイムシフト」にも最適だ。

トランジスタ技術2012年3月号(今月号)の特集で小型カメラを使った応用例が出ているのだが、そのカメラの1つにFIFOメモリがバッファリング用として使われている。 この機種ではカメラから出てくるデータがクロックに同期してどんどんFIFOメモリに蓄えられ、マイコンは自分の好きなタイミングで読み出し用のクロックを与えれば、そのデータを先頭から順次読み出すことができる。 もっともデータが格納されるよりも遅いスピードでちんたら読み出しを続けていればいつかはメモリが満杯になってデータが溢れてしまうので、どこかで「待った」をかけなければならないのだが、1フレーム(1画面)分のデータを一気に格納しておき、しばらく画面更新が不要な性格のアプリなら、遅いマイコンでも対応が可能になるなどのメリットが得られるはずだ。

少し長くなったので本題に戻そう。
私自身も色々と画像関係のハードウェアをいぢくってきた関係で、“FIFOメモリ”は何種類か常備してあったりする。 そのうちの幾つかをざっと見ていただくことにしようかな(笑)


NEC uPD42101C
唯一のDIPパッケージ入り。 容量は910Word×8Bitで、NTSC規格の4Fsc(14.31818MHz)でサンプリングされた映像信号を 1水平ライン分格納することができる。 その用途から「ラインメモリ」と呼ばれることもある。
ライン・ダブラ(同じ水平ラインを二度書きする)による“倍速スキャン・コンバータ”用に重宝させていただいたかな。


NEC uPD485505G
前出 uPD42101Cの後継品。 容量は5048Word×8Bitで、16Dot/mmでスキャンされたディジタルコピー機などのA3用紙 1水平ライン分格納することができる。
uPD42101Cと互換性があるので、同様にライン・ダブラ(同じ水平ラインを二度書きする)による“倍速スキャン・コンバータ”用に重宝させていただいた。

参考:VGA液晶パネル用スキャンコンバータの製作


NEC uPD42280GU
こちらは“フィールドメモリ”や、“フレームメモリ”と呼ばれることもある、前出のラインメモリに比べて容量の大きいメモリだ。 このuPD42280GUは 256KWord×8Bitの容量があり、640×400Dot程度までの画面丸ごと1枚分のデータを格納することができる。
ちなみに、一時期秋月電子などで売られていたSTN液晶“LM32C041”の内部に使われていたことは有名な話でもある。

ではでは、今日はこの辺で・・・

0 件のコメント: