(57)【要約】【課題】回路サイズの縮小化が可能な半導体記憶装置を提供する。【解決手段】データ書き込みが所定論理値に制限される多数の不揮発性メモリセルＭＣを備えて、各々独立してアクセス制御の対象とされる複数のメモリコアＭ１〜Ｍ４を備える。各メモリコアは、フラグセルＦＣとデータセルＤＣとから構成される。判定器３０及び切替えセレクタ４０は、フラグセルＦＣのデータに基づいて、アクセス制御の対象となるメモリコアを選択する。【選択図】図１
2008123643.tif 000002
【特許請求の範囲】
【請求項１】
データ書き込みが所定論理値に制限される多数の不揮発性メモリセルを備えて、各々独立してアクセス制御の対象とされる複数のメモリコアと、
前記アクセス制御の対象となる前記メモリコアを選択するアクセス制御手段と、を備え、
前記各メモリコアを構成する前記不揮発性メモリセルは、フラグ値が書き込まれるフラグセルと、データが書き込まれるデータセルとからなり、
前記アクセス制御手段は、前記フラグセルのフラグ値に基づいて、前記アクセス制御の対象となる前記メモリコアを選択することを特徴とする半導体記憶装置。
【請求項２】
前記アクセス制御手段は、
書き込み動作時に、前記メモリコアを不可逆な所定順序で選択するとともに、読み出し動作時に、前記メモリコアを前記書き込み動作と同一の所定順序で選択し、
所定の前記メモリコアに第１のデータが書き込まれた状態で、第２のデータが入力されたときに、前記第１のデータが書き込まれた前記所定のメモリコアのフラグセルに所定論理値を書き込むことで、該所定のメモリコアをアクセス不能状態に設定するとともに、前記所定順序で選択される次のメモリコアに対して前記第２のデータの書き込みを行うようにしたことを特徴とする請求項１に記載の半導体記憶装置。
【請求項３】
前記フラグセルは、第１フラグセルと第２フラグセルとから構成され、
前記アクセス制御手段は、
書き込み動作時に、前記メモリコアを不可逆な所定順序で選択するとともに、読み出し動作時に、前記メモリコアを前記書き込み動作と同一の所定順序で選択し、
前記メモリコアにデータを書き込むときに、該データのビット幅を示すフラグ値を第２フラグセルに書き込むとともに、前記データを前記所定のメモリコアのデータセルに書き込み、
所定の前記メモリコアに第１のデータが書き込まれた状態で、第２のデータが入力されたときに、前記第１のデータが書き込まれた前記所定のメモリコアの第１フラグセルに所定論理値を書き込むことで、該所定のメモリコアをアクセス不能状態に設定するとともに、前記所定順序で選択される次のメモリコアに対して前記第２のデータの書き込みを行うようにしたことを特徴とする請求項１に記載の半導体記憶装置。
【請求項４】
前記アクセス制御手段は、
書き込み動作時に、前記メモリコアを不可逆な所定順序で選択するとともに、読み出し動作時に、前記メモリコアを前記書き込み動作と同一の所定順序で選択し、
所定の前記メモリコアのデータセルにデータを書き込むときに、該所定のメモリコアのフラグセルに所定論理値を書き込むことで、該所定のメモリコアをデータ読み出し可能状態に設定することを特徴とする請求項１に記載の半導体記憶装置。
【請求項５】
前記アクセス制御手段は、
書き込み動作時に、前記メモリコアを不可逆な所定順序で選択するとともに、読み出し動作時に、前記メモリコアを前記書き込み動作と反対の不可逆な所定順序で選択し、
前記メモリコアのデータセルに第１のデータを書き込むときに、該第１のデータの書き込み終了時において選択されるメモリコアのフラグセルに所定論理値を書き込むことで、該書き込み終了時において選択されるメモリコアをデータ読み出し開始位置に設定するとともに、該第１のデータの前に書き込まれた第２のデータを書き込むときに所定論理値が書き込まれたフラグセルを含むメモリコアをデータ読み出し終了位置に設定することを特徴とする請求項１に記載の半導体記憶装置。
【請求項６】
データ書き込みが所定論理値に制限される多数の不揮発性メモリセルを備える複数のメモリコアを備える半導体記憶装置の制御方法において、
前記メモリコア内の前記不揮発性メモリセルからなるフラグセルのフラグ値に基づいて、アクセス制御の対象となる前記メモリコアを選択することを特徴とする半導体記憶装置の制御方法。
【請求項７】
前記メモリコアを、不可逆な所定順序で選択して書き込み動作を行うとともに、前記メモリコアを、前記書き込み動作と同一の所定順序で選択して読み出し動作を行って、
所定のメモリコア内のデータセルに既に第１のデータが書き込まれている半導体記憶装置に、第２のデータが入力されたときに、前記第１のデータが書き込まれた前記所定のメモリコア内のフラグセルに所定論理値を書き込むことで、該所定のメモリコアをアクセス不能状態に設定して、前記所定順序で選択される次のメモリコアに対して前記第２のデータの書き込みを行うことを特徴とする請求項６に記載の半導体記憶装置の制御方法。
【請求項８】
前記メモリコアを、不可逆な所定順序で選択して書き込み動作を行うとともに、前記メモリコアを、前記書き込み動作と同一の所定順序で選択して読み出し動作を行って、
所定の前記メモリコアにデータを書き込むときに、該データのビット幅を示すフラグ値を該所定のメモリコア内の第２フラグセルに書き込むとともに、該データを前記所定のメモリコア内のデータセルに書き込み、
前記所定のメモリコアに第１のデータが書き込まれている半導体記憶装置に、第２のデータが入力されたときに、前記第１のデータが書き込まれた前記所定のメモリコア内の第１フラグセルに所定論理値を書き込むことで、該所定のメモリコアをアクセス不能状態に設定して、前記所定順序で選択される次のメモリコアに対して前記第２のデータの書き込みを行うことを特徴とする請求項６に記載の半導体記憶装置の制御方法。
【請求項９】
前記メモリコアを、不可逆な所定順序で選択して書き込み動作を行うとともに、前記メモリコアを、前記書き込み動作と同一の所定順序で選択して読み出し動作を行って、
所定の前記メモリコア内のデータセルにデータを書き込むときに、該所定のメモリコアのフラグセルに所定論理値を書き込むことで、該所定のメモリコアをデータ読み出し可能状態に設定することを特徴とする請求項６に記載の半導体記憶装置。
【請求項１０】
前記メモリコアを、不可逆な所定順序で選択して書き込み動作を行うとともに、前記メモリコアを、前記読み出し動作と反対の不可逆な所定順序で選択して読み出し動作を行って、
前記メモリコアのデータセルに第１のデータを書き込むときに、該第１のデータの書き込み終了時において選択されるメモリコアのフラグセルに所定論理値を書き込むことで、該書き込み終了時において選択されるメモリコアをデータ読み出し開始位置に設定するとともに、該第１のデータの前に書き込まれた第２のデータを書き込むときに所定論理値が書き込まれたフラグセルを含むメモリコアをデータ読み出し終了位置に設定することを特徴とする請求項６に記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶装置および半導体記憶装置の制御方法に関するものである。
半導体集積回路には、各種の設定値を保存するために、ＥＥＰＲＯＭやフラッシュメモリ等の不揮発性半導体記憶装置を備えたものがある。このような不揮発性半導体記憶装置では、データを消去するために負電圧印加回路や消去電圧印加回路等の回路が必要となる。この負電圧印加回路が容量を内蔵しており、その回路サイズが大きくなるため、不揮発性半導体記憶装置の回路サイズの縮小化が妨げられていた。
【背景技術】
【０００２】
従来、半導体集積回路には、各種の設定値を保存するために、ＥＥＰＲＯＭやフラッシュメモリ等の不揮発性半導体記憶装置を備えたものがある。例えば、特許文献１には、書き換え可能な不揮発性メモリを備え、該不揮発性メモリに調整用データを書き込む半導体集積回路が開示されている。不揮発性メモリは、例えば特許文献２に開示されているように、メモリアレイを構成する各ワ−ド線Ｗ１〜Ｗ４に接続され、消去時に負の電圧を各ワード線Ｗ１〜Ｗ４に印加する負電圧印加回路ＮＥＧと、浮遊ゲートを有するメモリセルＭ１〜Ｍ１６に対して消去時に正の電圧を印加する消去電圧印加回路ＥＤを備えている。メモリセルＭ１〜Ｍ１６のデータ消去は、各メモリセルＭ１〜Ｍ１６の制御ゲ−トに負の電圧、ソ−スに正の電圧を印加して、この正負電圧の電位差によって浮遊ゲ−トに保持されている電子をファウラ−・ノルトハイム・トンネル放出によってソ−ス領域へ引き抜くことで行われる。
【特許文献１】特開２００５−２０３４９号公報（第１図）
【特許文献２】特開２００２−１１８１８７号公報（第５図）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、記憶するデータの量に応じてメモリの容量が設定される。ＬＳＩのモード設定値や、ＰＬＬ回路におけるクロック周波数の設定値等のデータは少量であるため、少量の不揮発性半導体記憶装置を半導体集積回路に備えればよい。しかしながら、不揮発性半導体記憶装置は、消去時に負の電圧を印加する負電圧印加回路ＮＥＧおよび消去電圧印加回路ＥＤが必要とされる。そして負電圧印加回路ＮＥＧは容量を内蔵しており、回路サイズが大きくなる。つまり、不揮発性半導体記憶装置の全体の回路面積に対して、負電圧印加回路が占める面積の割合が大きくなる。このため、不揮発性半導体記憶装置の回路サイズ縮小化が妨げられ、また省電力化を図ることができないという問題がある。
【０００４】
本発明は上記問題点を解決するためになされたものであって、その目的は、回路サイズの縮小化が可能な半導体記憶装置を提供することにある。
【課題を解決するための手段】
【０００５】
上記目的を達成するため、請求項１に記載の発明は、データ書き込みが所定論理値に制限される多数の不揮発性メモリセルを備えて、各々独立してアクセス制御の対象とされる複数のメモリコアと、前記アクセス制御の対象となる前記メモリコアを選択するアクセス制御手段と、を備え、前記各メモリコアを構成する前記不揮発性メモリセルは、フラグ値が書き込まれるフラグセルと、データが書き込まれるデータセルとからなり、前記アクセス制御手段は、前記フラグセルのフラグ値に基づいて、前記アクセス制御の対象となる前記メモリコアを選択する。
【０００６】
また、請求項６に記載の発明は、データ書き込みが所定論理値に制限される多数の不揮発性メモリセルを備える複数のメモリコアを備える半導体記憶装置の制御方法において、前記メモリコア内の前記不揮発性メモリセルからなるフラグセルのフラグ値に基づいて、アクセス制御の対象となる前記メモリコアを選択する。
【０００７】
これらの構成によれば、データ書き込みが所定論理値に制限される多数の不揮発性メモリセルから構成される各メモリコアは、各々独立してアクセス制御の対象とされ、そのアクセス制御の対象となるメモリコアを、メモリコア内のフラグセルのデータに基づいて選択する。ここで、データ書き込みが所定論理値に制限される不揮発性メモリとは、例えば所定論理値「１」のみが書き込み可能なセルが挙げられる。すなわち、この場合、「０」から「１」へのデータ書き込みができるものの、「０」から「１」へのデータ書き込みができない。従って、ブランク状態であるデータセルの「０」に所定論理値「１」を１度書き込むと、そのデータ「１」を「０」に書き換えることができない。上記構成によれば、データセルのデータを「１」から「０」に書き換えたいとき、すなわち新たなデータを書き込みたいときに、アクセス制御の対象となるメモリコアとしてブランク状態であるメモリコアを選択することができる。これによって、擬似的に消去動作を行うことができる。さらに、そのメモリコア内のデータセルに新たなデータを書き込むことができる。従って、消去動作が行われた上で、新たなデータの書き込みを行う、いわゆるデータの書き換えを擬似的に行うことができる。
【０００８】
これにより、データを消去するために必要な負電圧印加回路等を設けずとも、半導体記憶装置のデータを擬似的に書き換えることができる。従って、大きな回路面積を占める負電圧印加回路等が不要となるため、回路サイズを縮小化することができる。
【０００９】
なお、当然のことながら、データ書き込みが所定論理値に制限される不揮発性メモリを、所定論理値「０」のみが書き込み可能なセルとしてもよい。
請求項２，７に記載の発明は、前記メモリコアを、不可逆な所定順序で選択して書き込み動作を行うとともに、前記メモリコアを、前記書き込み動作と同一の所定順序で選択して読み出し動作を行って、所定のメモリコア内のデータセルに既に第１のデータが書き込まれている半導体記憶装置に、第２のデータが入力されたときに、前記第１のデータが書き込まれた前記所定のメモリコア内のフラグセルに所定論理値を書き込むことで、該所定のメモリコアをアクセス不能状態に設定して、前記所定順序で選択される次のメモリコアに対して第２のデータの書き込みを行う。
【００１０】
上記構成によれば、第１のデータが所定のメモリコアに書き込まれている半導体記憶装置に、第２のデータが入力されたときに、所定のメモリコアのフラグセルに所定論理値を書き込むことで、そのメモリコアをアクセス不能状態とした。次に、アクセス制御の対象となるメモリコアとして所定順序の次のメモリコアを選択する。上記所定のメモリコアがアクセス不能状態とされて、そのメモリコアに書き込まれたデータが読み出されることがないため、このようなメモリコアの選択切替によって、上記所定のメモリコアのデータを擬似的に消去することができる。さらに、第２のデータを、所定のメモリコアの次のメモリコアに書き込むことができるため、消去動作が行われた上で、新たなデータの書き込みを行う、いわゆるデータの書き換えを擬似的に行うことができる。
【００１１】
これにより、データを消去するために必要な負電圧印加回路等を設けずとも、半導体記憶装置のデータを擬似的に書き換えることができる。従って、大きな回路面積を占める負電圧印加回路等が不要となるため、回路サイズを縮小化することができる。
【００１２】
請求項３，８に記載の発明は、前記メモリコアを、不可逆な所定順序で選択して書き込み動作を行うとともに、前記メモリコアを、前記書き込み動作と同一の所定順序で選択して読み出し動作を行って、所定の前記メモリコアにデータを書き込むときに、該データのビット幅を示すフラグ値を該所定のメモリコア内の第２フラグセルに書き込むとともに、該データを前記所定のメモリコア内のデータセルに書き込み、前記所定のメモリコアに前記第１のデータが書き込まれている半導体記憶装置に、第２のデータが入力されたときに、前記第１のデータが書き込まれた前記所定のメモリコア内の第１フラグセルに所定論理値を書き込むことで、該所定のメモリコアをアクセス不能状態に設定して、前記所定順序で選択される次のメモリコアに対して第２のデータの書き込みを行う。
【００１３】
上記構成によれば、データセルに書き込まれるデータのビット幅を示すフラグ値が第２フラグセルに書き込まれるため、第２フラグセルのフラグ値に基づいてデータのビット幅を判断して、書き込み動作及び読み出し動作を行うことができる。従って、異なる複数のビット幅のデータを取り扱うことができる。例えば、第２フラグセルが１つのメモリセルから構成されると、２種類のビット幅のデータを取り扱うことができ、第２フラグセルが２つのメモリセルから構成されると、最大４種類のビット幅のデータを取り扱うことができる。
【００１４】
請求項４，９に記載の発明は、前記メモリコアを、不可逆な所定順序で選択して書き込み動作を行うとともに、前記メモリコアを、前記書き込み動作と同一の所定順序で選択して読み出し動作を行って、所定の前記メモリコア内のデータセルにデータを書き込むときに、該所定のメモリコアのフラグセルに所定論理値を書き込むことで、該所定のメモリコアをデータ読み出し可能状態に設定する。
【００１５】
上記構成によれば、データを書き込む度に、フラグセルに所定論理値を書き込んでそのメモリコアをデータ読み出し可能状態にした。従って、読み出し時には、書き込まれたデータをまとめて読み出すことができる。従って、データを追加して書き込むことによって、データのビット幅を変更することができ、擬似的にデータを書き換えることができる。この書き換えに際して、データを消去するために必要であって大きな回路面積を占める負電圧印加回路等が不要であるため、回路サイズを縮小化することができる。
【００１６】
請求項５，１０に記載の発明は、前記メモリコアを、不可逆な所定順序で選択して書き込み動作を行うとともに、前記メモリコアを、前記読み出し動作と反対の不可逆な所定順序で選択して読み出し動作を行って、前記メモリコアのデータセルに第１のデータを書き込むときに、該第１のデータの書き込み終了時において選択されるメモリコアのフラグセルに所定論理値を書き込むことで、該書き込み終了時において選択されるメモリコアをデータ読み出し開始位置に設定するとともに、該第１のデータの前に書き込まれた第２のデータを書き込むときに所定論理値が書き込まれたフラグセルを含むメモリコアをデータ読み出し終了位置に設定する。
【００１７】
上記構成によれば、書き込み時の選択順序と読み出しの選択順序を反対として、書き込み終了時のメモリコアを読み出し開始位置とした。従って、読み出し時の選択順序では、最も新しくデータが書き込まれたメモリコアのフラグセルの所定論理値に基づいて、データ読み出しを開始することができる。さらに、書き込み終了時に、これまで読み出し開始位置であったメモリコアが読み出し終了位置に設定されるため、そのメモリコアのフラグセルの所定論理値に基づいて、データ読み出しを終了することができる。従って、最も新しく書き込まれたデータのみを読み出すことができる。そのため、最も新しく書き込まれたデータの前に書き込まれたデータが消去されたとみなす上で、新たなデータの書き込みを行うことができる。従って、データの書き換えを擬似的に行うことができる。
【００１８】
さらに、書き込み終了時にフラグセルに所定値を書き込むことによって、そのメモリセルを読み出し開始位置とし、さらにこれまで読み出し開始位置であったメモリセルを読み出し終了位置とすることができるため、書き込まれるデータのビット幅を自由に変更することができる。そのため、複数のメモリコアのデータセルに渡ってデータが書き込まれても、それらのデータをまとめて読み出すことができる。
【発明の効果】
【００１９】
以上説明したように、本発明によれば、回路サイズの縮小化が可能な半導体記憶装置を提供することができる。
【発明を実施するための最良の形態】
【００２０】
（第１実施形態）
以下、本発明を具体化した一実施形態を図１〜図４に従って説明する。
図１に示すように、半導体記憶装置１は、メモリ部１１と、デコーダ２０と、判定器３０と、Ｒｅａｄ／Ｗｒｉｔｅ切替えセレクタ（切替えセレクタ）４０と、コマンドレジスタ５０と、データレジスタとを備えている。
【００２１】
半導体記憶装置１のメモリ部１１は、多数のメモリセルＭＣが行方向と列方向に配列されて構成されている。行方向に並設されたメモリセルＭＣによって各メモリコアＭ１〜Ｍ４が構成されている。換言すると、複数のメモリコアＭ１〜Ｍ４が列方向に並設されている。このメモリコアＭ１〜Ｍ４の各々は、ワード線を切替えるためのフラグ値が書き込まれるフラグセルＦＣ（図１中において最も左側のメモリセル）と、複数（本実施形態では８つ）のデータセルＤＣとにより構成されている。図１中のメモリセルＭＣ内の数字は、そのメモリセルＭＣが保持するデータ（ビット値）を示しており、データセルＤＣの「０」はブランク状態を示している。すなわち、図１のメモリ部１１は、全てのデータセルＤＣがブランク状態である半導体記憶装置の初期状態を示している。また、フラグセルＦＣの「０」（フラグ値）は、そのフラグセルＦＣを含むメモリコアがアクセス可能状態であることを示し、フラグセルＦＣの「１」（フラグ値）は、そのフラグセルＦＣを含むメモリコアがアクセス不能状態であることを示す。なお、本実施形態のメモリセルＭＣは、データ書き込みが所定論理値に制限される不揮発性メモリセルであって、プログラム動作（例えば、ビット値「０」から「１」への書き換え）のみが可能とされ、消去動作（例えば、ビット値「１」から「０」への書き換え）は不可とされる。
【００２２】
メモリコアＭ１〜Ｍ４は、メモリ部１１を行方向に貫通するように設けられたワード線ＷＬ０〜ＷＬ３にそれぞれ接続されている。この各ワード線ＷＬ０〜ＷＬ３はデコーダ２０に接続されている。また、列方向に並設されたメモリセルＭＣは、メモリ部１１を列方向に貫通するように設けられたビット線ＢＬに接続されている。この各ビット線ＢＬは切替えセレクタ４０に接続されている。なお、ワード線ＷＬ０〜ＷＬ３におけるＷＬの後の数字「０」〜「３」は、ワード線番号を示している。すなわち、ワード線ＷＬ０は、ワード線番号が「０」であるということを示している。
【００２３】
上記デコーダ２０及び切替えセレクタ４０に接続される判定器３０と接続されているコマンドレジスタ５０には、書き込み信号あるいは読み出し信号が入力される。コマンドレジスタ５０には、複数ビット（本実施形態では、８ビット）のシリアルデータである入力データＤｉｎが入力される。コマンドレジスタ５０は、入力される書き込み信号あるいは読み出し信号に基づいて、ライトコマンドあるいはリードコマンドを生成し、それらのコマンドを判定器３０に出力する。また、コマンドレジスタ５０は、書き込み信号が入力された後に上記入力データＤｉｎが入力されると、その入力データＤｉｎを入力順にそのままデータレジスタ６０に出力する。すなわち、入力データＤｉｎとして８ビットデータ「１１０１１００１」が入力されると、データレジスタ６０は、図１に示すように、上位ビットが最も右側のレジスタに格納されるように、８ビットデータ「１１０１１００１」を格納する。なお、データレジスタ６０は、１つのメモリコアに含まれる各データセルに対応するレジスタを備えている。
【００２４】
判定器３０は、コマンドレジスタ５０からライトコマンドあるいはリードコマンドが入力されると、それらのコマンドを切替えセレクタ４０に出力する。また、判定器３０は、入力されるライトコマンドあるいはリードコマンドに基づいて、所定のワード線を選択するための選択信号ＳＳをデコーダ２０に出力する。具体的には、判定器３０は、ライトコマンドに基づいて図２に示す処理を行い、リードコマンドに基づいて図３に示す処理を行う。
【００２５】
デコーダ２０は、判定器３０から入力される選択信号ＳＳに基づいて、１つのワード線を選択する。１つのワード線が選択されると、データ書き込み時には、そのワード線に接続される各々のデータセルＤＣに、ビット線を介してデータが書き込まれる。なお、フラグセルＦＣには、判定器３０による制御によって、切替えセレクタ４０により「１」が書き込まれる。データ読み出し時には、選択されたワード線に接続される各々のデータセルＤＣからは、それぞれのビット線にデータが出力される。
【００２６】
各ビット線ＢＬに接続されるＲｅａｄ／Ｗｒｉｔｅ切替えセレクタ４０は、ビット線を介してデータレジスタ６０と接続される。切替えセレクタ４０は、判定器３０から入力されるコマンドに基づいて、書き込み回路あるいは読み出し回路に切替えられる。すなわち、切替えセレクタ４０は、ライトコマンドの入力に基づいて書き込み回路として動作し、リードコマンドの入力に基づいて読み出し回路として動作する。書き込み回路として動作する切替えセレクタ４０は、データレジスタ６０に格納されたデータを、対応するビット線を介して読み出す。切替えセレクタ４０は、各ビット線に接続されたセンスアンプにより、データレジスタ６０から読み出したデータを増幅して、その増幅したデータを、デコーダ２０により選択されたワード線に接続されるデータセルＤＣに書き込む。
【００２７】
一方、読み出し回路として動作する切替えセレクタ４０は、デコーダ２０によって選択されたワード線に接続されるデータセルＤＣから、対応するビット線ＢＬを介してデータを読み出す。切替えセレクタ４０は、各ビット線ＢＬに接続されたセンスアンプにより、メモリセルＭＣから出力されたデータを増幅して保持する。そして、切替えセレクタ４０は、クロック信号（図示略）に基づいてビット線ＢＬを順次選択し、その選択されたビット線に接続されるセンサアンプが保持するデータを出力データＤｏｕｔとして出力する。
【００２８】
このように構成された半導体記憶装置の動作について図２〜図４に従って説明する。
はじめに、図１に示すような初期状態のメモリ部１１に１回目の８ビットデータ「１１０１１００１」（第１のデータ）を書き込むデータ書き込み動作について説明する。
【００２９】
まず、コマンドレジスタ５０に書き込み信号が入力されると、コマンドレジスタ５０においてライトコマンドが生成されて、コマンドレジスタ５０はそのライトコマンドを判定器３０に出力する。次に、入力データＤｉｎとして８ビットデータ「１１０１１００１」がコマンドレジスタ５０に入力されると、コマンドレジスタ５０は、８ビットデータを入力順にそのままデータレジスタ６０に出力する。
【００３０】
図２に示すステップＳ１において、コマンドレジスタ５０から判定器３０にライトコマンドが入力されると、判定器３０は、ワード線ＷＬ０を選択するための選択信号ＳＳをデコーダ２０に出力するとともに、入力されたライトコマンドを切替えセレクタ４０に出力する。デコーダ２０は、判定器３０から入力された選択信号ＳＳに基づいてワード線ＷＬ０を選択する。また、切替えセレクタ４０は、入力されたライトコマンドに基づいて書き込み回路として動作する。
【００３１】
ステップＳ２において、まず、判定器３０は、切替えセレクタ４０を制御して、デコーダ２０により選択されたワード線（ここでは、ワード線ＷＬ０）に接続されるフラグセルＦＣからデータ（フラグ値）を読み出す。次に、判定器３０は、読み出したフラグセルＦＣのデータが「０」であるか、「１」であるかを判定する。ここで、フラグセルＦＣの「０」は、そのフラグセルＦＣが含まれるメモリコアがアクセス可能状態であることを示し、フラグセルＦＣの「１」は、そのフラグセルＦＣが含まれるメモリコアがアクセス不能状態であることを示す。ここでは、判定器３０は、メモリコアＭ１のフラグセルＦＣのデータが「０」（図１参照）である、すなわちメモリコアＭ１がアクセス可能状態と判断し、ステップＳ３に移る。
【００３２】
ステップＳ３において、判定器３０は、デコーダ２０により選択されたワード線（ワード線ＷＬ０）に接続されるメモリコア（メモリコアＭ１）にデータが既に書き込まれているか、ブランク状態であるかを判定する。この処理は、例えば判定器３０内に、書き込み回数をカウントするカウンタを設けて、そのカウント値に基づいて所定のメモリコアがブランク状態であるかを判断する。ここでは、判定器３０は、書き込み回数が０回であることから、メモリコアＭ１がブランク状態であると判断して、ステップＳ４に移る。
【００３３】
ステップＳ４において、判定器３０は、切替えセレクタ４０に対して書き込み指令を行う。すなわち、切替えセレクタ４０は、判定器３０からの書き込み指令に基づいて、データレジスタ６０に格納されている８ビットデータ「１１０１１００１」を、デコーダ２０により選択されたワード線ＷＬ０に接続されるデータセルＤＣに書き込む。このように、判定器３０による選択信号ＳＳによって、書き込み先のメモリコア（アクセス制御の対象となるメモリコア）としてメモリコアＭ１が選択され、その選択されたメモリコアＭ１の各データセルＤＣに８ビットデータ「１１０１１００１」が書き込まれる。
【００３４】
次に、メモリコアＭ１に書き込まれた８ビットデータを読み出すデータ読み出し動作について説明する。
まず、コマンドレジスタ５０に読み出し信号が入力されると、コマンドレジスタ５０においてリードコマンドが生成される。
【００３５】
図３に示すステップＳ１１において、コマンドレジスタ５０から判定器３０にリードコマンドが入力されると、判定器３０は、ワード線ＷＬ０を選択するための選択信号ＳＳをデコーダ２０に出力するとともに、入力されたリードコマンドを切替えセレクタ４０に出力する。デコーダ２０は、判定器３０から入力された選択信号ＳＳに基づいてワード線ＷＬ０を選択する。
【００３６】
ステップＳ１２において、まず、判定器３０は、切替えセレクタ４０を制御して、デコーダ２０により選択されたワード線（ここでは、ワード線ＷＬ０）に接続されるフラグセルＦＣからデータを読み出す。次に、判定器３０は、読み出したフラグセルＦＣのデータが「０」であるか、「１」であるかを判定する。ここで、フラグセルＦＣの「０」は、そのフラグセルＦＣが含まれるメモリコアがアクセス（読み出し）可能状態であることを示し、フラグセルＦＣの「１」は、そのフラグセルＦＣが含まれるメモリコアがデータアクセス（読み出し）不能状態であることを示す。ここでは、判定器３０は、メモリコアＭ１のフラグセルＦＣのデータが「０」（図４（ａ）参照）である、すなわちメモリコアＭ１が読み出し可能状態であると判断し、ステップＳ１３に移る。
【００３７】
ステップＳ１３において、判定器３０は、切替えセレクタ４０に対して読み出し指令を行う。すなわち、切替えセレクタ４０は、判定器３０からの読み出し指令に基づいて、デコーダ２０により選択されたワード線ＷＬ０に接続されるメモリコアＭ１のデータセルＤＣに格納されているデータを読み出し、出力データＤｏｕｔとして出力する。これによって、メモリコアＭ１の各データセルＤＣに書き込まれた８ビットデータ「１１０１１００１」が出力される。このように、判定器３０による選択信号ＳＳによって、上記書き込み動作時と同一のメモリコアＭ１が読み出し先のメモリコア（アクセス制御の対象となるメモリコア）として選択され、そのメモリコアＭ１から８ビットデータを読み出すことができる。
【００３８】
次に、２回目の８ビットデータ「１０００１１１０」（第２のデータ）を書き込むデータ書き込み動作について説明する。
まず、８ビットデータ「１０００１１１０」がコマンドレジスタ５０を介してデータレジスタ６０に格納される。図２に示すステップＳ１において、判定器３０は、ワード線ＷＬ０を選択するための選択信号ＳＳをデコーダ２０に出力して、ステップＳ２に移る。
【００３９】
ステップＳ２において、まず、判定器３０は、切替えセレクタ４０を制御して、デコーダ２０により選択されたワード線ＷＬ０に接続されるメモリコアＭ１のフラグセルＦＣからデータを読み出す。次に、判定器３０は、メモリコアＭ１のフラグセルＦＣのデータが「０」（図４（ａ）参照）であると判断し、ステップＳ３に移る。ステップＳ３において、判定器３０は、書き込み回数に基づいて、メモリコアＭ１がブランク状態でないと判断して、ステップＳ５に移る。
【００４０】
ステップＳ５において、判定器３０は、切替えセレクタ４０を制御して、デコーダ２０により選択されたワード線ＷＬ０に接続されるフラグセルＦＣ、すなわちメモリコアＭ１のフラグセルＦＣに「１」を書き込み（図４（ｂ）参照）、ステップＳ６に移る。なお、本実施形態では、前述のように、フラグセルＦＣに「１」が書き込まれると、そのフラグセルＦＣを含むメモリコアがアクセス不能状態に設定される。
【００４１】
ステップＳ６において、判定器３０は、これまで選択していたワード線番号をインクリメントし、すなわちワード線番号に「１」を加えてワード線を変更し、その変更したワード線を選択するための選択信号ＳＳをデコーダ２０に出力する。ここでは、判定器３０は、これまで選択していたワード線番号「０」に「１」を加えてワード線番号を「１」にして、ワード線ＷＬ１を選択するための選択信号ＳＳをデコーダ２０に出力し、ステップＳ２に戻る。
【００４２】
ステップＳ２において、まず、判定器３０は、切替えセレクタ４０を制御して、デコーダ２０により選択されたワード線ＷＬ１に接続されるフラグセルＦＣからデータを読み出す。次に、判定器３０は、読み出したメモリコアＭ２のフラグセルＦＣのデータが「０」である、すなわちメモリコアＭ２がアクセス可能状態であると判断して、ステップＳ３に移る。
【００４３】
続いて、ステップＳ３において、判定器３０は、メモリコアＭ２のデータセルＤＣがブランク状態であると判断して、ステップＳ４に移る。次に、ステップＳ４において、切替えセレクタ４０は、判定器３０からの書き込み指令に基づいて、データレジスタ６０に格納されている８ビットデータ「１０００１１１０」を、デコーダ２０により選択されたワード線ＷＬ０に接続されるデータセルＤＣに書き込む。これによって、図４（ｃ）に示すように、メモリコアＭ２の各データセルＤＣに８ビットデータ「１０００１１１０」が書き込まれる。
【００４４】
このように、判定器３０及び切替えセレクタ４０は、２回目の入力データＤｉｎが入力されたときに、メモリコアＭ１のフラグセルＦＣに「１」を書き込むことで、メモリコアＭ１をアクセス不能状態に設定する。次に、判定器３０は、出力する選択信号ＳＳを、ワード線ＷＬ０を選択する信号からワード線ＷＬ１を選択する信号に切替える。これによって、デコーダ２０により選択されるワード線がワード線ＷＬ０からワード線ＷＬ１に切替えられ、書き込み先のメモリコアもメモリコアＭ１からメモリコアＭ２に切替えられる。このように、メモリコアＭ１（所定のメモリコア）をアクセス不能状態に設定した上でメモリコアＭ２（次のメモリコア）に切替えることで、擬似的にメモリコアＭ１のデータを消去する消去動作を行うことができる。そして、書き込み先として切替えられたメモリコアＭ２の各データセルＤＣに８ビットデータ「１０００１１１０」を書き込むことができる。従って、消去動作が行われた上で、新たなデータの書き込みを行う、いわゆるデータの書き換えを擬似的に行うことができる。
【００４５】
次に、２回目に書き込まれた８ビットデータ、すなわちメモリコアＭ２に書き込まれた８ビットデータを読み出すデータ読み出し動作について説明する。
まず、上述した読み出し動作と同様に、図３に示すステップＳ１１において、判定器３０は、ワード線ＷＬ０を選択するための選択信号ＳＳをデコーダ２０に出力して、ステップＳ１２に移る。
【００４６】
ステップＳ１２において、まず、判定器３０は、切替えセレクタ４０を制御して、デコーダ２０により選択されたワード線ＷＬ０に接続されるフラグセルＦＣからデータを読み出す。次に、判定器３０は、読み出したメモリコアＭ１のフラグセルＦＣのデータが「１」（図４（ｃ）参照）である、すなわち読み出し不能状態であると判断して、ステップＳ１４に移る。
【００４７】
ステップＳ１４において、判定器３０は、これまで選択していたワード線番号「０」に「１」を加えてワード線番号を「１」にして、ワード線ＷＬ１を選択するための選択信号ＳＳをデコーダ２０に出力し、ステップＳ１２に戻る。
【００４８】
ステップＳ１２において、まず、判定器３０は、切替えセレクタ４０を制御して、デコーダ２０により選択されたワード線ＷＬ１に接続されるフラグセルＦＣからデータを読み出す。次に、判定器３０は、読み出したメモリコアＭ２のフラグセルＦＣのデータが「０」（図４（ｃ）参照）である、すなわちメモリコアＭ２が読み出し可能状態であると判断して、ステップＳ１３に移る。
【００４９】
ステップＳ１３において、切替えセレクタ４０は、判定器３０からの読み出し指令に基づいて、デコーダ２０により選択されたワード線ＷＬ１に接続されるメモリコアＭ２のデータセルＤＣに格納されているデータを読み出し、出力データＤｏｕｔとして出力する。これによって、メモリコアＭ２の各データセルＤＣに書き込まれた８ビットデータ「１０００１１１０」が出力される。このように、２回目の８ビットデータが書き込まれたメモリコアＭ２のデータセルＤＣからのみ、データを読み出すことができる。すなわち、メモリコアＭ１のデータセルＤＣに書き込まれた１回目の８ビットデータは、フラグセルＦＣが「１」（アクセス不能状態）であることによって、読み出されることはなく擬似的に消去され、メモリコアＭ２に書き込まれた２回目の８ビットデータのみを読み出すことができる。また、判定器３０は、書き込み動作時及び読み出し動作時において、ワード線を、ワード線ＷＬ０、ワード線ＷＬ１、ワード線ＷＬ２、ワード線ＷＬ３という不可逆的な順序で選択する。
【００５０】
以下同様にして、３回目、４回目の入力データＤｉｎを、メモリコアＭ３，Ｍ４にそれぞれ書き込むことが可能である。すなわち、本実施形態の半導体記憶装置１では、最大３回のデータ書き換えを行うことができる。
【００５１】
以上、記述した本実施形態によれば、以下の効果を奏する。
（１）判定器３０及び切替えセレクタ４０は、２回目の入力データＤｉｎが入力されたときに、メモリコアＭ１のフラグセルＦＣに「１」を書き込むことで、メモリコアＭ１をアクセス不能状態に設定した。これに伴って、判定器３０は、図２に示すステップＳ６において、ワード線番号をインクリメントし、選択信号ＳＳをワード線ＷＬ０からワード線ＷＬ１を選択する信号に変更して、書き込み先のメモリコアをメモリコアＭ２に切替えるようにした。これによって、メモリコアＭ１のデータを擬似的に消去することができる。すなわち、メモリコアＭ１をアクセス不能状態にして、書き込み先をメモリコアＭ１からメモリコアＭ２に切替えることによって、メモリコアＭ１に書き込まれたデータが読み出されることがなくなるため、メモリコアＭ１のデータを擬似的に消去する消去動作を行うことができる。さらに、書き込み先として切替えられたメモリコアＭ２の各データセルＤＣに２回目の入力データＤｉｎが書き込むことができる。従って、消去動作が行われた上で、新たなデータの書き込みを行う、いわゆるデータの書き換えを擬似的に行うことができる。よって、データを消去するために必要な回路（消去動作用回路等）を不要としながらも、データ書き込みに制限のない不揮発性メモリセルと同様の書き込み動作を行うことができる。その結果、大きな回路面積を占める負電圧印加回路等を省略することができるため、回路サイズを縮小化することができる。
【００５２】
（第２実施形態）
以下、本発明を具体化した第２実施形態について、図５及び図６に従って説明する。この実施形態の半導体記憶装置は、判定器３０及び各フラグセルＦＣの機能が上記第１実施形態と異なっている。以下、第１実施形態との相違点を中心に説明する。
【００５３】
この実施形態の半導体記憶装置は、図１に示す第１実施形態の半導体記憶装置１とほぼ同様の構成を備えている。この半導体記憶装置の動作を図５〜図７に従って説明する。
はじめに、図１に示すような初期状態のメモリ部１１に１回目の８ビットデータ「１１０１１００１」を書き込むデータ書き込み動作について説明する。
【００５４】
まず、図５に示すステップＳ２１は、第１実施形態のステップＳ１と同様の処理を行う。ステップＳ２２において、まず、判定器３０は、切替えセレクタ４０を制御して、デコーダ２０により選択されたワード線ＷＬ０に接続されるフラグセルＦＣからデータを読み出す。次に、判定器３０は、読み出したフラグセルＦＣのデータが「０」であるか、「１」であるかを判定する。ここで、フラグセルＦＣの「０」は、そのフラグセルＦＣが含まれるメモリコアが書き込み可能状態であることを示し、フラグセルＦＣの「１」は、そのフラグセルＦＣが含まれるメモリコアが書き込み不能状態であることを示す。ここでは、判定器３０は、メモリコアＭ１のフラグセルＦＣのデータが「０」（図１参照）である、すなわちメモリコアＭ１が書き込み可能状態であると判断し、ステップＳ２３に移る。
【００５５】
ステップＳ２３において、判定器３０は、切替えセレクタ４０を制御して、デコーダ２０によって選択されたワード線ＷＬ０に接続されるフラグセルＦＣ、すなわちメモリコアＭ１のフラグセルＦＣに「１」を書き込み（図７（ａ）参照）、ステップＳ２４に移る。なお、本実施形態では、フラグセルＦＣに「１」が書き込まれると、そのフラグセルＦＣを含むメモリコアが読み出し可能状態／書き込み不能状態に設定される。また、フラグセルＦＣが「０」の場合は、そのフラグセルＦＣを含むメモリコアが読み出し不能状態／データ書き込み可能状態であることを示す。
【００５６】
次に、ステップＳ２４において、判定器３０は、切替えセレクタ４０に対して書き込み指令を行う。すなわち、切替えセレクタ４０は、判定器３０からの書き込み指令に基づいて、データレジスタ６０に格納されている８ビットデータ「１１０１１００１」を、デコーダ２０により選択されたワード線ＷＬ０に接続されるデータセルＤＣに書き込む。このように、判定器３０による選択信号ＳＳによって、書き込み先のメモリコアとしてメモリコアＭ１が選択され、そのメモリコアＭ１のフラグセルＦＣに「１」が書き込まれてデータ読み出し可能状態に移行されるとともに、メモリコアＭ１の各データセルＤＣに８ビットデータ「１１０１１００１」が書き込まれる。
【００５７】
次に、メモリコアＭ１に書き込まれた上記８ビットデータ「１１０１１００１」を読み出すデータ読み出し動作について説明する。
まず、コマンドレジスタ５０に読み出し信号が入力されると、コマンドレジスタ５０においてリードコマンドが生成される。図６に示すステップＳ３１において、判定器３０は、ワード線ＷＬ０を選択するための選択信号ＳＳをデコーダ２０に出力して、ステップＳ３２に移る。
【００５８】
ステップＳ３２において、まず、判定器３０は、切替えセレクタ４０を制御して、デコーダ２０により選択されたワード線ＷＬ０に接続されるフラグセルＦＣからデータを読み出す。次に、判定器３０は、読み出したフラグセルＦＣのデータが「０」であるか、「１」であるかを判定する。ここで、フラグセルＦＣの「０」は、そのフラグセルＦＣが含まれるメモリコアのデータセルＤＣにデータが書き込まれていない読み出し不能状態であることを示し、フラグセルＦＣの「１」は、そのフラグセルＦＣが含まれるメモリコアが読み出し可能状態であることを示す。ここでは、判定器３０は、読み出したメモリコアＭ１のフラグセルＦＣのデータが「１」（図７（ｂ）参照）である、すなわち読み出し可能状態であると判断して、ステップＳ３３に移る。
【００５９】
ステップＳ３３において、判定器３０は、切替えセレクタ４０に対して読み出し指令を行う。すなわち、切替えセレクタ４０は、判定器３０からの読み出し指令に基づいて、デコーダ２０により選択されたワード線ＷＬ０に接続されるメモリコアＭ１のデータセルＤＣに格納されているデータを読み出し、出力データＤｏｕｔとして出力する。これによって、メモリコアＭ１の各データセルＤＣに書き込まれた８ビットデータ「１１０１１００１」が出力される。このように、上述の書き込み動作においてフラグセルＦＣにデータ「１」が書き込まれたメモリコアＭ１から、データを読み出すことができる。
【００６０】
続いて、ステップＳ３４において、判定器３０は、これまで選択していたワード線番号「０」に「１」を加えてワード線番号を「１」にして、ワード線ＷＬ１を選択するための選択信号ＳＳをデコーダ２０に出力し、ステップＳ３２に戻る。
【００６１】
次に、ステップＳ３２において、まず、判定器３０は、切替えセレクタ４０を制御して、デコーダ２０により選択されたワード線ＷＬ１に接続されるフラグセルＦＣからデータを読み出す。次に、判定器３０は、読み出したメモリコアＭ２のフラグセルＦＣのデータが「０」（図７（ｂ）参照）である、すなわち読み出し不能状態であると判断して、読み出し動作を終了する。
【００６２】
次に、出力データＤｏｕｔのビット幅を８ビットから１６ビットに変更する場合について説明する。なお、本実施形態では、１６ビットデータの上位８ビットを１回目に書き込んだ８ビットデータ「１１０１１００１１」とし、下位８ビットとして８ビットデータ「１０００１１１０」を新たに書き込む場合について説明する。
【００６３】
まず、８ビットデータ「１０００１１１０」がコマンドレジスタ５０を介してデータレジスタ６０に格納される。図５に示すステップＳ２１において、判定器３０は、ワード線ＷＬ０を選択するための選択信号ＳＳをデコーダ２０に出力する。
【００６４】
ステップＳ２２において、まず、判定器３０は、切替えセレクタ４０を制御して、デコーダ２０により選択されたワード線ＷＬ０に接続されるメモリコアＭ１のフラグセルＦＣからデータを読み出す。次に、判定器３０は、メモリコアＭ１のフラグセルＦＣのデータが「１」（図７（ｂ）参照）である、すなわち書き込み不能状態であると判断し、ステップＳ２５に移る。
【００６５】
続いて、ステップＳ２５において、判定器３０は、これまで選択していたワード線番号「０」に「１」を加えてワード線番号を「１」にして、ワード線ＷＬ１を選択するための選択信号ＳＳをデコーダ２０に出力し、ステップＳ２２に戻る。
【００６６】
ステップＳ２２において、まず、判定器３０は、切替えセレクタ４０を制御して、デコーダ２０により選択されたワード線ＷＬ１に接続されるフラグセルＦＣからデータを読み出す。次に、判定器３０は、読み出したメモリコアＭ２のフラグセルＦＣのデータが「０」（図７（ｂ）参照）である、すなわち書き込み可能状態であると判断して、ステップＳ２３に移る。
【００６７】
続いて、ステップＳ２３及びステップＳ２４において、判定器３０は、上位８ビットデータ「１１０１１００１」を書き込んだ場合と同様に、メモリコアＭ２のフラグセルＦＣに「１」を書き込むとともに、下位８ビットデータ「１０００１１１０」をメモリコアＭ２のデータセルＤＣに書き込む（図７（ｃ）参照）。このように、判定器３０による選択信号ＳＳによって、書き込み先のメモリコアとしてメモリコアＭ２が選択され、そのメモリコアＭ２のフラグセルＦＣに「１」が書き込まれて読み出し可能状態に設定されるとともに、メモリコアＭ２の各データセルＤＣに下位８ビットデータ「１０００１１１０」が書き込まれる。これによって、メモリコアＭ１，Ｍ２が共にデータ読み出し可能状態に設定されて、メモリコアＭ１，Ｍ２のデータセルＤＣをまとめて読み出すことができるため、メモリコアＭ１，Ｍ２のデータセルＤＣに１６ビットデータ「１１０１１００１１／１０００１１１０」が書き込まれているとみなすことができる。
【００６８】
次に、メモリコアＭ１，Ｍ２のデータセルＤＣに書き込まれた１６ビットデータを読み出すデータ読み出し動作について説明する。
まず、上述した読み出し動作と同様に、図６に示すステップＳ３１において、判定器３０は、ワード線ＷＬ０を選択するための選択信号ＳＳをデコーダ２０に出力して、ステップＳ３２に移る。
【００６９】
ステップＳ３２において、まず、判定器３０は、切替えセレクタ４０を制御して、デコーダ２０により選択されたワード線ＷＬ０に接続されるフラグセルＦＣからデータを読み出す。次に、判定器３０は、読み出したメモリコアＭ１のフラグセルＦＣのデータが「１」（図７（ｃ）参照）である、すなわち読み出し可能状態であると判断して、ステップＳ３３に移る。
【００７０】
次に、ステップＳ３３において、切替えセレクタ４０は、判定器３０からの読み出し指令に基づいて、デコーダ２０により選択されたワード線ＷＬ０に接続されるメモリコアＭ１のデータセルＤＣに格納されているデータを読み出し、出力データＤｏｕｔとして出力する。これによって、メモリコアＭ１の各データセルＤＣに書き込まれた上位８ビットデータ「１１０１１００１１」が出力される。
【００７１】
続いて、ステップＳ３４において、判定器３０は、これまで選択していたワード線番号「０」に「１」を加えてワード線番号を「１」にして、ワード線ＷＬ１を選択するための選択信号ＳＳをデコーダ２０に出力し、ステップＳ３２に戻る。
【００７２】
ステップＳ３２において、まず、判定器３０は、切替えセレクタ４０を制御して、デコーダ２０により選択されたワード線ＷＬ１に接続されるフラグセルＦＣからデータを読み出す。次に、判定器３０は、読み出したメモリコアＭ２のフラグセルＦＣのデータが「１」（図７（ｃ）参照）である、すなわち読み出し可能状態であると判断して、ステップＳ３３に移る。
【００７３】
ステップＳ３３において、判定器３０は、切替えセレクタ４０は、判定器３０からの読み出し指令に基づいて、デコーダ２０により選択されたワード線ＷＬ１に接続されるメモリコアＭ２のデータセルＤＣに格納されているデータを読み出し、出力データＤｏｕｔとして出力する。これによって、メモリコアＭ２の各データセルＤＣに書き込まれた下位８ビットデータ「１０００１１１０」が出力される。
【００７４】
続いて、ステップＳ３４において、判定器３０は、これまで選択していたワード線番号「１」に「１」を加えてワード線番号を「２」にして、ワード線ＷＬ２を選択するための選択信号ＳＳをデコーダ２０に出力し、ステップＳ３２に戻る。
【００７５】
次に、ステップＳ３２において、まず、判定器３０は、切替えセレクタ４０を制御して、デコーダ２０により選択されたワード線ＷＬ２に接続されるフラグセルＦＣからデータを読み出す。次に、判定器３０は、読み出したメモリコアＭ３のフラグセルＦＣのデータが「０」（図７（ｃ）参照）である、すなわち読み出し不能状態であると判断して、読み出し動作を終了する。
【００７６】
このように、フラグセルＦＣにより読み出し可能状態とされたメモリコアＭ１，Ｍ２から、データをまとめて読み出すことができるため、メモリコアＭ１，Ｍ２に書き込まれたデータを１６ビットデータとして出力することができる。すなわち、読み出すデータを８ビットデータから１６ビットデータに変更することができる。また、判定器３０は、書き込み動作時及び読み出し動作時において、ワード線を、ワード線ＷＬ０、ワード線ＷＬ１、ワード線ＷＬ２、ワード線ＷＬ３という不可逆的な順序で選択する。
【００７７】
以下同様にして、メモリコアＭ３，Ｍ４に８ビットデータを書き込むことによって、出力データＤｏｕｔのビット幅を２４ビット、３２ビットと変更することができる。すなわち、本実施形態の半導体記憶装置では、データセルＤＣを３２個有しているため、最大３２ビット幅のデータを書き込むことができ、３２ビットデータとして読み出すことができる。
【００７８】
以上記述したように、本実施形態によれば、以下の効果を奏する。
（２）データ書き込み時に、フラグセルＦＣにデータ「１」を書き込みつつ、データセルＤＣに入力データＤｉｎを書き込むようにした。フラグセルＦＣに「１」を書き込むことによって、そのフラグセルＦＣを含むメモリコアは、読み出し可能状態に設定されるため、メモリ部１１のデータセルＤＣに書き込まれた全データをまとめて読み出すことができる。従って、各メモリコアＭ１〜Ｍ４のデータセルＤＣにデータを追加して書き込むことによって、ビット幅を変更することができ、擬似的にデータを書き換えることができる。すなわち、本例では、８ビットデータ「１１０１１００１１」から１６ビットデータ「１１０１１００１１／１０００１１１０」に書き換えられている。この書き換えに際して、データを消去するために必要であって大きな回路面積を占める回路（消去動作用回路等）が不要であるため、回路サイズを縮小化することができる。
【００７９】
さらに、取り扱うデータのビット幅を可変とすることができるため、例えば半導体集積回路の内部状態を設定するための設定値のビット幅が変更される場合にも、レチクル変更等によらず、フラグセルＦＣに「１」を書き込むのみでよいため、安価かつ迅速で柔軟な対応をすることができる。
【００８０】
（第３実施形態）
以下、本発明を具体化した第３実施形態について、図８〜図１０に従って説明する。この実施形態の半導体記憶装置３は、メモリ部１３及びデータレジスタ６０の構成と判定器３０の機能が上記第１実施形態と異なっている。以下、第１実施形態との相違点を中心に説明する。
【００８１】
図８に示すように、メモリ部１３は、複数のメモリコアＭ１〜Ｍ４が列方向に並設されている。各メモリコアＭ１〜Ｍ４は、ワード線を切替えるためのフラグ値が書き込まれる第１フラグセルＦＣ１と、データのビット幅を示すフラグ値が書き込まれる第２フラグセルＦＣ２と、８つのデータセルＤＣにより構成されている。第１フラグセルＦＣ１及び第２フラグセルＦＣ２のデータに基づいて、特定のメモリコアのデータセルＤＣへの書き込み動作及び読み出し動作が行われる。第１フラグセルＦＣ１のデータ（フラグ値）が「０」の場合には、その第１フラグセルＦＣ１を含むメモリコアがアクセス可能状態であることを示し、第１フラグセルＦＣ１のデータが「１」の場合には、その第１フラグセルＦＣ１を含むメモリコアがアクセス不能状態であることを示している。また、第２フラグセルＦＣ２のデータ（フラグ値）が「０」の場合には、読み出し終了位置／書き込み終了位置を示し、データが「１」の場合には、読み出し継続位置／書き込み継続位置を示している。
【００８２】
また、コマンドレジスタ５０には、入力データＤｉｎとして１０ビットデータが入力される。コマンドレジスタ５０は、書き込み信号が入力された後に上記入力データＤｉｎが入力されると、その入力データＤｉｎを入力順にそのままデータレジスタ６０に出力する。すなわち、入力データＤｉｎとして１０ビットデータ「１１０１１００１００」が入力されると、データレジスタ６０は、図８に示すように、上位ビットが最も右側のレジスタに格納されるように、１０ビットデータ「１１０１１００１００」を格納する。データレジスタ６０は、１つのメモリコアに含まれる各データセル、第１フラグセルＦＣ１及び第２フラグセルＦＣ２に対応するレジスタを備えている。すなわち、１０ビットデータの下位２ビットは、第１フラグセルＦＣ１及び第２フラグセルＦＣ２に書き込まれるデータとなり、１０ビットデータの上位８ビットは、データセルに書き込まれるデータとなる。
【００８３】
このように構成された半導体記憶装置３の動作を図９及び図１０に従って説明する。
はじめに、図８に示すような初期状態（全てのメモリセルＭＣがブランク状態）のメモリ部１１に１回目の８ビットデータ「１１０１１００１」を書き込むデータ書き込み動作について説明する。
【００８４】
まず、コマンドレジスタ５０に書き込み信号が入力されると、コマンドレジスタ５０においてライトコマンドが生成される。次に、８ビットデータ「１１０１１００１」を含む１０ビットデータ「１１０１１００１００」がコマンドレジスタ５０に入力されると、コマンドレジスタ５０は、１０ビットデータを入力順にそのままデータレジスタ６０に出力して、データレジスタ６０は、図８に示すように１０ビットデータを格納する。このとき、第１フラグセルＦＣ１に対応するレジスタに格納されたデータ「０」は、１０ビットデータのうち上位８ビットを、メモリコアＭ１のデータセルＤＣに書き込むことを示している。また、第２フラグセルＦＣ２に対応するレジスタに格納されたデータ「０」は、データセルＤＣに書き込まれるデータが８ビットであることを示している。
【００８５】
続いて、コマンドレジスタ５０から判定器３０にライトコマンドが入力されると、判定器３０は、デコーダ２０に対して、ワード線ＷＬ０を選択するための選択信号ＳＳを出力するとともに、入力されたライトコマンドを切替えセレクタ４０に出力する。デコーダ２０は、判定器３０から入力された選択信号ＳＳに基づいてワード線ＷＬ０を選択する。また、切替えセレクタ４０は、入力されたライトコマンドに基づいて書き込み回路に切替えられる。
【００８６】
次に、書き込み回路として動作する切替えセレクタ４０は、データレジスタ６０に格納された１０ビットデータのうち、最下位ビットを、デコーダ２０により選択されたワード線ＷＬ０に接続されるメモリコアＭ１の第１フラグセルＦＣ１に書き込む。
【００８７】
続いて、判定器３０は、デコーダ２０により選択されたワード線ＷＬ０に接続される第１フラグセルＦＣ１からデータ（上記書き込んだデータ）を読み出し、読み出したメモリコアＭ１のフラグセルＦＣのデータが「０」（図１０（ａ）参照）である、すなわちアクセス可能状態であると判断する。すると、判定器３０は、切替えセレクタ４０に対して書き込み指令を行う。すなわち、切替えセレクタ４０は、判定器３０からの書き込み指令に基づいて、データレジスタ６０に格納されている１０ビットデータのうちの上位９ビットデータ「１１０１１００１０」を、デコーダ２０により選択されたワード線ＷＬ０に接続されるデータセルＤＣ及び第２フラグセルＦＣ２に書き込む。
【００８８】
続いて、判定器３０は、切替えセレクタ４０を制御して、デコーダ２０により選択されたワード線ＷＬ０に接続される第２フラグセルＦＣ２からデータを読み出す。次に、判定器３０は、読み出したメモリコアＭ１の第２フラグセルＦＣ２のデータが「０」であるか、「１」であるかを判定する。ここで、第２フラグセルＦＣ２の「０」は、その第２フラグセルＦＣ２が含まれるメモリコアが書き込み終了位置であることを示し、第２フラグセルＦＣ２の「１」は、その第２フラグセルＦＣ２が含まれるメモリコアに書き込まれたデータに続きがあることを示している。ここでは、判定器３０は、読み出したメモリコアＭ１の第２フラグセルＦＣ２のデータが「０」（図１０（ａ）参照）である、すなわちメモリコアＭ１のデータセルＤＣに書き込まれたデータが８ビットであって書き込み終了位置であると判断して、書き込み動作を終了する。
【００８９】
このように、判定器３０による選択信号ＳＳ及び第１フラグセルＦＣ１に書き込まれるデータによって、書き込み先のメモリコアとしてメモリコアＭ１が選択され、そのメモリコアＭ１の各データセルＤＣに８ビットデータ「１１０１１００１」が書き込まれる。さらに、第２フラグセルＦＣ２のデータに基づいて、書き込み終了位置を指定することができる。
【００９０】
次に、メモリコアＭ１に書き込まれた８ビットデータ「１１０１１００１」（図１０（ａ）参照）を読み出すデータ読み出し動作について説明する。
まず、コマンドレジスタ５０に読み出し信号が入力されると、コマンドレジスタ５０においてリードコマンドが生成される。
【００９１】
図９に示すステップＳ４１において、コマンドレジスタ５０から判定器３０にリードコマンドが入力されると、判定器３０は、ワード線ＷＬ０を選択するための選択信号ＳＳをデコーダ２０に出力するとともに、入力されたリードコマンドを切替えセレクタ４０に出力する。このとき、デコーダ２０は、判定器３０から入力された選択信号ＳＳに基づいてワード線ＷＬ０を選択する。
【００９２】
ステップＳ４２において、まず、判定器３０は、切替えセレクタ４０を制御して、デコーダ２０により選択されたワード線（ここでは、ワード線ＷＬ０）に接続される第１フラグセルＦＣ１からデータを読み出す。次に、判定器３０は、読み出した第１フラグセルＦＣ１のデータが「０」であるか、「１」であるかを判定する。ここで、第１フラグセルＦＣ１の「０」は、その第１フラグセルＦＣ１が含まれるメモリコアがアクセス（読み出し）可能状態であることを示し、第１フラグセルＦＣ１の「１」は、その第１フラグセルＦＣ１が含まれるメモリコアがアクセス（読み出し）不能状態であることを示す。ここでは、判定器３０は、メモリコアＭ１の第１フラグセルＦＣ１のデータが「０」（図１０（ａ）参照）である、すなわちメモリコアＭ１がアクセス（読み出し）可能状態であると判断し、ステップＳ４３に移る。
【００９３】
ステップＳ４３において、判定器３０は、切替えセレクタ４０に対して読み出し指令を行う。すなわち、切替えセレクタ４０は、判定器３０からの読み出し指令に基づいて、デコーダ２０により選択されたワード線ＷＬ０に接続されるメモリコアＭ１のデータセルＤＣに格納されているデータを読み出し、出力データＤｏｕｔとして出力する。これによって、メモリコアＭ１の各データセルＤＣに書き込まれた８ビットデータ「１１０１１００１」が出力される。
【００９４】
続いて、ステップＳ４４において、判定器３０は、切替えセレクタ４０を制御して、デコーダ２０により選択されたワード線ＷＬ０に接続される第２フラグセルＦＣ２からデータを読み出す。次に、判定器３０は、読み出した第２フラグセルＦＣ２のデータが「０」であるか、「１」であるかを判定する。ここで、第２フラグセルＦＣ２の「０」は、その第２フラグセルＦＣ２が含まれるメモリコアがデータ読み出し終了位置であることを示し、第２フラグセルＦＣ２の「１」は、次のワード線に接続されるメモリコアに続きの入力データＤｉｎ（例えば、１６ビットデータの下位８ビット）が書き込まれていることを示す。ここでは、判定器３０は、読み出したメモリコアＭ１の第２フラグセルＦＣ２のデータが「０」（図１０（ａ）参照）である、すなわちメモリコアＭ１がデータ読み出し終了位置であると判断して、読み出し動作を終了する。
【００９５】
このように、判定器３０による選択信号ＳＳ及び第１フラグセルＦＣ１のデータ「０」によって、読み出し先のメモリコアとして８ビットデータが書き込まれたメモリコアＭ１が選択され、そのメモリコアＭ１からデータを読み出すことができる。さらに、第２フラグセルＦＣ２のデータに基づいて、読み出し終了位置を指定することができる。
【００９６】
次に、メモリコアＭ１のデータセルＤＣに８ビットデータが書き込まれているメモリ部１３に、１６ビットデータ「１０００１１１０／１１０１０１１１」を書き込むデータ書き込み動作について説明する。
【００９７】
１回目の書き込み動作と同様に、コマンドレジスタ５０に書き込み信号が入力されると、コマンドレジスタ５０においてライトコマンドが生成される。次に、図１０（ｂ）に示すように、１６ビットデータのうち、上位８ビットデータ「１０００１１１０」を含む１０ビットデータ「１０００１１１０１１」がコマンドレジスタ５０を介してデータレジスタ６０に出力されて格納される。このとき、第１フラグセルＦＣ１に対応するレジスタに格納されたデータ「１」は、書き込み先のメモリコアを変更することを示している。また、第２フラグセルＦＣ２に対応するレジスタに格納されたデータ「１」は、データセルＤＣに書き込まれるデータが１６ビットデータであることを示している。
【００９８】
続いて、コマンドレジスタ５０から判定器３０にライトコマンドが入力されると、判定器３０は、デコーダ２０に対して、ワード線ＷＬ０を選択するための選択信号ＳＳを出力するとともに、入力されたライトコマンドを切替えセレクタ４０に出力する。デコーダ２０は、判定器３０から入力された選択信号ＳＳに基づいてワード線ＷＬ０を選択する。また、切替えセレクタ４０は、入力されたライトコマンドに基づいて書き込み回路に切替えられる。
【００９９】
次に、書き込み回路として動作する切替えセレクタ４０は、データレジスタ６０に格納された１０ビットデータのうち、最下位ビット（データ「１」）を、デコーダ２０により選択されたワード線ＷＬ０に接続されるメモリコアＭ１の第１フラグセルＦＣ１に書き込む。このように、１回目のデータが書き込まれているメモリコアＭ１の第１フラグセルＦＣ１に「１」を書き込むことによって、メモリコアＭ１がアクセス不能状態に設定される。これにより、メモリコアＭ１に書き込まれたデータを擬似的に消去することができる。
【０１００】
続いて、判定器３０は、切替えセレクタ４０を制御して、デコーダ２０により選択されたワード線ＷＬ０に接続される第１フラグセルＦＣ１からデータ（上記書き込んだデータ）を読み出し、読み出したメモリコアＭ１のフラグセルＦＣのデータが「１」（図１０（ｂ）参照）である、すなわちアクセス（書き込み）不能状態であると判断する。すると、判定器３０は、これまで選択していたワード線番号「０」に「１」を加えてワード線番号を「１」にして、ワード線ＷＬ１を選択するための選択信号ＳＳをデコーダ２０に出力する。
【０１０１】
そして、切替えセレクタ４０は、判定器３０からの書き込み指令に基づいて、データレジスタ６０に格納されている１０ビットデータのうちの上位９ビットデータ「１０００１１１０１」を、デコーダ２０により選択されたワード線ＷＬ１に接続されるメモリコアＭ２のデータセルＤＣ及び第２フラグセルＦＣ２に書き込む。このように、判定器３０による選択信号ＳＳ及び第１フラグセルＦＣ１に書き込まれるデータによって、書き込み先のメモリコアとしてメモリコアＭ１の次のメモリコアＭ２が選択され、そのメモリコアＭ１の各データセルＤＣに１６ビットデータの上位８ビットデータ「１１０１１００１」が書き込まれる。
【０１０２】
続いて、判定器３０は、切替えセレクタ４０を制御して、デコーダ２０により選択されたワード線ＷＬ１に接続される第２フラグセルＦＣ２からデータを読み出す。次に、判定器３０は、読み出したメモリコアＭ２の第２フラグセルＦＣ２のデータが「１」（図１０（ｂ）参照）である、すなわちメモリコアＭ２のデータセルＤＣに書き込まれたデータが１６ビットであり書き込み継続状態であると判断する。すると、判定器３０は、これまで選択していたワード線番号「１」に「１」を加えてワード線番号を「２」にして、ワード線ＷＬ２を選択するための選択信号ＳＳをデコーダ２０に出力する。このとき、図１０（ｃ）に示すように、１６ビットデータのうち、下位８ビットデータ「１１０１０１１１」を含む１０ビットデータ「１１０１０１１１００」がデータレジスタ６０に格納される。
【０１０３】
続いて、切替えセレクタ４０は、判定器３０からの書き込み指令に基づいて、データレジスタ６０に格納されている１０ビットデータのうちの上位８ビットデータ「１１０１０１１１」を、デコーダ２０により選択されたワード線ＷＬ２に接続されるデータセルＤＣ及び第２フラグセルＦＣ２に書き込む。
【０１０４】
次に、判定器３０は、切替えセレクタ４０を制御して、デコーダ２０により選択されたワード線ＷＬ２に接続される第２フラグセルＦＣ２からデータを読み出す。次に、判定器３０は、読み出したメモリコアＭ３の第２フラグセルＦＣ２のデータが「０」（図１０（ｃ）参照）である、すなわちデータ書き込み終了位置であると判断して、書き込み動作を終了する。
【０１０５】
このように、判定器３０及び切替えセレクタ４０は、２回目の入力データＤｉｎが入力されたときに、メモリコアＭ１のフラグセルＦＣに「１」を書き込むことで、メモリコアＭ１をアクセス不能状態に設定する。
【０１０６】
次に、判定器３０は、出力する選択信号ＳＳを、ワード線ＷＬ０を選択する信号からワード線ＷＬ１を選択する信号に切替える。これによって、デコーダ２０により選択されるワード線がワード線ＷＬ０からワード線ＷＬ１に切替えられ、書き込み先のメモリコアもメモリコアＭ１からメモリコアＭ２に切替えられる。このように、メモリコアＭ１をアクセス不能状態に設定した上でメモリコアＭ２に切替えることで、擬似的にメモリコアＭ１のデータを消去する消去動作を行うことができる。そして、書き込み先として切替えられたメモリコアＭ２の各データセルＤＣに１６ビットデータの上位８ビットデータ「１１０１１００１」を書き込むことができる。従って、消去動作が行われた上で、新たなデータの書き込みを行う、いわゆるデータの書き換えを擬似的に行うことができる。さらに、メモリコアＭ２における第２フラグセルＦＣ２の「１」に基づいて、メモリコアＭ２の次のメモリコアＭ３に１６ビットデータの下位８ビット「１１０１０１１１」を書き込むことができる。
【０１０７】
次に、メモリコアＭ２，Ｍ３に書き込まれた１６ビットデータ「１０００１１１０／１１０１０１１１」（図１４（ｃ）参照）を読み出すデータ読み出し動作について説明する。
【０１０８】
まず、上述した読み出し動作と同様に、図９に示すステップＳ４１において、判定器３０は、ワード線ＷＬ０を選択するための選択信号ＳＳをデコーダ２０に出力して、ステップＳ４２に移る。
【０１０９】
ステップＳ４２において、まず、判定器３０は、切替えセレクタ４０を制御して、デコーダ２０により選択されたワード線ＷＬ０に接続される第１フラグセルＦＣ１からデータを読み出す。次に、判定器３０は、読み出したメモリコアＭ１の第１フラグセルＦＣ１のデータが「１」（図１０（ｃ）参照）である、すなわち読み出し不能状態であると判断して、ステップＳ４６に移る。
【０１１０】
ステップＳ４６において、まず、判定器３０は、切替えセレクタ４０を制御して、デコーダ２０により選択されたワード線ＷＬ０に接続される第２フラグセルＦＣ２からデータを読み出す。次に、判定器３０は、読み出した第２フラグセルＦＣ２のデータが「０」であるか、「１」であるかを判定する。ここで、第２フラグセルＦＣ２の「０」は、データセルＤＣに書き込まれたデータが８ビットデータであることを示し、フラグセルＦＣの「１」は、データセルＤＣに書き込まれたデータが１６ビットデータであることを示す。ここでは、判定器３０は、読み出したメモリコアＭ１の第２フラグセルＦＣ２のデータが「０」（図１０（ｃ）参照）である、すなわちメモリコアＭ１のデータセルＤＣに書き込まれたデータが８ビットデータであると判断して、ステップＳ４７に移る。
【０１１１】
ステップＳ４７において、判定器３０は、これまで選択していたワード線番号「０」に「１」を加えてワード線番号を「１」にして、ワード線ＷＬ１を選択するための選択信号ＳＳをデコーダ２０に出力し、ステップＳ４２に戻る。
【０１１２】
なお、ステップＳ４６において、判定器３０が、読み出したメモリコアＭ１の第２フラグセルＦＣ２のデータが「１」である、すなわちメモリコアＭ１のデータセルＤＣに書き込まれたデータが１６ビットデータであると判断した場合には、ステップＳ４８に移る。そして、ステップＳ４８において、判定器３０は、これまで選択していたワード線番号「０」に「２」を加えてワード線番号を「２」にして、ワード線ＷＬ２を選択するための選択信号ＳＳをデコーダ２０に出力し、ステップＳ４２に戻る。すなわち、メモリコアＭ１のデータセルＤＣに１６ビットデータが書き込まれている場合には、必ずメモリコアＭ２のデータセルＤＣにもデータが書き込まれており、メモリコアＭ１と同じ読み出し不能状態になっている。そのため、ステップＳ４８において、ワード線ＷＬ１を省略して、ワード線ＷＬ０からワード線ＷＬ２に変更するようにしている。
【０１１３】
ステップＳ４２において、まず、判定器３０は、切替えセレクタ４０を制御して、デコーダ２０により選択されたワード線ＷＬ１に接続される第１フラグセルＦＣ１からデータを読み出す。次に、判定器３０は、読み出したメモリコアＭ２の第１フラグセルＦＣ１のデータが「０」（図１０（ｃ）参照）である、すなわち読み出し可能状態であると判断して、ステップＳ４３に移る。
【０１１４】
ステップＳ４３において、切替えセレクタ４０は、判定器３０からの読み出し指令に基づいて、デコーダ２０により選択されたワード線ＷＬ１に接続されるメモリコアＭ２のデータセルＤＣに格納されているデータを読み出し、出力データＤｏｕｔとして出力する。これによって、メモリコアＭ２の各データセルＤＣに書き込まれた上位８ビットデータ「１０００１１１０」が出力される。
【０１１５】
続いて、ステップＳ４４において、まず、判定器３０は、切替えセレクタ４０を制御して、デコーダ２０により選択されたワード線ＷＬ１に接続される第２フラグセルＦＣ２からデータを読み出す。次に、判定器３０は、読み出したメモリコアＭ２の第２フラグセルＦＣ２のデータが「１」（図１０（ｃ）参照）である、すなわちメモリコアＭ２のデータセルＤＣに書き込まれたデータが１６ビットデータでありデータ読み出し継続状態であると判断して、ステップＳ４５に移る。
【０１１６】
ステップＳ４５において、判定器３０は、これまで選択していたワード線番号「１」に「１」を加えてワード線番号を「２」にして、ワード線ＷＬ２を選択するための選択信号ＳＳをデコーダ２０に出力し、ステップＳ４３に戻る。
【０１１７】
ステップＳ４３において、切替えセレクタ４０は、判定器３０からの読み出し指令に基づいて、デコーダ２０により選択されたワード線ＷＬ２に接続されるメモリコアＭ２のデータセルＤＣに格納されているデータを読み出し、出力データＤｏｕｔとして出力する。これによって、メモリコアＭ３の各データセルＤＣに書き込まれた下位８ビットデータ「１１０１０１１１」の各ビット値が出力されて、メモリコアＭ２，Ｍ３に書き込まれた１６ビットデータが読み出される。このように、２回目の１６ビットデータが書き込まれたメモリコアＭ２，Ｍ３のデータセルＤＣからのみ、データを読み出すことができる。すなわち、メモリコアＭ１のデータセルＤＣに書き込まれた１回目の８ビットデータは、フラグセルＦＣが「１」（読み出し不能状態）であることによって、読み出されることはなく擬似的に消去され、メモリコアＭ２，Ｍ３に書き込まれた２回目の１６ビットデータのみを読み出すことができる。また、判定器３０は、書き込み動作時及び読み出し動作時において、ワード線を、ワード線ＷＬ０、ワード線ＷＬ１、ワード線ＷＬ２、ワード線ＷＬ３という不可逆的な順序で選択する。
【０１１８】
続いて、ステップＳ４４において、まず、判定器３０は、切替えセレクタ４０を制御して、デコーダ２０により選択されたワード線ＷＬ２に接続される第２フラグセルＦＣ２からデータを読み出す。次に、判定器３０は、読み出したメモリコアＭ３の第２フラグセルＦＣ２のデータが「０」（図１０（ｃ）参照）である、すなわち読み出し終了位置であると判断して、読み出し動作を終了する。
【０１１９】
以上、説明した実施形態によれば、第１実施形態の（１）の作用効果に加え、以下の効果を奏する。
（３）各データセルＤＣに書き込まれるデータのビット幅を示すデータ（フラグ値）が書き込まれる第２フラグセルＦＣ２を設けた。これによれば、第２フラグセルＦＣ２のフラグ値に基づいてデータセルＤＣに書き込まれるデータのビット幅を判断して、書き込み動作及び読み出し動作を行うことができる。従って、８ビットと１６ビットという異なるビット幅のデータを取り扱うことができる。
【０１２０】
（第４実施形態）
以下、本発明を具体化した第４実施形態について、図１１〜図１４に従って説明する。この実施形態の半導体記憶装置４は、メモリ部１４の構成と判定器３０の機能が上記第１実施形態と異なっている。以下、第１実施形態との相違点を中心に説明する。
【０１２１】
図１１に示すように、メモリ部１４は、複数（本実施形態では１６個）のメモリコアＭ１〜Ｍ１６が列方向に並設されている。各メモリコアＭ１〜Ｍ１６は、データ読み出し開始位置及びデータ読み出し終了位置を示すフラグセルＦＣ及び８つのデータセルＤＣとから構成されている。なお、本実施形態では、８ビット以上のビット幅のデータが入力される場合には、最も下位の８ビットからデータレジスタ６０に入力されるようになっている。すなわち、１６ビットデータ「１１０１１００１／１０００１１１０」が入力された場合には、下位８ビット「１００００１１１０」がはじめにデータレジスタ６０に入力される。
【０１２２】
このように構成された半導体記憶装置４の動作について図１３〜図１５に従って説明する。
はじめに、図１１に示すような初期状態（全てのメモリセルＭＣがブランク状態）のメモリ部１４に１回目の８ビットデータ「１１０１１００１」を書き込むデータ書き込み動作について説明する。
【０１２３】
まず、コマンドレジスタ５０に書き込み信号が入力されると、コマンドレジスタ５０においてライトコマンドが生成されて、コマンドレジスタ５０はそのライトコマンドを判定器３０に出力する。次に、入力データＤｉｎとして８ビットデータ「１１０１１００１」がコマンドレジスタ５０に入力されると、コマンドレジスタ５０は、８ビットデータを入力順にそのままデータレジスタ６０に出力する（図１１参照）。
【０１２４】
図１２に示すステップＳ５１において、コマンドレジスタ５０から判定器３０にライトコマンドが入力されると、判定器３０は、図１１においてワード線のうち最も下側に位置するワード線ＷＬ１５を選択するための選択信号ＳＳをデコーダ２０に出力するとともに、入力されたライトコマンドを切替えセレクタ４０に出力する。デコーダ２０は、判定器３０から入力された選択信号ＳＳに基づいてワード線ＷＬ１５を選択する。また、切替えセレクタ４０は、入力されたライトコマンドに基づいて書き込み回路として動作する。
【０１２５】
ステップＳ５２において、判定器３０は、デコーダ２０により選択されたワード線ＷＬ１５に接続されるメモリコアＭ１６にデータが既に書き込まれているか、ブランク状態であるかを判定する。この処理は、例えば判定器３０内に、書き込み回数をカウントするカウンタを設けて、そのカウント値に基づいて所定のメモリコアがブランク状態であるかを判断する。ここでは、判定器３０は、書き込み回数が０回であることから、メモリコアＭ１５がブランク状態であると判断して、ステップＳ５３に移る。
【０１２６】
ステップＳ５３において、判定器３０は、切替えセレクタ４０に対して書き込み指令を行う。すなわち、切替えセレクタ４０は、判定器３０からの書き込み指令に基づいて、データレジスタ６０に格納されている８ビットデータ「１１０１１００１」を、デコーダ２０により選択されたワード線ＷＬ１５に接続されるデータセルＤＣに書き込む（図１４（ａ）参照）。
【０１２７】
このように、判定器３０による選択信号ＳＳによって、書き込み先のメモリコアとしてメモリコアＭ１６が選択され、そのメモリコアＭ１６の各データセルＤＣに８ビットデータ「１１０１１００１」が書き込まれる。
【０１２８】
続いて、ステップＳ５４において、判定器３０は、コマンドレジスタ５０に入力された入力データＤｉｎの書き込みが全て終了したかを判定する。ここでは、入力された８ビットデータの入力が全て終了していることから、ステップＳ５５に移る。
【０１２９】
ステップＳ５５において、判定器３０は、切替えセレクタ４０を制御して、デコーダ２０により選択されたワード線ＷＬ１５に接続されるフラグセルＦＣ、すなわちメモリコアＭ１６のフラグセルＦＣに「１」を書き込み（図１４（ａ）参照）、メモリコアＭ１６を読み出し開始位置に設定して、書き込み動作を終了する。
【０１３０】
次に、メモリコアＭ１６に書き込まれた８ビットデータ「１１０１１００１」（図１４（ａ）参照）を読み出すデータ読み出し動作について説明する。
まず、コマンドレジスタ５０に読み出し信号が入力されると、コマンドレジスタ５０においてリードコマンドが生成される。
【０１３１】
図１３に示すステップＳ６１において、コマンドレジスタ５０から判定器３０にリードコマンドが入力されると、判定器３０は、ワード線ＷＬ０を選択するための選択信号ＳＳをデコーダ２０に出力するとともに、入力されたリードコマンドを切替えセレクタ４０に出力する。このとき、デコーダ２０は、判定器３０から入力された選択信号ＳＳに基づいてワード線ＷＬ０を選択する。
【０１３２】
ステップＳ６２において、まず、判定器３０は、切替えセレクタ４０を制御して、デコーダ２０により選択されたワード線ＷＬ０に接続されるフラグセルＦＣからデータを読み出す。次に、判定器３０は、読み出したフラグセルＦＣのデータが「０」であるか、「１」であるかを判定する。ここで、フラグセルＦＣの「０」は、データセルＤＣにデータが書き込まれていない読み出し非開始位置であることを示し、フラグセルＦＣの「１」は、そのフラグセルＦＣが含まれるメモリコアが読み出し開始位置であることを示す。ここでは、判定器３０は、メモリコアＭ１のフラグセルＦＣのデータが「０」（図１４（ａ）参照）である、すなわちメモリコアＭ１が読み出し非開始位置であると判断し、ステップＳ６３に移る。
【０１３３】
ステップＳ６３において、判定器３０は、これまで選択していたワード線番号「０」に「１」を加えてワード線番号を「１」にして、ワード線ＷＬ１を選択するための選択信号ＳＳをデコーダ２０に出力し、ステップＳ６２に戻る。
【０１３４】
ステップＳ６２において、まず、判定器３０は、切替えセレクタ４０を制御して、デコーダ２０により選択されたワード線ＷＬ１に接続されるフラグセルＦＣからデータを読み出す。次に、判定器３０は、メモリコアＭ２のフラグセルＦＣのデータが「０」である、すなわちメモリコアＭ１がデータ読み出し非開始位置であると判断し、ステップＳ６３に移る。すなわち、判定器３０によって、切替えセレクタ４０から入力されるメモリコアのフラグセルＦＣのデータが「１」であると判断されるまで、ステップＳ６２及びステップＳ６３が繰り返される。換言すると、ワード線の選択が、データ読み出し開始位置に指定されたメモリコアに接続されるワード線に達するまで、ステップＳ６２及びステップＳ６３が繰り返される。
【０１３５】
本例では、デコーダ２０によってワード線ＷＬ１５が選択されると、そのワード線ＷＬ１５に接続されるメモリコアＭ１６のフラグセルＦＣのデータ「１」（図１４（ａ）参照）が切替えセレクタ４０から判定器３０に出力される。すると、ステップＳ６２において、判定器３０は、メモリコアＭ１６のデータが「１」である、すなわちメモリコアＭ１６が読み出し開始位置であると判断して、ステップＳ６４に移る。
【０１３６】
ステップＳ６４において、切替えセレクタ４０は、判定器３０からの読み出し指令に基づいて、デコーダ２０により選択されたワード線ＷＬ１５に接続されるメモリコアＭ１６のデータセルＤＣに格納されているデータを読み出し、出力データＤｏｕｔとして出力する。これによって、メモリコアＭ１６の各データセルＤＣに書き込まれた８ビットデータ「１１０１１００１」が出力される。このように、判定器３０による選択信号ＳＳ及びフラグセルＦＣのデータ「１」によって、読み出し先のメモリコアとして８ビットデータが書き込まれたメモリコアＭ１６が選択され、そのメモリコアＭ１６からデータを読み出すことができる。
【０１３７】
続いて、ステップＳ６５において、これまで選択されていたワード線番号「１５」に「１」を加えてワード線を変更するが、本例の場合には、ワード線ＷＬ１５は読み出し動作時に最後に選択されるワード線であるため、選択するワード線は変更されない。そして、判定器３０は、ワード線ＷＬ１５を選択するための選択信号ＳＳをデコーダ２０に出力して、ステップＳ６６に移る。
【０１３８】
ステップＳ６６において、まず、判定器３０は、切替えセレクタ４０を制御して、デコーダ２０により選択されたワード線ＷＬ１５に接続されるフラグセルＦＣからデータを読み出す。次に、判定器３０は、読み出したフラグセルＦＣのデータが「０」であるか、「１」であるかを判定する。ここで、フラグセルＦＣの「０」は、そのフラグセルＦＣが含まれるメモリコアがデータ読み出し終了位置でないことを示し、フラグセルＦＣの「１」は、そのフラグセルＦＣが含まれるメモリコアがデータ読み出し終了位置であることを示す。ここでは、判定器３０は、メモリコアＭ１６のフラグセルＦＣのデータが「１」（図１４（ａ）参照）である、すなわちメモリコアＭ１６がデータ読み出し終了位置であると判断し、データ読み出し動作を終了する。従って、本例においては、メモリコアＭ１６のフラグセルＦＣのデータ「１」は、ステップＳ６２においてデータ読み出し開始位置を示し、ステップＳ６６においてデータ読み出し終了位置を示す。
【０１３９】
このように、本実施形態では、判定器３０は、書き込み動作時において、ワード線を、ワード線ＷＬ１５、ワード線ＷＬ１４、・・・、ワード線ＷＬ１、ワード線ＷＬ０という不可逆的な順序で選択する。その一方で、判定器３０は、読み出し動作時において、ワード線を、ワード線ＷＬ０、ワード線ＷＬ１、・・・、ワード線ＷＬ１４、ワード線ＷＬ１５という書き込み動作時とは反対の不可逆的な順序で選択する。
【０１４０】
次に、メモリコアＭ１６のデータセルＤＣに８ビットデータが書き込まれているメモリ部１４に、１６ビットデータ「０１１１０００１／１１１０１０１１」を書き込むデータ書き込み動作について説明する。
【０１４１】
まず、１回目の書き込み動作と同様に、コマンドレジスタ５０に書き込み信号が入力されると、コマンドレジスタ５０においてライトコマンドが生成される。次に、前述したように、１６ビットデータのうち下位８ビットデータ「１１１０１０１１」が、はじめにコマンドレジスタ５０を介してデータレジスタ６０に出力されて格納される。
【０１４２】
ステップＳ５１において、判定器３０は、ワード線ＷＬ１５を選択するための選択信号ＳＳをデコーダ２０に出力して、ステップＳ５２に移る。
ステップＳ５２において、判定器３０は、書き込み回数に基づいて、デコーダ２０により選択されたワード線ＷＬ１５に接続されるメモリコアＭ１６にデータが既に書き込まれていると判断して、ステップＳ５６に移る。
【０１４３】
ステップＳ５６において、判定器３０は、これまで選択していたワード線番号から「１」を減算して選択するワード線を変更し、その変更したワード線を選択するための選択信号ＳＳをデコーダ２０に出力する。ここでは、判定器３０は、ワード線番号「１５」から「１」を減算してワード線番号「１４」にし、ワード線ＷＬ１４を選択するための選択信号ＳＳをデコーダ２０に出力し、ステップＳ５２に戻る。
【０１４４】
ステップＳ５２において、判定器３０は、書き込み回数に基づいて、デコーダ２０により選択されるワード線ＷＬ１４に接続されるメモリコアＭ１５がブランク状態であると判断して、ステップＳ５３に移る。
【０１４５】
ステップＳ５３において、切替えセレクタ４０は、判定器３０からの書き込み指令に基づいて、データレジスタ６０に格納されている８ビットデータ「１１１０１０１１」を、デコーダ２０により選択されたワード線ＷＬ１４に接続されるデータセルＤＣに書き込む。これによって、図１４（ｂ）に示すように、メモリコアＭ１５の各データセルＤＣに８ビットデータ「１１１０１０１１」が書き込まれる。
【０１４６】
続いて、ステップＳ５４において、１６ビットデータのうち上位８ビットデータ「０１１１０００１」の書き込みが終了していないことから、判定器３０は、コマンドレジスタ５０に入力された入力データＤｉｎの書き込みが全て終了していないと判断し、ステップＳ５７に移る。
【０１４７】
ステップＳ５７において、判定器３０は、これまで選択していたワード線番号「１４」から「１」を減算してワード線番号を「１３」に変更して、ワード線ＷＬ１３を選択するための選択信号ＳＳをデコーダ２０に出力して、ステップＳ５３に移る。このとき、コマンドレジスタ５０から１６ビットデータの上位８ビットデータ「０１１１０００１」がデータレジスタ６０に出力されて、その上位８ビットデータがデータレジスタ６０に格納される。
【０１４８】
ステップＳ５３において、切替えセレクタ４０は、判定器３０からの書き込み指令に基づいて、データレジスタ６０に格納されている８ビットデータ「０１１１０００１」を、デコーダ２０により選択されたワード線ＷＬ１３に接続されるメモリコアＭ１４のデータセルＤＣに書き込む。これによって、図１４（ｃ）に示すように、メモリコアＭ１４，Ｍ１５の各データセルＤＣに１６ビットデータ「０１１１０００１／１１１０１０１１」の各ビット値が書き込まれる。
【０１４９】
続いて、ステップＳ５４において、判定器３０は、コマンドレジスタ５０に入力された１６ビットデータ（入力データＤｉｎ）の入力が全て終了していると判断して、ステップＳ５５に移る。
【０１５０】
ステップＳ５５において、判定器３０は、切替えセレクタ４０を制御して、デコーダ２０により選択されたワード線ＷＬ１３に接続されるフラグセルＦＣ、すなわちメモリコアＭ１４のフラグセルＦＣに「１」を書き込み（図１４（ｃ）参照）、メモリコアＭ１４を読み出し開始位置に設定して、書き込み動作を終了する。なお、このとき、メモリコアＭ１４が読み出し開始位置に設定されると、これまで読み出し開始位置であったメモリコアＭ１６が読み出し終了位置に設定されるようになっている。これによって、１回目の８ビットデータが書き込まれたメモリコアＭ１６からデータが読み出されなくなるため、メモリコアＭ１６に書き込まれたデータを擬似的に消去することができる。
【０１５１】
次に、メモリコアＭ１４，Ｍ１５に書き込まれた１６ビットデータ「０１１１０００１／１１１０１０１１」（図１４（ｃ）参照）を読み出すデータ読み出し動作について説明する。
【０１５２】
図１４に示すステップＳ６１，Ｓ６２，Ｓ６３の処理は、上述した読み出し動作と同様の処理を行う。
本例では、図１４（ｃ）に示すように、デコーダ２０によってワード線ＷＬ１３が選択されると、そのワード線ＷＬ１３に接続されるメモリコアＭ１４のフラグセルＦＣのデータ「１」が切替えセレクタ４０から判定器３０に出力される。すると、ステップＳ６２において、判定器３０は、メモリコアＭ１４のデータが「１」である、すなわちメモリコアＭ１４が読み出し開始位置であると判断して、ステップＳ６４に移る。
【０１５３】
ステップＳ６４において、切替えセレクタ４０は、判定器３０からの読み出し指令に基づいて、デコーダ２０により選択されたワード線ＷＬ１３に接続されるメモリコアＭ１４のデータセルＤＣに格納されているデータを読み出し、出力データＤｏｕｔとして出力する。これによって、メモリコアＭ１４の各データセルＤＣに書き込まれた上位８ビットデータ「０１１１０００１」がはじめに出力される。
【０１５４】
続いて、ステップＳ６５において、判定器３０は、これまで選択されていたワード線番号「１３」に「１」を加えてワード線番号を「１４」にして、ワード線ＷＬ１４を選択するための選択信号ＳＳをデコーダ２０に出力し、ステップＳ６６に移る。
【０１５５】
ステップＳ６６において、まず、判定器３０は、切替えセレクタ４０を制御して、デコーダ２０により選択されたワード線ＷＬ１４に接続されるフラグセルＦＣからデータを読み出す。次に、判定器３０は、メモリコアＭ１５のフラグセルＦＣのデータが「０」（図１４（ｃ）参照）である、すなわちメモリコアＭ１５がデータ読み出し終了位置でないと判断し、ステップＳ６４に戻る。
【０１５６】
ステップＳ６４において、切替えセレクタ４０は、判定器３０からの読み出し指令に基づいて、デコーダ２０により選択されたワード線ＷＬ１４に接続されるメモリコアＭ１５のデータセルＤＣに格納されているデータを読み出し、出力データＤｏｕｔとして出力する。これによって、メモリコアＭ１５の各データセルＤＣに書き込まれた下位８ビットデータ「１１１０１０１１」が出力される。従って、はじめに上位８ビットを読み出し、次に下位８ビットを読み出すことができる。
【０１５７】
続いて、ステップＳ６５において、判定器３０は、これまで選択されていたワード線番号「１４」に「１」を加えてワード線番号を「１５」にして、ワード線ＷＬ１５を選択するための選択信号ＳＳをデコーダ２０に出力し、ステップＳ６６に移る。
【０１５８】
ステップＳ６６において、まず、判定器３０は、切替えセレクタ４０を制御して、デコーダ２０により選択されたワード線ＷＬ１５に接続されるフラグセルＦＣからデータを読み出す。次に、判定器３０は、メモリコアＭ１６のフラグセルＦＣのデータが「１」（図１４（ｃ）参照）である、すなわちメモリコアＭ１６が読み出し終了位置であると判断し、読み出し動作を終了する。
【０１５９】
このように、書き込み終了時に、フラグセルに「１」を書き込んで読み出し開始位置を設定することによって、自動的にこれまで読み出し開始位置であったメモリコアが読み出し終了位置に設定変更されるため、これまで読み出していたデータは読み出されなくなり、擬似的に消去される。従って、擬似的にデータが消去されるメモリコアの次のメモリコアに新しいデータを書き込まれることにより、いわゆるデータの書き換えが擬似的に行われているとみなすことができる。さらに、読み出し開始位置から読み出し終了位置までのデータ、すなわち最も新しく書き込まれたデータのみを読み出すことができる。
【０１６０】
以上、説明した実施形態によれば、第１実施形態の（１）及び第３実施形態の（３）の作用効果に加え、以下の効果を奏する。
（４）本例では、データ書き込み終了時にメモリコアＭ１４が読み出し開始位置に設定されると、これまで読み出し開始位置であったメモリコアＭ１６が読み出し終了位置に設定される。従って、データセルＤＣに書き込まれるデータのビット幅を自由に変更することができる。
【０１６１】
なお、上記実施形態は、これを適宜変更した以下の態様にて実施することもできる。
・図１５に示すように、上記第１実施形態、第２実施形態及び第４実施形態においても第３実施形態と同様に、フラグセルＦＣに書き込むビットを含む９ビットデータを入力データＤｉｎとして入力するようにしてもよい。この入力データＤｉｎの最下位ビットによって、フラグセルＦＣに「１」を書き込むことができる。
【０１６２】
・上記第３実施形態においても、上記第１、第２及び第４実施形態のように、判定器３０等により、第１フラグセルＦＣ１及び第２フラグセルＦＣ２に自動的にビット「１」が付与されるようにしてもよい。
【０１６３】
・上記第１及び第４実施形態では、デコーダ２０により選択されたワード線に接続されるメモリコアがブランク状態であるかを確認するステップＳ３及びステップＳ５２を、書き込み回数をカウントして行うようにしたが、例えば所定のメモリコア内のデータセルＤＣのデータを一旦読み出して、全て「０」であるかを確認するようにしてもよい。
【０１６４】
・上記第１、第３及び第４実施形態では、新たなデータが入力される度に選択されるワード線を順次変更することにより、同一のメモリコアに２回のデータの書き込みが行われないようにしたが、同一のメモリコアに複数回のデータの書き込みを行えるようにしてもよい。これにより、各実施形態の半導体記憶装置の書き換え可能回数を増大させることも可能となる。
【０１６５】
例えば上記第１実施形態において、デコーダ２０により選択されたワード線に接続されるメモリコアがブランク状態であるかを確認するステップＳ３（図２参照）を、メモリコアに書き込まれている第１のデータと次に書き込む第２のデータとを比較して、そのメモリコアに書き込みが可能かを判断する工程に変更してもよい。すなわち、デコーダ２０により選択されたワード線に接続されるメモリコアに書き込まれている第１のデータを読み出して、その第１のデータと次に書き込む第２のデータとを比較する。この比較の結果、第１のデータが書き込まれているメモリコアへの第２のデータの書き込み動作において、「０」から「１」への書き換え、すなわち所定論理値「１」への書き換えのみである場合には、そのメモリコアへの書き込みが可能であると判断される。一方、第２のデータの書き込み動作において、１つでも「１」から「０」への書き換え、すなわち所定論理値とは逆の論理値「０」への書き換えが１つでも含まれる場合には、そのメモリコアへの書き込みが不能であると判断される。そして、書き込みが可能な場合には、ステップＳ４に移り、第１のデータが書き込まれているメモリコアに第２のデータが書き込まれる。一方、書き込みが不能な場合には、ステップＳ５に移り、切替えセレクタ４０によって、上記メモリコアのフラグセルＦＣに「１」が書き込まれてアクセス不能状態に設定され、ステップＳ６，Ｓ２を介して、次に選択されたワード線に接続されるメモリコアのデータセルＤＣに第２のデータが書き込まれる。なお、第４実施形態の場合には、フラグセルＦＣとは別に、上記第１実施形態の変形例と同様の機能を有するフラグセルを設ける必要がある。
【０１６６】
次に、別の例として、第３実施形態の構成や図１５に示す構成のように、入力データＤｉｎ内に各フラグセルに書き込まれるデータが含まれている場合の同一メモリコアへのデータ再書き込みについて、図１５及び図１６に従って説明する。
【０１６７】
まず、図１５に示すように、第１のデータとして「１０００１０１１」がメモリコアＭ１に書き込まれ、次に第２のデータとして「１０１１１０１１」が書き込まれる場合について説明する。実際には、第１のデータとしては、フラグセルＦＣに書き込まれる書き込み制御値としてのビット値「０」を含む「１０００１０１１０」がメモリコアＭ１に書き込まれ、次に第２のデータとして、フラグセルＦＣに書き込まれるビット値「０」を含む「１０１１１０１１０」がメモリコアＭ１に書き込まれる。この場合、メモリコアＭ１のデータセルＤＣには、「１０１１１０１１０」が書き込まれ、第２のデータと同一のデータがメモリコアＭ１に書き込まれる。すなわち、第２のデータ書き込み動作が所定論理値「１」の書き換えのみの場合には、第１のデータの書き込まれているメモリコアに正常に第２のデータを書き込むことができる。なお、このときユーザによって、メモリコアＭ１に書き込まれているデータが読み出され、その読み出されたデータと第２のデータとが同一であるかが確認される。
【０１６８】
次に、図１６（ａ）に示すように、第１のデータとして「１０１１１０１１」がメモリコアＭ１に書き込まれ、次に第２のデータとして「００１１１１１１」が書き込まれる場合について説明する。実際には、第１のデータとしては、フラグセルＦＣに書き込まれるビット値「０」を含む「１０００１０１１０」がメモリコアＭ１に書き込まれ、次に第２のデータとして、フラグセルＦＣに書き込まれるビット値「０」を含む「００１１１１１１０」がメモリコアＭ１に書き込まれる。この場合、図１６（ｂ）に示すように、メモリコアＭ１のデータセルＤＣには、「１０１１１１１１」が書き込まれ、第２のデータと異なるデータがメモリコアＭ１に書き込まれることになる。すなわち、第２の書き込み動作において、１つでも所定論理値と逆の論理値「０」への書き換えが含まれる場合には、第２のデータと異なるデータがメモリコアＭ１に書き込まれることになる。このとき、ユーザによって、メモリコアＭ１に書き込まれているデータが読み出され、その読み出されたデータと第２のデータとが異なっていることが確認される。すると、図１６（ｃ）に示すように、続いて第２のデータとして、メモリコアＭ１のフラグセルＦＣに書き込まれるビット値「１」を含む「００１１１１１１１」が入力される。このデータの書き込みにより、メモリコアＭ１のフラグセルに「１」が書き込まれアクセス不能状態に設定され、上位８ビット「００１１１１１１」がメモリコアＭ２に書き込まれる。これにより、第２のデータがメモリコアＭ２に書き込まれることになる。
【０１６９】
なお、第３実施形態についても、第１フラグセルＦＣ１を、上記図１５に示すフラグセルＦＣと同様に使用することにより、データの書き込まれているメモリコアへのデータの再書き込みを行うことができる。また、第４実施形態についても、図１１に示すフラグセルＦＣとは別に、図１５に示すフラグセルと同様の機能を有するフラグセルを設けることにより、データの書き込まれているメモリコアへのデータの再書き込みを行うことができる。
【０１７０】
・上記第３実施形態では、第２フラグセルＦＣ２に対して、データセルＤＣに書き込まれるデータが８ビットデータのときに「０」を書き込み、１６ビットデータのときに「１」を書き込むようにしたが、このデータのビット幅に特に制限されない。例えば、第２フラグセルＦＣ２に対して、データセルＤＣに書き込まれるデータが３２ビットデータのときに「０」を書き込み、６４ビットデータのときに「１」を書き込むようにしてもよい。
【０１７１】
・上記第３実施形態では、データ長を選択するためのフラグセル、すなわち第２フラグセルＦＣ２を１つのメモリセルＭＣから構成したが、第２フラグセルＦＣ２を２つ以上のメモリセルから構成するようにしてもよい。この場合、例えば２つの第２フラグセルＦＣ２が、「００」の場合は８ビットデータであることを示し、「０１」の場合は１６ビットデータであることを示し、「１０」の場合は３２ビットデータであることを示し、「１１」の場合は６４ビットデータであることを示すことができる。このように、第２フラグセルＦＣ２のメモリセル数を増大させることによって、選択することのできるビット幅の種類を増大させることができる。
【０１７２】
・上記各実施形態におけるメモリコアの数に制限はない。メモリコアの数を増大させるほど、書き換え可能回数を増大させることができる。
・上記実施形態におけるメモリコア内のデータセルの数に特に制限はない。
【０１７３】
・上記各実施形態では、判定器３０の選択信号ＳＳ及び各フラグセルのデータに基づいて、ワード線を選択するようにしたが、ビット線を選択するようにしてもよい。すなわち、ワード線とビット線を入れ替えてもよい。
【０１７４】
・上記各実施形態におけるメモリセルＭＣは、「０」をブランク状態としたが、「１」をブランク状態としてもよい。
・上記各実施形態におけるメモリセルＭＣは、プログラム動作のみ可能な不揮発性メモリであるとしたが、例えばフューズでもよい。
【０１７５】
・上記各実施形態では、シリアルデータを入出力するようにしたが、パラレルデータを入出力するようにしてもよい。
以上の様々な実施の形態をまとめると、以下のようになる。
（付記１）
データ書き込みが所定論理値に制限される多数の不揮発性メモリセルを備えて、各々独立してアクセス制御の対象とされる複数のメモリコアと、
前記アクセス制御の対象となる前記メモリコアを選択するアクセス制御手段と、を備え、
前記各メモリコアを構成する前記不揮発性メモリセルは、フラグ値が書き込まれるフラグセルと、データが書き込まれるデータセルとからなり、
前記アクセス制御手段は、前記フラグセルのフラグ値に基づいて、前記アクセス制御の対象となる前記メモリコアを選択することを特徴とする半導体記憶装置。
（付記２）
前記アクセス制御手段は、
書き込み動作時に、前記メモリコアを不可逆な所定順序で選択するとともに、読み出し動作時に、前記メモリコアを前記書き込み動作と同一の所定順序で選択し、
所定の前記メモリコアに第１のデータが書き込まれた状態で、第２のデータが入力されたときに、前記第１のデータが書き込まれた前記所定のメモリコアのフラグセルに所定論理値を書き込むことで、該所定のメモリコアをアクセス不能状態に設定するとともに、前記所定順序で選択される次のメモリコアに対して前記第２のデータの書き込みを行うようにしたことを特徴とする付記１に記載の半導体記憶装置。
（付記３）
前記フラグセルは、第１フラグセルと第２フラグセルとから構成され、
前記アクセス制御手段は、
書き込み動作時に、前記メモリコアを不可逆な所定順序で選択するとともに、読み出し動作時に、前記メモリコアを前記書き込み動作と同一の所定順序で選択し、
前記メモリコアにデータを書き込むときに、該データのビット幅を示すフラグ値を前記第２フラグセルに書き込むとともに、前記データを前記所定のメモリコアのデータセルに書き込み、
所定の前記メモリコアに第１のデータが書き込まれた状態で、第２のデータが入力されたときに、前記第１のデータが書き込まれた前記所定のメモリコアの第１フラグセルに所定論理値を書き込むことで、該所定のメモリコアをアクセス不能状態に設定するとともに、前記所定順序で選択される次のメモリコアに対して第２のデータの書き込みを行うようにしたことを特徴とする付記１に記載の半導体記憶装置。
（付記４）
前記アクセス制御手段は、
書き込み動作時に、前記メモリコアを不可逆な所定順序で選択するとともに、読み出し動作時に、前記メモリコアを前記書き込み動作と同一の所定順序で選択し、
所定の前記メモリコアのデータセルにデータを書き込むときに、該所定のメモリコアのフラグセルに所定論理値を書き込むことで、該所定のメモリコアをデータ読み出し可能状態に設定することを特徴とする付記１に記載の半導体記憶装置。
（付記５）
前記アクセス制御手段は、
書き込み動作時に、前記メモリコアを不可逆な所定順序で選択するとともに、読み出し動作時に、前記メモリコアを前記書き込み動作と反対の不可逆な所定順序で選択し、
前記メモリコアのデータセルに第１のデータを書き込むときに、該第１のデータの書き込み終了時において選択されるメモリコアのフラグセルに所定論理値を書き込むことで、該書き込み終了時において選択されるメモリコアをデータ読み出し開始位置に設定するとともに、該第１のデータの前に書き込まれた第２のデータを書き込むときに所定論理値が書き込まれたフラグセルを含むメモリコアをデータ読み出し終了位置に設定することを特徴とする付記１に記載の半導体記憶装置。
（付記６）
前記データと書き込み制御値とから構成される入力データが入力され、
前記アクセス制御手段は、
前記書き込み制御値が第１の論理値のときには前記データをその時のアクセス制御の対象となる前記メモリコアに書き込み、
前記書き込み制御値が第２の論理値のときにはその時のアクセス制御の対象である前記メモリコアをアクセス不能とする値を該メモリコアのフラグセルに書き込むとともに、アクセス可能な他のメモリコアをアクセス制御の対象として該メモリコアに前記データを書き込むことを特徴とする付記１に記載の半導体記憶装置。
（付記７）
前記アクセス制御手段は、
前記第１のデータが書き込まれている前記メモリコアへの前記第２のデータの書き込み動作において、前記所定論理値の書き換えのみであるときに、前記第１のデータが書き込まれているメモリコアに前記第２のデータの書き込みを行い、
前記第１のデータが書き込まれている前記メモリコアへの前記第２のデータの書き込み動作において、前記所定論理値と逆の論理値の書き換えが少なくとも１ビット含まれるときに、前記第１のデータが書き込まれているメモリコアをアクセス不能状態に設定するとともに、前記所定順序で選択される次のメモリコアに対して前記第２のデータの書き込みを行うようにしたことを特徴とする付記３又は４に記載の半導体記憶装置。
（付記８）
前記フラグセルとは別に、第２フラグセルを設け、
前記アクセス制御手段は、
前記第２のデータが書き込まれている前記メモリコアへの前記第１のデータの書き込み動作において、前記所定論理値への書き換えのみであるときに、前記第２のデータが書き込まれているメモリコアに前記第１のデータの書き込みを行い、
前記第２のデータが書き込まれている前記メモリコアへの前記第１のデータの書き込み動作において、前記所定論理値と逆の論理値への書き換えが少なくとも１ビット含まれるときに、前記第２のデータが書き込まれているメモリコアの前記第２フラグセルに前記所定論理値を書き込むことで、該メモリコアを書き込み不能状態に設定するとともに、前記書き込み動作時の所定順序で選択される次のメモリコアに対して前記第１のデータの書き込みを行うようにしたことを特徴とする付記５に記載の半導体記憶装置。
（付記９）
データ書き込みが所定論理値に制限される多数の不揮発性メモリセルを備える複数のメモリコアを備える半導体記憶装置の制御方法において、
前記メモリコア内の前記不揮発性メモリセルからなるフラグセルのフラグ値に基づいて、アクセス制御の対象となる前記メモリコアを選択することを特徴とする半導体記憶装置の制御方法。
（付記１０）
前記メモリコアを、不可逆な所定順序で選択して書き込み動作を行うとともに、前記メモリコアを、前記書き込み動作と同一の所定順序で選択して読み出し動作を行って、
所定のメモリコア内のデータセルに既に第１のデータが書き込まれている半導体記憶装置に、第２のデータが入力されたときに、前記第１のデータが書き込まれた前記所定のメモリコア内のフラグセルに所定論理値を書き込むことで、該所定のメモリコアをアクセス不能状態に設定して、前記所定順序で選択される次のメモリコアに対して前記第２のデータの書き込みを行うことを特徴とする付記９に記載の半導体記憶装置の制御方法。
（付記１１）
前記メモリコアを、不可逆な所定順序で選択して書き込み動作を行うとともに、前記メモリコアを、前記書き込み動作と同一の所定順序で選択して読み出し動作を行って、
所定の前記メモリコアにデータを書き込むときに、該データのビット幅を示すフラグ値を該所定のメモリコア内の第２フラグセルに書き込むとともに、該データを前記所定のメモリコア内のデータセルに書き込み、
前記所定のメモリコアに前記第１のデータが書き込まれている半導体記憶装置に、第２のデータが入力されたときに、前記第１のデータが書き込まれた前記所定のメモリコア内の第１フラグセルに所定論理値を書き込むことで、該所定のメモリコアをアクセス不能状態に設定して、前記所定順序で選択される次のメモリコアに対して前記第２のデータの書き込みを行うことを特徴とする付記９に記載の半導体記憶装置の制御方法。
（付記１２）
前記メモリコアを、不可逆な所定順序で選択して書き込み動作を行うとともに、前記メモリコアを、前記書き込み動作と同一の所定順序で選択して読み出し動作を行って、
所定の前記メモリコア内のデータセルにデータを書き込むときに、該所定のメモリコアのフラグセルに所定論理値を書き込むことで、該所定のメモリコアをデータ読み出し可能状態に設定することを特徴とする付記９に記載の半導体記憶装置。
（付記１３）
前記メモリコアを、不可逆な所定順序で選択して書き込み動作を行うとともに、前記メモリコアを、前記読み出し動作と反対の不可逆な所定順序で選択して読み出し動作を行って、
前記メモリコアのデータセルに第１のデータを書き込むときに、該第１のデータの書き込み終了時において選択されるメモリコアのフラグセルに所定論理値を書き込むことで、該書き込み終了時において選択されるメモリコアをデータ読み出し開始位置に設定するとともに、該第１のデータの前に書き込まれた第２のデータを書き込むときに所定論理値が書き込まれたフラグセルを含むメモリコアをデータ読み出し終了位置に設定することを特徴とする付記９に記載の半導体記憶装置。
【図面の簡単な説明】
【０１７６】
【図１】第１実施形態の半導体記憶装置を示す概要図。
【図２】第１実施形態の書き込み動作を示すフローチャート。
【図３】第１実施形態の読み出し動作を示すフローチャート。
【図４】（ａ）〜（ｃ）はそれぞれ第１実施形態のフラグセルの設定を説明するための説明図。
【図５】第２実施形態の書き込み動作を示すフローチャート。
【図６】第２実施形態の読み出し動作を示すフローチャート。
【図７】（ａ）〜（ｃ）はそれぞれ第１実施形態のフラグセルの設定を説明するための説明図。
【図８】第３実施形態の半導体記憶装置を示す概要図。
【図９】第３実施形態の読み出し動作を示すフローチャート。
【図１０】（ａ）〜（ｃ）はそれぞれ第３実施形態のフラグセルの設定を説明するための説明図。
【図１１】第４実施形態の半導体記憶装置を示す概要図。
【図１２】第４実施形態の書き込み動作を示すフローチャート。
【図１３】第４実施形態の読み出し動作を示すフローチャート。
【図１４】（ａ）〜（ｃ）はそれぞれ第４実施形態のフラグセルの設定を説明するための説明図。
【図１５】変形例の半導体記憶装置を示す概要図。
【図１６】（ａ）〜（ｃ）はそれぞれ変形例のフラグセルの設定を説明するための説明図。
【符号の説明】
【０１７７】
１，３，４  半導体記憶装置
１１，１３，１４  メモリ部
Ｍ１〜Ｍ１６  メモリコア
ＦＣ  フラグセル
ＦＣ１  第１フラグセル
ＦＣ２  第２フラグセル
ＤＣ  データセル
２０  デコーダ（アクセス制御手段）
３０  判定器（アクセス制御手段）
４０  Ｒｅａｄ／Ｗｒｉｔｅ切替えセレクタ（アクセス制御手段）
Ｄｉｎ  データ
【図１】
2008123643.tif 000003
【図２】
2008123643.tif 000004
【図３】
2008123643.tif 000005
【図４】
2008123643.tif 000006
【図５】
2008123643.tif 000007
【図６】
2008123643.tif 000008
【図７】
2008123643.tif 000009
【図８】
2008123643.tif 000010
【図９】
2008123643.tif 000011
【図１０】
2008123643.tif 000012
【図１１】
2008123643.tif 000013
【図１２】
2008123643.tif 000014
【図１３】
2008123643.tif 000015
【図１４】
2008123643.tif 000016
【図１５】
2008123643.tif 000017
【図１６】
2008123643.tif 000018