JP2006338656A5 - - Google Patents

Download PDF

Info

Publication number
JP2006338656A5
JP2006338656A5 JP2006114589A JP2006114589A JP2006338656A5 JP 2006338656 A5 JP2006338656 A5 JP 2006338656A5 JP 2006114589 A JP2006114589 A JP 2006114589A JP 2006114589 A JP2006114589 A JP 2006114589A JP 2006338656 A5 JP2006338656 A5 JP 2006338656A5
Authority
JP
Japan
Prior art keywords
branch
instruction
type
branch instruction
program instructions
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
JP2006114589A
Other languages
English (en)
Other versions
JP4727491B2 (ja
JP2006338656A (ja
Filing date
Publication date
Priority claimed from US11/139,984 external-priority patent/US7725695B2/en
Application filed filed Critical
Publication of JP2006338656A publication Critical patent/JP2006338656A/ja
Publication of JP2006338656A5 publication Critical patent/JP2006338656A5/ja
Application granted granted Critical
Publication of JP4727491B2 publication Critical patent/JP4727491B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Claims (9)

  1. プログラム命令のシーケンスの制御の下にデータを処理するための装置であって、
    複数の異なってエンコードされたタイプの分岐プログラム命令をデコードすることができる命令デコーダと、
    前記プログラム命令のシーケンス内の分岐命令を検出し、且つ、分岐処理が、検出された分岐命令から生じるかどうかを予測することができる分岐予測部と、
    を具備し、
    前記複数の異なってエンコードされたタイプの分岐プログラム命令は、前記分岐予測部が予測する少なくとも1つの予測されるタイプの分岐命令と、前記分岐予測部による予測の対象とならないこと以外は、前記予測されるタイプの分岐命令の1つと同じ機能を提供する少なくとも1つの予測されないタイプの分岐命令とを有し、
    前記分岐予測部は、以前に遭遇した所定の分岐命令が、分岐処理を生じる時か生じない時かの、予測されるタイプの前記所定の分岐命令を示す分岐履歴データを格納することができる分岐履歴バッファを具備し、
    前記分岐履歴予測部は、予測されないタイプの分岐命令のための分岐履歴データを格納せず、
    前記少なくとも1つの予測されないタイプの分岐命令は、分岐処理に加えて、実行される命令セットから前記装置にサポートされない命令セットへの命令セットの変更を示すタイプの分岐命令を含み、前記命令セットの変更を示す分岐命令は、前記分岐予測部が前記タイプの分岐命令を使用するべきでないことを示すことに再利用されることを特徴とする装置。
  2. 前記分岐予測部は、予測されるタイプの分岐命令のうち以前に遭遇した分岐命令の分岐ターゲットアドレスを格納することができる分岐ターゲットバッファメモリを具備し、
    前記装置は、前記分岐ターゲットバッファメモリ、予測されないタイプの分岐命令のうち以前に遭遇した分岐命令の分岐ターゲットアドレスを格納しない、ように構成されていることを特徴とする請求項1に記載の装置。
  3. 前記装置は、1処理サイクルにおいて、前記分岐ターゲットバッファメモリが有するポートであって分岐ターゲットアドレスによってアクセスされるポートよりも多くのプログラム命令をフェッチすることができることを特徴とする請求項に記載の装置。
  4. 前記少なくとも1つの予測されないタイプの分岐命令は、前記分岐ターゲットアドレスをレジスタに格納するために間接参照を使用して分岐ターゲットアドレスを指定するタイプの分岐命令を含むことを特徴とする請求項1に記載の装置。
  5. プログラム命令のシーケンスの制御の下にデータを処理するための装置であって、
    複数の異なってエンコードされたタイプの分岐プログラム命令をデコードすることができる命令デコーダ手段と、
    前記プログラム命令のシーケンス内の分岐命令を検出し、且つ、分岐処理が、検出された分岐命令から生じるかどうかを予測することができる分岐予測手段と、
    を具備し、
    前記複数の異なってエンコードされたタイプの分岐プログラム命令は、前記分岐予測手段が予測する少なくとも1つの予測されるタイプの分岐命令と、前記分岐予測手段による予測の対象とならないこと以外は、前記予測されるタイプの分岐命令の1つと同じ機能を提供する少なくとも1つの予測されないタイプの分岐命令とを有し、
    前記分岐予測手段は、以前に遭遇した所定の分岐命令が、分岐処理を生じる時か生じない時かの、予測されるタイプの前記所定の分岐命令を示す分岐履歴データを格納することができる分岐履歴バッファ手段を具備し、
    前記分岐履歴予測手段は、予測されないタイプの分岐命令のための分岐履歴データを格納せず、
    前記少なくとも1つの予測されないタイプの分岐命令は、分岐処理に加えて、実行される命令セットから前記装置にサポートされない命令セットへの命令セットの変更を示すタイプの分岐命令を含み、前記命令セットの変更を示す分岐命令は、前記分岐予測手段が前記タイプの分岐命令を使用するべきでないことを示すことに再利用されることを特徴とする装置。
  6. プログラム命令のシーケンスの制御の下に装置内でデータを処理するための方法であって、
    複数の異なってエンコードされたタイプの分岐プログラム命令をデコードするステップと、
    分岐予測部を用いて前記プログラム命令のシーケンス内の分岐命令を検出し、且つ、分岐処理が、検出された分岐命令から生じるかどうかを予測するステップと、
    を具備し、
    前記複数の異なってエンコードされたタイプの分岐プログラム命令は、前記分岐予測が予測する少なくとも1つの予測されるタイプの分岐命令と、前記分岐予測による予測の対象とならないこと以外は、前記予測されるタイプの分岐命令の1つと同じ機能を提供する少なくとも1つの予測されないタイプの分岐命令とを有し、
    前記分岐予測部は、以前に遭遇した所定の分岐命令が、分岐処理を生じる時か生じない時かの、予測されるタイプの前記所定の分岐命令を示す分岐履歴データを格納することができる分岐履歴バッファを具備し、
    前記分岐履歴予測部は、予測されないタイプの分岐命令のための分岐履歴データを格納せず、
    前記少なくとも1つの予測されないタイプの分岐命令は、分岐処理に加えて、実行される命令セットから前記装置にサポートされない命令セットへの命令セットの変更を示すタイプの分岐命令を含み、前記命令セットの変更を示す分岐命令は、前記分岐予測部が前記タイプの分岐命令を使用するべきでないことを示すことに再利用されることを特徴とする方法。
  7. プログラム命令のシーケンスの制御の下にデータを処理するためのデータ処理装置を制御するように構成された有形的表現媒体であるとともに、コンピュータが読み取り可能に記憶されたコンピュータプログラムを具備するコンピュータプログラムキャリアであって、
    前記データ処理装置は、前記プログラム命令のシーケンス内の分岐命令を検出するとともに、分岐処理が、検出された分岐命令に起因するかどうかを予測することができる分岐予測部を具備し、
    前記コンピュータプログラムは、
    複数の異なってエンコードされたタイプの分岐プログラム命令と、
    前記分岐予測部が予測する少なくとも1つの予測されるタイプの分岐命令と、
    前記分岐予測手段による予測の対象とならないこと以外は、前記予測されるタイプの分岐命令の1つと同じ機能を提供する少なくとも1つの予測されないタイプの分岐命令と
    以前に遭遇した所定の分岐命令が、分岐処理を生じる時か生じない時かの、予測されるタイプの前記所定の分岐命令を示す分岐履歴データを分岐履歴バッファに格納するとともに、予測されないタイプの分岐命令のための分岐履歴データを分岐履歴バッファに格納しないようにするための1つ以上の命令と、
    を含み、
    前記少なくとも1つの予測されないタイプの分岐命令は、分岐処理に加えて、実行される命令セットから前記データ処理装置にサポートされない命令セットへの命令セットの変更を示すタイプの分岐命令を含み、前記命令セットの変更を示す分岐命令は、前記分岐予測部が前記タイプの分岐命令を使用するべきでないことを示すことに再利用されることを特徴とするコンピュータプログラムキャリア。
  8. 複数の異なってエンコードされたタイプの分岐プログラム命令を有するプログラム命令のシーケンスの制御の下にデータを処理するためのデータ処理装置を制御するコンピュータプログラムをコンパイルするためのコンパイラであって、
    前記データ処理装置は、前記プログラム命令のシーケンス内の分岐命令を検出するとともに、分岐処理が、検出された分岐命令に起因するかどうかを予測することができる分岐予測部を具備し、
    前記分岐予測部が予測をする少なくとも1つの予測されるタイプの分岐命令と、
    前記分岐予測による予測の対象とならないこと以外は、前記予測されるタイプの分岐命令の1つと同じ機能を提供する少なくとも1つの予測されないタイプの分岐命令と、
    を生成することができ
    前記分岐予測部は、以前に遭遇した所定の分岐命令が、分岐処理を生じる時か生じない時かの、予測されるタイプの前記所定の分岐命令を示す分岐履歴データを格納することができる分岐履歴バッファを具備し、
    前記分岐履歴予測部は、予測されないタイプの分岐命令のための分岐履歴データを格納せず、
    前記少なくとも1つの予測されないタイプの分岐命令は、分岐処理に加えて、実行される命令セットから前記データ処理装置にサポートされない命令セットへの命令セットの変更を示すタイプの分岐命令を含み、前記命令セットの変更を示す分岐命令は、前記分岐予測部が前記タイプの分岐命令を使用するべきでないことを示すことに再利用されることを特徴とするコンパイラ。
  9. 前記コンパイラは、分岐処理が前記分岐予測部によって正しく予測されないことを示す指示に応答して、前記分岐予測部が予測をしない、前記予測されないタイプの分岐命令を使用して前記分岐処理をコンパイルすることを特徴とする請求項に記載のコンパイラ。
JP2006114589A 2005-05-31 2006-04-18 分岐予測コントロール Active JP4727491B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/139,984 2005-05-31
US11/139,984 US7725695B2 (en) 2005-05-31 2005-05-31 Branch prediction apparatus for repurposing a branch to instruction set as a non-predicted branch

Publications (3)

Publication Number Publication Date
JP2006338656A JP2006338656A (ja) 2006-12-14
JP2006338656A5 true JP2006338656A5 (ja) 2010-05-13
JP4727491B2 JP4727491B2 (ja) 2011-07-20

Family

ID=36425044

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006114589A Active JP4727491B2 (ja) 2005-05-31 2006-04-18 分岐予測コントロール

Country Status (4)

Country Link
US (1) US7725695B2 (ja)
JP (1) JP4727491B2 (ja)
CN (1) CN100530081C (ja)
GB (1) GB2426842B (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8521996B2 (en) * 2009-02-12 2013-08-27 Via Technologies, Inc. Pipelined microprocessor with fast non-selective correct conditional branch instruction resolution
US8131984B2 (en) * 2009-02-12 2012-03-06 Via Technologies, Inc. Pipelined microprocessor with fast conditional branch instructions based on static serializing instruction state
US9891922B2 (en) 2012-06-15 2018-02-13 International Business Machines Corporation Selectively blocking branch prediction for a predetermined number of instructions
US20140115257A1 (en) * 2012-10-22 2014-04-24 Advanced Micro Devices, Inc. Prefetching using branch information from an instruction cache
GB2506462B (en) * 2013-03-13 2014-08-13 Imagination Tech Ltd Indirect branch prediction
US9639370B1 (en) * 2015-12-15 2017-05-02 International Business Machines Corporation Software instructed dynamic branch history pattern adjustment
US10423510B2 (en) * 2017-10-04 2019-09-24 Arm Limited Apparatus and method for predicting a redundancy period
US11822923B1 (en) * 2018-06-26 2023-11-21 Advanced Micro Devices, Inc. Performing store-to-load forwarding of a return address for a return instruction
US11513801B2 (en) * 2018-09-10 2022-11-29 Advanced Micro Devices, Inc. Controlling accesses to a branch prediction unit for sequences of fetch groups
US20210149676A1 (en) * 2019-11-14 2021-05-20 Higon Austin R&D Center Corporation Branch Prediction Method, Branch Prediction Unit and Processor Core

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2603626B2 (ja) * 1987-01-16 1997-04-23 三菱電機株式会社 データ処理装置
US5228131A (en) 1988-02-24 1993-07-13 Mitsubishi Denki Kabushiki Kaisha Data processor with selectively enabled and disabled branch prediction operation
US5333283A (en) 1991-10-29 1994-07-26 International Business Machines Corporation Case block table for predicting the outcome of blocks of conditional branches having a common operand
US5608886A (en) * 1994-08-31 1997-03-04 Exponential Technology, Inc. Block-based branch prediction using a target finder array storing target sub-addresses
US5638525A (en) * 1995-02-10 1997-06-10 Intel Corporation Processor capable of executing programs that contain RISC and CISC instructions
JP3486690B2 (ja) * 1995-05-24 2004-01-13 株式会社ルネサステクノロジ パイプライン方式プロセッサ
US5721893A (en) 1996-05-14 1998-02-24 Hewlett-Packard Company Exploiting untagged branch prediction cache by relocating branches
US6282663B1 (en) * 1997-01-22 2001-08-28 Intel Corporation Method and apparatus for performing power management by suppressing the speculative execution of instructions within a pipelined microprocessor
US6601161B2 (en) * 1998-12-30 2003-07-29 Intel Corporation Method and system for branch target prediction using path information
US6859875B1 (en) 2000-06-12 2005-02-22 Freescale Semiconductor, Inc. Processor having selective branch prediction
US20020073301A1 (en) * 2000-12-07 2002-06-13 International Business Machines Corporation Hardware for use with compiler generated branch information
US6823447B2 (en) * 2001-03-01 2004-11-23 International Business Machines Corporation Software hint to improve the branch target prediction accuracy
JP3798998B2 (ja) * 2002-06-28 2006-07-19 富士通株式会社 分岐予測装置および分岐予測方法
US7000095B2 (en) 2002-09-06 2006-02-14 Mips Technologies, Inc. Method and apparatus for clearing hazards using jump instructions
US7595752B2 (en) * 2002-10-02 2009-09-29 Global Locate, Inc. Method and apparatus for enhanced autonomous GPS
JP2005078234A (ja) * 2003-08-29 2005-03-24 Renesas Technology Corp 情報処理装置
US20050216713A1 (en) * 2004-03-25 2005-09-29 International Business Machines Corporation Instruction text controlled selectively stated branches for prediction via a branch target buffer

Similar Documents

Publication Publication Date Title
JP2006338656A5 (ja)
JP5747104B2 (ja) 分散型プレディケート予測を実現するための方法、システム、およびコンピュータによってアクセス可能な媒体
TWI499975B (zh) 具有遲滯現象下一個提取預測器之訓練
US10019265B2 (en) Selectively blocking branch prediction for a predetermined number of instructions
JP2011100454A5 (ja)
JP5221546B2 (ja) 同時に予測された分岐命令を解決するための方法および装置
JP2014142969A5 (ja)
JP2008010000A5 (ja)
JP4526560B2 (ja) プロセッサおよび信号処理方法
JP4727491B2 (ja) 分岐予測コントロール
TW200604808A (en) Cache memory and method of control
WO2004075046A3 (en) Selectively unmarking of load-marked cache lines during t speculative thread execution
JP2015522196A5 (ja)
JP2011014106A5 (ja)
JP2007041837A (ja) 命令プリフェッチ装置及び命令プリフェッチ方法
TW201433979A (zh) 在提前執行中資料的選擇性污染
JP2014115851A5 (ja)
JP2005348401A5 (ja)
JP2008054209A5 (ja)
JP5154763B2 (ja) 複数の命令セットデータ処理システム内の条件付分岐命令エンコーディング
WO2016048651A1 (en) Dependency-prediction of instructions
US9262169B2 (en) Branch prediction table install source tracking
US10437596B2 (en) Processor with a full instruction set decoder and a partial instruction set decoder
JP5292831B2 (ja) プログラマブルコントローラ
US8266414B2 (en) Method for executing an instruction loop and a device having instruction loop execution capabilities