TOP > 国内特許検索 > 命令発行方法及び装置、中央演算装置、命令発行プログラム及びそれを記憶したコンピュータ読み取り可能な記憶媒体

命令発行方法及び装置、中央演算装置、命令発行プログラム及びそれを記憶したコンピュータ読み取り可能な記憶媒体

国内特許コード P06A009079
整理番号 B11P02
掲載日 2006年6月16日
出願番号 特願2003-083001
公開番号 特開2004-295195
登録番号 特許第3646137号
出願日 平成15年3月25日(2003.3.25)
公開日 平成16年10月21日(2004.10.21)
登録日 平成17年2月18日(2005.2.18)
発明者
  • 山崎 信行
出願人
  • 国立研究開発法人科学技術振興機構
  • 学校法人慶應義塾
発明の名称 命令発行方法及び装置、中央演算装置、命令発行プログラム及びそれを記憶したコンピュータ読み取り可能な記憶媒体
発明の概要 【課題】マルチスレッドプロセッサにおいて実時間処理を、命令の優先度による追い越しにより実現する。
【解決手段】命令フェッチユニット2は、命令キャッシュ3から命令をフェッチし、命令デコードユニット9に送る。命令デコードユニット9は、命令をデコードする。リザベーションステーション20は、レジスタファイル1-1から、命令と命令実行に必要なオペランドを得る。スレッド制御ユニット21は、各スレッドに対する優先度を設定する。リザベーションステーション20は、命令実行に必要な全てのオペランドを得ていない場合コモンデータバス12を監視し、必要なオペランドが来ればそれを取り込む。リザベーションステーション20は、命令実行に必要な全てのオペランドがそろったエントリの中から最も高い優先度を持つエントリを選択し、その命令及びオペランドを演算器4に送る。演算器4はその命令及びオペランドに従い命令を実行する。
【選択図】 図5
従来技術、競合技術の概要


従来、マルチスレッドプロセッサを用いた技術として、特許文献1には、複数の命令フローを独立に処理し、命令フロー単位で処理性能を柔軟に制御するものが記載されている。このマルチスレッドプロセッサでは、命令フロー中の命令によって命令フロー毎の優先順位を制御し、一つの機能ユニットに対して複数同時に命令発行要求が出力された場合、機能ユニットに発行すべき命令を優先度によって決定することで命令フロー単位に必要とされる処理性能を動的に実現する。なお、スレッドとは、一般に、OSがあるプロセス又はタスクを並列処理するため、プロセス又はタスクを分割した処理単位又は最小単位のことをいう。この際、プロセス又はタスクが分割されることなく、1プロセス又は1タスクが1スレッドとなる場合もある。
【特許文献1】
特開平10-124316号公報

産業上の利用分野


本発明は、命令発行方法及び装置、中央演算装置、命令発行プログラム及びそれを記憶したコンピュータ読み取り可能な記憶媒体に係り、特に、各種ロボット、自動車、プラント、ホームオートメーション等の種々の分散実時間制御を実現するために必要な実時間処理をハードウェアで支援する命令発行方法及び装置、中央演算装置、命令発行プログラム及びそれを記憶したコンピュータ読み取り可能な記憶媒体に関する。

特許請求の範囲 【請求項1】
中央演算装置が複数のスレッドの命令を実行するマルチスレッドプロセッサにおける命令発行装置であって、
各スレッドに対応して優先度を設定するためのスレッド制御ユニットと、
演算処理及び/又はメモリアクセス処理において実行すべきスレッドの命令及びオペランドが記憶されたレジスタファイルと、
スレッド識別子(スレッドID)に対応して、優先度情報と、命令と、該命令の実行に用いる各オペランドを示すデータとを含むエントリを記憶し、前記レジスタファイルからデータを受け取り、命令及びオペランドを発行するリザベーションステーションと、
前記リザベーションステーションから発行された命令及びオペランドを受け取り、該命令に従い各種演算を行い、演算結果を前記レジスタファイルに書き戻す演算器と、
を備え、
前記リザベーションステーションは、
前記演算器からの出力を監視し、前記レジスタファイルで未解決のオペランドである必要なデータが前記演算器から演算結果として出力された場合、その演算結果をオペランドとして取り込む手段と、
スレッドIDに対応した優先度情報を前記スレッド制御ユニットから求める手段と、
命令実行に必要な全てのオペランドがそろった命令であって、且つ、優先度情報に従い優先度の高いスレッドの命令を前記演算器へ送る手段と
を有することにより、前記リザベーションステーションから前記演算器への命令発行を高い優先度のスレッドの命令が低い優先度の命令を追い越すようにした前記命令発行装置。

【請求項2】
前記リザベーションステーションは、デコードされた命令を基に前記レジスタファイルから読み出されたオペランドを格納し、各オペランドに対してデータが有効であることを示す有効ビットをさらに含む、エントリを作成する手段と、
前記リザベーションステーションは、該リザベーションステーションに記憶された各エントリに対して、命令実行に必要なオペランドが全てそろうまで前記演算器の演算結果から必要なデータをオペランドとして取り込み、そのデータに対応する有効ビットをセットし、各エントリに対するスレッドIDに従い前記スレッド制御ユニットを参照して優先度を得てセットすることにより、各エントリを更新する手段と、
前記リザベーションステーションは、全ての有効ビットがセットされているエントリをオペランドがそろった演算可能なエントリを判断する手段と、
前記リザベーションステーションは、オペランドがそろったエントリが複数の演算可能である場合、各エントリの優先度を比較して、より高い優先度を持つエントリを選択して、前記演算器に該エントリの命令及びオペランド送る手段と
を含む請求項1に記載の命令発行装置。

【請求項3】
前記リザベーションステーションは、スレッドの命令の優先度を、エントリ更新又は命令発行の処理クロック毎に更新制御することを特徴とする請求項1に記載の命令発行装置。

【請求項4】
前記リザベーションステーションは、命令がエントリに入力又は作成されたときにカウンタをリセットし、以後エントリを更新する処理クロック毎に又は命令を発行する処理クロック毎に該カウンタをカウントアップする手段と、
前記リザベーションステーションは、優先度の高いエントリが複数ある場合に、カウンタに従いその値の大きいエントリを選択して、その命令及びオペランドを前記演算器に発行する手段と、
をさらに含むことを特徴とする請求項1に記載の命令発行装置。

【請求項5】
前記リザベーションステーションからの命令及びオペランドを受け取り、前記レジスタファイル又はデータキャッシュへのロード又はストアを実行するメモリアクセスユニットをさらに備えた請求項1に記載の命令発行装置。

【請求項6】
前記リザベーションステーション及び前記演算器の組は複数設けられ、
各々の前記演算器によりアウトオブオーダに演算された命令の順番を元の順番に戻し、元の順番にもどした演算結果を前記レジスタファイルへ書き込むリオーダバッファと、
各々の前記演算器の出力を、前記リザベーションステーション及び前記レジスタファイル及び前記リオーダバッファに供給するためのコモンデータバスと
をさらに備えた請求項1に記載の命令発行装置。

【請求項7】
前記リザベーションステーション及び/又は前記スレッド制御ユニットは、スレッドIDに対応して優先度情報を記憶したメモリを含む請求項1に記載の命令発行装置。

【請求項8】
前記請求項1乃至7のいずれかに記載の命令発行装置と、
命令及びデータをそれぞれキャッシュする命令キャッシュ及びデータキャッシュと、
前記命令キャッシュから命令をフェッチ及びデコードし、デコードされた命令を基に前記レジスタファイルをアクセスする命令フェッチユニットと、
外部の記憶装置及び/又は入出力装置とデータの入出力を行うためのインターフェースユニットと、
を備えた中央演算装置。

【請求項9】
スレッド識別子(スレッドID)に対応して、優先度情報と、命令と、該命令の実行に用いる各オペランドを示すデータとを含むエントリを記憶し、実行すべきスレッドのオペランドが記憶されたレジスタファイルからデータを受け取り、命令及びオペランドを発行するリザベーションステーションと; 前記リザベーションステーションから発行された命令及びオペランドを受け取り、該命令に従い各種演算を行い、演算結果を前記レジスタファイルに書き戻す演算器と; を備え、マルチスレッドプロセッサにおける命令発行装置を用いた命令発行方法であって、
前記リザベーションステーションは、前記演算器からの出力を監視し、前記レジスタファイルで未解決のオペランドである必要なデータが前記演算器から演算結果として出力された場合、その演算結果をオペランドとして取り込むステップと、
前記リザベーションステーションは、スレッドIDに対応した優先度情報を、各スレッドに対応して優先度を設定するためのスレッド制御ユニットから求めるステップと、
前記リザベーションステーションは、命令実行に必要な全てのオペランドがそろった命令であって、且つ、優先度情報に従い優先度の高いスレッドの命令を前記演算器へ送るステップと
を含むことにより、前記リザベーションステーションから前記演算器への命令発行を高い優先度のスレッドの命令が低い優先度の命令を追い越すようにした前記命令発行方法。

【請求項10】
前記リザベーションステーションは、デコードされた命令を基に前記レジスタファイルから読み出されたデータを格納し、各オペランドに対してデータが有効であることを示す有効ビットをさらに含む、エントリを作成するステップと、
前記リザベーションステーションは、該リザベーションステーションに記憶された各エントリに対して、命令実行に必要なオペランドが全てそろうまで前記演算器の演算結果をオペランドとして取り込み、そのデータに対応する有効ビットをセットし、各エントリに対するスレッドIDに従い前記スレッド制御ユニットを参照して優先度を得てセットすることにより、各エントリを更新するステップと、
前記リザベーションステーションは、全ての有効ビットがセットされているエントリをオペランドがそろった演算可能なエントリと判断するステップと、
前記リザベーションステーションは、オペランドがそろったエントリが複数の演算可能である場合、各エントリの優先度を比較して、より高い優先度を持つエントリを選択して、前記演算器に該エントリの命令及びオペランド送るステップと
を含む請求項9に記載の命令発行方法。

【請求項11】
前記リザベーションステーションは、命令がエントリに入力又は作成されたときにカウンタをリセットし、以後エントリを更新する処理クロック毎に又は命令を発行する処理クロック毎に該カウンタをカウントアップするステップと、
前記リザベーションステーションは、優先度の高いエントリが複数ある場合に、カウンタに従いその値の大きいエントリを選択して、その命令及びオペランドを前記演算器に発行するステップと、
をさらに含むことを特徴とする請求項9に記載の命令発行方法。

【請求項12】
スレッド識別子(スレッドID)に対応して、優先度情報と、命令と、該命令の実行に用いる各オペランドを示すデータとを含むエントリを記憶し、実行すべきスレッドの命令及びオペランドが記憶されたレジスタファイルからデータを受け取り、命令及びオペランドを発行するリザベーションステーションと; 前記リザベーションステーションから発行された命令及びオペランドを受け取り、該命令に従い各種演算を行い、演算結果を前記レジスタファイルに書き戻す演算器と; を備え、マルチスレッドプロセッサにおける命令発行装置を用い、コンピュータに次の各ステップを実行させるための命令発行プログラムであって、
前記リザベーションステーションは、前記演算器からの出力を監視し、前記レジスタファイルで未解決のオペランドである必要なデータが前記演算器から演算結果として出力された場合、その演算結果をオペランドとして取り込むステップと、
前記リザベーションステーションは、スレッドIDに対応した優先度情報を、各スレッドに対応して優先度を設定するためのスレッド制御ユニットから求めるステップと、
前記リザベーションステーションは、命令実行に必要な全てのオペランドがそろった命令であって、且つ、優先度情報に従い優先度の高いスレッドの命令を前記演算器へ送るステップと
を、コンピュータに実行させるための命令発行プログラム。

【請求項13】
スレッド識別子(スレッドID)に対応して、優先度情報と、命令と、該命令の実行に用いる各オペランドを示すデータとを含むエントリを記憶し、実行すべきスレッドのオペランドが記憶されたレジスタファイルからデータを受け取り、命令及びオペランドを発行するリザベーションステーションと; 前記リザベーションステーションから発行された命令及びオペランドを受け取り、該命令に従い各種演算を行い、演算結果を前記レジスタファイルに書き戻す演算器と; を備え、マルチスレッドプロセッサにおける命令発行装置を用い、コンピュータに次の各ステップを実行させるための命令発行プログラムを記憶したコンピュータ読み取り可能な記憶媒体であって、
前記リザベーションステーションは、前記演算器からの出力を監視し、前記レジスタファイルで未解決のオペランドである必要なデータが前記演算器から演算結果として出力された場合、その演算結果をオペランドとして取り込むステップと、
前記リザベーションステーションは、スレッドIDに対応した優先度情報を、各スレッドに対応して優先度を設定するためのスレッド制御ユニットから求めるステップと、
前記リザベーションステーションは、命令実行に必要な全てのオペランドがそろった命令であって、且つ、優先度情報に従い優先度の高いスレッドの命令を前記演算器へ送るステップと
を、コンピュータに実行させるための命令発行プログラムを記憶したコンピュータ読み取り可能な記憶媒体。
国際特許分類(IPC)
Fターム
画像

※ 画像をクリックすると拡大します。

JP2003083001thum.jpg
出願権利状態 登録
参考情報 (研究プロジェクト等) SORST 平成12年度採択課題
ライセンスをご希望の方、特許の内容に興味を持たれた方は、問合せボタンを押してください。


PAGE TOP

close
close
close
close
close
close
close