JP6301501B2 - パイプラインレジスタを中間ストレージとして利用すること - Google Patents
パイプラインレジスタを中間ストレージとして利用すること Download PDFInfo
- Publication number
- JP6301501B2 JP6301501B2 JP2016567367A JP2016567367A JP6301501B2 JP 6301501 B2 JP6301501 B2 JP 6301501B2 JP 2016567367 A JP2016567367 A JP 2016567367A JP 2016567367 A JP2016567367 A JP 2016567367A JP 6301501 B2 JP6301501 B2 JP 6301501B2
- Authority
- JP
- Japan
- Prior art keywords
- gpr
- value
- instruction
- pipeline
- gprs
- 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
- 238000012432 intermediate storage Methods 0.000 title 1
- 238000012545 processing Methods 0.000 claims description 213
- 238000000034 method Methods 0.000 claims description 97
- 230000004044 response Effects 0.000 claims description 29
- 238000012546 transfer Methods 0.000 claims description 7
- 102100033045 G-protein coupled receptor 4 Human genes 0.000 description 36
- 101000871138 Homo sapiens G-protein coupled receptor 4 Proteins 0.000 description 36
- 230000006870 function Effects 0.000 description 16
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 101100332288 Dictyostelium discoideum dst3 gene Proteins 0.000 description 1
- GWEVSGVZZGPLCZ-UHFFFAOYSA-N Titan oxide Chemical group O=[Ti]=O GWEVSGVZZGPLCZ-UHFFFAOYSA-N 0.000 description 1
- 101100534231 Xenopus laevis src-b gene Proteins 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- UPBAOYRENQEPJO-UHFFFAOYSA-N n-[5-[[5-[(3-amino-3-iminopropyl)carbamoyl]-1-methylpyrrol-3-yl]carbamoyl]-1-methylpyrrol-3-yl]-4-formamido-1-methylpyrrole-2-carboxamide Chemical compound CN1C=C(NC=O)C=C1C(=O)NC1=CN(C)C(C(=O)NC2=CN(C)C(C(=O)NCCC(N)=N)=C2)=C1 UPBAOYRENQEPJO-UHFFFAOYSA-N 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
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
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- 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/3017—Runtime instruction translation, e.g. macros
-
- 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/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
-
- 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/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3875—Pipelining a single stage, e.g. superpipelining
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
[C1]
処理ユニットが、複数の汎用レジスタ(GPR)のうちの第1のGPRから前記複数のGPRのうちの第3のGPRに第1の値が移動されることと、前記複数のGPRのうちの第2のGPRから前記複数のGPRのうちの第4のGPRに第2の値が移動されることとを要求する1つまたは複数の命令を受け取ることと、
前記1つまたは複数の命令を受け取ったことに応答して、
前記処理ユニットの初期論理ユニットが、第1のクロックサイクル中に、パイプラインの複数パイプラインレジスタのうちの初期パイプラインレジスタに前記第1の値をコピーすることと、ここにおいて、前記複数のパイプラインレジスタが前記複数のGPRとは異なる、
前記処理ユニットの前記初期論理ユニットが、前記第1のクロックサイクルの後にある第2のクロックサイクル中に、前記初期パイプラインレジスタに前記第2の値をコピーすることと、
前記処理ユニットの最終論理ユニットが、前記第2のクロックサイクルの後にある第3のクロックサイクル中に、前記複数のパイプラインレジスタのうちの最終パイプラインレジスタから前記第3のGPRに前記第1の値をコピーすることと、ここにおいて、前記第3のGPRにコピーされる前記第1の値が、前記第1のGPRからコピーされた前記同じ第1の値を表す、
前記処理ユニットの前記最終論理ユニットが、前記第2のクロックサイクルの後にある第4のクロックサイクル中に、前記最終パイプラインレジスタから前記第4のGPRに前記第2の値をコピーすることと、ここにおいて、前記第4のGPRにコピーされる前記第2の値が、前記第2のGPRからコピーされた前記同じ第2の値を表す、
を備える方法。
[C2]
前記1つまたは複数の命令が、前記第1のGPRと、前記第2のGPRと、前記第3のGPRと、前記第4のGPRとを識別し、
前記1つまたは複数の命令が前記パイプラインレジスタのいずれをも個々に識別しない、
C1に記載の方法。
[C3]
前記複数のパイプラインレジスタが命令によって個々にアクセス可能ではなく、前記複数のGPRが命令によって個々にアクセス可能である、C1に記載の方法。
[C4]
前記処理ユニットが、前記複数のパイプラインレジスタのうちの1つのパイプラインレジスタにアクセスするとき、前記複数のGPRのうちの1つのGPRにアクセスするときよりも少ない電力を消費する、C1に記載の方法。
[C5]
前記1つまたは複数の命令は、前記第1のGPRから前記第3のGPRに前記第1の値が移動されることと、前記第2のGPRから前記第4のGPRに前記第2の値が移動されることとを要求する単一の割込み不可能な命令を備える、C1に記載の方法。
[C6]
前記命令が、
スワップ命令と、ここにおいて、前記第3のGPRが前記第2のGPRであり、ここにおいて、前記第4のGPRが前記第1のGPRである、
スウィズル命令と、ここにおいて、前記複数のGPRが任意に位置する、
ギャザー命令と、ここにおいて、前記第1のGPRと前記第2のGPRとが連続して位置せず、ここにおいて、前記第3のGPRと前記第4のGPRとが連続して位置する、
スキャッタ命令と、ここにおいて、前記第1のGPRと前記第2のGPRとが連続して位置し、ここにおいて、前記第3のGPRと前記第4のGPRとが連続して位置しない、
からなるグループから選択される、C5に記載の方法。
[C7]
前記パイプラインが、1つまたは複数の算術論理ユニット(ALU)を含むマルチサイクル計算パイプラインである、C1に記載の方法。
[C8]
中間論理ユニットが、前記第1のクロックサイクルの後、および前記第3のクロックサイクルの前に、前記初期パイプラインレジスタから前記複数のパイプラインレジスタのうちの中間パイプラインレジスタに前記第1の値をコピーすることと、
前記中間論理ユニットが、前記第2のクロックサイクルの後、および前記第4のクロックサイクルの前に、前記初期パイプラインレジスタから前記中間パイプラインレジスタに前記第2の値をコピーすることと
をさらに備える、C1に記載の方法。
[C9]
前記処理ユニットが、中央処理ユニット(CPU)またはグラフィカル処理ユニット(GPU)から構成される、C1に記載の方法。
[C10]
前記初期パイプラインレジスタに前記第1の値をコピーすることが、
前記第1のGPRから前記初期パイプラインレジスタに前記第1の値をコピーすること、または
前記複数のパイプラインレジスタのうちのパイプラインレジスタから前記初期パイプラインレジスタに前記第1の値をコピーすること
のいずれかを備え、
前記初期パイプラインレジスタに前記第2の値をコピーすることが、
前記第2のGPRから前記初期パイプラインレジスタに前記第2の値をコピーすること、または
前記複数のパイプラインレジスタのうちのパイプラインレジスタから前記初期パイプラインレジスタに前記第2の値をコピーすること
のいずれかを備える、
C1に記載の方法。
[C11]
複数の汎用レジスタ(GPR)と、
複数のパイプラインレジスタを備えるパイプラインと、ここにおいて、前記複数のパイプラインレジスタが前記複数のGPRとは異なる、
複数の論理ユニットと、
前記複数のGPRのうちの第1のGPRから前記複数のGPRのうちの第3のGPRに第1の値が移動されることと、前記複数のGPRのうちの第2のGPRから前記複数のGPRのうちの第4のGPRに第2の値が移動されることとを要求する1つまたは複数の命令を受け取るように構成されたコントローラと、
を備え、
前記1つまたは複数の命令を受け取ったことに応答して、前記コントローラが、
前記複数の論理ユニットのうちの初期論理ユニットに、第1のクロックサイクル中に、前記複数のパイプラインレジスタのうちの初期パイプラインレジスタに前記第1の値をコピーさせることと、
前記初期論理ユニットに、前記第1のクロックサイクルの後にある第2のクロックサイクル中に、前記初期パイプラインレジスタに前記第2の値をコピーさせることと、
前記複数の論理ユニットのうちの最終論理ユニットに、前記第2のクロックサイクルの後にある第3のクロックサイクル中に、前記複数のパイプラインレジスタのうちの最終パイプラインレジスタから前記第3のGPRに前記第1の値をコピーさせることと、ここにおいて、前記第3のGPRにコピーされる前記第1の値が、前記第1のGPRからコピーされた前記同じ第1の値を表す、
前記最終論理ユニットに、前記第2のクロックサイクルの後にある第4のクロックサイクル中に、前記最終パイプラインレジスタから前記第4のGPRに前記第2の値をコピーさせることと、ここにおいて、前記第4のGPRにコピーされる前記第2の値が、前記第2のGPRからコピーされた前記同じ第2の値を表す、
を行うように構成された、処理ユニット。
[C12]
前記1つまたは複数の命令が、前記第1のGPRと、前記第2のGPRと、前記第3のGPRと、前記第4のGPRとを識別し、
前記1つまたは複数の命令が前記パイプラインレジスタのいずれをも個々に識別しない、
C11に記載の処理ユニット。
[C13]
前記複数のパイプラインレジスタが命令によって個々にアクセス可能ではなく、前記複数のGPRが命令によって個々にアクセス可能である、C11に記載の処理ユニット。
[C14]
前記処理ユニットが、前記複数のパイプラインレジスタのうちの1つのパイプラインレジスタにアクセスするとき、前記複数のGPRのうちの1つのGPRにアクセスするときよりも少ない電力を消費する、C11に記載の処理ユニット。
[C15]
前記1つまたは複数の命令は、前記第1のGPRから前記第3のGPRに前記第1の値が移動されることと、前記第2のGPRから前記第4のGPRに前記第2の値が移動されることとを要求する単一の割込み不可能な命令を備える、C11に記載の処理ユニット。
[C16]
前記命令が、
スワップ命令と、ここにおいて、前記第3のGPRが前記第2のGPRであり、ここにおいて、前記第4のGPRが前記第1のGPRである、
スウィズル命令と、ここにおいて、前記複数のGPRが任意に位置する、
ギャザー命令と、ここにおいて、前記第1のGPRと前記第2のGPRとが連続して位置せず、ここにおいて、前記第3のGPRと前記第4のGPRとが連続して位置する、
スキャッタ命令と、ここにおいて、前記第1のGPR、ここにおいて、前記第1のGPRと前記第2のGPRとが連続して位置し、ここにおいて、前記第3のGPRと前記第4のGPRとが連続して位置しない、
からなるグループから選択される、C15に記載の処理ユニット。
[C17]
前記パイプラインが、1つまたは複数の算術論理ユニット(ALU)を含むマルチサイクル計算パイプラインである、C11に記載の処理ユニット。
[C18]
前記1つまたは複数の命令を受け取ったことに応答して、前記コントローラが、
前記複数の論理ユニットのうちの1つの中間論理ユニットに、前記第1のクロックサイクルの後、および前記第3のクロックサイクルの前に、前記初期パイプラインレジスタから前記複数のパイプラインレジスタのうちの1つの中間パイプラインレジスタに前記第1の値をコピーさせることと、
前記中間論理ユニットに、前記第2のクロックサイクルの後、および前記第4のクロックサイクルの前に、前記初期パイプラインレジスタから前記中間パイプラインレジスタに前記第2の値をコピーさせることと
を行うようにさらに構成された、C11に記載の処理ユニット。
[C19]
前記処理ユニットが、1つの中央処理ユニット(CPU)または1つのグラフィカル処理ユニット(GPU)から構成される、C11に記載の処理ユニット。
[C20]
前記初期論理ユニットが、
前記第1のGPRから前記初期パイプラインレジスタに前記第1の値をコピーすること、または
前記複数のパイプラインレジスタのうちの1つのパイプラインレジスタから前記初期パイプラインレジスタに前記第1の値をコピーすること
のいずれかによって前記初期パイプラインレジスタに前記第1の値をコピーするように構成され、
前記初期論理ユニットが、
前記第2のGPRから前記初期パイプラインレジスタに前記第2の値をコピーすること、または
前記複数のパイプラインレジスタのうちの1つのパイプラインレジスタから前記初期パイプラインレジスタに前記第2の値をコピーすること
のいずれかによって前記初期パイプラインレジスタに前記第2の値をコピーするように構成された、
C11に記載の処理ユニット。
[C21]
複数のGPRのうちの第1のGPRから前記複数のGPRのうちの第3のGPRに第1の値が移動されることと、前記複数のGPRのうちの第2のGPRから前記複数のGPRのうちの第4のGPRに第2の値が移動されることとを要求する、処理ユニットに対する1つまたは複数の命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記1つまたは複数の命令が、実行されたとき、
前記複数の論理ユニットのうちの初期論理ユニットに、第1のクロックサイクル中に、パイプラインの複数のパイプラインレジスタのうちの初期パイプラインレジスタに前記第1の値をコピーさせることと、
前記初期論理ユニットに、前記第1のクロックサイクルの後にある第2のクロックサイクル中に、前記初期パイプラインレジスタに前記第2の値をコピーさせることと、
前記複数の論理ユニットのうちの最終論理ユニットに、前記第2のクロックサイクルの後にある第3のクロックサイクル中に、前記複数のパイプラインレジスタのうちの最終パイプラインレジスタから前記第3のGPRに前記第1の値をコピーさせることと、ここにおいて、前記第3のGPRにコピーされる前記第1の値が、前記第1のGPRからコピーされた前記同じ第1の値を表す、
前記最終論理ユニットに、前記第2のクロックサイクルの後にある第4のクロックサイクル中に、前記最終パイプラインレジスタから前記第4のGPRに前記第2の値をコピーさせることと、ここにおいて、前記第4のGPRにコピーされる前記第2の値が、前記第2のGPRからコピーされた前記同じ第2の値を表す、
を前記処理ユニットに行わせる、非一時的コンピュータ可読記憶媒体。
[C22]
前記1つまたは複数の命令が、前記第1のGPRと、前記第2のGPRと、前記第3のGPRと、前記第4のGPRとを識別し、
前記1つまたは複数の命令が前記パイプラインレジスタのいずれをも個々に識別しない、
C21に記載の非一時的コンピュータ可読記憶媒体。
[C23]
前記複数のパイプラインレジスタが命令によって個々にアクセス可能ではなく、前記複数のGPRが命令によって個々にアクセス可能である、C21に記載の非一時的コンピュータ可読記憶媒体。
[C24]
前記処理ユニットが、前記複数のパイプラインレジスタのうちの1つのパイプラインレジスタにアクセスするとき、前記複数のGPRのうちの1つのGPRにアクセスするときよりも少ない電力を消費する、C21に記載の非一時的コンピュータ可読記憶媒体。
[C25]
前記処理ユニットが、単一の割込み不可能な命令を受け取ったことに応答して前記値をコピーする、C21に記載の非一時的コンピュータ可読記憶媒体。
[C26]
前記命令が、
スワップ命令と、ここにおいて、前記第3のGPRが前記第2のGPRであり、ここにおいて、前記第4のGPRが前記第1のGPRである、
スウィズル命令と、ここにおいて、前記複数のGPRが任意に位置する、
ギャザー命令と、ここにおいて、前記第1のGPRと前記第2のGPRとが連続して位置せず、ここにおいて、前記第3のGPRと前記第4のGPRとが連続して位置する、
スキャッタ命令と、ここにおいて、前記第1のGPR、ここにおいて、前記第1のGPRと前記第2のGPRとが連続して位置し、ここにおいて、前記第3のGPRと前記第4のGPRとが連続して位置しない、
からなるグループから選択される、C25に記載の非一時的コンピュータ可読記憶媒体。
[C27]
実行されたとき、前記1つまたは複数の命令が、
前記複数の論理ユニットのうちの中間論理ユニットに、前記第1のクロックサイクルの後、および前記第3のクロックサイクルの前に、前記初期パイプラインレジスタから前記複数のパイプラインレジスタのうちの1つの中間パイプラインレジスタに前記第1の値をコピーさせることと、
前記中間論理ユニットに、前記第2のクロックサイクルの後、および前記第4のクロックサイクルの前に、前記初期パイプラインレジスタから前記中間パイプラインレジスタに前記第2の値をコピーさせることと
を前記処理ユニットに行わせる、C21に記載の非一時的コンピュータ可読記憶媒体。
[C28]
コンパイラモジュールがコードを受け取ることと、
前記コンパイラモジュールが、前記コードによって示された複数の動作がコンボ移動命令に組み合わせられ得ると決定することに応答して、前記コンボ移動命令を生成することと
を備える方法であって、
ここにおいて、処理ユニットによって実行されたとき、前記コンボ移動命令が、前記複数の汎用レジスタ(GPR)のうちの複数のソースGPRから前記複数のGPRのうちの複数の宛先GPRに複数の値を移動するとき、前記処理ユニットに複数のパイプラインレジスタを一時的ストレージとして利用させ、ここにおいて、前記複数のソースGPRのうちの少なくとも1つのGPRが前記複数の宛先GPR中に含まれ、ここにおいて、前記複数のパイプラインレジスタが前記複数のGPRとは異なる、方法。
[C29]
前記コードによって示された前記複数の動作が前記コンボモード命令に組み合わせられ得ると決定することは、
前記コードによって示された前記複数の動作が、前記複数のGPRの間で複数の値を移動することを含むと決定することに応答して、前記コードによって示された前記複数の動作が前記コンボモード命令に組み合わせられ得ると決定すること
を備える、C28に記載の方法。
[C30]
前記コードが複数の命令を備え、ここにおいて、前記方法が、
前記コンボ移動命令に組み合わせられ得る前記複数の動作に対応する前記命令を、前記生成されたコンボ移動命令と置き換えること
をさらに備える、C28に記載の方法。
Claims (24)
- 処理ユニットが、複数の汎用レジスタ(GPR)のうちの複数のソースGPRのうちの第1のGPRから前記複数のGPRのうちの複数の宛先GPRのうちの第3のGPRに第1の値が移動されることと、前記複数のソースGPRのうちの第2のGPRから前記複数の宛先GPRのうちの第4のGPRに第2の値が移動されることと、前記複数のソースGPRのうちの第5のGPRから前記複数の宛先GPRのうちの第6のGPRに第3の値が移動されることとを要求する単一の命令を受け取ることと、ここにおいて、前記単一の命令が、
前記宛先GPRのすべてを明確に識別しないギャザー命令であって、前記複数のソースGPRが、前記単一の命令が前記ギャザー命令であるときに連続して位置せず、前記宛先GPRが、前記単一の命令が前記ギャザー命令であるときに連続して位置するギャザー命令、または
前記ソースGPRのすべてを明確に識別しないスキャッタ命令であって、前記ソースGPRが、前記単一の命令が前記スキャッタ命令であるときに連続して位置し、前記宛先GPRが、前記単一の命令が前記スキャッタ命令であるときに連続して位置しないスキャッタ命令、のうちの1つであり、ここにおいて、前記単一の命令は、前記第1のGPRから前記第3のGPRに前記第1の値が移動されることと、前記第2のGPRから前記第4のGPRに前記第2の値が移動されることと、前記第5のGPRから前記第6のGPRに前記第3の値が移動されることとを要求する単一の割込み不可能な命令を備える、
前記単一の命令を受け取ったことに応答して、
前記処理ユニットの初期論理ユニットが、第1のクロックサイクル中に、パイプラインの複数のパイプラインレジスタのうちの初期パイプラインレジスタに前記第1の値をコピーすることと、ここにおいて、前記複数のパイプラインレジスタが前記複数のGPRとは異なる、
前記処理ユニットの前記初期論理ユニットが、前記第1のクロックサイクルの後にある第2のクロックサイクル中に、前記初期パイプラインレジスタに前記第2の値をコピーすることと、
前記処理ユニットの最終論理ユニットが、前記第2のクロックサイクルの後にある第3のクロックサイクル中に、前記複数のパイプラインレジスタのうちの最終パイプラインレジスタから前記第3のGPRに前記第1の値をコピーすることと、ここにおいて、前記第3のGPRにコピーされる前記第1の値が、前記第1のGPRからコピーされた前記第1の値と同じ値を表す、
前記処理ユニットの前記最終論理ユニットが、前記第2のクロックサイクルの後にある第4のクロックサイクル中に、前記最終パイプラインレジスタから前記第4のGPRに前記第2の値をコピーすることと、ここにおいて、前記第4のGPRにコピーされる前記第2の値が、前記第2のGPRからコピーされた前記第2の値と同じ値を表す、
を備える方法。 - 前記単一の命令が前記パイプラインレジスタのいずれをも個々に識別しない、請求項1に記載の方法。
- 前記複数のパイプラインレジスタが命令によって個々にアクセス可能ではなく、前記複数のGPRが命令によって個々にアクセス可能である、請求項1に記載の方法。
- 前記処理ユニットが、前記複数のパイプラインレジスタのうちの1つのパイプラインレジスタにアクセスするとき、前記複数のGPRのうちの1つのGPRにアクセスするときよりも少ない電力を消費する、請求項1に記載の方法。
- 前記パイプラインが、1つまたは複数の算術論理ユニット(ALU)を含むマルチサイクル計算パイプラインである、請求項1に記載の方法。
- 中間論理ユニットが、前記第1のクロックサイクルの後、および前記第3のクロックサイクルの前に、前記初期パイプラインレジスタから前記複数のパイプラインレジスタのうちの1つの中間パイプラインレジスタに前記第1の値をコピーすることと、
前記中間論理ユニットが、前記第2のクロックサイクルの後、および前記第4のクロックサイクルの前に、前記初期パイプラインレジスタから前記中間パイプラインレジスタに前記第2の値をコピーすることと
をさらに備える、請求項1に記載の方法。 - 前記処理ユニットが、1つの中央処理ユニット(CPU)または1つのグラフィカル処理ユニット(GPU)から構成される、請求項1に記載の方法。
- 前記初期パイプラインレジスタに前記第1の値をコピーすることが、
前記第1のGPRから前記初期パイプラインレジスタに前記第1の値をコピーすること、または
前記複数のパイプラインレジスタのうちの1つのパイプラインレジスタから前記初期パイプラインレジスタに前記第1の値をコピーすること
のいずれかを備え、
前記初期パイプラインレジスタに前記第2の値をコピーすることが、
前記第2のGPRから前記初期パイプラインレジスタに前記第2の値をコピーすること、または
前記複数のパイプラインレジスタのうちの1つのパイプラインレジスタから前記初期パイプラインレジスタに前記第2の値をコピーすること
のいずれかを備える、
請求項1に記載の方法。 - 複数の汎用レジスタ(GPR)と、
複数のパイプラインレジスタを備えるパイプラインと、ここにおいて、前記複数のパイプラインレジスタが前記複数のGPRとは異なる、
複数の論理ユニットと、
前記複数のGPRのうちの複数のソースGPRのうちの第1のGPRから前記複数のGPRのうちの複数の宛先GPRのうちの第3のGPRに第1の値が移動されることと、前記複数のソースGPRのうちの第2のGPRから前記複数の宛先GPRのうちの第4のGPRに第2の値が移動されることと、前記複数のソースGPRのうちの第5のGPRから前記複数の宛先GPRのうちの第6のGPRに第3の値が移動されることとを要求する単一の命令を受け取るように構成されたコントローラと、ここにおいて、前記単一の命令が、
前記宛先GPRのすべてを明確に識別しないギャザー命令であって、前記複数のソースGPRが、前記単一の命令が前記ギャザー命令であるときに連続して位置せず、前記宛先GPRが、前記単一の命令が前記ギャザー命令であるときに連続して位置するギャザー命令、または
前記ソースGPRのすべてを明確に識別しないスキャッタ命令であって、前記ソースGPRが、前記単一の命令が前記スキャッタ命令であるときに連続して位置し、前記宛先GPRが、前記単一の命令が前記スキャッタ命令であるときに連続して位置しないスキャッタ命令、のうちの1つであり、ここにおいて、前記単一の命令は、前記第1のGPRから前記第3のGPRに前記第1の値が移動されることと、前記第2のGPRから前記第4のGPRに前記第2の値が移動されることと、前記第5のGPRから前記第6のGPRに前記第3の値が移動されることとを要求する単一の割込み不可能な命令を備え、前記単一の命令を受け取ったことに応答して、前記コントローラが、
前記複数の論理ユニットのうちの初期論理ユニットに、第1のクロックサイクル中に、前記複数のパイプラインレジスタのうちの初期パイプラインレジスタに前記第1の値をコピーさせることと、
前記初期論理ユニットに、前記第1のクロックサイクルの後にある第2のクロックサイクル中に、前記初期パイプラインレジスタに前記第2の値をコピーさせることと、
前記複数の論理ユニットのうちの最終論理ユニットに、前記第2のクロックサイクルの後にある第3のクロックサイクル中に、前記複数のパイプラインレジスタのうちの最終パイプラインレジスタから前記第3のGPRに前記第1の値をコピーさせることと、ここにおいて、前記第3のGPRにコピーされる前記第1の値が、前記第1のGPRからコピーされた前記第1の値と同じ値を表す、
前記最終論理ユニットに、前記第2のクロックサイクルの後にある第4のクロックサイクル中に、前記最終パイプラインレジスタから前記第4のGPRに前記第2の値をコピーさせることと、ここにおいて、前記第4のGPRにコピーされる前記第2の値が、前記第2のGPRからコピーされた前記第2の値と同じ値を表す、
を行うように構成された、
を備える処理ユニット。 - 前記単一の命令が前記パイプラインレジスタのいずれをも個々に識別しない、請求項9に記載の処理ユニット。
- 前記複数のパイプラインレジスタが命令によって個々にアクセス可能ではなく、前記複数のGPRが命令によって個々にアクセス可能である、請求項9に記載の処理ユニット。
- 前記処理ユニットが、前記複数のパイプラインレジスタのうちの1つのパイプラインレジスタにアクセスするとき、前記複数のGPRのうちの1つのGPRにアクセスするときよりも少ない電力を消費する、請求項9に記載の処理ユニット。
- 前記パイプラインが、1つまたは複数の算術論理ユニット(ALU)を含むマルチサイクル計算パイプラインである、請求項9に記載の処理ユニット。
- 前記1つまたは複数の命令を受け取ったことに応答して、前記コントローラが、
前記複数の論理ユニットのうちの1つの中間論理ユニットに、前記第1のクロックサイクルの後、および前記第3のクロックサイクルの前に、前記初期パイプラインレジスタから前記複数のパイプラインレジスタのうちの1つの中間パイプラインレジスタに前記第1の値をコピーさせることと、
前記中間論理ユニットに、前記第2のクロックサイクルの後、および前記第4のクロックサイクルの前に、前記初期パイプラインレジスタから前記中間パイプラインレジスタに前記第2の値をコピーさせることと
を行うようにさらに構成された、請求項9に記載の処理ユニット。 - 前記処理ユニットが、1つの中央処理ユニット(CPU)または1つのグラフィカル処理ユニット(GPU)から構成される、請求項9に記載の処理ユニット。
- 前記初期論理ユニットが、
前記第1のGPRから前記初期パイプラインレジスタに前記第1の値をコピーすること、または
前記複数のパイプラインレジスタのうちの1つのパイプラインレジスタから前記初期パイプラインレジスタに前記第1の値をコピーすること
のいずれかによって前記初期パイプラインレジスタに前記第1の値をコピーするように構成され、
前記初期論理ユニットが、
前記第2のGPRから前記初期パイプラインレジスタに前記第2の値をコピーすること、または
前記複数のパイプラインレジスタのうちの1つのパイプラインレジスタから前記初期パイプラインレジスタに前記第2の値をコピーすること
のいずれかによって前記初期パイプラインレジスタに前記第2の値をコピーするように構成された、
請求項9に記載の処理ユニット。 - 複数の汎用レジスタ(GPR)のうちの複数のソースGPRのうちの第1のGPRから前記複数のGPRのうちの複数の宛先GPRのうちの第3のGPRに第1の値が移動されることと、前記複数のソースGPRのうちの第2のGPRから前記複数の宛先GPRのうちの第4のGPRに第2の値が移動されることと、前記複数のソースGPRのうちの第5のGPRから前記複数の宛先GPRのうちの第6のGPRに第3の値が移動されることとを要求する、処理ユニットに対する単一の命令を記憶する非一時的コンピュータ可読記憶媒体であって、ここにおいて、前記単一の命令が、前記宛先GPRのすべてを明確に識別しないギャザー命令であって、前記複数のソースGPRが、前記単一の命令が前記ギャザー命令であるときに連続して位置せず、前記宛先GPRが、前記単一の命令が前記ギャザー命令であるときに連続して位置するギャザー命令、または前記ソースGPRのすべてを明確に識別しないスキャッタ命令であって、前記ソースGPRが、前記単一の命令が前記スキャッタ命令であるときに連続して位置し、前記宛先GPRが、前記単一の命令が前記スキャッタ命令であるときに連続して位置しないスキャッタ命令、のうちの1つであり、ここにおいて、前記単一の命令は、前記第1のGPRから前記第3のGPRに前記第1の値が移動されることと、前記第2のGPRから前記第4のGPRに前記第2の値が移動されることと、前記第5のGPRから前記第6のGPRに前記第3の値が移動されることとを要求する単一の割込み不可能な命令を備え、前記単一の命令が、実行されたとき、
複数の論理ユニットのうちの初期論理ユニットに、第1のクロックサイクル中に、パイプラインの複数のパイプラインレジスタのうちの初期パイプラインレジスタに前記第1の値をコピーさせることと、
前記初期論理ユニットに、前記第1のクロックサイクルの後にある第2のクロックサイクル中に、前記初期パイプラインレジスタに前記第2の値をコピーさせることと、
前記複数の論理ユニットのうちの最終論理ユニットに、前記第2のクロックサイクルの後にある第3のクロックサイクル中に、前記複数のパイプラインレジスタのうちの最終パイプラインレジスタから前記第3のGPRに前記第1の値をコピーさせることと、ここにおいて、前記第3のGPRにコピーされる前記第1の値が、前記第1のGPRからコピーされた前記第1の値と同じ値を表す、
前記最終論理ユニットに、前記第2のクロックサイクルの後にある第4のクロックサイクル中に、前記最終パイプラインレジスタから前記第4のGPRに前記第2の値をコピーさせることと、ここにおいて、前記第4のGPRにコピーされる前記第2の値が、前記第2のGPRからコピーされた前記第2の値と同じ値を表す、
を前記処理ユニットに行わせる、非一時的コンピュータ可読記憶媒体。 - 前記単一の命令が前記パイプラインレジスタのいずれをも個々に識別しない、請求項17に記載の非一時的コンピュータ可読記憶媒体。
- 前記複数のパイプラインレジスタが命令によって個々にアクセス可能ではなく、前記複数のGPRが命令によって個々にアクセス可能である、請求項17に記載の非一時的コンピュータ可読記憶媒体。
- 前記処理ユニットが、前記複数のパイプラインレジスタのうちの1つのパイプラインレジスタにアクセスするとき、前記複数のGPRのうちの1つのGPRにアクセスするときよりも少ない電力を消費する、請求項17に記載の非一時的コンピュータ可読記憶媒体。
- 実行されたとき、前記単一の命令が、
前記複数の論理ユニットのうちの1つの中間論理ユニットに、前記第1のクロックサイクルの後、および前記第3のクロックサイクルの前に、前記初期パイプラインレジスタから前記複数のパイプラインレジスタのうちの1つの中間パイプラインレジスタに前記第1の値をコピーさせることと、
前記中間論理ユニットに、前記第2のクロックサイクルの後、および前記第4のクロックサイクルの前に、前記初期パイプラインレジスタから前記中間パイプラインレジスタに前記第2の値をコピーさせることと
を前記処理ユニットに行わせる、請求項17に記載の非一時的コンピュータ可読記憶媒体。 - コンパイラモジュールがコードを受け取ることと、
前記コンパイラモジュールが、前記コードによって示された複数の動作が単一のコンボ移動命令に組み合わせられ得ると決定することに応答して、前記単一のコンボ移動命令を生成することと
を備える方法であって、
ここにおいて、処理ユニットによって実行されたとき、前記コンボ移動命令が、複数の汎用レジスタ(GPR)のうちの複数のソースGPRから前記複数のGPRのうちの複数の宛先GPRに複数の値を移動させるとき、前記処理ユニットに複数のパイプラインレジスタを一時的ストレージとして利用させ、ここにおいて、前記単一のコンボ移動命令が、
前記宛先GPRのすべてを明確に識別しないギャザー命令であって、前記複数のソースGPRが、前記単一の命令が前記ギャザー命令であるときに連続して位置せず、前記宛先GPRが、前記単一の命令が前記ギャザー命令であるときに連続して位置するギャザー命令、または
前記ソースGPRのすべてを明確に識別しないスキャッタ命令であって、前記ソースGPRが、前記単一の命令が前記スキャッタ命令であるときに連続して位置し、前記宛先GPRが、前記単一の命令が前記スキャッタ命令であるときに連続して位置しないスキャッタ命令、のうちの1つであり、ここにおいて、前記複数のソースGPRのうちの少なくとも1つのGPRが前記複数の宛先GPR中に含まれ、ここにおいて、前記複数のパイプラインレジスタが前記複数のGPRとは異なり、ここにおいて、前記単一の命令は、第1のGPRから第3のGPRに第1の値が移動されることと、第2のGPRから第4のGPRに第2の値が移動されることと、第5のGPRから第6のGPRに第3の値が移動されることとを要求する単一の割込み不可能な命令を備える、方法。 - 前記コードによって示された前記複数の動作が前記単一のコンボモード命令に組み合わせられ得ると決定することは、
前記コードによって示された前記複数の動作が、前記複数のGPRの間で複数の値を移動することを含むと決定することに応答して、前記コードによって示された前記複数の動作が前記単一のコンボモード命令に組み合わせられ得ると決定すること
を備える、請求項22に記載の方法。 - 前記コードが複数の命令を備え、ここにおいて、前記方法が、
前記単一のコンボ移動命令に組み合わせられ得る前記複数の動作に対応する前記命令を、前記生成された単一のコンボ移動命令と置き換えること
をさらに備える、請求項22に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/275,047 | 2014-05-12 | ||
US14/275,047 US9747104B2 (en) | 2014-05-12 | 2014-05-12 | Utilizing pipeline registers as intermediate storage |
PCT/US2015/026850 WO2015175173A1 (en) | 2014-05-12 | 2015-04-21 | Utilizing pipeline registers as intermediate storage |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2017516226A JP2017516226A (ja) | 2017-06-15 |
JP2017516226A5 JP2017516226A5 (ja) | 2017-11-09 |
JP6301501B2 true JP6301501B2 (ja) | 2018-03-28 |
Family
ID=53267556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016567367A Expired - Fee Related JP6301501B2 (ja) | 2014-05-12 | 2015-04-21 | パイプラインレジスタを中間ストレージとして利用すること |
Country Status (6)
Country | Link |
---|---|
US (1) | US9747104B2 (ja) |
EP (1) | EP3143495B1 (ja) |
JP (1) | JP6301501B2 (ja) |
KR (1) | KR101863483B1 (ja) |
CN (1) | CN106462391B (ja) |
WO (1) | WO2015175173A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102299008B1 (ko) * | 2014-10-16 | 2021-09-06 | 삼성전자주식회사 | 어플리케이션 프로세서와 이를 포함하는 반도체 시스템 |
US11144367B2 (en) | 2019-02-08 | 2021-10-12 | International Business Machines Corporation | Write power optimization for hardware employing pipe-based duplicate register files |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6145075A (en) | 1998-02-06 | 2000-11-07 | Ip-First, L.L.C. | Apparatus and method for executing a single-cycle exchange instruction to exchange contents of two locations in a register file |
US6052769A (en) | 1998-03-31 | 2000-04-18 | Intel Corporation | Method and apparatus for moving select non-contiguous bytes of packed data in a single instruction |
US6094716A (en) | 1998-07-14 | 2000-07-25 | Advanced Micro Devices, Inc. | Register renaming in which moves are accomplished by swapping rename tags |
US6745319B1 (en) * | 2000-02-18 | 2004-06-01 | Texas Instruments Incorporated | Microprocessor with instructions for shuffling and dealing data |
JP3719509B2 (ja) * | 2002-04-01 | 2005-11-24 | 株式会社ソニー・コンピュータエンタテインメント | シリアル演算パイプライン、演算装置、算術論理演算回路およびシリアル演算パイプラインによる演算方法 |
US6934831B2 (en) * | 2002-05-09 | 2005-08-23 | International Business Machines Corporation | Power reduction mechanism for floating point register file reads |
CN1761940B (zh) * | 2003-03-19 | 2010-06-16 | 皇家飞利浦电子股份有限公司 | 指令处理设备,指令执行方法和装置,指令编译方法和装置 |
US7337305B2 (en) * | 2003-11-24 | 2008-02-26 | Sun Microsystems, Inc. | Method and pipeline architecture for processing multiple swap requests to reduce latency |
GB2409059B (en) | 2003-12-09 | 2006-09-27 | Advanced Risc Mach Ltd | A data processing apparatus and method for moving data between registers and memory |
US7613905B2 (en) * | 2006-04-06 | 2009-11-03 | Texas Instruments Incorporated | Partial register forwarding for CPUs with unequal delay functional units |
US20120254591A1 (en) * | 2011-04-01 | 2012-10-04 | Hughes Christopher J | Systems, apparatuses, and methods for stride pattern gathering of data elements and stride pattern scattering of data elements |
WO2013101323A1 (en) | 2011-12-30 | 2013-07-04 | Intel Corporation | Micro-architecture for eliminating mov operations |
US9575754B2 (en) | 2012-04-16 | 2017-02-21 | Apple Inc. | Zero cycle move |
-
2014
- 2014-05-12 US US14/275,047 patent/US9747104B2/en active Active
-
2015
- 2015-04-21 KR KR1020167031480A patent/KR101863483B1/ko active IP Right Grant
- 2015-04-21 JP JP2016567367A patent/JP6301501B2/ja not_active Expired - Fee Related
- 2015-04-21 EP EP15724805.5A patent/EP3143495B1/en active Active
- 2015-04-21 CN CN201580024902.1A patent/CN106462391B/zh not_active Expired - Fee Related
- 2015-04-21 WO PCT/US2015/026850 patent/WO2015175173A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2015175173A1 (en) | 2015-11-19 |
EP3143495C0 (en) | 2023-08-16 |
EP3143495A1 (en) | 2017-03-22 |
US20150324196A1 (en) | 2015-11-12 |
CN106462391B (zh) | 2019-07-05 |
KR101863483B1 (ko) | 2018-05-31 |
EP3143495B1 (en) | 2023-08-16 |
US9747104B2 (en) | 2017-08-29 |
KR20170007742A (ko) | 2017-01-20 |
CN106462391A (zh) | 2017-02-22 |
JP2017516226A (ja) | 2017-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6077018B2 (ja) | 異種cpu−gpu計算のための実行モデル | |
KR101707289B1 (ko) | 그래픽 병렬 처리 유닛에 대한 버퍼 관리 | |
JP6062506B2 (ja) | 汎用グラフィクス処理装置における計算リソースパイプライン化 | |
US9799094B1 (en) | Per-instance preamble for graphics processing | |
CN111580864A (zh) | 一种向量运算装置及运算方法 | |
JP2019508804A (ja) | 処理ユニットのためのフレームベースのクロックレート調整 | |
KR20130141446A (ko) | 복수의 프로세싱 유닛들에서 온-칩 메모리를 사용하는 데이터 프로세싱 | |
US10706494B2 (en) | Uniform predicates in shaders for graphics processing units | |
US20180232846A1 (en) | Dynamic shader instruction nullification for graphics processing | |
US9632783B2 (en) | Operand conflict resolution for reduced port general purpose register | |
KR20160036067A (ko) | 동적 폭 계산을 이용한 배리어 폭 동기화 | |
EP3161817B1 (en) | Load scheme for shared register in gpu | |
TWI478054B (zh) | 在命令串流器之指令執行中的可程式化述語邏輯 | |
JP6301501B2 (ja) | パイプラインレジスタを中間ストレージとして利用すること | |
CN107004252B (zh) | 用于在处理浮点值时实现功率节省技术的装置与方法 | |
US20170371657A1 (en) | Scatter to gather operation | |
US11023997B2 (en) | Instruction storage | |
JP2017527014A (ja) | 算術論理ユニットにおいて使用するためのベクトルスケーリング命令 | |
KR20200144493A (ko) | 무거운 가중치 및 가벼운 가중치 페어의 아키텍처를 갖는 쉐이더 코어 및 그것을 포함하는 그래픽 처리 유닛 | |
US11307860B1 (en) | Iterating group sum of multiple accumulate operations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170927 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170927 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20170927 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20171026 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20171031 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180111 |
|
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: 20180130 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180228 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6301501 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |