(57)【要約】【課題】コプロセッサの命令セット又はコプロセッサを容易に追加することができる同期式プロセッサシステムを提供する。【解決手段】プロセッサシステム１００は、メインプロセッサ用命令データを記憶するメインプロセッサ用命令メモリ１１０と、前記メインプロセッサ用命令メモリ１１０に記憶されたメインプロセッサ用命令データに従って命令メモリアドレス及び設定データを生成するメインプロセッサ１２０と、コプロセッサ用命令データを記憶するコプロセッサ用命令メモリ１３０と、前記コプロセッサ用命令メモリ１３０に記憶されたコプロセッサ用命令データに従って処理を行うコプロセッサ１５０と、前記コプロセッサ用命令メモリ１３０から前記コプロセッサ用命令データを読み出し、前記メインプロセッサ１２０によって生成された命令メモリアドレス及び設定データに従って前記コプロセッサ用命令データを前記コプロセッサ１５０に供給する命令供給部１４０と、を備える。【選択図】図１
2009026131.tif 000002
【特許請求の範囲】
【請求項１】
メインプロセッサ用命令データを記憶するメインプロセッサ用命令メモリと、
前記メインプロセッサ用命令メモリに記憶されたメインプロセッサ用命令データに従って命令メモリアドレス及び設定データを生成するメインプロセッサと、
コプロセッサ用命令データを記憶するコプロセッサ用命令メモリと、
前記コプロセッサ用命令メモリに記憶されたコプロセッサ用命令データに従って処理を行うコプロセッサと、
前記コプロセッサ用命令メモリから前記コプロセッサ用命令データを読み出し、前記メインプロセッサによって生成された命令メモリアドレス及び設定データに従って前記コプロセッサ用命令データを前記コプロセッサに供給する命令供給部と、を備えることを特徴とするプロセッサシステム。
【請求項２】
前記命令供給部は、前記命令メモリアドレスと前記設定データを比較し、比較結果を生成する命令メモリアドレス比較部を備える請求項１に記載のプロセッサシステム。
【請求項３】
前記命令供給部は、前記命令メモリアドレス比較部によって生成された比較結果が前記命令メモリアドレスと前記設定データが一致することを示す場合に、前記命令メモリアドレスに前記コプロセッサ用命令メモリから前記コプロセッサ用命令データを読み出し、前記コプロセッサに供給する命令選択部をさらに備える請求項２に記載のプロセッサシステム。
【請求項４】
前記命令メモリアドレス比較部は、
前記設定データを記憶するレジスタと、
前記メインプロセッサによって生成された命令メモリアドレスと前記レジスタに記憶された設定データを比較する比較回路と、
前記比較回路の比較結果が一致することを示す一致情報を生成する一致情報生成回路と、を備える請求項１乃至３の何れか１項に記載のプロセッサシステム。
【請求項５】
前記メインプロセッサは、前記メインプロセッサ用命令メモリに記憶されたメインプロセッサ用命令データに従って処理を実行し、前記設定データを生成し、前記設定データを前記レジスタに書き込む命令実行部を備える請求項４に記載のプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メインプロセッサ及びコプロセッサを備えるプロセッサシステムに関し、特に、メインプロセッサとコプロセッサが同期的に動作するプロセッサシステムに関する。
【背景技術】
【０００２】
近年、プログラムに記述された命令の増加及び複雑化に伴って、メインプロセッサ及びコプロセッサを備えるプロセッサシステムが用いられている。
【０００３】
一般的なプロセッサシステムとして、コプロセッサが固有の命令データに従って処理を行う、メインプロセッサとコプロセッサが非同期的に動作するプロセッサシステムと、コプロセッサがメインプロセッサから供給される命令データに従って処理を行う、メインプロセッサとコプロセッサが同期的に動作するプロセッサシステムが知られている。
【０００４】
非同期的に動作するプロセッサシステムでは、メインプロセッサは、コプロセッサの命令フォーマットや命令長（以下「命令プロパティ」という）を認識し、命令プロパティに応じてコプロセッサに命令データを供給する制御（以下「命令フロー制御」という）を行う必要がないという利点がある。
【０００５】
しかし、コプロセッサは、分岐や例外処理などの複雑な制御を含む命令フロー制御を行う必要がある。その結果、コプロセッサの処理が複雑化し、プロセッサシステムの面積あたりの性能が低下するという問題がある。
【０００６】
一方、同期的に動作するプロセッサシステムでは、メインプロセッサがコプロセッサに対する命令フロー制御を行うので、コプロセッサの処理を簡素化し、プロセッサシステムの性能を向上させることができるという利点がある。
【０００７】
しかし、コプロセッサの命令セット又はコプロセッサを追加する場合には、新しい命令セット又は新しいコプロセッサの命令プロパティに応じて、メインプロセッサの命令フェッチ部又は命令デコード部の処理を変更する必要があるので、コプロセッサの命令セット又はコプロセッサを容易に追加することはできないという問題がある。
【０００８】
すなわち、従来のプロセッサシステムでは、プロセッサシステムの性能を向上させ、かつ、コプロセッサの命令セット又はコプロセッサを容易に追加することはできなかった。
【特許文献１】特開２００３−５８３６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明の目的は、コプロセッサの命令セット又はコプロセッサを容易に追加することができるメインプロセッサとコプロセッサが同期的に動作するプロセッサシステムを提供することである。
【課題を解決するための手段】
【００１０】
本発明の第１態様によれば、メインプロセッサ用命令データを記憶するメインプロセッサ用命令メモリと、前記メインプロセッサ用命令メモリに記憶されたメインプロセッサ用命令データに従って命令メモリアドレス及び設定データを生成するメインプロセッサと、コプロセッサ用命令データを記憶するコプロセッサ用命令メモリと、前記コプロセッサ用命令メモリに記憶されたコプロセッサ用命令データに従って処理を行うコプロセッサと、前記コプロセッサ用命令メモリから前記コプロセッサ用命令データを読み出し、前記メインプロセッサによって生成された命令メモリアドレス及び設定データに従って前記コプロセッサ用命令データを前記コプロセッサに供給する命令供給部と、を備えることを特徴とするプロセッサシステムが提供される。
【発明の効果】
【００１１】
本発明によれば、メインプロセッサとコプロセッサが同期的に動作するプロセッサシステムにおいて、コプロセッサの命令セット又はコプロセッサを容易に追加することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施例について図面を参照して説明する。なお、以下の実施例は、本発明の実施の一形態であって、本発明の範囲を限定するものではない。
【実施例１】
【００１３】
はじめに、本発明の実施例１について説明する。
【００１４】
図１は、本発明の実施例１に係るプロセッサシステム１００の構成を示すブロック図である。
【００１５】
本発明の実施例１に係るプロセッサシステム１００は、メインプロセッサ用命令メモリ１１０、メインプロセッサ１２０、コプロセッサ用命令メモリ１３０、命令供給部１４０及びコプロセッサ１５０を備えている。
【００１６】
メインプロセッサ１２０は、メインプロセッサ用命令メモリ１１０及び命令供給部１４０に接続されている。
【００１７】
命令供給部１４０は、メインプロセッサ１２０、コプロセッサ用命令メモリ１３０及びコプロセッサ１５０に接続されている。
【００１８】
メインプロセッサ１２０とコプロセッサ１５０は、互いに図示されない信号線を介して接続されている。
【００１９】
メインプロセッサ用命令メモリ１１０は、メインプロセッサ１２０に対する命令（以下「メインプロセッサ用命令データ」という）を記憶する。
【００２０】
メインプロセッサ１２０は、メインプロセッサ用命令メモリ１１０に記憶されたメインプロセッサ用命令データを読み出し、メインプロセッサ用命令データに従って命令実行処理を行う。
【００２１】
コプロセッサ用命令メモリ１３０は、コプロセッサ１５０のための関数（以下「コプロセッサ用命令データ」という）を記憶する。コプロセッサ用命令メモリ１３０の容量は、メインプロセッサ用命令メモリ１１０の容量の半分である。
【００２２】
命令供給部１４０は、コプロセッサ用命令メモリ１３０に記憶されたコプロセッサ用命令データを読み出し、コプロセッサ１５０に転送する。
【００２３】
コプロセッサ１５０は、命令供給部１４０から転送されたコプロセッサ用命令データに従って命令実行処理を行う。
【００２４】
なお、本発明の実施例１に係るプロセッサシステム１００は、複数のコプロセッサ用命令メモリ１３０及び複数のコプロセッサ１５０を備えていても良い。
【００２５】
また、本発明の実施例１に係るコプロセッサ用命令メモリ１３０の容量は、メインプロセッサ用命令メモリ１１０の容量の半分に限られるものではない。
【００２６】
図２は、本発明の実施例１に係るプロセッサシステム１００の各部１１０〜１５０の構成及びデータフローを示すブロック図である。
【００２７】
メインプロセッサ１２０は、命令フェッチ部１２１、命令デコード部１２２及び命令実行部１２３を備えている。
【００２８】
命令供給部１４０は、命令メモリアドレス比較部１４１及び命令選択部１４２を備えている。
【００２９】
コプロセッサ１５０は、命令デコード部１５１及び命令実行部１５２を備えている。
【００３０】
メインプロセッサ１２０の命令フェッチ部１２１は、メインプロセッサ用命令メモリ１１０の第１命令メモリアドレスにアクセスし、メインプロセッサ用命令データを読み出し、命令デコード部１２２にメインプロセッサ用命令データを転送する。
【００３１】
メインプロセッサ１２０の命令フェッチ部１２１は、命令供給部１４０の命令メモリアドレス比較部１４１に第１命令メモリアドレスを出力する。
【００３２】
メインプロセッサ１２０の命令フェッチ部１２１は、命令有効信号を生成し、命令供給部１４０の命令選択部１４２に命令有効信号を出力する。例えば、命令有効信号は、メインプロセッサ１２０が命令フェッチに成功したか否かを示す１ビットの信号であり、「１」は成功を示し、「０」は失敗を示す。
【００３３】
メインプロセッサ１２０の命令デコード部１２２は、命令フェッチ部１２１から転送されたメインプロセッサ用命令データを解析し、メインプロセッサ命令を生成し、命令実行部１２３にメインプロセッサ命令を出力する。
【００３４】
メインプロセッサ１２０の命令デコード部１２２は、ストール信号を生成し、コプロセッサ１５０の命令デコード部１５１にストール信号を出力する。例えば、ストール信号は、１ビットの信号であり、「１」はコプロセッサ１５０の命令デコード部１５１に対する動作許可を示し、「０」はコプロセッサ１５０の命令デコード部１５１に対する動作不許可を示す。
【００３５】
メインプロセッサ１２０の命令実行部１２３は、命令デコード部１２２から出力されたメインプロセッサ命令に従って命令を実行する。
【００３６】
メインプロセッサ１２０の命令実行部１２３は、変換パラメータ、始点アドレス、終点アドレス及び有効ビットを含む設定データを生成し、命令供給部１４０の命令メモリアドレス比較部１４１に設定データを出力する。
【００３７】
メインプロセッサ１２０の命令実行部１２３は、ストール信号を生成し、コプロセッサ１５０の命令実行部１５２にストール信号を出力する。例えば、ストール信号は、１ビットの信号であり、「１」はコプロセッサ１５０の命令実行部１５２に対する動作許可を示し、「０」はコプロセッサ１５０の命令実行部１５２に対する動作不許可を示す。
【００３８】
命令供給部１４０の命令メモリアドレス比較部１４１は、命令実行部１２３から出力された設定データ及び第１メモリアドレスに従って第２命令メモリアドレスを生成し、コプロセッサ用命令メモリ１３０の第２命令メモリアドレスにアクセスする。
【００３９】
命令供給部１４０の命令メモリアドレス比較部１４１は、メインプロセッサ１２０の命令実行部１２３から出力された設定データ及び第１メモリアドレスに従って一致情報を生成し、命令選択部１４２に一致情報を出力する。
【００４０】
なお、命令供給部１４０の命令メモリアドレス比較部１４１は、コプロセッサ用命令メモリ１３０及びコプロセッサ１５０の数と同数である。
【００４１】
命令供給部１４０の命令選択部１４２は、コプロセッサ用命令メモリ１３０の第２命令メモリアドレスに記憶されたコプロセッサ用命令データを読み出す。
【００４２】
命令供給部１４０の命令選択部１４２は、メインプロセッサ１２０の命令フェッチ部１２１から出力された命令有効信号及び命令メモリアドレス比較部１４１から出力された一致情報に従って、コプロセッサ１５０の命令デコード部１５１にコプロセッサ用命令データを転送する。
【００４３】
コプロセッサ１５０の命令デコード部１５１は、メインプロセッサ１２０の命令デコード部１２２から出力されたストール信号に従って、命令供給部１４０の命令選択部１４２から転送されたコプロセッサ用命令データを解析し、コプロセッサ命令を生成し、命令実行部１５２にコプロセッサ命令を転送する。
【００４４】
コプロセッサ１５０の命令実行部１５２は、メインプロセッサ１２０の命令実行部１２３から出力されたストール信号及び命令デコード部１５１から転送されたコプロセッサ命令に従って命令を実行する。
【００４５】
図３は、本発明の実施例１に係るメモリアドレス比較部１４１の構成を示すブロック図である。
【００４６】
本発明の実施例１に係るメモリアドレス比較部１４１は、命令メモリアドレス変換レジスタ１４１Ａ、命令メモリアドレス始点レジスタ１４１Ｂ、命令メモリアドレス終点レジスタ１４１Ｃ、比較部有効レジスタ１４１Ｄ、比較回路１４１Ｅ、一致情報生成回路１４１Ｆ及び命令メモリアドレス変換回路１４１Ｇを備えている。
【００４７】
命令メモリアドレス変換レジスタ１４１Ａは、図示されないメインプロセッサ１２０の命令実行部１２３から出力された設定データのうち、変換パラメータを記憶する。例えば、変換パラメータは、メインプロセッサ用命令メモリ１１０の第１命令メモリアドレスをコプロセッサ用命令メモリ１３０の第２命令メモリアドレスに変換するための変換係数又はメインプロセッサ用命令メモリ１１０の第１命令メモリアドレスとコプロセッサ用命令メモリ１３０の第２命令メモリアドレスの関係を示す変換テーブルである。
【００４８】
命令メモリアドレス始点レジスタ１４１Ｂは、図示されないメインプロセッサ１２０の命令実行部１２３から出力された設定データのうち、命令メモリアドレスの始点アドレスを記憶する。
【００４９】
命令メモリアドレス終点レジスタ１４１Ｃは、図示されないメインプロセッサ１２０の命令実行部１２３から出力された設定データのうち、命令メモリアドレスの終点アドレスを記憶する。
【００５０】
比較部有効レジスタ１４１Ｄは、図示されないメインプロセッサ１２０の命令実行部１２３から出力された設定データのうち、メモリアドレス比較部１４１の有効／無効を示す有効ビットを記憶する。例えば、有効ビットは１ビットの信号であり、「１」はメモリアドレス比較部１４１を有効にし、「０」はメモリアドレス比較部１４１を無効にする。本発明の実施例１では、有効ビットの初期値を「０」とし、メインプロセッサ１２０より設定データが出力されるまでは比較回路１４１Ｅを無効にする。
【００５１】
比較回路１４１Ｅは、比較部有効レジスタ１４１Ｄに記憶された有効ビットが「１」である場合に、図示されないメインプロセッサ１２０の命令フェッチ部１２１から出力された第１命令メモリアドレスと命令メモリアドレス始点レジスタ１４１Ｂ及び命令メモリアドレス終点レジスタ１４１Ｃに記憶された始点アドレス及び終点アドレスとを比較し、一致情報生成回路１４１Ｆに比較結果を出力する。
【００５２】
一致情報生成回路１４１Ｆは、比較回路１４１Ｅの比較結果が「一致」である場合に、一致情報を生成し、図示されない命令供給部１４０の命令選択部１４２に出力する。
【００５３】
命令メモリアドレス変換回路１４１Ｇは、命令メモリアドレス変換レジスタ１４１Ａに記憶された変換パラメータに従って、図示されないメインプロセッサ１２０の命令フェッチ部１２１から出力された第１命令メモリアドレスを第２命令メモリアドレスに変換し、図示されないコプロセッサ用命令メモリ１３０の第２命令メモリアドレスにアクセスする。但し、比較部有効レジスタ１４１Ｄの値が「０」の場合には、アドレスの変換を行なわず、コプロセッサ用命令メモリ１３０へのアクセスも行なわない。
【００５４】
なお、命令メモリアドレス比較部１４１は、命令メモリアドレス変換レジスタ１４１Ａ、命令メモリアドレス始点レジスタ１４１Ｂ、命令メモリアドレス終点レジスタ１４１Ｃ、比較部有効レジスタ１４１Ｄ、比較回路１４１Ｅ、一致情報生成回路１４１Ｆ及び命令メモリアドレス変換回路１４１Ｇを複数個備えても良い。
【００５５】
図４は、本発明の実施例１に係るプロセッサシステム１００の命令実行処理の処理手順を示すフローチャートである。
【００５６】
命令実行処理は、本発明の実施例１に係るプロセッサシステム１００に対する命令（以下「プロセッサシステム命令」という）の関数毎に行われる処理である。
【００５７】
はじめに、メインプロセッサ１２０の処理（Ｓ１２０）について説明する。
【００５８】
メインプロセッサ１２０の命令実行部１２３は、命令供給部１４０に設定データを出力する（Ｓ１２１）。また、メインプロセッサ１２０の命令実行部１２３は、コプロセッサ１５０において実行される命令の命令実行処理以外においては、Ｓ１２１を行わなくても良い。
【００５９】
続いて、メインプロセッサ１２０の命令フェッチ部１２１は、メインプロセッサ用命令メモリ１１０の第１命令メモリアドレスに記憶されたメインプロセッサ用命令データを読み出す（Ｓ１２２）。このとき、メインプロセッサ１２０の命令フェッチ部１２１は、命令供給部１４０に第１命令メモリアドレス及び命令有効信号を出力する。なお、メインプロセッサ１２０は、メインプロセッサ用命令メモリ１１０からの命令フェッチに成功し、その命令が実行される場合には命令有効信号「１」を出力し、メインプロセッサ１２０がメインプロセッサ用命令メモリ１１０からの命令フェッチに失敗した場合又はその命令が実行されなくなった場合には命令有効信号「０」を出力することによって、コプロセッサ１５０の命令実行を制御する。
【００６０】
続いて、メインプロセッサ１２０の命令フェッチ部１２１は、メインプロセッサ１２０の命令デコード部１２２にメインプロセッサ用命令データを転送する（Ｓ１２３）。
【００６１】
続いて、メインプロセッサ１２０の命令デコード部１２２は、メインプロセッサ用データを解析してメインプロセッサ命令を生成し、メインプロセッサ命令をメインプロセッサ１２０の命令実行部１２３に出力する（Ｓ１２４）。このとき、メインプロセッサ１２０の命令デコード部１２２は、コプロセッサ１５０にストール信号を出力する。
【００６２】
続いて、メインプロセッサ１２０の命令実行部１２３は、メインプロセッサ命令に従って命令を実行する（Ｓ１２５）。このとき、メインプロセッサ１２０の命令実行部１２３は、コプロセッサ１５０にストール信号を出力する。
【００６３】
次に、命令供給部１４０の処理（Ｓ１４０）について説明する。
【００６４】
命令供給部１４０の命令メモリアドレス変換回路１４１Ｇは、変換パラメータに従って、第１命令メモリアドレスを第２命令メモリアドレスに変換する（Ｓ１４１）。
【００６５】
続いて、命令供給部１４０の命令メモリアドレス変換回路１４１Ｇは、比較部有効レジスタ１４１Ｄの値が「１」の場合に、コプロセッサ用命令メモリ１３０の第２命令メモリアドレスにアクセスし、命令供給部１４０の命令選択部１４２は、コプロセッサ用命令メモリ１３０の第２命令メモリアドレスに記憶されたコプロセッサ用命令データを読み出す（Ｓ１４２）。
【００６６】
続いて、命令供給部１４０の比較回路１４１Ｅは、比較部有効レジスタ１４１Ｄの値が「１」の場合に、メインプロセッサ１２０から出力された第１命令メモリアドレスと命令メモリアドレス始点レジスタ１４１Ｂ及び命令メモリアドレス終点レジスタ１４１Ｃに記憶された始点アドレス及び終点アドレスとを比較し、命令供給部１４０の一致情報生成回路１４１Fに比較結果を出力する（Ｓ１４３）。
【００６７】
なお、命令供給部１４０の比較回路１４１Ｅは、比較部有効レジスタ１４１Ｄの値が「０」の場合には、一致情報生成回路１４１Fに不一致の結果を出力する。
【００６８】
命令供給部１４０は、第１メモリアドレスが始点アドレス及び終点アドレスと一致しない場合には（Ｓ１４４−ＮＯ）、Ｓ１４１へ戻る。
【００６９】
一方、命令供給部１４０は、第１メモリアドレスが始点アドレス及び終点アドレスと一致する場合には（Ｓ１４４−ＹＥＳ）、Ｓ１４５へ進む。
【００７０】
続いて、命令供給部１４０の一致情報生成回路１４１Ｆは、一致情報を生成し、命令選択部１４２に一致情報を出力する（Ｓ１４５）。
【００７１】
続いて、命令供給部１４０の命令選択部１４２は、メインプロセッサ１２０から出力された命令有効信号が「１」である場合には、命令供給部１４０の一致情報生成回路１４１Ｆから出力された一致情報に従って、コプロセッサ１５０にコプロセッサ用命令データを転送する（Ｓ１４６）。なお、命令供給部１４０の命令選択部１４２は、メインプロセッサ１２０から出力された命令有効信号が「０」である場合には、コプロセッサ用命令データの転送をキャンセルし、コプロセッサ用命令データを破棄して命令実行処理を終了する。
【００７２】
なお、Ｓ１４１〜Ｓ１４５はＳ１２２と並行して行われ、Ｓ１４６は、Ｓ１２３と並行して行われる。
【００７３】
次に、コプロセッサ１５０の処理（Ｓ１５０）について説明する。
【００７４】
コプロセッサ１５０の命令デコード部１５１は、メインプロセッサ１２０から出力されたストール信号に従ってコプロセッサ用データを解析してコプロセッサ命令を生成し、命令実行部１５２に出力する（Ｓ１５１）。
【００７５】
続いて、コプロセッサ１５０の命令実行部１５２は、メインプロセッサ１２０の命令実行部１２４から出力されたストール信号及びコプロセッサ命令に従って命令を実行する（Ｓ１５２）。
【００７６】
なお、Ｓ１５１はＳ１２４と並行して行われ、Ｓ１５２はＳ１２５と並行して行われる。
【００７７】
Ｓ１２５及びＳ１５２が終了した後は、命令実行処理が終了する。なお、プロセッサシステム命令の関数が残っている場合には、Ｓ１２１又は１２２に戻る。
【００７８】
次に、本発明の実施例１に係る命令実行処理の具体例について説明する。具体例では、本発明の実施例１に係るプロセッサシステム１００が関数「func A」〜関数「func D」を順番に実行するものとする。
【００７９】
図５は、本発明の実施例１に係る命令データのメモリ配置の概略を示す概略図である。
【００８０】
図５Ａは、本発明の実施例１に係る論理的なメモリ配置の概略を示す概略図である。
【００８１】
本発明の実施例１に係るプロセッサシステム１００は、メインプロセッサ１２０に実行される関数「func A」を0x0000〜0x0FFFに記憶し、メインプロセッサ１２０及びコプロセッサ１５０に実行される関数「func B」を0x1000〜0x1FFFに記憶し、メインプロセッサ１２０に実行される関数「func C」を0x2000〜0x2FFFに記憶し、メインプロセッサ１２０及びコプロセッサ１５０に実行される関数「func D」を0x3000〜0x3FFFに記憶している。
【００８２】
図５Ｂは、本発明の実施例１に係るメインプロセッサ用命令メモリ１１０のメインプロセッサ用命令データのメモリ配置を示す概略図である。
【００８３】
本発明の実施例１に係るメインプロセッサ用命令メモリ１１０は、関数「func A」のメインプロセッサ用命令データを0x0000〜0x0FFFに記憶し、関数「func B」のメインプロセッサ用命令データを0x1000〜0x1FFFに記憶し、関数「func C」のメインプロセッサ用命令データを0x2000〜0x2FFFに記憶し、関数「func D」のメインプロセッサ用命令データを0x3000〜0x3FFFに記憶している。
【００８４】
図５Ｃは、本発明の実施例１に係るコプロセッサ用命令メモリ１３０のコプロセッサ用命令データのメモリ配置を示す概略図である。
【００８５】
本発明の実施例１に係るコプロセッサ用命令メモリ１３０は、関数「func B」のコプロセッサ用命令データを0x0000〜0x0FFFに記憶し、関数「func D」のコプロセッサ用命令データを0x1000〜0x1FFFに記憶している。
【００８６】
図６は、本発明の実施例１に係る設定データの概略を示す概略図である。
【００８７】
設定データＡは、始点アドレス「0x1000」、終点アドレス「0x1FFF」、変換パラメータ「0x0FFF」及び有効ビット「１」から構成される。
【００８８】
設定データＢは、始点アドレス「0x3000」、終点アドレス「0x3FFF」、変換パラメータ「0x1FFF」及び有効ビット「１」から構成される。
【００８９】
メインプロセッサ１２０は、関数「func B」を実行する前に関数「func A」においてメインプロセッサ命令を実行することによって、命令実行部１２３において設定データＡを生成し、命令供給部１４０の命令メモリアドレス比較部１４１に設定データＡを出力し、関数「func D」を実行する前に関数「func C」において命令供給部１４０の命令メモリアドレス比較部１４１に設定データＢを出力する。
【００９０】
図７及び図８は、本発明の実施例１に係る命令供給部１４０の命令メモリアドレス変換回路１４１Ｇによって設定データＡ及びＢに従って変換される第１命令メモリアドレスと第２命令メモリアドレスの関係を示す概略図である。
【００９１】
はじめに、メインプロセッサ１２０の命令フェッチ部１２１は、メインプロセッサ用命令メモリ１１０の0x0000〜0x0FFFに記憶されたメインプロセッサ用命令データ「func A」を読み出す（図４のＳ１２２）。このとき、メインプロセッサ１２０の命令フェッチ部１２１は、命令供給部１４０に0x0000〜0x0FFF及び命令有効信号を出力する。
【００９２】
続いて、メインプロセッサ１２０の命令フェッチ部１２１は、メインプロセッサ１２０の命令デコード部１２２にメインプロセッサ用命令データ「func A」を転送する（図４のＳ１２３）。
【００９３】
続いて、メインプロセッサ１２０の命令デコード部１２２は、メインプロセッサ用データを解析して「func A」のメインプロセッサ命令を生成し、「func A」のメインプロセッサ命令をメインプロセッサ１２０の命令実行部１２３に出力する（図４のＳ１２４）。このとき、メインプロセッサ１２０の命令デコード部１２２は、コプロセッサ１５０にストール信号を出力する。
【００９４】
続いて、メインプロセッサ１２０の命令実行部１２３は、「func A」のメインプロセッサ命令に従って命令を実行する（図４のＳ１２５）。このとき、メインプロセッサ１２０の命令実行部１２３は、コプロセッサ１５０にストール信号を出力する。
【００９５】
次に、メインプロセッサ１２０より設定データが出力されるまでの命令供給部１４０の動作を示す。
【００９６】
命令供給部１４０の命令メモリアドレス変換回路１４１Ｇは、比較部有効レジスタ１４１Ｄの値が初期状態「０」であるため、アドレス変換を行なわず、コプロセッサ用命令メモリ１３０に対してもアクセスを行なわない。
【００９７】
続いて、命令供給部１４０の比較回路１４１Ｅは、比較部有効レジスタ１４１Ｄの値が「０」であるため命令供給部１４０の一致情報生成回路１４１Fに不一致の比較結果を出力する（図４のＳ１４３）。
【００９８】
続いて、命令供給部１４０は比較結果が一致していないため（図４のＳ１４４−ＮＯ）、図４のＳ１４１へ戻る。
【００９９】
関数「func A」内で設定データＡを生成して出力するための命令が実行されると、メインプロセッサ１２０の命令実行部１２３は、命令供給部１４０に図６に示される設定データＡを出力する（図４のＳ１２１）。
【０１００】
次に、設定データＡが出力された後の命令供給部１４０の動作を示す。
【０１０１】
命令供給部１４０の命令メモリアドレス変換回路１４１Ｇは、図６に示される設定データＡに従って、0x0000〜0x0FFFを0x0000〜0x0FFFに変換する（図４のＳ１４１）。
【０１０２】
続いて、命令供給部１４０の命令メモリアドレス変換回路１４１Ｇは、コプロセッサ用命令メモリ１３０の0x0000〜0x0FFFにアクセスし、命令供給部１４０の命令選択部１４２は、コプロセッサ用命令メモリ１３０の0x0000〜0x0FFFに記憶されたコプロセッサ用命令データ「func B」を読み出す（図４のＳ１４２）。
【０１０３】
続いて、命令供給部１４０の比較回路１４１Ｅは、メインプロセッサ１２０から出力された0x0000〜0x0FFFと図６に示される設定データＡの始点アドレス0x1000及び終点アドレス0x1FFFとを比較し、命令供給部１４０の一致情報生成回路１４１Fに比較結果を出力する（図４のＳ１４３）。
【０１０４】
続いて、命令供給部１４０は、第１命令メモリアドレス0x0000〜0x0FFFと図６に示される設定データＡの始点アドレス0x1000及び終点アドレス0x1FFFが一致しないので（図４のＳ１４４−ＮＯ）、図４のＳ１４１へ戻る。
【０１０５】
図４のＳ１２５及びＳ１４４の後に「func A」の命令実行処理が終了し、「func B」の命令実行処理が行われる。
【０１０６】
メインプロセッサ１２０の命令フェッチ部１２１は、メインプロセッサ用命令メモリ１１０の0x1000〜0x1FFFに記憶されたメインプロセッサ用命令データ「func B」を読み出す（図４のＳ１２２）。このとき、メインプロセッサ１２０の命令フェッチ部１２１は、命令供給部１４０に0x1000〜0x1FFF及び命令有効信号を出力する。
【０１０７】
続いて、メインプロセッサ１２０の命令フェッチ部１２１は、メインプロセッサ１２０の命令デコード部１２２にメインプロセッサ用命令データ「func B」を転送する（図４のＳ１２３）。
【０１０８】
続いて、メインプロセッサ１２０の命令デコード部１２２は、メインプロセッサ用データを解析して「func B」のメインプロセッサ命令を生成し、「func B」のメインプロセッサ命令をメインプロセッサ１２０の命令実行部１２３に出力する（図４のＳ１２４）。このとき、メインプロセッサ１２０の命令デコード部１２２は、コプロセッサ１５０にストール信号を出力する。
【０１０９】
続いて、メインプロセッサ１２０の命令実行部１２３は、「func B」のメインプロセッサ命令に従って命令を実行する（図４のＳ１２５）。このとき、メインプロセッサ１２０の命令実行部１２３は、コプロセッサ１５０にストール信号を出力する。
【０１１０】
一方、命令供給部１４０の命令メモリアドレス変換回路１４１Ｇは、図６に示される設定データＡに従って、0x1000〜0x1FFFを0x0000〜0x0FFFに変換する（図４のＳ１４１）。
【０１１１】
続いて、命令供給部１４０の命令メモリアドレス変換回路１４１Ｇは、コプロセッサ用命令メモリ１３０の0x0000〜0x0FFFにアクセスし、命令供給部１４０の命令選択部１４２は、コプロセッサ用命令メモリ１３０の0x0000〜0x0FFFに記憶されたコプロセッサ用命令データ「func B」を読み出す（図４のＳ１４２）。
【０１１２】
続いて、命令供給部１４０の比較回路１４１Ｅは、メインプロセッサ１２０から出力された0x1000〜0x1FFFと図６に示される設定データＡの始点アドレス0x1000及び終点アドレス0x1FFFとを比較し、命令供給部１４０の一致情報生成回路１４１Ｆに比較結果を出力する（図４のＳ１４３）。
【０１１３】
続いて、命令供給部１４０は、第１命令メモリアドレス0x1000〜0x1FFFと図６に示される設定データＡの始点アドレス0x1000及び終点アドレス0x1FFFが一致するので（図４のＳ１４４−ＹＥＳ）、図４のＳ１４５へ進む。
【０１１４】
続いて、命令供給部１４０の一致情報生成回路１４１Ｆは、一致情報を生成し、命令供給部１４０の命令選択部１４２に出力する（図４のＳ１４５）。
【０１１５】
続いて、命令供給部１４０の命令選択部１４２は、命令供給部１４０の一致情報生成回路１４１Ｆから出力された一致情報に従って、コプロセッサ１５０にコプロセッサ用命令データ「func B」を転送する（図４のＳ１４６）。
【０１１６】
他方、コプロセッサ１５０の命令デコード部１５１は、コプロセッサ用データ「func B」を解析して「func B」のコプロセッサ命令を生成し、コプロセッサ１５０の命令実行部１５２にコプロセッサ命令を出力する（図４のＳ１５１）。
【０１１７】
続いて、コプロセッサ１５０の命令実行部１５２は、「func B」のコプロセッサ命令に従って命令を実行する（図４のＳ１５２）。
【０１１８】
図４のＳ１２５及びＳ１５２の後に「func B」の命令実行処理が終了し、「func C」の命令実行処理が行われる。「func C」内の命令データによって、メインプロセッサ１２０の命令実行部１２３は、命令供給部１４０に図６に示される設定データＢを出力する（図４のＳ１２１）。命令供給部１４０は、設定データＢが出力されるまでは、設定データＡに従って動作し、設定データＢが出力された後は設定データＢに従って動作を行なう。
【０１１９】
続いて、メインプロセッサ１２０の命令フェッチ部１２１は、メインプロセッサ用命令メモリ１１０の0x2000〜0x2FFFに記憶されたメインプロセッサ用命令データ「func C」を読み出す（図４のＳ１２２）。このとき、メインプロセッサ１２０の命令フェッチ部１２１は、命令供給部１４０に0x2000〜0x2FFF及び命令有効信号を出力する。
【０１２０】
続いて、メインプロセッサ１２０の命令フェッチ部１２１は、メインプロセッサ１２０の命令デコード部１２２にメインプロセッサ用命令データ「func C」を転送する（図４のＳ１２３）。
【０１２１】
続いて、メインプロセッサ１２０の命令デコード部１２２は、メインプロセッサ用データを解析して「func C」のメインプロセッサ命令を生成し、「func C」のメインプロセッサ命令をメインプロセッサ１２０の命令実行部１２３に出力する（図４のＳ１２４）。このとき、メインプロセッサ１２０の命令デコード部１２２は、コプロセッサ１５０にストール信号を出力する。
【０１２２】
続いて、メインプロセッサ１２０の命令実行部１２３は、「func C」のメインプロセッサ命令に従って命令を実行する（図４のＳ１２５）。このとき、メインプロセッサ１２０の命令実行部１２３は、コプロセッサ１５０にストール信号を出力する。
【０１２３】
次に、設定データＢが出力された後の命令供給部１４０の動作を示す。なお、設定データＡが出力された場合の命令供給部１４０の動作については省略する。
【０１２４】
命令供給部１４０の命令メモリアドレス変換回路１４１Ｇは、図６に示される設定データＢに従って0x2000〜0x2FFFを0x0000〜0x0FFFに変換する（図４のＳ１４１）。
【０１２５】
続いて、命令供給部１４０の命令メモリアドレス変換回路１４１Ｇは、コプロセッサ用命令メモリ１３０の0x0000〜0x0FFFにアクセスし、命令供給部１４０の命令選択部１４２は、コプロセッサ用命令メモリ１３０の0x0000〜0x0FFFに記憶されたコプロセッサ用命令データ「func B」を読み出す（図４のＳ１４２）。
【０１２６】
続いて、命令供給部１４０の比較回路１４１Ｅは、メインプロセッサ１２０から出力された0x0000〜0x0FFFと図６に示される設定データＢの始点アドレス0x3000及び終点アドレス0x3FFFとを比較し、命令供給部１４０の一致情報生成回路１４１Fに比較結果を出力する（図４のＳ１４３）。
【０１２７】
続いて、命令供給部１４０は、第１命令メモリアドレス0x2000〜0x2FFFと図６に示される設定データＢの始点アドレス0x3000及び終点アドレス0x3FFFが一致しないので（図４のＳ１４４−ＮＯ）、図４のＳ１４１へ戻る。
【０１２８】
図４のＳ１２５及びＳ１４４の後に「func C」の命令実行処理が終了し、「func D」の命令実行処理が行われる。
【０１２９】
メインプロセッサ１２０の命令フェッチ部１２１は、メインプロセッサ用命令メモリ１１０の0x3000〜0x3FFFに記憶されたメインプロセッサ用命令データ「func D」を読み出す（図４のＳ１２２）。このとき、メインプロセッサ１２０の命令フェッチ部１２１は、命令供給部１４０に0x3000〜0x3FFF及び命令有効信号を出力する。
【０１３０】
続いて、メインプロセッサ１２０の命令フェッチ部１２１は、メインプロセッサ１２０の命令デコード部１２２にメインプロセッサ用命令データ「func D」を転送する（図４のＳ１２３）。
【０１３１】
続いて、メインプロセッサ１２０の命令デコード部１２２は、メインプロセッサ用データを解析して「func D」のメインプロセッサ命令を生成し、「func D」のメインプロセッサ命令をメインプロセッサ１２０の命令実行部１２３に出力する（図４のＳ１２４）。このとき、メインプロセッサ１２０の命令デコード部１２２は、コプロセッサ１５０にストール信号を出力する。
【０１３２】
続いて、メインプロセッサ１２０の命令実行部１２３は、「func D」のメインプロセッサ命令に従って命令を実行する（図４のＳ１２５）。このとき、メインプロセッサ１２０の命令実行部１２３は、コプロセッサ１５０にストール信号を出力する。
【０１３３】
一方、命令供給部１４０の命令メモリアドレス変換回路１４１Ｇは、図６に示される設定データＢに従って、0x3000〜0x3FFFを0x1000〜0x1FFFに変換する（図４のＳ１４１）。
【０１３４】
続いて、命令供給部１４０の命令メモリアドレス変換回路１４１Ｇは、コプロセッサ用命令メモリ１３０の0x1000〜0x1FFFにアクセスし、命令供給部１４０の命令選択部１４２は、コプロセッサ用命令メモリ１３０の0x1000〜0x1FFFに記憶されたコプロセッサ用命令データ「func D」を読み出す（図４のＳ１４２）。
【０１３５】
続いて、命令供給部１４０の比較回路１４１Ｅは、メインプロセッサ１２０から出力された0x3000〜0x3FFFと図６に示される設定データＢの始点アドレス0x3000及び終点アドレス0x3FFFとを比較し、命令供給部１４０の一致情報生成回路１４１Ｆに比較結果を出力する（図４のＳ１４３）。
【０１３６】
続いて、命令供給部１４０は、第１命令メモリアドレス0x3000〜0x3FFFと図６に示される設定データＢの始点アドレス0x3000及び終点アドレス0x3FFFが一致するので（図４のＳ１４４−ＹＥＳ）、図４のＳ１４５へ進む。
【０１３７】
続いて、命令供給部１４０の一致情報生成回路１４１Ｆは、一致情報を生成し、命令供給部１４０の命令選択部１４２に出力する（図４のＳ１４５）。
【０１３８】
続いて、命令供給部１４０の命令選択部１４２は、命令供給部１４０の一致情報生成回路１４１Ｆから出力された一致情報に従って、コプロセッサ１５０にコプロセッサ用命令データ「func D」を転送する（図４のＳ１４６）。
【０１３９】
他方、コプロセッサ１５０の命令デコード部１５１は、コプロセッサ用データ「func D」を解析して「func D」のコプロセッサ命令を生成し、コプロセッサ１５０の命令実行部１５２にコプロセッサ命令を出力する（図４のＳ１５１）。
【０１４０】
続いて、コプロセッサ１５０の命令実行部１５２は、「func D」のコプロセッサ命令に従って命令を実行する（図４のＳ１５２）。
【０１４１】
「func D」の図４の１２５及びＳ１５２が終了した後は、プロセッサシステム命令が終了する。
【０１４２】
なお、以上の具体例では、関数「func A」〜関数「func D」まで順番に実行されるプロセッサシステム命令の例について説明したが、これに限られるものではない。
【０１４３】
本発明の実施例１によれば、メインプロセッサ１２０とコプロセッサ１５０の間の命令供給処理が命令供給部１４０によって行われるので、プロセッサシステム１００のコプロセッサ１５０の命令セット又はコプロセッサ１５０を容易に追加することができる。
【０１４４】
また、本発明の実施例１によれば、メインプロセッサ１２０は、第１命令メモリアドレス及び命令有効信号のみを出力し、コプロセッサ用命令データの命令プロパティ（例えば、コプロセッサ用命令データのフォーマットや命令長）を認識しないので、メインプロセッサ１２０の処理負担を低減することができる。
【０１４５】
また、本発明の実施例１によれば、メインプロセッサ１２０は、命令有効信号及びストール信号を出力するので、コプロセッサ１５０の分岐や例外などの命令フロー制御を行うことができる。
【図面の簡単な説明】
【０１４６】
【図１】本発明の実施例１に係るプロセッサシステム１００の構成を示すブロック図である。
【図２】本発明の実施例１に係るプロセッサシステム１００の各部１１０〜１５０の構成及びデータフローを示すブロック図である。
【図３】本発明の実施例１に係るメモリアドレス比較部１４１の構成を示すブロック図である。
【図４】本発明の実施例１に係るプロセッサシステム１００の命令実行処理の処理手順を示すフローチャートである。
【図５】Ａ〜Ｃは、本発明の実施例１に係る命令データのメモリ配置の概略を示す概略図である。
【図６】本発明の実施例１に係る設定データの概略を示す概略図である。
【図７】本発明の実施例１に係る命令供給部１４０の命令メモリアドレス変換回路１４１Ｇによって設定データＡに従って変換される第１命令メモリアドレスと第２命令メモリアドレスの関係を示す概略図である。
【図８】本発明の実施例１に係る命令供給部１４０の命令メモリアドレス変換回路１４１Ｇによって設定データＢに従って変換される第１命令メモリアドレスと第２命令メモリアドレスの関係を示す概略図である。
【符号の説明】
【０１４７】
１００  プロセッサシステム
１１０  メインプロセッサ用命令メモリ
１２０  メインプロセッサ
１２１  命令フェッチ部
１２２、１５１  命令デコード部
１２３、１５２  命令実行部
１３０  コプロセッサ用命令メモリ
１４０  命令供給部
１４１  命令メモリアドレス比較部
１４１Ａ  命令メモリアドレス変換レジスタ
１４１Ｂ  命令メモリアドレス始点レジスタ
１４１Ｃ  命令メモリアドレス終点レジスタ
１４１Ｄ  比較部有効レジスタ
１４１Ｅ  比較回路
１４１Ｆ  一致情報生成回路
１４１Ｇ  命令メモリアドレス変換回路
１４２  命令選択部
１５０  コプロセッサ
【図１】
2009026131.tif 000003
【図２】
2009026131.tif 000004
【図３】
2009026131.tif 000005
【図４】
2009026131.tif 000006
【図５】
2009026131.tif 000007
【図６】
2009026131.tif 000008
【図７】
2009026131.tif 000009
【図８】
2009026131.tif 000010