JP2013200905A - 半導体記憶装置およびその駆動方法 - Google Patents

半導体記憶装置およびその駆動方法 Download PDF

Info

Publication number
JP2013200905A
JP2013200905A JP2012067391A JP2012067391A JP2013200905A JP 2013200905 A JP2013200905 A JP 2013200905A JP 2012067391 A JP2012067391 A JP 2012067391A JP 2012067391 A JP2012067391 A JP 2012067391A JP 2013200905 A JP2013200905 A JP 2013200905A
Authority
JP
Japan
Prior art keywords
data
read
bank
address
column
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012067391A
Other languages
English (en)
Inventor
Naoki Shimizu
水 直 樹 清
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2012067391A priority Critical patent/JP2013200905A/ja
Publication of JP2013200905A publication Critical patent/JP2013200905A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1673Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1675Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1693Timing circuits or methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Dram (AREA)

Abstract

【課題】カラム選択線を効率的に切り替えて異なるカラムから連続的にデータを出力することができる半導体記憶装置を提供する。
【解決手段】半導体記憶装置は、不揮発性の複数のメモリセルを含む複数のメモリバンクを含む。複数のバッファは、複数のメモリバンクのそれぞれに対応して設けられ、データ書込みまたはデータ読出し時にメモリバンクのデータを一時的に格納する。コントローラは、バッファに既に読み出されたデータを用いて複数のカラムのデータを連続的に読み出し、あるいは、バッファに既に読み出されたデータを用いて複数のカラムのデータを連続的に書き込む第1のモードと、データ読出しまたはデータ書込み時に選択された単一カラムのデータを読み出し、あるいは、選択された単一カラムのデータを書き込む第2のモードとを切り替えるバッファイネーブル信号を生成する。
【選択図】図15

Description

