JP2005025340A - メモリデータ保護装置 - Google Patents
メモリデータ保護装置 Download PDFInfo
- Publication number
- JP2005025340A JP2005025340A JP2003188148A JP2003188148A JP2005025340A JP 2005025340 A JP2005025340 A JP 2005025340A JP 2003188148 A JP2003188148 A JP 2003188148A JP 2003188148 A JP2003188148 A JP 2003188148A JP 2005025340 A JP2005025340 A JP 2005025340A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- access
- area
- cpu
- write
- 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.)
- Pending
Links
Images
Abstract
【課題】同一のメモリチップ内に複数の領域を区切り、各領域に対しリード禁止及びライト禁止の設定を行うことで、悪意のあるプログラムやバグによる不正書き込みと不正読み出しによるデータ破壊の防止を可能とする。
【解決手段】アクセス判定回路3に対し複数のアドレス領域を任意にリード禁止領域又はライト禁止領域に指定する。CPU1がメモリ2にアクセスした際に、CPU1が出力したメモリアクセス指令とメモリアドレスとが、リード禁止領域に対するリードアクセスか、又はライト禁止領域に対するライトアクセスである場合に、メモリコントローラ4に対してチップセレクト信号の生成を抑制させる。これにより、メモリ2における禁止領域でのデータ出力及びデータ書き換えの実行を防止することでメモリデータの保護を行う。
【選択図】 図1
【解決手段】アクセス判定回路3に対し複数のアドレス領域を任意にリード禁止領域又はライト禁止領域に指定する。CPU1がメモリ2にアクセスした際に、CPU1が出力したメモリアクセス指令とメモリアドレスとが、リード禁止領域に対するリードアクセスか、又はライト禁止領域に対するライトアクセスである場合に、メモリコントローラ4に対してチップセレクト信号の生成を抑制させる。これにより、メモリ2における禁止領域でのデータ出力及びデータ書き換えの実行を防止することでメモリデータの保護を行う。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、CPU及びメモリを搭載した処理装置(携帯電話やパソコンなどその種類を問わない)において、悪意のあるプログラムやプログラムのバグによるメモリデータの破壊、あるいは不正読み出しを防止するメモリデータ保護装置に関する。
【0002】
【従来の技術】
携帯電話やパソコン、その他通信、制御、などの分野においてCPUを用いて制御を行うインテリジェントな機器が多数用いられている。これら、CPU(中央演算処理装置)により各種の演算処理を行う装置では、演算に伴うデータの記憶装置としていわゆるRAMなどのメモリが、組み合わせて使用されている。このメモリには演算途中のデータを初めとして、プログラムの一部なども記憶されるので、メモリに保存された記憶内容(以下その内容にかかわらず全てデータまたはメモリデータと言う)を悪意の書き換えプログラムや、正規プログラムに含まれたバグによって書き換えられることのないように、あるいは無制限に読み出されることのないように保護することが必要である。
【0003】
従来、メモリデータの保護を行う技術としては、例えば特許文献1に開示されたものがある。これはメモリにいわゆるライトプロテクト機能があらかじめ実装されていて、このライトプロテクト機能をCPUによって制御することでメモリチップ単位のデータ保護を実現していた。
即ち、前記特許文献1の方式では、プログラムコードとプログラム実行時に動的に書き換えが行われるデータ(以後、ユーザデータと言う)とを、それぞれ別のチップに格納する。そして、ユーザデータが格納されたメモリチップのデータを書き換える、またはこのチップへ書き込む際には、プログラムコードが格納されている方のメモリチップの書き換えは禁止する。この逆に、プログラムコードが格納されているメモリチップの書き換えを行うときには、ユーザデータが格納された方のメモリチップのデータの書き換えは禁止する。こうしてユーザデータの書き換え時にプログラムコードが書き換えられたり、破壊されたりすること、あるいはその逆にプログラムコードが書き換えられる際にはユーザデータの書き換えの動作が行われることを防ごうとするものである。
【0004】
このときの動作について更に詳しく説明する。CPUの指令は直接メモリに送信されるのではなく、CPUとメモリとの間にはメモリコントローラが設置されている。CPUはメモリの書き換えを開始する際には書き替えるべきメモリのアドレスと、書き換え指令信号(以下ライトイネーブル信号という)とを出力する。この時、CPUとメモリの間に存在するメモリコントローラによって書き換えるべきメモリのアドレスがデコードされ、メモリコントローラからこのアドレスに対応するチップセレクト信号が生成される。
アドレスと同時に同CPUから出力されたライトイネーブル信号と、メモリコントローラから出力されたチップセレクト信号の指示とによって、メモリはデータの書き換え処理を開始する。このとき、メモリチップに対してライトプロテクト信号が出力されていた場合、このメモリはライト処理を実行しないためデータの書き換えが禁止され、データは保護される。
【0005】
特許文献1の技術では、メモリにあらかじめライトプロテクト機能が搭載されたメモリを使用しなければならない。また、プログラムコードとユーザデータの例のように、書き換えと書き換え禁止の切り替え対象とするメモリは別のチップに分けておかなければならないので、結果的に使用するメモリチップの枚数が多くなる。また、書き換え(書き込み)からの保護はできるが読み出しの保護にはならないなどの課題があった。
【0006】
【特許文献1】
特開2002−73417号公報 図1、図2
【0007】
【発明が解決しようとする課題】
従来のメモリ保護装置は、メモリにあらかじめ搭載したライトプロテクト機能により書き込みを保護しているので、メモリにあらかじめライトプロテクトの機能が搭載されているメモリしか使用することが出来ないという課題があった。また、書き換えの禁止処置はチップ毎に実施するため、書き換えを実行するメモリと保護するメモリとは別のチップに分離しておく必要があり、そのためメモリの総チップ数が増大する原因となるという課題があった。また、データの不正読みだしを防止することは不可能であるという課題があった。
【0008】
本発明は上記のような課題を解決するためになされたもので、予めプロテクト機能が搭載されていないメモリを使用して、悪意のあるプログラムによる不正書き込みと不正読み出し及びプログラムのバグによるデータ破壊の防止を可能とするとともに、書き込み対象と保護対象のメモリを分離する必要がないメモリデータ保護装置を得ようとするものである。
【0009】
【課題を解決するための手段】
この発明によるメモリデータ保護装置は、CPUと、このCPUとの間でデータを交換するメモリ、
前記CPUから出力された前記メモリへのアクセス指令にもとづき、前記メモリへの信号アクセスを実行するメモリコントローラ、
前記メモリの任意のアドレス領域に対して、アクセスの禁止を指定して、この領域を記憶する禁止領域記憶手段、
前記CPUから出力された前記アクセス指令に含まれたメモリアドレスが前記禁止領域記憶手段の記憶した前記領域に該当するか否かを判定し、前記メモリコントローラに対してアクセスを禁止するアクセス抑制信号を出力するアクセス判定回路を備えたものである。
【0010】
【発明の実施の形態】
実施の形態1.
図1は本発明の実施の形態1のメモリデータ保護装置の構成を示すブロック図である。図において、各ブロックはデータバス10、アドレスバス11、及びその他の信号ライン12で互いに接続されている。CPU1からのメモリアクセスはすべてメモリコントローラ4を経由して行われ、メモリコントローラ4のコントロールによりメモリ2の書き込みと読み出しを行う。
各ブロックの処理装置はCPU1がメモリ2に格納されたプログラムと、このプログラムの実行に必要なデータとを読み出して実行することで制御を行う。
【0011】
アクセス判定回路3は、図2に示す構成を備えている。即ち、本メモリ保護装置の使用者が任意に保護対象としたいメモリ上のアドレス範囲(複数でもよい)を、例えば図4に示すように、そのアドレス範囲に対してリード/ライト許可、リード禁止、ライト禁止、リード/ライト禁止を指定して記憶する禁止領域記憶回路31(禁止領域記憶手段)を備えている。
以下の説明の都合上、この指定範囲をそれぞれリード/ライト許可領域、リード禁止領域、ライト禁止領域、リード/ライト禁止領域と呼ぶ。
また、アクセス判定回路3は、CPU1が出力したアドレスがアクセス判定回路3に記憶しているリード/ライト許可領域、あるいはリード禁止領域、あるいはライト禁止領域あるいはリード/ライト禁止領域のいずれかに該当するか否かを判定する領域判定回路32(領域判定手段)を備えている。
【0012】
アクセス判定回路3の動作について、図3のフローチャートにより説明する。まず、CPU1がメモリアクセスを開始する(ステップ1)。次にアドレス判定回路3の領域判定回路32は、この指令された書き込みと読み出しを行う対象のメモリアドレスが、領域記憶回路31の記憶している各領域に該当するか否かを判定する(ステップ2)。そして該当すると判定した場合には、CPU1が出力したメモリアクセス信号がリードアクセスかライトアクセスかを判定する(ステップ3)。そしてリードアクセスであるならリード禁止設定かどうかを判定する(ステップ4)。またステップ3でライトアクセスであるならライト禁止設定かどうかを判定する(ステップ5)。
【0013】
ステップ4またはステップ5で禁止設定であった場合にはアクセス抑制信号を生成し、この信号をメモリコントローラに対し出力する(ステップ6)。またステップ4または5で許可設定であった場合には(あるいはステップ2でアドレスが、設定された領域に含まれなかった場合も同じ)、メモリコントローラによるメモリアクセスを実行する(ステップ9)。
ステップ6でメモリコントローラに対しアクセス抑制信号が出力された後、ステップ7で割込み信号の生成を行うかどうか判断する(ステップ7)。行うとなればCPUに対し割り込み要求信号を出力する。行わない場合はプログラムを続行する(ステップ10)。
【0014】
メモリコントローラ4はCPU1が出力したアドレスにもとづいて、対応するメモリチップのチップセレクト信号の生成を行うのだが、アクセス判定回路3よりチップセレクト信号の生成を抑制するアクセス抑制信号が入力されていた場合には、チップセレクト信号の生成を行わない。こうしてメモリが意図しないアクセスを受けることから保護される。
【0015】
アクセス抑制信号が出力されたときには、少なくともCPUの指令内容に応じた動作が続行されないわけであるから、CPUの動作としては、不具合が発生したことになる。具体的には、プログラムが意図したデータのリード、ライトが完結していないため、プログラムを継続させた場合に正常な処理が実行できない場合もある。そこで、アクセス判定回路3はアクセス抑制信号を出力したとき、ステップ7でCPU1に対して割り込み信号を出力する。
この割り込み信号により、CPU1は割り込み処理を実行し、プログラムの続行に必要なリカバリー処理を行う。例えば、外部からリセット信号を受けるまでプログラムの動作を停止するとか、また、アクセス抑制信号を出力する原因となったタスクを破棄し、他のタスクに影響を与えないように復帰させる。
割り込みの生成可否は本装置の使用者があらかじめ設定を施すことで選択可能である。
【0016】
次に上記構成によるメモリデータ保護装置の動作を説明する。まず、本装置の使用者は、予めアクセス判定回路3に対し保護の対象とするメモリのアドレス領域を設定する。複数のアドレス領域をプログラムによってリード禁止、ライト禁止、リード/ライト禁止、及び禁止なしの各領域に任意に設定することが可能である。この各アドレス領域は、以下の説明の都合上、ページと呼ぶこととする。即ち各ページごとにリード禁止ページ、ライト禁止ページ或いはリード及びライト禁止ページ、あるいは禁止なしを設定することが可能である。CPU1がメモリ2に対しアクセスを行った場合、アクセス判定回路3ではあらかじめ本装置の使用者が指定したページにCPU1が出力したアドレスが含まれるかを判定する(ステップ2又はステップ5)。このアドレスが本装置の使用者が指定したリード禁止又はライト禁止ページに含まれていた場合、アクセス判定回路3はCPU1が出力したリードイネーブル信号及びライトイネーブル信号によってそのアクセスがリードアクセスかライトアクセスかを判定する(ステップ3またはステップ6)。CPU1が出力したアクセス、リード禁止設定におけるリードアクセス及びライト禁止設定におけるライトアクセスを検出し、メモリコントローラ4に対しチップセレクト信号の生成を抑制するアクセス抑制信号を出力する(ステップ4)。また、アクセス抑制信号を出力した後、ステップ7で割り込み信号を出力する。
【0017】
以上のように、メモリコントローラ4ではCPU1が出力したアドレスに対応するチップセレクト信号を生成する。このメモリコントローラ4ではアクセス判定回路3よりチップセレクト信号の生成を抑制する信号が入力されていた場合に、チップセレクト信号の生成を行わない。メモリ2はチップセレクト信号の入力によってアドレスのデコードを開始するが、メモリコントローラ4のチップセレクト信号生成が抑制された場合、メモリ2にチップセレクト信号が入力されないため、メモリ2はアドレスのデコードを開始出来ずデータの出力及びデータの書き換えが実行されず保護される。
【0018】
実施の形態2.
実施の形態1で説明した機能により、本装置の使用者が1チップのメモリ領域に複数のページを設定し、各ページに対してリード禁止及びライト禁止を設定することを可能とする。ここで、各ページの設定は、プログラムによって動的に変更も可能であるため、プログラムごとにページの設定を変更し、初期に設定したメモリ領域以外、あるいは現に使用するメモリ領域以外のメモリを保護することが可能となる。図4、図5はこの動作を説明するためのメモリ領域の変化を表す図で、アクセス判定回路3で設定するページの設定をプログラムによって動的に変更した様子をあらわしている。各図において、領域Aはライト禁止領域、領域Bはライト・リード許可領域、領域Cはライト・リード禁止領域を表す。領域Aにはプログラムコードを格納、領域Bには実行中のプログラムが使用するデータを格納、領域Cには他のプログラムが使用するデータを格納することを想定する。図4は第1のプログラム動作中の状態、図5は第2のプログラムによる領域を示すもので、領域B及び領域Cが異なるが、これは実行中のプログラムが異なるためであり、プログラムごとに使用するメモリ領域に従いページの設定を変更することで実行中のプログラムが使用する領域以外の誤った領域へのアクセス、或いは悪意のあるプログラムによる意図的な不正読み出しや不正書き込みを防止することが可能となる。
【0019】
実施の形態3.
アクセス判定回路3が割り込み信号を出力(図3のステップ7)したとき、割り込み要求生成回路5では予め本装置の使用者が設定した割り込み要求の生成可否に従い、アクセス判定回路3より割り込み要求生成回路5に対して割り込み生成要求信号が入力された場合に割り込み要求信号の生成を行う。あるいは、予め用意した初期ファイルによりプログラムやデータを初期状態にもどしてもよい。
【0020】
【発明の効果】
本発明のメモリ保護装置は、1チップのメモリ領域に複数のページを設定することで、プログラム実行時に各ページの設定を動的に変更し使用する領域以外からのリード・ライトを禁止することで、悪意のあるプログラムからの不正読み出し及び不正書き込みを防止することが可能となる。同様にプログラムのバグによってプログラムの誤動作や暴走により、本装置の使用者が意図しない領域への書き込みが発生した場合にはデータ破壊を防止し、かつ割り込み要求によってプログラムの処理を修復し復帰させることも可能である。
また、あらかじめメモリに特殊な機能を設けておく必要がないので、汎用のメモリチップを使用することが出来る。さらに、1チップのメモリにプログラムコードとユーザデータを存在させることが可能となるため、従来メモリデータ保護にはプログラムコードとユーザデータを別チップにする必要があったが、これを1チップで実現可能となるためコストを下げることが可能となる。
【図面の簡単な説明】
【図1】実施の形態1のメモリデータ保護装置のブロック図である。
【図2】図1の部分詳細図である。
【図3】図1のメモリデータ保護装置の動作を説明するフローチャートである。
【図4】メモリデータ保護装置の実施例1におけるメモリの保護領域である。
【図5】メモリデータ保護装置の実施例2におけるメモリの保護領域である。
【符号の説明】
1 CPU、 2 メモリ、 3 アクセス判定回路、
4 メモリコントローラ、 5 割り込み要求生成回路、
31 禁止領域記憶回路、 32 領域判定回路、
33 抑制信号出力手段。
【発明の属する技術分野】
本発明は、CPU及びメモリを搭載した処理装置(携帯電話やパソコンなどその種類を問わない)において、悪意のあるプログラムやプログラムのバグによるメモリデータの破壊、あるいは不正読み出しを防止するメモリデータ保護装置に関する。
【0002】
【従来の技術】
携帯電話やパソコン、その他通信、制御、などの分野においてCPUを用いて制御を行うインテリジェントな機器が多数用いられている。これら、CPU(中央演算処理装置)により各種の演算処理を行う装置では、演算に伴うデータの記憶装置としていわゆるRAMなどのメモリが、組み合わせて使用されている。このメモリには演算途中のデータを初めとして、プログラムの一部なども記憶されるので、メモリに保存された記憶内容(以下その内容にかかわらず全てデータまたはメモリデータと言う)を悪意の書き換えプログラムや、正規プログラムに含まれたバグによって書き換えられることのないように、あるいは無制限に読み出されることのないように保護することが必要である。
【0003】
従来、メモリデータの保護を行う技術としては、例えば特許文献1に開示されたものがある。これはメモリにいわゆるライトプロテクト機能があらかじめ実装されていて、このライトプロテクト機能をCPUによって制御することでメモリチップ単位のデータ保護を実現していた。
即ち、前記特許文献1の方式では、プログラムコードとプログラム実行時に動的に書き換えが行われるデータ(以後、ユーザデータと言う)とを、それぞれ別のチップに格納する。そして、ユーザデータが格納されたメモリチップのデータを書き換える、またはこのチップへ書き込む際には、プログラムコードが格納されている方のメモリチップの書き換えは禁止する。この逆に、プログラムコードが格納されているメモリチップの書き換えを行うときには、ユーザデータが格納された方のメモリチップのデータの書き換えは禁止する。こうしてユーザデータの書き換え時にプログラムコードが書き換えられたり、破壊されたりすること、あるいはその逆にプログラムコードが書き換えられる際にはユーザデータの書き換えの動作が行われることを防ごうとするものである。
【0004】
このときの動作について更に詳しく説明する。CPUの指令は直接メモリに送信されるのではなく、CPUとメモリとの間にはメモリコントローラが設置されている。CPUはメモリの書き換えを開始する際には書き替えるべきメモリのアドレスと、書き換え指令信号(以下ライトイネーブル信号という)とを出力する。この時、CPUとメモリの間に存在するメモリコントローラによって書き換えるべきメモリのアドレスがデコードされ、メモリコントローラからこのアドレスに対応するチップセレクト信号が生成される。
アドレスと同時に同CPUから出力されたライトイネーブル信号と、メモリコントローラから出力されたチップセレクト信号の指示とによって、メモリはデータの書き換え処理を開始する。このとき、メモリチップに対してライトプロテクト信号が出力されていた場合、このメモリはライト処理を実行しないためデータの書き換えが禁止され、データは保護される。
【0005】
特許文献1の技術では、メモリにあらかじめライトプロテクト機能が搭載されたメモリを使用しなければならない。また、プログラムコードとユーザデータの例のように、書き換えと書き換え禁止の切り替え対象とするメモリは別のチップに分けておかなければならないので、結果的に使用するメモリチップの枚数が多くなる。また、書き換え(書き込み)からの保護はできるが読み出しの保護にはならないなどの課題があった。
【0006】
【特許文献1】
特開2002−73417号公報 図1、図2
【0007】
【発明が解決しようとする課題】
従来のメモリ保護装置は、メモリにあらかじめ搭載したライトプロテクト機能により書き込みを保護しているので、メモリにあらかじめライトプロテクトの機能が搭載されているメモリしか使用することが出来ないという課題があった。また、書き換えの禁止処置はチップ毎に実施するため、書き換えを実行するメモリと保護するメモリとは別のチップに分離しておく必要があり、そのためメモリの総チップ数が増大する原因となるという課題があった。また、データの不正読みだしを防止することは不可能であるという課題があった。
【0008】
本発明は上記のような課題を解決するためになされたもので、予めプロテクト機能が搭載されていないメモリを使用して、悪意のあるプログラムによる不正書き込みと不正読み出し及びプログラムのバグによるデータ破壊の防止を可能とするとともに、書き込み対象と保護対象のメモリを分離する必要がないメモリデータ保護装置を得ようとするものである。
【0009】
【課題を解決するための手段】
この発明によるメモリデータ保護装置は、CPUと、このCPUとの間でデータを交換するメモリ、
前記CPUから出力された前記メモリへのアクセス指令にもとづき、前記メモリへの信号アクセスを実行するメモリコントローラ、
前記メモリの任意のアドレス領域に対して、アクセスの禁止を指定して、この領域を記憶する禁止領域記憶手段、
前記CPUから出力された前記アクセス指令に含まれたメモリアドレスが前記禁止領域記憶手段の記憶した前記領域に該当するか否かを判定し、前記メモリコントローラに対してアクセスを禁止するアクセス抑制信号を出力するアクセス判定回路を備えたものである。
【0010】
【発明の実施の形態】
実施の形態1.
図1は本発明の実施の形態1のメモリデータ保護装置の構成を示すブロック図である。図において、各ブロックはデータバス10、アドレスバス11、及びその他の信号ライン12で互いに接続されている。CPU1からのメモリアクセスはすべてメモリコントローラ4を経由して行われ、メモリコントローラ4のコントロールによりメモリ2の書き込みと読み出しを行う。
各ブロックの処理装置はCPU1がメモリ2に格納されたプログラムと、このプログラムの実行に必要なデータとを読み出して実行することで制御を行う。
【0011】
アクセス判定回路3は、図2に示す構成を備えている。即ち、本メモリ保護装置の使用者が任意に保護対象としたいメモリ上のアドレス範囲(複数でもよい)を、例えば図4に示すように、そのアドレス範囲に対してリード/ライト許可、リード禁止、ライト禁止、リード/ライト禁止を指定して記憶する禁止領域記憶回路31(禁止領域記憶手段)を備えている。
以下の説明の都合上、この指定範囲をそれぞれリード/ライト許可領域、リード禁止領域、ライト禁止領域、リード/ライト禁止領域と呼ぶ。
また、アクセス判定回路3は、CPU1が出力したアドレスがアクセス判定回路3に記憶しているリード/ライト許可領域、あるいはリード禁止領域、あるいはライト禁止領域あるいはリード/ライト禁止領域のいずれかに該当するか否かを判定する領域判定回路32(領域判定手段)を備えている。
【0012】
アクセス判定回路3の動作について、図3のフローチャートにより説明する。まず、CPU1がメモリアクセスを開始する(ステップ1)。次にアドレス判定回路3の領域判定回路32は、この指令された書き込みと読み出しを行う対象のメモリアドレスが、領域記憶回路31の記憶している各領域に該当するか否かを判定する(ステップ2)。そして該当すると判定した場合には、CPU1が出力したメモリアクセス信号がリードアクセスかライトアクセスかを判定する(ステップ3)。そしてリードアクセスであるならリード禁止設定かどうかを判定する(ステップ4)。またステップ3でライトアクセスであるならライト禁止設定かどうかを判定する(ステップ5)。
【0013】
ステップ4またはステップ5で禁止設定であった場合にはアクセス抑制信号を生成し、この信号をメモリコントローラに対し出力する(ステップ6)。またステップ4または5で許可設定であった場合には(あるいはステップ2でアドレスが、設定された領域に含まれなかった場合も同じ)、メモリコントローラによるメモリアクセスを実行する(ステップ9)。
ステップ6でメモリコントローラに対しアクセス抑制信号が出力された後、ステップ7で割込み信号の生成を行うかどうか判断する(ステップ7)。行うとなればCPUに対し割り込み要求信号を出力する。行わない場合はプログラムを続行する(ステップ10)。
【0014】
メモリコントローラ4はCPU1が出力したアドレスにもとづいて、対応するメモリチップのチップセレクト信号の生成を行うのだが、アクセス判定回路3よりチップセレクト信号の生成を抑制するアクセス抑制信号が入力されていた場合には、チップセレクト信号の生成を行わない。こうしてメモリが意図しないアクセスを受けることから保護される。
【0015】
アクセス抑制信号が出力されたときには、少なくともCPUの指令内容に応じた動作が続行されないわけであるから、CPUの動作としては、不具合が発生したことになる。具体的には、プログラムが意図したデータのリード、ライトが完結していないため、プログラムを継続させた場合に正常な処理が実行できない場合もある。そこで、アクセス判定回路3はアクセス抑制信号を出力したとき、ステップ7でCPU1に対して割り込み信号を出力する。
この割り込み信号により、CPU1は割り込み処理を実行し、プログラムの続行に必要なリカバリー処理を行う。例えば、外部からリセット信号を受けるまでプログラムの動作を停止するとか、また、アクセス抑制信号を出力する原因となったタスクを破棄し、他のタスクに影響を与えないように復帰させる。
割り込みの生成可否は本装置の使用者があらかじめ設定を施すことで選択可能である。
【0016】
次に上記構成によるメモリデータ保護装置の動作を説明する。まず、本装置の使用者は、予めアクセス判定回路3に対し保護の対象とするメモリのアドレス領域を設定する。複数のアドレス領域をプログラムによってリード禁止、ライト禁止、リード/ライト禁止、及び禁止なしの各領域に任意に設定することが可能である。この各アドレス領域は、以下の説明の都合上、ページと呼ぶこととする。即ち各ページごとにリード禁止ページ、ライト禁止ページ或いはリード及びライト禁止ページ、あるいは禁止なしを設定することが可能である。CPU1がメモリ2に対しアクセスを行った場合、アクセス判定回路3ではあらかじめ本装置の使用者が指定したページにCPU1が出力したアドレスが含まれるかを判定する(ステップ2又はステップ5)。このアドレスが本装置の使用者が指定したリード禁止又はライト禁止ページに含まれていた場合、アクセス判定回路3はCPU1が出力したリードイネーブル信号及びライトイネーブル信号によってそのアクセスがリードアクセスかライトアクセスかを判定する(ステップ3またはステップ6)。CPU1が出力したアクセス、リード禁止設定におけるリードアクセス及びライト禁止設定におけるライトアクセスを検出し、メモリコントローラ4に対しチップセレクト信号の生成を抑制するアクセス抑制信号を出力する(ステップ4)。また、アクセス抑制信号を出力した後、ステップ7で割り込み信号を出力する。
【0017】
以上のように、メモリコントローラ4ではCPU1が出力したアドレスに対応するチップセレクト信号を生成する。このメモリコントローラ4ではアクセス判定回路3よりチップセレクト信号の生成を抑制する信号が入力されていた場合に、チップセレクト信号の生成を行わない。メモリ2はチップセレクト信号の入力によってアドレスのデコードを開始するが、メモリコントローラ4のチップセレクト信号生成が抑制された場合、メモリ2にチップセレクト信号が入力されないため、メモリ2はアドレスのデコードを開始出来ずデータの出力及びデータの書き換えが実行されず保護される。
【0018】
実施の形態2.
実施の形態1で説明した機能により、本装置の使用者が1チップのメモリ領域に複数のページを設定し、各ページに対してリード禁止及びライト禁止を設定することを可能とする。ここで、各ページの設定は、プログラムによって動的に変更も可能であるため、プログラムごとにページの設定を変更し、初期に設定したメモリ領域以外、あるいは現に使用するメモリ領域以外のメモリを保護することが可能となる。図4、図5はこの動作を説明するためのメモリ領域の変化を表す図で、アクセス判定回路3で設定するページの設定をプログラムによって動的に変更した様子をあらわしている。各図において、領域Aはライト禁止領域、領域Bはライト・リード許可領域、領域Cはライト・リード禁止領域を表す。領域Aにはプログラムコードを格納、領域Bには実行中のプログラムが使用するデータを格納、領域Cには他のプログラムが使用するデータを格納することを想定する。図4は第1のプログラム動作中の状態、図5は第2のプログラムによる領域を示すもので、領域B及び領域Cが異なるが、これは実行中のプログラムが異なるためであり、プログラムごとに使用するメモリ領域に従いページの設定を変更することで実行中のプログラムが使用する領域以外の誤った領域へのアクセス、或いは悪意のあるプログラムによる意図的な不正読み出しや不正書き込みを防止することが可能となる。
【0019】
実施の形態3.
アクセス判定回路3が割り込み信号を出力(図3のステップ7)したとき、割り込み要求生成回路5では予め本装置の使用者が設定した割り込み要求の生成可否に従い、アクセス判定回路3より割り込み要求生成回路5に対して割り込み生成要求信号が入力された場合に割り込み要求信号の生成を行う。あるいは、予め用意した初期ファイルによりプログラムやデータを初期状態にもどしてもよい。
【0020】
【発明の効果】
本発明のメモリ保護装置は、1チップのメモリ領域に複数のページを設定することで、プログラム実行時に各ページの設定を動的に変更し使用する領域以外からのリード・ライトを禁止することで、悪意のあるプログラムからの不正読み出し及び不正書き込みを防止することが可能となる。同様にプログラムのバグによってプログラムの誤動作や暴走により、本装置の使用者が意図しない領域への書き込みが発生した場合にはデータ破壊を防止し、かつ割り込み要求によってプログラムの処理を修復し復帰させることも可能である。
また、あらかじめメモリに特殊な機能を設けておく必要がないので、汎用のメモリチップを使用することが出来る。さらに、1チップのメモリにプログラムコードとユーザデータを存在させることが可能となるため、従来メモリデータ保護にはプログラムコードとユーザデータを別チップにする必要があったが、これを1チップで実現可能となるためコストを下げることが可能となる。
【図面の簡単な説明】
【図1】実施の形態1のメモリデータ保護装置のブロック図である。
【図2】図1の部分詳細図である。
【図3】図1のメモリデータ保護装置の動作を説明するフローチャートである。
【図4】メモリデータ保護装置の実施例1におけるメモリの保護領域である。
【図5】メモリデータ保護装置の実施例2におけるメモリの保護領域である。
【符号の説明】
1 CPU、 2 メモリ、 3 アクセス判定回路、
4 メモリコントローラ、 5 割り込み要求生成回路、
31 禁止領域記憶回路、 32 領域判定回路、
33 抑制信号出力手段。
Claims (6)
- CPUと、このCPUとの間でデータを交換するメモリ、
前記CPUから出力された前記メモリへのアクセス指令にもとづき、前記メモリへの書き込み、又は、前記メモリからの読み出しを実行するメモリコントローラ、
前記メモリの任意のアドレス領域に対して、このメモリへのアクセスの禁止を指定して、この領域を記憶する禁止領域記憶手段と、前記CPUから出力された前記アクセス指令に含まれたメモリアドレスが前記禁止領域記憶手段の記憶した前記領域に該当するか否かを判定する領域判定手段と、前記領域判定手段が前記該当と判定したとき前記メモリコントローラに対してアクセスを禁止するアクセス抑制信号を出力する抑制信号出力手段とを有するアクセス判定回路を備えたことを特徴とするメモリデータ保護装置。 - CPUと、このCPUとの間でデータを交換するメモリ、
前記CPUから出力された前記メモリへのアクセス指令にもとづき、前記メモリへの書き込み、又は、前記メモリからの読み出しを実行するメモリコントローラ、
前記メモリの任意のアドレス領域に対して、このメモリからのリード禁止、またはこのメモリへのライト禁止を指定するとともに、この指定内容を記憶する禁止領域記憶手段と、前記CPUから出力された前記アクセス指令に含まれたメモリアドレスが前記禁止領域記憶手段の記憶した前記リード禁止の領域、またはライト禁止の領域に該当するか否かを判定する領域判定手段と、前記領域判定手段が前記該当と判定したとき前記メモリコントローラに対してリード禁止領域に対するリードアクセス、またはライト禁止領域に対するライトアクセスを禁止するアクセス抑制信号を出力する抑制信号出力手段とを有するアクセス判定回路を備えたことを特徴とするメモリデータ保護装置。 - 前記メモリコントローラは、前記メモリアクセス信号を受けたとき前記メモリの該当する領域を選択するチップセレクト信号を生成し、
前記アクセス抑制信号は、前記メモリコントローラに対し前記チップセレクト信号の生成を抑制するものであることを特徴とする請求項2に記載のメモリデータ保護装置。 - 前記アクセス判定回路は、前記アクセス抑制信号を出力したとき、前記リード禁止領域に対するリードアクセス、又は前記ライト禁止領域設定におけるライトアクセスのいずれであるかを示すためのステータスレジスタと割り込み要求の生成可否を設定するレジスタとを搭載し、前記割り込み要求の生成可否の設定に従い、前記CPUへ割り込み要求信号を出力することを特徴とする請求項2記載のメモリデータ保護装置。
- 前記CPUは、前記割り込み要求信号により、割り込み処理を実行することを特徴とする請求項4に記載のメモリデータ保護装置。
- 前記禁止領域記憶手段は、記憶した任意の領域及び各領域に対するライト禁止、リード禁止の設定を前記CPUを動作させるプログラムによって書き換えられることを特徴とする請求項1に記載のメモリデータ保護装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003188148A JP2005025340A (ja) | 2003-06-30 | 2003-06-30 | メモリデータ保護装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003188148A JP2005025340A (ja) | 2003-06-30 | 2003-06-30 | メモリデータ保護装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005025340A true JP2005025340A (ja) | 2005-01-27 |
Family
ID=34186777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003188148A Pending JP2005025340A (ja) | 2003-06-30 | 2003-06-30 | メモリデータ保護装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005025340A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013118487A (ja) * | 2011-12-02 | 2013-06-13 | Yamaha Corp | デジタルオーディオミキサ |
CN109343794A (zh) * | 2018-09-12 | 2019-02-15 | 杭州晨晓科技股份有限公司 | 一种存储器的配置方法及配置装置 |
-
2003
- 2003-06-30 JP JP2003188148A patent/JP2005025340A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013118487A (ja) * | 2011-12-02 | 2013-06-13 | Yamaha Corp | デジタルオーディオミキサ |
CN109343794A (zh) * | 2018-09-12 | 2019-02-15 | 杭州晨晓科技股份有限公司 | 一种存储器的配置方法及配置装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2513909C1 (ru) | Ограничение областей памяти для считывания команд в зависимости от аппаратного режима и флага безопасности | |
US6986006B2 (en) | Page granular curtained memory via mapping control | |
TWI328182B (en) | Computer system having memory protection function | |
JP5242747B2 (ja) | システム管理割り込みを再命令し、仮想マシンコンテナを生成することによる、信頼性のないシステム管理コードに対する保護方法 | |
JP4759059B2 (ja) | メモリページをプログラムに対応付けるページカラーリング | |
JP4939382B2 (ja) | 情報処理装置及びそのプログラム実行制御方法 | |
WO2004107176A1 (en) | Method and apparatus for determining access permission | |
JP5582971B2 (ja) | メモリ保護方法および情報処理装置 | |
JP2007249323A (ja) | マイクロコンピュータ | |
JP2009140256A (ja) | データ処理装置及びアドレス空間保護方法 | |
JP2009157542A (ja) | 情報処理装置及びそのスタックポインタ更新方法 | |
US9734326B2 (en) | Dynamic interrupt stack protection | |
KR20210060443A (ko) | 스택 포인터의 검증 | |
CN112818327A (zh) | 基于TrustZone的用户级代码和数据安全可信保护方法及装置 | |
JP2005316599A (ja) | 割込制御装置 | |
JP2010186386A (ja) | プロセッサ | |
JP2006338426A (ja) | 計算機システム | |
JP2005025340A (ja) | メモリデータ保護装置 | |
JP4335940B2 (ja) | データ処理装置及びデータ処理装置における周辺装置保護方法 | |
JP2005209178A (ja) | メモリ保護装置、メモリ保護方法及びメモリ保護プログラム | |
EP0864983A2 (en) | Computer system including memory adress management circuit for protecting memory from illegal writing | |
JP2011150457A (ja) | 情報処理装置およびメモリアクセス制御方法 | |
JPH05100827A (ja) | パーソナルコンピユータ | |
JPH10240623A (ja) | 読み出し保護機能付きマイクロコンピュータ | |
JP2005235071A (ja) | 情報処理装置、情報処理方法、プログラム及び記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20041007 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060113 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090616 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20091117 |