JP2014142969A5 - - Google Patents

Download PDF

Info

Publication number
JP2014142969A5
JP2014142969A5 JP2014095690A JP2014095690A JP2014142969A5 JP 2014142969 A5 JP2014142969 A5 JP 2014142969A5 JP 2014095690 A JP2014095690 A JP 2014095690A JP 2014095690 A JP2014095690 A JP 2014095690A JP 2014142969 A5 JP2014142969 A5 JP 2014142969A5
Authority
JP
Japan
Prior art keywords
predicate
instruction
predictor
core
history register
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
Application number
JP2014095690A
Other languages
English (en)
Other versions
JP5747104B2 (ja
JP2014142969A (ja
Filing date
Publication date
Priority claimed from US12/556,440 external-priority patent/US8433885B2/en
Application filed filed Critical
Publication of JP2014142969A publication Critical patent/JP2014142969A/ja
Publication of JP2014142969A5 publication Critical patent/JP2014142969A5/ja
Application granted granted Critical
Publication of JP5747104B2 publication Critical patent/JP5747104B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

一実施例によるアーキテクチャでは、命令の各ブロックは、接続されるまたは加わるコアを調整してそのようなブロックの実行を容易にする、特定のコア(例えば所有者コア(owner core))を有してもよい。例えば、所有者コアは、従来のアーキテクチャのプログラムカウンタと同様にまたは同等に、ブロック開始アドレスにより識別され得る。図3を見ると、命令の複数のブロック(例えば、簡単にするためにブロック301〜303として示されている3つのブロック)が提供され、各ブロックは、ブロック開始アドレス304〜306の1つをそれぞれ含む。そのようなアドレス304〜306は、適切な所有者コア211〜213を識別するために使用され得る。図3に示されるように、ブロック301は自身のアドレス304を通じてコア211と関連して(例えば、コア211に所有されて)もよく、ブロック302は自身のアドレス305を通じてコア213と関連してもよく、ブロック303は自身のアドレス306を通じてコア212と関連してもよい。それぞれの所有者コア211〜213は、フェッチ命令を送信し、次のブロックアドレスを予測して所有者であることを示すトークンを次のブロックアドレスに渡し、完了情報(例えばレジスタの書き込み、記憶、出口/分岐アドレスなどを含む)を集め、コミットを送信または(1つまたは複数の)コマンドをフラッシュし、最終的にコミットの肯定応答を得るという役割を担い得る。
さらに、それぞれの所有者コア211〜213のうちの1つまたは複数は、次のブロックアドレスを予測しやすくすることができる。コア211〜213のそれぞれは、完全な機能ブロック予測器214〜216の1つをそれぞれ含んでもよく、予測器は複数のコアについて同一であっても、互いに異なっていてもよい。ブロック予測器214〜216の次の1つは、どの分岐がテイクされてブロックの外に出るかを予測できる出口予測器と、予測される出口目標に基づいてブロック214〜216の次の1つのアドレスを予測できる、予測器214〜216のうち、関連する目標となる予測器とを含んでもよい。図4を参照すると、予測器214〜216の出口予測器は、2レベルのローカル予測器、グローバル予測器、および/または選択予測器を含んでもよく、これらは、ローカル出口履歴401およびグローバル出口履歴402を使用できる。出口履歴401、402は、それぞれのブロックの各分岐命令に対して静的に割り当てられた、概略プレディケート経路情報206を用いて、コア211〜213から生成され得る。概略プレディケート経路情報206は、分岐命令に符号化されることが可能であり、特定のブロックの具体的な分岐を識別することができる。コンパイラ204は、最初は、それぞれのブロックの分岐命令の順序に基づいて、概略プレディケーション経路情報206を割り当ててもよい。コア211〜213は、出口を用いて、(従来のアーキテクチャで使用され得るような)テイクされたテイクされなかったという情報の代わりに、関連する予測器の中でローカル履歴およびグローバル履歴を生成することができる。
図6bを参照すると、別の実施例では、グローバルブロック履歴レジスタ(GBHR)605が提供され得る。分散型の出口予測器がブロックの出口コードを予測すると、そのような出口予測器は、出口予測番号またはコードを連結させることもでき、したがってGBHR605を生成する。本実施例では、コンパイラ204は、各ブロック内の分岐命令に、プログラム内での分岐命令の順序にしたがって、3ビットの出口コードを割り当てることができる。したがって、GBHR605は、グローバル履歴情報として使用され得る。ブロック内のプレディケートからの情報を何ら使用することなく、出口予測器とプレディケート予測器の両方が同一の履歴情報を共有することができ、これにより、追加の通信機構の必要性を減らす、またはなくすことができる。

Claims (12)

  1. 複数のプロセッサコアを含むマルチコアプロセッサを備えるコンピューティングシステムであって、
    前記複数のプロセッサコアの少なくともいくつかがプレディケート予測器を備え、
    少なくとも1つのプレディケート予測器が、前記複数のプロセッサコアのうちの対応するプロセッサコアにマッピングされたプレディケート命令の出力を予測するように構成され、
    コンパイラが、分岐命令とプレディケート命令が混在した命令ブロックを生成し、
    前記命令ブロックは、前記複数のプロセッサコアのうちのどのプロセッサコアが前記分岐命令を実行するのに割り当てられるかを決定するブロックアドレスを含み、
    前記予測は、前記分岐命令内に符号化された情報に基づき、
    前記分岐命令内に符号化された前記情報は、出口コードを表し、
    前記少なくとも1つのプレディケート予測器が、予測が正しく連続的に行われた数を示す信頼性予測情報を保持し、前記信頼性予測情報に基づいて、対応するプレディケート命令の出力を予測すべきかを決定するように構成され
    前記少なくとも1つのプレディケート予測器が、基本予測器およびグローバル履歴レジスタを備え、前記予測は、前記基本予測器および前記グローバル履歴レジスタにさらに基づき、
    前記グローバル履歴レジスタが、コアローカルプレディケート履歴レジスタを備え、前記コアローカルプレディケート履歴レジスタは、前記対応するプロセッサコアの前記プレディケート予測器に関するデータを記憶するように構成される、
    コンピューティングシステム。
  2. 前記複数のプロセッサコアの少なくとも1つのプロセッサコアが、前記分岐命令を備えるアプリケーションプログラムを実行するように構成される、請求項1に記載のコンピューティングシステム。
  3. 前記コンパイラの実行により、前記分岐命令に前記情報が符号化される、請求項1に記載のコンピューティングシステム。
  4. 前記マルチコアプロセッサが、エクスプリット・データ・グラフ・エグゼキューション(explicit data graph execution)マイクロアーキテクチャを備える、請求項1に記載のコンピューティングシステム。
  5. 前記グローバル履歴レジスタが、グローバルブロック履歴レジスタを備え、前記グローバルブロック履歴レジスタは、複数の命令ブロックに関する複数のエントリを記憶するように構成され、前記複数のエントリの少なくともいくつかは、関連する分岐命令に対応する予測された出口コードを含む、請求項に記載のコンピューティングシステム。
  6. マルチコアプロセッサ内の複数のプロセッサコアの少なくともいくつかに対してプレディケート予測器を使用することと、
    前記複数のプロセッサコアのうちの対応するプロセッサコアにマッピングされたプレディケート命令の出力を予測することと、
    を含み、
    少なくとも1つのプレディケート予測器が、基本予測器およびグローバル履歴レジスタを含み、前記グローバル履歴レジスタが、複数の命令ブロックに関する複数のエントリを記憶するように構成されるグローバルブロック履歴レジスタを含み、前記複数のエントリの少なくともいくつかは、関連する分岐命令に対応する予測された出口コードを含み、
    コンパイラが、分岐命令とプレディケート命令が混在した命令ブロックを生成し、前記プレディケート命令の前記出力を予測することは、前記分岐命令内に符号化された情報に基づき、前記プレディケート命令の前記出力を予測することは、前記基本予測器および前記グローバル履歴レジスタにさらに基づき、前記分岐命令内に符号化された前記情報は、出口コードを表し、
    前記少なくとも1つのプレディケート予測器が、予測が正しく連続的に行われた数を示す信頼性予測情報を保持し、前記信頼性予測情報に基づいて、対応するプレディケート命令の出力を予測すべきかを決定
    前記グローバル履歴レジスタが、コアローカルプレディケート履歴レジスタを備え、前記コアローカルプレディケート履歴レジスタは、前記対応するプロセッサコアの前記プレディケート予測器に関するデータを記憶するように構成される、
    マルチコアプロセッサ内でプレディケート予測を提供する方法。
  7. 前記複数のプロセッサコアの少なくとも1つのプロセッサコアによってアプリケーションプログラムを実行することをさらに含み、前記アプリケーションプログラムが、前記分岐命令を含む、請求項に記載の方法。
  8. コンパイラを用いて、前記分岐命令に前記情報を符号化することをさらに含む、請求項に記載の方法。
  9. 記命令ブロックは、ブロックアドレスを含み、前記ブロックアドレスを用いて、どのプロセッサコアが前記分岐命令を実行するかを決定することをさらに含む、請求項に記載の方法。
  10. マルチコアプロセッサコンピューティングシステム内でプレディケート予測を提供するためのコンピュータ実行可能命令が記憶された、コンピュータによってアクセス可能な媒体であって、処理構成が、前記処理構成による前記コンピュータ実行可能命令の実行に応じて処理手順を実行するように構成され、前記処理手順が、
    マルチコアプロセッサの複数のプロセッサコアの少なくともいくつかに対してプレディケート予測器を使用することであって、前記プロセッサコアの少なくともいくつかが少なくとも1つのプレディケート予測器を備える、使用することと、
    前記複数のプロセッサコアのうちの対応するプロセッサコアにマッピングされたプレディケート命令の出力を予測することと、
    を含み、コンパイラが、分岐命令とプレディケート命令が混在した命令ブロックを生成し、前記プレディケート命令の前記出力を予測することは、前記分岐命令内に符号化された情報に基づき、前記命令ブロックは、前記複数のプロセッサコアのうちのどのプロセッサコアが前記分岐命令を実行するのに割り当てられるかを決定するブロックアドレスを含み、前記分岐命令内に符号化された前記情報は、出口コードを表し、
    前記少なくとも1つのプレディケート予測器が、予測が正しく連続的に行われた数を示す信頼性予測情報を保持し、前記信頼性予測情報に基づいて、対応するプレディケート命令の出力を予測すべきかを決定
    前記少なくとも1つのプレディケート予測器が、基本予測器およびグローバル履歴レジスタを備え、前記予測は、前記基本予測器および前記グローバル履歴レジスタにさらに基づき、
    前記グローバル履歴レジスタが、コアローカルプレディケート履歴レジスタを備え、前記コアローカルプレディケート履歴レジスタは、前記対応するプロセッサコアの前記プレディケート予測器に関するデータを記憶するように構成される、
    コンピュータによってアクセス可能な媒体。
  11. 複数のプロセッサコアを含むマルチコアプロセッサを備えるコンピューティングシステムであって、
    前記複数のプロセッサコアの少なくともいくつかがプレディケート予測器を備え、
    少なくとも1つのプレディケート予測器が、前記複数のプロセッサコアのうちの対応するプロセッサコアにマッピングされたプレディケート命令の出力を予測するように構成され、
    前記少なくとも1つのプレディケート予測器が、基本予測器およびグローバル履歴レジスタを備え、
    前記グローバル履歴レジスタが、前記対応するプロセッサコアの前記プレディケート予測器に関するデータを記憶するように構成されるコアローカルプレディケート履歴レジスタと、複数の命令ブロックに関する複数のエントリを記憶するように構成されるグローバルブロック履歴レジスタとを備え、
    前記複数のエントリの少なくともいくつかは、関連する分岐命令に対応する予測された出口コードを含み、
    コンパイラが、分岐命令とプレディケート命令が混在した命令ブロックを生成し、
    前記予測は、前記分岐命令内に符号化された情報に基づき、
    前記予測は、前記基本予測器および前記グローバル履歴レジスタにさらに基づき、
    前記情報は、出口コードを表し、
    前記少なくとも1つのプレディケート予測器が、予測が正しく連続的に行われた数を示す信頼性予測情報を保持し、前記信頼性予測情報に基づいて、対応するプレディケート命令の出力を予測すべきかを決定するように構成される、
    コンピューティングシステム。
  12. マルチコアプロセッサ内の複数のプロセッサコアの少なくともいくつかに対してプレディケート予測器を使用することと、
    前記複数のプロセッサコアのうちの対応するプロセッサコアにマッピングされたプレディケート命令の出力を予測することと、
    を含み、
    コンパイラが、分岐命令とプレディケート命令が混在した命令ブロックを生成し、前記命令ブロックは、前記複数のプロセッサコアのうちのどのプロセッサコアが前記分岐命令を実行するのに割り当てられるかを決定するブロックアドレスを含み、前記プレディケート命令の前記出力を予測することは、前記分岐命令内に符号化された情報に基づき、前記分岐命令内に符号化された前記情報は、出口コードを表し、
    前記プレディケート予測器が、前記予測が正しく連続的に行われた数を示す信頼性予測情報を保持し、前記信頼性予測情報に基づいて、対応するプレディケート命令の出力を予測すべきかを決定
    前記プレディケート予測器が、基本予測器およびグローバル履歴レジスタを備え、前記予測は、前記基本予測器および前記グローバル履歴レジスタにさらに基づき、
    前記グローバル履歴レジスタが、コアローカルプレディケート履歴レジスタを備え、前記コアローカルプレディケート履歴レジスタは、前記対応するプロセッサコアの前記プレディケート予測器に関するデータを記憶するように構成される、
    マルチコアプロセッサ内でプレディケート予測を提供する方法。
JP2014095690A 2009-09-09 2014-05-07 分散型プレディケート予測を実現するための方法、システム、およびコンピュータによってアクセス可能な媒体 Active JP5747104B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/556,440 2009-09-09
US12/556,440 US8433885B2 (en) 2009-09-09 2009-09-09 Method, system and computer-accessible medium for providing a distributed predicate prediction

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2012522834A Division JP2013500539A (ja) 2009-09-09 2010-06-11 分散型プレディケート予測を実現するための方法、システム、およびコンピュータによってアクセス可能な媒体

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2015096238A Division JP2015164068A (ja) 2009-09-09 2015-05-11 分散型プレディケート予測を実現するための方法、システム、およびコンピュータによってアクセス可能な媒体

Publications (3)

Publication Number Publication Date
JP2014142969A JP2014142969A (ja) 2014-08-07
JP2014142969A5 true JP2014142969A5 (ja) 2015-05-14
JP5747104B2 JP5747104B2 (ja) 2015-07-08

Family

ID=43648555

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2012522834A Pending JP2013500539A (ja) 2009-09-09 2010-06-11 分散型プレディケート予測を実現するための方法、システム、およびコンピュータによってアクセス可能な媒体
JP2014095690A Active JP5747104B2 (ja) 2009-09-09 2014-05-07 分散型プレディケート予測を実現するための方法、システム、およびコンピュータによってアクセス可能な媒体
JP2015096238A Pending JP2015164068A (ja) 2009-09-09 2015-05-11 分散型プレディケート予測を実現するための方法、システム、およびコンピュータによってアクセス可能な媒体

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2012522834A Pending JP2013500539A (ja) 2009-09-09 2010-06-11 分散型プレディケート予測を実現するための方法、システム、およびコンピュータによってアクセス可能な媒体

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2015096238A Pending JP2015164068A (ja) 2009-09-09 2015-05-11 分散型プレディケート予測を実現するための方法、システム、およびコンピュータによってアクセス可能な媒体

Country Status (6)

Country Link
US (1) US8433885B2 (ja)
JP (3) JP2013500539A (ja)
KR (1) KR101364314B1 (ja)
CN (2) CN102473086B (ja)
DE (1) DE112010003595B4 (ja)
WO (1) WO2011031361A1 (ja)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US9021241B2 (en) 2010-06-18 2015-04-28 The Board Of Regents Of The University Of Texas System Combined branch target and predicate prediction for instruction blocks
EP2645254A4 (en) * 2010-11-25 2014-01-15 Toyota Motor Co Ltd PROCESSOR, ELECTRONIC CONTROL DEVICE, CREATION PROGRAM
JPWO2012127589A1 (ja) * 2011-03-18 2014-07-24 富士通株式会社 マルチコアプロセッサシステム、および分岐予測方法
US9182991B2 (en) 2012-02-06 2015-11-10 International Business Machines Corporation Multi-threaded processor instruction balancing through instruction uncertainty
US9268569B2 (en) 2012-02-24 2016-02-23 Apple Inc. Branch misprediction behavior suppression on zero predicate branch mispredict
US9792252B2 (en) 2013-05-31 2017-10-17 Microsoft Technology Licensing, Llc Incorporating a spatial array into one or more programmable processor cores
US9507594B2 (en) * 2013-07-02 2016-11-29 Intel Corporation Method and system of compiling program code into predicated instructions for execution on a processor without a program counter
US20160232346A1 (en) * 2015-02-05 2016-08-11 Qualcomm Incorporated Mechanism for tracking tainted data
US9946549B2 (en) 2015-03-04 2018-04-17 Qualcomm Incorporated Register renaming in block-based instruction set architecture
US9916164B2 (en) * 2015-06-11 2018-03-13 Intel Corporation Methods and apparatus to optimize instructions for execution by a processor
US20160378491A1 (en) * 2015-06-26 2016-12-29 Microsoft Technology Licensing, Llc Determination of target location for transfer of processor control
US10191747B2 (en) 2015-06-26 2019-01-29 Microsoft Technology Licensing, Llc Locking operand values for groups of instructions executed atomically
US9946548B2 (en) 2015-06-26 2018-04-17 Microsoft Technology Licensing, Llc Age-based management of instruction blocks in a processor instruction window
US10346168B2 (en) 2015-06-26 2019-07-09 Microsoft Technology Licensing, Llc Decoupled processor instruction window and operand buffer
US11755484B2 (en) 2015-06-26 2023-09-12 Microsoft Technology Licensing, Llc Instruction block allocation
US9952867B2 (en) 2015-06-26 2018-04-24 Microsoft Technology Licensing, Llc Mapping instruction blocks based on block size
US9940136B2 (en) 2015-06-26 2018-04-10 Microsoft Technology Licensing, Llc Reuse of decoded instructions
US10169044B2 (en) 2015-06-26 2019-01-01 Microsoft Technology Licensing, Llc Processing an encoding format field to interpret header information regarding a group of instructions
US9720693B2 (en) 2015-06-26 2017-08-01 Microsoft Technology Licensing, Llc Bulk allocation of instruction blocks to a processor instruction window
US10175988B2 (en) 2015-06-26 2019-01-08 Microsoft Technology Licensing, Llc Explicit instruction scheduler state information for a processor
US10409599B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Decoding information about a group of instructions including a size of the group of instructions
US10409606B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Verifying branch targets
US10719321B2 (en) 2015-09-19 2020-07-21 Microsoft Technology Licensing, Llc Prefetching instruction blocks
US10452399B2 (en) 2015-09-19 2019-10-22 Microsoft Technology Licensing, Llc Broadcast channel architectures for block-based processors
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
US20170083341A1 (en) * 2015-09-19 2017-03-23 Microsoft Technology Licensing, Llc Segmented instruction block
US11126433B2 (en) 2015-09-19 2021-09-21 Microsoft Technology Licensing, Llc Block-based processor core composition register
US10180840B2 (en) 2015-09-19 2019-01-15 Microsoft Technology Licensing, Llc Dynamic generation of null instructions
US11977891B2 (en) 2015-09-19 2024-05-07 Microsoft Technology Licensing, Llc Implicit program order
US10095519B2 (en) 2015-09-19 2018-10-09 Microsoft Technology Licensing, Llc Instruction block address register
US11016770B2 (en) 2015-09-19 2021-05-25 Microsoft Technology Licensing, Llc Distinct system registers for logical processors
US10936316B2 (en) 2015-09-19 2021-03-02 Microsoft Technology Licensing, Llc Dense read encoding for dataflow ISA
US20170083319A1 (en) * 2015-09-19 2017-03-23 Microsoft Technology Licensing, Llc Generation and use of block branch metadata
US10776115B2 (en) 2015-09-19 2020-09-15 Microsoft Technology Licensing, Llc Debug support for block-based processor
US10061584B2 (en) 2015-09-19 2018-08-28 Microsoft Technology Licensing, Llc Store nullification in the target field
US11681531B2 (en) 2015-09-19 2023-06-20 Microsoft Technology Licensing, Llc Generation and use of memory access instruction order encodings
US10678544B2 (en) 2015-09-19 2020-06-09 Microsoft Technology Licensing, Llc Initiating instruction block execution using a register access instruction
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
US10031756B2 (en) 2015-09-19 2018-07-24 Microsoft Technology Licensing, Llc Multi-nullification
US11106467B2 (en) 2016-04-28 2021-08-31 Microsoft Technology Licensing, Llc Incremental scheduler for out-of-order block ISA processors
US20180081690A1 (en) * 2016-09-21 2018-03-22 Qualcomm Incorporated Performing distributed branch prediction using fused processor cores in processor-based systems
US11531552B2 (en) 2017-02-06 2022-12-20 Microsoft Technology Licensing, Llc Executing multiple programs simultaneously on a processor core
US10963379B2 (en) 2018-01-30 2021-03-30 Microsoft Technology Licensing, Llc Coupling wide memory interface to wide write back paths
US10824429B2 (en) 2018-09-19 2020-11-03 Microsoft Technology Licensing, Llc Commit logic and precise exceptions in explicit dataflow graph execution architectures

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3499252B2 (ja) * 1993-03-19 2004-02-23 株式会社ルネサステクノロジ コンパイル装置及びデータ処理装置
US6178498B1 (en) * 1997-12-18 2001-01-23 Idea Corporation Storing predicted branch target address in different storage according to importance hint in branch prediction instruction
US6353883B1 (en) * 1998-08-04 2002-03-05 Intel Corporation Method and apparatus for performing predicate prediction
US20010042195A1 (en) * 1998-08-04 2001-11-15 Ralph M. Kling Method and apparatus for performing predicate prediction
US6367004B1 (en) * 1998-12-31 2002-04-02 Intel Corporation Method and apparatus for predicting a predicate based on historical information and the least significant bits of operands to be compared
US6513109B1 (en) * 1999-08-31 2003-01-28 International Business Machines Corporation Method and apparatus for implementing execution predicates in a computer processing system
US6662294B1 (en) * 2000-09-28 2003-12-09 International Business Machines Corporation Converting short branches to predicated instructions
US20030023959A1 (en) * 2001-02-07 2003-01-30 Park Joseph C.H. General and efficient method for transforming predicated execution to static speculation
US7114059B2 (en) * 2001-11-05 2006-09-26 Intel Corporation System and method to bypass execution of instructions involving unreliable data during speculative execution
KR100528479B1 (ko) * 2003-09-24 2005-11-15 삼성전자주식회사 전력 소모를 감소시키기 위한 분기 예측기 및 구현방법
US8607209B2 (en) * 2004-02-04 2013-12-10 Bluerisc Inc. Energy-focused compiler-assisted branch prediction
US20050216714A1 (en) * 2004-03-25 2005-09-29 Intel Corporation Method and apparatus for predicting confidence and value
WO2006112045A1 (ja) * 2005-03-31 2006-10-26 Matsushita Electric Industrial Co., Ltd. 演算処理装置
US8904155B2 (en) * 2006-03-17 2014-12-02 Qualcomm Incorporated Representing loop branches in a branch history register with multiple bits
US20070288733A1 (en) * 2006-06-08 2007-12-13 Luick David A Early Conditional Branch Resolution
US7487340B2 (en) * 2006-06-08 2009-02-03 International Business Machines Corporation Local and global branch prediction information storage
US9946550B2 (en) * 2007-09-17 2018-04-17 International Business Machines Corporation Techniques for predicated execution in an out-of-order processor
US7870371B2 (en) * 2007-12-17 2011-01-11 Microsoft Corporation Target-frequency based indirect jump prediction for high-performance processors
US7818551B2 (en) * 2007-12-31 2010-10-19 Microsoft Corporation Feedback mechanism for dynamic predication of indirect jumps

Similar Documents

Publication Publication Date Title
JP2014142969A5 (ja)
JP5747104B2 (ja) 分散型プレディケート予測を実現するための方法、システム、およびコンピュータによってアクセス可能な媒体
US10185570B2 (en) Dynamic thread sharing in branch prediction structures
US11379229B2 (en) Apparatus and method for adaptable and efficient lane-wise tensor processing
JP6006247B2 (ja) 共有メモリへのアクセスの同期を緩和するプロセッサ、方法、システム、及びプログラム
CN108351777B (zh) 用于管理处理系统中的辅助分支预测的方法和系统
KR101594502B1 (ko) 바이패스 멀티플 인스턴스화 테이블을 갖는 이동 제거 시스템 및 방법
KR101804908B1 (ko) 캐시 점유도 결정 및 명령어 스케줄링을 위한 방법 및 장치
US20160055004A1 (en) Method and apparatus for non-speculative fetch and execution of control-dependent blocks
KR101732046B1 (ko) 해시 동작을 효율적으로 실행하는 방법 및 장치
KR102256188B1 (ko) 데이터 처리장치 및 벡터 오퍼랜드를 처리하는 방법
US10831505B2 (en) Architecture and method for data parallel single program multiple data (SPMD) execution
JP2015043216A5 (ja)
US9904554B2 (en) Checkpoints for a simultaneous multithreading processor
US20140331031A1 (en) Reconfigurable processor having constant storage register
WO2007107707A3 (en) Computer architecture
US20160034279A1 (en) Branch prediction using multi-way pattern history table (pht) and global path vector (gpv)
US20130339689A1 (en) Later stage read port reduction
US20210019149A1 (en) Detecting a dynamic control flow re-convergence point for conditional branches in hardware
US11269647B2 (en) Finish status reporting for a simultaneous multithreading processor using an instruction completion table
US20220050680A1 (en) Tracking load and store instructions and addresses in an out-of-order processor
US20140317382A1 (en) Dynamic configuration of processing pipeline based on determined type of fetched instruction
KR102224844B1 (ko) 선점 방식을 선택하는 방법 및 장치.
US10409609B2 (en) Age management logic
CN104239001A (zh) 至少一个处理流水线中的操作数生成