説明

プロセッサ

【課題】レジスタに保持されるアドレス情報及び属性情報の一部を組み合わせ回路により予め定数値として設定することにより、回路規模を削減し、設定のタイミングの制御を容易にし、かつ、消費電力を低減する。
【解決手段】プロセッサ1は、バス13に接続されるプロセッサコア11aと、プロセッサコア11aに設けられ、バス13を介してメモリへアクセスするときにおけるメモリのアドレス及びプロセッサコア11aにおいて実行されるプログラムの命令の属性を監視し、予め設定されたアドレス及び属性との比較を行い、一致しないときに、プロセッサコア11aに例外の発生を通知するユニットであって、予め設定されたアドレスと属性の一部は、プロセッサコア11aを介してレジスタに設定され、予め設定されたアドレスと属性の他の一部は、組み合わせ回路により出力されるメモリ保護装置12aとを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プロセッサに関し、特に、メモリへのアクセスを監視するメモリ保護装置を有するプロセッサに関する。
【背景技術】
【0002】
従来より、プロセッサ又はマルチプロセッサでは、複数のプログラムが並列に実行され、それら複数のプログラムの間において1つのメモリを共有している場合がある。例えば、ユーザインターフェースプログラム又はオペレーティングシステム(以下、OSという)が動作するホストプロセッサと、オーディオデータ又はビデオデータ等を処理するアプリケーションプログラムが動作するアプリケーションプロセッサとが、それぞれ1つのSDRAMを共有して動作している場合等である。
【0003】
1つのメモリが、各プロセッサ上において実行されるプログラムによりアクセスされる場合、例えば、あるプログラムが誤って別のプログラム又はOSのプログラム領域又はスタック領域を書きつぶす、あるいは、意図的に、別のプログラム又はOSのプログラム又はデータを無許可で使用する等の誤動作、即ち、メモリへのアクセス違反が発生することがある。
【0004】
このような誤動作が発生する原因としては、プログラムのバグ、ソフトエラー、意図的な攻撃等があり得る。プログラムのバグとは、例えば、スタックオーバーフロー、ポインタの付け換えミス、プロセッサ間又はプログラム間の仕様又は取り決めの勘違い、開発時に購入又は導入したソフトウエアIPの動作不良等である。ソフトエラーとは、例えば、宇宙からの放射線によりメモリ内の情報が書き換えられる場合等である。意図的な攻撃とは、例えば、製品化後、ユーザがダウンロードしたプログラムに悪意的なウイルスが混入されている場合等である。
【0005】
そこで、このような誤動作を監視する装置として、メモリ保護装置が知られている。このメモリ保護装置は、あるプログラムのメモリへのアクセスを監視し、メモリへのアクセス違反をした場合には、他のタスクに悪影響を及ぼさないようにする装置である。このメモリ保護装置は、予め各領域に書き込み可、実行可等の属性を定義しておくと、属性違反のアクセスに対し、アクセス実行前に、例外またはトラップを発生する。このメモリ保護装置は、メモリマネージメントユニット(MMU)にマージされる場合もある。
【0006】
このようなメモリ保護装置として、プログラムのロード、実行、停止、終了を監視するプログラム制御部と、その属性を生成してプログラム毎に属性領域に登録するプログラム領域生成部と、実行中のプログラムのメモリアクセスをプログラム単位でチェックするアクセスチェック機構とを有するメモリ属性管理方式が提案されている(例えば、特許文献1参照)。
【0007】
しかし、このようなメモリ保護装置は、アドレス情報及び属性情報を保持するためにレジスタを使用する。レジスタは、回路規模が大きく、また、レジスタにアドレス情報及び属性情報を設定する際には、それらの設定のタイミングの制御も困難であり、消費電力を増大するという問題がある。
【特許文献1】特開2001−56783号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
そこで、本発明は、レジスタに保持されるアドレス情報及び属性情報の一部を組み合わせ回路により予め定数値として設定することにより、回路規模を削減し、設定のタイミングの制御を容易にし、かつ、消費電力を低減することができるプロセッサを提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明の一態様によれば、バスに接続されるプロセッサコアと、前記プロセッサコアに設けられ、前記プロセッサコアにおいてプログラムが実行されることにより、前記バスを介してメモリへアクセスするときにおける前記メモリのアドレス及び前記プロセッサコアにおいて実行される前記プログラムの命令の属性を監視し、監視して得られたアドレス及び属性と、予め設定された複数のアドレス及び複数の属性との比較を行い、前記監視して得られたアドレスのビット列の全体或いは一部のビット列及び属性と、前記予め設定されたアドレスのビット列の全体或いは一部のビット列及び属性とが一致しないときに、アドレス違反又は属性違反の例外を発生し、前記プロセッサコアに前記例外の発生を通知するユニットであって、前記予め設定された複数のアドレスと複数の属性の一部は、前記プロセッサコアを介してレジスタに設定され、前記予め設定された複数のアドレスと複数の属性の他の一部は、組み合わせ回路により出力されるメモリ保護部と、を有することを特徴とするプロセッサを提供することができる。
【発明の効果】
【0010】
本発明のプロセッサによれば、レジスタに保持されるアドレス情報及び属性情報の一部を組み合わせ回路により予め定数値として設定することにより、回路規模を削減し、設定のタイミングの制御を容易にし、かつ、消費電力を低減することができる。
【発明を実施するための最良の形態】
【0011】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
まず、図1から図3に基づいて、本発明の一実施の形態に係るプロセッサの構成を説明する。図1は、本実施の形態に係るプロセッサの全体構成を示すブロック図である。
【0012】
図1に示すように、プロセッサ1は、プロセッサコア(以下、コアという)11a及び11bと、メモリ保護装置(以下、APU(Address Protection Unit)という)12a及び12bと、バス13と、共有メモリとしてのメモリ14とを有して、1チップの半導体装置として構成されている。なお、本実施の形態では、2つのコアを有しているが、1つのコア、或いは、3つ以上のコアを有していてもよい。
【0013】
コア11a及び11bは、バス13を介してメモリ14と接続されている。APU12a及び12bは、それぞれコア11a及び11bからのメモリへのアクセスを監視する。詳しく言うと、APU12aは、コア11aにおいてプログラムが実行されることにより、バス13を介してメモリ14へアクセスするときにおけるメモリ14のアドレス、及びコア11aにおいて実行されるプログラムの命令の属性を監視する。同様に、APU12bは、コア11bにおいてプログラムが実行されることにより、バス13を介してメモリ14へアクセスするときにおけるメモリ14のアドレス、及びコア11bにおいて実行されるプログラムの命令の属性を監視する。
【0014】
ここで、命令の属性とは、実行されるプログラムがアクセスするメモリ領域のアドレスに対する読み出し(R)、書き込み(W)等の命令の種類、優先度等の情報である。
【0015】
なお、メモリ14は、チップの外部にあってもよい。また、プロセッサ1は、図1において点線で示すように、コア11a及び11bにそれぞれローカルメモリ15a及び15bを有する構成にしてもよい。
【0016】
ここで、コア11a、11bとAPU12a、12bの構成について、コア11a及びAPU12aの構成により説明する。図2は、コアとAPUの構成を示すブロック図である。
【0017】
図2に示すように、APU12aは、アドレス/属性比較部16を有して構成されている。アドレス/属性比較部16は、後述する複数のアドレス/属性設定部を有しており、この複数のアドレス/属性設定部の一部は、設定可能であり、他の一部は、固定である。コア11aは、設定プログラムによって、APU12aのアドレス/属性比較部16にアドレス情報SAD及び属性情報SATを設定する。APU12aには、バス13のアドレスバスへのアドレス情報ADが入力されると共に、コア11aから、その入力されるアドレス情報ADに対応する属性情報IDが入力される。APU12aは、アドレス情報AD及び属性情報IDと設定プログラムを介して設定されたアドレス情報SAD及び属性情報SATを比較し、アドレス違反又は属性違反がある場合、例外信号EXを発生し、発生した例外信号EXをコア11aに出力する。即ち、APU12aは、アドレス違反又は属性違反に対して例外信号EXを発生し、発生した例外信号EXをコア11aに通知するユニットである。
【0018】
具体的には、APU12は、入力されるアドレスのビット列の全体或いは一部のビット列と、設定プログラムを介して設定されたアドレスのビット列の全体或いは一部のビット列が一致した場合で、その一致したアドレスにおいて、入力される属性と、設定プログラムを介して設定された属性とが一致しないときに、属性違反の例外信号EXを発生する。ここで、アドレスの一部のビット列とは、アドレスの所定の上位ビット部分である。これは、入力されたアドレスが、設定されたメモリの領域に含まれているか否かは、その領域の範囲を示す上位ビット部分が一致するか否かにより判定することができるからである。よって、そのような場合は、アドレスの全てを比較する必要がない。例えば、1キロバイトの領域毎に、属性を指定している場合には、アドレスの内、下位10ビットは比較する必要がない。即ち、アドレスの内、下位10ビットをマスクし、所定の上位ビットだけを比較することになる。
【0019】
ここで、アドレス違反とは、バス13のアドレスバスへのアドレス情報IDと、設定プログラムを介して設定されたアドレス情報SADあるいは後述する予め定数値として出力されるアドレス情報とが一致しないことをいう。また、属性違反とは、入力されるアドレス情報ADに対応する属性情報IDと、設定プログラムを介して設定された属性情報SATあるいは後述する予め定数値として出力される属性情報とが一致しないことをいう。
【0020】
次に、APU12aの詳細な構成について説明する。図3は、APUの詳細な構成を示すブロック図である。
【0021】
図3に示すように、APU12aは、コア11aとのインターフェースであるコアインターフェース(以下、コアI/Fという)21と、アドレス/属性比較部16と、OR回路22とを有して構成されている。なお、コアI/F21及びOR回路22は、コア11a内にあってもよい。
【0022】
アドレス/属性比較部16は、比較部41及び比較部42を有して構成されている。比較部41は、アドレス/属性設定部51と、イネーブル信号設定部(以下、ENという)52と、アドレス比較部53と、属性比較部54と、AND回路55とを有して構成されている。比較部42は、アドレス/属性設定部61と、EN62と、アドレス比較部63と、属性比較部64と、AND回路65とを有して構成されている。
【0023】
コア11aからの設定情報は、プログラムが使用するメモリ領域のアドレス情報SADと、このメモリ領域の属性情報SATである。コア11aからの設定情報は、コアI/F21を介して、アドレス/属性設定部51に出力され、設定される。更に、コアI/F21を介して、コア11aは、EN52及びEN62にイネーブル情報を出力し、設定可能となっている。
【0024】
アドレス/属性設定部51は、複数のレジスタからなるレジスタ群により構成されており、コアI/F21からのアドレス情報SADと属性情報SATとを保持する。ここでは、アドレス情報としては、開始アドレスと、終了アドレスと、サイズと、無効領域の各情報であり、属性情報としては、読み出し(R)、書き込み(W)、実行(Ex)、キャッシュ(C)及び優先度等の情報である。これらの各情報の全てが、アドレス/属性設定部51に設定されなくてもよく、必要な情報だけが設定されてもよい。
【0025】
アドレス/属性設定部51は、コアI/F21を介して設定されたアドレス情報AD1をアドレス比較部53に出力し、同様に、コアI/F21を介して設定された属性情報ID1を属性比較部54に出力する。アドレス比較部53は、バス13のアドレスバスへのアドレス情報ADと、アドレス/属性設定部51からのアドレス情報AD1とを比較し、比較結果を属性比較部54に出力する。
【0026】
属性比較部54は、コア11aからの属性情報IDと、アドレス/属性設定部51からの属性情報AD1とを比較し、比較結果をAND回路55に出力する。なお、属性情報IDは、コアI/F21を介して、属性比較部54に入力されてもよい。AND回路55は、属性比較部54の出力とEN52の出力とのAND演算を行い、AND演算が行われた演算結果をOR回路22に出力する。
【0027】
一方、アドレス/属性設定部61は、組み合わせ回路により構成されており、動的に変更する必要のないアドレス情報と属性情報とを予め定数値として出力されるように構成されている。組み合わせ回路は、入力信号によって、出力信号が一義的に決まる回路であり、所定の電圧を印加することにより所定の出力を得ることができる。アドレス/属性設定部61から出力されるアドレス情報及び属性情報は、上述したアドレス/属性設定部51が保持しているアドレス情報及び属性情報と同一の信号形式である。アドレス/属性設定部61は、組み合わせ回路により予め定数値の信号として出力されるアドレス情報AD2をアドレス比較部63に出力し、同様に、組み合わせ回路により予め定数値の信号として出力される属性情報ID2を属性比較部64に出力する。アドレス比較部63は、バス13のアドレスバスへのアドレス情報ADと、アドレス/属性設定部61からのアドレス情報AD2とを比較し、比較結果を属性比較部64に出力する。
【0028】
属性比較部64は、コア11aからの属性情報IDと、アドレス/属性設定部61からの属性情報ID2とを比較し、比較結果をAND回路65に出力する。AND回路65は、属性比較部64の出力とEN62の出力とのAND演算を行い、AND演算が行われた演算結果をOR回路22に出力する。
【0029】
OR回路22は、AND回路55及びAND回路65のそれぞれから出力される演算結果に対してOR演算を行い、OR演算が行われた演算結果をコア11aに出力する。即ち、この演算結果は、例外信号EXとして、APU12aからコア11aに出力される。
【0030】
具体的には、APU12は、入力されるアドレスのビット列の全体或いは一部のビット列と、設定プログラムを介して設定されたアドレスのビット列の全体或いは一部のビット列が一致した場合で、その一致したアドレスにおいて、入力される属性と、設定プログラムを介して設定された属性とが一致しないときに、属性違反の例外信号EXを発生する。
【0031】
ここで、レジスタにアドレス情報及び属性情報を設定するプログラムについて説明する。図4は、レジスタにアドレス情報及び属性情報を設定するプログラムの例を説明するための説明図である。
【0032】
図4に示すように、プログラム71には、OS、ユーザインターフェース、アプリケーションA、アプリケーションB等のプログラムが格納されている。また、プログラム71には、矢印72及び矢印73により示す斜線の領域が存在し、この領域には、アドレス/属性設定部51のレジスタ群にアドレス情報及び属性情報を設定するための命令が格納されている。矢印72の示す斜線の領域には、アプリケーションA用のアドレス情報及び属性情報を設定するための命令が格納され、矢印73の示す斜線の領域には、アプリケーションB用のアドレス情報及び属性情報を設定するための命令が格納されている。
【0033】
即ち、コア11aは、アプリケーションAを実行する前に矢印72の示す斜線の領域に格納されている命令を実行することにより、アプリケーションA用のアドレス情報及び属性情報をアドレス/属性設定部51に設定することができる。
【0034】
同様に、コア11aは、アプリケーションBを実行する前に矢印73の示す斜線の領域に格納されている命令を実行することにより、アプリケーションB用のアドレス情報及び属性情報をアドレス/属性設定部51に設定することができる。
【0035】
本実施の形態では、レジスタに保持されるアドレス情報及び属性情報の一部を組み合わせ回路により予め定数値として設定すること特徴としている。例えば、アプリケーションプログラムあるいはタスク等のアドレス情報及び属性情報は、アプリケーション毎にメモリの使用領域等が異なるため、プログラムを介してレジスタに設定する。一方、ユーザインターフェースプログラムあるいはタスク及びOS等のアドレス情報及び属性情報は、メモリの使用領域等が変更されないため、組み合わせ回路により予め定数値として設定する。
【0036】
次に、このように構成される実施の形態の動作について説明する。
まず、コア11aからメモリ保護のためのアドレス情報SAD及び属性情報SATがAPU12aに出力される。コア11aから出力されたアドレス情報SAD及び属性情報SATは、コアI/F21を介して、アドレス/属性設定部51のレジスタにより構成される所定の領域に設定させる。
【0037】
アドレス/属性設定部51からは、レジスタに設定されたアドレス情報AD1及び属性情報ID1が、それぞれアドレス比較部53及び属性比較部54に出力される。アドレス比較部53では、バス13のアドレスバスへのアドレス情報ADとアドレス/属性設定部51からのアドレス情報AD1とが比較され、アドレス違反があるか否かが検出される。このアドレス違反があるか否かを示す検出結果は、属性比較部54に出力される。
【0038】
属性比較部54では、コア11aからの属性情報IDとアドレス/属性設定部51からの属性情報ID1とが比較され、属性違反があるか否かが検出される。属性比較部54では、アドレス違反又は属性違反が検出された場合、1がAND回路55に出力され、アドレス違反又は属性違反が検出されない場合、0がAND回路55に出力される。また、EN52からは、イネーブルが有効な場合、1がAND回路55に出力され、イネーブルが無効な場合、0がAND回路55に出力される。AND回路55は、属性比較部54の出力とEN52からの出力とのAND演算を行う。即ち、AND回路55からは、アドレス違反又は属性違反が検出され、かつ、イネーブルが有効な場合のみ、1がOR回路22に出力される。
【0039】
一方、アドレス/属性設定部61からは、組み合わせ回路により予め定数値として保持されているアドレス情報AD2及び属性情報ID2が、それぞれアドレス比較部63及び属性比較部64に出力される。アドレス比較部63では、バス13のアドレスバスへのアドレス情報ADとアドレス/属性設定部61からのアドレス情報AD2とが比較され、アドレス違反があるか否かが検出される。このアドレス違反があるか否かを示す検出結果は、属性比較部64に出力される。
【0040】
属性比較部64では、コア11aからの属性情報IDとアドレス/属性設定部61からの属性情報ID2とが比較され、属性違反があるか否かが検出される。属性比較部64では、アドレス違反又は属性違反が検出された場合、1がAND回路65に出力され、アドレス違反又は属性違反が検出されない場合、0がAND回路65に出力される。また、EN62からは、イネーブルが有効な場合、1がAND回路65に出力され、イネーブルが無効な場合、0がAND回路65に出力される。AND回路65は、属性比較部64の出力とEN62からの出力とのAND演算を行う。即ち、AND回路65からは、アドレス違反又は属性違反が検出され、かつ、イネーブルが有効な場合のみ、1がOR回路22に出力される。
【0041】
OR回路22では、AND回路55の出力とAND回路65の出力とのOR演算が行われる。AND回路55又はAND回路65のいずれか一方の出力が1の場合、OR回路22から1が出力される。即ち、比較部41又は比較部42のいずれかにおいて、アドレス違反又は属性違反が検出されると、OR演算の結果が1となり、OR回路22から例外の発生を通知する例外信号EXが、コア11aに出力される。
【0042】
EN52及びEN62のそれぞれから出力されるイネーブル信号は、比較部41及び比較部42の制御を行うための信号であり、これらのイネーブル信号を制御することにより、対応する比較部の比較結果を有効又は無効にすることができる。
【0043】
以上のように、レジスタに保持されるアドレス情報及び属性情報の一部を組み合わせ回路により予め定数値として設定するようにした。この結果、レジスタにより構成されていた領域を組み合わせ回路にすることにより、回路規模を削減できると共に、レジスタにアドレス情報及び属性情報を設定する際には、設定のタイミングの制御を容易にし、消費電力の低減をすることができる。
【0044】
よって、本実施の形態のプロセッサによれば、レジスタに保持されるアドレス情報及び属性情報の一部を組み合わせ回路により予め定数値として設定することにより、回路規模を削減し、設定のタイミングの制御を容易にし、かつ、消費電力を低減することができる。
【0045】
(応用例1)
次に、本実施の形態の応用例1について説明する。上述した実施の形態では、比較部41のアドレス/属性設定部51がレジスタにより構成され、比較部42のアドレス/属性設定部61が組み合わせ回路により構成されている例について説明したが、応用例1では、アドレス/属性設定部内の一部がレジスタにより構成され、他の一部が組み合わせ回路に構成されている例について説明する。なお、応用例1に係るプロセッサの構成は、図1及び図2と同様のため説明を省略する。
【0046】
図5は、本実施の形態の応用例1に係るAPUの構成を示すブロック図である。図5において図3と同一の構成要素は、同一符号を付して説明を省略する。
【0047】
図5に示すAPU12a1は、図3のアドレス/属性設定部51及びアドレス/属性設定部61に代わり、それぞれアドレス/属性設定部51a及びアドレス/属性設定部61aを用いて構成されている。
【0048】
アドレス/属性設定部51aでは、アドレス情報が組み合わせ回路により予め定数値として設定され、属性情報がコアI/F21を介して設定される構成になっている。このように設定されたアドレス情報は、アドレス比較部53に出力され、属性情報は属性比較部54に出力される。
【0049】
同様に、アドレス/属性設定部61aでは、アドレス情報が組み合わせ回路により予め定数値として設定され、属性情報がコアI/F21を介して設定される構成になっている。このように設定されたアドレス情報は、アドレス比較部63に出力され、属性情報は属性比較部64に出力される。その他の構成及び動作は、上述した実施の形態と同様なため説明を省略する。
【0050】
以上のように、応用例1に係るAPU12a1は、アドレス情報を組み合わせ回路、属性情報をレジスタにより構成するようにした。この結果、レジスタにより構成されていた領域を組合せ回路にすることにより、回路規模を削減できると共に、レジスタにアドレス情報及び属性情報を設定する際には、設定のタイミングの設定を容易にし、消費電力を低減することができる。
【0051】
よって、応用例1のプロセッサによれば、上述した実施の形態と同様に、レジスタに保持されるアドレス情報及び属性情報の一部を組み合わせ回路により予め定数値として設定することにより、回路規模を削減し、設定のタイミングの制御を容易にし、かつ、消費電力を低減することができる。
【0052】
なお、アドレス情報の全てを組み合わせ回路により構成しているが、アドレス情報の一部を組み合わせ回路により構成し、アドレス情報の他の一部をレジスタにより構成してもよい。また、アドレス情報の全てをレジスタにより構成し、属性情報の全てを組み合わせ回路により構成してもよい。或いは、属性情報の一部を組み合わせ回路により構成し、属性情報の他の一部をレジスタにより構成してもよい。
【0053】
(応用例2)
次に、本実施の形態の応用例2について説明する。上述した実施の形態では、比較部41及び42の2つの比較部を有する構成の例について説明したが、応用例2では、8つの比較部を有する構成の例について説明する。なお、応用例2に係るプロセッサの構成は、図1及び図2と同様のため説明を省略する。
【0054】
図6は、本実施の形態の応用例2に係るAPUの構成を示すブロック図である。図6において図3と同一の構成要素は、同一の符号を付して説明を省略する。
【0055】
図6に示すAPU12a2は、図3のアドレス/属性比較部16に代わり、アドレス/属性比較部16aを用いて構成されている。
【0056】
アドレス/属性比較部16aは、8つの比較部を含み、そのうちの4つの比較部は、上述した比較部41であり、残りの4つの比較部は、上述した比較部42である。各比較部41には、コアI/F21を介してアドレス/属性設定部51にアドレス情報と属性情報が設定され、EN52にイネーブル情報が設定される。また、各比較部42には、コアI/F21を介してEN62にイネーブル情報が設定される。
【0057】
各比較部41及び各比較部42のそれぞれには、アドレス情報及び属性情報が入力される。各比較部41及び各比較部42は、設定されたアドレス情報と入力されたアドレス情報との比較、更に、設定された属性情報と入力された属性情報との比較を行い、アドレス又は属性違反があるか否かを検出し、検出結果をOR回路22に出力する。その他の構成及び動作は、上述した実施の形態と同様なため説明を省略する。
【0058】
以上のように、応用例2に係るAPU12cは、4つの比較部41と、4つの比較部42とを有する構成にした。この結果、3つ以上の複数のタスクを並列に実行する場合にも、並列に実行される複数のタスクのそれぞれについて、アドレス又は属性違反があるか否かを検出することができる。
【0059】
また、APU12a2は、アドレス情報及び属性情報が、組み合わせ回路により予め定数値として設定されている比較部42を複数有する構成にすることにより、上述した実施の形態と同様に、レジスタに保持されるアドレス情報及び属性情報の一部を組み合わせ回路により予め定数値として設定することにより、回路規模を削減し、設定のタイミングの制御を容易にし、かつ、消費電力を低減することができる。
【0060】
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【図面の簡単な説明】
【0061】
【図1】本実施の形態に係るプロセッサの全体構成を示すブロック図である。
【図2】コアとAPUの構成を示すブロック図である。
【図3】APUの詳細な構成を示すブロック図である。
【図4】レジスタにアドレス情報及び属性情報を設定するプログラムの例を説明するための説明図である。
【図5】本実施の形態の応用例1に係るAPUの構成を示すブロック図である。
【図6】本実施の形態の応用例2に係るAPUの構成を示すブロック図である。
【符号の説明】
【0062】
1 プロセッサ、11a,11b コア、12a,12a1,12a2,12b APU、13 バス、14 メモリ、15a,15b ローカルメモリ、16,16a アドレス/属性比較部、21 コアI/F、22 OR回路、41,42 比較部、51,51a アドレス/属性設定部、52 EN、53 アドレス比較部、54 属性比較部、55 AND回路、61,61a アドレス/属性設定部、62 EN、63 アドレス比較部、64 属性比較部、65 AND回路

