(57)【要約】【課題】  複数の区分領域に対応する書き込み保護情報に対してＥＣＣを付与し、任意の書き込み保護領域の追加設定を可能とした構成を実現する。【解決手段】  データの再書き込みまたは消去の少なくともいずれかを禁止した領域としての書き込み保護領域を設定可能なデータ記憶領域と、データ記憶領域における各ページ等の区分領域の書き込み保護の設定情報を格納した書き込み保護情報格納領域とを有するメモリ部を持つ構成において、データ記憶領域の複数の区分領域に対応する複数の書き込み保護情報を含むデータをエラー訂正コード生成単位データとして設定し、エラー訂正コード生成単位データに含まれるデータ記憶領域の唯一の区分領域に対応する書き込み保護情報の変更によってのみ、エラー訂正コードが変化するエラー訂正コード算出処理を実行する構成とした。【選択図】  図４
2005202450.tif 000002
【特許請求の範囲】
【請求項１】
データ記憶装置であり、
データの再書き込みまたは消去の少なくともいずれかを禁止した領域としての書き込み保護領域を設定可能なデータ記憶領域と、前記データ記憶領域における各区分領域の書き込み保護の設定情報を格納した書き込み保護情報格納領域とを有するメモリ部と、
前記メモリ部に記憶するデータを所定のデータ長としたエラー訂正コード生成単位データに対するエラー訂正コードの生成処理を実行するエラー訂正コード演算手段とを有し、
前記書き込み保護情報格納領域は、
前記データ記憶領域の複数の区分領域に対応する複数の書き込み保護情報を含むデータをエラー訂正コード生成単位データとして、エラー訂正コードを対応付けて格納する構成を有し、
前記エラー訂正コード演算手段は、
エラー訂正コード生成単位データに含まれる前記データ記憶領域の唯一の区分領域に対応する書き込み保護情報の変更によってのみ、エラー訂正コードが変化するエラー訂正コード算出処理を実行する構成であることを特徴とするデータ記憶装置。
【請求項２】
エラー訂正コード生成単位データに含まれる前記データ記憶領域の各区分領域に対応する書き込み保護情報は書き込み保護設定の有無に応じてオール０またはオール１に設定されたビットデータであり、
前記エラー訂正コード演算手段は、
エラー訂正コード生成単位データに含まれる前記データ記憶領域の唯一の区分領域に対応する書き込み保護情報の奇数個のビットデータと、その他の区分領域に対応する書き込み保護情報の偶数個のビットデータとに基づくハミングコードの算出を実行する構成であることを特徴とする請求項１に記載のデータ記憶装置。
【請求項３】
前記データ記憶領域における前記書き込み保護領域は、ページを単位として設定された領域であり、
前記書き込み保護情報格納領域は、
前記データ記憶領域の複数のページ領域に対応する複数の書き込み保護情報を含むデータをエラー訂正コード生成単位データとして、エラー訂正コードを対応付けて格納する構成であることを特徴とする請求項１に記載のデータ記憶装置。
【請求項４】
エラー訂正コード生成単位データに含まれる前記データ記憶領域の各区分領域に対応する書き込み保護情報は、書き込み保護設定の有無に応じてオール０またはオール１に設定された４ｍビット（ｍ≧１）データとして構成され、
前記書き込み保護情報格納領域は、
前記データ記憶領域のｎ個（ｎ≧２）の区分領域に対応する４ｎビットの書き込み保護情報を含むデータをエラー訂正コード生成単位データとして、エラー訂正コードを対応付けて格納する構成を有し、
前記エラー訂正コード演算手段は、
エラー訂正コード生成単位データに含まれる前記データ記憶領域の唯一の区分領域に対応する４ビットの書き込み保護情報の変更によってのみ、エラー訂正コードが変化するエラー訂正コード算出処理を実行する構成であることを特徴とする請求項１に記載のデータ記憶装置。
【請求項５】
前記書き込み保護情報格納領域は、
前記データ記憶領域の２つの区分領域に対応する２つの書き込み保護情報を含むデータをエラー訂正コード生成単位データとして、エラー訂正コードを対応付けて格納する構成であることを特徴とする請求項１に記載のデータ記憶装置。
【請求項６】
前記書き込み保護情報格納領域は、
前記データ記憶領域のｋ個（ｋ≧４）の区分領域に対応するｋ個の書き込み保護情報を含むデータをエラー訂正コード生成単位データとして、エラー訂正コードを対応付けて格納する構成であることを特徴とする請求項１に記載のデータ記憶装置。
【請求項７】
前記エラー訂正コード演算手段は、
前記書き込み保護情報格納領域からの読み出しデータのエラー訂正処理を実行する構成を有し、
エラー訂正コード生成単位データに含まれる前記データ記憶領域の唯一の区分領域に対応する書き込み保護情報の奇数個のビットデータと、その他の区分領域に対応する書き込み保護情報の偶数個のビットデータと、ハミングコードに基づくシンドロームの算出を実行する構成であることを特徴とする請求項１に記載のデータ記憶装置。
【請求項８】
前記書き込み保護情報格納領域は、
書き込み保護情報およびエラー訂正コードを含むビット情報が初期値１として設定され、
書き込み保護の設定処理、およびエラー訂正コードの変更処理において、１から０、１から１、０から０のビット値変更のみが許容された構成であり、
前記書き込み保護情報は、書き込み保護領域の追加処理において、１から０、１から１、０から０のビット値変更のみが発生し、前記エラー訂正コード演算手段において、変更された書き込み保護情報に基づいて算出するエラー訂正コードについても、１から０、１から１、０から０のビット値変更のみが発生する構成であることを特徴とする請求項１に記載のデータ記憶装置。
【請求項９】
前記データ記憶領域は、フローティングゲートを持つ構成を有することを特徴とする請求項１に記載のデータ記憶装置。
【請求項１０】
記憶データ処理方法であり、
データ記憶領域における各区分領域の書き込み保護の設定情報を格納した書き込み保護情報格納領域に格納する書き込み保護情報に基づくエラー訂正コードの生成処理を実行するエラー訂正コード演算ステップを有し、
前記エラー訂正コード演算ステップは、エラー訂正コード生成単位データに含まれる前記データ記憶領域の唯一の区分領域に対応する書き込み保護情報の変更によってのみ、エラー訂正コードが変化するエラー訂正コード算出処理を実行することを特徴とする記憶データ処理方法。
【請求項１１】
エラー訂正コード生成単位データに含まれる前記データ記憶領域の各区分領域に対応する書き込み保護情報は書き込み保護設定の有無に応じてオール０またはオール１に設定されたビットデータであり、
前記エラー訂正コード演算ステップは、
エラー訂正コード生成単位データに含まれる前記データ記憶領域の唯一の区分領域に対応する書き込み保護情報の奇数個のビットデータと、その他の区分領域に対応する書き込み保護情報の偶数個のビットデータとに基づくハミングコードの算出を実行することを特徴とする請求項１０に記載の記憶データ処理方法。
【請求項１２】
前記データ記憶領域における前記書き込み保護領域は、ページを単位として設定された領域であり、
前記エラー訂正コード演算ステップは、
エラー訂正コード生成単位データに含まれる前記データ記憶領域の唯一のページ領域に対応する書き込み保護情報の奇数個のビットデータと、その他の区分領域に対応する書き込み保護情報の偶数個のビットデータとに基づくハミングコードの算出を実行することを特徴とする請求項１０に記載の記憶データ処理方法。
【請求項１３】
エラー訂正コード生成単位データに含まれる前記データ記憶領域の各区分領域に対応する書き込み保護情報は、書き込み保護設定の有無に応じてオール０またはオール１に設定された４ｍビット（ｍ≧１）データであり、
前記エラー訂正コード演算ステップは、
エラー訂正コード生成単位データに含まれる前記データ記憶領域の唯一の区分領域に対応する４ｍビット（ｍ≧１）の書き込み保護情報の変更によってのみ、エラー訂正コードが変化するエラー訂正コード算出処理を実行することを特徴とする請求項１０に記載の記憶データ処理方法。
【請求項１４】
前記記憶データ処理方法は、さらに、
前記書き込み保護情報格納領域からの読み出しデータのエラー訂正処理を実行するエラー訂正処理ステップを有し、
前記エラー訂正処理ステップは、
エラー訂正コード生成単位データに含まれる前記データ記憶領域の唯一の区分領域に対応する書き込み保護情報の奇数個のビットデータと、その他の区分領域に対応する書き込み保護情報の偶数個のビットデータと、ハミングコードに基づくシンドロームの算出を実行するステップを含むことを特徴とする請求項１０に記載の記憶データ処理方法。
【請求項１５】
前記書き込み保護情報格納領域は、書き込み保護情報およびエラー訂正コードを含むビット情報が初期値１として設定された構成であり、
前記エラー訂正処理ステップは、
前記エラー訂正コード演算手段において、変更された書き込み保護情報に基づくエラー訂正コードについてのビット値を１から０、１から１、０から０のビット値変更のみが発生する処理として実行することを特徴とする請求項１０に記載の記憶データ処理方法。
【請求項１６】
メモリに対するデータ記憶処理を実行するコンピュータ・プログラムであり、
データ記憶領域における各区分領域の書き込み保護の設定情報を格納した書き込み保護情報格納領域に格納する書き込み保護情報に基づくエラー訂正コードの生成処理を実行するエラー訂正コード演算ステップを有し、
前記エラー訂正コード演算ステップは、エラー訂正コード生成単位データに含まれる前記データ記憶領域の唯一の区分領域に対応する書き込み保護情報の変更によってのみ、エラー訂正コードが変化するエラー訂正コード算出処理を実行することを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ記憶装置、および記憶データ処理方法、並びにコンピュータ・プログラムに関する。さらに詳細には、書き込み保護（Ｗｒｉｔｅ  Ｐｒｏｔｅｃｔ）領域を有し、エラー訂正コードを付加したデータの記憶処理を実行する構成において、メモリ領域の小さい書き込み保護情報格納領域構成として、書き込み保護領域の追加設定を可能としたデータ記憶装置、および記憶データ処理方法、並びにコンピュータ・プログラムに関する。
【背景技術】
【０００２】
データ書き換え可能な半導体記憶素子としての不揮発性メモリとしてＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory）が知られている。ＥＥＰＲＯＭは、例えばセキュリティ用途に使われる携帯機器やＩＣカードに搭載するメモリとして利用される。
【０００３】
例えば暗号処理、認証処理等を実行する機能を持つ携帯機器やＩＣカードには、ホスト機器とデータを安全にやり取りするために、暗号化・復号化を行なうための暗号エンジンまたはＣＰＵにより制御される暗号化・復号化のプログラムが搭載される。さらに、データの暗号化・復号化を行なう鍵データや、ＩＤ情報、その他の重要なデータを格納するため、データ書き換え可能な不揮発性メモリが搭載され、多くの場合、この不揮発性メモリとしてＥＥＰＲＯＭが使われる。
【０００４】
ＥＥＰＲＯＭとしては、例えばフローティングゲートを持つＦＬＯＴＯＸ(Floating Gate with Tunnel Oxide)構成が知られており、さらに、ＮＡＮＤ型フラッシュと同じ処理でＥＥＰＲＯＭを実現した構成が知られている。後者のＥＥＰＲＯＭ構成は、例えば、特許文献１に記載されている。
【０００５】
図１にＥＥＰＲＯＭのデータ格納領域および周辺構成の構成例を示す。図１（ａ），（ｂ）は、それぞれ異なる書き込み保護（Ｗｒｉｔｅ  Ｐｒｏｔｅｃｔ）領域の設定例を示している。
【０００６】
ＥＥＰＲＯＭに対するデータの書き込みは所定のデータ量からなるページ単位で実行される。１ページは複数ワードによって構成される。具体的なワードおよびページ設定例としては、例えば、
１ワード＝８ビット（Ｄａｔａ）＋４ビット（ＥＣＣ）
１ページ＝４ワード
等の設定がある。
【０００７】
暗号処理や認証処理を実行することが要請されるセキュリティ用途のＬＳＩに利用されるＥＥＰＲＯＭは、データの信頼性を高めるために、ページ単位またはワード単位でハミングコード（Ｈａｍｍｉｎｇ  Ｃｏｄｅ）等のエラー訂正用コード［ＥＣＣ：Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅ］を記憶データに対応して生成し、データとともにメモリに格納する構成がとられる場合が多い。
【０００８】
上述の設定例は、１ワード＝８ビット（Ｄａｔａ）に対して４ビットのＥＣＣを設定する例であるが、この他にも、ＥＣＣをページ単位に設定する構成など、用途に応じて様々な構成がある。
【０００９】
セキュリティ用途のＬＳＩは、メモリ書き込みデータに対するＥＣＣ生成処理、およびメモリからの読み出しデータのエラー訂正処理を実行するための回路（ＥＣＣ回路）が設けられる。
【００１０】
さらに、セキュリティレベルの高い用途に使われるＥＥＰＲＯＭでは、重要なデータの誤消去、書換えを防止し、また、悪意の第三者によるデータの消去、書き換えを防止するため、書き込み保護（Ｗｒｉｔｅ  Ｐｒｏｔｅｃｔ）領域をデータ格納領域の一部に設定する構成としたものがある。
【００１１】
書き込み保護（Ｗｒｉｔｅ  Ｐｒｏｔｅｃｔ）領域は、チップ単体、ページ単位、ワード単位、あるいは複数ページの集合として設定されるブロック単位など、用途に応じた設定がなされる。一般的には、使い勝手の点からページ単位の設定が用いられる場合が多い。
【００１２】
ページ毎の書き込み保護領域の設定、制御構成例を示したのが図１（ａ），（ｂ）である。
【００１３】
図１（ａ）は、データ格納領域１１１の構成各ページ毎に、そのページが書き込み保護領域として設定されているか否かを示す書き込み保護情報格納領域１１３を設定した構成である。書き込み保護情報格納領域１１３の最上段［ページ０］は、データ格納領域１１１中のページ０が書き込み保護領域であるか否かを示すビット情報を格納している。
【００１４】
図１（ａ）の構成において、ローデコーダ１１２を介してページアドレス等が指定され、書き込みラッチ１１４に入力された書き込みデータが、データ格納領域１１１中の指定アドレスに対応するページ領域に書き込まれる。このデータ書き込みの可否情報が、書き込み保護情報格納領域１１３に格納され、アドレスによって指定されたページが書き込み保護領域であるか否かを確認した後、書き込み保護領域でない場合に実際のデータ書き込みが実行されることになる。データ消去処理においても、アドレスによって指定されたページが書き込み保護領域であるか否かを確認した後、書き込み保護領域でない場合に消去処理が実行されることになる。
【００１５】
図１（ｂ）は、各ページが書き込み保護領域であるか否かを示す書き込み保護情報格納領域１２３を、データ格納領域１２１と別領域として区分された特定領域に設定した例を示している。
【００１６】
書き込み保護情報格納領域１２３の最初のワード領域に、データ格納領域の最初のページ：［ページ０］が書き込み保護領域であるか否かを示す情報を格納し、以下各ワード領域に順次、データ格納領域の各ページに対応する書き込み保護情報が格納される。
【００１７】
図１（ｂ）の構成においても、ローデコーダ１２２を介してページアドレス等が指定され書き込みラッチ１２４に入力された書き込みデータが、データ格納領域１２１中の指定アドレスに対応するページ領域に書き込まれるが、データ書き込み処理に先立って、ライトプロテクト情報格納領域１２３の情報読み取りを行い、アドレスによって指定されたページが書き込み保護領域であるか否かを確認した後、書き込み保護領域でない場合にデータ書き込みを実行する。データ消去処理においても、アドレスによって指定されたページが書き込み保護領域であるか否かを確認した後、書き込み保護領域でない場合に消去処理が実行されることになる。
【００１８】
このように、データの消去あるいは書き込み命令が発行された際には、まず、ライトプロテクト情報の読出を行ない、書き込み保護領域として設定されていない場合のみ命令を実行する。指定アドレスが書き込み保護領域として設定されている場合は、命令を実行しないでエラーを返して終了する。
【００１９】
図１（ｂ）に示す構成は、データ格納領域１２１に追加されたメモリエリアに書き込み保護情報格納領域１２３を設定した構成であるが、前述したように、ＥＣＣの設定単位には、ワード単位としたり、ページ単位とする設定があり、さらに、書き込み保護領域の設定構成も、ワード単位、ページ単位、ブロック単位など様々な構成がある。
【００２０】
以下、図２を参照して、図１（ｂ）に示す構成を持つ書き込み保護情報格納領域を設定した場合の複数の設定例における必要構成、問題点について説明する。
【００２１】
［ｉ］設定例１
書き込み保護設定単位：ワード
ＥＣＣ単位：ページ
として設定した場合
図２［ｉ］に示すように、１ページの書き込み保護情報を１ワードに格納する例であり、例えば書き込み保護情報格納領域１２３の１ページには、データ格納領域の４ページ分の書き込み保護情報が格納される。
【００２２】
この構成において、データ格納領域中に、新たに書き込み保護領域とするページを設定する場合、そのページの書き込み保護情報を格納した書き込み保護情報格納領域１２３の１つのワードの格納ビット情報が、書き込み保護領域であることを示す情報に変更される。その結果、変更された書き込み保護情報を含む書き込み保護領域の１つのページの全データに基づいて新たなＥＣＣを算出し、格納することが必要となる。
【００２３】
従って、新たなページが書き込み保護領域として新たに追加されると、そのページに対応する書き込み保護情報のビットを書き込み保護を示すビット情報に変更して、その変更データを含むページのＥＣＣを再計算した後、書き戻す操作が必要となる。例えば、図２［ｉ］に示す書き込み保護情報格納領域の１つのページｐ０には、データ格納領域１２１の［ページ０］〜［ページ３］までの４ページ分の書き込み保護情報を格納する構成である。
【００２４】
ここで、データ格納領域１２１の［ページ０］が新たな書き込み保護ページに設定されると、ページ０に対応する書き込み保護情報を格納したワード［ＷＰａ］の構成ビットを書き込み保護を示すビット情報に変更して、その変更データを含むページ［ページＰ０］のＥＣＣを再計算した後、ＥＣＣを書き戻す操作が必要となる。
【００２５】
本構成とした場合、例えば、１ワード＝３２ビット、１ページ＝４ワードの場合、ＥＣＣはページ毎に８ビット必要であるため、書き込み保護情報格納領域１２３は、（３２ビット×４＋８）×ページ数／４だけ必要となる。
【００２６】
［ｉｉ］設定例２
書き込み保護設定単位：ワード
ＥＣＣ単位：ワード
として設定した場合
図２［ｉｉ］に示すように、１ページの書き込み保護情報を１ワードに格納し、かつ、ワード毎にＥＣＣを設定した例である。書き込み保護情報格納領域１２３の１ページには、データ格納領域の４ページ分の書き込み保護情報が格納される。
【００２７】
この構成とした場合、データ格納領域１２１中に、新たな書き込み保護領域が設定されると、そのページの書き込み保護情報を格納した書き込み保護情報格納領域１２３中の１ワードの構成ビットが変更され、その結果、変更されたワード単位の書き込み保護情報に基づいて新たなＥＣＣを算出し格納することとなる。
【００２８】
本構成は、前述の［ｉ］の設定のように、変更した書き込み保護情報を含むページ全体のデータに基づくＥＣＣ再計算、ＥＣＣの消去・書戻し操作を行なう必要が無いが、ＥＣＣ領域に要するビット数が［ｉ］の場合の数倍になり、エリアペナルティが大きくなるという問題がある。例えば１ワード＝３２ビットの場合、６ビットのＥＣＣを付加する必要があるため、３８ビット×ページ数分の書き込み保護情報格納領域１２３を設定することが必要となる。
【００２９】
［ｉｉｉ］
書き込み保護設定単位：ワードの１／ｎ
ＥＣＣ単位：ワード
として設定した場合
図２［ｉｉｉ］に示すように、データ格納領域１２１のｎページの書き込み保護情報を、書き込み保護情報格納領域１２３に設定した１ワードに格納し、かつ、ワード毎にＥＣＣを設定した例である。例えば書き込み保護情報格納領域１２３の１ページには、データ格納領域の４ｎ−１ページ分の書き込み保護情報が格納される。
【００３０】
本構成では、データ格納領域１２１に新たな書き込み保護領域が設定されると、そのページの書き込み保護情報を格納した書き込み保護情報格納領域１２３中の１ワードの構成ビットが変更され、その結果、変更されたワード単位の書き込み保護情報に基づいて新たなＥＣＣを算出し格納することとなる。
【００３１】
この設定例の場合、書き込み保護情報格納領域１２３は、［ｉｉ］の設定例の場合のｎ分の１となり、ＥＣＣ領域のエリアペナルティは最も小さい。
【００３２】
セキュリティ度をあげるため、一度、書き込み保護を設定した後は、その設定の解除処理を物理上不可能とする構成をとる場合がある。すなわち、図１、２に示す書き込み保護情報格納領域１２３に、書き込み保護を示す情報を設定した後は、その設定を再度、変更して書き込み可の情報に戻すことができない構成とする場合がある。具体的には、ウェハ試験後に、スクライブラインに引き出した消去制御回路に入力されるポリ配線のスクライブ時の切断や、消去制御回路に入力される信号線をフューズ（Ｆｕｓｅ）と接続し、ウェハ試験後にフューズをレーザーで焼き切る（Ｂｌｏｗ）などの処理を実行して、書き込み保護情報の変更を物理的に排除するなどの処置がとられる。
【００３３】
メモリデバイス、あるいはメモリデバイス搭載装置の製造時にこの処理を実行することで、少なくとも製品出荷後は、書き込み保護情報の記録された書き込み保護情報格納領域の情報の消去は防止される。
【００３４】
しかし、このように、データ格納領域のある特定のページに対応する書き込み保護情報の変更を不可能にしてしまうと、その書き込み保護情報を含むＥＣＣコードも固定化せざる得なくなり、そのＥＣＣの元データとしての固定化されてしまった書き込み保護情報以外の書き込み保護情報についての変更も制限されてしまうという問題が発生する。
【００３５】
すなわち、図２に示す［ｉ］や、［ｉｉｉ］のＥＣＣ設定手法では、データ格納領域の複数のページに対応する書き込み保護情報に対してＥＣＣが設定されているため、１つのＥＣＣの生成単位データに含まれる１つの書き込み保護情報を固定化してしまうと、その他の書き込み保護情報の変更、すなわち「書き込み保護なし」から「書き込み保護あり」への変更処理が自由にできなくなってしまうという問題が発生する。
【００３６】
「書き込み保護なし」から「書き込み保護あり」への変更処理を自由に実行し、正しいＥＣＣを設定可能とするためには、［ｉｉ］の構成のように、１つの書き込み保護情報に対して１つのＥＣＣを設定する構成を採用することが必要であるが、前述したように、この方法では、ＥＣＣのデータ量が増大し、エリアペナルティが大きくなるという問題がある。例えば１ワード＝３２ビットの場合、６ビットのＥＣＣを付加する必要があるため、３８ビット×ページ数分の書き込み保護情報格納領域を設定することが必要となる。
【００３７】
暗号処理鍵や、ＩＤデータなど、エラー発生の許容されないデータを格納するデバイスにおいては、ＥＣＣ等のエラー訂正コードは必須となっている。一方、携帯機器やＩＣカード等のデバイスのサイズは小型化することが要求され、メモリサイズの小型化も必要となっている。
【特許文献１】特開２０００−１４９５８１号公報
【発明の開示】
【発明が解決しようとする課題】
【００３８】
本発明は、上記問題点に鑑みてなされたものでありエラー訂正コードを付加したデータ格納を行ない、かつ書き込み保護領域を設定可能としたメモリ構成において、書き込み保護情報の格納領域の削減を実現したデータ記憶装置、および記憶データ処理方法、並びにコンピュータ・プログラムを提供することを目的とする。
【００３９】
本発明は、複数の書き込み保護情報に基づいて１つのＥＣＣを設定し、ＥＣＣ生成単位に固定化された書き込み保護情報が含まれる場合においても、その他の書き込み保護情報の変更、すなわち「書き込み保護なし」から「書き込み保護あり」への変更処理を行なうことを可能としたデータ記憶装置、および記憶データ処理方法、並びにコンピュータ・プログラムを提供することを目的とする。
【課題を解決するための手段】
【００４０】
本発明の第１の側面は、
データ記憶装置であり、
データの再書き込みまたは消去の少なくともいずれかを禁止した領域としての書き込み保護領域を設定可能なデータ記憶領域と、前記データ記憶領域における各区分領域の書き込み保護の設定情報を格納した書き込み保護情報格納領域とを有するメモリ部と、
前記メモリ部に記憶するデータを所定のデータ長としたエラー訂正コード生成単位データに対するエラー訂正コードの生成処理を実行するエラー訂正コード演算手段とを有し、
前記書き込み保護情報格納領域は、
前記データ記憶領域の複数の区分領域に対応する複数の書き込み保護情報を含むデータをエラー訂正コード生成単位データとして、エラー訂正コードを対応付けて格納する構成を有し、
前記エラー訂正コード演算手段は、
エラー訂正コード生成単位データに含まれる前記データ記憶領域の唯一の区分領域に対応する書き込み保護情報の変更によってのみ、エラー訂正コードが変化するエラー訂正コード算出処理を実行する構成であることを特徴とするデータ記憶装置にある。
【００４１】
さらに、本発明のデータ記憶装置の一実施態様おいて、エラー訂正コード生成単位データに含まれる前記データ記憶領域の各区分領域に対応する書き込み保護情報は書き込み保護設定の有無に応じてオール０またはオール１に設定されたビットデータであり、前記エラー訂正コード演算手段は、エラー訂正コード生成単位データに含まれる前記データ記憶領域の唯一の区分領域に対応する書き込み保護情報の奇数個のビットデータと、その他の区分領域に対応する書き込み保護情報の偶数個のビットデータとに基づくハミングコードの算出を実行する構成であることを特徴とする。
【００４２】
さらに、本発明のデータ記憶装置の一実施態様おいて、前記データ記憶領域における前記書き込み保護領域は、ページを単位として設定された領域であり、前記書き込み保護情報格納領域は、前記データ記憶領域の複数のページ領域に対応する複数の書き込み保護情報を含むデータをエラー訂正コード生成単位データとして、エラー訂正コードを対応付けて格納する構成であることを特徴とする。
【００４３】
さらに、本発明のデータ記憶装置の一実施態様おいて、エラー訂正コード生成単位データに含まれる前記データ記憶領域の各区分領域に対応する書き込み保護情報は、書き込み保護設定の有無に応じてオール０またはオール１に設定された４ｍビット（ｍ≧１）データとして構成され、前記書き込み保護情報格納領域は、前記データ記憶領域のｎ個（ｎ≧２）の区分領域に対応する４ｎビットの書き込み保護情報を含むデータをエラー訂正コード生成単位データとして、エラー訂正コードを対応付けて格納する構成を有し、前記エラー訂正コード演算手段は、エラー訂正コード生成単位データに含まれる前記データ記憶領域の唯一の区分領域に対応する４ビットの書き込み保護情報の変更によってのみ、エラー訂正コードが変化するエラー訂正コード算出処理を実行する構成であることを特徴とする。
【００４４】
さらに、本発明のデータ記憶装置の一実施態様おいて、前記書き込み保護情報格納領域は、前記データ記憶領域の２つの区分領域に対応する２つの書き込み保護情報を含むデータをエラー訂正コード生成単位データとして、エラー訂正コードを対応付けて格納する構成であることを特徴とする。
【００４５】
さらに、本発明のデータ記憶装置の一実施態様おいて、前記書き込み保護情報格納領域は、前記データ記憶領域のｋ個（ｋ≧４）の区分領域に対応するｋ個（ｋ≧４）の書き込み保護情報を含むデータをエラー訂正コード生成単位データとして、エラー訂正コードを対応付けて格納する構成であることを特徴とする。
【００４６】
さらに、本発明のデータ記憶装置の一実施態様おいて、前記エラー訂正コード演算手段は、前記書き込み保護情報格納領域からの読み出しデータのエラー訂正処理を実行する構成を有し、エラー訂正コード生成単位データに含まれる前記データ記憶領域の唯一の区分領域に対応する書き込み保護情報の奇数個のビットデータと、その他の区分領域に対応する書き込み保護情報の偶数個のビットデータと、ハミングコードに基づくシンドロームの算出を実行する構成であることを特徴とする。
【００４７】
さらに、本発明のデータ記憶装置の一実施態様おいて、前記書き込み保護情報格納領域は、書き込み保護情報およびエラー訂正コードを含むビット情報が初期値１として設定され、書き込み保護の設定処理、およびエラー訂正コードの変更処理において、１から０、１から１、０から０のビット値変更のみが許容された構成であり、前記書き込み保護情報は、書き込み保護領域の追加処理において、１から０、１から１、０から０のビット値変更のみが発生し、前記エラー訂正コード演算手段において、変更された書き込み保護情報に基づいて算出するエラー訂正コードについても、１から０、１から１、０から０のビット値変更のみが発生する構成であることを特徴とする。
【００４８】
さらに、本発明のデータ記憶装置の一実施態様おいて、前記データ記憶領域は、フローティングゲートを持つ構成を有することを特徴とする。
【００４９】
さらに、本発明の第２の側面は、
記憶データ処理方法であり、
データ記憶領域における各区分領域の書き込み保護の設定情報を格納した書き込み保護情報格納領域に格納する書き込み保護情報に基づくエラー訂正コードの生成処理を実行するエラー訂正コード演算ステップを有し、
前記エラー訂正コード演算ステップは、エラー訂正コード生成単位データに含まれる前記データ記憶領域の唯一の区分領域に対応する書き込み保護情報の変更によってのみ、エラー訂正コードが変化するエラー訂正コード算出処理を実行することを特徴とする記憶データ処理方法にある。
【００５０】
さらに、本発明の記憶データ処理方法の一実施態様おいて、エラー訂正コード生成単位データに含まれる前記データ記憶領域の各区分領域に対応する書き込み保護情報は書き込み保護設定の有無に応じてオール０またはオール１に設定されたビットデータであり、前記エラー訂正コード演算ステップは、エラー訂正コード生成単位データに含まれる前記データ記憶領域の唯一の区分領域に対応する書き込み保護情報の奇数個のビットデータと、その他の区分領域に対応する書き込み保護情報の偶数個のビットデータとに基づくハミングコードの算出を実行することを特徴とする。
【００５１】
さらに、本発明の記憶データ処理方法の一実施態様おいて、前記データ記憶領域における前記書き込み保護領域は、ページを単位として設定された領域であり、前記エラー訂正コード演算ステップは、エラー訂正コード生成単位データに含まれる前記データ記憶領域の唯一のページ領域に対応する書き込み保護情報の奇数個のビットデータと、その他の区分領域に対応する書き込み保護情報の偶数個のビットデータとに基づくハミングコードの算出を実行することを特徴とする。
【００５２】
さらに、本発明の記憶データ処理方法の一実施態様おいて、エラー訂正コード生成単位データに含まれる前記データ記憶領域の各区分領域に対応する書き込み保護情報は、書き込み保護設定の有無に応じてオール０またはオール１に設定された４ｍビット（ｍ≧１）データであり、前記エラー訂正コード演算ステップは、エラー訂正コード生成単位データに含まれる前記データ記憶領域の唯一の区分領域に対応する４ｍビット（ｍ≧１）の書き込み保護情報の変更によってのみ、エラー訂正コードが変化するエラー訂正コード算出処理を実行することを特徴とする。
【００５３】
さらに、本発明の記憶データ処理方法の一実施態様おいて、前記記憶データ処理方法は、さらに、前記書き込み保護情報格納領域からの読み出しデータのエラー訂正処理を実行するエラー訂正処理ステップを有し、前記エラー訂正処理ステップは、エラー訂正コード生成単位データに含まれる前記データ記憶領域の唯一の区分領域に対応する書き込み保護情報の奇数個のビットデータと、その他の区分領域に対応する書き込み保護情報の偶数個のビットデータと、ハミングコードに基づくシンドロームの算出を実行するステップを含むことを特徴とする。
【００５４】
さらに、本発明の記憶データ処理方法の一実施態様おいて、前記書き込み保護情報格納領域は、書き込み保護情報およびエラー訂正コードを含むビット情報が初期値１として設定された構成であり、前記エラー訂正処理ステップは、前記エラー訂正コード演算手段において、変更された書き込み保護情報に基づくエラー訂正コードについてのビット値を１から０、１から１、０から０のビット値変更のみが発生する処理として実行することを特徴とする。
【００５５】
さらに、本発明の第３の側面は、
メモリに対するデータ記憶処理を実行するコンピュータ・プログラムであり、
データ記憶領域における各区分領域の書き込み保護の設定情報を格納した書き込み保護情報格納領域に格納する書き込み保護情報に基づくエラー訂正コードの生成処理を実行するエラー訂正コード演算ステップを有し、
前記エラー訂正コード演算ステップは、エラー訂正コード生成単位データに含まれる前記データ記憶領域の唯一の区分領域に対応する書き込み保護情報の変更によってのみ、エラー訂正コードが変化するエラー訂正コード算出処理を実行することを特徴とするコンピュータ・プログラムにある。
【００５６】
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能なコンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、ＣＤやＦＤ、ＭＯなどの記録媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【００５７】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【発明の効果】
【００５８】
本発明の構成によれば、データの再書き込みまたは消去の少なくともいずれかを禁止した領域としての書き込み保護領域を設定可能なデータ記憶領域と、データ記憶領域における各ページ等の区分領域の書き込み保護の設定情報を格納した書き込み保護情報格納領域とを有するメモリ部を持つ構成において、データ記憶領域の複数の区分領域に対応する複数の書き込み保護情報を含むデータをエラー訂正コード生成単位データとして、書き込み保護情報とエラー訂正コードを対応付けて格納する構成として、かつ、書き込み保護情報に基づくエラー訂正コードの生成においては、エラー訂正コード生成単位データに含まれるデータ記憶領域の唯一の区分領域に対応する書き込み保護情報の変更によってのみ、エラー訂正コードが変化するエラー訂正コード算出処理を実行する構成としたので、書き込み保護領域を追加設定する場合、書き込み保護情報のデータ変更を行い、かつ変更した書き込み保護情報に基づく正しいＥＣＣビットを設定することが可能となる。すなわち、消去処理の実行できない書き込み保護情報格納の構成データおよびＥＣＣビットの値の変更を［１］→［１］、［１］→［０］、［０］→［０］のみに制限し、［０］→［１］のビット値変更処理を実行することなく、正しいデータ変更が実現される。
【００５９】
本発明の構成に従うことにより、任意のタイミングにおいて、書き込み保護領域を追加設定することを可能とし、かつ複数ページの書き込み保護情報をＥＣＣ生成単位として設定する構成が実現され、メモリ領域の削減が可能となる。
【００６０】
また、本発明の構成によれば、書き込み保護データの読み出し時には、書き込み保護データに対するシンドローム算出によって正確なエラー訂正が実行可能となり、正常なデータの書き込み保護、消去防止が可能となる。
【発明を実施するための最良の形態】
【００６１】
以下、本発明のデータ記憶装置、および記憶データ処理方法、並びにコンピュータ・プログラムの詳細について説明する。
【００６２】
図３を参照して、本発明に係るデータ記憶装置の構成を説明する。本発明に係るデータ記憶装置は、メモリに対する書き込みデータに対してエラー訂正コードとしてのＥＣＣを設定し、メモリからの読み出しデータに対してＥＣＣに基づくエラー訂正処理を実行するＥＣＣ（Error Correct Code）回路を搭載している。
【００６３】
図３の装置構成において、メモリ部２０１は、例えばＮＡＮＤ型Ｆｌａｓｈと同じセル動作をするＥＥＰＲＯＭである。メモリ部２０１には、データおよびエラー訂正コードとしてのＥＣＣが格納される。ＥＣＣは、ＥＣＣ演算回路２０５において、所定のＥＣＣ算出単位に対して算出される。メモリ部２０１に対するデータの書き込みは所定のデータ量からなるページ単位で実行される。１ページは複数ワードによって構成される。
【００６４】
メモリ部２０１のデータ格納領域は書き換え処理や、消去処理を不許可とした書き込み保護（Ｗｒｉｔｅ  Ｐｒｏｔｅｃｔ）領域の設定が可能である。書き込み保護領域は、例えばページ単位に設定され、各ページが書き込み保護領域に設定されているか否かについての書き込み保護情報についても、メモリ部２０１に格納される。書き込み保護情報についても、エラー訂正コードとしてのＥＣＣを設定して格納する。このメモリ部の構成については、後段で説明する。
【００６５】
データ書き込み時には、データ書き込み制御信号（ＸＲＤ）２０３の制御に基づいて、データバス２０２から書き込みデータが入力し、書き込みデータは、メモリバス２１１を介してメモリ部２０１に格納されるとともに、メモリバス２１１を介してＥＣＣ演算回路２０５にデータが入力され、書き込みデータに基づくＥＣＣビット（例えばハミングコード（Hamming Code）が算出されて、生成されたＥＣＣビットがＥＣＣバス２１２を介してメモリ部２０１に格納される。
【００６６】
データの読み出し時には、データ読み出し制御信号（ＸＲＤ）２０４の制御に基づいて、メモリ部２０１からデータおよびＥＣＣビットが読み出され、メモリバス２１１、ＥＣＣバス２１２を介してＥＣＣ演算回路２０５においてＥＣＣビットに基づくエラー訂正処理が実行された後、訂正されたデータがデータバス２０２に出力される。ＥＣＣ回路２０５におけるエラー訂正は、例えばシンドローム（Syndrome）算出処理に基づいて実行される。この処理の詳細については、後述する。
【００６７】
なお、データの書き込み処理および読み出し処理におけるデータの転送タイミングや、処理タイミングは、図示しないＣＰＵ等の制御部から出力される制御信号によって制御され、例えば予めプログラミングされた処理プログラムに従った処理として実行されるものである。
【００６８】
メモリ部および周辺回路の詳細構成を図４に示す。メモリ部３１０は、前述したように、例えばＮＡＮＤ型Ｆｌａｓｈと同じセル動作をするＥＥＰＲＯＭであり、記憶対象のデータとともに、エラー訂正コードとしてのＥＣＣが格納される。
【００６９】
メモリ部３１０は、データ格納領域３１１と、書き込み保護情報格納領域３１２を有する。データ格納領域３１１は、データの書き換えや、消去処理を不許可とした書き込み保護領域（例えばページ単位）の設定が可能であり、書き込み保護情報格納領域３１２は、各ページが書き込み保護領域に設定されているか否かについての書き込み保護情報を格納する。
【００７０】
バス３２１から入力される書き込みデータについて、ＥＣＣ演算回路３２２において、ＥＣＣの算出がなされ、書き込みラッチ３２３を介してメモリ部にデータ入力がなされ、書き込みが実行される。この書き込み処理の実行前に、書き込み先としてのアドレスによって指定されたページが書き込み保護領域にあるか否かが、書き込み保護情報納領域３１２の格納情報に基づいて判断され、書き込み先としてのアドレスによって指定されたページが書き込み保護設定されていない場合に限りデータ書き込みが実行される。なお、これらのデータ処理は、図示しないＣＰＵ等の制御手段によって、予め設定されたデータ書き込み処理シーケンスを記述したプログラムに従って実行される。
【００７１】
メモリ部３１０に対するデータの書き込みは所定のデータ量からなるページ単位で実行される。１ページは複数ワードによって構成される。図４に示すワードおよびページ設定例は、
１ワード＝８ビット（Ｄａｔａ）＋４ビット（ＥＣＣ）
１ページ＝４ワード
の設定である。
【００７２】
データ格納領域３１１は、図４に示すようにページ０〜ページ３１の３２ページ構成を持つ。書き込み保護情報格納領域３１２は、ページｐ０〜ページｐ３の４ページからなる。
【００７３】
書き込み保護情報格納領域３１２の１つのワード領域は、データ格納領域３１１の２つのページについての書き込み保護情報を、それぞれ４ビット情報として計８ビット格納し、この８ビット書き込み保護情報に基づくエラー訂正コード（ＥＣＣ）を４ビット格納する構成である。
【００７４】
ＥＥＰＲＯＭは、データ書き換え処理を行なう際には、書き換え対象の領域を一旦消去（データを"１"に設定）した後に、書き込みデータに応じて各ビット線にバイアスを与えて書き込みを行なう。
【００７５】
図４に示す書き込み保護情報格納領域３１２は、不用意な書き換え、すなわち「書き込み保護設定あり」から「書き込み保護なし」に戻す処理が行なわれないように、スクライブ領域に引き出したポリ配線の切断やポリフューズのレーザーブロー処理などにより、消去処理が出来ない構成としている。すなわち、「書き込み保護なし」を「書き込み保護設定あり」に設定することはできてもその逆は実行できない構成としている。
【００７６】
従って、上述したＥＥＰＲＯＭの特性から、書き込み保護情報格納領域３１２の格納ビット値は、初期状態がすべて消去状態としての［１］が設定され、許容されるビット値変更は、
［１］→［１］
［１］→［０］
［０］→［０］
のみとなり、
［０］→［１］
は実行できない処理となる。
【００７７】
本発明は、書き込み保護情報格納領域３１２の格納ビット値のビット値変更を［１］→［１］、［１］→［０］、［０］→［０］のみとし、［０］→［１］のビット値変更処理、すなわち消去動作を実行することなく、複数ページの書き込み保護情報をＥＣＣ生成単位として設定可能とし、任意のタイミングにおいて、書き込み保護領域を追加設定することを可能としたものである。
【００７８】
すなわち、
（１）初期状態（書き込み保護設定なし）、
（２）ページ２ｍを書き込み保護に設定
（３）ページ２ｍ＋１を書き込み保護に設定
（４）ページ２ｍ，２ｍ＋１を書き込み保護に設定
の状態（１）から状態（２）または（３）、状態（２）または（３）から状態（４）への設定変更があった場合において、書き込み保護情報およびＥＣＣの構成ビットのビット値変更を［１］→［１］、［１］→［０］、［０］→［０］のみとし、［０］→［１］のビット値変更処理を発生させない構成を採る。この構成により、複数ページの書き込み保護情報をＥＣＣ生成単位として設定可能とし、任意のタイミングにおいて、書き込み保護領域の追加設定が可能となる。
【００７９】
図５を参照して、本発明のデータ記憶装置におけるデータ書き込み保護情報格納領域に対する格納データに対応するエラー訂正コード（ＥＣＣ）算出処理の詳細について説明する。なお、以下に説明するエラー訂正コード（ＥＣＣ）の算出処理は、図４のＥＣＣ演算回路３２２において実行される。
【００８０】
ＥＣＣ演算単位は、図４に示すデータ書き込み保護情報格納領域３１２の各ワード領域に格納する８ビットのデータ書き込み保護情報である。この８ビットのデータ書き込み保護情報は、データ格納領域３１１の２つのページについての書き込み保護情報に対応する。
【００８１】
図５（ａ）は、ＥＣＣ演算単位としてのｘ０〜ｘ７の８ビットデータ（２ページ分の書き込み保護情報）と、８ビットデータに対するＥＣＣ、すなわち、ハミングコード（Hamming Code）Ｃ０〜Ｃ３の算出処理構成を示している。
【００８２】
図５（ａ）に示す○印を付した書き込み保護情報構成ビットｘ０〜ｘ７の排他論理和（ＸＯＲ）演算によって、４ビットのハミングコード（Hamming Code）Ｃ０〜Ｃ３を算出する。
【００８３】
４ビットのハミングコードＣ０〜Ｃ３の算出式を図５（ｂ）および以下に示す。ＥＣＣビットとしてのハミングコードＣ０〜Ｃ３は下式（式１）に基づいて算出する。
【数１】
2005202450.tif 000003
【００８４】
図４に示すＥＣＣ演算回路３２２は、書き込み保護情報格納領域の格納データに基づいて、上記式に従って、書き込み保護情報ｘ０〜ｘ７の８ビットデータに基づく４ビットのＥＣＣビットを算出し、書き込み保護情報データｘ０〜ｘ７と４ビットのＥＣＣビットＣ０〜Ｃ３がメモリ部３１０の書き込み保護情報格納領域３１２に格納される。
【００８５】
上記演算式で、Ｃ３，Ｃ２，Ｃ１，Ｃ０に含まれるｘ４，ｘ５，ｘ６，ｘ７の個数は全て偶数となっているため、ｘ４，ｘ５，ｘ６，ｘ７が全て同じ値（オール０、またはオール１）の場合、偶数個の同じ数値の排他論理和演算の結果は［０］となるため、結果として算出されるハミングコードＣ３，Ｃ２，Ｃ１，Ｃ０に影響を及ぼさない。すなわち、上記演算式（式１）は、下記式（式２）と等価になる。
【数２】
2005202450.tif 000004
【００８６】
上記式（式２）において、Ｃ３，Ｃ２，Ｃ１，Ｃ０の演算に含まれるｘ０，ｘ１，ｘ２，ｘ３の個数は全て奇数となっているため、ｘ３〜ｘ０がオール１の場合、Ｃ３〜Ｃ０は、全て"１"となる。一方、ｘ３〜ｘ０がオール０の場合、Ｃ３〜Ｃ０は全て"０"となる。
【００８７】
このように、１つのＥＣＣ生成単位データに含まれる複数の保護領域設定情報において、ＥＣＣ算出における排他論理和演算処理対象の選択ビットを１つのみの保護領域設定情報から奇数ビット数選択し、他の保護領域設定情報から偶数ビット数選択する構成とすることで、ＥＣＣビット（ハミングコード）値に影響を与えるデータを１つのみの保護領域設定情報、図５の場合は、ページ２ｍの保護領域設定情報ｘ３〜ｘ０のみとして設定することが可能となる。
【００８８】
この設定の結果、２ページ分の書き込み保護情報格納ワードのデータを、
初期状態（書き込み保護設定なし）として、
書き込み保護情報［１１１１１１１１］
算出ＥＣＣ［１１１１］
として設定し、この初期状態から、最終的な状態、すなわち、
ページ２ｍ〜２ｍ＋１の全てを書き込み保護に設定した場合のデータ状態、
書き込み保護情報［００００００００］
算出ＥＣＣ［００００］
となるいかなるシーケンスにおいても、書き込み保護情報、およびＥＣＣの構成ビットのビット値変更を［１］→［１］、［１］→［０］、［０］→［０］のみとし、［０］→［１］のビット値変更処理を発生させない構成が実現される。この構成により、複数ページの書き込み保護情報をＥＣＣ生成単位として設定可能とし、任意のタイミングにおいて、書き込み保護領域の追加設定が可能となる。
【００８９】
具体的な処理例として、図４のメモリ構成のデータ格納領域３１１のページ２ｍとページ２ｍ＋１の書き込み保護情報の設定変更を行なった場合の書き込み保護情報およびＥＣＣの状態遷移について、図６を参照して説明する。なお、この書き込み保護情報は、図４のメモリ部３１０の書き込み保護情報格納領域３１２中のページｐ［ｍ／４］の先頭のワード領域［ページ２ｍ，２ｍ＋１］に格納される情報である。
【００９０】
まず、「初期状態（書き込み保護設定なし）」から、「ページ２ｍを書き込み保護に設定」する場合の処理について説明する。
初期状態（書き込み保護設定なし）では、書き込み保護情報データは［１１１１１１１１］、これに対応するECCデータは［１１１１］になっている。
ページ２ｍを書き込み保護に設定する場合、書き込み保護情報データ［１１１１００００］を書込みラッチに設定し、
書き込み保護情報データ［１１１１００００］に対して上記式（式１）に従ってＥＣＣデータ［００００］を算出して、書込みラッチに格納して書込みを行なう。これにより、書込み情報格納領域のメモリセルデータは［１１１１１１１１］から［１１１１００００」に変化し、ＥＣＣデータ格納領域のメモリセルデータは［１１１１］から［００００］に変化する。
以上の処理において発生するメモリセルのビット値の変更は、［１］→［１］、［１］→［０］のみであり、［０］→［１］のビット値変更は発生しない。従って、消去処理を実行することなく、書き込み保護情報データの変更、および正しいＥＣＣデータの変更が可能となる。
【００９１】
その後、「ページ２ｍ＋１を書込み保護に設定」する場合の処理について説明する。ページ２ｍ＋１を書き込み保護に設定する場合、書き込み保護情報データ［００００１１１１］を書込みラッチに設定し、書き込み保護情報データ［００００１１１１］に対して上記式（式１）に従ってＥＣＣデータ［１１１１］を算出して、書込みラッチに格納して書込みを行なう。書込みにおいて、データ「１」の書込みは、既に書き込まれているセルの値を変化させない電圧を印加して行なう。従って、「１」書込後のセルの値は書込前の値を保持する。これにより、書込み情報格納領域のデータは上位ビットのみ「０」の書き込みが実行されて［１１１１００００］から［００００００００」に変化し、ＥＣＣデータ格納領域のデータは［００００］のままとなる。
【００９２】
一方、ページ２ｍとページ２ｍ＋１を両方に書き込み保護に設定する場合、書き込み保護情報データは［００００００００］であり、この値の上記式（式１）に従って演算されるＥＣＣデータは［００００］であり、実際のメモリセルの値と一致する。
【００９３】
以上の処理において発生するメモリセルのビット値の変更は、［１］→［０］、［０］→［０］のみであり、［０］→［１］のビット値変更は発生しない。従って、消去処理を実行することなく、書き込み保護情報データの変更、および正しいＥＣＣデータの変更が可能となる。
【００９４】
次に、「初期状態（書き込み保護設定なし）」から、「ページ２ｍ＋１を書き込み保護に設定」へ変更する場合の処理について説明する。
初期状態（書き込み保護設定なし）では、書き込み保護情報データは［１１１１１１１１］、これに対応するＥＣＣデータは［１１１１］になっている。、ページ２ｍ＋１を書き込み保護に設定する場合、書き込み保護情報データ［００００１１１１］を書き込みラッチに設定し、
書き込み保護情報データ［００００１１１１］に対してＥＣＣを上記式（式１）に従ってＥＣＣデータ［１１１１］を算出して、書き込みラッチに格納して書き込みを行なう。これにより、書き込み情報格納領域のメモリセルデータは［１１１１１１１１］から［００００１１１１］に変化し、ＥＣＣデータ格納領域のメモリセルデータは［１１１１］のまま変化しない。
【００９５】
以上の処理において発生するメモリセルのビット値の変更は、［１］→［１］、［１］→［０］のみであり、［０］→［１］のビット値変更は発生しない。従って、消去処理を実行することなく、書き込み保護情報データの変更、および正しいＥＣＣデータの変更が可能となる。
【００９６】
その後、「ページ２ｍを書込み保護に設定」する場合の処理について説明する。ページ２ｍを書き込み保護に設定する場合、書き込み保護情報データ［１１１１００００］を書込みラッチに設定し、書き込み保護情報データ［１１１１００００］に対して上記式（式１）に従ってＥＣＣデータ［００００］を算出して、書込みラッチに格納して書込みを行なう。書込みにおいて、データ「１」の書込みは、既に書き込まれているセルの値を変化させない電圧を印加して行なう。従って、「１」書込後のセルの値は書込前の値を保持する。これにより、書込み情報格納領域のデータは下位ビットのみ「０」の書き込みが実行されて［１１１１００００］から［００００００００」に変化し、ＥＣＣデータ格納領域のデータは［１１１１］から［００００］に変化する。
一方、初期状態からページ２ｍとページ２ｍ＋１を両方に書き込み保護に設定する場合、書き込み保護情報データは［００００００００］であり、この値の上記式（式１）に従って演算されるＥＣＣデータは［００００］であり、実際のメモリセルの値と一致する。
【００９７】
以上の処理において発生するメモリセルのビット値の変更は、［１］→［０］、［０］→［０］のみであり、［０］→［１］のビット値変更は発生しない。従って、消去処理を実行することなく、書き込み保護情報データの変更、および正しいＥＣＣデータの変更が可能となる。
【００９８】
このように、本発明の構成によれば、書き込み保護領域を追加設定する場合において、正確な書き込み保護情報格納領域のデータ変更を行い、かつ正しいＥＣＣビットを設定することが可能となる。すなわち、消去処理の実行できない書き込み保護情報格納の構成データおよびＥＣＣビットの値の変更を［１］→［１］、［１］→［０］、［０］→［０］のみに制限し、［０］→［１］のビット値変更処理を実行することなく、正しいデータ変更が実現される。
【００９９】
本発明の構成に従うことにより、任意のタイミングにおいて、書き込み保護領域を追加設定することを可能とし、かつ複数ページの書き込み保護情報をＥＣＣ生成単位として設定する構成が実現され、メモリ領域の削減が可能となる。
【０１００】
次に、図７、図８を参照して、書き込み保護情報の読み取り処理、および読み取り処理時に実行するＥＣＣビットに基づく書き込み保護情報のエラー訂正処理について説明する。前述したように、データ格納領域３１１（図７参照）に対するデータの消去及び書き込みに際しては、書き込み先のページが書き込み保護の設定ページであるか否かの確認処理が実行される。この処理においては、書き込み保護情報格納領域３１２の対応ページの書き込み保護情報に基づく確認処理が実行される。
【０１０１】
書き込み保護情報格納領域３１２から読み取られたデータは、データ増幅処理を行なうセンスアンプ（Ｓ／Ａ）３５１において増幅処理がなされ、ＥＣＣ演算回路３５２においてエラー訂正が実行されて出力される。
【０１０２】
ＥＣＣ演算回路３５２では、読み取り情報にエラーが含まれるか否かを判定し、エラー訂正を実行することになる。図８は、ＥＣＣ演算回路３５２において実行するエラービット検出のためのシンドローム（Syndrome）算出処理の詳細を説明する図である。
【０１０３】
図８を参照して、ＥＣＣ演算回路３５２において実行するエラービット検出のためのシンドローム（Syndrome）算出処理の詳細について説明する。図８（ａ）は、ＥＣＣ演算単位としてのｘ０'〜ｘ７'の８ビットの書き込み保護情報データと、４ビットのＥＣＣビットＣ０'〜Ｃ３'、計１２ビットデータに対するシンドローム（Syndrome）Ｓ０〜Ｓ３算出処理構成を示している。なお、各ビットデータに［'］を付加して示してあるのは、エラービットである場合があり、必ずしも書き込みデータと一致しないことを意味するものである。
【０１０４】
図７に示すＥＣＣ演算回路３５２は、メモリ部の書き込み保護情報格納領域３１２からｘ０'〜ｘ７'の８ビットデータと、ＥＣＣビットＣ０'〜Ｃ３'、計１２ビットデータ入力され、シンドローム（Syndrome）Ｓ０〜Ｓ３を算出する。
【０１０５】
シンドローム（Syndrome）Ｓ０〜Ｓ３算出処理は、図８（ａ）に示す○印を付したビットの排他論理和（ＸＯＲ）演算処理として実行する処理である。シンドローム（Syndrome）Ｓ０〜Ｓ３算出処理の計算式を、図８（ｂ）および以下の式（式３）に示す。
【数３】
2005202450.tif 000005
【０１０６】
ＥＣＣ演算回路３５２は、上記のシンドローム算出を実行し、シンドローム（Syndrome）Ｓ０〜Ｓ３算出値に基づいて、ｘ０'〜ｘ７'の８ビットデータにエラーが含まれるか否かを検証し、含まれる場合には、エラー訂正処理を実行し、正しい書き込み保護情報を出力する。
【０１０７】
書き込み保護情報は、書き込み保護の判定処理を実行する制御部、すなわち書き込み処理プログラムに従った処理を実行するＣＰＵに送られ、ＣＰＵにおいて、書き込み指定先が書き込み保護領域であるか否かが判定されることになる。書き込み保護領域であると判定されると、データ書き込みが実行されることなく処理が終了し、書き込み保護領域でないと判定されると、データ書き込みが実行されて処理が終了する。
【０１０８】
次に、図９以下を参照して、書き込み保護情報格納領域の１ワード領域に４つのページに対応する書き込み保護情報を設定した構成例について説明する。
【０１０９】
図９は、メモリ部および周辺回路の詳細構成を示す図である。メモリ部５１０は、前述の例と同様に、記憶対象のデータとともに、エラー訂正コードとしてのＥＣＣが格納される。
【０１１０】
メモリ部５１０は、データ格納領域５１１と、書き込み保護情報格納領域５１２を有する。データ格納領域５１１は、データの書き換えや、消去処理を不許可とした書き込み保護（Ｗｒｉｔｅ  Ｐｒｏｔｅｃｔ）領域（例えばページ単位）の設定が可能であり、書き込み保護情報格納領域５１２は、各ページが書き込み保護領域に設定されているか否かについての書き込み保護情報を格納する。
【０１１１】
バス５２１から入力される書き込みデータについて、ＥＣＣ演算回路５２２において、ＥＣＣの算出がなされ、書き込みラッチ５２３を介してメモリ部にデータ入力がなされ、書き込みが実行される。この書き込み処理の実行前に、書き込み先としてのアドレスによって指定されたページが書き込み保護領域にあるか否かが、書き込み保護情報格納領域５１２の格納情報に基づいて判断され、書き込み先としてのアドレスによって指定されたページが書き込み保護領域にない場合に限りデータ書き込みが実行される。なお、これらのデータ処理は、図示しないＣＰＵ等の制御手段によって、予め設定されたデータ書き込み処理シーケンスを記述したプログラムに従って実行される。
【０１１２】
メモリ部５１０に対するデータの書き込みは所定のデータ量からなるページ単位で実行される。１ページは複数ワードによって構成される。図９に示すワードおよびページ設定例は、
１ワード＝１６ビット（Ｄａｔａ）＋５ビット（ＥＣＣ）
１ページ＝４ワード
の設定である。
【０１１３】
データ格納領域５１１は、図９に示すようにページ０〜ページ３１の３２ページ構成を持つ。書き込み保護情報格納領域５１２は、ページｐ０〜ページｐ１の２ページからなる。
【０１１４】
書き込み保護情報格納領域５１２の１つのワード領域は、データ格納領域５１１の４つのページについての書き込み保護情報を、それぞれ４ビット情報として計１６ビット格納し、この１６ビット書き込み保護情報に基づくエラー訂正コード（ＥＣＣ）を５ビット格納する構成である。
【０１１５】
例えば、図９に示す書き込み保護情報格納領域５１２のページｐ０の最初のワード領域には、データ格納領域５１１の４つのページ［ページ０］と［ページ１］と［ページ２］と［ページ３］について、書き込み保護が設定されているか否かをそれぞれ４ビット情報として設定し、計１６ビットに対する５ビットのＥＣＣが併せて格納される。
【０１１６】
書き込み保護情報格納領域５１２の１つのワード領域に設定される書き込み保護情報、およびエラー訂正コード（ＥＣＣ）の設定例について、図１０を参照して説明する。図１０は、データ格納領域５１１の４つのページ［ページ４ｍ］〜［ページ４ｍ＋３］についての１６ビット書き込み保護情報ｘ０〜ｘ７および５ビットのＥＣＣデータＣ０〜Ｃ４の構成例を示す。データ格納領域５１１の４つのページ［ページ４ｍ］〜［ページ４ｍ＋３］についての書き込み保護情報が、それぞれ４ビット情報として設定され、計１６ビットに対する５ビットのＥＣＣが併せて格納される。
【０１１７】
本発明の構成では、例えば１６ビットの書き込み保護情報データに対して５ビットのＥＣＣデータ、例えば、ハミングコード（Hamming Code）を付与する。このＥＣＣデータの生成処理について、図１１を参照して説明する。
【０１１８】
書き込み保護を設定する場合、一度、設定した書き込み保護状態の解除は許容されないが、新たに書き込み保護領域を自在に設定することができるというのが本発明の特徴であり、本発明は、書き込み保護領域を追加設定した場合にも、正しいＥＣＣデータの設定が可能となることに特徴がある。
【０１１９】
本発明において適用しているメモリは、ＥＥＰＲＯＭであり、前述したように、書き込み保護情報格納領域５１２の格納ビット値は、初期状態がすべて消去状態としての［１］に設定され、許容されるビット値変更は、
［１］→［１］
［１］→［０］
［０］→［０］
のみとなり、
［０］→［１］
は実行できない処理となる。
【０１２０】
本発明においては、書き込み保護情報格納領域５１２の格納ビット値のビット値変更を［１］→［１］、［１］→［０］、［０］→［０］のみとし、［０］→［１］のビット値変更処理、すなわち消去動作を実行することなく、複数ページの書き込み保護情報をＥＣＣ生成単位として設定可能とし、任意の順番で書き込み保護領域を追加設定することを可能としたものである。
【０１２１】
すなわち、
（１）初期状態（書き込み保護設定なし）、
（２）ページ４ｍを書き込み保護に設定
（３）ページ４ｍ＋１を書き込み保護に設定
（４）ページ４ｍ＋２を書き込み保護に設定
（５）ページ４ｍ＋３を書き込み保護に設定
・・・・・・・・・・・・・・・・・
（６）ページ４ｍ〜４ｍ＋３すべてを書き込み保護に設定
の状態（１）から状態（２）〜（５）への移行、さらに（６）に至るいかなるシーケンスでの書き込み保護の追加設定が発生した場合であっても、書き込み保護情報およびＥＣＣの構成ビットのビット値変更を［１］→［１］、［１］→［０］、［０］→［０］のみとし、［０］→［１］のビット値変更処理を発生させない構成としている。この構成により、複数ページの書き込み保護情報をＥＣＣ生成単位として設定可能とし、任意の順番で書き込み保護領域の追加設定が可能となる。
【０１２２】
図１１を参照して、本発明のデータ記憶装置におけるデータ書き込み保護情報格納領域に対する格納データに対応するエラー訂正コード（ＥＣＣ）算出処理の詳細について説明する。なお、以下に説明するエラー訂正コード（ＥＣＣ）の算出処理は、図９のＥＣＣ演算回路５２２において実行される。
【０１２３】
ＥＣＣ演算単位は、図９に示すデータ書き込み保護情報格納領域５１２の各ワード領域に格納する１６ビットのデータ書き込み保護情報である。この１６ビットのデータ書き込み保護情報は、データ格納領域５１１の４つのページについての書き込み保護情報に対応（図１０参照）する。
【０１２４】
図１１（ａ）は、ＥＣＣ演算単位としてのｘ０〜ｘ１５の１６ビットデータ（４ページ分の書き込み保護情報）と、１６ビットデータに対するＥＣＣ、すなわち、ハミングコード（Hamming Code）Ｃ０〜Ｃ４の算出処理構成を示している。
【０１２５】
図１１（ａ）に示す○印を付した書き込み保護情報構成ビットｘ０〜ｘ１５の排他論理和（ＸＯＲ）演算によって、５ビットのハミングコード（Hamming Code）Ｃ０〜Ｃ４を算出する。
【０１２６】
５ビットのハミングコード（Hamming Code）Ｃ０〜Ｃ４算出式を図１１（ｂ）および以下に示す。ＥＣＣビットとしてのハミングコード（Hamming Code）Ｃ０〜Ｃ４は下式（式４）に基づいて算出する。
【数４】
2005202450.tif 000006
【０１２７】
図９に示すＥＣＣ演算回路５２２は、書き込み保護情報格納領域の格納データに基づいて、上記式に従って、書き込み保護情報ｘ０〜ｘ１５の１６ビットデータに基づく５ビットのＥＣＣビットを算出し、書き込み保護情報データｘ０〜ｘ１５と５ビットのＥＣＣビットＣ０〜Ｃ４がメモリ部５１０の書き込み保護情報格納領域５１２に格納される。
【０１２８】
上記演算式で、Ｃ４，Ｃ３，Ｃ２，Ｃ１，Ｃ０の各演算式に含まれる｛ｘ４，ｘ５，ｘ６，ｘ７｝，｛ｘ８，ｘ９，ｘ１０，ｘ１１｝，｛ｘ１２，ｘ１３，ｘ１４，ｘ１５｝の個数は各々全て偶数となっているため、｛ｘ４，ｘ５，ｘ６，ｘ７｝，｛ｘ８，ｘ９，ｘ１０，ｘ１１｝，｛ｘ１２，ｘ１３，ｘ１４，ｘ１５｝が各々、全て同じ値（オール０、またはオール１）の場合、偶数個の同じ数値の排他面利輪演算結果は［０］となるため、結果として算出されるハミングコードＣ４，Ｃ３，Ｃ２，Ｃ１，Ｃ０に影響を及ぼさない。すなわち、上記演算式（式４）は、下記式（式５）と等価になる。
【数５】
2005202450.tif 000007
【０１２９】
上記式（式５）において、Ｃ３，Ｃ２，Ｃ１，Ｃ０の演算に含まれるｘ０，ｘ１，ｘ２，ｘ３の個数は全て奇数となっているため、ｘ３〜ｘ０がオール１の場合、Ｃ３〜Ｃ０は、全て"１"となる。一方、ｘ３〜ｘ０がオール０の場合、Ｃ３〜Ｃ０は全て"０"となる。
【０１３０】
このように、１つのＥＣＣ生成単位データに含まれる複数の保護領域設定情報において、ＥＣＣ算出における排他論理和演算処理対象の選択ビットを１つのみの保護領域設定情報から奇数ビット数選択し、他の保護領域設定情報から偶数ビット数選択する構成とすることで、ＥＣＣビット（ハミングコード）値に影響を与えるデータを１つのみの保護領域設定情報、図１１の場合は、ページ４ｍの保護領域設定情報ｘ３〜ｘ０のみとして設定することが可能となる。
【０１３１】
この設定の結果、４ページ分の書き込み保護情報格納ワードのデータを、
初期状態（書き込み保護設定なし）として、
書き込み保護情報［１１１１１１１１１１１１１１１１］
算出ＥＣＣ［１１１１１］
として設定し、この初期状態から、最終的な状態、すなわち、
ページ４ｍ〜４ｍ＋３の全てを書き込み保護に設定した場合のデータ状態、
書き込み保護情報［００００００００００００００００］
算出ＥＣＣ［０００００］
となるいかなるシーケンスにおいても、書き込み保護情報、およびＥＣＣの構成ビットのビット値変更を［１］→［１］、［１］→［０］、［０］→［０］のみとし、［０］→［１］のビット値変更処理を発生させない構成が実現される。この構成により、複数ページの書き込み保護情報をＥＣＣ生成単位として設定可能とし、任意の順番で書き込み保護領域の追加設定が可能となる。
【０１３２】
具体的な処理に対応させて説明する。図１０の状態（１）〜（６）に対応付けて説明する。
（１）初期状態（書き込み保護設定なし）、
書き込み保護情報［１１１１１１１１１１１１１１１１］
算出ＥＣＣ［１１１１１］
から、
（２）ページ４ｍを書き込み保護に設定、
書き込み保護情報［１１１１１１１１１１１１００００］
算出ＥＣＣ［０００００］
に推移する場合の処理は以下の処理となる。
【０１３３】
書き込み保護情報を［１１１１１１１１１１１１１１１１］から、［１１１１１１１１１１１１００００］に変更し、［１１１１１１１１１１１１００００］に基づくＥＣＣデータを上記式（式４）に基づいて生成し、ＥＣＣデータ［０００００］を生成して、ＥＣＣデータを［１１１１１］から［０００００］に書き換える。
【０１３４】
この処理において、発生するビット値の変更は、［１］→［１］、［１］→［０］のみであり、［０］→［１］のビット値変更は発生しない。従って、消去処理を実行することなく、書き込み保護情報データの変更、および正しいＥＣＣデータの変更が可能となる。
【０１３５】
その後、「ページ４ｍ＋２を書き込み保護設定」する場合の処理について説明する。
ページ４ｍ＋２を書き込み保護に設定する場合、書き込み保護情報データ［１１１１００００１１１１１１１１］を書き込み保護情報設定領域の書き込みラッチに設定し、書き込み保護データ［１１１１００００１１１１１１１１］に対する上記演算式（式４）に従って算出されたＥＣＣデータ［１１１１１］をＥＣＣ領域の書き込みラッチに設定して書き込みを行なう。書き込みにおいては、データ「１」の書き込みセルは書き込み前のデータを保持し、データ「０」の書き込みセルは書き込み後の値は「０」となっている。従って、書込み保護情報格納領域のメモリセルデータは［１１１１１１１１１１１１００００］から［１１１１００００１１１１００００］に変化し、ＥＣＣ領域のメモリセルデータは［０００００］を保持している。
【０１３６】
この処理において、発生するビット値の変更は、［１］→［１］、［１］→［０］、［０］→［０］のみであり、［０］→［１］のビット値変更は発生しない。従って、消去処理を実行することなく、書き込み保護情報データの変更、および正しいＥＣＣデータの変更が可能となる。
【０１３７】
一方、初期状態からページ４ｍとページ４ｍ＋２を両方書き込み保護に設定する場合、書き込み保護情報データは［１１１１００００１１１１００００］となり、この書き込み保護データ［１１１１００００１１１１００００］に対する上記演算式（式４）に従って算出されたＥＣＣデータは［０００００］となり、「ページ４ｍ」の書き込み保護を設定した後、ページ４ｍ＋２の書き込み保護を設定した後のメモリセルの値と一致する。
【０１３８】
以下同様に、その後、例えばページ４ｍ＋１を追加で書き込み保護に設定した場合、書き込み後の書き込み保護情報設定領域及びそのＥＣＣ領域のメモリセルの値は、ページ４ｍ〜ページ４ｍ＋２を同時に書き込み保護に設定する場合の書き込みデータと同じ値となり、なおかつ、その追加の設定で発生するメモリセルのビット値の変化は［１］→［１］、［１］→［０］、［０］→［０］のみであり、［０］→［１］のビット値変更は発生しない。従って、消去処理を実行することなく、書き込み保護情報データの変更、および正しいＥＣＣデータの変更が可能となる。
【０１３９】
さらに、ページ４ｍ＋３を追加で書き込み保護に設定する場合も同様に、書き込み保護設定後のデータは、ページ４ｍ〜ページ４ｍ＋３を同時に書き込み保護設定する場合の書き込みデータと同じであり、なおかつ、この追加書き込みはデータの消去処理を実行する事無く設定が可能である。
【０１４０】
次に、
（１）初期状態（書き込み保護設定なし）、
書き込み保護情報［１１１１１１１１１１１１１１１１］
算出ＥＣＣ［１１１１１］
から、
（３）〜（５）状態、すなわち、ページ４ｍ＋１〜４ｍ＋３のいずれかを書き込み保護に設定、
に推移する場合の処理は以下の処理となる。
【０１４１】
書き込み保護情報を［１１１１１１１１１１１１１１１１］から、図１０に示す（３）〜（５）のいずれかのデータに変更し、変更データに基づくＥＣＣデータを上記式（式４）に基づいて生成し、ＥＣＣデータ［１１１１１］を生成する。この場合、初期状態と同一のＥＣＣビットでありメモリセルのデータは変化しない。
【０１４２】
例えば、
（４）ページ４ｍ＋２を書き込み保護に設定する場合、メモリセルのデータは
書き込み保護情報領域［１１１１００００１１１１１１１１］
ＥＣＣ領域［１１１１１］
となっている。この状態から、
ページ４ｍも、書き込み保護領域として設定する場合、
書き込み保護領域の書き込みデータとして［１１１１１１１１１１１１００００］が書き込みラッチにセットされ、このデータから演算式（式４）で演算されたデータ［００００］がＥＣＣ領域の書き込みラッチにセットされて書き込みが行なわれる。書き込みデータが「１」の場合、メモリセルのデータは変化しないため、書き込み動作後の書き込み保護領域の情報は、［１１１１００００１１１１１１１１］から、［１１１１００００１１１１００００］に変更され、ＥＣＣ領域のデータは［１１１１１］から［０００００］に変更される。
【０１４３】
一方、初期状態からページ４ｍとページ４ｍ＋２を書き込み保護状態に設定する場合の書き込みデータは［１１１１００００１１１１００００］であり、この書き込みデータから演算式（式４）で演算されたデータ［０００００］がＥＣＣ領域の書き込みデータとなる。このＥＣＣデータは、ページ４ｍ＋２を書き込み保護状態に設定した後、ページ４ｍを書き込み保護状態に設定した後のメモリセルのデータと一致する。
【０１４４】
しかも、この設定変更処理においても、発生するビット値の変更は、［１］→［１］、［１］→［０］、［０］→［０］のみであり、［０］→［１］のビット値変更は発生しない。従って、消去処理を実行することなく、書き込み保護情報データの変更、および正しいＥＣＣデータの変更が可能となる。
【０１４５】
このように、１つのＥＣＣ生成単位データに含まれる複数の保護領域設定情報において、ＥＣＣ算出における排他論理和演算処理対象の選択ビットを１つのみの保護領域設定情報から奇数ビット数選択し、他の保護領域設定情報から偶数ビット数選択する構成とすることで、ＥＣＣビット（ハミングコード）値に影響を与えるデータを１つのみの保護領域設定情報として設定可能となり、いかなる書き込み保護領域の追加処理を行なった場合でも、書き込み保護情報およびＥＣＣの構成ビットのビット値変更を［１］→［１］、［１］→［０］、［０］→［０］のみとし、［０］→［１］のビット値変更処理を発生させない構成が実現される。この構成により、複数ページの書き込み保護情報をＥＣＣ生成単位として設定可能とし、任意のタイミングにおいて、書き込み保護領域の追加設定が可能となる。
【０１４６】
最後に、図１２を参照して、上述したメモリ書き込み処理を実行する情報処理装置の構成例について説明する。
【０１４７】
前述したように、上述した本発明に係るデータ記憶装置は、データの改竄や、誤った消去の防止処理が要請されるデバイス、例えば暗号処理や認証処理を実行することが要請されるセキュリティ用途の装置に最適な構成である。
【０１４８】
図１２には、暗号処理機能を持つ情報処理装置構成例を示している。ＥＥＰＲＯＭ７０４は、先に図４、図９に示す構成を持つメモリであり、ＥＣＣデータをデータと併せて格納し、書き込み保護領域の追加設定を可能としたメモリである。
【０１４９】
図１２に示すＣＰＵ(Central Processing Unit)７０１は、暗号処理の開始や、終了、データの送受信制御、メモリを含む各デバイス間のデータ転送制御、その他の各種プログラムを実行するプロセッサである。前述の書き込み保護領域の格納情報の確認に基づく書き込み制御も実行する。なお、ＥＣＣ演算回路は、ＥＥＰＲＯＭ７０４に含まれる。あるいはＣＰＵ７０１において、ＥＣＣ演算処理を実行する構成としてもよい。
【０１５０】
その他、ＣＰＵ７０１が実行するプログラム、あるいは演算パラメータとしての固定データを格納するＲＯＭ（Read-Only-Memory）７０２、ＣＰＵ７０１の処理において実行されるプログラム、およびプログラム処理において適宜変化するパラメータの格納エリア、ワーク領域として使用されるＲＡＭ（Random Access Memory）７０３、所定の時間を発生させるタイマ７０５、外部接続機器インタフェースとしての、ＵＡＲＴ７０７がバス７３０に接続される。
【０１５１】
さらに、データ処理における割り込み制御を行うインタラプトモジュール７０８、乱数生成処理を実行する乱数発生器（ＲＮＧ）７０９を有する。乱数発生器（ＲＮＧ）７０９は、例えば、暗号処理に必要となる鍵の生成などにおいて必要となる乱数の発生処理を実行する。さらに、各種の暗号処理アルゴリズムに従った暗号処理を実行するＤＥＳエンジン７１０、ＡＥＳエンジン７１１、ＲＳＡエンジン７１２、ＳＨＡ１エンジン７１３がバス７３０に接続され、それぞれのアルゴリズムに従ってデータ暗号処理を行なう。
【０１５２】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【０１５３】
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【０１５４】
例えば、プログラムは記録媒体としてのハードディスクやＲＯＭ（Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)，ＭＯ(Magneto optical)ディスク，ＤＶＤ(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納（記録）しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
【０１５５】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、ＬＡＮ(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【０１５６】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【産業上の利用可能性】
【０１５７】
上述したように、本発明の構成によれば、データの再書き込みまたは消去の少なくともいずれかを禁止した領域としての書き込み保護領域を設定可能なデータ記憶領域と、データ記憶領域における各ページ等の区分領域の書き込み保護の設定情報を格納した書き込み保護情報格納領域とを有するメモリ部を持つ構成において、データ記憶領域の複数の区分領域に対応する複数の書き込み保護情報を含むデータをエラー訂正コード生成単位データとして、書き込み保護情報とエラー訂正コードを対応付けて格納する構成として、かつ、書き込み保護情報に基づくエラー訂正コードの生成においては、エラー訂正コード生成単位データに含まれるデータ記憶領域の唯一の区分領域に対応する書き込み保護情報の変更によってのみ、エラー訂正コードが変化するエラー訂正コード算出処理を実行する構成としたので、書き込み保護領域を追加設定する場合、書き込み保護情報のデータ変更を行い、かつ変更した書き込み保護情報に基づく正しいＥＣＣビットを設定することが可能となる。すなわち、消去処理の実行できない書き込み保護情報格納の構成データおよびＥＣＣビットの値の変更を［１］→［１］、［１］→［０］、［０］→［０］のみに制限し、［０］→［１］のビット値変更処理を実行することなく、正しいデータ変更が実現される。
【０１５８】
本発明の構成に従うことにより、任意のタイミングにおいて、書き込み保護領域を追加設定することを可能とし、かつ複数ページの書き込み保護情報をＥＣＣ生成単位として設定する構成が実現され、メモリ領域の削減が可能となる。従って、メモリの小型化が実現され、携帯機器やＩＣカードに搭載する記憶装置として最適である。
【図面の簡単な説明】
【０１５９】
【図１】書き込み保護領域の設定可能なメモリ構成例を示す図である。
【図２】書き込み保護情報格納領域の情報格納構成およびＥＣＣ設定構成例を示す図である。
【図３】ＥＥＰＲＯＭ構成例を示す図である。
【図４】本発明に係る書き込み保護領域の設定可能なメモリ構成例を示す図である。
【図５】本発明に係るデータ記憶装置における書き込み保護情報に対するＥＣＣの算出処理を説明する図である。
【図６】本発明に係るデータ記憶装置における書き込み保護情報とＥＣＣのデータ例を説明する図である。
【図７】本発明に係るデータ記憶装置における書き込み保護情報の読み取りおよびＥＣＣに基づくエラー訂正処理を説明する図である。
【図８】本発明に係るデータ記憶装置における書き込み保護情報のシンドローム算出処理を説明する図である。
【図９】本発明に係る書き込み保護領域の設定可能なメモリ構成例を示す図である。
【図１０】本発明に係るデータ記憶装置における書き込み保護情報とＥＣＣのデータ例を説明する図である。
【図１１】本発明に係るデータ記憶装置における書き込み保護情報に対するＥＣＣの算出処理を説明する図である。
【図１２】本発明に係るデータ記憶装置を搭載した情報処理装置の構成例について説明する図である。
【符号の説明】
【０１６０】
１１１  データ格納領域
１１２  ローデコーダ
１１３  書き込み保護情報格納領域
１１４  書き込みラッチ
１２１  データ格納領域
１２２  ローデコーダ
１２３  書き込み保護情報格納領域
１２４  書き込みラッチ
２０１  メモリ部
２０２  データバス
２０３  データ書き込み制御信号（ＸＲＤ）
２０４  データ読み出し制御信号（ＸＲＤ）
２０５  ＥＣＣ演算回路
２１１  メモリバス
２１２  ＥＣＣバス
３１０  メモリ部
３１１  データ格納領域
３１２  書き込み保護情報格納領域
３２１  バス
３２２  ＥＣＣ演算回路
３２３  書き込みラッチ
３５１  センスアンプ
３５２  ＥＣＣ演算回路
５１０  メモリ部
５１１  データ格納領域
５１２  書き込み保護情報格納領域
５２１  バス
５２２  ＥＣＣ演算回路
５２３  書き込みラッチ
７０１  ＣＰＵ
７０２  ＲＯＭ
７０３  ＲＡＭ
７０４  ＥＥＰＲＯＭ
７０５  タイマ
７０６  ＵＳＢ２．０
７０７  ＵＡＲＴ
７０８  インタラプトモジュール
７０９  乱数発生器（ＲＮＧ）
７１０  ＤＥＳエンジン
７１１  ＡＥＳエンジン
７１２  ＲＳＡエンジン
７１３  ＳＨＡ１エンジン
【図１】
2005202450.tif 000008
【図２】
2005202450.tif 000009
【図３】
2005202450.tif 000010
【図４】
2005202450.tif 000011
【図５】
2005202450.tif 000012
【図６】
2005202450.tif 000013
【図７】
2005202450.tif 000014
【図８】
2005202450.tif 000015
【図９】
2005202450.tif 000016
【図１０】
2005202450.tif 000017
【図１１】
2005202450.tif 000018
【図１２】
2005202450.tif 000019