JP3918089B2 - メモリ保護回路 - Google Patents

メモリ保護回路 Download PDF

Info

Publication number
JP3918089B2
JP3918089B2 JP2002020189A JP2002020189A JP3918089B2 JP 3918089 B2 JP3918089 B2 JP 3918089B2 JP 2002020189 A JP2002020189 A JP 2002020189A JP 2002020189 A JP2002020189 A JP 2002020189A JP 3918089 B2 JP3918089 B2 JP 3918089B2
Authority
JP
Japan
Prior art keywords
data
processor
circuit
control register
memory
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
JP2002020189A
Other languages
English (en)
Other versions
JP2003223362A (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.)
NEC Corp
Original Assignee
NEC 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
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2002020189A priority Critical patent/JP3918089B2/ja
Publication of JP2003223362A publication Critical patent/JP2003223362A/ja
Application granted granted Critical
Publication of JP3918089B2 publication Critical patent/JP3918089B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、メモリ保護に関し、特に、不揮発性メモリに格納されたBIOSなどのシステム情報が非正常なアクセスによって、更新あるいは破壊されることを防ぐメモリ保護回路に関する。
【0002】
【従来の技術】
メモリ保護には、さまざまな方式がある。例えば、ソフトウェア手段とハードウェア手段とを組み合わせて、メモリへのアクセスを2段構えにする。ソフトウェア見えのレジスタにアクセス許可フラグを設け、ソフトウェア手段で該許可フラグをアクセス許可(イネーブル)にしてからメモリにアクセスし、アクセス終了後にアクセス禁止(ディセーブル)に戻す処理を追加して、非正常なメモリアクセスを排除する。つまり、単にメモリにアクセスが発生しても、許可フラグがイネーブルでない限りそのアクセスが無効となり、予期せぬ非正常なアクセスからシステム情報を保護することができる。
【0003】
この従来技術の構成を示す図10を参照して説明する。システム情報が格納される不揮発性メモリ1は、プロセッサ2からプロセッサ制御回路3を通してアクセスされる。プロセッサ制御回路3には、プロセッサ2からのアドレス/コマンドを格納するアドレス/コマンドバッファ4と、ライトデータを格納するライトデータバッファ5と、プロセッサ2へのリードデータを格納するリードデータバッファ6と、アドレスとコマンドをデコードするデコーダ7と、リードデータバッファ6に格納するリードデータを選択するデータセレクタ8と、不揮発性メモリ1に対する非正常アクセスを防止するメモリ保護回路18と、メモリ保護回路18に含まれるアクセスを許可/不許可する許可フラグ11と、不揮発性メモリ1へのアクセスを制御するメモリ制御回路10と、より構成される。
【0004】
このプロセッサ制御回路3の動作の流れを図11を参照して説明する。まず不揮発性メモリ1へのアクセスを許可するために許可フラグ11にライトを行う(ステップ301)。このとき、ライトデータはイネーブルを設定するデータである。続いて、許可フラグ11をリードしてイネーブルに設定されていることを確認する(ステップ302)。イネーブルの確認後、不揮発性メモリ1へのアクセスを開始し(ステップ303)、アクセスが終了すると(ステップ304のyes)、再び許可フラグへライトを行い、許可フラグ11にディセーブルを設定する(ステップ305)。
【0005】
この一連の動作を図10及び図11を援用して更に具体的に説明すると、プロセッサ2は許可フラグ11へのライトを行う(ステップ301)ために、アドレスとコマンドおよびライトデータを出力し、アドレスとコマンドは、アドレス/コマンドバッファ4に、ライトデータはライトデータバッファ5に、それぞれ格納される。デコーダ7によりアドレスとコマンドはデコードされ、許可フラグ11へのライトで、かつライトデータがイネーブルを示していれば、許可フラグ11をイネーブルに設定する。続けて、プロセッサ2は、許可フラグ11へのリードを行う(ステップ302)ために、アドレスとコマンドを出力する。アドレスとコマンドは、アドレス/コマンドバッファ4に格納され、デコーダ7によりデコードされる。デコード結果が許可フラグ11へのリードならば、データセレクタ8は、許可フラグ11からのデータを選択してリードデータバッファ6に格納し、プロセッサ2に返送する。その後、プロセッサ2は不揮発性メモリ1へのアクセス(ステップ303)を開始する。ライトアクセスであれば、アドレスとコマンドをアドレス/コマンドバッファ4に、ライトデータをライトデータバッファ5に格納する。アドレスとコマンドをデコーダ7でデコードした結果、不揮発性メモリ1へのライトであればメモリ制御回路10にライトアクセスを通知する。ここで許可フラグ11がイネーブルになっているので、メモリ制御回路10は、不揮発性メモリ1に対してライトを行い、ライトデータバッファ5からライトデータを出力する。一連のアクセスが終了すると(ステップ304のyes)、プロセッサ2は許可フラグ11をディセーブルにするためのライトを行い、同様な手順で許可フラグ11をディセーブルに設定する(ステップ305)。
【0006】
以上で説明したように許可フラグ11という非正常なアクセスの抑止手段を設けて、直接システム情報へのアクセスができないようにしている。しかし、許可フラグ11が、プロセッサからのライト動作で更新されるため、プログラムが原因の、イネーブルとディセーブルの切り替え制御ミスあるいは暴走による許可フラグ11の非正常な更新が発生すると、この抑止手段が外れ、システム情報へのアクセスが可能となってしまう。
【0007】
更に、従来技術の特開平3−278255号公報によれば、メモリに対するアクセスをイネーブルあるいはディセーブルにするデータの保持手段を設けて、該保持手段をイネーブルにした次のサイクルのメモリアクセスをイネーブルにし、該サイクルの終わりで、該データをディセーブルにし、メモリアクセスを不許可する発明が説明されている。この発明では、プログラムの非正常な動作で、該保持手段をイネーブル状態にするデータ書き込みが行われても、正常な書き込みと判定されるのでメモリ保護が十分機能しない。
【0008】
【発明が解決しようとする課題】
コンピュータシステムにおいて、OSなど有償のシステム情報を不揮発性メモリ等のAC電源を落としても消失しない記憶素子に保持している場合、システム情報の破壊あるいは消失により、システムそのものの立ち上げができなくなることがある。記憶素子そのものあるいはその他ハードウェアの故障により、システム情報が破壊あるいは消失することはあるが、ソフトウェアのプログラムミスによる誤動作または意図的あるいは偶発的な侵入などの非正常なアクセスによってシステム情報を破壊することもある。そのため、メモリに対する非正常なアクセスによるシステム情報の破壊を防ぐ保護機能を設ける。
【0009】
従来の保護機能は、保護される領域あるいは保護される対象にアクセスする手続き内に入り込まれる非正常な事態を想定していない。しかし、この非正常な事態が、作為あるいは偶発または外乱によって生じたとき、保護対象が破壊されることが発生する。
【0010】
そこで、アクセス手続きに、ソフトウェア見えのレジスタを設けて、該レジスタをアクセスの許可フラグとして機能させて、許可フラグが許可状態のとき、アクセスできるようにすることの外に、所定のレジスタに設定されているデータを演算回路で処理した演算結果と、該データを正常なソフトウェアのアクセス手段が読み取って演算処理を施した結果と、を比較して一致したとき、許可フラグを許可状態に設定する。つまり、ソフトウェアのアクセス手段が出力する期待値と、許可フラグ側のハードウェア手段が出力する期待値と、が一致することで、メモリのアクセス手続きが正常に作動していることを保証する。
【0011】
この発明の目的は、不揮発性メモリに格納されているシステム情報を保護するため、該メモリに対する非正常なアクセスを排除するメモリ保護回路にある。
【0012】
【課題を解決するための手段】
そのため、この発明の、システム情報を格納する不揮発性メモリと、不揮発性メモリにアクセスして、システム情報をリードライトするプロセッサと、前記プロセッサから不揮発性メモリへのアクセスを制御するプロセッサ制御回路と、を備え、前記プロセッサ制御回路が、不揮発性メモリへのアクセスに対してメモリを保護するメモリ保護回路と、プロセッサから送付されるアドレスあるいはコマンドを受け付けるアドレス/コマンドバッファと、プロセッサから送付されるライトデータを受け付けるライトデータバッファと、アドレス/コマンドバッファのデータをデコードするデコーダと、前記デコーダの出力によって、前記メモリ保護回路または不揮発性メモリの出力のいずれか一つを選択するデータセレクタと、前記データセレクタの出力を受け取るリードバッファと、前記デコーダからのアドレス及びコマンド並びに前記メモリ保護回路によって、不揮発性メモリに対するリードライトを実施するメモリ制御回路と、を備えてメモリ保護を実施するメモリ保護回路において、前記メモリ保護回路が、前記プロセッサの前記不揮発性メモリに対するアクセスを許可あるいは不許可にする許可フラグと、前記プロセッサが前記メモリ保護回路の制御レジスタのデータを読み出して施した演算処理結果データと、前記メモリ保護回路自身が前記制御レジスタに保持するデータに演算を施した出力データと、を比較して前記アクセスが正常かあるいは非正常かを判定して前記許可フラグを設定するフラグ制御回路と、を備え、てなる。
【0013】
更に、前記フラグ制御回路は、前記プロセッサからライトデータバッファを通じて送付される初期設定のデータあるいは前記プロセッサの演算処理結果のデータを一時記憶する一時バッファと、一時バッファのデータを記憶する制御レジスタと、前記制御レジスタのデータあるいは前記一時バッファのデータを選択するセレクタと、前記制御レジスタのデータを演算処理する演算回路と、前記演算回路の出力データと前記プロセッサからの前記演算処理結果データとを比較して、一致しているとき、前記許可フラグを許可状態にし、前記制御レジスタを前記セレクタを通じて前記一時バッファのデータで更新し、不一致のとき、前記許可フラグの状態を変更せずに前記制御レジスタのデータを前記セレクタを通じて再格納する比較回路と、を備えることを特徴とする。
【0014】
更に、前記演算回路は、前記制御レジスタのデータに対して、所定値を加算する回路であることを特徴とする。
【0015】
更に、前記演算回路は、前記制御レジスタのデータに対して、シフト演算を施す回路であることを特徴とする。
【0016】
更に、前記フラグ制御回路は、前記プロセッサからライトデータバッファを通じて送付される初期設定のデータあるいは前記プロセッサの演算処理結果のデータを一時記憶する一時バッファと、一時バッファのデータを記憶する制御レジスタと、前記制御レジスタのデータあるいは前記一時バッファのデータを選択するセレクタと、前記制御レジスタのデータを演算処理する演算回路と、前記演算回路の出力データと前記プロセッサからの前記演算処理結果データとを比較して、一致しているとき、前記許可フラグを許可状態に設定し、前記制御レジスタを前記セレクタを通じて前記一時バッファのデータで更新し、不一致のとき、前記許可フラグの状態を変更せずに前記制御レジスタのデータを前記セレクタを通じて再格納する比較回路と、プロセッサによってアクセス回数のデータが設定され,前記不揮発性メモリに対するアクセス毎に減算されて、前記データが「0」に達したとき、前記許可フラグを不許可状態にするカウンタと、を備えることを特徴とする。
【0017】
更に、前記演算処理結果データは、前記プロセッサが前記制御レジスタから読み出したデータに、前記不揮発性メモリに対する正常なアクセス処理の一部をなす演算処理を施して得られる演算処理結果データであることを特徴とする。
【0018】
【発明の実施の形態】
この発明の実施の形態について図面を参照して説明する。この発明の第1の実施の形態を示す図1を用いて説明する。システム情報が格納される不揮発性メモリ1はプロセッサ2からプロセッサ制御部3を通してアクセスされる。プロセッサ制御部3には、プロセッサ2からのアドレス/コマンドを格納するアドレス/コマンドバッファ4と、ライトデータを格納するライトデータバッファ5と、プロセッサへのリードデータを格納するリードデータバッファ6と、アドレスとコマンドをデコードするデコーダ7と、リードデータを選択するデータセレクタ8と、
不揮発性メモリ1へのアクセスを制御するメモリ制御回路9と、不揮発性メモリ1のメモリ保護回路10と、を備える。メモリ保護回路10は、不揮発性メモリ1へのアクセスを許可/禁止する許可フラグ11と、許可フラグ11の許可状態及び不許可状態を制御するフラグ制御回路12と、を有する。
【0019】
更に、フラグ制御回路12の構成を示す図2を参照すると、フラグ制御回路12には、プロセッサ2から設定される初期値や演算処理結果のデータを一時バッファ122からセレクタ123を介して設定する制御レジスタ121と、制御レジスタ121へのライトデータを一旦保持する一時バッファ122と、制御レジスタ121のデータに演算を行う演算回路125と、演算回路125の出力データと一時バッファ122にあるプロッセサ2の演算処理結果データとを比較する比較回路124と、制御レジスタ121に設定するデータを選択するセレクタ123と、を有する。
【0020】
次に、この第1の実施の形態の動作について、処理の流れを示す図3(a)及び図3(b)を参照して説明する。まず、プロセッサ2によるプロセッサ制御回路3の動作を示す図3(a)を参照すると、制御レジスタ121の初期値のデータを確認するために制御レジスタ121をリードする(ステップ201)。プロセッサ2は、リードした制御レジスタ121の初期値のデータに対して演算処理を実行する(ステップ202A)。演算結果データをライトデータとして、一時バッファ122を通じて制御レジスタ121にライトを行う(ステップ203)。更に、正常に処理が行われて、許可フラグ11が許可状態であることを確認するために、許可フラグ11をリードする(ステップ204)。ここから、不揮発性メモリ1へのアクセスを開始し(ステップ205)、アクセスが終了すると(ステップ206のyes)、許可フラグ11へライトを行って、許可フラグ11をディセーブルに設定する(ステップ207)。
【0021】
一方、フラグ制御回路12の動作を示す図3(b)を参照すると、制御レジスタ121のデータをリードする(ステップ251)。リードしたデータを演算回路125で処理する(252A)。この演算回路125の出力データと一時バッファ122にあるデータとを比較回路124で比較する(ステップ253)。比較結果を許可フラグ11に設定する(ステップ254)。図3(b)のステップ251からステップ254は、図3(a)のステップ203が実行される段階におけるフラグ制御回路12の動作である。
【0022】
この第1の実施の形態の全体動作を図1と図2と図3(a)と図3(b)に沿って、具体的に説明する。プロセッサ2は、制御レジスタ121のリードを行う(ステップ201)ためにアドレスとコマンドを出力する。アドレスとコマンドは、プロセッサ制御回路3のアドレス/コマンドバッファ4に格納され、デコーダ7にてデコードされる。デコード結果が制御レジスタ121のリードのコマンドであるならば、データセレクタ8は制御レジスタ121のデータを選択してリードデータバッファ6に格納し、プロセッサ2に返送する。プロセッサ2は、返送された制御レジスタ121のデータの演算処理を行う(ステップ202A)。
【0023】
ステップ202Aにおけるプロセッサ2の演算処理を、ここでは+1の加算を想定する。制御レジスタ121の初期値であるデータが、0X00000000ならば、演算結果データは0X00000001となる。プロセッサ2は、この演算結果データを一時バッファ122を通じて制御レジスタ121にライトする(ステップ203)。このライトのアドレスとコマンドは、アドレス/コマンドバッファ4に、ライトデータ(演算結果データ)はライトデータバッファ5に、それぞれ格納される。アドレスとコマンドをデコーダ7でデコードした結果、制御レジスタ121へのライトならば、ライトデータバッファ5に格納されたライトデータは、一時バッファ122を通じて制御レジスタ121に格納される。
【0024】
一方、制御レジスタ121のデータは、演算回路125にて演算処理が行われる。ここでは、制御レジスタ121の初期値のデータ0X00000000であるから、演算回路125の出力データは、0X00000001となる。一時バッファ122に格納されたプロセッサ2の演算処理結果データと、演算回路125の出力データとは、比較回路124にて比較される。ここでは、どちらのデータも0X00000001となるので、比較結果は一致となり、許可フラグ11をイネーブルの許可状態に設定する。更に、セレクタ123は、一時バッファ122のデータを選択して、制御レジスタ121を更新する。ここでは、一時バッファ122のデータは、0X00000001なので、制御レジスタ121が0X00000001に更新され、次のアクセスに対する初期値のデータとして使用される。
【0025】
次に、比較回路124の結果が不一致の場合、許可フラグ11の状態は、変更されず不許可状態(ディセーブル)を保ち、セレクタ123は制御レジスタ121のデータを選択するので制御レジスタ121のデータは、そのまま再格納される。その後、プロセッサ2は、制御レジスタ121への書き込み処理が正しく行われたことを確認するために許可フラグ11をリードする(ステップ204)。
【0026】
プロセッサ2からのアドレスとコマンドは、アドレス/コマンドバッファ4に格納され、デコーダ7にてデコードされる。デコード結果が許可フラグ11のリードならば、データセレクタ8は、許可フラグ11を選択してリードデータバッファ6に格納し、プロセッサ2に返送される。プロセッサ2は、許可フラグ11がイネーブルになっていることを確認した後、不揮発性メモリ1へのアクセスを開始する(ステップ205)。アドレス/コマンドバッファ4のアドレスとコマンドがライトアクセスならば、ライトデータをライトデータバッファ5に格納し、アドレスとコマンドをデコーダ7にてデコードする。デコード結果が不揮発性メモリ1へのアクセスならば、メモリ制御回路9に通知し、メモリ制御回路9は、許可フラグ11がイネーブルなので、不揮発性メモリ1にアクセスを行う。リードアクセスならば、データセレクタ8は不揮発性メモリ1からのリードデータを選択してリードデータバッファ6に格納して、プロセッサ2に返送する。ライトアクセスならば、ライトデータバッファ5のライトデータを不揮発性メモリ1に出力して、ライトを実行する。
【0027】
一連のアクセスが終了すると(ステップ206のyes)、プロセッサ2は、許可フラグ11へディセーブルを設定するためにライトを行う(ステップ207)。プロセッサ2が、出力したアドレスとコマンドをアドレス/コマンドバッファ4に、ライトデータをライトデータバッファ5に、それぞれ格納し、アドレスとコマンドをデコーダ7でデコードする。デコードの結果、許可フラグ11へのライトで、許可フラグ11が不許可状態(ディセーブル)を示していれば、許可フラグ11をディセーブルに更新する。なお、許可フラグ11へのライトは、不許可状態(ディセーブル)への設定のみが可能で、許可状態(イネーブル)への設定は、プロセッサ2から直接設定することはできない。
【0028】
この発明の目的を逸脱しない範囲で、不揮発性メモリ1の内容を破壊しないということであれば、第1の実施の形態をリードアクセスに限り許可フラグ11の状態が許可状態あるいは不許可状態に関わらず、リードアクセスを許可するように変更することができることは明らかである。
【0029】
次に、第2の実施の形態を図面を参照して説明する。第1の実施の形態における図1のメモリ保護回路10のフラグ制御回路12を、第2の実施の形態の図4のメモリ保護回路13では、フラグ制御回路14に変更する。フラグ制御回路14の構成を示す図5を参照すると、演算処理にシフト回路126を採用する点で、第1の実施の形態の演算回路125と異なる。シフト演算は、例えば、制御レジスタ121のデータを0X00000001として、演算を左1ビットシフトとすると演算結果は0X00000010となる。また、右1ビットシフトでもよい。このシフト演算に対応して、プロセッサ2における演算処理がシフト処理に変更され、図6(a)のステップ202Bの「プロセッサでシフト処理」と、図6(b)のステップ252Bの「シフト回路で処理」と、にそれぞれ変更される。
その他の構成及び動作は、第1の実施の形態における図1,図2,図3(a),図3(b)のそれぞれ対応するものに同じである。
【0030】
次に、第3の実施の形態を図面を参照して説明する。第1の実施の形態におけるメモリ保護回路10が第3の実施の形態を示す図7では、メモリ保護回路15に変更される。メモリ保護回路10では、図3及び図6のステップ207に示すように、不揮発性メモリ1へのアクセスが終了した毎に、許可フラグ11を不許可状態のディセーブルに設定するため、プロセッサ2が許可フラグ11に直接ライトを行っていた。メモリ保護回路15で変更される点は、図3及び図6のステップ207に示す許可フラグ11への直接書き込みを一切無くすために、不揮発性メモリ1へのアクセス回数のカウンタ127を設け、規定回数のアクセスが終了すると、自動的に許可フラグ11を不許可状態のディセーブルに変更する。
【0031】
上述の変更点を図8を用いて説明する。メモリ保護回路15のフラグ制御回路16は、制御レジスタ121と、一時バッファ122と、セレクタ123と、比較回路124と、演算回路125と、に加え、不揮発性メモリ1へのアクセス回数をカウントするカウンタ127を備える。カウンタ127は、プロセッサ1から、アクセス回数に相当するデータが初期値として設定され、不揮発性メモリ1に対するアクセス毎に、減算されて、「0」に達したとき、許可フラグ11をディセーブルの不許可状態にする作用を有する。
【0032】
第3の実施の形態の動作を動作を図9(a)及び図9(b)を参照して説明する。まず、制御レジスタ121の初期値のデータを確認するために制御レジスタ121をリードする(ステップ201)。プロセッサ2は、リードした制御レジスタ121のデータに対して演算処理を実行する(ステップ202A)。演算結果をライトデータとして、一時バッファ122を通じて制御レジスタ121にライトを行う(ステップ203)。更に、正常に処理が行われたことを確認するために、許可フラグ11をリードする(ステップ204)。続いて不揮発性メモリ1へのアクセス回数をカウンタ127にライトする(ステップ204A)。ここから不揮発性メモリ1へのアクセスを開始する(ステップ205)。不揮発性メモリ1へのアクセスが発生するたびにカウンタをデクリメントし、規定回数に達したかを判定し、カウンタ127が「0」に達すると(ステップ206のA)、許可フラグ11をディセーブルに更新する(ステップ207)。
【0033】
このカウンタ127の動作はハードウェアでなされ、カウンタ127の動作を示す図9(b)を参照すると、カウンタ127はプロセッサ2からアクセスされる度に、設定されているアクセス回数を減算する(ステップ261)。カウンタ127が所定のアクセス回数に達して、カウント値「0」に達すると、許可フラグ11をディセーブルの不許可状態にする(ステップ262)。
【0034】
第3の実施の形態の動作の全体を図7と図8と図9(a)と図9(b)に沿って、具体的に説明する。プロセッサ2は、制御レジスタ121のリードを行う(ステップ201)ためにアドレスとコマンドを出力する。アドレスとコマンドはアドレス/コマンドバッファ4に格納され、デコーダ7にてデコードされる。デコード結果が制御レジスタ121のリードの場合、データセレクタ8は制御レジスタ121のデータを選択して、リードデータバッファ6に格納し、プロセッサ2に返送する。プロセッサ2は、読み出した制御レジスタ121のデータに演算処理を行う(ステップ202A)。プロセッサ2は、この演算処理結果データを制御レジスタ121に一時バッファ122を通じてライトする(ステップ203)。このライトのアドレスとコマンドは、アドレス/コマンドバッファ4に、ライトデータである演算処理結果データはライトデータバッファ5に、それぞれ格納される。アドレスとコマンドをデコーダ7でデコードした結果、制御レジスタ121へのライトの場合、ライトデータバッファ5に格納されたライトデータは、一時バッファ122に格納される。一方、制御レジスタ121のデータは、演算回路125にて演算が行われる。一時バッファ122に格納された演算処理結果データと、演算回路125の出力データと、を比較回路124にて比較する。比較結果が一致すれば、許可フラグ設定信号で許可フラグ11をイネーブルの許可状態に設定する。
【0035】
更に、セレクタ123は、一時バッファ122のデータを選択し、制御レジスタ121を更新する。もし、比較回路124の結果が不一致の場合、許可フラグ11の状態は変更されず、不許可状態のディセーブルのままとなり、セレクタ123は、制御レジスタ121のデータを選択するので、制御レジスタ121へデータが書き戻されて、そのままのデータが再格納される。その後、プロセッサ2は、制御レジスタ121への書き込み処理が正常に行われたことを確認するために許可フラグ11をリードする(ステップ204)。プロセッサ2からのアドレスとコマンドは、アドレス/コマンドバッファ4に格納され、デコーダ7にてデコードされる。デコード結果が許可フラグ11のリードならば、データセレクタ123は、許可フラグ11の状態の値を選択してリードデータバッファ6に格納し、プロセッサ2に返送する。
【0036】
続いて、プロセッサ2は、カウンタ127に不揮発性メモリ1へのアクセス回数をライトする(ステップ204A)。アドレスとコマンドはアドレス/コマンドバッファ4に、ライトデータはライトデータバッファ5に、それぞれ格納され、アドレスとコマンドは、デコーダ7にてデコードされる。デコード結果がカウンタ127へのライトの場合、ライトデータバッファ5のライトデータが初期値のデータとしてカウンタ127に設定される。該データは不揮発性メモリ1に対するアクセス回数である。ここから、プロセッサ2は、不揮発性メモリ1へのアクセスを開始する(ステップ205)。アドレスとコマンドは、アドレス/ コマンドバッファ4に、ライトアクセスの場合は、ライトデータをライトデータバッファ5に、それぞれ格納し、アドレスとコマンドをデコーダ7にてデコードする。デコード結果が不揮発性メモリ1へのアクセスの場合、メモリ制御回路9に通知し、メモリ制御回路9は許可フラグ11が許可状態のイネーブルなので、不揮発性メモリ1にアクセスを行う。リードアクセスの場合、データセレクタ8は、不揮発性メモリ1からのリードデータを選択してリードデータバッファ6に格納して、プロセッサ2に返送する。ライトアクセスの場合、ライトデータバッファ5のライトデータを不揮発性メモリ1に出力してライトを実行する。
【0037】
カウンタ127の動作は、図9(b)を参照すると、不揮発性メモリ1へのアクセスが発生する度に、カウンタ127は、1ずつディクリメントを行い(ステップ261)、規定回数に達するとカウント値が「0」となり、許可フラグ11をディセーブルに更新する(ステップ262)。プロセッサ2は、許可フラグ11を許可状態のイネーブルにも、不許可状態のディセーブルにも直接設定することはできない。
【0038】
【発明の効果】
ソフトウェアの非正常なアクセスからシステム情報を保護するために、単にソフトウェア見えのレジスタへのライトによりアクセスを許可/不許可するのではなく、メモリ保護回路及びプロセッサの双方で個別に演算処理した結果によって、許可状態にするか、あるいは不許可状態にするか、を判定する処理を挿入することにより、正常なアクセスであることを保証する。
【0039】
更に、不揮発性メモリに対する予定のアクセス回数を予めカウンタに設定し、アクセスの度に制御レジスタに対して、データを正常に演算処理された結果データに基づいて、アクセスを実行し、要求されるアクセス回数を書き込む制御を受けるので、非正常なアクセスを取り除くことができる。
【0040】
更に、プログラム処理だけで非正常なアクセスを防止するには、チェックを多重に行う必要があり、その分、プログラムが複雑になってしまうが、この発明では、基本的にリード1回とライト1回でチェックされるので、プログラムを簡単にできる。
【図面の簡単な説明】
【図1】この発明の第1の実施の形態2を示す図である。
【図2】図1のフラグ制御回路の細部を示す図である。
【図3】第1の実施の形態の動作を示す図で、分図(a)はプロセッサの動作を、分図(b)はフラグ制御回路の動作を、それぞれ示す図である。
【図4】この発明の第2の実施の形態2を示す図である。
【図5】図4のフラグ制御回路の細部を示す図である。
【図6】第2の実施の形態の動作を示す図で、分図(a)はプロセッサの動作を、分図(b)はフラグ制御回路の動作を、それぞれ示す図である。
【図7】この発明の第3の実施の形態2を示す図である。
【図8】図7のフラグ制御回路の細部を示す図である。
【図9】第3の実施の形態の動作を示す図で、分図(a)はプロセッサの動作を、分図(b)はフラグ制御回路の動作を、それぞれ示す図である。
【図10】従来技術のメモリ保護回路の構成を示す図である。
【図11】図10の動作を示す図である。
【符号の説明】
1 不揮発性メモリ
2 プロセッサ
3 プロセッサ制御回路
4 アドレス/コマンドバッファ
5 ライトデータバッファ
6 リードデータバッファ
7 デコーダ
8 データセレクタ
9 メモリ制御回路
10 メモリ保護回路
11 許可フラグ
12 フラグ制御回路
13 メモリ保護回路
14 フラグ制御回路
15 メモリ保護回路
16 フラグ制御回路
121 制御レジスタ
122 一時バッファ
123 セレクタ
124 比較回路
125 演算回路
126 シフト回路
127 カウンタ

