大容量のファイルメモリを構成するためには、三次元(3−D)セルアレイ構造のReRAMが有効である。ReRAMセルには、従来のフラッシュメモリにはない特徴があり、高速性能を実現するには、その特徴を活かしたメモリ動作仕様を設定することが重要である。
以下の説明では、ReRAMメモリセルの高抵抗状態を“リセット状態”、低抵抗状態を“セット状態”とし、高抵抗状態から低抵抗状態に遷移させる書き込み動作を“セット動作”、低抵抗状態から高抵抗状態に遷移させる書き込み動作を“リセット動作”と定義する。また、セット動作は、メモリセルに電圧を印加する“電圧モード”であり、リセット動作は、メモリセルに電流を印加し、発生するジュール熱により状態遷移をもたらす“電流モード”であるとし、電流モードでの状態遷移には、電圧モードでの状態遷移に対して、少なくとも2倍以上、実際には数倍乃至100倍といった時間がかかるものとする。更に、二値データの場合、高抵抗状態(リセット状態)をデータ“0”、低抵抗状態(セット状態)をデータ“1”とする。
メモリセルは、抵抗値を不揮発に記憶する可変抵抗素子と、セル選択のためのダイオードとを直列接続して構成される。非選択セルではダイオードを逆バイアス状態とするので、リーク電流が避けられず、特に逆耐圧リークの大きな不良セルによるデータの信頼性が問題になる。
なお、セットとリセット、高抵抗と低抵抗、状態遷移時間の関係は、メモリセル物質によって異なるが、セット動作とリセット動作での遷移時間が大きく異なること、その一方が電圧モードで他方が電流モードであることは、材料によらずいえることであって、以下の具体的な技術的検討結果は、それぞれのメモリ物質に合わせて翻訳しなおすことは容易である。
以下の実施の形態で示すメモリ仕様の特徴をまとめると、次の4点になる。
(1)多ビット同時アクセス
メモリセルの占有率を上げてビットコストを下げることはメモリが製品として成立するための大前提であり、このためにはメモリを構成するセルアレイのセル数を増やすことが有効である。しかしセル数が増えると、セルアクセスの待機セルの数が増え待機リークの総和も増える。
消費電力を抑えたメモリを目指すために待機セルのバイアス条件を工夫する必要があると同時に、大きなセルアレイから同時に多くのデータを転送するには、同一選択線で多ビットを同時アクセスできることが必要となる。
(2)読み出し書き込みモードの完全分離
ReRAMは、書き込み動作(セット、リセット動作)が特殊であるので、読み出しと書き込みが混在しないような仕様を考える必要がある。以下では、読み出しと書き込みの動作モードを完全に分離して使用できるような応用を想定して仕様を考える。具体的には、書き込みと読み出しを完全分離した書き込み読み出し分離モード(Write Read Isolated Mode:WRIM) を考える。
(3)“1”のみ書き込みモード
書き込みモードの高速化として、セット動作(“1”書き込み)が電圧モードで多ビット同時設定可能であることを利用する。即ち、セルアレイの一定領域の書き込みに際して、その領域全体を予めリセット状態に設定し(即ち“0”書き込みを行ない)、その後セット動作のみ(“1”のみ書き込み)を行なうという、“1”のみ書き込みモード(“1”only write mode)を導入する。
(4)ECCリフレッシュ
大容量ファイルメモリでは、データの信頼性が重要な要素であり、データを保証するためにオンチップECCシステムを利用したデータのリフレッシュ、即ちECCリフレッシュモードを備える。
以上のような仕様の概要から狙う市場として、データ転送に直接のメモリへのアクセスが有効で書き込みと読み出しが分離できる用途を考える。その一つとして、読み出しの高速データ転送が必要なゲームコンテンツ用の大容量メモリが考えられる。次に、撮像機器からの直接書き込みの高速転送が要求される高精細ビデオ機器の記録メモリがある。これらは読み出しと書き込みの完全分離した仕様のメリットを享受できる。
以下、それぞれの仕様を詳細を説明する。
多ビットアクセスを可能とするセンスシステムの工夫、データ転送の方法と多ビットの高速データ読み出しを想定したシステム、不良セルがある場合への多ビットデータ転送のセンスシステムの新たな工夫、書き込みと読み出しが完全分離した場合の特徴を引き出す動作モードと仕様の順に説明していく。
可変抵抗素子を情報記憶媒体として用いる大容量ReRAMの構成は、クロスポイントセル構成でかつ3Dセルアレイ構造を基本とする。まずこの基本構成を説明する。
ReRAM基本構成
図1は、一つの3Dセルアレイブロック1とその下地基板の読み書き制御回路2を示している。セルアレイブロック1は、クロスポイント型セルアレイが三次元積層されたもので、その信号配線であるワード線WLとビット線BLは、セルアレイブロック1の4辺に設けた垂直配線領域を利用して、下地基板に引き出される。
セルアレイブロック1のビット線方向両端で基板に降りたビット線BLは、ビット線デコーダ/マルチプレクサ21で外部からのアドレス信号とコマンドに従って選択され、センスアンプ回路22に接続される。読み出し時はセル電流と参照電流値の比較によりデータ確定をセンスアンプが行い、書き込み時はセンスアンプ系及びデコード系がセルに適切な書き込み電圧や電流を供給する。
セルアレイブロック1のワード線方向両端で基板上に降りたワード線WLは、ワード線ドライバ23に入る。このワード線ドライバ23は、外部アドレスやコマンドに従ってワード線レベルを選択的に設定する。
外部とのデータやり取りを行なうバス領域としては、この例ではビット線デコーダ/マルチプレクサ21とセルアレイブロック1の間に隙間を空けてここにバス24を設けている。従ってビット線BLはセルアレイブロック1からデコーダ/マルチプレクサに到達すまでの間にバス領域24の上空を通過していくことになる。ビット線信号はこのバス領域24を経てセルアレイ直下のセンスアンプ回路22に送られ、センス増幅または書込みではデータに従った書き込み電圧や電流に変換される。センスアンプ回路22と外部とのデータやり取りは、バス領域24を介して行なわれる。
図2は、センス系回路システムの一例の詳細回路図である。ここにはセルアレイブロック1内の一層のセルアレイ101が代表的に示されている。セルアレイ101のビット線BLとワード線WLの交点に、可変抵抗素子VRとダイオードDiが直列接続されたメモリセルMCが設けられる。セルダイオードのアノード側をビット線BL及び参照ビット線RBLとしている。
複数のビット線BLに対して、センス時の参照レベルが設定される一つの参照ビット線RBLが配置される。メモリセルMCの初期状態は、低抵抗のセット状態またはフォーミング終了状態である。この低抵抗状態を以後、データ“1”と呼び、高抵抗状態をデータ“0”と呼ぶ。
ビット線BL上のセルは、記憶させるべき情報に従って、ワード線WLを選択して高抵抗のリセット状態(“0”)を書き込んだり、リセット状態から再びセット状態への書き込みを行ったりするが、参照ビット線RBLの同じワード線で選択されるセル(参照セル)にはこれらの書き込み時に常に“1”書き込みを行いセル状態のリフレッシュを行う。この動作によって参照ビット線のセルを常に安定した“1”状態として、セルデータの読み出しの際の参照レベルを確保する。これは書き込み時(W時)に参照ビット線RBLのビット線スイッチSW2(NMOSトランジスタ)に、Vdd+Vt以上の昇圧パルスを与えることで設定される。
ワード線ドライバ102は、ロウアドレスにより選択されるワード線スイッチSW1(NMOSトランジスタ)がオンとなり、選択ワード線を接地電位Vssに接続する。スイッチトランジスタは、デコーダからの信号“from rdec_b”のLレベルで選択され、ゲートに与えるレベルVmによってそのオン抵抗が制御される。
スイッチSW1のゲートレベルVmは、フォーミング、“1”書き込み、“0”書き込み、読み出しに応じて切り換えられる。このレベル切り替えを行なうのは書き込み制御回路104である。
ビット線選択回路103は、カラムアドレスにより選択されたスイッチSW2(NMOSトランジスタ)により、選択ビット線をローカルバスLBに接続する。このスイッチトランジスタのオン抵抗も、デコーダからの信号“from cdec_b”信号がLレベルで選択されゲートに与えられるレベルVgによって制御され、フォーミング、“1”"書き込み、“0”書き込み、読み出しによってこのレベルが変えられることは、ワード線スイッチSW1と同様である。
ワード線スイッチSW1及びビット線スイッチSW2のNMOSトランジスタをそれぞれVm,Vgで駆動するドライバは、図2に示したような、PMOSトランジスタのソースにそれぞれVm,Vgを与えるCMOSドライバである。
参照ビット線RBLは、選択スイッチSW2を介して参照ローカルバスRLBに接続される。この参照ビット線RBLを接続するためのスイッチトランジスタのゲートレベルは、書き込み時(W時)にはVdd+Vtより高いレベルに一時的にパルス設定される。ここでVtはこのスイッチトランジスタの閾値である。読み出し時(R時)にはVreadなるレベルに設定される。
以上のワード線及びビット線選択時の制御ゲートレベルVm,Vgの発生回路である書き込み制御回路104の詳細は後に説明する。
ローカルバスLB及び参照ローカルバスRLBは、電流比較センスアンプ(SA)105の入力となる。書き込み時には制御信号/Write(=“L”)により制御されるPMOSトランジスタMPにより、ローカルバスLB及び参照ローカルバスRLBに電源レベルVddが供給される。
図3は、微小電流の比較を高速に行なう電流比較型センスアンプ(SA)105の構成である。このセンスアンプSAは、100nA以下の電流比較でも高速に確実にセンスを行うことが可能に構成されている。
具体的にセンスアンプSAは、VddとVssの間に、PMOSトランジスタM0,M8、NMOSトランジスタM10、PMOSトランジスタM2及びNMOSトランジスタM4が直列接続された第1の電流パス111と、PMOSトランジスタM1,M9、NMOSトランジスタM11、PMOSトランジスタM3及びNMOSトランジスタM5が直列接続された第2の電流パス112とが対称的に形成されている。
センスアンプの入力にはカレントミラー回路113,114が設けられていて、一方の入力/INの入力電流(参照電流)がもう一方の入力INの入力電流(センスすべきセル電流)の1/10になるようにしている。これは、参照セルがデータ“1”であって、参照ビット線には大きな参照電流が流れるので、センスアンプに与えられる参照電流を、データ“1”のときのビット線電流とデータ“0”のときのビット線電流の間に設定するためである。
即ち、入力IN側のカレントミラー回路113は、寸法比が10:10のPMOSトランジスタ対M12,M14により構成されて、入力IN側に流す電流と同じ電流をトランジスタM10のソースから電流経路111に供給する。入力/IN側のカレントミラー回路114は、寸法比が1:10のPMOSトランジスタ対M13,M15により構成されて、入力/IN側に流す電流の1/10の電流をトランジスタM11のソースから電流経路112に供給する。
第1の電流パス111のPMOSトランジスタM2とNMOSトランジスタM4の接続ノードが一方の出力ノードOUTとなり、第2の電流パス112のPMOSトランジスタM3とNMOSトランジスタM5の接続ノードが他方の出力ノード/OUTとなる。
第1の電流パス111のPMOSトランジスタM0,M2及びNMOSトランジスタM4のゲートは一方の出力ノード/OUTに共通接続され、第2の電流パス112のPMOSトランジスタM1,M3及びNMOSトランジスタM5のゲートは他方の出力ノードOUTに共通接続されて、CMOSラッチを構成している。即ち第1の電流パス111を構成するCMOSインバータと、第2の電流パス112を構成するCMOSインバータとが、入出力が交差接続されてラッチを構成する。
PMOSトランジスタM8,M9は活性化トランジスタであり、活性化信号/actによりゲートが制御される。NMOSトランジスタM10,M11は、電流パス111,112の電流制御用素子であり、信号vLTCによりゲートが制御されて、センスアンプ電流が決まる。
CMOSラッチを構成するNMOSトランジスタM4及びM5のゲートはそれぞれ、センス信号/SEにより駆動されるNMOSトランジスタM6及びM7のドレインに接続されている。これらのNMOSトランジスタM6,M7は、/SE=“H”の間オンして、CMOSラッチのNMOSトランジスタM4,M5をオフに保つ。
即ち活性化信号/act=“L”により電流パス111,112に流れる電流は、/SEが“L”になるまでは、それぞれNMOSトランジスタM7,M6を介してVssに流れる。そしてセル電流が導入された後、/SE=“L”のセンス時、NMOSトランジスタM6,M7がオフになってパス電流を遮断し、それらのドレイン電圧差がCMOSラッチにより正帰還増幅されることになる。
図4を用いてこの実施の形態のセンスアンプSAの動作を説明する。センス信号/SEが“H”の状態では、NMOSトランジスタM6,M7がオンであり、出力ノードOUT,/OUTは“L”レベルに保たれる。活性化信号/actが“L”になると、電流パス111,112に電流が流れる。そしてセル電流取り込み信号accREADが“H”になり、入力ノードIN,/INに接続されたビット線及び参照ビット線に電流を注入すると、セル電流の電流差に応じてNMOSトランジスタM6,M7のドレインに微小な電圧差が生じる。
セル電流差が反映される適当な時間ΔTの経過後、センス信号/SEが“L”になると、NMOSトランジスタM6,M7がオフになり、そのドレイン電圧差を増幅するラッチ回路の正帰還動作により、NMOSトランジスタM4,M5の一方がオン、他方がオフになる。即ち、NMOSトランジスタM6,M7がオンからオフに遷移する際に、セル電流差に基づくタイミングのずれがそれらのドレイン電圧に変換され、これが正帰還増幅される。
トランジスタペアM10,M11は、センス初期にはゲート信号vLTCを低いレベルVRRに設定してコンダクタンスを抑えて、電源Vddからのセンスアンプ電流を絞り、ペアM12,M13を介して供給されるセル電流差をセンスアンプの状態により強く反映するようにしている。センスアンプの初期センスによってセンスアンプのバランスがセルデータ電流差によって崩れて確定したら、そのゲート信号vLTCをVRRからVddより高いVPPにして、センスアンプに電源電圧を供給して出力をVddまでフルスイングさせる。このとき信号/accREADを立ちあげてセル電流のセンスアンプへの供給を遮断する。
微細化されたペアトランジスタのバラツキは製造工程の揺らぎによって生じるので、図3に示すように電流パス111,112は、許される限り多くの素子の直列接続とした方がバラツキが相殺されるので好ましい。そこで、M0−M1ペア、M8−M9ペア、M10−M11によって入力ノードと電源Vddの間を構成している。
特に、NチャネルトランジスタペアM10−M11はセンスアンプSAの動作のフィードバックループをなすPチャネルトランジスタペアM0−M1とペアM8−M9のバラツキの影響を抑える。すなわちNチャネルトランジスタのコンダクタンスを抑えて、より電源Vddに近い側にあるPチャネルトランジスタのドレインやソースの電位を上げて、Pチャネルトランジスタのコンダクタンスを上げている。即ち、PチャネルとNチャネルのコンダクタンスがそれぞれのバラツキの影響を抑える方向に作用する。
信号/accREADの立ち下げとセンス動作開始信号/SEの立ち下げの時間差ΔTは、/accREAD立ち下げ後のセル電流の注入が終わり、セル電流を十分反映するような入力電流になるまで待ってセンスが開始されるよう、タイミング調整を行う趣旨である。
書き込みコントロール回路104は、図5のように構成される。この回路に供給される信号は、書き込み制御信号/Writeとセルに書き込む情報である“data”であり、出力は、ワード線選択スイッチSW1とビット線選択スイッチSW2のNMOSトランジスタをそれぞれ駆動するゲート電圧VmとVgである。
コントロール回路104は、データ“data”により状態遷移するPMOSフリップフロップFFを有し、これにより制御されて、Vg_reset及びVppを制御信号Vgとして出力するPMOSトランジスタMP11及びMP12を有する。制御信号Vm側には、セット時(data=“1”)にVt+εを出力し、リセット時(data=“0”)にVddを出力するドライバDRV1が設けられている。このドライバDRV1は、図2において、ワード線スイッチSW1及びビット線スイッチSW2のゲート駆動部に設けられるものと同様のCMOSドライバである。
書き込み時(セット、リセット時)は、/Write=“L”によりPMOSトランジスタMP13,MP14がオンして、必要な書き込み制御電圧がVg,Vmに与えられ、読み出し時は、NMOSトランジスタMN11,MN12がオンして、VreadがVg,Vmに与えられる。
図6は、書き込み制御回路104により各動作モードでVg,Vmに与えられる制御電圧を示している。制御電圧の大小関係は、一例を挙げれば、Vss<Vt+ε<Vread<Vg_reset<Vdd<Vppである。但しこの例に限定されるものではない。またここでは、ワード線選択スイッチSW1及びビット線選択スイッチSW2が共にNMOSトランジスタの場合を想定している。
リセット時は、Vm=Vddにより選択ワード線について選択スイッチSW1がオンでVssに設定され、Vg=Vg_resetにより選択ビット線に選択スイッチSW2を介して必要なリセット電流が供給される。セット時は、Vm=Vt+εにより選択スイッチSW1が高抵抗のオン状態に設定されて、選択ワード線がVssに設定され、選択ビット線には、選択スイッチSW2がVppにより十分なオン状態に設定されて必要なセット電圧が与えられる。セルのフォーミングはモードとしてはセットと同じで、VmはVt+ε、VgはVppを与える。
即ちセット状態への遷移では、ビット線選択スイッチSW2はゲート電位Vgを上げて十分低抵抗にし、一方ワード線スイッチSW1ではゲート電位Vmを低くして、飽和領域での電流値を十分小さくしてリセット電流Iresetよりかなり小さな電流しか流さないようにして電流をクランプする。
リセット状態への遷移では、ゲート電位Vmを上げて、ワード線線選択スイッチSW1を十分に低抵抗の非飽和状態にして選択ワード線の電位変動を小さくする。一方、ゲート電位Vgを下げてビット線選択スイッチSW2を飽和領域で動作させてリセット状態になってもセルに印加される電圧がセット電圧以下になるようにする。
以上により、セット、リセット共に状態遷移を、状態振動を伴うことなく安定に行なうことが可能になる。
特にワード線選択スイッチSW1のNMOSトランジスタは、ゲートレベルVmによって、フォーミング前またはリセット状態の高抵抗セルが流す微小な電流では十分にVssに導通していると見なせること、そしてセット状態になって電流が増えた場合には非常に高抵抗と見なせることが重要である。そのためにはトランジスタの1μA電流のゲートレベル(いわゆる1μVth)を利用する。
高抵抗状態セルの抵抗が流す最大電流は10nA程度であるので、ワード線選択スイッチSW1のトランジスタ寸法に合わせてカレントミラーを構成することが必要となる。具体的に、図7に示すように、ワード線ドライバ102の選択スイッチSW1のNMOSトランジスタをチャネル幅Wとして、その100倍程度のチャネル幅を有する電流源NMOSトランジスタMN0を用い、定電流回路120から1μAの電流を供給してこのゲートレベルをVt+εとする。
これにより、ワード線選択スイッチSW1の最大に流すことが出来る電流は1μAの百分の一である10nAとなる。従って上述のように、セルが低抵抗状態に遷移して大きな電流を流し得るようになると、ワード線選択スイッチSW1が高抵抗素子として働き、リセット電流が流れるのを防止する。
ここまで説明したセンス系では多ビットの同時書き込みを検討していない。セルアレイを大きくして大きなデータ転送効率を得るためには、選択されたワード線へ多ビットの同時アクセスが出来ることが必要である。説明したセンス系で多ビットの書き込み行う場合の検討を以下に行う。
多ビット同時書き込み
図8は、多ビット“0”書き込みの例として、ふたつのビット線のメモリセルMCa,MCbに“0”書き込みを行い、一方のセルMCbがリセット完了して低抵抗状態“L”から高抵抗状態“H”へと変化する場合を示している。すなわち複数のビット線選択スイッチSW2のNMOSトランジスタにゲート電圧Vg=Vg_resetを与え、一本のワード線WLを選択してワード線選択スイッチのNMOSトランジスタにゲート電圧Vm=Vddを与える。
“0”書き込みは電流モードのリセット動作である。従って、同時に書き込みできるセル数は初期に低抵抗のセルの数の最大数としてワード線が引くことが出来る電流の許容範囲で制限され、この数のグループごとに多ビット書き込みを繰り返すことになる。グループ内のセルがリセット(“0”書き込み)され、高抵抗状態になると電流が流れなくなり、ワード線に流れ込む電流が減るので、残りのセルのリセットは問題なく継続できる。
次に図9は、多ビット“1”書き込みの場合である。ここでも二つのビット線上のメモリセルMCa,MCbに“1”書き込みを行い、一方のセルMCaが書き込み(セット)完了して、高抵抗状態“H”から低抵抗状態“L”へと変化する場合を示している。すなわち複数のビット線の選択スイッチSW2のNMOSトランジスタにゲート電圧Vg=Vppを与え、一本のワード線WLを選択してそのワード線選択スイッチSW1のNMOSトランジスタにゲート電圧Vm=Vt+εを与える。
“1”書き込みは、電圧モードのセット動作であるので、同時に書き込みできるセル数の制限は電気的な制約をほとんど受けずに、書き込みそのものはワード線WLの全セルに拡張することができる。しかし、ひとつでもセルが低抵抗状態“L”(=“1”)に設定されると、ワード線選択スイッチSW1に電流が流れ、選択ワード線WLをほぼVddに引き上げてしまう。このため選択ワード線WLに属するセルのうちひとつにしか“1”を設定することが出来ない。すなわち多ビットの“1”書き込みは不可能であり、1ビットずつの書き込みを行うことが出来るのみである。
以上のように、先に説明したセンス系で選択ワード線のセル対して多ビット書き込みが可能なのは“0”書き込みの場合であり、しかもグループ分けという制限がつく。さらに“0”書き込みは電流モードのリセット動作であるので、書き込みに時間がかかることを考えると、多ビット書き込みのデータ転送の高速化が難しいことがわかる。そこで新たにセンス系を工夫する。
図10は、図2に示したセンス系システムに対して、セルMCの極性を反転している。即ちセルアレイ101aにおいて、セルダイオードのカソード側をビット線BLとし、従ってワード線選択スイッチSW1とビット線選択スイッチSW2の働きを逆にしている。ワード線WLとビット線BLの設定電位レベルも入れ替わる。
ビット線BL上のセルは記憶させる情報に従ってワード線WLを選択して高抵抗のリセット状態(“0”)を書き込んだり、リセット状態から再び低抵抗のセット状態(“1”)の書き込みを行ったりするが、参照ビット線RBL上の同じワード線で選択されるセル(参照セル)セルには、これらの選択セル書き込み時に常に“1”書き込みを行いセル状態のリフレッシュを行う。
このリフレッシュ動作によって参照ビット線の参照セルを常に安定した“1”状態としてビット線のセルデータの読み出しの際の参照レベルを確保する。これは図の書き込み時(W時)の参照ビット線RBLの選択スイッチSW2のレベルVt+εを他のセルの書き込みと同時に与えることで設定される。
ワード線WLの選択は、ワード線ドライバ102aのデコードされたスイッチSW1(NMOSトランジスタ)をオンして、選択ワード線を電源電位Vddに接続することによって行われる。スイッチSW1はデコーダからの信号“from rdec_b”が“L”レベルで選択され、そのオン抵抗はゲートに与えるレベルVgによって制御される。フォーミング、“1”書き込み、“0”書き込み、読み出しによってこのレベルを変える。
ビット線BLの選択は、ビット線選択回路103aのデコードされたスイッチSW2(NMOSトランジスタ)をオンすることによって、選択ビット線BLをローカルバスLBに接続することによって行われる。スイッチSW2はデコーダからの信号“from cdec_b”の“L”レベルで選択され、そのオン抵抗はゲートに与えられるレベルVmによって制御される。フォーミング、“1”書き込み、“0”書き込み、読み出しによってこのレベルを変える。
参照ビット線RBLについては、参照ローカルバスRLBにこれを接続するためのスイッチSW2のトランジスタゲートレベルは、書き込み時(W時)にはVt+εにされる。ここでVtはこのトランジスタの閾値である。読み出し時(R時)にはVreadなるレベルに設定される。
以上のゲートレベルVg,Vmのレベル発生回路である書き込みコントロール回路104は、先のセンス系システムの場合と同じである。
ローカルバスLB及び参照ローカルバスRLBは、電流比較センスアンプ(SA)105aの入力となる。ローカルバスLB及び参照ローカルバスRLBは、書き込み時は制御信号Write=“H”によりオン制御されるNMOSトランジスタMNにより、低レベル電源Vssに接続される。
微小電流の比較を高速に行なう電流比較センスアンプ(SA)105aは、センスする電流の向きが先のセンス系システムの場合と変わるので、その構成は先のセンスアンプ105と若干異なり、図11のようになる。
センスアンプSAの入力にはカレントミラー回路113a,114aがあり、/INの入力電流がINの入力電流の1/10になるようにしている。先のセンス系とは電流の流入、流出が逆になるので、カレントミラー回路113a,114aは、NMOSトランジスタ対(M12a,M14a),(M13a,M15a)を用いたNMOSカレントミラーである。
参照ビット線RBLのセルは“1”であり、その抵抗によって読み出し時に信号accREADが“H”になって流れる電流の十分の一の電流が参照電流としてセンスアンプSAから流れ出すようにしている。即ち、ビット線BLのセル“1”の電流よりも電流量が少なくセル“0”のそれよりも多い参照電流を生成している。
センスアンプの基本的動作は/SEが“H”の状態で/actを下げてトランジスタM8−M9ペアをオンしてセンスアンプに電流を流し、さらにaccREADを立ち上げてセルが接続されたビット線対からの電流をIN,/INを通してビット線BLから引き出し、このときのセル電流と参照セル電流の十分の一程度の参照電流との差を線形領域から飽和領域を経て遮断されるトランスタペアによってドレイン電圧差として増幅してラッチする。
その他の内部動作は先のセンスアンプ105と同様である。
センスアンプの初期センスによって、バランスがセルデータ電流差によって崩れて確定したら、ゲート信号vLTCをVRRからVddより高いVPPにしてセンスアンプに電源電圧を供給し、出力をVddにフルスイングさせる。このとき信号accREADは立ち下げてセル電流のセンスアンプへの供給を遮断する。出力OUTと/OUTは、先のセンスアンプ105と逆になるのはセンスする電流の向きが逆転するためである。
図12は、信号とノードの電位の変化を、図4と対応させて示している。信号accREADの立ち上げとセンス動作開始信号/SEの立ち下げの時間差ΔTは、accREAD立ち上げ後のセル電流の引き出しが終わり、セル電流を十分反映するような入力電流になるまで待ってセンスが開始されるようにタイミングを調整するためである。
多ビットアクセス対応センス系システム(1)
図13は、図10以下で説明したセンス系を用いた、多ビット同時アクセス対応センス系システム(1)である。図13には、図10を拡張して、同時アクセスされるビット線BLとして、二つのビット線BL1,BL2を示した。これらはそれぞれローカルバスLB1,LB2を介して、別々のセンスアンプ105aに接続される。
この図のビット線BLは参照ビット線RBLも含めて同時に選択される。書き込みの際に参照ビット線のセル(参照セル)は常に“1”が書き込まれるのは先に説明した。複数のビット線に関しては選択ワード線WLに属するセルに同時に“1”と“0”を書くことは、ワード線選択スイッチの設定が異なるので不可能である。
そこで、まず選択ワード線WLのセルに一括書き込みが出来る電圧モードの“1”書き込みを参照ビット線RBLを含めて行い、その後電流の許容範囲でグループ分けした電流モードの“0”書き込みを必要なビット線に対して行なうという、2段階書き込みを行なうことになる。
まずワード線WL1が信号“from rdec-1_b.”が“L”になって選択される。ビット線選択スイッチSW2は、参照ビット線RBLではVt+ε、ビット線BL1,BL2では信号“from cdec-1_b.”と“from cdec-2_b.”が“L”になってともに選択され、書き込みデータとして信号“1-Write”が“H”で書き込みコントロール回路104から“1”書き込み用のゲート電圧VmとVgが出力されて、データ“1”がセルに書き込まれる。
次に信号“1-write”が“L”になって“0”書き込み用のゲート電圧VmとVgが出力される。このとき、参照ビット線RBLの選択スイッチSW2はオフ、ビット線BL1,BL2の選択スイッチSW2はこれらが“0”書き込みを行なうビット線でありかつ同じグループに属していれば同時にオンして、二つのセルに同時に“0”が書かれる。ビット線BL1,BL2が異なるグループに属していれば時間差をおいてオンして、“0”が書き込まれる。このときすべてのローカルバスLBは、信号“Write”=“H”によりVssに接続され、センスアンプ105は動作しない。
読み出しのときは同時選択される参照ビット線RBLおよびビット線BL1,BL2がすべて選択され、おのおのセンスアンプ105に接続される。
以上のようにこのシステムでは、書込みが、最初の“1”書き込みと、その次に必要なビット線のみに対する“0”書き込みという、2ステップになることが特徴である。
図14は、以上の多ビット同時読み出しに適用されるセンスアンプ回路構成例である。選択ワード線WLから同時読み出しが行なわれる選択ビット線BLの数だけセンスアンプ105aが同時に活性化される。この同時選択数をkとしてk個のセンスアンプ105aの一方の入力ノード/INは共通でひとつの参照ビット線RBLに接続される。もちろん、同時選択のビット線BLがセルアレイ上分散していて環境が異なれば、ほぼ環境が同じものにまとめて参照ビット線RBLを共通化すればよい。もう一方の入力ノードは、それぞれのビット線BLに対応して、IN_1からIN_kまでの個別ノードとなる。
センスアンプ入力部のカレントミラー回路113a,114aのノードVNa,VNbは共通化できる。参照ビット線RBL側のカレントミラー回路114aのトランジスタ寸法比は共通接続される数kに対して個々のセンスアンプで1:10/kの比として、全体でまとめたときに参照ビット線RBLの電流がビット線BLに対して1:10の電流比になるようにする。
ビット線へのデータ書き込みの際には、前述のように2ステップ書き込みを行なうが、この際のビット線選択回路103aの選択スイッチSW2の制御を行なうビット線デコーダについて説明する。
2ステップ書き込みの第1ステップとして、同時アクセスビット線のすべての選択セルを“1”にする方法を先に説明したが、この第1ステップを、“1”を書き込むビット線BLのみに選択的に“1”書き込みを行なうようにしてもよい。
図15は、この場合のビット線デコーダ130の構成を示している。即ち“1”“0”個別書き込みを行なう場合のデコード回路である。例えば信号“1-write_b.”が第1ステップ、信号“0-write_b.”が第2ステップで立ち下がる信号で、“data-x_b.”が書き込むデータの反転信号であるとき、アドレス“Add.”で選択されたビット線スイッチの信号を各ステップでデータに従った選択信号“from cdec-x_b.”としての立ち下げを行なう。ここに、“x”には対応するビット線の番地が入る。
このビット線デコーダ130は、書き込むデータの“1”と“0”を区別するために、回路のロジックゲートは多くなる。
これに対して、図16は、第1ステップですべてビット線の選択セルに“1”書き込みを行なう場合のビット線デコーダ130aである。即ち、“1”全て“0”個別の書き込みを行なう場合である。第1ステップでは“1”を全てのビット線BLについて書くので、信号“0-write”が“L”となる第1ステップではデータに関係なくアドレス“Add.”で選択されたビット線スイッチが信号“from cdrc-x_b.”を“L”にして選択される。第2ステップでは“data-x”が“0”のビット線スイッチのみが選択される。
図15と図16を比較して分かるように、全てのセルに一旦“1”を設定して、また“0”を設定しなおすことは、一見無駄な設定があるものの、回路規模を小さいものとする上で好ましい。またこの書き込み方式の場合、セルが一旦セット状態に必ずなるので、セル状態を活性化するフォーミングを行なうのと同じ効果も期待でき、セルの動作の安定化にも寄与することも期待される。
以上説明した選択ワード線での多ビット同時アクセス方式を用いて、大容量メモリの構成法について説明する。
大容量メモリ構成法
図17は、セルアレイブロックを構成する単位セルアレイ(即ちマット)の大きさが、4kWL×1kBL(4k本のワード線WLと1kのビット線BL)のアレイユニットを11.5個まとめたセルアレイである場合について、センスアンプとデータバスの関係を示している。即ち、基本的なセルアレイブロックとして、マットあたり4kWL×11.5kBL=46Mbのセルアレイとする。
セルアレイブロックには、46個のセンスアンプSAが設けられる。即ち、マットのビット線方向両端から引き出されるビット線がビット線デコーダ/マルチプレクサ130a,130bをとおして接続されるように、それぞれの辺に対して23個ずつセンスアンプSAが配列される。1本のワード線WLがワード線ドライバ131a或いは131bにより選択されると、46本のビット線BLが両辺から23本ずつ選択され、46個のセルがアクセスされることになる。
バス133a,133bにはワード線WLやビット線BLを選択するアドレスとビット線から選択接続されたデータ線などが走るが、ビット線デコーダ/マルチプレクサ130a,130bとワード線ドライバ131a,131bの交差する領域には、ワード線ドライバを選択駆動するプリデコーダ132a−132dが設けられる。
図18は、以上の46Mb/マットのセルアレイブロックのグループ分けとデータバスと示した。各セルアレイブロックのビット線デコーダ/マルチプレクサを横切って走るバス133a,133bは上下それぞれ23ビットである。セルアレイブロックトの一端にはさらに各138ビットのバス134a,134bが2本走り、これらのバスにバスゲート135を介して各セルアレイブロックからのバス133a,133bが選択的に接続される。
セルアレイブロックでひとつのワード線WLを選択した場合にアクセスする46個のセルをどの様な場合でも同時にアクセスできれば好ましい。しかし、電流モードでの書き込みの際には1本のワード線に電流が集中してしまうので、セルを複数グループに分けて少しずつ書き込み動作を行うことになる。すなわちリセットの“0”書き込みでは46個のセルを小分けして順にシリアル書き込みを行う。
図18には、この小分けするグループとそのアクセス順番の一例を示している。図では同時に電流モードで書き込むセルの数は2つとして、セルアレイブロックをマットあたり、2Mbよりなる23のグループに分割している。図には、各グループの番号1〜23を示しており、この番号が例えばアクセス順になる。グループの順次選択はシフトレジスタなどで行えばよい。
電圧モードでのデータ“1”書き込み(セット)や、微少電流を流す読み出しモードではすべてのグループの同時アクセスを行う。
なお、参照ビット線の配置は、図17,18に破線で示すように、1kBL毎に1本設けて、センスするセルの環境に近い参照セルを用いてセルと参照セルの共通のディスターブ成分を除くようにしている。
図19は、セルアレイブロックとデータバスとの関係を実際のメモリチップ構成例について示したものである。図18に示した、46Mbの単位セルアレイブロックを四角で表示する方法を用いて、m層のマットで、8Gb×m+832Mb×mの容量のReRAMチップのセルアレイブロック152を表している。この構成例は16ビットデータを並列に読み書きする×16タイプの例である。
具体的には、46Mb構成のマットから構成される単位セルアレイブロックをx方向に8個、y方向には24個並べたマトリックスであり、一層で8Gb+832Mbのセルを持ち、積層マット数をmとして、全体で8Gb×m+832Mb×mとなる。
この例では全体のメモリマットのうち1層が選択され、その中で4分の1の分割動作を行っている。図の破線で囲ったセルアレイ部分が、あるアクセスのときに同時活性化される部分を示している。チップの中でなるべく均等に活性化されるようにしている。
後にその動作過程を説明するが、このメモリシステムではECC回路150を搭載して、4ビットまでのエラー訂正が可能である例を示している。ECC回路150に用いるチェックビット分のメモリセルが各マットで832Mbである。
セルアレイから一括で読み書きされるデータは128ビット×16+40ビット×4であり、これらのデータは各単位セルアレイブロックからの138ビットバスによって転送される。各IOあたり128ビットのデータがチップ外部とやり取りされるがこの単位を以下バーストと呼ぶ。
バースト用の読み出し或いは書き込みデータを一時保持するのがバッファレジスタ151である。これは、ECCのチェックビット40ビットと合わせて、各IOあたり138ビットのバッファである。
このバッファレジスタ151とECC回路150との間でデータをやり取りして、エンコード(書き込み時のチェックビット生成)或いはデコード(読み出し時のエラー訂正)を行い、バッファレジスタ151にECC処理したデータを上書きして保持し、外部またはメモリセルアレイに転送する。
バッファレジスタ151は、後述するように2系統設けられ、これをインターリーブして使うことにより、ギャップレスのデータの読み書きをチップ外部と行うことが可能としている。その転送速度はデータサイクル7.5nsでありIO当り133Mbpsである。メモリチップとしては266MByte/sのデータ転送速度を実現する。
以下、バッファレジスタ151とメモリセルアレイ及び外部とのデータの転送の詳細について説明する。メモリセルアレイとバッファレジスタ間のデータ転送を“内部データ転送”或いは単に“内部転送”といい、バッファレジスタと外部とのデータ転送を“外部データ転送”或いは単に“外部転送”という。
書き込みデータ転送
まず、図20を参照して、書き込みのデータ転送について説明する。
×16IO構成の場合はIOあたりのバーストが128ビットでこれが16あるので、2048ビットのバッファレジスタに書き込みデータが格納される。具体的に、2048ビットのデータとECCのチェックビット40ビット×4を格納するためのバッファレジスタとして、512ビット+40ビットの4個のバッファレジスタREG1−REG4が用意される。
これらのバッファレジスタに格納された2048ビットの書き込みデータは、ECCの符号化のためのエンコードを行い、40ビットのチェックビットを付加して同じバッファレジスタに上書きされる。即ちECCのエンコード処理はデータ512ビット毎であるので、4回の時分割処理が行われ、エンコードの時間は約50nsであるので、すべてのデータのエンコードには50ns×4=200nsの時間を要する。
バッファレジスタREG1−REG4に上書きされたECCデータコードは一回の内部転送にほぼ電流モードのリセット(“0”書き込み)で2μsの時間をかけてセルアレイに転送される。従ってmグループに分けて転送する場合は、2μs×mの時間がかかる。
図21は、2系統のバッファレジスタREG−A,REG−Bにより行なう書き込みのインタリーブ動作を示している。先ず、バッファレジスタREG−Aに外部書き込み転送を行なう(外部書き込み転送(1))。続いて、レジスタREG−Aのデータを内部転送書き込みする(内部書き込み転送(1))。この内部書き込み転送は、ECCのエンコード処理と同時に、セルアレイのバーストアドレスに“1”書き込みを一括して行い、チェックビットと共にバッファレジスタREG−Aに上書きした後、“0”書き込みを行なうという、2ステップの書き込みになる。
この内部書き込み転送(1)の間に同時に、外部書き込み転送(2)として次の書き込みデータをバッフアレジスタREG−Bに取り込む。そして、バッファレジスタREG−Bのデータの内部書き込み転送(2)の間に同時に、バッファレジスタREG−Aに次の書き込みデータを取り込む(外部書き込み転送(3))。以下、同様の動作を繰り返す。
図21の書き込みでは、2ステップの書き込みを行うものとしてバッファレジスタのデータに対してECCエンコード処理中にセルアレイのバーストアドレスセルに“1”書き込みを一括して行うシークエンスを例にしているが、“1”と“0”とを同時に書き込むことができる場合はこの一括“1”書き込みの必要ない。いずれの方法を用いるかは回路やシステムによって決まる。
読み出しデータ転送
図22は、データコードをメモリセルアレイからバッファレジスタに転送しバーストで読み出す読み出しデータ転送についての説明図である。×16IO構成の場合、IOあたり128ビットのバースト分のデータコード(512ビット+40ビット)×4を4つのバッファレジスタREG1−REG4にセルアレイから転送する。この内部データ転送には100nsの時間を必要とする。
バッファレジスタREG1−4のデータコードは、ECC回路によってデコードされてエラーが訂正されたデータとなるが、ECC回路によるデコードは時分割によって4回で×16IOのバースト分のデータ処理が行なわれ、バッファレジスタREG1−4に上書きされる。ECCのデコードに要する時間は約200nsであり、これを4回繰り返すので800nsでECC処理が終わる。
最終的にバッファレジスタREG1−4にはエラー訂正されたデータとチェックビットが保持される。バッファレジスタのチェックビットをデータコードから除いたデータ部分を、バーストで順次IOから出力することになる。
図23は、2系統のバッファレジスタREG−A,REG−Bにより行なう読み出しのインタリーブ動作を示している。先ずバッファレジスタREG−Aに、上述した読み出しデータ転送(内部読み出し転送(1))を行なう。そして、このバッファレジスタREG−Aのエラー訂正されたデータを外部にバースト出力している間(外部読み出し転送(1))、同時にバッファレジスタREG−Bに、次の読み出しデータ転送を行なう(内部読み出し転送(2))。
このバッファレジスタREG−Bのエラー訂正されたデータを外部にバースト出力している間(外部読み出し転送(2))、バッファレジスタREG−Aに、次の読み出しデータ転送を行なう(内部読み出し転送(3))。以下、同様の動作を繰り返す。
書き込み手順
以上の内部データ転送で説明した、ECC処理をバッファレジスタの保持データに対して行う方法についての書き込み手順を、図24及び図25にまとめた。
なおセルのデータ保持の信頼性が高く、ECCを必要としない場合は、単にバッファレジスタのデータに対してECCをかけての上書き動作が省略できることになる。
図24は、選択ワード線の同時書き込み転送ビット数が許容範囲内の場合の書き込み手順である。書き込みは2ステップで行う方法を想定している。
バーストアドレスの取り込みとバッファレジスタへの書き込みデータの取り込みを行い(ステップS1)、その後バッファレジスタのデータに対してECCエンコード処理を行い、同時にバーストアドレスのセルと参照セルに対して“1”書き込みを行なう(ステップS2)。
この“1”書き込みは、対応するセルへの一括フォーミングを兼ねたセット動作となる。次にチェックビットを整えられて上書きされたバッファレジスタ内のデータのうち、“0”データのみを対応するバーストアドレスのセルに対して“0”書込みする(ステップS3)。
図25は、選択ワード線の同時書き込み転送ビット数が許容範囲以上の場合の書き込み手順である。ここでも書き込みは2ステップで行なう方法を想定している。
バーストアドレスの取り込みとバッファレジスタへのデータの取り込み(ステップS11)の後、バッファレジスタのデータにECCをかけると同時に、バーストアドレスのセルと参照セルに対して“1”書き込みを行う(ステップS12)。これも対応するセルへの一括フォーミングを兼ねたセット動作である。
ECC処理が終わりチェックビットを整えられて上書きされたバッファレジスタ内のデータのうち“0”データのみを対応するバーストアドレスのセルに“0”書き込みを行なう。この“0”書き込みは、書き込み電流が許容範囲に納まるように一括書き込みのビット数を制限したグループ毎に順次行なう。即ち、選択ワード線のセルがm個のグループに分けられた場合は、m回の“0”書き込みステップS13_1〜S13_mを繰り返すことになる。
次に、内部データ転送と並行して行われる外部データ転送(外部とバッファレジスタとの間のデータ転送)のスピードの関係をいくつかの転送の組合せに対して説明する。
読み出しバーストサイクル
読み出しバーストサイクルの場合、図26に示すように、例えば、バッファレジスタREG−Bからの外部へのデータ出力動作(外部読み出し転送)と並行して、バッファレジスタREG−Aに対してセルアレイデータの読み出しデータ転送(内部読み出し転送)が行なわれる。この内部データ転送には×16IO構成でECCを使用するものとして、900ns以上の時間が必要であった。
外部データ転送の読み出しサイクル時間tRCを7.5nsとするとバーストの長さは128サイクルであるので、バースト時間は960nsとなる。従ってバースト時間内に内部データ転送を完了することが出来、外部データ転送にサイクルのギャップを生じさせることなくバーストを行なうことが出来る。×16IOとしてのデータ転送速度は266MByte/sに達する。
上書きバーストサイクル
上書きバーストサイクルの場合、図27に示すように、例えば、バッファレジスタREG−Bへの書き込みデータの取り込み(外部書き込み転送)と並行して、バッファレジスタREG−Aからセルアレイへの書き込みデータ転送(内部書き込み転送)が行われる。この内部データ転送には、×16IOでECCを使用するものとして、2μs×m+200ns以上の時間が必要であった。
128サイクルでのバッファレジスタへの外部データ転送は内部データ転送時間より短いとデータサイクルギャップが生じるが、書き込みデータ転送がデータ転送の速度を律するので、この書き込みバーストのサイクル時間を早くしてもデータ転送速度の観点からは意味がない。バッファレジスタへの書き込みのサイクルtWCを数十nsとして余裕を持たせ、128ビットごとに書き込むデータを分割して書き込みデータ転送が終了するごとにデータ転送を行なうことになる。
この上書きバーストサイクルは、メモリが記憶するデータが予め設定されていたり、データが書き込まれた状態のメモリにその古いデータに上書する形で新データを書き込む場合に利用され、データのメモリへの書き込みに十分な時間をかけられる場合(データロード等)に利用される。
ECCリフレッシュ
次に、上述の上書きバーストサイクルと関連したリフレッシュについて説明する。ReRAMのメモリセルではセルアクセスの際のディスターブによってセルのデータ保持状態が弱くなりデータ保持不良が避けられないと思われる。そこでECC回路を用いてデータの訂正を行なうことが必須となる。しかし、エラー数がECCによる訂正可能な最大エラー数以上になると対処できない。このため、読み出しバーストサイクルの際のECCの使用状況を反映させてデータのリフレッシュを行なう動作モードを考える。
このECCリフレッシュモードは書き込み動作が基本となるので、2ステップ書き込みが主に使用されることになり、再フォーミング/セットを兼ねたECCリフレッシュとなる。
図28はそのECCリフレッシュの手順を示している。まずリフレッシュの対象となるバーストアドレスは、読み出しバーストサイクルの内部データ転送でのECCサイクルで出される訂正可能エラー数に制限されたエラー訂正を使用した旨の信号に従って記憶して、ECCリフレッシュ適用バーストアドレスとして用いる。図28ではリフレッシュでこのアドレスが適用されるのが、2系統のバッファレジスタREG−A,REG−BのうちレジスタREG−Aへの内部データ転送サイクルからであるとして手順を説明する。
ECC適用バーストアドレス 1を記憶し(ステップS21)、このデータをバッファレジスタREG−Aへ内部データ転送して(ステップS22)、ECCのデコードを行なう(ステップS23)。
その次のECCリフレッシュ適用のバーストアドレスiがあれば、これを記憶し(ステップS24)、そのバーストアドレスのデータをバッファレジスタREG−Bに内部データ転送して(ステップS25)、ECCのデコードを行なう(ステップS26)。
バッファレジスタREG−BのデータのECCによるデコードと並行して、バッファレジスタREG−Aのすでにデコードされたデータについてバーストアドレスのセルと対応する参照セルの“1”書き込み(フォーミング/セット)を行なう(ステップS27)。この“1”書き込みは、一括して、または“1”データのみのアドレスに対して選択的に行なう。
この後、バッファレジスタREG−Aに保持されたデータのグループ毎の“0”データのアドレスへの“0”書き込みを順次行なう。グループがmとして、この“0”書き込みは、ステップS28_1〜S28_mのmステップになる。
この“0”書込みが完了したら、バッファレジスタREG−A,REG−Bを入れ替えてその対応するバーストアドレスに対して同様の動作を、ECCリフレッシュ適用アドレスがなくなるまで行なう。但しリフレッシュされるエラービット数は数ビットであるので、多くの場合“0”書き込みは一括転送しても許容電流の範囲に入るものと思われる。この場合は、“0”書込みが1回で済み、通常の上書きバーストより短い時間で終了する。
次に、上述したECCリフレッシュのサイクルタイミング等との関係を、リフレッシュバーストサイクルとして、図29を用いて説明する。
リフレッシュバーストサイクルが開始されると、最初のリフレッシュバーストアドレス1に対して読み出しデータ転送を、例えばバッファレジスタREG−Aに対して行なう。バッファレジスタREG−Aのデータは最終的にはエラー訂正されたデータとして整えられ、この転送には900nsの時間を要する。
次に、次のリフレッシュバーストアドレス2のデータをバッファレジスタREG−Bに読み出しデータ転送し、このデータにECC処理を行ないながら同時に、バッファレジスタREG−Aのデータを利用してリフレッシュバーストアドレス1のセルに“1”書き込みを行ない、続いて“0”書き込みを行なって、リフレッシュバーストアドレス1のリフレッシュが完了する。
バッファレジスタREG−Aからの書き込みデータ転送は、すでに先の読み出しでデコードされているので、ECC処理を必要としない。このリフレッシュバーストアドレス2のサイクルには、バッファレジスタREG−Bへのデータ転送に100nsと、その後のECCなしの書き込みデータ転送に2μs×mが必要となる。
この転送が終了したら、次に3番目のリフレッシュバーストアドレス3のデータをバッファレジスタREG−Aに転送し、このデータにECC処理を行いながら同時に、バッファレジスタREG−Bのデータによりリフレッシュを行なう。
バッファレジスタREG−A,REG−Bを順次入れ替えた以上の動作を、リフレッシュアドレスがなくなるまで繰り返す。
最初のリフレッシュバーストサイクル以外は、サイクル時間が100ns+2μs×mである。セルアレイのリフレッシュが少なくとも1回完了するには最初の900nsと合わせて1μs+2μs×mの時間が必要であり、リフレッシュには数十μsオーダーの時間が必要である。但しリフレッシュされるビット数は数ビットであり、“0”書込みを一括で行なうことが出来るので、m=1とすることができる。図29ではm=1のときの時間を示した。
ここまで、書き込みは上書きを基本として考えて、データ書き込みには比較的長い時間をかけてデータを書き込み、高速に読み出すようなメモリの仕様を想定してきた。しかし、読み出しと同等以上の書き込みスピードを要求される使用方法として、例えば高精細画像のリアルタイムでの記録などがあり、そのような高速書き込みにも対応できることが望ましい。
ReRAMのあるセル抵抗変化物質の抵抗値変化は、電圧モード(セット)では急速に起こり、50ns以下で確実に低抵抗化できる。そこで時間のかかる電流モードの書き込み(リセット)を完全に分離して電圧モードのみでの高速書き込みを行なう。このような書き込みモードを““1”のみ書き込み”と定義して、以下にその手順を説明する。
“1”のみ書き込み手順
この書き込みモードを行なうには、下準備としてデータを書き込む領域が事前にリセット状態になっていることが必要である。この準備を行なうのが、図30における(1)第1ステップ:““0”オール書き込み”モードである。このモードではリセットするバーストアドレスと“0”データを例えばバッファレジスタに回路的にセットして(ステップS31)、バーストアドレスのセルの“0”書き込み(即ちリセット)を行なう(ステップS32)。
“0”書き込みは電流モードであるので、必要ならバーストアドレスをグループに分けて順次行なうことが必要となる。この“0”書き込みを必要なバーストアドレス範囲に対して行い、セル領域のリセットの終了となる。
この“0”オール書き込みモードは、メモリユーザが使用中にアドレス領域指定して行なうことも出来るし、或いはメモリの出荷段階でメモリのセルアレイ全領域をリセット状態とする“0”オール書き込みを行なってもよい。
このように下準備されたメモリ領域に対して、(2)第2ステップ:“1”のみ書き込み”モードを実行する。これは電圧モードでの書き込みであるので、同時アクセスの多ビットに対して一括書き込みすることが出来てデータの高速サイクルでの書き込みが可能となる。
“1”のみ書込みモードの手順は、まずバーストアドレスの取り込みとそのアドレスのデータのバッファレジスタへの取り込みを行ない(ステップS41)、このデータに対してECCでチェックビットを生成する(ステップS42)。そして、バッファレジスタ内の“1”データのみを対応するバーストアドレス内のセルと参照セルに一括して書き込む(ステップS43)。
この“1”書き込みは電圧モードであるので、グループ分けした書き込みは必要なく、またセルの抵抗変化も短時間で起こる。以上のバーストアドレス取り込み、データ取り込み及び“1”書き込みを必要サイクル繰り返すことにより、高速書き込みが完了する。
以上の“1”のみ書き込みモードの説明において、データを書き込む領域を予めリセットする“0”オール書き込みを行なうことを説明した。これに関連して、セルアレイのある領域を“1”に設定する““1”オール書き込みバーストサイクル及び、“0”に設定する““0”オール書き込みバーストサイクル”について、具体的に説明する。
図31は、“1”オール書き込みバーストサイクルの説明図である。これは製造したメモリをまず安定した動作をさせる準備段階と、ある程度繰り返し使用したメモリサイトの状態を回復するためのフォーミングとに主に利用される。ここでは、セルアレイのバーストアドレスに“1”データを書き込みデータ転送するものとして示した。
無論データ転送しなくても、2ステップ書き込みの第1ステップのようにデコーダ系の制御のみでこの書き込みを行なうことが出来る。この書き込みはセルをセットする電圧モードであるので、選択したワード線に対して全てのバースト内の全セルを一括してセットでき、しかもこの時間は約200nsもあればよい。200nsのサイクルの繰り返しで必要な領域をフォーミング又はセットすることになる。フォーミングとセットの電気的環境の違いはセルに印加する最高電圧の違いであり、一般にフォーミングの方が電圧が高い。
図32は、フォーミングされて安定化したセルに対して高速書き込みの下準備としてセルアレイのある領域を“0”に設定する“0”オール書き込みバーストサイクルの説明図である。ここでは、セルアレイのバーストアドレスに“0”データを書き込みデータ転送するものとして示した。
この場合も、データ転送せず、2ステップ書き込みの第1ステップのようにデコーダ系の制御のみでこの書き込みを行なうことが出来る。この書き込みはセルをリセットする電流モードであるので、選択したワード線に対して全てのバースト内の全セルを一括してリセットすることは出来ない。ワード線ドライバの電流許容範囲に同時選択セルの数を制限したグループに分けて順次設定して行く。各設定時間は2μs程度であるので、mグループに分かれた場合2μs×m以上の時間が必要となる。このサイクルを繰り返して必要な領域をリセットすることになる。
次に“1”のみ書き込みデータ転送について、図33を用いてバッファレジスタとセルアレイとのデータ転送の詳細を説明する。セルアレイの全領域或いは所定の書き込み領域は、すでに準備書き込みとして全セルが“0”書き込みされているものとする。
×16IO構成の場合は、IOあたりのバーストが128ビットでこれが16あるので、2048ビットのバッファレジスタにデータが格納されるが、バッファレジスタは、512ビット+40ビット構成の4つREG1−REG4として、これらに512ビットずつ格納される。
バッファレジスタに読み込まれたデータは、ECCの符号化のためのエンコードを行い、40ビットのチェックビットを付加してバッファレジスタに上書きされる。ECC処理はデータ512ビットごとであるので、4回の時分割処理が行われる。エンコードの時間は約50nsで、すべてのデータのエンコードには50ns×4=200nsの時間を要する。
バッファレジスタに上書きされたECCデータコードは“1”のみがセルに書かれるので、ECC終了後の内部転送には電圧モードのセットで一括設定が出来て、200nsの時間でセルアレイに書き込まれる。
このECCと内部データ転送に並行して、次のバーストデータがもう一方のバッファレジスタに入力される。即ち図34に示すように、2系統のバッファレジスタREG−A,REG−Bが用意され、先ず、バッファレジスタREG−Aに書き込みデータを取り込み(外部書き込み転送(1))、そのデータを内部転送書き込みする(内部書き込み転送(1))。この書き込みデータ転送は、ECCのエンコード処理処理を行なってチェックビットと共にバッファレジスタに上書きした後、“1”書き込みを行なうものである。
この内部書き込み転送(1)の間に同時に、外部書き込み転送(2)として次の書き込みデータをバッフアレジスタREG−Bに取り込む。そして、バッファレジスタREG−Bの書き込みデータを内部転送する内部書き込み転送(2)の間に、バッファレジスタREG−Aに次の書き込みデータを取り込む(外部書き込み転送(3))。以下、同様の動作を繰り返す。
これらの書き込みモードでは外部転送されるバッファレジスタは予め“0”に設定しておき、書き込みのマスクや割り込みに対してレジスタにデータが外部転送されなくてもデータの整合性が保てるようにする。
次に図35を参照して、内部データ転送と並行して行われる外部とバッファレジスタ間の外部データ転送のスピードの関係を、“1”のみ書き込みバーストサイクルについて説明する。
内部データ転送の時間には、図31に示したように、ECCに200nsと“1”データ書き込みに200nsの時間が必要であり、合わせて400nsで1サイクルの内部データ転送バーストが終了する。バッファレジスタREG−Bに対して外部データバースト転送が行なわれているものとして、この内部データ転送がバッファレジスタREG−Aとセルアレイとの間で行なわれる。
外部データ転送の書き込みサイクル時間tWCを4nsとするとバーストの長さは128サイクルであるのでバースト時間は512nsとなり、バースト時間内に内部データ転送を完了することが出来て、外部データ転送にサイクルのギャップを生じさせることなくバーストを行なうことが出来る。×16IOとしてのデータ転送速度は500MByte/sに達する。
センス系システム(1)の問題点と解決策
次に、先に図10及び図13を用いて説明した高速多ビットアクセスが可能なセンス系システムについて、懸念される問題点をふたつあげ、これを改善する更に新たなセンス系システムを提案する。
第1の問題点は、非選択ワード線と非選択ビット線を全てフローティングにするシステムであるため、選択ワード線を立ち上げたときに、これを共有するセルアレイ内のマットのビット線が全て負荷容量として見えることである。
例えば図36に示すように、ワード線WL1が選択されたとする。このとき、選択ワード線WL1につながるセルを介してビット線及び参照ビット線に破線矢印で示すような充電電流が流れる。これは、初期状態がフローティングであるため、全てのワード線及びビット線がほぼVssになっているためである。
この負荷はワード線を立ち上げてフローティングビット線が充電され順方向ダイオードがオフするまで続く。ワード線を立ち上げて安定するまでかなりの時間をこの充電にとられるので、高速アクセスにとって好ましくない状況である。
第2の問題点は、同時多ビットアクセスされるビット線に逆耐圧がないダイオードを含む不良セルがあり電流が漏れると、選択ワード線で多ビット一括セットが出来なくなる。これは電圧モードでの書き込みで顕著である。
具体的に図37を参照して説明する。ワード線WL2のセルが全て“0”に設定された状態でいくつかのセルに“1”をセットする場合を考える。いま、選択ワード線WL2上のビット線BL1との交差部のセルMC1が“1”にセットされると、このビット線BL1のレベルはビット線選択スイッチSW2の設定によってワード線とほぼ同じくらいのVddレベルになる。
これによって低抵抗にセットされたセルMC1に大きな電流が流れて再びリセットされるのを防いでいる。しかし、このビット線BL1と非選択ワード線WL1の交差部のセルが不良セルDCであるとすると、その不良セルDCのリークにより非選択ワード線WL1のフローティングレベルが上昇する。そしてこのワード線WL1のセルMC3が順バイアスされて選択ビット線BL2に電流が流れて、そのレベルがVdd近くまで上昇する。即ち、BL1→DC→WL1→MC3→BL2の経路で充電が起こる。
この結果選択ワード線WL2と選択ビット線BL2の交点のセルMC2には電圧がかからず、このセルMC2はセットされない。すなわち不良セルが在ると多ビットの一括セットにおいて、セットされたセルが出来てくると、残りのセルがセットされなくなる事態が発生することがある。
特に第2の問題は、一括高速書き込みが行なえないことになるので、重要である。そのシステム的な原因はワード線選択スイッチSW1とビット線選択スイッチSW2の両方で書き込みの電圧と電流の制御を行なう点にある。この制御の影響は不良セルによって他のセルにも波及するのである。
第2の問題を解決できるセンス系システムを、図38〜図40を参照して説明する。
図38に示すように、セルアレイ101は、セルダイオードのアノード側をビット線BLとするもので、これは先の図2とセンス系システムの場合と同じである。但し、ワード線ドライバ102bのワード線スイッチSW1は、デコードによってオンオフするのみとし、書き込みデータによる電圧電流の制御は、ビット線選択回路103b側の選択スイッチ(NMOSトランジスタ)SW2と、ローカルデータバスLB,RLBを介してビット線選択スイッチSW2に直列接続されるPMOSトランジスタMPとにより行う。
書き込み制御回路104bは、先の書き込み制御回路104をわずかに変形したものである。ビット線選択スイッチSW2を制御するゲート電圧Vg及びPMOSトランジスタMPを制御するゲート電圧Vmは、この書き込み制御回路104bにより、動作モードに応じて図40のように設定される。
すなわち、セルのリセットでは、Vm=Vssにより駆動されるPMOSトランジスタMPを介してVddからの電流を十分にビット線にBLに供給できるようにする。一方ビット線選択スイッチSW2は、Vg=Vg_resetとVddよりレベルを下げたゲート電圧として、リセット完了後の高抵抗セルにVddのような高い電圧がかからないようにしている。
セルのリセットでは、Vssより高いゲート電圧Vm=Vm_setによりPMOSトランジスタMPを駆動し、これに電流制限の役割を持たせる。一方、ビット線選択スイッチSW2のゲート電圧Vgは、Vddよりかなり高い昇圧レベルVppとして、ローカルバスの電圧を完全にビット線に伝えるようにしている。
データの読み出しでは、Vm=VddによりPMOSトランジスタMPはオフである。また、Vgは、Vg_readなるVddより低いレベルとして、セルに低電圧をかけたときの電流特性をセンス出来るようにしている。
参照ビット線RBLに関してはデータ書き込みの際は常に参照セルに“1”を書き込むので、ビット線選択スイッチSW2のゲートレベルはVpp、PMOSトランジスタMPのゲートはVm_setとする。読み出し時は、他のビット線と同様のレベルで参照セルの電流をセンスアンプ入力とする。
図39に示す書き込みコントロール回路104bは、これらのゲート電圧Vg,Vmをデータと動作モードにしたがって発生する。制御電圧の大小関係は、Vddをセルのセット電圧Vsetを発生させるに十分な電源電圧として、Vss<Vm_set〜Vg_read<Vg_reset<Vddとなる設定例を示している。
多ビットアクセス対応センスシステム(2)
図38〜図40で説明したセンス系システムを多ビットアクセス対応センスシステム(2)としてまとめたのが、図41である。このシステムでは、先に説明した第1の問題を解決する手段も加えられている。セルアレイ101は、図13に示したシステム(1)のセルアレイ100aと異なり、セルダイオードのアノード側をビット線BLとする。
ワード線ドライバ102bは、ワード線を選択時にVssに設定するためのNMOSトランジスタQ2(スイッチSW1相当)と別に、非選択ワード線をフローティングではなくあるレベルに設定するために、Vdd側にゲートがVd(<Vdd)により駆動されるNMOSトランジスタQ1を配置している。NMOSトランジスタQ1は、ワード線を定常的に充電する充電回路を構成している。ビット線スイッチSW側にローカルバスを介してこれと直列接続されるPMOSトランジスタMPが前述のように書き込み時の電圧電流制御に用いられる。
センスアンプ105は、図13に用いられるものと異なり、図3のそれと同じである。
このセンス系システムによると、書き込み安定化のためのビット線BLの電圧や電流の制御はビット線毎に個別に行なわれるので、不良セルが他の選択されたセルの書き込みに影響することはない。すなわち先の第2の問題点は解消される。
また、各ワード線選択スイッチにはVddからそれより低いレベルがワード線WLに供給されるようにゲートがVdのNMOSトランジスタQ1を追加している。したがって非選択時でもワード線は、Vd−Vt程度に設定される。このために選択ビット線を立ち立ち上げるときに各セルのダイオードの待機ワード線への充電の順バイアス電流をほとんど気にする必要はない。すなわちビット線の立ち上げを早くできる。
またワード線スイッチに付加されたトランジスタQ1は、僅かな電流しか流すことが出来ないものとし、選択ワード線のVssへのスイッチ動作を妨げることはないようにする。また、フローティングの非選択ビット線へはVdよりかなり低い電位レベルがダイオードのオフリークなどを介して供給されているので、選択ワード線の立ち下げの際に非選択ビット線のセルへのディスターブは非常に小さく、問題になるとしてもワード線の立ち下げを少しゆっくり行なうことで過渡電流にディスターブをほとんど無視できるようになる。
なお、ビット線BLを介しての多ビットの上書きは、先のシステムと同様に2ステップで行なうのが良い。その理由は、VgやVmのレベルをビット線毎に制御する必要がなく、回路レイアウトの負担が小さくなるからである。このときは書き込みコントロール回路はひとつでよくて、そのデータ入力(/data)には“0”書き込み信号“0-write”を入れて、例えば最初のステップでは“1”書き込み、次のステップでは“0”書き込みを行なうようにする。無論最初のセルが一定のデータに設定されているような“1”のみ書き込みのような高速書き込みモードでは1ステップでの一括書き込みで対応する。
ワード線を定常的に充電する方式を説明したが、この充電回路(NMOSトランジスタQ1)に大きな電流を流す必要はなく、また流し過ぎても選択ワード線の駆動能力に影響するので問題となる。
図42は、ワード線定常充電回路のゲートレベルVdの発生回路を示す。例えば1μAの閾値に相当するゲートレベルVdを定電流回路170と、ワード線ドライバ102bのNMOSトランジスタQ1の100倍のチャネル幅Wを持つ、ダイオード接続されたNMOSトランジスタQ3とにより発生させ、これをワード線ドライバ102bのVdd側スイッチトランジスタQ1のゲートに供給するカレントミラーを構成する。これにより、最大約10nAの定常充電が各ワード線で可能となる。
多ビット同時読み出しの新たなセンス系システム(2)でのセンスアンプ回路についてその構成の一例を図43に示す。これは、図3に示した、ビット線に電流を供給するタイプのセンスアンプ105を用いたもの、即ち図14の場合と異なり、カレントミラー回路113,114はPMOSカレントミラーである。
選択ワード線からの同時読み出しの選択ビット線の数だけセンスアンプ105が同時に活性化される。この数をkとしてk個のセンスアンプ105の一方の入力/INは共通でひとつの参照ビット線RBLに接続する。もちろん、同時選択のビット線がセルアレイ上分散していて環境が異なれば、ほぼ環境が同じものにまとめて参照ビット線を共通化すればよい。もう一方の入力INはそれぞれのビット線毎にIN_1〜IN_kまで個別となる。センスアンプ入力部のカレントミラー回路113,114のノードVna,Vnbは共通化できる。参照ビット線RBL側のカレントミラー114の寸法比は共通接続される数kに対して個々のセンスアンプで1:10/kの比にして全体でまとめたときにビット線BLに対して1:10の電流比になるようにする。
以下には、メモリとしての必要最小限の動作モードを規定してその仕様を検討するために必須の動作モードをまとめる。
フォーミング書き込みバースト
図44は、フォーミング書き込みバーストの動作タイミング図である。これは、メモリセルを活性化するために製造後に必ず行なわなければならないフォーミングのモードであり、あるセルアレイ領域またはメモリチップの全セルをセット状態(“1”状態)にする。無論セルに使用する抵抗変化物質によってはこの最初に設定する状態は変わる。
図44の方法は、バッファレジスタとセルアレイ間での内部データ転送を用いる方法であるが、セルアレイ周りの周辺回路システムに余裕があればデータ転送を用いないでデコーダに設定機能を持たせることも出来る。
まずフォーミングを行なうバーストコマンド及びアドレスを取り込み、さらにバッファレジスタREG−Aにオール“1”データを設定する。次にこのレジスタREG−Aから内部データ転送による“1”書き込みを行なう。このときセット電圧が必要なフォーミングに適合するように設定する。
この内部書き込み転送と同時に、次のバーストコマンド及びアドレスを取り込み、バッファレジスタREG−Bにオール“1”データを設定する。そしてこのレジスタREG−Bから内部データ転送の“1”書き込みを行なう。
以上の動作をフォーミングすべきセルアレイの全てのバーストアドレスに対して繰り返し行う。バーストサイクル時間は“1”の一括書き込みとほぼ同じと考えられるので、ほぼ200nsとなる。
フォーミングが終了すると、高速書き込みの準備のために、セルアレイのある領域または全メモリセルをリセット状態(“0”状態)にしておく必要がある。これを行なうのが“0”オール書き込みバーストである。
“0”オール書き込みバースト
図45はこの“0”オール書き込みバーストの動作タイミングを示している。セルを構成する抵抗変化物質の特性によってどのような状態を設定するかが変わるのはフォーミングと同じで、このモードは電流モードであり、設定に時間のかかるリセット状態の書き込みとなる。
図45では、バッファレジスタとセルアレイ間での内部データ転送を用いる方法を示すが、セルアレイ周りの周辺回路システムに余裕があればデータ転送を用いないでデコーダに設定機能を持たせることも出来る。
まず“0”書き込みを行なうバーストコマンド及びアドレスを取り込み、さらにバッファレジスタREG−Aにオール“0”データを設定する。次にこのレジスタから内部データ転送の“0”書き込みを行なう。
この“0”書き込みは、ワード線ドライバの電流が許容範囲内に収まるようにグループ分けされたセル数ごとに順次行なう。この書き込み転送と同時に、次のバーストコマンド及びアドレスを取り込み、バッファレジスタREG−Bにオール“0”データを設定する。そしてこのレジスタREG−Bから内部データ転送の“0”書き込みを行なう。
この動作を、“0”書き込みすべきセルアレイの全てのバーストアドレスに対して繰り返し行う。バーストのサイクル時間は、“0”の書き込みがm個のグループに分けられていれば、約2μs×mとなる。
バーストサイクルの中断(割り込み)と中止
次にバーストサイクルの中断(interrupt)及び中止(stop)について説明する。
図46は、リセット状態のセルアレイ領域に高速でデータを書き込む“1”のみ書き込みバーストサイクルの中断(interrupt)の説明図である。バッファレジスタREG−Aに外部データ転送を行なうサイクルからこの書き込みバーストモードが開始されたものとする。
この外部データ転送に先立ち、バッファレジスタREG−Aはオール“0”に設定されてかつ、データ書き込みのバーストアドレスが取り込まれる。オール“0”設定は中断後のレジスタラッチのデータが“0”であることを保証すためである。
このデータ“0”の上に外部データ転送で“1”を上書きしていくことになる(バーストA)。その外部データ転送途中で、中断(割り込み)コマンドが入ると、以後外部データ転送は行なわれずに、レジスタREG−Aのデータに対してすぐにECCのエンコードが行なわれ、レジスタREG−Aの内容に対してチェックビットが生成される。
ECCエンコードが終わるとすぐに、内部データ転送の“1”書込みが始まる。この“1”書き込みは一括転送で高速に行なわれる。
一方、中断コマンドが入ったタイミングで他方のバッファレジスタREG−Bはオール“0”設定され、新たなデータの書き込みのバーストアドレスが取り込まれる(バーストB)。“0”設定は中断後のレジスタのデータが“0”であることを保証すためである。このデータ“0”の上に外部データ転送で“1”を上書きしていくことになるのは前のサイクルと同じである。
この“0”設定はデータの内部転送が完了するたびに自動的に行なうようにしても良いし、中断を考えないなら行なう必要はない。以後図のようにこの動作を繰り返す。通常であれば、ECCエンコードが始まるタイミングがバッファレジスタの128ビット全てに外部データ転送が終わった後であるのに対し、中断(割り込み)の場合はコマンドによりこれが途中で強制的に開始される点が異なるのみである。
図47は、同じく“1”のみ書き込みバーストサイクルの中止(stop)の場合である。その前半では、バーストAの途中で中断コマンドが入り、図46と同様の割り込み動作が行なわれることを示している。中断コマンドではなく、中止コマンドが例えばバーストBの途中で入ると、そこでバッファレジスタREG−Bとの外部データ転送は行なわれなくなり、すぐにECCエンコードが開始され、これが終了すると内部データ転送である“1”書込みが行なわれる。この内部データ転送の終了でデータ書き込み転送の全てが中止され終了する。
図48は、セルアレイのデータを読み出す読み出しバーストサイクルの中断動作である。バッファレジスタREG−Aから外部データ転送を行なうサイクルが開始されたとして説明する。この外部データ転送に先立ちバッファレジスタREG−Aに内部データ転送がなされてデータが格納されており、これが外部データ転送される(バーストA)。
この外部データ転送の途中で中断(割り込み)コマンドが入ると、以後の外部データ転送は行なわれずに、すぐに指定されたバーストアドレスの内部データ転送である読み出しデータ転送がバッファレジスタREG−Bに対して行なわれる。このデータに対してECCデコードが終わるとともに、すぐに外部データ転送をレジスタREG−Bから開始する(バーストB)。
このバーストBでは中断コマンドが入らないとすると、次のバーストアドレスが入り、バッファレジスタREG−Aに対してそのアドレスのバーストデータが読み出しデータ転送される。そしてバーストBの128ビットのデータが全て外部データ転送されると、レジスタREG−Aからの新たなバーストが開始され(バーストA)、以後同様に続く。
図49は、読み出しバーストサイクルの中止の場合である。中断コマンドではなく、中止コマンドが例えばバーストAで入ると、そこでバッファレジスタREG−Aからの外部データ転送は行なわれなくなり、すぐに読み出しバーストは終了する。
図50は、セルアレイに保持されたデータのへの上書きで利用される上書きバーストサイクルの中断動作の場合である。バッファレジスタREG−Aに対して外部データ転送を行なうサイクルが開始されたとする。この外部データ転送に先立ちバッファレジスタREG−Aには内部データ転送としての読み出しデータ転送によってデータが格納される。中断後のレジスタのラッチに残された上書されないデータの整合性を保証すためである。
バーストAの外部データ転送途中で中断(割り込み)コマンドが入ると、以後の外部データ転送は行なわれずに、バッファレジスタREG−Bに対して指定されたバーストアドレスから内部データ転送の読み出しデータ転送が行なわれる。この転送の間、バーストにギャップが生じ、その後外部データ転送のバーストBを開始できる。
一方、レジスタREG−Bへの読み出しデータ転送が終わると、ECC回路が使用できるようになり、レジスタREG−Aのデータに対してECCエンコードを行なうと同時に、その処理の中で2ステップ書き込みの内のデータに依存しない“1”書き込みを行なう。その後内部データ転送の“0”書き込みをグループごとに順次行い、バッファレジスタREG−Aのデータのセルアレイへの書き込み転送が終わる。
バーストBに中断コマンドが入ると、外部データ転送は行なわれなくなるが、次のバーストサイクルの準備としてのレジスタREG−Aへの読み出しデータ転送は前のバーストサイクルのレジスタREG−Aからの内部データ転送“0”書込みがが完了しないと開始できないので、外部データ転送間には図のようなギャップが生じる。
以後図のようにこの動作を繰り返すが、通常の書き込みバーストとの違いは、通常は外部データ転送が128ビット全てに対して行なわれるのに対し、中断はこれを途中で強制的に終わらせる点のみである。
図51は、同様に上書きバーストサイクルの中止の場合である。前半のバーストAでは、図50の場合と同様の中断コマンドが入った場合を示している。中断コマンドではなく、中止コマンドが例えばバーストBで入ると、そこでバッファレジスタREG−Bとの外部データ転送は行なわれなくなり、すぐにECCエンコードが開始されて同時に、2ステップ書き込みの“1”書込みが行なわれる。
これが終了してかつ前のバーストサイクルのレジスタREG−Aからの内部データ転送“0”書き込みが完了してはじめて、レジスタREG−Aから内部データ転送“0”書き込みが行なわれる。この内部データ書き込み転送の終了でデータ転送の全てが中止され終了する。
主要動作モードの動作手順
外部データ転送、内部データ転送は一連の作業を終了しないと次の過程に移ることが出来ない。保持データなどが期待値との整合性を保てないからである。そこで主な動作モードについて、タイミング仕様作成の基礎となる、一連の動作の手順をそれぞれの作業過程の終了条件の観点からまとめたのが、図52である。
図52では、動作過程が同時進行するバッファレジスタREG−A,REG−Bを単にA,Bとして示し、それぞれの進行中の作業過程を記述し、過程の終了を待ってはじめて次の過程に移れるポイントを上向き矢印で示した。
(i)フォーミング書き込みバースト
バッファレジスタを用いて動作を行なう場合を想定している。外部データ転送はないのでバッファレジスタを用いずにこの動作用の回路をから直接セル状態をセットする方法も考えられるが、他の動作過程に使う回路部分を共用して回路規模を増やさない場合として、ここではバッファレジスタを用いる場合を説明する。
バッファレジスタREG−Bが内部データ転送を行なっているバーストサイクルに次の新たなバーストアドレスを設定しバッファレジスタREG−Aのラッチを全て“1”に設定する。バッファレジスタREG−Bの内部データ転送である“1”書込みが完了したら、すぐにバッファレジスタREG−Bの“1”データを新たなバーストアドレスに内部データ転送することになる。
バッファレジスタREG−Aの“1”設定とバッファレジスタREG−Bの“1”書き込みの内部データ転送の終了が、次の動作過程の開始の条件となる。
このバーストはセルへの“1”書き込み(セット)であるので、選択ワード線での一括書き込みが可能でバーストが高速に行なえるが、全てのセルに対して行なうことが基本である。従って、デバイスの製造段階でこのフォーミング書き込みバーストまたは同等の設定が全てのセルに対して行なわれる。
(0)“0”オール書き込みバースト
これもバッファレジスタを用いて動作を行なう場合を想定している。バッファレジスタREG−Bが内部データ転送を行なっているバーストサイクルに次の新たなバーストアドレスを設定し、バッファレジスタREG−Aのラッチを全て“0”に設定する。
バッファレジスタREG−Bの内部データ転送“0”書き込みが完了したらすぐに、バッファレジスタREG−Bの“0”データを新たなバーストアドレスに内部データ転送することになる。バッファレジスタREG−Aの“0”設定とバッファレジスタREG−Bの“0”書き込み内部データ転送の終了が次の動作過程の開始の条件となる。
(1)読み出しバースト
バッファレジスタREG−Bから読み出しデータの外部データ転送中に新たなバーストアドレスがコマンドで指定される。新たなアドレスのバーストデータが内部読み出し転送でバッファレジスタREG−AにECCをかけたデータとして保持される。この終了とバッファレジスタREG−Aからの外部データ転送出力の終了を待って、次の新たな外部データ転送が開始される。
(2)上書きバースト
バッファレジスタREG−Bへの外部データ転送中に、新たなバーストアドレスがコマンドで設定されたとする。バッファレジスタREG−Aのデータに対するECCエンコードとこれと並行して行なわれる“1”書き込み後の内部データ転送“0”書込みが終了してから、この新たなアドレスのデータが読み出し転送としてバッファレジスタREG−Aに内部転送される。
この内部データ転送でECCをかけられたデータがバッファレジスタREG−Aに設定されて、バッファレジスタREG−Bの外部データ転送が終了してから、バッファレジスタREG−Aの外部データ転送が可能となる。
(3)“1”のみ書き込みバースト
バッファレジスタREG−Bへの外部データ転送中に新たなバーストアドレスがコマンドで設定されととする。バッファレジスタREG−Aのデータに対するECCエンコードの後の内部データ転送“1”書き込み転送が終了してから、バッファレジスタREG−Aのラッチの“0”設定を行なう。
このバッファレジスタREG−Aの“0”設定が済み、バッファレジスタREG−Bの外部データ転送が終了してから、バッファレジスタREG−Aへの外部データ転送が可能となる。
(4)ECCリフレッシュバースト
外部データ転送はない。バッファレジスタREG−Bで内部データ転送の読み出し転送中に新たなバーストアドレスがコマンド設定されると、バッファレジスタREG−Bへの読み出し転送のECCと並行して、バッファレジスタREG−Aのデータの転送先のアドレスの全てのセルの“1”書き込みを行い、バッファレジスタREG−Aからの内部データ転送である“0”書き込み転送が終了した後に、この新たなアドレスから内部データ転送の読み出し転送がバッファレジスタREG−Aに対して行なわれる。
この読み出し転送と並行して、バッファレジスタREG−Bのデータが対応するアドレスに2ステップで、まず“1”書き込み次いで“0”書き込みという内部データ転送がなされる。
以上のデータ転送などの作業過程の条件をまとめると、新たなバーストを始める際の条件が明らかになる。この条件は中断であっても新たなバーストを開始する際には適用可能である。
即ち、新たなバーストの開始アドレスの設定を、バッファレジスタREG−Aを利用しているバーストAに対して、バッファレジスタREG−BのバーストBのサイクル中に行なうとすると、次の(a)〜(c)の全ての条件が満たされたときに新たなアドレスに対してのバーストサイクルを始めることが出来る。
(a)バーストAの一連の最終転送終了:即ち動作モードによるバッファレジスタREG−Aに関する内部データ転送が全て終了すること。
(b)バーストBのコマンドサイクル+kサイクル:新たに開始するバーストのモードとアドレスに関わるサイクルで、コマンド入力開始を指示するコマンドサイクルからkサイクルでコマンドの内容がデコードされるまでは、新たなサイクルは開始されない。
(c)バーストBのサイクル又は転送の終了:バッファレジスタREG−Bがバースト中であるので、その外部および内部データ転送の終了を待って新たなバーストを開始することが出来る。
この最後の条件(c)は、バーストサイクルまたは転送の終了の仕方でノーマルな連続バースト、中断、ECCリフレッシュ、“0”オール書き込みバーストの仕様となる。すなわち、
(A)フルバーストの終了を待つ場合は、バーストを連続して変えて行く連続バーストとなる。
(B)コマンドサイクル+kサイクルまでのバーストと同じ場合は、バーストの中断に相当する。
(C)バーストサイクルなしで内部データ転送が終了なら、外部データ転送がないモードで、ECCリフレッシュバーストや“0”オール書き込みバーストの場合となる。
以上制限事項を説明してきたバーストサイクルの中断のタイミング仕様の詳細を説明する。
読み出しバーストでの新バースト開始アドレスコマンドタイミング
まずは外部データ転送が読み出しバーストモードの場合について、新バースト開始アドレスコマンドのタイミングを、図53を用いて説明する。コマンド受付の開始を支持するコマンド開始信号CEを新たなバースト(新たなバーストは新たなデータ転送サイクルの開始ともなる)を開始したい場合にセットする。
このコマンド開始信号CEのセットは、クロックエッジを基準にセットアップ時間tCSとホールド時間tCHで規定され、バッファレジスタからのデータ出力はクロックエッジからの時間tACを越えないうちに出力される。
開始信号CEを受けたクロックサイクルの次のクロックからコマンドのコードやアドレスビットを受け付けるが、現在進行中のバーストのデータに関しては通常は128サイクルで全てのバーストデータが出力されてから新バーストサイクルを開始する。また中断(interrupt)か中止(stop)ならコマンド開始サイクルからkサイクル(コマンドデコードに要する期間)のデータが出力されてから、現在進行中のバッファレジスタと外部とのデータ転送を行わなくなる。この規定がCEの設定サイクルからkサイクルの意味でありこの間にモードの設定や新バーストのアドレスの取り込みが行なわれる。
コマンド開始信号CEの設定サイクルは新たなデータ転送サイクルを始めたいサイクルを考慮して設定される。CEを入れたタイミングによっては新バースト準備や中断または中止を受けるバーストと同時に進行中のセルアレイとのデータ転送がすぐに完了できない場合もある。そこでメモリ側からバッファレジスタからの内部のデータ転送状態など、バッファレジスタが内部データ転送中であることを示すデータ転送信号DTX_AとDTX_Bを外部に出力する。
すなわちバッファレジスタREG−Aが新たな内部データ転送に内部データバスを利用し、その後ECCが働いている期間中は、DTX_A=“0”(=“L”)である。バッファレジスタREG−Bが新たな内部データ転送に内部データバスを利用し、その後ECCが働いている期間中は、DTX_B=“0”となる。
つまり、レジスタの保持データが外部データ転送を受けても良い状態で、信号DTX_A,DTX_Bは“1”となる。この信号の切り替わりは、レジスタデータとセルアレイとの間でそのデータ転送が終了し、ECC処理が完了したらクロックに同期して行なわれるもので、データの出力の場合と同様にtACのタイミングとなる。
新バーストサイクルまたは新データ転送サイクルの開始は、少なくともコマンド設定サイクルからkサイクル以上で、コマンド設定サイクルでのデータ転送に利用できる状態に信号DTX_AまたはDTX_Bが状態を変えた後のサイクルからとなる。
中断がない連続したバーストサイクルにギャップを生じさせないためには、コマンド開始サイクルでDTX_Aが“1”であればバッファレジスタREG−Aに対して内部データ転送が可能であるので、読み出し転送がバッファレジスタREG−Aに対して実行されDTX_Aが状態を変えるまではコマンド開始サイクルから900ns以上は必要となる。そこで、128サイクルでほぼ900nsのバーストになるようにクロックサイクルを設定している場合は、バーストが切り替わったらまたすぐに次のバーストアドレスの設定を行なうことが必要となる。
書き込みバーストでの新バースト開始アドレスコマンドタイミング
次に外部データ転送が書き込みモードの場合について、新バースト開始アドレスコマンドのタイミング仕様を、図54を参照して説明する。ここでの書き込みは、“1”のみ書き込みバーストを想定しており、フォーミング書き込みバースト、“0”オール書き込みバースト、上書きバースト及びECCリフレッシュバーストは除く。これらについては、後に簡単に相違点のみを補足する。
コマンドの受付開始を支持するコマンド開始信号CEを新たなバースト(新たなデータ転送サイクルの開始ともなる)を開始したい場合にセットするのは、読み出しバーストの場合と同じである。バッフアレジスタへのデータの入力は、データのセットアップ時間tDSとホールド時間tDHによって規定される。
開始信号CEを受けたクロックサイクルの次のクロックからコマンドのコードやアドレスビットを受け付けるが、現在進行中のバーストのデータ入力に関しては通常は128サイクルで全てのバーストデータが入力されてから新バーストサイクルを開始する。また中断(interrupt)か中止(stop)かなら、コマンド開始サイクルからkサイクルのデータが入力されてから現在進行中のバッファレジスタと外部とのデータ転送を行わなくなる。この規定がCEの設定サイクルからkサイクルの意味であり、この間にモードの設定や新バーストのアドレスの取り込みが行なわれる。
コマンド開始信号CEの設定サイクルは新たなデータ転送サイクルを始めたいサイクルを考慮して設定される。CEを入れたタイミングによっては新バーストの準備や中断(interrupt)または中止(stop)を受けるバーストと同時に進行中のセルアレイとのデータ転送がすぐに完了できない場合もある。そこでメモリ側からバッファレジスタからの内部のデータの転送状態を表す転送信号DTX_AとDTX_Bを外部に出力する。
すなわちバッファレジスタREG−Aが、ECC処理を行いその後新たな内部データの転送に内部データバスを利用し終わる期間までは、DTX_Aが“0”であり、同様にバッファレジスタREG−Bが、ECC処理を行いその後新たな内部データの転送に内部データバスを利用し終わる期間までは、DTX_Bが“0”となる。
つまり、外部データ転送から見ると信号DTX_A,DTX_Bはレジスタが外部データ転送を受けても良い状態で“1”となり、内部データ転送をする必要のあるデータをレジスタが保持し新たな外部データ転送が可能となるまでの期間は“0”となる。レジスタを“0”セットする期間もこの信号は“0”である。
この信号の切り替わりは、バッファレジスタとセルアレイとの間で一連のデータ転送関連動作が終了した後、クロックに同期したデータの出力と同様のタイミングtACで行われる。新バーストサイクルまたは新データ転送サイクルの開始は少なくともコマンド設定サイクルからkサイクル以上でコマンド設定サイクルでの状態からDTX_AまたはDTX_Bが状態を変えた後のサイクルからとなる。
中断がない連続したバーストサイクルにギャップを生じさせないためには、コマンド開始サイクルまたはこのサイクル後に内部データ転送が終わり解放されたバッファレジスタがREG−Aであれば、転送終了時点からREG−Aのラッチに“0”をセットし、このセット終了でDTX_A=“1”となる。セット完了にて新たなバーストサイクルの開始が可能となる。
レジスタの“0”セットはクロック数サイクルαで済むので、コマンドの設定サイクルを加えて、コマンド開始サイクルを128サイクルが終わる前のk+αサイクル前までに入れることが必要となる。新バーストサイクルが始まると、バッファレジスタREG−BのECCと内部データ転送が始まり、これが終了するとともに、バッファレジスタREG−Bのラッチに“0”がセットされ、DTX_Bが“1”となる。
フォーミング書き込みバーストでは、バッファレジスタが外部とデータのやり取りを行なう外部データ転送を行なわないので、図54で説明した書き込みデータ入力にかかわるタイミングがない。またバッファレジスタは、コマンド開始サイクルの後に図54の“0”セットに替わり“1”セットされて、新バーストがこのデータを内部データ転送するサイクルとして始まる。このためコマンドは中断を伴うこととなる。
“0”オール書き込みバーストでは、やはり外部データ転送を行なわないので、図54の書き込みデータ入力にかかわるタイミングがない。またバッファレジスタはコマンド開始サイクルの後に図54と同様に“0”にセットされて、新バーストがこのデータを内部データ転送するサイクルとしてすぐに始まる。このためコマンドは中断を伴うこととなる。
新バーストで始まる内部データ転送は、“0”書き込みであるために、グループ分けした数μsの長時間の転送になる。これらはDTX_AとDTX_Bの状態変化までの時間が長くなり、新バーストがなかなか開始できないことに反映される。
上書きバーストの仕様は図54の“0”のみ書き込みバーストとほぼ同様であるが、この説明でのレジスタのラッチの“0”セットの作業が、レジスタREG−Aへの内部データ転送の読み出し転送になり、900ns近い時間をかけてレジスタを新たなバースト転送先のデータで予めセットすることと、新バーストで始まる内部データ転送が“0”書き込みを含むために、グループ分けした数μsの長時間の転送になることにより、外部データ転送に大きなギャップが必ず生じるようになる。これらはDTX_AとDTX_Bの状態変化までの時間が長くなり、新バーストがなかなか開始できないことに反映される。
ECCリフレッシュバーストでも外部データ転送を行なわないので、図54の書き込みデータ入力にかかわるタイミングがない。このためコマンドは中断を伴うこととなる。また図54のレジスタのラッチの“0”セットの作業が内部データ転送の読み出し転送になり900ns近い時間をかけてレジスタを新たなバーストの転送先のデータで予めセットすることと、新バーストで始まる内部データ転送が“0”書き込みを含むためにグループ分けした数μsの長時間の転送になることにより、サイクル時間が必要である。これらはDTX_AとDTX_Bの状態変化までの時間が長くなり新バーストがなかなか開始できないことに反映される。
ECCリフレッシュバーストは、リフレッシュが必要なバーストアドレスに対してのみ行うことになるが、このリフレッシュのためのバーストアドレスを抽出する方法について、以下に説明する。
読み出しバーストでは、バッファレジスタへ予めデータを内部データ転送してECCをかけてデータを訂正しておく。このときECCシステムはエラー状況の情報を信号とし出力できるので、ECCが対応できるエラー数の最大値にエラー数が到達するか、或いはそれに近い場合に、その旨を知らせる一種の警告信号“correctable max”を出すようにする。
このcorrectable max信号が出るとラッチ回路に保持されているこのバーストアドレスを、リフレッシュアドレスとしてメモリ回路に保持する。このようなリフレッシュアドレスを順次記憶しておき、ECCリフレッシュが実行されるまでこれを消去しないようにする。
ECCリフレッシュアドレスを保持するメモリ回路は、セルアレイブロック内の特別な領域として設けてもよいし、別にラッチメモリアレイとして設けてもよい。
図55は、ECCリフレッシュアドレスの設定例を示している。バッファレジスタREG−AのアドレスA0のバースト中(バーストA0と表示)に、次のバーストアドレスB1が設定されて、バッファレジスタREG−Bに読み出し転送でデータが転送され、そのECCの結果から、信号“correctable max”信号が発生されたとする。
このとき、バーストアドレスB1がリフレッシュアドレスとして保持され、不揮発に記憶される。次に、ECCが施されたバーストB1中に次のバーストアドレスA1が設定されて、バッファレジスタREG−Aに読み出し転送され、そのECCから信号“correctable max”が発生されると、アドレスA1が続いてリフレッシュアドレスとして記憶される。
バッファレジスタREG−AからECCを施されたデータが外部データ転送されるバーストA1中に次のバーストアドレスB2が設定され、バッファレジスタREG−Bに内部データ転送がなされ、今度はECC訂正に余裕があったとすると、そのままシークエンスは進行する。
図56は、以上のリフレッシュアドレス保持の過程と、保持されたリフレッシュアドレスを用いてECCリフレッシュバーストを行なう過程を説明するための回路ブロックである。
メインのセルアレイブロック152と、バッファレジスタ151及びECC回路150は、図19に用いた符号を付してある。セルアレイブロック180は、リフレッシュアドレス記憶用の不揮発性のメモリ回路であり、実際には前述のようにメインのセルアレイブロック152内の特定領域でもよいし、これとは別のメモリ回路でもよい。
コマンドが入り、コマンドコントロール回路185から次のバーストアドレス信号がバーストアドレスラッチ回路182に保持され、さらにバッファレジスタ151及びECC回路150に出力される。保持されたバーストアドレスは、セルアレイブロックのアクセスに供され、場合によってはリフレッシュアドレスとしてセルアレイブロック180に保存される。
セルアレイブロック180には、デコーダとしてバースト選択回路(図示せず)があり、ここでバーストアドレスを選択して、選択したアドレスのデータをバッファレジスタ151に内部データ転送し、バッファレジスタ151のデータはECCを施されて上書きされる。
この際、ECC回路150からは訂正エラー数が訂正可能限界かその近くにあれば信号“correctable max”が出力され、これがゲート186を介して、セルアレイブロック180の書き込み制御を行なうアドレス書き込み制御回路181及び、書き込み巡回カウンタ184に入力される。
書き込み巡回カウンタ184は、セルアレイブロック180の書き込みのアドレス指定するカウンタであり、アドレス書き込み制御回路181は、データすなわちリフレッシュアドレスの書き込みを制御する。これらの回路によってバーストアドレスがリフレッシュアドレスとして、信号“correctable max”が発生されるたびに新たなメモリ位置に記憶される。
リフレッシュ動作では、コマンドがECCリフレッシュであることが、コマンドコントロール回路185で判明すると、ECCリフレッシュバースト信号が読み出し巡回カウンタ183に出力される。更に次のバーストアドレス信号がバーストアドレスラッチ182に、そのアドレスのデータがバッファレジスタ151及びECC回路150に出力される。
読み出し巡回カウンタ183は、セルアレイブロック180の領域を順番にアクセスしてデータを読み出し、バーストアドレスとして設定する。すなわち外部からアドレスを取り込む代わりに、セルアレイブロック180に記憶されたアドレスを順次使用する。このアドレスでアクセスされてセルアレイレイブロック152から読み出されたバーストデータは、バッファレジスタ151でECCを施されて、そのまま書き込み転送される。
なお、ECC回路150から発生される信号“correctable max”はECCリフレッシュの際はアドレス書き込み制御回路181及び書き込み巡回カウンタ184には送られずにブロックされる。また、ECCリフレッシュではバッファレジスタ151のデータは外部データ転送されない。
ECCリフレッシュアドレスはセルアレイブロック180に不揮発に記憶され適宜リフレッシュに使用されるが、 その容量はそれほど大きく出来ないのでアドレスがある程度たまったらリフレッシュを行い、巡回的にアドレスデータを上書きしながら使うことになる。そのアクセス制御を行なうのが書き込み巡回カウンタ184と読み出し巡回カウンタ183である。
セルアレイブロック180は巡回的にアクセスされて、アドレスデータが記憶される。この書き込みのアクセスポイントを追うようしてセルアレイブロック180からアドレスデータを読み出し、ECCリフレッシュに利用する。リフレッシュに使用したアドレスデータは巡回的な書き込み動作にて上書されて、次の新たなアドレスデータとして利用される。
書き囲み巡回カウンタ184及び読み出し巡回カウンタ183の動作手順を以下に説明する。
図57と図58は、書き込み巡回カウンタ184とその動作手順フローである。書き込み巡回カウンタ184において最後に書き込みが行なわれたカウンタ番号を“last_w”とする。巡回カウンタであるので、その出力は、カウンタユニットの数“n”を法とする出力=last_w +1(mod n)となる。
最初のアクセス動作では、“last_w”をリセットして“0”にして(ステップS61)、以後信号“correctable max”が入るたびに“last_w”に1を加えて(ステップS62)、セルアレイブロック180の“last_w”の位置にアクセスしてデータを書き込む(ステップS63)。
図59と図60は、読み出し巡回カウンタ183とその動作手順フローである。読み出し巡回カウンタ183において最後に読み出しが行なわれたカウンタ番号を“last_r”とする。手順は最初のアクセス動作では“last_r”をリセットして“0”にしておき(ステップS71)、以後新しいバーストリフレッシュアドレスの要求がECCリフレッシュバーストの設定においてあると、“last_r”に1を加えて(ステップS72)、“last_w”を追い越していないかどうかの判断をする(ステップS73)。“last_r”が“last_w”よりも大きくなっていれば全てリフレッシュアドレスを処理したことになるので、ここで動作停止となる(ステップS74)。
“last_r”が“last_w”を追い越していなければ、セルアレイブロック180の“last_r”の位置にアクセスしてそのリフレッシュアドレスのリフレッシュを行なう(ステップS73)。巡回的なカウンタであるので、カウンタユニットの数を“n”を法としてカウンタ出力=last_r +1(mod n)となるのは、書き込み巡回カウンタ184と同じである。
次に図61を参照して、ECCリフレッシュバーストでのアドレスの設定とデータ転送の動作シークエンスについて説明する。ECCリフレッシュは、メモリが外部データ転送のアクセス状態でないアイドル期間を見て蓄積されたアドレスに対してまとめて行なう。図61は、その連続したリフレッシュバーストのシークエンスの説明図である。
ECCリフレッシュバーストが開始されてリフレッシュアドレスが設定されると内部データ転送が可能であるバッファレジスタREG−Aに対して内部データ転送である読み出し転送が行なわれ、その読み出しデータにECCデコードが施される。この間に次のリフレッシュのためのリフレッシュバーストアドレスが設定される。
新たに設定されたリフレッシュバーストアドレスは転送に利用できる状態(即ちDTX_B=“H”)であるバッファレジスタREG−Bへの読み出し転送のアドレスとなる。このデータ転送がECCの動作をはじめて内部データバスが開放されるとすぐに、レジスタREG−Aから内部データ転送の書き込み転送が行なわれる。
この書き込み転送はセルアレイのバーストアドレスに上書きする転送であり、エラー訂正されたレジスタREG−Aのデータが書き戻されて正しいデータのバーストが再生される。この際データが修正されるのは高々数ビットであるので、電流書き込みモードの“0”書き込みも一括で行なうことができて、“1”書き込みと“0”書き込みの2回のステップで内部データ転送が可能である。即ち通常の上書きバーストに比べ高速な内部データ転送が可能である。
更に次のリフレッシュバーストアドレスが設定されると、内部データ転送バスの開放(DTX_A=“1”)を待って、新たな読み出し転送がレジスタREG−Aに行なわれる。レジスタREG−AでのECCが開始されると、今度はレジスタREG−Bからの内部データ転送の書き込み転送が行なわれ、以下同様の動作が続く。
最後に、リフレッシュ終了ではリフレッシュ中止コマンド(stop refresh)を設定し、これによってすぐにレジスタで転送されていないデータを書き込み転送して、ECCリフレッシュバーストのサイクルが完了する。
図62は、メモリ制御に関係する信号、すなわちチップピンに入力される電源以外の信号をまとめた。クロックCKは、メモリを同期して制御する基本クロックである。DDR(Dual Data Rate)などではこれと相補的なクロックCKBを併せて入力したり、入出力データのストローブ信号DQSなどをチップに入出力することも考えられる。
コマンド開始信号CEは、信号のレシーバとデコーダが毎サイクル働いて電力を消費しないように、ひとつのレシーバのみを働かせてこの状態でコマンドやアドレスのレシーバやデコーダを活性化するための信号である。即ち、CEのレシーバは、CE=“H”が検出されると一定サイクル数の間、非アクティブとなり、他のレシーバはその一定期間のみアクティブとなる。
コマンドCMDは、動作モードを指定するコマンドをコードする信号である。中断コマンドIntrptは、バーストサイクルを中断して次のバーストに進める指示をするコマンド信号である。
アドレスAdd_0〜Add_7は、アドレスビットA0〜A39をあらわす。入出力IO0〜IO15は、16ビットデータの入出力である。図には示されていないが、データ転送信号DTX_A,DTX_Bは、メモリ内のバッファレジスタの外部データ転送可能期間や内部データ転送可能期間を示す信号である。
バーストモードを指定するために使用する信号とコマンドのコード、およびアドレスの設定を次に説明する。図63は、主要なバーストモード信号とそのコマンドコード、およびアドレスの設定を示している。
コマンドの入力サイクルの指定は、あるクロックサイクルでまずコマンド開始信号CEを“H”して、クロックエッジで所定レベルを取り込むことによって開始される。コマンドサイクルが開始されると、その他の信号の入力バッファが活性化されて次のクロックサイクル以降でデータの取り込みを行いコードをデコードして内部動作のモードを確定する。
図62ではクロックの立ち上がりのエッジを使用するSDRで示すが、DDRなども同様である。CEを取り込むサイクルを0として、クロックサイクル1,2,3でコマンドビットc0,c1,c3を取り込み、クロックサイクル1,2,3,4,5でバーストアドレスのビットを取り込む。バーストを中断する場合は、その指示信号Intrptをクロックサイクル1で取り込む。Intrpt=“H”でこのコマンドが入ったバーストサイクルを中断して、新たなバーストの準備をはじめることになる。
CEが確定するとこの例ではクロック0から5の間、CEのレシーバは非アクティブとなり、他のレシーバはアクティブとなる。このレシーバのアクティブと非アクティブの動作でレシーバの入力待機状態の消費電流を抑える。
コマンドのコードは、コマンドCMDのモード名とともに、図63の表に示した。“R”は読み出しバースト、“over W”は、上書きバースト、“0 all W”は、“0”オール書き込みバースト、“1 only W”は“1”のみ書き込みバースト、“Stop”はバーストの中止、“Refresh”はECCリフレッシュバースト、“Forming”はフォーミング書き込みバーストである。
図63には、アドレスビットの割付の一例をも示した。×16IO構成でA0〜A21がマット内のバーストの位置を示し、A22〜A28がバーストを始める際の先頭アドレス、A29以降がマット選択のアドレスビットを表すものとした。
以上説明した実施の形態で示したメモリの仕様は、書き込み読み出し分離モード(Write Read Isolated Mode:WRIM)としてまとめられる。書き込みを行なうときと読み出しを行なうときの使用場面が重ならない使用の形態である。これは書き込みがデータの“0”と“1”に対して書き込み特性が大きく異なる場合に、遅いデータの書き込みデータタイプの書き込みを隠してメモリの高速特性を活かす方法であるが、市場に流通させる際の形態が制限される。
このような制限を伴う使用形態を、図64にまとめた。
消費者に渡る前の段階として工場、販売店、コンテンツプロバイダーなどがあるが、この段階でメモリは消費者がデータを記録することを前提とした場合はフォーミングがなされ、全てのセルがリセットされている状態が望ましい。これはセルのリセットに、セットより多くの時間が必要であるような、上の実施の形態で説明した場合である。
メモリに記憶したデータを商品として売る場合を想定すると、更に“programmed contents”がデータとして書き込まれた状態が消費者に渡る前の状態となる。消費者が記録媒体として使うことを前提とすれば、データを高速に書き込めることが出来るためには、実施の形態で言えば“1”のみ書き込みバーストモードでの書き込みが前提となるので、メモリセルの全てが“0”に設定されていることが必要となる。これは高速書き込みである“1”のみ書き込みバーストを行なうことが出来るバーストアドレスに制限がないということが保証されることである。
このメモリが消費者であるエンドユーザーに渡った後は、初期の書き込みは高速であり、新たなデータはメモリの空き領域に追記していけば高速性を維持したまま利用でき、高精細大容量の画像データなどの録画やリテーラーからのコンテンツ配信および店頭でのダウンロードに対応できる。
メモリに書き込まれたデータに対して上書きしたり、部分的に書き換えを行いたいことがある。そのときは、高速書き込みモードは利用できないが、上書きバーストを利用することによって手間なくデータの書き込みができる。
メモリ容量が足りなくなり不要のデータを消してメモリ容量を増やし、再利用部分書き換えを行う場合は、使用したいメモリ領域を部分的にリセットする部分リセット(partial reset)を“0”オール書き込みバーストを利用して行い、その領域に再び高速書き込みを行うことが出来るようにすればよい。
以下に実施の形態の主な特徴点を列記する。
(1)抵抗値の相違により第1及び第2のデータ状態が可逆的に設定される抵抗変化型メモリセルを配列したセルアレイを有する抵抗変化メモリ装置において、
前記セルアレイの所定領域へのデータ書き込みは、その所定領域内の少なくとも第1のデータ状態に書かれるべきセルに第1のデータ状態を書き込む第1の書き込み手続きと、その所定領域内の第2のデータ状態に書かれるべきセルに第2のデータ状態を書き込む第2の書き込み手続きとにより行われる(図24,図25,図28,図30)。
(1−1)(1)の抵抗変化メモリ装置において、前記抵抗変化型メモリセルは、第2のデータ状態の書き込みに要する時間が前記第1のデータ状態のそれに比べて2倍以上長く、
前記第1の書き込み手続きは、前記所定領域内の全セルに一括して第1のデータ状態を書き込むものであり、前記第2の書き込み手続きは、前記所定領域を同時書き込みの総セル電流が許容値以下に制限されるようにグループ分けして、グループ毎に順次に行なわれる(図25,図28)。
(1−2)(1−1)の抵抗変化メモリ装置において、
前記第1の書き込み手続きは、前記所定領域のセルデータの再フォーミング処理として行われる。
(1−3)(1−1)の抵抗変化メモリ装置において、
前記第1及び第2の書き込み手続きは、前記所定領域の読み出しデータのリフレッシュ動作として行われる。
(1−4)(1)の抵抗変化メモリ装置において、前記抵抗変化型メモリセルは、前記第1のデータ状態の書き込みに要する時間が前記第2のデータ状態のそれに比べて2倍以上長く、
前記第1の書き込み手続きは、前記所定領域の全セルを前記第1のデータ状態に初期化するものであり、前記第2の書き込み手続きは、前記所定領域内の第2のデータ状態に書かれるべきセルに一括して第2のデータ状態を書き込むものである(図30)。
(1−5)(1−4)の抵抗変化メモリ装置において、
前記第1の書き込み手続きは、前記所定領域を同時書き込みの総セル電流が許容値以下に制限されるようにグループ分けして、グループ毎に順次に行なわれる。
(1−6)(1−4)の抵抗変化メモリ装置において、
前記第1の書き込み手続きは、前記セルアレイの全セルの初期化動作として行われる。
(1−7)(1)の抵抗変化メモリ装置は更に、
前記セルアレイの書き込みデータをエンコードして前記書き込みデータと共に前記セルアレイに記憶されるチェックビットを生成し、前記セルアレイの読み出しデータをデコードしてエラー検出及び訂正を行なうECC回路と、
前記セルアレイの読み出し及び書き込みデータを一時保持するバッファレジスタとを備える。
(1−8)(1−7)の抵抗変化メモリ装置において、
データ書き込み時、前記第1の書き込み手続きは、前記バッファレジスタが保持する書き込みデータについて前記ECC回路によるエンコード処理と並行して第1のデータ状態の前記セルアレイへの書き込み転送として行われ、前記第2の書き込み手続きは、前記ECC回路によるエンコード処理後に第2のデータ状態の前記セルアレイへの書き込み転送として行われる(図21)。
(1−9)(1−7)の抵抗変化メモリ装置において、
前記セルアレイのデータのリフレッシュ時、前記セルアレイから前記バッファレジスタに読み出したデータを前記ECC回路によりデコードして上書きした後、前記セルアレイに対して前記第1及び第2の書き込み手続きのデータ転送が順次行なわれる(図29)。
(1−10)(1−7)の抵抗変化メモリ装置において、
前記バッファレジスタは、読み出し又は書き込みのバーストデータ転送を交互に行なうための2系統のバッファレジスタを有する。
(2)抵抗値の相違により第1のデータ状態と第2のデータ状態が可逆的に設定される、第1のデータ状態の書き込みに要する時間が第2のデータ状態のそれに比べて2倍以上長い抵抗変化型メモリセルを配列したセルアレイを有する抵抗変化メモリ装置において、
前記セルアレイの所定領域のデータ書き込みは、前記所定領域の全セルに予め第1のデータ状態を書き込む準備書き込みと、前記所定領域に対する第2のデータ状態のみの一括書き込みとにより行なわれる(図30)。
(2−1)(2)の抵抗変化メモリ装置において、
前記準備書き込みは、前記セルアレイの全セルを第1のデータ状態に初期化する動作として行なわれる。
(2−2)(2)の抵抗変化メモリ装置において、
前記準備書き込みは、前記所定領域を同時書き込みの総セル電流が許容値以下に制限されるようにグループ分けして、グループ毎に順次に行なわれる。
(3)抵抗値の相違により第1のデータ状態と第2のデータ状態が可逆的に設定される、第1のデータ状態の書き込みに要する時間が第2のデータ状態のそれに比べて2倍以上長い抵抗変化型メモリセルを配列したセルアレイと、
前記セルアレイの書き込みデータをエンコードして前記書き込みデータと共に前記セルアレイに記憶されるチェックビットを生成し、前記セルアレイの読み出しデータをデコードしてエラー検出及び訂正を行なうECC回路と、
前記セルアレイの読み出し及び書き込みデータを一時保持するバッファレジスタとを備え、
前記セルアレイの所定領域について予め全セルを第1のデータ状態に設定する準備書き込みが行なわれ、その所定領域に対して、前記バッファレジスタに書き込みデータを取り込んで前記ECC回路によりエンコード処理して上書きした後、前記書き込みデータのうち第2のデータ状態のみを前記セルアレイの所定領域に一括書き込み転送するデータ書き込みモードを有する
ことを特徴とする抵抗変化メモリ装置(図34)。
(3−1)(3)の抵抗変化メモリ装置において、前記バッファレジスタは、2系統のバッファレジスタを有し、
前記データ書き込みモードは、前記2系統のバッファレジスタの一方においてあるアドレスの書き込みデータのエンコード処理と前記セルアレイへの書き込み転送が行われている間に、次のアドレスの書き込みデータの他方のバッファレジスタに対する外部書き込み転送が行われる。
(3−2)(3)の抵抗変化メモリ装置において、前記所定領域の全セルに対する準備書き込みは、前記所定領域を同時書き込みの総セル電流が許容値以下に制限されるようにグループ分けして、グループ毎に順次に行なわれる。
(4)抵抗値の相違により第1のデータ状態と第2のデータ状態が可逆的に設定される抵抗変化型メモリセルを配列したセルアレイと、
前記セルアレイの書き込みデータをエンコードして前記書き込みデータと共に前記セルアレイに記憶されるチェックビットを生成し、前記セルアレイの読み出しデータをデコードしてエラー検出及び訂正を行なうECC回路と、
前記セルアレイの読み出し及び書き込みデータを一時保持するためのバッファレジスタとを備え、
前記セルアレイの所定領域のデータを前記バッファレジスタに読み出して前記ECC回路によるデコードを施し、前記セルアレイに上書きするリフレッシュモードを有することを特徴とする抵抗変化メモリ装置(図28)。
(4−1)(4)の抵抗変化メモリ装置において、前記抵抗変化型メモリセルは、第1のデータ状態の書き込みに要する時間が第2のデータ状態のそれに比べて2倍以上長く、かつ
前記リフレッシュモードは、前記バッファレジスタに読み出したデータに対する前記ECC回路によるデコード処理と並行して、前記第2のデータ状態を前記所定領域に上書きし、デコード処理終了後に前記第1のデータ状態を前記所定領域に上書きするという、2段階書き込みにより行なわれる。
(4−2)(4)の抵抗変化メモリ装置において、デコード処理終了後の前記第1のデータ状態の書き込みは、前記所定領域を同時書き込みの総セル電流が許容値以下に制限されるようにグループ分けして、グループ毎に順次に行なわれる。
(4−3)(4)の抵抗変化メモリ装置において、前記バッファレジスタは、2系統のバッファレジスタを有し、
前記リフレッシュモードは、あるアドレスのデータの前記2系統のバッファレジスタの一方によるリフレッシュ動作と、次のアドレスのデータの他方のバッファレジスタによるリフレッシュ動作とが、所定タイミングの重なりを持って交互に繰り返される。
(5)抵抗値の相違により第1のデータ状態と第2のデータ状態が可逆的に設定される抵抗変化型メモリセルを配列したセルアレイと、
前記セルアレイの書き込みデータをエンコードして前記書き込みデータと共に前記セルアレイに記憶されるチェックビットを生成し、前記セルアレイの読み出しデータをデコードしてエラー検出及び訂正を行なうECC回路と、
データ読み出し時、前記ECC回路が対応可能な最大エラー数又はそれに近いエラー数を検出したときに発生する警告信号に従って、その読み出しデータに対応するアドレスを記憶する不揮発性のアドレス記憶回路とを備え、
前記アドレス記憶回路が記憶するアドレス対応のデータを前記セルアレイから読み出して前記ECC回路によるデコードを施し、前記セルアレイに上書きするリフレッシュモードを有することを特徴とする抵抗変化メモリ装置(図56)。
(5−1)(5)の抵抗変化メモリ装置において、前記リフレッシュモードはコマンドにより設定される。
(5−2)(5)の抵抗変化メモリ装置は更に、前記アドレス記憶回路に複数のアドレスを巡回的に書き込み及び読み出すための書き込み巡回カウンタ及び読み出し巡回カウンタを有する。