(57)【要約】【課題】フラッシュメモリーに書き込まれたデータに対して不正リード／ライト動作防止機能を要した集積回路装置及び集積回路装置の制御方法を提供する。【解決手段】集積回路装置は、電気的に書換え可能な不揮発性メモリー１４と、外部装置からの指示に基づいて不揮発性メモリー１４を書換え可能にする制御回路１０と、を含み、制御回路１０は、外部装置からのシリアルデータを受信するシリアル通信回路１８と、受信したシリアルデータを解析するコマンド解析回路２０と、解析された内容に応じて不揮発性メモリー１４の書換えのための手順制御を行う不揮発性メモリー制御回路２２と、を含み、不揮発性メモリー制御回路２２は、不揮発性メモリー１４の所定のビットを読み出し、不揮発性メモリー１４の所定のビットにプロテクトデータが書かれている場合は、不揮発性メモリー１４の書き込み又は読み出しをプロテクトする。【選択図】図１
2011216047.tif 000002
【特許請求の範囲】
【請求項１】
電気的に書換え可能な不揮発性メモリーと、
外部装置からの指示に基づいて前記不揮発性メモリーを書換え可能にする制御回路と、
を含み、
前記制御回路は、
前記外部装置からのシリアルデータを受信するシリアル通信回路と、
前記受信した前記シリアルデータを解析するコマンド解析回路と、
前記解析された内容に応じて前記不揮発性メモリーの書換えのための手順制御を行う不揮発性メモリー制御回路と、
を含み、
前記不揮発性メモリー制御回路は、前記不揮発性メモリーの所定のビットを読み出し、該不揮発性メモリーの所定のビットにプロテクトデータが書かれている場合は、該不揮発性メモリーの書き込み又は読み出しをプロテクトすることを特徴とする集積回路装置。
【請求項２】
請求項１に記載の集積回路装置において、
前記制御回路は、前記不揮発性メモリーにプロテクトをかける場合、該不揮発性メモリーの所定のアドレス／ビットにプロテクトデータを書き込むことを特徴とする集積回路装置。
【請求項３】
請求項１又は２に記載の集積回路装置において、
前記制御回路は、前記不揮発性メモリーのデータを全消去することで該不揮発性メモリーの所定のビットのプロテクトを解除することを特徴とする集積回路装置。
【請求項４】
請求項１〜３のいずれか一項に記載の集積回路装置において、
ＣＰＵをさらに含み、
前記ＣＰＵは、前記不揮発性メモリーの所定のビットによらず、該不揮発性メモリーから読み出しを行うことを特徴とする集積回路装置。
【請求項５】
不揮発性メモリーの所定のビットを確認すること、
プロテクト否なら書き込み又は読み出しを行い、プロテクト有なら書き込み又は読み出しを行わないこと、
を含むことを特徴とする集積回路装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路装置及び集積回路装置の制御方法に関するものである。
【背景技術】
【０００２】
フラッシュメモリー（flash memory）を搭載したマイクロコンピューターのフラッシュメモリーには、メーカーが開発したプログラムやパラメーターデータ等が書き込まれて利用される（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−４４４５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、そのような記憶情報に対して、例えばマイクロコンピューターが外部書き込み装置としてのフラッシュメモリーライターに接続され、オンボード読み出し機能を用いてフラッシュメモリーの記憶領域に対する読み出しが可能にされる動作モードを持つ場合、当該動作モードを設定すれば、前記記憶領域に格納されたプログラムは比較的容易に外部へ読み出すことが可能であった。
前記記憶領域に格納されたプログラムが比較的容易に外部へ読み出すことが可能な理由は、外部から与えられる読み出しのためのアクセスコマンドにしたがって動作可能な状態にされるからである。そこで、そのような記憶情報に対する不正アクセスを防止する機密保護のための技術が必要となると考える。
【課題を解決するための手段】
【０００５】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
【０００６】
［適用例１］電気的に書換え可能な不揮発性メモリーと、外部装置からの指示に基づいて前記不揮発性メモリーを書換え可能にする制御回路と、を含み、前記制御回路は、前記外部装置からのシリアルデータを受信するシリアル通信回路と、前記受信した前記シリアルデータを解析するコマンド解析回路と、前記解析された内容に応じて前記不揮発性メモリーの書換えのための手順制御を行う不揮発性メモリー制御回路と、を含み、前記不揮発性メモリー制御回路は、前記不揮発性メモリーの所定のビットを読み出し、該不揮発性メモリーの所定のビットにプロテクトデータが書かれている場合は、該不揮発性メモリーの書き込み又は読み出しをプロテクトすることを特徴とする集積回路装置。
【０００７】
これによれば、フラッシュメモリーを内蔵したマイクロコンピューターに関して、フラッシュメモリーに書き込まれたデータに対して不正リード／ライト動作防止のため、リード／ライトプロテクト機能を要したフラッシュメモリー制御用シーケンサー回路を提供するので、フラッシュメモリー制御用シーケンサー回路を要することにより、シンプルな機構でリードライトプロテクト機能が可能となる。
【０００８】
［適用例２］上記集積回路装置であって、前記制御回路は、前記不揮発性メモリーにプロテクトをかける場合、該不揮発性メモリーの所定のアドレス／ビットにプロテクトデータを書き込むことを特徴とする集積回路装置。
【０００９】
これによれば、容易にリードライトプロテクト機能が可能となる。
【００１０】
［適用例３］上記集積回路装置であって、前記制御回路は、前記不揮発性メモリーのデータを全消去することで該不揮発性メモリーの所定のビットのプロテクトを解除することを特徴とする集積回路装置。
【００１１】
これによれば、フラッシュメモリーに書き込まれたデータに対して不正リード／ライト動作防止を確実に行える。
【００１２】
［適用例４］上記集積回路装置であって、ＣＰＵをさらに含み、前記ＣＰＵは、前記不揮発性メモリーの所定のビットによらず、該不揮発性メモリーから読み出しを行うことを特徴とする集積回路装置。
【００１３】
これによれば、ＣＰＵがアクセスしないフラッシュメモリーの領域をプロテクト情報格納ビットに使用しているので、ＣＰＵのアクセスに影響を与えることがない。
【００１４】
［適用例５］不揮発性メモリーの所定のビットを確認すること、プロテクト否なら書き込み又は読み出しを行い、プロテクト有なら書き込み又は読み出しを行わないこと、を含むことを特徴とする集積回路装置の制御方法。
【００１５】
これによれば、フラッシュメモリーを内蔵したマイクロコンピューターに関して、フラッシュメモリーに書き込まれたデータに対して不正リード／ライト動作防止のため、リード／ライトプロテクト機能を要したフラッシュメモリー制御用シーケンサー回路を提供するので、フラッシュメモリー制御用シーケンサー回路を要することにより、シンプルな機構でリードライトプロテクト機能が可能となる。
【図面の簡単な説明】
【００１６】
【図１】本実施形態に係るマイクロコンピューターの概要を示す図。
【図２】本実施形態に係るハードウェアで構成されたフラッシュメモリー制御シーケンサー回路を用いてフラッシュメモリーへ書き込みを実施した場合の制御フローを説明するための図。
【図３】本実施形態に係るフラッシュメモリー内部を示す図。
【図４】本実施形態に係るコマンド解析シーケンスを示す図。
【発明を実施するための形態】
【００１７】
以下、実施形態について図面を用いて詳細に説明する。本実施形態においては、集積回路装置の一例としてフラッシュメモリー内蔵のマイクロコンピューターを示す。
【００１８】
（第１の実施形態）
図１は、本実施形態に係るマイクロコンピューターの概要を示す図である。
本実施形態に係るマイクロコンピューター２は、制御回路としてのフラッシュメモリー制御シーケンサー回路１０と、演算処理装置であるＣＰＵ１２と、プログラム及びデータメモリーとして用いられる不揮発性メモリーとしてのフラッシュメモリー１４と、を含んでいる。
【００１９】
フラッシュメモリー制御シーケンサー回路１０は、シリアル通信回路１８と、コマンド解析回路２０と、フラッシュメモリー制御回路２２と、を備えている。フラッシュメモリー制御シーケンサー回路１０は、外部装置としてのフラッシュメモリーライター８（図２参照）からの指示に基づいてフラッシュメモリー制御信号１６によりフラッシュメモリー１４を書換え可能にする。フラッシュメモリー制御シーケンサー回路１０は、フラッシュメモリー１４にプロテクトをかける場合、フラッシュメモリー１４の所定のアドレス／ビットにプロテクトデータを書き込む。フラッシュメモリー制御シーケンサー回路１０は、フラッシュメモリー１４のデータを全消去することでフラッシュメモリー１４の所定のアドレス／ビットのプロテクトを解除する。
【００２０】
フラッシュメモリー１４は、電気的に書換え可能である。フラッシュメモリー１４には、ＣＰＵ１２が使用しない所定のビットがある。本実施形態では、この所定のビットにプロテクトビットを付加するという単純な機構で、フラッシュメモリーライター８からの指示に基づいてフラッシュメモリー１４を書換える際のプロテクトを可能にする。なお、フラッシュメモリー１４のデータ幅は、ＣＰＵ１２の命令コードバスのデータ幅より大きいシステムである。例えば、図１に示すように、フラッシュメモリー１４のデータ幅は１６ｂｉｔで、ＣＰＵ１２の命令コードバスのデータ幅は１３ｂｉｔとして構成している。
【００２１】
シリアル通信回路１８は、フラッシュメモリーライター８からのシリアルデータを受信する。シリアル通信回路１８は、フラッシュメモリーライター８とシリアル通信制御を行う。
【００２２】
コマンド解析回路２０は、シリアル通信回路１８が受信したシリアルデータを解析する。
【００２３】
フラッシュメモリー制御回路２２では、コマンド解析回路２０で解析された内容に応じてフラッシュメモリー１４の書換えのための手順制御を行う。フラッシュメモリー制御回路２２は、フラッシュメモリー１４の所定のビットを読み出し、フラッシュメモリー１４の所定のアドレス／ビットにプロテクトデータが書かれている場合は、フラッシュメモリー１４の書き込み又は読み出しをプロテクトする。
【００２４】
ＣＰＵ１２は、フラッシュメモリー１４から読み出すデータに基づいて動作する。ＣＰＵ１２は、フラッシュメモリー１４の所定のビットによらず、フラッシュメモリー１４から読み出しを行う。ＣＰＵ１２は、フラッシュメモリー制御シーケンサー回路１０が動作している間、停止している。また、ＣＰＵ１２が動作している間、フラッシュメモリー制御シーケンサー回路１０は停止している。ＣＰＵ１２は、初期化後にフラッシュメモリー１４にアクセスして動作する。
【００２５】
フラッシュメモリー制御シーケンサー回路１０がフラッシュメモリー１４に書き込むデータのデータ幅は、ＣＰＵ１２がフラッシュメモリー１４から読み出すデータ幅より大きい。ＣＰＵ１２とフラッシュメモリー制御シーケンサー回路１０とは、駆動周波数が異なる。
【００２６】
図２は、本実施形態に係るハードウェアで構成されたフラッシュメモリー制御シーケンサー回路１０を用いてフラッシュメモリー１４へ書き込みを実施した場合の制御フローを説明するための図である。フラッシュメモリー１４へのプロテクト制御機能について説明する。
【００２７】
先ず、ステップＳ１０において、フラッシュメモリーライター８のフラッシュメモリーライター制御ソフトウェアにてリード／ライトプロテクトを設定する。
【００２８】
次に、ステップＳ１２において、プロテクトが設定されると、書き込み予定のプログラムデータ中の任意に設定されたアドレス（例えば０番地）の中の未使用領域である１５ｂｉｔ目にプロテクトビットである“０”を付加した状態にしてマイクロコンピューター２にデータを送信する。なお、何も書き込まれていない状態では、フラッシュメモリー１４は全ｂｉｔ“１”が書き込まれている。上位１３〜１５ｂｉｔのＣＰＵ１２の未使用領域も“１”が書き込まれている。そこに“０”を書くことによってプロテクトビットを設定する。
【００２９】
次に、ステップＳ１４において、フラッシュメモリー制御シーケンサー回路１０は、プロテクト情報“０”が付加されたデータをコマンドにしたがってフラッシュメモリー１４の所定のアドレスに書き込む。
【００３０】
次に、ステップＳ１６において、フラッシュメモリー制御シーケンサー回路１０よりリセット解除後の初期動作として、予め設定されたプロテクト情報が付加されるアドレスをリードして、プロテクトビットが“０”になっているかどうかを常に判定して次の実行シーケンスに進む。
【００３１】
次に、ステップＳ１８において、もし、プロテクトビットが“０”になっていたら、プロテクトステータスに遷移し、リードやライトの動作を受け付けない。
【００３２】
次に、ステップＳ２０において、このようにシンプルな設定で、データのリードライトプロテクトが可能である。
【００３３】
なお、フラッシュメモリー１４へのプロテクトを解除するには、フラッシュメモリー１４内のデータの全消去を行うことしか方法はない（全アドレスのデータが１となり、プロテクトが外れる。しかしその状態では、プログラム情報等もなくなるので、読み書きされても問題はない）。
【００３４】
図３は、本実施形態に係るフラッシュメモリー１４内部を示す図である。
例えば、図３に示すように、４ビットマイコンで命令のバス幅が１３ｂｉｔ、データの０〜１２（Ｄ［１２：０］）のプログラム格納領域４０を用いている。但し、１６ｂｉｔ幅のフラッシュメモリー１４を搭載している。実際は、フラッシュメモリー１４は１６ｂｉｔ幅で、データが格納されている。ＣＰＵ１２はその１６ｂｉｔ幅の内の下位０〜１２をデータとして使用している。ＣＰＵ１２は上位１３〜１５ｂｉｔの未使用領域４２を使用していない。上位１３〜１５ｂｉｔはデータが格納されていない。本実施形態では、フラッシュメモリー１４のプロテクトビット４４をそこの領域で使用するものである。
【００３５】
次に、フラッシュメモリー制御シーケンサー回路１０の機能概要を説明する。
図４は、本実施形態に係るコマンド解析シーケンスを示す図である。
【００３６】
本実施形態に係るフラッシュメモリー制御シーケンサー回路１０は、下記に示す機能を有する。フラッシュメモリーライター８から送信されてくる以下のフラッシュメモリー１４へのコマンドプロトコルを限定的にサポートし、マイクロコンピューター２に内蔵されているフラッシュメモリー１４への書き込み、読み出し、消去動作を行う。例えば、コマンドデータが２２Ｈは、フラッシュメモリー１４への書き込みコマンドである。コマンドデータが２４Ｈは、フラッシュメモリー１４への読み出しコマンドである。コマンドデータが２８Ｈは、フラッシュメモリー１４への消去コマンドである。
【００３７】
マイクロコンピューター２へフラッシュメモリーライター８を接続した時は、フラッシュメモリーライター８から供給されるＳＣＬＫ（３．０７２ＭＨｚ）をマイクロコンピューター２の動作クロックとする。従来のＣＰＵ１２がフラッシュメモリー１４への書き込み等を制御する場合、そのＣＰＵ１２の動作クロック（低速クロック）で制御を行うため、フラッシュメモリー制御シーケンサー回路１０を使用する場合に比べて、制御に時間がかかっていた。
【００３８】
次に、本実施形態に係るコマンド解析シーケンスの主な状態を説明する。
図４に示すように、Ｓ１のイニシャル状態の状態は、フラッシュメモリー制御シーケンサー回路１０のイニシャル状態である。フラッシュメモリー制御シーケンサー回路１０はフラッシュメモリーライター８が接続しているかを判定している。
【００３９】
Ｓ２のスタートキャラクター受信待ちの状態では、フラッシュメモリーライター８が接続され、フラッシュメモリーライター８からのデータ受信モードに移行する。はじめの状態は、フラッシュメモリーライター８からのデータ送信を確認するためのデータ群を待っている状態である。
【００４０】
Ｓ３のコマンド受信完了待ちの状態では、フラッシュメモリーライター８からのデータ送信を認識するためのデータ群を受信し、次に「ライト」、「リード」、「イレース」のうち何を実行するかのコマンドデータを待っている状態である。
【００４１】
Ｓ４のイレース動作終了待ちの状態では、「イレース」コマンドを受信し、イレースを実施し、フラッシュメモリー１４がイレースされるのを待っている状態である。
【００４２】
Ｓ６のプロテクトビット確認の状態では、フラッシュメモリー１４の０番地目を読み出して、１５ｂｉｔ目のプロテクトビットを確認し、その値を所定のレジスターに格納する。格納後、次の状態に遷移する。
【００４３】
Ｓ７のライトデータ受信完了待ちの状態では、「ライト」コマンドを受信し、ライトするためのデータが送信されてくるのを待っている状態である。
【００４４】
Ｓ１１のリードデータ送信完了待ちの状態では、「リード」コマンドを受信し、フラッシュメモリー１４からデータをリードし、そのデータを送信している状態である。
【符号の説明】
【００４５】
２…マイクロコンピューター（集積回路装置）  ８…フラッシュメモリーライター（外部装置）  １０…フラッシュメモリー制御シーケンサー回路（制御回路）  １２…ＣＰＵ  １４…フラッシュメモリー（不揮発性メモリー）  １６…フラッシュメモリー制御信号  １８…シリアル通信回路  ２０…コマンド解析回路  ２２…フラッシュメモリー制御回路（不揮発性メモリー制御回路）  ４０…プログラム格納領域  ４２…未使用領域  ４４…プロテクトビット。
【図１】
2011216047.tif 000003
【図２】
2011216047.tif 000004
【図３】
2011216047.tif 000005
【図４】
2011216047.tif 000006