Claims (6)

  1. システム情報を格納する不揮発性メモリと、不揮発性メモリにアクセスして、システム情報をリードライトするプロセッサと、前記プロセッサから不揮発性メモリへのアクセスを制御するプロセッサ制御回路と、を備え、
    前記プロセッサ制御回路が、
    不揮発性メモリへのアクセスに対してメモリを保護するメモリ保護回路と、
    プロセッサから送付されるアドレスあるいはコマンドを受け付けるアドレス/コマンドバッファと、
    プロセッサから送付されるライトデータを受け付けるライトデータバッファと、
    アドレス/コマンドバッファのデータをデコードするデコーダと、
    前記デコーダの出力によって、前記メモリ保護回路または不揮発性メモリの出力のいずれか一つを選択するデータセレクタと、
    前記データセレクタの出力を受け取るリードバッファと、
    前記デコーダからのアドレス及びコマンド並びに前記メモリ保護回路によって、不揮発性メモリに対するリードライトを実施するメモリ制御回路と、
    を備えてメモリ保護を実施するメモリ保護回路において、
    前記メモリ保護回路が、
    前記プロセッサの前記不揮発性メモリに対するアクセスを許可あるいは不許可にする許可フラグと、
    前記プロセッサが前記メモリ保護回路の制御レジスタのデータを読み出して施した演算処理結果データと、前記メモリ保護回路自身が前記制御レジスタに保持するデータに演算を施した出力データと、を比較して前記アクセスが正常かあるいは非正常かを判定して前記許可フラグを設定するフラグ制御回路と、
    を備え、
    てなることを特徴とするメモリ保護回路。
  2. 前記フラグ制御回路は、
    前記プロセッサから前記ライトデータバッファを通じて送付される初期設定のデータあるいは前記プロセッサの演算処理結果のデータを一時記憶する一時バッファと、
    一時バッファのデータを記憶する制御レジスタと、
    前記制御レジスタのデータあるいは前記一時バッファのデータを選択するセレクタと、
    前記制御レジスタのデータを演算処理する演算回路と、
    前記演算回路の出力データと前記プロセッサからの前記演算処理結果データとを比較して、一致しているとき、前記許可フラグを許可状態にし、前記制御レジスタを前記セレクタを通じて前記一時バッファのデータで更新し、不一致のとき、前記許可フラグの状態を変更せずに前記制御レジスタのデータを前記セレクタを通じて再格納する比較回路と、
    を備えることを特徴とする請求項1記載のメモリ保護回路。
  3. 前記演算回路は、
    前記制御レジスタのデータに対して、所定値を加算する回路であることを特徴とする請求項2記載のメモリ保護回路。
  4. 前記演算回路は、
    前記制御レジスタのデータに対して、シフト演算を施す回路であることを特徴とする請求項2記載のメモリ保護回路。
  5. 前記フラグ制御回路は、
    前記プロセッサからライトデータバッファを通じて送付される初期設定のデータあるいは前記プロセッサの演算処理結果のデータを一時記憶する一時バッファと、
    一時バッファのデータを記憶する制御レジスタと、
    前記制御レジスタのデータあるいは前記一時バッファのデータを選択するセレクタと、
    前記制御レジスタのデータを演算処理する演算回路と、
    前記演算回路の出力データと前記プロセッサからの前記演算処理結果データとを比較して、一致しているとき、前記許可フラグを許可状態に設定し、前記制御レジスタを前記セレクタを通じて前記一時バッファのデータで更新し、不一致のとき、前記許可フラグの状態を変更せずに前記制御レジスタのデータを前記セレクタを通じて再格納する比較回路と、
    前記プロセッサによってアクセス回数のデータが設定され,前記不揮発性メモリに対するアクセス毎に減算されて、前記データが「0」に達したとき、前記許可フラグを不許可状態にするカウンタと、
    を備えることを特徴とする請求項1記載のメモリ保護回路。
  6. 前記演算処理結果データは、
    前記プロセッサが前記制御レジスタから読み出したデータに、前記不揮発性メモリに対する正常なアクセス処理の一部をなす演算処理を施して得られる演算処理結果データであることを特徴とする請求項1記載のメモリ保護回路。
JP2002020189A 2002-01-29 2002-01-29 メモリ保護回路 Expired - Fee Related JP3918089B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002020189A JP3918089B2 (ja) 2002-01-29 2002-01-29 メモリ保護回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002020189A JP3918089B2 (ja) 2002-01-29 2002-01-29 メモリ保護回路

Publications (2)

Publication Number Publication Date
JP2003223362A JP2003223362A (ja) 2003-08-08
JP3918089B2 true JP3918089B2 (ja) 2007-05-23

Family

ID=27743758

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002020189A Expired - Fee Related JP3918089B2 (ja) 2002-01-29 2002-01-29 メモリ保護回路

Country Status (1)

Country Link
JP (1) JP3918089B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100927975B1 (ko) * 2007-08-29 2009-11-24 주식회사 안철수연구소 메모리에서의 데이터 보호 방법
JP5673199B2 (ja) * 2011-02-23 2015-02-18 富士通セミコンダクター株式会社 誤書き込み防止回路および半導体装置

Also Published As

Publication number Publication date
JP2003223362A (ja) 2003-08-08

Similar Documents

Publication Publication Date Title
US10354073B2 (en) Information processor device verifying software and method of controlling information processor device
US9389793B2 (en) Trusted execution and access protection for embedded memory
US7444668B2 (en) Method and apparatus for determining access permission
US7461268B2 (en) E-fuses for storing security version data
JP4584044B2 (ja) 半導体装置
KR100929870B1 (ko) 컴퓨터 시스템의 바이오스 보안 유지방법
JP5114617B2 (ja) 秘密鍵を保護する、セキュア端末、プログラム、および方法
US20060090053A1 (en) Program-controlled unit
JPH10228421A (ja) メモリアクセス制御回路
TW201821998A (zh) 記憶體保護邏輯
JP2009157542A (ja) 情報処理装置及びそのスタックポインタ更新方法
US20050257016A1 (en) Digital signal controller secure memory partitioning
CN111226215B (zh) 透明附接的闪存存储器安全性
WO2017188976A1 (en) Executing protected code
US20060080497A1 (en) Program-controlled unit
JP3918089B2 (ja) メモリ保護回路
US20060080519A1 (en) Program-controlled unit
US20100312978A1 (en) Computer system, information protection method, and program
JP4865064B2 (ja) 半導体装置
US20120265904A1 (en) Processor system
US8924672B2 (en) Device with processing unit and information storage
JP4114004B2 (ja) 半導体集積回路
JPH01180656A (ja) メモリ保護装置
JP2005025340A (ja) メモリデータ保護装置
CN110569205A (zh) 安全系统单芯片及其操作方法

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050322

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060126

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

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20070119

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070129

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees