JP5699554B2 - ベクトル処理回路、命令発行制御方法、及びプロセッサシステム - Google Patents
ベクトル処理回路、命令発行制御方法、及びプロセッサシステム Download PDFInfo
- Publication number
- JP5699554B2 JP5699554B2 JP2010252839A JP2010252839A JP5699554B2 JP 5699554 B2 JP5699554 B2 JP 5699554B2 JP 2010252839 A JP2010252839 A JP 2010252839A JP 2010252839 A JP2010252839 A JP 2010252839A JP 5699554 B2 JP5699554 B2 JP 5699554B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- register
- array
- data
- vector
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30109—Register structure having multiple operands in a single register
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
Description
図2は、本発明の第1実施例に係るベクトル処理回路の構成例を示す図である。図2に示したように、ベクトル処理回路200はベクトルレジスタファイル201、命令発行制御回路202、4つのパイプライン演算器203〜206及び命令バッファ207を含み、後述する複数のパイプラインステージに従ってパイプライン処理を実行する。
まず、ベクトル処理回路200の構成例について、図2を用いて説明する。
次に、ベクトルレジスタファイル201の詳細について説明する。
まず、ハーフワード命令時の論理番号及び物理番号の割り当ての一例を、図3を用いて説明する。これらの論理番号及び物理番号の割り当ては命令発行制御回路202によって管理される。
次に、ワード命令時の論理番号及び物理番号の割り当ての一例を、図3を用いて説明する。これらの論理番号及び物理番号の割り当ては命令発行制御回路202によって管理される。
図4は、ベクトル処理回路200のパイプライン処理を説明するための図である。図4において、IFは命令フェッチ(Instruction Fetch)を、IDは命令デコード(Instruction Decode)を、RRはレジスタリード(Register Read)を、EXは命令実行(Execution)を、WBは書き戻し(Write Back)を表す。すなわち、ベクトル処理回路200のパイプライン処理はIF、ID、RR、EX及びWBからなる5段のパイプラインステージを有する。5段のパイプラインステージは連続する5つのサイクルにおいて順番に実行される。
ここで、まず、先行命令のデータ語長と後続命令のデータ語長が同一の場合の、レジスタ干渉の判定処理と命令発行タイミングの調整処理について説明する。ここでは、図3に示したベクトルレジスタファイル201が用いられる。
以下、先行命令のデータ語長と後続命令のデータ語長が同一の場合のレジスタ干渉の判定処理の一例を説明する。
図6は、先行命令のデータ語長と後続命令のデータ語長が同一の場合の、命令発行タイミングの調整処理の一例を示す図である。図6に示した例では、命令はすべてハーフワード命令である。命令INST1とINST2は、命令発行制御回路202の制御の下、図2のパイプライン演算器203〜206のうちの2つにおいて実行される。命令INST3とINST4も同様である。
次に、先行命令のデータ語長が後続命令のデータ語長より長い場合の、レジスタ干渉の判定処理及び命令発行タイミングの調整処理について説明する。ここでは、図3に示したベクトルレジスタファイル201が用いられる。
以下、先行命令のデータ語長が後続命令のデータ語長より長い場合のレジスタ干渉の判定処理の一例を説明する。
図8と図9は、先行命令のデータ語長が後続命令のデータ語長より長い場合の、命令発行タイミングの調整処理の一例を示す図である。
上述したレジスタ干渉の判定処理及び後続命令の発行タイミング調整処理は命令発行制御回路202によって実行される。命令発行制御回路202は命令バッファ207から後続命令を受けとった後、その後続命令に関し、各パイプライン演算器203〜206において実行中の全ての先行命令に対して、レジスタ干渉の判定を行う。命令発行制御回路202は、その判定結果に基づいて後続命令の発行タイミングを調整する。
図12は、本発明の第2実施例に係るベクトル処理回路の構成例を示す図である。図12に示した第2実施例のベクトル処理回路1200は、図2に示した第1実施例のベクトル処理回路200と、スカラレジスタファイル1201とデータメモリ1202を有する点で異なるが、その他の部分については同様である。図2に示したベクトル処理回路200と同一又は対応する部分には同一の符号が付されている。
図17は、本発明の第3実施例に係るベクトル処理回路の構成例を示す図である。図17に示した第3実施例のベクトル処理回路1700は、図2に示した第1実施例のベクトル処理回路200と、フォワーディング回路1701と選択回路1702を有する点で異なるが、その他の部分については同様である。図2に示したベクトル処理回路200と同一又は対応する部分には同一の符号が付されている。
図18は、本発明の第4実施例に係るプロセッサシステムの一例を示す図である。図18に示したプロセッサシステム1800は、ベクトル処理回路1801、スカラ処理回路1802、命令メモリ1803、データメモリ1804、及びバスインターフェース1805を含む。
(付記1)
複数の配列要素を含むベクトルレジスタファイルと、
各々が前記配列要素に格納されたデータに対して演算処理を行う複数のパイプライン演算器と、
命令を発行し、前記命令に基づいて前記ベクトルレジスタファイル及び前記パイプライン演算器の動作を制御することにより、パイプライン処理を制御する命令発行制御回路と
を有するベクトル処理回路であって、
前記パイプライン演算器の各々は、前記命令発行制御回路によって発行された1つの前記命令に対して、ソースとして指定された複数の前記配列要素に格納されたデータを複数のサイクルに分けて演算し、前記演算結果をディスティネーションとして指定された複数の前記配列要素に複数のサイクルに分けて格納し、
前記命令発行制御回路は、前記命令のデータ語長に応じて前記配列要素のデータサイズを変化させ、前記命令として先行命令と前記先行命令の後に続く後続命令を発行し、前記先行命令のデータ語長が前記後続命令のデータ語長より長いとき、前記先行命令の非先頭のサイクルで処理される少なくとも1つの前記配列要素と、前記後続命令の先頭サイクルで処理される前記配列要素との間で、レジスタ干渉の有無を判定し、前記レジスタ干渉の判定結果に基づいて前記後続命令の発行タイミングを調整する
ことを特徴とするベクトル処理回路。
(付記2)
前記複数の配列レジスタ要素の各々には物理番号が割り当てられ、
前記レジスタ干渉の判定は、前記先行命令の非先頭サイクルで処理される前記少なくとも1つの配列要素の物理番号と、前記後続命令の先頭サイクルで処理される前記配列要素の物理番号が一致する否かを判定することにより行われることを特徴とする付記1記載のベクトル処理回路。
(付記3)
前記命令発行制御回路は、前記レジスタ干渉の判定によりレジスタ干渉が有ると判定した場合に、前記先行命令の種別に応じて設定される第1ペナルティサイクルと、前記先行命令の先頭サイクルから前記非先頭サイクルまでのサイクル数に応じて設定される第2ペナルティサイクルを挿入することにより、前記後続する命令の発行タイミングを遅延させることを特徴とする付記1又は2記載のベクトル処理回路。
(付記4)
前記命令発行制御回路は、前記先行命令のデータ語長が前記後続命令のデータ語長より長いとき、前記先行命令の先頭のサイクルで処理される前記配列要素と、前記後続命令の先頭サイクルで処理される前記配列要素との間で、さらにレジスタ干渉の有無を判定することを特徴とする付記1ないし3のいずれか一つに記載のベクトル処理回路。
(付記5)
前記先行命令のデータ語長は、前記後続命令のデータ語長の2倍の長さであり、
前記命令発行制御回路は、前記先行命令の後半サイクルで処理される前記配列要素と、前記後続命令の先頭サイクルで処理される前記配列要素との間で、レジスタ干渉の有無を判定することを特徴とする付記1ないし4のいずれか一つに記載のベクトル処理回路。
(付記6)
前記ベクトルレジスタファイルは、前記配列要素がベクトル長に応じてグループ化されて構成された複数の配列レジスタを含み、
前記パイプライン演算器の各々は、前記命令発行制御回路によって発行された1つの前記命令に対して、ソースとして指定された前記配列レジスタに格納されたデータを複数のサイクルに分けて演算し、前記演算結果をディスティネーションとして指定された前記配列レジスタに複数のサイクルに分けて格納し、
前記命令発行制御回路は、前記先行命令のデータ語長に応じて前記配列レジスタのデータサイズを変化させ、前記先行命令のデータ語長が前記後続命令のデータ語長より長いとき、前記先行命令の非先頭サイクルで処理される前記配列レジスタと、前記後続命令の先頭サイクルで処理される前記配列レジスタとの間で、レジスタ干渉の有無を判定する
ことを特徴とする付記1ないし5のいずれか一つに記載のベクトル処理回路。
(付記7)
前記複数の配列要素の各々には物理番号が割り当てられ、
前記複数の配列レジスタの各々には論理番号が割り当てられ、
前記レジスタ干渉の有無の判定は、前記先行命令で指定された論理番号を有する前記配列レジスタの中で、前記先行命令の非先頭サイクルで処理される前記配列要素の物理番号と、前記後続命令で指定された論理番号を有する前記配列レジスタの中で、前記後続命令の先頭サイクルで処理される前記配列レジスタ要素の物理番号が一致する否かを判定することにより行われる
ことを特徴とする付記6記載のベクトル処理回路。
(付記8)
前記命令は、命令コード、前記命令コードのソースとなる前記配列レジスタを示すソース情報、及び前記命令コードのディスティネーションとなる前記配列レジスタを示すディスティネーション情報を含み、
前記命令発行制御回路は、前記先行命令及び前記後続命令の少なくとも一方のディスティネーション情報によって示される前記配列レジスタと、他方のソース情報又はディスティネーション情報によって示される前記配列レジスタとの間で、レジスタ干渉の有無を判定することを特徴とする付記6又は7記載のベクトル処理回路。
(付記9)
前記先行命令はワード命令であり、
前記後続命令はハーフワード命令であり、
前記命令発行制御回路は、前記ワード命令時に、前記ハーフワード命令に対して割り当てられた前記物理番号が連続する2つの配列要素を1つの配列要素として扱い、前記ハーフワード命令に対して割り当てられた前記論理番号が連続する2つの配列レジスタを1つの配列レジスタとして扱い、
前記レジスタ干渉の判定は、前記ワード命令で指定された論理番号を有する前記配列レジスタの中で、前記ワード命令の後半サイクルで最初に処理される前記配列要素の物理番号と、前記ハーフワード命令で指定された論理番号を有する前記配列レジスタの中で、前記ハーフワード命令の先頭サイクルで処理される前記配列レジスタ要素の物理番号とが一致する否かを判定することにより、行われる
ことを特徴とする付記7又は8記載のベクトル処理回路。
(付記10)
前記先行命令はダブルワード命令であり、
前記後続命令はハーフワード命令であり、
前記命令発行制御回路は、前記ダブルワード命令時に、前記ハーフワード命令に対して割り当てられた前記物理番号が連続する4つの配列要素を1つの配列要素として扱い、前記ハーフワード命令に対して割り当てられた前記論理番号が連続する4つの配列レジスタを1つの配列レジスタとして扱い、
前記レジスタ干渉の判定は、前記ダブルワード命令で指定された論理番号を有する前記配列レジスタの中で、前記ダブルワード命令の2番目ないし4番目の四半サイクルでそれぞれ最初に処理される前記配列要素の物理番号と、前記ハーフワード命令で指定された論理番号を有する前記配列レジスタの中で、前記ハーフワード命令の先頭サイクルで処理される前記配列レジスタ要素の物理番号とが一致する否かを判定することにより、行われる
ことを特徴とする付記7又は8記載のベクトル処理回路。
(付記11)
前記パイプライン処理は少なくとも、前記配列要素に格納されたデータを演算する演算ステージと、前記演算結果のデータを前記ベクトルレジスタに格納する書き戻しステージを有し、
前記命令発行制御回路は、前記レジスタ干渉の判定によりレジスタ干渉が有ると判定したとき、少なくとも、レジスタ干渉が有ると判定された前記配列要素に対する前記先行命令の前記演算ステージの結果が、前記書き戻しステージで前記ベクトルレジスタファイルに格納されるまで、前記後続命令を発行しないように、前記後続命令の発行タイミングを調整することを特徴とする付記1乃至10のいずれか一つに記載のベクトル処理回路。
(付記12)
複数のスカラレジスタを含むスカラレジスタファイルと、
データを格納するデータメモリと
をさらに有し、
前記スカラレジスタによって指定された、前記データメモリ内のデータが前記ベクトルレジスタファイルに供給されることを特徴とする付記1乃至11のいずれか一つに記載のベクトル処理回路。
(付記13)
前記パイプライン演算器の演算処理結果のデータを、前記ベクトルレジスタファイルを経由することなく受けとるフォワーディング回路をさらに有し、
前記フォワーディング回路は受けとったデータを、前記パイプライン演算器に、前記ベクトルレジスタファイルを経由することなく供給することを特徴とする付記1乃至12のいずれか一つに記載のベクトル処理回路。
(付記14)
複数の配列要素を含むベクトルレジスタファイルと、
各々が前記配列要素に格納されたデータに対して演算処理を行う複数のパイプライン演算器と、
命令を発行し、前記命令に基づいて前記ベクトルレジスタファイル及び前記パイプライン演算器の動作を制御することにより、パイプライン処理を制御する命令発行制御回路と
を有するベクトル処理回路であって、
前記パイプライン演算器の各々は、前記命令発行制御回路によって発行された1つの前記命令に対して、ソースとして指定された複数の前記配列要素に格納されたデータを複数のサイクルに分けて演算し、前記演算結果をディスティネーションとして指定された複数の前記配列要素に複数のサイクルに分けて格納し、
前記命令発行制御回路は、前記命令のデータ語長に応じて前記配列要素のデータサイズを変化させ、前記命令として先行命令と前記先行命令の後に続く後続命令を発行し、前記先行命令のデータ語長が前記後続命令のデータ語長より長いとき、前記後続命令のX番目(Xは1以上の整数)のサイクルで処理される前記配列要素と、前記先行命令のY番目(YはXより大きな整数)のサイクルで処理される少なくとも1つの前記配列要素との間で、レジスタ干渉の有無を判定し、前記レジスタ干渉の判定結果に基づいて前記後続命令の発行タイミングを調整する
ことを特徴とするベクトル処理回路。
(付記15)
前記整数Yは、前記後続命令で指定された複数の前記配列要素の演算処理を実行するのに必要なサイクル数Z(Zは1以上の整数)よりも大きいことを特徴とする付記14記載のベクトル処理回路。
(付記16)
前記整数Yは、nを1以上の整数としたとき、前記整数X及びZに対して、Y=X+n×Zの関係を満たすことを特徴とする付記15記載のベクトル処理回路。
(付記17)
複数の配列要素を含むベクトルレジスタファイルと、
各々が前記配列要素に格納されたデータに対して演算処理を行う複数のパイプライン演算器と、
を有するベクトル処理回路において、命令を発行し、前記命令に基づいて前記ベクトルレジスタファイル及び前記パイプライン演算器の動作を制御することにより、パイプライン処理を制御する命令発行制御方法であって、
前記パイプライン演算器の各々によって、発行された1つの前記命令に対して、ソースとして指定された複数の前記配列要素に格納されたデータを複数のサイクルに分けて演算し、前記演算結果をディスティネーションとして指定された複数の前記配列要素に複数のサイクルに分けて格納し、
前記命令のデータ語長に応じて前記配列要素のデータサイズを変化させ、
前記命令として前記先行命令と前記先行命令の後に続く後続命令を発行し、
前記先行命令のデータ語長が前記後続命令のデータ語長より長いとき、制御回路によって、前記先行命令の非先頭のサイクルで処理される少なくとも1つの前記配列要素と、前記後続命令の先頭サイクルで処理される前記配列要素との間で、レジスタ干渉の有無を判定し、
前記レジスタ干渉の判定によりレジスタ干渉が有ると判定された場合に、前記制御回路によって、前記後続命令の発行タイミングを調整する
ことを特徴とする命令発行制御方法。
(付記18)
前記レジスタ干渉の判定において、前記制御回路によって、前記先行命令に対して、前記先行命令の種別と、前記先行命令の先頭サイクルから前記非先頭サイクルまでのサイクル数と、前記先行命令の先頭サイクルと現在のサイクルとの間の差分に基づいて発行判定値を設定し、
前記発行判定値に基づいて前記後続命令の発行タイミングを決定することを特徴とする付記17記載の命令発行制御方法。
(付記19)
バスと、
バスインターフェースと、
前記バスに前記バスインターフェースを介して接続され、命令を格納する命令メモリと、
前記命令メモリに接続され、前記命令メモリに格納された命令を受けてデータの処理を実行するスカラ処理回路と、
前記スカラ処理回路に接続され、前記スカラ処理回路からの命令を受けてデータの処理を実行するベクトル処理回路と、
前記バスに前記バスインターフェースを介して接続され、前記スカラ処理回路及び前記ベクトル処理回路に対して、前記データの送受信を行うデータメモリを有するプロセッサシステムであって、前記ベクトル処理回路は、
複数の配列要素を含むベクトルレジスタファイルと、
各々が前記配列要素に格納されたデータに対して演算処理を行う複数のパイプライン演算器と、
命令を発行し、前記命令に基づいて前記ベクトルレジスタファイル及び前記パイプライン演算器の動作を制御することにより、パイプライン処理を制御する命令発行制御回路と
を有するベクトル処理回路であって、
前記パイプライン演算器の各々は、前記命令発行制御回路によって発行された1つの前記命令に対して、ソースとして指定された複数の前記配列要素に格納されたデータを複数のサイクルに分けて演算し、前記演算結果をディスティネーションとして指定された複数の前記配列要素に複数のサイクルに分けて格納し、
前記命令発行制御回路は、前記命令のデータ語長に応じて前記配列要素のデータサイズを変化させ、前記命令として先行命令と前記先行命令の後に続く後続命令を発行し、前記先行命令のデータ語長が前記後続命令のデータ語長より長いとき、前記先行命令の非先頭のサイクルで処理される少なくとも1つの前記配列要素と、前記後続命令の先頭サイクルで処理される前記配列要素との間で、レジスタ干渉の有無を判定し、前記レジスタ干渉の判定結果に基づいて前記後続命令の発行タイミングを調整する
ことを特徴とするプロセッサシステム。
201 ベクトルレジスタファイル
202 命令発行制御回路
203〜206 パイプライン演算器
207 命令バッファ
208、209 パイプラインレジスタ
210 VLレジスタ
211 ALU
302、305 配列要素
303、306 配列レジスタ
304、307 配列データ
1200 ベクトル処理回路
1201 スカラレジスタファイル
1202 データメモリ
1203 レジスタファイル群
1302 スカラレジスタ
1700 ベクトル処理回路
1701 フォワーディング回路
1702 選択回路
1800 プロセッサシステム
1801 ベクトル処理回路
1802 スカラ処理回路
1803 命令メモリ
1804 データメモリ
1805 バスインターフェース
Claims (9)
- 複数の配列レジスタ要素を含み、各配列レジスタ要素の各々には物理番号が割り当てられているベクトルレジスタファイルと、
各々が前記配列レジスタ要素に格納されたデータに対して演算処理を行う複数のパイプライン演算器と、
命令を発行し、前記命令に基づいて前記ベクトルレジスタファイル及び前記パイプライ
ン演算器の動作を制御することにより、パイプライン処理を制御する命令発行制御回路と
を有するベクトル処理回路であって、
前記パイプライン演算器の各々は、前記命令発行制御回路によって発行された1つの前記命令に対して、ソースとして指定された複数の前記配列レジスタ要素に格納されたデータを複数のサイクルに分けて演算し、前記演算結果をディスティネーションとして指定された複数の前記配列レジスタ要素に複数のサイクルに分けて格納し、
前記命令発行制御回路は、前記命令のデータ語長に応じて前記配列レジスタ要素のデータサイズを変化させ、前記命令として先行命令と前記先行命令の後に続く後続命令を発行し、前記先行命令のデータ語長が前記後続命令のデータ語長より長いとき、前記先行命令の非先頭サイクルで処理される少なくとも1つの前記配列レジスタ要素の物理番号と、前記後続命令の先頭サイクルで処理される前記配列レジスタ要素の物理番号とが一致するか否かを判定することによりレジスタ干渉の有無を判定し、前記レジスタ干渉の判定結果に基づいて前記後続命令の発行タイミングを調整することを特徴とするベクトル処理回路。 - 前記命令発行制御回路は、前記レジスタ干渉の判定によりレジスタ干渉が有ると判定した場合に、前記先行命令の種別に応じて設定される第1ペナルティサイクルと、
前記先行命令の先頭サイクルから前記非先頭サイクルまでのサイクル数に応じて設定される第2ペナルティサイクルを挿入することにより、前記後続命令の発行タイミングを遅延させることを特徴とする請求項1に記載のベクトル処理回路。 - 前記ベクトルレジスタファイルは、前記配列レジスタ要素がベクトル長に応じてグループ化されて構成された複数の配列レジスタを含み、
前記パイプライン演算器の各々は、
前記命令発行制御回路によって発行された1つの前記命令に対して、ソースとして指定された前記配列レジスタに格納されたデータを複数のサイクルに分けて演算し、
前記演算結果をディスティネーションとして指定された前記配列レジスタに複数のサイクルに分けて格納し、
前記命令発行制御回路は、前記先行命令のデータ語長に応じて前記配列レジスタのデータサイズを変化させ、
前記先行命令のデータ語長が前記後続命令のデータ語長より長いとき、前記先行命令の非先頭サイクルで処理される前記配列レジスタと、前記後続命令の先頭サイクルで処理される前記配列レジスタとの間で、レジスタ干渉の有無を判定する
ことを特徴とする請求項1又は2に記載のベクトル処理回路。 - 前記複数の配列レジスタの各々には論理番号が割り当てられ、
前記レジスタ干渉の有無の判定は、
前記先行命令で指定された論理番号を有する前記配列レジスタの中で、
前記先行命令の非先頭サイクルで処理される前記配列レジスタ要素の物理番号と、
前記後続命令で指定された論理番号を有する前記配列レジスタの中で、前記後続命令の先頭サイクルで処理される前記配列レジスタ要素の物理番号が一致する否かを判定することにより行われることを特徴とする請求項3に記載のベクトル処理回路。 - 前記命令は、命令コード、前記命令コードのソースとなる前記配列レジスタを示すソース情報、及び前記命令コードのディスティネーションとなる前記配列レジスタを示すディスティネーション情報を含み、
前記命令発行制御回路は、前記先行命令及び前記後続命令の少なくとも一方のディスティネーション情報によって示される前記配列レジスタと、他方のソース情報又はディスティネーション情報によって示される前記配列レジスタとの間で、レジスタ干渉の有無を判定することを特徴とする請求項3又は4に記載のベクトル処理回路。 - 前記パイプライン処理は少なくとも、前記配列レジスタ要素に格納されたデータを演算する演算ステージと、前記演算結果のデータを前記ベクトルレジスタに格納する書き戻しステージを有し、
前記命令発行制御回路は、前記レジスタ干渉の判定によりレジスタ干渉が有ると判定したとき、少なくとも、レジスタ干渉が有ると判定された前記配列レジスタ要素に対する前記先行命令の前記演算ステージの結果が、前記書き戻しステージで前記ベクトルレジスタファイルに格納されるまで、前記後続命令を発行しないように、前記後続命令の発行タイミングを調整することを特徴とする請求項1乃至5のいずれかに記載のベクトル処理回路。 - 前記パイプライン演算器の演算処理結果のデータを、前記ベクトルレジスタファイルを経由することなく受けとるフォワーディング回路をさらに有し、
前記フォワーディング回路は受けとったデータを、
前記パイプライン演算器に、
前記ベクトルレジスタファイルを経由することなく供給することを特徴とする請求項1乃至6のいずれかに記載のベクトル処理回路。 - 複数の配列レジスタ要素を含み、各配列レジスタ要素の各々には物理番号が割り当てられているベクトルレジスタファイルと、
各々が前記配列レジスタ要素に格納されたデータに対して演算処理を行う複数のパイプライン演算器と、
を有するベクトル処理回路において、
命令を発行し、前記命令に基づいて前記ベクトルレジスタファイル及び前記パイプライン演算器の動作を制御することにより、パイプライン処理を制御する命令発行制御方法であって、
前記パイプライン演算器の各々によって、発行された1つの前記命令に対して、ソースとして指定された複数の前記配列レジスタ要素に格納されたデータを複数のサイクルに分けて演算し、前記演算結果をディスティネーションとして指定された複数の前記配列レジスタ要素に複数のサイクルに分けて格納し、
前記命令のデータ語長に応じて前記配列レジスタ要素のデータサイズを変化させ、
前記命令として先行命令と前記先行命令の後に続く後続命令を発行し、
前記先行命令のデータ語長が前記後続命令のデータ語長より長いとき、制御回路によって、前記先行命令の非先頭サイクルで処理される少なくとも1つの前記配列レジスタ要素の物理番号と、前記後続命令の先頭サイクルで処理される前記配列レジスタ要素の物理番号とが一致するか否かを判定することによりレジスタ干渉の有無を判定し、
前記レジスタ干渉の判定によりレジスタ干渉が有ると判定された場合に、前記制御回路によって、前記後続命令の発行タイミングを調整することを特徴とする命令発行制御方法。 - バスと、
バスインターフェースと、
前記バスに前記バスインターフェースを介して接続され、命令を格納する命令メモリと、
前記命令メモリに接続され、前記命令メモリに格納された命令を受けてデータの処理を実行するスカラ処理回路と、
前記スカラ処理回路に接続され、前記スカラ処理回路からの命令を受けてデータの処理を実行するベクトル処理回路と、
前記バスに前記バスインターフェースを介して接続され、前記スカラ処理回路及び前記ベクトル処理回路に対して、前記データの送受信を行うデータメモリを有するプロセッサシステムであって、前記ベクトル処理回路は、
複数の配列レジスタ要素を含み、各配列レジスタ要素の各々には物理番号が割り当てられているベクトルレジスタファイルと、
各々が前記配列レジスタ要素に格納されたデータに対して演算処理を行う複数のパイプライン演算器と、
命令を発行し、前記命令に基づいて前記ベクトルレジスタファイル及び前記パイプライン演算器の動作を制御することにより、パイプライン処理を制御する命令発行制御回路と
を有するベクトル処理回路であって、
前記パイプライン演算器の各々は、前記命令発行制御回路によって発行された1つの前記命令に対して、ソースとして指定された複数の前記配列レジスタ要素に格納されたデータを複数のサイクルに分けて演算し、前記演算結果をディスティネーションとして指定された複数の前記配列レジスタ要素に複数のサイクルに分けて格納し、
前記命令発行制御回路は、前記命令のデータ語長に応じて前記配列レジスタ要素のデータサイズを変化させ、前記命令として先行命令と前記先行命令の後に続く後続命令を発行し、前記先行命令のデータ語長が前記後続命令のデータ語長より長いとき、前記先行命令の非先頭サイクルで処理される少なくとも1つの前記配列レジスタ要素の物理番号と、前記後続命令の先頭サイクルで処理される前記配列レジスタ要素の物理番号とが一致するか否かを判定することによりレジスタ干渉の有無を判定し、前記レジスタ干渉の判定結果に基づいて前記後続命令の発行タイミングを調整することを特徴とするプロセッサシステム。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2010252839A JP5699554B2 (ja) | 2010-11-11 | 2010-11-11 | ベクトル処理回路、命令発行制御方法、及びプロセッサシステム |
| US13/279,482 US8874879B2 (en) | 2010-11-11 | 2011-10-24 | Vector processing circuit, command issuance control method, and processor system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2010252839A JP5699554B2 (ja) | 2010-11-11 | 2010-11-11 | ベクトル処理回路、命令発行制御方法、及びプロセッサシステム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2012103959A JP2012103959A (ja) | 2012-05-31 |
| JP5699554B2 true JP5699554B2 (ja) | 2015-04-15 |
Family
ID=46048881
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2010252839A Expired - Fee Related JP5699554B2 (ja) | 2010-11-11 | 2010-11-11 | ベクトル処理回路、命令発行制御方法、及びプロセッサシステム |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US8874879B2 (ja) |
| JP (1) | JP5699554B2 (ja) |
Families Citing this family (23)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP5786719B2 (ja) * | 2012-01-04 | 2015-09-30 | 富士通株式会社 | ベクトルプロセッサ |
| JP5751181B2 (ja) * | 2012-01-24 | 2015-07-22 | 富士通セミコンダクター株式会社 | 命令制御回路、プロセッサ、及び命令制御方法 |
| US9098265B2 (en) * | 2012-07-11 | 2015-08-04 | Arm Limited | Controlling an order for processing data elements during vector processing |
| JP2018518502A (ja) | 2015-06-22 | 2018-07-12 | コリウム インターナショナル, インコーポレイテッド | 難溶性治療剤を含む経皮接着性組成物 |
| US9965275B2 (en) * | 2015-07-31 | 2018-05-08 | Arm Limited | Element size increasing instruction |
| EP3125109B1 (en) * | 2015-07-31 | 2019-02-20 | ARM Limited | Vector length querying instruction |
| GB2540943B (en) * | 2015-07-31 | 2018-04-11 | Advanced Risc Mach Ltd | Vector arithmetic instruction |
| IL260290B2 (en) | 2015-12-30 | 2023-11-01 | Corium Inc | Systems and methods for long-term percutaneous administration |
| US11541018B2 (en) | 2016-06-23 | 2023-01-03 | Corium, Llc | Adhesive matrix with hydrophilic and hydrophobic domains and a therapeutic agent |
| CN109789134A (zh) | 2016-07-27 | 2019-05-21 | 考里安国际公司 | 与口服递送药代动力学生物等效的透皮递送系统 |
| MX2019001104A (es) | 2016-07-27 | 2019-10-02 | Corium Int Inc | Sistemas de suministro transdermico de memantina. |
| JP7153010B2 (ja) | 2016-07-27 | 2022-10-13 | コリウム, インコーポレイテッド | 塩薬物のin situでの塩から中性の薬物変換による、低溶解度または不安定非イオン化中性薬物の経皮配合物および送達方法 |
| GB2563878B (en) * | 2017-06-28 | 2019-11-20 | Advanced Risc Mach Ltd | Register-based matrix multiplication |
| KR102904873B1 (ko) | 2017-07-26 | 2025-12-29 | 코리움, 엘엘씨 | 용매가 채워진 공극을 가진 미세다공성 막을 구비한 경피 전달 시스템 |
| JP2021506783A (ja) | 2017-12-13 | 2021-02-22 | コリウム, インコーポレイテッド | 経皮薬物送達の間にデポを作成するための方法 |
| CA3086163A1 (en) | 2017-12-20 | 2019-06-27 | Corium, Inc. | Transdermal adhesive composition comprising a volatile liquid therapeutic agent having low melting point |
| JP6604393B2 (ja) | 2018-03-08 | 2019-11-13 | 日本電気株式会社 | ベクトルプロセッサ、演算実行方法、プログラム |
| CN108563510B (zh) * | 2018-05-04 | 2021-07-13 | 湖南大学 | 面向e级计算的体系结构感知优化方法 |
| US10963256B2 (en) * | 2018-09-28 | 2021-03-30 | Intel Corporation | Systems and methods for performing instructions to transform matrices into row-interleaved format |
| AU2022305336A1 (en) | 2021-06-28 | 2024-01-18 | Corium, Llc | Combination therapy treatment using transdermal delivery system |
| WO2023278978A2 (en) | 2021-06-28 | 2023-01-05 | Corium, Llc | Corona discharge treated transdermal delivery system |
| WO2024145323A1 (en) | 2022-12-28 | 2024-07-04 | Corium, Llc | Pre-mixing method of preparing transdermal delivery system |
| JP2025542470A (ja) | 2022-12-28 | 2025-12-25 | コリウム, エルエルシー | 経皮送達システムを調製する方法 |
Family Cites Families (31)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4541046A (en) * | 1981-03-25 | 1985-09-10 | Hitachi, Ltd. | Data processing system including scalar data processor and vector data processor |
| JPS59111569A (ja) * | 1982-12-17 | 1984-06-27 | Hitachi Ltd | ベクトル処理装置 |
| JPS60178580A (ja) * | 1984-02-24 | 1985-09-12 | Fujitsu Ltd | 命令制御方式 |
| US4771380A (en) * | 1984-06-22 | 1988-09-13 | International Business Machines Corp. | Virtual vector registers for vector processing system |
| JPH0622035B2 (ja) * | 1985-11-13 | 1994-03-23 | 株式会社日立製作所 | ベクトル処理装置 |
| JPH0648486B2 (ja) * | 1986-10-08 | 1994-06-22 | 日本電気株式会社 | ベクトルデ−タ処理装置 |
| JP2544770B2 (ja) * | 1988-03-04 | 1996-10-16 | 日本電気株式会社 | ベクトル演算命令発行制御方式 |
| JPH02291073A (ja) * | 1989-04-19 | 1990-11-30 | Koufu Nippon Denki Kk | ベクトルデータ処理装置 |
| JPH02304676A (ja) * | 1989-05-19 | 1990-12-18 | Mitsubishi Electric Corp | ディジタル信号処理装置 |
| US5544337A (en) * | 1989-12-29 | 1996-08-06 | Cray Research, Inc. | Vector processor having registers for control by vector resisters |
| US5197130A (en) * | 1989-12-29 | 1993-03-23 | Supercomputer Systems Limited Partnership | Cluster architecture for a highly parallel scalar/vector multiprocessor system |
| EP0482200B1 (en) | 1990-03-19 | 2001-09-19 | Fujitsu Limited | Interrupt processing system |
| JPH0786838B2 (ja) | 1990-03-19 | 1995-09-20 | 富士通株式会社 | 割り込み処理方式 |
| JPH0628388A (ja) * | 1992-07-07 | 1994-02-04 | Fujitsu Ltd | ベクトル計算機 |
| JPH06110686A (ja) | 1992-09-25 | 1994-04-22 | Matsushita Electric Ind Co Ltd | レジスタ干渉回避装置 |
| US5689653A (en) * | 1995-02-06 | 1997-11-18 | Hewlett-Packard Company | Vector memory operations |
| US5941980A (en) * | 1996-08-05 | 1999-08-24 | Industrial Technology Research Institute | Apparatus and method for parallel decoding of variable-length instructions in a superscalar pipelined data processing system |
| JPH10124313A (ja) | 1996-10-18 | 1998-05-15 | Fujitsu Ltd | 並列処理計算機 |
| US6006315A (en) | 1996-10-18 | 1999-12-21 | Samsung Electronics Co., Ltd. | Computer methods for writing a scalar value to a vector |
| US6065105A (en) * | 1997-01-08 | 2000-05-16 | Intel Corporation | Dependency matrix |
| US5922066A (en) * | 1997-02-24 | 1999-07-13 | Samsung Electronics Co., Ltd. | Multifunction data aligner in wide data width processor |
| US5881307A (en) * | 1997-02-24 | 1999-03-09 | Samsung Electronics Co., Ltd. | Deferred store data read with simple anti-dependency pipeline inter-lock control in superscalar processor |
| US6795908B1 (en) * | 2000-02-16 | 2004-09-21 | Freescale Semiconductor, Inc. | Method and apparatus for instruction execution in a data processing system |
| US20110087859A1 (en) * | 2002-02-04 | 2011-04-14 | Mimar Tibet | System cycle loading and storing of misaligned vector elements in a simd processor |
| US7437521B1 (en) * | 2003-08-18 | 2008-10-14 | Cray Inc. | Multistream processing memory-and barrier-synchronization method and apparatus |
| US7325124B2 (en) * | 2004-04-21 | 2008-01-29 | International Business Machines Corporation | System and method of execution of register pointer instructions ahead of instruction issue |
| JP2006285721A (ja) * | 2005-04-01 | 2006-10-19 | Seiko Epson Corp | 演算処理装置および演算処理方法 |
| US7660967B2 (en) * | 2007-02-01 | 2010-02-09 | Efficient Memory Technology | Result data forwarding in parallel vector data processor based on scalar operation issue order |
| JP4789269B2 (ja) * | 2008-04-10 | 2011-10-12 | エヌイーシーコンピュータテクノ株式会社 | ベクトル処理装置及びベクトル処理方法 |
| US20100115233A1 (en) * | 2008-10-31 | 2010-05-06 | Convey Computer | Dynamically-selectable vector register partitioning |
| US8555034B2 (en) * | 2009-12-15 | 2013-10-08 | Oracle America, Inc. | Execution of variable width vector processing instructions |
-
2010
- 2010-11-11 JP JP2010252839A patent/JP5699554B2/ja not_active Expired - Fee Related
-
2011
- 2011-10-24 US US13/279,482 patent/US8874879B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2012103959A (ja) | 2012-05-31 |
| US20120124332A1 (en) | 2012-05-17 |
| US8874879B2 (en) | 2014-10-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5699554B2 (ja) | ベクトル処理回路、命令発行制御方法、及びプロセッサシステム | |
| US7594102B2 (en) | Method and apparatus for vector execution on a scalar machine | |
| US8161266B2 (en) | Replicating opcode to other lanes and modifying argument register to others in vector portion for parallel operation | |
| KR102413832B1 (ko) | 벡터 곱셈 덧셈 명령 | |
| CN107810483A (zh) | 验证基于块的处理器中的跳转目标 | |
| JP2000122864A (ja) | デ―タ処理システムおよび集合化を用いた命令システム | |
| JP3449186B2 (ja) | パイプラインバイパス機能を有するデータ処理装置 | |
| TWI764966B (zh) | 用於控制矢量記憶體存取之資料處理裝置及方法 | |
| CN107851013A (zh) | 元素大小增加指令 | |
| JP5786719B2 (ja) | ベクトルプロセッサ | |
| TWI770079B (zh) | 向量產生指令 | |
| JP2620511B2 (ja) | データ・プロセッサ | |
| JP2006506735A (ja) | パイプラインプロセッサの方法および回路 | |
| JP5326314B2 (ja) | プロセサおよび情報処理装置 | |
| US6055628A (en) | Microprocessor with a nestable delayed branch instruction without branch related pipeline interlocks | |
| US6938149B2 (en) | Renaming apparatus and processor | |
| JP4771079B2 (ja) | Vliw型プロセッサ | |
| JP3915019B2 (ja) | Vliwプロセッサ、プログラム生成装置、および記録媒体 | |
| JP3743155B2 (ja) | パイプライン制御型計算機 | |
| JP2011128672A (ja) | スーパースカラプロセッサ及びその命令処理方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130805 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140710 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140722 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140905 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20141028 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20141113 |
|
| A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20150105 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20150120 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150202 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 5699554 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |