JP2014170571A - ループ制御システムおよび方法 - Google Patents
ループ制御システムおよび方法 Download PDFInfo
- Publication number
- JP2014170571A JP2014170571A JP2014090336A JP2014090336A JP2014170571A JP 2014170571 A JP2014170571 A JP 2014170571A JP 2014090336 A JP2014090336 A JP 2014090336A JP 2014090336 A JP2014090336 A JP 2014090336A JP 2014170571 A JP2014170571 A JP 2014170571A
- Authority
- JP
- Japan
- Prior art keywords
- loop
- instruction
- predicate
- value
- count
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000001514 detection method Methods 0.000 claims abstract description 19
- 230000004044 response Effects 0.000 claims description 26
- 230000008859 change Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 9
- 230000004048 modification Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/54—Link editing before load time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/445—Exploiting fine grain parallelism, i.e. parallelism at instruction level
- G06F8/4452—Software pipelining
-
- 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/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/325—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
-
- 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, 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/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
【解決手段】ハードウェアループ制御論理回路が、プログラムループのループ終了インジケータを検出するための検出ユニットを含む。ループカウントをデクリメントし、述語トリガカウンタをデクリメントするためのデクリメントユニットも含む。述語トリガカウンタを基準と比較して述語値をいつセットするのか決定するための比較ユニットをさらに含む。
【選択図】図3
Description
[C1]
ループ内の1組の命令を処理する方法であって、
特定の種類のループ命令の実行時に述語値をセットする前に、前記ループの反復回数を示すための述語トリガカウンタを自動的に初期化することと、
ループの反復中に前記1組の命令を実行することと、
前記ループのループ終了インジケータの検出時にループ制御ハードウェアを自動的にトリガして前記述語トリガカウンタを修正し、前記述語トリガカウンタを基準と比較して前記述語値をいつセットするのか決定することであって、前記1組の命令の中の前記複数の命令のうちの少なくとも1つは、前記述語値に基づいて条件的に実行される、前記述語値をいつセットするのか決定することと
を備える、方法。
[C2]
前記基準はゼロ値であり、前記ループ制御ハードウェアは、前記ループ終了インジケータに応答して前記述語トリガカウンタをデクリメントする、C1に記載の方法。
[C3]
条件的に実行される前記1組の命令の中の前記複数の命令のうちの前記少なくとも1つは、出力レジスタにデータを書き込む、C1に記載の方法。
[C4]
前記1組の命令はソフトウェアパイプライン化されたループとして実行され、前記述語トリガカウンタは、前記ソフトウェアパイプライン化されたループのパイプラインステージの数に基づく、C3に記載の方法。
[C5]
ループ命令を処理する方法であって、
述語トリガカウントを含む特殊レジスタ内でループパラメータを初期化することと、
前記ループ命令を実行することと、
ループ終了インジケータを伴う命令を実行することと、
前記述語トリガカウントを修正し、ループカウントを修正することと、
前記述語トリガカウントが基準値に等しい場合、前記ループ命令のうちの少なくとも1つの実行に影響を及ぼす述語の値を変更することと
を含む、方法。
[C6]
前記ループ命令はカーネルコードを含むが、前記ループ命令はプロログ命令を含まない、C5に記載の方法。
[C7]
前記カーネルコードは、ソフトウェアパイプライン化されたループの1組の命令を含む、C6に記載の方法。
[C8]
前記基準値はゼロに等しく、前記述語トリガカウントおよび前記ループカウントは、前記ループ終了インジケータを伴う前記命令を実行することに応答してデクリメントされる、C5に記載の方法。
[C9]
前記ループ命令は、前記述語に基づいて条件的に実行される少なくとも1つの命令を含む、C5に記載の方法。
[C10]
前記ループ命令はカーネルコードを含むが、前記ループ命令はプロログ命令を含まない、C9に記載の方法。
[C11]
述語トリガカウントを記憶するための述語カウントレジスタと、
プログラムループのループパラメータを初期化するための初期化論理回路と、
前記プログラムループのループ命令を実行し、ループ終了インジケータを含むパケットを実行するためのプロセッサと、
前記述語トリガカウントを修正し、前記プログラムループのループカウントを修正するための論理回路と、
前記述語トリガカウントを基準値と比較するための比較論理回路と、
前記比較の結果に基づき、前記プログラムループの中の少なくとも1つの命令に影響を及ぼす述語の値を変えるための論理回路と
を備える、機器。
[C12]
前記初期化論理回路は、前記ループ命令を実行する前に前記述語をクリアする、C11に記載の機器。
[C13]
プログラムループのループ終了インジケータを検出するための検出ユニットと、
ループカウントをデクリメントし、述語トリガカウンタをデクリメントするためのデクリメントユニットと、
前記述語トリガカウンタを基準と比較して述語値をいつセットするのか決定するための比較ユニットと
を備える、ハードウェアループ制御論理回路。
[C14]
前記プログラムループは、前記述語値に基づいて条件的に実行可能な少なくとも1つの命令を含む、C13に記載のハードウェアループ制御論理回路。
[C15]
プログラムループのループ終了インジケータを検出するための検出ユニット、
ループカウントをデクリメントし、述語トリガカウンタをデクリメントするためのデクリメントユニット、および
前記述語トリガカウンタを基準と比較して述語値をいつセットするのか決定するための比較ユニット
を備える、ハードウェアループ制御論理回路と、
前記ハードウェアループ制御論理回路の実行をトリガする特殊命令を実行するプロセッサと
を備える、システム。
[C16]
前記特殊命令は、spNloop型命令を含み、ただしNは4より小さい正の整数であり、Nは前記述語値を変更する前に実行する前記プログラムループのループ数を示す、C15に記載のシステム。
[C17]
前記spNloop型命令の実行時に、セットされている前記述語値に先立って値が計算され、前記計算される値は記憶されない、C16に記載のシステム。
[C18]
前記spNloop型命令は、プログラムループセットアップ情報を含むデータフィールドを含む、C16に記載のシステム。
[C19]
前記検出ユニットは、前記ループ終了インジケータを検出するためにVLIW(超長命令語)パケットを構文解析するように構成され、前記デクリメントユニットは、前記ループ終了インジケータを検出するときに前記述語トリガカウンタを自動的にデクリメントするためのカウンタを含み、前記比較ユニットは、前記述語トリガカウンタの1値から0値への遷移を自動的に識別するための比較器を含む、C18に記載のシステム。
[C20]
ソフトウェアパイプラインループアプリケーションに関連して前記spNloop型命令を使用する、C16に記載のシステム。
[C21]
前記プロセッサは、前記ハードウェアループ制御論理回路を含むVLIW(超長命令語)型プロセッサであり、前記プロセッサにより、前記プログラムループの中の複数の命令が並列に実行される、C17に記載のシステム。
[C22]
Nは、プロログカウントを示す、C18に記載のシステム。
[C23]
前記プログラムループの少なくとも1つの命令は、前記述語値に基づいて条件的にデータを記憶する、C16に記載のシステム。
Claims (23)
- 述語トリガカウント、開始アドレス、およびループカウントを示す単一の初期化命令を受け取ることに応答して、前記述語トリガカウント、前記開始アドレス、および前記ループカウントを含むループパラメータを自動的に初期化することと、なお、前記述語トリガカウントは、述語命令が実行される前に実行されるべきループ反復のカウントを示すように構成される;
パケットに含まれる1つまたは複数のループ命令の反復を実行することと、なお、前記パケットは前記述語命令を含む;
前記反復を実行した後で前記パケットに含まれるループ終了インジケータを検出することと、なお、前記ループ終了インジケータは前記パケットにおいて前記1つまたは複数のループ命令の後に配置される;および
前記ループ終了インジケータを検出することに応答して、
前記述語トリガカウントを修正するように、
前記述語トリガカウントを修正した後で述語値をいつセットするのか決定するように、なお、前記述語値をセットする決定は、前記述語トリガカウントと基準との比較に基づいており、および、前記述語命令は、前記述語値に基づいて連続的な次のループ反復の間に条件的に実行される、
ループ制御ハードウェアを自動的にトリガすること;
を備える、方法。 - 前記基準はゼロ値を有し、前記ループ制御ハードウェアは、前記ループ終了インジケータを検出することに応答して前記述語トリガカウントをデクリメントする、請求項1に記載の方法。
- 前記述語トリガカウントの値を前記述語トリガカウントの示された値に初期化すること、をさらに備え、前記示された値は前記単一の初期化命令によって示される、請求項1に記載の方法。
- 前記1つまたは複数のループ命令はソフトウェアパイプライン化されたループとして実行され、前記述語トリガカウントは、前記ソフトウェアパイプライン化されたループのパイプラインステージのカウントを示す、請求項1に記載の方法。
- 述語トリガカウント、開始アドレス、およびループカウントを示す単一の初期化命令を受け取ることに応答して、前記述語トリガカウント、前記開始アドレス、および前記ループカウントを含むループパラメータを初期化することと、なお、前記述語トリガカウントは、述語カウントレジスタ内で初期化される、
パケットに含まれる1つまたは複数のループ命令の反復を実行することと、なお、前記反復は前記述語トリガカウントを初期化した後で実行される、
前記パケットに含まれるループ終了インジケータを検出することと、なお、前記ループ終了インジケータは前記反復を実行した後で検出され、前記ループ終了インジケータは前記パケットにおいて前記1つまたは複数のループ命令の後に配置される、
前記ループ終了インジケータを検出することに応答して、前記述語トリガカウントを修正することと、
基準値に等しい第1の値を有する前記述語トリガカウントに応答して、前記1つまたは複数のループ命令うちの少なくとも1つの命令の、後続の実行に影響を及ぼす述語の第2の値を変更することと
を含む、方法。 - 前記1つまたは複数のループ命令はプロログ命令を含まない、請求項5に記載の方法。
- 前記1つまたは複数のループ命令は、ソフトウェアパイプライン化されたループの1組の命令を具備するカーネルコードを含む、請求項5に記載の方法。
- 前記述語トリガカウントは、前記ループ終了インジケータを検出することに応答してデクリメントされる、請求項5に記載の方法。
- 前記少なくとも1つの命令の実行は、前記述語に基づいて条件的にデータが記憶されることをもたらす、請求項5に記載の方法。
- 前記パケットは、VLIW(超長命令語)パケットである、請求項9に記載の方法。
- 述語トリガカウントを記憶するように構成された述語カウントレジスタと、
前記述語トリガカウント、開始アドレス、およびループカウントを示す単一の初期化命令の受け取りに応答して、プログラムループのループパラメータを初期化するように構成された初期化論理回路と、なお、前記ループパラメータは、前記述語トリガカウント、前記開始アドレス、および前記ループカウントを含む、
前記プログラムループの1つまたは複数のループ命令の反復を実行するように、および前記反復を実行した後でループ終了インジケータを検出するように、構成されたプロセッサと、なお、前記1つまたは複数のループ命令および前記ループ終了インジケータは、パケットに含まれ、前記ループ終了インジケータは前記パケットにおいて前記1つまたは複数のループ命令の後に配置される、
前記ループ終了インジケータに応答して、前記述語トリガカウントを修正するように構成された第1の論理回路と、
前記述語トリガカウントを基準値と比較するように構成された比較論理回路と、
前記比較の結果に少なくとも一部基づき、述語の値を変えるように構成された第2の論理回路と、なお、前記プログラムループの中の少なくとも1つの命令は、前記述語の前記値に条件づけられて実行される、
を備える、機器。 - 前記初期化論理回路は、前記1つまたは複数のループ命令を実行する前に前記述語を初期化するように構成される、請求項11に記載の機器。
- 述語トリガカウント、開始アドレス、およびループカウントを示す単一の初期化命令の受け取りに応答して、プログラムループのループパラメータを初期化するように構成された初期化ユニットと、なお前記ループパラメータは、前記述語トリガカウント、前記開始アドレス、および前記ループカウントを含む、
前記プログラムループの1つまたは複数のループ命令の反復を実行した後で、ループ終了インジケータを検出するように構成された検出ユニットと、なお、前記1つまたは複数のループ命令および前記ループ終了インジケータはパケットに含まれ、前記ループ終了インジケータは前記パケットにおいて前記1つまたは複数のループ命令の後に配置される、
前記ループ終了インジケータの検出に応答して、前記述語トリガカウントをデクリメントするように構成されたデクリメントユニットと、
前記述語トリガカウントを基準と比較して述語値をセットするかどうか決定するように構成された比較ユニットと
を備える、ハードウェアループ制御論理回路。 - 前記プログラムループは、前記述語値に基づいて条件的に実行可能な少なくとも1つの命令を含む、請求項13に記載のハードウェアループ制御論理回路。
- システムであって、
ハードウェアループ制御論理回路の実行をトリガする特殊命令を実行するように構成されたプロセッサ、を備え、
前記ハードウェアループ制御論理回路は、
述語トリガカウント、開始アドレス、およびループカウントを示す前記特殊命令の受け取りに応答して、プログラムループのループパラメータを初期化するように構成された初期化ユニットと、なお、前記ループパラメータは、前記述語トリガカウント、前記開始アドレス、および前記ループカウントを含む、
前記プログラムループの1つまたは複数のループ命令の反復の実行の後でループ終了インジケータを検出するように構成された検出ユニットと、なお、前記1つまたは複数のループ命令および前記ループ終了インジケータはパケットに含まれ、前記ループ終了インジケータは前記パケットにおいて前記1つまたは複数のループ命令の後に配置される;
前記ループ終了インジケータに応答して、前記述語トリガカウントをデクリメントするように構成されたデクリメントユニットと、および
前記述語トリガカウントを基準と比較して述語値をセットするかどうか決定するように構成された比較ユニット
を備える、システム。 - 前記特殊命令は、spNloop型命令を含み、ただしNは4より小さい正の整数であり、Nは前記述語値をセットする前に実行されるべき前記プログラムループのループ数を示す、請求項15に記載のシステム。
- 前記spNloop型命令の実行に応答して、前記述語値をセットする前に前記プログラムループの命令に関連する値が計算され、前記値は記憶されない、請求項16に記載のシステム。
- 前記spNloop型命令は、プログラムループセットアップ情報を含むデータフィールドを含む、請求項16に記載のシステム。
- 前記検出ユニットは、前記ループ終了インジケータを検出するためにVLIW(超長命令語)パケットを構文解析するように構成され、前記デクリメントユニットは、前記ループ終了インジケータを検出するときに前記述語トリガカウントを自動的にデクリメントするように構成されている、請求項18に記載のシステム。
- ソフトウェアパイプラインループアプリケーションに関連して前記spNloop型命令を使用する、請求項16に記載のシステム。
- 前記プロセッサは、前記ハードウェアループ制御論理回路を含むVLIW(超長命令語)型プロセッサであり、前記プロセッサにより、前記プログラムループの複数の命令が並列に実行される、請求項15に記載のシステム。
- Nは、整数であり、およびNの値は、プロログカウントを示す、請求項18に記載のシステム。
- 前記プログラムループの少なくとも1つの命令の実行は、前記述語値に基づいて条件的にデータが記憶されることをもたらす、請求項15に記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/147,893 | 2008-06-27 | ||
US12/147,893 US20090327674A1 (en) | 2008-06-27 | 2008-06-27 | Loop Control System and Method |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011516552A Division JP5536052B2 (ja) | 2008-06-27 | 2009-06-24 | ループ制御システムおよび方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016076753A Division JP2016157463A (ja) | 2008-06-27 | 2016-04-06 | ループ制御システムおよび方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014170571A true JP2014170571A (ja) | 2014-09-18 |
JP5917592B2 JP5917592B2 (ja) | 2016-05-18 |
Family
ID=41306021
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011516552A Expired - Fee Related JP5536052B2 (ja) | 2008-06-27 | 2009-06-24 | ループ制御システムおよび方法 |
JP2014090336A Expired - Fee Related JP5917592B2 (ja) | 2008-06-27 | 2014-04-24 | ループ制御システムおよび方法 |
JP2016076753A Pending JP2016157463A (ja) | 2008-06-27 | 2016-04-06 | ループ制御システムおよび方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011516552A Expired - Fee Related JP5536052B2 (ja) | 2008-06-27 | 2009-06-24 | ループ制御システムおよび方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016076753A Pending JP2016157463A (ja) | 2008-06-27 | 2016-04-06 | ループ制御システムおよび方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20090327674A1 (ja) |
EP (1) | EP2304557A2 (ja) |
JP (3) | JP5536052B2 (ja) |
KR (1) | KR101334863B1 (ja) |
CN (1) | CN102067087B (ja) |
TW (1) | TW201015431A (ja) |
WO (1) | WO2009158370A2 (ja) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7991985B2 (en) * | 2006-12-22 | 2011-08-02 | Broadcom Corporation | System and method for implementing and utilizing a zero overhead loop |
US7987347B2 (en) * | 2006-12-22 | 2011-07-26 | Broadcom Corporation | System and method for implementing a zero overhead loop |
JP5300294B2 (ja) * | 2008-03-25 | 2013-09-25 | パナソニック株式会社 | 処理装置、難読化装置、プログラムおよび集積回路 |
KR101645001B1 (ko) | 2009-02-18 | 2016-08-02 | 삼성전자주식회사 | Vliw 명령어 생성 장치 및 그 방법과 vliw 명령어를 처리하는 vliw 프로세서 및 그 방법 |
EP2367102B1 (en) * | 2010-02-11 | 2013-04-10 | Nxp B.V. | Computer processor and method with increased security properties |
US10083032B2 (en) * | 2011-12-14 | 2018-09-25 | Intel Corporation | System, apparatus and method for generating a loop alignment count or a loop alignment mask |
US20140189296A1 (en) * | 2011-12-14 | 2014-07-03 | Elmoustapha Ould-Ahmed-Vall | System, apparatus and method for loop remainder mask instruction |
US9632779B2 (en) * | 2011-12-19 | 2017-04-25 | International Business Machines Corporation | Instruction predication using instruction filtering |
KR101991680B1 (ko) * | 2012-01-25 | 2019-06-21 | 삼성전자 주식회사 | 소프트웨어 파이프라인된 프로그램의 하드웨어 디버깅 장치 및 방법 |
US9038042B2 (en) * | 2012-06-29 | 2015-05-19 | Analog Devices, Inc. | Staged loop instructions |
US9280344B2 (en) * | 2012-09-27 | 2016-03-08 | Texas Instruments Incorporated | Repeated execution of instruction with field indicating trigger event, additional instruction, or trigger signal destination |
US9342306B2 (en) | 2012-10-23 | 2016-05-17 | Analog Devices Global | Predicate counter |
EP2725483A3 (en) * | 2012-10-23 | 2015-06-17 | Analog Devices Global | Predicate counter |
CN103777922B (zh) * | 2012-10-23 | 2018-05-22 | 亚德诺半导体集团 | 预测计数器 |
US9201828B2 (en) | 2012-10-23 | 2015-12-01 | Analog Devices, Inc. | Memory interconnect network architecture for vector processor |
US9830164B2 (en) * | 2013-01-29 | 2017-11-28 | Advanced Micro Devices, Inc. | Hardware and software solutions to divergent branches in a parallel pipeline |
US9633409B2 (en) * | 2013-08-26 | 2017-04-25 | Apple Inc. | GPU predication |
US20160019061A1 (en) * | 2014-07-21 | 2016-01-21 | Qualcomm Incorporated | MANAGING DATAFLOW EXECUTION OF LOOP INSTRUCTIONS BY OUT-OF-ORDER PROCESSORS (OOPs), AND RELATED CIRCUITS, METHODS, AND COMPUTER-READABLE MEDIA |
US9348595B1 (en) | 2014-12-22 | 2016-05-24 | Centipede Semi Ltd. | Run-time code parallelization with continuous monitoring of repetitive instruction sequences |
US9135015B1 (en) | 2014-12-25 | 2015-09-15 | Centipede Semi Ltd. | Run-time code parallelization with monitoring of repetitive instruction sequences during branch mis-prediction |
US9208066B1 (en) | 2015-03-04 | 2015-12-08 | Centipede Semi Ltd. | Run-time code parallelization with approximate monitoring of instruction sequences |
US10296350B2 (en) | 2015-03-31 | 2019-05-21 | Centipede Semi Ltd. | Parallelized execution of instruction sequences |
US10296346B2 (en) | 2015-03-31 | 2019-05-21 | Centipede Semi Ltd. | Parallelized execution of instruction sequences based on pre-monitoring |
US9715390B2 (en) | 2015-04-19 | 2017-07-25 | Centipede Semi Ltd. | Run-time parallelization of code execution based on an approximate register-access specification |
GB2548603B (en) * | 2016-03-23 | 2018-09-26 | Advanced Risc Mach Ltd | Program loop control |
US20180060221A1 (en) * | 2016-08-24 | 2018-03-01 | Google Inc. | Multi-layer test suite generation |
US10248908B2 (en) * | 2017-06-19 | 2019-04-02 | Google Llc | Alternative loop limits for accessing data in multi-dimensional tensors |
US11614941B2 (en) * | 2018-03-30 | 2023-03-28 | Qualcomm Incorporated | System and method for decoupling operations to accelerate processing of loop structures |
US11520570B1 (en) * | 2021-06-10 | 2022-12-06 | Xilinx, Inc. | Application-specific hardware pipeline implemented in an integrated circuit |
US11954496B2 (en) * | 2021-08-02 | 2024-04-09 | Nvidia Corporation | Reduced memory write requirements in a system on a chip using automatic store predication |
US11693666B2 (en) * | 2021-10-20 | 2023-07-04 | Arm Limited | Responding to branch misprediction for predicated-loop-terminating branch instruction |
CN117250480B (zh) * | 2023-11-08 | 2024-02-23 | 英诺达(成都)电子科技有限公司 | 组合逻辑电路的环路检测方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0863355A (ja) * | 1994-08-18 | 1996-03-08 | Mitsubishi Electric Corp | プログラム制御装置及びプログラム制御方法 |
US5794029A (en) * | 1996-08-07 | 1998-08-11 | Elbrus International Ltd. | Architectural support for execution control of prologue and eplogue periods of loops in a VLIW processor |
US20060218379A1 (en) * | 2005-03-23 | 2006-09-28 | Lucian Codrescu | Method and system for encoding variable length packets with variable instruction sizes |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5452425A (en) * | 1989-10-13 | 1995-09-19 | Texas Instruments Incorporated | Sequential constant generator system for indicating the last data word by using the end of loop bit having opposite digital state than other data words |
US5958048A (en) * | 1996-08-07 | 1999-09-28 | Elbrus International Ltd. | Architectural support for software pipelining of nested loops |
DE69936952T2 (de) * | 1998-01-28 | 2008-05-21 | Texas Instruments Inc., Dallas | Verfahren und Vorrichtung zur Verarbeitung von Programmschleifen |
US6192515B1 (en) * | 1998-07-17 | 2001-02-20 | Intel Corporation | Method for software pipelining nested loops |
US6598155B1 (en) * | 2000-01-31 | 2003-07-22 | Intel Corporation | Method and apparatus for loop buffering digital signal processing instructions |
US7302557B1 (en) * | 1999-12-27 | 2007-11-27 | Impact Technologies, Inc. | Method and apparatus for modulo scheduled loop execution in a processor architecture |
US6629238B1 (en) * | 1999-12-29 | 2003-09-30 | Intel Corporation | Predicate controlled software pipelined loop processing with prediction of predicate writing and value prediction for use in subsequent iteration |
US6754893B2 (en) * | 1999-12-29 | 2004-06-22 | Texas Instruments Incorporated | Method for collapsing the prolog and epilog of software pipelined loops |
US6892380B2 (en) * | 1999-12-30 | 2005-05-10 | Texas Instruments Incorporated | Method for software pipelining of irregular conditional control loops |
US6567895B2 (en) * | 2000-05-31 | 2003-05-20 | Texas Instruments Incorporated | Loop cache memory and cache controller for pipelined microprocessors |
GB2367406B (en) * | 2000-06-13 | 2002-06-05 | Siroyan Ltd | Predicated execution of instructions in processors |
US6615403B1 (en) * | 2000-06-30 | 2003-09-02 | Intel Corporation | Compare speculation in software-pipelined loops |
US6912709B2 (en) * | 2000-12-29 | 2005-06-28 | Intel Corporation | Mechanism to avoid explicit prologs in software pipelined do-while loops |
US6986131B2 (en) * | 2002-06-18 | 2006-01-10 | Hewlett-Packard Development Company, L.P. | Method and apparatus for efficient code generation for modulo scheduled uncounted loops |
US7269719B2 (en) * | 2002-10-30 | 2007-09-11 | Stmicroelectronics, Inc. | Predicated execution using operand predicates |
US20040221283A1 (en) * | 2003-04-30 | 2004-11-04 | Worley Christopher S. | Enhanced, modulo-scheduled-loop extensions |
US7020769B2 (en) * | 2003-09-30 | 2006-03-28 | Starcore, Llc | Method and system for processing a loop of instructions |
US7406590B2 (en) * | 2004-02-25 | 2008-07-29 | Analog Devices, Inc. | Methods and apparatus for early loop bottom detection in digital signal processors |
US7673294B2 (en) * | 2005-01-18 | 2010-03-02 | Texas Instruments Incorporated | Mechanism for pipelining loops with irregular loop control |
US7991984B2 (en) * | 2005-02-17 | 2011-08-02 | Samsung Electronics Co., Ltd. | System and method for executing loops in a processor |
US20060190710A1 (en) * | 2005-02-24 | 2006-08-24 | Bohuslav Rychlik | Suppressing update of a branch history register by loop-ending branches |
GB0524720D0 (en) * | 2005-12-05 | 2006-01-11 | Imec Inter Uni Micro Electr | Ultra low power ASIP architecture II |
US20070266229A1 (en) * | 2006-05-10 | 2007-11-15 | Erich Plondke | Encoding hardware end loop information onto an instruction |
US20080040591A1 (en) * | 2006-08-11 | 2008-02-14 | Moyer William C | Method for determining branch target buffer (btb) allocation for branch instructions |
-
2008
- 2008-06-27 US US12/147,893 patent/US20090327674A1/en not_active Abandoned
-
2009
- 2009-06-24 EP EP09770903A patent/EP2304557A2/en not_active Ceased
- 2009-06-24 KR KR1020117002173A patent/KR101334863B1/ko not_active IP Right Cessation
- 2009-06-24 CN CN200980123763.2A patent/CN102067087B/zh not_active Expired - Fee Related
- 2009-06-24 JP JP2011516552A patent/JP5536052B2/ja not_active Expired - Fee Related
- 2009-06-24 WO PCT/US2009/048370 patent/WO2009158370A2/en active Application Filing
- 2009-06-26 TW TW098121712A patent/TW201015431A/zh unknown
-
2014
- 2014-04-24 JP JP2014090336A patent/JP5917592B2/ja not_active Expired - Fee Related
-
2016
- 2016-04-06 JP JP2016076753A patent/JP2016157463A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0863355A (ja) * | 1994-08-18 | 1996-03-08 | Mitsubishi Electric Corp | プログラム制御装置及びプログラム制御方法 |
US5794029A (en) * | 1996-08-07 | 1998-08-11 | Elbrus International Ltd. | Architectural support for execution control of prologue and eplogue periods of loops in a VLIW processor |
US20060218379A1 (en) * | 2005-03-23 | 2006-09-28 | Lucian Codrescu | Method and system for encoding variable length packets with variable instruction sizes |
Also Published As
Publication number | Publication date |
---|---|
KR20110034656A (ko) | 2011-04-05 |
JP2016157463A (ja) | 2016-09-01 |
JP5536052B2 (ja) | 2014-07-02 |
JP2011526045A (ja) | 2011-09-29 |
KR101334863B1 (ko) | 2013-12-02 |
JP5917592B2 (ja) | 2016-05-18 |
CN102067087B (zh) | 2014-04-23 |
CN102067087A (zh) | 2011-05-18 |
US20090327674A1 (en) | 2009-12-31 |
EP2304557A2 (en) | 2011-04-06 |
WO2009158370A3 (en) | 2010-02-25 |
TW201015431A (en) | 2010-04-16 |
WO2009158370A2 (en) | 2009-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5917592B2 (ja) | ループ制御システムおよび方法 | |
JP2011526045A5 (ja) | ||
JP6345623B2 (ja) | 条件付き非ブランチング命令の非実行を予測するための方法および機器 | |
TWI489779B (zh) | 狀態機晶格中之布林邏輯 | |
JP7241121B2 (ja) | 循環命令の処理方法、電子機器、コンピュータ可読記憶媒体及びコンピュータプログラム | |
KR101290493B1 (ko) | 선형 피드백-쉬프트 명령을 실행하기 위한 시스템 및 방법 | |
US8843730B2 (en) | Executing instruction packet with multiple instructions with same destination by performing logical operation on results of instructions and storing the result to the destination | |
TW201342225A (zh) | 用於使用觸發來決定指令順序之方法 | |
JP5759537B2 (ja) | 命令としてデータ値を評価するシステムおよび方法 | |
TW201908966A (zh) | 針對固定方向分支指令的分支預測 | |
JP3738253B2 (ja) | プログラム・ループを並列に処理する方法および装置 | |
KR100536018B1 (ko) | 하드웨어 루프 | |
EP2542963B1 (en) | System and method of processing hierarchical very long instruction packets | |
US20110296143A1 (en) | Pipeline processor and an equal model conservation method | |
KR20030061002A (ko) | 추측 레지스터 조정 방법 및 장치 | |
CN114385306A (zh) | 指令序列原子性修改方法、装置及可读存储介质 | |
US20170052782A1 (en) | Delayed zero-overhead loop instruction | |
JP2014059665A (ja) | マイクロコンピュータ及びマイクロコンピュータにおける命令処理方法 | |
JP2012221086A (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150722 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150804 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20151104 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20151204 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20160104 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160202 |
|
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: 20160308 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160406 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5917592 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |