JP2014010832A - ステージド・ループ命令 - Google Patents
ステージド・ループ命令 Download PDFInfo
- Publication number
- JP2014010832A JP2014010832A JP2013124943A JP2013124943A JP2014010832A JP 2014010832 A JP2014010832 A JP 2014010832A JP 2013124943 A JP2013124943 A JP 2013124943A JP 2013124943 A JP2013124943 A JP 2013124943A JP 2014010832 A JP2014010832 A JP 2014010832A
- Authority
- JP
- Japan
- Prior art keywords
- loop
- instruction
- instructions
- stage
- kernel
- 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
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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
- G06F9/381—Loop buffering
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/443—Optimisation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/451—Code distribution
- G06F8/452—Loops
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
ハードウェア並列性の効率的な使用
【解決手段】ループ命令が分析されて、それらの間の依存性および利用可能なマシンリソースに基づいて、ステージ番号が割り当てられる。ループ命令は、そのステージ番号に基づいて選択的に実行され、それによって明示的なループセットアップ命令およびループテアダウン命令を不要にする。単一命令多重データ(SIMD)マシン上で、各命令の最終インスタンスは、オリジナルループの反復数に応じて、処理要素またはベクトル要素のサブセット上で実行してもよい。
【選択図】図1
Description
本明細書においては、効率的にループカーネルをセットアップおよびテアダウンするために、どの命令を、どの順序で、実行しなければならないかに関する追加の情報を、ループカーネル命令、またはループ命令のグループにタグ付けすることによって、複数の処理要素または機能ユニットを有する、コンピュータシステム上でループを走らせる方法およびシステムの様々な態様を記載する。プロセッサが命令を受け取ると、タグ情報を分析し、それに基づいて、ループカーネルを実行する前後に、ループカーネル情報のあるものを実行し、それによって明示的なループセットアップ/テアダウン命令を不要にする。例えば、コンパイラは、ループ内のいくつかの命令に[0]タグを、その他の命令に[1]タグを、さらに他の命令に[2]タグをタグ付けしてもよく、非常におおざっぱには、以下でより詳細に説明するように、タグ付けされたグループ内の命令は、命令レベル並列性を示し、より大きい番号でタグ付けされたグループにおける命令は、より小さい番号のグループにおける命令の出力に依存することがある。ループの最初の反復において、プロセッサは、[0]をタグ付けされた命令を(並列に)実行し、第2の反復において、[0]または[1]をタグ付けされた命令を、そして第3および後続の反復において、すべての命令(すなわち、[0]、[1]または[2]のいずれかをタグ付けされた命令)を実行してもよい。ループの最後から2番目の反復において、プロセッサは、[1]または[2]をタグ付けされた命令だけを実行し、ループの最終反復において、[2]をタグ付けされた命令だけを実行してもよい。以下でより詳細に説明するように、この簡単な例を、より複雑なループおよび/またはプロセッサアーキテクチャに拡張することができる。
for(i=1;i<=3;i++{
a[0];c[1];d[2];//第1サイクルで実行
b[0]; e[2];//第2サイクルで実行
}
for(i=1;i<=7;i++){
a;b;c;
}
すなわち、直截的な場合においては、3つの命令a、b、cは、それぞれ3つのステージ番号[0]、[1]、[3]を割り当てて、図2に示した上記の例200と同様の方法で、ループを走らせてもよい。
for(i=1;i<=7;i+=2){
a[0];b[1];c[3];
a[-1];b[0];c[2];
}
for(i=1;i<=7;i++){
a[1];c[0];
b[0];d[1];
}
ここで7は、2の偶数倍数ではないので、ループの4回の反復が、第1の処理要素502に送られて、3つの命令が第2の処理要素504に送られる。このステージ[0]命令は、ステージ閾値に応じて、第1のステージ506において実行を始め、ループカーネル508は、後続のステージにおいて実行される。カーネル508は、最初に第2のプロセッサ504上に出て、その間に、追加の反復を第1のプロセッサ502上で走らせる。両方のプロセッサ502、504は、最終反復510においてステージ[1]を実行する。
Claims (16)
- コンピュータプロセッサによってループを実行する方法であって、
前記ループ用のループカーネル命令であって、それぞれがそれに関連するステージ番号を有するループカーネル命令を、前記コンピュータプロセッサのメモリにロードすること;
前記ループの各反復中に、ステージ閾値を判定すること;
前記ステージ閾値およびステージ番号に基づいて、前記ループカーネル命令のサブセットを実行することによってループプロログを実行すること;
前記ループカーネル命令を繰り返し実行することによってループカーネルを実行すること;
前記ステージ閾値およびステージ番号に基づいて、前記ループカーネル命令のサブセットの内の第2のセットを実行することによって、ループエピログを実行すること
を含む、前記方法。 - コンピュータプロセッサがスカラープロセッサであって、ループカーネル命令が、命令レベル並列性またはマルチサイクルレーテンシを有する命令を含み、前記ループカーネル命令がソフトウェアパイプライン化されている、請求項1に記載の方法。
- ステージ番号が、アンロールされたループカーネルの各コピーに応じて調節される、請求項1に記載の方法。
- ループ命令の最終的な実行は、ループの初期の反復におけるよりも、より少ない処理要素またはベクトル要素上で行われる、請求項1に記載の方法。
- より少ない処理要素またはベクトル要素が、各処理要素またはベクトル要素を制御するマスクビットに応じて選択される、請求項4に記載の方法。
- ステージ閾値に関する情報を含む、ループセットアップ命令を受け取ることをさらに含む、請求項1に記載の方法。
- ループセットアップ命令が、合計ループ数、ループ命令を実行するのに使用する処理要素の数、ステージ数、またはループアンロール係数を含む、請求項6に記載の方法。
- ループエピログ、ループカーネル、およびループプロログを実行することが、命令ステージ番号をコンピュータプロセッサ内のステージ閾値と比較することを含む、請求項1に記載の方法。
- コンピュータ実行可能なループ命令を実行するシステムであって、
ループ情報を含むループセットアップ命令を受け取るためのシーケンサ;
ステージ閾値に関係するデータであって、前記ループ情報から導出されるデータを記憶する、1つまたは2つ以上のレジスタ;および
(i)前記ループカーネル命令に関連する前記ステージ閾値およびステージ番号に基づいて、受け取ったループカーネル命令のサブセットを実行することによって、ループプロログを実行し、(ii)前記ループカーネル命令を繰り返し実行することによって、ループカーネルを、また(iii)前記ステージ閾値およびステージ番号に基づいて、前記ループカーネル命令のサブセットの第2のセットを実行することによって、ループエピログを実行する、処理要素
を含む、前記システム。 - レジスタがステージマスクレジスタまたはステージ閾値レジスタを含む、請求項9に記載のシステム。
- ループカーネル命令を実行する少なくとも1つの追加の処理要素、または複数データ要素を並列に処理するためのベクトル命令をさらに含む、請求項9に記載のシステム。
- 命令の最終実行中に、処理要素またはベクトル要素のサブセットだけが、ループカーネル命令を実行する、請求項11に記載のシステム。
- マスクレジスタが、最終反復においてループカーネル命令を実行することに関係した情報を記憶する、請求項12に記載のシステム。
- ループ情報が、合計ループ数、ループ命令を実行するのに使用する処理要素の数、ステージ数、またはループアンロール係数を含む、請求項9に記載のシステム。
- ループ数を記憶するループ数レジスタをさらに含む、請求項9に記載のシステム。
- ループ数が、合計ループ数を、ループ命令を実行するのに使用する処理要素の数で割ることによって導出されて、ステージ数に応じて調節されるとともに、ループアンロール係数に応じて丸められる、請求項15に記載のシステム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US13/537,731 | 2012-06-29 | ||
| US13/537,731 US9038042B2 (en) | 2012-06-29 | 2012-06-29 | Staged loop instructions |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2014010832A true JP2014010832A (ja) | 2014-01-20 |
| JP5882950B2 JP5882950B2 (ja) | 2016-03-09 |
Family
ID=48670409
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2013124943A Active JP5882950B2 (ja) | 2012-06-29 | 2013-06-13 | ステージド・ループ命令 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US9038042B2 (ja) |
| EP (1) | EP2680132B1 (ja) |
| JP (1) | JP5882950B2 (ja) |
| CN (1) | CN103530088B (ja) |
Families Citing this family (33)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101962248B1 (ko) * | 2012-03-16 | 2019-03-27 | 삼성전자주식회사 | 재구성 가능 프로세서의 검증 지원 장치 및 방법 |
| US9244677B2 (en) | 2012-09-28 | 2016-01-26 | Intel Corporation | Loop vectorization methods and apparatus |
| US10585801B2 (en) | 2012-11-26 | 2020-03-10 | Advanced Micro Devices, Inc. | Prefetch kernels on a graphics processing unit |
| US9459871B2 (en) * | 2012-12-31 | 2016-10-04 | Intel Corporation | System of improved loop detection and execution |
| EP2972781A4 (en) | 2013-03-15 | 2016-10-19 | Intel Corp | METHOD AND SYSTEMS FOR VECTORIZING SCALAR COMPUTER PROGRAM GRINDINGS WITH GRINDING DEPENDENCIES |
| CN103942158B (zh) * | 2014-02-17 | 2017-08-25 | 上海新储集成电路有限公司 | 一种具有智能优化循环指令模块功能的自学习系统 |
| JP6245031B2 (ja) * | 2014-03-27 | 2017-12-13 | 富士通株式会社 | コンパイルプログラム、コンパイル方法およびコンパイル装置 |
| GB2524126B (en) * | 2014-08-28 | 2016-07-27 | Imagination Tech Ltd | Combining paths |
| CN104317572B (zh) * | 2014-09-30 | 2017-05-24 | 南京大学 | 一种实时系统的循环边界内向分析方法 |
| CN107193535B (zh) * | 2017-05-16 | 2019-11-08 | 中国人民解放军信息工程大学 | 基于simd扩展部件的嵌套循环向量并行的实现方法及其装置 |
| EP3776241B1 (en) * | 2018-03-31 | 2023-06-28 | Micron Technology, Inc. | Loop thread order execution control of a multi-threaded, self-scheduling reconfigurable computing fabric |
| CN109086049B (zh) * | 2018-07-25 | 2021-11-02 | 北京金和网络股份有限公司 | 遍历用户在线状态数据的方法 |
| US10691430B2 (en) * | 2018-08-27 | 2020-06-23 | Intel Corporation | Latency scheduling mehanism |
| JP2021039658A (ja) * | 2019-09-05 | 2021-03-11 | 富士通株式会社 | Ac並列化回路、ac並列化方法及び並列情報処理装置 |
| US11366646B2 (en) * | 2020-01-23 | 2022-06-21 | Huawei Technologies Co., Ltd. | Method and apparatus for predicting and scheduling copy instruction for software pipelined loops |
| WO2021161532A1 (ja) * | 2020-02-14 | 2021-08-19 | 日本電気株式会社 | ループアンローリング処理装置、方法およびプログラム |
| US20230110355A1 (en) * | 2020-02-14 | 2023-04-13 | Nec Corporation | Loop unrolling processing apparatus, method, and program |
| US11340958B2 (en) | 2020-07-08 | 2022-05-24 | Vmware, Inc. | Real-time simulation of compute accelerator workloads for distributed resource scheduling |
| JP7653021B2 (ja) * | 2021-05-28 | 2025-03-28 | 富士通株式会社 | コンパイラ、コンパイル方法、及びコンパイラ装置 |
| US11782725B2 (en) * | 2021-08-16 | 2023-10-10 | Micron Technology, Inc. | Mask field propagation among memory-compute tiles in a reconfigurable architecture |
| US12436750B2 (en) * | 2021-11-24 | 2025-10-07 | International Business Machines Corporation | Selecting an epilogue vectorization factor for use in computer processing |
| US12182552B2 (en) * | 2022-05-24 | 2024-12-31 | Xilinx, Inc. | Splitting vector processing loops with an unknown trip count |
| US12493466B1 (en) | 2023-08-30 | 2025-12-09 | Ventana Micro Systems Inc. | Microprocessor that builds inconsistent loop that iteration count unrolled loop multi-fetch block macro-op cache entries |
| US12498928B1 (en) | 2023-08-30 | 2025-12-16 | Ventana Micro Systems Inc. | Microprocessor that builds multi-fetch block macro-op cache entries in two-stage process |
| US12450067B1 (en) | 2023-08-30 | 2025-10-21 | Ventana Micro Systems Inc. | Microprocessor that performs selective multi-fetch block macro-op cache entry invalidation |
| US12498926B1 (en) | 2023-08-30 | 2025-12-16 | Ventana Micro Systems Inc. | Microprocessor that builds consistent loop iteration count unrolled loop multi-fetch block macro-op cache entries |
| US12498927B1 (en) * | 2023-08-30 | 2025-12-16 | Ventana Micro Systems Inc. | Microprocessor that allows same-fetch block start address co-residence of unrolled loop multi-fetch block macro-op cache entry and loop body macro-op cache entry used to build same |
| US12498929B1 (en) | 2022-11-03 | 2025-12-16 | Ventana Micro Systems Inc. | Microprocessor that performs partial fallback abort processing of multi-fetch block macro-op cache entries |
| US12450066B1 (en) | 2023-08-30 | 2025-10-21 | Ventana Micro Systems Inc. | Microprocessor that builds sequential multi-fetch block macro-op cache entries |
| US12493469B1 (en) | 2023-08-30 | 2025-12-09 | Ventana Micro Systems Inc. | Microprocessor that extends sequential multi-fetch block macro-op cache entries |
| US12498933B1 (en) | 2023-08-30 | 2025-12-16 | Ventana Micro Systems Inc. | Prediction unit that predicts successor fetch block start address of multi-fetch block macro-op cache entry |
| US12487926B1 (en) | 2023-08-30 | 2025-12-02 | Ventana Micro Systems Inc. | Prediction unit that predicts branch history update information produced by multi-fetch block macro-op cache entry |
| US12493468B1 (en) | 2023-08-30 | 2025-12-09 | Ventana Micro Systems Inc. | Microprocessor that performs mid-macro-op cache entry restart abort processing |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003108387A (ja) * | 2001-09-27 | 2003-04-11 | Toshiba Corp | ソフトウエア・パイプライニング処理方法及びソフトウエア・パイプライニング処理装置 |
| US7302557B1 (en) * | 1999-12-27 | 2007-11-27 | Impact Technologies, Inc. | Method and apparatus for modulo scheduled loop execution in a processor architecture |
| JP2009230338A (ja) * | 2008-03-21 | 2009-10-08 | Fujitsu Ltd | プロセサおよび情報処理装置 |
| JP2011526045A (ja) * | 2008-06-27 | 2011-09-29 | クゥアルコム・インコーポレイテッド | ループ制御システムおよび方法 |
Family Cites Families (30)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5920724A (en) * | 1996-03-28 | 1999-07-06 | Intel Corporation | Software pipelining a hyperblock loop |
| US6289443B1 (en) | 1998-01-28 | 2001-09-11 | Texas Instruments Incorporated | Self-priming loop execution for loop prolog instruction |
| US6954927B2 (en) * | 1999-02-17 | 2005-10-11 | Elbrus International | Hardware supported software pipelined loop prologue optimization |
| US6820250B2 (en) * | 1999-06-07 | 2004-11-16 | Intel Corporation | Mechanism for software pipelining loop nests |
| US6754893B2 (en) | 1999-12-29 | 2004-06-22 | Texas Instruments Incorporated | Method for collapsing the prolog and epilog of software pipelined loops |
| 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 |
| US6567895B2 (en) | 2000-05-31 | 2003-05-20 | Texas Instruments Incorporated | Loop cache memory and cache controller for pipelined microprocessors |
| 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 |
| US20020144092A1 (en) * | 2001-01-31 | 2002-10-03 | Siroyan Limited. | Handling of loops in processors |
| GB2398411B (en) * | 2001-10-12 | 2005-04-27 | Pts Corp | Processors and compiling methods for processors |
| US7415601B2 (en) | 2002-06-28 | 2008-08-19 | Motorola, Inc. | Method and apparatus for elimination of prolog and epilog instructions in a vector processor using data validity tags and sink counters |
| US7159099B2 (en) * | 2002-06-28 | 2007-01-02 | Motorola, Inc. | Streaming vector processor with reconfigurable interconnection switch |
| JP3847672B2 (ja) * | 2002-07-03 | 2006-11-22 | 松下電器産業株式会社 | コンパイラ装置及びコンパイル方法 |
| JP3958662B2 (ja) | 2002-09-25 | 2007-08-15 | 松下電器産業株式会社 | プロセッサ |
| JP3974063B2 (ja) | 2003-03-24 | 2007-09-12 | 松下電器産業株式会社 | プロセッサおよびコンパイラ |
| US7631305B2 (en) * | 2003-09-19 | 2009-12-08 | University Of Delaware | Methods and products for processing loop nests |
| US7168070B2 (en) | 2004-05-25 | 2007-01-23 | International Business Machines Corporation | Aggregate bandwidth through management using insertion of reset instructions for cache-to-cache data transfer |
| US20050283772A1 (en) * | 2004-06-22 | 2005-12-22 | Kalyan Muthukumar | Determination of loop unrolling factor for software loops |
| US7669042B2 (en) * | 2005-02-17 | 2010-02-23 | Samsung Electronics Co., Ltd. | Pipeline controller for context-based operation reconfigurable instruction set processor |
| US7721267B2 (en) * | 2005-05-16 | 2010-05-18 | Texas Instruments Incorporated | Efficient protocol for encoding software pipelined loop when PC trace is enabled |
| US7778494B2 (en) | 2005-10-13 | 2010-08-17 | Texas Instruments Incorporated | FIR-based interpolation in advanced video codecs on VLIW processor |
| US7984431B2 (en) * | 2007-03-31 | 2011-07-19 | Intel Corporation | Method and apparatus for exploiting thread-level parallelism |
| US7813567B2 (en) * | 2007-04-26 | 2010-10-12 | Texas Instruments Incorporated | Method of CABAC significance MAP decoding suitable for use on VLIW data processors |
| US8213511B2 (en) | 2007-04-30 | 2012-07-03 | Texas Instruments Incorporated | Video encoder software architecture for VLIW cores incorporating inter prediction and intra prediction |
| US8136107B2 (en) * | 2007-10-24 | 2012-03-13 | International Business Machines Corporation | Software pipelining using one or more vector registers |
| WO2010033622A2 (en) | 2008-09-17 | 2010-03-25 | Reservoir Labs, Inc. | Methods and apparatus for joint parallelism and locality optimization in source code compilation |
| WO2013089749A1 (en) * | 2011-12-15 | 2013-06-20 | Intel Corporation | Methods to optimize a program loop via vector instructions using a shuffle table and a mask store table |
| US8949809B2 (en) * | 2012-03-01 | 2015-02-03 | International Business Machines Corporation | Automatic pipeline parallelization of sequential code |
| US9239712B2 (en) * | 2013-03-29 | 2016-01-19 | Intel Corporation | Software pipelining at runtime |
-
2012
- 2012-06-29 US US13/537,731 patent/US9038042B2/en active Active
-
2013
- 2013-06-13 JP JP2013124943A patent/JP5882950B2/ja active Active
- 2013-06-17 EP EP13172329.8A patent/EP2680132B1/en active Active
- 2013-06-28 CN CN201310268022.1A patent/CN103530088B/zh active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7302557B1 (en) * | 1999-12-27 | 2007-11-27 | Impact Technologies, Inc. | Method and apparatus for modulo scheduled loop execution in a processor architecture |
| JP2003108387A (ja) * | 2001-09-27 | 2003-04-11 | Toshiba Corp | ソフトウエア・パイプライニング処理方法及びソフトウエア・パイプライニング処理装置 |
| JP2009230338A (ja) * | 2008-03-21 | 2009-10-08 | Fujitsu Ltd | プロセサおよび情報処理装置 |
| JP2011526045A (ja) * | 2008-06-27 | 2011-09-29 | クゥアルコム・インコーポレイテッド | ループ制御システムおよび方法 |
Non-Patent Citations (3)
| Title |
|---|
| JPN6015017249; 中田育男,森公一郎: 'リターゲッタブルコード生成' コンピュータソフトウェア 第25巻,第1号, 20081205, Pages:47〜64, 日本ソフトウェア科学会 * |
| JPN6015017250; IA-64 アプリケーション・デベロッパーズ・アーキテクチャ・ガイド 資料番号:245188J-001 , 199905, Pages:4の32〜4の36,7の11〜7の14, Intel Corporation * |
| JPN6016000654; B. Ramakrishna Rau, Michael S. Schlansker, P. P. Tirumalai: 'Code Generation Schema for Modulo Scheduled Loops' Proceedings of the 25th Annual International Symposium on Microarchitecture , 19921201, Pages:158-169, IEEE * |
Also Published As
| Publication number | Publication date |
|---|---|
| CN103530088A (zh) | 2014-01-22 |
| JP5882950B2 (ja) | 2016-03-09 |
| US20140007061A1 (en) | 2014-01-02 |
| EP2680132B1 (en) | 2018-08-01 |
| US9038042B2 (en) | 2015-05-19 |
| CN103530088B (zh) | 2016-08-17 |
| EP2680132A3 (en) | 2016-01-06 |
| EP2680132A2 (en) | 2014-01-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5882950B2 (ja) | ステージド・ループ命令 | |
| JP4042604B2 (ja) | プログラム並列化装置,プログラム並列化方法およびプログラム並列化プログラム | |
| US5854934A (en) | Optimizing compiler having data cache prefetch spreading | |
| US9766894B2 (en) | Method and apparatus for enabling a processor to generate pipeline control signals | |
| US8214831B2 (en) | Runtime dependence-aware scheduling using assist thread | |
| KR101559090B1 (ko) | 이종 코어를 위한 자동 커널 마이그레이션 | |
| KR102204282B1 (ko) | 다수의 기능 유닛을 가지는 프로세서를 위한 루프 스케쥴링 방법 | |
| US9639371B2 (en) | Solution to divergent branches in a SIMD core using hardware pointers | |
| EP2951682B1 (en) | Hardware and software solutions to divergent branches in a parallel pipeline | |
| JP6245031B2 (ja) | コンパイルプログラム、コンパイル方法およびコンパイル装置 | |
| KR102379894B1 (ko) | 벡터 연산들 수행시의 어드레스 충돌 관리 장치 및 방법 | |
| JP2018519602A (ja) | 連続ブロックの並列実行を有するブロックベースアーキテクチャ | |
| US9354850B2 (en) | Method and apparatus for instruction scheduling using software pipelining | |
| US11714619B2 (en) | Method and apparatus for retaining optimal width vector operations in arbitrary/flexible vector width architecture | |
| CN113853583B (zh) | 用于使用向量索引寄存器来寻址向量元素的多通道解决方案 | |
| US20050257200A1 (en) | Generating code for a configurable microprocessor | |
| JP2021507374A (ja) | 命令を実行するためのシステム及び方法 | |
| KR102161055B1 (ko) | 소프트웨어 파이프라이닝을 이용한 명령어 스케줄링 방법 및 장치 | |
| US20250181334A1 (en) | Loop pipelining semantics using structured control flow (scf) operations with explicitly passed-in asynchronous tokens | |
| JPH06290057A (ja) | ループ最適化方法 | |
| Sura et al. | Using multiple threads to accelerate single thread performance | |
| Gray et al. | Static instruction scheduling for the HARP multiple-instruction-issue architecture |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140716 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150421 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150512 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20150812 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20150914 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151013 |
|
| 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: 20160113 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160204 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 5882950 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |