JP3602801B2 - メモリデータアクセス構造およびその方法 - Google Patents
メモリデータアクセス構造およびその方法 Download PDFInfo
- Publication number
- JP3602801B2 JP3602801B2 JP2001017270A JP2001017270A JP3602801B2 JP 3602801 B2 JP3602801 B2 JP 3602801B2 JP 2001017270 A JP2001017270 A JP 2001017270A JP 2001017270 A JP2001017270 A JP 2001017270A JP 3602801 B2 JP3602801 B2 JP 3602801B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- address
- signal
- fetch
- data access
- 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
- 238000000034 method Methods 0.000 title claims description 27
- 230000007246 mechanism Effects 0.000 claims description 23
- 230000004044 response Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000001934 delay Effects 0.000 description 1
- 230000000694 effects 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/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/3861—Recovery, e.g. branch miss-prediction, exception handling
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)
Description
【発明の属する技術分野】
本発明は、一般にメモリデータアクセス構造およびアクセス方法に関連し、特に、プロセッサでの使用に適したメモリデータアクセス構造およびアクセス方法に関するものである。
【0002】
【従来の技術】
プロセッサは現在の電子機器に広く適用される不可欠な装置である。例えば、パーソナルコンピュータにおけるCPU(中央処理装置)は、特定の要求に応じて色々な機能を提供してくれる。電子機器の機能が益々多彩になるほど、プロセッサは益々高速でなければならない。
【0003】
図4はメモリデータアクセスのブロック図であり、この図を参照しながら従来のプロセッサでの命令のプロセスについて説明する。また、図4はメモリデータアクセス制御部とプロセッサとの間のフローを示す。ここではCPUが一例として使用されている。メモリデータアクセス構造は、CPU100と、キャッシュメモリ120と、メモリ130とにより構成される。CPU100は、データ転送のために、データバス(DS)102を介してキャッシュメモリ120とメモリ130とに接続されている。さらに、CPU100は、アドレスバス(AB)104を介して、アドレスデータをキャッシュメモリ120とメモリ130とに転送する。キャッシュメモリ120は、制御信号(CS)106を介してCPU100によって制御される。
【0004】
CPU100の内部が3段のパイプラインに分かれ、命令の実行の際に、フェッチ命令、復号命令および実行命令の各段の処理が実行されるとすると、CPU100は、先ずキャッシュメモリ120から命令をフェッチする。続いて、フェッチされた命令が復号され、復号された命令に基づく実行動作へと続いていく。もし必要とされる命令が、キャッシュメモリ120に記憶されていなければ、CPU100はメモリ130から命令をフェッチする。この場合、ハードウェアの速度制限で、CPU100の多くの動作クロックサイクルが浪費される。
【0005】
CPU100の実行命令には分岐(branch)命令が含まれる。この分岐命令は、CPU100によって実行されるべき、あるアドレスに配置された次の命令を要求する制御転送命令に属す。即ち、CPU100は、現在処理しているアドレスから所望のアドレスにジャンプしなければならない。この種の命令は、ジャンプ命令や、サブルーチンのコールないしリターン命令を含む。
【0006】
図5にプログラムセグメントの例を示す。図5(a)において、IはCPU100が実行することになる命令であり、I1 ,I2 ,…,I10,I11,…は、第1,第2,…,第10,第11,…の命令を表す。ここでは、命令I1 は分岐命令であり、命令I1 の実行後、命令I10にジャンプすることになる。
【0007】
図5(b)には、クロック信号と、図5(a)に示すプログラムセグメントのためのフェッチ、復号および実行の各段との間の関係が示されている。動作クロックCは、第1,第2,第3,…,第8のクロックを表すC1 ,C2 ,C3 ,…,C8 を含む。命令I1 が実行段、即ち第3クロックC3 にあるとき、CPU100のフェッチ部が命令I3 をフェッチし始める。もし命令I3 がキャッシュメモリ120になければ、CPU100はメモリ130から命令I3 をフェッチする。
【0008】
【発明が解決しようとする課題】
しかし、命令I1 は分岐命令に属し、そのプログラムの実行方向(direction) が向け直されることになる。例えば、命令I3 をフェッチする要求がメモリ130に送られている間、命令I10が命令I3 の代わりにフェッチされる。このようにCPU100は、キャッシュメモリ120に命令I3 をフェッチする要求が完了するまで待たなければならない。図5(b)の例では、メモリ130のフェッチ命令を完了するのに3動作クロックサイクルが消費されているが、メモリ130から命令をフェッチするためのクロック数は、CPU100とメモリ130との間の速度ギャップが増大するに従って益々多くなる。CPU100の全体の動作は、図5(b)の例に示す通りである。分岐命令の実行(クロックC3 )後、命令I10はクロックC6 でフェッチされ、多くのクロックが浪費される。高効率で高い処理速度のプロセッサにとって、遅延は致命的である。
【0009】
さらに、従来技術には、命令がフェッチ段での分岐命令であるかを予測し、そしてさらに実行方向が変更されるかを予測するために分岐予測機構(分岐予測機能)が設けられる。しかし、上記の問題は、分岐予測機構を持つそのようなプロセッサにおいても依然として起きる。I1 を「とられる分岐」(taken branch)として実行方向がI10に変更されるかもしれないとする。クロックC1 でI1 をフェッチする間、もし、分岐予測機構が、I1 が分岐命令ではないとか、またはI1 が実行方向を変更しないであろうというような間違った予測をしたら、CPU100は、依然として、C3 での命令I1 の実行中にI3 をフェッチし始める。I3 が上記の例におけるキャッシュメモリ120に記憶されていなければ、上述のような欠点が生じる。たとえI1 が分岐命令として予測されたとしても、プログラムの実行方向を変更しないかもしれないし、分岐予測機構が間違った予測をしたとき、同じ問題が起こり得る。
【0010】
本発明は、プロセッサでの使用に適したメモリデータアクセス構造およびアクセス方法を提供する。分岐命令を実行している間、処理時間を浪費する、現在使用されていない命令をフェッチしている状況が回避される。従って、動作クロックの遅延が回避される。
【0011】
メモリデータアクセス構造および方法は、さらに、プロセッサが分岐予測機構を含んでいるか否かに関わらず、分岐命令を実行している間、動作クロックサイクルの浪費を回避する。
【0012】
【課題を解決するための手段】
これらおよび他の長所を達成するために、そして本発明の目的に従って、請求項1記載の発明は、プロセッサでの使用に適したメモリデータアクセス構造を提供する。この構造は、キャッシュメモリとパイプラインプロセッサとを備える。キャッシュメモリは、アドレス信号に従って命令を記憶し出力するのに使用される。パイプラインプロセッサは、複数のプロセッサ命令を実行するために使用され、パイプラインプロセッサは、前段から入力される命令に基づいて実行動作を行い、結果信号と、キャッシュメモリに出力される制御信号とを出力する実行部を含む。実行部によって実行される命令が分岐命令であるとき、結果信号はターゲットアドレスである。このターゲットアドレスは、キャッシュメモリに出力されるアドレス信号となるように選択される。キャッシュメモリは、アドレス信号に従って、実行されるべき次の命令をフェッチする。実行部が分岐命令を実行しているとき、プロセッサは、キャッシュメモリからフェッチ命令をフェッチしており、そして分岐命令実行後に得られる制御信号がキャッシュメモリに出力されるとき、実行部が分岐命令を実行しているときのフェッチ命令がキャッシュメモリに記憶されていなければ、キャッシュメモリは、制御信号に従って外部メモリからフェッチ命令をフェッチしないことを決定する。
【0013】
上記メモリデータアクセス構造において、制御信号は、現在段で実行される命令が、とられる分岐(taken branch)命令であるかを示す(請求項2)。
【0014】
上記メモリデータアクセス構造において、実行されるべき全ての命令の中で現在実行される命令のアドレスを記憶するプログラムカウンタをさらに備える(請求項3)。
【0015】
上記メモリデータアクセス構造において、実行部によって出力される結果信号と、プログラムカウンタに記憶され設定値が付加された実行されるアドレスとを受け、そしてそれら信号の1つをアドレス信号として選択するマルチプレクサをさらに備える(請求項4)。
【0016】
請求項5記載の発明は、プロセッサでの使用に適したメモリデータアクセス構造を提供する。このメモリデータアクセス構造は、キャッシュメモリと、パイプラインプロセッサと、分岐命令予測機構と、比較器とを備える。キャッシュメモリは、アドレス信号に従って命令を記憶し出力するのに使用される。パイプラインプロセッサは、複数のプロセッサ命令を実行するのに使用され、パイプラインプロセッサは、前段から転送される命令に基づいて実行動作を行い、そして結果信号を出力する実行部を含む。分岐命令予測機構は、フェッチ命令に従って予測アドレスを出力するのに使用される。比較器は、結果信号と予測アドレスとを受けて比較信号を出力するのに使用される。実行部が分岐命令を実行しているとき、結果信号はターゲットアドレスとなる。ターゲットアドレスは、キャッシュメモリに出力されるアドレス信号となるように選択される。実行されるべき次の命令はアドレス信号に従ってフェッチされる。実行部が分岐命令を実行しているとき、プロセッサはフェッチ命令をフェッチし、そして分岐命令の実行後に得られる結果信号は、比較器に転送され、比較器は、結果信号と予測アドレスに従って比較信号をキャッシュメモリに出力し、実行部が分岐命令を実行しているときのフェッチ命令がキャッシュメモリに記憶されていなければ、キャッシュメモリは、比較信号に従って外部メモリからフェッチ命令をフェッチしないことを決定する。
【0017】
上記メモリデータアクセス構造において、比較信号は、結果信号および予測アドレスに基づいた比較動作の実行後に発生される(請求項6)。
【0018】
上記メモリデータアクセス構造において、実行されるべき全ての命令の中で現在実行される命令のアドレスを記憶するプログラムカウンタをさらに備える(請求項7)。
【0019】
上記メモリデータアクセス構造において、実行部から出力される結果信号と、プログラムカウンタに記憶され決定された値を持つ信号が付加された実行アドレスと、予測アドレスとを受け、そしてこれら信号の1つをアドレス信号として選択するマルチプレクサをさらに備える(請求項8)。
【0020】
請求項9記載の発明は、パイプラインプロセッサでの使用に適したメモリデータアクセス方法を提供し、この方法は、アドレス信号に従って命令を供給し、命令を実行して結果信号および制御信号を出力し、アドレス信号に従って、実行されるべき次の命令をフェッチし、命令が分岐命令であるとき、結果信号は、キャッシュメモリに出力されるアドレス信号になるように選択されるターゲットアドレスであり、プロセッサは、分岐命令を実行しているとき、フェッチ命令をフェッチし、そして分岐命令を実行しているときのフェッチ命令がキャッシュメモリに記憶されていないとき、分岐命令の実行後に得られる制御信号に従って、外部メモリからフェッチ命令をフェッチしないことを決定する。
【0021】
上記メモリデータアクセス方法において、制御信号は、現在実行される命令が、とられる分岐命令であるかを示す(請求項10)。
【0022】
上記メモリデータアクセス方法において、結果信号と、ある値を持つ信号が付加された現在実行の命令のアドレスとを選択的に出力する(請求項11)。
【0023】
請求項12記載の発明は、パイプラインプロセッサでの使用に適したメモリデータアクセス方法を提供し、この方法は、命令を供給し、命令を実行して結果信号を出力し、フェッチ命令を受けて予測アドレスを出力する分岐予測機構を使用し、結果信号を予測アドレスと比較して比較信号を出力する。実行されている命令が分岐命令であるとき、結果信号は、ターゲットアドレスでありアドレス信号であるように選択され、プロセッサは、アドレス信号に従って次に実行されるべき命令をフェッチする。分岐命令を実行している間、プロセッサはフェッチ命令をフェッチし、分岐命令を実行しているときのフェッチ命令がキャッシュメモリになければ、キャッシュメモリは、分岐命令の実行後に得られる比較信号に従って、外部メモリからフェッチ命令をフェッチしないことを決定する。
【0024】
上記メモリデータアクセス方法において、結果信号、ある値が付加されプロセッサが現在処理しているアドレス、および予測アドレスの1つを選択的に出力する(請求項13)。
【0025】
上記メモリデータアクセス方法において、比較信号は、分岐予測機構によって予測された分岐命令が正しいかを示す(請求項14)。
【0026】
【発明の実施の形態】
本発明は、プロセッサでの使用に適したメモリデータアクセス構造および方法を提供する。メモリデータアクセス構造では、プロセッサによって実行される実行段に入る各命令に対して、実行結果がプロセッサによって認識され、制御信号を介してキャッシュメモリに送られる。制御信号に従って、キャッシュメモリは、命令を外部メモリからフェッチするか否かを決定する。分岐予測機構を持つ持たない上記構造は、従来技術におけるように発生される動作クロックを余り多く浪費しない。キャッシュメモリに起きた『ミス(ヒットし損ない)』は、このように補償されることになり、またプロセッサの性能は効果的に高められる。
【0027】
図1は本発明の実施形態に係るプロセッサのメモリアクセス構造および方法を説明するための図である。この構造では、分岐予測機構を持たないCPU300が使用されている。本発明はCPUの適用に制限されない。命令のフェッチ、復号および実行の機能を持つそれらパイプラインプロセッサは、全て本発明の技術範囲内に入いる。この実施形態では、CPU300は、少なくとも3段のパイプラインを含んだパイプラインプロセッサである。即ち、命令を実行する際、フェッチ段、復号段および実行段の処理が実行されるのである。
【0028】
図1に示すように、CPU300は、D型フリッププロップ310と、復号器320と、D型フリッププロップ330と、実行部340とを備えている。D型フリッププロップ310は、ライン302経由でキャッシュメモリ301によって入力された命令を受信する。その命令は、クロック遅延がD型フリッププロップ310で発生し、復号器320に送られる。命令は、復号器320によって復号されると、ライン322経由で別のD型フリッププロップ330に送られて、別のクロック遅延を持つことになる。さらに、命令は、ライン332経由で実行のための実行部340に送られる。
【0029】
実行後、実行部340は、例えば実行結果の制御信号をキャッシュメモリ301に転送する。実行結果は、現在実行される命令が分岐命令であるか、そしてそれが取得されたか否かを反映しなければならない。制御信号に従って、キャッシュメモリ301は、ミスした命令、つまり従来技術で説明したI3 のように、キャッシュメモリ301に記憶されていない命令が外部メモリからフェッチされるべきであるかを決定する。そうでなければ、命令は外部メモリからフェッチされないことになる。即ち、そのような命令をフェッチする要求は何ら発生しない。従って、従来技術で生じるクロック遅延は回避される。
【0030】
加えて、実行結果はマルチプレクサ350に送られる。もし実行された命令が分岐命令であれば、その結果はターゲットアドレスになる。マルチプレクサ350は、CPU300のプログラムカウンタ(PC)360にも接続されている。プログラムカウンタ360は、実行されるべき複数の命令の中で現在実行される命令のアドレスを記憶している。加算器370は、マルチプレクサ350とプログラムカウンタ360との間に設けられる。プログラムカウンタ360は、現在実行される命令のアドレスを加算器370に出力する。加算動作後、命令はマルチプレクサ350に送られる。もし分岐命令が実行されれば、分岐命令の実行結果と、加算器370によって出力されたデータとは、マルチプレクサ350からキャッシュメモリ301にアドレス信号として、またはターゲットアドレスとして出力される。実行されるべき次の命令のアドレスはこのように知らされる。
【0031】
図2はプロセッサのメモリデータアクセス構造および方法の別の実施形態の説明図である。この構造では、分岐予測機構がCPU400に含まれている。繰り返しになるが、本発明はCPUの適用に限定されない。命令フェッチ、復号および実行機能を持つ全てのパイプラインプロセッサが本発明の技術範囲内に入る。
【0032】
図2に示すように、CPU400は、D型フリッププロップ410と、復号器420と、D型フリッププロップ430と、実行部440と、比較器450と、分岐予測機構460とを備えている。
【0033】
D型フリッププロップ410は、ライン402を介してキャッシュメモリ401から命令を受け、その命令にクロック遅延が発生する。続いて、その命令は復号器420に送られる。復号器420によって復号されると、命令はライン422を介してD型フリッププロップ430に送られる。別のクロック遅延がその命令に発生し、続いてそれはライン432を介して実行のために実行部440に送られる。
【0034】
実行後、実行部440は実行結果を出力する。分岐予測機構460は、ライン402またはライン472を介してそれぞれ命令または命令アドレスを受ける。続いて、分岐予測機構460は、受けた命令または命令アドレスに従って、(ライン464、D型フリッププロップ480、ライン482、D型フリッププロップ481およびライン483を介して)比較器450に予測アドレスを出力する。続いて、比較器450は、比較信号をライン452を介してキャッシュメモリ401に出力する。キャッシュメモリ401に転送された比較信号は、実行部440からの結果信号と分岐予測機構460からの予測アドレスとについて比較動作を実行した後に発生される。続いて、キャッシュメモリ401は、比較信号に従ってミスした命令、つまりキャッシュメモリ401に記憶されていない命令をフェッチする必要があるかどうかを決める。もし必要なければ、命令は外部メモリからフェッチされない。即ち、フェッチ命令の要求は発生しない。従って、クロック遅延が回避される。
【0035】
加えて、実行結果はマルチプレクサ470に送られる。マルチプレクサ470は、加算器404によって処理(PC+X)される信号404を受信する。その『X』は、現在実行される命令の命令サイズを意味する。分岐予測機構460によって出力される予測アドレスも、ライン462を介してマルチプレクサ470に送られる。もし実行部440によって実行された命令が分岐命令なら、実行結果はターゲットアドレスとなる。これらの信号に従って、マルチプレクサ470は、命令フェッチのためにアドレス信号をキャッシュメモリ401に出力する。
【0036】
図3に、クロック信号と、フェッチ段、復号段および実行段で実行されるプログラムセグメントとの間の関係を示す。図5において、クロックC1 ,C2 ,C3 ,…,C8 は第1,第2,第3,…,第8のクロックである。命令I1 が実行段(第3クロックC3 )にあるとき、CPUはキャッシュメモリから命令I3 をフェッチする。このとき、命令I3 がキャッシュメモリに記憶されていなければ、図2,図3の上記実施形態のように、制御信号または比較信号に従って、キャッシュメモリは命令を外部メモリからフェッチするかを決定する。
【0037】
I1 が分岐命令であれば、命令I1 は実行方向を変更することになる。この例では、命令I1 は、命令I10をフェッチし始めるように実行方向を変更する。このとき、キャッシュメモリは、命令I3 をフェッチするための要求は外部メモリに出力されないことを決定する。このように、CPUは、次のクロックで分岐命令によって実行されるように、ターゲットアドレスで命令I10をフェッチし始める。このように設計されることで、命令I3 をフェッチするためにキャッシュメモリを待つことなく、ターゲットアドレスで命令がフェッチされる。
【0038】
上記メモリデータアクセス構造および方法によれば、従来技術で浪費される動作クロックは効果的に節約される。高効率で高い処理速度のプロセッサのために性能が大幅に高められる。
【0039】
【発明の効果】
本発明によれば、分岐命令を実行している間、処理時間を浪費する、現在使用されていない命令をフェッチしている状況を回避することができる。従って、動作クロックの遅延を回避することができる。
【図面の簡単な説明】
【図1】本発明の実施形態に係るプロセッサ(分岐予測機構無し)のためのメモリデータアクセス構造および方法を説明するための図である。
【図2】本発明の別の実施形態に係る分岐予測機構付きプロセッサのためのメモリデータアクセス構造および方法を説明するための図である。
【図3】本発明の実施形態に係る、クロック信号と、フェッチ段、復号段および実行段で実行されるプログラムセグメントとの間の関係を示す図である。
【図4】従来のメモリデータアクセス構造のブロック図である。
【図5】プログラムセグメントの例を示す図である。
【符号の説明】
301,401 キャッシュメモリ
310,410 D型フリッププロップ
320,420 復号器
330,430 D型フリッププロップ
340,440 実行部
350,470 マルチプレクサ
360 プログラムカウンタ
370 加算器
450 比較器
460 分岐予測機構
480,481 D型フリッププロップ
Claims (14)
- プロセッサでの使用に適したメモリデータアクセス構造であって、
アドレス信号に従って命令を記憶し出力するキャッシュメモリと、
前段から入力される命令に基づいて実行動作を行い、そして結果信号と、キャッシュメモリに出力される制御信号とを出力する実行部を含み、複数のプロセッサ命令を実行するパイプラインプロセッサと
を備え、
実行部によって実行される命令が分岐命令であるとき、結果信号は、アドレス信号に従って、実行されるべき次の命令をフェッチするキャッシュメモリに出力されるアドレス信号となるように選択されるターゲットアドレスであり、
実行部が分岐命令を実行しているとき、プロセッサは、キャッシュメモリからフェッチ命令をフェッチしており、そして分岐命令の実行後に得られる制御信号がキャッシュメモリに出力されるとき、実行部が分岐命令を実行しているときのフェッチ命令がキャッシュメモリに記憶されていなければ、キャッシュメモリは、制御信号に従って外部メモリからフェッチ命令をフェッチしないことを決定する
ことを特徴とするメモリデータアクセス構造。 - 制御信号は、現在段で実行される命令が、とられる分岐命令であるかを示すことを特徴とする請求項1記載のメモリデータアクセス構造。
- 実行されるべき全ての命令の中で現在実行される命令のアドレスを記憶するプログラムカウンタをさらに備えることを特徴とする請求項1記載のメモリデータアクセス構造。
- 実行部によって出力される結果信号と、プログラムカウンタに記憶され設定値が付加された実行されるアドレスとを受け、そしてそれら信号の1つをアドレス信号として選択するマルチプレクサをさらに備えることを特徴とする請求項3記載のメモリデータアクセス構造。
- プロセッサでの使用に適したメモリデータアクセス構造であって、
アドレス信号に従って命令を記憶し出力するキャッシュメモリと、
前段から転送された命令に基づいて実行動作を行い、そして結果信号を出力する実行部を含み、複数のプロセッサ命令を実行するパイプラインプロセッサと、
フェッチ命令に従って予測アドレスを出力する分岐命令予測機構と、
結果信号と予測アドレスとを受けて比較信号を出力する比較器と
を備え、
実行部が分岐命令を実行するとき、結果信号は、実行されるべき次の命令をアドレス信号に従ってフェッチするキャッシュメモリに出力されるアドレス信号となるように選択されるターゲットアドレスであり、
実行部が分岐命令を実行しているとき、プロセッサは、フェッチ命令をフェッチし、そして分岐命令の実行後に得られる結果信号が比較器に転送され、比較器は結果信号および予測アドレスに従って比較信号をキャッシュメモリに出力し、実行部が分岐命令を実行しているときのフェッチ命令がキャッシュメモリに記憶されていなければ、キャッシュメモリは比較信号に従って外部メモリからフェッチ命令をフェッチしないことを決定する
ことを特徴とするメモリデータアクセス構造。 - 比較信号は、結果信号および予測アドレスに基づいた比較動作の実行後に発生されることを特徴とする請求項5記載のメモリデータアクセス構造。
- 実行されるべき全ての命令の中で現在実行される命令のアドレスを記憶するプログラムカウンタをさらに備えることを特徴とする請求項5記載のメモリデータアクセス構造。
- 実行部から出力される結果信号と、プログラムカウンタに記憶され決定された値を持つ信号が付加された実行アドレスと、予測アドレスとを受け、そしてこれら信号の1つをアドレス信号として選択するマルチプレクサをさらに備えることを特徴とする請求項7記載のメモリデータアクセス構造。
- パイプラインプロセッサでの使用に適したメモリデータアクセス方法であって、
アドレス信号に従って命令を供給し、
命令を実行して結果信号および制御信号を出力し、
アドレス信号に従って、実行されるべき次の命令をフェッチし、命令が分岐命令であるとき、結果信号は、キャッシュメモリに出力されるアドレス信号になるように選択されるターゲットアドレスであり、
プロセッサは、分岐命令を実行しているとき、フェッチ命令をフェッチし、そして分岐命令を実行しているときのフェッチ命令がキャッシュメモリに記憶されていないとき、分岐命令の実行後に得られる制御信号に従って、外部メモリからフェッチ命令をフェッチしないことを決定する
ことを特徴とするメモリデータアクセス方法。 - 制御信号は、現在実行される命令が、とられる分岐命令であるかを示すことを特徴とする請求項9記載のメモリデータアクセス方法。
- 結果信号と、ある値を持つ信号が付加された現在実行の命令のアドレスとを選択的に出力することを特徴とする請求項9記載のメモリデータアクセス方法。
- パイプラインプロセッサでの使用に適したメモリデータアクセス方法であって、
命令を供給し、
命令を実行して結果信号を出力し、
フェッチ命令を受けて予測アドレスを出力する分岐予測機構を使用し、
結果信号を予測アドレスと比較して比較信号を出力する各ステップを有し、
実行されている命令が分岐命令であるとき、結果信号は、ターゲットアドレスでありアドレス信号であるように選択され、プロセッサは、アドレス信号に従って次に実行されるべき命令をフェッチし、
分岐命令を実行している間、プロセッサはフェッチ命令をフェッチし、分岐命令を実行しているときのフェッチ命令がキャッシュメモリになければ、キャッシュメモリは、分岐命令の実行後に得られる比較信号に従って、外部メモリからフェッチ命令をフェッチしないことを決定する
ことを特徴とするメモリデータアクセス方法。 - 結果信号、ある値が付加されプロセッサが現在処理しているアドレス、および予測アドレスの1つを選択的に出力することを特徴とする請求項12記載のメモリデータアクセス方法。
- 比較信号は、分岐予測機構によって予測された分岐命令が正しいかを示すことを特徴とする請求項12記載のメモリデータアクセス方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW89125861 | 2000-12-05 | ||
TW089125861A TW477954B (en) | 2000-12-05 | 2000-12-05 | Memory data accessing architecture and method for a processor |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002182902A JP2002182902A (ja) | 2002-06-28 |
JP3602801B2 true JP3602801B2 (ja) | 2004-12-15 |
Family
ID=21662196
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001017270A Expired - Fee Related JP3602801B2 (ja) | 2000-12-05 | 2001-01-25 | メモリデータアクセス構造およびその方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20020069351A1 (ja) |
JP (1) | JP3602801B2 (ja) |
TW (1) | TW477954B (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7194576B1 (en) * | 2003-07-31 | 2007-03-20 | Western Digital Technologies, Inc. | Fetch operations in a disk drive control system |
US20050278517A1 (en) * | 2004-05-19 | 2005-12-15 | Kar-Lik Wong | Systems and methods for performing branch prediction in a variable length instruction set microprocessor |
WO2007049150A2 (en) * | 2005-09-28 | 2007-05-03 | Arc International (Uk) Limited | Architecture for microprocessor-based systems including simd processing unit and associated systems and methods |
JP2011028540A (ja) * | 2009-07-27 | 2011-02-10 | Renesas Electronics Corp | 情報処理システム、キャッシュメモリの制御方法、プログラム及びコンパイラ |
US9652305B2 (en) * | 2014-08-06 | 2017-05-16 | Advanced Micro Devices, Inc. | Tracking source availability for instructions in a scheduler instruction queue |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4435756A (en) * | 1981-12-03 | 1984-03-06 | Burroughs Corporation | Branch predicting computer |
JPS6488844A (en) * | 1987-09-30 | 1989-04-03 | Takeshi Sakamura | Data processor |
JP3639927B2 (ja) * | 1993-10-04 | 2005-04-20 | 株式会社ルネサステクノロジ | データ処理装置 |
US5951678A (en) * | 1997-07-25 | 1999-09-14 | Motorola, Inc. | Method and apparatus for controlling conditional branch execution in a data processor |
US6185676B1 (en) * | 1997-09-30 | 2001-02-06 | Intel Corporation | Method and apparatus for performing early branch prediction in a microprocessor |
-
2000
- 2000-12-05 TW TW089125861A patent/TW477954B/zh not_active IP Right Cessation
- 2000-12-29 US US09/752,122 patent/US20020069351A1/en not_active Abandoned
-
2001
- 2001-01-25 JP JP2001017270A patent/JP3602801B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
TW477954B (en) | 2002-03-01 |
US20020069351A1 (en) | 2002-06-06 |
JP2002182902A (ja) | 2002-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2796797B2 (ja) | ディジタル命令プロセッサ制御装置によってインターラプトルーチンを処理する方法 | |
JP3120152B2 (ja) | コンピューターシステム | |
EP0448499B1 (en) | Instruction prefetch method and system for branch-with-execute instructions | |
CN1103960C (zh) | 在多级流水线结构中处理条件跳转的结构和方法 | |
US6687812B1 (en) | Parallel processing apparatus | |
JP2001142705A (ja) | プロセッサおよびマイクロプロセッサ | |
US6209086B1 (en) | Method and apparatus for fast response time interrupt control in a pipelined data processor | |
EP1241567A2 (en) | Method and apparatus for executing coprocessor instructions | |
US20040255103A1 (en) | Method and system for terminating unnecessary processing of a conditional instruction in a processor | |
US9710269B2 (en) | Early conditional selection of an operand | |
JP3602801B2 (ja) | メモリデータアクセス構造およびその方法 | |
JP2004145454A (ja) | 情報処理装置及び情報処理方法 | |
US6721878B1 (en) | Low-latency interrupt handling during memory access delay periods in microprocessors | |
US20080065870A1 (en) | Information processing apparatus | |
CN100430889C (zh) | 在数字信号处理器系统中的存储器访问方法 | |
KR100376639B1 (ko) | 프로세서에서 사용하기에 적합한 메모리 데이터 액세스구조 및 방법 | |
CN1357837A (zh) | 适用于处理器的存储器数据存取装置及其存取方法 | |
US20080005545A1 (en) | Dynamically shared high-speed jump target predictor | |
US7013382B1 (en) | Mechanism and method for reducing pipeline stalls between nested calls and digital signal processor incorporating the same | |
US20040230781A1 (en) | Method and system for predicting the execution of conditional instructions in a processor | |
Parthasarathy | Performance measures of superscalar processor | |
CN111124494B (zh) | 一种cpu中加速无条件跳转的方法及电路 | |
JP3568737B2 (ja) | 条件実行命令を備えるマイクロプロセッサ | |
KR920006613B1 (ko) | 파이프라인으로 동작하는 프로세서의 명령어 페취 유니트 | |
JPH08171491A (ja) | ディスパッチされた制御転送命令状態に基づきより高速で命令を先取りするための方法及び装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040416 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040511 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040811 |
|
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: 20040907 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040924 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071001 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101001 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |