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