(57)【要約】【課題】同一のメモリチップ内に複数の領域を区切り、各領域に対しリード禁止及びライト禁止の設定を行うことで、悪意のあるプログラムやバグによる不正書き込みと不正読み出しによるデータ破壊の防止を可能とする。【解決手段】アクセス判定回路３に対し複数のアドレス領域を任意にリード禁止領域又はライト禁止領域に指定する。ＣＰＵ１がメモリ２にアクセスした際に、ＣＰＵ１が出力したメモリアクセス指令とメモリアドレスとが、リード禁止領域に対するリードアクセスか、又はライト禁止領域に対するライトアクセスである場合に、メモリコントローラ４に対してチップセレクト信号の生成を抑制させる。これにより、メモリ２における禁止領域でのデータ出力及びデータ書き換えの実行を防止することでメモリデータの保護を行う。【選択図】        図１
2005025340.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、このＣＰＵとの間でデータを交換するメモリ、
前記ＣＰＵから出力された前記メモリへのアクセス指令にもとづき、前記メモリへの書き込み、又は、前記メモリからの読み出しを実行するメモリコントローラ、
前記メモリの任意のアドレス領域に対して、このメモリへのアクセスの禁止を指定して、この領域を記憶する禁止領域記憶手段と、前記ＣＰＵから出力された前記アクセス指令に含まれたメモリアドレスが前記禁止領域記憶手段の記憶した前記領域に該当するか否かを判定する領域判定手段と、前記領域判定手段が前記該当と判定したとき前記メモリコントローラに対してアクセスを禁止するアクセス抑制信号を出力する抑制信号出力手段とを有するアクセス判定回路を備えたことを特徴とするメモリデータ保護装置。
【請求項２】
ＣＰＵと、このＣＰＵとの間でデータを交換するメモリ、
前記ＣＰＵから出力された前記メモリへのアクセス指令にもとづき、前記メモリへの書き込み、又は、前記メモリからの読み出しを実行するメモリコントローラ、
前記メモリの任意のアドレス領域に対して、このメモリからのリード禁止、またはこのメモリへのライト禁止を指定するとともに、この指定内容を記憶する禁止領域記憶手段と、前記ＣＰＵから出力された前記アクセス指令に含まれたメモリアドレスが前記禁止領域記憶手段の記憶した前記リード禁止の領域、またはライト禁止の領域に該当するか否かを判定する領域判定手段と、前記領域判定手段が前記該当と判定したとき前記メモリコントローラに対してリード禁止領域に対するリードアクセス、またはライト禁止領域に対するライトアクセスを禁止するアクセス抑制信号を出力する抑制信号出力手段とを有するアクセス判定回路を備えたことを特徴とするメモリデータ保護装置。
【請求項３】
前記メモリコントローラは、前記メモリアクセス信号を受けたとき前記メモリの該当する領域を選択するチップセレクト信号を生成し、
前記アクセス抑制信号は、前記メモリコントローラに対し前記チップセレクト信号の生成を抑制するものであることを特徴とする請求項２に記載のメモリデータ保護装置。
【請求項４】
前記アクセス判定回路は、前記アクセス抑制信号を出力したとき、前記リード禁止領域に対するリードアクセス、又は前記ライト禁止領域設定におけるライトアクセスのいずれであるかを示すためのステータスレジスタと割り込み要求の生成可否を設定するレジスタとを搭載し、前記割り込み要求の生成可否の設定に従い、前記ＣＰＵへ割り込み要求信号を出力することを特徴とする請求項２記載のメモリデータ保護装置。
【請求項５】
前記ＣＰＵは、前記割り込み要求信号により、割り込み処理を実行することを特徴とする請求項４に記載のメモリデータ保護装置。
【請求項６】
前記禁止領域記憶手段は、記憶した任意の領域及び各領域に対するライト禁止、リード禁止の設定を前記ＣＰＵを動作させるプログラムによって書き換えられることを特徴とする請求項１に記載のメモリデータ保護装置。
【発明の詳細な説明】
【０００１】

【発明の属する技術分野】
本発明は、ＣＰＵ及びメモリを搭載した処理装置（携帯電話やパソコンなどその種類を問わない）において、悪意のあるプログラムやプログラムのバグによるメモリデータの破壊、あるいは不正読み出しを防止するメモリデータ保護装置に関する。
【０００２】
【従来の技術】
携帯電話やパソコン、その他通信、制御、などの分野においてＣＰＵを用いて制御を行うインテリジェントな機器が多数用いられている。これら、ＣＰＵ（中央演算処理装置）により各種の演算処理を行う装置では、演算に伴うデータの記憶装置としていわゆるＲＡＭなどのメモリが、組み合わせて使用されている。このメモリには演算途中のデータを初めとして、プログラムの一部なども記憶されるので、メモリに保存された記憶内容（以下その内容にかかわらず全てデータまたはメモリデータと言う）を悪意の書き換えプログラムや、正規プログラムに含まれたバグによって書き換えられることのないように、あるいは無制限に読み出されることのないように保護することが必要である。
【０００３】
従来、メモリデータの保護を行う技術としては、例えば特許文献１に開示されたものがある。これはメモリにいわゆるライトプロテクト機能があらかじめ実装されていて、このライトプロテクト機能をＣＰＵによって制御することでメモリチップ単位のデータ保護を実現していた。
即ち、前記特許文献１の方式では、プログラムコードとプログラム実行時に動的に書き換えが行われるデータ（以後、ユーザデータと言う）とを、それぞれ別のチップに格納する。そして、ユーザデータが格納されたメモリチップのデータを書き換える、またはこのチップへ書き込む際には、プログラムコードが格納されている方のメモリチップの書き換えは禁止する。この逆に、プログラムコードが格納されているメモリチップの書き換えを行うときには、ユーザデータが格納された方のメモリチップのデータの書き換えは禁止する。こうしてユーザデータの書き換え時にプログラムコードが書き換えられたり、破壊されたりすること、あるいはその逆にプログラムコードが書き換えられる際にはユーザデータの書き換えの動作が行われることを防ごうとするものである。
【０００４】
このときの動作について更に詳しく説明する。ＣＰＵの指令は直接メモリに送信されるのではなく、ＣＰＵとメモリとの間にはメモリコントローラが設置されている。ＣＰＵはメモリの書き換えを開始する際には書き替えるべきメモリのアドレスと、書き換え指令信号（以下ライトイネーブル信号という）とを出力する。この時、ＣＰＵとメモリの間に存在するメモリコントローラによって書き換えるべきメモリのアドレスがデコードされ、メモリコントローラからこのアドレスに対応するチップセレクト信号が生成される。
アドレスと同時に同ＣＰＵから出力されたライトイネーブル信号と、メモリコントローラから出力されたチップセレクト信号の指示とによって、メモリはデータの書き換え処理を開始する。このとき、メモリチップに対してライトプロテクト信号が出力されていた場合、このメモリはライト処理を実行しないためデータの書き換えが禁止され、データは保護される。
【０００５】
特許文献１の技術では、メモリにあらかじめライトプロテクト機能が搭載されたメモリを使用しなければならない。また、プログラムコードとユーザデータの例のように、書き換えと書き換え禁止の切り替え対象とするメモリは別のチップに分けておかなければならないので、結果的に使用するメモリチップの枚数が多くなる。また、書き換え（書き込み）からの保護はできるが読み出しの保護にはならないなどの課題があった。
【０００６】
【特許文献１】
特開２００２−７３４１７号公報  図１、図２
【０００７】
【発明が解決しようとする課題】
従来のメモリ保護装置は、メモリにあらかじめ搭載したライトプロテクト機能により書き込みを保護しているので、メモリにあらかじめライトプロテクトの機能が搭載されているメモリしか使用することが出来ないという課題があった。また、書き換えの禁止処置はチップ毎に実施するため、書き換えを実行するメモリと保護するメモリとは別のチップに分離しておく必要があり、そのためメモリの総チップ数が増大する原因となるという課題があった。また、データの不正読みだしを防止することは不可能であるという課題があった。
【０００８】
本発明は上記のような課題を解決するためになされたもので、予めプロテクト機能が搭載されていないメモリを使用して、悪意のあるプログラムによる不正書き込みと不正読み出し及びプログラムのバグによるデータ破壊の防止を可能とするとともに、書き込み対象と保護対象のメモリを分離する必要がないメモリデータ保護装置を得ようとするものである。
【０００９】

