JP3599499B2 - 中央処理装置 - Google Patents
中央処理装置 Download PDFInfo
- Publication number
- JP3599499B2 JP3599499B2 JP28365796A JP28365796A JP3599499B2 JP 3599499 B2 JP3599499 B2 JP 3599499B2 JP 28365796 A JP28365796 A JP 28365796A JP 28365796 A JP28365796 A JP 28365796A JP 3599499 B2 JP3599499 B2 JP 3599499B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- instruction
- data
- register
- adder
- 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 - Lifetime
Links
- 238000000034 method Methods 0.000 claims description 7
- 238000006073 displacement reaction Methods 0.000 description 8
- 238000007792 addition Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000009467 reduction Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000004904 shortening Methods 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/324—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address using program counter relative addressing
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- 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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/355—Indexed addressing
- G06F9/3557—Indexed addressing using program counter as base address
-
- 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/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- 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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Description
【発明の属する技術分野】
本発明は、パイプライン処理を行うマイクロプロセッサ等の中央処理装置(CPU)に関する。
【0002】
【従来の技術】
マイクロプロセッサ等の中央処理装置(CPU)の性能を向上させるための手段の一つとして、パイプライン処理が利用されている。パイプライン処理は、命令を読み取って解読し実行するまでをステージと呼ばれるいくつかの段階に分け、複数の命令の各ステージを同時に実行することにより、次々に命令が実行されている状態において1命令当たりの処理に要する時間を短縮するものである。
【0003】
CPUで命令を実行するには、その実行に使用されるデータすなわちオペランドのアドレスを指定する必要がある。このアドレスの指定方法(アドレス指定モード)としてどのようなものを用意するかは、そのCPUを特徴づけるものであり、各命令では、そのCPUに用意されたいくつかのアドレス指定モードのうちのいずれかのモードでその命令のオペランドのアドレスが指定される。そしてCPUは、各命令を実行する際に、その命令のアドレス指定モードに基づきその命令で指定されたアドレスデータを用いてその命令のオペランドのアドレス(実効アドレス)を算出する。
【0004】
この実効アドレスの算出には必要に応じて演算器が使用されるが、アドレス演算専用の演算器が設けられていないCPUでは、オペランドの演算処理(データ処理)に使用されるALUがこのアドレス計算にも使用される。この場合、オペランドの演算とアドレス計算とはパイプライン上における同一ステージとして扱われることになる。その結果、或る命令のアドレス計算は、その前の命令のオペランドの演算が終了するまで行うことができない。この点につき、図3に示すタイミングチャートを参照しつつ説明する。
【0005】
図3に示した例では、パイプラインのステージは命令フェッチのステージ、デコードのステージ、および演算処理のステージという三つのステージから成り、サイクル1では、或る命令Aのデコード(解読)が行われると共に次の命令Bのフェッチが行われる。次のサイクル2では、命令Aのデータ処理が行われると共に命令Bの解読が行われる。しかし、この例ではアドレス専用の演算器が設けられていないため、このサイクル2において命令Bのオペランドのアドレスを算出することはできない。その結果、その次のサイクル3でALUにおいて命令Bのアドレス計算が行われ、サイクル4で命令Bの演算処理が行われることになる。このように、1命令当たり2回以上実行されるステージ(図3の例におけるALUでの演算ステージ)が存在すると、そのステージよりも前段のステージ(命令フェッチおよびデコードのステージ)は待機させられ動作が停止する。
【0006】
【発明が解決しようとする課題】
上記のような事態を回避するために、アドレス計算とオペランドの演算処理とを別のステージにすることが考えられる。これにより、或る命令がオペランドの演算処理のステージにあるとき、別のステージであるアドレス計算のステージで次の命令のオペランドのアドレスを算出することができる。
【0007】
しかし、この場合には、アドレス計算にALUを使用することができないため、アドレス計算専用の演算器(以下「アドレス用演算器」という)を別途設ける必要がある。このアドレス用演算器は、そのCPUが用意する全てのアドレス指定モードでのアドレス計算を実行できなければならず、複雑なアドレス指定モードが用意されている場合にはそれに応じてアドレス用演算器やそれへのデータ経路等の構成が複雑なものとなる。例えば、或るレジスタの値と別のレジスタの値との加算結果を目的のアドレスとする場合には、それらのレジスタからアドレス用演算器へのデータ経路を確保しなければならない。加算する一方がレジスタの値ではなく命令コードに設定された即値の場合には、その即値をアドレス用演算器へ入力するデータ経路を確保しなければならない。目的のアドレスを得るのに複数回演算しなければならない場合は、演算結果を一時的に保持する手段と、そこから再びその演算結果をアドレス用演算器へ入力するデータ経路の確保も必要となる。
【0008】
また、CPU内部の特定のレジスタをベースレジスタとして使用するアドレス指定モードによりオペランドのアドレスを算出する場合には、ハザードの問題を考慮しなければならない。ここでのハザードの問題とは、或る命令がCPU内部のレジスタの値を更新した場合、その後続の命令は更新後の値を使用しなければならないが、パイプラインのステージがオーバラップしてくると、或る命令がレジスタの値を更新する前に後続の命令がそのレジスタの更新前の値を参照する可能性が生じる、という問題をいう。この問題を回避するためには、ハザードを検出して後続のステージをストール(停止)させるか、または更新する予定のデータをバイパスする(レジスタを介さずに横流しする)などの工夫が必要になる。
【0009】
このように、アドレス計算とオペランドの演算処理とを別のステージとした場合には、CPUの用意する全てのアドレス指定モードに対応できるアドレス用演算器が必要となって回路規模が増大したり、パイプライン処理におけるハザードの問題に対処するためにパイプライン処理における制御が複雑化したりする。そして、これらはCPUのコストを上昇させることになる。
【0010】
本発明は上記問題を解決するためになされたものであり、その目的とするところは、回路規模の増大や制御の複雑化を抑えつつ、パイプライン処理によってアドレス計算をオペランドの演算処理と同時に行うことにより処理速度を向上させた中央処理装置を提供することにある。
【0011】
【課題を解決するための手段】
上記課題を解決するために成された本発明では、メモリから命令を読み出して解読し実行するまでの処理をパイプライン方式により行う中央処理装置において、
実行すべき命令のオペランドの演算のための演算器とは別個に設けられた加算器であって、該オペランドのアドレスを計算するための専用の加算器と、
内部の特定レジスタに格納されたデータを前記加算器へ入力データとして転送するための専用の第1データ経路と、
実行すべき命令の即値フィールドに設定された即値データを前記加算器へ入力データとして転送するための専用の第2データ経路と、
前記メモリから読み出された命令のオペランドのアドレスが前記即値データと前記特定レジスタに格納されたデータとの加算により算出できるか否かを判定する判定手段を有し、該判定手段により算出できると判定された場合に、前記特定レジスタに格納されたデータが前記第1のデータ経路を経て前記加算器へ転送され、前記即値データが前記第2データ経路を経て前記加算器へ転送され、転送された両データから前記加算器により前記アドレスが算出されるように、前記第1および第2データ経路ならびに前記加算器を制御し、また、該判定手段において前記加算により算出できると判定されない場合には、前記演算器により前記アドレスが算出されるように前記演算器を制御する制御手段と、
を備えた構成としている。
【0012】
なお、本発明の中央処理装置において、プログラムカウンタ、スタックポインタレジスタ、またはフレームポインタレジスタのうちのいずれかを上記特定のレジスタとするのが好ましい。
【0013】
【発明の効果】
本発明によれば、命令のオペランドのアドレスが特定レジスタのデータと命令コード中の即値データとの加算により算出されるディスプレースメント付きレジスタ間接アドレス指定モードの場合には、第1および第2データ経路とアドレス計算専用の加算器を用いて、他の命令のオペランドの演算処理と並行してアドレス計算を行うことができ、これにより命令の実行に必要なサイクル数を1サイクルだけ低減することができる。また本発明では、アドレス計算をオペランドの演算処理と同時に行うための機構を、アドレス計算専用の加算器を中心として第1および第2データ経路を含む比較的少量のハードウェアで実現できる。したがって、比較的少ないハードウェア量の追加で中央処理装置の処理速度を向上させることができる。
【0014】
本発明に係る好ましい中央処理装置では、プログラムカウンタ、スタックポインタレジスタ、またはフレームポインタレジスタのうちのいずれかが上記特定レジスタとして使用され、上記処理速度の向上において大きな効果が得られる。すなわち、プログラムカウンタの値に即値データを加算するアドレス指定モードは分岐命令で相対分岐として多用され、スタックポインタに即値データを加算するアドレス指定モードはスタックに蓄積された情報を参照する場合に多用され、フレームポインタに命令コード中の即値データを加算するアドレス指定モードは高級言語における関数コール(サブルーチンコール)によって形成されたスタックフレームの情報を参照する場合に多用され、これらのアドレス指定モードはいずれも使用頻度が高い。したがって、これらのアドレス指定モードの命令のサイクル数の低減は中央処理装置による処理の高速化に大きく寄与する。
【0015】
なお本発明のように、アドレス計算専用の加算器での演算に使用されるレジスタをプログラムカウンタやスタックポインタレジスタ、フレームポインタレジスタなど、汎用レジスタ以外の特定のレジスタに限定すると、そのようなレジスタの値の更新をサイクルの前半に限定する等の方法により、アドレス計算においてそれらのレジスタの値が読み出される前に更新されるようにすることができる。これにより、パイプライン処理における制御の複雑化を抑えつつ、ハザードの発生を防止することができる。
【0016】
以上のように本発明によれば、オペランドの演算処理と同時にアドレス計算を行えるアドレス指定モードを限定する(アドレス計算に使用するレジスタを限定する)ことによりアドレス計算専用のハードウェア量の増大やパイプライン処理における制御の複雑化を抑えつつ、その限定すべきアドレス指定モードとして使用頻度の高いものを選定することによりアドレス計算に要する時間の短縮化の効果を高めることができる。したがって、コスト上昇を抑えつつ処理速度を向上させた中央処理装置を提供することができる。
【0017】
【発明の実施の形態】
<実施形態の構成>
図1は、本発明の一実施形態であるマイクロプロセッサの要部の構成を示すブロック図である。このマイクロプロセッサは、プリフェッチキュー10を備え、外部のメモリ(図示せず)に格納された命令を先読みしてプリフェッチキューに蓄える。そして命令を解読する部分として、命令実行のために各部を制御する信号を生成するメインデコーダ16に加えて、メインデコーダ16による命令の解読に先立ってアドレス計算の種類を判定するために命令の部分的な解読を行うプリデコーダ14を備えている。演算器としては、オペランド用の演算器(データ処理用演算器)である算術論理演算器(ALU)35に加えて、オペランドのアドレスを算出するためのアドレス計算専用の加算器(以下「アドレス用加算器」という)25を備えている。内部レジスタとしては、プログラムカウンタ21、スタックポインタレジスタ(以下「SPレジスタ」という)22、アドレス格納レジスタ30、および汎用レジスタ36、37などを備えている。データ経路としては、ALU35や内部のレジスタ等との間でデータを転送するための内部データバス40およびアドレス格納レジスタ30に格納されたアドレスを外部に転送するために使用される内部アドレスバス32を備えると共に、プログラムカウンタ21およびSPレジスタ22に格納されたデータをアドレス用加算器25へ入力するための第1アドレスデータ経路23、およびプリフェッチキューに蓄えられた命令のコードの中に設定された即値データをアドレス用加算器25に入力するための第2アドレスデータ経路24を備えている。
【0018】
<実施形態の動作>
次に、上記構成のマクロプロセッサの動作を図2を参照しつつ説明する。
図2は、本発明の実施形態である上記マイクロプロセッサの動作を示すタイミングチャートである。図2では、理解を容易にするために、命令フェッチ、デコード、アドレス計算、および演算処理の各ステージのタイミングチャートが示されているが、デコードのステージとアドレス計算のステージとは本実施形態におけるパイプラインのステージとしては一つのものである。
【0019】
本実施形態では、主記憶である所定のメモリ(図示せず)に格納された命令が、プログラムカウンタ21の値に基づいて先読みされ、外部バスを経てプリフェッチキュー10に蓄えられる。プリフェッチキュー10に蓄えられた命令は、順次、プリデコーダ14およびメインデコーダ16で解読される。図2に示すサイクル1では、命令Bは命令フェッチのステージにあって、命令Bが主記憶から読み出されてプリフェッチキュー10の蓄えられる。このとき、その直前の命令Aはデコードのステージにあって、命令Aがメインデコーダ16で解読される。前述のようにデコードのステージはアドレス計算のステージと同一のパイプライン・ステージであるため、このサイクル1では、解読される命令のオペランドのアドレス計算も必要に応じて行われる。ただし、図2に示した例における命令Aはオペランドのアドレス計算が不要な命令である。
【0020】
次のサイクル2では、命令Aは演算処理のステージに進み、メインデコーダ16での命令Aの解読結果に基づきALU35においてオペランドの演算処理が行われる。また、命令Bはデコードのステージに進んでいて、命令Bがメインデコーダ16で解読される。このときプリデコーダ14においても命令Bの部分的な解読が行われ、この解読結果は同一サイクルでアドレス計算をする際に使用される。すなわち、プリデコーダ14により、命令Bのオペランドのアドレスをアドレス用加算器25で算出できるか否かの判定や、アドレス計算に使用するレジスタを示す情報の抽出が行われる。前述のように、アドレス用加算器25には、プログラムカウンタ21およびSPレジスタ22からデータを入力するための第1アドレスデータ経路23と、プリフェッチキュー10から即値データを入力するための第2アドレスデータ経路24とが接続されているため(図1参照)、プログラムカウンタ21またはSPレジスタ22に格納されたデータに命令コードに設定された即値データを加算するディスプレースメント付きレジスタ間接アドレス指定モードの場合には、アドレス用加算器25を用いてアドレス計算を行うことができる。プリデコーダ14は、サイクル2において、命令Bのアドレス指定モードがこのようなディスプレースメント付きレジスタ間接アドレス指定モードか否かを判定し、その判定結果に応じて第1および第2アドレスデータ経路23、24や、アドレス用加算器25、ALU35などを制御する。これにより、アドレス計算が必要な場合において、上記のディスプレースメント付きレジスタ間接アドレス指定モードのときはアドレス用加算器25でアドレス計算が行われ、上記以外のアドレス指定モードのときはALU35でアドレス計算が行われる。
【0021】
図2に示した例では、命令Bのアドレス指定モードは上記のディスプレースメント付きレジスタ間接アドレス指定モードであると判定され、サイクル2において命令Bのオペランドのアドレス計算がアドレス用加算器25で行われる。図1からわかるように、このアドレス計算に使用されるアドレス用加算器25や第1および第2アドレスデータ経路23、24は、演算処理のステージに使用されるALU35や、内部データバス40、汎用レジスタ36、37等とは独立に動作できる。したがって、命令Bのアドレス計算は命令Aのオペランドの演算処理と同一のサイクル2で実行される。これにより、図3に示した従来例に比べ、命令の実行に必要なサイクル数が一つだけ低減されることになる。なお、上記のディスプレースメント付きレジスタ間接アドレス指定モードのアドレス計算において必要な演算は1回の加算のみであるため、アドレス用加算器25でのアドレス計算は常に1サイクルで終了する。
【0022】
上記のようにして算出された命令Bのオペランドのアドレスは一旦アドレス格納レジスタ30に格納され、このアドレスは内部アドレスバス32を経て外部へ出力される。これにより、外部の所定のメモリに格納されたオペランドが読み出されて内部に取り込まれ、内部バス40を経てALU35や汎用レジスタ36、37などに転送される。
【0023】
その後のサイクル3では、命令Bは演算処理のステージへ進み、メインデコーダ16での命令Bの解読結果に基づき、外部から取り込まれた上記オペランドを用いてALU35において演算処理が行われる。
【0024】
なお、上記サイクル2においてプリデコーダ14による判定の結果、アドレス用加算器25ではなくALU35でアドレス計算が行われる場合は、図3に示した従来例のように、命令Aについての演算処理のステージが終了してから命令Bについてのアドレス計算が行われることになる。
【0025】
ところで、上記サイクル2のようにマイクロプロセッサ内部のレジスタの値を用いてアドレス計算を行う場合にはパイプライン処理においてハザードが生じる可能性がある。すなわち、或る命令が演算処理のステージで内部レジスタを変更する場合において、その変更の前に後続の命令がアドレス計算のステージでその内部レジスタを参照する可能性があり、このような参照がなされると誤ったアドレス計算が行われる。しかし、本実施形態では、アドレス計算に使用される内部レジスタはプログラムカウンタ21とSPレジスタ22に限定されており、汎用レジスタはアドレス計算に使用されないため、この点を利用して、アドレス計算に使用される内部レジスタのデータがアドレス用加算器25への入力経路で読み出される前に更新されるようにすることができ、これにより上記ハザードが回避される。このハザード回避の具体的な方法としては、アドレス計算に使用されるレジスタ21、22への入力がサイクルの前半で終了するようにすると共にアドレス用加算器25がサイクルの後半まで有効に動作するようにマイクロプロセッサのハードウェアを設計する、という入力タイミングによる回避方法を使用することができる。また、本実施形態のマイクロプロセッサがマイクロプログラム制御方式の場合には、アドレス計算に使用されるレジスタの値を命令の最終サイクルで更新しないようにマイクロプログラムを作成する(例えば図2における命令Aについては、サイクル2の演算処理のステージではプログラムカウンタ21およびSPレジスタのいずれの内容も変更しないようにする)、というマイクロプログラミングによる回避方法を使用することができる。
【0026】
<実施形態の効果>
上記実施形態によれば、プログラムカウンタ21またはSPレジスタ22に格納されたデータに命令コード中の即値データを加算するディスプレースメント付きレジスタ間接アドレス指定モードの命令については、そのアドレス計算が直前の命令のオペランドの演算処理と同時に行われかつ1サイクルで終了するため(図2参照)、命令の実行に必要なサイクル数が低減される。また、プログラムカウンタ21の値に即値データを加算するアドレス指定モードは分岐命令で相対分岐として多用されるアドレス指定モードであり、SPレジスタ22の値に即値データを加算するアドレス指定モードはスタックに蓄積された情報を参照する場合に多用されるアドレス指定モードである。このため、これらのアドレス指定モードの命令のサイクル数が低減されることは、本マイクロプロセッサの高速化に大きく寄与する。一方、アドレス用加算25でアドレス計算が行われるアドレス指定モードは上記のように限定されているため、簡単な構成のアドレス用加算器25を中心とする比較的少ないハードウェア量の追加で上記のようなマイクロプロセッサの高速化が実現される。
【0027】
また上記実施形態によれば、アドレス用加算器25でアドレス計算が行われる場合、すなわち他の命令のオペランドの演算処理と同時にアドレス計算が行われる場合に使用されるレジスタはプログラムカウンタ21またはSPレジスタ22であって汎用レジスタではないため、この点を利用して、アドレス計算に使用される内部レジスタのデータがアドレス用加算器25への入力経路で読み出される前に更新されるようにすることができ、ハザードを検出して後続のステージをストールさせ、または更新する予定のデータをバイパス(横流し)する等という従来のハザード対策を必要としない。このため、パイプライン処理における制御の複雑化を抑えつつ、ハザードの発生を防止することができる。
【0028】
<変形例>
本実施形態では、アドレス用加算器25でのアドレス計算に使用可能な内部レジスタはプログラムカウンタ21とSPレジスタ22であるが、汎用レジスタ以外の他の内部レジスタをこのアドレス計算に使用できるようにしてもよい。例えばフレームポインタレジスタ(以下「FPレジスタ」という)を備えるマイクロプロセッサにおいては、プログラムカウンタ21およびSPレジスタ22に加えて又はこれらに代えてFPレジスタを使用できるようにしてもよい。この場合には、FPレジスタが第1アドレスデータ経路23に接続されることになる。
【0029】
この場合、フレームポインタに命令コード中の即値データを加算するディスプレースメント付きレジスタ間接アドレス指定モードの命令について、そのアドレス計算が直前の命令のオペランドの演算処理と同時に行われかつ1サイクルで終了する。このため、命令の実行に必要なサイクル数が低減される。また、フレームポインタに命令コード中の即値データを加算するアドレス指定モードは、高級言語における関数コール(サブルーチンコール)によって形成されたスタックフレームの情報を参照する場合に多用されるアドレス指定モードである。このため、このアドレス指定モードの命令のサイクル数が低減されることも、本マイクロプロセッサの高速化に大きく寄与する。
【0030】
なお、アドレス計算に使用されるフレームポインタが第1アドレスデータ経路23で読み出される前に更新されるようにすることができるため、上記と同様の方法により、パイプライン処理における制御の複雑化を抑えつつハザードを回避することができる。
【図面の簡単な説明】
【図1】本発明の一実施形態であるマイクロプロセッサの要部の構成を示すブロック図。
【図2】上記実施形態のマイクロプロセッサの動作を示すタイミングチャート。
【図3】従来のマイクロプロセッサの動作を示すタイミングチャート。
【符号の説明】
10 …プリフェッチキュー
14 …プリデコーダ
16 …メインデコーダ
21 …プログラムカウンタ
22 …スタックポインタレジスタ(SPレジスタ)
23 …第1アドレスデータ経路
24 …第2アドレスデータ経路
25 …アドレス用加算器
30 …アドレス格納レジスタ
35 …算術論理演算器(ALU)
Claims (4)
- メモリから命令を読み出して解読し実行するまでの処理をパイプライン方式により行う中央処理装置において、
実行すべき命令のオペランドの演算のための演算器とは別個に設けられた加算器であって、該オペランドのアドレスを計算するための専用の加算器と、
内部の特定レジスタに格納されたデータを前記加算器へ入力データとして転送するための専用の第1データ経路と、
実行すべき命令の即値フィールドに設定された即値データを前記加算器へ入力データとして転送するための専用の第2データ経路と、
前記メモリから読み出された命令のオペランドのアドレスが前記特定レジスタに格納されたデータと前記即値データとの加算により算出できるか否かを判定する判定手段を有し、該判定手段において前記加算により算出できると判定された場合に、前記特定レジスタに格納されたデータが前記第1のデータ経路を経て前記加算器へ転送され、前記即値データが前記第2データ経路を経て前記加算器へ転送され、転送された両データから前記加算器により前記アドレスが算出されるように、前記第1および第2データ経路ならびに前記加算器を制御し、また、該判定手段において前記加算により算出できると判定されない場合には、前記演算器により前記アドレスが算出されるように前記演算器を制御する制御手段と、
を備えることを特徴とする中央処理装置。 - 請求項1に記載の中央処理装置において、
前記特定レジスタがプログラムカウンタであることを特徴とする中央処理装置。 - 請求項1に記載の中央処理装置において、
前記特定レジスタがスタックポインタレジスタであることを特徴とする中央処理装置。 - 請求項1に記載の中央処理装置において、
前記特定レジスタがフレームポインタレジスタであることを特徴とする中央処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP28365796A JP3599499B2 (ja) | 1996-10-25 | 1996-10-25 | 中央処理装置 |
US08/956,725 US6044455A (en) | 1996-10-25 | 1997-10-23 | Central processing unit adapted for pipeline process |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP28365796A JP3599499B2 (ja) | 1996-10-25 | 1996-10-25 | 中央処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10124312A JPH10124312A (ja) | 1998-05-15 |
JP3599499B2 true JP3599499B2 (ja) | 2004-12-08 |
Family
ID=17668378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP28365796A Expired - Lifetime JP3599499B2 (ja) | 1996-10-25 | 1996-10-25 | 中央処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6044455A (ja) |
JP (1) | JP3599499B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7120143B1 (en) * | 1999-09-15 | 2006-10-10 | 8X8, Inc. | Voice-over Internet protocol processor |
JP3983482B2 (ja) * | 2001-02-02 | 2007-09-26 | 株式会社ルネサステクノロジ | 高速ディスプレースメント付きpc相対分岐方式 |
US7484075B2 (en) * | 2002-12-16 | 2009-01-27 | International Business Machines Corporation | Method and apparatus for providing fast remote register access in a clustered VLIW processor using partitioned register files |
US8006071B2 (en) | 2004-03-31 | 2011-08-23 | Altera Corporation | Processors operable to allow flexible instruction alignment |
US7840786B2 (en) * | 2007-04-16 | 2010-11-23 | Advanced Micro Devices, Inc. | Techniques for storing instructions and related information in a memory hierarchy |
JP4913685B2 (ja) * | 2007-07-04 | 2012-04-11 | 株式会社リコー | Simd型マイクロプロセッサおよびsimd型マイクロプロセッサの制御方法 |
JP5888528B2 (ja) * | 2014-05-15 | 2016-03-22 | 株式会社大都技研 | 遊技台 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4133028A (en) * | 1976-10-01 | 1979-01-02 | Data General Corporation | Data processing system having a cpu register file and a memory address register separate therefrom |
US4538223A (en) * | 1982-09-29 | 1985-08-27 | Microdata Corporation | Computer operand address computation |
JPS61208129A (ja) * | 1985-03-12 | 1986-09-16 | Nec Corp | 命令先読制御方式 |
US5522053A (en) * | 1988-02-23 | 1996-05-28 | Mitsubishi Denki Kabushiki Kaisha | Branch target and next instruction address calculation in a pipeline processor |
EP0382246A3 (en) * | 1989-02-09 | 1991-09-11 | Nec Corporation | Bit addressing system |
JPH04184534A (ja) * | 1990-11-20 | 1992-07-01 | Fujitsu Ltd | プロセッサ |
JP2832899B2 (ja) * | 1993-05-31 | 1998-12-09 | 松下電器産業株式会社 | データ処理装置およびデータ処理方法 |
-
1996
- 1996-10-25 JP JP28365796A patent/JP3599499B2/ja not_active Expired - Lifetime
-
1997
- 1997-10-23 US US08/956,725 patent/US6044455A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH10124312A (ja) | 1998-05-15 |
US6044455A (en) | 2000-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3543181B2 (ja) | データ処理装置 | |
JP2507638B2 (ja) | デ―タ処理装置 | |
US8555041B2 (en) | Method for performing a return operation in parallel with setting status flags based on a return value register test | |
JPH0795271B2 (ja) | 分岐命令実行装置 | |
US5502827A (en) | Pipelined data processor for floating point and integer operation with exception handling | |
JPH0810428B2 (ja) | データ処理装置 | |
JPH01214932A (ja) | データ処理装置 | |
KR0163179B1 (ko) | 데이타 프로세서 | |
JPH01137331A (ja) | 制御ワード分岐方法 | |
JP3599499B2 (ja) | 中央処理装置 | |
US6055628A (en) | Microprocessor with a nestable delayed branch instruction without branch related pipeline interlocks | |
JPH07120284B2 (ja) | データ処理装置 | |
KR100974401B1 (ko) | 주소 레지스터의 내용을 스와핑하기 위한 방법 및 장치 | |
JP7048612B2 (ja) | ベクトル生成命令 | |
US6016544A (en) | Apparatus and method for tracking changes in address size and for different size retranslate second instruction with an indicator from address size | |
US6233675B1 (en) | Facility to allow fast execution of and, or, and test instructions | |
JPH03201030A (ja) | プロセッサ | |
JP3394854B2 (ja) | 無条件ジャンプ命令処理方法並びにそのための無条件ジャンプ命令処理装置及び汎用レジスタ | |
US9135006B1 (en) | Early execution of conditional branch instruction with pc operand at which point target is fetched | |
JP2503223B2 (ja) | 先行制御方式 | |
JP2000029696A (ja) | プロセッサおよびパイプライン処理制御方法 | |
JP2534674B2 (ja) | 情報処理装置 | |
US6289439B1 (en) | Method, device and microprocessor for performing an XOR clear without executing an XOR instruction | |
JPS6411973B2 (ja) | ||
US20090119492A1 (en) | Data Processing Apparatus and Method for Handling Procedure Call Instructions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040531 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040615 |
|
A521 | Written amendment |
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: 20040914 |
|
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: 20080924 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080924 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090924 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090924 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100924 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110924 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120924 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130924 Year of fee payment: 9 |
|
EXPY | Cancellation because of completion of term |