JP2005215946A - 情報処理装置 - Google Patents
情報処理装置 Download PDFInfo
- Publication number
- JP2005215946A JP2005215946A JP2004021207A JP2004021207A JP2005215946A JP 2005215946 A JP2005215946 A JP 2005215946A JP 2004021207 A JP2004021207 A JP 2004021207A JP 2004021207 A JP2004021207 A JP 2004021207A JP 2005215946 A JP2005215946 A JP 2005215946A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- buffer
- information processing
- address
- processing apparatus
- 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
- 239000000872 buffer Substances 0.000 claims abstract description 185
- 230000010365 information processing Effects 0.000 claims abstract description 65
- 239000013598 vector Substances 0.000 claims description 29
- 230000007704 transition Effects 0.000 claims description 18
- 238000001514 detection method Methods 0.000 claims 1
- 238000005516 engineering process Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 21
- 238000004364 calculation method Methods 0.000 description 13
- 238000000034 method Methods 0.000 description 13
- BDEDPKFUFGCVCJ-UHFFFAOYSA-N 3,6-dihydroxy-8,8-dimethyl-1-oxo-3,4,7,9-tetrahydrocyclopenta[h]isochromene-5-carbaldehyde Chemical compound O=C1OC(O)CC(C(C=O)=C2O)=C1C1=C2CC(C)(C)C1 BDEDPKFUFGCVCJ-UHFFFAOYSA-N 0.000 description 7
- 230000004044 response Effects 0.000 description 5
- 230000000630 rising effect Effects 0.000 description 5
- 101000915578 Homo sapiens Zinc finger HIT domain-containing protein 3 Proteins 0.000 description 4
- 102100028598 Zinc finger HIT domain-containing protein 3 Human genes 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 238000003708 edge detection Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 238000002360 preparation method Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 101100396930 Pseudomonas aeruginosa imm1 gene Proteins 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 101150006932 RTN1 gene Proteins 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000003252 repetitive 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/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30054—Unconditional branch instructions
-
- 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/3804—Instruction prefetching for branches, e.g. hedging, branch folding
-
- 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/3818—Decoding for concurrent execution
- G06F9/382—Pipelined decoding, e.g. using predecoding
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)
- Memory System Of A Hierarchy Structure (AREA)
- Executing Machine-Instructions (AREA)
Abstract
【解決手段】 CPU1、メモリ4、先読み手段等を備えた情報処理装置であって、先読み手段内の先読みアドレス生成部1101は、CPU1が現在アクセス中の命令列を格納する現命令バッファから、少なくとも1つの分岐アドレス演算命令と、分岐アドレスへの分岐命令からなる分岐命令列を解読し、分岐先アドレスの先読みを行う。さらに、サブルーチン復帰命令の復帰先の命令列を格納するサブルーチン復帰命令バッファを備え、現命令バッファに格納された命令列をサブルーチン復帰命令バッファに退避する。
【選択図】 図11
Description
本発明の実施の形態1を、図1〜図10に基づいて説明する。
ビット15〜4:エントリ
ビット3〜1:同一エントリ内の命令あるいはデータの位置
ビット0:命令あるいはデータの上位8ビット、下位8ビット
の以上を区別する役割を持つ。
0:先読みなし
1:割り込みベクタの先読みを要求
2:割り込みルーチン先頭命令先読みを要求
3:割り込み復帰先命令先読みを要求
と定義されている。
本発明の実施の形態2を、図11〜図21に基づいて説明する。
{rtshit0、rtshit1}=10:rtsbuf0[127:0]
{rtshit0、rtshit1}=01:rtsbuf1[127:0]
である。すなわち、セレクタ(1341)は、RTSバッファ0、RTSバッファ1のうち、ヒットしているRTSバッファの出力を選択する。
01:RTSバッファ0を更新
10:RTSバッファ1を更新
である。
{hit1、hit0、v1、v0}=1???→rtspnt[1:0]=10
{hit1、hit0、v1、v0}=01??→rtspnt[1:0]=01
{hit1、hit0、v1、v0}=000?→rtspnt[1:0]=10
{hit1、hit0、v1、v0}=0000→rtspnt[1:0]=01
上記以外 →rtspnt[1:0]=00
となる。なお、“?”は“don‘t care”を意味する。すなわち、まずヒットしているバッファを探し、ヒットしているバッファがない場合、次に無効なバッファを探すというアルゴリズムで更新するバッファを選択する。
10000000→000
?1000000→001
??100000→010
???10000→011
????1000→100
?????100→101
??????10→110
???????1→111
上記以外 →000
である。なお、“?”は“don‘t care”を意味する。
inst_sel[2:0]=000:ibuf[63:0]
inst_sel[2:0]=001:ibuf[79:16]
inst_sel[2:0]=010:ibuf[95:32]
inst_sel[2:0]=011:ibuf[111:48]
inst_sel[2:0]=100:ibuf[127:64]
inst_sel[2:0]=101:ibuf[143:80]
inst_sel[2:0]=110:ibuf[159:96]
inst_sel[2:0]=111:ibuf[175:112]
である。
{ibvh、inst_sel[2:0]、jsror70、order_hit、index_hit}=1_111_1_1_1‥(1)
{ibvh、inst_sel[2:0]、jsror70、order_hit、index_hit}=1_110_1_1_1‥(2)
{ibvh、inst_sel[2:0]、jsror70、order_hit、index_hit}=1_101_1_1_1‥(3)
{ibvh、inst_sel[2:0]、jsror70、order_hit、index_hit}=?_100_1_1_1‥(4)
{ibvh、inst_sel[2:0]、jsror70、order_hit、index_hit}=?_011_1_1_1‥(5)
{ibvh、inst_sel[2:0]、jsror70、order_hit、index_hit}=?_010_1_1_1‥(6)
{ibvh、inst_sel[2:0]、jsror70、order_hit、index_hit}=?_001_1_1_1‥(7)
{ibvh、inst_sel[2:0]、jsror70、order_hit、index_hit}=?_000_1_1_1‥(8)
である。
pfack=1
である。
Claims (13)
- CPUと、メモリと、予め定められた数の命令およびデータからなる命令列を、前記命令列内の命令またはデータを前記CPUが実行する前に先読みする先読み手段とを備えた情報処理装置であって、
割り込み要求が発生すると、割り込みベクタテーブルを先読みし、前記先読みした割り込みベクタテーブルのリードデータの中から、さらに割り込みルーチン先頭アドレスを抽出し、前記割り込みルーチン先頭アドレスの先読みを行う先読みアドレス生成手段を備えることを特徴とする情報処理装置。 - 請求項1記載の情報処理装置において、
前記先読みアドレス生成手段は、割り込み要求アサートにより、前記割り込みベクタテーブルのアドレスを出力するステートに遷移し、前記メモリから読み出された割り込みベクタテーブルを格納するリードデータの有効を示す信号のアサートより、前記リードデータから割り込みルーチンの先頭アドレスを出力するステートに遷移することを特徴とする情報処理装置。 - CPUと、メモリと、予め定められた数の命令およびデータからなる命令列を、前記命令列内の命令またはデータを前記CPUが実行する前に先読みする先読み手段とを備えた情報処理装置であって、
前記命令列が先読みバッファに格納された時点で、前記命令列内に含まれる所定の割り込み復帰命令またはサブルーチン復帰命令を検出し、復帰先の先読みを行う先読みアドレス生成手段を備えることを特徴とする情報処理装置。 - 請求項3記載の情報処理装置において、
前記先読みアドレス生成手段は、割り込みルーチンまたはサブルーチンへの分岐前に前記CPUから出力される復帰先のアドレスを保持し、前記先読みバッファの命令列内に含まれる前記所定の割り込み復帰命令またはサブルーチン復帰命令を検出した時点で、前記保持している復帰先のアドレスを出力することを特徴とする情報処理装置。 - CPUと、メモリと、予め定められた数の命令およびデータからなる命令列を、前記命令列内の命令またはデータを前記CPUが実行する前に先読みする先読み手段とを備えた情報処理装置であって、
前記CPUが現在アクセス中の命令列を格納する現命令バッファから、少なくとも1つの分岐アドレス演算命令と、分岐アドレスへの分岐命令からなる分岐命令列を解読し、分岐先アドレスの先読みを行う先読みアドレス生成手段を備えることを特徴とする情報処理装置。 - 請求項5記載の情報処理装置において、
前記先読みアドレス生成手段は、前記分岐命令列が特定の命令順を満たし、かつ前記分岐命令列に含まれる全ての命令の操作対象レジスタ番号が一致していることを条件として、分岐先の先読み要求出力および分岐先アドレス演算を行うことを特徴とする情報処理装置。 - CPUと、メモリと、予め定められた数の命令およびデータからなる命令列を、前記命令列内の命令またはデータを前記CPUが実行する前に先読みする先読み手段とを備えた情報処理装置であって、
前記CPUが現在アクセス中の命令列を格納する現命令バッファと、前記CPUが前回アクセス中であった命令列を格納する前命令バッファから、少なくとも1つの分岐アドレス演算命令と、分岐アドレスへの分岐命令からなる分岐命令列を解読し、分岐先アドレスの先読みを行う先読みアドレス生成手段を備えることを特徴とする情報処理装置。 - 請求項7記載の情報処理装置において、
前記先読みアドレス生成手段は、前記前命令バッファに格納される命令列と、前記現命令バッファに格納される命令列が連続している場合、前記前命令バッファと前記現命令バッファにまたがる分岐命令列を解読することを特徴とする情報処理装置。 - CPUと、メモリと、予め定められた数の命令およびデータからなる命令列を、前記命令列内の命令またはデータを前記CPUが実行する前に先読みする先読み手段とを備えた情報処理装置であって、
サブルーチン復帰命令の復帰先の命令列を格納する少なくとも1つのサブルーチン復帰命令バッファを備え、前記CPUが現在アクセス中の命令列を格納する現命令バッファに格納された命令列を前記サブルーチン復帰命令バッファに退避することを特徴とする情報処理装置。 - 請求項9記載の情報処理装置において、
前記サブルーチン復帰命令バッファが2つ以上の場合、更新する前記サブルーチン復帰命令バッファを選択するサブルーチン復帰命令バッファ更新ポインタを備え、前記複数のサブルーチン復帰命令バッファは、格納するエントリの有効を示す有効ビット(1:有効、0:無効)、および格納するエントリのヒット有無を示すヒットビット(1:ヒット有、0:ヒット無し)、とをそれぞれ備え、前記サブルーチン復帰命令バッファ更新ポインタは、前記各有効ビットおよび前記各ヒットビットから生成されることを特徴とする情報処理装置。 - 請求項10記載の情報処理装置において、
前記サブルーチン復帰命令バッファ更新ポインタの生成方法は、前記ヒットビットが1であるサブルーチン復帰命令バッファを選択し、前記ヒットビットが1であるサブルーチン復帰命令バッファが存在しない場合、格納されているエントリが無効であるサブルーチン復帰命令バッファを選択することを特徴とする情報処理装置。 - 請求項5記載の情報処理装置において、
前記先読みアドレス生成手段からの先読み要求と前記CPUからのリード要求が同時に発生した場合、前記CPUからのリード要求を優先することを特徴とする情報処理装置。 - 請求項9記載の情報処理装置において、
前記現命令バッファに格納された命令列の前記サブルーチン復帰命令バッファへの退避は、前記現命令バッファに格納される最初から最後より2番目までの命令列の中からサブルーチンへの分岐命令を検出した場合に行われることを特徴とする情報処理装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004021207A JP4247132B2 (ja) | 2004-01-29 | 2004-01-29 | 情報処理装置 |
US11/046,453 US20050172110A1 (en) | 2004-01-29 | 2005-01-28 | Information processing apparatus |
US13/423,145 US8578135B2 (en) | 2004-01-29 | 2012-03-16 | Apparatus for calculating and prefetching a branch target address |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004021207A JP4247132B2 (ja) | 2004-01-29 | 2004-01-29 | 情報処理装置 |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008215451A Division JP4739380B2 (ja) | 2008-08-25 | 2008-08-25 | 情報処理装置 |
JP2008299692A Division JP2009104614A (ja) | 2008-11-25 | 2008-11-25 | 情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005215946A true JP2005215946A (ja) | 2005-08-11 |
JP4247132B2 JP4247132B2 (ja) | 2009-04-02 |
Family
ID=34805604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004021207A Expired - Lifetime JP4247132B2 (ja) | 2004-01-29 | 2004-01-29 | 情報処理装置 |
Country Status (2)
Country | Link |
---|---|
US (2) | US20050172110A1 (ja) |
JP (1) | JP4247132B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9317293B2 (en) | 2012-11-28 | 2016-04-19 | Qualcomm Incorporated | Establishing a branch target instruction cache (BTIC) entry for subroutine returns to reduce execution pipeline bubbles, and related systems, methods, and computer-readable media |
GB2509830B (en) * | 2013-02-11 | 2014-12-24 | Imagination Tech Ltd | Speculative load issue |
US20150254078A1 (en) * | 2014-03-07 | 2015-09-10 | Analog Devices, Inc. | Pre-fetch unit for microprocessors using wide, slow memory |
JP2017027479A (ja) * | 2015-07-24 | 2017-02-02 | 富士通株式会社 | データ読出し方法及び情報処理システム |
GB2542831B (en) | 2015-09-30 | 2018-05-30 | Imagination Tech Ltd | Fetch unit for predicting target for subroutine return instructions |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5146038A (ja) | 1974-10-18 | 1976-04-20 | Hitachi Ltd | Deetashorisochi |
US4714994A (en) * | 1985-04-30 | 1987-12-22 | International Business Machines Corp. | Instruction prefetch buffer control |
US4709324A (en) * | 1985-11-27 | 1987-11-24 | Motorola, Inc. | Data processor control unit having an interrupt service using instruction prefetch redirection |
JPH06274341A (ja) | 1993-03-17 | 1994-09-30 | Hitachi Ltd | マイクロコンピュータ |
JP3614207B2 (ja) | 1994-12-13 | 2005-01-26 | 株式会社ルネサステクノロジ | データ処理装置 |
JPH0991139A (ja) | 1995-09-28 | 1997-04-04 | Hitachi Ltd | 情報処理装置 |
JPH11232171A (ja) | 1997-10-29 | 1999-08-27 | Hitachi Ltd | 情報処理システム |
US6341335B1 (en) | 1997-10-29 | 2002-01-22 | Hitachi, Ltd. | Information processing system for read ahead buffer memory equipped with register and memory controller |
US6108773A (en) * | 1998-03-31 | 2000-08-22 | Ip-First, Llc | Apparatus and method for branch target address calculation during instruction decode |
US7134004B1 (en) | 1999-09-29 | 2006-11-07 | Fujitsu Limited | Processing device for buffering sequential and target sequences and target address information for multiple branch instructions |
US6910124B1 (en) * | 2000-05-02 | 2005-06-21 | International Business Machines Corporation | Apparatus and method for recovering a link stack from mis-speculation |
-
2004
- 2004-01-29 JP JP2004021207A patent/JP4247132B2/ja not_active Expired - Lifetime
-
2005
- 2005-01-28 US US11/046,453 patent/US20050172110A1/en not_active Abandoned
-
2012
- 2012-03-16 US US13/423,145 patent/US8578135B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20050172110A1 (en) | 2005-08-04 |
US8578135B2 (en) | 2013-11-05 |
US20120173850A1 (en) | 2012-07-05 |
JP4247132B2 (ja) | 2009-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9367471B2 (en) | Fetch width predictor | |
JP6718454B2 (ja) | 選択的ページミス変換プリフェッチによってプログラムメモリコントローラにおけるページ変換ミスレイテンシを隠すこと | |
US7266676B2 (en) | Method and apparatus for branch prediction based on branch targets utilizing tag and data arrays | |
US20060200655A1 (en) | Forward looking branch target address caching | |
JP2004533695A (ja) | 分岐目標を予測する方法、プロセッサ、及びコンパイラ | |
JPH0863356A (ja) | 分岐予測装置 | |
JP2006520964A5 (ja) | ||
JPH10228377A (ja) | 分岐予測する情報処理装置 | |
US8578135B2 (en) | Apparatus for calculating and prefetching a branch target address | |
US20080162903A1 (en) | Information processing apparatus | |
US5276825A (en) | Apparatus for quickly determining actual jump addresses by assuming each instruction of a plurality of fetched instructions is a jump instruction | |
US7346737B2 (en) | Cache system having branch target address cache | |
JP3811140B2 (ja) | 情報処理装置 | |
US20080065870A1 (en) | Information processing apparatus | |
JP4739380B2 (ja) | 情報処理装置 | |
JP2006072926A (ja) | メモリ制御回路およびマイクロプロセッサシステム | |
JP4002288B2 (ja) | 情報処理装置 | |
JP2009104614A (ja) | 情報処理装置 | |
JP2003202981A (ja) | アドレス範囲チェック回路及び動作方法 | |
JP3765111B2 (ja) | 分岐登録命令を有するプロセッサ | |
JPH07262006A (ja) | 分岐ターゲットアドレスキャッシュを備えたデータプロセッサ | |
JPWO2012132214A1 (ja) | プロセッサ及びその命令処理方法 | |
JP3493110B2 (ja) | 高速分岐処理装置 | |
JP4049490B2 (ja) | 情報処理装置 | |
JPH06274341A (ja) | マイクロコンピュータ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051102 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080624 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080825 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080924 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081125 |
|
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: 20081216 |
|
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: 20090109 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4247132 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120116 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120116 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20250116 Year of fee payment: 16 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20250116 Year of fee payment: 16 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20250116 Year of fee payment: 16 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
EXPY | Cancellation because of completion of term |