(57)【要約】【課題】レジスタに保持されるアドレス情報及び属性情報の一部を組み合わせ回路により予め定数値として設定することにより、回路規模を削減し、設定のタイミングの制御を容易にし、かつ、消費電力を低減する。【解決手段】プロセッサ１は、バス１３に接続されるプロセッサコア１１ａと、プロセッサコア１１ａに設けられ、バス１３を介してメモリへアクセスするときにおけるメモリのアドレス及びプロセッサコア１１ａにおいて実行されるプログラムの命令の属性を監視し、予め設定されたアドレス及び属性との比較を行い、一致しないときに、プロセッサコア１１ａに例外の発生を通知するユニットであって、予め設定されたアドレスと属性の一部は、プロセッサコア１１ａを介してレジスタに設定され、予め設定されたアドレスと属性の他の一部は、組み合わせ回路により出力されるメモリ保護装置１２ａとを有する。【選択図】図３
2009271597.tif 000002
【特許請求の範囲】
【請求項１】
バスに接続されるプロセッサコアと、
前記プロセッサコアに設けられ、前記プロセッサコアにおいてプログラムが実行されることにより、前記バスを介してメモリへアクセスするときにおける前記メモリのアドレス及び前記プロセッサコアにおいて実行される前記プログラムの命令の属性を監視し、監視して得られたアドレス及び属性と、予め設定された複数のアドレス及び複数の属性との比較を行い、前記監視して得られたアドレスのビット列の全体或いは一部のビット列及び属性と、前記予め設定されたアドレスのビット列の全体或いは一部のビット列及び属性とが一致しないときに、アドレス違反又は属性違反の例外を発生し、前記プロセッサコアに前記例外の発生を通知するユニットであって、前記予め設定された複数のアドレスと複数の属性の一部は、前記プロセッサコアを介してレジスタに設定され、前記予め設定された複数のアドレスと複数の属性の他の一部は、組み合わせ回路により出力されるメモリ保護部と、
を有することを特徴とするプロセッサ。
【請求項２】
前記予め設定された複数のアドレスと複数の属性の前記一部及び前記他の一部は、それぞれ、前記プロセッサコアにおいて実行されるプログラム毎に設定され、出力されることを特徴とする請求項１に記載のプロセッサ。
【請求項３】
前記予め設定された複数のアドレスと複数の属性の前記他の一部は、前記プロセッサコアにおいて実行されるプログラムの命令の属性の全て又は一部に対応する属性を含むことを特徴とする請求項１に記載のプロセッサ。
【請求項４】
前記予め設定された複数のアドレスと複数の属性の前記他の一部は、前記プロセッサコアのメモリへアクセスする前記メモリのアドレスの全て又は一部に対応するアドレスを含むことを特徴とする請求項１に記載のプロセッサ。
【請求項５】
前記比較の結果を有効又は無効にするためのイネーブル信号を出力するイネーブル信号設定部を設けたことを特徴とする請求項１から請求項４の何れか１項に記載のプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサに関し、特に、メモリへのアクセスを監視するメモリ保護装置を有するプロセッサに関する。
【背景技術】
【０００２】
従来より、プロセッサ又はマルチプロセッサでは、複数のプログラムが並列に実行され、それら複数のプログラムの間において１つのメモリを共有している場合がある。例えば、ユーザインターフェースプログラム又はオペレーティングシステム（以下、OSという）が動作するホストプロセッサと、オーディオデータ又はビデオデータ等を処理するアプリケーションプログラムが動作するアプリケーションプロセッサとが、それぞれ１つのSDRAMを共有して動作している場合等である。
【０００３】
１つのメモリが、各プロセッサ上において実行されるプログラムによりアクセスされる場合、例えば、あるプログラムが誤って別のプログラム又はOSのプログラム領域又はスタック領域を書きつぶす、あるいは、意図的に、別のプログラム又はOSのプログラム又はデータを無許可で使用する等の誤動作、即ち、メモリへのアクセス違反が発生することがある。
【０００４】
このような誤動作が発生する原因としては、プログラムのバグ、ソフトエラー、意図的な攻撃等があり得る。プログラムのバグとは、例えば、スタックオーバーフロー、ポインタの付け換えミス、プロセッサ間又はプログラム間の仕様又は取り決めの勘違い、開発時に購入又は導入したソフトウエアIPの動作不良等である。ソフトエラーとは、例えば、宇宙からの放射線によりメモリ内の情報が書き換えられる場合等である。意図的な攻撃とは、例えば、製品化後、ユーザがダウンロードしたプログラムに悪意的なウイルスが混入されている場合等である。
【０００５】
そこで、このような誤動作を監視する装置として、メモリ保護装置が知られている。このメモリ保護装置は、あるプログラムのメモリへのアクセスを監視し、メモリへのアクセス違反をした場合には、他のタスクに悪影響を及ぼさないようにする装置である。このメモリ保護装置は、予め各領域に書き込み可、実行可等の属性を定義しておくと、属性違反のアクセスに対し、アクセス実行前に、例外またはトラップを発生する。このメモリ保護装置は、メモリマネージメントユニット（MMU）にマージされる場合もある。
【０００６】
このようなメモリ保護装置として、プログラムのロード、実行、停止、終了を監視するプログラム制御部と、その属性を生成してプログラム毎に属性領域に登録するプログラム領域生成部と、実行中のプログラムのメモリアクセスをプログラム単位でチェックするアクセスチェック機構とを有するメモリ属性管理方式が提案されている（例えば、特許文献１参照）。
【０００７】
しかし、このようなメモリ保護装置は、アドレス情報及び属性情報を保持するためにレジスタを使用する。レジスタは、回路規模が大きく、また、レジスタにアドレス情報及び属性情報を設定する際には、それらの設定のタイミングの制御も困難であり、消費電力を増大するという問題がある。
【特許文献１】特開２００１−５６７８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
そこで、本発明は、レジスタに保持されるアドレス情報及び属性情報の一部を組み合わせ回路により予め定数値として設定することにより、回路規模を削減し、設定のタイミングの制御を容易にし、かつ、消費電力を低減することができるプロセッサを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の一態様によれば、バスに接続されるプロセッサコアと、前記プロセッサコアに設けられ、前記プロセッサコアにおいてプログラムが実行されることにより、前記バスを介してメモリへアクセスするときにおける前記メモリのアドレス及び前記プロセッサコアにおいて実行される前記プログラムの命令の属性を監視し、監視して得られたアドレス及び属性と、予め設定された複数のアドレス及び複数の属性との比較を行い、前記監視して得られたアドレスのビット列の全体或いは一部のビット列及び属性と、前記予め設定されたアドレスのビット列の全体或いは一部のビット列及び属性とが一致しないときに、アドレス違反又は属性違反の例外を発生し、前記プロセッサコアに前記例外の発生を通知するユニットであって、前記予め設定された複数のアドレスと複数の属性の一部は、前記プロセッサコアを介してレジスタに設定され、前記予め設定された複数のアドレスと複数の属性の他の一部は、組み合わせ回路により出力されるメモリ保護部と、を有することを特徴とするプロセッサを提供することができる。
【発明の効果】
【００１０】
本発明のプロセッサによれば、レジスタに保持されるアドレス情報及び属性情報の一部を組み合わせ回路により予め定数値として設定することにより、回路規模を削減し、設定のタイミングの制御を容易にし、かつ、消費電力を低減することができる。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照して本発明の実施の形態を詳細に説明する。  
まず、図１から図３に基づいて、本発明の一実施の形態に係るプロセッサの構成を説明する。図１は、本実施の形態に係るプロセッサの全体構成を示すブロック図である。
【００１２】
図１に示すように、プロセッサ１は、プロセッサコア（以下、コアという）１１ａ及び１１ｂと、メモリ保護装置（以下、APU（Address Protection Unit）という）１２ａ及び１２ｂと、バス１３と、共有メモリとしてのメモリ１４とを有して、１チップの半導体装置として構成されている。なお、本実施の形態では、２つのコアを有しているが、１つのコア、或いは、３つ以上のコアを有していてもよい。
【００１３】
コア１１ａ及び１１ｂは、バス１３を介してメモリ１４と接続されている。APU１２ａ及び１２ｂは、それぞれコア１１ａ及び１１ｂからのメモリへのアクセスを監視する。詳しく言うと、APU１２ａは、コア１１ａにおいてプログラムが実行されることにより、バス１３を介してメモリ１４へアクセスするときにおけるメモリ１４のアドレス、及びコア１１ａにおいて実行されるプログラムの命令の属性を監視する。同様に、APU１２ｂは、コア１１ｂにおいてプログラムが実行されることにより、バス１３を介してメモリ１４へアクセスするときにおけるメモリ１４のアドレス、及びコア１１ｂにおいて実行されるプログラムの命令の属性を監視する。
【００１４】
ここで、命令の属性とは、実行されるプログラムがアクセスするメモリ領域のアドレスに対する読み出し（R）、書き込み（W）等の命令の種類、優先度等の情報である。
【００１５】
なお、メモリ１４は、チップの外部にあってもよい。また、プロセッサ１は、図１において点線で示すように、コア１１ａ及び１１ｂにそれぞれローカルメモリ１５ａ及び１５ｂを有する構成にしてもよい。
【００１６】
ここで、コア１１ａ、１１ｂとAPU１２ａ、１２ｂの構成について、コア１１ａ及びAPU１２ａの構成により説明する。図２は、コアとAPUの構成を示すブロック図である。
【００１７】
図２に示すように、APU１２ａは、アドレス／属性比較部１６を有して構成されている。アドレス／属性比較部１６は、後述する複数のアドレス／属性設定部を有しており、この複数のアドレス／属性設定部の一部は、設定可能であり、他の一部は、固定である。コア１１ａは、設定プログラムによって、APU１２ａのアドレス／属性比較部１６にアドレス情報SAD及び属性情報SATを設定する。APU１２ａには、バス１３のアドレスバスへのアドレス情報ADが入力されると共に、コア１１ａから、その入力されるアドレス情報ADに対応する属性情報IDが入力される。APU１２ａは、アドレス情報AD及び属性情報IDと設定プログラムを介して設定されたアドレス情報SAD及び属性情報SATを比較し、アドレス違反又は属性違反がある場合、例外信号EXを発生し、発生した例外信号EXをコア１１ａに出力する。即ち、APU１２ａは、アドレス違反又は属性違反に対して例外信号EXを発生し、発生した例外信号EXをコア１１ａに通知するユニットである。
【００１８】
具体的には、APU１２は、入力されるアドレスのビット列の全体或いは一部のビット列と、設定プログラムを介して設定されたアドレスのビット列の全体或いは一部のビット列が一致した場合で、その一致したアドレスにおいて、入力される属性と、設定プログラムを介して設定された属性とが一致しないときに、属性違反の例外信号EXを発生する。ここで、アドレスの一部のビット列とは、アドレスの所定の上位ビット部分である。これは、入力されたアドレスが、設定されたメモリの領域に含まれているか否かは、その領域の範囲を示す上位ビット部分が一致するか否かにより判定することができるからである。よって、そのような場合は、アドレスの全てを比較する必要がない。例えば、１キロバイトの領域毎に、属性を指定している場合には、アドレスの内、下位１０ビットは比較する必要がない。即ち、アドレスの内、下位１０ビットをマスクし、所定の上位ビットだけを比較することになる。
【００１９】
ここで、アドレス違反とは、バス１３のアドレスバスへのアドレス情報IDと、設定プログラムを介して設定されたアドレス情報SADあるいは後述する予め定数値として出力されるアドレス情報とが一致しないことをいう。また、属性違反とは、入力されるアドレス情報ADに対応する属性情報IDと、設定プログラムを介して設定された属性情報SATあるいは後述する予め定数値として出力される属性情報とが一致しないことをいう。
【００２０】
次に、APU１２ａの詳細な構成について説明する。図３は、APUの詳細な構成を示すブロック図である。
【００２１】
図３に示すように、APU１２ａは、コア１１ａとのインターフェースであるコアインターフェース（以下、コアI/Fという）２１と、アドレス／属性比較部１６と、OR回路２２とを有して構成されている。なお、コアI/F２１及びOR回路２２は、コア１１ａ内にあってもよい。
【００２２】
アドレス／属性比較部１６は、比較部４１及び比較部４２を有して構成されている。比較部４１は、アドレス／属性設定部５１と、イネーブル信号設定部（以下、ENという）５２と、アドレス比較部５３と、属性比較部５４と、AND回路５５とを有して構成されている。比較部４２は、アドレス／属性設定部６１と、EN６２と、アドレス比較部６３と、属性比較部６４と、AND回路６５とを有して構成されている。
【００２３】
コア１１ａからの設定情報は、プログラムが使用するメモリ領域のアドレス情報SADと、このメモリ領域の属性情報SATである。コア１１ａからの設定情報は、コアI/F２１を介して、アドレス／属性設定部５１に出力され、設定される。更に、コアI/F２１を介して、コア１１ａは、EN５２及びEN６２にイネーブル情報を出力し、設定可能となっている。
【００２４】
アドレス／属性設定部５１は、複数のレジスタからなるレジスタ群により構成されており、コアI/F２１からのアドレス情報SADと属性情報SATとを保持する。ここでは、アドレス情報としては、開始アドレスと、終了アドレスと、サイズと、無効領域の各情報であり、属性情報としては、読み出し（R）、書き込み（W）、実行（Ex）、キャッシュ（C）及び優先度等の情報である。これらの各情報の全てが、アドレス／属性設定部５１に設定されなくてもよく、必要な情報だけが設定されてもよい。
【００２５】
アドレス／属性設定部５１は、コアI/F２１を介して設定されたアドレス情報AD１をアドレス比較部５３に出力し、同様に、コアI/F２１を介して設定された属性情報ID１を属性比較部５４に出力する。アドレス比較部５３は、バス１３のアドレスバスへのアドレス情報ADと、アドレス／属性設定部５１からのアドレス情報AD１とを比較し、比較結果を属性比較部５４に出力する。
【００２６】
属性比較部５４は、コア１１ａからの属性情報IDと、アドレス／属性設定部５１からの属性情報AD１とを比較し、比較結果をAND回路５５に出力する。なお、属性情報IDは、コアI/F２１を介して、属性比較部５４に入力されてもよい。AND回路５５は、属性比較部５４の出力とEN５２の出力とのAND演算を行い、AND演算が行われた演算結果をOR回路２２に出力する。
【００２７】
一方、アドレス／属性設定部６１は、組み合わせ回路により構成されており、動的に変更する必要のないアドレス情報と属性情報とを予め定数値として出力されるように構成されている。組み合わせ回路は、入力信号によって、出力信号が一義的に決まる回路であり、所定の電圧を印加することにより所定の出力を得ることができる。アドレス／属性設定部６１から出力されるアドレス情報及び属性情報は、上述したアドレス／属性設定部５１が保持しているアドレス情報及び属性情報と同一の信号形式である。アドレス／属性設定部６１は、組み合わせ回路により予め定数値の信号として出力されるアドレス情報AD２をアドレス比較部６３に出力し、同様に、組み合わせ回路により予め定数値の信号として出力される属性情報ID２を属性比較部６４に出力する。アドレス比較部６３は、バス１３のアドレスバスへのアドレス情報ADと、アドレス／属性設定部６１からのアドレス情報AD２とを比較し、比較結果を属性比較部６４に出力する。
【００２８】
属性比較部６４は、コア１１ａからの属性情報IDと、アドレス／属性設定部６１からの属性情報ID２とを比較し、比較結果をAND回路６５に出力する。AND回路６５は、属性比較部６４の出力とEN６２の出力とのAND演算を行い、AND演算が行われた演算結果をOR回路２２に出力する。
【００２９】
OR回路２２は、AND回路５５及びAND回路６５のそれぞれから出力される演算結果に対してOR演算を行い、OR演算が行われた演算結果をコア１１ａに出力する。即ち、この演算結果は、例外信号EXとして、APU１２ａからコア１１ａに出力される。
【００３０】
具体的には、APU１２は、入力されるアドレスのビット列の全体或いは一部のビット列と、設定プログラムを介して設定されたアドレスのビット列の全体或いは一部のビット列が一致した場合で、その一致したアドレスにおいて、入力される属性と、設定プログラムを介して設定された属性とが一致しないときに、属性違反の例外信号EXを発生する。
【００３１】
ここで、レジスタにアドレス情報及び属性情報を設定するプログラムについて説明する。図４は、レジスタにアドレス情報及び属性情報を設定するプログラムの例を説明するための説明図である。
【００３２】
図４に示すように、プログラム７１には、OS、ユーザインターフェース、アプリケーションA、アプリケーションB等のプログラムが格納されている。また、プログラム７１には、矢印７２及び矢印７３により示す斜線の領域が存在し、この領域には、アドレス／属性設定部５１のレジスタ群にアドレス情報及び属性情報を設定するための命令が格納されている。矢印７２の示す斜線の領域には、アプリケーションA用のアドレス情報及び属性情報を設定するための命令が格納され、矢印７３の示す斜線の領域には、アプリケーションB用のアドレス情報及び属性情報を設定するための命令が格納されている。
【００３３】
即ち、コア１１ａは、アプリケーションAを実行する前に矢印７２の示す斜線の領域に格納されている命令を実行することにより、アプリケーションA用のアドレス情報及び属性情報をアドレス／属性設定部５１に設定することができる。
【００３４】
同様に、コア１１ａは、アプリケーションBを実行する前に矢印７３の示す斜線の領域に格納されている命令を実行することにより、アプリケーションB用のアドレス情報及び属性情報をアドレス／属性設定部５１に設定することができる。
【００３５】
本実施の形態では、レジスタに保持されるアドレス情報及び属性情報の一部を組み合わせ回路により予め定数値として設定すること特徴としている。例えば、アプリケーションプログラムあるいはタスク等のアドレス情報及び属性情報は、アプリケーション毎にメモリの使用領域等が異なるため、プログラムを介してレジスタに設定する。一方、ユーザインターフェースプログラムあるいはタスク及びOS等のアドレス情報及び属性情報は、メモリの使用領域等が変更されないため、組み合わせ回路により予め定数値として設定する。
【００３６】
次に、このように構成される実施の形態の動作について説明する。  
まず、コア１１ａからメモリ保護のためのアドレス情報SAD及び属性情報SATがAPU１２ａに出力される。コア１１ａから出力されたアドレス情報SAD及び属性情報SATは、コアI/F２１を介して、アドレス／属性設定部５１のレジスタにより構成される所定の領域に設定させる。
【００３７】
アドレス／属性設定部５１からは、レジスタに設定されたアドレス情報AD１及び属性情報ID１が、それぞれアドレス比較部５３及び属性比較部５４に出力される。アドレス比較部５３では、バス１３のアドレスバスへのアドレス情報ADとアドレス／属性設定部５１からのアドレス情報AD１とが比較され、アドレス違反があるか否かが検出される。このアドレス違反があるか否かを示す検出結果は、属性比較部５４に出力される。
【００３８】
属性比較部５４では、コア１１ａからの属性情報IDとアドレス／属性設定部５１からの属性情報ID１とが比較され、属性違反があるか否かが検出される。属性比較部５４では、アドレス違反又は属性違反が検出された場合、１がAND回路５５に出力され、アドレス違反又は属性違反が検出されない場合、０がAND回路５５に出力される。また、EN５２からは、イネーブルが有効な場合、１がAND回路５５に出力され、イネーブルが無効な場合、０がAND回路５５に出力される。AND回路５５は、属性比較部５４の出力とEN５２からの出力とのAND演算を行う。即ち、AND回路５５からは、アドレス違反又は属性違反が検出され、かつ、イネーブルが有効な場合のみ、１がOR回路２２に出力される。
【００３９】
一方、アドレス／属性設定部６１からは、組み合わせ回路により予め定数値として保持されているアドレス情報AD２及び属性情報ID２が、それぞれアドレス比較部６３及び属性比較部６４に出力される。アドレス比較部６３では、バス１３のアドレスバスへのアドレス情報ADとアドレス／属性設定部６１からのアドレス情報AD２とが比較され、アドレス違反があるか否かが検出される。このアドレス違反があるか否かを示す検出結果は、属性比較部６４に出力される。
【００４０】
属性比較部６４では、コア１１ａからの属性情報IDとアドレス／属性設定部６１からの属性情報ID２とが比較され、属性違反があるか否かが検出される。属性比較部６４では、アドレス違反又は属性違反が検出された場合、１がAND回路６５に出力され、アドレス違反又は属性違反が検出されない場合、０がAND回路６５に出力される。また、EN６２からは、イネーブルが有効な場合、１がAND回路６５に出力され、イネーブルが無効な場合、０がAND回路６５に出力される。AND回路６５は、属性比較部６４の出力とEN６２からの出力とのAND演算を行う。即ち、AND回路６５からは、アドレス違反又は属性違反が検出され、かつ、イネーブルが有効な場合のみ、１がOR回路２２に出力される。
【００４１】
OR回路２２では、AND回路５５の出力とAND回路６５の出力とのOR演算が行われる。AND回路５５又はAND回路６５のいずれか一方の出力が１の場合、OR回路２２から１が出力される。即ち、比較部４１又は比較部４２のいずれかにおいて、アドレス違反又は属性違反が検出されると、OR演算の結果が１となり、OR回路２２から例外の発生を通知する例外信号EXが、コア１１ａに出力される。
【００４２】
ＥＮ５２及びEN６２のそれぞれから出力されるイネーブル信号は、比較部４１及び比較部４２の制御を行うための信号であり、これらのイネーブル信号を制御することにより、対応する比較部の比較結果を有効又は無効にすることができる。
【００４３】
以上のように、レジスタに保持されるアドレス情報及び属性情報の一部を組み合わせ回路により予め定数値として設定するようにした。この結果、レジスタにより構成されていた領域を組み合わせ回路にすることにより、回路規模を削減できると共に、レジスタにアドレス情報及び属性情報を設定する際には、設定のタイミングの制御を容易にし、消費電力の低減をすることができる。
【００４４】
よって、本実施の形態のプロセッサによれば、レジスタに保持されるアドレス情報及び属性情報の一部を組み合わせ回路により予め定数値として設定することにより、回路規模を削減し、設定のタイミングの制御を容易にし、かつ、消費電力を低減することができる。
【００４５】
（応用例１）
次に、本実施の形態の応用例１について説明する。上述した実施の形態では、比較部４１のアドレス／属性設定部５１がレジスタにより構成され、比較部４２のアドレス／属性設定部６１が組み合わせ回路により構成されている例について説明したが、応用例１では、アドレス／属性設定部内の一部がレジスタにより構成され、他の一部が組み合わせ回路に構成されている例について説明する。なお、応用例１に係るプロセッサの構成は、図１及び図２と同様のため説明を省略する。
【００４６】
図５は、本実施の形態の応用例１に係るAPUの構成を示すブロック図である。図５において図３と同一の構成要素は、同一符号を付して説明を省略する。
【００４７】
図５に示すAPU１２ａ１は、図３のアドレス／属性設定部５１及びアドレス／属性設定部６１に代わり、それぞれアドレス／属性設定部５１ａ及びアドレス／属性設定部６１ａを用いて構成されている。
【００４８】
アドレス／属性設定部５１ａでは、アドレス情報が組み合わせ回路により予め定数値として設定され、属性情報がコアI/F２１を介して設定される構成になっている。このように設定されたアドレス情報は、アドレス比較部５３に出力され、属性情報は属性比較部５４に出力される。
【００４９】
同様に、アドレス／属性設定部６１ａでは、アドレス情報が組み合わせ回路により予め定数値として設定され、属性情報がコアI/F２１を介して設定される構成になっている。このように設定されたアドレス情報は、アドレス比較部６３に出力され、属性情報は属性比較部６４に出力される。その他の構成及び動作は、上述した実施の形態と同様なため説明を省略する。
【００５０】
以上のように、応用例１に係るAPU１２ａ１は、アドレス情報を組み合わせ回路、属性情報をレジスタにより構成するようにした。この結果、レジスタにより構成されていた領域を組合せ回路にすることにより、回路規模を削減できると共に、レジスタにアドレス情報及び属性情報を設定する際には、設定のタイミングの設定を容易にし、消費電力を低減することができる。
【００５１】
よって、応用例１のプロセッサによれば、上述した実施の形態と同様に、レジスタに保持されるアドレス情報及び属性情報の一部を組み合わせ回路により予め定数値として設定することにより、回路規模を削減し、設定のタイミングの制御を容易にし、かつ、消費電力を低減することができる。
【００５２】
なお、アドレス情報の全てを組み合わせ回路により構成しているが、アドレス情報の一部を組み合わせ回路により構成し、アドレス情報の他の一部をレジスタにより構成してもよい。また、アドレス情報の全てをレジスタにより構成し、属性情報の全てを組み合わせ回路により構成してもよい。或いは、属性情報の一部を組み合わせ回路により構成し、属性情報の他の一部をレジスタにより構成してもよい。
【００５３】
（応用例２）
次に、本実施の形態の応用例２について説明する。上述した実施の形態では、比較部４１及び４２の２つの比較部を有する構成の例について説明したが、応用例２では、８つの比較部を有する構成の例について説明する。なお、応用例２に係るプロセッサの構成は、図１及び図２と同様のため説明を省略する。
【００５４】
図６は、本実施の形態の応用例２に係るAPUの構成を示すブロック図である。図６において図３と同一の構成要素は、同一の符号を付して説明を省略する。
【００５５】
図６に示すAPU１２ａ２は、図３のアドレス／属性比較部１６に代わり、アドレス／属性比較部１６ａを用いて構成されている。
【００５６】
アドレス／属性比較部１６ａは、８つの比較部を含み、そのうちの４つの比較部は、上述した比較部４１であり、残りの４つの比較部は、上述した比較部４２である。各比較部４１には、コアI/F２１を介してアドレス／属性設定部５１にアドレス情報と属性情報が設定され、EN５２にイネーブル情報が設定される。また、各比較部４２には、コアI/F２１を介してEN６２にイネーブル情報が設定される。
【００５７】
各比較部４１及び各比較部４２のそれぞれには、アドレス情報及び属性情報が入力される。各比較部４１及び各比較部４２は、設定されたアドレス情報と入力されたアドレス情報との比較、更に、設定された属性情報と入力された属性情報との比較を行い、アドレス又は属性違反があるか否かを検出し、検出結果をOR回路２２に出力する。その他の構成及び動作は、上述した実施の形態と同様なため説明を省略する。
【００５８】
以上のように、応用例２に係るAPU１２ｃは、４つの比較部４１と、４つの比較部４２とを有する構成にした。この結果、３つ以上の複数のタスクを並列に実行する場合にも、並列に実行される複数のタスクのそれぞれについて、アドレス又は属性違反があるか否かを検出することができる。
【００５９】
また、APU１２ａ２は、アドレス情報及び属性情報が、組み合わせ回路により予め定数値として設定されている比較部４２を複数有する構成にすることにより、上述した実施の形態と同様に、レジスタに保持されるアドレス情報及び属性情報の一部を組み合わせ回路により予め定数値として設定することにより、回路規模を削減し、設定のタイミングの制御を容易にし、かつ、消費電力を低減することができる。
【００６０】
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【図面の簡単な説明】
【００６１】
【図１】本実施の形態に係るプロセッサの全体構成を示すブロック図である。
【図２】コアとAPUの構成を示すブロック図である。
【図３】APUの詳細な構成を示すブロック図である。
【図４】レジスタにアドレス情報及び属性情報を設定するプログラムの例を説明するための説明図である。
【図５】本実施の形態の応用例１に係るAPUの構成を示すブロック図である。
【図６】本実施の形態の応用例２に係るAPUの構成を示すブロック図である。
【符号の説明】
【００６２】
１  プロセッサ、１１ａ，１１ｂ  コア、１２ａ，１２ａ１，１２ａ２，１２ｂ  APU、１３  バス、１４  メモリ、１５ａ，１５ｂ  ローカルメモリ、１６，１６ａ  アドレス／属性比較部、２１  コアI/F、２２  OR回路、４１，４２  比較部、５１，５１ａ  アドレス／属性設定部、５２  EN、５３  アドレス比較部、５４  属性比較部、５５  AND回路、６１，６１ａ  アドレス／属性設定部、６２  EN、６３  アドレス比較部、６４  属性比較部、６５  AND回路
【図１】
2009271597.tif 000003
【図２】
2009271597.tif 000004
【図３】
2009271597.tif 000005
【図４】
2009271597.tif 000006
【図５】
2009271597.tif 000007
【図６】
2009271597.tif 000008