JP2009053861A - プログラム実行制御装置 - Google Patents
プログラム実行制御装置 Download PDFInfo
- Publication number
- JP2009053861A JP2009053861A JP2007218827A JP2007218827A JP2009053861A JP 2009053861 A JP2009053861 A JP 2009053861A JP 2007218827 A JP2007218827 A JP 2007218827A JP 2007218827 A JP2007218827 A JP 2007218827A JP 2009053861 A JP2009053861 A JP 2009053861A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- loop
- branch
- branch instruction
- execution
- 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
- 238000012545 processing Methods 0.000 claims abstract description 53
- 238000000034 method Methods 0.000 claims description 39
- 230000008569 process Effects 0.000 claims description 14
- 230000008859 change Effects 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 7
- 238000012804 iterative process Methods 0.000 claims 1
- 230000006872 improvement Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 12
- 239000000872 buffer Substances 0.000 description 8
- 230000015556 catabolic process Effects 0.000 description 8
- 238000006731 degradation reaction Methods 0.000 description 8
- 230000007704 transition Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 230000007423 decrease Effects 0.000 description 5
- 230000006866 deterioration Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000001629 suppression 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/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/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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3844—Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
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)
Abstract
【解決手段】命令の条件実行のためのプレディケート機能を有するプロセッサによるプログラムの実行を制御するプログラム実行制御装置であって、プログラムは、ループ処理における繰り返しを制御するための分岐命令を含み、分岐命令は、さらに、ループ処理の1回後の繰り返し時に当該分岐命令を実行するか否かを示す実行可否条件を生成し、実行可否条件を、分岐命令を条件実行させるためのプレディケートフラグに反映させる命令であり、プログラム実行制御装置は、前記分岐命令の実行サイクルよりも前に、前記プレディケートフラグに反映された前記実行可否条件をもとに、当該分岐命令以降の命令実行のためにプロセッサの状態を先行的に変更するループ分岐予測装置38を備える。
【選択図】図1
Description
図1は、本発明の第1の実施形態に係るプロセッサの構成を示すブロック図である。
命令フェッチ装置31は、命令メモリ32に記憶されている命令をフェッチする処理部である。命令フェッチ装置31は、命令が記憶されている命令メモリ32のアドレスである命令フェッチアドレスを、命令メモリ32に対して送出する。命令メモリ32は、受け取った命令フェッチアドレスに記憶されている命令を、命令フェッチ装置31に対して出力する。命令フェッチ装置31は、受け取った命令を場合に応じて並べ替え、命令デコード装置33に供給する。
命令実行装置34は、算術論理演算器(ALU)および積和演算器(MAC)等の演算器ならびに各命令の動作を実現する専用回路から構成される処理部である。命令実行装置34は、命令デコード装置33から入力される命令に応じた制御信号の指示に基づき、レジスタファイル35やデータメモリ36との間で演算用データの入力を行い、これに対して演算を施し、命令に応じて演算結果をレジスタファイル35やデータメモリ36に出力する。
命令フェッチ装置31は、フェッチ用プログラムカウンタ41と、セレクタ42と、加算器43と、分岐ターゲットアドレス生成部44と、命令割当て装置45とを含む。
プレディケートフラグ制御装置37は、複数のプレディケートフラグレジスタ52と、マルチプレクサ53とを含む。
命令フェッチ装置31内のフェッチ用プログラムカウンタ(PC)41は、命令フェッチのためのアドレスを格納するレジスタである。フェッチ用プログラムカウンタ41から送出されたフェッチ用アドレスに基づき、命令メモリ32は、当該フェッチ用アドレスに記憶されている命令を命令フェッチ装置31に出力する。
命令フェッチ装置31は、フェッチ用プログラムカウンタ41を参照し、命令メモリ32より命令をフェッチする(S1)。命令デコード装置33は、供給された命令をデコードする(S2)。
まず説明の簡単のために、プロセッサのパイプラインステージを図7に示す構成とし、プログラムは図8のようにループ内が3サイクル(3命令)である場合について説明する。
ループ最終周の2周前である「BLOOP(#N−2)」の命令により、R4レジスタは2減算され0となる。
命令フェッチ装置31では、後続のアドレスに対する命令フェッチを継続し、この命令フェッチは分岐予測により有効となるため、分岐最終周における命令フェッチのミスペナルティは発生しない。
図12と図13に2重ループを含むプログラムの一例を示す。図12は、C言語により記述されたプログラムであり、図13は図12に示したプログラムに対応するアセンブリプログラムである。
第2の実施形態は、プロセッサの処理状態として、電力状態を変更することを特徴とする。
第2の実施形態に係るプロセッサは、図1に示した第1の実施形態に係るプロセッサの構成に加え、電力制御装置71を備えたものである。
図17に、電力制御装置71の構成例を示す。ループ最終周フラグの値を反転させるインバータ71aと、インバータ71aの出力と、ループ実行中であることを示すループ実行中信号との論理積を演算するANDゲート71bと、ANDゲート71bの出力を反転させるインバータ71cとを含む。
第3の実施形態は、プロセッサの処理状態として、命令発行制約を変更することを特徴とする。
第3の実施形態に係るプロセッサは、図1に示した第1の実施形態に係るプロセッサの構成に加え、命令発行制御装置101を備えたものである。
32 命令メモリ
33 命令デコード装置
34 命令実行装置
35 レジスタファイル
36 データメモリ
37 プレディケートフラグ制御装置
38 ループ分岐予測装置
52 プレディケートフラグレジスタ
54 ループ最終周フラグレジスタ
71 電力制御装置
101 命令発行制御装置
Claims (11)
- 命令の条件実行のためのプレディケート機能を有するプロセッサによるプログラムの実行を制御するプログラム実行制御装置であって、
前記プログラムは、ループ処理における繰り返しを制御するための分岐命令を含み、
前記分岐命令は、さらに、ループ処理の1回後の繰り返し時に当該分岐命令を実行するか否かを示す実行可否条件を生成し、当該実行可否条件を、当該分岐命令を条件実行させるためのプレディケートフラグに反映させる命令であり、
前記プログラム実行制御装置は、
前記分岐命令の実行サイクルよりも前に、前記プレディケートフラグに反映された前記実行可否条件をもとに、当該分岐命令以降の命令実行のためにプロセッサの状態を先行的に変更するプロセッサ状態変更手段を備える
ことを特徴とするプログラム実行制御装置。 - 前記プロセッサ状態変更手段は、前記プレディケートフラグが分岐命令が実行されないことを示している場合には、当該分岐命令の実行サイクルよりも前に、前記分岐命令以降の命令を前記プロセッサにフェッチさせる
ことを特徴とする請求項1に記載のプログラム実行制御装置。 - 前記プロセッサ状態変更手段は、前記プレディケートフラグが分岐命令が実行されることを示している場合には、前記プログラムを記憶しているメモリへの電力供給またはクロック供給を停止させ、前記プレディケートフラグが分岐命令が実行されないことを示している場合には、当該分岐命令の実行サイクルよりも前に、前記メモリへの電力供給またはクロック供給を再開させる
ことを特徴とする請求項1に記載のプログラム実行制御装置。 - 前記プロセッサ状態変更手段は、前記プレディケートフラグが示す実行可否条件に応じて、前記プロセッサによる命令発行に関する制約条件を変更する
ことを特徴とする請求項1に記載のプログラム実行制御装置。 - 前記プロセッサ状態変更手段は、前記プレディケートフラグに基づいて、ループ処理における繰り返し処理の最終周を判断し、最終周の繰り返し処理を実行した後は、当該分岐命令により制御されるループ処理に対する処理を行なわない
ことを特徴とする請求項1に記載のプログラム実行制御装置。 - 前記分岐命令は、当該分岐命令の条件実行のためのプレディケートをオペランドにより指定し、
前記プロセッサ状態変更手段は、プレディケートフラグの一致を利用して、ループ処理における繰り返しの最終周を判断する
ことを特徴とする請求項5に記載のプログラム実行制御装置。 - 前記分岐命令は、当該分岐命令実行時の分岐先のアドレスを保持する分岐ターゲットレジスタの識別子をオペランドで指定し、
前記プロセッサ状態変更手段は、分岐ターゲットレジスタの一致を利用して、ループ処理における繰り返しの最終周を判断する
ことを特徴とする請求項5に記載のプログラム実行制御装置。 - 前記プロセッサ状態変更手段は、前記プレディケートフラグに基づいて、ループ処理における繰り返し処理の最終周を判断した後に、当該プレディケートフラグに対応する分岐命令以外の分岐命令が発生した場合に、前記最終周の判断を終了する
ことを特徴とする請求項5に記載のプログラム実行制御装置。 - 前記プロセッサ状態変更手段は、前記プレディケートフラグに基づいて、ループ処理における繰り返し処理の最終周を判断する際に、当該判断の誤りが回数以上発生した場合には、前記最終周の判断を終了する
ことを特徴とする請求項5に記載のプログラム実行制御装置。 - 前記分岐命令は、当該分岐命令の条件実行のためのプレディケートをオペランドにより指定し、
前記プロセッサ状態変更手段は、プレディケートフラグ毎に、前記プロセッサの状態の先行的変更処理を行なう
ことを特徴とする請求項1に記載のプログラム実行制御装置。 - 前記プロセッサ状態変更手段は、
前記分岐命令は、当該分岐命令実行時の分岐先のアドレスを保持する分岐ターゲットレジスタの識別子をオペランドで指定し、
前記プロセッサ状態変更手段は、分岐ターゲットレジスタごとに、前記プロセッサの状態の先行的変更処理を行なう
ことを特徴とする請求項1に記載のプログラム実行制御装置。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007218827A JP5043560B2 (ja) | 2007-08-24 | 2007-08-24 | プログラム実行制御装置 |
US12/194,783 US7836289B2 (en) | 2007-08-24 | 2008-08-20 | Branch predictor for setting predicate flag to skip predicated branch instruction execution in last iteration of loop processing |
CN201310136817.7A CN103257849A (zh) | 2007-08-24 | 2008-08-22 | 程序执行控制装置 |
CN200810210003.2A CN101373427B (zh) | 2007-08-24 | 2008-08-22 | 程序执行控制装置 |
US12/900,975 US8015391B2 (en) | 2007-08-24 | 2010-10-08 | Simultaneous multiple thread processor increasing number of instructions issued for thread detected to be processing loop |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007218827A JP5043560B2 (ja) | 2007-08-24 | 2007-08-24 | プログラム実行制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009053861A true JP2009053861A (ja) | 2009-03-12 |
JP5043560B2 JP5043560B2 (ja) | 2012-10-10 |
Family
ID=40383240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007218827A Active JP5043560B2 (ja) | 2007-08-24 | 2007-08-24 | プログラム実行制御装置 |
Country Status (3)
Country | Link |
---|---|
US (2) | US7836289B2 (ja) |
JP (1) | JP5043560B2 (ja) |
CN (2) | CN103257849A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011161884A1 (ja) * | 2010-06-25 | 2011-12-29 | パナソニック株式会社 | 集積回路、コンピュータシステム、制御方法 |
KR101126001B1 (ko) * | 2009-06-01 | 2012-03-20 | 후지쯔 가부시끼가이샤 | 정보 처리 장치 및 분기 예측 방법 |
JP2013541758A (ja) * | 2010-09-24 | 2013-11-14 | インテル・コーポレーション | 命令フェッチユニットの電力を落とすことによりプロセッサ内の電力消費を低下させる方法および装置 |
US9703559B2 (en) | 2011-11-09 | 2017-07-11 | Nec Corporation | Digital signal processor, program control method, and control program |
Families Citing this family (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102349276B (zh) * | 2009-03-12 | 2014-07-02 | Nec欧洲有限公司 | 支持用户或实体的分布式数据的管理和交换的方法 |
US10698859B2 (en) | 2009-09-18 | 2020-06-30 | The Board Of Regents Of The University Of Texas System | Data multicasting with router replication and target instruction identification in a distributed multi-core processing architecture |
US10360039B2 (en) * | 2009-09-28 | 2019-07-23 | Nvidia Corporation | Predicted instruction execution in parallel processors with reduced per-thread state information including choosing a minimum or maximum of two operands based on a predicate value |
US8887142B2 (en) | 2010-03-10 | 2014-11-11 | Microsoft Corporation | Loop control flow diversion |
WO2011159309A1 (en) * | 2010-06-18 | 2011-12-22 | The Board Of Regents Of The University Of Texas System | Combined branch target and predicate prediction |
US8762783B2 (en) * | 2010-06-24 | 2014-06-24 | International Business Machines Corporation | Error identification |
RU2461051C2 (ru) * | 2010-07-27 | 2012-09-10 | Государственное образовательное учреждение высшего профессионального образования "Воронежский государственный технический университет" | Способ обнаружения случайных "блужданий" в микроэвм |
CN101930358B (zh) * | 2010-08-16 | 2013-06-19 | 中国科学技术大学 | 一种单指令多数据流结构上的数据处理方法及处理器 |
US9588881B2 (en) * | 2011-05-16 | 2017-03-07 | Cypress Semiconductor Corporation | Stack processor using a ferroelectric random access memory (F-RAM) for code space and a portion of the stack memory space having an instruction set optimized to minimize processor stack accesses |
US9910823B2 (en) | 2011-05-16 | 2018-03-06 | Cypress Semiconductor Corporation | Stack processor using a ferroelectric random access memory (F-RAM) having an instruction set optimized to minimize memory fetch |
US9501640B2 (en) * | 2011-09-14 | 2016-11-22 | Mcafee, Inc. | System and method for statistical analysis of comparative entropy |
US9158328B2 (en) | 2011-12-20 | 2015-10-13 | Oracle International Corporation | Memory array clock gating scheme |
WO2013156825A1 (en) * | 2012-04-20 | 2013-10-24 | Freescale Semiconductor, Inc. | A computer system and a method for generating an optimized program code |
US9256427B2 (en) | 2012-12-11 | 2016-02-09 | International Business Machines Corporation | Tracking multiple conditions in a general purpose register and instruction therefor |
US9411589B2 (en) | 2012-12-11 | 2016-08-09 | International Business Machines Corporation | Branch-free condition evaluation |
US9430369B2 (en) * | 2013-05-24 | 2016-08-30 | Coherent Logix, Incorporated | Memory-network processor with programmable optimizations |
US9633409B2 (en) | 2013-08-26 | 2017-04-25 | Apple Inc. | GPU predication |
US10133300B2 (en) | 2014-01-08 | 2018-11-20 | Microsoft Technology Licensing, Llc | Control of predication across clock domains |
US9519482B2 (en) * | 2014-06-20 | 2016-12-13 | Netronome Systems, Inc. | Efficient conditional instruction having companion load predicate bits instruction |
US10289417B2 (en) * | 2014-10-21 | 2019-05-14 | Arm Limited | Branch prediction suppression for blocks of instructions predicted to not include a branch instruction |
GB2540941B (en) * | 2015-07-31 | 2017-11-15 | Advanced Risc Mach Ltd | Data processing |
US10719321B2 (en) | 2015-09-19 | 2020-07-21 | Microsoft Technology Licensing, Llc | Prefetching instruction blocks |
US10776115B2 (en) | 2015-09-19 | 2020-09-15 | Microsoft Technology Licensing, Llc | Debug support for block-based processor |
US11681531B2 (en) | 2015-09-19 | 2023-06-20 | Microsoft Technology Licensing, Llc | Generation and use of memory access instruction order encodings |
US10936316B2 (en) | 2015-09-19 | 2021-03-02 | Microsoft Technology Licensing, Llc | Dense read encoding for dataflow ISA |
US11016770B2 (en) | 2015-09-19 | 2021-05-25 | Microsoft Technology Licensing, Llc | Distinct system registers for logical processors |
US10180840B2 (en) | 2015-09-19 | 2019-01-15 | Microsoft Technology Licensing, Llc | Dynamic generation of null instructions |
US10678544B2 (en) | 2015-09-19 | 2020-06-09 | Microsoft Technology Licensing, Llc | Initiating instruction block execution using a register access instruction |
US10768936B2 (en) | 2015-09-19 | 2020-09-08 | Microsoft Technology Licensing, Llc | Block-based processor including topology and control registers to indicate resource sharing and size of logical processor |
US10452399B2 (en) | 2015-09-19 | 2019-10-22 | Microsoft Technology Licensing, Llc | Broadcast channel architectures for block-based processors |
US11977891B2 (en) | 2015-09-19 | 2024-05-07 | Microsoft Technology Licensing, Llc | Implicit program order |
US11126433B2 (en) | 2015-09-19 | 2021-09-21 | Microsoft Technology Licensing, Llc | Block-based processor core composition register |
US10198263B2 (en) | 2015-09-19 | 2019-02-05 | Microsoft Technology Licensing, Llc | Write nullification |
US10871967B2 (en) | 2015-09-19 | 2020-12-22 | Microsoft Technology Licensing, Llc | Register read/write ordering |
US10275249B1 (en) * | 2015-10-15 | 2019-04-30 | Marvell International Ltd. | Method and apparatus for predicting end of loop |
WO2018149495A1 (en) * | 2017-02-16 | 2018-08-23 | Huawei Technologies Co., Ltd. | A method and system to fetch multicore instruction traces from a virtual platform emulator to a performance simulation model |
US10235173B2 (en) | 2017-05-30 | 2019-03-19 | Advanced Micro Devices, Inc. | Program code optimization for reducing branch mispredictions |
JP6885226B2 (ja) * | 2017-07-03 | 2021-06-09 | 株式会社デンソー | 電子制御装置 |
US10620961B2 (en) * | 2018-03-30 | 2020-04-14 | Intel Corporation | Apparatus and method for speculative conditional move operation |
US10831492B2 (en) | 2018-07-05 | 2020-11-10 | International Business Machines Corporation | Most favored branch issue |
US10990404B2 (en) * | 2018-08-10 | 2021-04-27 | Arm Limited | Apparatus and method for performing branch prediction using loop minimum iteration prediction |
US10915322B2 (en) * | 2018-09-18 | 2021-02-09 | Advanced Micro Devices, Inc. | Using loop exit prediction to accelerate or suppress loop mode of a processor |
US11392537B2 (en) * | 2019-03-18 | 2022-07-19 | Microsoft Technology Licensing, Llc | Reach-based explicit dataflow processors, and related computer-readable media and methods |
US20220197660A1 (en) * | 2020-12-21 | 2022-06-23 | Intel Corporation | Context-based loop branch prediction |
US11907718B2 (en) * | 2020-12-31 | 2024-02-20 | Micron Technology, Inc. | Loop execution in a reconfigurable compute fabric using flow controllers for respective synchronous flows |
US11663013B2 (en) | 2021-08-24 | 2023-05-30 | International Business Machines Corporation | Dependency skipping execution |
US20230098640A1 (en) * | 2021-09-26 | 2023-03-30 | Ceremorphic, Inc. | Core Processor and Redundant Branch Processor with Control Flow Attack Detection |
CN114510271B (zh) * | 2022-02-09 | 2023-08-15 | 海飞科(南京)信息技术有限公司 | 用于在单指令多线程计算***中加载数据的方法和装置 |
US20240046543A1 (en) * | 2022-08-05 | 2024-02-08 | Qualcomm Incorporated | Runtime mechanism to optimize shader execution flow |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04264923A (ja) * | 1991-02-20 | 1992-09-21 | Nec Corp | 情報処理装置 |
JPH10333906A (ja) * | 1997-05-29 | 1998-12-18 | Hitachi Ltd | 分岐予測装置 |
JP2002251282A (ja) * | 2001-01-31 | 2002-09-06 | Siroyan Ltd | プロセッサにおけるループの処理 |
JP2004288016A (ja) * | 2003-03-24 | 2004-10-14 | Matsushita Electric Ind Co Ltd | プロセッサおよびコンパイラ |
JP2007207039A (ja) * | 2006-02-02 | 2007-08-16 | Matsushita Electric Ind Co Ltd | メモリシステムおよびメモリアクセス制御方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0687358B2 (ja) | 1986-04-04 | 1994-11-02 | 松下電器産業株式会社 | Romの消費電力低減方法 |
JPH0486808A (ja) | 1990-07-31 | 1992-03-19 | Ricoh Co Ltd | 液晶表示装置 |
JP2987311B2 (ja) * | 1995-05-12 | 1999-12-06 | 松下電器産業株式会社 | プロセッサ及び翻訳装置 |
US5909573A (en) * | 1996-03-28 | 1999-06-01 | Intel Corporation | Method of branch prediction using loop counters |
US6477562B2 (en) * | 1998-12-16 | 2002-11-05 | Clearwater Networks, Inc. | Prioritized instruction scheduling for multi-streaming processors |
US6571385B1 (en) * | 1999-03-22 | 2003-05-27 | Intel Corporation | Early exit transformations for software pipelining |
US6493741B1 (en) * | 1999-10-01 | 2002-12-10 | Compaq Information Technologies Group, L.P. | Method and apparatus to quiesce a portion of a simultaneous multithreaded central processing unit |
GB2372847B (en) | 2001-02-19 | 2004-12-29 | Imagination Tech Ltd | Control of priority and instruction rates on a multithreaded processor |
US7000233B2 (en) | 2003-04-21 | 2006-02-14 | International Business Machines Corporation | Simultaneous multithread processor with result data delay path to adjust pipeline length for input to respective thread |
US7657893B2 (en) * | 2003-04-23 | 2010-02-02 | International Business Machines Corporation | Accounting method and logic for determining per-thread processor resource utilization in a simultaneous multi-threaded (SMT) processor |
US7360062B2 (en) * | 2003-04-25 | 2008-04-15 | International Business Machines Corporation | Method and apparatus for selecting an instruction thread for processing in a multi-thread processor |
US7010676B2 (en) * | 2003-05-12 | 2006-03-07 | International Business Machines Corporation | Last iteration loop branch prediction upon counter threshold and resolution upon counter one |
EP1660998A1 (en) * | 2003-08-28 | 2006-05-31 | MIPS Technologies, Inc. | Mechanisms for dynamic configuration of virtual processor resources |
US7401206B2 (en) * | 2004-06-30 | 2008-07-15 | Sun Microsystems, Inc. | Apparatus and method for fine-grained multithreading in a multipipelined processor core |
US20080114975A1 (en) * | 2006-11-10 | 2008-05-15 | Hsueh-Bing Yen | Method and processing system for nested flow control utilizing predicate register and branch register |
-
2007
- 2007-08-24 JP JP2007218827A patent/JP5043560B2/ja active Active
-
2008
- 2008-08-20 US US12/194,783 patent/US7836289B2/en active Active
- 2008-08-22 CN CN201310136817.7A patent/CN103257849A/zh active Pending
- 2008-08-22 CN CN200810210003.2A patent/CN101373427B/zh active Active
-
2010
- 2010-10-08 US US12/900,975 patent/US8015391B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04264923A (ja) * | 1991-02-20 | 1992-09-21 | Nec Corp | 情報処理装置 |
JPH10333906A (ja) * | 1997-05-29 | 1998-12-18 | Hitachi Ltd | 分岐予測装置 |
JP2002251282A (ja) * | 2001-01-31 | 2002-09-06 | Siroyan Ltd | プロセッサにおけるループの処理 |
JP2004288016A (ja) * | 2003-03-24 | 2004-10-14 | Matsushita Electric Ind Co Ltd | プロセッサおよびコンパイラ |
JP2007207039A (ja) * | 2006-02-02 | 2007-08-16 | Matsushita Electric Ind Co Ltd | メモリシステムおよびメモリアクセス制御方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101126001B1 (ko) * | 2009-06-01 | 2012-03-20 | 후지쯔 가부시끼가이샤 | 정보 처리 장치 및 분기 예측 방법 |
US8595474B2 (en) | 2009-06-01 | 2013-11-26 | Fujitsu Limited | Information processing apparatus and branch prediction method |
WO2011161884A1 (ja) * | 2010-06-25 | 2011-12-29 | パナソニック株式会社 | 集積回路、コンピュータシステム、制御方法 |
US8918664B2 (en) | 2010-06-25 | 2014-12-23 | Panasonic Corporation | Integrated circuit, computer system, and control method, including power saving control to reduce power consumed by execution of a loop |
JP5853216B2 (ja) * | 2010-06-25 | 2016-02-09 | パナソニックIpマネジメント株式会社 | 集積回路、コンピュータシステム、制御方法 |
JP2013541758A (ja) * | 2010-09-24 | 2013-11-14 | インテル・コーポレーション | 命令フェッチユニットの電力を落とすことによりプロセッサ内の電力消費を低下させる方法および装置 |
US9703559B2 (en) | 2011-11-09 | 2017-07-11 | Nec Corporation | Digital signal processor, program control method, and control program |
Also Published As
Publication number | Publication date |
---|---|
CN101373427B (zh) | 2013-05-22 |
US20090055635A1 (en) | 2009-02-26 |
US8015391B2 (en) | 2011-09-06 |
JP5043560B2 (ja) | 2012-10-10 |
US20110029763A1 (en) | 2011-02-03 |
US7836289B2 (en) | 2010-11-16 |
CN103257849A (zh) | 2013-08-21 |
CN101373427A (zh) | 2009-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5043560B2 (ja) | プログラム実行制御装置 | |
US8301870B2 (en) | Method and apparatus for fast synchronization and out-of-order execution of instructions in a meta-program based computing system | |
JP5313279B2 (ja) | 非アラインドメモリアクセス予測 | |
WO2015024452A1 (zh) | 一种分支预测方法及相关装置 | |
US7478228B2 (en) | Apparatus for generating return address predictions for implicit and explicit subroutine calls | |
US6772355B2 (en) | System and method for reducing power consumption in a data processor having a clustered architecture | |
US7444501B2 (en) | Methods and apparatus for recognizing a subroutine call | |
JP2008530714A5 (ja) | ||
TWI649693B (zh) | 用於控制推測向量運算效能的資料處理設備、方法及電腦程式產品 | |
JP2006313422A (ja) | 演算処理装置及びデータ転送処理の実行方法 | |
US7523295B2 (en) | Processor and method of grouping and executing dependent instructions in a packet | |
WO2021027253A1 (zh) | 用于多线程处理的方法、装置及*** | |
JP4134179B2 (ja) | ソフトウエアによる動的予測方法および装置 | |
JP2000322257A (ja) | 条件分岐命令の投機的実行制御方法 | |
US20150370568A1 (en) | Integrated circuit processor and method of operating a integrated circuit processor | |
CN112241288A (zh) | 在硬件中检测条件分支的动态控制流重汇聚点 | |
JP5316407B2 (ja) | 演算処理装置および演算処理装置の制御方法 | |
US11216278B2 (en) | Multi-thread processing | |
JP2004145454A (ja) | 情報処理装置及び情報処理方法 | |
CN112559048B (zh) | 一种指令处理装置、处理器及其处理方法 | |
KR100837400B1 (ko) | 멀티스레딩/비순차 병합 기법에 따라 처리하는 방법 및장치 | |
WO2022036690A1 (zh) | 一种图计算装置、处理方法及相关设备 | |
CN112395000B (zh) | 一种数据预加载方法和指令处理装置 | |
CN113568663A (zh) | 代码预取指令 | |
EP4202664B1 (en) | System, apparatus and method for throttling fusion of micro-operations in a processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100304 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110829 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110913 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111110 |
|
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: 20120626 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120712 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5043560 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150720 Year of fee payment: 3 |