【特許請求の範囲】
【請求項1】
バスに接続されるプロセッサコアと、
前記プロセッサコアに設けられ、前記プロセッサコアにおいてプログラムが実行されることにより、前記バスを介してメモリへアクセスするときにおける前記メモリのアドレス及び前記プロセッサコアにおいて実行される前記プログラムの命令の属性を監視し、監視して得られたアドレス及び属性と、予め設定された複数のアドレス及び複数の属性との比較を行い、前記監視して得られたアドレスのビット列の全体或いは一部のビット列及び属性と、前記予め設定されたアドレスのビット列の全体或いは一部のビット列及び属性とが一致しないときに、アドレス違反又は属性違反の例外を発生し、前記プロセッサコアに前記例外の発生を通知するユニットであって、前記予め設定された複数のアドレスと複数の属性の一部は、前記プロセッサコアを介してレジスタに設定され、前記予め設定された複数のアドレスと複数の属性の他の一部は、組み合わせ回路により出力されるメモリ保護部と、
を有することを特徴とするプロセッサ。
【請求項2】
前記予め設定された複数のアドレスと複数の属性の前記一部及び前記他の一部は、それぞれ、前記プロセッサコアにおいて実行されるプログラム毎に設定され、出力されることを特徴とする請求項1に記載のプロセッサ。
【請求項3】
前記予め設定された複数のアドレスと複数の属性の前記他の一部は、前記プロセッサコアにおいて実行されるプログラムの命令の属性の全て又は一部に対応する属性を含むことを特徴とする請求項1に記載のプロセッサ。
【請求項4】
前記予め設定された複数のアドレスと複数の属性の前記他の一部は、前記プロセッサコアのメモリへアクセスする前記メモリのアドレスの全て又は一部に対応するアドレスを含むことを特徴とする請求項1に記載のプロセッサ。
【請求項5】
前記比較の結果を有効又は無効にするためのイネーブル信号を出力するイネーブル信号設定部を設けたことを特徴とする請求項1から請求項4の何れか1項に記載のプロセッサ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2009−271597(P2009−271597A)
【公開日】平成21年11月19日(2009.11.19)
【国際特許分類】
【出願番号】特願2008−119065(P2008−119065)
【出願日】平成20年4月30日(2008.4.30)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】