JP2005275841A - メモリ保護装置 - Google Patents

メモリ保護装置 Download PDF

Info

Publication number
JP2005275841A
JP2005275841A JP2004088489A JP2004088489A JP2005275841A JP 2005275841 A JP2005275841 A JP 2005275841A JP 2004088489 A JP2004088489 A JP 2004088489A JP 2004088489 A JP2004088489 A JP 2004088489A JP 2005275841 A JP2005275841 A JP 2005275841A
Authority
JP
Japan
Prior art keywords
group number
memory
interrupt
memory area
processor
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.)
Granted
Application number
JP2004088489A
Other languages
English (en)
Other versions
JP4563707B2 (ja
Inventor
Hideki Matsuyama
英樹 松山
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 Electronics Corp
Original Assignee
NEC Electronics 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 Electronics Corp filed Critical NEC Electronics Corp
Priority to JP2004088489A priority Critical patent/JP4563707B2/ja
Priority to US11/086,762 priority patent/US7325113B2/en
Publication of JP2005275841A publication Critical patent/JP2005275841A/ja
Application granted granted Critical
Publication of JP4563707B2 publication Critical patent/JP4563707B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block

Abstract

【課題】 高い割り込み応答性を実現しつつ、あらかじめ定められた領域以外へのメモリアクセスを禁止して、メモリ領域の保護を図るメモリ保護装置を提供する。
【解決手段】 メモリ領域情報レジスタ132(1)〜(m)は、それぞれ、対応するグループ番号の割り込みに対応する処理でアクセス可能なメモリ領域を指定する情報を保持する。選択回路133は、グループ番号レジスタ131が保持するグループ番号に応じて、メモリ領域情報レジスタ132(1)〜(m)の何れかを選択し、選択したメモリ領域情報レジスタ132が保持するメモリ領域を指定する情報を出力する。アドレスバス監視部106は、選択回路133が出力するメモリ領域を指定する情報に基づいて、プロセッサによる不正メモリアクセスの発生の有無を監視する。
【選択図】 図1

Description

本発明は、メモリ保護装置に関し、特に、プログラムが、そのプログラムに設定されたメモリ領域以外の領域にアクセスすることを禁止して、メモリに記憶されたデータやプログラムを保護するメモリ保護装置に関する。
特定用途向けの組み込みシステム(embedded system)が普及している。組み込みシステムの適用は、例えば、家電機器や、自動車等といった多岐の分野にわたっている。組み込みシステムでは、通常、プロセッサは、制御対象から割り込み信号を入力し、発生した割り込みに対応する処理を実行して、機器の制御等を行う。
図3は、割り込みの発生に伴って、プロセッサが実行する処理が変化する様子を示している。プロセッサは、ある処理の実行中に、時刻t1で割り込み1を受け付けると、現在行っている処理を中断して、割り込み1に対応した処理を実行する。その割り込み1に対応した処理が終了し、時刻t2で復帰(RET)命令が発生すると、プロセッサは、割り込み1を受け付けるために中断した処理を再開する。その後、プロセッサは、時刻t3で新たに発生した割り込み8を受け付けると、実行中の処理を再び中断して、割り込み8に対応した処理を実行する。
プロセッサは、割り込み8に対応した処理の実行中に、時刻t4で再び割り込み1を受け付けると、処理を中断して、割り込み1に対応した処理を実行する。また、プロセッサは、割り込み1に対応する処理の実行中に、時刻t5で割り込み2を受け付けると、実行中の処理を中断して、割り込み2に対応する処理を実行する。割り込み2に対応した処理が時刻t6で復帰命令を発生すると、プロセッサは、中断した割り込み1に対応する処理を再開する。プロセッサは、再開された割り込み1に対応する処理が時刻t7で復帰命令を発生すると、割り込み8に対応した処理を再開し、割り込み8に対応する処理が時刻t8で復帰命令を発生すると、時刻t3で割り込み8に対応した処理を実行するために中断した処理を再開する。
組み込みシステムでは、通常、各割り込みに対応した処理は、同じメモリ資源を用いて実行される。このため、プロセッサが実行する処理が図3のように推移する場合において、割り込み2に対応する処理が、その直前に実行していた割り込み1に対応する処理がデータ領域やプログラム領域として使用していたメモリ領域の内容を書き換えると、割り込み1に対応する処理で使用するデータ等が破壊され、時刻t7以降に再開される割り込み1に対応する処理が正しく実行されないといった事態が発生する。このような事態を防止するため、各割り込みに対応した処理は、その処理にあらかじめ設定されたメモリ領域以外へのメモリアクセスを禁止するメモリ保護機能の下で実行されることが好ましい。
メモリ保護機能は、OSが、各割り込みに対応する処理においてアクセス可能なメモリ範囲を設定することで実現する。例えば、図3において、時刻t5でプロセッサが割り込み2を受け付ける際には、OSのプログラムが実行されて、次に実行する割り込み2に対応する処理においてアクセス可能なメモリ領域の設定を含む多くのプログラムを実行してから、割り込み2に対応する処理が実行される。また、時刻t6で復帰命令が発生し、割り込み1に対応した処理を再開する際には、OSのプログラムが実行されて、割り込み1に対応する処理においてアクセス可能なメモリ領域の設定を含む多くのプログラムを実行してから、割り込み1に対応した処理が再開される。このようなアクセス可能なメモリ領域等の設定をOSが行う技術は、例えば特許文献1に記載されている。
ここで、プロセッサに入力される複数の割り込みには、発生してから所定の時間制約以内に必ず処理を完了しなければならない割り込み、つまりは要求されるリアルタイム性が高い処理に対応する割り込みが含まれる。このような要求されるリアルタイム性が高い処理について、上記のように、OSがメモリ保護の設定を行う場合には、割り込みが発生し、その割り込みに対応した処理を開始するまでの間に、OSがアクセス可能なメモリ領域の設定を含む多くの処理を実行する必要があるため、割り込み応答性が低下し、処理のリアルタイム性が損なわれるおそれがある。
各処理において、アクセス可能なメモリ範囲の設定が可能であるということは、結局、その処理においてメモリ領域の任意の領域にアクセス可能であるということを意味する。このため、アクセス可能なメモリ領域の設定は、OSによってされなければならず、この場合、高い割り込み応答性を実現しつつ、メモリ保護を図ることは困難である。このことから、高いリアルタイム性が要求されるシステムでは、高い割り込み応答性が重視され、割り込みに対応する各処理は、図3に示すように、OSによってアクセス可能なメモリ領域等の設定を受けることなく、メモリ保護なしで実行されている。
特開2000−163309号公報
ところで、各処理に対応するプログラムを、全て同じ部門(プログラマ)によって作成する場合には、各処理におけるメモリ等の使用状況を勘案してプログラミングすることで、ある処理で使用されるデータが他の処理で書き換えられてデータが破壊される事態を防止できる。しかし、組み込みシステムでは、1つのプロセッサが制御する対象が増えてきており、各割り込みに対応する処理のプログラムを、制御対象ごとに、異なる部門で作成することも行われている。この場合、異なる部門で作成されたプログラム間では、メモリ等の使用状況等をあらかじめ知ることができず、本来ならばアクセス可能ではないメモリ範囲にアクセスして、データ等が破壊される事態を防止できない。
上記のような事態を防止するため、高いリアルタイム性が要求されるシステムにおいても、各処理におけるアクセス可能なメモリ範囲を制限して、メモリ保護を図りたいという要求が高まっている。しかし、従来は、前述のようにOSがアクセス可能なメモリ範囲の設定を行う必要があったため、高い割り込み応答性とメモリ保護の双方を両立させることは困難であった。
本発明は、上記問題を解消し、高い割り込み応答性を実現しつつ、あらかじめ定められた領域以外へのメモリアクセスを禁止して、メモリ領域の保護を図るメモリ保護装置を提供することを目的とする。
上記目的を達成するために、本発明のメモリ保護装置は、割り込みに対応する処理を実行するプロセッサによるメモリアクセスを制限してメモリを保護するメモリ保護装置であって、プロセッサが実行する処理に対応してアクセス可能なメモリ領域を指定するメモリ領域情報を生成して出力するメモリ情報生成回路と、プロセッサによるメモリアクセスを監視し、メモリ情報生成回路が生成したメモリ領域情報で示されるメモリ領域外のメモリアクセスを検知すると、不正メモリアクセスが発生した旨の信号を出力するメモリアクセス監視回路とを備えることを特徴とする。
本発明のメモリ保護装置では、メモリアクセス監視部は、メモリ情報生成回路が生成したメモリ領域情報に基づいて、不正アクセスの有無を監視する。このため、メモリ保護の設定をOSが行う場合に比して、アクセスできるメモリ領域の制限を高速に行うことができ、高い割り込み応答性を維持しつつ、プロセッサが実行する処理を、メモリ保護ありの状態で実行することができる。
本発明のメモリ保護装置では、前記割り込みのそれぞれには、グループ番号が設定されており、前記メモリ情報生成回路は、前記グループ番号に対応して前記メモリ領域情報を記憶するメモリ領域情報記憶部と、プロセッサが実行中の処理に対応する割り込みのグループ番号を記憶するグループ番号レジスタと、該グループ番号レジスタが記憶する情報に基づいて、前記メモリ領域情報記憶部から前記メモリ領域情報を読み出すメモリ領域情報選択部とを備えることが好ましい。この場合、グループ番号レジスタに、現在実行中の処理に対応するグループ番号を記憶させることで、メモリ領域情報選択部は、その実行中の処理でアクセス可能なメモリ領域を指定する情報を読み出すことができる。
本発明のメモリ保護装置は、発生した割り込みに対応するグループ番号を生成するグループ番号生成回路を更に備え、前記グループ番号保持レジスタは、プロセッサが割り込みを受け付けると、前記グループ番号生成回路が出力するグループ番号によって更新されることが好ましい。この場合には、新たに実行される処理に対応するグループ番号で、グループ番号レジスタを更新することができる。
本発明のメモリ保護装置は、プロセッサが受け付けた割り込みのグループ番号の履歴を記憶する履歴管理部を更に備え、該履歴管理部は、前記グループ番号レジスタのグループ番号の更新に先立って、前記グループ番号レジスタに記憶されたグループ番号を記憶することが好ましい。この場合、新たな処理に対応するグループ番号によって、グループ番号レジスタが記憶するグループ番号が更新される前に、そのグループ番号レジスタが記憶していたグループ番号を履歴管理部に待避して記憶させることができる。
本発明のメモリ保護装置では、前記履歴管理部は、複数のグループ番号を記憶するスタック領域を備える構成とすることができる。
本発明のメモリ保護装置では、前記グループ番号保持レジスタは、プロセッサが復帰命令を発生すると、前記履歴管理部が記憶するグループ番号によって更新されることが好ましい。この場合、復帰命令が発生した際に、グループ番号レジスタが記憶するグループ番号を、再開された処理に対応するグループ番号で、更新することができる。
本発明のメモリ保護装置は、OSを介さずに割り込みに対応する処理に対してアクセス可能なメモリ領域を指定できるため、高い割り込み応答性が要求されるシステムにおいても、高い割り込み応答性を実現しつつ、あらかじめ定められた領域以外へのメモリアクセスを禁止して、メモリ領域の保護を図ることができる。
以下、図面を参照し、本発明の実施形態例に基づいて、本発明を更に詳細に説明する。図1は、本発明の一実施形態例のメモリ保護装置の構成を示している。このメモリ保護装置100は、プロセッサ(図示せず)と共に組み込みシステムを構成するシステムLSI等の半導体装置に内蔵される。図1に示すように、メモリ保護装置100は、グループ番号生成回路101、セレクタ102、メモリ情報生成回路103、履歴管理バッファ104、制御部105、及び、アドレスバス監視部106を備える。メモリ保護装置100は、プロセッサによるメモリアクセスを監視して、不正メモリアクセスの発生を防止する。
プロセッサは、複数の割り込み(INT(1)〜(n))(n:2以上の整数)を入力し、それら割り込みに対応して、複数の制御対象に対する処理を行う。n個の割り込みは、OSレベルの割り込みと、ユーザレベルの割り込みとに大別され、グループ0からグループ(m)までにグループ分けされる。OSレベルの割り込みは、OS割り込み等の特権モードで動作する特殊な割り込みであり、そのグループは、グループ0に設定される。ユーザレベルの割り込みは、グループ1〜(m)(m:1≦m≦nを満たす整数)にグループ分けされる。ユーザ割り込みの数がn個であり、割り込み数n=グループ数mであるときには、各割り込みとグループとは1対1に対応する。ここで、同じグループに設定された割り込み間に対応する処理のプログラムは、例えば同じ部門により作成され、同じグループ内の割り込み間では、メモリ保護違反は発生しないものとする。
グループ番号生成回路101は、プロセッサに入力される、複数の割り込みINT(1)〜INT(n)を入力し、発生した割り込みに設定されたグループ番号を出力する。履歴管理バッファ104は、発生した割り込みに対応するグループ番号の履歴を保持する。メモリ情報生成回路103は、プロセッサが実行中の割り込みに対応する処理がアクセス可能なメモリ領域に関する情報をアドレスバス監視部106に出力する。アドレスバス監視部106は、入力するメモリ領域に関する情報に基づいて、アドレスバスを監視する。
制御部105は、プロセッサが新たに割り込みを受け付ける際に活性化される割り込み受け付け信号INTACKと、プロセッサが復帰命令を発生した際に活性化される復帰実行信号RETEEXとを生成する。制御部105は、プロセッサが新たに割り込みを受け付けるタイミングで、割り込み受け付け信号INTACKを活性化状態(“1”)とし、それ以外の期間では、割り込み受け付け信号INTACKを非活性化状態(“0”)とする。また、プロセッサが現在行っている処理において復帰命令を発生した際には、制御部105は、復帰命令実行信号RETEXを活性化状態(“1”)とし、それ以外の期間では、復帰実行信号RETEXを非活性化状態(“0”)とする。
グループ番号生成回路101は、割り込みINT(1)〜(n)に対応して、任意に書き換えが可能なグループ番号設定レジスタ111(1)〜(n)を有する。各グループ番号設定レジスタ111は、それぞれ対応する割り込みが属するグループ番号を保持する。グループ番号生成回路101は、何れかの割り込みが発生すると、その発生した割り込みに対応するグループ番号設定レジスタ111が保持するグループ番号を、発生グループ番号NGEN_NUMとしてセレクタ102に向けて出力する。
履歴管理バッファ104は、履歴記憶部141、ライトポインタ142、及び、リードポインタ143を備える。履歴管理バッファ104には、制御信号として、割り込み受け付け信号INTACKと、復帰命令実行信号RETEXとが入力される。履歴記憶部141は、グループ番号を記憶するエントリを複数有する。ライトポインタ142は、履歴記憶部141に新たなグループ番号を記憶させる際のアドレス(エントリ)を指定する。リードポインタ143は、履歴記憶部141からグループ番号を読み出す際のアドレスを指定し、ライトポインタ142が示すアドレスの1つ前のアドレスを保持する。
ライトポインタ142及びリードポインタ143は、割り込み受け付け信号INTACKが活性化されるとそれぞれインクリメント(+1)され、復帰命令実行信号RETEXが活性化されるとデクリメント(−1)される。履歴管理バッファ104は、リードポインタ143が指定するアドレスに記憶されたグループ番号を読み出し、そのグループ番号を、復帰グループ番号RET_NUMとして、セレクタ102に向けて出力する。ライトポインタ142が先頭アドレスを示す「エントリ1」を保持するとき、リードポインタ143は、読み出すべきアドレスがないことを示す「エントリ0」を保持する。この場合には、履歴管理バッファ104は、NULL値、又は、メモリ保護なしを示すグループ番号「0」を、復帰グループ番号RET_NUMとして出力する。
セレクタ102は、グループ番号生成回路101から出力された発生グループ番号NGEN_NUMと、履歴管理バッファ104から出力された復帰グループ番号RET_NUMとを入力し、そのうちの一方を、割り込み受け付け信号INTACKに基づいて選択し、選択したグループ番号を出力する。セレクタ102は、割り込み受け付け信号INTACKが活性化状態にあるときには、発生グループ番号NGEN_NUMを出力し、割り込み受け付け信号INTACKが非活性化状態にあるときには、復帰グループ番号RET_NUMを出力する。
メモリ情報生成回路103は、グループ番号レジスタ131、メモリ領域設定レジスタ132(1)〜(m)、及び、選択回路133を有する。メモリ情報生成回路103には、制御信号として、割り込み受け付け信号INTACKと、復帰命令実行信号RETEXとが入力される。メモリ情報生成回路103には、セレクタ102を介して、発生グループ番号NGEN_NUM、又は、復帰グループ番号RET_NUMが入力される。
グループ番号レジスタ131は、現在プロセッサが実行中の割り込みに設定されたグループ番号を保持する。グループ番号レジスタ131は、現在保持しているグループ番号を、カレントグループ番号CUR_NUMとして、選択回路133と履歴管理バッファ104とにそれぞれ出力する。グループ番号レジスタ131は、割り込み受け付け信号INTACKが活性化されると、記憶するグループ番号を、発生グループ番号NGEN_NUMで更新する。言い換えると、記憶するグループ番号を、新たに受け付ける割り込みに設定されたグループ番号で更新する。グループ番号レジスタ131は、復帰命令実行信号RETEXが活性化されると、記憶するグループ番号を、復帰グループ番号RET_NUMで更新する。
メモリ領域設定レジスタ132(1)〜(m)は、グループ1〜mのそれぞれに対応して設けられている。各メモリ領域設定レジスタ132は、各グループに対応する処理でアクセス可能なメモリ領域に関する情報を保持する。各メモリ領域設定レジスタ132は、アクセス可能なメモリ領域に関する情報として、そのメモリ領域の先頭アドレスと終了アドレスとの組合せを保持している。各メモリ領域設定レジスタ132は、アクセス可能なメモリ領域が複数の領域に分散しているときには、その分散された領域のそれぞれについて、その先頭ドレスと終了アドレスとの組合せを保持する。各メモリ領域設定レジスタ132が保持するメモリ領域に関する情報は、各割り込みが使用するメモリ領域に応じて、任意に書き換え可能である。
選択回路133は、グループ番号レジスタ131が保持するグループ番号が「0」以外のときには、そのグループ番号に対応するメモリ領域設定レジスタ132を選択し、その選択されたメモリ領域設定レジスタ132が保持する、アクセス可能なメモリ領域に関する情報を、アドレスバス監視部106に出力する。選択回路133は、グループ番号レジスタ131が保持するグループ番号が「0」であるときには、メモリ領域に関する情報として、アクセス可能なメモリ範囲が制限されないことを示し、メモリ保護なしで実行されることを示すNULLを出力する。
アドレスバス監視部106は、アドレスバスを監視し、入力するメモリ領域に関する情報に基づいて、メモリ保護違反の発生の有無を判断する。アドレスバス監視部106は、メモリ情報生成回路103が出力する、アクセス可能なメモリ領域に関する情報がNULL以外であるときには、入力するメモリ領域に関する情報で示されるアドレス以外のアドレスに対するアクセスがあるか否かを検出する。アドレスバス監視部106は、アクセス可能なメモリ領域外に対するメモリアクセスを検出すると、不正メモリアクセスがあったとして、メモリ保護違反が発生した旨の割り込みを発生し、その旨の割り込みをプロセッサに入力する。プロセッサは、メモリ保護違反が発生した旨の割り込みを入力すると、それに対応した処理を実行する。アドレスバス監視部106は、入力するメモリ領域に関する情報がNULLであるときには、その処理では全てのメモリ領域にアクセス可能であることから、不正アクセスの有無を検出しない。
図2は、メモリ保護装置100の各部の動作をタイミングチャートで示している。以下、メモリ保護装置100が、図2に示すように動作する例について、各部の動作を詳細に説明する。なお、ここでは、各割り込みに設定されているグループ番号は、以下の通りであるとする。割り込みINT(1)は、グループ4に設定され、割り込みINT(2)は、グループ5に設定され、割り込みINT(3)は、グループ2に設定されている。また、割り込みINT(8)は、OS割り込みであり、グループ0に設定されている。
フェーズP1では、プロセッサは、割り込みINT(3)に対応する処理を実行している。この状態では、グループ番号レジスタ131は、割り込みINT(3)に対応するグループ番号「2」を保持し、カレントグループ番号CUR_NUM「2」を出力している。また、選択回路133は、グループ番号「2」に対応してメモリ領域設定レジスタ132(2)を選択している。アドレスバス監視部106は、メモリ領域設定レジスタ132(2)が保持するメモリ領域に関する情報に基づいて、アドレスバスを監視し、グループ「2」に対応したメモリ保護機能を実現する。
フェーズP1では、次にプロセッサによって受け付けられるべき割り込みとして割り込みINT(1)が発生している。グループ番号生成回路101は、その割り込みINT(1)に対応するグループ番号設定レジスタ111(1)が保持するグループ番号「4」を、発生グループ番号NGEM_NUMとして出力する。履歴記憶部141は、グループ番号を記憶していない状態であり、ライトポインタ142は履歴記憶部141の先頭アドレスを示す「エントリ1」を保持している。このとき、リードポインタ143は、読み出すべきアドレスがないことを示す「エントリ0」を保持し、履歴管理バッファ104は、メモリ保護なしを示すグループ番号「0」を復帰グループ番号RET_NUM(図2では図示せず)として出力している。
プロセッサによって割り込みINT(1)が受け付けられると、プロセッサは、フェーズP1で行っていた処理を中断し、新たに受け付けた割り込みINT(1)に対応する処理を実行するフェーズP2へ移行する。このとき、履歴管理バッファ104では、活性化状態となった割り込み受け付け信号INTACKに基づいて、ライトポインタ142が示す履歴記憶部141の「エントリ1」に、カレントグループ番号CUR_NUM「2」が記憶され、ライトポインタ142及びリードポインタ143の値がインクリメントされる。
フェーズP1からフェーズP2へ移行する際には、メモリ情報生成回路103では、グループ番号レジスタ131が保持するグループ番号が、セレクタ102を介して入力する発生グループ番号NGEN_NUM「4」で更新され、選択回路133は、更新されたグループ番号「4」に従って、メモリ領域設定レジスタ132(4)を選択する。アドレスバス監視部106は、メモリ領域設定レジスタ132(4)が保持するメモリ領域に関する情報に基づいて、アドレスバスを監視し、フェーズP2では、グループ番号「4」に対応するメモリ保護機能が実現する。
割り込みINT(1)の処理が終了し、プロセッサが復帰命令を発生すると、中断したフェーズP1の処理を再開するフェーズP3へ移行する。フェーズP2では、リードポインタ143が保持するアドレスが「エントリ1」となることから、履歴管理バッファ104は、履歴記憶部141の「エントリ1」に記憶されたグループ番号「2」を、復帰グループ番号RET_NUMとして出力している。メモリ情報生成回路103では、活性化状態となった復帰命令実行信号RETEXに基づいて、グループ番号レジスタ131が保持するグループ番号が、セレクタ102を介して入力する復帰グループ番号RET_NUM「2」で更新され、選択回路133は、更新されたグループ番号「2」に従って、メモリ領域設定レジスタ132(2)を選択する。これにより、アドレスバス監視部106は、フェーズP1と同様に、メモリ領域設定レジスタ132(2)が保持するメモリ領域に関する情報に基づいて、アドレスバスを監視し、フェーズP3では、グループ番号「2」に対応するメモリ保護機能が実現する。
フェーズP2からフェーズP3へ移行する際には、履歴管理バッファ104では、活性化状態となった復帰命令実行信号RETEXに基づいて、ライトポインタ142及びリードポインタ143の値がデクリメントされる。このため、ライトポインタ142は、再び「エントリ1」を保持し、リードポインタ143は、「エントリ0」を保持する。
フェーズP3では、次にプロセッサによって受け付けられるべき割り込みとして割り込みINT(8)が発生している。グループ番号生成回路101は、その割り込みINT(8)に対応するグループ番号設定レジスタ111(8)が保持する、メモリ保護なしを示すグループ番号「0」を、発生グループ番号NGEM_NUMとして出力する。プロセッサによって割り込みINT(8)が受け付けられると、フェーズP3で実行していた処理は再び中断され、新たに受け付けた割り込みINT(8)に対応する処理を実行するフェーズP4へ移行する。
フェーズP3からフェーズP4へ移行する際には、フェーズP1からフェーズP2へ移行する際と同様に、履歴記憶部141の「エントリ1」にカレントグループ番号CUR_NUM「2」が記憶され、ライトポインタ142及びリードポインタ143の値がインクリメントされる。また、グループ番号レジスタ131が保持するグループ番号が、発生グループ番号NGEN_NUM「0」で更新され、選択回路133は、メモリ保護なしを示すNULLを出力する。これにより、フェーズP4では、メモリ保護機能がない状態で、割り込みINT(8)に対応する処理が実行される。
フェーズP4では、次にプロセッサによって受け付けられるべき割り込みとして割り込みINT(1)が再び発生している。この割り込みINT(1)が再びプロセッサによって受け付けられ、割り込みINT(8)に対応する処理を中断して、割り込みINT(1)に対応する処理を実行するフェーズP5に移行する際には、履歴記憶部141の「エントリ2」にカレントグループ番号CUR_NUM「0」が記憶され、ライトポインタ142及びリードポインタ143の値がインクリメントされる。また、グループ番号レジスタ131が保持するグループ番号が、発生グループ番号NGEN_NUM「4」で更新され、アドレスバス監視部106は、フェーズP2と同様に、メモリ領域設定レジスタ132(4)が保持するメモリ領域に関する情報に基づいてアドレスバスを監視し、フェーズP5では、グループ番号「4」に対応するメモリ保護機能が実現する。
フェーズP5では、次にプロセッサによって受け付けられるべき割り込みとして、割り込みINT(2)が発生している。グループ番号生成回路101は、グループ番号設定レジスタ111(2)が保持するグループ番号「5」を、発生グループ番号NGEN_NUMとして出力する。割り込みINT(2)がプロセッサによって受け付けられ、その割り込みに対応した処理を実行するフェーズP6へ移行する際には、履歴記憶部141の「エントリ3」にカレントグループ番号CUR_NUM「4」が記憶され、グループ番号レジスタ131が保持するグループ番号が、発生グループ番号NGEN_NUM「5」で更新される。アドレスバス監視部106は、メモリ領域設定レジスタ132(5)が保持するメモリ領域に関する情報に基づいてアドレスバスを監視し、フェーズP6では、グループ番号「5」に対応するメモリ保護機能が実現する。
フェーズP6において、プロセッサが復帰命令を発生すると、フェーズP5で中断した割り込み1に対応する処理を再開するフェーズP7へ移行する。このときには、フェーズP2からフェーズP3へ移行する際と同様に、リードポインタ143が示す「エントリ3」に記憶されたグループ番号「4」によってグループ番号レジスタ131が保持するグループ番号が更新され、選択回路133は、メモリ領域設定レジスタ132(4)を選択する。アドレスバス監視部106は、フェーズP5と同様に、メモリ領域設定レジスタ132(4)が保持するメモリ領域に関する情報に基づいて、アドレスバスを監視し、フェーズP7では、グループ番号「5」に対応するメモリ保護機能が実現する。また、履歴管理バッファ104では、ライトポインタ142及びリードポインタ143の値がデクリメントされる。
以降、フェーズP7において、プロセッサが復帰命令を発生させると、グループ番号レジスタ131は、履歴記憶部141の「エントリ2」に記憶されたグループ番号「0」で更新され、フェーズP8では、メモリ保護機能なしで割り込みINT(8)に対応する処理が再開される。また、フェーズP8において、プロセッサが復帰命令を発生させると、グループ番号レジスタ131は、履歴記憶部141の「エントリ1」に記憶されたグループ番号「2」で更新され、フェーズP9では、フェーズP3で中断した割り込みINT(3)に対応した処理が、グループ「2」に対応するメモリ保護機能の下で再開される。
本実施形態例では、メモリ情報生成回路103は、各グループに対応して、そのグループに設定された割り込みに対応する処理でアクセス可能なメモリ領域に関する情報を記憶しており、グループ番号レジスタ131が保持するグループ番号に応じて、現在処理中の割り込みに対応する処理でアクセス可能なメモリ領域に関する情報を選択してこれを出力する。このため、例えば、グループごとにプログラムが作成され、他のグループにおけるメモリの使用状況をあらかじめ知ることができないような場合でも、あるグループに設定された割り込みに対応する処理がデータ領域として使用するメモリ領域が、他のグループに設定された割り込みに対応する処理によって書き換えられる事態を防止して、メモリ保護を図ることができる。
従来は、割り込みに対応した処理の開始の際と、割り込みに対応した処理から復帰する際とにおいて、それぞれ、OSが、次に実行される処理でアクセス可能なメモリ範囲を設定して、メモリ保護を図っていたため、メモリ保護を実現するのに要する時間が長く、割り込み応答性が悪化した。本実施形態例では、OSを介さずに、ハードウェアでメモリ保護を実現しているため、メモリ保護を実現するのに要する時間が短く、高い割り込み応答性を維持できる。このため、高いリアルタイム性が要求されるシステムにおいても、メモリ保護を図りつつ、各処理を実行することができ、メモリ保護違反を起してプログラムやデータが破壊される事態を防止して、システムの信頼性を向上させることができる。
本実施形態例では、プロセッサが新たに割り込みを受け付ける際には、現在実行中の割り込みに設定されたグループ番号を履歴管理バッファ104に格納して、グループ番号レジスタ131を、新たに受け付ける割り込みに設定されたグループ番号で更新する。また、現在処理中の割り込みが復帰命令を発生した際には、グループ番号レジスタ131を、履歴管理バッファ104に格納された、復帰命令を発生した現在実行中の割り込みの1つ前に実行していた割り込みに対応するグループ番号で更新する。このように構成することで、割り込みが多重に発生したような場合にも、メモリ情報生成回路103は、復帰先の割り込みに設定されたグループに対応する、アクセス可能なメモリ領域に関する情報を正しく設定することができる。
なお、上記実施形態例では、グループ番号生成回路101が、各割り込みに対応して設けられたグループ番号設定レジスタ111を参照して、発生した割り込みに対応するグループ番号を生成する例について説明したが、これに代えて、グループ番号生成回路101内に、各割り込みとグループ番号とを対応付けたテーブルを用意しておき、そのテーブルを参照してグループ番号を生成するようにしてもよい。また、履歴管理バッファ104は、現在実行中の割り込みよりも前に実行された割り込みに設定されたグループ番号の履歴を保持する構成であればよく、履歴記憶部141と、ライトポインタ142及びリードポインタ143とを用いる構成には限定されない。
上記実施形態例では、OSレベルの割り込みを、特別な割り込みとしてグループ0に設定したが、これに代えて、OSレベルの割り込みとユーザレベルの割り込みとを特に区別せずに、OSレベルの割り込みを、グループ番号「1」〜「m」の何れかのグループに設定することもできる。この場合、OSレベルの割り込みに割り当てられたグループに対応するメモリ領域設定レジスタ132は、そのグループの割り込みに対応する処理がアクセス可能なメモリ領域に関する情報として、メモリ領域の全領域を示す情報、或いは、NULLを保持するように構成することで、OSレベルの割り込みに対応する処理では、アドレスバス監視部106が、メモリ保護違反を検出しない構成とすることができる。
以上、本発明をその好適な実施形態例に基づいて説明したが、本発明のメモリ保護装置は、上記実施形態例にのみ限定されるものではなく、上記実施形態例の構成から種々の修正及び変更を施したものも、本発明の範囲に含まれる。
本発明の一実施形態例のメモリ保護装置を示すブロック図。 図1のメモリ保護装置の各部の動作を処理の進行と共に示すタイミングチャート。 割り込みの発生に伴って、プロセッサが実行する処理が変化する様子を示すタイミングチャート。
符号の説明
100:メモリ保護装置
101:グループ番号生成回路
102:セレクタ
103:メモリ情報生成回路
104:履歴管理バッファ
105:制御部
106:アドレスバス監視部
111:グループ番号設定レジスタ
131:グループ番号レジスタ
132:メモリ領域設定レジスタ
133:選択回路
141:履歴記憶部
142:ライトポインタ
143:リードポインタ

Claims (6)

  1. 割り込みに対応する処理を実行するプロセッサによるメモリアクセスを制限してメモリを保護するメモリ保護装置であって、
    プロセッサが実行する処理に対応してアクセス可能なメモリ領域を指定するメモリ領域情報を生成して出力するメモリ情報生成回路と、
    プロセッサによるメモリアクセスを監視し、メモリ情報生成回路が生成したメモリ領域情報で示されるメモリ領域外のメモリアクセスを検知すると、不正メモリアクセスが発生した旨の信号を出力するメモリアクセス監視回路とを備えることを特徴とするメモリ保護装置。
  2. 前記割り込みのそれぞれには、グループ番号が設定されており、
    前記メモリ情報生成回路は、前記グループ番号に対応して前記メモリ領域情報を記憶するメモリ領域情報記憶部と、プロセッサが実行中の処理に対応する割り込みのグループ番号を記憶するグループ番号レジスタと、該グループ番号レジスタが記憶する情報に基づいて、前記メモリ領域情報記憶部から前記メモリ領域情報を読み出すメモリ領域情報選択部とを備える、請求項1に記載のメモリ保護装置。
  3. 発生した割り込みに対応するグループ番号を生成するグループ番号生成回路を更に備え、前記グループ番号保持レジスタは、プロセッサが割り込みを受け付けると、前記グループ番号生成回路が出力するグループ番号によって更新される、請求項2に記載のメモリ保護装置。
  4. プロセッサが受け付けた割り込みのグループ番号の履歴を記憶する履歴管理部を更に備え、該履歴管理部は、前記グループ番号レジスタのグループ番号の更新に先立って、前記グループ番号レジスタに記憶されたグループ番号を記憶する、請求項3に記載のメモリ保護装置。
  5. 前記履歴管理部は、複数のグループ番号を記憶するスタック領域を備える、請求項4に記載のメモリ保護装置。
  6. 前記グループ番号保持レジスタは、プロセッサが復帰命令を発生すると、前記履歴管理部が記憶するグループ番号によって更新される、請求項4又は5に記載のメモリ保護装置。
JP2004088489A 2004-03-25 2004-03-25 メモリ保護装置 Expired - Fee Related JP4563707B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004088489A JP4563707B2 (ja) 2004-03-25 2004-03-25 メモリ保護装置
US11/086,762 US7325113B2 (en) 2004-03-25 2005-03-23 Memory protection apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004088489A JP4563707B2 (ja) 2004-03-25 2004-03-25 メモリ保護装置

Publications (2)

Publication Number Publication Date
JP2005275841A true JP2005275841A (ja) 2005-10-06
JP4563707B2 JP4563707B2 (ja) 2010-10-13

Family

ID=34991525

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004088489A Expired - Fee Related JP4563707B2 (ja) 2004-03-25 2004-03-25 メモリ保護装置

Country Status (2)

Country Link
US (1) US7325113B2 (ja)
JP (1) JP4563707B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008197707A (ja) * 2007-02-08 2008-08-28 Denso Corp マイクロコンピュータ
JP2014174758A (ja) * 2013-03-08 2014-09-22 Denso Corp 処理装置
US10521233B2 (en) 2014-03-14 2019-12-31 Denso Corporation Electronic control unit
JP2021507361A (ja) * 2017-12-15 2021-02-22 シー−スカイ マイクロシステムズ カンパニー,リミテッド 間接アクセスメモリコントローラ用のメモリ保護装置
JP2021507362A (ja) * 2017-12-15 2021-02-22 シー−スカイ マイクロシステムズ カンパニー,リミテッド 間接アクセスメモリコントローラ向けの保護機能を追加するための機器

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7844783B2 (en) * 2006-10-23 2010-11-30 International Business Machines Corporation Method for automatically detecting an attempted invalid access to a memory address by a software application in a mainframe computer
GB2513727B (en) * 2012-06-27 2015-06-24 Nordic Semiconductor Asa Memory protection

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000163309A (ja) * 1998-11-24 2000-06-16 Nec Corp メモリ管理方法およびメモリ管理装置、並びに記録媒体
JP2001325150A (ja) * 2000-03-10 2001-11-22 Fujitsu Ltd アクセス監視装置及びアクセス監視方法
JP2003036206A (ja) * 2001-05-14 2003-02-07 Matsushita Electric Ind Co Ltd 不正アクセス監視装置、icカード、不正アクセス監視方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1258807A3 (en) * 2001-05-14 2005-11-02 Matsushita Electric Industrial Co., Ltd. Illegal access monitoring device, ic card, and illegal access monitoring method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000163309A (ja) * 1998-11-24 2000-06-16 Nec Corp メモリ管理方法およびメモリ管理装置、並びに記録媒体
JP2001325150A (ja) * 2000-03-10 2001-11-22 Fujitsu Ltd アクセス監視装置及びアクセス監視方法
JP2003036206A (ja) * 2001-05-14 2003-02-07 Matsushita Electric Ind Co Ltd 不正アクセス監視装置、icカード、不正アクセス監視方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008197707A (ja) * 2007-02-08 2008-08-28 Denso Corp マイクロコンピュータ
JP2014174758A (ja) * 2013-03-08 2014-09-22 Denso Corp 処理装置
US10521233B2 (en) 2014-03-14 2019-12-31 Denso Corporation Electronic control unit
JP2021507361A (ja) * 2017-12-15 2021-02-22 シー−スカイ マイクロシステムズ カンパニー,リミテッド 間接アクセスメモリコントローラ用のメモリ保護装置
JP2021507362A (ja) * 2017-12-15 2021-02-22 シー−スカイ マイクロシステムズ カンパニー,リミテッド 間接アクセスメモリコントローラ向けの保護機能を追加するための機器
JP7201686B2 (ja) 2017-12-15 2023-01-10 シー-スカイ マイクロシステムズ カンパニー,リミテッド 間接アクセスメモリコントローラ向けの保護機能を追加するための機器
JP7213879B2 (ja) 2017-12-15 2023-01-27 シー-スカイ マイクロシステムズ カンパニー,リミテッド 間接アクセスメモリコントローラ用のメモリ保護装置
US11726675B2 (en) 2017-12-15 2023-08-15 C-Sky Microsystems Co., Ltd. Memory protective apparatus for indirect access memory controller

Also Published As

Publication number Publication date
JP4563707B2 (ja) 2010-10-13
US7325113B2 (en) 2008-01-29
US20050216686A1 (en) 2005-09-29

Similar Documents

Publication Publication Date Title
US7444668B2 (en) Method and apparatus for determining access permission
JP4911022B2 (ja) カウンタ制御回路、動的再構成回路およびループ処理制御方法
JP5044387B2 (ja) 情報処理装置及びそのスタックポインタ更新方法
JP6615726B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP2013250980A (ja) プロセッサ資源および実行保護の方法および装置
KR20090065531A (ko) 메모리 액세스 보안 관리
WO2014188160A1 (en) A method and apparatus for interrupt handling
KR20130137591A (ko) 불법 모드 변경처리
US10229077B2 (en) Method for data transfer between real-time tasks using a DMA memory controller
US7325113B2 (en) Memory protection apparatus
JP6838223B2 (ja) 車両制御装置
JP2016531363A (ja) 時間のかかる命令の取り扱い
JP2004280801A (ja) プロセッサおよびこのプロセッサ用のプログラムを生成するコンパイラ装置
JP2005084721A (ja) マイクロコンピュータ
JP4115576B2 (ja) マルチプロセッサシステム
CN109358903B (zh) 数据访问设备和访问错误通知方法
US11914715B2 (en) Device unit suitable for operation in a protected and/or open operating state and associated method
WO2010058525A1 (ja) 半導体集積回路及びレジスタアドレス制御装置
US11681527B2 (en) Electronic device and multiplexing method of spatial
JP2006085868A (ja) 書換え制限方法及び半導体装置
JP2011150457A (ja) 情報処理装置およびメモリアクセス制御方法
JP2005284760A (ja) 割り込み制御回路
JP2005209178A (ja) メモリ保護装置、メモリ保護方法及びメモリ保護プログラム
JP2005025340A (ja) メモリデータ保護装置
JP2019179282A (ja) 制御プログラム、及び制御システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070206

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20100217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100422

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100729

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130806

Year of fee payment: 3

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