【課題を解決するための手段】
この発明によるメモリデータ保護装置は、ＣＰＵと、このＣＰＵとの間でデータを交換するメモリ、
前記ＣＰＵから出力された前記メモリへのアクセス指令にもとづき、前記メモリへの信号アクセスを実行するメモリコントローラ、
前記メモリの任意のアドレス領域に対して、アクセスの禁止を指定して、この領域を記憶する禁止領域記憶手段、
前記ＣＰＵから出力された前記アクセス指令に含まれたメモリアドレスが前記禁止領域記憶手段の記憶した前記領域に該当するか否かを判定し、前記メモリコントローラに対してアクセスを禁止するアクセス抑制信号を出力するアクセス判定回路を備えたものである。
【００１０】
【発明の実施の形態】
実施の形態１．
図１は本発明の実施の形態１のメモリデータ保護装置の構成を示すブロック図である。図において、各ブロックはデータバス１０、アドレスバス１１、及びその他の信号ライン１２で互いに接続されている。ＣＰＵ１からのメモリアクセスはすべてメモリコントローラ４を経由して行われ、メモリコントローラ４のコントロールによりメモリ２の書き込みと読み出しを行う。
各ブロックの処理装置はＣＰＵ１がメモリ２に格納されたプログラムと、このプログラムの実行に必要なデータとを読み出して実行することで制御を行う。
【００１１】
アクセス判定回路３は、図２に示す構成を備えている。即ち、本メモリ保護装置の使用者が任意に保護対象としたいメモリ上のアドレス範囲（複数でもよい）を、例えば図４に示すように、そのアドレス範囲に対してリード／ライト許可、リード禁止、ライト禁止、リード／ライト禁止を指定して記憶する禁止領域記憶回路３１（禁止領域記憶手段）を備えている。
以下の説明の都合上、この指定範囲をそれぞれリード／ライト許可領域、リード禁止領域、ライト禁止領域、リード／ライト禁止領域と呼ぶ。
また、アクセス判定回路３は、ＣＰＵ１が出力したアドレスがアクセス判定回路３に記憶しているリード／ライト許可領域、あるいはリード禁止領域、あるいはライト禁止領域あるいはリード／ライト禁止領域のいずれかに該当するか否かを判定する領域判定回路３２（領域判定手段）を備えている。
【００１２】
アクセス判定回路３の動作について、図３のフローチャートにより説明する。まず、ＣＰＵ１がメモリアクセスを開始する（ステップ１）。次にアドレス判定回路３の領域判定回路３２は、この指令された書き込みと読み出しを行う対象のメモリアドレスが、領域記憶回路３１の記憶している各領域に該当するか否かを判定する（ステップ２）。そして該当すると判定した場合には、ＣＰＵ１が出力したメモリアクセス信号がリードアクセスかライトアクセスかを判定する（ステップ３）。そしてリードアクセスであるならリード禁止設定かどうかを判定する（ステップ４）。またステップ３でライトアクセスであるならライト禁止設定かどうかを判定する（ステップ５）。
【００１３】
ステップ４またはステップ５で禁止設定であった場合にはアクセス抑制信号を生成し、この信号をメモリコントローラに対し出力する（ステップ６）。またステップ４または５で許可設定であった場合には（あるいはステップ２でアドレスが、設定された領域に含まれなかった場合も同じ）、メモリコントローラによるメモリアクセスを実行する（ステップ９）。
ステップ６でメモリコントローラに対しアクセス抑制信号が出力された後、ステップ７で割込み信号の生成を行うかどうか判断する（ステップ７）。行うとなればＣＰＵに対し割り込み要求信号を出力する。行わない場合はプログラムを続行する（ステップ１０）。
【００１４】
メモリコントローラ４はＣＰＵ１が出力したアドレスにもとづいて、対応するメモリチップのチップセレクト信号の生成を行うのだが、アクセス判定回路３よりチップセレクト信号の生成を抑制するアクセス抑制信号が入力されていた場合には、チップセレクト信号の生成を行わない。こうしてメモリが意図しないアクセスを受けることから保護される。
【００１５】
アクセス抑制信号が出力されたときには、少なくともＣＰＵの指令内容に応じた動作が続行されないわけであるから、ＣＰＵの動作としては、不具合が発生したことになる。具体的には、プログラムが意図したデータのリード、ライトが完結していないため、プログラムを継続させた場合に正常な処理が実行できない場合もある。そこで、アクセス判定回路３はアクセス抑制信号を出力したとき、ステップ７でＣＰＵ１に対して割り込み信号を出力する。
この割り込み信号により、ＣＰＵ１は割り込み処理を実行し、プログラムの続行に必要なリカバリー処理を行う。例えば、外部からリセット信号を受けるまでプログラムの動作を停止するとか、また、アクセス抑制信号を出力する原因となったタスクを破棄し、他のタスクに影響を与えないように復帰させる。
割り込みの生成可否は本装置の使用者があらかじめ設定を施すことで選択可能である。
【００１６】
次に上記構成によるメモリデータ保護装置の動作を説明する。まず、本装置の使用者は、予めアクセス判定回路３に対し保護の対象とするメモリのアドレス領域を設定する。複数のアドレス領域をプログラムによってリード禁止、ライト禁止、リード／ライト禁止、及び禁止なしの各領域に任意に設定することが可能である。この各アドレス領域は、以下の説明の都合上、ページと呼ぶこととする。即ち各ページごとにリード禁止ページ、ライト禁止ページ或いはリード及びライト禁止ページ、あるいは禁止なしを設定することが可能である。ＣＰＵ１がメモリ２に対しアクセスを行った場合、アクセス判定回路３ではあらかじめ本装置の使用者が指定したページにＣＰＵ１が出力したアドレスが含まれるかを判定する（ステップ２又はステップ５）。このアドレスが本装置の使用者が指定したリード禁止又はライト禁止ページに含まれていた場合、アクセス判定回路３はＣＰＵ１が出力したリードイネーブル信号及びライトイネーブル信号によってそのアクセスがリードアクセスかライトアクセスかを判定する（ステップ３またはステップ６）。ＣＰＵ１が出力したアクセス、リード禁止設定におけるリードアクセス及びライト禁止設定におけるライトアクセスを検出し、メモリコントローラ４に対しチップセレクト信号の生成を抑制するアクセス抑制信号を出力する（ステップ４）。また、アクセス抑制信号を出力した後、ステップ７で割り込み信号を出力する。
【００１７】
以上のように、メモリコントローラ４ではＣＰＵ１が出力したアドレスに対応するチップセレクト信号を生成する。このメモリコントローラ４ではアクセス判定回路３よりチップセレクト信号の生成を抑制する信号が入力されていた場合に、チップセレクト信号の生成を行わない。メモリ２はチップセレクト信号の入力によってアドレスのデコードを開始するが、メモリコントローラ４のチップセレクト信号生成が抑制された場合、メモリ２にチップセレクト信号が入力されないため、メモリ２はアドレスのデコードを開始出来ずデータの出力及びデータの書き換えが実行されず保護される。
【００１８】
実施の形態２．
実施の形態１で説明した機能により、本装置の使用者が１チップのメモリ領域に複数のページを設定し、各ページに対してリード禁止及びライト禁止を設定することを可能とする。ここで、各ページの設定は、プログラムによって動的に変更も可能であるため、プログラムごとにページの設定を変更し、初期に設定したメモリ領域以外、あるいは現に使用するメモリ領域以外のメモリを保護することが可能となる。図４、図５はこの動作を説明するためのメモリ領域の変化を表す図で、アクセス判定回路３で設定するページの設定をプログラムによって動的に変更した様子をあらわしている。各図において、領域Ａはライト禁止領域、領域Ｂはライト・リード許可領域、領域Ｃはライト・リード禁止領域を表す。領域Ａにはプログラムコードを格納、領域Ｂには実行中のプログラムが使用するデータを格納、領域Ｃには他のプログラムが使用するデータを格納することを想定する。図４は第１のプログラム動作中の状態、図５は第２のプログラムによる領域を示すもので、領域Ｂ及び領域Ｃが異なるが、これは実行中のプログラムが異なるためであり、プログラムごとに使用するメモリ領域に従いページの設定を変更することで実行中のプログラムが使用する領域以外の誤った領域へのアクセス、或いは悪意のあるプログラムによる意図的な不正読み出しや不正書き込みを防止することが可能となる。
【００１９】
実施の形態３．
アクセス判定回路３が割り込み信号を出力（図３のステップ７）したとき、割り込み要求生成回路５では予め本装置の使用者が設定した割り込み要求の生成可否に従い、アクセス判定回路３より割り込み要求生成回路５に対して割り込み生成要求信号が入力された場合に割り込み要求信号の生成を行う。あるいは、予め用意した初期ファイルによりプログラムやデータを初期状態にもどしてもよい。
【００２０】
【発明の効果】
本発明のメモリ保護装置は、１チップのメモリ領域に複数のページを設定することで、プログラム実行時に各ページの設定を動的に変更し使用する領域以外からのリード・ライトを禁止することで、悪意のあるプログラムからの不正読み出し及び不正書き込みを防止することが可能となる。同様にプログラムのバグによってプログラムの誤動作や暴走により、本装置の使用者が意図しない領域への書き込みが発生した場合にはデータ破壊を防止し、かつ割り込み要求によってプログラムの処理を修復し復帰させることも可能である。
また、あらかじめメモリに特殊な機能を設けておく必要がないので、汎用のメモリチップを使用することが出来る。さらに、１チップのメモリにプログラムコードとユーザデータを存在させることが可能となるため、従来メモリデータ保護にはプログラムコードとユーザデータを別チップにする必要があったが、これを１チップで実現可能となるためコストを下げることが可能となる。
【図面の簡単な説明】
【図１】実施の形態１のメモリデータ保護装置のブロック図である。
【図２】図１の部分詳細図である。
【図３】図１のメモリデータ保護装置の動作を説明するフローチャートである。
【図４】メモリデータ保護装置の実施例１におけるメモリの保護領域である。
【図５】メモリデータ保護装置の実施例２におけるメモリの保護領域である。
【符号の説明】
１  ＣＰＵ、        ２          メモリ、    ３  アクセス判定回路、
４    メモリコントローラ、      ５        割り込み要求生成回路、
３１  禁止領域記憶回路、    ３２  領域判定回路、
３３  抑制信号出力手段。
【図１】
2005025340.tif 000003
【図２】
2005025340.tif 000004
【図３】
2005025340.tif 000005
【図４】
2005025340.tif 000006
【図５】
2005025340.tif 000007