JP7324767B2 - 零オーバーヘッドループを実現するプロセッサ - Google Patents
零オーバーヘッドループを実現するプロセッサ Download PDFInfo
- 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
Links
- 230000001133 acceleration Effects 0.000 claims description 35
- 238000001514 detection method Methods 0.000 claims description 6
- 230000001172 regenerating effect Effects 0.000 claims 1
- 230000004044 response Effects 0.000 claims 1
- 238000000034 method Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000003116 impacting effect Effects 0.000 description 1
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/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30065—Loop 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] 本開示は、零オーバーヘッドループを実現するプロセッサを提供し、前記プロセッサは命令ストリーム制御回路系及びループ制御回路系を含み、ループ制御回路系はループアドレス検出回路系及びループ終了判断回路系を含む。ループ制御回路系は、ループ制御信号に従ってループ開始アドレス、ループ終了アドレス、及びループ抜け出し条件を初期化するように構成される。ループアドレス検出回路系は、内部命令フェッチアドレスがループアドレス範囲内にあるかどうかを検出し、ループ終了要求をループ終了判断回路系へ送信するように構成される。ループ終了判断回路系は、現在のループ実行がループ抜け出し条件を満足するかどうかを判断するように構成される。命令ストリーム制御回路系は、命令フェッチアドレスを維持するように構成される。
[6] 本開示の実施形態の目的、技術的解決策、及び利点をより明確にするために、本開示の実施形態における技術的解決策が本開示の実施形態において添付図面を参照して以下に説明される。明らかに、説明される実施形態は本開示の実施形態のすべてというよりむしろいくつかに過ぎない。本開示の実施形態に基づき創造的努力無しに当業者により得られるすべての他の実施形態は、本開示の保護範囲内に入るものとする。
Claims (7)
- ループ実行のためのハードウェア制御を提供するプロセッサであって、前記プロセッサは:
ループ命令を含むループの制御を初期化し管理するように構成されたループ制御回路系であって、
内部命令フェッチアドレスが前記ループ命令のループ終了アドレスかどうかを判断し、前記内部命令フェッチアドレスが前記ループ命令の前記ループ終了アドレスであると判断することに応答してループ終了要求を送信するように構成されたループアドレス検出回路系;及び
前記ループ終了要求を受信すると、ループ抜け出し条件が満足されるかどうかを判断し、前記ループ抜け出し条件が満足されるかどうかの判断に従って前記内部命令フェッチアドレスを更新し、実行されている前記ループ命令が前記ループ抜け出し条件を満足しない場合、ループ開始アドレス及び選択制御信号を命令ストリーム制御回路系へ送信し、前記内部命令フェッチアドレスを前記ループ開始アドレスにより更新し、実行されている前記ループ命令が前記ループ抜け出し条件を満足する場合、ループ加速命令アドレスにより前記内部命令フェッチアドレスを更新するように構成されたループ終了判断回路系;
を含むループ制御回路系と、
前記内部命令フェッチアドレスを受信し、前記内部命令フェッチアドレスに従って外部メモリに対する次の命令フェッチ要求のための命令フェッチアドレスを維持し、前記次の命令フェッチ要求を前記外部メモリへ送信するように構成された前記命令ストリーム制御回路系と、
外部メモリから送信される、ループ加速命令を含む前記ループ命令を受信するように構成された命令フェッチ回路系と、
前記ループが始まるとき前記ループ加速命令を解析し、前記ループ加速命令に従ってループ制御信号及びフラグ設定制御信号を生成し、前記ループ制御信号を前記ループ制御回路系へ送信し、前記フラグ設定制御信号を実行回路系へ送信し、前記ループが終了するとき前記ループ加速命令を再び解析し、前記ループ加速命令に従ってフラグクリヤ制御信号を生成し、前記フラグクリヤ制御信号を前記実行回路系へ送信するように構成された復号化回路系と、
ループが始まるとき前記ループ加速命令を実行し、前記フラグ設定制御信号を受信した後に、前記ループをトリガして開始させるために対応フラグを設定し、前記フラグクリヤ制御信号を受信した後に、前記ループ加速命令を再び実行し、前記ループを終了するために前記フラグをクリアするように構成された前記実行回路系と、
を含むプロセッサ。 - 前記命令ストリーム制御回路系はさらに:
前記次の命令フェッチ要求と共に前記命令フェッチアドレスを前記外部メモリへ送信し;
実行されている前記ループ命令が前記ループ内の最終の命令でない場合、前記内部命令フェッチアドレスに従って前記命令フェッチアドレスを更新し;
実行されている前記ループ命令がループ内の最終命令である場合、前記選択制御信号に従って前記命令フェッチアドレスを更新するように構成される、請求項1に記載のプロセッサ。 - 前記命令ストリーム制御回路系は:
前記ループ終了判断回路系から選択制御信号を受信した後に前記ループ開始アドレスを出力することを選択すること、又は前記内部命令フェッチアドレスを出力することを選択するように構成された選択器;及び
前記選択器の前記出力に従って前記次の命令フェッチ要求のための前記命令フェッチアドレスを取得し、前記外部メモリに対する前記次の命令フェッチ要求を開始するように構成されたプログラムカウンタを含む、請求項1又は2に記載のプロセッサ。 - 前記ループ加速命令は、前記ループ開始アドレス、前記ループ終了アドレス及び前記ループ抜け出し条件を割り当てるために使用される、請求項2又は3に記載のプロセッサ。
- 前記ループ制御信号は、前記ループ開始アドレス、前記ループ終了アドレス及び前記ループ抜け出し条件を含む、請求項1又は4に記載のプロセッサ。
- 前記ループ抜け出し条件は、残り反復数が零であることを含む、請求項1乃至5のいずれ一項に記載のプロセッサ。
- 前記ループ加速命令は、前記ループ抜け出し条件が前記残り反復数が零である場合に総反復数を割り当てるためにさらに使用される、請求項6に記載のプロセッサ。
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)
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)
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)
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 | 世意法(北京)半导体研发有限责任公司 | 嵌入式数字信号处理器中的零开销循环 |
-
2018
- 2018-04-09 CN CN201810311679.4A patent/CN108595210B/zh active Active
-
2019
- 2019-04-08 EP EP19784398.0A patent/EP3756089B1/en active Active
- 2019-04-08 JP JP2020553496A patent/JP7324767B2/ja active Active
- 2019-04-08 US US16/479,361 patent/US11544064B2/en active Active
- 2019-04-08 WO PCT/CN2019/081699 patent/WO2019196776A1/en unknown
Patent Citations (2)
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 |