(57)【特許請求の範囲】
【請求項１】
一連のインストラクションを順次プリフェッチする複数のプリフェッチ手段と、
前記複数のプリフェッチ手段に対応して設けられ、前記プリフェッチしたインストラクションより、少なくとも処理順序が連続でなくなるインストラクションを検出する複数のプリデコーダと、
前記プリデコーダにおいて前記処理順序が連続でなくなるインストラクションを検出した場合に、当該プリデコーダに対応した前記プリフェッチ手段とは異なる他のプリフェッチ手段に、当該一連のインストラクションとは連続でない新たな一連のインストラクションをプリフェッチさせるプリフェッチ制御手段と、
前記複数のプリデコーダより、実行対象のインストラクションを有するプリデコーダを順次選択し、当該インストラクションを順次読み出す選択手段と、
前記読み出されたインストラクションに従った所定の処理を実行するプロセッサ手段と
を有し、
前記プリフェッチ手段は、プログラムモジュールを適宜呼び出しながら所望の処理を実行するメインプログラムを構成するインストラクションを順次プリフェッチする第１のプリフェッチ手段と、各々所定の処理を行う複数の前記プログラムモジュールを構成するインストラクションを順次プリフェッチする複数の第２のプリフェッチ手段とを有し、
前記プリフェッチ制御手段は、前記プリデコーダにおいて前記プログラムモジュールを呼び出すインストラクションを検出した場合に、前記他のプリフェッチ手段に、当該呼び出された新たなプログラムモジュールをプリフェッチさせる
プロセッサ装置。
【請求項２】
前記メインプログラムが記憶された第１のメモリ手段と、
前記複数のプログラムモジュールが記憶された第２のメモリ手段と
をさらに有し、
前記第１のプリフェッチ手段は、前記第１のメモリ手段より前記メインプログラムを構成する前記インストラクションを順次プリフェッチし、
前記第２のプリフェッチ手段は、前記第２のメモリ手段より前記プログラムモジュールを構成する前記インストラクションを順次プリフェッチする
請求項１に記載のプロセッサ装置。
【請求項３】
前記複数の第２のプリフェッチ手段は、前記第２のメモリ手段に記憶されている前記複数のプログラムモジュールに各々対応付けられており、
前記プリフェッチ制御手段は、新たに呼び出す前記プログラムモジュールに対応付けられている前記第２のプリフェッチ手段に、当該プログラムモジュールをプリフェッチさせる
請求項２に記載のプロセッサ装置。
【請求項４】
前記複数のプリフェッチ手段に対応付けられた、複数のプログラムカウンタをさらに有する
請求項３に記載のプロセッサ装置。
【請求項５】
前記複数のプログラムモジュール各々の前記第２のメモリ手段におけるアドレス情報を有するテーブル
をさらに有し、
前記複数のプログラムカウンタの各々は、前記対応するプログラムモジュールのプリフェッチの際に、前記テーブルを参照して初期値を決定する
請求項４に記載のプロセッサ装置。
【請求項６】
前記第１のメモリ手段は、任意の書換え可能なメモリ手段であり、
前記第２のメモリ手段は、ＲＯＭ（リ−ド・オンリ・メモリ）により構成される
請求項５に記載のプロセッサ装置。
【請求項７】
プログラムモジュールを適宜呼び出しながら所望の処理を実行するメインプログラムを構成する一連のインストラクションを順次プリフェッチする第１のプリフェッチ手段と、
各々所定の処理を行う複数の前記プログラムモジュールを構成する一連のインストラクションを順次プリフェッチする複数の第２のプリフェッチ手段と、
前記第１プリフェッチ手段および前記複数の第２のプリフェッチ手段に各々対応して設けられ、前記プリフェッチしたインストラクションより、少なくとも前記プログラムモジュールを呼び出すインストラクションを検出する複数のプリデコーダと、
前記プリデコーダにおいて前記プログラムモジュールを呼び出すインストラクションを検出した場合に、当該プリデコーダに対応した前記プリフェッチ手段とは異なる他のプリフェッチ手段に、当該呼び出された新たなプログラムモジュールをプリフェッチさせるプリフェッチ制御手段と、
前記複数のプリデコーダより、実行対象のインストラクションを有するプリデコーダを選択し、当該インストラクションを順次読み出す選択手段と、
前記読み出されたインストラクションに従った所定の処理を実行するプロセッサ手段と
を有する集積回路。
【請求項８】
前記複数のプログラムモジュールが記憶されたプログラムモジュール記憶手段  をさらに有し、
前記第２のプリフェッチ手段は、前記プログラムモジュール記憶手段より前記プログラムモジュールを構成する前記インストラクションを順次プリフェッチする
請求項７に記載の集積回路。
【請求項９】
前記プログラムモジュール記憶手段は、ＲＯＭ（リ−ド・オンリ・メモリ）として構成される
請求項８に記載の集積回路。
【請求項１０】
前記メインプログラムが記憶されるメインプログラム記憶手段
をさらに有し、
前記第１のプリフェッチ手段は、前記メインプログラム記憶手段より前記メインプログラムを構成する前記インストラクションを順次プリフェッチする
請求項９に記載の集積回路。
【請求項１１】
前記メインプログラム記憶手段は、フラッシュＲＯＭにより構成される
請求項１０に記載の集積回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラムに従って所望の演算処理を行うプロセッサ装置であって、特に、たとえばマクロコマンドプログラムなどの下層のプログラムモジュールへの処理の分岐時および復帰時のオーバーヘッドを無くし、高速に効率よく所望の処理を行うことができるプロセッサ装置、および、そのようなプロセッサ装置を内蔵するたとえば特定用途向けＩＣのような集積回路に関する。
【０００２】
【従来の技術】
プログラムに従って所望の処理を行ういわゆるマイクロプロセッサユニット（ＭＰＵ）（以後、単にプロセッサと言う場合もある。）においては、近年、種々の高速アーキテクチャの開発や動作周波数の高速化などが行われており、処理速度の高速化が著しい。
また、半導体技術の進展により、プロセッサを含む所望の回路を１つの半導体集積回路（ＩＣ）上に構成することが比較的容易に行えるようになっており、所望の処理を、プロセッサを含みその処理に特化され最適化された専用回路により高速に効率よく行えるようにしたいわゆる特定用途向けＩＣ（ＡＳＩＣ）の開発、利用が盛んに行われている。
【０００３】
しかし、そのようなプロセッサにおいては、プロセッサにプログラムやデータを供給するバスや周辺回路の処理速度がプロセッサの処理速度に対して追いつかない状態、いわゆるバスネックやメモリネックの状態となり、プロセッサの処理能力を十分に使用できない状態が発生している。
そのために、多段のプリフェッチキューやインストラクションキャッシュなどを設けて、たとえば実行対象のプログラムを先読みするなどして、実行効率の改善を図っている。
【０００４】
【発明が解決しようとする課題】
しかしながら、そのようなプロセッサにおいても、たとえば分岐命令が発生した時には、プリフェッチされたプログラムを用いることができず新たに分岐先のプログラムをフェッチする必要が生じ、プロセッサの処理が待機させられる処理効率が下がるという問題がある。
特に、近年では、実際の実行プログラムレベルは関数として構成するなどした関数やサブルーチン、マクロコマンドなどを多用した階層化構造のプログラムが多いが、そのようなプログラムを実行する場合には、メインプログラムと下層の処理モジュール、あるいは処理モジュールとさらに下層の処理モジュールとの間で処理の制御の移動を行う必要があるため、その際にオーバーヘッドが生じ、処理効率を向上させる上での障害となっている。
【０００５】
したがって、本発明の目的は、分岐条件が発生した時や処理モジュールの切り換えなどが発生した際のオーバーヘッドを少なくし、より効率よく所望の処理が行えるプロセッサ装置を提供することにある。
また、本発明の他の目的は、そのようなプロセッサ装置を内蔵し、所望の処理を効率よく高速に行うことができる集積回路を提供することにある。
【０００６】
【課題を解決するための手段】
前記課題を解決するために、本発明のプロセッサ装置は、一連のインストラクションを順次プリフェッチする複数のプリフェッチ手段と、前記複数のプリフェッチ手段に対応して設けられ、前記プリフェッチしたインストラクションより、少なくとも処理順序が連続でなくなるインストラクションを検出する複数のプリデコーダと、前記プリデコーダにおいて前記処理順序が連続でなくなるインストラクションを検出した場合に、当該プリデコーダに対応した前記プリフェッチ手段とは異なる他のプリフェッチ手段に、当該一連のインストラクションとは連続でない新たな一連のインストラクションをプリフェッチさせるプリフェッチ制御手段と、前記複数のプリデコーダより、実行対象のインストラクションを有するプリデコーダを順次選択し、当該インストラクションを順次読み出す選択手段と、前記読み出されたインストラクションに従った所定の処理を実行するプロセッサ手段とを有し、前記プリフェッチ手段は、プログラムモジュールを適宜呼び出しながら所望の処理を実行するメインプログラムを構成するインストラクションを順次プリフェッチする第１のプリフェッチ手段と、各々所定の処理を行う複数の前記プログラムモジュールを構成するインストラクションを順次プリフェッチする複数の第２のプリフェッチ手段とを有し、前記プリフェッチ制御手段は、前記プリデコーダにおいて前記プログラムモジュールを呼び出すインストラクションを検出した場合に、前記他のプリフェッチ手段に、当該呼び出された新たなプログラムモジュールをプリフェッチさせる。
【０００８】
また、本発明の集積回路は、プログラムモジュールを適宜呼び出しながら所望の処理を実行するメインプログラムを構成する一連のインストラクションを順次プリフェッチする第１のプリフェッチ手段と、各々所定の処理を行う複数のプログラムモジュールを構成する一連のインストラクションを順次プリフェッチする複数の第２のプリフェッチ手段と、前記第１プリフェッチ手段および前記複数の第２のプリフェッチ手段に各々対応して設けられ、前記プリフェッチしたインストラクションより、少なくとも前記プログラムモジュールを呼び出すインストラクションを検出する複数のプリデコーダと、前記プリデコーダにおいて前記プログラムモジュールを呼び出すインストラクションを検出した場合に、当該プリデコーダに対応した前記プリフェッチ手段とは異なる他のプリフェッチ手段に、当該呼び出された新たなプログラムモジュールをプリフェッチさせるプリフェッチ制御手段と、前記複数のプリデコーダより、実行対象のインストラクションを有するプリデコーダを選択し、当該インストラクションを順次読み出す選択手段と、前記読み出されたインストラクションに従った所定の処理を実行するプロセッサ手段とを有する。
【０００９】
【発明の実施の形態】
本発明のプロセッサ装置の一実施の形態を図１および図２を参照して説明する。
図１は、本発明のプロセッサ装置の構成を示すブロック図である。
プロセッサ装置１０は、実行ユニット１１、インストラクションデコーダ１２、メインプログラムインストラクションプリフェッチャ１３、メインプログラムインスラクションプリデコーダ１４、ｎ個のマクロプログラムインストラクションプリフェッチャ１５-1〜１５-n、ｎ個のマクロプログラムインスラクションプリデコーダ１６-1〜１６-n、マルチプレクサ１８、メインプログラムカウンタ１９、マクロコマンドアドレステーブル２０、ｎ個のマクロコマンドプログラムカウンタ２１-1〜２１-nおよびシーケンスコントローラ２２を有する。
なお、図１には、このプロセッサ装置１０に、処理対象のプログラムのメインプログラムが記憶されているメインプログラムメモリ３０と、マクロブロックプログラムが順次記憶されているマクロプログラムメモリ３１とが接続されている状態を示してある。
【００１０】
まず、各部の構成について説明する。
実行ユニット１１は、供給される処理対象のデータに対して、インストラクションデコーダ１２より供給されるインストラクションに従った所望の処理を実際に行う演算処理部である。
【００１１】
インストラクションデコーダ１２は、後述するマルチプレクサ１８により選択されて供給されるメインプログラムインスラクションプリデコーダ１４またはマクロプログラムインスラクションプリデコーダ１６-i（ｉ＝１〜ｎ）でプリデコードされたインストラクションデータをさらにデコードし、実行ユニット１１がそのインストラクションデータに基づいた所望の処理を行うように、実行ユニット１１に対する制御コードを生成して実行ユニット１１に出力する。
【００１２】
メインプログラムインストラクションプリフェッチャ１３は、シーケンスコントローラ２２より入力されるアドレスデータおよび制御信号に基づいて、外部に設けられているメインプログラムが記憶されているメインプログラムメモリ３０より、メインプログラムの各ステップのインストラクションデータを順次読み出し、メインプログラムインスラクションプリデコーダ１４に出力する。
【００１３】
メインプログラムインスラクションプリデコーダ１４は、メインプログラムインストラクションプリフェッチャ１３より入力されるインストラクションデータをプリデコードし、マルチプレクサ１８を介してインストラクションデコーダ１２に出力する。その際に、メインプログラムインスラクションプリデコーダ１４は、”マクロコマンド”インストラクションをデコードすると、その旨の信号をシーケンスコントローラ２２に出力する。
【００１４】
ｎ個のマクロプログラムインストラクションプリフェッチャ１５-1〜１５-nは、各々、シーケンスコントローラ２２より入力されるアドレスデータおよび制御信号に基づいて、外部に設けられているマクロプログラムが記憶されているマクロプログラムメモリ３１より、マクロプログラムの各ステップのインストラクションデータを順次読み出し、対応するマクロプログラムインスラクションプリデコーダ１６-iに出力する。
【００１５】
ｎ個のマクロプログラムインスラクションプリデコーダ１６-1〜１６-nは、各々、対応するマクロプログラムインストラクションプリフェッチャ１５-iより入力されるインストラクションデータをプリデコードし、マルチプレクサ１８を介してインストラクションデコーダ１２に出力する。その際、マクロプログラムインスラクションプリデコーダ１６-iは、”マクロコマンド”インストラクションをデコードすると、その旨の信号をシーケンスコントローラ２２に出力する。また、プリデコード中の”マクロコマンド”のインストラクションが終了した時にも、マクロプログラムインスラクションプリデコーダ１６-iは、その旨の信号をシーケンスコントローラ２２に出力する。
【００１６】
マルチプレクサ１８は、シーケンスコントローラ２２からの制御信号に基づいてメインプログラムインスラクションプリデコーダ１４およびｎ個のマクロプログラムインスラクションプリデコーダ１６-1〜１６-nのいずれかの出力信号であるプリデコードされたインストラクションデータを選択し、インストラクションデコーダ１２に出力する。
【００１７】
メインプログラムカウンタ１９は、メインプログラムの実行に係わり、メインプログラムメモリ３０より読み出すプログラムを制御するプログラムカウンタである。
【００１８】
マクロコマンドアドレステーブル２０は、マクロプログラムメモリ３１に記憶されている各マクロコマンドプログラムの実行開始先頭アドレスが記憶されているテーブルであり、ｎ個のマクロコマンドプログラムカウンタ２１-1〜２１-nにより適宜その先頭アドレスが読み出される。
【００１９】
ｎ個のマクロコマンドプログラムカウンタ２１-1〜２１-nは、各々、対応する階層のマクロコマンドプログラムの実行に係わり、マクロプログラムメモリ３１より読み出すプログラムを制御するプログラムカウンタである。
【００２０】
シーケンスコントローラ２２は、実行ユニット１１に適切にインストラクションコードが供給されて、所望の動作を効率よく実行できるように、プロセッサ装置１０の前述したような主にインストラクションフェッチおよびデコードに係わる構成部を制御する制御部である。
【００２１】
具体的には、たとえば、メインプログラムインスラクションプリデコーダ１４あるいはマクロプログラムインスラクションプリデコーダ１６-j（ｊ＝１〜ｎ）より、”マクロコマンド”をデコードした旨の信号が入力された場合には、その”マクロコマンド”に対応する階層のマクロコマンドプログラムカウンタ２１-i（メインプログラムからの分岐の場合ｉ＝１、マクロコマンドプログラムからの分岐の場合ｉ＝ｊ＋１）に対して、マクロコマンドアドレステーブル２０よりその”マクロコマンド”の開始先頭アドレスを読み込むように制御を行う。そして、そのマクロコマンドプログラムカウンタ２１-iによりカウントされるプログラムカウンタ値に基づいて、順次マクロプログラムメモリ３１をアクセスしプログラムをフェッチするように、ｎ個のマクロプログラムインストラクションプリフェッチャ１５-1〜１５-nの中のその”マクロコマンド”に対応する所定のマクロプログラムインストラクションプリフェッチャ１５-iを制御する。
【００２２】
また、この時に、シーケンスコントローラ２２は、これまで実行実体であったメインプログラムあるいはマクロプログラムに対するメインプログラムインストラクションプリフェッチャ１３およびメインプログラムインスラクションプリデコーダ１４、あるいは、マクロプログラムインストラクションプリフェッチャ１５-jおよびマクロプログラムインスラクションプリデコーダ１６-jにおけるプリフェッチおよびプリデコードの処理をそれまでの内容を保存したままで停止させる。
【００２３】
そして、新たに処理を開始した”マクロコマンド”が終了した際には、これらのプリフェッチおよびプリデコードの処理を停止させた状態から直ちに再開させる。
また、シーケンスコントローラ２２は、このようなプリフェッチおよびプリデコードを行う構成部の切り換えに伴って、有効になったプリデコード結果が適切にインストラクションデコーダ１２に入力されるように、マルチプレクサ１８を適宜切り換える。
【００２４】
また、シーケンスコントローラ２２は、メインプログラムおよび各マクロコマンドの実行の際には、メインプログラムカウンタ１９またはマクロコマンドプログラムカウンタ２１-iより入力されるプログラムカウント値に基づいて、順次メインプログラムメモリ３０およびマクロプログラムメモリ３１に格納されているプログラムが読み出されるように、メインプログラムインストラクションプリフェッチャ１３およびマクロプログラムインストラクションプリフェッチャ１５-iを制御する。
【００２５】
次に、プロセッサ装置１０の動作について図２を参照して説明する。
なお、ここでは、マクロコマンドプログラムの階層を一階層のみにした構成を例示してプロセッサ装置１０の動作を説明する。したがって、マクロコマンドプログラムの中から別のマクロコマンドプログラムを呼び出す動作についての説明は省略する。
【００２６】
まず、通常に処理を開始する際には、メインプログラムカウンタ１９はまず０番地にリセットされ、これに基づいてメインプログラムインストラクションプリフェッチャ１３がメインプログラムメモリ３０を０番地より順にアクセスし、記憶されているプログラムコードをプリフェッチする。
プリフェッチされたプログラムコードは、メインプログラムインスラクションプリデコーダ１４で順次プリデコードされ、通常のインストラクションであればマルチプレクサ１８を介してインストラクションデコーダ１２に入力されてデコードされ、実行ユニット１１で実行される。
【００２７】
メインプログラムインスラクションプリデコーダ１４でプリデコードしたインストラクションが”マクロコマンド”を示すものであった場合には、その旨がシーケンスコントローラ２２に入力され、シーケンスコントローラ２２の制御に基づいて、その”マクロコマンド”に対応するマクロプログラムの開始先頭アドレスがマクロコマンドアドレステーブル２０よりマクロコマンドプログラムカウンタ２１-i（本例の場合ｉ＝１）に読み込まれる。
そして、このマクロコマンドプログラムカウンタ２１-iの出力に基づいて、同じく対応するマクロプログラムインストラクションプリフェッチャ１５-iがマクロプログラムメモリ３１に記憶されているそのマクロコマンドのプログラムコードをプリフェッチし、マクロプログラムインスラクションプリデコーダ１６-iでプリデコードされる。
【００２８】
そして、メインプログラムのそのマクロコマンドを呼び出す処理が実行されるタイミングで、マルチプレクサ１８が切り換えられ、マクロプログラムインスラクションプリデコーダ１６-iでプリデコードされたそのマクロコマンドのプログラムコードがインストラクションデコーダ１２に供給される。
これにより、実行ユニット１１では、メインプログラムからマクロコマンドに実行が移る。なお、この時に、状態フラグやメインプログラムカウンタ１９の内容などは退避されずそのまま保存される。
【００２９】
そのマクロコマンドのプログラムコードが終了すると、マクロプログラムインスラクションプリデコーダ１６-iにおいてその旨が検出され、シーケンスコントローラ２２の制御により、実行プログラムがマクロコマンドから元のメインプログラムに切り換えられる。すなわち、マルチプレクサ１８が切り換えられてメインプログラムインスラクションプリデコーダ１４の出力がインストラクションデコーダ１２に出力されるようにされ、また、メインプログラムカウンタ１９におけるカウントが再開されるとともにこのカウント値に基づくメインプログラムインストラクションプリフェッチャ１３におけるメインプログラムのプログラムコードのプリフェッチが再開される。
【００３０】
以後同様に、マクロコマンドをデコードするごとに、そのマクロコマンドのプログラムのプリフェッチおよびプリデコードを、メインプログラムインストラクションプリフェッチャ１３およびメインプログラムインスラクションプリデコーダ１４とは異なるマクロプログラムインストラクションプリフェッチャ１５-iおよびマクロプログラムインスラクションプリデコーダ１６-iで行っておき、マルチプレクサ１８を切り換えることで実行ユニット１１における実行対象の切り換えを行う。
【００３１】
なお、図２には示さないが、マクロコマンドプログラムに従って動作中に、さらにマクロコマンドが発生した場合にも、前述したのと同様に新たな下層のマクロコマンドのプリフェッチおよびプリデコードを行い、マルチプレクサ１８を切り換えることにより実行ユニット１１における制御も切り換える。そして、元のプログラムへの復帰も、マルチプレクサ１８を順次切り換えることにより階層的に順に復帰させる。
【００３２】
このように、本実施の形態のプロセッサ装置１０においては、プリフェッチャ、プリデコーダおよびプログラムカウンタを、メインプログラム用およびマクロコマンド用に別に複数設けているので、プログラム実行時に分岐や他の処理モジュールの呼び出しが行われた場合においても、プリフェッチしたプログラムコードやプログラムカウンタの値を退避する必要がなく、単にインストラクションデコーダ１２および実行ユニット１１に出力するプログラムコードを切り換えるのみでよい。そのため、これまで生じていたようなデータの退避時のオーバーヘッドを無くすことができ、そのような分岐や呼び出しを直ちに行うことができ、仮に分岐命令が多用されても実行速度を損なうことなく、全体として処理速度、処理効率を大幅に向上させることができる。
【００３３】
なお、本発明は、本実施の形態のみに限られるものではなく、任意好適な種々の改変が可能である。
たとえば、本実施の形態のプロセッサ装置においては、メインプログラムメモリおよびマクロプログラムメモリをともに外部メモリとして有する構成であったが、これらの一部または全部をプロセッサ装置内に設けるようにしてもよい。また、各プログラムを記憶するメモリの構成も任意に決定してよい。
たとえば、メインプログラムとマクロプログラムとを、物理的に同一のメモリ上にマッピングするようにしてもよい。
【００３４】
もちろん、メインプログラムメモリとマクロプログラムメモリとを、物理的に異なるメモリを用いて実現してもよい。
その場合、たとえば、図３に示すように、メインプログラムメモリは外部メモリとして設け、マクロプログラムメモリをプロセッサ装置内部にマスクＲＯＭとして持つような構成でもよい。実際のデータ処理内容は主にマクロプログラム中に記述しておき、全体の処理シーケンスの順番のみをメインプログラム内に記述しておけば、処理速度を向上させることができる上に、メインプログラムの修正が容易に行えるので好適である。
【００３５】
また、図３に示したメインプログラムメモリを、図４に示すように、プロセッサ装置内にフラッシュメモリ、ＥＥＰＲＯＭを用いて収容するようにしてもよい。このようにしておけば、メインプログラムの書換えが可能である上に全体を１チップにすることができ、経済的にも有効である。
【００３６】
また、図５に示すように、プロセッサ装置内のＲＯＭに格納するマクロプログラムの内容が、特定のＭＰＵのインストラクションセットと論理的に１対１に対応付けられるような場合には、仮想のＭＰＵエミュレータ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）を構成することもできる。本発明はこのような構成で実施してもよい。
【００３７】
また、本実施の形態においては、実行インストラクション中に関数やサブルーチン、マクロコマンドなど、他のプログラムモジュールを呼び出すインストラクションを発見した場合に、そのプログラムモジュールを他のプリフェッチャにプリフェッチする場合について説明したが、同一のプログラムモジュール中の通常の条件分岐などにも適用可能である。その際には、分岐先からのインストラクションを別のプリフェッチャにプリフェッチしておき、演算処理の結果の分岐条件に基づいてマルチプレクサ１８を制御して、元のプログラムモジュールのインストラクションか、別途プリフェッチした分岐先からのインストラクションかを選択するようにすればよい。
【００３８】
【発明の効果】
以上説明したように、本発明によれば、分岐条件が発生した時や処理モジュールの切り換えなどが発生した際のオーバーヘッドを少なくし、より効率よく所望の処理が行えるプロセッサ装置を提供することができる。
また、そのようなプロセッサ装置を内蔵し、所望の処理を効率よく高速に行うことができる集積回路を提供することができる。
【図面の簡単な説明】
【図１】図１は、本発明の一実施の形態のプロセッサ装置の構成を示すブロック図である。
【図２】図２は、図１に示したプロセッサ装置におけるプログラムの実行の状態を示す図である。
【図３】図３は、本発明のプロセッサ装置の他の構成例を示す第１の図である。
【図４】図４は、本発明のプロセッサ装置の他の構成例を示す第２の図である。
【図５】図５は、本発明のプロセッサ装置の他の構成例を示す第３の図である。
【符号の説明】
１０…プロセッサ装置、１１…実行ユニット、１２…インストラクションデコーダ、１３…メインプログラムインストラクションプリフェッチャ、１４…メインプログラムインスラクションプリデコーダ、１５…マクロプログラムインストラクションプリフェッチャ、１６…メインプログラムインスラクションプリデコーダ、１８…マルチプレクサ、１９…メインプログラムカウンタ、２０…マクロコマンドアドレステーブル、２１…マクロコマンドプログラムカウンタ、２２…シーケンスコントローラ
【図１】
0003867427.tif 000002
【図２】
0003867427.tif 000003
【図３】
0003867427.tif 000004
【図４】
0003867427.tif 000005
【図５】
0003867427.tif 000006