JP5099133B2 - 処理装置 - Google Patents
処理装置 Download PDFInfo
- Publication number
- JP5099133B2 JP5099133B2 JP2009520201A JP2009520201A JP5099133B2 JP 5099133 B2 JP5099133 B2 JP 5099133B2 JP 2009520201 A JP2009520201 A JP 2009520201A JP 2009520201 A JP2009520201 A JP 2009520201A JP 5099133 B2 JP5099133 B2 JP 5099133B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- buffer
- branch
- stored
- address
- 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.)
- Expired - Fee Related
Links
- 239000000872 buffer Substances 0.000 claims description 222
- 238000003672 processing method Methods 0.000 claims description 19
- 238000000034 method Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 10
- 101100232404 Arabidopsis thaliana IBR3 gene Proteins 0.000 description 7
- 101100232405 Arabidopsis thaliana IBR5 gene Proteins 0.000 description 4
- 101100232944 Arabidopsis thaliana ILL4 gene Proteins 0.000 description 3
- 101100532856 Arabidopsis thaliana SDRA gene Proteins 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000010365 information processing Effects 0.000 description 2
- VLCQZHSMCYCDJL-UHFFFAOYSA-N tribenuron methyl Chemical compound COC(=O)C1=CC=CC=C1S(=O)(=O)NC(=O)N(C)C1=NC(C)=NC(OC)=N1 VLCQZHSMCYCDJL-UHFFFAOYSA-N 0.000 description 2
- 101100452002 Arabidopsis thaliana IAR1 gene Proteins 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Images
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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
- G06F9/381—Loop buffering
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3844—Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Input From Keyboards Or The Like (AREA)
Description
所定命令(例えば分岐命令)を予測する命令予測部と、
前記命令バッファに対応して設けられ、一の命令バッファに格納された命令列が読み出される場合に、次に読み出されるべき命令列が格納された他の命令バッファの識別情報により、一の命令バッファと他の命令バッファ間の接続関係を示すポインタと、
命令列の処理がループ状の繰り返しになるような所定命令の命令フェッチを行う場合に繰り返しの起点となる命令列が格納された命令バッファの識別情報を記憶した起点記憶部と、
前記所定命令が前記分岐予測部により検出された場合に、前記起点記憶部に記憶した識別情報を次に読み出す命令バッファの識別情報として前記ポインタに設定するポインタ設定部と、を備えた。
前記命令バッファに格納された命令列のデコードを行う命令デコーダと、
前記命令バッファに対応して設けられ、一の命令バッファに格納された命令列が読み出される場合に、次に読み出されるべき命令列が格納された他の命令バッファの識別情報により、一の命令バッファと他の命令バッファ間の接続関係を示すポインタと、
命令列の処理がループ状の繰り返しになるような所定命令の命令フェッチを行う場合に繰り返しの起点となる命令列が格納された命令バッファの識別情報を記憶した起点記憶部と、
前記所定命令が前記命令デコーダにより検出された場合に、前記起点記憶部に記憶した識別情報を次に読み出す命令バッファの識別情報として前記ポインタに設定するポインタ設定部と、を備えた。
所定命令を予測する命令予測部と、
前記命令バッファに対応して設けられ、一の命令バッファに格納された命令列が読み出される場合に、次に読み出されるべき命令列が格納された他の命令バッファの識別情報により、一の命令バッファと他の命令バッファ間の接続関係を示すポインタと、
命令列の処理がループ状の繰り返しになるような所定命令の命令フェッチを行う場合に繰り返しの起点となる命令列が格納された命令バッファの識別情報を記憶した起点記憶部とを有する処理装置による処理方法であって、
一の命令バッファに格納された命令列を読み出すステップと、
前記命令予測部により前記所定命令を検出するステップと、
前記所定命令が検出された場合に、前記起点記憶部に記憶した識別情報を次に読み出す命令バッファの識別情報として前記ポインタに設定するステップと、
を前記処理装置が行う。
前記命令バッファに格納された命令列のデコードを行う命令デコーダと、
前記命令バッファに対応して設けられ、一の命令バッファに格納された命令列が読み出される場合に、次に読み出されるべき命令列が格納された他の命令バッファの識別情報により、一の命令バッファと他の命令バッファ間の接続関係を示すポインタと、
命令列の処理がループ状の繰り返しになるような所定命令の命令フェッチを行う場合に繰り返しの起点となる命令列が格納された命令バッファの識別情報を記憶した起点記憶部とを有する処理装置による処理方法であって、
一の命令バッファに格納された命令列を読み出すステップと、
前記命令デコーダにより前記所定命令を検出するステップと、
前記所定命令が検出された場合に、前記起点記憶部に記憶した識別情報を次に読み出す命令バッファの識別情報として前記ポインタに設定するステップと、
を前記処理装置が行う。
本実施形態の処理装置は、ショートループの起点となりうる命令バッファの番号(識別情報)を記録しておく起点記憶部(レジスタ)を命令バッファと別に備え、分岐命令を検出した場合に、その分岐先アドレスと、起点レジスタが記憶した識別情報が示す命令バッファに属する命令フェッチアドレスとを比較する。これらが一致した場合、次にフェッチすべき命令列は、起点レジスタが示す命令バッファで保持しているものと同じである。
<システムの構成と概要>
図1に、本処理装置の構成図を示す。図2に命令フェッチにおける制御の全体図を示す。本処理装置は、例えば、主記憶装置121に格納された命令を読み出して実行する、いわゆるプログラム内蔵方式のコンピュータである。
図2に、命令フェッチ制御ユニット5の詳細構造と命令フェッチ制御ユニット5に関連する回路の構成を示す。
本処理装置においては、各命令バッファ1は個別に識別番号(識別情報)iを持つ。本実施形態では、識別番号i=0〜7までの合計8つの命令バッファがあるものとする(図2)。
に、分岐先命令列を保持する命令バッファ1の番号を示すIBRi_TGT_IBR_IDおよびその有効性フラグIBRi_TGT_ID_Vという、2系統のレジスタを備える。
図4に、命令フェッチアドレス選択部9の詳細を示す。命令フェッチアドレス選択部9は、複数のアドレスを保持する命令フェッチアドレス保持部11と所定条件により該命令フェッチアドレス保持部11からIF_REQ_ADDRESSを選択する選択部12を有する。
(1)シーケンシャル命令フェッチ要求用レジスタ:
シーケンシャル命令フェッチ要求のアドレスは、現在出力されたある命令フェッチ要求にシーケンシャルに続くアドレスである。そのアドレスは,出力された命令フェッチ要求のアドレス(IF_REQ_ADDRESS)に対して、該命令フェッチで取得され命令バッファ内に保持される命令列の合計命令長を加算したものとなる。
(2)分岐先命令フェッチ要求用レジスタ:
分岐先命令フェッチ要求のアドレスは、分岐予測部3を備える場合に生成される。分岐先命令フェッチ要求のアドレスは、現在出力されたある命令フェッチ要求で得られる命令列の中に、分岐する分岐命令が予測されときの、その予測分岐先アドレス(IF_TGT_ADDRESS)である。
(3)再命令フェッチ要求用レジスタ:
再命令フェッチ要求のアドレスは、分岐予測失敗、エラー処理などの理由により、あるスレッドの命令バッファがすべて無効になった場合に、新たに命令フェッチを開始するときの再命令フェッチアドレス(REIFCH_ADDRESS)である。ただし、割り込み、あるいは、トラップ等が発生した場合は、プログラムカウンタ122から、再命令フェッチ要求用レジスタに次にフェッチすべきアドレスが供給される。
図4の命令フェッチアドレス保持部11において、IF_SEQ_ADDRESSおよびSEQ_PARENT_IDとあるのは、シーケンシャル命令フェッチ要求用レジスタ9Sである。また、IF_TGT_ADDRESSおよびTGT_PARENT_IDとあるのは、分岐命令フェッチ要求用レジスタ9Tである。
図9は、起点レジスタ10の構成を示す図である。起点レジスタ10は、起点のバッファ番号START_IBR_IDを保持するレジスタ、およびバリッドフラグSTART_IBR_ID_VALIDを保持するレジスタを有する。
Claims (16)
- 複数の命令バッファであって、それぞれの命令バッファは命令列とポインタを格納する、複数の命令バッファと、
前記複数の命令バッファのうちのいずれかの命令バッファの識別情報を格納するための起点記憶部と、
前記起点記憶部に命令バッファの識別情報が格納されていないときに、再命令フェッチまたは分岐先フェッチが行われると、フェッチされる命令列が格納される命令バッファの識別情報を前記起点記憶部に格納する起点登録部と、
前記起点記憶部に命令バッファの識別情報が格納されているときに、所定命令が検出されると、前記所定命令により命令フェッチするアドレスと、前記起点記憶部に格納されている識別情報が指し示す命令バッファに格納されている命令列に対応する命令フェッチアドレスとを比較し、比較結果が一致であれば、前記所定命令を格納する命令バッファのポインタに、前記起点記憶部に格納されている識別情報を設定するポインタ設定部と、
を備える処理装置。 - 前記所定命令は、分岐することが予測された分岐命令である請求項1に記載の処理装置。
- 分岐予測部を更に備え、
前記所定命令は、前記分岐予測部において検出されるものである請求項1又は2に記載の処理装置。 - 前記所定命令は、実際に実行された分岐命令である請求項1に記載の処理装置。
- 前記命令バッファに格納された命令列のデコードを行う命令デコーダを更に備え、
前記所定命令は、前記命令デコーダにおいて検出されるものである請求項1に記載の処理装置。 - 前記ポインタは、対応する命令列の次に読み出されるべき命令列が格納される他の命令バッファの識別情報が設定されることにより、対応する命令バッファと他の命令バッファ
の接続関係を示すものである請求項1から5の何れか1項に記載の処理装置。 - 前記起点登録部は、前記所定命令により命令フェッチするアドレスと、前記起点記憶部に格納されている識別情報が指し示す命令バッファに格納されている命令列に対応する命令フェッチアドレスとの比較結果が不一致であるときに、当該所定命令により命令フェッチした命令列が格納される命令バッファの識別情報を前記起点記憶部に格納するものである請求項1から6のいずれか1項に記載の処理装置。
- 前記所定命令により命令フェッチするアドレスは、前記所定命令である分岐命令の分岐先アドレスである請求項1から7の何れか1項に記載の処理装置。
- 複数の命令バッファであって、それぞれの命令バッファは命令列とポインタを格納する、複数の命令バッファと、
前記複数の命令バッファのうちのいずれかの命令バッファの識別情報を格納するための起点記憶部と、
命令バッファの識別情報を前記起点記憶部に格納する起点登録部と、
命令バッファのポインタに設定を行うポインタ設定部とを備える処理装置による処理方法であって、
前記起点登録部が、前記起点記憶部に命令バッファの識別情報が格納されていないときに、再命令フェッチまたは分岐先フェッチが行われると、フェッチされる命令列が格納される命令バッファの識別情報を前記起点記憶部に格納するステップと、
所定命令を検出するステップと、
前記ポインタ設定部が、前記起点記憶部に命令バッファの識別情報が格納されているときに、所定命令が検出されると、前記所定命令により命令フェッチするアドレスと、前記起点記憶部に格納されている識別情報が指し示す命令バッファに格納されている命令列に対応する命令フェッチアドレスとを比較し、比較結果が一致であれば、前記所定命令を格納する命令バッファのポインタに、前記起点記憶部に格納されている識別情報を設定するステップと、
を前記処理装置が行う処理方法。 - 前記所定命令は、分岐することが予測された分岐命令である請求項9記載の処理方法。
- 前記処理装置は分岐予測部を更に備えるものであり、
所定命令を検出するステップは前記分岐予測部が行うものである請求項9又は10記載の処理方法。 - 前記所定命令は、実際に実行された分岐命令である請求項9記載の処理方法。
- 前記処理装置は前記命令バッファに格納された命令列のデコードを行う命令デコーダを更に備えるものであり、
前記所定命令を検出するステップは前記命令デコーダが行うものである請求項9記載の処理方法。 - 前記ポインタは、対応する命令列の次に読み出されるべき命令列が格納される他の命令バッファの識別情報が設定されることにより、対応する命令バッファと他の命令バッファの接続関係を示すものである請求項9から13の何れか1項に記載の処理方法。
- 前記起点登録部が、所定命令により命令フェッチするアドレスと、前記起点記憶部に格納されている識別情報が指し示す命令バッファに格納されている命令列に対応する命令フェッチアドレスとの比較結果が不一致であるときに、当該所定命令により命令フェッチし
た命令列が格納される命令バッファの識別情報を前記起点記憶部に格納するステップを更に有する請求項9から14の何れか1項に記載の処理方法。 - 前記所定命令により命令フェッチするアドレスは、前記所定命令である分岐命令の分岐先アドレスである請求項9から15の何れか1項に記載の処理方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2007/062454 WO2008155847A1 (ja) | 2007-06-20 | 2007-06-20 | 処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2008155847A1 JPWO2008155847A1 (ja) | 2010-08-26 |
JP5099133B2 true JP5099133B2 (ja) | 2012-12-12 |
Family
ID=40156013
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009520201A Expired - Fee Related JP5099133B2 (ja) | 2007-06-20 | 2007-06-20 | 処理装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20100106943A1 (ja) |
EP (1) | EP2169540A4 (ja) |
JP (1) | JP5099133B2 (ja) |
WO (1) | WO2008155847A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10318433B2 (en) * | 2016-12-20 | 2019-06-11 | Texas Instruments Incorporated | Streaming engine with multi dimensional circular addressing selectable at each dimension |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3804941B2 (ja) * | 2002-06-28 | 2006-08-02 | 富士通株式会社 | 命令フェッチ制御装置 |
WO2006112190A1 (ja) * | 2005-04-08 | 2006-10-26 | Matsushita Electric Industrial Co., Ltd. | プロセッサ |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3203701B2 (ja) * | 1990-11-01 | 2001-08-27 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コードセグメントのリンク方法とそのシステム及びコードセグメントのダイナミックリンク方法 |
WO1993017385A1 (en) * | 1992-02-27 | 1993-09-02 | Intel Corporation | Dynamic flow instruction cache memory |
JP3683968B2 (ja) * | 1996-02-09 | 2005-08-17 | 富士通株式会社 | 情報処理装置 |
KR100347865B1 (ko) * | 1999-11-15 | 2002-08-09 | 삼성전자 주식회사 | 어드레스 트레이스를 이용한 분기 예측 방법 |
-
2007
- 2007-06-20 JP JP2009520201A patent/JP5099133B2/ja not_active Expired - Fee Related
- 2007-06-20 WO PCT/JP2007/062454 patent/WO2008155847A1/ja active Application Filing
- 2007-06-20 EP EP20070767292 patent/EP2169540A4/en not_active Withdrawn
-
2009
- 2009-12-16 US US12/654,298 patent/US20100106943A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3804941B2 (ja) * | 2002-06-28 | 2006-08-02 | 富士通株式会社 | 命令フェッチ制御装置 |
WO2006112190A1 (ja) * | 2005-04-08 | 2006-10-26 | Matsushita Electric Industrial Co., Ltd. | プロセッサ |
Also Published As
Publication number | Publication date |
---|---|
US20100106943A1 (en) | 2010-04-29 |
EP2169540A1 (en) | 2010-03-31 |
JPWO2008155847A1 (ja) | 2010-08-26 |
EP2169540A4 (en) | 2010-09-15 |
WO2008155847A1 (ja) | 2008-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3804941B2 (ja) | 命令フェッチ制御装置 | |
JP3542020B2 (ja) | 複数予測分岐命令にわたる命令フェッチの位置合わせ命令キャッシュ処理を実行するプロセッサ装置およびプロセッサ制御方法 | |
JP5865920B2 (ja) | データ処理装置のトレース | |
JP5255367B2 (ja) | 分岐先アドレス・キャッシュを備えたプロセッサおよびデータを処理する方法 | |
CN108196884B (zh) | 利用生成重命名的计算机信息处理器 | |
JP3502592B2 (ja) | 分岐予測装置 | |
US7711934B2 (en) | Processor core and method for managing branch misprediction in an out-of-order processor pipeline | |
KR101081674B1 (ko) | 워킹 글로벌 히스토리 레지스터를 이용하기 위한 시스템 및 방법 | |
JP2004038344A (ja) | 命令フェッチ制御装置 | |
JPH11510291A (ja) | スーパースケーラープロセッサにおけるout−of−order実行のための統一化された機能オペレーションスケジューラ | |
US20200210191A1 (en) | Exit history based branch prediction | |
KR101126001B1 (ko) | 정보 처리 장치 및 분기 예측 방법 | |
TW201407348A (zh) | 微處理器的轉譯位址快取記憶體 | |
JP4009248B2 (ja) | 分岐予測装置および分岐予測方法 | |
US11055101B2 (en) | Processing apparatus and controlling method for processing apparatus | |
KR19990013425A (ko) | 데이타 처리 시스템과, 데이타 처리 시스템의 데이타 포착 방법과, 프로그램 저장 장치 | |
JP3683439B2 (ja) | 分岐予測を抑止する情報処理装置および方法 | |
US20100306513A1 (en) | Processor Core and Method for Managing Program Counter Redirection in an Out-of-Order Processor Pipeline | |
US10929137B2 (en) | Arithmetic processing device and control method for arithmetic processing device | |
JP2001236224A (ja) | 分岐予測テーブル汚染の低減方法 | |
JP5099133B2 (ja) | 処理装置 | |
JP2004038338A (ja) | 分岐予測機構を有する情報処理装置 | |
JP5696210B2 (ja) | プロセッサ及びその命令処理方法 | |
WO2007084202A2 (en) | Processor core and method for managing branch misprediction in an out-of-order processor pipeline | |
JP4728877B2 (ja) | マイクロプロセッサおよびパイプライン制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120612 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120813 |
|
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: 20120828 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120910 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20151005 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |