JP4160625B1 - 誤り検出制御システム - Google Patents

誤り検出制御システム Download PDF

Info

Publication number
JP4160625B1
JP4160625B1 JP2007098800A JP2007098800A JP4160625B1 JP 4160625 B1 JP4160625 B1 JP 4160625B1 JP 2007098800 A JP2007098800 A JP 2007098800A JP 2007098800 A JP2007098800 A JP 2007098800A JP 4160625 B1 JP4160625 B1 JP 4160625B1
Authority
JP
Japan
Prior art keywords
error detection
data
read
processing
detection control
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007098800A
Other languages
English (en)
Other versions
JP2008257476A (ja
Inventor
茂郎 大山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP2007098800A priority Critical patent/JP4160625B1/ja
Priority to CN200880015658.2A priority patent/CN101681310B/zh
Priority to PCT/JP2008/054570 priority patent/WO2008126609A1/ja
Priority to US12/594,311 priority patent/US8176387B2/en
Priority to TW097109688A priority patent/TW200903247A/zh
Application granted granted Critical
Publication of JP4160625B1 publication Critical patent/JP4160625B1/ja
Publication of JP2008257476A publication Critical patent/JP2008257476A/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Storage Device Security (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

【課題】 データの信頼性及び耐タンパー性をある程度確保しつつ、誤り検出処理の処理手順及び回路構成を複雑化することなく上書き処理の実行が可能な不揮発性メモリの誤り検出制御システムを提供する。
【解決手段】 1アドレス毎に主データ領域と冗長データ領域で構成されたデータ領域を複数アドレス分備える不揮発性メモリ10と、不揮発性メモリ10に対し、データ領域群単位での一括消去処理、データ領域単位での読み出し処理、データ領域単位での書き込み処理及びビット単位での上書き処理の制御を行うメモリ制御手段20と、読み出しデータに対し、対応する冗長データに基づいて誤り検出処理を実行する誤り検出手段30と、上書き処理の実行対象であるか否かで分類されるデータ種別、または、上書き処理を実行したか否かを示す記憶状態に基づいて、誤り検出処理の実行の可否を制御する誤り検出制御手段50を備える。
【選択図】 図2

Description

本発明は、不揮発性メモリを備えた半導体装置の誤り検出制御システム、特に、1アドレス毎に主データ領域と冗長データ領域で構成されたデータ領域を複数アドレス分備える不揮発性メモリと、不揮発性メモリに対し、データ領域群単位での一括消去処理、データ領域単位での読み出し処理、データ領域単位での書き込み処理、及び、ビット単位での上書き処理の制御を行うメモリ制御手段と、読み出しデータに対し、対応する冗長データに基づいて誤り検出処理を実行する誤り検出手段と、を備える誤り検出制御システムに関する。
従来、例えば、フラッシュメモリ等の不揮発性メモリを搭載した半導体装置では、データの信頼性や、電子証明情報やパスワード等の秘密情報の読み取り等のために行われる不正なデータ改ざん等に対する耐タンパー性を確保するために、様々な技術が提案されている。
データの信頼性や耐タンパー性を確保するための技術には、例えば、データの各ビット構成に基づいてパリティ符号やチェックサム等の誤り検出符号を生成し、誤り検出符号を用いて謝り検出処理を行う誤り検出技術や、ハミング符号等の誤り検出訂正符号を生成し、誤り検出訂正符号を用いて誤り検出処理及び誤り訂正処理を行う誤り検出訂正技術がある。
具体的には、誤り検出符号を用いた誤り検出技術では、例えば、フラッシュメモリを、1アドレス毎に所定のデータを記憶するための主データ領域と前記データの誤り検出処理のための冗長データを記憶する冗長データ領域で構成されたデータ領域を複数アドレス分備えるように構成する。そして、書き込み処理時に、書き込みデータの各ビット構成に基づいて誤り検出符号を生成し、主データ領域に書き込みデータを書き込むと共に、冗長データ領域に必要な情報を書き込む。更に、読み出し処理時に、フラッシュメモリから読み出しデータと共に対応する冗長データを読み出し、該冗長データを用いて、読み出しデータのエラー検出のための誤り検出処理を行う。尚、誤り検出訂正符号を用いた誤り検出訂正技術では、書き込み処理時に、書き込みデータの各ビット構成に基づいて誤り検出訂正符号を生成し、読み出し処理時に、誤り検出処理において誤りが検出されたときに、誤り訂正処理を行う。
尚、誤り検出技術における誤り検出処理は、例えば、電源にノイズを印加する等して、フラッシュメモリから読み出した読み出しデータを不正に改ざんされた場合に、該データの改ざんを検出して、耐タンパー性を確保するのに有用である。また、誤り検出訂正技術における誤り訂正処理では、例えば、長期間メモリ内に保持されているデータが経年劣化して読み取り不良等が生じた場合等に、データを修正することができるため、データの信頼性の確保に有用である。
ところで、フラッシュメモリでは、原理上、書き込み処理において、ビット単位で値を消去状態である‘1’から書き込み状態である‘0’に書き換えるが、ビット単位で値を書き込み状態‘0’から消去状態‘1’にすることはできない。より具体的には、書き込み状態‘0’から消去状態‘1’にする場合、消去処理を行うが、消去処理は、例えば、所定アドレス数のデータ領域からなるメモリブロック単位で一括して行われる。つまり、消去処理では、消去対象のメモリブロック内の全てのビットの値が‘0’から‘1’に消去されることとなり、ビット単位で値を‘0’から‘1’にすることはできない。
このため、データが命令データ(命令コード)等である場合には、一度データが書き込まれると、次の命令コードを書き込む書き込み処理の前に、必ず消去処理が実行されることとなる。これに対し、データがプログラムカウンタ等の順次変化するデータである場合には、処理速度の高速化の観点から、データの書き込み処理毎に消去処理を実行するのではなく、書き込み処理の後にデータ領域の内の主データ領域の値をビット単位で‘1’から‘0’に書き換える上書き処理を一定回数繰り返してから消去処理を実行するように構成されている場合がある。
尚、誤り検出符号や誤り検出訂正符号等のための冗長データを付加する構成の場合、誤り検出符号や誤り検出訂正符号は主データ領域に記憶されたデータのビット構成に応じて作成されるため、主データ領域に対するビット単位での上書き処理を実行すると、冗長データを書き換える必要が生じる。しかし、上述したように、フラッシュメモリでは、ビット単位での‘0’から‘1’への書き換えができないため、データに対する上書き処理を実行すると、冗長データを正しく書き換えることが不可能な場合が生じる。このため、フラッシュメモリを備える従来の半導体装置では、データの信頼性や耐タンパー性の観点から有効な誤り検出処理と、処理速度の高速化の観点から有効な上書き処理を同時に備えることはできなかった。
誤り検出処理と上書き処理を同時に備えるための技術としては、例えば、フラッシュメモリの各データ領域を、主データ領域と冗長データを記憶するための冗長データ領域とステータス領域で構成し、データ領域全体の消去処理、及び、主データ領域及び冗長データ領域への書き込み処理が実行された後、所謂上書き処理として、ステータス領域に対し、主データ領域及び冗長データ領域に対する変更が必要ないデータを書き込むエラー検出技術がある(例えば、特許文献1参照)。
ここで、図11は、特許文献1に記載のエラー検出技術によるデータ領域の値の遷移例を示している。ここでのデータ領域は、4ビットのステータス領域WS、4ビットの主データ領域WM、4ビットの冗長データ領域WPで構成されており、冗長データ領域WPには、ステータス領域WS及び主データ領域WMからなる8ビットの領域WFに対する誤り検出訂正符号のためのデータが記憶される。
具体的には、図11(a)は、消去処理後のデータ領域を示しており、データ領域中の全てのビットの値が‘1’となっている。図11(b)は、消去処理後の最初の書き込み処理を実行した後のデータ領域の値を示している。この書き込み処理の例では、主データ領域WMに値‘1010’が、冗長データ領域WPに値‘1001’が書き込まれる。上述したように、冗長データ領域WPに書き込まれた値‘1001’は、8ビットの領域WFの値‘11111010’に対する誤り検出訂正符号となっている。
図11(c)は、所謂上書き処理後(単一ビット変更後)のデータ領域の値を示している。この所謂上書き処理では、ステータス領域WSに値‘0001’が書き込まれる。ここで、8ビットの領域WFの値は‘00011010’となり、これに対する誤り検出訂正符号の値は‘1001’である。これは、冗長データ領域WPの値‘1001’と等しいので、所謂上書き処理後において、冗長データ領域WPに記憶された冗長データ‘1001’を用いて、所謂上書き処理後のステータス領域WS及び主データ領域WMからなる8ビットの領域WFに記憶されたデータ‘00011010’に対する誤り検出処理が可能であることが分かる。
特表2004−524636号公報
しかしながら、上記特許文献1に記載のエラー検出技術では、既に書き込まれた主データ領域WM及び冗長データ領域WPの値と整合性のあるデータをステータス領域WSに書き込む必要があるため、ステータス領域WSに書き込むことができるデータの値が限られることとなる。具体的には、図11に示す例では、ステータス領域WSに書き込むことができる値は、上述した値‘0001’の他、値‘0100’だけである。このため、例えば、モバイル通信においてコンテンツデータをダウンロードし、このコンテンツが無効になった時に、ステータス領域WSに該データが無効であることを示す無効マーク‘0001’を書き込む場合等、ステータス領域WSの用途は著しく限定される。更に、上記特許文献1に記載のエラー検出技術では、ステータス領域WSに書き込める値が限られており、所謂上書き処理を複数回実行することは困難であることから、上述したプログラムカウンタのように、複数の上書き処理が実行できることが望ましいデータに適用するには不向きである。
また、上記特許文献1に記載のエラー検出技術では、上述したように、既に書き込まれた主データ領域WM及び冗長データ領域WPの値と整合性のあるデータをステータス領域WSに書き込む必要があるため、ステータス領域WSに書き込む値の作成に係る回路は、回路構成が複雑になる。
また、上記特許文献1に記載のエラー検出技術では、主データ領域WMのビット数に応じたビット数のステータス領域WSを備える必要があり、更に、このステータス領域WSも含めて冗長データを作成するため、冗長データを記憶する冗長データ領域WPのビット数も多くなる。つまり、これらの領域の増加に伴って、必要なデータ領域のデータ量が増加し、フラッシュメモリの記憶領域を相当量増加させる必要が生じる。
本発明は上記の問題に鑑みてなされたものであり、その目的は、データの信頼性及び耐タンパー性をある程度確保しつつ、誤り検出処理の処理手順及び回路構成を複雑化することなく、データの特性や状態に応じて上書き処理の実行を可能にする不揮発性メモリの誤り検出制御システムを提供する点にある。
上記目的を達成するための本発明に係る誤り検出制御システムは、1アドレス毎に所定のデータを記憶するための主データ領域と前記データの誤り検出処理のための冗長データを記憶する冗長データ領域で構成されたデータ領域を複数アドレス分備える不揮発性メモリと、前記不揮発性メモリに対し、所定アドレス数の前記データ領域からなるデータ領域群単位での一括消去処理、前記データ領域単位での読み出し処理、前記データ領域単位での書き込み処理、及び、前記書き込み処理後の前記主データ領域に対する前記主データ領域を構成するビット単位での上書き処理の制御を行うメモリ制御手段と、前記読み出し処理によって読み出された読み出しデータに対し、対応する前記冗長データに基づいて前記誤り検出処理を実行する誤り検出手段と、を備えた誤り検出制御システムであって、前記上書き処理の実行対象であるか否かで分類されるデータ種別、または、前記上書き処理を実行したか否かを示す記憶状態に基づいて、前記誤り検出手段における前記読み出しデータに対する前記誤り検出処理の実行の可否を制御する誤り検出制御手段を備えることを第1の特徴とする。
上記特徴の本発明に係る誤り検出制御システムは、前記不揮発性メモリは、前記データ領域夫々が、前記誤り検出処理の実行が禁止された前記データを記憶する誤り検出処理禁止データ領域と、前記誤り検出処理の実行が許可された前記データを記憶する誤り検出処理許可データ領域の何れかに設定されており、前記誤り検出制御手段は、前記読み出し処理時に、前記読み出し処理の対象となる前記データ領域である読み出し対象データ領域が前記誤り検出処理禁止データ領域である場合に、前記誤り検出手段における前記誤り検出処理の実行を禁止し、前記読み出し対象データ領域が前記誤り検出処理許可データ領域である場合に、前記誤り検出手段における前記誤り検出処理の実行を許可することを第2の特徴とする。
上記第1の特徴の本発明に係る誤り検出制御システムは、前記メモリ制御手段は、前記読み出し処理時に、前記誤り検出制御手段に対し、当該読み出し処理における前記読み出しデータの前記データ種別に応じた誤り検出制御信号を出力し、前記誤り検出制御手段は、前記読み出し処理時に、前記誤り検出制御信号に基づいて、前記読み出しデータの前記データ種別が前記上書き処理を実行され得る前記データ種別であるか否かを判定し、前記上書き処理を実行され得ない前記データ種別である場合に、前記誤り検出手段における前記誤り検出処理を許可し、前記上書き処理を実行され得る前記データ種別である場合に、前記誤り検出手段における前記誤り検出処理を禁止し、前記誤り検出手段は、前記誤り検出制御手段により前記読み出しデータに対する前記誤り検出処理の実行が許可されている場合に、対応する前記冗長データを用いて前記読み出しデータに対する前記誤り検出処理を実行することを第3の特徴とする。
上記特徴の本発明に係る誤り検出制御システムは、前記誤り検出制御手段は、前記誤り検出制御信号が、前記読み出しデータが命令データであることを示す信号である場合に、前記誤り検出処理の実行を許可し、前記誤り検出制御信号が、前記読み出しデータがプログラムカウンタ値であることを示す信号である場合に、前記誤り検出処理の実行を禁止することを第4の特徴とする。
上記第1の特徴の本発明に係る誤り検出制御システムは、前記不揮発性メモリは、前記データ領域毎に、前記誤り検出処理の実行の可否を記憶するフラグ領域を備えてなり、前記誤り検出制御手段は、前記メモリ制御手段による前記上書き処理時に、前記上書き処理の対象となる前記データ領域に対応する前記フラグ領域に、前記誤り検出処理の実行禁止フラグを設定することを第5の特徴とする。
上記第1の特徴の本発明に係る誤り検出制御システムは、前記データ領域毎に前記誤り検出処理の実行の可否を記憶可能なレジスタを前記不揮発性メモリ外に備えてなり、前記誤り検出制御手段は、前記メモリ制御手段による前記上書き処理時に、前記レジスタに、前記上書き処理の対象となる前記データ領域に対する前記誤り検出処理の実行禁止フラグを設定することを第6の特徴とする。
上記何れかの特徴の本発明に係る誤り検出制御システムは、前記メモリ制御手段は、前記誤り検出処理の実行が禁止された誤り検出禁止データに対する前記読み出し処理の実行後、更に、所定回数の前記誤り検出禁止データに対する前記読み出し処理を実行し、前記誤り検出制御手段は、前記読み出し処理により読み出された読み出しデータの夫々を比較処理して、前記読み出しデータの正誤を判定することを第7の特徴とする。
上記何れかの特徴の本発明に係る誤り検出制御システムは、前記冗長データは、前記誤り検出処理に加え、誤り訂正処理で利用可能に構成され、前記誤り検出手段は、前記読み出しデータに対し、対応する前記冗長データに基づいて、前記誤り検出処理及び前記誤り訂正処理を実行し、前記誤り検出制御手段は、前記誤り検出処理の実行を禁止する場合に、前記誤り訂正処理を禁止することを第8の特徴とする。
上記目的を達成するための本発明に係るICカードは、上記何れかの特徴の誤り検出制御システムを搭載したICチップを供えることを特徴とする。
上記特徴の誤り検出制御システムによれば、上書き処理の実行対象であるか否かで分類されるデータ種別、または、上書き処理を実行したか否かを示す記憶状態に基づいて、誤り検出処理の可否を制御する誤り検出制御手段を備えることにより、上書き処理を行わないまたは上書き処理を実施していない読み出しデータについては、誤り検出処理を実行してデータの信頼性及び耐タンパー性を維持することが可能になると共に、上書き処理の実行が望ましいまたは上書き処理を実施した読み出しデータについては、上書き処理の実行が可能になり、データ処理の高速化を図ることが可能になる。即ち、上記特徴の誤り検出制御システムによれば、不揮発性メモリを備える半導体装置において、データの信頼性や耐タンパー性の観点から有効な誤り検出処理と、処理速度の高速化の観点から有効な上書き処理を同時に備え、且つ、データ種別や記憶状態に応じて自動的に最適な処理を実行することが可能になる。
また、上記第2の特徴の誤り検出制御システムによれば、不揮発性メモリのデータ領域を誤り検出処理禁止データ領域と誤り検出処理許可データ領域の何れかに設定することで上書き処理の可否を制御するように構成したので、上書き処理の可否の設定に係る処理手順及び回路構成を複雑化することなく、簡単な構成で上記第2の特徴の誤り検出制御システムを実現できる。また、上記第2の特徴の誤り検出制御システムの書き込み処理の処理手順は、従来の書き込み処理の処理手順からの変更量を小さく抑えることができるので、上記第2の特徴の誤り検出制御システムの作成を容易にすることが可能になる。
上記第3の特徴の誤り検出制御システムによれば、誤り検出制御手段が、メモリ制御手段から出力される誤り検出制御信号に基づいて、読み出しデータのデータ種別を判定するように構成したので、データ種別の判定を簡単な構成で実現でき、簡単な構成で上記第3の特徴の誤り検出制御システムを実現できる。
更に、上記第4の特徴の誤り検出制御システムによれば、上書き処理の実行対象とはならない命令データについて誤り検出処理の実行を許可するように構成したので、不正手段等によるデータ改ざんや長期保持によるデータ劣化が秘密情報の漏洩やシステムの暴走に直結する可能性が高い命令データに対するデータの信頼性や耐タンパー性を確保でき、秘密情報の漏洩やシステムの暴走を効果的に防止できる。更に、上記第4の特徴の誤り検出制御システムによれば、上書き処理が望ましいプログラムカウンタについて誤り検出処理の実行を禁止するように構成したので、プログラムカウンタに対する処理速度の高速化を図ることができる。
上記第5の特徴の誤り検出制御システムによれば、不揮発性メモリ内にデータ領域夫々に対応するフラグ領域を設け、上書き処理時に、フラグ領域に誤り検出処理の禁止フラグを設定するように構成したので、主データ領域に記憶されたデータに対する誤り検出処理の可否の判定を容易にすることができ、簡単な構成で誤り検出制御手段における誤り検出処理の可否を判定することが可能になる。また、上記第5の特徴の誤り検出制御システムによれば、上書き処理時に、フラグ領域に誤り検出処理の禁止フラグを設定するので、上書き処理により、冗長データ領域に記憶された冗長データが主データ領域に記憶されたデータの誤り検出処理に用いることが適切ではなくなった場合に、誤り検出処理を禁止することができる。
上記第6の特徴の誤り検出制御システムによれば、不揮発性メモリとは別に、データ領域毎に誤り検出処理の実行の可否を記憶することが可能なレジスタを設け、上書き処理時に、上書き処理の対象となるデータ領域に対する誤り検出処理の実行禁止フラグを設定するように構成したので、主データ領域に記憶されたデータに対する誤り検出処理の可否の判定を容易にすることができ、簡単な構成で誤り検出制御手段における誤り検出処理の可否を判定することが可能になる。また、上記第6の特徴の誤り検出制御システムによれば、上書き処理時に、レジスタに誤り検出処理の禁止フラグを設定するので、上書き処理により、冗長データ領域に記憶された冗長データが主データ領域に記憶されたデータの誤り検出処理に用いることが適切ではなくなった場合に、誤り検出処理を禁止することができる。
上記第7の特徴の誤り検出制御システムによれば、誤り検出処理を実行しないデータに対し、読み出し処理を複数回実行し、読み出しデータを夫々比較処理して正誤を判定するように構成したので、冗長データによる誤り検出処理を実行しないデータについても、データの信頼性及び耐タンパー性を確保することが可能になる。
上記第8の特徴の誤り検出制御システムによれば、冗長データが、ハミングコード等の誤り訂正処理に用いることが可能なデータである場合に、誤り検出処理の禁止時に、誤り訂正処理を同時に禁止するように構成したので、誤り検出処理だけでなく誤り訂正処理が可能な冗長データを備える場合にも本発明に係る誤り検出制御システムを適用することが可能になる。
上記特徴のICカードによれば、上記第1〜第8の何れかの特徴の誤り検出制御システムを備えるので、上記第1の特徴の誤り検出制御システムにおける作用効果を全て奏することができる。即ち、上記特徴のICカードによれば、上書き処理を行わないまたは上書き処理を実施していない読み出しデータに対しては、データの信頼性や耐タンパー性の観点から有効な誤り検出処理を実行可能になり、上書き処理の実行が望ましいまたは上書き処理を実施した読み出しデータに対しては、処理速度の高速化の観点から有効な上書き処理を実行可能になり、データ種別や記憶状態に応じて自動的に最適な処理を実行することが可能になる。
以下、本発明に係る誤り検出制御システム(以下、適宜「本発明システム」と略称する)及びICカードの実施形態を図面に基づいて説明する。
〈第1実施形態〉
本発明システムの第1実施形態について図1〜図6を基に説明する。尚、本実施形態では、本発明システムがICカードに搭載されている場合を想定して説明する。
先ず、本実施形態の本発明システム及びICカードの構成について図1〜図5を基に説明する。ここで、図1は、本発明システム1を搭載したICカード100の概略構成例を、図2は、本実施形態の本発明システム1の概略構成例を示している。
本実施形態の本発明システム1は、図1に示すように、ICカード100に搭載されており、ICカード100は、本発明システム1を構成するフラッシュメモリ10、CPU(中央処理装置)20、誤り検出回路30、冗長データ生成回路40及び誤り検出制御回路50に加え、ICカード100駆動用プログラムや、パスワード、電子証明情報等の秘密情報等を格納したROM(読み出し専用メモリ)60、各種データを一時的に格納するRAM(ランダムアクセスメモリ)70、外部装置とのデータ通信のためのI/O(入出力インターフェース)80を備えて構成されている。また、図1に示す用に、CPU20と、ROM60、RAM70及びI/O80は、夫々、アドレス信号A[a:0]を伝送するアドレスバス、データ信号D[a:0]を伝送するデータバスで接続されている。また、CPU20から、ROM60にメモリ制御信号Sm1が、RAM70にメモリ制御信号Sm2が、I/O80に制御信号Sm3が入力されるように構成されている。
本発明システム1は、図2に示すように、1アドレス毎に所定のデータを記憶するための主データ領域とデータの誤り検出処理のための冗長データを記憶する冗長データ領域で構成されたデータ領域を複数アドレス分備える不揮発性メモリの一例としてのフラッシュメモリ10と、フラッシュメモリ10に対し、所定アドレス数のデータ領域からなるデータ領域群単位(ブロック単位)での一括消去処理、データ領域単位での読み出し処理、データ領域単位での書き込み処理、及び、書き込み処理後の主データ領域に対する主データ領域を構成するビット単位での上書き処理の制御を行うCPU20(メモリ制御手段に相当)と、読み出し処理によって読み出された読み出しデータに対し、対応する冗長データに基づいて誤り検出処理を実行する誤り検出回路30と、上書き処理の実行対象であるか否かで分類されるデータ種別に基づいて、誤り検出回路30における読み出しデータに対する誤り検出処理の実行の可否を制御する誤り検出制御回路50(誤り検出制御手段に相当)を備えている。本実施形態の本発明システム1は、更に、書き込み処理において書き込み対象となる書き込みデータについて、冗長データを生成する冗長データ生成回路40を備えている。
尚、本実施形態では、例えば、命令コードや秘密情報等を、上書き処理の実行対象となり得ない誤り検出処理を行うデータ種別とし、プログラムカウンタ等の逐次変化するデータを、上書き処理の実行対象となり得る誤り検出処理を行わないデータ種別とする。また、本実施形態の冗長データは、誤り検出処理を実行可能に構成されており、ここでは、パリティ符号(例えば、奇数パリティ)による1ビットデータである場合を想定して説明する。
フラッシュメモリ10は、本実施形態では、ICカード100の機能を実現するためのプログラムの実行において、命令データ(命令コード)やプログラムカウンタ等のデータを記憶する。フラッシュメモリ10は、本実施形態では、データ領域の夫々が、誤り検出処理の実行が禁止されたデータを記憶する誤り検出処理禁止データ領域と、誤り検出処理の実行が許可されたデータを記憶する誤り検出処理許可データ領域の何れかに設定されている。
ここで、図3(a)は、本実施形態におけるフラッシュメモリ10の一概略構成例を示すアドレスマップを、図3(b)は、データ領域WDの一構成例を示している。具体的には、図3(a)に示すように、フラッシュメモリ10は、アドレス‘0000’〜‘zzzz’までのデータ領域WDを備えている。アドレス‘0000’〜‘xxxx’は、命令コードのためのデータ領域WDであり、上書き処理の実行対象となり得ないため、誤り検出処理許可データ領域に設定されている。アドレス‘xxx(x+1)’〜‘yyyy’は、プログラムカウンタのためのデータ領域WDであり、上書き処理の実行対象となり得るため、誤り検出処理禁止データ領域に設定されている。アドレス‘yyy(y+1)’〜‘zzzz’は、命令の実行で用いられる画像データ等の演算用データのためのデータ領域WDであり、上書き処理の実行対象ではないため、誤り検出処理許可データ領域に設定されている。各データ領域WDは、図3(b)に示すように、命令コードやプログラムカウンタ、演算用データ等のデータを格納する主データ領域WMと、冗長データを記憶する冗長データ領域WPを備えて構成されている。
CPU20は、本発明システム1が組み込まれたICカード100の各機能を実現するために、ICカード100内に設けられた各回路の制御を行う。また、本実施形態のCPU20は、本発明システム1に係る機能として、後述する誤り検出制御回路50に対し誤り検出処理の可否の設定で用いるデータの出力、及び、フラッシュメモリ10に対する一括消去処理、読み出し処理、書き込み処理及び上書き処理の制御を行う。
CPU20は、本実施形態では、図2に示すように、後述する誤り検出制御回路50に対し、誤り検出処理の可否の設定のためのデータとして、フラッシュメモリ10に入力するアドレス信号A[a:0](aはアドレス信号Aの最上位ビットの値)と、チップイネーブル信号CE、書き込みイネーブル信号WE及び出力イネーブル信号OE等で構成されるメモリ制御信号Smを出力するように構成されている。尚、本実施形態では、誤り検出処理の可否の設定のためのデータとして、フラッシュメモリ10を制御するアドレス信号A[a:0]及びメモリ制御信号Smを利用するように構成したが、これに限るものではなく、他のデータを利用しても良いし、専用のデータを用いるように構成しても良い。
CPU20は、フラッシュメモリ10に対する制御において、例えば、一括消去処理では、フラッシュメモリ10内のコマンド用内部レジスタにブロック消去コマンドを書き込むことにより、ブロック単位での消去処理を行う。また、例えば、書き込み処理及び上書き処理では、チップイネーブル信号CE及び書き込みイネーブル信号WEを活性状態にし、書き込み対象のデータ領域WDのアドレスを示すアドレス信号A[a:0]をフラッシュメモリ10に出力し、書き込みデータのデータ信号Dw[d:0](dはデータ信号の最上位ビットの値)を後述する冗長データ生成回路40に出力する。更に、例えば、読み出し処理では、チップイネーブル信号CE及び出力イネーブル信号OEを活性状態にし、読み出し対象のデータ領域WDのアドレスを示すアドレス信号A[a:0]を出力し、誤り検出回路30から読み出しデータのデータ信号Dr[d:0]と誤り検出信号Seを受け付ける。尚、各信号は、フラッシュメモリ10の仕様に応じたタイミングで出力する。
図4は、CPU20によるICカード100駆動用プログラムの実行において、フラッシュメモリ10に対する一連の読み出し処理で読み出される読み出しデータの例を示している。ここでは、各データ領域WDの主データ領域WMのデータ長が8bitであり、データ長16bitの命令コードが2つのデータ領域WDを用いて格納されている場合を想定して説明する。同様に、プログラムカウンタのデータ長が16bit、演算用データのデータ長が8bitまたは16bitである場合を想定して説明する。
図4に示すように、CPU20は、先ず、命令コードが格納されているデータ領域WDのアドレスを取得するために、フラッシュメモリ10に対する読み出し処理を実行して、Dr1[d:0]及びDr2[d:0]で構成されるプログラムカウンタを取得する。Dr1[d:0]及びDr2[d:0]は、一方がプログラムカウンタの上位8ビット、他方が下位8ビットに対応している。
続いて、CPU20は、プログラムカウンタが示すアドレスのデータ領域WD及び次のアドレスのデータ領域WDから、Dr3[d:0]及びDr4[d:0]で構成される命令コードを読み出す。Dr3[d:0]及びDr4[d:0]は、一方が命令コードの上位8ビット、他方が下位8ビットに対応している。命令コードを読み出した後、CPU20は、プログラムカウンタが示すアドレスの値を増加する(ここでは、CPU20がデータ長16bitの命令コードを実行する場合を想定しているため、アドレスの値を2増加させる)ように、フラッシュメモリ10のプログラムカウンタのデータ領域WDを上書き処理して更新する。
引き続き、CPU20は、読み出した命令コードを解読し、命令の実行で用いられる演算用データを読み出すための読み出し処理を実行し、Dr5[d:0]及びDr6[d:0]で構成される演算用データを取得する。Dr5[d:0]及びDr6[d:0]は、一方が演算用データの上位8ビット、他方が下位8ビットに対応している。CPU20は、Dr5[d:0]及びDr6[d:0]で構成される演算用データを用いて命令を実行し、その結果をフラッシュメモリ10の所定のデータ領域WDに書き込む。同様にして、CPU20は、順次、プログラム実行を制御する。
尚、本実施形態では、本発明システム1は、図4に示す一連の読み出し処理で読み出される読み出しデータの内、プログラムカウンタの値であるDr1[d:0]及びDr2[d:0]については、誤り検出処理の実行を禁止し、命令コードであるDr3[d:0]及びDr4[d:0]、演算用データであるDr5[d:0]及びDr6[d:0]については、誤り検出処理の実行を許可するように構成されている。
ここで、図5は、フラッシュメモリ10に記憶されたプログラムカウンタの値の変化の一例を示している。尚、図5では、説明のために、各データ領域WDの主データ領域WMのデータ長が8bit、プログラムカウンタのデータ長が16bitの場合において、下位8ビットに対応するデータ領域WDについて示している。
本実施形態では、図5(a)に示すように、プログラムカウンタ用のデータ領域WDの各ビットの値は、消去処理後、全て‘1’となる。プログラム実行により、図5に示すプログラムカウンタの更新要求が発生すると、CPU20は、プログラムカウンタの主データ領域WMに書き込みデータ‘1111 1110’を書き込む書き込み処理を実行する。更に、書き込み処理後の主データ領域WMに記憶されたデータ‘1111 1110’に対応する冗長データ‘0’(奇数パリティ)が後述する冗長データ生成回路40によって生成され、プログラムカウンタのデータ領域WDにおける冗長データ領域WPに冗長データ‘0’が書き込まれる。
プログラム実行により、更に、プログラムカウンタの更新要求が発生すると、CPU20は、プログラムカウンタの主データ領域WMの内の1ビットの値を‘1’から‘0’にする上書き処理を実行する。詳細には、図5(b)に示す主データ領域WMのデータ‘1111 1110’に、データ‘1111 1101’またはデータ‘1111 1100’を上書きする。この上書き処理により、プログラムカウンタの主データ領域WMは、図5(c)に示すように、‘1111 1100’となる。尚、図5(c)に示す主データ領域WMのデータ‘1111 1100’に対応する冗長データは‘1’であるが、フラッシュメモリ10の原理上、ビット単位での‘0’から‘1’への書き込み処理は実行できないため、上書き処理後の冗長データは‘0’となる。これは、上書き処理後のプログラムカウンタ及びその冗長データについては、正しく誤り検出処理が実行できないことを意味している。
同様にして、更に、プログラムカウンタの更新要求が発生すると、CPU20は、プログラムカウンタの主データ領域WMの内の1ビットの値を‘1’から‘0’にする上書き処理を実行する。詳細には、図5(c)に示す主データ領域WMのデータ‘1111 1100’に、データ‘1111 1011’、データ‘1111 1001’またはデータ‘1111 1000’を上書きする。この上書き処理により、プログラムカウンタの主データ領域WMは、図5(d)に示すように、‘1111 1000’となる。
更に、本実施形態のCPU20は、誤り検出制御回路50における誤り検出処理の実行が禁止された誤り検出禁止データに対する正誤判定のために、誤り検出禁止データに対する読み出し処理の実行後、更に、所定回数の誤り検出禁止データに対する読み出し処理を実行するように構成されている。
誤り検出回路30は、CPU20による読み出し処理時、後述する誤り検出制御回路50によって読み出しデータに対する誤り検出処理が許可されている場合に、読み出しデータに対し、対応する冗長データに基づいて誤り検出処理を実行する。
具体的には、誤り検出回路30は、本実施形態では、冗長データとして、パリティチェックのための1ビットデータ(奇数パリティ)を想定しているので、フラッシュメモリ10から出力されるデータ信号Drp[d+p:0](pは冗長データのビット数、ここでは1)について、主データ領域WM及び冗長データ領域WPを含むデータ領域WD全体で‘1’の数が奇数である場合、即ち、データ信号Drp[d+1:0]に含まれる‘1’の数が奇数である場合に、読み出しデータが正しいと判定する。
更に、誤り検出回路30は、読み出しデータに対する誤り検出処理が許可されている場合は、読み出しデータに対する誤り検出処理の実行後、読み出しデータに対する誤り検出処理が禁止されている場合は、読み出しデータが読み出された後、読み出しデータDrp[d+p:0]の内の主データ領域WMのデータ信号Dr[d:0]と、誤り検出信号Seを出力する。尚、ここでの誤り検出信号Seは、誤り検出処理において読み出しデータが正しくないと判定した場合に‘1’を設定し、その他の場合は‘0’を設定する。
誤り検出制御回路50は、CPU20による読み出し処理時に、読み出し処理の対象となるデータ領域WDである読み出し対象データ領域が誤り検出処理禁止データ領域である場合に、誤り検出回路30における誤り検出処理の実行を禁止し、読み出し対象データ領域が誤り検出処理許可データ領域である場合に、誤り検出回路30における誤り検出処理の実行を許可する。更に、誤り検出制御回路50は、誤り検出処理の可否を示す可否設定信号Saを誤り検出回路30に出力する。
本実施形態では、誤り検出制御回路50は、具体的には、CPU20から出力されるアドレス信号A[a:0]の値と図3に示すアドレスマップに基づいて、読み出し対象データ領域が誤り検出処理禁止データ領域と誤り検出処理許可データ領域の何れであるかを判定する。アドレス信号A[a:0]が、アドレス‘0000’〜‘xxxx’または‘yyy(y+1)’〜‘zzzz’を示す場合は、誤り検出処理許可データ領域と判定し、アドレス‘xxx(x+1)’〜‘yyyy’を示す場合は、誤り検出処理禁止データ領域と判定する。読み出し対象データ領域が誤り検出処理許可データ領域の場合は、可否設定信号Saの値を‘0’に設定し、誤り検出処理禁止データ領域の場合は、可否設定信号Saの値を‘1’に設定する。
更に、本実施形態の誤り検出制御回路50は、誤り検出処理の実行が禁止された誤り検出禁止データに対する正誤判定を行う。具体的には、CPU20により読み出された所定数の誤り検出禁止データを夫々比較処理して、読み出しデータの正誤を判定する。
冗長データ生成回路40は、CPU20による書き込み処理時に、CPU20から書き込みデータDw[d:0]を受け付け、書き込みデータDw[d:0]に基づいて冗長データを生成し、書き込みデータDw[d:0]に冗長データを付加したデータDwp[d+p:0]を、フラッシュメモリ10に対して出力する。具体的には、本実施形態では、冗長データは、パリティチェックのための1ビットデータ(奇数パリティ)であり、データ領域WD全体で‘1’の数が奇数となるように値が設定される。
次に、本実施形態の本発明システム1の処理動作の内、誤り検出処理の制御に係る処理動作の概要について、図6を基に簡単に説明する。
CPU20によるプログラムの実行において、フラッシュメモリ10に対する読み出し要求が発生すると(ステップ#101)、誤り検出制御回路50は、誤り検出処理の可否を設定する(ステップ#102)。具体的には、誤り検出制御回路50は、チップイネーブル信号CE及び出力イネーブル信号OEが共に活性状態となったときに読み出し処理の実行が開始されたと判断し、このときにCPU20から出力されるアドレス信号A[a:0]の値と図3に示すアドレスマップに基づいて、読み出し対象データ領域が誤り検出処理禁止データ領域と誤り検出処理許可データ領域の何れであるかを判定し、誤り検出処理の可否を決定し、誤り検出回路30に対し可否設定信号Saを出力する。
誤り検出回路30は、誤り検出制御回路50から出力される可否設定信号Saを受け付け(ステップ#102)、フラッシュメモリ10から読み出されるデータDrp[d+p:0]を受け付けると(ステップ#103)、可否設定信号Saに基づいて誤り検出処理が許可されているか禁止されているかを判断する(ステップ#104)。
ステップ#104において、本実施形態では、誤り検出回路30は、可否設定信号Saが‘0’の場合に誤り検出処理が許可されていると判断し(ステップ#104で“許可”分岐)、データDrp[d+p:0]に対する誤り検出処理を実行する(ステップ#105)。ここでの誤り検出処理は、パリティチェックであり、データDrp[d+p:0]全体で、値が‘1’のビット数が奇数の場合に、データDrp[d+p:0]は正しいと判断する。データDrp[d+p:0]が正しいと判断したときは、誤り検出信号Seの値を‘0’に設定し、正しくないと判定したときは、誤り検出信号Seの値を‘0’に設定する。誤り検出回路30は、データDrp[d+p:0]から冗長データを除いたデータDr[d:0]と共に誤り検出信号SeをCPU20に対して出力する(ステップ#106)。
ステップ#104において、誤り検出回路30は、可否設定信号Saが‘1’である場合に誤り検出処理が禁止されていると判断し(ステップ#104で“禁止”分岐)、誤り検出処理は実施せずに、データDrp[d+p:0]から冗長データを除いたデータDr[d:0]をCPU20に対して出力する(ステップ#107)。尚、このときの誤り検出信号Seの値は‘0’に設定する。更にこのとき、誤り検出制御回路50は、データDrp[d+p:0]に対する正誤判定を実行する(ステップ#108)。本実施形態では、CPU20は、誤り検出禁止データに対する正誤判定のために、再度、同じ誤り検出禁止データをフラッシュメモリ10から読み出す読み出し処理を実行する(ステップ#109)。誤り検出制御回路50は、2回の読み出し処理による2つの誤り検出禁止データを比較し、2つのデータが等しい場合に誤り検出禁止データDrp[d+p:0]が正しいと判定し、2つのデータが異なる場合は、誤り検出禁止データDrp[d+p:0]が正しくないと判定する(ステップ#110)。更に、誤り検出制御回路50は、誤り検出禁止データに対する正誤判定の結果を判定結果通知信号SbによりCPU20に対して通知する(ステップ#111)。
CPU20は、誤り検出回路30において誤り検出処理により読み出しデータDr[d:0]が正しくないと判断された場合、または、誤り検出制御回路50において正誤判定により誤り検出禁止データDr[d:0]が正しくないと判定された場合、データDr[d:0]を破棄する。更に、本実施形態では、CPU20は、データDr[d:0]が一定回数以上続けて正しくないと判断された場合等、不正操作等が行われたと判断される場合には、ICカード100のシステムリセットを行う。
尚、本実施形態では、誤り検出処理が禁止されている誤り検出禁止データに対し、ステップ#108の正誤判定を実施したが、ステップ#108の正誤判定は任意処理である。従って、例えば、誤り検出禁止データの重要度が低い場合等には、正誤判定を実行せずに、データDrp[d+p:0]から冗長データを除いたデータDr[d:0]をCPU20に対して出力するように構成しても良い。
〈第2実施形態〉
本発明システム1の第2実施形態について図7を基に説明する。尚、本実施形態では、上記第1実施形態とは、読み出しデータのデータ種別の判定方法が異なる場合について説明する。詳細には、上記第1実施形態では、フラッシュメモリ10のアドレスマップに基づいてデータ種別を判定したが、本実施形態では、CPU20からの誤り検出制御信号Scに基づいてデータ種別を判定する。
本実施形態の本発明システム1の構成について、図7を基に説明する。本実施形態の本発明システム1は図7に示すように、フラッシュメモリ10、CPU20、誤り検出回路30、冗長データ生成回路40及び誤り検出制御回路50を備えて構成されており、フラッシュメモリ10、誤り検出回路30及び冗長データ生成回路40の構成は、上記第1実施形態と同じである。
本実施形態のCPU20は、図7に示すように、読み出し処理時に、誤り検出制御回路50に対し、当該読み出し処理における読み出しデータのデータ種別に応じた誤り検出制御信号Scを出力するように構成されている。ここでの誤り検出制御信号Scは、命令フェッチのためのタイミングを示す命令フェッチ信号を用いて生成される。
本実施形態の誤り検出制御回路50は、読み出し処理時に、誤り検出制御信号Scに基づいて、読み出しデータのデータ種別が上書き処理を実行され得るデータ種別であるか否かを判定し、上書き処理を実行され得ないデータ種別である場合に、誤り検出回路30における誤り検出処理を許可し、上書き処理を実行され得るデータ種別である場合に、誤り検出回路30における誤り検出処理を禁止する。具体的には、本実施形態では、誤り検出制御信号Sc(命令フェッチ信号)が活性状態の場合は、上書き処理の実行対象となり得ない命令コードの読み出しであると判定して、誤り検出回路30における誤り検出処理を許可する。また、誤り検出制御信号Scが非活性状態の場合は、上書き処理の実行対象となり得る誤り検出禁止データであると判定して、誤り検出回路30における誤り検出処理を禁止する。
尚、本実施形態では、誤り検出制御信号Scが、命令フェッチ信号である場合を想定したが、データリード信号であっても良い。この場合には、誤り検出制御回路50は、データリード信号が活性状態の場合に、誤り検出回路30における誤り検出処理を禁止し、データリード信号が非活性状態の場合に、誤り検出回路30における誤り検出処理を許可する。また、誤り検出制御信号Scは、命令フェッチ信号やデータリード信号を組み合わせたものであっても良い。この場合、誤り検出制御回路50は、誤り検出制御信号Scが、読み出しデータが命令コードであることを示す信号である場合に、誤り検出処理の実行を許可し、誤り検出制御信号Scが、読み出しデータがプログラムカウンタ値であることを示す信号である場合に、誤り検出処理の実行を禁止するように構成されていれば良い。
〈第3実施形態〉
本発明システム1の第3実施形態について図8を基に説明する。尚、本実施形態では、上記第1及び第2実施形態とは、誤り検出処理の可否の設定方法が異なる場合について説明する。詳細には、上記第1及び第2実施形態では、読み出しデータのデータ種別に基づいて誤り検出処理の実行の可否を設定したが、本実施形態では、上書き処理を実行したか否かを示す記憶状態に基づいて誤り検出処理の実行の可否を設定する。
本実施形態の本発明システム1の構成について、図8を基に説明する。本実施形態の本発明システム1は図8に示すように、フラッシュメモリ10、CPU20、誤り検出回路30、冗長データ生成回路40及び誤り検出制御回路50を備えて構成されており、誤り検出回路30及び冗長データ生成回路40の構成は、上記第1実施形態と同じである。
フラッシュメモリ10は、本実施形態では、図8に示すように、データ領域WD毎に、誤り検出処理の実行の可否を記憶するフラグ領域を備えている。フラッシュメモリ10は、ブロック単位での一括消去処理の実行時に、自動的に対応するフラグ領域を初期化して値を‘1’にする。即ち、フラグ領域が初期状態‘1’の場合、上書き処理が実行されていないと判定でき、フラグ領域が‘0’の場合、上書き処理が実行されたと判定できる。更に、本実施形態のフラッシュメモリ10は、読み出し処理の実行時に、読み出し処理の対象となるデータ領域WDに対応するフラグ領域の値を示すフラグ信号Fを誤り検出制御信号Scとして誤り検出制御回路50に出力するように構成されている。
本実施形態の誤り検出制御回路50は、上書き処理を実行したか否かを示す記憶状態に基づいて、誤り検出回路30における読み出しデータに対する誤り検出処理の実行の可否を制御するように構成されている。具体的には、誤り検出制御回路50は、読み出し処理時に、フラグ信号Fが‘1’の場合は、上書き処理が実行されていないとして、誤り検出回路30における誤り検出処理の実行を許可し、‘0’の場合は、上書き処理が実行されているとして、誤り検出回路30における誤り検出処理の実行を禁止する。
誤り検出制御回路50は、CPU20による上書き処理時に、上書き処理の対象となるデータ領域WDに対応するフラグ領域に、誤り検出処理の実行禁止フラグを設定する。具体的には、誤り検出制御回路50は、上書き処理時に、アドレス信号A[a:0]が示すデータ領域WDに対応するフラグ領域に‘0’を書き込む。
〈第4実施形態〉
本発明システム1の第4実施形態について図9を基に説明する。尚、本実施形態では、上記第3実施形態とは、読み出しデータの記憶状態の判定方法が異なる場合について説明する。詳細には、上記第3実施形態では、フラッシュメモリ10内のフラグ領域を利用して記憶状態を判定したが、本実施形態では、本発明システム1にフラッシュメモリ10とは別に設けられた制御レジスタ90を利用して記憶状態の判定を行う。
本実施形態の本発明システム1の構成について、図9を基に説明する。本実施形態の本発明システム1は図7に示すように、フラッシュメモリ10、CPU20、誤り検出回路30、冗長データ生成回路40及び誤り検出制御回路50を備えて構成されており、フラッシュメモリ10、誤り検出回路30及び冗長データ生成回路40の構成は、上記第1実施形態と同じである。
本発明システム1は、データ領域WD毎に誤り検出処理の実行の可否を記憶可能な制御レジスタ90を備えている。本実施形態では、制御レジスタ90は、データ領域WD毎の実行禁止フラグ設定領域を備えており、上書き処理が実行されていない場合(初期状態)は、実行禁止フラグ設定領域の値が‘1’に設定され、上書き処理が実行された場合は、実行禁止フラグ設定領域の値が‘0’に設定される。
本実施形態の誤り検出制御回路50は、上書き処理を実行したか否かを示す記憶状態に基づいて、誤り検出回路30における読み出しデータに対する誤り検出処理の実行の可否を制御するように構成されている。具体的には、本実施形態の誤り検出制御回路50は、読み出し処理時に、制御レジスタ90を参照し、読み出し処理の対象となるデータ領域WDに実行禁止フラグが設定されていない場合、即ち、対応する実行禁止フラグ設定領域の値が‘1’の場合に誤り検出回路30における誤り検出処理の実行を許可する。また、読み出し処理の対象となるデータ領域WDに実行禁止フラグが設定されている場合、即ち、対応する実行禁止フラグ設定領域の値が‘0’の場合に誤り検出回路30における誤り検出処理の実行を禁止する。
更に、本実施形態の誤り検出制御回路50は、CPU20による上書き処理時に、制御レジスタ90に、上書き処理の対象となるデータ領域WDに対する誤り検出処理の実行禁止フラグを設定する。具体的には、誤り検出制御回路50は、制御レジスタ90の対応する実行禁止フラグ設定領域に‘0’を書き込む。
〈別実施形態〉
〈1〉上記第1〜第4実施形態では、フラッシュメモリ10を備える場合について説明したが、これに限るものではない。例えば、原理上、ビット単位で書き込み状態から消去状態にすることができない不揮発性メモリを備える場合において、本発明システム1は有用である。CPU20による一括消去処理、読み出し処理、書き込み処理及び上書き処理は、不揮発性メモリの仕様に応じて、各信号を制御して行う。
〈2〉上記第1〜第4実施形態では、冗長データが、誤り検出処理を実行可能なパリティチェックのための1ビットデータである場合について説明したが、これに限るものではない。例えば、チェックサム等の誤り検出処理を実行可能な他の誤り検出符号であっても良いし、ハミングコード等の誤り検出処理と共に誤り訂正処理を実行可能な誤り検出訂正符号であっても良い。
ここで、図10は、誤り検出回路30において誤り検出処理と共に誤り訂正処理を実行可能な場合の本発明システム1の概略部分構成を示している。この場合には、誤り検出制御回路50は、誤り検出処理の実行を禁止する場合に、誤り訂正処理を禁止する。誤り検出回路30は、誤り検出制御回路50によって誤り検出処理及び誤り訂正処理が許可されている場合に、読み出しデータに対し、対応する冗長データに基づいて誤り検出処理及び誤り訂正処理を実行する。
〈3〉上記第1〜第4実施形態では、誤り検出処理が禁止されている誤り検出禁止データに対する正誤判定として、誤り検出禁止データに対する再度の読み出し処理を実行して、2つの誤り検出禁止データを比較処理する構成としたが、これに限るものではない。例えば、2つの誤り検出禁止データが異なる場合に、任意の回数、誤り検出禁止データを読み出して比較処理するように構成しても良い。また、複数回の読み出し処理において一致しないデータの数が一定の判定比率を超えた場合、若しくは、一致するデータの数が一定の判定比率以下の場合に誤り検出禁止データが正しくないと判定するように構成しても良い。読み出し処理の回数や、データの判定比率は、誤り検出禁止データの重要度に応じて設定する。
また、上記第1〜第4実施形態では、誤り検出禁止データに対する正誤判定として、複数回の読み出し処理による比較処理を実行したが、その他の方法を用いても良いし、誤り検出禁止データの重要度に応じて複数の方法を組み合わせて用いても良い。更に、誤り検出禁止データ以外の読み出しデータに対しても、重要度が大きい場合には、複数回の読み出し処理による比較処理を実行するように構成しても良い。
本発明に係る誤り検出制御システムを搭載したICカードの部分概略構成を示す概略ブロック図 本発明に係る誤り検出制御システムの第1実施形態における部分概略構成を示す概略ブロック図 本発明に係る誤り検出制御システムの第1実施形態における不揮発性メモリの記憶領域の構成を示す概念図 本発明に係る誤り検出制御システムのプログラム実行における読み出しデータの例を示す概念図 本発明に係る誤り検出制御システムのプログラムカウンタの値の一遷移例を示す概略概念図 本発明に係る誤り検出制御システムの第1実施形態における処理手順を示すフローチャート 本発明に係る誤り検出制御システムの第2実施形態における部分概略構成を示す概略ブロック図 本発明に係る誤り検出制御システムの第3実施形態における部分概略構成を示す概略ブロック図 本発明に係る誤り検出制御システムの第4実施形態における部分概略構成を示す概略ブロック図 本発明に係る誤り検出制御システムの別実施形態における部分概略構成を示す概略ブロック図 従来技術に係る誤り検出制御システムにおけるデータ領域の値の遷移例を示す説明図
符号の説明
1 本発明に係る誤り検出制御システム
10 フラッシュメモリ(不揮発性メモリ)
20 CPU(メモリ制御手段)
30 誤り検出回路(誤り検出手段)
40 冗長データ生成回路
50 誤り検出制御回路(誤り検出制御手段)
60 ROM
70 RAM
80 I/O
90 制御レジスタ
100 本発明に係るICカード
Sa 可否設定信号
Sb 判定結果通知信号
Sc 誤り検出制御信号
F フラグ信号
Sm メモリ制御信号
Sm1 メモリ制御信号
Sm2 メモリ制御信号
Sm 制御信号
Smp メモリ制御信号
Se 誤り検出信号
WF 領域
WD データ領域
WM 主データ領域
WP 冗長データ領域
WS ステータス領域

Claims (9)

  1. 1アドレス毎に所定のデータを記憶するための主データ領域と前記データの誤り検出処理のための冗長データを記憶する冗長データ領域で構成されたデータ領域を複数アドレス分備える不揮発性メモリと、
    前記不揮発性メモリに対し、所定アドレス数の前記データ領域からなるデータ領域群単位での一括消去処理、前記データ領域単位での読み出し処理、前記データ領域単位での書き込み処理、及び、前記書き込み処理後の前記主データ領域に対する前記主データ領域を構成するビット単位での上書き処理の制御を行うメモリ制御手段と、
    前記読み出し処理によって読み出された読み出しデータに対し、対応する前記冗長データに基づいて前記誤り検出処理を実行する誤り検出手段と、を備えた誤り検出制御システムであって、
    前記上書き処理の実行対象であるか否かで分類されるデータ種別、または、前記上書き処理を実行したか否かを示す記憶状態に基づいて、前記誤り検出手段における前記読み出しデータに対する前記誤り検出処理の実行の可否を制御する誤り検出制御手段を備えることを特徴とする誤り検出制御システム。
  2. 前記不揮発性メモリは、前記データ領域夫々が、前記誤り検出処理の実行が禁止された前記データを記憶する誤り検出処理禁止データ領域と、前記誤り検出処理の実行が許可された前記データを記憶する誤り検出処理許可データ領域の何れかに設定されており、
    前記誤り検出制御手段は、前記読み出し処理時に、前記読み出し処理の対象となる前記データ領域である読み出し対象データ領域が前記誤り検出処理禁止データ領域である場合に、前記誤り検出手段における前記誤り検出処理の実行を禁止し、前記読み出し対象データ領域が前記誤り検出処理許可データ領域である場合に、前記誤り検出手段における前記誤り検出処理の実行を許可することを特徴とする請求項1に記載の誤り検出制御システム。
  3. 前記メモリ制御手段は、前記読み出し処理時に、前記誤り検出制御手段に対し、当該読み出し処理における前記読み出しデータの前記データ種別に応じた誤り検出制御信号を出力し、
    前記誤り検出制御手段は、前記読み出し処理時に、前記誤り検出制御信号に基づいて、前記読み出しデータの前記データ種別が前記上書き処理を実行され得る前記データ種別であるか否かを判定し、前記上書き処理を実行され得ない前記データ種別である場合に、前記誤り検出手段における前記誤り検出処理を許可し、前記上書き処理を実行され得る前記データ種別である場合に、前記誤り検出手段における前記誤り検出処理を禁止し、
    前記誤り検出手段は、前記誤り検出制御手段により前記読み出しデータに対する前記誤り検出処理の実行が許可されている場合に、対応する前記冗長データを用いて前記読み出しデータに対する前記誤り検出処理を実行することを特徴とする請求項1に記載の誤り検出制御システム。
  4. 前記誤り検出制御手段は、前記誤り検出制御信号が、前記読み出しデータが命令データであることを示す信号である場合に、前記誤り検出処理の実行を許可し、前記誤り検出制御信号が、前記読み出しデータがプログラムカウンタ値であることを示す信号である場合に、前記誤り検出処理の実行を禁止することを特徴とする請求項3に記載の誤り検出制御システム。
  5. 前記不揮発性メモリは、前記データ領域毎に、前記誤り検出処理の実行の可否を記憶するフラグ領域を備えてなり、
    前記誤り検出制御手段は、前記メモリ制御手段による前記上書き処理時に、前記上書き処理の対象となる前記データ領域に対応する前記フラグ領域に、前記誤り検出処理の実行禁止フラグを設定することを特徴とする請求項1に記載の誤り検出制御システム。
  6. 前記データ領域毎に前記誤り検出処理の実行の可否を記憶可能なレジスタを前記不揮発性メモリ外に備えてなり、
    前記誤り検出制御手段は、前記メモリ制御手段による前記上書き処理時に、前記レジスタに、前記上書き処理の対象となる前記データ領域に対する前記誤り検出処理の実行禁止フラグを設定することを特徴とする請求項1に記載の誤り検出制御システム。
  7. 前記メモリ制御手段は、前記誤り検出処理の実行が禁止された誤り検出禁止データに対する前記読み出し処理の実行後、更に、所定回数の前記誤り検出禁止データに対する前記読み出し処理を実行し、
    前記誤り検出制御手段は、前記読み出し処理により読み出された読み出しデータの夫々を比較処理して、前記読み出しデータの正誤を判定することを特徴とする請求項1〜6の何れか1項に記載の誤り検出制御システム。
  8. 前記冗長データは、前記誤り検出処理に加え、誤り訂正処理で利用可能に構成され、
    前記誤り検出手段は、前記読み出しデータに対し、対応する前記冗長データに基づいて、前記誤り検出処理及び前記誤り訂正処理を実行し、
    前記誤り検出制御手段は、前記誤り検出処理の実行を禁止する場合に、前記誤り訂正処理を禁止することを特徴とする請求項1〜7の何れか1項に記載の誤り検出制御システム。
  9. 請求項1〜8の何れか1項に記載の誤り検出制御システムを搭載したICチップを供えることを特徴とするICカード。
JP2007098800A 2007-04-04 2007-04-04 誤り検出制御システム Expired - Fee Related JP4160625B1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2007098800A JP4160625B1 (ja) 2007-04-04 2007-04-04 誤り検出制御システム
CN200880015658.2A CN101681310B (zh) 2007-04-04 2008-03-13 错误检测控制系统
PCT/JP2008/054570 WO2008126609A1 (ja) 2007-04-04 2008-03-13 誤り検出制御システム
US12/594,311 US8176387B2 (en) 2007-04-04 2008-03-13 Error detection control system
TW097109688A TW200903247A (en) 2007-04-04 2008-03-19 Error detection control system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007098800A JP4160625B1 (ja) 2007-04-04 2007-04-04 誤り検出制御システム

Publications (2)

Publication Number Publication Date
JP4160625B1 true JP4160625B1 (ja) 2008-10-01
JP2008257476A JP2008257476A (ja) 2008-10-23

Family

ID=39863739

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007098800A Expired - Fee Related JP4160625B1 (ja) 2007-04-04 2007-04-04 誤り検出制御システム

Country Status (5)

Country Link
US (1) US8176387B2 (ja)
JP (1) JP4160625B1 (ja)
CN (1) CN101681310B (ja)
TW (1) TW200903247A (ja)
WO (1) WO2008126609A1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5668279B2 (ja) 2009-08-06 2015-02-12 ソニー株式会社 不揮発性ランダムアクセスメモリおよび不揮発性メモリシステム
US8683270B2 (en) * 2010-04-29 2014-03-25 Micron Technology, Inc. Signal line to indicate program-fail in memory
US8918683B2 (en) * 2012-09-14 2014-12-23 SK Hynix Inc. One-time program cell array circuit and memory device including the same
JP5954872B2 (ja) * 2012-09-20 2016-07-20 ルネサスエレクトロニクス株式会社 半導体集積回路
US11249652B1 (en) 2013-01-28 2022-02-15 Radian Memory Systems, Inc. Maintenance of nonvolatile memory on host selected namespaces by a common memory controller
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US10445229B1 (en) 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
JP5794240B2 (ja) * 2013-02-05 2015-10-14 ソニー株式会社 誤り検出訂正装置、誤り検出訂正方法、情報処理装置、および、プログラム
JP2015011609A (ja) * 2013-07-01 2015-01-19 ラピスセミコンダクタ株式会社 情報処理装置、半導体装置及び情報データのベリファイ方法
KR102148389B1 (ko) * 2014-06-11 2020-08-27 삼성전자주식회사 오버 라이트 동작을 갖는 메모리 시스템 및 그에 따른 동작 제어방법
US9542118B1 (en) 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
US10552058B1 (en) * 2015-07-17 2020-02-04 Radian Memory Systems, Inc. Techniques for delegating data processing to a cooperative memory controller
JP6757127B2 (ja) * 2015-09-25 2020-09-16 富士通デバイス株式会社 遊技機用記憶装置
JP6717059B2 (ja) * 2016-06-06 2020-07-01 オムロン株式会社 制御システム
CN106528311A (zh) * 2016-09-29 2017-03-22 杭州芯讯科技有限公司 嵌入式系统及其控制方法
US10585610B1 (en) * 2016-09-30 2020-03-10 EMC IP Holding Company LLC Locking data structures with locking structures in flash memory by setting bits in the locking structures
KR20190029316A (ko) * 2017-09-12 2019-03-20 에스케이하이닉스 주식회사 마이크로 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작방법
US11556618B2 (en) * 2020-02-18 2023-01-17 At&T Intellectual Property I, L.P. Split ledger software license platform
JP7500365B2 (ja) * 2020-09-14 2024-06-17 キオクシア株式会社 メモリシステム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4019033A (en) * 1975-12-29 1977-04-19 Honeywell Information Systems, Inc. Control store checking system and method
JPH01209552A (ja) * 1988-02-17 1989-08-23 Hitachi Maxell Ltd 半導体ファイルメモリ装置
JP3542002B2 (ja) * 1996-09-24 2004-07-14 株式会社ルネサステクノロジ システム
JPH10334695A (ja) * 1997-05-27 1998-12-18 Toshiba Corp キャッシュメモリ及び情報処理システム
TW333648B (en) * 1997-10-30 1998-06-11 Key Technology Corp The connection structure and algorithm for flash memory
JP2002091831A (ja) 2000-09-12 2002-03-29 Hitachi Ltd データ処理システム及びデータ処理方法
US6941505B2 (en) 2000-09-12 2005-09-06 Hitachi, Ltd. Data processing system and data processing method
CN1311354C (zh) 2001-04-24 2007-04-18 皇家菲利浦电子有限公司 用于闪速存储器允许可更改位的系统和存储数据的方法

Also Published As

Publication number Publication date
US8176387B2 (en) 2012-05-08
CN101681310B (zh) 2012-07-18
JP2008257476A (ja) 2008-10-23
US20100083050A1 (en) 2010-04-01
CN101681310A (zh) 2010-03-24
TW200903247A (en) 2009-01-16
WO2008126609A1 (ja) 2008-10-23
TWI368134B (ja) 2012-07-11

Similar Documents

Publication Publication Date Title
JP4160625B1 (ja) 誤り検出制御システム
US7543137B2 (en) Information processing device and information processing method
US10509568B2 (en) Efficient secure boot carried out in information processing apparatus
US8000153B2 (en) Enhanced erase for flash storage device
KR102567097B1 (ko) 임베디드 시스템의 부트 롬 업데이트 방법 및 부팅 방법
US12008235B2 (en) Data storage device and method for rewriting parameters thereof
EP2637124B1 (en) Method for implementing security of non-volatile memory
JP2007287022A (ja) 電子制御装置の情報記憶方法
CN109508145B (zh) 使用地址别名的存储器访问控制
JP5815212B2 (ja) データ書き込み方法およびシステム
CN103870745A (zh) 电子设备和安全启动电子设备的方法
JP6438763B2 (ja) エラー訂正装置
US11113399B2 (en) Electronic apparatus and control method of electronic apparatus
JP6054753B2 (ja) 半導体装置及びデータアクセス方法
US20070088905A1 (en) System and method for purging a flash storage device
JP4031693B2 (ja) 不揮発性メモリおよびこれを有したデータ記憶装置
US20070101049A1 (en) Redundant purge for flash storage device
JP2010079686A (ja) データ処理装置、メモリ制御回路およびメモリ制御方法
US20050068842A1 (en) Electronic device, nonvolatile memory and method of overwriting data in nonvolatile memory
US20100312978A1 (en) Computer system, information protection method, and program
TWI575529B (zh) 促進資料儲存系統中的錯誤校正的方法及其資料儲存系統
US20190286331A1 (en) Data storage device and method for rewriting parameters thereof
US20070101048A1 (en) Verified purge for flash storage device
JP2023016643A (ja) 電子制御装置

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080624

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080717

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4160625

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110725

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110725

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120725

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120725

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130725

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees