IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 東芝メモリ株式会社の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024135932
(43)【公開日】2024-10-04
(54)【発明の名称】記憶装置及び記憶装置の駆動方法
(51)【国際特許分類】
   G11C 29/00 20060101AFI20240927BHJP
【FI】
G11C29/00 412
【審査請求】未請求
【請求項の数】18
【出願形態】OL
(21)【出願番号】P 2023046848
(22)【出願日】2023-03-23
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】初田 幸輔
【テーマコード(参考)】
5L206
【Fターム(参考)】
5L206AA22
5L206AA24
5L206BB12
5L206CC17
5L206CC32
5L206EE02
(57)【要約】
【課題】不良セルの割合である不良率を低減できる記憶装置及び記憶装置の駆動方法を提供する。
【解決手段】一実施形態の記憶装置3は、複数の第1メモリセルと、変換関数を用いてアドレス変換を行う第1回路とを含む、第1メモリチップCP0と、第1メモリチップに接続される第2回路4とを含む。第2回路は、第1パラメータを第1メモリチップに設定する。第2回路から第1メモリチップに第1アドレスが送信され、第1メモリチップにアクセスされるとき、第1メモリチップにおいて、第1アドレスは、第1パラメータを用いた変換関数によって第2アドレスに変換され、第2アドレスで指定される複数の第1メモリセルのうちの1つにアクセスされる。
【選択図】図1
【特許請求の範囲】
【請求項1】
複数の第1メモリセルと、
変換関数を用いてアドレス変換を行う第1回路と
を含む、第1メモリチップと、
前記第1メモリチップに接続される第2回路と
を備え、
前記第2回路は、第1パラメータを前記第1メモリチップに設定し、
前記第2回路から前記第1メモリチップに第1アドレスが送信され、前記第1メモリチップにアクセスされるとき、
前記第1メモリチップにおいて、前記第1アドレスは、前記第1パラメータを用いた前記変換関数によって第2アドレスに変換され、前記第2アドレスで指定される前記複数の第1メモリセルのうちの1つにアクセスされる、
記憶装置。
【請求項2】
前記第2アドレスは、前記第1アドレスと同じである、
請求項1記載の記憶装置。
【請求項3】
前記第2アドレスは、前記第1アドレスと異なる、
請求項1記載の記憶装置。
【請求項4】
前記第1メモリチップは、
前記第1パラメータを記憶する第3回路
を更に含む、
請求項1記載の記憶装置。
【請求項5】
前記変換関数は、アドレスの任意のビットを反転させる関数である、
請求項1記載の記憶装置。
【請求項6】
前記変換関数は、アドレスで指定される位置を上下左右反転させる関数である、
請求項1記載の記憶装置。
【請求項7】
前記第1メモリチップは、
前記第1回路により変換されたアドレスに対してリダンダンシ判定を行う第4回路
を更に含み、
前記第1メモリチップにおいて、前記第1アドレスが前記第2アドレスに変換された後、且つ前記複数の第1メモリセルのうちの前記1つにアクセスされる前に、前記第4回路によって前記第2アドレスに対してリダンダンシ判定が行われる、
請求項1記載の記憶装置。
【請求項8】
複数の第2メモリセルと、
前記変換関数を用いてアドレス変換を行う第5回路と
を含み、前記第2回路に接続される、第2メモリチップ
を更に備え、
前記第2回路は、前記第1パラメータとは異なる第2パラメータを、前記第2メモリチップに設定し、
前記第2回路から前記第1メモリチップ及び前記第2メモリチップに前記第1アドレスが送信され、前記第1メモリチップ及び前記第2メモリチップにアクセスされるとき、
前記第1メモリチップにおいて、前記第1アドレスは、前記第1パラメータを用いた前記変換関数によって、前記第1アドレスと同じ前記第2アドレスに変換され、前記第2アドレスで指定される前記複数の第1メモリセルのうちの前記1つにアクセスされ、
前記第2メモリチップにおいて、前記第1アドレスは、前記第2パラメータを用いた前記変換関数によって、前記第1アドレスとは異なる第3アドレスに変換され、前記第3アドレスで指定される前記複数の第2メモリセルのうちの1つにアクセスされる、
請求項1記載の記憶装置。
【請求項9】
前記変換関数は、アドレスの任意のビットを反転させる関数であり、
前記第1パラメータは0であり、前記第2パラメータは前記第1パラメータよりも大きい整数である、
請求項8記載の記憶装置。
【請求項10】
複数の第3メモリセルと、
前記変換関数を用いてアドレス変換を行う第6回路と
を含み、前記第2回路に接続される、第3メモリチップと
を更に備え、
前記第2回路は、前記第1パラメータとは異なる第3パラメータを、前記第3メモリチップに設定し、
前記第2回路から前記第1メモリチップ、前記第2メモリチップ及び前記第3メモリチップに前記第1アドレスが送信され、前記第1メモリチップ、前記第2メモリチップ及び前記第3メモリチップにアクセスされるとき、
前記第3メモリチップにおいて、前記第1アドレスは、前記第3パラメータを用いた前記変換関数によって、前記第1アドレスとは異なる第3アドレスに変換され、前記第3アドレスで指定される前記複数の第3メモリセルのうちの1つにアクセスされる、
請求項8記載の記憶装置。
【請求項11】
前記変換関数は、アドレスの任意のビットを反転させる関数であり、
前記第2アドレスは、前記第3アドレスとは異なるアドレスであり、
前記第1パラメータは0であり、前記第2パラメータは前記第1パラメータよりも大きい整数であり、前記第3パラメータは、前記第2パラメータよりも大きい整数である、
請求項10記載の記憶装置。
【請求項12】
前記第2パラメータと前記第1パラメータとの差は、前記第3パラメータと前記第2パラメータとの差に等しい、
請求項11記載の記憶装置。
【請求項13】
前記第2パラメータと前記第1パラメータとの差は、前記第3パラメータと前記第2パラメータとの差とは異なる、
請求項11記載の記憶装置。
【請求項14】
前記変換関数は、アドレスの任意のビットを反転させる関数であり、
前記第2アドレスは、前記第3アドレスと同じアドレスであり、
前記第1パラメータは0であり、前記第2パラメータは、前記第1パラメータよりも大きい整数であり、前記第3パラメータと同じ値である、
請求項10記載の記憶装置。
【請求項15】
前記複数の第1メモリセルは、可変抵抗素子を含む、
請求項1記載の記憶装置。
【請求項16】
前記可変抵抗素子は、磁気抵抗効果素子である、
請求項15記載の記憶装置。
【請求項17】
複数の第1メモリセルと、
変換関数を用いてアドレス変換を行う第1回路と
を含む、第1メモリチップと、
前記第1メモリチップに接続される第2回路と
を含む、記憶装置の駆動方法であって、
前記第2回路から、第1パラメータを前記第1メモリチップに設定することと、
前記第2回路から前記第1メモリチップに第1アドレスが送信され、前記第1メモリチップにアクセスされるとき、
前記第1パラメータを用いた前記変換関数によって、前記第1アドレスを第2アドレスに変換することと、
前記第2アドレスで指定される前記複数の第1メモリセルのうちの1つにアクセスすることと
を備える、
駆動方法。
【請求項18】
前記第1メモリチップは、
前記第1回路により変換されたアドレスに対してリダンダンシ判定を行う第3回路
を更に含み、
前記駆動方法は、
前記第1アドレスが前記第2アドレスに変換された後、且つ前記複数の第1メモリセルのうちの前記1つにアクセスされる前に、前記第2アドレスに対してリダンダンシ判定を行うこと
を更に備える、
請求項17記載の駆動方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、記憶装置及び記憶装置の駆動方法に関する。
【背景技術】
【0002】
可変抵抗素子を記憶素子として用いた記憶装置が知られている。例えば、磁気抵抗効果素子を可変抵抗素子として用いた磁気記憶装置(MRAM:Magnetoresistive Random Access Memory)が知られている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】米国特許出願公開第2010/0161883号明細書
【特許文献2】米国特許出願公開第2015/0236716号明細書
【発明の概要】
【発明が解決しようとする課題】
【0004】
不良セルの割合である不良率を低減できる記憶装置及び記憶装置の駆動方法を提供する。
【課題を解決するための手段】
【0005】
実施形態に係る記憶装置は、複数の第1メモリセルと、変換関数を用いてアドレス変換を行う第1回路とを含む、第1メモリチップと、第1メモリチップに接続される第2回路とを含む。第2回路は、第1パラメータを第1メモリチップに設定する。第2回路から第1メモリチップに第1アドレスが送信され、第1メモリチップにアクセスされるとき、第1メモリチップにおいて、第1アドレスは、第1パラメータを用いた変換関数によって第2アドレスに変換され、第2アドレスで指定される複数の第1メモリセルのうちの1つにアクセスされる。
【図面の簡単な説明】
【0006】
図1図1は、第1実施形態に係る記憶装置を含むメモリシステムの構成の一例を示すブロック図である。
図2図2は、第1実施形態に係る記憶装置に含まれるメモリチップの構成の一例を示すブロック図である。
図3図3は、第1実施形態に係る記憶装置に含まれるメモリセルアレイの構成の一例を示す回路図である。
図4図4は、第1実施形態に係る記憶装置に含まれる磁気抵抗効果素子の構造の一例を示す断面図である。
図5図5は、第1実施形態に係る記憶装置に含まれるメモリチップ内のアドレス変換回路の構成の一例を示す回路図である。
図6図6は、第1実施形態に係る記憶装置に含まれるアドレス変換回路で用いられる変換関数の具体的な処理の一例を説明する図である。
図7図7は、第1実施形態に係る記憶装置に含まれるアドレス変換回路で用いられる変換関数の具体的な処理の他の一例を説明する図である。
図8図8は、図7における、アドレス変換前のアドレスで指定されるメモリセルと、アドレス変換後のアドレスで指定されるメモリセルMCとの関係を示す図である。
図9図9は、第1実施形態に係る記憶装置の設定動作の一例を示すフローチャートである。
図10図10は、第1実施形態に係る記憶装置に含まれるチップのアドレス変換動作の一例を示すフローチャートである。
図11図11は、比較例の記憶装置と第1実施形態に係る記憶装置におけるエラー検出結果を示す図である。
図12図12は、第1実施形態の第1変形例に係る記憶装置に含まれるアドレス変換回路で用いられる変換関数の具体的な処理の一例を説明する図である。
図13図13は、図12における、アドレス変換前のアドレスで指定されるメモリセルと、アドレス変換後のアドレスで指定されるメモリセルMCとの関係を示す図である。
図14図14は、第1実施形態の第1変形例に係る記憶装置に含まれるアドレス変換回路で用いられる変換関数の具体的な処理の他の一例を説明する図である。
図15図15は、図14における、アドレス変換前のアドレスで指定されるメモリセルと、アドレス変換後のアドレスで指定されるメモリセルMCとの関係を示す図である。
図16図16は、第1実施形態の第2変形例に係る記憶装置に含まれるメモリチップ内のアドレス変換回路の構成の一例を示す回路図である。
図17図17は、第1実施形態の第2変形例に係る記憶装置に含まれるアドレス変換回路で用いられる変換関数の具体的な処理の一例を説明する図である。
図18図18は、図17における、アドレス変換前のアドレスで指定されるメモリセルと、アドレス変換後のアドレスで指定されるメモリセルMCとの関係を示す図である。
図19図19は、第1実施形態の第2変形例に係る記憶装置に含まれるアドレス変換回路で用いられる変換関数の具体的な処理の他の一例を説明する図である。
図20図20は、図19における、アドレス変換前のアドレスで指定されるメモリセルと、アドレス変換後のアドレスで指定されるメモリセルMCとの関係を示す図である。
図21図21は、第2実施形態に係る記憶装置に記憶されるリダンダンシ情報の一例を示す概念図である。
図22図22は、第2実施形態に係る記憶装置に含まれるメモリチップの構成の一例を示すブロック図である。
図23図23は、第2実施形態に係る記憶装置に含まれるメモリチップのリダンダンシ判定動作の一例を示すフローチャートである。
【発明を実施するための形態】
【0007】
以下、実施形態について図面を参照して説明する。なお、以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付す。同様の構成を有する要素同士を特に区別する場合、同一符号の末尾に、互いに異なる文字または数字を付加する場合がある。
【0008】
1. 第1実施形態
第1実施形態に係る記憶装置について説明する。本実施形態に係る記憶装置は、例えば、磁気トンネル接合(MTJ:Magnetic Tunnel Junction)によって磁気抵抗効果(Magnetoresistance effect)を有する素子(MTJ素子、またはMagnetoresistance effect elementともいう)を可変抵抗素子として用いた、磁気記憶装置である。本実施形態、並びに後述する実施形態及び変形例において、MTJ素子を可変抵抗素子として用いた場合で説明するとともに、表記上、磁気抵抗効果素子MTJとして説明を行う。
【0009】
1.1 構成
1.1.1 メモリシステムの構成
第1実施形態に係る記憶装置を含むメモリシステムの構成について、図1を用いて説明する。図1は、本実施形態に係る記憶装置を含むメモリシステムの構成の一例を示すブロック図である。
【0010】
メモリシステム1は、データを記憶するデバイスである。図1に示すように、メモリシステム1は、メモリコントローラ2及び記憶装置3を含む。
【0011】
メモリコントローラ2は、記憶装置3を制御するデバイスである。メモリコントローラ2は、例えば、SoC(System On a Chip)である。メモリコントローラ2は、図示せぬホスト(例えば、サーバシステムなど)と接続される。メモリコントローラ2は、ホストから要求信号を受信する。メモリコントローラ2は、ホストから受信した要求信号または自発的な処理要求に基づいて、記憶装置3を制御する。
【0012】
また、メモリコントローラ2は、図示せぬECC(Error Checking and Correcting)回路を含む。ECC回路は、データのエラー訂正処理を行う回路である。具体的には、ECC回路は、データの書込み動作時に書込みデータに基づいて誤り訂正符号を生成する。そして、ECC回路は、データの読出し動作時に、予め決められた単位で、誤り訂正符号に基づいてシンドロームを生成してエラーを検出し、検出したエラーを訂正する。
【0013】
記憶装置3は、例えば、制御部4及び複数のメモリチップ(以下、単に「チップ」と表記する)CPを含む。
【0014】
制御部4は、記憶装置3全体の動作を制御する回路である。制御部4は、メモリコントローラ2と複数のチップCPとの間の通信を司る回路である。制御部4は、バスを介してメモリコントローラ2と接続される。制御部4は、例えば、バス5を介して複数のチップCPと接続される。
【0015】
制御部4は、ROM(Read only memory)6を含む。ROM6は、不揮発性のメモリである。ROM6は、例えば、ファームウェア等のプログラム、リダンダンシ情報(テーブル)RDI、アドレス変換フラグ(以下、単に「変換フラグ」と表記する)FLG、及びアドレス変換パラメータ(以下、単に「変換パラメータ」と表記する)PRMを記憶する。リダンダンシ情報RDIは、後述する不良のメモリセルと、後述するリダンダンシセルとの対応関係を示す情報である。変換フラグFLGは、後述するアドレス変換を有効にするか否かを示す情報である。例えば、変換フラグFLGは、アドレス変換を有効にする場合、“1”とされ、アドレス変換を無効にする場合、“0”とされる。変換パラメータPRMは、アドレス変換に用いられるパラメータである。リダンダンシ情報RDI、変換フラグFLG、及び変換パラメータPRMは、チップCP毎に記憶される。なお、リダンダンシ情報RDI、変換フラグFLG、及び変換パラメータPRMは、チップCP内の後述するメモリセルアレイに記憶されてもよい。
【0016】
制御部4は、メモリコントローラ2から、制御信号CNT、コマンドCMD、アドレスADD、及びデータDATを受信する。制御部4は、例えば、受信した制御信号CNT、コマンドCMD、アドレスADD、及びデータDATを、バス5を介して複数のチップCPに送信する。制御部4は、同一のアドレスADDを複数のチップCPに送信する。例えば、書込み動作または読出し動作(複数のチップCPへのアクセス)の際には、同時に複数のチップCPに同一のアドレスが送信される。制御部4は、ROM6にチップCP毎に記憶されている変換フラグFLG及び変換パラメータPRMを、バス5を介して対応するチップCPに送信する。また、制御部4は、バス5を介して複数のチップCPからデータDATを受信する。制御部4は、受信したデータDATをメモリコントローラ2に送信する。
【0017】
チップCPは、例えば、MTJ素子を可変抵抗素子として用いた磁気記憶装置である。換言すると、記憶装置3は、複数のチップCPを含む磁気記憶装置である。図1は、記憶装置3内に設けられるチップCPの数が8個の場合を示している。以下、8個のチップCPを区別する場合は、チップCP0~CP7と表記する。8個のチップCPを区別しない場合は、単にチップCPと表記する。なお、記憶装置3内に設けられるチップCPの数は、8個に限定されるものではなく、2個以上であればよい。チップCPは、制御部4によって制御される。
【0018】
1.1.2 チップの構成
チップCPの構成について、図2を用いて説明する。図2は、チップCPの構成の一例を示すブロック図である。
【0019】
図2に示すように、チップCPは、メモリセルアレイ10、入出力回路11、制御回路12、アドレス変換回路13、レジスタ14、デコード回路15、ロウ選択回路16、カラム選択回路17、電圧生成回路18、及び書込み・読出し回路19を含む。
【0020】
メモリセルアレイ10は、不揮発性メモリである。メモリセルアレイ10は、各々が行(row)及び列(column)の組に対応付けられた複数のメモリセルMCを含む。メモリセルMCは、データを不揮発に記憶する。例えば、同一行にあるメモリセルMCは、同一のワード線WLに接続される。同一列にあるメモリセルMCは、同一のビット線BLに接続される。また、メモリセルアレイ10は、複数のバンクBK0~BKi(iは1以上の整数)を含む。以下、バンクBK0~BKiを区別しない場合は、単にバンクBKと表記する。バンクBKは、複数のメモリセルMCを含む。メモリセルアレイ10の詳細については、後述する。
【0021】
入出力回路11は、データの送受信を行う回路である。入出力回路11は、バス5を介して制御部4から、制御信号CNT、コマンドCMD、アドレスADD、データ(書込みデータ)DAT、変換フラグFLG、及び変換パラメータPRMを受信する。書込みデータは、メモリセルアレイ10に書き込まれるデータである。入出力回路11は、制御信号CNT及びコマンドCMDを制御回路12に送信する。入出力回路11は、アドレスADDをアドレス変換回路13に送信する。入出力回路11は、データ(書込みデータ)DATを書込み・読出し回路19に送信する。入出力回路11は、変換フラグFLG及び変換パラメータPRMをレジスタ14に送信する。また、入出力回路11は、書込み・読出し回路19からデータ(読出しデータ)DATを受信する。読出しデータは、メモリセルアレイ10から読み出されたデータである。入出力回路11は、データ(読出しデータ)DATを、バス5を介して制御部4に送信する。
【0022】
制御回路12は、チップCP全体の動作を制御する回路である。制御回路12は、制御信号CNT及びコマンドCMDに基づいて、入出力回路11、アドレス変換回路13、デコード回路15、ロウ選択回路16、カラム選択回路17、電圧生成回路18、及び書込み・読出し回路19の動作を制御する。
【0023】
アドレス変換回路13は、アドレス変換を行う回路である。アドレス変換とは、例えば、入出力回路11から送信されたアドレスADDを変換する処理である。アドレス変換回路13は、入出力回路11からアドレスADDを受信する。アドレス変換回路13は、レジスタ14から変換フラグFLG及び変換パラメータPRMを取得する。変換フラグFLGが“1”である(アドレス変換を有効にする)場合、アドレス変換回路13は、変換パラメータPRMに基づいて、アドレスADDを変換する。アドレス変換回路13は、変換後のアドレスをアドレスADD1としてデコード回路15に送信する。他方で、変換フラグFLGが“0”である(アドレス変換を無効にする)場合、アドレス変換回路13は、アドレスADDを変換しない。アドレス変換回路13は、受信したアドレスADDをアドレスADD1としてデコード回路15に送信する。アドレス変換回路13の詳細については、後述する。
【0024】
レジスタ14は、変換フラグFLG及び変換パラメータPRMを記憶する回路である。レジスタ14は、入出力回路11から変換フラグFLG及び変換パラメータPRMを受信する。
【0025】
デコード回路15は、アドレスADDをデコードする回路である。デコード回路15は、アドレス変換回路13からアドレスADD1を受信する。デコード回路15は、アドレスADD1をデコードする。デコード回路15は、アドレスADD1のデコード結果を、ロウ選択回路16及びカラム選択回路17に送信する。アドレスADD1は、ロウアドレス及びカラムアドレスを含む。
【0026】
ロウ選択回路16は、メモリセルアレイ10の行に対応するワード線WLを選択する回路である。ロウ選択回路16は、ワード線WLを介してメモリセルアレイ10と接続される。ロウ選択回路16は、デコード回路15からアドレスADD1のデコード結果(ロウアドレス)を受信する。ロウ選択回路16は、アドレスADD1のデコード結果に基づいて、行に対応するワード線WLを選択する。
【0027】
カラム選択回路17は、メモリセルアレイ10の列に対応するビット線BLを選択する回路である。カラム選択回路17は、ビット線BLを介してメモリセルアレイ10と接続される。カラム選択回路17は、デコード回路15からアドレスADD1のデコード結果(カラムアドレス)を受信する。カラム選択回路17は、アドレスADD1のデコード結果に基づいて、列に対応するビット線BLを選択する。
【0028】
電圧生成回路18は、チップCP(記憶装置3)の外部から印加された電源電圧(例えば、電圧VDD)を用いて、チップCPの各種動作のための電圧を生成する回路である。各種動作は、例えば、書込み動作、読出し動作、及び消去動作である。例えば、電圧生成回路18は、書込み動作で使用される電圧(以下、「書込み電圧」とも表記する)を生成する。電圧生成回路18は、書込み電圧を書込み・読出し回路19に供給する。また、電圧生成回路18は、読出し動作で使用される電圧(以下、「読出し電圧」とも表記する)を生成する。電圧生成回路18は、読出し電圧を書込み・読出し回路19に供給する。
【0029】
書込み・読出し回路19は、メモリセルMCへのデータの書込み、及びメモリセルMCからのデータの読出しを行う回路である。
【0030】
書込み・読出し回路19は、書込みドライバ(不図示)を含む。書込み・読出し回路19は、入出力回路11から書込みデータDATを受信する。書込み・読出し回路19は、電圧生成回路18から書込み電圧を印加される。書込みドライバは、例えば、定電流ドライバ回路である。書込みドライバは、書込み電圧に基づく電流(書込み動作で使用される電流。以下、「書込み電流」とも表記する)を、ロウ選択回路16またはカラム選択回路17に供給する。ロウ選択回路16は、選択したワード線WLを介してメモリセルアレイ10に書込み電流を供給する。カラム選択回路17は、選択したビット線BLを介してメモリセルアレイ10に書込み電流を供給する。
【0031】
また、書込み・読出し回路19は、読出しドライバ(不図示)及びセンスアンプ(不図示)を含む。書込み・読出し回路19は、電圧生成回路18から読出し電圧を印加される。読出しドライバは、例えば、定電流ドライバ回路である。読出しドライバは、読出し電圧に基づく電流(読出し動作で使用される電流。以下、「読出し電流」とも表記する)を、カラム選択回路17に供給する。カラム選択回路17は、選択したビット線BLを介してメモリセルアレイ10に読出し電流を供給する。センスアンプは、ビット線BLの電圧に基づいて、メモリセルMCに記憶されているデータを割り出す。書込み・読出し回路19は、割り出されたデータを、読出しデータDATとして入出力回路11に送信する。
【0032】
1.1.3 メモリセルアレイの構成
メモリセルアレイ10の構成について、図3を用いて説明する。図3は、メモリセルアレイ10の構成の一例を示す回路図である。図3は、メモリセルアレイ10に含まれる1個のバンクBKの回路構成を、メモリセルアレイ10の回路構成の一例として示している。他のバンクBKも、図3と同様の構成を有する。図3では、メモリセルMC、ワード線WL、及びビット線BLが、インデックス(“<>”)を含む添え字によって分類されて示されている。
【0033】
図3に示すように、メモリセルアレイ10は、メイン領域MA及びリダンダンシ領域RAを含む。メイン領域MAは、主として、外部からのデータの記憶に用いられる領域である。リダンダンシ領域RAは、メイン領域MA内に不良のメモリセルMC(以下、「不良セルMC」と表記する)または不良のビット線BL(以下、「不良ビット線BL」と表記する)が存在した場合に、不良セルMC及び不良ビット線BLに接続されたメモリセルMCの代わりに用いられる領域である。
【0034】
メモリセルMCは、メモリセルアレイ10内にマトリクス状に配置される。換言すると、メイン領域MAは、マトリクス状に配置された複数のメモリセルMCを含む。リダンダンシ領域RAは、マトリクス状に配置された複数のメモリセルMCを含む。以下、リダンダンシ領域RA内のメモリセルMCを「リダンダンシセルMCr」とも表記する。メモリセルMCは、複数のワード線WL(WL<0>、…、WL<m>、…、WL<M>)のうちの1本と、複数のビット線BL(BL<0>、…、BL<n>、…、BL<N>)のうちの1本と、の組に対応付けられる(M及びNは、1以上の整数)。すなわち、メモリセルMC<m,n>(0≦m≦M、0≦n≦N)は、ワード線WL<m>とビット線BL<n>との間に接続される。ワード線WL<m>は、ロウ選択回路16に接続される。ビット線BL<n>は、カラム選択回路17に接続される。メモリセルMC<m,n>は、直列に接続されたスイッチング素子SEL<m,n>、及び磁気抵抗効果素子MTJ<m,n>を含む。
【0035】
スイッチング素子SELは、2端子型のスイッチング素子である。2端子型のスイッチング素子は、3個目の端子を含まない点において、トランジスタ等の3端子型のスイッチング素子と異なる。より具体的には、例えば、対応するメモリセルMCに印加される電圧が閾値電圧Vth未満の場合、スイッチング素子SELは、抵抗値の大きい絶縁体として電流を遮断する(オフ状態となる)。対応するメモリセルMCに印加される電圧が閾値電圧Vth以上の場合、スイッチング素子SELは、抵抗値の小さい導電体として電流を流す(オン状態となる)。スイッチング素子SELは、2端子間に印加される電圧がどちらの極性でも(流れる電流の方向に依らず)、対応するメモリセルMCに印加される電圧の大きさに応じて、電流を流すか遮断するかを切替える。
【0036】
以上のような構成により、メモリセルMCが選択されると、選択されたメモリセルMC内のスイッチング素子SELがオン状態となる。これにより、選択されたメモリセルMC内の磁気抵抗効果素子MTJに電流を流すことができる。
【0037】
磁気抵抗効果素子MTJは、スイッチング素子SELがオン状態の際に流れる電流に基づいて、抵抗値を低抵抗状態と高抵抗状態とに切替えることができる。磁気抵抗効果素子MTJは、その抵抗状態の変化によってデータを不揮発に記憶する。
【0038】
1.1.4 磁気抵抗効果素子の構造
磁気抵抗効果素子MTJの構造について、図4を用いて説明する。図4は、磁気抵抗効果素子MTJの構造の一例を示す断面図である。
【0039】
図4に示すように、磁気抵抗効果素子MTJは、参照層RL(Reference layer)として機能する強磁性体31、トンネルバリア層TB(Tunnel barrier layer)として機能する非磁性体32、及び記憶層SL(Storage layer)として機能する強磁性体33を含む。強磁性体31、非磁性体32、及び強磁性体33は、例えば、図示せぬ半導体基板の上方に、強磁性体31、非磁性体32、強磁性体33の順に積層される。磁気抵抗効果素子MTJは、例えば、磁気抵抗効果素子MTJを構成する磁性体の磁化方向がそれぞれ膜面に対して垂直方向を向く、垂直磁化型の磁気抵抗効果素子MTJとして機能する。
【0040】
強磁性体31は、強磁性を有し、膜面に垂直な方向に磁化容易軸方向(easy axis of magnetization)を有する。強磁性体31は、例えば、コバルト鉄ボロン(CoFeB)またはホウ化鉄(FeB)を含む。強磁性体31の磁化方向は、固定されており、図4では、非磁性体32が設けられる面に対して反対の面を向いている。なお、「磁化方向が固定されている」とは、強磁性体33の磁化方向を反転させ得る大きさの電流(スピントルク)によって、磁化方向が変化しないことを意味する。
【0041】
非磁性体32は、非磁性の絶縁膜であり、例えば、酸化マグネシウム(MgO)を含む。非磁性体32は、強磁性体31と強磁性体33との間に設けられる。これにより、強磁性体31、非磁性体32、及び強磁性体33は、磁気トンネル接合(Magnetic Tunnel junction)を構成する。
【0042】
強磁性体33は、強磁性を有し、膜面に垂直な方向に磁化容易軸方向を有する。強磁性体33は、例えば、コバルト鉄ボロン(CoFeB)またはホウ化鉄(FeB)を含み、体心立方(bcc:Body‐centered cubic)系の結晶構造を有し得る。強磁性体33の磁化方向は、可変である。
【0043】
磁気抵抗効果素子MTJは、記憶層SL及び参照層RLの磁化方向の相対関係が平行か反平行かによって、低抵抗状態及び高抵抗状態のいずれかを取ることができる。以下では、磁気抵抗効果素子MTJの抵抗状態を変化させる方式として、スピン注入書込み方式が用いられる場合について説明する。スピン注入書込み方式では、磁気抵抗効果素子MTJに書込み電流を流すことによってスピントルクを発生させる。そして、発生させたスピントルクによって、参照層RLの磁化方向に対する記憶層SLの磁化方向を制御する。
【0044】
磁気抵抗効果素子MTJに、図4における矢印A1の方向、すなわち、記憶層SLから参照層RLに向かう方向に、或る大きさの書込み電流Iw0を流すと、記憶層SL及び参照層RLの磁化方向の相対関係は、平行になる。この平行状態の場合、磁気抵抗効果素子MTJの抵抗値は最も低くなり、磁気抵抗効果素子MTJは低抵抗状態に設定される。この低抵抗状態は、「P(Parallel)状態」と呼ばれ、例えば、データ“0”の状態と規定される。以下、記憶層SLから参照層RLに書込み電流を流して磁気抵抗効果素子MTJを低抵抗状態に設定する動作を「“0”書込み」と表記する。
【0045】
また、磁気抵抗効果素子MTJに、図4における矢印A2の方向、すなわち、参照層RLから記憶層SLに向かう方向に、書込み電流Iw0より大きい書込み電流Iw1を流すと、記憶層SL及び参照層RLの磁化方向の相対関係は、反平行になる。この反平行状態の場合、磁気抵抗効果素子MTJの抵抗値は最も高くなり、磁気抵抗効果素子MTJは高抵抗状態に設定される。この高抵抗状態は、「AP(Anti-Parallel)状態」と呼ばれ、例えば、データ“1”の状態と規定される。以下、参照層RLから記憶層SLに書込み電流を流して磁気抵抗効果素子MTJを高抵抗状態に設定する動作を「“1”書込み」と表記する。
【0046】
また、磁気抵抗効果素子MTJに読出し電流Ir0を流すと、記憶層SL及び参照層RLの磁化方向は、変化しない。センスアンプは、ビット線BLの電圧に基づいて、磁気抵抗効果素子MTJの抵抗状態がP状態であるかAP状態であるかを判定する。これにより、センスアンプは、メモリセルMCからデータを読み出すことができる。
【0047】
なお、データ“0”及びデータ“1”の規定の仕方は、上述した例に限定されない。例えば、P状態をデータ“1”と規定し、AP状態をデータ“0”と規定してもよい。
【0048】
1.1.5 アドレス変換回路の構成
アドレス変換回路13の構成について、図5を用いて説明する。図5は、アドレス変換回路13の構成の一例を示す回路図である。図5は、アドレス変換回路13とともに、入出力回路11、レジスタ14、及びデコード回路15も示している。
【0049】
図5に示すように、アドレス変換回路13は、スイッチ回路41及び演算回路42を含む。
【0050】
スイッチ回路41は、アドレス変換の有効及び無効を切り替える回路である。スイッチ回路41は、スイッチSWを含む。スイッチSWは、第1端子、第2端子及び第3端子を含む。スイッチSWは、入出力回路11と演算回路42との間の接続、及び入出力回路11とデコード回路15との間の接続を切り替える素子である。スイッチSWの第1端子は、入出力回路11に接続される。スイッチSWの第2端子は、演算回路42に接続される。スイッチSWの第3端子は、デコード回路15に接続される。スイッチ回路41は、入出力回路11からアドレスADDを受信する。スイッチ回路41は、レジスタ14から変換フラグFLGを受信する。スイッチ回路41は、変換フラグFLGに基づいて、スイッチSWを切り替える。これにより、アドレスADDは、演算回路42またはデコード回路15に送信される。
【0051】
演算回路42は、アドレス変換の演算処理を行う回路である。演算回路42は、レジスタ14、スイッチ回路41、及びデコード回路15に接続される。演算回路42は、レジスタ14から変換パラメータPRMを受信する。演算回路42は、スイッチ回路41からアドレスADDを受信する。演算回路42は、変換パラメータPRM及びアドレスADDに基づいて、演算処理を行い、演算結果をデコード回路15に送信する。以下、演算回路42の演算結果を、変換関数fを用いてf(ADD,PRM)と表記する。
【0052】
変換関数fは、例えば、変換パラメータPRMに基づいて、アドレスADDの任意のビットの“0”と“1”を反転させる関数である。具体的には、例えば、アドレスADDの全ビットのうちの反転させるビットは、変換パラメータPRMによって指定される。どのビットを反転させるか、または反転させるビットの数をいくつにするかは、自由に決めることができる。変換関数fは、変換パラメータPRMを用いて、アドレスADDの指定されたビットを反転させる。これにより、アドレスADDが変換される。換言すると、アドレス変換回路13は、変換関数fを用いて(変換パラメータPRMを用いた変換関数fによって)アドレス変換を行う。
【0053】
変換関数fの演算処理を実現する構成として、演算回路42は、例えば、XOR回路XRを含む。XOR回路XRは、排他的論理和の演算処理を行う回路である。演算回路42内に設けられるXOR回路XRの数は、例えば、変換パラメータPRMのビットの数と同じである。すなわち、変換パラメータPRMが1ビットの場合、演算回路42は、1個のXOR回路XRを含む。変換パラメータPRMが2ビットの場合、演算回路42は、2個のXOR回路XRを含む。以下、同様である。なお、演算回路42内に設けられるXOR回路XRの数は、1個以上であればよい。
【0054】
XOR回路XRは、例えば、アドレスADDの任意の1ビット(以下、「ビットa」と表記する)、及び変換パラメータPRMの任意の1ビット(以下、「ビットp」と表記する)に基づいて、演算処理を行い、演算結果を出力する。以下、XOR回路XRの演算結果を、変換関数fを用いてf(a,p)と表記する。演算結果f(a,p)は、ビットpに応じてビットaを反転させた値、またはビットaを反転させない値をとる。
【0055】
変換フラグFLGが“1”である場合、スイッチSWは、入出力回路11と演算回路42との間を接続する。これにより、アドレス変換は有効になる。スイッチ回路41は、アドレスADDを演算回路42に送信する。演算回路42は、変換パラメータPRMに基づいて、アドレスADDを変換して、変換後のアドレスf(ADD,PRM)を出力する。アドレス変換回路13は、f(ADD,PRM)をアドレスADD1としてデコード回路15に送信する。他方で、変換フラグFLGが“0”である場合、スイッチSWは、入出力回路11とデコード回路15との間を接続する。これにより、アドレス変換は無効になる。スイッチ回路41は、アドレスADDをアドレスADD1としてデコード回路15に送信する。
【0056】
1.1.6 変換関数
変換関数fの詳細について、図6を用いて説明する。図6は、変換関数fの具体的な処理の一例を説明する図である。
【0057】
レジスタ14には、例えば、変換フラグFLGとして“1”が設定されている。これにより、アドレス変換は有効に設定される。レジスタ14には、例えば、変換パラメータPRMとして“0000”(4ビット)が設定されている。以下、変換パラメータPRMの4ビットをそれぞれp0~p3と表記する。
【0058】
演算回路42は、例えば、4個のXOR回路XRを含む。以下、4個のXOR回路XRをそれぞれXOR回路XR0~XR3と表記し、4個のXOR回路XRの演算結果をそれぞれf(a0,p0)~f(a3,p3)と表記する。
【0059】
演算回路42には、例えば、アドレスADDとして“00010...01001”(30ビット)が入力される。以下、アドレスADDの30ビットをそれぞれa0~a29と表記する。演算回路42は、例えば、アドレスADDの下位4ビットと変換パラメータPRMとを対応するビット毎にXOR演算する。すなわち、XOR回路XR1は、ビットp0及びビットa0に基づいてXOR演算を実行する。XOR回路XR2は、ビットp1及びビットa1に基づいてXOR演算を実行する。以下、同様である。XOR演算の結果、f(a0,p0)は、ビットa0を反転させない値となる。f(a1,p1)~f(a3,p3)も同様である。よって、演算回路42の演算結果f(ADD,PRM)は、アドレスADDと同じアドレス(“00010...01001”(30ビット))となる。換言すると、f(ADD,PRM)は、アドレスADDからシフトさせないアドレスとなる。アドレス変換回路13は、アドレスADD1として、f(ADD,PRM)を出力する。
【0060】
図7は、変換関数fの具体的な処理の他の一例を説明する図である。図7では、変換パラメータPRMの値を除いて、図6の例と同様である。レジスタ14には、例えば、変換パラメータPRMとして“0101”(4ビット)が設定されている。
【0061】
演算回路42は、例えば、アドレスADDの下位4ビットと変換パラメータPRMとを対応するビット毎にXOR演算する。XOR演算の結果、f(a0,p0)は、ビットa0を反転させた値となる。f(a1,p1)は、ビットa1を反転させない値となる。f(a2,p2)は、ビットa2を反転させた値となる。f(a3,p3)は、ビットa3を反転させない値となる。よって、演算回路42の演算結果f(ADD,PRM)は、アドレスADDと異なるアドレス(“00010...01100”(30ビット))となる。換言すると、f(ADD,PRM)は、アドレスADDから5だけシフトさせた(アドレスADDに5を加算した)アドレスとなる。このように、変換パラメータPRMは、アドレスADDをシフトさせる量を示す情報と言うこともできる。アドレス変換回路13は、アドレスADD1として、f(ADD,PRM)を出力する。
【0062】
図8は、図7の例における、アドレス変換前のアドレスADDで指定されるメモリセルMC(以下、「変換前のメモリセルMC」と表記する)と、アドレス変換後のアドレスADD1で指定されるメモリセルMC(以下、「変換後のメモリセルMC」と表記する)との関係を示す図である。図8では、変換前のメモリセルMCは点線で表され、変換後のメモリセルMCは実線で表されている。
【0063】
図8に示すように、変換関数fによってアドレスADD(“00010...01001”(30ビット))がアドレスADD1(“00010...01100”(30ビット))に変換されたことにより、変換後のメモリセルMCは、変換前のメモリセルMCとは異なるメモリセルMCを指す。
【0064】
1.1.7 変換パラメータ
変換パラメータPRMについて説明する。チップCP毎の変換パラメータPRMは、例えば、以下のように設定される。
【0065】
チップCP毎の変換パラメータPRMは、例えば、チップCP0の変換後のアドレスADD1はアドレスADDからシフトさせず、チップCPk(kは1以上7以下の整数)の変換後のアドレスADD1が、アドレスADDをkだけシフトさせたアドレスになるように設定される。この場合、チップCP0の変換パラメータPRMは0に設定され、チップCPkの変換パラメータPRMはkに設定される。すなわち、チップCP1の変換パラメータPRMは、チップCP0の変換パラメータPRMよりも大きい整数である。チップCP2の変換パラメータPRMは、チップCP1の変換パラメータPRMよりも大きい整数である。また、チップCP1の変換パラメータPRMとチップCP0の変換パラメータPRMとの差は、チップCP2の変換パラメータPRMとチップCP1の変換パラメータPRMとの差に等しい。
【0066】
チップCP毎の変換パラメータPRMは、例えば、チップCP0の変換後のアドレスADD1はアドレスADDからシフトさせず、チップCP1~CP7の変換後のアドレスADD1が、アドレスADDを同一の値(0以外)だけシフトさせたアドレスになるように設定されてもよい。この場合、チップCP0の変換パラメータPRMは0に設定され、チップCP1~CP7の変換パラメータPRMは同一の値(0以外)に設定される。すなわち、チップCP1の変換パラメータPRMは、チップCP0の変換パラメータPRMよりも大きい整数である。チップCP2の変換パラメータPRMは、チップCP1の変換パラメータPRMと同じ値である。
【0067】
チップCP毎の変換パラメータPRMは、例えば、チップCP0の変換後のアドレスADD1はアドレスADDからシフトさせず、チップCP1~CP7の変換後のアドレスADD1が、アドレスADDをランダムな値(0以外)だけシフトさせたアドレスになるように設定されてもよい。この場合、チップCP0の変換パラメータPRMは0に設定され、チップCP1~CP7の変換パラメータPRMはランダムな値(0以外)に設定される。例えば、チップCP1の変換パラメータPRMとチップCP0の変換パラメータPRMとの差は、チップCP2の変換パラメータPRMとチップCP1の変換パラメータPRMとの差とは異なっていてもよい。
【0068】
チップCP0の変換パラメータPRMは、チップCP0の変換後のアドレスADD1が、アドレスADDを任意の値(0以外)だけシフトさせたアドレスになるように設定されてもよい。すなわち、チップCP毎の変換パラメータPRMは、例えば、チップCP0~CP7の変換後のアドレスADD1が、アドレスADDを任意の値(0以外)だけシフトさせたアドレスになるように設定されてもよい。
【0069】
なお、記憶装置3を動作させて、チップCP毎に不良セルMCの情報を取得することができる場合には、取得した不良セルMCの情報に基づいて、チップCP毎の変換パラメータPRMを設定してもよい。
【0070】
1.2 動作
記憶装置3は、設定動作及びアドレス変換動作を行う。設定動作は、例えば、上述したアドレス変換のための各種設定を行う動作である。アドレス変換動作は、アドレス変換を行う動作である。
【0071】
1.2.1 設定動作
設定動作について、図9を用いて説明する。図9は、記憶装置3の設定動作の一例を示すフローチャートである。
【0072】
記憶装置3に電源が投入されると、チップCPの電源がオン状態になる(S100)。
【0073】
チップCPの電源がオン状態になると、制御部4は、ROM6に記憶されている変換フラグFLG及び変換パラメータPRMを取得する。制御部4は、取得した変換パラメータPRMをレジスタ14に記憶する(S101)。これにより、チップCPに変換パラメータPRMが設定される。制御部4は、取得した変換フラグFLGをレジスタ14に記憶する(S102)。これにより、チップCPにおいて、アドレス変換が有効または無効に設定される。
【0074】
1.2.2 アドレス変換動作
アドレス変換動作について、図10を用いて説明する。図10は、記憶装置3(チップCP)のアドレス変換動作の一例を示すフローチャートである。アドレス変換動作は、例えば、書込み動作または読出し動作(複数のチップCPへのアクセス)を行う際に実行される。以下では、書込み動作を実行する場合を例に挙げて説明する。
【0075】
メモリコントローラ2がコマンドCMD(書込み動作のコマンド)及びアドレスADDを送信すると、チップCPは、制御部4を介してメモリコントローラ2からコマンドCMD及びアドレスADDを受信する(S110)。アドレスADDは、入出力回路11を介してアドレス変換回路13に送信される。
【0076】
メモリコントローラ2からアドレスADDを受信すると、アドレス変換回路13は、レジスタ14に記憶されている変換パラメータPRMを取得する。アドレス変換回路13は、取得した変換パラメータPRMに基づいて、アドレス変換動作を実行する(S111)。アドレスADDが変換され、変換後のアドレスADD1は、デコード回路15に送信される。
【0077】
アドレス変換回路13からアドレスADD1を受信すると、デコード回路15は、アドレスADD1をデコードする。デコード回路15は、デコード結果をロウ選択回路16及びカラム選択回路17に送信する。ロウ選択回路16は、デコード結果に基づいて、ワード線WLを選択する。カラム選択回路17は、デコード結果に基づいて、ビット線BLを選択する。これにより、チップCPは、アドレスADD1で指定されるメモリセルMCを選択する(S112)。
【0078】
メモリセルMCが選択されると、書込み・読出し回路19は、選択されたメモリセルMCに対して書込み動作を実行する(S113)。なお、アドレス変換動作は、読出し動作を実行する場合も同様に実行される。
【0079】
1.3 本実施形態に係る効果
第1実施形態によれば、記憶装置3の不良メモリセルの割合である不良率を低減できる。記憶装置3の不良率とは、記憶装置3に含まれる複数のチップCPの全メイン領域MA内の全メモリセルMCに対する不良セルMCの割合を称す。例えば、メモリセルへの書き込み動作、読み出し動作を含め、メモリセルとして必要とされる機能動作を適正に実行することが難しい不良メモリセルの割合などを称す。
本効果について以下に説明する。
【0080】
記憶装置3の出荷前のテストでは、例えば、チップCP毎に、メモリセルアレイ10のメイン領域MA内の不良セルMCを使用不可とし、当該不良セルMCの代わりにメモリセルアレイ10のリダンダンシ領域RA内のリダンダンシセルMCrを使用可とする処理(以下、「リダンダンシ救済」と表記する)が行われる。不良セルMCと、当該不良セルMCの代わりに使用可とされたリダンダンシセルMCrとの対応関係は、リダンダンシ情報RDIとして、例えば、制御部4のROM6にチップCP毎に記憶される。
【0081】
なお、リダンダンシ救済が行われた場合であっても、チップCP内に不良セルMCが残る可能性がある。このため、例えば、メモリコントローラ2のECC回路によって、記憶装置3内の全チップCPの任意の数のメモリセルMCをエラー訂正単位(以下、「ECC単位」と表記する)としてエラー訂正処理が行われる。しかしながら、各チップCPのエラービットの数の合計がECC単位でエラー訂正可能なビット数を超えると、チップCP内にエラー訂正できない不良セルMCが発生する可能性がある。すなわち、チップCP内の不良セルMCを救済できない可能性がある。
【0082】
例えば、記憶装置3に同一のウエハの複数のチップCPが用いられる場合、あるチップCPの任意のアドレスのメモリセルMCが不良セルMCである場合、別のチップCPの同じアドレスのメモリセルMCも不良セルMCである可能性が比較的高い。このような場合に、アドレスADDを変換しない場合、複数のチップCPの同一のアドレスADDで指定されるメモリセルMCに同時にアクセスされる。この場合、上述のように、チップCP内にエラー訂正できない不良セルMCが発生する可能性がある。
【0083】
これに対し、本実施形態に係る記憶装置3は、制御部4及び複数のチップCPを含む。制御部4はROM6を含む。ROM6には、チップCP毎に変換パラメータPRMが記憶されている。チップCPは、アドレス変換回路13を含む。アドレス変換回路13は、変換パラメータPRMに基づいて、アドレスADDを変換する。具体的には、アドレス変換回路13は、変換パラメータPRMを用いて、アドレスADDの指定されたビットを反転させる。アドレス変換回路13は、変換されたアドレスADD1をデコード回路15に送信する。これにより、不良セルMCである可能性が比較的高いメモリセルMCへのアクセスを回避することができる。このため、チップCP内にエラー訂正できない不良セルMCが発生する可能性を低減することができる。よって、ECC単位でのメモリセルMCの最大不良数を低減することができる。また、仮に、メイン領域MA内の全メモリセルMCに対する不良セルの割合が比較的高いチップCPがいくつかあったとしても、記憶装置3全体として不良率を最適化することができる。従って、本実施形態によれば、記憶装置3の不良率を低減させることができる。
【0084】
図11は、比較例の記憶装置と本実施形態の記憶装置3におけるECC回路によるエラー検出結果を示す図である。図11において、点線で示されるワード線WLは、不良のワード線WLを示している。点線で示されるビット線BLは、不良のビット線BLを示している。点線で示される四角は、不良セルMCを示している。実線で示される四角は、正常なメモリセルMCを示している。
【0085】
比較例の記憶装置では、チップCP0~CP7において、アドレスADDを変換せず、同一のアドレスADDに同時にアクセスされる。図11に示すように、比較例の記憶装置内のチップCP0~CP7において、四角はアドレスADDで指定されるメモリセルMCを表している。アドレスADDで指定される8個のメモリセルMCのうち、4個のメモリセルMC(チップCP0、CP1、CP2及びCP4のメモリセルMC)が不良セルMCである。このため、比較例の記憶装置では、ECC回路によって4ビットのエラーが検出される。
【0086】
一方、本実施形態の記憶装置3では、チップCP0~CP7において、アドレス変換回路13でアドレスADDを変換され、変換後のアドレスADD1に同時にアクセスされる。
【0087】
具体的には、アドレス変換回路13は、変換パラメータPRMを用いて、アドレスADDの指定されたビットを反転させる。チップCP0の変換パラメータPRMは、0(“0000”)に設定される。チップCP1の変換パラメータPRMは、1(“0001”)に設定される。チップCP2の変換パラメータPRMは、2(“0010”)に設定される。チップCP3の変換パラメータPRMは、3(“0011”)に設定される。チップCP4の変換パラメータPRMは、4(“0100”)に設定される。チップCP5の変換パラメータPRMは、5(“0101”)に設定される。チップCP6の変換パラメータPRMは、6(“0110”)に設定される。チップCP7の変換パラメータPRMは、7(“0111”)に設定される。チップCP0のアドレスADDは変換されないが、チップCPk+1(kは0以上6以下の整数)のアドレスADDは、チップCPkのアドレスADD1から1だけシフトさせた(チップCPkのアドレスADD1に1を加算した)アドレスADD1に変換される。
【0088】
図11に示すように、本実施形態の記憶装置3内のチップCP0~CP7において、四角はアドレスADD1で指定されるメモリセルMCを表している。アドレスADD1で指定される8個のメモリセルMCのうち、2個のメモリセルMC(チップCP0及びCP2のメモリセルMC)が不良セルMCである。このため、本実施形態の記憶装置3では、ECC回路によって2ビットのエラーが検出される。
【0089】
このように、本実施形態の記憶装置3内のメモリセルMCの不良ビット数は、比較例の記憶装置内のメモリセルMCの不良ビット数よりも少ない。よって、本実施形態によれば、ECC単位でのメモリセルMCの最大不良数を低減することができる。
【0090】
1.4 第1変形例
第1実施形態の第1変形例に係る記憶装置について説明する。第1実施形態の第1変形例に係る記憶装置では、変換関数fが第1実施形態と異なる。以下の説明では、第1実施形態と異なる点を中心に説明する。
【0091】
1.4.1 変換関数
変換関数fは、例えば、変換パラメータPRMに基づいて、アドレスADDで指定されるメモリセルアレイ10のメイン領域MA内の位置を上下左右反転させる関数である。具体的には、例えば、位置の反転は、変換パラメータPRMによって指定される。変換関数fは、変換パラメータPRMに基づいて、アドレスADDで指定される位置を上下左右反転させる。これにより、アドレスADDが変換される。
【0092】
変換関数fの詳細について、図12を用いて説明する。図12は、変換関数fの具体的な処理の一例を説明する図である。
【0093】
レジスタ14には、例えば、変換フラグFLGとして“1”が設定されている。これにより、アドレス変換は有効に設定される。レジスタ14には、例えば、変換パラメータPRMとして“11111...10111”(30ビット)が設定されている。以下、変換パラメータPRMの30ビットをそれぞれp0~p29と表記する。
【0094】
演算回路42は、例えば、30個のXOR回路XRを含む。以下、30個のXOR回路XRをそれぞれXOR回路XR0~XR29と表記し、30個のXOR回路XRの演算結果をそれぞれf(a0,p0)~f(a29,p29)と表記する。
【0095】
演算回路42には、例えば、アドレスADDとして“00000...00000”(30ビット)が入力される。演算回路42は、アドレスADDと変換パラメータPRMとを対応するビット毎にXOR演算する。XOR演算の結果、f(a0,p0)は、ビットa0を反転させた値となる。f(a1,p1)、f(a2,p2)、及びf(a4,p4)~f(a29,p29)も同様である。f(a3,p3)は、ビットa3を反転させない値となる。よって、演算回路42の演算結果f(ADD,PRM)は、アドレスADDと異なるアドレス(“11111...10111”(30ビット))となる。アドレス変換回路13は、アドレスADD1として、f(ADD,PRM)を出力する。
【0096】
図13は、図12の例における変換前のメモリセルMCと変換後のメモリセルMCとの関係を示す図である。図13では、変換前のメモリセルMCは点線で表され、変換後のメモリセルMCは実線で表されている。
【0097】
図13に示すように、変換関数fによってアドレスADD(“00000...00000”(30ビット))がアドレスADD1(“11111...10111”(30ビット))に変換されたことにより、変換後のメモリセルMCは、変換前のメモリセルMCとは異なるメモリセルMCを指す。また、メイン領域MAにおいて、変換後のメモリセルMCは、変換前のメモリセルMCの位置を上下左右反転させた位置にある。
【0098】
図14は、変換関数fの具体的な処理の他の一例を説明する図である。図14では、アドレスADDの値を除いて、図12の例と同様である。
【0099】
演算回路42には、例えば、アドレスADDとして“10000...00000”(30ビット)が入力される。演算回路42は、アドレスADDと変換パラメータPRMとを対応するビット毎にXOR演算する。XOR演算の結果、f(a0,p0)は、ビットa0を反転させた値となる。f(a1,p1)、f(a2,p2)、及びf(a4,p4)~f(a29,p29)も同様である。f(a3,p3)は、ビットa3を反転させない値となる。よって、演算回路42の演算結果f(ADD,PRM)は、アドレスADDと異なるアドレス(“01111...10111”(30ビット))となる。アドレス変換回路13は、アドレスADD1として、f(ADD,PRM)を出力する。
【0100】
図15は、図14の例における変換前のメモリセルMCと変換後のメモリセルMCとの関係を示す図である。図15では、変換前のメモリセルMCは点線で表され、変換後のメモリセルMCは実線で表されている。
【0101】
図15に示すように、変換関数fによってアドレスADD(“10000...00000”(30ビット))がアドレスADD1(“01111...10111”(30ビット))に変換されたことにより、変換後のメモリセルMCは、変換前のメモリセルMCとは異なるメモリセルMCを指す。また、メイン領域MAにおいて、変換後のメモリセルMCは、変換前のメモリセルMCの位置を上下左右反転させた位置にある。
【0102】
1.4.2 本変形例に係る効果
本変形例によれば、第1実施形態と同様の効果を奏する。
【0103】
1.5 第2変形例
第1実施形態の第2変形例に係る記憶装置について説明する。第1実施形態の第2変形例に係る記憶装置では、制御部4、アドレス変換回路13、及び変換関数fが第1実施形態と異なる。以下の説明では、第1実施形態と異なる点を中心に説明する。
【0104】
1.5.1 変換パラメータ
制御部4のROM6にチップCP毎に記憶されている変換パラメータPRMは更に、バンクBK毎に記憶される。すなわち、ROM6には、チップCP毎に変換パラメータPRM0~PRMiが記憶されている。変換パラメータPRM0~PRMiは、バンクBK0~BKiにそれぞれ対応する。チップCP毎の変換パラメータPRM0~PRMiは、第1実施形態と同様に設定される。以下では、説明を簡単にするために、バンクBKの数が2個である場合、すなわちROM6にチップCP毎に変換パラメータPRM0及びPRM1が記憶されている場合を例に挙げて説明する。
【0105】
1.5.2 アドレス変換回路の構成
アドレス変換回路13の構成について、図16を用いて説明する。図16は、アドレス変換回路13の構成の一例を示す回路図である。図16は、アドレス変換回路13とともに、入出力回路11、レジスタ14、及びデコード回路15も示している。
【0106】
図16に示すように、アドレス変換回路13は、第1実施形態で示した構成に加えて、マルチプレクサ43を含む。
【0107】
マルチプレクサ43は、変換パラメータPRM0及びPRM1のいずれかを選択する回路である。マルチプレクサ43は、入出力回路11、レジスタ14、及び演算回路42に接続される。マルチプレクサ43は、入出力回路11からアドレスADDを受信する。マルチプレクサ43は、レジスタ14から変換パラメータPRM0及びPRM1を受信する。マルチプレクサ43は、アドレスADDに基づいて、変換パラメータPRM0及びPRM1のいずれかを選択する。例えば、アドレスADDは、最上位ビットが“0”である場合、バンクBK0内のアドレスであると規定され、最上位ビットが“1”である場合、バンクBK1内のアドレスと規定される。
【0108】
アドレスADDの最上位ビットが“0”である場合、マルチプレクサ43は、変換パラメータPRM0を選択する。アドレスADDの最上位ビットが“1”である場合、マルチプレクサ43は、変換パラメータPRM1を選択する。マルチプレクサ43は、選択した変換パラメータPRM0またはPRM1を演算回路42に送信する。
【0109】
1.5.3 変換関数
変換関数fは、例えば、変換パラメータPRMiに基づいて、バンクBKi内のアドレスADDの任意のビットの“0”と“1”を反転させる関数である。具体的には、例えば、アドレスADDの全ビットのうちの反転させるビットは、変換パラメータPRMiによって指定される。変換関数fは、変換パラメータPRMiを用いて、バンクBKi内のアドレスADDの指定されたビットを反転させる。これにより、バンクBKi毎にアドレスADDが変換される。
【0110】
変換関数fの詳細について、図17を用いて説明する。図17は、変換関数fの具体的な処理の一例を説明する図である。
【0111】
レジスタ14には、例えば、変換フラグFLGとして“1”が設定されている。これにより、アドレス変換は有効に設定される。レジスタ14には、例えば、変換パラメータPRM0として“0101”(4ビット)が設定されている。レジスタ14には、例えば、変換パラメータPRM1として“0010”(4ビット)が設定されている。
【0112】
マルチプレクサ43には、例えば、バンクBK0内のアドレスADDとして“00010...01001”(30ビット)が入力される。マルチプレクサ43には、変換パラメータPRM0として“0101”(4ビット)が入力される。マルチプレクサ43には、変換パラメータPRM1として“0010”(4ビット)が入力される。マルチプレクサ43は、アドレスADDに基づいて、変換パラメータPRM0を選択する。マルチプレクサ43は、変換パラメータPRM0を演算回路42に送信する。
【0113】
演算回路42には、バンクBK0内のアドレスADDとして“00010...01001”(30ビット)が入力される。演算回路42は、例えば、アドレスADDの下位4ビットと変換パラメータPRM0とを対応するビット毎にXOR演算する。XOR演算の結果、f(a0,p0)は、ビットa0を反転させた値となる。f(a1,p1)は、ビットa1を反転させない値となる。f(a2,p2)は、ビットa2を反転させた値となる。f(a3,p3)は、ビットa3を反転させない値となる。よって、演算回路42の演算結果f(ADD,PRM)は、アドレスADDと異なるアドレス(“00010...01100”(30ビット))となる。換言すると、f(ADD,PRM)は、アドレスADDから5だけシフトさせた(アドレスADDに5を加算した)アドレスとなる。アドレス変換回路13は、アドレスADD1として、f(ADD,PRM)を出力する。
【0114】
図18は、図17の例における変換前のメモリセルMCと変換後のメモリセルMCとの関係を示す図である。図18では、変換前のメモリセルMCは点線で表され、変換後のメモリセルMCは実線で表されている。
【0115】
図18に示すように、変換関数fによってアドレスADD(“00010...01001”(30ビット))がアドレスADD1(“00010...01100”(30ビット))に変換されたことにより、バンクBK0において、変換後のメモリセルMCは、変換前のメモリセルMCとは異なるメモリセルMCを指す。
【0116】
図19は、変換関数fの具体的な処理の他の一例を説明する図である。図19では、アドレスADDの値を除いて、図17の例と同様である。
【0117】
マルチプレクサ43には、例えば、バンクBK1内のアドレスADDとして“10111...01101”(30ビット)が入力される。マルチプレクサ43は、アドレスADDに基づいて、変換パラメータPRM1を選択する。マルチプレクサ43は、変換パラメータPRM1を演算回路42に送信する。
【0118】
演算回路42には、バンクBK1内のアドレスADDとして“10111...01101”(30ビット)が入力される。演算回路42は、例えば、アドレスADDの下位4ビットと変換パラメータPRM1とを対応するビット毎にXOR演算する。XOR演算の結果、f(a0,p0)は、ビットa0を反転させない値となる。f(a1,p1)は、ビットa1を反転させた値となる。f(a2,p2)は、ビットa2を反転させない値となる。f(a3,p3)は、ビットa3を反転させない値となる。よって、演算回路42の演算結果f(ADD,PRM)は、アドレスADDと異なるアドレス(“10111...01111”(30ビット))となる。換言すると、f(ADD,PRM)は、アドレスADDから2だけシフトさせた(アドレスADDに2を加算した)アドレスとなる。アドレス変換回路13は、アドレスADD1として、f(ADD,PRM)を出力する。
【0119】
図20は、図19の例における変換前のメモリセルMCと変換後のメモリセルMCとの関係を示す図である。図20では、変換前のメモリセルMCは点線で表され、変換後のメモリセルMCは実線で表されている。
【0120】
図20に示すように、変換関数fによってアドレスADD(“10111...01101”(30ビット))がアドレスADD1(“10111...01111”(30ビット))に変換されたことにより、バンクBK1において、変換後のメモリセルMCは、変換前のメモリセルMCとは異なるメモリセルMCを指す。
【0121】
1.5.4 本変形例に係る効果
本変形例によれば、第1実施形態と同様の効果を奏する。
【0122】
2. 第2実施形態
第2実施形態に係る記憶装置について説明する。第2実施形態に係る記憶装置では、チップCPの構成が第1実施形態と異なる。以下の説明では、第1実施形態と異なる点を中心に説明する。
【0123】
2.1 リダンダンシ情報
制御部4のROM6には、チップCP毎にリダンダンシ情報(テーブル)RDIが記憶されている。リダンダンシ情報RDIについて、図21を用いて説明する。図21は、リダンダンシ情報RDIの一例を示す概念図である。
【0124】
リダンダンシ情報RDIは、使用不可とされた不良セルMCのアドレスと、当該不良セルMCの代わりに使用可とされたリダンダンシセルMCrのアドレスとを記憶する。図21に示すように、リダンダンシ情報RDIの各エントリは、不良セルMCのアドレスとリダンダンシセルMCrのアドレスとを含む。
【0125】
2.2 チップの構成
チップCPの構成について、図22を用いて説明する。図22は、チップCPの構成の一例を示すブロック図である。
【0126】
入出力回路11は、バス5を介して制御部4から、制御信号CNT、コマンドCMD、アドレスADD、データ(書込みデータ)DAT、変換フラグFLG、及び変換パラメータPRMに加えて、リダンダンシ情報RDIを受信する。入出力回路11は、変換フラグFLG及び変換パラメータPRMに加えて、リダンダンシ情報RDIをレジスタ14に送信する。
【0127】
レジスタ14は、入出力回路11から変換フラグFLG及び変換パラメータPRMに加えて、リダンダンシ情報RDIを受信する。
【0128】
チップCPは、第1実施形態で示した構成に加えて、リダンダンシ判定回路20を含む。
【0129】
リダンダンシ判定回路20は、アドレス変換回路13から送信されたアドレスADD1に対してリダンダンシ判定を行う回路である。リダンダンシ判定とは、例えば、アドレス変換回路13で変換されたアドレスADD1で指定されるメモリセルMCが不良セルMCであるか否かを判定する処理である。
【0130】
リダンダンシ判定回路20は、アドレス変換回路13からアドレスADD1を受信する。リダンダンシ判定回路20は、レジスタ14からリダンダンシ情報RDIを取得する。リダンダンシ判定回路20は、リダンダンシ情報RDI内を探索する。リダンダンシ情報RDI内に、アドレスADD1が不良セルMCのアドレスとして存在する場合、リダンダンシ判定回路20は、アドレスADD1で指定されるメモリセルMCが不良セルMCであり、リダンダンシセルMCrに置き換えられていると判定する。この場合、リダンダンシ判定回路20は、リダンダンシ情報RDI内のアドレスADD1に対応するリダンダンシセルMCrのアドレスをアドレスADD2としてデコード回路15に送信する。他方で、リダンダンシ情報RDI内に、アドレスADD1が不良セルMCのアドレスとして存在しない場合、リダンダンシ判定回路20は、アドレスADD1で指定されるメモリセルMCが不良セルMCではないと判定する。この場合、リダンダンシ判定回路20は、アドレスADD1をアドレスADD2としてデコード回路15に送信する。
【0131】
2.3 リダンダンシ判定動作
記憶装置3は、アドレス変換動作に加えて、リダンダンシ判定動作を行う。リダンダンシ判定動作は、上述したリダンダンシ判定を行う動作である。リダンダンシ判定動作は、例えば、アドレス変換動作の後に実行される。
【0132】
リダンダンシ判定動作について、図23を用いて説明する。図23は、記憶装置3(チップCP)のリダンダンシ判定動作の一例を示すフローチャートである。リダンダンシ判定動作は、例えば、書込み動作または読出し動作(複数のチップCPへのアクセス)を行う際に実行される。以下では、書込み動作を実行する場合を例に挙げて説明する。図23では、第1実施形態で示した図10のステップS111とS112との間にステップS121が追加されている。
【0133】
第1実施形態と同様にステップS111が実行されると、リダンダンシ判定回路20は、リダンダンシ判定動作を実行する(S121)。リダンダンシ判定動作実行後、リダンダンシ判定回路20は、リダンダンシ判定動作によって得られたアドレスADD2をデコード回路15に送信する。アドレスADD2が送信された後、第1実施形態と同様に、ステップS112及びS113が実行される。なお、リダンダンシ判定動作は、読出し動作を実行する場合も同様に実行される。
【0134】
2.4 本実施形態に係る効果
本実施形態によれば、第1実施形態と同様の効果を奏する。
【0135】
また、アドレス変換動作実行後、変換後のアドレスADD1がリダンダンシ情報RDI内の不良セルMCのアドレスである可能性がある。本実施形態に係る記憶装置3は、リダンダンシ判定回路20を含む。制御部4のROM6には、チップCP毎にリダンダンシ情報RDIが記憶されている。リダンダンシ判定回路20は、アドレス変換回路13で変換されたアドレスADD1で指定されるメモリセルMCが不良セルMCであるか否かを判定する。リダンダンシ情報RDI内に、アドレスADD1が不良セルMCのアドレスとして存在する場合、リダンダンシ判定回路20は、リダンダンシ情報RDI内のアドレスADD1に対応するリダンダンシセルMCrのアドレスをアドレスADD2としてデコード回路15に送信する。他方で、リダンダンシ情報RDI内に、アドレスADD1が不良セルMCのアドレスとして存在しない場合、リダンダンシ判定回路20は、アドレスADD1をアドレスADD2としてデコード回路15に送信する。これにより、リダンダンシ情報RDI内に不良セルMCとして記憶されているメモリセルMCへのアクセスを回避することができる。もちろん、本実施形態に係る記憶装置3に、第1実施形態の第1変形例及び第2変形例を適用することもできる。
【0136】
3. 変形例等
上記のように、実施形態に係る記憶装置は、複数の第1メモリセル(MC)と、変換関数(f)を用いてアドレス変換を行う第1回路(13)とを含む、第1メモリチップ(CP0)と、第1メモリチップ(CP0)に接続される第2回路(4)とを含む。第2回路(4)は、第1パラメータ(PRM)を第1メモリチップ(CP0)に設定する。第2回路(4)から第1メモリチップ(CP0)に第1アドレス(ADD)が送信され、第1メモリチップ(CP0)にアクセスされるとき、第1メモリチップ(CP0)において、第1アドレス(ADD)は、第1パラメータ(PRM)を用いた変換関数(f)によって第2アドレス(ADD1)に変換され、第2アドレス(ADD1)で指定される複数の第1メモリセル(MC)のうちの1つにアクセスされる。
【0137】
なお、実施形態は上記説明した形態に限定されるものではなく、種々の変形が可能である。
【0138】
また、上記実施形態で説明したフローチャートは、その処理の順番を可能な限り入れ替えることができる。
【0139】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0140】
1…メモリシステム、2…メモリコントローラ、3…記憶装置、4…制御部、5…バス、6…ROM、10…メモリセルアレイ、11…入出力回路、12…制御回路、13…アドレス変換回路、14…レジスタ、15…デコード回路、16…ロウ選択回路、17…カラム選択回路、18…電圧生成回路、19…書込み・読出し回路、20…リダンダンシ判定回路、31…強磁性体、32…非磁性体、33…強磁性体、41…スイッチ回路、42…演算回路、43…マルチプレクサ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23