(57)【要約】  一の命令流に対する性能保証と、他の命令流に対する高い応答性とを両立することのできるプロセッサを提供することを目的とする。  Ｌ個（Ｌは２以上の整数）の演算器を有するプロセッサは、Ｍ個（Ｍは２以上の整数）の命令流各々が区別して入力され、各命令流を構成するＺ個（Ｚは２以上の整数であり、Ｍ×ＺはＬ以上であることを満たす）の命令を格納するためのＭ×Ｚ個の命令記憶領域を含む命令バッファと、前記命令バッファ内の前記Ｍ×Ｚ個の命令記憶領域に順序を付けた情報である順序情報を保持する順序情報保持手段と、前記命令バッファの前記Ｍ×Ｚ個の命令記憶領域に格納された命令を抽出するための抽出手段と、実行可能状態となっており前記Ｍ×Ｚ個の命令記憶領域に格納されている命令全てのうちから、前記順序情報に従った順序で、Ｌ個の命令を前記抽出手段に抽出させて、抽出された命令毎に別の演算器に入力する制御手段とを備える。
2010134329.tif 000002
【特許請求の範囲】
【請求項１】
Ｌ個（Ｌは２以上の整数）の演算器を有するプロセッサであって、
Ｍ個（Ｍは２以上の整数）の命令流各々が区別して入力され、各命令流を構成するＺ個（Ｚは２以上の整数であり、Ｍ×ＺはＬ以上であることを満たす）の命令を格納するためのＭ×Ｚ個の命令記憶領域を含む命令バッファと、
前記命令バッファ内の前記Ｍ×Ｚ個の命令記憶領域に順序を付けた情報である順序情報を保持する順序情報保持手段と、
前記命令バッファの前記Ｍ×Ｚ個の命令記憶領域に格納された命令を抽出するための抽出手段と、
実行可能状態となっており前記Ｍ×Ｚ個の命令記憶領域に格納されている命令全てのうちから、前記順序情報に従った順序で、Ｌ個の命令を前記抽出手段に抽出させて、抽出された命令毎に別の演算器に入力する制御手段とを備える
ことを特徴とするプロセッサ。
【請求項２】
前記命令バッファは、
前記Ｍ×Ｚ個の命令記憶領域それぞれについて、当該命令記憶領域に記憶されている命令が実行可能であるか否かを示すフラグを有しており、
前記制御手段は、
Ｍ×Ｚ個のフラグそれぞれの内容から、実行可能状態である命令全てを特定する
ことを特徴とする請求項１に記載のプロセッサ。
【請求項３】
前記Ｍ個の命令流のうち一の命令流は、所定時間内で処理の完了を保証すべき性能保証命令流であり、
前記順序情報は、
前記性能保証命令流の処理が前記所定時間内で終了することを保証するための最小個数の命令について、Ｌ以下の順序を付与した情報である
ことを特徴とする請求項１に記載のプロセッサ。
【請求項４】
前記性能保証命令流は、画像のデコード処理を行うためのものであり、
前記プロセッサは、
画像のデコード処理を行う画像処理システムに備えられる
ことを特徴とする請求項３に記載のプロセッサ。
【請求項５】
前記性能保証命令流は、画像のエンコード処理を行うためのものであり、
前記プロセッサは、
画像のエンコード処理を行う画像処理システムに備えられる
ことを特徴とする請求項３に記載のプロセッサ。
【請求項６】
前記プロセッサは、さらに、
前記Ｍ個の命令流毎に、当該命令流において一の演算器へ出力された命令数を監視し、一の命令流において出力された命令数が所定値を超えると、当該命令流を構成するＺ個の命令が格納されたＺ個の命令記憶領域の順序を下げるように、前記順序情報を更新する順序情報更新手段を備える
ことを特徴とする請求項１に記載のプロセッサ。
【請求項７】
前記プロセッサは、さらに、
前記Ｍ個の命令流毎に、当該命令流において一の演算器へ出力された命令を監視し、一の命令流において特定の命令が出力されると、当該命令流を構成するＺ個の命令が格納されたＺ個の命令記憶領域の順序を下げるように、前記順序情報を更新する順序情報更新手段を備える
ことを特徴とする請求項１に記載のプロセッサ。
【請求項８】
Ｌ個（Ｌは２以上の整数）の演算器を有するプロセッサで用いられる方法であって、
前記プロセッサは、
Ｍ個（Ｍは２以上の整数）の命令流各々が区別して入力され、各命令流を構成するＺ個（Ｚは２以上の整数であり、Ｍ×ＺはＬ以上であることを満たす）の命令を格納するためのＭ×Ｚ個の命令記憶領域を含む命令バッファと、
前記命令バッファ内の前記Ｍ×Ｚ個の命令記憶領域に順序を付けた情報である順序情報を保持する順序情報保持手段とを備え、
前記方法は、
前記命令バッファの前記Ｍ×Ｚ個の命令記憶領域に格納された命令を抽出するための抽出ステップと、
実行可能状態となっており前記Ｍ×Ｚ個の命令記憶領域に格納されている命令全てのうちから、前記順序情報に従った順序で、Ｌ個の命令を前記抽出ステップに抽出させて、抽出された命令毎に別の演算器に入力する制御ステップとを含む
ことを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の命令流を並列に実行するプロセッサにおいて、一の命令流に対する性能保証と、他の命令流に対する高い応答性とを両立する技術に関する。
【背景技術】
【０００２】
近年、デジタル化された映像データや、音声データなどの圧縮、伸張等を行うメディア処理の処理効率を向上するために、非特許文献１において、複数のプログラムを同時に実行することにより、演算効率を向上させたマルチスレッドプロセッサが開示されている。【０００３】
また、マルチスレッドプロセッサを用いた技術として、特許文献１がある。特許文献１では、複数の命令流（スレッド）それぞれについて、処理の優先順位を設定し、優先順位の高い命令流を優先的に処理する技術が開示されている。この技術により、命令流単位に必要とされる処理性能を動的に実現し、かつ全体の処理効率を向上させることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−１２４３１６号公報
【非特許文献】
【０００５】
【非特許文献１】"A Multithreaded Processor Architecture with Simultaneous Instruction Issuing", In Proc. of ISS'91:International Symposium on Supercomputing, Fukuoka, Japan, pp.87-96, November 1991
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、処理すべき命令流には、画像処理などのように所定の時間までに処理が終了していることが要求される、つまり性能保証が要求されるものや、ユーザーからの指示に対する処理を行うもの（所定の時間までに処理が終了する必要のないもの）がある。【０００７】
これらの命令流に対して、特許文献１に開示された技術を用いて、並列に処理を行おうとすると、性能保証が要求される命令流について、所定の時間までに処理の終了を保証するためには、他の命令流（性能保証が要求されない命令流）と比べて高い優先順位を設定する必要がある。【０００８】
そうすると、性能保証が要求される命令流が優先的に実行され、性能保証が要求されない命令流は実行されないので、例えば、ユーザーからの指示があっても性能保証が要求される命令流が終了するまでは、その指示に係る処理が行われない。そのため、ユーザーは、自身がした指示に対する応答が遅いと感じ、不快な思いをする。【０００９】
また、逆に、ユーザーの指示に対する応答を早くしようとするためには、当該命令が属する命令流の優先順位を他の命令流（性能保証が要求される命令流）よりも高くすることが考えられるが、そうすると、性能保証が要求される命令流について所定の時間に処理が終了することが保証できない。【００１０】
そこで、本発明は、上記の問題に鑑みて、一の命令流に対する性能保証と、他の命令流に対する高い応答性とを両立することのできるプロセッサ、情報処理システム及び方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記にて示す目的を達成するために、本発明は、Ｌ個（Ｌは２以上の整数）の演算器を有するプロセッサであって、Ｍ個（Ｍは２以上の整数）の命令流各々が区別して入力され、各命令流を構成するＺ個（Ｚは２以上の整数であり、Ｍ×ＺはＬ以上であることを満たす）の命令を格納するためのＭ×Ｚ個の命令記憶領域を含む命令バッファと、前記命令バッファ内の前記Ｍ×Ｚ個の命令記憶領域に順序を付けた情報である順序情報を保持する順序情報保持手段と、前記命令バッファの前記Ｍ×Ｚ個の命令記憶領域に格納された命令を抽出するための抽出手段と、実行可能状態となっており前記Ｍ×Ｚ個の命令記憶領域に格納されている命令全てのうちから、前記順序情報に従った順序で、Ｌ個の命令を前記抽出手段に抽出させて、抽出された命令毎に別の演算器に入力する制御手段とを備えることを特徴とする。
【発明の効果】
【００１２】
上記にて示す構成によると、プロセッサは、M×Ｚ個の命令記憶領域に順序を付けた順序情報に基づいて、実行可能状態でありM×Ｚ個の命令記憶領域に格納されている命令全てのうちからＬ個の命令を抽出するので、一の命令流の命令と、他の命令流の命令とを同時に抽出することができる。そのため、プロセッサは、例えば、一の命令流が性能保証が要求される命令流であり、他の命令流が性能保証が要求されない命令流であるとすると、他の命令流の命令は、一の命令流が終了するまで待つ必要はないので、一の命令流に対する性能保証と、他の命令流に対する高い応答性とを両立することができる。
【図面の簡単な説明】
【００１３】
【図１】プロセッサ１０の構成を示す図である。
【図２】各命令バッファ１０３〜１０５、及び発行命令決定部１０６の構成を示す図である。
【図３】命令発行前と発行後における命令バッファの保持内容の変化を示す図である。
【図４】優先度情報テーブル３００のデータ構造の一例を示す図である。
【図５】第１の実施の形態において、発行すべき命令を決定する処理の動作を示す流れ図である。
【図６】第１の実施の形態において、第１命令流及び第２命令流を用いた並列処理を行った場合での各命令の割り当て（発行）の動作イメージを示す図である。
【図７】プロセッサ１０ａの構成を示す図である。
【図８】各命令バッファ６０３〜６０５、及び発行命令決定部６０６の構成を示す図である。
【図９】（ａ）は更新前の優先度情報テーブル８００のデータ構造の一例を示し、（ｂ）は更新後の優先度情報テーブル８００ａのデータ構造の一例を示す図である。
【図１０】第２の実施の形態において、発行すべき命令を決定する処理の動作を示す流れ図である。
【図１１】第２の実施の形態において、優先度情報テーブル８００を更新する処理の動作を示す流れ図である。
【図１２】第２の実施の形態において、第１命令流及び第２命令流を用いた並列処理を行った場合での各命令の割り当て（発行）の動作イメージを示す図である。
【図１３】プロセッサ１０ｂの構成を示す図である。
【図１４】各命令バッファ１１０３〜１１０５、及び発行命令決定部１１０６の構成を示す図である。
【図１５】（ａ）は更新前の優先度情報テーブル１３００のデータ構造の一例を示し、（ｂ）は更新後の優先度情報テーブル１３００ａのデータ構造の一例を示す図である。
【図１６】第３の実施の形態において、発行すべき命令を決定する処理の動作を示す流れ図である。
【図１７】優先度情報テーブル１３００を更新する第１更新処理の動作を示す流れ図である。
【図１８】優先度情報テーブル１３００を更新する第２更新処理の動作を示す流れ図である。
【図１９】第３の実施の形態において、第１命令流及び第２命令流を用いた並列処理を行った場合での各命令の割り当て（発行）の動作イメージを示す図である。
【図２０】映像処理システム１６００の構成の一例を示す図である。
【発明を実施するための形態】
【００１４】
１．第１の実施の形態
以下本発明の実施の形態について、図面を参照しながら説明する。
【００１５】
１．１  構成
図１は、本発明の実施の形態１におけるプロセッサ１０の構成を示すブロック図である。
【００１６】
プロセッサ１０は、Ｎ（Ｎは２以上の整数）個の命令流（Ｎ個のスレッド）を同時に独立して実行するプロセッサであり、命令メモリ１０１と、命令群決定部１０２と、Ｎ個の命令バッファ（第１命令バッファ１０３、第２命令バッファ１０４、・・・、第Ｎ命令バッファ１０５）と、発行命令決定部１０６と、優先度決定部１０７と、Ｎ個のレジスタファイル（第１レジスタファイル１０８、第２レジスタファイル１０９、・・・、第Ｎレジスタファイル１１０）と、演算器群１１１と、ライトバックバス１１２を備えている。
【００１７】
ここで、各命令バッファとレジスタファイルは１対１に対応付けられ、Ｎ個の論理プロセッサを構成する。
【００１８】
また、本実施の形態では、プロセッサ１０は、同時に４つの命令の実行が可能であるとする。
【００１９】
（１）命令メモリ１０１
命令メモリ１０１は、プロセッサ１０において実行される命令を保持するメモリであり、Ｎ本の独立に実行される命令流（スレッド）を保持している。
【００２０】
（２）命令群決定部１０２
命令群決定部１０２は、命令メモリ１０１から、各命令流に属する命令を読み出し、デコードを行い、当該命令が割り当てられている命令バッファに書き込む。
【００２１】
（３）第１命令バッファ１０３から第Ｎ命令バッファ１０５
第ｉ命令バッファ（ｉは１以上Ｎ以下の整数）は、ｉ番目の命令流（以下、第ｉ命令流という。）に属する命令を受け取り、保持するものである。
【００２２】
具体的には、第１命令バッファ１０３は、図２に示すように、第１命令保持部２０１と第１命令流スケジューラ２０２とを有している。
【００２３】
第１命令保持部２０１は、４つの命令を保持するための領域である第１〜第４の記憶領域２０１ａ〜２０１ｄを有している。各命令は、実行順序に基づいて、第１〜第４の記憶領域２０１ａ、２０１ｂ、２０１ｃ、２０１ｄへと順次格納される。例えば、図３に示すように、第１の記憶領域２０１ａで保持されている命令ａ１が実行（発行）されると、第２〜第４の記憶領域２０１ｂ、２０１ｃ、２０１ｄそれぞれで保持されていた命令ａ２からａ４は、１つずつシフトし、空いた第４の記憶領域２０１ｄに新たな命令ａ５が格納される。
【００２４】
第１命令流スケジューラ２０２は、第１命令保持部２０１が有する４つの第１〜第４の記憶領域２０１ａ〜２０１ｄ毎に対応付けられたフラグを有している。ここで、フラグは、対応付けられた記憶領域で記憶されている命令が発行可能な状態であるか否かを示すものである。例えば、外部（例えば、命令群決定部１０２）が、各命令のフロー依存に基づいてマシンサイクルに発行可能な命令を検出し、発行可能な命令に対して、発行可能であることを示す値をフラグに設定する。
【００２５】
また、第２命令バッファ１０４についても、第２命令保持部２０３と第２命令流スケジューラ２０４とを有しており、第Ｎ命令バッファ１０５についても、第Ｎ命令保持部２０５と第Ｎ命令流スケジューラ２０６とを有している。これらの構成要素は、第１命令バッファ１０３における構成要素と同様のものであるので、ここでの説明は省略する。
【００２６】
（４）優先度決定部１０７
優先度決定部１０７は、発行命令決定部１０６において発行する命令を決定する際に用いる優先度情報テーブル３００を保持している。
【００２７】
優先度情報テーブル３００は、例えば、図４に示すように、優先度３０１、命令流３０２及び命令番号３０３とから構成され、Ｎ個の命令バッファそれぞれが有する合計４×Ｎ個分のテーブル要素を有している。
【００２８】
優先度３０１は、Ｎ個の命令バッファそれぞれが有する合計４×Ｎ個の記憶領域について、読み出す順序を示す値である。
【００２９】
命令流３０２は、命令流を識別する値である。ここでは、値ｉ（ｉは１以上Ｎ以下の整数）は、第ｉ命令流を示すものとする。
【００３０】
命令番号３０３は、命令流３０２で示される第ｉ命令流の命令が保持されている第ｉ命令保持部における記憶領域を識別する値である。ここでは、値ｎ（ｎは１以上４以下の整数）は、第ｎの記憶領域を示すものとする。
【００３１】
例えば、第１優先度となる命令は、テーブル要素３０４に示され、ここでは、第１命令流の第１の記憶領域２０１ａに格納された命令となる。
【００３２】
また、第２優先度となる命令は、テーブル要素３０５に示され、ここでは、第２命令流の第１の記憶領域２０３ａに格納された命令となる。
【００３３】
第３優先度となる命令は、テーブル要素３０６に示され、ここでは、第２命令流の第２の記憶領域２０１ｂに格納された命令となる。
【００３４】
第４優先度となる命令は、テーブル要素３０７に示され、ここでは、第２命令流の第３の記憶領域２０１ｃに格納された命令となる。
【００３５】
第５優先度となる命令は、テーブル要素３０８に示され、ここでは、第１命令流の第２の記憶領域２０１ｂに格納された命令となる。
【００３６】
ここで、優先度情報テーブル３００における各命令の優先度は、予め定められているものとする。また、その設定方法は、例えば、第１命令流が、一定の性能保証が求められる命令流であって、かつ、所定時間内（例えば、時間ｔ内）で処理を完了すべきものである場合、第１命令流については、命令の発行のタイミング（マシンサイクル）毎に、時間ｔで処理が完了するための最小数の命令が発行できるように、優先度を割り付ける。ここで、第１命令流はマシンサイクル毎に１命令を発行することで、所定の時間内に処理が完了する場合を考える。本実施の形態では４つの命令を同時に実行するので、図４に示すように、第１命令流の命令が優先的に常に発行できるように、上位４つの優先度のうち最も高い優先度を１つ割り付けることで、マシンサイクル毎に必ず第１命令流の１命令が発行されることとなる。
【００３７】
（５）発行命令決定部１０６
発行命令決定部１０６は、第１命令バッファ１０３から第Ｎ命令バッファ１０５からマシンサイクル毎に発行する命令を決定するものである。
【００３８】
発行命令決定部１０６は、第１命令流スケジューラ２０２から第Ｎ命令流スケジューラ２０６と、優先度情報テーブル３００とに基づいて、実行可能状態となっており各記憶領域に格納されている命令全てのうち、優先度情報テーブル３００で示される順序に従って、４個の命令を選択し、選択した命令それぞれを個別の演算器へ出力する。
【００３９】
ここで、図２において、発行命令決定部１０６のハードウェア構成を示す。
【００４０】
発行命令決定部１０６は、第１命令決定部２１１から第４命令決定部２１４と、命令選択部２１５と、第１命令抽出部２２１から第４命令抽出部２２４とを有している。
【００４１】
（５−１）命令選択部２１５
命令選択部２１５は、第１命令流スケジューラ２０２から第Ｎ命令流スケジューラ２０６と、優先度情報テーブル３００とに基づいて、実行可能状態となっており各記憶領域に格納されている命令全てのうち、優先度情報テーブル３００で示される順序に従って、選択すべき４個の命令を特定する。具体的には、第１命令バッファ１０３から第Ｎ命令バッファ１０５それぞれから各命令バッファ内の発行可能な命令数を示す信号、つまり実行可能状態となっている命令数を示す信号２４１〜２４３を受け取り、優先度情報テーブル３００で示される順序に従って、選択すべき４個の命令を特定する。
【００４２】
そして、命令選択部２１５は、第１命令決定部２１１から第４命令決定部２１４それぞれに対して、当該命令決定部で取得すべき命令を示す発行命令選択信号２５１〜２５４を出力する。発行命令選択信号には、抽出すべき命令を示す情報、例えば、抽出すべき命令が保持されている命令バッファ及びその記憶領域を示す情報が含まれている。
【００４３】
（５−２）第１命令抽出部２２１から第４命令抽出部２２４
第ｎ命令抽出部（ｎは１以上４以下の整数）は、第１命令バッファ１０３から第Ｎ命令バッファ１０５それぞれの第ｎの記憶領域で保持されている命令を抽出するためのものである。
【００４４】
以下、具体例として、第１命令バッファ１０３からの命令抽出について説明する。
【００４５】
第１命令抽出部２２１は接続線２３１と、第２命令抽出部２２２は接続線２３２と、第３命令抽出部２２３は接続線２３３と、第４命令抽出部２２４は接続線２３４と、それぞれ接続されている。ここで、接続線２３１は第１の記憶領域２０１ａと、接続線２３２は第２の記憶領域２０１ｂと、接続線２３３は第３の記憶領域２０１ｃと、接続線２３４は第４の記憶領域２０１ｄと、それぞれ接続されているものとする。
【００４６】
第１命令抽出部２２１は、第１の記憶領域で保持されている命令を、接続線２３１を介して読み出し、抽出の指示のあった命令決定部へ出力する。
【００４７】
第２命令抽出部２２２から第４命令抽出部２２４それぞれについても同様に、対応する記憶領域で保持されている命令を、当該命令が保持されている記憶領域と接続された接続線を介して読み出し、抽出の指示のあった命令決定部へ出力する。
【００４８】
（５−３）第１命令決定部２１１から第４命令決定部２１４
第１命令決定部２１１から第４命令決定部２１４それぞれは、演算器群１１１が有する演算器と１対１に対応付けられている。
【００４９】
以下、第１命令決定部２１１から第４命令決定部２１４それぞれの機能について説明する。
【００５０】
第ｎ命令決定部（ｎは１以上４以下の整数）は、命令選択部２１５から受け取った発行命令選択信号に基づいて、どの命令バッファのどの記憶領域から命令を取得するかを特定し、該当する第ｍ命令抽出部（ｍは１以上４以下の整数）に対して、抽出すべき命令を抽出するよう制御する。
【００５１】
そして、第ｎ命令決定部は、第ｍ命令抽出部が抽出した命令を取得すると、取得した命令を対応付けられた演算器へ出力する。
【００５２】
（６）第１レジスタファイル１０８から第Ｎレジスタファイル１１０
第ｉレジスタファイル（ｉは１以上Ｎ以下の整数）は、第ｉ命令バッファに保持された命令流を実行することによって、読み出し及び書き込みの対象とされるデータを保持するレジスタ群である。
【００５３】
（７）演算器群１１１
演算器群１１１は、加算器や乗算器などからなる複数の演算器を含むものである。なお、ここでは、演算器群１１１は、４つの演算器（演算器１１１ａ〜１１１ｄ）を有しているものとする。また、演算器１１１ａは第１命令決定部２１１と、演算器１１１ｂは第２命令決定部２１２と、演算器１１１ｃは第３命令決定部２１３と、演算器１１１ｄは第４命令決定部２１４と、それぞれ対応付けられているものとする。
【００５４】
演算器が処理する命令には、当該命令が属する命令流を識別する情報が含まれており、当該情報に基づいて対応するレジスタファイルへ演算結果を出力する。
【００５５】
（８）ライトバックバス１１２
ライトバックバス１１２は、演算器群１１１からの出力を第１レジスタファイル１０８〜第Ｎレジスタファイル１１０に書き戻すためのバスである。
【００５６】
１．２  動作
ここでは、発行すべき命令を決定する動作について図５に示す流れ図を用いて説明する。
【００５７】
命令選択部２１５は、一のマシンサイクルにおいて発行する命令を決定する際に、変数の初期化（ｉ＝１；ｊ＝１；ｋ＝４）を行う（ステップＳ５）。ここで、変数ｉは、マシンサイクルにおいて発行する命令数をカウントするカウンタである。変数ｊは、図４の優先度情報テーブル３００から情報を読み出すためのポインタを示す。変数ｋは、マシンサイクルにおいて発行可能な命令の最大数を示し、本実施例においては４である。
【００５８】
命令選択部２１５は、変数ｉの値が変数ｋ以下であるか否か、つまり発行する命令数が最大値以下であるか否かを判断する（ステップＳ１０）。
【００５９】
変数ｉの値が変数ｋ以下であると判断する場合（ステップＳ１０における「Ｙｅｓ」）、命令選択部２１５は、優先度情報テーブル３００のｊ番目のエントリを読み出し、その読み出しに成功したか否かを判断する（ステップＳ１５）。
【００６０】
ｊ番目のエントリの読み出しに成功したと判断した場合（ステップＳ１５における「Ｙｅｓ」）、命令選択部２１５は、取得したｊ番目のエントリが示す命令流の命令が発行可能であるか否を判断する（ステップＳ２０）。
【００６１】
発行可能でないと判断する場合には（ステップＳ２０における「Ｎｏ」）、変数ｊに値１が加算され（ステップＳ２５）、処理はステップＳ１５へ戻る。
【００６２】
発行可能であると判断する場合には（ステップＳ２０における「Ｙｅｓ」）、命令選択部２１５は、第ｉ命令決定部に対して発行命令選択信号を出力する。発行命令選択信号を受信した第ｉ命令決定部は、発行すべき命令が保持されている記憶領域に応じた命令抽出部に当該命令を抽出させて、命令抽出部で抽出された命令を対応する演算器へ出力する（ステップＳ３０）。
【００６３】
その後、変数ｉに値１が、変数ｊに値１が、それぞれ加算され（ステップＳ３５）、処理はステップＳ１０へ戻る。
【００６４】
また、変数ｉの値が変数ｋ以下でないと判断する場合（ステップＳ１０における「Ｎｏ」）、及び  ｊ番目のエントリの読み出しに失敗した、つまりポインタが示す位置にエントリが無いと判断した場合（ステップＳ１５における「Ｎｏ」）、処理は終了する。
【００６５】
１．３  動作イメージ
図６は、第１の実施の形態において、第１命令流及び第２命令流を用いた並列処理を行った場合での各命令の割り当て（発行）の動作イメージである。
【００６６】
ここで、図６に示す動作イメージでは、縦軸に時間、横軸に命令の並列度を示している。
【００６７】
ブロック５０１は、第１命令流の命令実行の様子を示し、常に最優先で１命令の発行が行われていることを示している。
【００６８】
ブロック５０２は、第２命令流の命令実行の様子を示し、第１命令流で使用されない並列度を用いて３命令が実行されていることを示す。
【００６９】
例えば、第１命令流が一定の性能保証が求められる命令流であって、かつ、所定時間内（例えば、時間ｔ内）において常に１命令が発行されることで、その性能を満たすことができる場合、本実施例により、性能保証の条件を満たしつつ、他の命令流の応答性を高く保つことができる。
【００７０】
２．第２の実施の形態
ここでは、第２の実施の形態に係るプロセッサ１０ａについて、第１の実施の形態に係るプロセッサ１０と異なる点を中心に説明する。
【００７１】
図７は、第２の実施の形態におけるプロセッサ１０ａの構成を示すブロック図である。
【００７２】
プロセッサ１０ａは、Ｎ（Ｎは２以上の整数）個の命令流（Ｎ個のスレッド）を同時に独立して実行するプロセッサであり、命令メモリ６０１と、命令群決定部６０２と、Ｎ個の命令バッファ（第１命令バッファ６０３、第２命令バッファ６０４、…、第Ｎ命令バッファ６０５）と、発行命令決定部６０６と、優先度決定部６０７と、Ｎ個のレジスタファイル（第１レジスタファイル６０８、第２レジスタファイル６０９、…、第Ｎレジスタファイル６１０）と、演算器群６１１と、ライトバックバス６１２と、優先度更新部６１３とを備えている。
【００７３】
ここで、各命令バッファとレジスタファイルは１対１に対応付けられ、Ｎ個の論理プロセッサを構成する。
【００７４】
また、本実施の形態では、プロセッサ１０ａは、第１の実施の形態で示すプロセッサ１０と同様に、同時に４つの命令の実行が可能であるとする。
【００７５】
（１）命令メモリ６０１
命令メモリ６０１は、第１の実施の形態で示す命令メモリ１０１と同様に、プロセッサ１０ａにおいて実行される命令を保持するメモリであり、Ｎ本の独立に実行される命令流（スレッド）を保持している。
【００７６】
（２）命令群決定部６０２
命令群決定部６０２は、第１の実施の形態で示す命令群決定部１０２と同様であるので、ここでの説明は省略する。
【００７７】
（３）第１命令バッファ６０３から第Ｎ命令バッファ６０５
第ｉ命令バッファ（ｉは１以上Ｎ以下の整数）は、ｉ番目の命令流（以下、第ｉ命令流という。）に属する命令を受け取り、保持するものである。
【００７８】
具体的には、第１命令バッファ６０３は、図８に示すように、第１命令保持部７０１と第１命令流スケジューラ７０２とを有している。なお、第１命令保持部７０１及び第１命令流スケジューラ７０２のそれぞれは、第１の実施の形態で示す第１命令保持部２０１と第１命令流スケジューラ２０２のそれぞれと同様であるので、ここでの説明は省略する。
【００７９】
また、第２命令バッファ６０４についても、第２命令保持部７０３と第２命令流スケジューラ７０４とを有しており、第Ｎ命令バッファ６０５についても、第Ｎ命令保持部７０５と第Ｎ命令流スケジューラ７０６とを有している。これら構成要素についても、第１の実施の形態と同様であるので、ここでの説明は省略する。
【００８０】
（４）優先度決定部６０７
優先度決定部６０７は、発行命令決定部６０６において発行する命令を決定する際に用いる優先度情報テーブル８００を保持している。
【００８１】
優先度情報テーブル８００は、例えば、図９に示すように、優先度８０１、命令流８０２及び命令番号８０３とから構成され、Ｎ個の命令バッファそれぞれが有する合計４×Ｎ個分のテーブル要素を有している。優先度８０１、命令流８０２及び命令番号８０３のそれぞれは、優先度３０１、命令流３０２及び命令番号３０３と同様であるので、ここでの説明は省略する。
【００８２】
ここで、優先度情報テーブル８００は、初期状態として、第１の実施の形態で示した設定方法により各命令の優先度（発行する優先順序）が設定されているものとする。
【００８３】
（５）優先度更新部６１３
優先度更新部６１３は、優先度決定部６０７で保持している優先度情報テーブル８００を一定の条件下で更新するものである。
【００８４】
具体的には、優先度更新部６１３は、ソフトウェアからの指示によって、優先度決定部６０７で保持している優先度情報を記憶している優先度情報テーブル８００を更新する。
【００８５】
通常、優先度決定部６０７で保持している優先度情報テーブル８００の各エントリ（優先度情報）は、メモリアドレスまたは制御レジスタにマップされているので、優先度更新部６１３は、ソフトウェアからの指示としてマルチスレッドプロセッサからのメモリアクセス命令、または、制御レジスタアクセス命令を受け取ると、受け取った命令に基づいて優先度情報テーブル８００を更新する。例えば、優先度更新部６１３は、マルチスレッドプロセッサのメモリアクセス命令または制御レジスタアクセス命令の書き込みアドレスと書き込みデータを受け取り、書き込みアドレスが優先度情報テーブル８００のエントリのいずれかを示すものであれば、当該エントリに書き込みデータを書き込む。ここで、書き込みデータは、当該エントリに書き込むべき更新後の優先度情報である。また、ソフトウェアの指示は、例えば、所定の命令が発行された（プログラム上実行された）後に、実行されるよう予め書き込まれたプログラムにより実行される。
【００８６】
なお、ソフトウェアの指示により、1度に複数のエントリを更新してもよい。
【００８７】
ここで、優先度情報テーブル８００を更新した場合の更新結果を、優先度情報テーブル８００ａとして図９（ｂ）に示す。この例は、優先度更新部６１３は、ソフトウェアの指示により、更新前の優先度情報テーブル８００における優先度５である優先度情報８０８の優先度を２として、更新したものである。その結果、更新前の優先度情報８０８は、更新後には、優先度２である優先度情報８１０へと更新され、更新前の優先度情報８０５から８０７それぞれは、優先度の順位が１つずつ下がったものとなり、更新後の優先度情報８１１から８１３それぞれに対応する。
【００８８】
なお、以下において、優先度情報テーブル１３００を用いて各構成要素について説明する。
【００８９】
（６）発行命令決定部６０６
発行命令決定部６０６は、第１命令バッファ１０３から第Ｎ命令バッファ１０５からマシンサイクル毎に発行する命令を決定するものである。
【００９０】
発行命令決定部６０６は、第１命令流スケジューラ２０２から第Ｎ命令流スケジューラ２０６と、優先度情報テーブル８００とに基づいて、実行可能状態となっており各記憶領域に格納されている命令全てのうち、優先度情報テーブル８００で示される順序に従って、４個の命令を選択し、選択した命令それぞれを個別の演算器へ出力する。
【００９１】
ここで、図８において、発行命令決定部６０６のハードウェア構成を示す。
【００９２】
発行命令決定部６０６は、第１命令決定部７１１から第４命令決定部７１４と、命令選択部７１５と、第１命令抽出部７２１から第４命令抽出部７２４とを有している。
【００９３】
（６−１）命令選択部７１５
命令選択部７１５は、第１の実施の形態で示す命令選択部２１５と同様のものである。具体的には、第１命令バッファ６０３から第Ｎ命令バッファ６０５それぞれから各命令バッファ内の発行可能な命令数を示す信号、つまり実行可能状態となっている命令数を示す信号７４１〜７４３を受け取り、優先度情報テーブル８００で示される順序に従って、選択すべき４個の命令を特定する。
【００９４】
そして、命令選択部７１５は、第１命令決定部７１１から第４命令決定部７１４それぞれに対して、当該命令決定部で取得すべき命令を示す発行命令選択信号７５１〜７５４を出力する。発行命令選択信号には、抽出すべき命令を示す情報、例えば、抽出すべき命令が保持されている命令バッファ及びその記憶領域を示す情報が含まれている。
【００９５】
（６−２）第１命令抽出部７２１から第４命令抽出部７２４
第１命令抽出部７２１から第４命令抽出部７２４のそれぞれは、第１の実施の形態で示す第１命令抽出部２２１から第４命令抽出部２２４のそれぞれと同様であるので、ここでの説明は省略する。
【００９６】
（６−３）第１命令決定部７１１から第４命令決定部７１４
第１命令決定部２１１から第４命令決定部２１４それぞれは、演算器群６１１が有する演算器と１対１に対応付けられており、その機能は、第１の実施の形態で示す第１命令決定部２１１から第４命令決定部２１４それぞれと同様であるので、ここでの説明は省略する。
【００９７】
（７）第１レジスタファイル６０８から第Ｎレジスタファイル６１０
第１レジスタファイル６０８から第Ｎレジスタファイル６１０のそれぞれは、第１の実施の形態で示す第１レジスタファイル１０８から第Ｎレジスタファイル１１０と同様であるので、ここでの説明は省略する。
【００９８】
（８）演算器群６１１
演算器群６１１は、加算器や乗算器などからなる複数の演算器を含むものである。なお、ここでは、演算器群６１１は、４つの演算器（演算器６１１ａ〜６１１ｄ）を有しているものとする。また、演算器６１１ａは第１命令決定部７１１と、演算器６１１ｂは第２命令決定部７１２と、演算器６１１ｃは第３命令決定部７１３と、演算器６１１ｄは第４命令決定部７１４と、それぞれ対応付けられているものとする。
【００９９】
演算器が処理する命令には、当該命令が属する命令流を識別する情報が含まれており、当該情報に基づいて対応するレジスタファイルへ演算結果を出力する。
【０１００】
（９）ライトバックバス６１２
ライトバックバス６１２は、演算器群６１１からの出力を第１レジスタファイル６０８〜第Ｎレジスタファイル６１０に書き戻すためのバスである。
【０１０１】
２．２  動作
（１）発行命令の決定の動作
ここでは、発行すべき命令を決定する動作について図１０に示す流れ図を用いて説明する。ここでは、説明の便宜上、利用する優先度情報テーブルは、優先度情報テーブル８００とする。なお、更新された優先度情報テーブル８００ａを用いた場合でも、処理動作は同じである。
【０１０２】
命令選択部７１５は、一のマシンサイクルにおいて発行する命令を決定する際に、変数の初期化（ｉ＝１；ｊ＝１；ｋ＝４）を行う（ステップＳ１００）。ここで、変数ｉは、マシンサイクルにおいて発行する命令数をカウントするカウンタである。変数ｊは、優先度情報テーブル８００から情報を読み出すためのポインタを示す。変数ｋは、マシンサイクルにおいて発行可能な命令の最大数を示し、本実施例においては４である。
【０１０３】
命令選択部７１５は、変数ｉの値が変数ｋ以下であるか否か、つまり発行する命令数が最大値以下であるか否かを判断する（ステップＳ１０５）。
【０１０４】
変数ｉの値が変数ｋ以下であると判断する場合（ステップＳ１０５における「Ｙｅｓ」）、命令選択部７１５は、優先度情報テーブル８００のｊ番目のエントリを読み出し、その読み出しに成功したか否かを判断する（ステップＳ１１０）。
【０１０５】
ｊ番目のエントリの読み出しに成功したと判断した場合（ステップＳ１１０における「Ｙｅｓ」）、命令選択部７１５は、取得したｊ番目のエントリが示す命令流の命令が発行可能であるか否を判断する（ステップＳ１１５）。
【０１０６】
発行可能でないと判断する場合には（ステップＳ１１５における「Ｎｏ」）、変数ｊに値１が加算され（ステップＳ１２０）、処理はステップＳ１１０へ戻る。
【０１０７】
発行可能であると判断する場合には（ステップＳ１１５における「Ｙｅｓ」）、命令選択部７１５は、第ｉ命令決定部に対して発行命令選択信号を出力する。発行命令選択信号を受信した第ｉ命令決定部は、発行すべき命令が保持されている記憶領域に応じた命令抽出部に当該命令を抽出させて、命令抽出部で抽出された命令を対応する演算器へ出力する（ステップＳ１２５）。
【０１０８】
その後、変数ｉに値１が、変数ｊに値１が、それぞれ加算され（ステップＳ１３０）、処理はステップＳ１０５へ戻る。
【０１０９】
また、変数ｉの値が変数ｋ以下でないと判断する場合（ステップＳ１０５における「Ｎｏ」）、及び  ｊ番目のエントリの読み出しに失敗した、つまりポインタが示す位置にエントリが無いと判断した場合（ステップＳ１１０における「Ｎｏ」）、処理は終了する。
【０１１０】
（２）優先度情報テーブルの更新の動作
ここでは、優先度情報テーブルの更新について、図１１に示す流れ図を用いて説明する。
【０１１１】
優先度更新部６１３は、ソフトウェアから更新に係る指示（優先度情報テーブル８００のエントリのいずれかを示すメモリアクセス命令または制御レジスタアクセス命令）を受け取ったか否かを判断する（ステップＳ２００）。
【０１１２】
受け取ったと判断する場合には（ステップＳ２００における「Ｙｅｓ」）。優先度更新部６１３は、受け取った指示に基づいて、優先度情報テーブル８００を更新する（ステップＳ２０５）。
【０１１３】
優先度情報テーブル８００の更新後、及び更新に係る指示を受け取っていないと判断する場合（ステップＳ２００における「Ｎｏ」）、処理は、ステップＳ２００へと戻り、更新に係る指示の受け付け待ち状態となる。
【０１１４】
なお、更新に係る指示は、上述したように、所定の命令が発行された（プログラム上実行された）後に発行される。
【０１１５】
２．３  動作イメージ
図１２は、第２の実施の形態における第１の命令流及び第２の命令流を用いた並列処理を行った場合での各命令の割り当て（発行）の動作イメージである。
【０１１６】
ここで、図１２に示す動作イメージでは、縦軸に時間、横軸に命令の並列度を示している。
【０１１７】
ブロック１００１は、第１命令流の命令実行の様子を示し、ｔ／２までは、図９（ａ）で示す優先度情報テーブル８００の優先順位に従って、常に最優先で１命令の発行が行われている。
【０１１８】
また、ブロック１００２は、第２命令流の命令実行の様子を示し、ｔ／２までは、第１命令流で使用されない並列度を用いて命令が実行されていることを示す。
【０１１９】
ｔ／２の時点で、ソフトウェアの指示により、図９（ａ）で示す優先度情報テーブル８００が図９（ｂ）で示す優先度情報テーブル８００ａに更新されると、第１命令流の命令では、図９（ｂ）で示す優先度情報テーブル８００ａの優先順位に従って、常に最優先で２つの命令の発行が行われ、第２命令流では２つの命令の発行が行われることとなる。
【０１２０】
これにより、例えば、第１命令流が一定の性能保証が求められる命令流であって、かつ、1命令の並列度を与えることで、その性能を満たすことができる場合、本実施例により、性能保証の条件を満たしつつ、他の命令流の応答性を高く保つことができる。
【０１２１】
３．第３の実施の形態
ここでは、第３の実施の形態に係るプロセッサ１０ｂについて、第１及び第２の実施の形態に係るプロセッサ１０及び１０ａと異なる点を中心に説明する。
【０１２２】
図１３は、第３の実施の形態におけるプロセッサ１０ｂの構成を示すブロック図である。
【０１２３】
プロセッサ１０ｂは、Ｎ（Ｎは２以上の整数）個の命令流（Ｎ個のスレッド）を同時に独立して実行するプロセッサであり、命令メモリ１１０１と、命令群決定部１１０２と、Ｎ個の命令バッファ（第１命令バッファ１１０３、第２命令バッファ１１０４、…、第Ｎ命令バッファ１１０５）と、発行命令決定部１１０６と、優先度決定部１１０７と、Ｎ個のレジスタファイル（第１レジスタファイル１１０８、第２レジスタファイル１１０９、…、第Ｎレジスタファイル１１１０）と、演算器群１１１１と、ライトバックバス１１１２と、優先度更新部１１１３と、性能監視部１１１４とを備えている。
【０１２４】
ここで、各命令バッファとレジスタファイルは１対１に対応付けられ、Ｎ個の論理プロセッサを構成する。
【０１２５】
また、本実施の形態では、プロセッサ１０ｂは、第１及び第２の実施の形態で示すプロセッサ１０、１０ａと同様に、同時に４つの命令の実行が可能であるとする。
【０１２６】
（１）命令メモリ１１０１
命令メモリ１１０１は、第１の実施の形態で示す命令メモリ１０１と同様に、プロセッサ１０ｂにおいて実行される命令を保持するメモリであり、Ｎ本の独立に実行される命令流（スレッド）を保持している。
【０１２７】
（２）命令群決定部１１０２
命令群決定部１１０２は、第１の実施の形態で示す命令群決定部１０２と同様であるので、ここでの説明は省略する。
【０１２８】
（３）第１命令バッファ１１０３から第Ｎ命令バッファ１１０５
第ｉ命令バッファ（ｉは１以上Ｎ以下の整数）は、ｉ番目の命令流（以下、第ｉ命令流という。）に属する命令を受け取り、保持するものである。
【０１２９】
具体的には、第１命令バッファ１１０３は、図１４に示すように、第１命令保持部１２０１と第１命令流スケジューラ１２０２とを有している。なお、第１命令保持部１２０１及び第１命令流スケジューラ１２０２のそれぞれは、第１の実施の形態で示す第１命令保持部２０１と第１命令流スケジューラ２０２のそれぞれと同様であるので、ここでの説明は省略する。
【０１３０】
また、第２命令バッファ１１０４についても、第２命令保持部１２０３と第２命令流スケジューラ１２０４とを有しており、第Ｎ命令バッファ１２０５についても、第Ｎ命令保持部１２０５と第Ｎ命令流スケジューラ１２０６とを有している。これら構成要素についても、第１の実施の形態と同様であるので、ここでの説明は省略する。
【０１３１】
（４）優先度決定部１１０７
優先度決定部１１０７は、発行命令決定部１１０６において発行する命令を決定する際に用いる優先度情報テーブル１３００を保持している。
【０１３２】
優先度情報テーブル１３００は、例えば、図１５（ａ）に示すように、優先度１３０１、命令流１３０２及び命令番号１３０３とから構成され、Ｎ個の命令バッファそれぞれが有する合計４×Ｎ個分のテーブル要素を有している。優先度１３０１、命令流１３０２及び命令番号１３０３のそれぞれは、優先度３０１、命令流３０２及び命令番号３０３と同様であるので、ここでの説明は省略する。
【０１３３】
ここで、優先度情報テーブル１３００は、初期状態として、第１の実施の形態で示した設定方法により各命令の優先度（発行する優先順序）が設定されているものとする。
（５）性能監視部１１１４
性能監視部１１１４は、Ｎ個の命令流のそれぞれの実行命令数をダウンカウントすることができる命令流に対応したＮ個の実行命令数カウンタと、プロセッサ１０ｂのマシンサイクルをダウンカウントすることができる1個のサイクルカウンタを備える。
【０１３４】
Ｎ個の実行命令数カウンタは、対応する命令流の命令がプロセッサ１０ｂ上で実行されると、命令が実行された数だけダウンカウントされる。なお、動作開始時には、Ｎ個の実行命令数カウンタそれぞれには、初期値が設定されるものとする。
【０１３５】
Ｎ個の実行命令数カウンタのいずれかのカウンタ値が０になると、性能監視部１１１４は優先度更新部１１１３にカウンタ値が０になったことを通知する。このとき、優先度更新部１１１３に通知される情報（以下、第１通知情報という）には、カウンタ値が０となった命令流を示す識別子（命令流ＩＤ）を含むものとする。
【０１３６】
１個のサイクルカウンタは、プロセッサ１０ｂのマシンサイクルが１経過するごとにダウンカウントされる。カウント値が０になると、性能監視部１１１４は、サイクルカウンタを、初期値を記憶している１個の初期値レジスタの値によって初期化する。また、性能監視部１１１４は、初期値を記憶しているＮ個の実行命令数カウンタを、初期値レジスタの値によって初期化する。
【０１３７】
なお、各種カウンタの値を初期化するにあたって、初期値レジスタの値を用いるが、これらの初期値レジスタの値は、プロセッサ上でどの様なソフトウェアをいくつ実行させるか必要があるか等のシステム構成によって定まり、システム設計者によって定められ、システム制御ソフトウェアによって書き込まれる。
【０１３８】
サイクルカウンタのカウンタ値が０になると、性能監視部１１１４は優先度更新部１１１３に通知する。以下、サイクルカウンタのカウンタ値が０になった旨の通知を第２通知情報という。また、性能監視部１１１４は、第２通知情報を優先度更新部１１１３へ通知すると、実行命令数カウンタを初期値に初期化する。
【０１３９】
（６）優先度更新部１１１３
優先度更新部１１１３は、優先度決定部６０７で保持している優先度情報テーブル８００を一定の条件下で更新するものである。
【０１４０】
優先度更新部１１１３は、第１通知情報を受け付けると、優先度情報テーブルのエントリの優先度を更新する。例えば、優先度更新部１１１３は、Ｎ個の実行命令数カウンタのいずれかのカウンタ値が０になると、性能監視部１１１４からカウンタ値が０になった旨、及びその命令流ＩＤを含む第１通知情報を受け取り、受け取った命令流ＩＤに対応する命令流の優先度を最低となるように優先度情報テーブル１３００を更新する。
【０１４１】
また、優先度更新部１１１３は、第２通知情報を受け付けると、優先度情報テーブルのエントリの優先度を初期状態の内容へと更新する。例えば、優先度更新部１１１３は、サイクルカウンタのカウンタ値が０になると、性能監視部１１１４から第２通知情報を受け取り、全ての命令流の優先度情報が記憶されているテーブルのエントリの優先度を初期状態に戻す。
【０１４２】
ここで、優先度情報テーブル１３００を更新した場合の更新結果を、優先度情報テーブル１３００ａとして図１５（ｂ）に示す。ここでは、第１命令流と第２命令流の２つの命令流のみは実行されるものとする。この例は、優先度更新部１１１３が、性能監視部１１１４から、第１通知情報を受け取った場合のものであり、第１通知情報には、実行命令数カウンタの値が０となった命令流は第１命令流であるとする。
【０１４３】
優先度情報テーブル１３００は、優先度更新部１１１３により、第１命令流の優先度を最低となるよう、つまり、ここでは、第２命令流の各命令が優先的に発行されるように、更新される。
【０１４４】
この更新により、優先度情報テーブル１３００で示す第２命令流の各優先度情報１３０５から１３０７の優先順位が、更新後では１つずつ上がり更新後の優先度情報テーブル１３００ａで示すように、優先順位が１から３である各優先度情報１３０９から１３１１へと変更される。また、第１命令流の各優先度情報１３０４の優先順位は当該更新により１から４へと変更された優先度情報１３１２となる。
【０１４５】
なお、以下において、優先度情報テーブル１３００を用いて各構成要素について説明する。
【０１４６】
（７）発行命令決定部１１０６
発行命令決定部１１０６は、第１命令バッファ１１０３から第Ｎ命令バッファ１１０５からマシンサイクル毎に発行する命令を決定するものである。
【０１４７】
発行命令決定部１１０６は、第１命令流スケジューラ１２０２から第Ｎ命令流スケジューラ１２０６と、優先度情報テーブル１３００とに基づいて、実行可能状態となっており各記憶領域に格納されている命令全てのうち、優先度情報テーブル１３００で示される順序に従って、４個の命令を選択し、選択した命令それぞれを個別の演算器へ出力する。
【０１４８】
ここで、図１４において、発行命令決定部１１０６のハードウェア構成を示す。
【０１４９】
発行命令決定部１１０６は、第１命令決定部１２１１から第４命令決定部１２１４と、命令選択部１２１５と、第１命令抽出部１２２１から第４命令抽出部１２２４とを有している。
【０１５０】
（７−１）命令選択部１２１５
命令選択部１２１５は、第１の実施の形態で示す命令選択部２１５と同様のものである。具体的には、第１命令バッファ１１０３から第Ｎ命令バッファ１１０５それぞれから各命令バッファ内の発行可能な命令数を示す信号、つまり実行可能状態となっている命令数を示す信号１２４１〜１２４３を受け取り、優先度情報テーブル１３００で示される順序に従って、選択すべき４個の命令を特定する。
【０１５１】
そして、命令選択部１２１５は、第１命令決定部１２１１から第４命令決定部１２１４それぞれに対して、当該命令決定部で取得すべき命令を示す発行命令選択信号１２５１〜１２５４を出力する。発行命令選択信号には、抽出すべき命令を示す情報、例えば、抽出すべき命令が保持されている命令バッファ及びその記憶領域を示す情報が含まれている。
【０１５２】
（７−２）第１命令抽出部１２２１から第４命令抽出部１２２４
第１命令抽出部１２２１から第４命令抽出部１２２４のそれぞれは、第１の実施の形態で示す第１命令抽出部２２１から第４命令抽出部２２４のそれぞれと同様であるので、ここでの説明は省略する。
【０１５３】
（７−３）第１命令決定部１２１１から第４命令決定部１２１４
第１命令決定部１２１１から第４命令決定部１２１４それぞれは、演算器群１１１１が有する演算器と１対１に対応付けられており、その機能は、第１の実施の形態で示す第１命令決定部２１１から第４命令決定部２１４それぞれと同様であるので、ここでの説明は省略する。
【０１５４】
（８）第１レジスタファイル１１０８から第Ｎレジスタファイル１１１０
第１レジスタファイル１１０８から第Ｎレジスタファイル１１１０のそれぞれは、第１の実施の形態で示す第１レジスタファイル１０８から第Ｎレジスタファイル１１０と同様であるので、ここでの説明は省略する。
【０１５５】
（９）演算器群１１１１
演算器群１１１１は、加算器や乗算器などからなる複数の演算器を含むものである。なお、ここでは、演算器群１１１１は、４つの演算器（演算器１１１１ａ〜１１１１ｄ）を有しているものとする。また、演算器１１１１ａは第１命令決定部１２１１と、演算器１１１１ｂは第２命令決定部１２１２と、演算器１１１１ｃは第３命令決定部１２１３と、演算器１１１１ｄは第４命令決定部１２１４と、それぞれ対応付けられているものとする。
【０１５６】
演算器が処理する命令には、当該命令が属する命令流を識別する情報が含まれており、当該情報に基づいて対応するレジスタファイルへ演算結果を出力する。
【０１５７】
（１０）ライトバックバス１１１２
ライトバックバス１１１２は、演算器群１１１１からの出力を第１レジスタファイル１１０８〜第Ｎレジスタファイル１１１０に書き戻すためのバスである。
【０１５８】
３．２  動作
（１）発行命令の決定の動作
ここでは、発行すべき命令を決定する動作について図１６に示す流れ図を用いて説明する。ここでは、説明の便宜上、利用する優先度情報テーブルは、優先度情報テーブル１３００とする。なお、更新された優先度情報テーブル１３００ａを用いた場合でも、処理動作は同じである。
【０１５９】
命令選択部１２１５は、一のマシンサイクルにおいて発行する命令を決定する際に、変数の初期化（ｉ＝１；ｊ＝１；ｋ＝４）を行う（ステップＳ３００）。ここで、変数ｉは、マシンサイクルにおいて発行する命令数をカウントするカウンタである。変数ｊは、優先度情報テーブル１３００から情報を読み出すためのポインタを示す。変数ｋは、マシンサイクルにおいて発行可能な命令の最大数を示し、本実施例においては４である。
【０１６０】
命令選択部１２１５は、変数ｉの値が変数ｋ以下であるか否か、つまり発行する命令数が最大値以下であるか否かを判断する（ステップＳ３０５）。
【０１６１】
変数ｉの値が変数ｋ以下であると判断する場合（ステップＳ３０５における「Ｙｅｓ」）、命令選択部１２１５は、優先度情報テーブル１３００のｊ番目のエントリを読み出し、その読み出しに成功したか否かを判断する（ステップＳ３１０）。
【０１６２】
ｊ番目のエントリの読み出しに成功したと判断した場合（ステップＳ３１０における「Ｙｅｓ」）、命令選択部１２１５は、取得したｊ番目のエントリが示す命令流の命令が発行可能であるか否を判断する（ステップＳ３１５）。
【０１６３】
発行可能でないと判断する場合には（ステップＳ３１５における「Ｎｏ」）、変数ｊに値１が加算され（ステップＳ３２０）、処理はステップＳ３１０へ戻る。
【０１６４】
発行可能であると判断する場合には（ステップＳ３１５における「Ｙｅｓ」）、命令選択部１２１５は、第ｉ命令決定部に対して発行命令選択信号を出力する。発行命令選択信号を受信した第ｉ命令決定部は、発行すべき命令が保持されている記憶領域に応じた命令抽出部に当該命令を抽出させて、命令抽出部で抽出された命令を対応する演算器へ出力する（ステップＳ３２５）。
【０１６５】
その後、変数ｉに値１が、変数ｊに値１が、それぞれ加算され（ステップＳ３３０）、処理はステップＳ３０５へ戻る。
【０１６６】
また、変数ｉの値が変数ｋ以下でないと判断する場合（ステップＳ３０５における「Ｎｏ」）、及び  ｊ番目のエントリの読み出しに失敗した、つまりポインタが示す位置にエントリが無いと判断した場合（ステップＳ３１０における「Ｎｏ」）、処理は終了する。
【０１６７】
（２）優先度情報テーブルの更新の動作
ここでは、実行命令数カウンタを用いた更新処理（以下、第１更新処理）と、サイクルカウンタを用いた更新処理（第２更新処理）とについて説明する。
【０１６８】
（２−１）第１更新処理
まず、第１更新処理について、図１７に示す流れ図を用いて説明する。
【０１６９】
性能監視部１１１４は、処理開始時において、Ｎ個の実行命令数カウンタ全てを初期化する（ステップＳ４００）。
【０１７０】
性能監視部１１１４は、命令の実行を検出すると（ステップＳ４０５）、実行された命令を含む命令流に対応する実行命令数カウンタの値を１減算する（ステップＳ４１０）。
【０１７１】
減算された実行命令数カウンタの値が０であるか否かを判断する（ステップＳ４１５）。
【０１７２】
０であると判断する場合（ステップＳ４１５における「Ｙｅｓ」）、性能監視部１１１４は、第１通知情報を生成し、優先度更新部１１１３へ通知する（ステップＳ４２０）。このとき、生成された第１通知情報には、実行命令数カウンタの値が０である命令流を識別する命令流ＩＤが含まれる。
【０１７３】
優先度更新部１１１３は、性能監視部１１１４から第１通知情報を受け取ると、受け取った第１通知情報に含まれる命令流ＩＤで識別される命令流の優先度が最低となるように優先度情報テーブル１３００を更新する（ステップＳ４２５）。
【０１７４】
優先度情報テーブル１３００の更新後、及び減算された実行命令数カウンタの値が０でないと判断する場合（ステップＳ４１５における「Ｎｏ」）、処理は、ステップＳ４０５へ戻る。
【０１７５】
（２−２）第２更新処理
次に、第２更新処理について、図１８に示す流れ図を用いて説明する。
【０１７６】
性能監視部１１１４は、処理開始時において、サイクルカウンタを初期化する（ステップＳ５００）。
【０１７７】
性能監視部１１１４は、処理時間が１サイクル分経過したか否かを判断する（ステップＳ５０５）。
【０１７８】
１サイクル経過したと判断する場合（ステップＳ５０５における「Ｙｅｓ」）、性能監視部１１１４は、サイクルカウンタの値を１減算する（ステップＳ５１０）。
【０１７９】
減算された実行命令数カウンタの値が０であるか否かを判断する（ステップＳ５１５）。
【０１８０】
０であると判断する場合（ステップＳ５１５における「Ｙｅｓ」）、性能監視部１１１４は、第２通知情報を生成し、優先度更新部１１１３へ通知する（ステップＳ５２０）。
【０１８１】
性能監視部１１１４は、サイクルカウンタを初期化（ステップＳ５２５）、及びＮ個実行命令数カウンタ全てを初期化する（ステップＳ５３０）。
【０１８２】
優先度更新部１１１３は、性能監視部１１１４から第２通知情報を受け取ると、優先度情報テーブルの内容を初期状態の内容となるよう更新する（ステップＳ５３５）。
【０１８３】
優先度情報テーブルの更新後、１サイクル経過していないと判断する場合（ステップＳ５０５における「Ｎｏ」）及び減算されたサイクルカウンタの値が０でないと判断する場合（ステップＳ５１５における「Ｎｏ」）、処理は、ステップＳ５０５へ戻る。
【０１８４】
３．３  動作イメージ
図１９は、第３の実施の形態における第１の命令流及び第２の命令流を用いた並列処理を行った場合での各命令の割り当て（発行）の動作イメージである。
【０１８５】
ここで、図１９に示す動作イメージでは、縦軸に時間、横軸に命令の並列度を示している。
【０１８６】
また、第１の命令流は、最低１命令ずつ発行されることで、時間ｔ内で処理が完了するものとする。
【０１８７】
図１９において、ブロック１５０１は第１命令流の命令実行の様子を示し、ｔ／４まで常に２つの命令の発行が行われ、その後３ｔ／４までは、１つの命令の発行が行われていることを示している。
【０１８８】
ブロック１５０２は、第２命令流の命令実行の様子を示し、ｔ／４までは２つの命令が実行されていることを示す。図１５（ａ）に示す優先度情報テーブル１３００では、上位４番目までの優先順位によると、第２命令流の命令の実行が３つまでが優先的に実行が許可されるようになっているが、発行の準備が完了していない場合には、次の優先順位に実行の許可がなされる。そのため、図１９に示すように、第２の命令流の命令が２つしか実行許可されない場合には、第１命令流の命令が２つ実行されることとなる。
【０１８９】
その後、第２の命令流においては、時間ｔ／４から３ｔ／４までの間は、３つの命令流が実行される。
【０１９０】
時間３ｔ／４の時点で、第１命令流に対応する実行命令カウンタの値は０となる。なぜなら、時間０からｔ／４までの間は２つの命令が発行されているので、第１命令流に対応する実行命令カウンタは、合計２の値が減算されていることとなり、１つずつの命令を発行した場合よりも、ｔ／４分だけ早く処理が終了する、つまり実行命令カウンタの値が０となるからである。
【０１９１】
そうすると、時間３ｔ／４の時点で、優先度情報テーブル１３００は、例えば図１５（ｂ）に示す優先度情報テーブル１３００ａへと更新され、以降の処理においては、第２命令流の命令が常に４つずつ発行されることとなる。
【０１９２】
そして、時間ｔに達すると、サイクルカウンタの値が０となり、各種カウンタの値は初期化され、且つ優先度情報テーブルの内容は初期状態の内容、つまり優先度情報テーブル１３００へと更新される。
【０１９３】
以上により、一定のサイクル内に一定の処理を完了した命令流は、それ以降プロセッサ上の実行リソースを消費しない状態とし、他命令流がより多く実行機会を得るようにすることが可能となる。
【０１９４】
４．第４の実施の形態
ここでは、第１の実施の形態で示したプロセッサ１０を適用した映像処理システム１６００について説明する。
【０１９５】
映像処理システム１６００は、例えば、映像信号をデコード処理して、表示装置（テレビ等）へ出力する映像処理装置である。
【０１９６】
ここでは、映像処理システム１６００は、第１の実施の形態で示したプロセッサ１０を有しており、外部から受信した映像信号をデコードする処理、及びユーザー入力装置（リモコン）１６０５からの指示に基づく処理とを行う。
【０１９７】
なお、プロセッサ１０の構成は、図１、２にて示しているので、ここでは詳細な構成は省略する。以下の説明においては、必要に応じて第１の実施の形態で説明した構成要素を用いて説明する。
【０１９８】
プロセッサ１０は、Ｈ．２６４等の規格を用いて圧縮された映像信号をデコードするためには、ビットストリームの解析、可変長符号化された信号のデコード処理、逆量子化、逆周波数変換、動き補償、デブロックフィルタ処理を行う。これらは、映像に乱れを生じさせないよう、一定の性能を必ず保証する必要がある。ただし、それ以上の性能を割り当てる必要は無い。
【０１９９】
また、リモコン等のユーザーからの入力に対応する処理は、可能な限り迅速に処理を行う即応性が求められる。
【０２００】
そこで、第１の実施の形態で示す第１命令流を映像信号をデコードする処理（映像デコード処理）と、第２命令流をユーザー入力装置１６０５から指示された処理（ユーザー入力処理）とすることで、単一のマルチスレッドプロセッサ上で、性能保証と高い応答性を両立したリアルタイム映像処理システムを構築することができる。
【０２０１】
なぜなら、優先度情報テーブル３００の優先度に従って、常に映像デコード処理に係る１つの命令が発行され、使用されない並列度、つまり映像デコード処理では使用されていない残り３つの演算器には、ユーザー入力処理に係る命令を割り当てることができるので、映像デコード処理に対する性能保証の条件を満たしつつ、ユーザー入力処理に係る命令を即座に実行できるからである。
【０２０２】
５．変形例
以上、各実施の形態に基づいて説明したが、本発明は上記の各実施の形態に限られない。例えば、以下のような変形例が考えられる。
【０２０３】
（１）上記各実施の形態において、優先度情報テーブルは、優先度、命令流及び命令番号とから構成されるとしたが、これに限定されない。
【０２０４】
優先度情報テーブルの命令番号は無くてもよい。この場合、命令流の項目に出現する命令流を識別する値の出現数の累積値を用いることで、対応する命令番号を特定することができる。
【０２０５】
（２）上記各実施の形態において、単一マシンサイクルに演算器群に発行することができる命令は４命令としたが、これに限定されない。単一マシンサイクルに発行可能な命令数は２以上であればよく、４に限らない。
【０２０６】
（３）上記第２の実施の形態において、優先度情報テーブルの更新はソフトウェアの指示によるものとしたが、これに限定されない。
【０２０７】
ハードウェアの指示によるものであってもよい。
【０２０８】
この場合、優先度更新部１１１３は、ハードウェアからの指示によって、優先度決定部１１０７で保持している優先度情報を記憶している優先度情報テーブル１３００を更新する。
【０２０９】
具体的には、優先度更新部１１１３は、優先度決定部１１０７で保持している優先度情報テーブル１３００のエントリに対応した更新優先度情報を保持している。例えば、優先度更新部１１１３は、ハードウェアからの更新信号を受け取り、更新優先度情報に基づいて、対応する優先度情報テーブル１３００のエントリを更新する。また、ハードウェアの指示は、例えば、所定の命令が発行された（プログラム上実行された）ことを検出すると、指示がされるよう予め設定されている。
【０２１０】
なお、ハードウェアの指示により、1度に複数のエントリを更新してもよい。
【０２１１】
（４）上記第４の実施の形態において、映像処理システム１６００は、映像信号をデコードするものとしたが、これに限定されない。
【０２１２】
映像処理システム１６００は、映像信号をエンコードするものであってもよい。
【０２１３】
この場合、例えば、第１命令バッファは、映像信号をエンコードする処理に係る命令を保持し、第２命令バッファは、ユーザー入力処理に係る命令を保持し、各命令バッファで保持されている命令を優先度情報テーブルで示す優先度に従って実行することで実現できる。
【０２１４】
また、映像信号をデコードやエンコードする装置としては、ＤＶＤレコーダ、デジタルテレビ等がある。つまり、映像処理システム１６００は、映像や音声のメディア処理を行う装置であってもよい。
【０２１５】
（５）上記第４の実施の形態において、映像処理システム１６００に第１の実施の形態で示すプロセッサ１０を適用したが、これに限定されない。
【０２１６】
映像処理システム１６００には、第２の実施の形態で示すプロセッサ１０ａ及び第３の実施の形態で示すプロセッサ１０ｂの何れかを適用してもよい。
【０２１７】
（６）上記第２、及び第３の実施の形態で示すプロセッサ１０ａ及び１０ｂは、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）でとし、ＦＰＧＡの機能により優先度情報テーブルを更新するとしてもよい。
【０２１８】
（７）上記各実施の形態において、各命令バッファの命令保持部における記憶領域の個数は演算器の個数と同一としたが、これに限定されない。
【０２１９】
各命令バッファの命令保持部における記憶領域の個数は、演算器の個数よりの少なくてもよい。または、記憶領域の個数は、演算器の個数より多くてもよい。
【０２２０】
または、命令流の個数、つまりは命令バッファの個数（例えば、Ｍ個）について、各命令バッファの記憶領域がＺ個存在する場合に、全記憶領域の個数（Ｍ×Ｚ）は、演算器の個数以上であってもよい。この場合、例えば、発行命令決定部１０６は、全記憶領域の個数（Ｍ×Ｚ）から、優先度の順位に従って演算器の個数分の命令を取得することとなる。
【０２２１】
（８）上記第１の実施の形態において、第１命令流についてマシンサイクル毎に１命令を発行することで、所定の時間内に処理が完了する場合について説明したが、これに限定されない。
【０２２２】
第１命令流についてマシンサイクル毎に１命令を発行する機会が保証されることで、所定の時間内に処理が完了するようにしてもよい。
【０２２３】
また、第２の実施の形態においても同様に、第１命令流についてマシンサイクル毎に１命令を発行する機会が保証されることで、所定の時間内に処理が完了するようにしてもよい。
【０２２４】
さらに、第３の実施の形態においても同様に、第１命令流についてマシンサイクル毎に１命令を発行する機会が保証されることで、所定の時間内に処理が完了するようにしてもよい。この場合、性能監視部１１１４が有するＮ個の実行命令数カウンタは、対応する命令流の命令がプロセッサ１０ｂ上で実行されると、命令が実行された数だけダウンカウントされる。また、命令の発行が行われなかった場合においても、対応する命令流の命令に対して最優先の優先度が割り当てられたサイクルはダウンカウントされる。なお、動作開始時には、第３の実施の形態と同様に、Ｎ個の実行命令数カウンタそれぞれには、初期値が設定されるものとする。
【０２２５】
（９）上記各実施の形態、及び各変形例で説明した手法の手順を記述したプログラムをメモリに記憶しておき、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などがメモリからプログラムを読み出して、読み出したプログラムを実行することによって、上記の手法が実現されるようにしてもよい。
【０２２６】
（１０）上記各実施の形態、及び各変形例で説明した手法の手順を記述したプログラムを記録媒体に格納して、頒布するようにしてもよい。
【０２２７】
（１１）これらの実施の形態および変形例の組合せであってもよい。
【０２２８】
６．補足
（１）本発明の一実施態様である、Ｌ個（Ｌは２以上の整数）の演算器を有するプロセッサは、Ｍ個（Ｍは２以上の整数）の命令流各々が区別して入力され、各命令流を構成するＺ個（Ｚは２以上の整数であり、Ｍ×ＺはＬ以上であることを満たす）の命令を格納するためのＭ×Ｚ個の命令記憶領域を含む命令バッファと、前記命令バッファ内の前記Ｍ×Ｚ個の命令記憶領域に順序を付けた情報である順序情報を保持する順序情報保持手段と、前記命令バッファの前記Ｍ×Ｚ個の命令記憶領域に格納された命令を抽出するための抽出手段と、実行可能状態となっており前記Ｍ×Ｚ個の命令記憶領域に格納されている命令全てのうちから、前記順序情報に従った順序で、Ｌ個の命令を前記抽出手段に抽出させて、抽出された命令毎に別の演算器に入力する制御手段とを備えることを特徴とする。
【０２２９】
この構成によると、プロセッサは、M×Ｚ個の命令記憶領域に順序を付けた順序情報に基づいて、実行可能状態でありM×Ｚ個の命令記憶領域に格納されている命令全てのうちからＬ個の命令を抽出するので、一の命令流の命令と、他の命令流の命令とを同時に抽出することができる。そのため、プロセッサは、例えば、一の命令流が性能保証が要求される命令流であり、他の命令流が性能保証が要求されない命令流であるとすると、他の命令流の命令は、一の命令流が終了するまで待つ必要はないので、一の命令流に対する性能保証と、他の命令流に対する高い応答性とを両立することができる。
【０２３０】
（２）ここで、前記命令バッファは、前記Ｍ×Ｚ個の命令記憶領域それぞれについて、当該命令記憶領域に記憶されている命令が実行可能であるか否かを示すフラグを有しており、前記制御手段は、Ｍ×Ｚ個のフラグそれぞれの内容から、実行可能状態である命令全てを特定するとしてもよい。
【０２３１】
この構成によると、プロセッサは、Ｍ×Ｚ個の命令記憶領域それぞれについて、当該記憶領域に記憶されている命令が実行可能状態であるかをフラグを用いて管理しているので、実行可能状態の命令全てを容易に特定することができる。
【０２３２】
（３）ここで、前記Ｍ個の命令流のうち一の命令流は、所定時間内で処理の完了を保証すべき性能保証命令流であり、前記順序情報は、前記性能保証命令流の処理が前記所定時間内で終了することを保証するための最小個数の命令について、Ｌ以下の順序を付与した情報であるとしてもよい。
【０２３３】
この構成によると、プロセッサは、所定時間内で処理の完了を保証すべき性能保証命令流については、所定時間内で処理の完了を保証するための最小個数の命令に対してはＬ以下の順序が付されるので、常に最小個数の命令は実行されることとなり、所定時間内で処理が完了しないという処理破綻を生じることがない。
【０２３４】
（４）ここで、前記性能保証命令流は、画像のデコード処理を行うためのものであり、前記プロセッサは、画像のデコード処理を行う画像処理システムに備えられるとしてもよい。
【０２３５】
この構成によると、プロセッサは、性能保証が必要とされる画像のデコード処理と、他の命令流に対する高い応答性とを両立することができる。
【０２３６】
（５）ここで、前記性能保証命令流は、画像のエンコード処理を行うためのものであり、前記プロセッサは、画像のエンコード処理を行う画像処理システムに備えられるとしてもよい。
【０２３７】
この構成によると、プロセッサは、性能保証が必要とされる画像のエンコード処理と、他の命令流に対する高い応答性とを両立することができる。
【０２３８】
（６）ここで、前記プロセッサは、さらに、前記Ｍ個の命令流毎に、当該命令流において一の演算器へ出力された命令数を監視し、一の命令流において出力された命令数が所定値を超えると、当該命令流を構成するＺ個の命令が格納されたＺ個の命令記憶領域の順序を下げるように、前記順序情報を更新する順序情報更新手段を備えるとしてもよい。
【０２３９】
この構成によると、プロセッサは、一の命令流について発行された命令数が所定数に達すると、当該一の命令流を構成するＺ個の命令が格納されたＺ個の命令記憶領域の順序を下げるので、他の命令流に優先的に命令の発行が割り当てられる。従って、例えば、一の命令流の命令が終了した場合には、当該一の命令流に優先的に命令の発行が割り当てることは不要となるので、他の命令流に命令の発行を割り当てることで他の命令流に対する処理効率を上げることができる。
【０２４０】
（７）ここで、前記プロセッサは、さらに、前記Ｍ個の命令流毎に、当該命令流において一の演算器へ出力された命令を監視し、一の命令流において特定の命令が出力されると、当該命令流を構成するＺ個の命令が格納されたＺ個の命令記憶領域の順序を下げるように、前記順序情報を更新する順序情報更新手段を備えるとしてもよい。
【０２４１】
この構成によると、プロセッサは、一の命令流について特定の命令が発行されると、その直後に、当該一の命令流を構成するＺ個の命令が格納されたＺ個の命令記憶領域の順序を下げるので、他の命令流に優先的に命令の発行が割り当てられる。従って、例えば、一の命令流について特定の命令が実行され、その後優先的に命令を実行する必要がない場合には、当該一の命令流に優先的に命令の発行が割り当てるよりも、他の命令流に命令の発行を割り当てることで他の命令流に対する処理効率を上げることができる。
【産業上の利用可能性】
【０２４２】
本発明に係るプロセッサは、一の命令流に対する性能保証と、他の命令流に対する高い応答性とを必要とする装置に適用することができる。
【符号の説明】
【０２４３】
１０    プロセッサ
１０１    命令メモリ
１０２    命令群決定部
１０３〜１０５    第１命令バッファ〜第Ｎ命令バッファ
１０６    発行命令決定部
１０７    優先度決定部
１０８〜１１０    第１レジスタファイル〜第Ｎレジスタファイル
１１１    演算器群
１１２    ライトバックバス
２０１    第１命令保持部
２０１ａ〜２０１ｄ  第１〜第４の記憶領域
２０２    第１命令流スケジューラ
２０３    第２命令保持部
２０４    第２命令流スケジューラ
２０５    第Ｎ命令保持部
２０６    第Ｎ命令流スケジューラ
２１１〜２１４    第１命令決定部〜第４命令決定部
２１５    命令選択部
２２１〜２２４    第１命令抽出部〜第４命令抽出部
７５１〜７５４  発行命令選択信号
【図１】
2010134329.tif 000003
【図２】
2010134329.tif 000004
【図３】
2010134329.tif 000005
【図４】
2010134329.tif 000006
【図５】
2010134329.tif 000007
【図６】
2010134329.tif 000008
【図７】
2010134329.tif 000009
【図８】
2010134329.tif 000010
【図９】
2010134329.tif 000011
【図１０】
2010134329.tif 000012
【図１１】
2010134329.tif 000013
【図１２】
2010134329.tif 000014
【図１３】
2010134329.tif 000015
【図１４】
2010134329.tif 000016
【図１５】
2010134329.tif 000017
【図１６】
2010134329.tif 000018
【図１７】
2010134329.tif 000019
【図１８】
2010134329.tif 000020
【図１９】
2010134329.tif 000021
【図２０】
2010134329.tif 000022
【手続補正書】
【提出日】平成22年12月1日(2010.12.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
Ｌ個（Ｌは２以上の整数）の演算器を有するプロセッサであって、
Ｍ個（Ｍは２以上の整数）の命令流各々が区別して入力され、各命令流を構成するＺ個（Ｚは２以上の整数であり、Ｍ×ＺはＬ以上であることを満たす）の命令を格納するためのＭ×Ｚ個の命令記憶領域を含む命令バッファと、
前記命令バッファ内の前記Ｍ×Ｚ個の命令記憶領域に順序を付けた情報であるＭ×Ｚ個の順序情報を保持する順序情報保持手段と、
前記命令バッファの前記Ｍ×Ｚ個の命令記憶領域に格納された命令を抽出するための抽出手段と、
実行可能状態となっており前記Ｍ×Ｚ個の命令記憶領域に格納されている命令全てのうちから、前記順序情報に従った順序で、Ｌ個の命令を前記抽出手段に抽出させて、抽出された命令毎に別の演算器に入力する制御手段とを備える
ことを特徴とするプロセッサ。
【請求項２】
前記命令バッファは、
前記Ｍ×Ｚ個の命令記憶領域それぞれについて、当該命令記憶領域に記憶されている命令が実行可能であるか否かを示すフラグを有しており、
前記制御手段は、
Ｍ×Ｚ個のフラグそれぞれの内容から、実行可能状態である命令全てを特定する
ことを特徴とする請求項１に記載のプロセッサ。
【請求項３】
前記Ｍ個の命令流のうち一の命令流は、所定時間内で処理の完了を保証すべき性能保証命令流である
ことを特徴とする請求項１に記載のプロセッサ。
【請求項４】
前記性能保証命令流は、画像のデコード処理を行うためのものであり、
前記プロセッサは、
画像のデコード処理を行う画像処理システムに備えられる
ことを特徴とする請求項３に記載のプロセッサ。
【請求項５】
前記性能保証命令流は、画像のエンコード処理を行うためのものであり、
前記プロセッサは、
画像のエンコード処理を行う画像処理システムに備えられる
ことを特徴とする請求項３に記載のプロセッサ。
【請求項６】
前記プロセッサは、さらに、
前記Ｍ個の命令流毎に、当該命令流において一の演算器へ出力された命令数を監視し、一の命令流において出力された命令数が所定値を超えると、当該命令流を構成するＺ個の命令が格納されたＺ個の命令記憶領域の順序を下げるように、前記順序情報を更新する順序情報更新手段を備える
ことを特徴とする請求項１に記載のプロセッサ。
【請求項７】
前記プロセッサは、さらに、
前記Ｍ個の命令流毎に、当該命令流において一の演算器へ出力された命令を監視し、一の命令流において特定の命令が出力されると、当該命令流を構成するＺ個の命令が格納されたＺ個の命令記憶領域の順序を下げるように、前記順序情報を更新する順序情報更新手段を備える
ことを特徴とする請求項１に記載のプロセッサ。
【請求項８】
Ｌ個（Ｌは２以上の整数）の演算器を有するプロセッサで用いられる方法であって、
前記プロセッサは、
Ｍ個（Ｍは２以上の整数）の命令流各々が区別して入力され、各命令流を構成するＺ個（Ｚは２以上の整数であり、Ｍ×ＺはＬ以上であることを満たす）の命令を格納するためのＭ×Ｚ個の命令記憶領域を含む命令バッファと、
前記命令バッファ内の前記Ｍ×Ｚ個の命令記憶領域に順序を付けた情報であるＭ×Ｚ個の順序情報を保持する順序情報保持手段とを備え、
前記方法は、
前記命令バッファの前記Ｍ×Ｚ個の命令記憶領域に格納された命令を抽出するための抽出ステップと、
実行可能状態となっており前記Ｍ×Ｚ個の命令記憶領域に格納されている命令全てのうちから、前記順序情報に従った順序で、Ｌ個の命令を前記抽出ステップに抽出させて、抽出された命令毎に別の演算器に入力する制御ステップとを含む
ことを特徴とする方法。
【国際調査報告】
2010134329.tif 000023
2010134329.tif 000024
2010134329.tif 000025
2010134329.tif 000026