本発明による実施形態は、半導体記憶装置およびその駆動方法に関する。
MRAM(Magnetic Random Access Memory)等の不揮発性メモリは、電流検知型のセンスアンプを用いている。しかし、電流検知型のセンスアンプは面積が大きいため、マルチプレクサが、メモリブロック内のカラムCSL(ビット線またはビット線対)を選択的にセンスアンプに接続している。従って、同一メモリブロック内の全カラムCSLからデータを同時に読み出すことができない。また、カラムCSLの切り替えのタイミングによっては、データ同士が衝突してしまう恐れがある。同一のカラムCSLを選択した場合であっても、同様にデータ同士の衝突が発生する恐れがある。
特許第3557085号明細書
カラム選択線を効率的に切り替えて異なるカラムから連続的にデータを出力することができる半導体記憶装置を提供する。
本実施形態による半導体記憶装置は、不揮発性の複数のメモリセルを含む複数のメモリバンクを含む。複数のバッファは、複数のメモリバンクのそれぞれに対応して設けられ、データ書込みまたはデータ読出し時にメモリバンクのデータを一時的に格納する。コントローラは、バッファに既に読み出されたデータを用いて複数のカラムのデータを連続的に読み出し、あるいは、バッファに既に読み出されたデータを用いて複数のカラムのデータを連続的に書き込む第1のモードと、データ読出しまたはデータ書込み時に選択された単一カラムのデータを読み出し、あるいは、選択された単一カラムのデータを書き込む第2のモードとを切り替えるバッファイネーブル信号を生成する。
第1の実施形態によるMRAMの構成を示すブロック図。 単一のメモリセルMCの構成を示す説明図。 複数のメモリバンクBKの構成の一例を示す概念図。 メモリバンクBK0Lへのデータ書込み動作を示したブロック図、コマンド・アドレスレシーバCARおよびデータバッファDQBの動作を示すブロック図、並びに、図4(C)は、メモリの動作状態を示すモードレジスタMRを示すブロック図。 メインコントローラMCNT内に設けられたバッファステート回路BSCの構成を示す回路図。 第1の実施形態に従ったMRAMのデータ書込み動作を示すタイミング図。 第1の実施形態に従ったMRAMのデータ書込み動作を示すフロー図。 或るメモリバンクのページ<0>の書込み動作の途中で、同一メモリバンクのページ<7>のライトコマンドが発行された場合の動作を示すタイミング図。 第1の実施形態によるMRAMのチップ構成を示す図。 1回目のアドレスと2回目のアドレスとを比較するアドレス比較回路を示す回路図。 信号OUTPUT_BUFFER_ENABLEを出力する回路を示す図、および、ページバッファWRBからデータを出力するときのMRAMの概念図。 NANDライクモードにおいてカラム選択信号CLS<x:0>を立ち上げるCLSカウンタの構成図。 CLSカウンタの動作を示すタイミング図。 NANDライクモードにおいてページ選択信号PAGE<y:0>を立ち上げるPAGEカウンタの構成図。 第1の実施形態によるNANDライクモードにおけるMRAMの読出し動作を示すタイミング図。 第1の実施形態によるNANDライクモードにおけるMRAMの書込み動作を示すタイミング図。 第2の実施形態によるMRAMの動作を示すブロック図。 強制プリチャージ信号生成回路の構成図。 強制プリチャージ信号生成回路の構成図。 コマンドイネーブル信号生成回路の構成図。 第2の実施形態によるMRAMの強制プリチャージ動作を示すタイミング図。 第2の実施形態によるMRAMの通常動作を示すタイミング図。
以下、図面を参照して本発明に係る実施形態を説明する。本実施形態は、本発明を限定するものではない。以下の実施形態は、MRAMについて記載しているが、他の不揮発性メモリ(例えばFeRAM)にも適用することができる。
(第1の実施形態)
図1は、第1の実施形態によるMRAMの構成を示すブロック図である。本実施形態によるMRAMは、メモリバンクBKと、コマンド・アドレスレシーバCARと、コマンドコントローラCOMCNTと、データバッファDQBと、入出力部I/Oとを備えている。
メモリバンクBKは、例えば、マトリクス状に二次元配置された複数のメモリセルMCを含むメモリセルアレイMCAを備えている。各メモリセルMCはビット線対(例えば、図1に示すようにビット線BL1とビット線BL2)とワード線WLに接続される。すなわち、メモリセルMCの一端は、ビット線対の一方のビット線BL1に接続され、他端はビット線対の他方のビット線BL2に接続される。ビット線対BL1、BL2は、カラム方向に延伸している。ワード線WLは、カラム方向に対して直交するロウ方向に延伸している。
メモリバンクBKは、さらに、センスアンプSAと、ライトドライバWDと、カラムデコーダCDと、ロウデコーダRDと、メインコントローラMCNTと、ライトリードページバッファWRB(以下、単に、ページバッファWRBとも言う)とを備えている。
センスアンプSAは、例えば、ビット線BL1を介してメモリセルMCに接続されており、メモリセルMCのデータを検出する機能を有する。このとき、ビット線BL2は、ライトドライバWDを介して基準電圧(グランド)に接続されている。ライトドライバWDは、例えばビット線BL1、BL2を介してメモリセルMCに接続されており、メモリセルMCにデータを書き込む機能を有する。
コマンド・アドレスレシーバCARは、メモリバンクBKの動作を決定するコマンド、アドレスおよびクロックを受け取る。コマンド・アドレスレシーバRCAは、アドレスとして、例えば、バンクアドレス、カラムアドレス、ロウアドレス等を受け取る。コマンド・アドレスレシーバRCAは、コマンドとして、例えば、アクティブコマンドACR、ライトコマンドMRW、リードコマンドMRR、リセットコマンドRST等を受け取る。これらのコマンドによって、メモリバンクBKは、様々な動作を実行することができる。
コマンドコントローラCMDCは、読出し動作、書込み動作等の各種動作を示すコマンドを受け取り、それらのコマンドに従ってメインコントローラMCNTを制御する。
メインコントローラMCNTは、DQバッファDQBから受け取ったデータを、アドレスに従ってメモリバンクに書き込むようにライトドライバWDへ転送し、あるいは、アドレスに従ってメモリバンクから読み出したデータをDQバッファDQBへ転送するようにメモリバンクBK全体を制御する。また、メインコントローラMCNTは、ECC(Error Correction Code)を含む。
カラムデコーダCDは、カラムアドレスに従って或るカラムのビット線対を選択するように構成されている。ロウデコーダRDは、ロウアドレスに従ってワード線WLを選択する。
ページバッファWRBは、入出力部I/OおよびデータバッファDQBを介して入力した書込みデータを一時的に格納し、あるいは、メモリセルMCからの読出しデータを一時的に格納する。
データバッファDQBは、入出力部I/Oを介して読出しデータを外部へ出力し、あるいは、入出力部I/Oを介して外部から取り込んだ書込みデータを内部へ転送するために、それらのデータを一時的に保持する。
図1では、1つのメモリバンクBKを示している。しかし、通常、複数のメモリバンクBKがマトリクス状に二次元配置される。
図2は、単一のメモリセルMCの構成を示す説明図である。各メモリセルMCは、それぞれ磁気トンネル接合素子(MTJ(Magnetic Tunnel Junction)素子)と、セルトランジスタCTとを含む。MTJ素子およびセルトランジスタCTは、ビット線BL1とビット線BL2との間に直列に接続されている。メモリセルMCにおいて、セルトランジスタCTがビット線BL2側に配置され、MTJ素子がビット線BL1側に配置されている。セルトランジスタCTのゲートは、ワード線WLに接続されている。
TMR(tunneling magnetoresistive)効果を利用したMTJ素子は、2枚の強磁性層とこれらに挟まれた非磁性層(絶縁薄膜)とからなる積層構造を有し、スピン偏極トンネル効果による磁気抵抗の変化によりデジタルデータを記憶する。MTJ素子は、2枚の強磁性層の磁化配列によって、低抵抗状態と高抵抗状態とを取り得る。例えば、低抵抗状態をデータ“0”と定義し、高抵抗状態をデータ“1”と定義すれば、MTJ素子に1ビットデータを記録することができる。もちろん、低抵抗状態をデータ“1”と定義し、高抵抗状態をデータ“0”と定義してもよい。例えば、MTJ素子は、図3に示すように、固定層P、トンネルバリア層B、記録層Frを順次積層して構成される。固定層Pおよび記録層Frは、強磁性体で構成されており、トンネルバリア層Bは、絶縁膜からなる。固定層Pは、磁化の向きが固定されている層であり、記録層Frは、磁化の向きが可変であり、その磁化の向きによってデータを記憶する。
書込み時に矢印A1の向きに反転閾値電流以上の電流を流すと、固定層Pの磁化の向きに対して記録層Frのそれがアンチパラレル状態となり、高抵抗状態(データ“1”)となる。書込み時に矢印A2の向きに反転閾値電流以上の電流を流すと、固定層Pと記録層Frとのそれぞれの磁化の向きがパラレル状態となり、低抵抗状態(データ“0”)となる。このように、TMJ素子は、電流の方向によって異なるデータを書き込むことができる。
図3は、複数のメモリバンクBKの構成の一例を示す概念図である。図3の左側と右側とにそれぞれ同じアドレスを有するメモリバンクBKが含まれており、同じアドレスを有する2つのメモリバンクBKが同時にアクセス可能である。例えば、左側にあるメモリバンクBK0Lと右側にあるメモリバンクBK0Lとは、バンクアドレスBK0、バンクアドレスBK1、および、カラムアドレスAC5がいずれも“0”である。
同様に、バンクアドレスBK0、バンクアドレスBL1、および、カラムアドレスAC5が、それぞれ“0”、“1”、“0”である場合、左側にあるメモリバンクBK2Lおよび右側にあるメモリバンクBK2Lが選択される。
このように、バンクアドレスBK0、バンクアドレスBL1、および、カラムアドレスAC5を指定することによって、左側にある複数のメモリバンクBK0L〜BK3Uおよび右側にある複数のメモリバンクBK0L〜BK3Uのそれぞれから1つずつメモリバンクBKを同時に選択することができる。即ち、同一アドレスを有する左側のメモリバンクBK0Lと右側のメモリバンクBK0Lとは、同時にアクセス可能である。選択されたメモリバンクBKは、データ読出し動作またはデータ書込み動作等の対象となる。
各メモリバンクBK0L〜BK3Uは、それぞれページバッファWRBを備え、読出しデータおよび/または書込みデータを一時的に格納することができる。例えば、各メモリバンクBK0L〜BK3Uは、各カラムに16ページ(32ビット/ページ)を有する。即ち、各メモリバンクBK0L〜BK3UのページバッファWRBは、それぞれ512ビットのデータを格納することができる。よって、各メモリバンクBK0L〜BK3UのページバッファWRBは、対応するメモリバンクの或るカラムの全ページのデータを一時的に格納することができるような容量を有する。
各メモリバンクBK0L〜BK3Uは、図4(A)に示すように、それぞれの内部においてUPPERアレイおよびLOWERアレイに分かれており、UPPERアレイおよびLOWERアレイはそれぞれ8ページずつのデータを格納する。
各メモリバンクBK0L〜BK3Uは、それぞれUPPERアレイおよびLOWERアレイに対応するセンスアンプSAおよびライトドライバWDを備えている。そして、センスアンプSAは、マルチプレクサを介してUPPERアレイまたはLOWERアレイのデータを読み出し、あるいは、ライトドライバWDは、マルチプレクサを介してUPPERアレイまたはLOWERアレイへデータを書き込むことができる。
図4(A)は、メモリバンクBK0Lへのデータ書込み動作を示したブロック図である。図4(B)は、コマンド・アドレスレシーバCARおよびデータバッファDQBの動作を示すブロック図である。図4(C)は、メモリの動作状態を示すモードレジスタMRを示すブロック図である。図4(A)〜図4(C)は、同一チップ内の構成および動作を示している。
コマンド・アドレスレシーバCARは、クロックイネーブル信号CKE、クロック信号CK_t、CK_c、コマンド信号およびアドレス信号CA<9:0>、チップ選択信号CS_nを外部から受け取る。クロックイネーブル信号CKEは、コマンド・アドレスレシーバCARにおいてクロック信号CK_t、CK_cを有効または無効にするために用いられる。チップ選択信号CS_nは、チップが選択されたときに、一時的に活性状態となる信号である。コマンド・アドレスレシーバCARは、これらの信号CK_t、CK_c、CA<9:0>、CS_nに従って、クロック信号CLK、アドレス信号ADDRs、リードコマンドREAD_CMD、ライトコマンドWRITE_CMDを、図4(A)に示すメモリバンクBK0Lおよび図4(C)に示すモードレジスタMRへ転送する。
図4(C)に示すモードレジスタMRは、リードコマンドREAD_CMDまたはライトコマンドWRITE_CMDの状態に応じてその状態を保持する。例えば、モードレジスタMRはラッチ回路であり、リードコマンドREAD_CMDがアクティブである場合(データ読出し動作時)にリードコマンドに対応するラッチ部を立ち上げ、ライトコマンドWRITE_CMDがアクティブである場合(データ書込み動作時)にライトコマンドに対応するラッチ部を立ち上げる。尚、モードレジスタMRは、メモリチップの状態を保持するためにチップ内に1つ設けられていればよい。モードレジスタMRの状態によって、MRAMがデータ書込み動作またはデータ読出し動作を実行していることが分かる。
図4(A)は、アドレスADDRsによって選択されたメモリバンクBK0Lのうち左側のメモリバンクのブロック図である。尚、他のメモリバンクBL1L〜BL3UもメモリバンクBK0Lと同様の構成を有する。
メモリバンクBL0Lは、アドレスADDRs、リードコマンドREAD_CMD、ライトコマンドWRITE_CMD、リード・ライトデータRWD_L<63:0>を受け取る。データ書込み動作では、ライトコマンドWRITE_CMDが活性化され、リードコマンドREAD_CMDは不活性状態となる。データ読出し動作では、リードコマンドREAD_CMDが活性化され、ライトコマンドWRITE_CMDは不活性状態となる。ライトコマンドWRITE_CMDが活性化された後、リード・ライトデータRWD_L<63:0>(ここでは、ライトデータ)を受け取る。例えば、メモリバンクBK0Lが8ページ(512ビット)の容量を有する場合、リード・ライトデータRWD_L<63:0>は、2ページ分(64ビット)のデータである。
メモリバンクBL0L内のメモリセルアレイは、さらにLOWERアレイおよびUPPERアレイに分割されており、LOWERアレイおよびUPPERアレイには、例えば、それぞれ8ページずつ含まれている。この場合、メモリバンクBL0LのLOWERアレイおよびUPPERアレイは、それぞれ256ビットデータを格納することになる。
メインコントローラMCNTにおいて、レコードスイッチ信号RDSW<7:0>は、ページバッファWRBからメモリチップの外部への読出しを行うときに活性化される信号である。例えば、レコードスイッチ信号RDSW<i>が活性化されている場合には、LOWERアレイおよびUPPERアレイの各8ページのうちページ<i>のデータ(2ページ分のデータ)がページバッファWRBからメモリチップの外部へ読み出される。尚、iは0〜7のいずれかの整数である。
ページバッファリード信号PBR_LTC<7:0>は、メモリセルアレイMCAからページバッファWRBへデータを読み出すときに活性化される信号である。ページバッファリード信号PBR_LTC<i>が活性化されている場合には、UPPER側およびLOWER側の各8ページのうちページ<i>のデータがメモリセルアレイMCAからページバッファWRBへ読み出される。
ページバッファライト信号PBW_LTC<7:0>は、ページバッファWRBからメモリセルアレイMCAへデータを書き込むときに活性化される信号である。ページバッファライト信号PBW_LTC<i>が活性化されている場合には、UPPER側およびLOWER側の各8ページのうちページ<i>のデータがページバッファWRBからメモリセルアレイMCAへ書き込まれる。
同じメモリバンクBK0L内において、LOWER側ページおよびUPPER側ページには、それぞれに対応するページバッファがあるため、メモリセルアレイMCAからページバッファWRBへの読出し動作は、LOWERアレイおよびUPPERアレイにおいて同時に実行可能である。また、ページバッファWRBからメモリセルアレイMCAへの書込み動作も、LOWERアレイおよびUPPERアレイにおいて同時に実行可能である。従って、ページバッファリード信号PBR_LTC<7:0>は、メモリバンクBK0L内のLOWERアレイおよびUPPERアレイにおいて共通であり、ページバッファリード信号PBW_LTC<7:0>も、メモリバンクBK0L内のLOWERアレイおよびUPPERアレイにおいて共通である。
一方、ページバッファWRBからメモリチップの外部へデータを読み出し、あるいは、メモリチップの外部からページバッファWRBへデータを書き込む場合、レコードスイッチ信号RDSW<7:0>が活性状態となる。
図5は、メインコントローラMCNT内に設けられたバッファステート回路BSCの構成を示す回路図である。バッファステート回路BSCは、各メモリバンクのメインコントローラMCNT内に設けられており、各ページに対応して設けられている。
バッファステート回路BSCは、NORゲートG100、G101と、ラッチ回路LCT(i)とを備えている。
バッファステート回路BSCは、対応するページのページバッファリード信号PBR_LTC(i)、対応するページのページバッファライト信号PBW_LTC(i)、チップレディ信号CHRDYおよびプリチャージ信号PRECHを受け取る。
NORゲートG100は、ページバッファリード信号PBR_LTC(i)およびページバッファライト信号PBW_LTC(i)のNOR演算を実行し、その結果をラッチ回路LCT(i)へ出力する。
NORゲートG101は、チップレディ信号CHRDYおよびプリチャージ信号PRECHのNOR演算を実行し、その結果をラッチ回路LCT(i)へ出力する。
ラッチ回路LCT(i)は、NORゲートG101の出力によって駆動され、NORゲートG100の出力をバッファステート信号READY(i)としてラッチする。
バッファステート回路BSCは、ラッチ回路LCT(i)にラッチされているデータの論理によってバッファステート信号READY(i)の状態を維持することができる。バッファステート信号READY(i)は、ページバッファWRBにデータが読み出されているか否かを示す。
チップレディ信号CHRDYは、MRAMの電源を立ち上げたときに論理ハイになる信号であり、MRAMの起動中は常時論理ハイとなっている。チップレディ信号CHRDYは、メモリチップごとに設定される。プリチャージ信号PRECHは、MRAMがプリチャージ状態(待機状態)のときに論理ハイに活性化され、データ読出し動作あるいはデータ書込み動作中において論理ロウに不活性化される信号である。プリチャージ信号PRECHは、メモリバンクごとに設定される。
データ読出しあるいはデータ書込み時においては、チップレディ信号CHRDYが論理ハイ、プリチャージ信号PRECHが論理ロウである。従って、ラッチ回路LCT(i)は、ページバッファリード信号PBR_LTC(i)およびページバッファライト信号PBW_LTC(i)の立ち上がりを有効にラッチすることができる。ページバッファリード信号PBR_LTC(i)またはページバッファライト信号PBW_LTC(i)が論理ハイに立ち上がると、ラッチ回路LCT(i)は、バッファステート信号READY(i)を論理ハイにラッチする。
データ読出しあるいはデータ書込み時において、バッファステート信号READY(i)が論理ハイに活性化されることによって、メインコントローラMCNTは、データがメモリセルアレイMCAからページバッファWRBへすでに読み出されていると判断することができる。この場合、ページ(i)からデータを読み出す際に、メインコントローラMCNTは、メモリセルアレイMCAにアクセスすることなく、ページバッファWRBからページ(i)のデータを読み出すことができる。
一方、バッファステート信号READY(i)が不活性状態である場合、メインコントローラMCNTは、ページバッファWRBにはデータが読み出されていないと判断することができる。この場合、メインコントローラMCNTは、メモリセルアレイMCAにアクセスすることによって、メモリセルアレイMCAからデータを読み出す。
プリチャージ期間においては、プリチャージ信号PRECHが論理ハイに立ち上がり、かつ、ページバッファリード信号PBR_LTC(i)およびページバッファライト信号PBW_LTC(i)はともに論理ロウである。従って、ラッチ回路LCT(i)はリセットされ、バッファステート信号READY(i)は論理ロウに不活性化される。
一般に、MRAMでは、データの書込みを禁止するデータマスクの単位(ECCの単位)とデータ書込みの単位が異なる。例えば、MRAMは、64ビットごとにECCを備え、32ビット単位でデータマスクを行う。この場合、センスアンプSAは、データ書込みの単位である或るページのデータをページバッファWRBに一旦読み出す必要がある。ページバッファWRBへの読出しの際には、ECCを用いてデータを修正した後、ページバッファWRBがデータを格納する。ページバッファWRB上においてデータマスク以外のデータを書込みデータで更新した後に、ライトドライバWDがページバッファWRBからメモリセルアレイMCAへ書き込む。従来、センスアンプSAは、データ書込みの対象のページのみをページバッファWRBに一旦読み出していた。これに対し、本実施形態では、ページバッファWRBからの読出しを可能とするために、書込み対象のページに関係なく、メモリバンクBK0L内の全ページ分(例えば、512ビット)のデータをページバッファWRBに読み出す。以下、図5を参照して、本実施形態によるMRAMのデータ書込み動作をより詳細に説明する。
図6は、第1の実施形態に従ったMRAMのデータ書込み動作を示すタイミング図である。図7は、第1の実施形態に従ったMRAMのデータ書込み動作を示すフロー図である。図6は、MRAMのデータ書込み動作、並びに、リードコマンドREADの入力可能時点を示している。尚、メモリバンクBK0L内の或るカラムが選択されたものとして以下説明を進める。図示の便宜上、ページバッファリード信号RBR_LTC<i>と、ページバッファライト信号RBW_LTC<i>を併記しており、図6では、パルスの中にページバッファリード信号RBR_LTC<i>が論理ハイになったときを“PBR”と、ページバッファライト信号RBW_LTC<i>が論理ハイになったときを“PBW”として示す。
図7に示すように、まず、MRAMは、アクティブコマンドおよびライトコマンドを受け取る(S10、S20)。アクティブコマンドを受けるときに、バンクアドレスおよびロウアドレスを受け取り、ライトコマンドを受けるときに、バンクアドレスおよびカラムアドレスを受け取る。
ここでは、データ書込み対象のバンクはメモリバンクBK0Lであり、データ書込み対象ページはメモリバンクBK0Lのページ<0>である。以下、図3の左側のメモリバンクBK0Lの動作についてのみ説明しているが、上述の通り、図3の右側のメモリバンクBK0Lについても同様に動作している。また、アドレスBK0、AC5を変更することによって他のメモリバンクも同様に動作可能である。
本実施形態によるMRAMは、クロック信号CK_t、CK_cに従って動作する。図6に示すT0より前の時点においてライトコマンドWRITEが入力される(図7のS20)と、その後、T3において、ページバッファリード信号PBR_LTC<0>が活性化される。ページバッファリード信号PBR_LTC<0>の活性化によって、データ書込み対象であるメモリバンクBK0L内のページ<0>のデータがページバッファWRBへ読み出される(図7のS30)。このとき、図4(A)に示すLOWERアレイおよびUPPERアレイのそれぞれのページ<0>が、それぞれに対応するページバッファWRBへ同時に読み出される。即ち、メモリバンクBK0Lにおいて、2ページ分のデータがページバッファWRBへ同時に読み出されている。
書込み対象であるページ<0>のデータがページバッファWRBへ読み出されることによって、ページバッファWRBのデータを書込みデータで更新することが可能となる。ライトコマンドWRITEを受けてから書込み対象であるページ<0>のデータをページバッファWRBへ読み出すまで(T4)の期間を書込み遅延時間WLT(Write Latency)と呼ぶ。
書込み遅延時間WLTの経過後、T5において、書込みデータDQsが外部から取り込まれる(図7のS40)。書込みデータDQsは、クロック信号DQS_cおよびDQS_tに基づいて入力される。そして、ライトリカバリ期間tWTRにおいて、書込みデータDQsがページバッファWRBに転送される。ライトリカバリ期間tWTRの経過後、T11において、ページバッファライトPBW_LTC<0>が活性化されると、書込みデータDQsが、書込み対象であるページバッファWRB内のページ<0>に上書きされる。これにより、ページバッファWRB内のページ<0>のデータが新しい書込みデータで更新される(図7のS50)。
一方、T5において、ページバッファリード信号PBR_LTC<1>が活性化されている。これにより、メモリバンクBK0L内のページ<1>のデータがページバッファWRBへ読み出される。続いて、T7〜T20において、ページバッファリード信号PBR_LTC<2>〜PBR_LTC<7>が順に活性化される。これにより、メモリバンクBK0L内のページ<2>〜<7>のデータがそれぞれページバッファWRBへ読み出される。即ち、T3〜T20において、メモリバンクBK0L内の全ページ<0>〜<7>のデータが、ページバッファWRBへ読み出される。尚、メモリバンクBK0Lは、LOWERアレイおよびUPPERアレイのそれぞれにおいて8ページずつ(計16ページ(512ビット))のデータを格納している。T3〜T20において、メモリバンクBK0LのLOWERアレイおよびUPPERアレイのそれぞれからデータが同時に読み出されるので、メモリバンクBK0Lに対応するページバッファWRBは、メモリバンクBK0Lの全ページのデータを保持する。
尚、T11〜T12において、ページバッファライト信号PBW_LTC<0>が活性化されているときに、ページバッファリード信号PBR_LTC<1>〜<7>を活性化することはできない。これは、同一メモリバンク内のカラムは、マルチプレクサを介して選択的にセンスアンプSAまたはライトドライバWDへ接続されるためである。もし、同一メモリバンク内の各カラムごとにセンスアンプSAおよびライトドライバWDが設けられている場合には、T11〜T12において、ページバッファリード信号PBR_LTC<4>を立ち上げることができる。この場合、ページバッファリード信号PBR_LTC<0>〜<7>は、T3〜T18に期間に連続して立ち上がることができる。T3〜T20において、ページバッファリード信号PBR_LTC<0>〜PBR_LTC<7>が活性化されるごとに、メモリバンクBK0Lの各ページ<0>〜<7>に対応するバッファステート回路BSC(図5参照)は、バッファステート信号READY(0)〜READY(7)を順次論理ハイに活性化させる。従って、T20の後、メモリバンクBK0Lの全ページのデータがページバッファWRBから読出し可能となる。
その後、ライトドライバWDは、ページバッファWRBのデータをメモリバンクBK0Lへ書き込む(図7のS60)。
本実施形態では、書込み遅延時間WLTの経過後(T4以降)において、リードコマンドREADの受け取りが可能となる(図7のS70)。このリードコマンドREADに対応するアドレスADDsは、メモリバンクBK0Lを指定していてもよい。この場合、メインコントローラMCNTは、メモリバンクBK0Lのバッファステート信号READY(0)〜READY(7)の状態に従って、ページバッファWRBにアクセスし、ページバッファWRBから読出しデータを外部へ出力する(図7のS80、S90)。尚、リードコマンドREADの入力から読出しデータの出力までの時間を読出し遅延時間RLT(Read Latency)と呼ぶ。
このように、本実施形態によるMRAMは、書込み対象であるメモリバンクBK0Lに読出しのアクセスがあった場合、メモリバンクBK0LのメモリセルアレイMCAからデータを読み出さず、ページバッファWRBからデータを読み出す。これにより、リードコマンドREADは、ライトレイテンシWLTの経過後(T4以降)に発行可能となる。読出し遅延時間RLTの経過後、MRAMは、ページバッファWRBからデータを出力する。
比較例として、書込み対象であるメモリバンクBK0Lに読出しのアクセスがあった場合に、読出しデータをメモリセルアレイMCAから読み出そうとすると、リードコマンドREADは、ライトリカバリ期間tWTRの経過後(T10以降)に発行される必要がある。これは、リードコマンドREADがライトリカバリ期間tWTRの経過前に発行されると、メモリセルアレイMCAからの読出しデータが書込みデータとデータバス上で衝突する可能性があるからである。このように、本実施形態によるMRAMは、ライトコマンドWRITEの発行後、比較例よりも早い時点でリードコマンドREADの発行が可能となる。即ち、本実施形態によるMARMは、データの書込み中において、データの読出し開始を早めることができる。
また、本実施形態によるMRAMは、書込み対象であるメモリバンクBK0Lに読出しのアクセスがあった場合(図7のS80(NO))、ページバッファWRBから読出しデータを読み出す(図7のS100)。よって、メモリバンクBK0LのメモリセルアレイMCAへのアクセス頻度が減少する。即ち、メモリセルアレイMCAからデータを直接読み出す頻度が低減する。これにより、メモリバンクBK0L内のメモリセルアレイMCAに対するデータディスターブが抑制され得る。
本実施形態では、同一メモリバンクにデータを書き込んでいることを表すフラグ(例えば、図4のライトコマンドWRITE)の状態により、データ書込み中に入力された同一メモリバンクへのリードコマンドは、通常のリードコマンドと区別される。そして、上記フラグとしてのライトコマンドWRITEが立っている間にリードコマンドが発行された場合には(データ書込み中に同一メモリバンクへリードコマンドが発行された場合には)、MRAMは、指定されたアドレスのデータをページバッファWRBからDQを介して外部へ出力する。このとき、読出しデータは、全てページバッファへ先に読み出されており、ページバッファWRBから出力される。
本実施形態において、書込み中におけるリードコマンドは、MRAMの内部において通常のリードコマンドとは異なるコマンドとして扱われ、メモリセルアレイMCAへのアクセスなしに、ページバッファWRBからデータを出力する。また、書込み中におけるリードコマンドは、ライトレイテンシWLT期間中は、待機状態となる。
データ書込み対象でない非選択のメモリバンクにリードコマンドREADが入力された場合、フラグ(ライトコマンドWRITE)が立っていないので、通常のリードコマンドとして扱われ、メモリセルアレイMCAからのデータ読出しから実行する必要がある。
尚、上記実施形態において、メモリバンクBK0Lおよびページ<0>を書込み対象のメモリバンクおよび書込み対象のページとした。しかし、言うまでもなく、他のメモリバンクBK1L〜BK3Uおよびページ<1>〜<7>を書込み対象としてもよい。ページ<1>が書込み対象である場合には、図6のT3において、ページバッファリード信号PBR_LCT<1>が最初に活性化され、その後、ページバッファリード信号PBR_LCT<0>、PBR_LCT<2>〜PBR_LCT<7>が順に活性化されればよい。
また、リードコマンドREADが書込み対象以外のメモリバンクに対して発行された場合には、MRAMは、通常通り、メモリセルアレイMCAからデータを読み出せばよい。ただし、読出し動作が実行されたメモリバンクは、すでにページバッファWRBにデータが読み出されている。この場合、図5を参照して説明したように、プリチャージ信号PRECHが活性化されるまで、バッファステート信号READY(i)は活性状態である。従って、読出し動作が実行されたメモリバンクからデータを再度読み出す場合には、MRAMは、ページバッファWRBからデータを読み出す。即ち、ライトコマンドWRITE後のリードコマンドREADの発行時だけでなく、リードコマンドREAD後のリードコマンドREAD発行時においても、MRAMは、ページバッファWRBからデータを読み出すことができる。ページバッファWRBからの読出しは、プリチャージ信号PRECHが活性化され、プリチャージ期間に入るまで可能である。
図8は、或るメモリバンクのページ<0>の書込み動作の途中で、同一メモリバンクのページ<7>のライトコマンドが発行された場合の動作を示すタイミング図である。この場合、最初のライトコマンドWRITE1に基づくページバッファWRBへの読出しが、全ページ<0>〜<7>において終了する前に、T10において、ページ<7>へのライトコマンドWRITE2が発行されている。この場合、ライトコマンドWRITE2の発行直前のページ<3>の読出しが実行された後、ページ<4>以降の読出しが中断される。
そして、書込み対象であるページ<7>に対応するページバッファリード信号PBR_LTC<7>が立ち上がる。その後、既にページバッファWRBに書き込まれているページ<0>〜<3>の読出しを実行することなく、スキップ期間tSKPの経過後、ページ<4>〜<6>の読出しを実行する。スキップ期間tSKPは、ページ<0>〜<3>をページバッファWRBへ読み出す期間T2〜T10と同じ期間でよい。
これにより、本実施形態によるMRAMは、最初のライトコマンドWRITE1によるデータ読出し期間中に、次のライトコマンドWRITE2が同一メモリバンクに発行されたとしても、既にページバッファWRBに読み出されているページ<0>〜<3>のデータをページバッファWRBへ再度読み出すことなく、残りのページ<4>〜<6>のみをページバッファWRBへ読み出すことができる。これにより、リードディスターブを抑制することができる。
尚、図8においても、もし、同一メモリバンク内の各カラムごとにセンスアンプSAおよびライトドライバWDが設けられている場合には、T11〜T12において、ページバッファリード信号PBR_LTC<4>を立ち上げることができる。この場合、ページバッファリード信号PBR_LTC<5>、<6>が、ページバッファリード信号PBR_LTC<7>の活性化後に、Tn〜Tn+3の期間に連続して立ち上がる。
第1の実施形態によるMRAMは、以上のようにメモリセルアレイMCAからページバッファWRBに一旦読み出されたデータを活用して、同一メモリバンクからデータを繰り返し読み出す場合にページバッファWRBからデータを出力する。以下、このようにメモリセルアレイMCAからの読出しを省略して、ページバッファWRBからデータを読み出す動作を、便宜的に「バッファ読出し方式」と呼ぶ。
第1の実施形態によるMRAMは、バッファ読出し方式を行なうことを前提としている。
図9(A)〜図9(C)は、第1の実施形態によるMRAMのチップ構成を示す図である。図9(A)は、本実施形態によるMRAMのチップ単体であり、チップ全体が後述のNANDライクモード(第1のモード)で動作する。図9(B)は、MRAMのチップ単体であるが、そのうち一部がNANDライクモードで動作し、他の部分は通常のMRAMとして機能する(第2のモード)。図9(C)は、NANDライクモードで動作するMRAMのチップと、通常のMRAMとして機能するMCP(Multi-Chip Package)を示す。NANDライクモードは、カラムを切り替えながらデータを連続的にリードまたは連続的にライトするモードである。
通常のMRAMの動作(第2のモード)では、MRAMは、データ読出しまたはデータ書込み時に選択された単一カラムのデータを読み出し、あるいは、選択された単一カラムのデータを書き込む。通常のMRAMの動作については、広く知られているのでその詳細な説明を省略する。以下、NANDライクモードについて説明する。本実施形態では、NANDライクモードに入るトリガーは、同一バンクアドレスおよび同一ロウアドレスを2回連続して受け取ることである。このトリガーを検出するためには、1回目のアドレスと2回目のアドレスとを比較する必要がある。
図10(A)〜図10(C)は、1回目のアドレスと2回目のアドレスとを比較するアドレス比較回路を示す回路図である。このアドレス比較回路は、図1に示すメインコントローラMCNTに含まれており、メモリバンクBKごとに対応して設けられている。以下、或るメモリバンクBKに対応するアドレス比較回路について説明する。
ここで、図10(A)に示す信号ALREADY_IN_ACTIVE(BKn)は、読出し対象のメモリバンクが活性状態になっていることを示す信号である。信号ALREADY_IN_ACTIVE(BKn)は、図10(B)に示すアクティブコマンドACTIVE_CMD(BKn)が読出し対象のメモリバンクに入力された後、そのメモリバンクが選択されている期間中、論理ハイを維持する。
図10(B)に示す信号CA(row)は、外部からのバンクアドレスおよびロウアドレスである。以下、単に、ロウアドレスCA(row)という。ACTIVE_CMD(BKn)は、読出し対象のメモリバンクのアクティブコマンドACTIVE_CMD(BKn)が実行されたときに生成されるパルス信号である。チップレディ信号CHRDYは、チップが選択されたときに活性化される信号である。1stロウ信号LT_1ST_ROW_ADDR(row)は、メモリバンクがアクティブコマンドによって活性状態に入ってから最初に受け取ったロウアドレス信号である。
図10(C)に示す信号ROW_ADDR(row)は、ロウアドレス信号であり、最初および2回目以降のロウアドレス信号を含む。モード切替え信号NAND_LIKE_MODEは、NANDライクモードに入ることを示すトリガー信号である。
アドレス比較回路は、図10(B)に示すように、ロウアドレスCA(row)を信号ROW_ADDR(row)としてラッチする第1のラッチ回路LCTcomp1と、最初のロウアドレスCA(row)のみを信号LT_1ST_ROW_ADDR(row)としてラッチする第2のラッチ回路(ロウアドレスラッチ回路)LCTcomp2とを備えている。
アドレス比較回路は、さらに、NANDゲートG100と、NANDゲートG101と、NORゲートG102とを備えている。
NANDゲートG100は、ロウアドレスCA(row)とアクティブコマンドACTIVE_CMD(BKn)とを受け取り、それらのNAND演算結果をラッチ回路LCTcomp1へ出力する。NANDゲートG101は、ラッチ回路LCTcomp1からの信号ROW_ADDR(row)と信号ALREADY_IN_ACTIVE_n(BKn)とを受け取り、それらのNAND演算結果をラッチ回路LCTcomp2へ出力する。NORゲートG102は、チップレディ信号CHRDYの反転信号と信号ALREADY_IN_ACTIVE_n(BKn)とを受け取り、それらのNOR演算結果をリセット信号RESET_n(BKn)としてラッチ回路LCTcomp1、LCTcomp2へ出力する。
リセット信号RESET_n(BKn)が論理ロウであるときに、ラッチ回路LCTcomp1、LCTcomp2は、ロウアドレスCA(row)またはROW_ADDR(row)をそれぞれ取り込む。そして、リセット信号RESET_n(BKn)が論理ハイになったときに、ラッチ回路LCTcomp2は、ロウアドレスROW_ADDR(row)を、信号LT_1ST_ROW_ADDR(row)としてラッチする。
リセット信号RESET_n(BKn)が再度論理ロウになるまで、ラッチ回路LCTcomp2は、信号LT_1ST_ROW_ADDR(row)をラッチし続ける。
リセット信号RESET_n(BKn)は、チップレディ信号CHRDYおよび信号ALREADY_IN_ACTIVE(BKn)の両方が活性状態であるときに論理ハイに不活性化される信号である。信号ALREADY_IN_ACTIVE(BKn)の反転信号である信号ALREADY_IN_ACTIVE_n(BKn)は、アクティブコマンドACTIVE_CMD(BKn)の活性化後、所定期間の経過後に、論理ロウに活性化される。アクティブコマンドACTIVE_CMD(BKn)の活性化から信号ALREADY_IN_ACTIVE_n(BKn)の活性化までの期間中に、ラッチ回路LCTcomp1、LCTcomp2は最初のロウアドレスCA(row)、ROW_ADDR(row)をラッチする。
また、アドレス比較回路は、図10(C)に示すように、EX−NORゲート(比較論理ゲート)G10と、NANDゲートG20と、フリップフロップFF1と、NORゲートG25とを備えている。
EX−NORゲート(比較論理ゲート)G10は、ロウアドレスLT_1ST_ROW_ADDR(row))とロウアドレスROW_ADDR(row)とのEXNOR演算結果を信号SAME_ROW_ADDR(row)としてNANDゲートG20へ出力する。信号SAME_ROW_ADDR(row)は、ロウアドレスLT_1ST_ROW_ADDR(row))とロウアドレスROW_ADDR(row)とが等しいときに論理ハイになる信号である。NANDゲートG20は、信号SAME_ROW_ADDR(row)と、アクティブコマンドACTIVE_CMD(BKn)と、信号ALREADY_IN_ACTIVE_n(BKn)とを受け取り、それらのNAND演算結果の反転信号をフリップフロップFF1へ出力する。
このように、EX−NORゲート(比較論理ゲート)G10は、最初のロウアドレスCA(row)(即ち、LT_1ST_ROW_ADDR(row))と次に入力されるロウアドレスROW_ADDR(row)とを比較する。NANDゲートG20は、最初のロウアドレスCA(row)と次に入力されるロウアドレスROW_ADDR(row)とが等しいときにアクティブコマンドACTIVE_CMD(BKn)を通過させる。フリップフロップFF1は、NANDゲートG20の出力が活性化された場合にモード切替え信号NAND_LIKE_MODEを論理ハイに活性化させる。
NORゲートG25は、チップレディ信号CHRDYの反転信号と信号ALREADY_IN_ACTIVE(BKn)の反転信号とを受け取り、それらのNOR演算結果の反転信号をリセット信号RSTとしてフリップフロップFF1へ出力する。これにより、フリップフロップFF1は、チップレディ信号CHRDYまたは信号ALREADY_IN_ACTIVE(BKn)の少なくとも一方が不活性状態になったときに、モード切替え信号NAND_LIKE_MODEを論理ロウにリセットする。
図10(A)〜図10(C)に示すアドレス比較回路によって、モード切替え信号NAND_LIKE_MODEが論理ハイに活性化されたときに、MRAMは、NANDライクモードへ入る。
より詳細にアドレス比較回路の動作を説明する。MRAMのチップが選択されるとチップレディ信号CHRDYは、論理ハイを維持する。従って、チップレディ信号CHRDYは、論理ハイを維持している。
最初のロウアドレスCA(row)およびアクティブコマンドACTVE_CMD(BKn)が読出し対象として選択されたメモリバンクに入力される。このとき、信号ALREADY_IN_ACTIVE_n(BKn)は、まだ、不活性状態(論理ハイ)を維持している。従って、リセット信号RESET_n(BKn)は、論理ロウに活性化されている。
これにより、アクティブコマンドACTVE_CMD(BKn)のパルスを受けたときに、ラッチ回路LCTcomp1は、最初のロウアドレスCA(row)をロウアドレスROW_ADDR(row)として出力し、ラッチ回路LCTcomp2は、ロウアドレスROW_ADDR(row)を信号LT_1ST_ROW_ADDR(row)として出力する。つまり、ラッチ回路LCTcomp2は、最初のロウアドレスCA(row)を信号LT_1ST_ROW_ADDR(row)として出力する。
例えば、ロウアドレスCA(row)が論理ハイであるときには、ラッチ回路LCTcomp2は、信号LT_1ST_ROW_ADDR(row)として論理ハイを出力する。ロウアドレスROW_ADDR(row)が論理ロウであるときには、ラッチ回路LCTcomp2は、信号LT_1ST_ROW_ADDR(row)として論理ロウを出力する。
アクティブコマンドACTIVE_CMD(BKn)を受けてから所定期間の経過後、信号ALREADY_IN_ACTIVE_n(BKn)が論理ロウに活性化されると、リセット信号RESET_n(BKn)が論理ハイに不活性化される。このとき、ラッチ回路LCTcomp2は、最初のロウアドレスCA(row)を信号LT_1ST_ROW_ADDR(row)としてラッチする。ラッチ回路LCTcomp2は、リセット信号RESET_n(BKn)が論理ロウに再度活性化されるまで、2番目以降に入力されるロウアドレスCA(row)に依らず、最初のロウアドレスCA(row)を保持し続ける。
次に、図10(C)に示すゲートG10が2番目に入力されるロウアドレスCA(row)を受け取ると、ゲートG10は、ラッチ回路LCTcomp2でラッチされている信号LT_1ST_ROW_ADDR(row)と2番目のロウアドレスCA(row)とを比較する。そして、信号LT_1ST_ROW_ADDR(row)と2番目のロウアドレスCA(row)とが等しい場合に(即ち、最初のロウアドレスCA(row)と2番目のロウアドレスCA(row)とが等しい場合に)、ゲートG10は、信号SAME_ROW_ADDR(row)を論理ハイに活性化する。一方、信号LT_1ST_ROW_ADDR(row)と2番目のロウアドレスCA(row)とが異なる場合には、ゲートG10は、信号SAME_ROW_ADDR(row)を論理ロウに不活性化する。
信号SAME_ROW_ADDR(row)が論理ハイに活性化されると、ゲートG20は、アクティブコマンドACTIVE_CMD(BKn)のパルスが入力されるごとに、信号INCが立ち上がる。フリップフロップFF1は、信号INCの立ち上がりを受けて、モード切替え信号NAND_LIKE_MODEを論理ハイに活性化させる。これにより、MRAMは、NANDライクモードに入ることができる。
図11(A)は、信号OUTPUT_BUFFER_ENABLEを出力する回路を示す図である。信号OUTPUT_BUFFER_ENABLEは、NANDライクモードでデータを読み出すときに、ページバッファWRBからの読出しをイネーブルにする信号である。データ読出し時に、NANDライクモードに入ると、信号OUTPUT_BUFFER_ENABLEが論理ハイに活性化される。
図11(B)は、ページバッファWRBからデータを出力するときのMRAMの概念図である。信号OUTPUT_BUFFER_ENABLEを受けたページバッファWRBは、メモリセルアレイMCAにアクセスすることなく、既にページバッファWRBに読み出されたデータを、DQ線を介して外部へ出力する。このとき、カラム選択信号CSL<x:0>およびページ選択信号PAGE<y:0>は、図12および図14に示すカウンタによって生成される。尚、x、yは整数である。
図12は、NANDライクモードにおいてカラム選択信号CLS<x:0>を立ち上げるCLSカウンタの構成図である。このCLSカウンタは、図10(C)に示す信号INCの活性化に伴い、カラム選択信号CLS<0>〜CLS<x>を順番に立ち上げる。これにより、本実施形態によるMRAMは、NANDライクモードにおいて、異なる複数のカラムから連続してデータを読み出すことができる。
図13は、CLSカウンタの動作を示すタイミング図である。図13の“AVTIVE”は、アクティブコマンドACTIVE_CMD(BKn)のパルス数を示す。2つ目のACTIVEパルスにおいて、MRAMがNANDライクモードに入ると、CLSカウンタは、3つ目のACTIVEパルスにおいてカラム選択信号CSL<0>を立ち上げ、5つ目のACTIVEパルスにおいてカラム選択信号CSL<1>を立ち上げ、9つ目のACTIVEパルスにおいてカラム選択信号CSL<2>を立ち上げる。これを続けることによって、CLSカウンタは、アクティブコマンドACTIVE_CMD(BKn)のパルス数に従って全カラム選択信号<x:0>を順次活性化させることができる。
図14は、NANDライクモードにおいてページ選択信号PAGE<y:0>を立ち上げるPAGEカウンタの構成図である。PAGEカウンタは、信号PAGE_INCの入力に従って、ページ選択信号PAGE<0>〜<y>を順次活性化させる。信号PAGE_INCは、通常のリードコマンドを入力するごとに活性化され、内部のページアドレスを1ずつ増大させる信号である。PAGEカウンタは、信号PAGE_INCのパルス数に従って全ページ選択信号<y:0>を順次活性化させることができる。
図15は、第1の実施形態によるNANDライクモードにおけるMRAMの読出し動作を示すタイミング図である。まず、T0およびT2において、2つのアクティブコマンドが入力されている。このとき、同一のバンクアドレス(Bankx)および同一のロウアドレス(Row0)が2回連続して発行されている。これにより、MRAMは、NANDライクモードに入る。尚、通常、同一のバンクアドレス(Bankx)および同一のロウアドレス(Row0)が2回連続して発行されることはない。従って、MRAMが予期せず偶然にNANDライクモードに入ることはない。
T2〜T6の期間は、リードレイテンシRLT0の期間である。リードレイテンシRLT0の期間に、全メモリバンクBK0L〜BK3UのメモリセルアレイMCAのデータはそれぞれに対応するページバッファWRBに読み出される。尚、ここでは、読出し対象のカラムは、CSL<0>である。
T4において、リードコマンドREADを受け取ると、リードレイテンシRLT0後のT6以降において、データがページバッファWRBからDQ線を介して外部へ出力される。このとき、MRAMは、メモリバンクBK0L、BK0U、BK1L、BK1Uからデータを出力開始する。
次に、Txにおいて、メモリバンクBK0L、BK0U、BK1L、BK1Uからのデータ出力が終了したタイミングで、アクティブコマンドを受け取る。このアクティブコマンドと同時に入力されるバンクアドレスおよびロウアドレスは、T0およびT2において入力されたバンクアドレスおよびロウアドレスと同一アドレスである。Txにおけるアクティブコマンドを受けて、図12に示すCSLカウンタは、メモリバンクBK0L、BK0U、BK1L、BK1Uにおけるカラム選択信号をCSL<0>からCSL<1>へインクリメントする。そして、メモリバンクBK0L、BK0U、BK1L、BK1Uは、カラム選択信号CSL<1>に対応するカラムのメモリセルMCからデータをページバッファWRBへ読み出す。このときのリードレイテンシはRLT1である。
一方、メモリバンクBK2L、BK2U、BK3L、BK3Uからのデータは、メモリバンクBK0L、BK0U、BK1L、BK1Uからのデータ出力後、引き続き出力される。
次に、Tyにおいて、メモリバンクBK2L、BK2U、BK3L、BK3Uからのデータ出力が終了したタイミングで、メモリバンクBK2L、BK2U、BK3L、BK3Uはアクティブコマンドを受け取る。このアクティブコマンドとともに入力されるバンクアドレスおよびロウアドレスは、T0およびT2において入力されたバンクアドレスおよびロウアドレスと同一である。Tyにおけるアクティブコマンドを受けて、図12に示すCSLカウンタは、メモリバンクBK2L、BK2U、BK3L、BK3Uにおけるカラム選択信号をCSL<0>からCSL<1>へインクリメントする。そして、メモリバンクBK2L、BK2U、BK3L、BK3Uは、カラム選択信号CSL<1>に対応するカラムのメモリセルMCからデータをページバッファWRBへ読み出す。このときのリードレイテンシはRLT2である。
一方、メモリバンクBK0L、BK0U、BK1L、BK1Uからのデータは、メモリバンクBK2L、BK2U、BK3L、BK3Uからのデータ出力後、引き続き出力される。
このように、メモリバンクBK0L、BK0U、BK1L、BK1UとメモリバンクBK2L、BK2U、BK3L、BK3Uとは、カラム選択信号CSL<x:0>をインクリメントしながら、ページバッファWRBへのデータ読出しと、ページバッファWRBから外部へのデータ出力とを交互に実行する。
これにより、本実施形態のMRAMは、カラムを切り替えながら連続的にデータを出力することができる。即ち、本実施形態によるMRAMは、メモリバンクBK0L、BK0U、BK1L、BK1UのページバッファWRBおよびメモリバンクBK2L、BK2U、BK3L、BK3UのページバッファWRBから交互にデータを外部へ読み出す。一方のメモリバンクBK0L、BK0U、BK1L、BK1UにおけるメモリセルアレイMCAからページバッファWRBへのデータ読出しは、他方のメモリバンクBK2L、BK2U、BK3L、BK3UにおいてページバッファWRBから外部へデータを出力している期間に実行される。逆に、他方のメモリバンクBK2L、BK2U、BK3L、BK3UにおけるメモリセルアレイMCAからページバッファWRBへのデータ読出しは、一方のメモリバンクBK0L、BK0U、BK1L、BK1UにおいてページバッファWRBから外部へデータを出力している期間に実行される。
図16は、第1の実施形態によるNANDライクモードにおけるMRAMの書込み動作を示すタイミング図である。尚、本実施形態によるMRAMの書込み動作では、メモリセルアレイMCAのデータをページバッファWRBへ一旦読み出す。そして、ページバッファWRBにおいてデータを書込みデータで更新した後に、ページバッファWRBのデータをメモリセルアレイMCAへ書き戻す。
まず、T0およびT2において、2つのアクティブコマンドが入力されている。これにより、図15において説明したように、MRAMは、NANDライクモードに入る。
T4〜T5においてリードコマンドが発行されていないため、図11(A)および図11(B)に示す信号OUTPUT_BUFFER_ENABLEは不活性状態を維持する。これにより、ページバッファWRBから外部への出力が禁止される。
一方、メモリセルアレイMCAからページバッファWRBへのデータ読出し動作は、T2から実行されている。例えば、図15と同様に、リードレイテンシRLT0の期間に、全メモリバンクBK0L〜BK3UのメモリセルアレイMCAのデータはそれぞれに対応するページバッファWRBに読み出される。尚、ここでは、読出し対象のカラムは、CSL<0>である。また、図16に示すリードレイテンシRLT0が図15に示すリードレイテンシRLT0と異なる長さで表示されているが、両者は同一期間でよい。
その後、Tx〜Tx−4において、4つのライトコマンドWRITEが発行されている。これらの4つのライトコマンドWRITEは、それぞれメモリバンクBK0L〜BK3Uに対応するコマンドである。
本実施形態では、メモリバンクBK0(BK0LおよびBK0U)のライトコマンドWRITEが発行された時点で、全メモリバンクBK0L〜BK3UのカラムCSL<0>のデータは、各ページバッファWRBに既に読み出されている。従って、ライトレイテンシWLTは短くてよく、TxのライトコマンドWRITEの発行直後(Tx+1〜Tx+2)において、書込みデータがDQ線を介してページバッファWRBへ取り込まれ得る。
メモリバンクBK0L、BK0U、BK1L、BK1Uが外部からの書込みデータを取込み、メモリバンクBK0L、BK0U、BK1L、BK1Uの各ページバッファWRBのデータが書込みデータで更新される。次に、メモリバンクBK2L、BK2U、BK3L、BK3Uが外部からの書込みデータを取込み、メモリバンクBK2L、BK2U、BK3L、BK3Uの各ページバッファWRBのデータが書込みデータで更新される。メモリバンクBK2L、BK2U、BK3L、BK3Uが外部からの書込みデータをページバッファWRBに取込んでいる期間に、メモリバンクBK0L、BK0U、BK1L、BK1Uでは、ページバッファWRBからメモリセルアレイMCAへの書込みが並行して実行されている。
そして、メモリバンクBK0L、BK0U、BK1L、BK1Uにおいて、メモリセルアレイMCAへのデータ書込みが終了すると、メモリバンクBK0L、BK0U、BK1L、BK1Uにおけるカラム選択信号をCSL<0>からCSL<1>へ変更することが可能となる。例えば、メモリバンクBK0L、BK0U、BK1L、BK1Uの各メモリセルアレイMCAへのデータ書込みが終了した時点Tyにおいて、次のアクティブコマンドACTIVEの発行が可能になる。
TyにおけるアクティブコマンドACTIVEによって、メモリバンクBK0L、BK0U、BK1L、BK1Uのカラム選択信号がCSL<0>からCSL<1>へ変更される。そして、メモリバンクBK0L、BK0U、BK1L、BK1Uが外部からの書込みデータを取込み、メモリバンクBK0L、BK0U、BK1L、BK1Uの各ページバッファWRBのデータが書込みデータで上書きされる。メモリバンクBK0L、BK0U、BK1L、BK1Uが外部からの書込みデータをページバッファWRBに取込んでいる期間に、メモリバンクBK2L、BK2U、BK3L、BK3Uでは、CSK<0>に対応するカラムについてページバッファWRBからメモリセルアレイMCAへの書込みが並行して実行されている。
そして、メモリバンクBK2L、BK2U、BK3L、BK3Uにおいて、メモリセルアレイMCAへのデータ書込みが終了すると、メモリバンクBK2L、BK2U、BK3L、BK3Uにおけるカラム選択信号をCSL<0>からCSL<1>へ変更することが可能となる。例えば、メモリバンクBK2L、BK2U、BK3L、BK3Uの各メモリセルアレイMCAへのデータ書込みが終了した時点(図示せず)において、次のアクティブコマンドACTIVEの発行が可能になる。
その後、メモリバンクBK0L、BK0U、BK1L、BK1UおよびメモリバンクBK2L、BK2U、BK3L、BK3Uは、カラム選択信号CSL<x:0>をインクリメントしながら、ページバッファWRBへの書込みデータの取込みと、ページバッファWRBからメモリセルアレイMCAへのデータ書込みとを交互に実行する。
これにより、本実施形態のMRAMは、全てのメモリバンクのページだけでなくカラムを切り替えながら連続的にデータを書き込むことができる。即ち、本実施形態によるMRAMは、メモリバンクBK0L、BK0U、BK1L、BK1UのページバッファWRBおよびメモリバンクBK2L、BK2U、BK3L、BK3UのページバッファWRBへ交互にデータを取り込むことができる。一方のメモリバンクBK0L、BK0U、BK1L、BK1UにおけるページバッファWRBからメモリセルアレイMCAへのデータ書込みは、他方のメモリバンクBK2L、BK2U、BK3L、BK3UにおけるページバッファWRBへのデータ取込みの期間に実行される。逆に、他方のメモリバンクBK2L、BK2U、BK3L、BK3UにおけるページバッファWRBからメモリセルアレイMCAへのデータ書込みは、一方のメモリバンクBK0L、BK0U、BK1L、BK1UにおけるページバッファWRBへのデータ取込みの期間に実行される。
通常、MRAMにおいて、メモリバンク内の複数のカラム(ビット線)は、マルチプレクサによって選択的にセンスアンプまたはライトドライバに接続される。従って、メモリバンク内のカラムを変更するときには、ビット線のプリチャージが必要であった。このため、同一カラムにおいてページを変更しながらデータをバーストリードまたはバーストライトすることは可能であるが、同一メモリバンクにおいてカラムを変更しながらデータをバーストリードまたはバーストライトすることは不可能であった。
本実施形態では、複数のメモリバンクが、カラムを変更しながら、ページバッファWRBへのデータ読出しと、ページバッファWRBから外部へのデータ出力とを交互に実行する。また、複数のメモリバンクが、カラムを変更しながら、ページバッファWRBへの書込みデータの取込みと、ページバッファWRBからメモリセルアレイMCAへのデータ書込みとを交互に実行する。これにより、本実施形態は、同一メモリバンクにおいてカラムを変更しながらデータをバーストリードまたはバーストライトすることができる。本実施形態によるNANDライクモードでは、読出しのカラムアドレスの順番がMRAM内部で決定されているので、或るカラムからのデータ読出し中に、他のカラムが指定されることはない。従って、プリチャージの発行は不要である。
尚、バーストリードまたはバーストライトができない場合であっても、ページバッファWRBから外部へのデータ出力期間または外部からページバッファWRBへのデータ取込み期間は、ページバッファWRBとメモリセルアレイMCAとの間のデータの読出し/書込み期間と比べて非常に短い。即ち、本実施形態によるMRAMでは、リードレイテンシRLTおよびライトレイテンシWLTが見かけ上短縮され得る。
尚、上記実施形態のデータ読出し動作およびデータ書込み動作では、カラムアドレス(カラム選択信号CSL<x:0>)は1ずつインクリメントされている。しかし、バンクアドレスおよびロウアドレスを含むアクティブコマンドACTIVEに、カラムアドレスを含むリードコマンドREADまたはカラムアドレスを含むライトコマンドWRITEを組み合わせることによって、カラムアドレスを任意に変更することができる。
(第2の実施形態)
図17は、第2の実施形態によるMRAMの動作を示すブロック図である。尚、図17には、メモリサブバンクBK0Lの動作を一例として示している。
第2の実施形態によるMRAMは、読出しまたは書込み動作中(ビジー状態)のメモリバンク(サブバンク)に対して別カラムへのアクセスがあった場合に、強制的にプリチャージ信号を発行して、この別カラムへのアクセスを無効にする。
第2の実施形態において、BK0L〜BK3Uは、便宜的にそれぞれサブバンクと呼ぶ。BKiLおよびBKiUは、同一メモリバンクBKiに属するものとする。ここで、iは整数である。
サブバンクBK0Lにおいてデータ書込み動作またはデータ読出し動作が実行されている場合、サブバンクビジー信号SUB_BANK_BUSYが活性化されている。図17に示すそれ以外の信号の表示は、図4(A)に示す信号の表示と同様である。サブバンクBK0Lにアクセスすると、サブバンクBK0Lに対応するサブバンクビジー信号SUB_BANK_BUSY(BK0L_BUSY)が活性化される。
図18(A)〜図18(D)、図19(A)および図19(B)は、強制プリチャージ信号生成部の構成図である。図20は、コマンドイネーブル信号生成部の構成図である。図18(A)〜図18(D)に示すサブ強制プリチャージ信号生成回路は、各サブブロックBK0L〜BK3Uのそれぞれに対応して設けられている。図19(A)および図19(B)に示す強制プリチャージ信号生成回路は、複数のサブバンクBK0L〜BK3Uに共通に設けられている。サブ強制プリチャージ信号生成回路および強制プリチャージ信号生成回路は、メインコントローラMCNT内に設けられていてもよい。
図18(A)の回路は、ライトコマンドWRITE_CMDまたはリードコマンドREAD_CMDを受け取り、それらの何れかが論理ハイに活性化されたときに信号WRITE_OR_READ_CMDを論理ハイに活性化する。選択されたサブバンクにおいては、サブバンク選択信号SEL_SUB_BANK<7:0>が論理ハイに活性化される。尚、<7:0>は、0〜7のいずれかの整数を示す。ここでは、サブバンクBK0L〜BK3Uは、図3に示すように、LEFT側とRIGHT側とにそれぞれ8個ずつ設けられている。サブバンク選択信号SEL_SUB_BANK<7:0>は、それぞれサブバンクBK0L〜BK3Uのいずれかを選択するために用いられる信号である。例えば、サブバンク選択信号SEL_SUB_BANK<0>は、図3に示すLEFT側およびRIGHT側のサブバンクBK0Lを選択する。サブバンク選択信号SEL_SUB_BANK<1>は、図3に示すLEFT側およびRIGHT側のサブバンクBK0Uを選択する。サブバンク選択信号SEL_SUB_BANK<2>は、図3に示すLEFT側およびRIGHT側のサブバンクBK1Lを選択する。サブバンク選択信号SEL_SUB_BANK<3>は、図3に示すLEFT側およびRIGHT側のサブバンクBK1Uを選択する。ここでは、サブバンクBK0Lを選択サブバンクとして説明を進める。他のサブバンクの動作は、サブバンクBK0Lの動作の説明により容易に理解できるので、その説明を省略する。
サブバンクBK0Lにおいて、サブバンク選択信号SEL_SUB_BANK<0>が選択的に論理ハイに活性化されると、フリップフロップFF10のクロックCLKに論理ハイが入力され、それにより、CSL固定化信号FIXED_CSL<0>が論理ハイに活性化される。CSL固定化信号FIXED_CSL<0>は、書込み動作または読出し動作中に、選択サブバンクBK0Lにおけるカラム(ビット線)の変更を無効にするためのフラグ信号である。
CSL固定化信号FIXED_CSL<0>は、プリチャージ信号PRECH<BK0>または信号SUB_BABK_BUSY_nが論理ハイに活性化された場合にリセットされる。信号SUB_BABK_BUSY_nは、サブバンクビジー信号SUB_BANK_BUSYの反転信号である。即ち、CSL固定化信号FIXED_CSL<0>は、サブバンクBK0Lがプリチャージ状態に入るか、あるいは、サブバンクBK0Lがビジー状態でなくなったときにリセットされる。
このように、フリップフロップFF10は、データ書込みまたはデータ読出しのために選択サブバンクBK0LのメモリセルアレイMCAへのアクセスが実行されている期間(ビジー状態の期間)において、選択サブバンクBK0Lに対応するCSL固定化信号FIXED_CSL<0>を活性化させる。
図18(B)に示す信号CA(col)は、外部からのバンクアドレスおよびカラムアドレスである。以下、単に、カラムアドレスCA(col)という。信号FIXED_CSL_n<7:0>は、CSL固定化信号FIXED_CSL<7:0>の反転信号である。1stカラム信号LT_1ST_COL_ADDR(col)は、最初に受け取ったカラムアドレス信号である。
図18(B)に示すように、カラムアドレスCA(col)を信号COL_ADDR(col)としてラッチする第3のラッチ回路LCTcomp10と、最初のカラムアドレスCA(col)のみを信号LT_1ST_COL_ADDR(col)としてラッチする第4のラッチ回路(カラムアドレスラッチ回路)LCTcomp20とを備えている。
リセット信号RESET_n<7:0>が論理ロウであるときに、ラッチ回路LCTcomp10、LCTcomp20は、カラムアドレスCA(col)またはCOL_ADDR(col)をそれぞれ取り込む。そして、リセット信号RESET_n<7:0>が論理ハイになったときに、ラッチ回路LCTcomp20は、カラムアドレスCOL_ADDR(col)を、信号LT_1ST_COL_ADDR(col)としてラッチする。
リセット信号RESET_n<7:0>が再度論理ロウになるまで、ラッチ回路LCTcomp20は、信号LT_1ST_COL_ADDR(col)をラッチし続ける。
リセット信号RESET_n<7:0>は、チップレディ信号CHRDYおよびCSL固定化信号FIXED_CSL<7:0>の両方が活性状態であるときに論理ハイに不活性化される信号である。CSL固定化信号FIXED_CSL<7:0>の反転信号である信号FIXED_CSL_n<7:0>は、CSL固定化信号FIXED_CSL<7:0>の活性化後、所定期間の経過後に、論理ロウに活性化される。CSL固定化信号FIXED_CSL<7:0>の活性化から信号FIXED_CSL_n<7:0>の活性化までの期間中に、ラッチ回路LCTcomp10、LCTcomp20は最初のカラムアドレスCA(col)、COL_ADDR(col)をラッチする。
図18(C)に示す回路は、EX−NORゲート(第2の比較論理ゲート)G30と、フリップフロップFF20と、NANDゲートG40とを備えている。比較論理ゲートG30は、最初のカラムアドレスCA(col)と次に入力されるカラムアドレスCOL_ADDR(col)とを比較する。比較論理ゲートG30は、最初のカラムアドレスCA(col)と次に入力されるカラムアドレスCOL_ADDR(col)とが相違する場合に、カラム相違信号DIFF_COL_ADDR<col>を論理ハイに活性化させる。フリップフロップFF20は、CSL固定化信号FIXED_CSL_<7:0>およびサブバンクビジー信号SUB_BABK_BUSYが論理ハイに活性状態であるときに、信号WATCH_CSLを論理ハイに活性化する。NANDゲートG40は、信号WATCH_CSLが活性状態である期間中において、最初のカラムアドレスCA(col)と次に入力されるカラムアドレスCOL_ADDR(col)とが相違する場合に、違反CSL信号VIOLATED_CSLを論理ハイに活性化させる。
フリップフロップFF20は、サブバンクビジー信号SUB_BABK_BUSYが論理ロウに不活性化されたときに信号WATCH_CSLを論理ロウにリセットする。
図18(D)に示す回路は、フリップフロップFF30を備えている。フリップフロップFF30は、サブバンク選択信号SEL_SUB_BANKおよびCSL固定化信号FIXED_CSL<7:0>が活性化されている期間中に、違反CSL信号VIOLATED_CSLが活性化されると、サブ強制プリチャージ信号SUB_FORCE_PRECH<7:0>を論理ハイに活性化する。
フリップフロップFF30は、チップレディ信号CHRDYまたはCSL固定化信号FIXED_CSL<7:0>が不活性化されたときにサブ強制プリチャージ信号SUB_FORCE_PRECH<7:0>を論理ロウにリセットする。
このように、図18(A)〜図18(D)に示すサブ強制プリチャージ信号生成部は、サブバンクビジー信号SUB_BANK_BUSYおよびCSL固定化信号FIXED_CSL<7:0>が活性状態である期間中(選択サブバンクがビジー状態である期間中)に、既に選択されているカラムとは異なるカラムのカラム選択信号を受け取ると、サブ強制プリチャージ信号SUB_FORCE_PRECH<7:0>を活性化させる。
例えば、選択サブバンクBK0Lに対応するサブ強制プリチャージ信号SUB_FORCE_PRECH<0>が活性化されると、図19(A)に示す強制プリチャージ信号FORCE_PRECH<BK0>が活性化される。強制プリチャージ信号FORCE_PRECH<BK0>が活性化されると、図19(B)に示す強制プリチャージ信号NEW_PRECH<BK0>が活性化される。
図20に示す回路は、フリップフロップFF40を備えている。フリップフロップFF40は、アクティブコマンドACTIVE<BK3:0>の活性化により、コマンドイネーブル信号EN_CMD<BK3:0>を活性状態にセットする。また、強制プリチャージ信号NEW_PRECH<BK0>が活性化されると、図20に示す回路によって、メモリバンクBK0のコマンドイネーブル信号EN_CMD<BK0>が不活性状態にリセットされる。コマンドイネーブル信号EN_CMD<BK3:0>は、メモリバンクBK0〜BK3においてライトコマンドまたはリードコマンドを有効に取り込むか否かを決定する信号である。コマンドイネーブル信号EN_CMD<BK0>が不活性状態にリセットされると、メモリバンクBK0は、次のアクティブコマンドACTIVE<BK0>が発行されるまで、ライトコマンドまたはリードコマンドを受け付けない。即ち、MRAMは、メモリバンクBK0において、アクティブコマンドACTIVE<BK0>の発行無しに、カラムの変更を禁止する。
図21は、第2の実施形態によるMRAMの強制プリチャージ動作を示すタイミング図である。図21では、カラムCSL0を対象とするデータ書込み動作中に、カラムCSL1を指定したライトコマンドWRITEが発行されている。
まず、T0において、アクティブコマンドが入力され、続いて、T2にいてライトコマンドWRITEが入力されている。このとき、バンクアドレスBK0およびカラムアドレスCSL0が選択されている。これにより、MRAMは、メモリバンクBK0L、BK0UのカラムアドレスCSL0に対応するカラムへデータを書き込む。図3に示すアドレスAC5によってサブバンクBK0LまたはBK0Uが選択され得る。
サブバンクBK0LのメモリセルアレイMCAにデータを書き込む場合、T6において、サブバンクビジー信号SUB_BANK_BUSY(BK0L_BUSY)が活性化される。このとき、図18(A)に示す信号SUB_BANK_BUSY_nが論理ロウになるので、ライトコマンドWRITE_CMDの活性化を受けて、フリップフロップFF10がCSL固定化信号FIXED_CSL<7:0>を論理ハイに活性化する。よって、図21に示すように、T6において、サブバンクビジー信号BK0_BUSYおよびCSL固定化信号FIXED_CSL<0>が活性化される。
次に、T8において、メモリバンクBK0のカラムCSL1を指定したライトコマンドWRITEが発行されている。しかし、このとき、サブバンクビジー信号BK0_BUSYおよびCSL固定化信号FIXED_CSL<0>が活性状態である。また、1回目のライトコマンドWRITEにおいて選択されているカラムはCSL0であり、次のライトコマンドWRITEにおいて選択されているカラムはCSL1である。このため、図18(C)に示すカラム相違信号DIFF_COL_ADDR<col>および違反CSL信号VIOLATED_CSLが活性化される。そして、図18(D)に示すサブ強制プリチャージ信号SUB_FORCE_PRECH<0>および図19(B)に示す強制プリチャージ信号NEW_PRECH<BK0>が活性化され、その結果、図20に示すフリップフロップFF40は、コマンドイネーブル信号EN_CMD<BK0>を不活性状態にリセットする。これにより、メモリバンクBK0は、図21のT8において入力されたライトコマンドWRITEを受け付けず、無効とする。これは、エラー状態と見なしてもよい。つまり、図21に示すT8のライトコマンドWRITEの発行は、仕様に違反した動作である。
T15において、メモリセルアレイMCAへの書込みが終了すると、サブバンクビジー信号BK0_BUSYおよびCSL固定化信号FIXED_CSL<0>が不活性化される。即ち、MRAMは、新たなコマンドを受け付けないが、既に実行中の書込み動作については通常通り終了させる。
このように、本実施形態によるMRAMは、選択メモリバンクBK0がビジー状態である期間中、既に選択されているカラムCSL0への書込み動作を維持しながら、カラムの変更を禁止する。これにより、本実施形態によるMRAMは、データ書込み動作中に、書込みデータが破壊されることを抑制することができる。
尚、T8におけるライトコマンドWRITEが選択サブバンクBK0Lの同一カラムCSL0を指定する場合、強制プリチャージは実行されず、MRAMは、2回目のライトコマンドWRITEに基づく書込みデータをメモリセルアレイMCAへ書き込めばよい。また、T8において、メモリバンクBK0に対するリードコマンドREADが発行されても、MRAMは、同様に強制プリチャージ動作を実行する。
図22は、第2の実施形態によるMRAMの通常動作を示すタイミング図である。つまり、図22は、仕様に準拠した動作を示している。ここでは、カラムCSL0を対象とするデータ書込み動作中(T6〜T15)に、他のカラムを指定したライトコマンドWRITEは発行されていない。次のライトコマンドWRITEは、T15においてサブバンクビジー信号BK0_BUSYおよびCSL固定化信号FIXED_CSL<0>が不活性状態になった後、T16において発行されている。このとき、カラムCSL0におけるデータ書込みは既に終了しているので、MRAMは、T16におけるライトコマンドWRITEを有効に受付け、カラムを変更してデータ書込み動作を再度実行する。
この場合、コマンドイネーブル信号EN_CMD<BK0>は、T0においてアクティブコマンドACTIVEを受け取った後、活性状態を維持する。よって、メモリバンクBK0L,BK0Uは、コマンドが入力されると、そのコマンドを有効に受け付ける状態にある。
図21および図22は、書込み動作を示したが、読出し動作についても同様である。図18(A)に示すように、リードコマンドREAD_CMDが活性化された場合、選択サブバンクBK0Lでは、CSL固定化信号FIXED_CSLが活性化される。よって、読出し動作においても、MRAMは、選択メモリバンクBK0がビジー状態である期間中に、選択メモリバンクBK0に対する他のリードコマンドまたは他のライトコマンドが発行された場合、コマンドイネーブル信号EN_CMD<BK0>を不活性化する。
このように、読出し動作においても、MRAMは、選択メモリバンクBK0がビジー状態である期間中、既に選択されているカラムCSL0からの読み出し動作を維持しながら、カラムの変更を禁止する。これにより、本実施形態によるMRAMは、データ読出し動作中に、データが破壊されることを抑制することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
BK・・・メモリバンク、CAR・・・コマンド・アドレスレシーバ、COMCNT・・・コマンドコントローラ、DQB・・・データバッファ、I/O・・・入出力部、MCA・・・メモリセルアレイ、SA・・・センスアンプ、WD・・・ライトドライバ、CD・・・カラムデコーダ、RD・・・ロウデコーダ、MCNT・・・メインコントローラ、WRB・・・ページバッファ、BSC・・・バッファステート回路

