JP7324767B2 - 零オーバーヘッドループを実現するプロセッサ - Google Patents

零オーバーヘッドループを実現するプロセッサ Download PDF

Info

Publication number
JP7324767B2
JP7324767B2 JP2020553496A JP2020553496A JP7324767B2 JP 7324767 B2 JP7324767 B2 JP 7324767B2 JP 2020553496 A JP2020553496 A JP 2020553496A JP 2020553496 A JP2020553496 A JP 2020553496A JP 7324767 B2 JP7324767 B2 JP 7324767B2
Authority
JP
Japan
Prior art keywords
loop
instruction
address
instruction fetch
circuitry
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.)
Active
Application number
JP2020553496A
Other languages
English (en)
Other versions
JP2021519468A (ja
JPWO2019196776A5 (ja
Inventor
ジャン,タオ
グオ,ユボー
ワン,マンチョウ
ウェイ,ディンヤン
Original Assignee
シー-スカイ マイクロシステムズ カンパニー,リミテッド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by シー-スカイ マイクロシステムズ カンパニー,リミテッド filed Critical シー-スカイ マイクロシステムズ カンパニー,リミテッド
Publication of JP2021519468A publication Critical patent/JP2021519468A/ja
Publication of JPWO2019196776A5 publication Critical patent/JPWO2019196776A5/ja
Application granted granted Critical
Publication of JP7324767B2 publication Critical patent/JP7324767B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30065Loop control instructions; iterative instructions, e.g. LOOP, REPEAT

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Description

関連出願の相互参照
[1] 本開示は、参照のためその全体を本明細書に援用する2018年4月9日出願の中国特許出願第201810311679.4号からの優先権の利益を主張する。
背景
[2] 従来システムでは、ループを有するコンピュータプログラムが非常に一般的である。1つの処理方法は、総反復数を記録するために汎用レジスタを使用し、各反復後に汎用レジスタに対しマイナス1の演算を行うための減算命令を使用し、そして反復の数が所望数に達したかどうかを判断する。より多くの反復が必要とされる場合、追加のジャンプ命令がループの始めに戻るために使用される。しかし、このような操作は通常、複数の追加命令をループ内に追加し、これによりループ実行効率に影響を与える。さらに、このような操作は短いループ及び高性能要件を有するアプリケーションにおいて著しく悪い影響を及ぼす。
開示の概要
[3] 本開示は、零オーバーヘッドループを実現するプロセッサを提供し、前記プロセッサは命令ストリーム制御回路系及びループ制御回路系を含み、ループ制御回路系はループアドレス検出回路系及びループ終了判断回路系を含む。ループ制御回路系は、ループ制御信号に従ってループ開始アドレス、ループ終了アドレス、及びループ抜け出し条件を初期化するように構成される。ループアドレス検出回路系は、内部命令フェッチアドレスがループアドレス範囲内にあるかどうかを検出し、ループ終了要求をループ終了判断回路系へ送信するように構成される。ループ終了判断回路系は、現在のループ実行がループ抜け出し条件を満足するかどうかを判断するように構成される。命令ストリーム制御回路系は、命令フェッチアドレスを維持するように構成される。
[4] 本開示のいくつかの実施形態はさらに、ループ命令を処理するためのプロセッサを提供する。従来システムと比較して、本開示は、命令とハードウェアとを組み合わせることにより、各反復により必要とされる追加の制御命令を無くし、零オーバーヘッドによりループ加速を実現し得、これによりループ実行効率を改善する。
図面の簡単な説明
[5]本開示のいくつかの実施形態による零オーバーヘッドループを実現する例示的プロセッサの概略図である。
詳細な説明
[6] 本開示の実施形態の目的、技術的解決策、及び利点をより明確にするために、本開示の実施形態における技術的解決策が本開示の実施形態において添付図面を参照して以下に説明される。明らかに、説明される実施形態は本開示の実施形態のすべてというよりむしろいくつかに過ぎない。本開示の実施形態に基づき創造的努力無しに当業者により得られるすべての他の実施形態は、本開示の保護範囲内に入るものとする。
[7] 本開示において提供されるプロセッサは、命令とハードウェアとを組み合わせることにより、各反復により必要とされる追加の制御命令を無くし、零オーバーヘッドによりループ加速を実現し得る。図1は本開示のいくつかの実施形態による零オーバーヘッドループを実現する例示的プロセッサ100の概略図である。図1に示すように、プロセッサ100は、命令ストリーム制御回路系110及びループ制御回路系120を含み、ループ制御回路系120は、ループアドレス検出回路系122及びループ終了判断回路系124を含む。
[8] ループ制御回路系120は、ループ命令を含むループの制御を初期化し管理するように構成される。ループの制御は、ループ制御信号に基づく、ループ開始アドレス、ループ終了アドレス、及びループ抜け出し条件を含む。
[9] ループアドレス検出回路系122は、内部命令フェッチアドレスがループアドレス範囲内にあるかどうかを検出し、内部命令フェッチアドレスがループ終了アドレスに等しいとき、ループ終了要求をループ終了判断回路系124へ送信するように構成される。
[10] ループ終了判断回路系124は、ループ終了要求を受信すると、現在実行されているループ命令がループ抜け出し条件を満足するかどうかを判断するように構成される。いくつかの実施形態では、ループ終了判断回路系124はさらに、現在のループ実行がループ抜け出し条件を満足しない場合、ループ開始アドレス及び選択制御信号を命令ストリーム制御回路系110へ送信し、ループ開始アドレスにより内部命令フェッチアドレスを更新するように構成される。ループ終了判断回路系124は、現在のループ実行がループ抜け出し条件を満足する場合、ループ加速命令アドレスにより内部命令フェッチアドレスを更新するように構成される。
[11] 命令ストリーム制御回路系110は、命令フェッチアドレスを維持し、次の命令フェッチ要求のための命令フェッチアドレスを外部メモリへ送信するように構成される。実行されている命令がループ内の最後のループ命令でない場合、命令フェッチアドレスはループ内の次の命令により更新される。実行されている命令がループ内の最後の命令である場合、命令フェッチアドレスは選択制御信号に従って更新される。例えば、ループジャンプが必要とされない場合、命令ストリーム制御回路系110は、現在の命令フェッチ要求の内部命令フェッチアドレスに従って、次の命令フェッチ要求のための命令フェッチアドレスを維持する。ループジャンプが必要とされる場合、命令ストリーム制御回路系110は、選択制御信号による使用のために選択されたループ開始アドレスに従って、次の命令フェッチ要求のための命令フェッチアドレスを維持する。
[12] 本開示の実施形態は、ループ命令を処理するためのプロセッサ100を提供する。従来システムと比較して、本開示は、命令とハードウェアとを組み合わせることにより、各反復により必要とされる追加の制御命令を無くし、零オーバーヘッドによりループ加速を実現し得、これによりループ実行効率を改善する。
[13] いくつかの実施形態では、図1に示すように、命令ストリーム制御回路系110は、選択器112及びプログラムカウンタ114を含む。
[14] 選択器112は、選択制御信号を受信すると、ループ開始アドレスをプログラムカウンタ114へ出力すること、又は現在の命令フェッチアドレスをプログラムカウンタ114へ出力することのいずれかを選択するように構成される。
[15] プログラムカウンタ114は、選択器112の出力に従って、次の命令フェッチ要求のための命令フェッチアドレスを取得し、外部メモリへの次の命令フェッチ要求を開始するように構成される。
[16] いくつかの実施形態では、図1に示すように、プロセッサ100は、命令フェッチ回路系130、実行回路系140及び復号化回路系150をさらに含む。
[17] 命令フェッチ回路系130は、外部メモリから送信される命令を受信するように構成される。命令はループ加速命令を含む。
[18] 復号化回路系150は、ループが始まるときにループ加速命令を解析し、ループ加速命令に従ってループ制御信号及びフラグ設定制御信号を生成し、ループ制御信号をループ制御回路系120へ送信し、フラグ設定制御信号を実行回路系140へ送信するように構成される。復号化回路系150はさらに、ループが終わるときにループ加速命令を再び解析し、ループ加速命令に従ってフラグクリヤ制御信号を生成し、フラグクリヤ制御信号を実行回路系140へ送信するように構成される。
[19] 実行回路系140は、ループが始まるときにループ加速命令を実行し、フラグ設定制御信号を受信すると、ループをトリガして開始させるために対応フラグを設定するように構成される。実行回路系140は、フラグクリヤ制御信号を受信した後、ループ加速命令を再び実行し、フラグをクリアしてループを終了するように構成される。
[20] 本開示の実施形態による零オーバーヘッドループを実現するプロセッサ100は、ループ制御回路系120のハードウェア構造をプロセッサ100内に追加することにより、命令ストリーム制御回路系110を修正し、ループ加速命令と組み合わせることにより、ループを有するコンピュータプログラムを処理する。操作処理全体にわたって、ループ加速命令は、最初の反復及び最後の反復においてだけ実行される必要がある。最初の実行は、ループをトリガし、ループの開始アドレスへジャンプするように命令フェッチ回路系130を制御し、ループ抜け出し条件が満足された後、ループ加速命令は、ループ本体だけがループ処理中に実行される間に、ループを終了するためにもう一度実行される。従来システムと比較して、本開示は、各反復により必要とされる追加の制御命令を無くし、零オーバーヘッドを有するループジャンプを実現し、外部メモリへのアクセスの数を低減し得、これによりループプログラム実行効率を改善し、そしてシステム電力消費を低減する。
[21] いくつかの実施形態では、ループ加速命令は、ループ開始アドレス、ループ終了アドレス及びループ抜け出し条件を割り当てるために使用される。
[22] いくつかの実施形態では、ループ制御信号は、ループ開始アドレス、ループ終了アドレス及びループ抜け出し条件を含む。
[23] いくつかの実施形態では、ループ抜け出し条件は、残り反復数が零であること、外部割込み及びデバッグ要求を含む。ループ抜け出し条件が残り反復数が零であることである場合、ループ加速命令はさらに、総反復数を割り当てるために使用される。
[24] 本開示による零オーバーヘッドループを実現するプロセッサ100の操作処理が以下に説明される。いくつかの実施形態では、ループ加速命令は、ループ開始アドレス、ループ終了アドレス、反復の数及びループ抜け出し条件を割り当てる。ここで、ループ抜け出し条件は残り反復数が零であることである。
[25] ループ内でなければ、選択器112は、内部命令フェッチアドレスをプログラムカウンタ114へ送信するために、命令フェッチ回路系130から内部命令フェッチアドレスを選択する。
[26] ループが始まると、復号化回路系150は、ループ加速命令を解析し、ループ制御信号及びフラグ設定制御信号を生成し、ループ制御信号をループ制御回路系120へ送信し、フラグ設定制御信号を実行回路系140へ送信する。
[27] ループ制御回路系120は、ループ制御信号に従って、ループ開始アドレス、ループ終了アドレス、及びループ抜け出し条件を初期化するように構成される。
[28] 実行回路系140は、ループ加速命令を実行し、ループをトリガするため対応フラグを設定し、そしてほぼ同時に、内部命令フェッチアドレスを更新するためにループ開始アドレスを使用する。
[29] 選択器112は、命令フェッチ回路系130の内部命令フェッチアドレスを選択し、命令フェッチ回路系130は、ループ内部の命令を連続的に取得する。
[30] ループアドレス検出回路系122は、内部命令フェッチアドレスがループアドレス範囲内にあるかどうかを検出し、内部命令フェッチアドレスがループ終了アドレスに等しい場合、判断要求をループ終了判断回路系124へ送信する。
[31] ループ終了判断回路系124は、現在のループ実行とループ抜け出し条件とを比較する。ループ終了判断回路系124はさらに、ループ実行を維持する(例えば残り反復数から1を減じるために内部ループカウンタを維持する)ように構成される。
[32] 例えば、ループ終了判断回路系124が、残り反復数が0より大きいと判断する場合、ループ終了判断回路系124は、ループ実行が継続することを許容する。この時点で、ループ終了判断回路系124は、ループ開始アドレス及び選択制御信号を選択器112へ送信し、ループ開始アドレスを使用して内部命令フェッチアドレスを更新するために命令フェッチ回路系130をトリガする。
[33] この結果、プログラムカウンタ114は、ループをやり直すべく、外部メモリに対する命令フェッチ要求をもう一度開始するためにループ開始アドレスを使用する。
[34] ループ終了判断回路系124が、残り反復数が0に等しいと判断する場合、ループ終了判断回路系124はループを終了する。この時点で、ループ終了判断回路系124は、ループ加速命令アドレスを使用して内部命令フェッチアドレスを更新するために命令フェッチ回路系130をトリガする。
[35] この結果、プログラムカウンタ114は、外部メモリに対する命令フェッチ要求を開始するためにループ加速命令アドレスを使用し、命令フェッチ回路系130は、ループ加速命令を再び取得する。
[36] 復号化回路系150は、ループが終了するとき、フラグクリヤ制御信号を生成するため及びフラグクリヤ制御信号を実行回路系140へ送信するために、ループ加速命令を再び解析する。
[37] 実行回路系140は、復号化回路系150からフラグクリヤ制御信号を受信した後、ループ加速命令を実行し、ループを終了するためにフラグをクリアする。
[38] 本開示はループ初期化のためにループ加速命令を使用するということがプロセッサの上記操作処理から理解される。ループが始まるとき、ジャンプが必要とされるかどうかがパイプラインの第1段(例えば命令フェッチ段階)においてハードウェア(例えばループ制御ロジック)を介し検出されて判断され得、所望の命令フェッチ要求が制御プログラムカウンタ114により現在の反復内で送信され得る。ループ処理内のループジャンプ及び判断は、制御するための追加命令を必要とせず、これにより零オーバーヘッドによりループ加速を完全に実現する。
[39] 本開示の特定実施形態だけが上に説明されたが、本開示の保護範囲はこれらの実施形態へ制限されない。本開示により開示される技術的範囲内で当業者により容易に考案され得るいかなる変形又は代替形態も本開示の保護範囲内に入るものとする。したがって、本開示の保護範囲は特許請求の範囲の保護範囲に従うものとする。

Claims (7)

  1. ループ実行のためのハードウェア制御を提供するプロセッサであって、前記プロセッサは:
    ループ命令を含むループの制御を初期化し管理するように構成されたループ制御回路系であって、
    内部命令フェッチアドレスが前記ループ命令のループ終了アドレスかどうかを判断し、前記内部命令フェッチアドレスが前記ループ命令の前記ループ終了アドレスであると判断することに応答してループ終了要求を送信するように構成されたループアドレス検出回路系;及び
    前記ループ終了要求を受信すると、ループ抜け出し条件が満足されるかどうかを判断し、前記ループ抜け出し条件が満足されるかどうかの判断に従って前記内部命令フェッチアドレスを更新し、実行されている前記ループ命令が前記ループ抜け出し条件を満足しない場合、ループ開始アドレス及び選択制御信号を命令ストリーム制御回路系へ送信し、前記内部命令フェッチアドレスを前記ループ開始アドレスにより更新し、実行されている前記ループ命令が前記ループ抜け出し条件を満足する場合、ループ加速命令アドレスにより前記内部命令フェッチアドレスを更新するように構成されたループ終了判断回路系;
    を含むループ制御回路系と、
    前記内部命令フェッチアドレスを受信し、前記内部命令フェッチアドレスに従って外部メモリに対する次の命令フェッチ要求のための命令フェッチアドレスを維持し、前記次の命令フェッチ要求を前記外部メモリへ送信するように構成された前記命令ストリーム制御回路系と、
    外部メモリから送信される、ループ加速命令を含む前記ループ命令を受信するように構成された命令フェッチ回路系と、
    前記ループが始まるとき前記ループ加速命令を解析し、前記ループ加速命令に従ってループ制御信号及びフラグ設定制御信号を生成し、前記ループ制御信号を前記ループ制御回路系へ送信し、前記フラグ設定制御信号を実行回路系へ送信し、前記ループが終了するとき前記ループ加速命令を再び解析し、前記ループ加速命令に従ってフラグクリヤ制御信号を生成し、前記フラグクリヤ制御信号を前記実行回路系へ送信するように構成された復号化回路系と、
    ループが始まるとき前記ループ加速命令を実行し、前記フラグ設定制御信号を受信した後に、前記ループをトリガして開始させるために対応フラグを設定し、前記フラグクリヤ制御信号を受信した後に、前記ループ加速命令を再び実行し、前記ループを終了するために前記フラグをクリアするように構成された前記実行回路系と、
    を含むプロセッサ。
  2. 前記命令ストリーム制御回路系はさらに:
    前記次の命令フェッチ要求と共に前記命令フェッチアドレスを前記外部メモリへ送信し;
    実行されている前記ループ命令が前記ループ内の最終の命令でない場合、前記内部命令フェッチアドレスに従って前記命令フェッチアドレスを更新し;
    実行されている前記ループ命令がループ内の最終命令である場合、前記選択制御信号に従って前記命令フェッチアドレスを更新するように構成される、請求項1に記載のプロセッサ。
  3. 前記命令ストリーム制御回路系は:
    前記ループ終了判断回路系から選択制御信号を受信した後に前記ループ開始アドレスを出力することを選択すること、又は前記内部命令フェッチアドレスを出力することを選択するように構成された選択器;及び
    前記選択器の前記出力に従って前記次の命令フェッチ要求のための前記命令フェッチアドレスを取得し、前記外部メモリに対する前記次の命令フェッチ要求を開始するように構成されたプログラムカウンタを含む、請求項1又は2に記載のプロセッサ。
  4. 前記ループ加速命令は、前記ループ開始アドレス、前記ループ終了アドレス及び前記ループ抜け出し条件を割り当てるために使用される、請求項2又は3に記載のプロセッサ。
  5. 前記ループ制御信号は、前記ループ開始アドレス、前記ループ終了アドレス及び前記ループ抜け出し条件を含む、請求項1又は4に記載のプロセッサ。
  6. 前記ループ抜け出し条件は、残り反復数が零であることを含む、請求項1乃至5のいずれ一項に記載のプロセッサ。
  7. 前記ループ加速命令は、前記ループ抜け出し条件が前記残り反復数が零である場合に総反復数を割り当てるためにさらに使用される、請求項6に記載のプロセッサ。
JP2020553496A 2018-04-09 2019-04-08 零オーバーヘッドループを実現するプロセッサ Active JP7324767B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201810311679.4 2018-04-09
CN201810311679.4A CN108595210B (zh) 2018-04-09 2018-04-09 实现零开销循环的处理器
PCT/CN2019/081699 WO2019196776A1 (en) 2018-04-09 2019-04-08 Processor achieving zero-overhead loop

Publications (3)

Publication Number Publication Date
JP2021519468A JP2021519468A (ja) 2021-08-10
JPWO2019196776A5 JPWO2019196776A5 (ja) 2022-04-04
JP7324767B2 true JP7324767B2 (ja) 2023-08-10

Family

ID=63621157

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020553496A Active JP7324767B2 (ja) 2018-04-09 2019-04-08 零オーバーヘッドループを実現するプロセッサ

Country Status (5)

Country Link
US (1) US11544064B2 (ja)
EP (1) EP3756089B1 (ja)
JP (1) JP7324767B2 (ja)
CN (1) CN108595210B (ja)
WO (1) WO2019196776A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108595210B (zh) * 2018-04-09 2021-12-10 杭州中天微系统有限公司 实现零开销循环的处理器
CN109739557B (zh) * 2019-01-08 2022-02-18 郑州云海信息技术有限公司 零开销循环装置及实现方法、系统、设备、计算机介质
CN110134441B (zh) * 2019-05-23 2020-11-10 苏州浪潮智能科技有限公司 Risc-v分支预测方法、装置、电子设备及存储介质
CN112835624A (zh) * 2021-02-18 2021-05-25 中国科学院自动化研究所 指令字处理器及零开销循环处理方法、电子设备及介质
CN112817664B (zh) * 2021-04-19 2021-07-16 北京燧原智能科技有限公司 一种数据处理系统、方法及芯片

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5657485A (en) 1994-08-18 1997-08-12 Mitsubishi Denki Kabushiki Kaisha Program control operation to execute a loop processing not immediately following a loop instruction
CN108595210A (zh) 2018-04-09 2018-09-28 杭州中天微系统有限公司 实现零开销循环的处理器

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5303355A (en) * 1991-03-27 1994-04-12 Motorola, Inc. Pipelined data processor which conditionally executes a predetermined looping instruction in hardware
JPH07200292A (ja) * 1993-12-28 1995-08-04 Mitsubishi Electric Corp パイプライン式プロセッサ
US5727194A (en) * 1995-06-07 1998-03-10 Hitachi America, Ltd. Repeat-bit based, compact system and method for implementing zero-overhead loops
US5710913A (en) * 1995-12-29 1998-01-20 Atmel Corporation Method and apparatus for executing nested loops in a digital signal processor
US6671799B1 (en) * 2000-08-31 2003-12-30 Stmicroelectronics, Inc. System and method for dynamically sizing hardware loops and executing nested loops in a digital signal processor
US20030061464A1 (en) * 2001-06-01 2003-03-27 Catherwood Michael I. Digital signal controller instruction set and architecture
AU2003274591A1 (en) * 2002-11-28 2004-06-18 Koninklijke Philips Electronics N.V. A loop control circuit for a data processor
US8019981B1 (en) * 2004-01-06 2011-09-13 Altera Corporation Loop instruction execution using a register identifier
US7272704B1 (en) * 2004-05-13 2007-09-18 Verisilicon Holdings (Cayman Islands) Co. Ltd. Hardware looping mechanism and method for efficient execution of discontinuity instructions
US7991984B2 (en) * 2005-02-17 2011-08-02 Samsung Electronics Co., Ltd. System and method for executing loops in a processor
JP2007207145A (ja) * 2006-02-06 2007-08-16 Nec Electronics Corp ループ制御回路及びループ制御方法
US8904155B2 (en) * 2006-03-17 2014-12-02 Qualcomm Incorporated Representing loop branches in a branch history register with multiple bits
US20080141013A1 (en) * 2006-10-25 2008-06-12 On Demand Microelectronics Digital processor with control means for the execution of nested loops
JP5692089B2 (ja) * 2009-11-24 2015-04-01 日本電気株式会社 プロセッサ、プロセッサによるループ回数制御方法
US9152423B2 (en) 2011-03-25 2015-10-06 Avaya Inc. Method and apparatus for efficient loop instruction execution using bit vector scanning
CN102508635B (zh) * 2011-10-19 2014-10-08 中国科学院声学研究所 一种处理器装置及其循环处理方法
CN103336681B (zh) * 2013-07-03 2015-11-25 同济大学 针对采用变长指令集的流水线结构处理器的取指方法
US9471322B2 (en) * 2014-02-12 2016-10-18 Apple Inc. Early loop buffer mode entry upon number of mispredictions of exit condition exceeding threshold
US9798542B2 (en) 2014-04-25 2017-10-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Zero overhead looping by a decoder generating and enqueuing a branch instruction
GB2548603B (en) * 2016-03-23 2018-09-26 Advanced Risc Mach Ltd Program loop control
CN107450888B (zh) * 2016-05-30 2023-11-17 世意法(北京)半导体研发有限责任公司 嵌入式数字信号处理器中的零开销循环

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5657485A (en) 1994-08-18 1997-08-12 Mitsubishi Denki Kabushiki Kaisha Program control operation to execute a loop processing not immediately following a loop instruction
CN108595210A (zh) 2018-04-09 2018-09-28 杭州中天微系统有限公司 实现零开销循环的处理器

Also Published As

Publication number Publication date
EP3756089A4 (en) 2021-04-21
CN108595210A (zh) 2018-09-28
US20210365265A1 (en) 2021-11-25
EP3756089B1 (en) 2023-03-15
WO2019196776A1 (en) 2019-10-17
CN108595210B (zh) 2021-12-10
EP3756089A1 (en) 2020-12-30
WO2019196776A9 (en) 2019-11-21
US11544064B2 (en) 2023-01-03
JP2021519468A (ja) 2021-08-10

Similar Documents

Publication Publication Date Title
JP7324767B2 (ja) 零オーバーヘッドループを実現するプロセッサ
JP4911022B2 (ja) カウンタ制御回路、動的再構成回路およびループ処理制御方法
US7152170B2 (en) Simultaneous multi-threading processor circuits and computer program products configured to operate at different performance levels based on a number of operating threads and methods of operating
US20150227373A1 (en) Stop bits and predication for enhanced instruction stream control
KR20210080009A (ko) 가속기, 가속기의 동작 방법 및 가속기를 포함한 디바이스
JP2023543566A (ja) 複数のフェッチ及びデコードパイプラインを有するプロセッサ
CN114830083B (zh) 调度器队列分配突发模式
CN110825442B (zh) 一种指令预取方法及处理器
KR100594256B1 (ko) 동시 다중 쓰레딩 프로세서 회로, 동작하는 쓰레드들의수에 기초하여 다른 성능레벨들에서 동작하도록 구성되는컴퓨터 프로그램 제품 및 이들을 동작시키는 방법
JP2006146758A (ja) コンピュータシステム
JP7043985B2 (ja) 演算処理装置および演算処理装置の制御方法
US7127589B2 (en) Data processor
US20100082946A1 (en) Microcomputer and its instruction execution method
JP2006053830A (ja) 分岐予測装置および分岐予測方法
JP3602801B2 (ja) メモリデータアクセス構造およびその方法
CN112905237A (zh) 指令预取方法、装置、设备和介质
CN111124494B (zh) 一种cpu中加速无条件跳转的方法及电路
KR101646768B1 (ko) 이퀄-모델 프로세서를 위한 인터럽트 처리장치 및 처리방법과 그 처리장치를 포함하는 프로세서
JPWO2019196776A5 (ja)
US7506322B2 (en) System and method of utilizing a hardware component to execute an interpretive language
US20100153688A1 (en) Apparatus and method for data process
JP3767539B2 (ja) 補助演算装置、中央演算装置及び情報処理装置
CN118349283A (zh) 用于分布式集群系统的非阻塞型宏指令多级流水处理器的执行方法和装置
WO2020168474A1 (zh) 提升数据流机运行效率的方法、装置、设备及存储介质
WO2001077818A2 (en) Method for predicting the instruction execution latency of a de-coupled configurable co-processor

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220325

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220325

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230320

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: 20230705

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230731

R150 Certificate of patent or registration of utility model

Ref document number: 7324767

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150