United Statesからアクセスのようです。言語設定をEnglishに切り替えますか?
Switch to English site
Skip to main content

コンピュータメモリ技術: フェライトリングからFRAMまで

Flash_and_Core_memory1_551d3a69aa4f16797828f522c8009abc599f6d55.jpg

フェライトコアメモリとフラッシュメモリカード               写真提供: Wikipedia

磁気フェライトリングコアメモリ

まだ若者だった1975年、私は軍用航空機のコンピュータメモリモジュールをテストする学生エンジニアとして働いていました。今から思い返してみると、それはおそらく究極の強磁性リングコア技術の開発と言っていいものでした。各モジュールの大きさは約18 x 10 x 6cmで、600,000個近くのフェライトリングコアが入っており、32K x 18ビットワードの不揮発性ランダムアクセスメモリ(NVRAM)を備えていました。各コアの直径は約0.033mmで、中心の穴に3本のワイヤを通す必要がありました。この金属素材を作れるような精密な機械はなかったため、手作業で作りました。そのため、非常に手が器用で、視力がバツグンの人達が雇われました。そのような事情と完全な軍用規格だったために、価格は1個あたり25,000ポンドにもなりました。1975年の価値でです。コアメモリは、強磁性体材料のヒステリシス特性を利用することで、磁化力が消えてからも磁化された状態を保てます。コアが一方向に磁化されていたとして、これでロジック1を表すことができます。力を逆転させ、コアが逆の極性に反転するとロジック0です。残念ながらデータを読み取る際にデータが破壊されてしまうため、読み取りサイクルに続けて元の状態に戻すために再度書き込む必要がありました。

初期の半導体メモリ

1975年には既に半導体メモリチップがありました。Intel 2102 1K x 1ビットスタティックRAM素子と、同じ容量の1103ダイナミックRAM素子です。これらは業務用コンピュータで使用されていましたが、軍用環境で使えるほどの信頼性があるとは考えられていませんでした。「揮発性」があること、つまり電源が切れたときにデータが失われてしまうことは、どちらの素子についても避けられませんでした。

一般にコンピュータには2種類のメモリが必要です。プロセッサが命令コードを必要としたときにできるだけ速く読み出すことのできるプログラムメモリ(通常揮発性)と、速度は遅いものの大容量で、プログラムメモリにロードする命令コードを格納している不揮発性ストレージです。

汎用(デスクトップ/ラップトップ)コンピュータ用の現在の技術

PC設計者は、何らかの形でプログラムメモリにダイナミックRAMを使用してきました。1個のセル(ビット)が1個のトランジスタと1個のコンデンサに還元されるところまで技術が進歩してしまうと、密度とアクセス速度で競争する以外なにもできなくなりました。その後長年にわたって、セルの物理サイズを小さくし、その分沢山のメモリセルをダイに詰め込めるようにする「スケーリング」プロセスが続きました。サイズの縮小は速度の向上につながりますが、数ミリ秒ごとに定期的な「リフレッシュ」が必要になります。これはDRAMが常に電力を必要としていることを意味します。リフレッシュが必要なのは、ロジック状態を表すコンデンサの電荷が徐々に漏れ出ていくためです。リフレッシュが不要のスタティックRAMは、消費電力が少なく、高速なので、もっと良い選択肢に見えますが、問題なのは、セル1個あたり最大6個のトランジスタが必要になるため、チップあたりのビット数をダイナミックRAMに近付けることもできない点です。ダイナミックRAMもスタティックRAMも揮発性なので、磁気テープ、フロッピーディスク、ハードディスクベースの技術を使用する不揮発性ストレージとの協力が必要です。不揮発性RAM素子は1980年代から開発が続いていますが、容量の点でも速度の点でもハードディスクやダイナミックRAMのスケーリングのペースに追いつけていません。

組み込みコンピューティングの現在の技術

組み込みプロセッサは、ほとんどのプロジェクトでハードディスクや光学ドライブを搭載する余地がないため、不揮発性メモリがどうしても必要になります。ほとんどの場合はプログラム済みの読み取り専用メモリ(ROM)で十分です。組み込みプロセッサの特長は、PCのような汎用マシンとは異なり、(通常は)シングルアプリケーションでしか動作しない点です。問題は、ファームウェア開発では、多くの場合、プログラム/デバッグ/編集/再プログラムのサイクルを何度も繰り返す必要があるため、バグが見つかるたびにメモリチップを捨てる場合に、製品が非常に高価になってしまうことです。

開発者の友達: 再プログラム可能なROM