Claims (11)

  1. 不揮発性の複数のメモリセルを含む複数のメモリバンクと、
    前記複数のメモリバンクのそれぞれに対応して設けられ、データ書込みまたはデータ読出し時に前記メモリバンクのデータを一時的に格納する複数のバッファと、
    前記バッファに既に読み出されたデータを用いて複数のカラムのデータを連続的に読み出し、あるいは、前記バッファに既に読み出されたデータを用いて複数のカラムのデータを連続的に書き込む第1のモードと、データ読出しまたはデータ書込み時に選択された単一カラムのデータを読み出し、あるいは、選択された単一カラムのデータを書き込む第2のモードとを切り替えるバッファイネーブル信号を生成するコントローラとを備え、
    前記第1のモードにおけるデータ読出し動作では、前記コントローラは、前記複数のメモリバンクのうち第1のメモリバンクと第2のメモリバンクとが、カラムを変更しながら前記バッファから外部へのデータ出力と前記メモリセルから前記バッファへのデータ読出しとを交互に実行するように制御し、
    前記第1のモードにおけるデータ書込み動作では、前記コントローラは、前記第1のメモリバンクと前記第2のメモリバンクとが、カラムを変更しながら外部から前記バッファへの書込みデータの取込みと前記バッファから前記メモリセルへのデータ書込みとを交互に実行するように制御することを特徴とする半導体記憶装置。
  2. 不揮発性の複数のメモリセルを含む複数のメモリバンクと、
    前記複数のメモリバンクのそれぞれに対応して設けられ、データ書込みまたはデータ読出し時に前記メモリバンクのデータを一時的に格納する複数のバッファと、
    前記バッファに既に読み出されたデータを用いて複数のカラムのデータを連続的に読み出し、あるいは、前記バッファに既に読み出されたデータを用いて複数のカラムのデータを連続的に書き込む第1のモードと、データ読出しまたはデータ書込み時に選択された単一カラムのデータを読み出し、あるいは、選択された単一カラムのデータを書き込む第2のモードとを切り替えるバッファイネーブル信号を生成するコントローラとを備えた半導体記憶装置。
  3. 前記第1のモードにおけるデータ読出し動作では、前記コントローラは、前記複数のメモリバンクのうち第1のメモリバンクと第2のメモリバンクとがカラムを変更しながら前記バッファから外部へのデータ出力と前記メモリセルから前記バッファへのデータ読出し第とを交互に実行するように制御し、
    前記第1のモードにおけるデータ書込み動作では、前記コントローラは、前記第1のメモリバンクと前記第2のメモリバンクとがカラムを変更しながら外部から前記バッファへの書込みデータの取込みと前記バッファから前記メモリセルへのデータ書込みとを交互に実行するように制御することを特徴とする請求項2に記載の半導体記憶装置。
  4. 前記コントローラは、データ読出しまたはデータ書込みの開始時に、同一メモリバンクを指定するバンクアドレスおよび該同一メモリバンク内の同一ロウを指定するロウアドレスを2回連続して受け取ったときに、前記バッファイネーブル信号を切り替えて前記第1のモードに入ることを特徴とする請求項2または請求項3に記載の半導体記憶装置。
  5. 前記コントローラは、
    データ読出しまたはデータ書込みの開始時に、前記バンクアドレスのうち第1のバンクアドレスにおいて最初に受け取った第1のロウアドレスを保持するロウアドレスラッチ回路と、
    前記第1のバンクアドレスにおいて前記第1のロウアドレスの次に受け取った第2のロウアドレスと前記第1のロウアドレスとを比較する第1の比較論理ゲートと、
    前記第1のロウアドレスと前記第2のロウアドレスとが同一である場合に前記バッファイネーブル信号を切り替えて前記第1のモードにするフリップフロップとを含むアドレス比較回路を備えたことを特徴とする請求項4に記載の半導体記憶装置。
  6. 前記コントローラは、
    前記第1のモードにおいて、前記第1のメモリバンク内のカラムアドレスを変更するカラムカウンタをさらに備えたことを特徴とする請求項4または請求項5に記載の半導体記憶装置。
  7. 前記コントローラは、
    データ読出しまたはデータ書込みにおいて、前記バンクアドレスのうち第1のバンクアドレスにおいて最初に受け取った第1のカラムアドレスを保持するカラムアドレスラッチ回路と、
    前記データ読出し期間中または前記データ書込み期間中に前記第1のバンクアドレスにおいて前記第1のカラムアドレスの次に受け取った第2のカラムアドレスと前記第1のカラムアドレスとを比較する第2の比較論理ゲートとを備え、
    前記第1のカラムアドレスと前記第2のカラムアドレスとが相違する場合に、前記第1のバンクアドレスに対応する前記メモリバンクは、前記第1のカラムアドレスから前記第2のカラムアドレスへのカラムの変更を禁止することを特徴とする請求項1に記載の半導体記憶装置。
  8. 不揮発性の複数のメモリセルを含む複数のメモリバンクと、前記複数のメモリバンクのそれぞれに対応して設けられ、データ書込みまたはデータ読出し時に前記メモリバンクのデータを一時的に格納する複数のバッファと、前記メモリバンクおよび前記複数のバッファを制御するコントローラとを備えた半導体記憶装置の駆動方法であって、
    前記バッファに既に読み出されたデータを用いて複数のカラムのデータを連続的に読み出し、あるいは、前記バッファに既に読み出されたデータを用いて複数のカラムのデータを連続的に書き込む第1のモードと、データ読出しまたはデータ書込み時に選択された単一カラムのデータを読み出し、あるいは、選択された単一カラムのデータを書き込む第2のモードとを前記コントローラにおいて切り替えることを具備する半導体記憶装置の駆動方法。
  9. 前記第1のモードにおけるデータ読出し動作では、前記複数のメモリバンクのうち第1のメモリバンクと第2のメモリバンクとがカラムを変更しながら前記バッファから外部へのデータ出力と前記メモリセルから前記バッファへのデータ読出し第とを交互に実行し、
    前記第1のモードにおけるデータ書込み動作では、前記第1のメモリバンクと前記第2のメモリバンクとがカラムを変更しながら外部から前記バッファへの書込みデータの取込みと前記バッファから前記メモリセルへのデータ書込みとを交互に実行することを特徴とする請求項8に記載の半導体記憶装置の駆動方法。
  10. 前記モードの切替えは、
    データ読出しまたはデータ書込みの開始時に、同一メモリバンクを指定するバンクアドレスおよび該同一メモリバンク内の同一ロウを指定するロウアドレスを2回連続して受け取ったときに、前記バッファイネーブル信号を切り替えて前記第1のモードに入ることを特徴とする請求項8または請求項9に記載の半導体記憶装置の駆動方法。
  11. 前記コントローラにおいて、
    データ読出しまたはデータ書込みにおいて、前記バンクアドレスのうち第1のバンクアドレスにおいて最初に受け取った第1のカラムアドレスを保持し、
    前記データ読出し期間中または前記データ書込み期間中に前記第1のバンクアドレスにおいて前記第1のカラムアドレスの次に受け取った第2のカラムアドレスと前記第1のカラムアドレスとを比較し、
    前記第1のカラムアドレスと前記第2のカラムアドレスとが相違する場合に、前記第1のバンクアドレスに対応する前記メモリバンクにおいて、前記第1のカラムアドレスから前記第2のカラムアドレスへのカラムの変更を禁止することをさらに具備した請求項8に記載の半導体記憶装置の駆動方法。
