以下、本発明の実施例について図面を用いて詳細に説明する。実施例の各機能ブロックを構成する回路素子は、特に制限されないが、公知のCMOS(相補型MOSトランジスタ)等の集積回路技術によって、単結晶シリコンのような半導体基板上に形成される。図面で、PMOSトランジスタにはボディに矢印の記号を付すことで、NMOSトランジスタと区別することとする。図面にはMOSトランジスタの基板電位の接続は特に明記していないが、MOSトランジスタが正常動作可能な範囲であれば、その接続方法は特に限定しない。また、特に断りの無い場合、信号のロウレベルを'0',ハイレベルを'1'とする。
(第1の実施例)
図1は、本発明によるメモリの要部ブロック図である。データエンコーダWCとデータデコーダRDを設けていることが特長である。ここでは、同期式メモリの構成例を示している。クロックバッファCLKB, コマンドバッファCB, コマンドデコーダCD, アドレスバッファAB, アドレスカウンタACT, 入力バッファDIB, 出力バッファDOBを有し、さらにメモリアレイMARを含んだセクタSCT0, SCT1, …が設けられている。セクタはバンクに対応している設けられるが、バンクあたり複数個のセクタとしてもよい。セクタはさらに、ロウプリデコーダXPD, カラムプリデコーダYPD, データエンコーダWC,データデコーダRDなどを有する。
各回路ブロックは、以下のような役割を果たす。クロックバッファCLKBは、外部クロックCLKを内部クロックCLKIとして、コマンドデコーダCDなどに分配する。コマンドデコーダCDは、コマンドバッファCBが取り込む外部からの制御信号CMDに応じて、アドレスバッファAB、カラムアドレスカウンタYCT、入力バッファDIB、出力バッファDOBなどを制御する制御信号CPを発生する。アドレスバッファABは、外部クロックCLKに応じた所望のタイミングで、外部からのアドレスADRを取り込み、アドレスカウンタACTへ送る。アドレスカウンタACTはそのアドレスを初期値として、バースト動作を行うアドレスを発生し、ロウアドレスBXをロウアドレスプリデコーダXPDへ、カラムアドレスBYをカラムアドレスプリデコーダYPDへ送る。ロウアドレスプリデコーダXPDは、ロウアドレスBXをプリデコードし、ロウプリデコードアドレスCXをメモリアレイMARへ出力する。カラムアドレスプリデコーダYPDによりプリデコードして、カラムプリデコードアドレスCYをメモリアレイMARへ出力する。入力バッファDIBは、外部との入出力データDQのデータを所望のタイミングで取り込む。データエンコーダWCは、メモリアレイMARからの読み出しデータGOと比較して、入力データDIをエンコードし、書き込みデータGIをメモリアレイMARへ出力する。一方、データデコーダRDは、読み出しデータGOをデコードし、出力データDOを出力バッファDOBへ送る。出力バッファDOBは、入出力データDQへ所望のタイミングで、出力データDOを出力する。
ここで、メモリアレイMARは、後で示すように、MTJ素子とトランジスタを含んだメモリセルを配置して構成される。また、データエンコーダWCとデータデコーダRDにより、通常のバイナリの入出力データDQに対し、メモリアレイMARに書き込むデータを、反転するビット数が少なくなるコードにする。このコーディングは、バス・インバート・コーディング(Bus-Invert Coding)と呼ばれ、非特許文献3:アイ・イー・イー・イー トランズアクションズ・オン・ベリー・ラージ・スケール・インテグレーション(VLSI)システムズ、第3巻1号、第49頁から第58頁、1995年3月(IEEE Transactions on Very Large Scale Integration (VLSI) Systems, Vol. 3, No. 1, pp. 49-58. March 1995.)に示されているコーディングと同様なコーディングである。文献3では、バス・インバート・コーディングにより、チップ間のバスのデータについて、反転するビット数の最大値を半減でき、平均的な個数を低減できることが述べられている。このようなコーディングを用いることにより、メモリアレイMAR中で反転書き込みするメモリセル数の最大値を半減できる。それにより、書き込み時のメモリアレイMARの合計の消費電流の最大値を低減できる。また、消費電流の平均値も低減される。
データエンコーダWCをセクタ毎に設けることにより、データをエンコードする際に、メモリアレイMARから読み出した読み出しデータGOをデータエンコーダWCまで伝達するパスを短くしている。それにより、読み出しデータGOの伝達に伴う遅延時間と消費電力を小さくしている。ここでは、データデコーダRDも、データエンコーダWCに合わせて、セクタ毎に設けている。
以下に、データエンコーダWCとデータデコーダRDの構成と動作を説明する。以下では、8ビットのバイナリの入力データDIを、データエンコードWCにより、フラグとして1ビットを加えた9ビットの書き込みデータGIにエンコードする場合を示す。逆に、9ビットの読み出しデータGOを、データデコーダRDにより、フラグを取り除いた8ビットの出力データDOにデコードする。ここで、8ビットのバイナリの入力データDIは、相補信号DI0t〜DI7t,DI0b〜DI7bで伝達される。また、9ビットの書き込みデータGIも、相補信号GI0t〜GI8t,GI0b〜GI8bで伝達される。同様に、9ビットの読み出しデータGOも、相補信号GO0t〜GO8t,GO0b〜GO8bで伝達される。一方、8ビットの出力データDOは、トゥルー信号DO0〜DO7で伝達される。本発明は、このデータ伝達方法に限定されないことはもちろん、このビット数に限定されず、他のビット数でも適用可能である。ただし、ビット数が大きいとデータエンコーダWC及びデータデコーダRDの回路規模が大きくなり、ビット数が小さいとフラグの分のメモリセル数が増加する。そのため、8ビットを9ビットにするコーディング程度が適当である。16ビット構成のメモリの場合、上位8ビットと下位8ビットに分けて、それぞれコーディングすることが望ましい。
図2は、データエンコーダWCの構成例を示している。8ビットの入力データDI0t〜DI7t,DI0b〜DI7bに対応した8個のデータ制御回路GICと、フラグ制御回路GFCと、判定回路IFDにより構成される。データ制御回路GICは、入力データDI0t〜DI7t,DI0b〜DI7bと読み出しデータGO0t〜GO7t,GO0b〜GO7bを比較し、判定回路IFDが出力する制御信号DIFt, DIFbにより制御されて、書き込みデータGI0t〜GI7t,GI0b〜GI7bを出力する。フラグ制御回路GFCは、フラグの読み出しデータGO8t,GO8bを受け、制御信号DIFt, DIFbにより制御されて、フラグの書き込みデータGI8t,GI8bを出力する。判定回路IFDは、8個のデータ制御回路GICのデータ比較結果DH0〜DH7及びフラグの読み出しデータGO8tに応じて、制御信号DIFt, DIFbを出力する。この制御信号DIFt, DIFbは、データを反転させるか否かを示し、反転させる場合にはDIFtが'0',DIFbが'1'となる。
図3は、図2中の判定回路IFDの構成例を示している。この回路は、データ比較結果DH0〜DH7及びフラグの読み出しデータGO8tの9個の入力に対し、'1'が5個以上であるか否かを判定する。2個の論理回路IC4と、論理回路IC4Dからなる。論理回路IC4は、3個の2入力NANDゲートと、3個の2入力NORゲートと、2入力ずつのORをとってNANDをとる4入力複合ゲートと、2入力のORをとって他の2入力とNANDをとる複合ゲートで構成されている。この論理回路IC4は、4入力の'1'の個数に応じた出力を得る回路である。例えば、データ比較結果DH0〜DH3が入力される論理回路IC4の出力DHL1〜DHL4は以下のようになる。DHL1は、DH0〜DH3のいずれかが'1'で、'1'が1個以上の時に、'1'となる。DHL2は、DH0〜DH3中に'1'が2個以上の時に'1'となる。DHL3は、DH0〜DH3中に'1'が3個以上の時に'1'となる。DHL4は、DH0〜DH3がすべて'1'で、'1'の個数が4個の時、'1'となる。論理回路IC4の以上のような出力DHL1〜DHL4及びDHU1〜DHU4と、読み出しデータGO8tが、論理回路IC4Dに入力される。論理回路IC4Dは、2個の2入力NORゲートと、7個の2入力NANDゲートと、4入力のORをとって他の入力とNANDをとる複合ゲートと、4入力NANDゲートと、インバータから構成される。この論理回路IC4Dにより、データ比較結果DH0〜DH7及びフラグの読み出しデータGO8tの9個の入力に対し、'1'が5個以上の時、判定結果DIFtが'1',DIFbが'0'となる。
この判定回路は、スタティックなCMOS論理ゲートで構成されており、タイミングを制御する信号を用いていない。そのため、コーディングによる書き込みデータの遅延を小さくできる。この判定回路は、複合ゲートを用いることにより、ゲート段数を少なくして遅延時間を小さくすると共に、回路規模を小さくしている。このようなCMOS論理ゲートではなく、多入力の差動アンプを用いて判定回路を構成することもできる。その場合、図3に示した判定回路に比べて、動作タイミングの設定などS/N確保に向けた工夫が必要であるが、素子数が低減できる。
図4は、図2中のデータ制御回路GICの構成例を示している。図の記号中のiが、0〜7のいずれかであることにより、図2に対応する。4個のPMOSトランジスタと4個のNMOSトランジスタからなる論理ゲートXORを2個と、インバータINVと、2個の2入力NANDゲートND2と、2入力ずつのORをとってNANDをとる4入力複合ゲートONA2を2個と、2入力NANDゲートとインバータからなる2個の書き込みデータドライバGIDで構成される。書き込みデータドライバGIDは、エネーブル信号GIEにより制御され、書き込みデータGIit, GIibを出力する。論理ゲートXORにより、相補信号の入力データDIit, DIibと読み出しデータGOit, GOibとの排他的NORをとり、データ比較結果DHiを出力する。また、インバータINVと論理ゲートXORにより、データ比較結果DHiと相補信号の判定結果DIFt, DIFbとの排他的ORを取り、制御信号GIiEを発生する。この制御信号GIiEは、反転書き込みが必要か否かを示す信号である。制御信号がGIiEが'0'ならば、書き込みデータGIit, GIibを両方'0'とする。制御信号がGIiEが'1'ならば、制御信号DIFtが'0',DIFbが'1'の場合には、入力データDIit, DIibのトゥルー信号とバー信号を入れ替えて書き込みデータGIit, GIibとして出力し、DIFtが'1'でDIFbが'0'の場合には、入力データDIit, DIibをそのまま書き込みデータGIit, GIibとして出力する。個の構成では、複合ゲートを用いることにより、少ないゲート段数で所望の論理を実現している。特に、入力データDIit, DIib及び読み出しデータGOit, GOibと判定結果DIFt, DIFbを相補信号とすることにより、排他的NOR及び排他的ORを1段のゲートで構成し、遅延時間の低減を小さくしている。
図5は、図2中のフラグ制御回路GFCの構成例を示している。4個のPMOSトランジスタと4個のNMOSトランジスタからなる論理ゲートXORと、2個の2入力NANDゲートND2と、2個のインバータINVと、2入力NANDゲートとインバータからなる2個の書き込みデータドライバGIDで構成される。図4のデータ制御回路GICと同様に、書き込みデータドライバGIDは、エネーブル信号GIEにより制御され、書き込みデータGI8t, GI8bを出力する。論理ゲートXORにより、相補信号のフラグの読み出しデータGO8t, GO8bと判定結果DIFt, DIFbとの排他的NORを取り、制御信号GI8Eを発生する。この制御信号GI8Eは、図4中の制御信号と同様GIiEと同様に、反転書き込みが必要か否かを示す信号である。制御信号がGI8Eが'0'ならば、書き込みデータGI8t, GI8bを両方'0'とする。制御信号がGI8Eが'1'ならば、判定結果DIFt, DIFbをそのまま書き込みデータGI8t, GI8bとして出力する。判定結果DIFt, DIFbに対して、この書き込みデータGI8t, GI8bを出力するパスは、図4のデータ制御回路GICが書き込みデータGIit, GIibを出力するパスと同じ段数となっており、遅延時間をほぼ揃えることができる。
図6は、データデコーダRDの構成例を示している。8ビットの出力データDO0〜DO7に対応して設けられ、フラグの読み出しデータGO8t, GO8bにより制御される8個のデータ制御回路DODにより構成されている。なお、フラグの読み出しデータGO8t, GO8bについて、8個のデータ制御回路DODに入力することにより、負荷容量が過大になる場合には、偶数段のインバータ列によるバッファを設ければ良い。
図7は、図6中のデータ制御回路DODの構成例を示している。図の記号中のiが、0〜7のいずれかであることにより、図6に対応する。2入力ずつのANDをとってNORをとる4入力複合ゲートNAO2と、2個のPMOSトランジスタと2個のNMOSトランジスタからなるトライステートインバータTIVで構成される。4入力複合ゲートNAO2は、相補信号であるフラグの読み出しデータGO8t, GO8bにより、読み出しデータGOit, GOibのいずれかを選択する。トライステートインバータTIVは、エネーブル信号DOEbがロウ,DOEtがハイになることにより、出力データDOiを出力する。このようにトライステートインバータを用いているのは、出力データDOiは、図1に示しているように、複数のセクタSCT0, SCT1, …から駆動されるバスであるためである。このように、簡単な回路構成で読み出しデータのエンコードは実現できる。遅延時間は小さく、リードのアクセス時間への影響は小さい。
図8は、図1中のメモリアレイMARの構成例を示している。メモリセルアレイMCA、ロウデコーダXDEC、ワードドライバ群WDP、データ線制御回路CCN, CCFを有する。ここでは、簡単のため、参照信号発生用のダミーセルなどは省略している。また、メモリ容量によっては、このような構成を繰り返して図1のメモリアレイMARとしても良い。メモリセルアレイMCAは、書き込みワード線WW0, WW1, WW2, WW3, …及び読み出しワード線WR0, WR1, WR2, WR3, …と、データ線DL0, DL1, DL2, DL3, …の交点に、メモリセルMCが設けられる。メモリセルMCは、両端を接地されたソース線SL01, SL23, …にも接続される。書き込みワード線WW0, WW1, WW2, WW3, …及び読み出しワード線WR0, WR1, WR2, WR3, …は、駆動回路を含むワードドライバ群WDPにより制御される。データ線DL0, DL1, DL2, DL3, …は、センスアンプ及びライトバッファを含むデータ線制御回路CCN, CCFにより両端を制御される。
各メモリセルMCは、1個のMTJ素子MTJと1個のトランジスタMTからなる。MTJ素子MTJは、通常の動作において磁化の向きが固定された強磁性体の固定層と、書き込み動作により磁化の向きが反転可能な強磁性体の自由層との間に、トンネル絶縁膜が挟まれた構造である。このMTJ素子の2端子間の抵抗は、二つの強磁性体層における磁化の向きによって変化し、同じ向きの時は低抵抗状態、互いに逆向きの時は高抵抗状態となる。メモリセルMCの読み出し動作は、図12に示すように行う。すなわち、WR0, WR1, WR2, WR3, …中で選択した読み出しワード線WRをハイレベルにすることにより、該ワード線に接続されたメモリセル中でトランジスタMTを導通させてMTJ素子MTJの端子間に電圧を印加し、MTJ素子MTJの磁気抵抗に応じて、DL0, DL1, DL2, DL3, …中の所望のデータ線を介して流れる電流IDLを検出することにより、記憶情報を読み出す。一方、書き込み動作は、図13に示すように行う。すなわち、WW0, WW1, WW2, WW3, …中で選択された書き込みワード線の電流IWWを、書き込みワード線電流IWSとし、DL0, DL1, DL2, DL3, …中で選択したデータ線の電流を、書き込みデータに応じて正の書き込み電流ID1あるいは負のID0とすることにより磁界を発生させて行う。
ロウデコーダXDECは、ロウプリデコードアドレスCXをデコードし、ロウデコード信号XA0, XA1, XA2, XA3, …をワードドライバ群WDPへ出力する。ワードドライバ群WDPは、書き込みワード線WW0, WW1, WW2, WW3, …及び読み出しワード線WR0, WR1, WR2, WR3, …に対応して、それぞれ2入力NANDゲートとインバータからなるワードドライバWWD及びWRDが設けられて構成される。ワードドライバWWDは、書き込みワード線駆動のエネーブル信号WWEが'1'の時、ロウデコード信号XA0, XA1, XA2, XA3, …により選択されて、書き込みワード線WW0, WW1, WW2, WW3, …のいずれかを駆動する。書き込みワード線WW0, WW1, WW2, WW3, …は、ワードドライバ群WDPとアレイを挟んだ反対側が接地されており、選択された書き込みワード線に書き込みワード線電流が流れる。ワードドライバWRDは、読み出しワード線駆動のエネーブル信号WREが'1'の時、ロウデコード信号XA0, XA1, XA2, XA3, …により選択されて、読み出しワード線WR0, WR1, WR2, WR3, …のいずれかを駆動する。
図9は、図8中のデータ線制御回路CCNの構成例を示している。ここでは、9ビットずつの読み出しあるいは書き込みを、144本のデータ線DL0〜DL143に対して行う例を示しており、3ビット分ずつ3分割された構成としている。3個のカラムデコーダYD16と、9個のライトバッファWBNと、9個のセンスアンプSAと、3個のカラムセレクタYSN3からなる。カラムデコーダYD16は、カラムプリデコードアドレスCYをデコードし、相補信号のカラム選択信号YN0t〜YN15tとYN0b〜YN15b,YN16t〜YN31tとYN16b〜YN31b,YN32t〜YN47tとYN32b〜YN47bの16対から1対ずつを選択する。ライトバッファWBNは、インバータとPMOSトランジスタとNMOSトランジスタとで構成され、書き込みデータGI0t〜GI8t,GI0b〜GI8bを受け、共通データ線DN0〜DN8を駆動する。例えば、書き込みデータGI0tがハイであれば共通データ線DN0をハイに駆動し、GI0bがロウであればDN0をロウに駆動する。ここで、書き込みデータGI0t, GI0bが両方ロウである場合には、ハイインピーダンス状態となる。センスアンプSAは、メモリセルの読み出し動作の際、共通データ線DN0〜DN8の信号を検出して、読み出しデータGO0t〜GO8t,GO0b〜GO8bを出力する。カラムセレクタYSN3は、それぞれ48本のデータ線DL0〜DL47, DL48〜DL95, DL96〜DL143の各々に、カラム選択信号YN0t〜YN15tとYN0b〜YN15b,YN16t〜YN31tとYN16b〜YN31b,YN32t〜YN47tとYN32b〜YN47bにより制御される1個のPMOSトランジスタと2個のNMOSが接続されてなり、48本のデータ線から3本を共通データ線DN0〜DN2, DN3〜DN5, DN6〜DN8に接続する。非選択のデータ線は、接地電圧VSSに保つ。例えば、カラム選択信号YN0tがハイ、YN0bがロウになると、データ線DL0〜DL2を共通データ線DN0〜DN2に接続し、データ線DL3〜DL47をVSSに保つ。
図10は、図8中のデータ線制御回路CCFの構成例を示している。図9のデータ線制御回路CCNがメモリセルの読み出しと書き込みの両方に寄与するのに対し、このデータ線制御回路CCFは書き込みのみに用いられる。図9のデータ線制御回路CCNに対応し、9ビットずつの書き込みを、144本のデータ線DL0〜DL143に対して行う例を示しており、3ビット分ずつ3分割された構成としている。3個のカラムデコーダYD16と、9個のライトバッファWBFと、3個のカラムセレクタYSF3からなる。カラムデコーダYD16は、カラムプリデコードアドレスCYをデコードし、相補信号のカラム選択信号YF0t〜YF15tとYF0b〜YF15b,YF16t〜YF31tとYF16b〜YF31b,YF32t〜YF47tとYF32b〜YF47bの16対から1対ずつを選択する。ライトバッファWBFは、図9中のライトバッファWBNと同様に、インバータとPMOSトランジスタとNMOSトランジスタとで構成され、書き込みデータGI0t〜GI8t,GI0b〜GI8bを受け、共通データ線DF0〜DF8を駆動する。ここで、図9中のライトバッファWBNとは、書き込みデータGI0t〜GI8t,GI0b〜GI8bが逆に接続されている。例えば、書き込みデータGI0tがハイであれば共通データ線DF0をロウに駆動し、GI0bがロウであればDF0をハイに駆動する。書き込みデータGI0t, GI0bが両方ロウである場合には、ハイインピーダンス状態となる。カラムセレクタYSN3は、それぞれ48本のデータ線DL0〜DL47, DL48〜DL95, DL96〜DL143の各々に、カラム選択信号YF0t〜YF15tとYF0b〜YF15b,YF16t〜YF31tとYF16b〜YF31b,YF32t〜YF47tとYF32b〜YF47bにより制御される1個のPMOSトランジスタと1個のNMOSが接続されてなり、48本のデータ線から3本を共通データ線DF0〜DF2, DF3〜DF5, DF6〜DF8に接続する。例えば、カラム選択信号YF0tがハイ、YF0bがロウになると、データ線DL0〜DL2を共通データ線DF0〜DF2に接続する。
このようにライトバッファWBN, WBFを構成することにより、書き込みデータの信号が両方ロウである場合に、ライトバッファが両方ハイインピーダンス状態となり、データ線に電流を流さないように制御できる。すなわち、不要な書き込み電流を防止できる。
本実施例のようにデータをコーディングすると、フラグを付加することにより、同時に選択するメモリセル数が2のべき乗ではなくなってしまう。8ビットを9ビットにコーディングする場合、このようにデータ線制御回路CCN, CCFを構成し、3ビットずつに3分割することにより、データパスを揃えることができ、センスアンプなどのタイミング制御が容易になる。
図15は、以上に説明してきた同期式MRAMのリード動作のタイミングの例を示している。このタイミングチャートに従い、動作を説明する。外部クロックCLKの立ち上がり毎に、コマンドデコーダCDが制御信号CMDを判断する。リードコマンドRが与えられることにより、アドレスADRからロウアドレス及びカラムアドレスをアドレスバッファABに取り込む。アドレスバッファABに取り込んだカラムアドレスを初期値として、アドレスカウンタACTがクロックサイクル毎に動作し、ロウアドレスBXとカラムアドレスBYを出力する。これを受けて、ロウアドレスプリデコーダXPDがロウプリデコードアドレスCXを、カラムアドレスプリデコーダYPDがカラムプリデコードアドレスCXを出力し、メモリアレイMAR内で、読み出し用ワード線WRとカラム選択信号YSが選択される。それにより選択されたデータ線に、データ線電流IDLが流れる。これをセンスアンプSAが検出して読み出しデータGOを出力する。データデコーダRDにより読み出しデータGOをデコードして、出力データDOを出力バッファDOBへ送る。さらに出力バッファDOBが外部クロックCLKに応じたタイミングでデータを入出力データDQへ出力する。ここでは、リードコマンドRに対してクロックCLKの2サイクル後の立ち上りに応じて、入出力データDQへ出力しており、リードレイテンシが3の場合を示している。クロックCLKのサイクル毎に、以上の動作が繰り返される。
図16は、ライト動作のタイミングの例を示している。リードコマンドWが与えられることにより、アドレスADRからロウアドレス及びカラムアドレスをアドレスバッファABに取り込む。アドレスバッファABに取り込んだカラムアドレスを初期値として、アドレスカウンタACTがクロックCLKの2サイクル毎に動作し、ロウアドレスBXとカラムアドレスBYを出力する。これを受けて、ロウアドレスプリデコーダXPDがロウプリデコードアドレスCXを、カラムアドレスプリデコーダYPDがカラムプリデコードアドレスCXを出力する。メモリアレイMAR内で、まず読み出し用ワード線WRとカラム選択信号YSが選択される。それにより選択されたデータ線に、データ線電流IDLが流れる。これをセンスアンプSAが検出して読み出しデータGOを出力する。一方、ライトコマンドが入力された次のクロックサイクルで、入力バッファDIBが入出力データDQを取り込み、入力データDIを出力する。データエンコーダWDにより、読み出しデータGOと比較して入力データDIをエンコードし、書き込みデータGIとする。読み出しワード線WRをリセットし、書き込みワード線電流IWWに所望の電流を流す。また、ライトバッファによりデータ線を書き込みデータGIに応じて電流を流す。その結果、所望のメモリセルに反転書き込みが行われる。クロックCLKの2サイクル毎に、以上の動作が繰り返される。
このように、同期式メモリとすることで、外部クロックCLKと同期してコマンドやアドレスの取り込み及びデータの入出力を行う同期式メモリとすることにより、高い周波数での動作が可能であり、高データレートが実現できる。本発明によるMRAMは、SRAMやDRAMについて開発されている各種の高速メモリ方式が応用できる。
この例では、図15のリード動作がクロックCLKと同じサイクルで行われるのに対し、ライト動作をクロックCLKの2サイクル毎としている。これは、ライト動作ではメモリセルからの読み出し動作後に反転書き込みを行うため、ライト動作よりもサイクル時間が長くなるためである。このようにライト動作を2サイクル毎とすることにより、リードのサイクルとなるクロックサイクル時間を短くできる。場合によっては、ライト動作もクロックサイクル毎に行うようにすることもできる。その方が、クロックサイクル時間が長くなるが、リード動作とライト動作のサイクルが揃うため、制御は容易となる。
また、図16のライト動作では、入力データをライトコマンドに対してクロックCLKの1サイクル後に取り込み、ライトレイテンシを1としている。このようにしても、メモリセルの書き込み動作は読み出し動作後に行うため、入力データがクリティカルパスとはならない。ライトレイテンシを1とすることにより、リードレイテンシとの差が小さくなり、入出力データDQのバスの使用効率を向上できる。
図15及び図16では、リードコマンドRあるいはライトコマンドWで、ロウアドレスとカラムアドレスを同時に取り込んでいる。これにより、DRAMでは一般に必要とされているロウアドレス取り込みからカラムアドレス取り込みまでの遅延時間がなく、選択されたデータ線の情報のみを検出できる。DRAMと異なり、MRAMは非破壊読み出しが可能であり、ワード線上の全メモリセルのデータを検出する必要はないため、このような動作が可能である。選択されたデータ線の情報のみを検出することにより、消費電力が低減できる。
図8では、各メモリセルMCが、1個のMTJ素子MTJと1個のトランジスタMTからなる構成を示したが、非特許文献4:アイ・イー・イー・イー、インターナショナル・ソリッドステート・サーキッツ・コンファレンス、ダイジェスト・オブ・テクニカル・ペーパーズ、第128頁から第129頁(2000年)(2000 IEEE International Solid-State Circuits Conference, Digest of Technical Papers, pp. 128-129.)に示されているように、メモリセルを2個のMTJ素子と2個のトランジスタで構成するメモリアレイにも本発明は適用でき、同様に書き込み時の消費電流を低減する効果が得られる。そのようなメモリアレイでは、書き込み時のデータ線電流をループ状に流すため、片側で制御でき、データ線制御回路の構成を簡単化できる。
(第2の実施例)
第1の実施例で説明したような、書き込むビット数を減らす手法は、MRAMだけでなく、相変化メモリでも有効である。本発明を適用した相変化メモリは、MRAMと同様に図1のように構成でき、図2〜図7に示したデータエンコーダ及びデータデコーダを使用できる。図17は、メモリアレイの構成例を示しており、図1中のメモリアレイMARとして用いられる。メモリセルアレイOCA、ロウデコーダXDEC、ワードドライバ群WD、データ線制御回路CCOからなる。ここでも図8と同様に、簡単のため、参照信号発生用のダミーセルなどは省略している。また、メモリ容量によっては、このような構成を繰り返して図1のメモリアレイMARとしても良い。メモリセルアレイOCAは、ワード線WL0, WL1, WL2, WL3, …と、データ線OL0, OL1, OL2, OL3, …の交点に、メモリセルOCが設けられる。メモリセルOCは、両端を接地されたソース線SL01, SL23, …にも接続される。各メモリセルは、1個の相変化抵抗CRと1個のトランジスタMTからなる。相変化抵抗CRは、カルコゲナイド材料でなり、状態により低抵抗状態と高抵抗状態になる。ワード線WL0, WL1, WL2, WL3, …は、ワードドライバ群WDにより駆動される。ロウデコーダXDECは、ロウプリデコードアドレスCXをデコードし、ロウデコード信号XA0, XA1, XA2, XA3, …をワードドライバ群WDへ出力し、それに応じてワードドライバ群WDが選択的にワード線WL0, WL1, WL2, WL3, …を駆動する。データ線OL0, OL1, OL2, OL3, …は、センスアンプ及びライトバッファを含むデータ線制御回路CCOにより制御される。
図18は、図17中のデータ線制御回路CCOの構成例を示している。ここでも図9と同様に、9ビットずつの読み出しあるいは書き込みを、144本のデータ線DL0〜DL143に対して行う例を示しており、3ビット分ずつ3分割された構成としている。3個のカラムデコーダYD16と、書き込みパルス発生回路WPGと、9個のライトバッファWBOと、9個のセンスアンプSAOと、3個のカラムセレクタYSO3からなる。図9に示したMRAMのデータ線制御回路CCNと同様に、カラムデコーダYD16は、カラムプリデコードアドレスCYをデコードし、相補信号のカラム選択信号YO0t〜YO15tとYO0b〜YO15b,YO16t〜YO31tとYO16b〜YO31b,YO32t〜YO47tとYO32b〜YO47bの16対から1対ずつを選択する。カラムセレクタYSO3は、図9中のカラムセレクタYSN3と同じ構成であり、それぞれ48本のデータ線OL0〜OL47, OL48〜OL95, OL96〜OL143の各々に、カラム選択信号対により制御される1個のPMOSトランジスタと2個のNMOSが接続されてなり、48本のデータ線から3本を共通データ線CD0〜CD2, CD3〜CD5, CD6〜CD8に接続し、非選択のデータ線を接地電圧VSSに保つ。ライトパルス発生回路WPGは、'1'及び'0'の書き込み用のパルスを、書き込みパルス線WP1, WP0に出力する。ライトバッファWBNは、2個のインバータと2個のPMOSトランジスタとで構成され、書き込みデータGI0t〜GI8t,GI0b〜GI8bを受け、書き込みパルス線WP1, WP0に共通データ線DN0〜DN8を接続する。例えば、書き込みデータGI0tがハイであれば共通データ線CD0を書き込みパルス線WP1に接続し、GI0bがロウであればCD0をWP0に接続する。ここで、書き込みデータGI0t, GI0bが両方ロウである場合には、図9中のライトバッファWBNと同様に、ハイインピーダンス状態となる。センスアンプSAOは、メモリセルの読み出し動作の際、共通データ線CD0〜CD8の信号を検出して、読み出しデータGO0t〜GO8t, GO0b〜GO8bを出力する。
リード動作は、図19に示すように行う。すなわち、WL0, WL1, WL2, WL3, …中で選択したワード線WLをハイレベルとし、該ワード線に接続されたメモリセル中でトランジスタMTを導通させ、所望のカラム選択信号対YOt, YObを選択することにより、センスアンプSAOからカラムセレクタ及びデータ線を介して、相変化抵抗CRの端子間に電圧を印加する。相変化抵抗CRの状態に応じてデータ線に流れる電流IOLにより、メモリセルOCから記憶情報を読み出し、センスアンプSAOで検出し、読み出しデータGOを出力する。ここで、データ線電流IOLの流れる期間は、センスアンプSAOにより定める。
一方、ライト動作は、図20に示すように行う。まず、リード動作と同様にメモリセルOCからの読み出し動作を行う。ここで、ワード線WLとカラム選択信号対YOt, YObをそのまま保つ。読み出しデータに応じて書き込みデータが定まる。それに応じて、メモリセルOCへの書き込みを、データ線電流が流れることによる発熱によって、相変化抵抗CRの状態を変化させて行う。反転書き込みを行う場合には、データ線制御回路CCO内のライトパルス発生回路WPGとライトバッファWBNにより、データ線に書き込み電流を流す。'1'の書き込み('1'WRITE)では、小さな電流ID1を長いパルス幅で印加し、相変化抵抗CRをアニールして低抵抗化する。'1'の書き込み('1'WRITE)では、大きな電流ID0を短いパルス幅で印加し、相変化抵抗CRをアモルファス化して高抵抗化する。反転書き込みが不要(WRITE_VOID)な場合には、データ線電流IOLを0に保つ。
このようにして、相変化メモリでも、第1の実施例と同様に、書き込みを行うビット数を低減して消費電流を低減できる。相変化メモリでは特に、温度上昇を抑制して動作を安定させる効果が得られる。多数のメモリセルOCに同時に書き込むと、メモリセルアレイ全体の温度が上昇し、データ線電流IOLのパルス印加後の温度下降が遅くなる。そのため、'0'書き込み('0'WRITE)を短いパルスで行っても、低抵抗状態となってしまう恐れがある。本発明により、書き込みを行う最大のビット数を半減することによって、この問題を回避できる。
また、相変化メモリでは、書き込み動作を繰り返すことによる相変化抵抗の劣化が懸念される。本発明により、メモリセル毎の書き込み回数を、平均的には低減できるため、相変化抵抗の劣化を低減し、高信頼化できる。
図12及び図13を用いて説明したMRAMの動作と異なり、相変化メモリでは、読み出し動作と書き込み動作の両方でワード線WLをハイレベルとする。そのため、ライト動作でワード線WLをハイレベルとしたまま、読み出し動作に続けて書き込み動作を行える。したがって、周辺回路の消費電流や遅延時間について、書き込み動作の前に読み出し動作を行うことによるペナルティは小さい。
(第3の実施例)
コーディングを用いない実施例を、MRAMについて次に説明する。図21は、MRAMのメモリアレイの、図8とは別な構成例を示している。MRAM全体は、例えば、図1からデータエンコーダWC,データデコーダRDを削除した構成される。このメモリアレイ構成は、メモリセルアレイMCA、ロウデコーダXDEC、ワードドライバ群WDP、データ線制御回路CCN2, CCF2を有する。メモリセルアレイMCAは、データ線数が異なるが、図8に示したように構成される。ロウデコーダXDEC、ワードドライバ群WDPは、図8と同様に動作する。
データ線制御回路CCN2は、カラムセレクタYSNと、読み出しデータGO0, GO1,…に対応した複数の読み出し書き込み回路RWNを含む。ここでは、簡単のため、カラムデコーダなどは省略している。カラムセレクタYSNは、図9中のカラムセレクタYSN3と同様に構成され、所望のデータ線を共通データ線DN0, DN1, …に接続する。読み出し書き込み回路RWNは、センスアンプSAとライトバッファWBにより構成される。リード動作では、メモリセルアレイから読み出した共通データ線DN0, DN1, …の信号を、センスアンプSAにより検出し、読み出しデータGO0, GO1, …として出力する。ライト動作でも、まず、メモリセルアレイから読み出した共通データ線DN0, DN1, …の信号を、センスアンプSAにより検出する。その結果に応じて、ライトバッファWBにより、共通データ線DN0, DN1, …を介してデータ線を駆動する。すなわち、'1'を読み出した場合には、ハイレベルに駆動し、'0'を読み出した場合にはロウレベルに駆動する。
データ線制御回路CCF2は、カラムセレクタYSFと、書き込みデータGI0, GI1,…に対応した複数の書き込み回路WFを含む。ここでは、簡単のため、カラムデコーダなどは省略している。カラムセレクタYSFは、図10中のカラムセレクタYSF3と同様に構成され、所望のデータ線を共通データ線DF0, DF1, …に接続する。書き込み回路WFは、ライトバッファWBとインバータINVにより構成される。ライト動作において、入力された書き込みデータGI0, GI1, …を反転して、共通データ線DF0, DF1, …を介してデータ線を駆動する。すなわち、'1'が入力された場合には、ハイレベルに駆動し、'0'が入力された場合にはロウレベルに駆動する。
ライト動作において、以上のようにデータ線を駆動することにより、読み出しデータと書き込みデータが一致している場合には、データ線の両側が同じレベルに駆動され、電流が流れない。不一致の場合には、書き込みデータに応じて、データ線制御回路CCN2, CCF2間でデータ線に流れる。これにより、反転させるビットのみメモリセルへの書き込みを行うことが実現できる。反転書き込み不要なビットについては、データ線電流を流さないため、ライト動作の平均電流を低減できる。
第1の実施例では、コーディングによりフラグビットを付加するコーディングを用いて、反転書き込みのビット数を低減し、書き込むビット数の最大値と平均値を同時に低減していのに対し、本実施例では反転書き込みを行わないことにより、平均値を低減している。第1の実施例に比べ簡便な手法であり、フラグビットを付加することによるメモリセル数の増加はない。また、両側のデータ線制御回路の一方のみに書き込みデータを入力すれば良いため、従来の構成よりも配線数が少なくて済み、回路構成も簡単になる。
(第4の実施例)
相変化メモリで、コーディングを用いない実施例を、次に説明する。図22は、相変化メモリのメモリアレイの、図17とは別な構成例を示している。相変化メモリ全体は、第3の実施例と同様に、例えば、図1からデータエンコーダWC,データデコーダRDを削除した構成される。このメモリアレイ構成は、メモリセルアレイOCA、ロウデコーダXDEC、ワードドライバ群WD、データ線制御回路CCO2を有する。メモリセルアレイOCAは、データ線数が異なるが、図17に示したように構成される。ロウデコーダXDEC、ワードドライバ群WDは、図17と同様に動作する。
データ線制御回路CCO2は、カラムセレクタYSOと、書き込みデータGI0, GI1,…及び読み出しデータGO0, GO1, …に対応した複数の読み出し書き込み回路RWOと、書き込みパルス発生回路WPGを含む。ここでも、簡単のため、カラムデコーダなどは省略している。カラムセレクタYSOは、図18中のカラムセレクタYSO3と同様に構成され、所望のデータ線を共通データ線CD0, CD1, …に接続する。読み出し書き込み回路RWOは、センスアンプSAと、排他的ORゲートXOR2と、インバータと、2個のNANDゲートと、2個のPMOSトランジスタにより構成される。リード動作では、メモリセルアレイから読み出した共通データ線CD0, CD1,…の信号を、センスアンプSAにより検出し、読み出しデータGO0, GO1, …として出力する。ライト動作でも、まず、メモリセルアレイから読み出した信号を、センスアンプSAにより検出する。その結果を、排他的ORゲートXOR2により、書き込みデータGI0, GI1, …と比較する。不一致の場合、排他的ORゲートXOR2が'1'を出力し、PMOSトランジスタにより書き込みパルス線WP1, WP0を共通データ線に接続する。その結果、ライトパルス発生回路WPGが書き込みパルス線WP1, WP0に出力する'1'及び'0'の書き込み用のパルスがデータ線に伝えられる。これにより、反転させるビットのみメモリセルへの書き込みを行うことが実現できる。
本実施例でも、第3の実施例と同様に、反転書き込み不要なビットについては、データ線電流を流さないため、ライト動作の平均電流を低減できる。なお、特許文献1:特開平7-220479号に、スタティックRAMに関して、排他的ORゲートを用いてセンスアンプ出力と書き込みデータを比較し、反転書き込みのみを行い、書き込みの消費電流を低減する手法が開示されている。本発明は、その手法を相変化メモリに応用しているが、消費電流低減の効果に加え、第2の実施例について述べたような、メモリセルアレイ全体の温度上昇を抑制し書き込みを安定化する効果や、相変化抵抗の書き込み回数を低減して劣化を抑制し高信頼化する効果が得られる。また、特許文献2:特開平9-63286号には、EEPROMについて、読み出しデータと入力データを比較して消去回路及び書き込み回路を制御し、不必要な消去動作をなくして寿命を延ばす手法が開示されている。特許文献2の手法では、同時に動作させるデータ毎に比較を行って制御しているのに対し、本実施例では、ビット毎に比較して書き込み動作を行うか否かを判定している。そのため、本実施例の方が、不要な書き込みを行わない効果が大きく、特に同時に動作させるビット数が大きい場合に有効である。
なお、MRAMでも本実施例のように、排他的ORゲートを用いてセンスアンプ出力と書き込みデータを比較し、反転書き込みのみを行う構成とすることもできる。
以上の実施例で説明してきた本発明は、単体のMRAMや相変化メモリだけでなく、MRAMあるいは相変化メモリを混載したシステムLSIなど半導体装置一般に適用できることは言うまでもない。その場合にも、MRAMあるいは相変化メモリについて、実施例毎に説明したような効果が得られる。