1971年、フローティングゲートMOSFETメモリセルが基盤となり、初のEPROMが誕生しました。プログラム可能かつ消去可能なROMチップで、256バイトのIntel 1702Aです。EPROMは残念ながら、電気的に消去することはできず、また消去してからでないと新しいコードをプログラムすることはできません。EPROMはフローティングゲートに電荷を蓄えることで機能します。フローティングゲートはダイナミックRAMのように、電荷の漏出を防ぐために絶縁体によって囲まれています。絶縁が非常に優れているため、チップに電力が供給されなくても何年にもわたってデータを保持できます。

不揮発性メモリが高価だったのは、セルをプログラムするためには高電圧を(比較的)長時間印加する必要があったためです。不揮発性メモリを消去するには、チップを特別なライトボックスに入れ、高強度紫外線光に約10分間曝露します。そのためにチップパッケージには紫外線を透過する石英の「窓」が付いていました。そして専用のプログラマ装置でプログラムしてから、ようやくターゲットボードのソケットに取り付けることができます。これらの素子は、その特性からUV (紫外線) EEPROMと呼ばれ、長年にわたって組み込み設計の主流でした。しかしそれもフローティングゲートMOSFETが電気的に消去できるようになるまでの話です。この技術は、現在フラッシュメモリと呼ばれています。

フラッシュメモリを使用するのに、外部にEPROMプログラマやUVイレーサは必要ありませんが、個々のセルではなくブロック単位で消去と再プログラムを行わなければいけないため、書き込みサイクルはいまだに低速です。古いUV EPROMと同じように、フラッシュは高速ランダムアクセス読み取りを可能にしますが、ブロック消去/書き込みは非常に低速です。もう一つの欠点は、個々のセルに対して書き込める回数が限られ、そのうち失敗するようになる点です。これは少ない場合で数千回です。比較的高電圧のプログラミングパルスは、最終的にはセルにも損害をもたらし、恒久的な損傷を与えます。ただし、組み込みアプリケーション開発の場合は、一度製品が完成してしまえば、まれに発生するファームウェアアップデート用に十分な容量が残されている限り、書き込み耐久性が問題になることはほとんどありません。

磁気抵抗RAM (MRAM) 磁気メモリをチップに実装

私はこの記事を、フェライトリングの磁気極性に基づく最初期のデジタルコンピュータメモリ技術の説明から始めました。コンピュータの物理的なサイズは、真空管を別の物で置き換えることで縮小を始めました。初期には個別のトランジスタが使われ、その後は高密度化を続ける半導体集積回路になっています。これらの開発は、プロセッサの小型化が目的でしたが、チップ設計者はいつも、同じ程度まで不揮発性ランダムアクセスメモリを小型化できる技術の発見に苦労してきました。電源が切れたときにすべてのデータを失う高速RAMや、読み取りは高速ながら、書き込み処理が複雑で低速の不揮発性メモリならありました。しかし皮肉なことと言うべきか、磁気フェライトリングから着想得て30年以上も前に提案された技術が今、成熟しつつあります。それがMRAMです。基本的にMRAMセルは、2つの磁性体層の間を「トンネルバリア」層で絶縁した3層構造になっています。2つの「磁石」の磁界が揃っていれば、トンネルバリアの電気抵抗は小さくなり、ロジック0が読み取られます。磁界の向きが反対の場合、抵抗が大きくなり、ロジック1が読み取られます。旧来のコアメモリとは異なり、データの読み取りが破壊的でないため、再書き込みが必要なくなっています。最新のDRAM素子に近いチップ密度を実現するために、磁界の本質についての研究が続けられています。DRAMやフラッシュに比べてMRAMのシェイプアップはどの程度進んでいるでしょうか?

  • 密度: MRAMはチップあたりのビット数でDRAMを急速に追い上げつつあります。障害は、比較的大きな読み書き電流です。電流が大きいと、セルサイズを縮小したときに、隣のセルに異常が発生する可能性があります。
  • 速度: MRAMは、フラッシュとは異なり、読み取りと書き込み両方のランダムアクセスで、DRAMと同等の速度を実現しています。研究で今よりはるかに速くなる可能性が示されています。
  • 消費電力: MRAM素子は不揮発性なのでDRAMよりはるかに消費電力が小さくなっています。DRAMでデータを保持するために必要な頻繁なリフレッシュサイクルは不要です。MRAMは、データを書き込むときにフラッシュメモリのような高電圧パルスも必要ありません。
  • データ保持: 原理的にはMRAMはデータを永久に保持しますが、書き込みに必要な電流が大きいことが、上の「密度」で示した理由で問題になります。フラッシュセルに蓄えられる電荷は最終的には漏出しますが、長い年月がかかるため、搭載機器の耐用寿命の間は問題にならないでしょう。
  • 寿命: DRAMは、正しく動作していれば寿命に限界はありません。一方フラッシュは耐えられる書き込み回数に限界があります。フラッシュの寿命は「ウェアレベリング」によって伸ばすことができます。これは、チップのすべてのセルに均等にメモリ書き込みが行われるようにすることを意味します。ウェアレベリングにより、たとえば、USBメモリの容量の半分だけが使われているときに、セルの半分は頻繁に上書きされ、残りの半分はまったく使われないというような状況を避けることができます。この処理は通常オンボードプロセッサによって行われ、ユーザーからは見えません。また、WindowsやLinuxなどのPCオペレーティングシステムと互換性のあるファイル構造が強制されます。MRAMの寿命に限界はありませんが、前述のように読み書きの電流の大きさが寿命に影響する可能性があります。