JP2012067391A 2012-03-23 2012-03-23 半導体記憶装置およびその駆動方法 Pending JP2013200905A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012067391A JP2013200905A (ja) 2012-03-23 2012-03-23 半導体記憶装置およびその駆動方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012067391A JP2013200905A (ja) 2012-03-23 2012-03-23 半導体記憶装置およびその駆動方法

Publications (1)

Publication Number Publication Date
JP2013200905A true JP2013200905A (ja) 2013-10-03

Family

ID=49521040

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012067391A Pending JP2013200905A (ja) 2012-03-23 2012-03-23 半導体記憶装置およびその駆動方法

Country Status (1)

Country Link
JP (1) JP2013200905A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017147009A (ja) * 2016-02-16 2017-08-24 国立大学法人東北大学 磁気抵抗変化型記憶装置及びそのアクセス方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017147009A (ja) * 2016-02-16 2017-08-24 国立大学法人東北大学 磁気抵抗変化型記憶装置及びそのアクセス方法

Similar Documents

Publication Publication Date Title
USRE48178E1 (en) Semiconductor memory device
US9236104B2 (en) Semiconductor storage device
USRE47639E1 (en) Nonvolatile semiconductor storage device equipped with a comparison buffer for reducing power consumption during write
US10452475B2 (en) Memory system and resistance change type memory
KR20170060263A (ko) 반도체 메모리 장치 및 이의 동작 방법
KR20200023999A (ko) 반도체장치 및 반도체시스템
JP2013196740A (ja) 半導体記憶装置およびその駆動方法
US20160026524A1 (en) Memory device
US8848457B2 (en) Semiconductor storage device and driving method thereof
TW201711051A (zh) 記憶體裝置
US9042198B2 (en) Nonvolatile random access memory
JP2019057341A (ja) 半導体記憶装置
JP2013191263A (ja) 半導体記憶装置およびその駆動方法
US20150067444A1 (en) Semiconductor storage device and memory system
JP2013200905A (ja) 半導体記憶装置およびその駆動方法
JP2013200904A (ja) 半導体記憶装置およびその駆動方法
US10658063B2 (en) Semiconductor memory device including a correcting circuit
US10990522B2 (en) Electronic devices relating to a mode register information signal
TWI631559B (zh) 半導體記憶裝置
JP2014220025A (ja) 半導体装置
JP2013200906A (ja) 半導体記憶装置およびその駆動方法
JP2005063553A (ja) 磁性体記憶装置
JP5610232B2 (ja) 磁気ランダムアクセスメモリ(mram)の制御回路、mram、及びその制御方法
JP2010027202A (ja) 磁性体記憶装置
JP2013097832A (ja) 半導体記憶装置およびその駆動方法