(57)【特許請求の範囲】
【請求項１】
複数の処理手段を有し、
該複数の処理手段のいずれかを利用してハードウエア・マルチスレッディングを行うマルチスレッド処理装置であって、
前記ハードウエア・マルチスレッディングに係る複数のスレッドであって、車載機器制御のための処理を実行する該スレッドのそれぞれについて、前記複数の処理手段のうち二以上の処理手段を用いたスーパースカラ動作の許可又は不許可が規定され、
前記複数のスレッドのうち少なくとも一部についてのスーパースカラ動作の許可又は不許可は、前記マルチスレッド処理装置が搭載された車両の車両状態に応じて動的に変更されることを特徴とする、
マルチスレッド処理装置。
【請求項２】
請求項１に記載のマルチスレッド処理装置であって、
前記複数のスレッドに関する前記スーパースカラ動作の許可又は不許可は、所定の記憶装置に格納されたデータテーブルによって規定されていることを特徴とする、
マルチスレッド処理装置。
【請求項３】
請求項１または２に記載のマルチスレッド処理装置であって、
前記車両状態は、シフト位置を含み、
前記複数のスレッドのうち少なくとも一部についてのスーパースカラ動作の許可又は不許可は、前記シフト位置に応じて動的に変更されることを特徴とする、
マルチスレッド処理装置。
【請求項４】
請求項１または２に記載のマルチスレッド処理装置であって、
前記車両状態は、エンジン回転数を含み、
前記複数のスレッドのうち少なくとも一部についてのスーパースカラ動作の許可又は不許可は、前記エンジン回転数に応じて動的に変更されることを特徴とする、
マルチスレッド処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のスレッドがハードウエアを部分的に共有して処理を行うマルチスレッド処理装置に関する。
【背景技術】
【０００２】
従来、複数のスレッド毎にソースプログラムやレジスタファイル等を有し、スレッド間で演算回路等を共有して並行処理を行うマルチスレッド装置が知られている。このように、スレッド毎の構成要素が存在するマルチスレッド装置の機能は、ハードウエア・マルチスレッディングと称される。
【０００３】
ハードウエア・マルチスレッディングを行うマルチスレッドプロセッサについての発明が開示されている（例えば、特許文献１参照）。このマルチスレッドプロセッサでは、演算器による命令処理に使用されるデータを格納可能なレジスタウィンドウをスレッド毎に備え、複数のレジスタウィンドウ間、及び一以上の演算器の間でデータを相互に転送可能なワークレジスタと、データ転送を制御するマルチスレッド制御部を備えている。
【０００４】
一方、演算器等を含む処理手段を複数個備え、プログラムの各処理を必要に応じて複数の処理手段に振り分け、並行処理を行うマイクロコンピュータが知られている。このように、処理を複数の処理手段に振り分ける動作は、スーパースカラ（或いはスーパースケーラ）動作と称されている。スーパースカラ動作を行うことによって、処理時間の短縮化、処理の効率性の向上を図ることができる。
【０００５】
スーパースカラ動作を行うスーパースカラ・プロセッサについての発明が開示されている（例えば、特許文献２参照）。このプロセッサは、複数の実行ユニットへ同時実行可能な命令を並列に発行し実行するものであり、複数の実行ユニットの動作電源電圧及び動作クロック信号を指定する動作モードがソフトウエア制御により実行ユニットごとにそれぞれ設定され、動作電源電圧及び動作クロック信号の動作状態に応じて命令の発行先を変更している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−０３９８１５号公報
【特許文献２】特開２００２−３６６３５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、上記の如きマルチスレッド処理装置にスーパースカラ動作を行わせると（換言すると、スーパースカラ動作が可能であるマイクロコンピュータにハードウエア・マルチスレッディング機能を持たせると）、スレッドが行う処理のリアルタイム性が損なわれるという問題がある。具体的には、ある基準時間から所定クロック分経過した後に特定の処理を実行したいという状況があった場合、スーパースカラ動作によって処理時間が短縮され、当初の予定時刻（予定クロック経過数）よりも前に特定の処置が終了してしまう可能性がある。こうした問題は、特に車両制御を行う車載制御装置等に適用された場合に大きいものとなる。車載制御装置では、制御対象によっては制御タイミングが重要な場合があり、処理のリアルタイム性を確保する必要性が生じ得るからである。
【０００８】
本発明はこのような課題を解決するためのものであり、スーパースカラ動作によって効率処理を行うと共に、処理のリアルタイム性を確保することが可能なマルチスレッド処理装置を提供することを、主たる目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するための本発明の一態様は、
複数の処理手段を有し、
該複数の処理手段のいずれかを利用してハードウエア・マルチスレッディングを行うマルチスレッド処理装置であって、
前記ハードウエア・マルチスレッディングに係る複数のスレッドであって、車載機器制御のための処理を実行する該スレッドのそれぞれについて、前記複数の処理手段のうち二以上の処理手段を用いたスーパースカラ動作の許可又は不許可が規定され、
前記複数のスレッドのうち少なくとも一部についてのスーパースカラ動作の許可又は不許可は、前記マルチスレッド処理装置が搭載された車両の車両状態に応じて動的に変更されることを特徴とする、
マルチスレッド処理装置である。
【００１０】
この本発明の一態様によれば、ハードウエア・マルチスレッディングに係る複数のスレッドのそれぞれについて、スーパースカラ動作の許可又は不許可が規定されているため、スーパースカラ動作によって効率処理を行うと共に、処理のリアルタイム性を確保することができる。
【００１１】
本発明の一態様において、
前記複数のスレッドに関する前記スーパースカラ動作の許可又は不許可は、例えば、所定の記憶装置に格納されたデータテーブルによって規定されている。
【００１６】
本発明の一態様において、
前記車両状態は、シフト位置を含み、
前記複数のスレッドのうち少なくとも一部についてのスーパースカラ動作の許可又は不許可は、前記シフト位置に応じて動的に変更されることを特徴とするものとしてもよいし、
前記車両状態は、エンジン回転数を含み、
前記複数のスレッドのうち少なくとも一部についてのスーパースカラ動作の許可又は不許可は、前記エンジン回転数に応じて動的に変更されることを特徴とするものとしてもよい。
【発明の効果】
【００１７】
本発明によれば、スーパースカラ動作によって効率処理を行うと共に、処理のリアルタイム性を確保することが可能なマルチスレッド処理装置を提供することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施例に係るマルチスレッド処理装置１のシステム構成例である。
【図２】マルチスレッド処理装置１の部分構成例であり、主に命令発行部１２及びスレッドスケジュール制御部２４の内部構成を、より詳細に示した図である。
【図３】スーパースカラ動作によって処理効率が向上する様子を説明するための説明図である。
【図４】マルチスレッド処理装置１のスレッド数が２である（＃０と＃１とする）場合において、スレッド＃０のみスーパースカラ動作を行う場合の処理の流れを示す図である。
【図５】複数のＥＣＵを統合して一のマルチスレッド処理装置とした場合に、リアルタイム性が確保される様子を示す図である。
【図６】本実施例のマルチスレッド処理装置１が適用された車載制御装置のシステム構成を概念的に示す図である。
【発明を実施するための形態】
【００１９】
以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。
【実施例】
【００２０】
＜基本実施例＞
［基本構成］
以下、図面を参照し、本発明の一実施例に係るマルチスレッド処理装置１について説明する。マルチスレッド処理装置１は、例えば車両に搭載され、各スレッドが種々の車載機器制御のための命令を実行する制御装置に、好適に適用される。
【００２１】
車載機器制御の例としては、例えばエンジン制御、ブレーキ制御、パワーステアリング等を制御するステアリング制御、ドアロック等を制御するボデー制御、ＶＳＣ（Vehicle  Stability  Control）やＶＤＩＭ（Vehicle  Dynamics  Integrated  Management）等の車両安定化制御、ＡＣＣ（Adaptive  Cruise  Control）等の運転支援制御、ナビゲーション制御等が挙げられる。
【００２２】
図１は、本発明の一実施例に係るマルチスレッド処理装置１のシステム構成例である。マルチスレッド処理装置１は、主要な構成として、命令バッファ１０＃０〜１０＃３と、命令発行部１２と、命令デコーダ１４Ａ、１４Ｂと、レジスタ取得部１６Ａ、１６Ｂと、演算器１８Ａ、１８Ｂと、レジスタ群２０＃０〜２０＃３と、パイプライン制御部２２と、スレッドスケジュール制御部２４と、を備える。
【００２３】
命令バッファ１０＃０〜１０＃３、及びレジスタ群２０＃０〜２０＃３は、複数のスレッド（＃０〜＃３）毎に設けられている。ここで、スレッドとは、ハードウエアを部分的に共有して処理を行なう仮想的な処理主体をいい、本実施例の場合、命令バッファ１０＃０〜１０＃３、及びレジスタ群２０＃０〜２０＃３はスレッド毎に用意されているが、それ以外の命令発行部１２、命令デコーダ１４Ａ、１４Ｂ、レジスタ取得部１６Ａ、１６Ｂ、演算器１８Ａ、１８Ｂは、スレッド間で共用される。また、本実施例では、スレッドが４個設定されるものとし、これらをスレッド＃０〜＃３と称している。
【００２４】
また、２系統の処理手段（命令デコーダ１４Ａ、レジスタ取得部１６Ａ、演算器１８Ａ（これらを系統Ａと称する）と、命令デコーダ１４Ｂ、レジスタ取得部１６Ｂ、演算器１８Ｂ（これらを系統Ｂと称する）は、スーパースカラ動作を可能としている。例えば、スーパースカラ動作を行わない場合は系統Ａのみを用いて処理を行い、スーパースカラ動作を行う場合は系統Ａ及びＢを用いて処理を行う、等の態様で利用される。
【００２５】
命令バッファ１０＃０〜１０＃３は、図示しないＲＯＭ（Read  Only  Memory）やＥＥＰＲＯＭ（Electrically  Erasable  and  Programmable  Read  Only  Memory）等のプログラムメモリから取得したプログラム（命令列）をスレッド毎に格納する。
【００２６】
命令発行部１２は、マルチスレッディングやスーパースカラの設定状態に応じて各スレッドの命令を発行する。詳しくは後述する。
【００２７】
命令デコーダ１４Ａ、１４Ｂは、命令発行部１２から供給される命令を解読（デコード）し、レジスタ取得部１６Ａ、１６Ｂに出力する。命令デコーダ１４Ａ、１４Ｂによる解読結果は、例えば、演算の種別、ソースオペランド、結果の格納場所等である。
【００２８】
レジスタ取得部１６Ａ、１６Ｂは、命令デコーダ１４Ａ、１４Ｂから入力された命令に従ってレジスタ群２０＃０〜２０＃３から演算対象値等を取得する。
【００２９】
演算器１８Ａ、１８Ｂは、演算の種類に応じて、レジスタ群２０＃０〜２０＃３に記憶され、レジスタ取得部１６Ａ、１６Ｂにより取得された演算対象値に演算を施す。演算の内容は、ストア、ロード、加算、乗算、除算、分岐等である。例えばストア命令の場合、演算器１８Ａ、１８Ｂは、演算したアドレスを指定してデータバス等を介してＲＡＭ等からデータを読み込む。
【００３０】
レジスタ群２０＃０〜２０＃３は、演算器１８Ａ、１８Ｂによる演算結果やステータス等を格納している。
【００３１】
パイプライン制御部２２は、以上のようなパイプライン制御の各ステージを制御する。具体的には、例えば、内部クロックに応じて、スレッド＃０〜＃３に対応して設定されているプログラムカウンタのアドレスをプログラムメモリに出力し、読み出した命令を命令バッファ１０＃０〜１０＃３に格納する等の制御を行っている。
【００３２】
スレッドスケジュール制御部２４は、スレッド＃０〜＃３を内部クロックに応じて順に作動させる。また、スレッドスケジュール制御部２４には、図示しないＯＳ等からスレッド＃０〜＃３の作動割合（時間配分）が与えられている。この作動割合は、帯域と称される。帯域が、例えば、＃０：＃１：＃２：＃３＝２：２：１：１で与えられているとすると、スレッドスケジュール制御部２４は、スレッド＃０を２クロックの間作動させ、次にスレッド＃１を２クロックの間作動させ、次にスレッド＃２を１クロックの間作動させ、次にスレッド＃３を１クロックの間作動させる。そして、この順で繰り返し処理を実行させる。
【００３３】
［スーパースカラ動作］
図２は、マルチスレッド処理装置１の部分構成例であり、主に命令発行部１２及びスレッドスケジュール制御部２４の内部構成を、より詳細に示した図である。
【００３４】
命令発行部１２は、同時実行判定部１２ａと、セレクタ１２ｂ、１２ｃと、を有する。同時実行判定部１２ａは、命令バッファ１０＃０〜１０＃３から入力された命令のうち次に発行される２命令について、同時発行が可能であるかどうかを判定する。
【００３５】
同時発行が可能であるかどうかの判定は、オペランドチェック（先の命令の演算結果を後の命令が用いて演算を行うかをチェックする等）その他の手法により行われる。また、後述するように、スレッド毎に設定されているスーパースカラ動作の許可又は不許可が加味される。同時実行判定部１２ａは、命令バッファ１０＃０〜１０＃３から入力された複数個の命令を格納するバッファを備えてもよい。
【００３６】
スレッドスケジュール制御部２４は、スレッドスケジュール設定レジスタ２４ａと、スーパースカラ許可設定レジスタ２４ｂと、を備える。これらのレジスタは、例えば８ビットのデータを格納している。
【００３７】
スレッドスケジュール設定レジスタ２４ａは、複数のスレッドの作動割合である帯域を規定している。スレッドスケジュール制御部２４は、前述のように、内部クロックに応じて、且つ設定されている帯域を実現するようにスレッドを切り替える。具体的には、内部クロックに同期してセレクタ１２ｂ、１２ｃにセレクト信号を送出し、作動すべきスレッドの命令がデコーダ１４Ａ及び１４Ｂに出力されるように制御する。なお、同時実行判定部１２ａは、予め同時発行が可能であるかどうかの判定をスレッド毎に行っており、その結果を内部に保持しているものとする。
【００３８】
同時実行判定部１２ａが同時発行を行う場合、セレクタ１２ｂ、１２ｃに、当該スレッドの連続する２つの命令がそれぞれ出力される。これによって、２つの命令が命令デコーダ１４Ａ、１４Ｂに同時に発行されることになり、スーパースカラ動作が行われる。
【００３９】
図３は、スーパースカラ動作によって処理効率が向上する様子を説明するための説明図である。図中、左側の処理の流れは、シングルスレッドマイコンがシングルスカラ（スーパースカラ動作を行わない）によって処理を行う様子を模式的に示している。本図において、命令Ａ３と命令Ａ４は、レイテンシの大きいメモリアクセスを含む等の理由により２クロックを要する命令である（パイプラインストールが１クロック分生じる）。
【００４０】
一方、図３中、右側の処理の流れは、シングルスレッドマイコンがスーパースカラ動作を行って処理を行う様子を模式的に示している。本図において、命令Ａ１と命令Ａ２、及び命令Ａ４と命令Ａ５は同時実行が不可能な命令である。こうした命令組に対しては、命令の同時発行がされず、スーパースカラ動作は行われない。他方、命令Ａ２と命令Ａ３、命令Ａ５と命令Ａ６は、同時実行が可能な命令である。こうした命令組に対しては、命令の同時発行がされてスーパースカラ動作が行われる。この結果、左側の処理の流れに比して、処理効率が向上していることが判る。
【００４１】
［スーパースカラ動作の許可／不許可］
スーパースカラ許可設定レジスタ２４ｂは、スレッド毎にスーパースカラ動作を許可するか否かを規定している。スーパースカラ許可設定レジスタ２４ｂの内容は、マルチスレッド処理装置１の処理内容のセキュリティ性に応じて、外部から書き換え可能であってもよいし、ユーザーレベルでは書き換え不能となるように保護されてもよい。
【００４２】
そして、同時実行判定部１２ａは、同時発行が可能であるかどうかの判定に際し、スーパースカラ許可設定レジスタ２４ｂの内容に基づいて出力されるスーパースカラ許可信号を参照する。従って、スーパースカラ許可設定レジスタ２４ｂにおいてスーパースカラ動作が許可されていないスレッドについては、同時発行を行わない。
【００４３】
また、図４は、マルチスレッド処理装置１のスレッド数が２である（＃０と＃１とする）場合において、スレッド＃０のみスーパースカラ動作を行う場合の処理の流れを示す図である。図中、最上段の数字は内部クロックの経過数を示している。
【００４４】
図示するように、１クロック目では、スレッド＃０がIF（インストラクションフェッチ；命令バッファから命令発行部１２への出力）を実行する。ここで、命令発行部１２はスレッド＃０の命令がスーパースカラ可能な命令であると判断し、命令の同時発行を行う。
【００４５】
２クロック目では、スレッド＃０がスーパースカラ動作によりID（インストラクションデコード；命令デコーダ１４Ａ、１４Ｂによる解読処理）を２系統で実行し、スレッド＃１がIFを実行する。
【００４６】
３クロック目では、スレッド＃０がスーパースカラ動作によりEXE（演算等の処理）、を２系統で実行すると共に、これと並行処理可能なIFを実行し、スレッド＃１がIDを実行する。
【００４７】
４クロック目では、スレッド＃０がスーパースカラ動作によりMEM（メモリアクセス）を２系統で実行すると共に、これと並行処理可能なIDをスーパースカラ動作により２系統で実行し、スレッド＃１がEXEを実行する。
【００４８】
５クロック目では、スレッド＃０がスーパースカラ動作によりWB（ライトバック）を２系統で実行すると共に、これと並行処理可能なEXEをスーパースカラ動作により２系統で実行し、スレッド＃１がMEMを実行する。
【００４９】
このように、パイプライン制御によって順次命令を実行しつつ、スーパースカラ動作が可能な命令列についてはスーパースカラ動作を行うことで、処理効率を向上させることができる。
【００５０】
また、スーパースカラ許可設定レジスタ２４ｂにおいてスーパースカラ動作が許可されていないスレッドについては、同時発行を行わないことにより、処理のリアルタイム性を確保することができる。
【００５１】
前述のように、マルチスレッド処理装置１が実行する命令は、同時発行可能であるか否かが予め判らない場合が多い。特に、分岐命令が実行された後等、スーパースカラ動作の発生頻度が予測し得ないものとなり易い。従って、スーパースカラ動作を許可した場合、特定のタイミングで特定の処理が行われることの信頼性（処理のリアルタイム性）が低くなってしまう。
【００５２】
処理のリアルタイム性の確保は、複数のマイクロコンピュータの機能を統合して一のマルチスレッド処理装置とした場合、特に、複数の機能を統合した車載制御装置に適用された場合に重要な場合が多い。
【００５３】
図５は、ＣＰＵやＲＡＭ、ＲＯＭ、Ｉ／Ｏポート等がバスを介して接続された構成の、複数のＥＣＵ（Electronic  Control  Unit）を統合して一のマルチスレッド処理装置とした場合に、リアルタイム性が確保される様子を示す図である。
【００５４】
ここでは、５０［ＭＨｚ］で動作するＥＣＵ＃Ａ〜ＥＣＵ＃Ｄを統合し、２００［ＭＨｚ］で動作するマルチスレッド処理装置に機能統合している。そして、ＥＣＵ＃Ａ〜ＥＣＵ＃Ｄの行っていた処理は、それぞれスレッド＃０〜＃３によって実行される。前提として、ＥＣＵ＃Ａ〜ＥＣＵ＃Ｃが行っていた処理はリアルタイム性の重要度が低く、迅速に処理を終了することが望ましいが、ＥＣＵ＃Ｄが行っていた処理はリアルタイム性の重要度が高いものとする。
【００５５】
この場合、ＥＣＵ＃Ａ〜ＥＣＵ＃Ｃの機能を実行するスレッド＃０〜＃２についてはスーパースカラ動作を許可するが、ＥＣＵ＃Ｄの機能を実行するスレッド＃３についてはスーパースカラ動作を許可しないように設定する。
【００５６】
これによって、図５に示すように、従来ＥＣＵ＃Ａ〜ＥＣＵ＃Ｃが行っていた処理は、スーパースカラ動作によって処理時間が短縮され、早期に終了することになる。具体的には、命令Ａ５が命令Ａ４と並行処理され、命令Ｂ５が命令Ｂ４と並行処理され、命令Ｃ５が命令Ｃ４と並行処理されている。一方、従来ＥＣＵ＃Ｄが行っていた処理についてはスーパースカラ動作が行われないため、内部クロックの経過数に対する命令実行タイミングが変動しない。従って、従来ＥＣＵ＃Ｄが行っていた処理タイミングと同じようなタイミングで処理を実行することができる。
【００５７】
以上説明した本実施例のマルチスレッド処理装置１によれば、スーパースカラ動作によって効率処理を行うと共に、処理のリアルタイム性を確保することができる。
【００５８】
＜応用例＞
以下、本実施例のマルチスレッド処理装置１を、車載機器制御を行う車載制御装置に適用した場合について説明する。
【００５９】
図６は、本実施例のマルチスレッド処理装置１が適用された車載制御装置のシステム構成を概念的に示す図である。この車載制御装置は、前述したＥＣＵとして構成され、ＥＣＵ管理、システム＃Ａ、システム＃Ｂ、システム＃Ｃの４つの機能が統合されたものである。そして、これらの４つの機能は、スレッド＃０〜＃３によって、それぞれ実行されるようにソフトウエアが構築されている。
【００６０】
これらの機能のうち、ＥＣＵ管理、及びシステム＃Ｂが、処理のリアルタイム性の重要性が低く、常時スーパースカラ動作が許可される。システム＃Ａは、処理のリアルタイム性の重要性が高いため、スーパースカラ動作は許可されない。システム＃Ｃは、車両状態に応じて処理のリアルタイム性が変動するため、スーパースカラ動作の許可／不許可が変動する（スーパースカラ動的制御）。この場合、スーパースカラ許可設定レジスタ２４ｂの内容が、図示しないＯＳ等の指示によって書き換えられる。
【００６１】
ここで、車載制御装置に適用された場合のスーパースカラ動的制御について、２パターン例示する。
【００６２】
（１）マルチスレッド処理装置１が運転支援システムに適用された場合、例えば、シフト位置をトリガーとしてスーパースカラ動作の許可／不許可が変動する。シフト位置は、シフトレバーに取り付けられたシフト位置センサーから入力される信号によって把握される。
【００６３】
この場合、車載制御装置における特定のスレッドは、シフト位置がＤ（ドライブ）である場合にオートクルーズコントロールや衝突安全システムのための処理を行っており、シフト位置がＲ（リバース）である場合に車両後方を車室内に表示するバックモニタや駐車支援制御のための処理を行っている。
【００６４】
オートクルーズコントロールや衝突安全システムは、処理のリアルタイム性が要求されるため、スーパースカラ動作を許可しない。具体的には、センサー出力値（例えば車速）のサンプリング周期等が略一定に保たれる必要が生じるからである。
【００６５】
一方、バックモニタや駐車支援制御には処理のリアルタイム性が要求されないため、スーパースカラ動作を許可する。従って、当該車載制御装置のスレッドは、シフト位置がＤである場合にスーパースカラ動作を不許可とし、シフト位置がＲである場合にスーパースカラ動作を許可する。
【００６６】
（２）マルチスレッド処理装置１がエンジン制御システムに適用された場合、例えば、エンジン回転数に応じてスーパースカラ動作の許可／不許可が変動する。エンジン回転数は、エンジンのクランクシャフトに取り付けられたクランク角センサーから入力される値に基づいて演算することができる。
【００６７】
エンジン回転数が低い場合、特にアイドリング時においては、燃費向上のためにエンジン回転数を正確に制御する必要等が生じるため、処理のリアルタイム性の重要性が高くなる。従って、スーパースカラ動作を不許可とする。
【００６８】
一方、エンジン回転数が高い場合、処理タイミングよりも迅速な演算処理が望まれ、処理のリアルタイム性の重要性は低いものとなる。従って、スーパースカラ動作を許可する。
【００６９】
当該車載制御装置のスレッドは、エンジン回転数が基準値以上である場合にスーパースカラ動作を許可し、基準値未満である場合にスーパースカラ動作を不許可とする。
【００７０】
このようにスーパースカラ動作の許可／不許可を動的に変更することによって、制御対象が要求する処理の特性に合致した態様で、命令実行を行うことができる。
【００７１】
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【００７２】
１    マルチスレッド処理装置
１０＃０〜１０＃３  命令バッファ
１２    命令発行部
１２ａ  同時実行判定部
１２ｂ、１２ｃ  セレクタ
１４Ａ、１４Ｂ  命令デコーダ
１６Ａ、１６Ｂ  レジスタ取得部
１８Ａ、１８Ｂ  演算器
２０＃０〜２０＃３  レジスタ群
２２    パイプライン制御部
２４    スレッドスケジュール制御部
２４ａ  スレッドスケジュール設定レジスタ
２４ｂ  スーパースカラ許可設定レジスタ
【図１】
0005528852.tif 000002
【図２】
0005528852.tif 000003
【図３】
0005528852.tif 000004
【図４】
0005528852.tif 000005
【図５】
0005528852.tif 000006
【図６】
0005528852.tif 000007