強誘電体RAM (FeRAM又はFRAM)

FRAMの動作は昔の磁気コアメモリによく似ていますが、ストレージ素子の状態を反転させるのに磁界ではなく電気を使用します。Ferroelectric(直訳すれば鉄電気)と呼ばれるのは、鉄が含まれるからではなく、セルの状態の切り替えのヒステリシス特性が、昔のFerromagnetic(直訳すれば鉄磁気)コアメモリと同じためです。構造的にはFRAMセルはMRAMと同じように3層構造です。チタン酸ジルコン酸鉛(PZT)の強誘電結晶体が2つの電極でサンドイッチされています。ロジック状態は、PZT分子内の原子の位置として保存されます。基本構造はMRAMと似ていますが、動作は昔のコアメモリに近く、データの読み取りが破壊的で、再書き込みサイクルが必要になります。FRAMはランダムアクセス読み取り/書き込み性能に優れているため、組み込みアプリケーションでフラッシュの代わりとして非常に魅力的な候補になっています。

  • 密度: 現在の技術ではDRAMのチップあたりビット数には敵いませんが、容量を増やせる新しい強誘電体材料が見つかっています。
  • 速度: FRAMは最速のDRAMよりは遅いものの、アクセス時間が数ナノ秒の素子は理論的に可能です。ただし、読み取りが破壊的なため、メモリのサイクル時間が増え、連続読み取り間のインターバルが長くなります。
  • 消費電力: MRAMと同様にFRAMは低電力素子です。リフレッシュサイクルが不要で、不揮発データの書き込みに高電圧が必要ないためです。
  • 寿命: FRAMはフラッシュと比べてかなり多くの書き込み回数に耐えられますが、最終的にはインプリントと疲労の問題を避けられません。ただし、ほとんどの目的ではFRAMの寿命は無制限と見なすことができます。

放射線耐性

MRAMとFRAMに共通の、一部の専門分野で非常に魅力的な特長は、電離放射線に対する耐性です。電離放射線には、医療機器で使われる放射性元素や宇宙粒子などがあります。DRAM及びSRAMセルは、サイズが小さくなるにつれ、ますます「シングルイベント効果(SEU)」の影響を受けやすくなっています。SEUは、1個の宇宙粒子の影響でメモリビットの状態が反転してしまうことで、通常は一時的な現象ですが、元に戻らないこともあります。高信頼性機器をターゲットにした多くのマイクロコントローラチップに搭載されているフラッシュやSRAMでは、この問題を緩和するために誤り訂正符号を使用しています。

これらの技術のどちらも、またそれ以外の技術(下記参照)もまだ完全に「成熟」してはいませんが、進歩は続いており、市場にも製品が登場しています。Cypress Semiconductorは豊富なメモリチップ製品を揃えており、Texas Instrumentsは、同社のMSP430FRxxxxシリーズ16ビットマイクロコントローラのFRAMメモリバージョンを出しています。

その他の文献

Objective Analysis: New Memories for Efficient Computing (客観分析: 効率的なコンピューティング向けの新しいメモリ): このホワイトペーパーでは、現在及び将来のデジタルメモリ素子のアーキテクチャとそれぞれのメリットについて詳細に説明しています。

行き詰ってしまった場合は、是非Twitterで私の投稿をフォローしてください。新しいエレクトロニクスと関連技術、ロボットについて目星をつけた投稿のリツイート、宇宙探査などの興味深い記事にリンクしています。

 

Engineer, PhD, lecturer, freelance technical writer, blogger & tweeter interested in robots, AI, planetary explorers and all things electronic. STEM ambassador. Designed, built and programmed my first microcomputer in 1976. Still learning, still building, still coding today.