JP2014216020A - プロセッサのマルチ実行モード支援装置及び方法 - Google Patents
プロセッサのマルチ実行モード支援装置及び方法 Download PDFInfo
- Publication number
- JP2014216020A JP2014216020A JP2014088264A JP2014088264A JP2014216020A JP 2014216020 A JP2014216020 A JP 2014216020A JP 2014088264 A JP2014088264 A JP 2014088264A JP 2014088264 A JP2014088264 A JP 2014088264A JP 2014216020 A JP2014216020 A JP 2014216020A
- Authority
- JP
- Japan
- Prior art keywords
- operand
- mode
- functional units
- switch
- instruction word
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000010586 diagram Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3888—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple threads [SIMT] in parallel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
【課題】プロセッサのマルチ実行モード支援装置及び方法を提供する。
【解決手段】現在実行モードによって、オペランド及びオペコードをそれぞれ含む複数の受信された命令語のうち、少なくとも1つの命令語を選択し、該選択された少なくとも1つの命令語のそれぞれに含まれたオペコードを複数の機能ユニットに伝達する命令語分配部110と、選択された少なくとも1つの命令語を実行できるように、選択された少なくとも1つの命令語のそれぞれに含まれたオペランドに基づいて、ルーティングのためのスイッチ構成情報を生成するオペランドスイッチ制御部120と、スイッチ構成情報に基づいて、機能ユニットの出力またはレジスタファイルの出力から機能ユニットの入力またはレジスタファイルの入力にルーティングするオペランドスイッチ130と、を含む。
【選択図】図1
【解決手段】現在実行モードによって、オペランド及びオペコードをそれぞれ含む複数の受信された命令語のうち、少なくとも1つの命令語を選択し、該選択された少なくとも1つの命令語のそれぞれに含まれたオペコードを複数の機能ユニットに伝達する命令語分配部110と、選択された少なくとも1つの命令語を実行できるように、選択された少なくとも1つの命令語のそれぞれに含まれたオペランドに基づいて、ルーティングのためのスイッチ構成情報を生成するオペランドスイッチ制御部120と、スイッチ構成情報に基づいて、機能ユニットの出力またはレジスタファイルの出力から機能ユニットの入力またはレジスタファイルの入力にルーティングするオペランドスイッチ130と、を含む。
【選択図】図1
Description
本発明は、プロセッサのマルチ実行モード支援装置及び方法に関する。
VLIW(Very Long Instruction Word)プロセッサは、多数の機能ユニット(Function Unit、FU)を有し、多数の命令語が組合わせられた長い命令語を一回で処理する。CGRA(Coarse Grain Reconfigurable Array)は、多数の命令語が組合わせられた長い命令語を一回で処理するという点で、VLIWと同一であるが、普通VLIWよりもさらに多数の機能ユニットを配列(array)形態で有し、VLIWと異なって、機能ユニットどうしで直接的な連結があるハードウェアであって、速い速度の演算のために使われる。
このようなVLIWとCGRAは、データ間に依存性が存在しても、処理可能であり、一方、コンパイル時にデータ処理過程の全てのスケジュールが完了するために、コンパイル時間が長く、アプリケーションとコンパイラとによって機能ユニットの使用効率が落ちる。
SIMT(Single Instruction Multiple Thread)は、多数の機能ユニットを有している構造であるが、1つの命令語を多数の機能ユニットが使う構造であって、普通それぞれの機能ユニットが個別スレッドを実行する。すなわち、SIMTは、多数の機能ユニットが同じ命令語シーケンスで多数のデータ(または、スレッド)をそれぞれ個別的に処理する。
このようなSIMTは、同じ過程で多くのデータを処理しなければならない大量並列データ処理アプリケーションに有利であるが、データ間に依存性が存在する場合、データの処理が難しい。
本発明が解決しようとする課題は、プロセッサのマルチ実行モード支援装置及び方法を提供することである。
本発明の一態様によるレジスタファイル及び複数の機能ユニットを含むプロセッサのマルチ実行モード支援装置は、現在実行モードによって、オペランド及びオペコードをそれぞれ含む受信された複数の命令語のうち、少なくとも1つの命令語を選択し、該選択された少なくとも1つの命令語に含まれたオペコードを複数の機能ユニットに伝達する命令語分配部と、選択された少なくとも1つの命令語のそれぞれに含まれたオペランドに基づいて、選択された少なくとも1つの命令語を実行できるように、ルーティングのためのスイッチ構成情報を生成するオペランドスイッチ制御部と、スイッチ構成情報に基づいて、機能ユニットの出力またはレジスタファイルの出力から機能ユニットの入力またはレジスタファイルの入力にルーティングするオペランドスイッチと、を含みうる。
<発明の概要>
本発明の一態様によるレジスタファイル及び複数の機能ユニットを含むプロセッサのマルチ実行モード支援装置は、現在実行モードによって、オペランド及びオペコードをそれぞれ含む受信された複数の命令語のうち、少なくとも1つの命令語を選択し、該選択された少なくとも1つの命令語に含まれたオペコードを複数の機能ユニットに伝達する命令語分配部と、選択された少なくとも1つの命令語のそれぞれに含まれたオペランドに基づいて、選択された少なくとも1つの命令語を実行できるように、ルーティングのためのスイッチ構成情報を生成するオペランドスイッチ制御部と、スイッチ構成情報に基づいて、機能ユニットの出力またはレジスタファイルの出力から機能ユニットの入力またはレジスタファイルの入力にルーティングするオペランドスイッチと、を含みうる。
本発明の一態様によるレジスタファイル及び複数の機能ユニットを含むプロセッサのマルチ実行モード支援装置は、現在実行モードによって、オペランド及びオペコードをそれぞれ含む受信された複数の命令語のうち、少なくとも1つの命令語を選択し、該選択された少なくとも1つの命令語に含まれたオペコードを複数の機能ユニットに伝達する命令語分配部と、選択された少なくとも1つの命令語のそれぞれに含まれたオペランドに基づいて、選択された少なくとも1つの命令語を実行できるように、ルーティングのためのスイッチ構成情報を生成するオペランドスイッチ制御部と、スイッチ構成情報に基づいて、機能ユニットの出力またはレジスタファイルの出力から機能ユニットの入力またはレジスタファイルの入力にルーティングするオペランドスイッチと、を含みうる。
命令語分配部は、現在実行モードがSIMTモードである場合、プログラムカウンターの情報に基づいて、受信された複数の命令語のうち1つの命令語を選択し、オペランドスイッチ制御部の全ての入力ポートに選択された命令語に含まれたオペランドを伝達し、全ての機能ユニットに選択された命令語に含まれたオペコードを伝達することができる。
命令語分配部は、現在実行モードがVLIW/CGRAモードであり、少なくとも2つの命令語が選択された場合、選択された少なくとも2つの命令語に含まれたオペランド及びオペコードに基づいて、オペランドスイッチ制御部の全ての入力ポートに互いに異なるオペランドをそれぞれ伝達し、全ての機能ユニットに互いに異なるオペコードをそれぞれ伝達することができる。
命令語分配部は、現在実行モードが統合モードである場合、受信された複数の命令語のうち、一部命令語を選択し、該選択された一部命令語に含まれたオペランド及びオペコードに基づいて、オペランドスイッチ制御部の入力ポートのうち、第1グループ入力ポートには同じオペランドを、オペランドスイッチ制御部の入力ポートのうち、第2グループ入力ポートに互いに異なるオペランドをそれぞれ伝達し、複数の機能ユニットのうち、第1グループ機能ユニットには同じオペコードを、複数の機能ユニットのうち、第2グループ機能ユニットには互いに異なるオペコードをそれぞれ伝達することができる。
オペランドスイッチ制御部は、オペランドの論理アドレスを物理アドレスに変換することができる。オペランドスイッチは、レジスタファイル出力からレジスタファイル入力に、レジスタファイル出力から機能ユニット入力に、機能ユニット出力からレジスタファイル入力に、機能ユニット出力から機能ユニット入力にルーティングするように構成することができる。
オペランドスイッチは、少なくとも1つのスイッチステージで構成することができる。スイッチ構成情報は、少なくとも1つのスイッチステージに対応する少なくとも1つのスイッチステージ構成情報を含みうる。スイッチステージ構成情報のそれぞれは、当該スイッチステージにパイプラインに順次に入力されうる。
本発明の他の態様によるレジスタファイル及び複数の機能ユニットを含むプロセッサのマルチ実行モード支援方法は、現在実行モードによって、オペランド及びオペコードをそれぞれ含む受信された複数の命令語のうちの少なくとも1つの命令語を選択する段階と、選択された少なくとも1つの命令語のそれぞれに含まれたオペコードを複数の機能ユニットに伝達する段階と、選択された少なくとも1つの命令語のそれぞれに含まれたオペコードに基づいて、選択された少なくとも1つの命令語を実行できるように、ルーティングのためのスイッチ構成情報を生成する段階と、を含みうる。
前記マルチ実行モード支援方法は、前記スイッチ構成情報に基づいて、機能ユニットの出力またはレジスタファイルの出力から機能ユニットの入力またはレジスタファイルの入力にルーティングする段階をさらに含みうる。
現在実行モードがSIMTモードである場合、前記選択する段階は、プログラムカウンターの情報に基づいて、前記受信された複数の命令語のうち1つの命令語を選択し、前記伝達する段階は、前記選択された命令語に含まれたオペコードを全ての機能ユニットに伝達することができる。
現在実行モードがVLIW/CGRAモードである場合、前記選択する段階は、前記受信された複数の命令語をいずれも選択し、前記伝達する段階は、前記選択された複数の命令語に含まれた互いに異なるオペコードを各機能ユニットに伝達することができる。
現在実行モードが統合モードである場合、前記選択する段階は、前記受信された複数の命令語のうち、一部命令語を選択し、前記伝達する段階は、前記複数の機能ユニットのうち、第1グループ機能ユニットには互いに異なるオペコードを伝達し、前記複数の機能ユニットのうち、第2グループ機能ユニットには同じオペコードを伝達することができる。
前記生成する段階は、前記選択された少なくとも1つの命令語に含まれたオペランドの論理アドレスを物理アドレスに変換し、物理アドレスに基づいてスイッチ構成情報を生成することができる。
本発明のさらに他の態様によるレジスタファイル及び複数の機能ユニットを含むマルチモードプロセッサを支援する装置は、前記マルチモードプロセッサのモードを選択するためのモード選択信号を受信し、前記モード選択信号によって少なくとも1つの選択された命令語に対応する少なくとも1つのオペランドを受信して、該受信された少なくとも1つのオペランドに基づいて、前記レジスタファイル及び前記複数の機能ユニット間のルーティングのためのスイッチ構成情報を生成するオペランドスイッチ制御部と、前記スイッチ構成情報に基づいて、第1機能ユニットの出力またはレジスタファイルの出力から第2機能ユニットの入力またはレジスタファイルの入力にルーティングするオペランドスイッチと、を含みうる。
前記装置は、モード選択信号を受信し、モード選択信号によって、全ての機能ユニットに同じオペコードを出力するか、全ての機能ユニットに互いに異なるオペコードを出力するか、または前記複数の機能ユニットのうち、第1グループ機能ユニットには同じオペコードを出力し、前記複数の機能ユニットのうち、第2グループ機能ユニットには互いに異なるオペコードを出力する命令語分配部をさらに含みうる。
前記命令語分配部は、SIMTモードに対応するモード選択信号に応答して、全ての機能ユニットに同じオペコードを出力し、VLIW/CGRAモードに対応するモード選択信号に応答して、全ての機能ユニットに互いに異なるオペコードを出力し、統合モードに対応するモード選択信号に応答して、複数の機能ユニットのうち、第1グループ機能ユニットには同じオペコードを出力し、複数の機能ユニットのうち、第2グループ機能ユニットには互いに異なるオペコードを出力することができる。
本発明のさらに他の態様によるマルチモードプロセッサは、前記マルチモードプロセッサのモードを選択するためのモード選択信号を受信し、オペランド及びオペコードをそれぞれ含む複数の命令語を受信して、前記モード選択信号に基づいて少なくとも1つのオペコード及び少なくとも1つのオペランドを出力する命令語分配部と、前記マルチモードプロセッサのモードを選択するためのモード選択信号及び前記命令語分配部から出力された少なくとも1つのオペランドを受信するオペランドスイッチ制御部と、前記オペランドスイッチ制御部から受信されたスイッチ構成情報を用いて、前記命令語分配部から出力された少なくとも1つのオペコードを受信した複数の機能ユニットを制御するオペランドスイッチと、を含みうる。
前記オペランドスイッチは、前記モード選択信号に基づいて、前記複数の機能ユニットがいずれもSIMTプロセッサとして動作するか、前記複数の機能ユニットがいずれもVLIW/CGRAプロセッサとして動作するか、または前記複数の機能ユニットの一部は、SIMTプロセッサとして、前記複数の機能ユニットのうち残りは、VLIW/CGRAプロセッサとして動作するように、前記複数の機能ユニットを制御することができる。
<発明の詳細>
以下、添付図面を参照して、本発明の一実施形態を詳細に説明する。本発明を説明するに当って、関連した公知機能または構成についての具体的な説明が、本発明の要旨を不明にする恐れがあると判断される場合には、その詳細な説明を省略する。また、後述する用語は、本発明での機能を考慮して定義された用語であって、これは、ユーザ、運用者の意図または慣例などによって変わりうる。したがって、その定義は、本明細書の全般に亘った内容に基づいて下されなければならない。
以下、添付図面を参照して、本発明の一実施形態を詳細に説明する。本発明を説明するに当って、関連した公知機能または構成についての具体的な説明が、本発明の要旨を不明にする恐れがあると判断される場合には、その詳細な説明を省略する。また、後述する用語は、本発明での機能を考慮して定義された用語であって、これは、ユーザ、運用者の意図または慣例などによって変わりうる。したがって、その定義は、本明細書の全般に亘った内容に基づいて下されなければならない。
以下、プロセッサの処理及び性能要求に基づいて、互いに異なるモード間にスイッチング可能なプロセッサを説明する。より詳細には、プロセッサは、(i)大容量データ処理のためのSIMTモード、(ii)ソフトウェアパイプラインの活用で性能向上のためのVLIWモードまたはCGRAモード、及び(iii)SIMTモードで動作するプロセッサの一部は、SIMTモードで動作し、プロセッサの他の部分は、VLIW/CGRAモードで動作する統合モードを支援する。
本発明の一実施形態を説明するのに先立って、SIMTモード、VLIW/CGRAモード、及び統合モードを説明する。
[SIMTモード]
SIMTモードでは、システムの機能ユニットは、同じ命令語を使い、互いに異なる物理アドレス空間に対するアクセス権限を有し、同じオペコードを受信する。システムのオペランドスイッチ制御部に伝達されたオペランドは、同一なので、同じ論理アドレス空間を有する。しかし、このオペランドは、互いに異なる物理アドレス空間を有する。レジスタファイルは、動作中である機能ユニットの数と同数のセグメントに分割され、互いに異なるセグメントが動作中である機能ユニットのそれぞれに割り当てられて、機能ユニットのローカルレジスタとして使われる。各機能ユニットが、自身が受信したオペコードと関連したオペランドに対応する論理レジスタにアクセスできるように、オペランドスイッチ制御部は、受信されたオペランドの論理アドレスを物理アドレスに変換し、該変換されたアドレスに基づいてスイッチ構成情報を生成する。
SIMTモードでは、システムの機能ユニットは、同じ命令語を使い、互いに異なる物理アドレス空間に対するアクセス権限を有し、同じオペコードを受信する。システムのオペランドスイッチ制御部に伝達されたオペランドは、同一なので、同じ論理アドレス空間を有する。しかし、このオペランドは、互いに異なる物理アドレス空間を有する。レジスタファイルは、動作中である機能ユニットの数と同数のセグメントに分割され、互いに異なるセグメントが動作中である機能ユニットのそれぞれに割り当てられて、機能ユニットのローカルレジスタとして使われる。各機能ユニットが、自身が受信したオペコードと関連したオペランドに対応する論理レジスタにアクセスできるように、オペランドスイッチ制御部は、受信されたオペランドの論理アドレスを物理アドレスに変換し、該変換されたアドレスに基づいてスイッチ構成情報を生成する。
[VLIW/CGRAモード]
VLIW/CGRAモードでは、機能ユニットが互いに異なる命令語を使い、同じ物理アドレス空間に対するアクセス権限を有し、互いに異なるオペコードを受信する。オペランドスイッチ制御部に伝達されたオペランドは、互いに異なるが、機能ユニットが同じターゲットにアクセスするために、同じ物理アドレス空間を有する。機能ユニットが互いに異なる命令語を使うために、機能ユニットが受信したオペコードに対応するオペランドは、互いに異なり、各オペランドは、物理アドレス空間のように同じ論理アドレス空間を有する。
VLIW/CGRAモードでは、機能ユニットが互いに異なる命令語を使い、同じ物理アドレス空間に対するアクセス権限を有し、互いに異なるオペコードを受信する。オペランドスイッチ制御部に伝達されたオペランドは、互いに異なるが、機能ユニットが同じターゲットにアクセスするために、同じ物理アドレス空間を有する。機能ユニットが互いに異なる命令語を使うために、機能ユニットが受信したオペコードに対応するオペランドは、互いに異なり、各オペランドは、物理アドレス空間のように同じ論理アドレス空間を有する。
VLIWプロセッサとCGRAプロセッサとの差異点は、次の通りである。CGRAプロセッサは、VLIWプロセッサよりも多数の機能ユニットを含み、ローカルレジスタファイル、及び中央レジスタファイルを経ずに、機能ユニット間の直接データが伝達されるネットワークを有する。VLIWプロセッサは、全ての機能ユニットが中央レジスタファイルにアクセスしなければならないために、大きなレジスタファイル帯域幅を必要とする。もし、中央レジスタファイルアクセスに制約を置くならば(例えば、特定機能ユニットは、特定レジスタファイルサブセットにのみアクセス可能)、レジスタファイル間のデータ移動などに誘発される機能ユニットの使用効率減少で並列処理性能が減少してしまう。CGRAプロセッサ/モードは、機能ユニット間の連結及び機能ユニット間のローカルレジスタを用いて、この問題を解決することができる。すなわち、データが中央レジスタファイルを経ずに、機能ユニット間に伝達されるために、並列処理することができる命令語が多くなって、効率が増加する。
[統合モード]
統合モードは、SIMTモード及びVLIW/CGRAモードが結合されたモードである。統合モードでは、第1グループ機能ユニットは同じオペコードを受信し、第2グループ機能ユニットは互いに異なるオペコードを受信する。SIMTモードに対応するオペランドは、物理アドレス空間と他の論理アドレス空間とを有する一方、VLIW/CGRAモードに対応するオペランドは、物理アドレス空間と同じ論理アドレス空間とを有する。
統合モードは、SIMTモード及びVLIW/CGRAモードが結合されたモードである。統合モードでは、第1グループ機能ユニットは同じオペコードを受信し、第2グループ機能ユニットは互いに異なるオペコードを受信する。SIMTモードに対応するオペランドは、物理アドレス空間と他の論理アドレス空間とを有する一方、VLIW/CGRAモードに対応するオペランドは、物理アドレス空間と同じ論理アドレス空間とを有する。
図1は、本発明の一実施形態によるマルチ実行モード支援装置100の構成図である。図1に示された実施形態で、マルチ実行モード支援装置100は、レジスタファイル102及び8個の機能ユニット(FU)104を含むが、これに限定されるものではなく、システムの性能または発明の用途によって、機能ユニット104の個数は変更されうる。
図1を参照すれば、マルチ実行モード支援装置100は、命令語分配部110、オペランドスイッチ制御部120、及びオペランドスイッチ130を含みうる。
命令語分配部110は、複数の命令語106を受信することができる。命令語は、それぞれオペランド及びオペコードを含む機械命令語であり得る。オペランドは、処理しようとするデータを指定する選択されたコードの部分であって、オペコードは、行われるオペレーションを指定する選択された命令語の部分と見なされる。命令語分配部110は、実行モードによって受信された複数の命令語106のうち1つ以上の命令語を選択し、該選択された命令語に含まれたオペランドをオペランドスイッチ制御部120に伝達し、選択された命令語に含まれたオペコードを機能ユニット(FU)104に伝達することができる。
実行モードは、ハードウェアが動作する前に決定される。特に、SIMTモードで動作する時の命令語とVLIW/CGRAモードで動作する時の命令語は、互いに異なるために、実行モードは、コンパイラがマシンコードを作るときに決定される。実行モードは、プログラマーがモードを決定して、コンパイラに知らせる方法、またはコンパイラがプログラムを分析して、どのモードがさらに効率的であるか否かを決定し、該決定されたモードに基づいてコードをコンパイルする方法を用いて決定する。実行モードが決定され、コードがコンパイルされれば、コンパイラは、適切な処理モードで動作するようにプロセッサに指示する。一実施形態によれば、モードスイッチングする命令語を別途に置き、これをコンパイルされたコードに挿入することができる。プロセッサハードウェアは、挿入されたコードを読み出してモードを決定することができる。
SIMTモードである場合、命令語分配部110は、プログラムカウンター(PC)の情報に基づいて複数の命令語106のうち1つの命令語を選択し、該選択された命令語に含まれたオペランドをオペランドスイッチ制御部120の全ての入力ポートに伝達し、選択された命令語に含まれたオペコードを全ての機能ユニット104に伝達することができる。すなわち、SIMTモードで、命令語分配部110は、オペランドスイッチ制御部120の全ての入力ポートに同じオペランドを伝達し、全ての機能ユニットに同じオペコードを伝達することができる。
VLIW/CGRAモードである場合、命令語分配部110は、受信された複数命令語106のうち1つ以上の命令語を選択し、受信された命令語106に含まれたオペランド及びオペコードに基づいて、オペランドスイッチ制御部120の入力ポートのそれぞれに互いに異なるオペランドを伝達し、機能ユニット104のそれぞれに互いに異なるオペコードを伝達することができる。
統合モードは、SIMTモードとVLIW/CGRAモードとが統合されたモードであって、統合モードである場合、命令語分配部110は、受信された複数命令語106のうちの一部命令語を選択し、該選択された一部命令語のうち1つに含まれたオペランドをオペランドスイッチ制御部120の第1グループ入力ポートに分散して伝達し、選択された一部命令語に含まれたオペコードを当該第1グループ機能ユニットに分散して伝達することができる。命令語分配部110は、選択された一部命令語のうち残りの命令語に含まれたオペランドをオペランドスイッチ制御部120の第2グループ入力ポートに分散して伝達し、選択された一部命令語のうち残りの命令語に含まれたオペコードを当該第2グループ機能ユニットに分散して伝達することができる。すなわち、統合モードで、命令語分配部110は、選択された一部命令語に含まれたオペランド及びオペコードに基づいて、オペランドスイッチ制御部120の第1グループ入力ポートには同じオペランドを、残りの入力ポート(例えば、第2グループ入力ポート)のそれぞれには互いに異なるオペランドを伝達し、第1グループ機能ユニットには同じオペコードを、残りの機能ユニット(例えば、第2グループ入力ポートに対応する第2グループ機能ユニット)のそれぞれには互いに異なるオペコードを伝達することができる。この際、同じオペランド(または、同じオペコード)が伝達されるオペランドスイッチ制御部120の入力ポート(または、機能ユニット)の個数は、発明の目的及びシステムの性能によって多様に設定しうる。
統合モードで、SIMTモードの機能ユニット及びVLIW/CGRAモードの機能ユニットの利用率は、特定アプリケーションによって変更されうる。望ましくは、第1グループ機能ユニットは、互いに平行に地理的にグループ化され、第2グループ機能ユニットは、互いに平行に地理的にグループ化される。
オペランドスイッチ制御部120は、命令語分配部110からオペランドを受信し、該受信されたオペランドを用いてそれぞれの機能ユニットまたはレジスタがアクセスしようとする機能ユニットまたはレジスタにアクセスできるように、オペランドの論理アドレスを物理アドレスに変換し、オペランドスイッチ130のスイッチ構成情報(SC)を生成することができる。オペランドスイッチ制御部120は、SIMTモードであるか、VLIW/CGEAモードであるか、または統合モードであるか否かを区分するために、モード信号108を外部から受信することができる。
SIMTモードである場合、全ての機能ユニット104が同じ命令語を使うために、オペランドスイッチ制御部120の各入力ポートに伝達されるオペランドは、いずれも同じである。したがって、同じ論理アドレス空間を有する。しかし、レジスタファイルは、それぞれの機能ユニット(または、スレッド)別に分割して使うので、オペランドスイッチ制御部120の各入力ポートに伝達される各オペランドは、それぞれ異なる物理アドレス空間を有し、それぞれの機能ユニットは、互いに異なる物理アドレス空間のレジスタにアクセスさせうる。すなわち、全体レジスタファイル102を動作している機能ユニット104(または、スレッド)の個数に分割して、機能ユニット104(または、スレッド)ごとに互いに異なるレジスタが割り当てられ、それぞれの機能ユニット(または、スレッド)は、自身が割り当てられたレジスタを、自身のローカルレジスタとして使う。この際、オペランドスイッチ制御部120は、1つのオペランドを受信して、それぞれの機能ユニット104が自身が受信したオペコードと関連したオペランドに該当するローカルレジスタにアクセスできるように、各機能ユニットに対応した各オペランドの論理アドレスを物理アドレスに変換し、これに基づいて、スイッチ構成情報(SC)を生成する。
一方、VLIW/CGRAモードである場合、全ての機能ユニット104が互いに異なる命令語を使うために、オペランドスイッチ制御部120の各入力ポートに伝達されるオペランドは、互いに異なり、オペランドそれぞれの論理アドレス空間と物理アドレス空間は、同一である。したがって、それぞれの機能ユニット104は、自在にオペランドを有し、オペランドスイッチ制御部120は、個別オペランドを受信して、各機能ユニット104が該当するターゲットにアクセスできるように、スイッチ構成情報(SC)を生成する。この場合、同じアドレス空間を使うために、オペランドが同じであれば、同じターゲットにアクセスする。
また、統合モードである場合、SIMTモードに対応するオペランドは、論理アドレス空間と物理アドレス空間とは同一ではないが、VLIW/CGRAモードに対応するオペランドは、論理アドレス空間と物理アドレス空間とは同一である。したがって、オペランドスイッチ制御部120は、SIMTモード及びVLIW/CGRAモードを結合して、それによる機能を行う。
すなわち、オペランドスイッチ制御部120は、オペランドの論理アドレスを物理アドレスに変換し、これに基づいて、スイッチ構成情報(SC)を生成することによって、SIMTモードの場合は、全ての機能ユニット104が同じ論理アドレス空間にターゲットをアクセスさせ(論理アドレス空間は同じであるが、物理アドレス空間は互いに異なる)、VLIW/CGRAモードの場合は、全ての機能ユニット104がそれぞれ個別論理アドレス空間にターゲットをアクセスさせ、統合モードの場合は、多数の機能ユニットが少数の論理アドレス空間にターゲットをアクセスさせうる。
オペランドスイッチ130は、オペランドスイッチ制御部120から生成されたスイッチ構成情報(SC)に基づいて、命令語分配部110から選択された命令語を行うように、機能ユニットまたはレジスタを機能ユニットまたはレジスタとルーティングすることができる。例えば、オペランドスイッチ130は、スイッチ構成情報(SC)に基づいて、レジスタファイルの出力を機能ユニットの入力にルーティングし、機能ユニットの出力をレジスタファイルの入力にルーティングし、機能ユニットの出力を他の機能ユニットの入力にルーティングし、レジスタファイルの出力を他のレジスタファイルの入力にルーティングすることもできる。
本発明の一実施形態によれば、オペランドスイッチ130は、多数のスイッチステージで構成され、それぞれのスイッチステージは、フリップフロップなどの保存装置を含みうる。これに関する詳しい説明は、図3を参照して後述する。
図2は、図1の命令語分配部110の詳細構成図である。図2の例で、オペランドスイッチ制御部120の入力ポートと演算を行う機能ユニットが、それぞれ8個であると仮定し、1つの命令語には、1つのオペランド及び1つのオペコードがそれぞれ含まれると仮定する。
図2を参照すれば、命令語分配部110は、16個の2*1マルチプレクサ251〜258、261〜268及び2個の8*1マルチプレクサ230、240を含みうる。命令語分配部110は、8個の命令語を受信して、該受信された8個の命令語をオペランドセット210及びオペコードセット220に分ける。オペランドセット210の8個のオペランド211〜218のそれぞれは、オペランドスイッチ制御部120の入力ポートと連結される8個の2*1マルチプレクサ251〜258の入力にそれぞれ伝達される一方、8*1マルチプレクサ230の入力にも伝達される。8*1マルチプレクサ230は、8個のオペランド211〜218を入力されてプログラムカウンター(PC)の情報に基づいて、特定命令語に対するオペランドを選択して、8個の2*1マルチプレクサ251〜258の入力に伝達する。8個の2*1マルチプレクサ251〜258のそれぞれは、設定された実行モード108によって出力を決定し、各出力をオペランドスイッチ制御部120の入力ポートに伝達する。
また、オペコードセット220の8個のオペコード221〜228のそれぞれは、8個の機能ユニット104とそれぞれ連結される8個の2*1マルチプレクサ261〜268の入力にそれぞれ伝達される一方、8*1マルチプレクサ240の入力にも伝達される。8*1マルチプレクサ240は、8個のオペコード221〜228を入力されてプログラムカウンターの情報に基づいて、特定オペコードを8個の2*1マルチプレクサ261〜268の入力に伝達する。8個の2*1マルチプレクサ261〜268のそれぞれは、設定された実行モード108によって出力を決定し、各出力を各機能ユニット104に伝達する。
SIMTモードである場合、2*1マルチプレクサ251〜258のそれぞれは、8*1マルチプレクサ230から入力されたオペランドを出力として決定し、各出力をオペランドスイッチ制御部120の8個の入力ポートに伝達する。また、2*1マルチプレクサ261〜268のそれぞれは、8*1マルチプレクサ240から入力されたオペコードを出力として決定し、各出力を各機能ユニット104に伝達する。すなわち、オペランドスイッチ制御部120の8個の入力ポートには、同じオペランドが伝達され、各機能ユニット104には、同じオペコードが伝達される。
VLIW/CGRAモードである場合、2*1マルチプレクサ251〜258のそれぞれは、オペランドセット210から直接入力されたオペランドを出力として決定し、各出力をオペランドスイッチ制御部120の8個の入力ポートに伝達する。また、2*1マルチプレクサ261〜268のそれぞれは、オペコードセット220から直接入力されたオペコードを出力として決定し、各出力を各機能ユニット104に伝達する。すなわち、オペランドスイッチ制御部120の8個の入力ポートのそれぞれには、互いに異なるオペランドが伝達され、各機能ユニット104には、互いに異なるオペコードが伝達される。
統合モードである場合、2*1マルチプレクサ251〜258の一部は、オペランドセット210から直接入力されたオペランドを出力として決定し、残りは、8*1マルチプレクサ230から入力されたオペランドを出力として決定する。該決定された各出力は、オペランドスイッチ制御部120の8個の入力ポートに伝達される。また、2*1マルチプレクサ261〜268の一部は、オペコードセット220から直接入力されたオペコードを出力として決定し、残りは、8*1マルチプレクサ240から入力されたオペコードを出力として決定する。該決定された各出力は、各機能ユニットに伝達される。すなわち、オペランドスイッチ制御部120の8個の入力ポートの一部には、互いに異なるオペランドが伝達され、残りには、同じオペランドが伝達される。これと同様に、8個の機能ユニットの一部には、互いに異なるオペコードが伝達され、残りには、同じオペコードが伝達される。
一方、オペランドセット210から直接入力されたオペランドを出力として決定する2*1マルチプレクサの個数及びオペコードセット220から直接入力されたオペコードを出力として決定する2*1マルチプレクサの個数は、システムの性能または発明の目的によって多様に設定しうる。
図3は、図1のオペランドスイッチ130の例を示す図面である。図3は、オペランドスイッチ130が3個のスイッチステージで構成される例を図示するが、これに限定されるものではなく、システムの性能または発明の目的によって多様な個数のスイッチステージで構成されても良い。
図3を参照すれば、オペランドスイッチ130は、スイッチステージ1、スイッチステージ2、及びスイッチステージ3を含みうる。それぞれのスイッチステージは、フリップフロップなどの保存装置を含みうる。
オペランドスイッチ130は、スイッチ構成情報(SC)に基づいて、レジスタファイルの出力をレジスタファイルの入力にルーティングするか、レジスタファイルの出力を機能ユニットの入力にルーティングするか、機能ユニットの出力をレジスタファイルの入力にルーティングするか、あるいは機能ユニットの出力を機能ユニットの入力にルーティングすることが可能である。
機能ユニットの出力を機能ユニットの入力にルーティングする場合、レジスタファイルを経ずに、機能ユニット間の連結を構成することができるために、VLIW/CGRAモードでオペレーション間のデータ伝達オーバーヘッドを減らすのに活用されうる。また、レジスタファイルの出力をレジスタファイルの入力にルーティングする場合、機能ユニット104を経ずに、“move”オペレーションを行うことができるので、VLIW/CGRA性能向上に活用することができる。
図4Aは、本発明の一実施形態によるスイッチ構成情報(SC)の例を示す図面であり、図4Bは、スイッチステージ構成情報(SC)がスイッチステージに入力される順序を説明する図面である。この際、図4A及び図4Bを説明するに当って、図3の例のように、オペランドスイッチ130が、3個のスイッチステージで構成されると仮定する。
図4Aを参照すれば、オペランドスイッチ130が、3個のスイッチステージで構成されている場合、各スイッチステージの構成情報(SC)は、別個に構成され、この場合、スイッチ構成情報(SC)は、スイッチステージ1の構成情報(SSC1)、スイッチステージ2の構成情報(SSC2)、及びスイッチステージ3の構成情報(SSC3)を含みうる。
以下、図3、図4A及び図4Bを参照して、各スイッチステージの構成情報が入力される方法を説明する。
図4Bを参照すれば、時間がt1である時、オペランドスイッチ制御部120から最初生成されたスイッチ構成情報(SC1)に含まれたスイッチステージ1の構成情報(SC1−SSC1)は、スイッチステージ1に入力される。
次いで、時間がt2である時、オペランドスイッチ制御部120から二番目に生成されたスイッチ構成情報(SC2)に含まれたスイッチステージ1の構成情報(SC2−SSC1)は、スイッチステージ1に入力され、それと同時に、最初生成されたスイッチ構成情報(SC1)に含まれたスイッチステージ2の構成情報(SC1−SSC2)は、スイッチステージ2に入力される。
次いで、時間がt3である時、オペランドスイッチ制御部120から三番目に生成されたスイッチ構成情報(SC3)に含まれたスイッチステージ1の構成情報(SC3−SSC1)は、スイッチステージ1に入力される。それと同時に、二番目に生成されたスイッチ構成情報(SC2)に含まれたスイッチステージ2の構成情報(SC2−SSC2)は、スイッチステージ2に入力され、最初生成されたスイッチ構成情報(SC1)に含まれたスイッチステージ3の構成情報(SC1−SSC3)は、スイッチステージ3に入力される。
このような方法で、各スイッチステージの構成情報(SSC)は、各スイッチステージにパイプラインに順次に入力されうる。
図5は、本発明の一実施形態によるマルチ実行モード支援方法を示すフローチャートである。図5を参照すれば、本発明の一実施形態によるマルチ実行モード支援方法は、まず、設定された実行モードの種類を判断する(510)。
段階510の判断結果、設定された実行モードがSIMTモードである場合、プログラムカウンター情報に基づいて受信された複数の命令語のうち1つを選択し(522)、該選択された命令語に含まれたオペコードを各機能ユニットに伝達する(532)。すなわち、SIMTモードでは、各機能ユニットに同じオペコードが伝達される。
段階510の判断結果、設定された実行モードがVLIW/CGRAモードである場合、受信された複数の命令語をいずれも選択し(524)、該選択された命令語に含まれたオペコードに基づいて、互いに異なるオペコードを各機能ユニットに伝達する(534)。
段階510の判断結果、設定された実行モードが統合モードである場合、受信された複数の命令語のうち、一部命令語を選択し(526)、該選択された一部命令語に含まれたオペコードに基づいて、一部機能ユニットには互いに異なるオペコードを伝達し、残りの機能ユニットには同じオペコードを伝達する(536)。この際、互いに異なるオペコードを伝達する機能ユニットの個数は、システムの性能または発明の目的によって多様に変更可能である。
次いで、段階522、段階524、または段階526から選択された命令語を実行できるように、選択された命令語に含まれたオペランドに基づいて、ルーティングのためのスイッチ構成情報を生成する(540)。
例えば、選択されたオペランドの論理アドレスを物理アドレスに変換し、これに基づいて、スイッチ構成情報(SC)を生成することができる。
SIMTモードである場合、全ての機能ユニットが同じ命令語を使うために、各機能ユニットが受信したオペコードに対応するオペランドは、同じ論理アドレス空間を有する。しかし、レジスタファイルは、それぞれの機能ユニット(または、スレッド)別に分割して使うので、各機能ユニットが受信したオペコードに対応する各オペランドは、それぞれ異なる物理アドレス空間を有する。すなわち、論理アドレス空間と物理アドレス空間は、同一ではない。
一方、VLIW/CGRAモードである場合、全ての機能ユニットが互いに異なる命令語を使うために、各機能ユニットが受信したオペコードに対応するオペランドは、互いに異なり、オペランドそれぞれの論理アドレス空間と物理アドレス空間とは同一である。
また、統合モードである場合、SIMTモードに対応する一部オペランドの場合は、論理アドレス空間と物理アドレス空間とは同一ではないが、VLIW/CGRAモードに対応する残りのオペランドの場合は、論理アドレス空間と物理アドレス空間とは同一になる。
したがって、SIMTモード及び統合モードの場合は、論理アドレス空間を物理アドレス空間に変換させる必要がある。
次いで、生成されたスイッチ構成情報に基づいて、段階522、段階524、または段階526から選択された命令語を実行できるように、機能ユニットまたはレジスタファイルを機能ユニットまたはレジスタファイルとルーティングを行う(550)。
本発明の一実施形態は、コンピュータで読み取り可能な記録媒体にコンピュータで読み取り可能なコードとして具現しうる。前記のプログラムを具現するコード及びコードセグメントは、当該分野のコンピュータプログラマーによって容易に推論されうる。コンピュータで読み取り可能な記録媒体は、コンピュータシステムによって読み取れるデータが保存される全ての種類の記録装置を含む。コンピュータで読み取り可能な記録媒体の例としては、ROM、RAM、CD−ROM、磁気テープ、フロッピー(登録商標)ディスク、光ディスクなどを含みうる。また、コンピュータで読み取り可能な記録媒体は、ネットワークで連結されたコンピュータシステムに分散されて、分散方式でコンピュータで読み取り可能なコードとして作成されて実行可能である。
以上、本発明について、その望ましい実施形態を中心に説明した。当業者ならば、本発明が、本発明の本質的な特性から外れない範囲内で変形された形態として具現可能であるということを理解できるであろう。したがって、本発明の範囲は、前述した実施形態に限定されず、特許請求の範囲に記載の内容と同等な範囲内にある多様な実施形態が含まれるように解析しなければならない。
本発明は、プロセッサのマルチ実行モード支援装置及び方法関連の技術分野に適用可能である。
100 マルチ実行モード支援装置
102 レジスタファイル
104 機能ユニット(FU)
106 複数命令語
108 モード信号
110 命令語分配部
120 オペランドスイッチ制御部
130 オペランドスイッチ
102 レジスタファイル
104 機能ユニット(FU)
106 複数命令語
108 モード信号
110 命令語分配部
120 オペランドスイッチ制御部
130 オペランドスイッチ
Claims (19)
- レジスタファイル及び複数の機能ユニットを含むプロセッサのマルチ実行モード支援装置において、
現在実行モードによって、オペランド及びオペコードをそれぞれ含む受信された複数の命令語のうち、少なくとも1つの命令語を選択し、該選択された少なくとも1つの命令語に含まれたオペコードを前記複数の機能ユニットに伝達する命令語分配部と、
前記選択された少なくとも1つの命令語のそれぞれに含まれたオペランドに基づいて、前記選択された少なくとも1つの命令語を実行できるように、ルーティングのためのスイッチ構成情報を生成するオペランドスイッチ制御部と、
前記スイッチ構成情報に基づいて、機能ユニットの出力またはレジスタファイルの出力から機能ユニットの入力またはレジスタファイルの入力にルーティングするオペランドスイッチと、
を含むマルチ実行モード支援装置。 - 前記命令語分配部は、現在実行モードがSIMTモードである場合、プログラムカウンターの情報に基づいて、前記受信された複数の命令語のうち1つの命令語を選択し、前記オペランドスイッチ制御部の全ての入力ポートに前記選択された命令語に含まれたオペランドを伝達し、全ての機能ユニットに前記選択された命令語に含まれたオペコードを伝達する請求項1に記載のマルチ実行モード支援装置。
- 前記命令語分配部は、現在実行モードがVLIW/CGRAモードであり、少なくとも2つの命令語が選択された場合、前記選択された少なくとも2つの命令語に含まれたオペランド及びオペコードに基づいて、前記オペランドスイッチ制御部の全ての入力ポートに互いに異なるオペランドをそれぞれ伝達し、全ての機能ユニットに互いに異なるオペコードをそれぞれ伝達する請求項1又は2に記載のマルチ実行モード支援装置。
- 前記命令語分配部は、現在実行モードが統合モードである場合、受信された複数の命令語のうち、一部命令語を選択し、該選択された一部命令語に含まれたオペランド及びオペコードに基づいて、オペランドスイッチ制御部の入力ポートのうち、第1グループ入力ポートには同じオペランドを、オペランドスイッチ制御部の入力ポートのうち、第2グループ入力ポートに互いに異なるオペランドをそれぞれ伝達し、前記複数の機能ユニットのうち、第1グループ機能ユニットには同じオペコードを、前記複数の機能ユニットのうち、第2グループ機能ユニットには互いに異なるオペコードをそれぞれ伝達する請求項1乃至3のいずれか一項に記載のマルチ実行モード支援装置。
- 前記オペランドスイッチ制御部は、オペランドの論理アドレスを物理アドレスに変換する請求項1乃至4のいずれか一項に記載のマルチ実行モード支援装置。
- 前記オペランドスイッチは、レジスタファイル出力からレジスタファイル入力に、レジスタファイル出力から機能ユニット入力に、機能ユニット出力からレジスタファイル入力に、機能ユニット出力から機能ユニット入力にルーティングするように構成された請求項1乃至5のいずれか一項に記載のマルチ実行モード支援装置。
- 前記オペランドスイッチは、少なくとも1つのスイッチステージで構成される請求項1乃至6のいずれか一項に記載のマルチ実行モード支援装置。
- 前記スイッチ構成情報は、前記少なくとも1つのスイッチステージに対応する少なくとも1つのスイッチステージ構成情報を含む請求項7に記載のマルチ実行モード支援装置。
- スイッチステージ構成情報のそれぞれは、当該スイッチステージにパイプラインに順次に入力される請求項8に記載のマルチ実行モード支援装置。
- レジスタファイル及び複数の機能ユニットを含むプロセッサのマルチ実行モード支援方法において、
現在実行モードによって、オペランド及びオペコードをそれぞれ含む受信された複数の命令語のうちの少なくとも1つの命令語を選択する段階と、
前記選択された少なくとも1つの命令語のそれぞれに含まれたオペコードを前記複数の機能ユニットに伝達する段階と、
前記選択された少なくとも1つの命令語のそれぞれに含まれたオペコードに基づいて、前記選択された少なくとも1つの命令語を実行できるように、ルーティングのためのスイッチ構成情報を生成する段階と、
前記スイッチ構成情報に基づいて、機能ユニットの出力またはレジスタファイルの出力から機能ユニットの入力またはレジスタファイルの入力にルーティングする段階と、
を含むマルチ実行モード支援方法。 - 現在実行モードがSIMTモードである場合、
前記選択する段階は、プログラムカウンターの情報に基づいて、前記受信された複数の命令語のうち1つの命令語を選択し、
前記伝達する段階は、前記選択された命令語に含まれたオペコードを全ての機能ユニットに伝達する請求項10に記載のマルチ実行モード支援方法。 - 現在実行モードがVLIW/CGRAモードである場合、
前記選択する段階は、前記受信された複数の命令語をいずれも選択し、
前記伝達する段階は、前記選択された複数の命令語に含まれた互いに異なるオペコードを各機能ユニットに伝達する請求項10又は11に記載のマルチ実行モード支援方法。 - 現在実行モードが統合モードである場合、
前記選択する段階は、前記受信された複数の命令語のうち、一部命令語を選択し、
前記伝達する段階は、前記複数の機能ユニットのうち、第1グループ機能ユニットには互いに異なるオペコードを伝達し、前記複数の機能ユニットのうち、第2グループ機能ユニットには同じオペコードを伝達する請求項10乃至12のいずれか一項に記載のマルチ実行モード支援方法。 - 前記生成する段階は、前記選択された少なくとも1つの命令語に含まれたオペランドの論理アドレスを物理アドレスに変換し、物理アドレスに基づいてスイッチ構成情報を生成する請求項10乃至13のいずれか一項に記載のマルチ実行モード支援方法。
- レジスタファイル及び複数の機能ユニットを含むマルチモードプロセッサを支援する装置において、
前記マルチモードプロセッサのモードを選択するためのモード選択信号を受信し、前記モード選択信号によって少なくとも1つの選択された命令語に対応する少なくとも1つのオペランドを受信して、該受信された少なくとも1つのオペランドに基づいて、前記レジスタファイル及び前記複数の機能ユニット間のルーティングのためのスイッチ構成情報を生成するオペランドスイッチ制御部と、
前記スイッチ構成情報に基づいて、第1機能ユニットの出力またはレジスタファイルの出力から第2機能ユニットの入力またはレジスタファイルの入力にルーティングするオペランドスイッチと、
を含む装置。 - モード選択信号を受信し、モード選択信号によって、全ての機能ユニットに同じオペコードを出力するか、全ての機能ユニットに互いに異なるオペコードを出力するか、または前記複数の機能ユニットのうち、第1グループ機能ユニットには同じオペコードを出力し、前記複数の機能ユニットのうち、第2グループ機能ユニットには互いに異なるオペコードを出力する命令語分配部をさらに含む請求項15に記載の装置。
- 前記命令語分配部は、
SIMTモードに対応するモード選択信号に応答して、全ての機能ユニットに同じオペコードを出力し、
VLIW/CGRAモードに対応するモード選択信号に応答して、全ての機能ユニットに互いに異なるオペコードを出力し、
統合モードに対応するモード選択信号に応答して、複数の機能ユニットのうち、第1グループ機能ユニットには同じオペコードを出力し、複数の機能ユニットのうち、第2グループ機能ユニットには互いに異なるオペコードを出力する請求項16に記載の装置。 - マルチモードプロセッサにおいて、
前記マルチモードプロセッサのモードを選択するためのモード選択信号を受信し、オペランド及びオペコードをそれぞれ含む複数の命令語を受信して、前記モード選択信号に基づいて少なくとも1つのオペコード及び少なくとも1つのオペランドを出力する命令語分配部と、
前記マルチモードプロセッサのモードを選択するためのモード選択信号及び前記命令語分配部から出力された少なくとも1つのオペランドを受信するオペランドスイッチ制御部と、
前記オペランドスイッチ制御部から受信されたスイッチ構成情報を用いて、前記命令語分配部から出力された少なくとも1つのオペコードを受信した複数の機能ユニットを制御するオペランドスイッチと、
を含むプロセッサ。 - 前記オペランドスイッチは、前記モード選択信号に基づいて、前記複数の機能ユニットがいずれもSIMTプロセッサとして動作するか、前記複数の機能ユニットがいずれもVLIW/CGRAプロセッサとして動作するか、または前記複数の機能ユニットの一部は、SIMTプロセッサとして、前記複数の機能ユニットのうち残りは、VLIW/CGRAプロセッサとして動作するように、前記複数の機能ユニットを制御する請求項18に記載のプロセッサ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2013-0044429 | 2013-04-22 | ||
KR1020130044429A KR20140126189A (ko) | 2013-04-22 | 2013-04-22 | 프로세서의 멀티 실행 모드 지원 장치 및 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014216020A true JP2014216020A (ja) | 2014-11-17 |
Family
ID=50513771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014088264A Pending JP2014216020A (ja) | 2013-04-22 | 2014-04-22 | プロセッサのマルチ実行モード支援装置及び方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20140317388A1 (ja) |
EP (1) | EP2796990A3 (ja) |
JP (1) | JP2014216020A (ja) |
KR (1) | KR20140126189A (ja) |
CN (1) | CN104111912A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018514306A (ja) * | 2015-04-28 | 2018-06-07 | 青▲島▼海▲尓▼洗衣机有限公司 | 洗濯機の故障検出及び処理方法 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2524126B (en) * | 2014-08-28 | 2016-07-27 | Imagination Tech Ltd | Combining paths |
US20170177542A1 (en) * | 2015-12-16 | 2017-06-22 | Cognitive Systems Corp. | Operating a VLIW Processor in a Wireless Sensor Device |
US9977677B2 (en) | 2016-04-07 | 2018-05-22 | International Business Machines Corporation | Execution slice with supplemental instruction port for an instruction using a source operand from another instruction port |
GB2553010B (en) * | 2017-01-16 | 2019-03-06 | Imagination Tech Ltd | Efficient data selection for a processor |
CN111527485B (zh) * | 2017-11-03 | 2023-09-12 | 相干逻辑公司 | 存储器网络处理器 |
US10831488B1 (en) * | 2018-08-20 | 2020-11-10 | Apple Inc. | Computation engine with extract instructions to minimize memory access |
US11500825B2 (en) * | 2018-08-20 | 2022-11-15 | Intel Corporation | Techniques for dynamic database access modes |
DE112020000850T5 (de) | 2019-03-15 | 2022-01-20 | Intel Corporation | Cache-Struktur und -Nutzung |
EP4130988A1 (en) | 2019-03-15 | 2023-02-08 | INTEL Corporation | Systems and methods for cache optimization |
CN113126974B (zh) * | 2021-06-17 | 2021-09-28 | 北京壁仞科技开发有限公司 | 代码生成/执行方法、装置、设备、存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH103389A (ja) * | 1996-06-14 | 1998-01-06 | Oki Electric Ind Co Ltd | 並列計算機 |
US6272616B1 (en) * | 1998-06-17 | 2001-08-07 | Agere Systems Guardian Corp. | Method and apparatus for executing multiple instruction streams in a digital processor with multiple data paths |
US20020191599A1 (en) * | 2001-03-30 | 2002-12-19 | Balaji Parthasarathy | Host- fabrec adapter having an efficient multi-tasking pipelined instruction execution micro-controller subsystem for NGIO/infinibandTM applications |
EP2290526A1 (en) * | 2004-03-31 | 2011-03-02 | Icera Inc. | Apparatus and method for control processing in dual path processor |
US20110072242A1 (en) * | 2009-09-24 | 2011-03-24 | Industrial Technology Research Institute | Configurable processing apparatus and system thereof |
US20120278591A1 (en) * | 2011-04-27 | 2012-11-01 | Advanced Micro Devices, Inc. | Crossbar switch module having data movement instruction processor module and methods for implementing the same |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1732457A (zh) * | 2002-12-30 | 2006-02-08 | 皇家飞利浦电子股份有限公司 | 处理*** |
US7793074B1 (en) * | 2006-04-14 | 2010-09-07 | Tilera Corporation | Directing data in a parallel processing environment |
US7730280B2 (en) * | 2006-06-15 | 2010-06-01 | Vicore Technologies, Inc. | Methods and apparatus for independent processor node operations in a SIMD array processor |
EP2257874A4 (en) * | 2008-03-27 | 2013-07-17 | Rocketick Technologies Ltd | DESIGN SIMULATION ON THE BASIS OF PARALLEL PROCESSORS |
-
2013
- 2013-04-22 KR KR1020130044429A patent/KR20140126189A/ko not_active Application Discontinuation
-
2014
- 2014-04-22 EP EP14165438.4A patent/EP2796990A3/en not_active Withdrawn
- 2014-04-22 CN CN201410163684.7A patent/CN104111912A/zh active Pending
- 2014-04-22 JP JP2014088264A patent/JP2014216020A/ja active Pending
- 2014-04-22 US US14/258,622 patent/US20140317388A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH103389A (ja) * | 1996-06-14 | 1998-01-06 | Oki Electric Ind Co Ltd | 並列計算機 |
US6272616B1 (en) * | 1998-06-17 | 2001-08-07 | Agere Systems Guardian Corp. | Method and apparatus for executing multiple instruction streams in a digital processor with multiple data paths |
US20020191599A1 (en) * | 2001-03-30 | 2002-12-19 | Balaji Parthasarathy | Host- fabrec adapter having an efficient multi-tasking pipelined instruction execution micro-controller subsystem for NGIO/infinibandTM applications |
EP2290526A1 (en) * | 2004-03-31 | 2011-03-02 | Icera Inc. | Apparatus and method for control processing in dual path processor |
US20110072242A1 (en) * | 2009-09-24 | 2011-03-24 | Industrial Technology Research Institute | Configurable processing apparatus and system thereof |
US20120278591A1 (en) * | 2011-04-27 | 2012-11-01 | Advanced Micro Devices, Inc. | Crossbar switch module having data movement instruction processor module and methods for implementing the same |
Non-Patent Citations (1)
Title |
---|
上野伸也、他3名: "「画像認識向け3次元積層アクセラレータ・アーキテクチャの検討」", 情報処理学会研究報告 2011(平成23)年度▲4▼ [CD−ROM], vol. No.152, JPN6018025572, 15 December 2011 (2011-12-15) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018514306A (ja) * | 2015-04-28 | 2018-06-07 | 青▲島▼海▲尓▼洗衣机有限公司 | 洗濯機の故障検出及び処理方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2796990A2 (en) | 2014-10-29 |
EP2796990A3 (en) | 2015-01-07 |
CN104111912A (zh) | 2014-10-22 |
US20140317388A1 (en) | 2014-10-23 |
KR20140126189A (ko) | 2014-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2014216020A (ja) | プロセッサのマルチ実行モード支援装置及び方法 | |
JP4979875B2 (ja) | リターゲッタブルコンパイルシステム及び方法 | |
US8069337B2 (en) | Methods and apparatus for dynamic instruction controlled reconfigurable register file | |
CN105389158B (zh) | 数据处理***、编译器、处理器的方法和机器可读介质 | |
JP4156794B2 (ja) | iVLIWのPE間通信を用いた効率的な同期MIMD動作のための方法および装置 | |
KR100731371B1 (ko) | 구성가능 기능 유닛을 포함하는 프로세서를 사용해서 컴퓨터 프로그램을 실행하는 방법, 프로세서 및 컴퓨터 판독가능 기록 매체 | |
US20060259744A1 (en) | Method for information processing | |
US9727460B2 (en) | Selecting a memory mapping scheme by determining a number of functional units activated in each cycle of a loop based on analyzing parallelism of a loop | |
KR20030007434A (ko) | 구성가능한 기능 유닛을 구비한 데이터 프로세싱 디바이스 | |
KR20130098773A (ko) | 재구성가능 프로세서, 이를 위한 코드 변환 장치 및 방법 | |
KR20140131472A (ko) | 상수 저장 레지스터를 구비하는 재구성 가능 프로세서 | |
US6675289B1 (en) | System and method for executing hybridized code on a dynamically configurable hardware environment | |
KR20160046623A (ko) | 재구성 가능 프로세서 및 그 동작 방법 | |
US9710241B2 (en) | Apparatus and method for providing instruction for heterogeneous processor | |
KR101311187B1 (ko) | 기능 유닛이 판독 포트를 공유하는 데이터 처리 회로 | |
JP2014146335A (ja) | マルチモード支援プロセッサ及びマルチモードを支援する処理方法 | |
US5890009A (en) | VLIW architecture and method for expanding a parcel | |
KR20130066400A (ko) | 재구성가능 프로세서 및 재구성가능 프로세서의 미니 코어 | |
WO2014202825A1 (en) | Microprocessor apparatus | |
KR100722770B1 (ko) | 조건실행을 지원하는 재구성 가능한 프로세싱 요소의배열구조 | |
CN112379928B (zh) | 指令调度方法以及包括指令调度单元的处理器 | |
KR20130131789A (ko) | 미니코어 기반의 재구성 가능 프로세서 및 그 재구성 가능 프로세서를 이용한 유연한 다중 데이터 처리 방법 | |
JP3985829B2 (ja) | プロセッサ | |
US8677099B2 (en) | Reconfigurable processor with predicate signal activated operation configuration memory and separate routing configuration memory | |
KR20150051114A (ko) | 재구성 가능 프로세서, 재구성 가능 프로세서의 구성 메모리의 사용을 최적화하는 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170413 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180529 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20190219 |