(57)【要約】      （修正有）【課題】プロセッサのマルチ実行モード支援装置及び方法を提供する。【解決手段】現在実行モードによって、オペランド及びオペコードをそれぞれ含む複数の受信された命令語のうち、少なくとも１つの命令語を選択し、該選択された少なくとも１つの命令語のそれぞれに含まれたオペコードを複数の機能ユニットに伝達する命令語分配部１１０と、選択された少なくとも１つの命令語を実行できるように、選択された少なくとも１つの命令語のそれぞれに含まれたオペランドに基づいて、ルーティングのためのスイッチ構成情報を生成するオペランドスイッチ制御部１２０と、スイッチ構成情報に基づいて、機能ユニットの出力またはレジスタファイルの出力から機能ユニットの入力またはレジスタファイルの入力にルーティングするオペランドスイッチ１３０と、を含む。【選択図】図１
2014216020.tif 000002
【特許請求の範囲】
【請求項１】
レジスタファイル及び複数の機能ユニットを含むプロセッサのマルチ実行モード支援装置において、
現在実行モードによって、オペランド及びオペコードをそれぞれ含む受信された複数の命令語のうち、少なくとも１つの命令語を選択し、該選択された少なくとも１つの命令語に含まれたオペコードを前記複数の機能ユニットに伝達する命令語分配部と、
前記選択された少なくとも１つの命令語のそれぞれに含まれたオペランドに基づいて、前記選択された少なくとも１つの命令語を実行できるように、ルーティングのためのスイッチ構成情報を生成するオペランドスイッチ制御部と、
前記スイッチ構成情報に基づいて、機能ユニットの出力またはレジスタファイルの出力から機能ユニットの入力またはレジスタファイルの入力にルーティングするオペランドスイッチと、
を含むマルチ実行モード支援装置。
【請求項２】
前記命令語分配部は、現在実行モードがＳＩＭＴモードである場合、プログラムカウンターの情報に基づいて、前記受信された複数の命令語のうち１つの命令語を選択し、前記オペランドスイッチ制御部の全ての入力ポートに前記選択された命令語に含まれたオペランドを伝達し、全ての機能ユニットに前記選択された命令語に含まれたオペコードを伝達する請求項１に記載のマルチ実行モード支援装置。
【請求項３】
前記命令語分配部は、現在実行モードがＶＬＩＷ／ＣＧＲＡモードであり、少なくとも２つの命令語が選択された場合、前記選択された少なくとも２つの命令語に含まれたオペランド及びオペコードに基づいて、前記オペランドスイッチ制御部の全ての入力ポートに互いに異なるオペランドをそれぞれ伝達し、全ての機能ユニットに互いに異なるオペコードをそれぞれ伝達する請求項１又は２に記載のマルチ実行モード支援装置。
【請求項４】
前記命令語分配部は、現在実行モードが統合モードである場合、受信された複数の命令語のうち、一部命令語を選択し、該選択された一部命令語に含まれたオペランド及びオペコードに基づいて、オペランドスイッチ制御部の入力ポートのうち、第１グループ入力ポートには同じオペランドを、オペランドスイッチ制御部の入力ポートのうち、第２グループ入力ポートに互いに異なるオペランドをそれぞれ伝達し、前記複数の機能ユニットのうち、第１グループ機能ユニットには同じオペコードを、前記複数の機能ユニットのうち、第２グループ機能ユニットには互いに異なるオペコードをそれぞれ伝達する請求項１乃至３のいずれか一項に記載のマルチ実行モード支援装置。
【請求項５】
前記オペランドスイッチ制御部は、オペランドの論理アドレスを物理アドレスに変換する請求項１乃至４のいずれか一項に記載のマルチ実行モード支援装置。
【請求項６】
前記オペランドスイッチは、レジスタファイル出力からレジスタファイル入力に、レジスタファイル出力から機能ユニット入力に、機能ユニット出力からレジスタファイル入力に、機能ユニット出力から機能ユニット入力にルーティングするように構成された請求項１乃至５のいずれか一項に記載のマルチ実行モード支援装置。
【請求項７】
前記オペランドスイッチは、少なくとも１つのスイッチステージで構成される請求項１乃至６のいずれか一項に記載のマルチ実行モード支援装置。
【請求項８】
前記スイッチ構成情報は、前記少なくとも１つのスイッチステージに対応する少なくとも１つのスイッチステージ構成情報を含む請求項７に記載のマルチ実行モード支援装置。
【請求項９】
スイッチステージ構成情報のそれぞれは、当該スイッチステージにパイプラインに順次に入力される請求項８に記載のマルチ実行モード支援装置。
【請求項１０】
レジスタファイル及び複数の機能ユニットを含むプロセッサのマルチ実行モード支援方法において、
現在実行モードによって、オペランド及びオペコードをそれぞれ含む受信された複数の命令語のうちの少なくとも１つの命令語を選択する段階と、
前記選択された少なくとも１つの命令語のそれぞれに含まれたオペコードを前記複数の機能ユニットに伝達する段階と、
前記選択された少なくとも１つの命令語のそれぞれに含まれたオペコードに基づいて、前記選択された少なくとも１つの命令語を実行できるように、ルーティングのためのスイッチ構成情報を生成する段階と、
前記スイッチ構成情報に基づいて、機能ユニットの出力またはレジスタファイルの出力から機能ユニットの入力またはレジスタファイルの入力にルーティングする段階と、
を含むマルチ実行モード支援方法。
【請求項１１】
現在実行モードがＳＩＭＴモードである場合、
前記選択する段階は、プログラムカウンターの情報に基づいて、前記受信された複数の命令語のうち１つの命令語を選択し、
前記伝達する段階は、前記選択された命令語に含まれたオペコードを全ての機能ユニットに伝達する請求項１０に記載のマルチ実行モード支援方法。
【請求項１２】
現在実行モードがＶＬＩＷ／ＣＧＲＡモードである場合、
前記選択する段階は、前記受信された複数の命令語をいずれも選択し、
前記伝達する段階は、前記選択された複数の命令語に含まれた互いに異なるオペコードを各機能ユニットに伝達する請求項１０又は１１に記載のマルチ実行モード支援方法。
【請求項１３】
現在実行モードが統合モードである場合、
前記選択する段階は、前記受信された複数の命令語のうち、一部命令語を選択し、
前記伝達する段階は、前記複数の機能ユニットのうち、第１グループ機能ユニットには互いに異なるオペコードを伝達し、前記複数の機能ユニットのうち、第２グループ機能ユニットには同じオペコードを伝達する請求項１０乃至１２のいずれか一項に記載のマルチ実行モード支援方法。
【請求項１４】
前記生成する段階は、前記選択された少なくとも１つの命令語に含まれたオペランドの論理アドレスを物理アドレスに変換し、物理アドレスに基づいてスイッチ構成情報を生成する請求項１０乃至１３のいずれか一項に記載のマルチ実行モード支援方法。
【請求項１５】
レジスタファイル及び複数の機能ユニットを含むマルチモードプロセッサを支援する装置において、
前記マルチモードプロセッサのモードを選択するためのモード選択信号を受信し、前記モード選択信号によって少なくとも１つの選択された命令語に対応する少なくとも１つのオペランドを受信して、該受信された少なくとも１つのオペランドに基づいて、前記レジスタファイル及び前記複数の機能ユニット間のルーティングのためのスイッチ構成情報を生成するオペランドスイッチ制御部と、
前記スイッチ構成情報に基づいて、第１機能ユニットの出力またはレジスタファイルの出力から第２機能ユニットの入力またはレジスタファイルの入力にルーティングするオペランドスイッチと、
を含む装置。
【請求項１６】
モード選択信号を受信し、モード選択信号によって、全ての機能ユニットに同じオペコードを出力するか、全ての機能ユニットに互いに異なるオペコードを出力するか、または前記複数の機能ユニットのうち、第１グループ機能ユニットには同じオペコードを出力し、前記複数の機能ユニットのうち、第２グループ機能ユニットには互いに異なるオペコードを出力する命令語分配部をさらに含む請求項１５に記載の装置。
【請求項１７】
前記命令語分配部は、
ＳＩＭＴモードに対応するモード選択信号に応答して、全ての機能ユニットに同じオペコードを出力し、
ＶＬＩＷ／ＣＧＲＡモードに対応するモード選択信号に応答して、全ての機能ユニットに互いに異なるオペコードを出力し、
統合モードに対応するモード選択信号に応答して、複数の機能ユニットのうち、第１グループ機能ユニットには同じオペコードを出力し、複数の機能ユニットのうち、第２グループ機能ユニットには互いに異なるオペコードを出力する請求項１６に記載の装置。
【請求項１８】
マルチモードプロセッサにおいて、
前記マルチモードプロセッサのモードを選択するためのモード選択信号を受信し、オペランド及びオペコードをそれぞれ含む複数の命令語を受信して、前記モード選択信号に基づいて少なくとも１つのオペコード及び少なくとも１つのオペランドを出力する命令語分配部と、
前記マルチモードプロセッサのモードを選択するためのモード選択信号及び前記命令語分配部から出力された少なくとも１つのオペランドを受信するオペランドスイッチ制御部と、
前記オペランドスイッチ制御部から受信されたスイッチ構成情報を用いて、前記命令語分配部から出力された少なくとも１つのオペコードを受信した複数の機能ユニットを制御するオペランドスイッチと、
を含むプロセッサ。
【請求項１９】
前記オペランドスイッチは、前記モード選択信号に基づいて、前記複数の機能ユニットがいずれもＳＩＭＴプロセッサとして動作するか、前記複数の機能ユニットがいずれもＶＬＩＷ／ＣＧＲＡプロセッサとして動作するか、または前記複数の機能ユニットの一部は、ＳＩＭＴプロセッサとして、前記複数の機能ユニットのうち残りは、ＶＬＩＷ／ＣＧＲＡプロセッサとして動作するように、前記複数の機能ユニットを制御する請求項１８に記載のプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサのマルチ実行モード支援装置及び方法に関する。
【背景技術】
【０００２】
ＶＬＩＷ（Ｖｅｒｙ  Ｌｏｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｗｏｒｄ）プロセッサは、多数の機能ユニット（Ｆｕｎｃｔｉｏｎ  Ｕｎｉｔ、ＦＵ）を有し、多数の命令語が組合わせられた長い命令語を一回で処理する。ＣＧＲＡ（Ｃｏａｒｓｅ  Ｇｒａｉｎ  Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ａｒｒａｙ）は、多数の命令語が組合わせられた長い命令語を一回で処理するという点で、ＶＬＩＷと同一であるが、普通ＶＬＩＷよりもさらに多数の機能ユニットを配列（ａｒｒａｙ）形態で有し、ＶＬＩＷと異なって、機能ユニットどうしで直接的な連結があるハードウェアであって、速い速度の演算のために使われる。
【０００３】
このようなＶＬＩＷとＣＧＲＡは、データ間に依存性が存在しても、処理可能であり、一方、コンパイル時にデータ処理過程の全てのスケジュールが完了するために、コンパイル時間が長く、アプリケーションとコンパイラとによって機能ユニットの使用効率が落ちる。
【０００４】
ＳＩＭＴ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｔｈｒｅａｄ）は、多数の機能ユニットを有している構造であるが、１つの命令語を多数の機能ユニットが使う構造であって、普通それぞれの機能ユニットが個別スレッドを実行する。すなわち、ＳＩＭＴは、多数の機能ユニットが同じ命令語シーケンスで多数のデータ（または、スレッド）をそれぞれ個別的に処理する。
【０００５】
このようなＳＩＭＴは、同じ過程で多くのデータを処理しなければならない大量並列データ処理アプリケーションに有利であるが、データ間に依存性が存在する場合、データの処理が難しい。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明が解決しようとする課題は、プロセッサのマルチ実行モード支援装置及び方法を提供することである。
【課題を解決するための手段】
【０００７】
本発明の一態様によるレジスタファイル及び複数の機能ユニットを含むプロセッサのマルチ実行モード支援装置は、現在実行モードによって、オペランド及びオペコードをそれぞれ含む受信された複数の命令語のうち、少なくとも１つの命令語を選択し、該選択された少なくとも１つの命令語に含まれたオペコードを複数の機能ユニットに伝達する命令語分配部と、選択された少なくとも１つの命令語のそれぞれに含まれたオペランドに基づいて、選択された少なくとも１つの命令語を実行できるように、ルーティングのためのスイッチ構成情報を生成するオペランドスイッチ制御部と、スイッチ構成情報に基づいて、機能ユニットの出力またはレジスタファイルの出力から機能ユニットの入力またはレジスタファイルの入力にルーティングするオペランドスイッチと、を含みうる。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態によるマルチ実行モード支援装置の構成図である。
【図２】図１の命令語分配部１１０の詳細構成図である。
【図３】図１のオペランドスイッチ１３０の例を示す図面である。
【図４Ａ】本発明の一実施形態によるスイッチ構成情報の例を示す図面である。
【図４Ｂ】スイッチステージ構成情報がスイッチステージに入力される順序を説明する図面である。
【図５】本発明の一実施形態によるマルチ実行モード支援方法を示すフローチャートである。
【発明を実施するための形態】
【０００９】
＜発明の概要＞
本発明の一態様によるレジスタファイル及び複数の機能ユニットを含むプロセッサのマルチ実行モード支援装置は、現在実行モードによって、オペランド及びオペコードをそれぞれ含む受信された複数の命令語のうち、少なくとも１つの命令語を選択し、該選択された少なくとも１つの命令語に含まれたオペコードを複数の機能ユニットに伝達する命令語分配部と、選択された少なくとも１つの命令語のそれぞれに含まれたオペランドに基づいて、選択された少なくとも１つの命令語を実行できるように、ルーティングのためのスイッチ構成情報を生成するオペランドスイッチ制御部と、スイッチ構成情報に基づいて、機能ユニットの出力またはレジスタファイルの出力から機能ユニットの入力またはレジスタファイルの入力にルーティングするオペランドスイッチと、を含みうる。
【００１０】
命令語分配部は、現在実行モードがＳＩＭＴモードである場合、プログラムカウンターの情報に基づいて、受信された複数の命令語のうち１つの命令語を選択し、オペランドスイッチ制御部の全ての入力ポートに選択された命令語に含まれたオペランドを伝達し、全ての機能ユニットに選択された命令語に含まれたオペコードを伝達することができる。
【００１１】
命令語分配部は、現在実行モードがＶＬＩＷ／ＣＧＲＡモードであり、少なくとも２つの命令語が選択された場合、選択された少なくとも２つの命令語に含まれたオペランド及びオペコードに基づいて、オペランドスイッチ制御部の全ての入力ポートに互いに異なるオペランドをそれぞれ伝達し、全ての機能ユニットに互いに異なるオペコードをそれぞれ伝達することができる。
【００１２】
命令語分配部は、現在実行モードが統合モードである場合、受信された複数の命令語のうち、一部命令語を選択し、該選択された一部命令語に含まれたオペランド及びオペコードに基づいて、オペランドスイッチ制御部の入力ポートのうち、第１グループ入力ポートには同じオペランドを、オペランドスイッチ制御部の入力ポートのうち、第２グループ入力ポートに互いに異なるオペランドをそれぞれ伝達し、複数の機能ユニットのうち、第１グループ機能ユニットには同じオペコードを、複数の機能ユニットのうち、第２グループ機能ユニットには互いに異なるオペコードをそれぞれ伝達することができる。
【００１３】
オペランドスイッチ制御部は、オペランドの論理アドレスを物理アドレスに変換することができる。オペランドスイッチは、レジスタファイル出力からレジスタファイル入力に、レジスタファイル出力から機能ユニット入力に、機能ユニット出力からレジスタファイル入力に、機能ユニット出力から機能ユニット入力にルーティングするように構成することができる。
【００１４】
オペランドスイッチは、少なくとも１つのスイッチステージで構成することができる。スイッチ構成情報は、少なくとも１つのスイッチステージに対応する少なくとも１つのスイッチステージ構成情報を含みうる。スイッチステージ構成情報のそれぞれは、当該スイッチステージにパイプラインに順次に入力されうる。
【００１５】
本発明の他の態様によるレジスタファイル及び複数の機能ユニットを含むプロセッサのマルチ実行モード支援方法は、現在実行モードによって、オペランド及びオペコードをそれぞれ含む受信された複数の命令語のうちの少なくとも１つの命令語を選択する段階と、選択された少なくとも１つの命令語のそれぞれに含まれたオペコードを複数の機能ユニットに伝達する段階と、選択された少なくとも１つの命令語のそれぞれに含まれたオペコードに基づいて、選択された少なくとも１つの命令語を実行できるように、ルーティングのためのスイッチ構成情報を生成する段階と、を含みうる。
【００１６】
前記マルチ実行モード支援方法は、前記スイッチ構成情報に基づいて、機能ユニットの出力またはレジスタファイルの出力から機能ユニットの入力またはレジスタファイルの入力にルーティングする段階をさらに含みうる。
【００１７】
現在実行モードがＳＩＭＴモードである場合、前記選択する段階は、プログラムカウンターの情報に基づいて、前記受信された複数の命令語のうち１つの命令語を選択し、前記伝達する段階は、前記選択された命令語に含まれたオペコードを全ての機能ユニットに伝達することができる。
【００１８】
現在実行モードがＶＬＩＷ／ＣＧＲＡモードである場合、前記選択する段階は、前記受信された複数の命令語をいずれも選択し、前記伝達する段階は、前記選択された複数の命令語に含まれた互いに異なるオペコードを各機能ユニットに伝達することができる。
【００１９】
現在実行モードが統合モードである場合、前記選択する段階は、前記受信された複数の命令語のうち、一部命令語を選択し、前記伝達する段階は、前記複数の機能ユニットのうち、第１グループ機能ユニットには互いに異なるオペコードを伝達し、前記複数の機能ユニットのうち、第２グループ機能ユニットには同じオペコードを伝達することができる。
【００２０】
前記生成する段階は、前記選択された少なくとも１つの命令語に含まれたオペランドの論理アドレスを物理アドレスに変換し、物理アドレスに基づいてスイッチ構成情報を生成することができる。
【００２１】
本発明のさらに他の態様によるレジスタファイル及び複数の機能ユニットを含むマルチモードプロセッサを支援する装置は、前記マルチモードプロセッサのモードを選択するためのモード選択信号を受信し、前記モード選択信号によって少なくとも１つの選択された命令語に対応する少なくとも１つのオペランドを受信して、該受信された少なくとも１つのオペランドに基づいて、前記レジスタファイル及び前記複数の機能ユニット間のルーティングのためのスイッチ構成情報を生成するオペランドスイッチ制御部と、前記スイッチ構成情報に基づいて、第１機能ユニットの出力またはレジスタファイルの出力から第２機能ユニットの入力またはレジスタファイルの入力にルーティングするオペランドスイッチと、を含みうる。
【００２２】
前記装置は、モード選択信号を受信し、モード選択信号によって、全ての機能ユニットに同じオペコードを出力するか、全ての機能ユニットに互いに異なるオペコードを出力するか、または前記複数の機能ユニットのうち、第１グループ機能ユニットには同じオペコードを出力し、前記複数の機能ユニットのうち、第２グループ機能ユニットには互いに異なるオペコードを出力する命令語分配部をさらに含みうる。
【００２３】
前記命令語分配部は、ＳＩＭＴモードに対応するモード選択信号に応答して、全ての機能ユニットに同じオペコードを出力し、ＶＬＩＷ／ＣＧＲＡモードに対応するモード選択信号に応答して、全ての機能ユニットに互いに異なるオペコードを出力し、統合モードに対応するモード選択信号に応答して、複数の機能ユニットのうち、第１グループ機能ユニットには同じオペコードを出力し、複数の機能ユニットのうち、第２グループ機能ユニットには互いに異なるオペコードを出力することができる。
【００２４】
本発明のさらに他の態様によるマルチモードプロセッサは、前記マルチモードプロセッサのモードを選択するためのモード選択信号を受信し、オペランド及びオペコードをそれぞれ含む複数の命令語を受信して、前記モード選択信号に基づいて少なくとも１つのオペコード及び少なくとも１つのオペランドを出力する命令語分配部と、前記マルチモードプロセッサのモードを選択するためのモード選択信号及び前記命令語分配部から出力された少なくとも１つのオペランドを受信するオペランドスイッチ制御部と、前記オペランドスイッチ制御部から受信されたスイッチ構成情報を用いて、前記命令語分配部から出力された少なくとも１つのオペコードを受信した複数の機能ユニットを制御するオペランドスイッチと、を含みうる。
【００２５】
前記オペランドスイッチは、前記モード選択信号に基づいて、前記複数の機能ユニットがいずれもＳＩＭＴプロセッサとして動作するか、前記複数の機能ユニットがいずれもＶＬＩＷ／ＣＧＲＡプロセッサとして動作するか、または前記複数の機能ユニットの一部は、ＳＩＭＴプロセッサとして、前記複数の機能ユニットのうち残りは、ＶＬＩＷ／ＣＧＲＡプロセッサとして動作するように、前記複数の機能ユニットを制御することができる。
【００２６】
＜発明の詳細＞
以下、添付図面を参照して、本発明の一実施形態を詳細に説明する。本発明を説明するに当って、関連した公知機能または構成についての具体的な説明が、本発明の要旨を不明にする恐れがあると判断される場合には、その詳細な説明を省略する。また、後述する用語は、本発明での機能を考慮して定義された用語であって、これは、ユーザ、運用者の意図または慣例などによって変わりうる。したがって、その定義は、本明細書の全般に亘った内容に基づいて下されなければならない。
【００２７】
以下、プロセッサの処理及び性能要求に基づいて、互いに異なるモード間にスイッチング可能なプロセッサを説明する。より詳細には、プロセッサは、（i）大容量データ処理のためのＳＩＭＴモード、（ii）ソフトウェアパイプラインの活用で性能向上のためのＶＬＩＷモードまたはＣＧＲＡモード、及び（iii）ＳＩＭＴモードで動作するプロセッサの一部は、ＳＩＭＴモードで動作し、プロセッサの他の部分は、ＶＬＩＷ／ＣＧＲＡモードで動作する統合モードを支援する。
【００２８】
本発明の一実施形態を説明するのに先立って、ＳＩＭＴモード、ＶＬＩＷ／ＣＧＲＡモード、及び統合モードを説明する。
【００２９】
［ＳＩＭＴモード］
ＳＩＭＴモードでは、システムの機能ユニットは、同じ命令語を使い、互いに異なる物理アドレス空間に対するアクセス権限を有し、同じオペコードを受信する。システムのオペランドスイッチ制御部に伝達されたオペランドは、同一なので、同じ論理アドレス空間を有する。しかし、このオペランドは、互いに異なる物理アドレス空間を有する。レジスタファイルは、動作中である機能ユニットの数と同数のセグメントに分割され、互いに異なるセグメントが動作中である機能ユニットのそれぞれに割り当てられて、機能ユニットのローカルレジスタとして使われる。各機能ユニットが、自身が受信したオペコードと関連したオペランドに対応する論理レジスタにアクセスできるように、オペランドスイッチ制御部は、受信されたオペランドの論理アドレスを物理アドレスに変換し、該変換されたアドレスに基づいてスイッチ構成情報を生成する。
【００３０】
［ＶＬＩＷ／ＣＧＲＡモード］
ＶＬＩＷ／ＣＧＲＡモードでは、機能ユニットが互いに異なる命令語を使い、同じ物理アドレス空間に対するアクセス権限を有し、互いに異なるオペコードを受信する。オペランドスイッチ制御部に伝達されたオペランドは、互いに異なるが、機能ユニットが同じターゲットにアクセスするために、同じ物理アドレス空間を有する。機能ユニットが互いに異なる命令語を使うために、機能ユニットが受信したオペコードに対応するオペランドは、互いに異なり、各オペランドは、物理アドレス空間のように同じ論理アドレス空間を有する。
【００３１】
ＶＬＩＷプロセッサとＣＧＲＡプロセッサとの差異点は、次の通りである。ＣＧＲＡプロセッサは、ＶＬＩＷプロセッサよりも多数の機能ユニットを含み、ローカルレジスタファイル、及び中央レジスタファイルを経ずに、機能ユニット間の直接データが伝達されるネットワークを有する。ＶＬＩＷプロセッサは、全ての機能ユニットが中央レジスタファイルにアクセスしなければならないために、大きなレジスタファイル帯域幅を必要とする。もし、中央レジスタファイルアクセスに制約を置くならば（例えば、特定機能ユニットは、特定レジスタファイルサブセットにのみアクセス可能）、レジスタファイル間のデータ移動などに誘発される機能ユニットの使用効率減少で並列処理性能が減少してしまう。ＣＧＲＡプロセッサ／モードは、機能ユニット間の連結及び機能ユニット間のローカルレジスタを用いて、この問題を解決することができる。すなわち、データが中央レジスタファイルを経ずに、機能ユニット間に伝達されるために、並列処理することができる命令語が多くなって、効率が増加する。
【００３２】
［統合モード］
統合モードは、ＳＩＭＴモード及びＶＬＩＷ／ＣＧＲＡモードが結合されたモードである。統合モードでは、第１グループ機能ユニットは同じオペコードを受信し、第２グループ機能ユニットは互いに異なるオペコードを受信する。ＳＩＭＴモードに対応するオペランドは、物理アドレス空間と他の論理アドレス空間とを有する一方、ＶＬＩＷ／ＣＧＲＡモードに対応するオペランドは、物理アドレス空間と同じ論理アドレス空間とを有する。
【００３３】
図１は、本発明の一実施形態によるマルチ実行モード支援装置１００の構成図である。図１に示された実施形態で、マルチ実行モード支援装置１００は、レジスタファイル１０２及び８個の機能ユニット（ＦＵ）１０４を含むが、これに限定されるものではなく、システムの性能または発明の用途によって、機能ユニット１０４の個数は変更されうる。
【００３４】
図１を参照すれば、マルチ実行モード支援装置１００は、命令語分配部１１０、オペランドスイッチ制御部１２０、及びオペランドスイッチ１３０を含みうる。
【００３５】
命令語分配部１１０は、複数の命令語１０６を受信することができる。命令語は、それぞれオペランド及びオペコードを含む機械命令語であり得る。オペランドは、処理しようとするデータを指定する選択されたコードの部分であって、オペコードは、行われるオペレーションを指定する選択された命令語の部分と見なされる。命令語分配部１１０は、実行モードによって受信された複数の命令語１０６のうち１つ以上の命令語を選択し、該選択された命令語に含まれたオペランドをオペランドスイッチ制御部１２０に伝達し、選択された命令語に含まれたオペコードを機能ユニット（ＦＵ）１０４に伝達することができる。
【００３６】
実行モードは、ハードウェアが動作する前に決定される。特に、ＳＩＭＴモードで動作する時の命令語とＶＬＩＷ／ＣＧＲＡモードで動作する時の命令語は、互いに異なるために、実行モードは、コンパイラがマシンコードを作るときに決定される。実行モードは、プログラマーがモードを決定して、コンパイラに知らせる方法、またはコンパイラがプログラムを分析して、どのモードがさらに効率的であるか否かを決定し、該決定されたモードに基づいてコードをコンパイルする方法を用いて決定する。実行モードが決定され、コードがコンパイルされれば、コンパイラは、適切な処理モードで動作するようにプロセッサに指示する。一実施形態によれば、モードスイッチングする命令語を別途に置き、これをコンパイルされたコードに挿入することができる。プロセッサハードウェアは、挿入されたコードを読み出してモードを決定することができる。
【００３７】
ＳＩＭＴモードである場合、命令語分配部１１０は、プログラムカウンター（ＰＣ）の情報に基づいて複数の命令語１０６のうち１つの命令語を選択し、該選択された命令語に含まれたオペランドをオペランドスイッチ制御部１２０の全ての入力ポートに伝達し、選択された命令語に含まれたオペコードを全ての機能ユニット１０４に伝達することができる。すなわち、ＳＩＭＴモードで、命令語分配部１１０は、オペランドスイッチ制御部１２０の全ての入力ポートに同じオペランドを伝達し、全ての機能ユニットに同じオペコードを伝達することができる。
【００３８】
ＶＬＩＷ／ＣＧＲＡモードである場合、命令語分配部１１０は、受信された複数命令語１０６のうち１つ以上の命令語を選択し、受信された命令語１０６に含まれたオペランド及びオペコードに基づいて、オペランドスイッチ制御部１２０の入力ポートのそれぞれに互いに異なるオペランドを伝達し、機能ユニット１０４のそれぞれに互いに異なるオペコードを伝達することができる。
【００３９】
統合モードは、ＳＩＭＴモードとＶＬＩＷ／ＣＧＲＡモードとが統合されたモードであって、統合モードである場合、命令語分配部１１０は、受信された複数命令語１０６のうちの一部命令語を選択し、該選択された一部命令語のうち１つに含まれたオペランドをオペランドスイッチ制御部１２０の第１グループ入力ポートに分散して伝達し、選択された一部命令語に含まれたオペコードを当該第１グループ機能ユニットに分散して伝達することができる。命令語分配部１１０は、選択された一部命令語のうち残りの命令語に含まれたオペランドをオペランドスイッチ制御部１２０の第２グループ入力ポートに分散して伝達し、選択された一部命令語のうち残りの命令語に含まれたオペコードを当該第２グループ機能ユニットに分散して伝達することができる。すなわち、統合モードで、命令語分配部１１０は、選択された一部命令語に含まれたオペランド及びオペコードに基づいて、オペランドスイッチ制御部１２０の第１グループ入力ポートには同じオペランドを、残りの入力ポート（例えば、第２グループ入力ポート）のそれぞれには互いに異なるオペランドを伝達し、第１グループ機能ユニットには同じオペコードを、残りの機能ユニット（例えば、第２グループ入力ポートに対応する第２グループ機能ユニット）のそれぞれには互いに異なるオペコードを伝達することができる。この際、同じオペランド（または、同じオペコード）が伝達されるオペランドスイッチ制御部１２０の入力ポート（または、機能ユニット）の個数は、発明の目的及びシステムの性能によって多様に設定しうる。
【００４０】
統合モードで、ＳＩＭＴモードの機能ユニット及びＶＬＩＷ／ＣＧＲＡモードの機能ユニットの利用率は、特定アプリケーションによって変更されうる。望ましくは、第１グループ機能ユニットは、互いに平行に地理的にグループ化され、第２グループ機能ユニットは、互いに平行に地理的にグループ化される。
【００４１】
オペランドスイッチ制御部１２０は、命令語分配部１１０からオペランドを受信し、該受信されたオペランドを用いてそれぞれの機能ユニットまたはレジスタがアクセスしようとする機能ユニットまたはレジスタにアクセスできるように、オペランドの論理アドレスを物理アドレスに変換し、オペランドスイッチ１３０のスイッチ構成情報（ＳＣ）を生成することができる。オペランドスイッチ制御部１２０は、ＳＩＭＴモードであるか、ＶＬＩＷ／ＣＧＥＡモードであるか、または統合モードであるか否かを区分するために、モード信号１０８を外部から受信することができる。
【００４２】
ＳＩＭＴモードである場合、全ての機能ユニット１０４が同じ命令語を使うために、オペランドスイッチ制御部１２０の各入力ポートに伝達されるオペランドは、いずれも同じである。したがって、同じ論理アドレス空間を有する。しかし、レジスタファイルは、それぞれの機能ユニット（または、スレッド）別に分割して使うので、オペランドスイッチ制御部１２０の各入力ポートに伝達される各オペランドは、それぞれ異なる物理アドレス空間を有し、それぞれの機能ユニットは、互いに異なる物理アドレス空間のレジスタにアクセスさせうる。すなわち、全体レジスタファイル１０２を動作している機能ユニット１０４（または、スレッド）の個数に分割して、機能ユニット１０４（または、スレッド）ごとに互いに異なるレジスタが割り当てられ、それぞれの機能ユニット（または、スレッド）は、自身が割り当てられたレジスタを、自身のローカルレジスタとして使う。この際、オペランドスイッチ制御部１２０は、１つのオペランドを受信して、それぞれの機能ユニット１０４が自身が受信したオペコードと関連したオペランドに該当するローカルレジスタにアクセスできるように、各機能ユニットに対応した各オペランドの論理アドレスを物理アドレスに変換し、これに基づいて、スイッチ構成情報（ＳＣ）を生成する。
【００４３】
一方、ＶＬＩＷ／ＣＧＲＡモードである場合、全ての機能ユニット１０４が互いに異なる命令語を使うために、オペランドスイッチ制御部１２０の各入力ポートに伝達されるオペランドは、互いに異なり、オペランドそれぞれの論理アドレス空間と物理アドレス空間は、同一である。したがって、それぞれの機能ユニット１０４は、自在にオペランドを有し、オペランドスイッチ制御部１２０は、個別オペランドを受信して、各機能ユニット１０４が該当するターゲットにアクセスできるように、スイッチ構成情報（ＳＣ）を生成する。この場合、同じアドレス空間を使うために、オペランドが同じであれば、同じターゲットにアクセスする。
【００４４】
また、統合モードである場合、ＳＩＭＴモードに対応するオペランドは、論理アドレス空間と物理アドレス空間とは同一ではないが、ＶＬＩＷ／ＣＧＲＡモードに対応するオペランドは、論理アドレス空間と物理アドレス空間とは同一である。したがって、オペランドスイッチ制御部１２０は、ＳＩＭＴモード及びＶＬＩＷ／ＣＧＲＡモードを結合して、それによる機能を行う。
【００４５】
すなわち、オペランドスイッチ制御部１２０は、オペランドの論理アドレスを物理アドレスに変換し、これに基づいて、スイッチ構成情報（ＳＣ）を生成することによって、ＳＩＭＴモードの場合は、全ての機能ユニット１０４が同じ論理アドレス空間にターゲットをアクセスさせ（論理アドレス空間は同じであるが、物理アドレス空間は互いに異なる）、ＶＬＩＷ／ＣＧＲＡモードの場合は、全ての機能ユニット１０４がそれぞれ個別論理アドレス空間にターゲットをアクセスさせ、統合モードの場合は、多数の機能ユニットが少数の論理アドレス空間にターゲットをアクセスさせうる。
【００４６】
オペランドスイッチ１３０は、オペランドスイッチ制御部１２０から生成されたスイッチ構成情報（ＳＣ）に基づいて、命令語分配部１１０から選択された命令語を行うように、機能ユニットまたはレジスタを機能ユニットまたはレジスタとルーティングすることができる。例えば、オペランドスイッチ１３０は、スイッチ構成情報（ＳＣ）に基づいて、レジスタファイルの出力を機能ユニットの入力にルーティングし、機能ユニットの出力をレジスタファイルの入力にルーティングし、機能ユニットの出力を他の機能ユニットの入力にルーティングし、レジスタファイルの出力を他のレジスタファイルの入力にルーティングすることもできる。
【００４７】
本発明の一実施形態によれば、オペランドスイッチ１３０は、多数のスイッチステージで構成され、それぞれのスイッチステージは、フリップフロップなどの保存装置を含みうる。これに関する詳しい説明は、図３を参照して後述する。
【００４８】
図２は、図１の命令語分配部１１０の詳細構成図である。図２の例で、オペランドスイッチ制御部１２０の入力ポートと演算を行う機能ユニットが、それぞれ８個であると仮定し、１つの命令語には、１つのオペランド及び１つのオペコードがそれぞれ含まれると仮定する。
【００４９】
図２を参照すれば、命令語分配部１１０は、１６個の２＊１マルチプレクサ２５１〜２５８、２６１〜２６８及び２個の８＊１マルチプレクサ２３０、２４０を含みうる。命令語分配部１１０は、８個の命令語を受信して、該受信された８個の命令語をオペランドセット２１０及びオペコードセット２２０に分ける。オペランドセット２１０の８個のオペランド２１１〜２１８のそれぞれは、オペランドスイッチ制御部１２０の入力ポートと連結される８個の２＊１マルチプレクサ２５１〜２５８の入力にそれぞれ伝達される一方、８＊１マルチプレクサ２３０の入力にも伝達される。８＊１マルチプレクサ２３０は、８個のオペランド２１１〜２１８を入力されてプログラムカウンター（ＰＣ）の情報に基づいて、特定命令語に対するオペランドを選択して、８個の２＊１マルチプレクサ２５１〜２５８の入力に伝達する。８個の２＊１マルチプレクサ２５１〜２５８のそれぞれは、設定された実行モード１０８によって出力を決定し、各出力をオペランドスイッチ制御部１２０の入力ポートに伝達する。
【００５０】
また、オペコードセット２２０の８個のオペコード２２１〜２２８のそれぞれは、８個の機能ユニット１０４とそれぞれ連結される８個の２＊１マルチプレクサ２６１〜２６８の入力にそれぞれ伝達される一方、８＊１マルチプレクサ２４０の入力にも伝達される。８＊１マルチプレクサ２４０は、８個のオペコード２２１〜２２８を入力されてプログラムカウンターの情報に基づいて、特定オペコードを８個の２＊１マルチプレクサ２６１〜２６８の入力に伝達する。８個の２＊１マルチプレクサ２６１〜２６８のそれぞれは、設定された実行モード１０８によって出力を決定し、各出力を各機能ユニット１０４に伝達する。
【００５１】
ＳＩＭＴモードである場合、２＊１マルチプレクサ２５１〜２５８のそれぞれは、８＊１マルチプレクサ２３０から入力されたオペランドを出力として決定し、各出力をオペランドスイッチ制御部１２０の８個の入力ポートに伝達する。また、２＊１マルチプレクサ２６１〜２６８のそれぞれは、８＊１マルチプレクサ２４０から入力されたオペコードを出力として決定し、各出力を各機能ユニット１０４に伝達する。すなわち、オペランドスイッチ制御部１２０の８個の入力ポートには、同じオペランドが伝達され、各機能ユニット１０４には、同じオペコードが伝達される。
【００５２】
ＶＬＩＷ／ＣＧＲＡモードである場合、２＊１マルチプレクサ２５１〜２５８のそれぞれは、オペランドセット２１０から直接入力されたオペランドを出力として決定し、各出力をオペランドスイッチ制御部１２０の８個の入力ポートに伝達する。また、２＊１マルチプレクサ２６１〜２６８のそれぞれは、オペコードセット２２０から直接入力されたオペコードを出力として決定し、各出力を各機能ユニット１０４に伝達する。すなわち、オペランドスイッチ制御部１２０の８個の入力ポートのそれぞれには、互いに異なるオペランドが伝達され、各機能ユニット１０４には、互いに異なるオペコードが伝達される。
【００５３】
統合モードである場合、２＊１マルチプレクサ２５１〜２５８の一部は、オペランドセット２１０から直接入力されたオペランドを出力として決定し、残りは、８＊１マルチプレクサ２３０から入力されたオペランドを出力として決定する。該決定された各出力は、オペランドスイッチ制御部１２０の８個の入力ポートに伝達される。また、２＊１マルチプレクサ２６１〜２６８の一部は、オペコードセット２２０から直接入力されたオペコードを出力として決定し、残りは、８＊１マルチプレクサ２４０から入力されたオペコードを出力として決定する。該決定された各出力は、各機能ユニットに伝達される。すなわち、オペランドスイッチ制御部１２０の８個の入力ポートの一部には、互いに異なるオペランドが伝達され、残りには、同じオペランドが伝達される。これと同様に、８個の機能ユニットの一部には、互いに異なるオペコードが伝達され、残りには、同じオペコードが伝達される。
【００５４】
一方、オペランドセット２１０から直接入力されたオペランドを出力として決定する２＊１マルチプレクサの個数及びオペコードセット２２０から直接入力されたオペコードを出力として決定する２＊１マルチプレクサの個数は、システムの性能または発明の目的によって多様に設定しうる。
【００５５】
図３は、図１のオペランドスイッチ１３０の例を示す図面である。図３は、オペランドスイッチ１３０が３個のスイッチステージで構成される例を図示するが、これに限定されるものではなく、システムの性能または発明の目的によって多様な個数のスイッチステージで構成されても良い。
【００５６】
図３を参照すれば、オペランドスイッチ１３０は、スイッチステージ１、スイッチステージ２、及びスイッチステージ３を含みうる。それぞれのスイッチステージは、フリップフロップなどの保存装置を含みうる。
【００５７】
オペランドスイッチ１３０は、スイッチ構成情報（ＳＣ）に基づいて、レジスタファイルの出力をレジスタファイルの入力にルーティングするか、レジスタファイルの出力を機能ユニットの入力にルーティングするか、機能ユニットの出力をレジスタファイルの入力にルーティングするか、あるいは機能ユニットの出力を機能ユニットの入力にルーティングすることが可能である。
【００５８】
機能ユニットの出力を機能ユニットの入力にルーティングする場合、レジスタファイルを経ずに、機能ユニット間の連結を構成することができるために、ＶＬＩＷ／ＣＧＲＡモードでオペレーション間のデータ伝達オーバーヘッドを減らすのに活用されうる。また、レジスタファイルの出力をレジスタファイルの入力にルーティングする場合、機能ユニット１０４を経ずに、“ｍｏｖｅ”オペレーションを行うことができるので、ＶＬＩＷ／ＣＧＲＡ性能向上に活用することができる。
【００５９】
図４Ａは、本発明の一実施形態によるスイッチ構成情報（ＳＣ）の例を示す図面であり、図４Ｂは、スイッチステージ構成情報（ＳＣ）がスイッチステージに入力される順序を説明する図面である。この際、図４Ａ及び図４Ｂを説明するに当って、図３の例のように、オペランドスイッチ１３０が、３個のスイッチステージで構成されると仮定する。
【００６０】
図４Ａを参照すれば、オペランドスイッチ１３０が、３個のスイッチステージで構成されている場合、各スイッチステージの構成情報（ＳＣ）は、別個に構成され、この場合、スイッチ構成情報（ＳＣ）は、スイッチステージ１の構成情報（ＳＳＣ１）、スイッチステージ２の構成情報（ＳＳＣ２）、及びスイッチステージ３の構成情報（ＳＳＣ３）を含みうる。
【００６１】
以下、図３、図４Ａ及び図４Ｂを参照して、各スイッチステージの構成情報が入力される方法を説明する。
【００６２】
図４Ｂを参照すれば、時間がｔ１である時、オペランドスイッチ制御部１２０から最初生成されたスイッチ構成情報（ＳＣ１）に含まれたスイッチステージ１の構成情報（ＳＣ１−ＳＳＣ１）は、スイッチステージ１に入力される。
【００６３】
次いで、時間がｔ２である時、オペランドスイッチ制御部１２０から二番目に生成されたスイッチ構成情報（ＳＣ２）に含まれたスイッチステージ１の構成情報（ＳＣ２−ＳＳＣ１）は、スイッチステージ１に入力され、それと同時に、最初生成されたスイッチ構成情報（ＳＣ１）に含まれたスイッチステージ２の構成情報（ＳＣ１−ＳＳＣ２）は、スイッチステージ２に入力される。
【００６４】
次いで、時間がｔ３である時、オペランドスイッチ制御部１２０から三番目に生成されたスイッチ構成情報（ＳＣ３）に含まれたスイッチステージ１の構成情報（ＳＣ３−ＳＳＣ１）は、スイッチステージ１に入力される。それと同時に、二番目に生成されたスイッチ構成情報（ＳＣ２）に含まれたスイッチステージ２の構成情報（ＳＣ２−ＳＳＣ２）は、スイッチステージ２に入力され、最初生成されたスイッチ構成情報（ＳＣ１）に含まれたスイッチステージ３の構成情報（ＳＣ１−ＳＳＣ３）は、スイッチステージ３に入力される。
【００６５】
このような方法で、各スイッチステージの構成情報（ＳＳＣ）は、各スイッチステージにパイプラインに順次に入力されうる。
【００６６】
図５は、本発明の一実施形態によるマルチ実行モード支援方法を示すフローチャートである。図５を参照すれば、本発明の一実施形態によるマルチ実行モード支援方法は、まず、設定された実行モードの種類を判断する（５１０）。
【００６７】
段階５１０の判断結果、設定された実行モードがＳＩＭＴモードである場合、プログラムカウンター情報に基づいて受信された複数の命令語のうち１つを選択し（５２２）、該選択された命令語に含まれたオペコードを各機能ユニットに伝達する（５３２）。すなわち、ＳＩＭＴモードでは、各機能ユニットに同じオペコードが伝達される。
【００６８】
段階５１０の判断結果、設定された実行モードがＶＬＩＷ／ＣＧＲＡモードである場合、受信された複数の命令語をいずれも選択し（５２４）、該選択された命令語に含まれたオペコードに基づいて、互いに異なるオペコードを各機能ユニットに伝達する（５３４）。
【００６９】
段階５１０の判断結果、設定された実行モードが統合モードである場合、受信された複数の命令語のうち、一部命令語を選択し（５２６）、該選択された一部命令語に含まれたオペコードに基づいて、一部機能ユニットには互いに異なるオペコードを伝達し、残りの機能ユニットには同じオペコードを伝達する（５３６）。この際、互いに異なるオペコードを伝達する機能ユニットの個数は、システムの性能または発明の目的によって多様に変更可能である。
【００７０】
次いで、段階５２２、段階５２４、または段階５２６から選択された命令語を実行できるように、選択された命令語に含まれたオペランドに基づいて、ルーティングのためのスイッチ構成情報を生成する（５４０）。
【００７１】
例えば、選択されたオペランドの論理アドレスを物理アドレスに変換し、これに基づいて、スイッチ構成情報（ＳＣ）を生成することができる。
【００７２】
ＳＩＭＴモードである場合、全ての機能ユニットが同じ命令語を使うために、各機能ユニットが受信したオペコードに対応するオペランドは、同じ論理アドレス空間を有する。しかし、レジスタファイルは、それぞれの機能ユニット（または、スレッド）別に分割して使うので、各機能ユニットが受信したオペコードに対応する各オペランドは、それぞれ異なる物理アドレス空間を有する。すなわち、論理アドレス空間と物理アドレス空間は、同一ではない。
【００７３】
一方、ＶＬＩＷ／ＣＧＲＡモードである場合、全ての機能ユニットが互いに異なる命令語を使うために、各機能ユニットが受信したオペコードに対応するオペランドは、互いに異なり、オペランドそれぞれの論理アドレス空間と物理アドレス空間とは同一である。
【００７４】
また、統合モードである場合、ＳＩＭＴモードに対応する一部オペランドの場合は、論理アドレス空間と物理アドレス空間とは同一ではないが、ＶＬＩＷ／ＣＧＲＡモードに対応する残りのオペランドの場合は、論理アドレス空間と物理アドレス空間とは同一になる。
【００７５】
したがって、ＳＩＭＴモード及び統合モードの場合は、論理アドレス空間を物理アドレス空間に変換させる必要がある。
【００７６】
次いで、生成されたスイッチ構成情報に基づいて、段階５２２、段階５２４、または段階５２６から選択された命令語を実行できるように、機能ユニットまたはレジスタファイルを機能ユニットまたはレジスタファイルとルーティングを行う（５５０）。
【００７７】
本発明の一実施形態は、コンピュータで読み取り可能な記録媒体にコンピュータで読み取り可能なコードとして具現しうる。前記のプログラムを具現するコード及びコードセグメントは、当該分野のコンピュータプログラマーによって容易に推論されうる。コンピュータで読み取り可能な記録媒体は、コンピュータシステムによって読み取れるデータが保存される全ての種類の記録装置を含む。コンピュータで読み取り可能な記録媒体の例としては、ＲＯＭ、ＲＡＭ、ＣＤ−ＲＯＭ、磁気テープ、フロッピー（登録商標）ディスク、光ディスクなどを含みうる。また、コンピュータで読み取り可能な記録媒体は、ネットワークで連結されたコンピュータシステムに分散されて、分散方式でコンピュータで読み取り可能なコードとして作成されて実行可能である。
【００７８】
以上、本発明について、その望ましい実施形態を中心に説明した。当業者ならば、本発明が、本発明の本質的な特性から外れない範囲内で変形された形態として具現可能であるということを理解できるであろう。したがって、本発明の範囲は、前述した実施形態に限定されず、特許請求の範囲に記載の内容と同等な範囲内にある多様な実施形態が含まれるように解析しなければならない。
【産業上の利用可能性】
【００７９】
本発明は、プロセッサのマルチ実行モード支援装置及び方法関連の技術分野に適用可能である。
【符号の説明】
【００８０】
１００  マルチ実行モード支援装置
１０２  レジスタファイル
１０４  機能ユニット（ＦＵ）
１０６  複数命令語
１０８  モード信号
１１０  命令語分配部
１２０  オペランドスイッチ制御部
１３０  オペランドスイッチ
【図５】
2014216020.tif 000003
【図１】
2014216020.tif 000004
【図２】
2014216020.tif 000005
【図３】
2014216020.tif 000006
【図４Ａ】
2014216020.tif 000007
【図４Ｂ】
2014216020.tif 000008