説明

集積回路装置及び集積回路装置の制御方法

【課題】フラッシュメモリーに書き込まれたデータに対して不正リード/ライト動作防止機能を要した集積回路装置及び集積回路装置の制御方法を提供する。
【解決手段】集積回路装置は、電気的に書換え可能な不揮発性メモリー14と、外部装置からの指示に基づいて不揮発性メモリー14を書換え可能にする制御回路10と、を含み、制御回路10は、外部装置からのシリアルデータを受信するシリアル通信回路18と、受信したシリアルデータを解析するコマンド解析回路20と、解析された内容に応じて不揮発性メモリー14の書換えのための手順制御を行う不揮発性メモリー制御回路22と、を含み、不揮発性メモリー制御回路22は、不揮発性メモリー14の所定のビットを読み出し、不揮発性メモリー14の所定のビットにプロテクトデータが書かれている場合は、不揮発性メモリー14の書き込み又は読み出しをプロテクトする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、集積回路装置及び集積回路装置の制御方法に関するものである。
【背景技術】
【0002】
フラッシュメモリー(flash memory)を搭載したマイクロコンピューターのフラッシュメモリーには、メーカーが開発したプログラムやパラメーターデータ等が書き込まれて利用される(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2003−44457号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、そのような記憶情報に対して、例えばマイクロコンピューターが外部書き込み装置としてのフラッシュメモリーライターに接続され、オンボード読み出し機能を用いてフラッシュメモリーの記憶領域に対する読み出しが可能にされる動作モードを持つ場合、当該動作モードを設定すれば、前記記憶領域に格納されたプログラムは比較的容易に外部へ読み出すことが可能であった。
前記記憶領域に格納されたプログラムが比較的容易に外部へ読み出すことが可能な理由は、外部から与えられる読み出しのためのアクセスコマンドにしたがって動作可能な状態にされるからである。そこで、そのような記憶情報に対する不正アクセスを防止する機密保護のための技術が必要となると考える。
【課題を解決するための手段】
【0005】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
【0006】
[適用例1]電気的に書換え可能な不揮発性メモリーと、外部装置からの指示に基づいて前記不揮発性メモリーを書換え可能にする制御回路と、を含み、前記制御回路は、前記外部装置からのシリアルデータを受信するシリアル通信回路と、前記受信した前記シリアルデータを解析するコマンド解析回路と、前記解析された内容に応じて前記不揮発性メモリーの書換えのための手順制御を行う不揮発性メモリー制御回路と、を含み、前記不揮発性メモリー制御回路は、前記不揮発性メモリーの所定のビットを読み出し、該不揮発性メモリーの所定のビットにプロテクトデータが書かれている場合は、該不揮発性メモリーの書き込み又は読み出しをプロテクトすることを特徴とする集積回路装置。
【0007】
これによれば、フラッシュメモリーを内蔵したマイクロコンピューターに関して、フラッシュメモリーに書き込まれたデータに対して不正リード/ライト動作防止のため、リード/ライトプロテクト機能を要したフラッシュメモリー制御用シーケンサー回路を提供するので、フラッシュメモリー制御用シーケンサー回路を要することにより、シンプルな機構でリードライトプロテクト機能が可能となる。
【0008】
[適用例2]上記集積回路装置であって、前記制御回路は、前記不揮発性メモリーにプロテクトをかける場合、該不揮発性メモリーの所定のアドレス/ビットにプロテクトデータを書き込むことを特徴とする集積回路装置。
【0009】
これによれば、容易にリードライトプロテクト機能が可能となる。
【0010】
[適用例3]上記集積回路装置であって、前記制御回路は、前記不揮発性メモリーのデータを全消去することで該不揮発性メモリーの所定のビットのプロテクトを解除することを特徴とする集積回路装置。
【0011】
これによれば、フラッシュメモリーに書き込まれたデータに対して不正リード/ライト動作防止を確実に行える。
【0012】
[適用例4]上記集積回路装置であって、CPUをさらに含み、前記CPUは、前記不揮発性メモリーの所定のビットによらず、該不揮発性メモリーから読み出しを行うことを特徴とする集積回路装置。
【0013】
これによれば、CPUがアクセスしないフラッシュメモリーの領域をプロテクト情報格納ビットに使用しているので、CPUのアクセスに影響を与えることがない。
【0014】
[適用例5]不揮発性メモリーの所定のビットを確認すること、プロテクト否なら書き込み又は読み出しを行い、プロテクト有なら書き込み又は読み出しを行わないこと、を含むことを特徴とする集積回路装置の制御方法。
【0015】
これによれば、フラッシュメモリーを内蔵したマイクロコンピューターに関して、フラッシュメモリーに書き込まれたデータに対して不正リード/ライト動作防止のため、リード/ライトプロテクト機能を要したフラッシュメモリー制御用シーケンサー回路を提供するので、フラッシュメモリー制御用シーケンサー回路を要することにより、シンプルな機構でリードライトプロテクト機能が可能となる。
【図面の簡単な説明】
【0016】
【図1】本実施形態に係るマイクロコンピューターの概要を示す図。
【図2】本実施形態に係るハードウェアで構成されたフラッシュメモリー制御シーケンサー回路を用いてフラッシュメモリーへ書き込みを実施した場合の制御フローを説明するための図。
【図3】本実施形態に係るフラッシュメモリー内部を示す図。
【図4】本実施形態に係るコマンド解析シーケンスを示す図。
【発明を実施するための形態】
【0017】
以下、実施形態について図面を用いて詳細に説明する。本実施形態においては、集積回路装置の一例としてフラッシュメモリー内蔵のマイクロコンピューターを示す。
【0018】
(第1の実施形態)
図1は、本実施形態に係るマイクロコンピューターの概要を示す図である。
本実施形態に係るマイクロコンピューター2は、制御回路としてのフラッシュメモリー制御シーケンサー回路10と、演算処理装置であるCPU12と、プログラム及びデータメモリーとして用いられる不揮発性メモリーとしてのフラッシュメモリー14と、を含んでいる。
【0019】
フラッシュメモリー制御シーケンサー回路10は、シリアル通信回路18と、コマンド解析回路20と、フラッシュメモリー制御回路22と、を備えている。フラッシュメモリー制御シーケンサー回路10は、外部装置としてのフラッシュメモリーライター8(図2参照)からの指示に基づいてフラッシュメモリー制御信号16によりフラッシュメモリー14を書換え可能にする。フラッシュメモリー制御シーケンサー回路10は、フラッシュメモリー14にプロテクトをかける場合、フラッシュメモリー14の所定のアドレス/ビットにプロテクトデータを書き込む。フラッシュメモリー制御シーケンサー回路10は、フラッシュメモリー14のデータを全消去することでフラッシュメモリー14の所定のアドレス/ビットのプロテクトを解除する。
【0020】
フラッシュメモリー14は、電気的に書換え可能である。フラッシュメモリー14には、CPU12が使用しない所定のビットがある。本実施形態では、この所定のビットにプロテクトビットを付加するという単純な機構で、フラッシュメモリーライター8からの指示に基づいてフラッシュメモリー14を書換える際のプロテクトを可能にする。なお、フラッシュメモリー14のデータ幅は、CPU12の命令コードバスのデータ幅より大きいシステムである。例えば、図1に示すように、フラッシュメモリー14のデータ幅は16bitで、CPU12の命令コードバスのデータ幅は13bitとして構成している。
【0021】
シリアル通信回路18は、フラッシュメモリーライター8からのシリアルデータを受信する。シリアル通信回路18は、フラッシュメモリーライター8とシリアル通信制御を行う。
【0022】
コマンド解析回路20は、シリアル通信回路18が受信したシリアルデータを解析する。
【0023】
フラッシュメモリー制御回路22では、コマンド解析回路20で解析された内容に応じてフラッシュメモリー14の書換えのための手順制御を行う。フラッシュメモリー制御回路22は、フラッシュメモリー14の所定のビットを読み出し、フラッシュメモリー14の所定のアドレス/ビットにプロテクトデータが書かれている場合は、フラッシュメモリー14の書き込み又は読み出しをプロテクトする。
【0024】
CPU12は、フラッシュメモリー14から読み出すデータに基づいて動作する。CPU12は、フラッシュメモリー14の所定のビットによらず、フラッシュメモリー14から読み出しを行う。CPU12は、フラッシュメモリー制御シーケンサー回路10が動作している間、停止している。また、CPU12が動作している間、フラッシュメモリー制御シーケンサー回路10は停止している。CPU12は、初期化後にフラッシュメモリー14にアクセスして動作する。
【0025】
フラッシュメモリー制御シーケンサー回路10がフラッシュメモリー14に書き込むデータのデータ幅は、CPU12がフラッシュメモリー14から読み出すデータ幅より大きい。CPU12とフラッシュメモリー制御シーケンサー回路10とは、駆動周波数が異なる。
【0026】
図2は、本実施形態に係るハードウェアで構成されたフラッシュメモリー制御シーケンサー回路10を用いてフラッシュメモリー14へ書き込みを実施した場合の制御フローを説明するための図である。フラッシュメモリー14へのプロテクト制御機能について説明する。
【0027】
先ず、ステップS10において、フラッシュメモリーライター8のフラッシュメモリーライター制御ソフトウェアにてリード/ライトプロテクトを設定する。
【0028】
次に、ステップS12において、プロテクトが設定されると、書き込み予定のプログラムデータ中の任意に設定されたアドレス(例えば0番地)の中の未使用領域である15bit目にプロテクトビットである“0”を付加した状態にしてマイクロコンピューター2にデータを送信する。なお、何も書き込まれていない状態では、フラッシュメモリー14は全bit“1”が書き込まれている。上位13〜15bitのCPU12の未使用領域も“1”が書き込まれている。そこに“0”を書くことによってプロテクトビットを設定する。
【0029】
次に、ステップS14において、フラッシュメモリー制御シーケンサー回路10は、プロテクト情報“0”が付加されたデータをコマンドにしたがってフラッシュメモリー14の所定のアドレスに書き込む。
【0030】
次に、ステップS16において、フラッシュメモリー制御シーケンサー回路10よりリセット解除後の初期動作として、予め設定されたプロテクト情報が付加されるアドレスをリードして、プロテクトビットが“0”になっているかどうかを常に判定して次の実行シーケンスに進む。
【0031】
次に、ステップS18において、もし、プロテクトビットが“0”になっていたら、プロテクトステータスに遷移し、リードやライトの動作を受け付けない。
【0032】
次に、ステップS20において、このようにシンプルな設定で、データのリードライトプロテクトが可能である。
【0033】
なお、フラッシュメモリー14へのプロテクトを解除するには、フラッシュメモリー14内のデータの全消去を行うことしか方法はない(全アドレスのデータが1となり、プロテクトが外れる。しかしその状態では、プログラム情報等もなくなるので、読み書きされても問題はない)。
【0034】
図3は、本実施形態に係るフラッシュメモリー14内部を示す図である。
例えば、図3に示すように、4ビットマイコンで命令のバス幅が13bit、データの0〜12(D[12:0])のプログラム格納領域40を用いている。但し、16bit幅のフラッシュメモリー14を搭載している。実際は、フラッシュメモリー14は16bit幅で、データが格納されている。CPU12はその16bit幅の内の下位0〜12をデータとして使用している。CPU12は上位13〜15bitの未使用領域42を使用していない。上位13〜15bitはデータが格納されていない。本実施形態では、フラッシュメモリー14のプロテクトビット44をそこの領域で使用するものである。
【0035】
次に、フラッシュメモリー制御シーケンサー回路10の機能概要を説明する。
図4は、本実施形態に係るコマンド解析シーケンスを示す図である。
【0036】
本実施形態に係るフラッシュメモリー制御シーケンサー回路10は、下記に示す機能を有する。フラッシュメモリーライター8から送信されてくる以下のフラッシュメモリー14へのコマンドプロトコルを限定的にサポートし、マイクロコンピューター2に内蔵されているフラッシュメモリー14への書き込み、読み出し、消去動作を行う。例えば、コマンドデータが22Hは、フラッシュメモリー14への書き込みコマンドである。コマンドデータが24Hは、フラッシュメモリー14への読み出しコマンドである。コマンドデータが28Hは、フラッシュメモリー14への消去コマンドである。
【0037】
マイクロコンピューター2へフラッシュメモリーライター8を接続した時は、フラッシュメモリーライター8から供給されるSCLK(3.072MHz)をマイクロコンピューター2の動作クロックとする。従来のCPU12がフラッシュメモリー14への書き込み等を制御する場合、そのCPU12の動作クロック(低速クロック)で制御を行うため、フラッシュメモリー制御シーケンサー回路10を使用する場合に比べて、制御に時間がかかっていた。
【0038】
次に、本実施形態に係るコマンド解析シーケンスの主な状態を説明する。
図4に示すように、S1のイニシャル状態の状態は、フラッシュメモリー制御シーケンサー回路10のイニシャル状態である。フラッシュメモリー制御シーケンサー回路10はフラッシュメモリーライター8が接続しているかを判定している。
【0039】
S2のスタートキャラクター受信待ちの状態では、フラッシュメモリーライター8が接続され、フラッシュメモリーライター8からのデータ受信モードに移行する。はじめの状態は、フラッシュメモリーライター8からのデータ送信を確認するためのデータ群を待っている状態である。
【0040】
S3のコマンド受信完了待ちの状態では、フラッシュメモリーライター8からのデータ送信を認識するためのデータ群を受信し、次に「ライト」、「リード」、「イレース」のうち何を実行するかのコマンドデータを待っている状態である。
【0041】
S4のイレース動作終了待ちの状態では、「イレース」コマンドを受信し、イレースを実施し、フラッシュメモリー14がイレースされるのを待っている状態である。
【0042】
S6のプロテクトビット確認の状態では、フラッシュメモリー14の0番地目を読み出して、15bit目のプロテクトビットを確認し、その値を所定のレジスターに格納する。格納後、次の状態に遷移する。
【0043】
S7のライトデータ受信完了待ちの状態では、「ライト」コマンドを受信し、ライトするためのデータが送信されてくるのを待っている状態である。
【0044】
S11のリードデータ送信完了待ちの状態では、「リード」コマンドを受信し、フラッシュメモリー14からデータをリードし、そのデータを送信している状態である。
【符号の説明】
【0045】
2…マイクロコンピューター(集積回路装置) 8…フラッシュメモリーライター(外部装置) 10…フラッシュメモリー制御シーケンサー回路(制御回路) 12…CPU 14…フラッシュメモリー(不揮発性メモリー) 16…フラッシュメモリー制御信号 18…シリアル通信回路 20…コマンド解析回路 22…フラッシュメモリー制御回路(不揮発性メモリー制御回路) 40…プログラム格納領域 42…未使用領域 44…プロテクトビット。

【特許請求の範囲】
【請求項1】
電気的に書換え可能な不揮発性メモリーと、
外部装置からの指示に基づいて前記不揮発性メモリーを書換え可能にする制御回路と、
を含み、
前記制御回路は、
前記外部装置からのシリアルデータを受信するシリアル通信回路と、
前記受信した前記シリアルデータを解析するコマンド解析回路と、
前記解析された内容に応じて前記不揮発性メモリーの書換えのための手順制御を行う不揮発性メモリー制御回路と、
を含み、
前記不揮発性メモリー制御回路は、前記不揮発性メモリーの所定のビットを読み出し、該不揮発性メモリーの所定のビットにプロテクトデータが書かれている場合は、該不揮発性メモリーの書き込み又は読み出しをプロテクトすることを特徴とする集積回路装置。
【請求項2】
請求項1に記載の集積回路装置において、
前記制御回路は、前記不揮発性メモリーにプロテクトをかける場合、該不揮発性メモリーの所定のアドレス/ビットにプロテクトデータを書き込むことを特徴とする集積回路装置。
【請求項3】
請求項1又は2に記載の集積回路装置において、
前記制御回路は、前記不揮発性メモリーのデータを全消去することで該不揮発性メモリーの所定のビットのプロテクトを解除することを特徴とする集積回路装置。
【請求項4】
請求項1〜3のいずれか一項に記載の集積回路装置において、
CPUをさらに含み、
前記CPUは、前記不揮発性メモリーの所定のビットによらず、該不揮発性メモリーから読み出しを行うことを特徴とする集積回路装置。
【請求項5】
不揮発性メモリーの所定のビットを確認すること、
プロテクト否なら書き込み又は読み出しを行い、プロテクト有なら書き込み又は読み出しを行わないこと、
を含むことを特徴とする集積回路装置の制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate