[go: up one dir, main page]

JP4452158B2 - 不揮発性メモリシステム - Google Patents

不揮発性メモリシステム Download PDF

Info

Publication number
JP4452158B2
JP4452158B2 JP2004325953A JP2004325953A JP4452158B2 JP 4452158 B2 JP4452158 B2 JP 4452158B2 JP 2004325953 A JP2004325953 A JP 2004325953A JP 2004325953 A JP2004325953 A JP 2004325953A JP 4452158 B2 JP4452158 B2 JP 4452158B2
Authority
JP
Japan
Prior art keywords
nonvolatile memory
volatile memory
instruction
command
invalid
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
JP2004325953A
Other languages
English (en)
Other versions
JP2006139341A (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
Priority to JP2004325953A priority Critical patent/JP4452158B2/ja
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to AU2005303305A priority patent/AU2005303305A1/en
Priority to PCT/JP2005/019766 priority patent/WO2006051692A1/ja
Priority to CNB2005800384871A priority patent/CN100565480C/zh
Priority to US11/666,351 priority patent/US20080162837A1/en
Priority to EP05799367A priority patent/EP1821214A4/en
Priority to TW094139497A priority patent/TW200632653A/zh
Publication of JP2006139341A publication Critical patent/JP2006139341A/ja
Application granted granted Critical
Publication of JP4452158B2 publication Critical patent/JP4452158B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Storage Device Security (AREA)
  • Read Only Memory (AREA)

Description

本発明は、不揮発性メモリシステム、特に、不揮発性メモリと、前記不揮発性メモリの内容を書き換える操作命令を含むプログラムを格納する揮発性メモリと、前記不揮発性メモリ及び前記揮発性メモリを制御する演算処理装置と、を備える不揮発性メモリシステムに関する。
プラスチック製のカードにCPU、不揮発性メモリ、及び、揮発性メモリ等を備えたICチップ(半導体集積回路)を実装したICカードは、現在広く利用されている磁気カードに比べ、より大量のデータが記憶可能であることや、データの暗号化が可能でセキュリティに優れていること等から普及し始めている。また、近年、ICカードに搭載される不揮発性メモリとして、従来のEEPROMより大量のデータを格納可能なフラッシュ型EEPROM(フラッシュメモリ)を実装したICカードが実用化されている。
従来のフラッシュメモリは、一般的に、データの格納領域がブロック単位で構成されており、一度書き込みを実施してそのデータを書き換える場合、データを書き換えるブロックにおいて格納されたデータの消去を実施してから再書き込みを行う必要がある。更に、フラッシュメモリへのデータの書き込み及び消去は、単一のフラッシュメモリに格納されたプログラムに従って、直接当該フラッシュメモリ自身にデータの書き込み及びデータの消去を実施することができない。このため、一般的に、予めRAM等の揮発性メモリに、フラッシュメモリへのデータの書き込み命令を含むプログラム及びデータの消去命令を含むプログラムを転送しておき、フラッシュメモリのデータ書き込み或いはデータ消去を行う際に、前記揮発性メモリに格納した書き込み命令或いは消去命令に基づいてフラッシュメモリに対する書き込み及び消去を実行している。
従来の一般的に用いられるフラッシュメモリへのデータの書き込み及び消去に係る技術の一例を図面に基づいて説明する。
図1は、一般的なICカードシステムの構成を示している。ICカード6は、少なくとも1つのCPU1、不揮発性メモリ2、揮発性メモリ3及び通信インターフェース4から構成されており、通信インターフェース4を介して端末装置5とコマンドの交換を行うことによって動作する。
CPU1は、不揮発性メモリ2に格納された制御プログラムに従って、ICカード6の各構成要素を制御する。例えば、不揮発性メモリ2へデータを書き込むコマンドを、端末装置5から通信インターフェース4を介してICカード6が受信した場合、CPU1は、不揮発性メモリ2に書き込まれた制御プログラムに従って、不揮発性メモリ2への書き込み動作を実行し、書き込み動作が終了すると、通信インターフェース4を介してコマンドの実行結果を端末装置5に送信する。
不揮発性メモリ2は、図2(a)に示すように、ブロック1〜ブロックNで構成されている。不揮発性メモリ2は、CPU1がアクセス可能なアドレス空間として配置されており、ブロック1には予めICカード6の制御プログラムが格納されている。制御プログラムは、CPU1が実行可能な命令群で構成されており、不揮発性メモリ2へデータを書き込むための書き込みプログラム、及び不揮発性メモリ2のデータを消去するための消去プログラムが含まれる。ここでは、更に、制御プログラムにはICカード6の初期化動作を行うための初期化プログラムが含まれる。ブロック2〜Nは、ICカード6のサービスを利用するためのアプリケーションプログラムや、各種データが格納される。
揮発性メモリ3は、図2(b)に示すように、CPU1がアクセス可能なアドレス空間として配置されており、不揮発性メモリ2への書き込み命令を含む書き込みサブプログラムを格納する領域、不揮発性メモリ2の消去命令を含む消去サブプログラムを格納する領域、及び、その他の作業領域等から構成される。
次に、CPU1による制御プログラムの動作について図3乃至図7を基に説明する。
図3は、不揮発性メモリ2に格納されている制御プログラムの実行開始時における初期化プログラムの動作を示すフローチャートである。CPU1は、制御プログラムの実行開始後(ステップS001)、不揮発性メモリ2の初期化プログラムを実行し、不揮発性メモリ2への書き込みサブプログラムを揮発性メモリ3へ転送し(ステップS002)、不揮発性メモリ2の消去サブプログラムを揮発性メモリ3へ転送する(ステップS003)。
次に、不揮発性メモリ2へのデータ書き込みについて、図4及び図5のフローチャートを基に説明する。
図4は、不揮発性メモリ2に格納されている制御プログラムに含まれる不揮発性メモリ2への書き込みプログラムの動作を示している。CPU1は、不揮発性メモリ2上の書き込みプログラムに従って、先ず、書き込み元のデータが格納された領域の先頭アドレスを変数SRCにセットし(ステップS101)、書き込み先の不揮発性メモリ2上のアドレスを変数DSTにセットし(ステップS102)、書き込みデータ数Nを変数CNTにセットする(ステップS103)。次に、CPU1は、図5に示す揮発性メモリ3上の書き込みサブプログラムを呼び出す(ステップS104)。CPU1は、揮発性メモリ3に格納されたプログラムを実行後、不揮発性メモリ2の書き込みプログラムを終了する(ステップS105)。
図5は、図3におけるステップS002で揮発性メモリ3に転送された、不揮発性メモリ2への書き込みサブプログラムの動作を示している。先ず、CPU1は、書き込みデータ数CNTを確認する(ステップS201)。ステップS201において書き込みデータ数CNTが0以外の場合に、アドレスSRCが示す書き込み元のデータの格納領域から書き込みデータを取得する(ステップS202)。続いて、不揮発性メモリ2の書き込み先アドレスDSTに対して書き込み命令を実行し、データの書き込みを開始する(ステップS203)。データの書き込み完了を確認すると(ステップS204でYes分岐)、CPU1は、次のデータの書き込み準備のために、アドレスSRC及びDSTの値を次のアドレスの値に更新する。ここでは、例えば、アドレスSRC及びDSTの値を共に1増加させる(ステップS205)。更に、書き込みデータ数CNTを1減少させて(ステップS206)、ステップS201に遷移して以後の処理を継続する。CPU1は、ステップS201において、書き込みデータ数CNTが0となり、全てのデータの書き込みが終了したと判定した場合に、書き込みサブプログラムを終了する(ステップS207)。
不揮発性メモリ2のデータ消去について、図6及び図7のフローチャートを基に説明する。図6は、不揮発性メモリ2に格納されている制御プログラムに含まれる消去プログラムの動作を示している。CPU1は、不揮発性メモリ2上の消去プログラムに従って、先ず、不揮発性メモリ2上の消去先のアドレスを変数DSTに設定する(ステップS301)。次に、CPU1は、図7に示す揮発性メモリ3上の消去サブプログラムを呼び出す(ステップS302)。CPU1は、揮発性メモリ3に格納されたプログラムを実行後、不揮発性メモリ2の消去プログラムを終了する(ステップS303)。
図7は、図3におけるステップS003で予め揮発性メモリ3に転送された、不揮発性メモリ2の消去サブプログラムの動作を示している。CPU1は、不揮発性メモリ2の消去先のアドレスDSTに対して、データ消去命令を実行しデータの消去を開始する(ステップS401)。続いて、データの消去完了を確認すると(ステップS402でYes分岐)、CPU1は、消去サブプログラムを終了する(ステップS403)。
尚、ICカードは、個人情報等が不揮発性メモリへ書き込まれて利用されるという性格上、特に、ICカードのCPUが何らかの原因で暴走したような場合に、ICカードに搭載される不揮発性メモリへのデータの誤書き込みやデータの誤消失を防止する技術が望まれている。
しかしながら、上記従来技術では、何らかの要因でCPUが誤動作し、書き込みサブプログラム及び消去サブプログラムが格納された揮発性メモリのアドレスに誤って分岐した場合、不揮発性メモリにある正規の書き込みプログラム及び消去プログラムの正常な手続きが実施されないため、意図しないフラッシュメモリへのデータ書き込みや消去動作が発生し、最悪の場合、ICカードの故障へ至ってしまう虞がある。
このような従来技術に対し、不揮発性メモリへの誤書き込みを防止する技術として、例えば、不揮発性メモリと、該不揮発性メモリに対する書き込み及び読み出しを制御する手段と、電源電圧を監視する手段とを備え、該不揮発性メモリへの書き込み時に、該電源電圧を監視する手段が電源電圧の低下を検出したときに書き込みを禁止するメモリ装置がある(例えば、特許文献1参照)。このメモリ装置は、外付け回路を設けることなく不揮発性メモリへのデータの誤書き込みを防止できる。また、該書き込み禁止に応じて書き込みが失敗したことを記憶する手段と、前記不揮発性メモリへの書き込み終了後に、該記憶手段の内容を読み出す手段とを備えており、不揮発性メモリへの書き込みが正常に終了したか否かを確認できる。
また、プログラム処理の暴走に伴う不揮発性メモリのデータ誤書き換えを防止する技術として、例えば、1チップマイクロコンピュータを初期化する際に、RAMの特定番地に特定データを予め格納し、揮発特性を有するRAMの特定番地の内容が初期化時点の内容と同一であることを確認してから、フラッシュメモリのデータの書き込み動作に移行するデータ保護装置がある(例えば、特許文献2参照)。このデータ保護装置は、1チップマイクロコンピュータのプログラム処理が暴走した時、RAMの特定番地の内容が初期化時点で意図的に作成した内容とは異なってしまう為、プログラム処理の暴走に伴い書き込み用のサブルーチンプログラム命令が誤って実行されても、フラッシュメモリの誤書き込みを防止できる。
特開平8−22422号公報 特開2000−112826号公報
しかしながら、特許文献1のメモリ装置は、電源電圧を監視し、電源電圧の低下を検出したときのみ不揮発性メモリへの書き込みを禁止するので、電源電圧が正常なときにCPUが暴走した場合には、不揮発性メモリへの誤書き込みを防止することができない。また、特許文献2のデータ保護装置は、初期化時点におけるRAMの内容を記憶する手段が必要であることから、このデータ保護装置を実現するためには外付け回路を設けることが必要となり、低コストで実現することは難しい。
本発明は、上記問題点に鑑みてなされたものであり、CPU等の演算処理装置が誤動作し、書き込み命令または消去命令が格納された揮発性メモリの所定のアドレスに分岐した場合等であっても、外付け回路を設けることなく低コストで、不揮発性メモリへの誤書き込み及び誤消去を防止する技術を提供することを目的としている。
上記目的を達成するための本発明に係る不揮発性メモリシステムは、所定の制御プログラムが格納された不揮発性メモリと、前記不揮発性メモリに格納された前記制御プログラムの内、少なくとも前記不揮発性メモリの内容を書き換えるための書込命令或いは消去命令である操作命令を含むプログラムを一時的に格納する揮発性メモリと、前記不揮発性メモリ及び前記揮発性メモリを制御する演算処理装置と、を備える不揮発性メモリシステムであって、初期化の際に、前記不揮発性メモリに対する前記操作命令を格納するための前記揮発性メモリの所定のアドレスに、前記操作命令に代えて無効命令を書き込む第1無効命令書込手段と、前記不揮発性メモリの操作開始前に、前記無効命令を格納した前記揮発性メモリの前記所定のアドレスに前記操作命令を書き込み、前記操作命令に基づいて前記不揮発性メモリを操作する制御手段と、前記不揮発性メモリの操作実行後に、前記揮発性メモリの前記所定のアドレスに、無効命令を書き込む第2無効命令書込手段と、を備えることを特徴とする。
本特徴によれば、演算処理装置が誤動作して、不揮発性メモリを操作する命令を含むプログラムが格納される揮発性メモリのアドレスへ不正に分岐した場合でも、操作命令が無効命令に置き換えて格納されているため、無効命令が実行されることとなる。このため、不揮発性メモリへの操作は実行されず、不揮発性メモリの誤操作を防止することができる。
上記本発明に係る不揮発性メモリシステムは、更に、前記操作命令を含むプログラムが、前記不揮発性メモリへの書込命令を含み、前記第1無効命令書込手段及び第2無効命令書込手段が、前記書込命令を格納する前記揮発性メモリの所定のアドレスに前記無効命令を書き込むことを特徴とする。
本特徴によれば、演算処理装置が誤動作して、不揮発性メモリへの書き込み命令が格納される揮発性メモリのアドレスへ不正に分岐した場合でも、揮発性メモリの前記アドレスには不揮発性メモリへの書き込み命令ではなく無効命令が格納されているため、不揮発性メモリへの書き込みは実行されず、不揮発性メモリへの誤書き込みを防止することができる。
上記何れかの特徴の本発明に係る不揮発性メモリシステムは、更に、前記操作命令を含むプログラムが、前記不揮発性メモリへの消去命令を含み、前記第1無効命令書込手段及び第2無効命令書込手段が、前記消去命令を格納する前記揮発性メモリの所定のアドレスに前記無効命令を書き込むことを特徴とする。
本特徴によれば、演算処理装置が誤動作して、不揮発性メモリの消去命令が格納される揮発性メモリのアドレスへ不正に分岐した場合でも、揮発性メモリの前記アドレスには不揮発性メモリの消去命令ではなく無効命令が格納されているため、不揮発性メモリの消去は実行されず、不揮発性メモリの誤消去を防止することができる。
また、上記何れかの特徴の本発明に係る不揮発性メモリシステムは、前記無効命令が、前記演算処理装置をリセットする命令であることを特徴とする。
本特徴によれば、演算処理装置が誤動作して、不揮発性メモリの操作命令が格納された揮発性メモリのアドレスへ不正に分岐した場合に、揮発性メモリの前記アドレスには、不揮発性メモリの操作命令ではなく演算処理装置のリセット命令が格納されているため、このリセット命令が実行されることとなる。従って、不揮発性メモリの操作は実行されず、演算処理装置がリセットされるため、不揮発性メモリの誤動作を防止することができる。
更に、上記何れかの特徴の本発明に係る不揮発性メモリシステムは、前記無効命令が、前記演算処理装置における無操作命令であることを特徴とする。
本特徴によれば、演算処理装置が誤動作して、不揮発性メモリの操作命令が格納された揮発性メモリのアドレスへ不正に分岐した場合に、揮発性メモリの前記アドレスには、不揮発性メモリの操作命令ではなく演算処理装置の無操作命令が格納されているため、不揮発性メモリの操作は実行されない。これによって、不揮発性メモリの誤動作を防止することができる。
更に、上記何れかの特徴の本発明に係る他の不揮発性メモリシステムは、前記無効命令が、前記演算処理装置における未定義命令であることを特徴とする。
本特徴によれば、演算処理装置が誤動作して、不揮発性メモリの操作命令が格納された揮発性メモリのアドレスへ不正に分岐した場合に、揮発性メモリの前記アドレスには、不揮発性メモリの操作命令ではなく演算処理装置の未定義命令が格納されているため、不揮発性メモリの操作は実行されない。そして、演算処理装置の未定義命令実行エラーが検出されることとなり、不揮発性メモリの誤動作を防止することができる。
また、本発明に係る不揮発性メモリ制御プログラムは、何れかの特徴の本発明に係る不揮発性メモリシステムにおける各手段の機能をコンピュータ上で実行するプログラムステップを含むことを特徴とする。
本発明に係る不揮発性メモリ制御プログラムによれば、本発明に係る不揮発性メモリシステムにおける全ての上記作用効果を奏することができ、外付け回路を設けることなく低コストで、不揮発性メモリの誤動作を防止することができる。
次に、本発明に係る不揮発性メモリシステム(以下、適宜「本発明システム」と称す。)の一実施形態につき、図面に基づいて説明する。
本実施形態の不揮発性メモリシステムは、不揮発性メモリと、前記不揮発性メモリの内容を書き換える操作命令を含むプログラムを格納する揮発性メモリと、前記不揮発性メモリ及び前記揮発性メモリを制御する演算処理装置とを備えるICカードシステムに適用され、演算処理装置の一例としてのCPUによってICカードシステム上で実行されるプログラムとして構成される。
本実施形態におけるICカードシステムは、図1に示す従来技術に係るICカードシステムの一般的なハードウェア構成と同じハードウェア構成を持つ。図1に示すように、ICカード6は、CPU1、不揮発性メモリ2、揮発性メモリ3及び通信インターフェース4から構成されており、通信インターフェース4を介して、端末装置5とコマンドの交換を行うことによって動作する。
CPU1は、不揮発性メモリ2に格納された制御プログラムに従って、ICカード6の各構成要素を制御する。ここで、本実施形態では、不揮発性メモリ2の内容を書き換える操作命令は、書き込み命令及び消去命令である。そして、不揮発性メモリ2の内容を書き換えるコマンドを、端末装置5から通信インターフェース4を介してICカード6が受信した場合、CPU1は、不揮発性メモリ2に書き込まれた制御プログラムに従って、不揮発性メモリ2の内容を書き換えるための操作、即ち、書き込み命令及び消去命令の少なくとも何れか一方を実行し、これらの操作が終了すると、前記コマンドの実行結果を通信インターフェース4を介して端末装置5に送信する。
不揮発性メモリ2は、図2(a)に示すように、ブロック1〜ブロックNで構成されている。不揮発性メモリ2は、CPU1がアクセス可能なアドレス空間として配置されており、ブロック1には予めICカード6の制御プログラムが格納されている。制御プログラムは、CPU1が実行可能な命令群で構成されており、不揮発性メモリ2へデータを書き込むための書き込みプログラム、及び不揮発性メモリ2のデータを消去するための消去プログラムが含まれる。本実施形態では、更に、制御プログラムには、ICカード6の初期化動作を行うための初期化プログラムが含まれる。ブロック2〜Nは、ICカード6のサービスを利用するためのアプリケーションプログラムや、各種データが格納される。
揮発性メモリ3は、図2(b)に示すように、CPU1がアクセス可能なアドレス空間として配置されており、不揮発性メモリ2への書き込み命令を含む書き込みサブプログラムを格納する領域、不揮発性メモリ2の消去命令を含む消去サブプログラムを格納する領域、及び、その他の作業領域等から構成される。これらのサブプログラムは、予め不揮発性メモリ2に格納されており、不揮発性メモリ2に格納された制御プログラムの実行開始時に、初期化プログラムにおいて、不揮発性メモリ2から揮発性メモリ3の所定の領域へ転送して格納される。
次に、CPU1による制御プログラムの動作について図8乃至図16を基に説明する。
図8は、不揮発性メモリ2に格納されている制御プログラムの実行開始時における初期化プログラムの動作を示すフローチャートであり、不揮発性メモリ2に格納されている書き込みサブプログラム及び消去サブプログラムを揮発性メモリ3へ転送する時の動作を示している。
CPU1は、不揮発性メモリ2の制御プログラムの実行開始後(ステップS501)、先ず、不揮発性メモリ2の初期化プログラムを実行し、不揮発性メモリ2に格納されている不揮発性メモリ2への書き込みサブプログラムを揮発性メモリ3の所定の領域へ転送して格納する(ステップS502)。このとき、不揮発性メモリ2への書き込み命令が格納されるべき揮発性メモリ3上のアドレスには、書き込み命令を書き込まずに、無効命令を書き込む。書き込む無効命令として、ここではCPU1のソフトウェアリセット命令を書き込む。次に、不揮発性メモリ2に格納されている不揮発性メモリ2の消去サブプログラムを揮発性メモリ3の所定の領域へ転送して格納する(ステップS503)。このとき、不揮発性メモリ2の消去命令が格納されるべき揮発性メモリ3上のアドレスには、消去命令を書き込まずに、無効命令を書き込む。書き込む無効命令として、ここではCPU1のソフトウェアリセット命令を書き込む。
ここで、図9は、ステップS502において揮発性メモリ3へ転送され格納された、書き込みサブプログラムの配置を示している。この書き込みサブプログラムは、不揮発性メモリ2に格納されている書き込みプログラムから呼び出し可能なサブルーチンとして配置される。この時点で、不揮発性メモリ2への書き込み命令を格納すべき揮発性メモリ3のアドレスには、無効命令としてCPU1のソフトウェアリセット命令が配置されている。
図10は、ステップS503において揮発性メモリ3へ転送され格納された、不揮発性メモリ2の消去サブプログラムの配置を示している。消去サブプログラムは、不揮発性メモリ2に格納されている消去プログラムから呼び出し可能なサブルーチンとして配置される。この時点で、不揮発性メモリ2の消去命令を格納すべき揮発性メモリ3のアドレスには、無効命令としてCPU1のソフトウェアリセット命令が配置されている。
不揮発性メモリ2へのデータ書き込みについて、図11及び図12のフローチャートを基に説明する。
図11は、不揮発性メモリ2に格納されている制御プログラムに含まれる書き込みプログラムの動作を示している。CPU1は、不揮発性メモリ2上の書き込みプログラムに従って、先ず、書き込み元のデータが格納された領域の先頭アドレスを変数SRCにセットする(ステップS601)。次に、書き込み先の不揮発性メモリ2上のアドレスを変数DSTにセットし(ステップS602)、書き込みデータ数Nを変数CNTにセットする(ステップS603)。
続いて、CPU1は、揮発性メモリ3上の書き込み命令を格納すべきアドレスに既に書き込まれている無効命令としてのCPU1のソフトウェアリセット命令を、正規の書き込み命令に置き換える(ステップS604)。ここで、図15は、ステップS604において命令の置き換えを行った後の、揮発性メモリ3上の書き込みサブプログラムの配置を図示している。この時点で、揮発性メモリ3の書き込み命令を格納すべきアドレスには、正規の書き込み命令が配置されている。命令の置き換え後、CPU1は、図12に示す揮発性メモリ3上の書き込みサブプログラムを呼び出し(ステップS605)、揮発性メモリ3に格納された書き込みサブプログラムを実行する。CPU1は、書き込みサブプログラムの実行終了後、揮発性メモリ3に書き込まれている正規の書き込み命令を、無効命令としてのCPU1のソフトウェアリセット命令に置き換え(ステップS606)、書き込みプログラムを終了する(ステップS607)。
図12は、ステップS502で予め揮発性メモリ3に転送された、書き込みサブプログラムの動作を示している。CPU1は、先ず、書き込みデータ数CNTを確認する(ステップS701)。ステップS701において書き込みデータ数CNTが0以外の場合、アドレスSRCが示す書き込み元のデータの格納領域から書き込みデータを取得する(ステップS702)。続いて、不揮発性メモリ2の書き込み先アドレスDSTに対して書き込み命令を実行し、データの書き込みを開始する(ステップS703)。データの書き込み完了を確認すると(ステップS704でYes分岐)、CPU1は、次のデータの書き込み準備のために、アドレスSRC及びアドレスDSTの値を次のアドレスの値に更新する。本実施形態では、アドレスSRC及びアドレスDSTの値を共に1増加させる(ステップS705)。更に、書き込みデータ数CNTを1減少させて(ステップS706)、ステップS701に遷移して以後の処理を継続する。CPU1は、ステップS701において、書き込みデータ数CNTが0となり、全ての書き込みが終了したと判定した場合に、書き込みサブプログラムを終了する(ステップS707)。
次に、何らかの要因でCPU1が誤動作し、書き込みサブプログラムが格納された領域を含む揮発性メモリ3上の領域に、誤ってプログラムが分岐した場合について説明する。
この場合は、不揮発性メモリ2上の書き込みプログラムが正しく実行されず、図11に示す書き込みプログラムのステップS604における命令の置き換えが実行されずに、揮発性メモリ3上の何れかの領域に分岐することとなる。このときの揮発性メモリ3上の書き込みサブプログラムの構成は、図9に示す構成であり、書き込み命令を格納すべき揮発性メモリ3のアドレスには、無効命令としてのCPU1のソフトウェアリセット命令が配置された状態となる。従って、図12に示すフローチャートにおいて、CPU1の暴走によって揮発性メモリ3へプログラムが分岐した場合には、ステップS703の書き込み命令は実行されず、実際には、ステップS703’の無効命令が実行される。ここでは、無効命令としてCPU1のソフトウェアリセット命令が書き込まれているので、リセットが発生し、不揮発性メモリ2への書き込みは実行されない。これによって、不揮発性メモリ2への誤書き込みを防止することができる。
不揮発性メモリ2のデータ消去について、図13及び図14のフローチャートを基に説明する。図13は、不揮発性メモリ2に格納されている制御プログラムに含まれる消去プログラムの動作を示している。CPU1は、不揮発性メモリ2上の消去プログラムに従って、先ず、不揮発性メモリ2上の消去先のアドレスを変数DSTにセットする(ステップS801)。
続いて、CPU1は、揮発性メモリ3上の消去命令を格納すべきアドレスに既に書き込まれている無効命令としてのCPU1のソフトウェアリセット命令を、正規の消去命令に置き換える(ステップS802)。ここで、図16は、ステップS802において命令の置き換えを行った後の、揮発性メモリ3上の消去サブプログラムの配置を示している。この時点で、揮発性メモリ3の消去命令を格納すべきアドレスには、正規の消去命令が配置されている。命令の置き換え後、CPU1は、図14に示す揮発性メモリ3上の消去サブプログラムを呼び出し(ステップS803)、揮発性メモリ3に格納された消去サブプログラムを実行する。CPU1は、消去サブプログラムの実行終了後、揮発性メモリ3に書き込まれている正規の消去命令を、無効命令としてのCPU1のソフトウェアリセット命令に置き換え(ステップS804)、消去プログラムを終了する(ステップS805)。
図14は、ステップS503で予め揮発性メモリ3に転送された、消去サブプログラムの動作を示している。CPU1は、不揮発性メモリ2上の消去先のアドレスDSTに対して、消去命令を実行しデータの消去を開始する(ステップS901)。続いて、データの消去完了を確認すると(ステップS902でYes分岐)、CPU1は、消去サブプログラムを終了する(ステップS903)。
次に、何らかの要因でCPU1が誤動作し、消去サブプログラムが格納された領域を含む揮発性メモリ3上の領域に、誤ってプログラムが分岐した場合について説明する。
この場合は、図13に示す消去プログラムのステップS802における命令の置き換えが実行されずに、揮発性メモリ3上の何れかの領域に分岐することとなる。このときの揮発性メモリ3上の消去サブプログラムの構成は、図10に示す構成であり、消去命令を格納すべき揮発性メモリ3のアドレスには、無効命令としてのCPU1のソフトウェアリセット命令が配置された状態となる。従って、図14に示すフローチャートにおいて、CPU1の暴走によって揮発性メモリ3へプログラムが分岐した場合には、ステップS901の消去命令は実行されず、実際には、ステップS901’の無効命令が実行される。ここでは、無効命令としてCPU1のソフトウェアリセット命令が書き込まれているので、リセットが発生し、不揮発性メモリ2上のデータの消去は実行されない。これによって、不揮発性メモリ2の誤消去を防止することができる。
<別実施形態>
上記実施形態では、図8のステップS502及びステップS503、図11のステップS606、図13のステップS804において、揮発性メモリ3上の書き込み命令及び消去命令を格納すべきアドレスに書き込む無効命令として、CPU1のソフトウェアリセット命令を適用した例について説明したが、CPU1が実行可能な別の命令を適用するのも好適である。実行可能な別の命令としては、CPU1のNOP命令のような無操作命令、CPU1の未定義命令等がある。
無効命令として無操作命令を用いた場合について説明する。CPU1の暴走時、揮発性メモリ3の書き込みサブプログラムの領域に分岐したときには、図12のステップS703’において不揮発性メモリ2は操作されず次のステップに進むこととなる。同様に、CPU1の暴走時、揮発性メモリ3の消去サブプログラムの領域に分岐したときには、図14のステップS901’において不揮発性メモリ2は操作されず次のステップに進むこととなる。従って、無効命令として無操作命令を用いた場合にも、無効命令としてソフトウェアリセット命令を用いた場合と同様に、不揮発性メモリ2への誤書き込み及び誤消去を防止することができる。
無効命令としてCPU1の未定義命令を用いた場合について説明する。CPU1の暴走時、揮発性メモリ3の書き込みサブプログラムの領域に分岐したときには、図12のステップS703’ において不揮発性メモリ2は操作されず、未定義命令実行エラーが検出される。同様に、CPU1の暴走時、揮発性メモリ3の消去サブプログラムの領域に分岐したときには、図14のステップS901’において不揮発性メモリ2は操作されず、未定義命令実行エラーが検出される。従って、無効命令として未定義命令を用いた場合にも、無効命令としてソフトウェアリセット命令を用いた場合と同様に、不揮発性メモリ2への誤書き込み及び誤消去を防止することができる。
尚、本発明に係る不揮発性メモリシステムは、不揮発性メモリ、揮発性メモリ、及び演算処理装置の何れかについて、複数備えるシステムに適用するのも好適である。また、これらの構成が複数のシステムに搭載されている場合に適用するのも好適である。
ICカードシステムの構成を示すブロック図 ICカードシステムに搭載される不揮発性メモリ及び揮発性メモリの構成を示す説明図 従来技術に係るICカードシステムに搭載される不揮発性メモリに格納された制御プログラムの初期化動作を示すフローチャート 従来技術における不揮発性メモリの制御プログラムの動作を示すフローチャート 従来技術における不揮発性メモリの書き込みサブプログラムの動作を示すフローチャート 従来技術における不揮発性メモリの制御プログラムの動作を示すフローチャート 従来技術における不揮発性メモリの消去サブプログラムの動作を示すフローチャート 本発明に係るICカードシステムに搭載される不揮発性メモリに格納された制御プログラムの初期化動作を示すフローチャート 本発明に係るICカードシステムに搭載された揮発性メモリに転送された書き込みサブプログラムの配置を示す説明図 本発明に係るICカードシステムに搭載された揮発性メモリに転送された消去サブプログラムの配置を示す説明図 本発明に係る制御プログラムの動作を示すフローチャート 本発明に係る書き込みサブプログラムの動作を示すフローチャート 本発明に係る制御プログラムの動作を示すフローチャート 本発明に係る消去サブプログラムの動作を示すフローチャート 命令置き換え後の本発明に係る揮発性メモリの書き込みサブプログラムの配置を示す図 命令置き換え後の本発明に係る揮発性メモリの消去サブプログラムの配置を示す図
符号の説明
1 CPU
2 不揮発性メモリ
3 揮発性メモリ
4 通信インターフェース
5 端末装置
6 ICカード

Claims (7)

  1. 所定の制御プログラムが格納された不揮発性メモリと、
    前記不揮発性メモリに格納された前記制御プログラムの内、少なくとも前記不揮発性メモリの内容を書き換えるための書込命令或いは消去命令である操作命令を含むプログラムを一時的に格納する揮発性メモリと、
    前記不揮発性メモリ及び前記揮発性メモリを制御する演算処理装置と、を備える不揮発性メモリシステムであって、
    初期化の際に、前記不揮発性メモリに対する前記操作命令を格納するための前記揮発性メモリの所定のアドレスに、前記操作命令に代えて無効命令を書き込む第1無効命令書込手段と、
    前記不揮発性メモリの操作開始前に、前記無効命令を格納した前記揮発性メモリの前記所定のアドレスに前記操作命令を書き込み、前記操作命令に基づいて前記不揮発性メモリを操作する制御手段と、
    前記不揮発性メモリの操作実行後に、前記揮発性メモリの前記所定のアドレスに、無効命令を書き込む第2無効命令書込手段と、を備えることを特徴とする不揮発性メモリシステム。
  2. 前記操作命令を含むプログラムが前記不揮発性メモリへの書込命令を含み、前記第1無効命令書込手段及び第2無効命令書込手段が、前記書込命令を格納する前記揮発性メモリの所定のアドレスに前記無効命令を書き込むことを特徴とする請求項1に記載の不揮発性メモリシステム。
  3. 前記操作命令を含むプログラムが前記不揮発性メモリへの消去命令を含み、前記第1無効命令書込手段及び第2無効命令書込手段が、前記消去命令を格納する前記揮発性メモリの所定のアドレスに前記無効命令を書き込むことを特徴とする請求項1または2に記載の不揮発性メモリシステム。
  4. 前記無効命令が、前記演算処理装置をリセットする命令であることを特徴とする請求項1乃至3の何れか1項に記載の不揮発性メモリシステム。
  5. 前記無効命令が、前記演算処理装置における無操作命令であることを特徴とする請求項1乃至3の何れか1項に記載の不揮発性メモリシステム。
  6. 前記無効命令が、前記演算処理装置における未定義命令であることを特徴とする請求項1乃至3の何れか1項に記載の不揮発性メモリシステム。
  7. 請求項1乃至6に記載の不揮発性メモリシステムにおける各手段の機能をコンピュータ上で実行するプログラムステップを含むことを特徴とする不揮発性メモリ制御プログラム。
JP2004325953A 2004-11-10 2004-11-10 不揮発性メモリシステム Expired - Fee Related JP4452158B2 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2004325953A JP4452158B2 (ja) 2004-11-10 2004-11-10 不揮発性メモリシステム
PCT/JP2005/019766 WO2006051692A1 (ja) 2004-11-10 2005-10-27 不揮発性メモリシステム
CNB2005800384871A CN100565480C (zh) 2004-11-10 2005-10-27 非易失性存储器系统
US11/666,351 US20080162837A1 (en) 2004-11-10 2005-10-27 Nonvolatile Memory System
AU2005303305A AU2005303305A1 (en) 2004-11-10 2005-10-27 Nonvolatile memory system
EP05799367A EP1821214A4 (en) 2004-11-10 2005-10-27 NON-VOLATILE STORAGE SYSTEM
TW094139497A TW200632653A (en) 2004-11-10 2005-11-10 Nonvolatile memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004325953A JP4452158B2 (ja) 2004-11-10 2004-11-10 不揮発性メモリシステム

Publications (2)

Publication Number Publication Date
JP2006139341A JP2006139341A (ja) 2006-06-01
JP4452158B2 true JP4452158B2 (ja) 2010-04-21

Family

ID=36336375

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004325953A Expired - Fee Related JP4452158B2 (ja) 2004-11-10 2004-11-10 不揮発性メモリシステム

Country Status (7)

Country Link
US (1) US20080162837A1 (ja)
EP (1) EP1821214A4 (ja)
JP (1) JP4452158B2 (ja)
CN (1) CN100565480C (ja)
AU (1) AU2005303305A1 (ja)
TW (1) TW200632653A (ja)
WO (1) WO2006051692A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090199014A1 (en) * 2008-02-04 2009-08-06 Honeywell International Inc. System and method for securing and executing a flash routine
JP5297761B2 (ja) * 2008-10-28 2013-09-25 株式会社ワイ・イー・データ Usbメモリ用書き込み防止アダプタ装置
US20100169708A1 (en) * 2008-12-29 2010-07-01 John Rudelic Method and apparatus to profile ram memory objects for displacment with nonvolatile memory
EP2306416A1 (en) * 2009-09-25 2011-04-06 Incard SA Improved method for pre-personalizing an IC Card
JP5801244B2 (ja) * 2012-04-06 2015-10-28 株式会社東芝 メモリシステム
CN116540947B (zh) * 2023-07-04 2023-10-13 苏州萨沙迈半导体有限公司 数据擦写的方法、装置、存储介质和单片机

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3512252B2 (ja) * 1994-11-02 2004-03-29 大日本印刷株式会社 Cpuを内蔵した情報記録媒体
DE19508723A1 (de) * 1995-03-10 1996-09-12 Siemens Ag Mehrbenutzerdatenverarbeitungsanlage mit Speicherschutz
US6085282A (en) * 1997-09-24 2000-07-04 Motorola, Inc. Method and apparatus for distinguishing register reads from memory reads in a flash memory
JPH11259371A (ja) * 1998-03-12 1999-09-24 Denso Corp 電子制御装置及び電子制御装置のプログラム書き換え方法
JP3641149B2 (ja) * 1998-12-18 2005-04-20 日本電信電話株式会社 自己破壊型半導体装置

Also Published As

Publication number Publication date
TW200632653A (en) 2006-09-16
EP1821214A1 (en) 2007-08-22
CN101057226A (zh) 2007-10-17
AU2005303305A1 (en) 2006-05-18
US20080162837A1 (en) 2008-07-03
CN100565480C (zh) 2009-12-02
WO2006051692A1 (ja) 2006-05-18
JP2006139341A (ja) 2006-06-01
EP1821214A4 (en) 2008-12-31

Similar Documents

Publication Publication Date Title
EP2638466B1 (en) Software updating process for an embedded device
US6601132B2 (en) Nonvolatile memory and method of writing data thereto
JP4406339B2 (ja) コントローラ、メモリカード及びその制御方法
KR20070060101A (ko) 무선 단말기에서의 비휘발성 메모리 관리 시스템 및 방법
JP2008198310A (ja) ビットエラーの修復方法および情報処理装置
JP2010152514A (ja) メモリシステム
US7809878B2 (en) Apparatus and method for controlling flash memory
JP4452158B2 (ja) 不揮発性メモリシステム
JP4843222B2 (ja) 半導体記憶装置の制御方法、メモリカード、及びホスト機器
JP4177360B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2009176147A (ja) 電子機器および電子機器のメモリアクセス許可判別方法
JP2010079686A (ja) データ処理装置、メモリ制御回路およびメモリ制御方法
JP4661369B2 (ja) メモリコントローラ
JP6040895B2 (ja) マイクロコンピュータ及び不揮発性メモリのブロック管理方法
JP4826232B2 (ja) 情報処理装置およびブートプログラムの書き換え方法
US6898680B2 (en) Minimization of overhead of non-volatile memory operation
JP5862350B2 (ja) フラッシュメモリの書き込み装置、フラッシュメモリの書き込み制御方法、およびプログラム
JP4235624B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
CN101694636A (zh) 非易失性数据存储器数据更新备份系统及方法
US20170046084A1 (en) Memory control device, memory device, and memory control method
JP5050508B2 (ja) 記憶装置、記憶装置のプログラム及び記憶処理方法
KR100965079B1 (ko) 불휘발성 메모리 장치
JP2005056144A (ja) フラッシュメモリ搭載電子装置、そのメモリデータ管理方法およびプログラム
JP4876459B2 (ja) マルチプロセッサシステム、マルチプロセッサシステムの起動方法、および携帯端末
JP4810108B2 (ja) Icカードとその制御方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090421

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090610

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: 20100105

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: 20100129

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130205

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130205

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140205

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees