JPH0477925A - マイクロプロセッサ - Google Patents
マイクロプロセッサInfo
- Publication number
- JPH0477925A JPH0477925A JP2190661A JP19066190A JPH0477925A JP H0477925 A JPH0477925 A JP H0477925A JP 2190661 A JP2190661 A JP 2190661A JP 19066190 A JP19066190 A JP 19066190A JP H0477925 A JPH0477925 A JP H0477925A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- decoding
- decoder
- instructions
- output
- 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
- 230000004044 response Effects 0.000 claims description 7
- 102100024315 Pericentrin Human genes 0.000 abstract description 20
- 101001117010 Homo sapiens Pericentrin Proteins 0.000 abstract description 19
- 238000000034 method Methods 0.000 abstract description 15
- 230000008569 process Effects 0.000 abstract description 7
- 238000012545 processing Methods 0.000 description 20
- 238000006073 displacement reaction Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 101100243022 Mus musculus Pcnt gene Proteins 0.000 description 2
- 150000008160 idosides Chemical class 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002689 soil Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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/22—Microcontrol or microprogram arrangements
-
- 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/3822—Parallel decoding, e.g. parallel decode units
-
- 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/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length 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/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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
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)
- Executing Machine-Instructions (AREA)
- Memory System (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、可変長命令セットを処理可能であるとともに
、複数命令の並列デコードを行うマイクロプロセッサに
関する。
、複数命令の並列デコードを行うマイクロプロセッサに
関する。
可変長命令セットを処理可能である従来のマイクロプロ
セッサにおいては、命令の並列デコードは行われていな
い。
セッサにおいては、命令の並列デコードは行われていな
い。
本発明に最も近い公知例としては、1989年9月11
日発刊の日経エレクI・ロニクス・ブックス「新世代マ
イクロプロセッサRISC,Cl5C。
日発刊の日経エレクI・ロニクス・ブックス「新世代マ
イクロプロセッサRISC,Cl5C。
TR0NJの第195頁から第206頁までの文献「キ
ャッシュと分岐予測機構の内蔵などでパイプラインの乱
れを抑えて性能を上げた32ビツト・マイクロプロセッ
サ ■80」に記載された命令デコード方式があげられ
る。
ャッシュと分岐予測機構の内蔵などでパイプラインの乱
れを抑えて性能を上げた32ビツト・マイクロプロセッ
サ ■80」に記載された命令デコード方式があげられ
る。
上記公知のマイクロプロセッサでは、並列に複数の命令
をデコードこそしないが、2段階に分けて命令をデコー
ドすることで、デコード能力のスループットを向上させ
ている。この公知のマイクロプロセッサの1段目のデコ
ード回路は、プリデコード・ユニットとよばれ、可変長
命令を固定長の要素に分解する機能を有している。この
ように固定長の要素に分解された命令はひとまずプリデ
コード・ユニット内のバッファ(レジスタ)に格納され
、命令デコード・ユニットの要求に応じてプリデコード
・ユニットから命令デコード・ユニットへの固定長の要
素に分解された命令の転送が行われる。
をデコードこそしないが、2段階に分けて命令をデコー
ドすることで、デコード能力のスループットを向上させ
ている。この公知のマイクロプロセッサの1段目のデコ
ード回路は、プリデコード・ユニットとよばれ、可変長
命令を固定長の要素に分解する機能を有している。この
ように固定長の要素に分解された命令はひとまずプリデ
コード・ユニット内のバッファ(レジスタ)に格納され
、命令デコード・ユニットの要求に応じてプリデコード
・ユニットから命令デコード・ユニットへの固定長の要
素に分解された命令の転送が行われる。
しかしながら本発明者等の検討によれば、上記従来技術
ではマイクロプロセッサの処理を更に高速化する場合に
二つの問題が生ずると言うことが明らかとされた。
ではマイクロプロセッサの処理を更に高速化する場合に
二つの問題が生ずると言うことが明らかとされた。
その第1の問題は、命令デコードがパイプラインのうち
二つのステージを用いるため、それだけ分岐処理が遅く
なることである。
二つのステージを用いるため、それだけ分岐処理が遅く
なることである。
すなわち、分岐処理が起動されてから、分岐先命令のフ
ェッチ、プリデコードと処理が進む場合。
ェッチ、プリデコードと処理が進む場合。
デコード処理に1段しか要しないマイクロプロセッサに
比べて、ステージ1段分だけ分岐に要する時間が増える
。
比べて、ステージ1段分だけ分岐に要する時間が増える
。
また第2の問題は、複数命令の並列実行するマイクロプ
ロセッサにおいて、上記従来技術のような2段階に分け
て命令をデコードするデコード方式を採った場合、プリ
デコード・ユニットがマイクロプロセッサ全体の性能を
律速することである。
ロセッサにおいて、上記従来技術のような2段階に分け
て命令をデコードするデコード方式を採った場合、プリ
デコード・ユニットがマイクロプロセッサ全体の性能を
律速することである。
それは、処理すべき命令は可変長の状態であるので、プ
リデコード・ユニットが先行する命令のプリデコードを
行わなければ、後続の命令のプリデコードを行えないた
めである。すなわち、プリデコード・ユニットが、−度
に−っの命令しかプリデコードできないからである。
リデコード・ユニットが先行する命令のプリデコードを
行わなければ、後続の命令のプリデコードを行えないた
めである。すなわち、プリデコード・ユニットが、−度
に−っの命令しかプリデコードできないからである。
この第2の問題点については、三つの解決法があること
も、本発明者等の検討により明らかとされた。
も、本発明者等の検討により明らかとされた。
第1の解決策は、複数の命令をプリデコードする複数の
プリデコード回路を直列に接続するものである。すなわ
ち、後続のプリデコード回路は。
プリデコード回路を直列に接続するものである。すなわ
ち、後続のプリデコード回路は。
先行するプリデコード回路の出力を参照するようにする
。その上で、これら複数のプリデコード回路を1サイク
ル内に動作できるように設計すれば。
。その上で、これら複数のプリデコード回路を1サイク
ル内に動作できるように設計すれば。
この問題は解決できる。但しこの場合には、直列に接続
したプリデコード回路の遅延時間が問題になる。
したプリデコード回路の遅延時間が問題になる。
第2の解決策は、プリデコード部の性能を1サイクルに
1命令をプリデコード可能にしたうえで。
1命令をプリデコード可能にしたうえで。
その性能差をバッファで吸収する方法である。但しこの
方法では、最大スループットが1命令/サイクルとなる
ため、せっかく他のステージでは複数命令を実行できる
ようにしたのに、性能があまり向上しない。
方法では、最大スループットが1命令/サイクルとなる
ため、せっかく他のステージでは複数命令を実行できる
ようにしたのに、性能があまり向上しない。
第3の解決策は、本発明のように先行する命令のフォー
マットに何らかの仮定をおいて、後続命令をデコードす
ることである。
マットに何らかの仮定をおいて、後続命令をデコードす
ることである。
本発明はこの第3の解決策を具体的に実現するに際して
なされたものであり、その目的とするところは、可変長
命令セットを処理するに際して複数命令を高速にかつ並
列にデコードできるマイクロプロセッサを提供すること
にある。
なされたものであり、その目的とするところは、可変長
命令セットを処理するに際して複数命令を高速にかつ並
列にデコードできるマイクロプロセッサを提供すること
にある。
[i1題を解決するための手段〕
上記目的を達成するために、同時にデコードする命令の
うち、後続の命令については、先行命令の命令長を仮定
してデコードを行う。
うち、後続の命令については、先行命令の命令長を仮定
してデコードを行う。
そして先行命令のデコードにより仮定が正しいと判った
ときには後続の命令のデコード結果も正しいと判断し、
逆に仮定が誤っていたと判ったときには後続の命令のデ
コード結果は誤っていたと判断し、そのデコード結果を
無効化する。
ときには後続の命令のデコード結果も正しいと判断し、
逆に仮定が誤っていたと判ったときには後続の命令のデ
コード結果は誤っていたと判断し、そのデコード結果を
無効化する。
更に、仮定する命令長を、命令セット中の最短の命令フ
ォーマットの長さとするのが望ましい。
ォーマットの長さとするのが望ましい。
なぜならば、可変長命令セットにおいて最短の命令フォ
ーマットは、使用頻度が高い命令に対応し、それ故に仮
定が成立する確率が高いからである。
ーマットは、使用頻度が高い命令に対応し、それ故に仮
定が成立する確率が高いからである。
また複数命令を並列にデコードするため、命令ブリフェ
ッチ・ユニットは、少なくとも最短の命令フォーマット
の2倍の長さの命令コードを、命令デコード・ユニット
へ転送する。
ッチ・ユニットは、少なくとも最短の命令フォーマット
の2倍の長さの命令コードを、命令デコード・ユニット
へ転送する。
命令デコード・ユニットではその命令コードを、最短の
命令フォーマットの長さ毎に、別々の命令デコーダに入
力する。各命令デコーダは、少なくとも最短の命令フォ
ーマットを持つ命令をデコードする能力をもち、かつ少
なくとも一つの命令デコーダは命令セットのすべての命
令をデコードする能力を有する。各々の命令デコーダの
出力は、それぞれ異なる出力ラッチに保持されることも
できる。
命令フォーマットの長さ毎に、別々の命令デコーダに入
力する。各命令デコーダは、少なくとも最短の命令フォ
ーマットを持つ命令をデコードする能力をもち、かつ少
なくとも一つの命令デコーダは命令セットのすべての命
令をデコードする能力を有する。各々の命令デコーダの
出力は、それぞれ異なる出力ラッチに保持されることも
できる。
本願において開示される発明のうち、代表的な実施例に
よるマイクロプロセッサの概要は下記の通りである。
よるマイクロプロセッサの概要は下記の通りである。
すなわち、
(1)所定のビット幅(16ビツト)の命令長の第1及
び第2の命令をマイクロプロセッサの外部からフェッチ
し、少なくとも上記所定のビット幅の2倍のビット幅(
32ビツト)を有する出力線に上記第1及び第2の命令
を並行に出力するフェッチユニット(IU)と、 (2)その入力に上記フェッチユニット(IU)の上記
出力線の上記第1の命令が供給される第1の命令デコー
ダ(IDO)と、 (3)その入力に上記フェッチユニット(I U)の上
記出力線の上記第2の命令が供給される第2の命令デコ
ーダ(IDI)と、 (4)上記第1の命令デコーダのデコード結果(ido
out)と上記第2の命令デコーダのデコード結果
(idl out)とが供給される制御部(PCNT
)と、 (5)上記制御部(PCNT)からの出力に応答する命
令実行部(EU)とを具備し、 上記所定のビット幅の2倍のビット幅を少なくとも有す
る出力線から上記所定の命令長の上記第1の命令が出力
される条件では、上記制御部(PCNT)は第1の命令
デコーダ(IDO)のデコード結果(ido out
)中のこの条件成立の情報に応答して、上記第2の命令
デコーダ(IDI)のデコード結果(i d 1 o
u t)を有効とし、その結果上記命令実行部(E
U)は上記制御部の出力に伝達される上記第1と第2の
命令デコーダのデコード結果(ido out。
び第2の命令をマイクロプロセッサの外部からフェッチ
し、少なくとも上記所定のビット幅の2倍のビット幅(
32ビツト)を有する出力線に上記第1及び第2の命令
を並行に出力するフェッチユニット(IU)と、 (2)その入力に上記フェッチユニット(IU)の上記
出力線の上記第1の命令が供給される第1の命令デコー
ダ(IDO)と、 (3)その入力に上記フェッチユニット(I U)の上
記出力線の上記第2の命令が供給される第2の命令デコ
ーダ(IDI)と、 (4)上記第1の命令デコーダのデコード結果(ido
out)と上記第2の命令デコーダのデコード結果
(idl out)とが供給される制御部(PCNT
)と、 (5)上記制御部(PCNT)からの出力に応答する命
令実行部(EU)とを具備し、 上記所定のビット幅の2倍のビット幅を少なくとも有す
る出力線から上記所定の命令長の上記第1の命令が出力
される条件では、上記制御部(PCNT)は第1の命令
デコーダ(IDO)のデコード結果(ido out
)中のこの条件成立の情報に応答して、上記第2の命令
デコーダ(IDI)のデコード結果(i d 1 o
u t)を有効とし、その結果上記命令実行部(E
U)は上記制御部の出力に伝達される上記第1と第2の
命令デコーダのデコード結果(ido out。
idl out)に応答して上記第1の命令と上記第
2の命令を並列に実行し、 一方上記フェッチユニット(IU)の上記出力線から上
記所定のビット幅と異なる命令長の命令が出力される他
の条件では、上記制御部(PCNT)は第1のデコーダ
(IDO)のデコード結果(ido out)中のこ
の他の条件成立の情報に応答して、上記第2のデコーダ
(IDI)のデコード結果(idl out)を無効
化し、その結果上記命令実行部(EU)は上記制御部(
PCNT)の出力に伝達される上記第1の命令デコーダ
(IDO)の上記デコード結果(ido out)に
応答して上記第1の命令を実行することを特徴とする。
2の命令を並列に実行し、 一方上記フェッチユニット(IU)の上記出力線から上
記所定のビット幅と異なる命令長の命令が出力される他
の条件では、上記制御部(PCNT)は第1のデコーダ
(IDO)のデコード結果(ido out)中のこ
の他の条件成立の情報に応答して、上記第2のデコーダ
(IDI)のデコード結果(idl out)を無効
化し、その結果上記命令実行部(EU)は上記制御部(
PCNT)の出力に伝達される上記第1の命令デコーダ
(IDO)の上記デコード結果(ido out)に
応答して上記第1の命令を実行することを特徴とする。
各命令デコーダが処理した命令コードが、各命令デコー
ダでデコード可能な命令(すなわち最短の命令フォーマ
ットを持つ命令)であるかどうかの判定が行われる0判
定の結果、そうでない命令フォーマットをもつ命令のデ
コードを行った命令デコーダがあった場合、その命令に
後続する命令コードのデコード結果は全て無効化される
。無効化は制御回路を用いて容易に実現できる。逆に、
判定の結果、全ての命令デコーダが最短命令フォーマッ
トを持つ命令をデコードした場合には、全デコード結果
が有効である。この時命令デコードのスルーブツトは最
大であり、命令デコーダ数に等しい数の命令が1サイク
ルで処理される。
ダでデコード可能な命令(すなわち最短の命令フォーマ
ットを持つ命令)であるかどうかの判定が行われる0判
定の結果、そうでない命令フォーマットをもつ命令のデ
コードを行った命令デコーダがあった場合、その命令に
後続する命令コードのデコード結果は全て無効化される
。無効化は制御回路を用いて容易に実現できる。逆に、
判定の結果、全ての命令デコーダが最短命令フォーマッ
トを持つ命令をデコードした場合には、全デコード結果
が有効である。この時命令デコードのスルーブツトは最
大であり、命令デコーダ数に等しい数の命令が1サイク
ルで処理される。
こうすることで、仮定が正しかった場合に限定されはす
るが、命令デコードの最大スループットは2命令/サイ
クル以上にすることができ、上記第2の問題点が解決で
きる。また、先行命令の命令長を仮定するため、プリデ
コード回路によって可変長命令を固定長要素に分解する
必要がなくなり、上記第1の問題点が解決できる。
るが、命令デコードの最大スループットは2命令/サイ
クル以上にすることができ、上記第2の問題点が解決で
きる。また、先行命令の命令長を仮定するため、プリデ
コード回路によって可変長命令を固定長要素に分解する
必要がなくなり、上記第1の問題点が解決できる。
本発明の命令デコード方式は、従来より公知のプリデコ
ード方式とは異なり、命令を誤った仮定のもとにデコー
ドする場合がある。その場合には上記のように、そのデ
コード結果を無効とすることになり、その場合のスルー
プットは1命令/サイクルとなってしまう。このように
、本方式ではプリデコード方式に比べて、命令フォーマ
ットへの処理性能の依存度が高くなる。この点に関して
は、できるだけ上記の仮定が成立するフォーマットを持
つ命令をプログラム中で使用することで対処できる。
ード方式とは異なり、命令を誤った仮定のもとにデコー
ドする場合がある。その場合には上記のように、そのデ
コード結果を無効とすることになり、その場合のスルー
プットは1命令/サイクルとなってしまう。このように
、本方式ではプリデコード方式に比べて、命令フォーマ
ットへの処理性能の依存度が高くなる。この点に関して
は、できるだけ上記の仮定が成立するフォーマットを持
つ命令をプログラム中で使用することで対処できる。
本発明のその他の目的と特徴は、以下の実施例の説明か
ら明らかとなろう。
ら明らかとなろう。
第1図は、本発明を適用したマイクロプロセッサのブロ
ック図である6本発明は、複数の命令の並列デコードを
可能とする。ここではその内で最も簡単な、2命令を並
列にデコードするマイクロプロセッサの内部構造とその
動作を説明する。
ック図である6本発明は、複数の命令の並列デコードを
可能とする。ここではその内で最も簡単な、2命令を並
列にデコードするマイクロプロセッサの内部構造とその
動作を説明する。
マ クロブロセ・すの
まず、第1図により、マイクロプロセッサの内部構造を
説明する。第1図のマイクロプロセッサは、基本的に、
インターフェースユニットIOU。
説明する。第1図のマイクロプロセッサは、基本的に、
インターフェースユニットIOU。
命令ブリフェッチユニットIU、命令デコードユニット
DU、演算ユニットEUから構成される。
DU、演算ユニットEUから構成される。
これらのユニットは並列動作可能であり、命令デコード
ユニットDUの制御のもとに、パイプライン処理を行う
。
ユニットDUの制御のもとに、パイプライン処理を行う
。
ンターフェースユニ トエOU
マイクロプロセッサは、インターフェースユニットIO
Uを通して外部のデバイス(例えばメイン・メモリ)と
接続されている。このインターフェースユニットIOU
は、命令とデータの両方について、マイクロプロセッサ
とメイン・メモリとの間の転送を行う。
Uを通して外部のデバイス(例えばメイン・メモリ)と
接続されている。このインターフェースユニットIOU
は、命令とデータの両方について、マイクロプロセッサ
とメイン・メモリとの間の転送を行う。
すなわち、メイン・メモリから読み出された命令は、6
4ビツト幅の信号線を介して、インターフェースユニッ
トIOUから命令ブリフェッチユニットIUに転送され
る。
4ビツト幅の信号線を介して、インターフェースユニッ
トIOUから命令ブリフェッチユニットIUに転送され
る。
これに対して、32ビツトの信号線2組を通して、演算
ユニットEUによって演算されたデータハ演算ユニット
EUからインターフェースユニットIOUへ転送され、
またはメイン・メモリから読み出されたデータはインタ
ーフェースユニットIOUから命令デコードユニットD
Uへ転送される。
ユニットEUによって演算されたデータハ演算ユニット
EUからインターフェースユニットIOUへ転送され、
またはメイン・メモリから読み出されたデータはインタ
ーフェースユニットIOUから命令デコードユニットD
Uへ転送される。
プiフェ チュニ IU
命令ブリフェッチユニットIUはブリフェッチキューP
FQを持つ、インターフェースユニットIOUから転送
された命令は、−度ブリフエッチキューPFQにラッチ
され、16ビツト単位にアラインメントされてから、命
令デコードユニットDUに出力される。ブリフェッチキ
ューPFQはF I F O(First−In Fi
rst−Out)のキューである。
FQを持つ、インターフェースユニットIOUから転送
された命令は、−度ブリフエッチキューPFQにラッチ
され、16ビツト単位にアラインメントされてから、命
令デコードユニットDUに出力される。ブリフェッチキ
ューPFQはF I F O(First−In Fi
rst−Out)のキューである。
6組の16ビツト信号1itioからi5を介して、ア
ラインメント後の命令が、命令プリフェッチユニットI
Uから命令デコードユニットDUへ転送される。ここに
、信号線10は次のマシンサイクルでデコードすべき命
令の先頭コードであり、信号線j1からi5は信号線1
0の命令に続く命令の並びである。信号線10は第1の
命令デコーダ■DOに入力される。同様に、信号線11
は第2の命令デコーダIDIに入力される。第2の命令
デコーダIDIの入力が信号線11に一意に決定されて
おり、信号線11からi5の中から選択するようにはな
っていないのが、本発明の実施例の特徴である。また、
第1の命令デコーダIDOは、本マイクロプロセッサで
処理し得る全ての命令をデコードできる機能を有してい
る。これに対して第2の命令デコーダIDIは、本マイ
クロプロセッサが実行可能な命令のうち、16ビツトま
たは32ビツトの長さの命令フォーマットを持つ命令の
みをデコード可能である。第1の命令デコーダIDOと
第2の命令デコーダIDIの命令のデコード結果はそれ
ぞれ信号線ido outと1dloutに出力され
、パイプライン制御部PCNTに送られる。
ラインメント後の命令が、命令プリフェッチユニットI
Uから命令デコードユニットDUへ転送される。ここに
、信号線10は次のマシンサイクルでデコードすべき命
令の先頭コードであり、信号線j1からi5は信号線1
0の命令に続く命令の並びである。信号線10は第1の
命令デコーダ■DOに入力される。同様に、信号線11
は第2の命令デコーダIDIに入力される。第2の命令
デコーダIDIの入力が信号線11に一意に決定されて
おり、信号線11からi5の中から選択するようにはな
っていないのが、本発明の実施例の特徴である。また、
第1の命令デコーダIDOは、本マイクロプロセッサで
処理し得る全ての命令をデコードできる機能を有してい
る。これに対して第2の命令デコーダIDIは、本マイ
クロプロセッサが実行可能な命令のうち、16ビツトま
たは32ビツトの長さの命令フォーマットを持つ命令の
みをデコード可能である。第1の命令デコーダIDOと
第2の命令デコーダIDIの命令のデコード結果はそれ
ぞれ信号線ido outと1dloutに出力され
、パイプライン制御部PCNTに送られる。
パ ブライン PCNT
パイプライン制御部PCNTは、信号線1dOoutと
idl out、及び各ユニットl0LI 。
idl out、及び各ユニットl0LI 。
IU、EUの状態を示す信号(図中では省略した)をも
とに、各ユニットIOU、IU、EUのため制御信号を
生成する。
とに、各ユニットIOU、IU、EUのため制御信号を
生成する。
EG
また命令デコードユニットDUには、拡頭部生成回路E
Gがあり、拡頭部生成回路EGは命令中のイミディエイ
トデータまたはディスプレースメントデータを32ビツ
トに拡張して出力する。命令中のイミディエイトデータ
やディスプレースメントデータの位置とその長さは、命
令のオペコードにおいて指定されており、オペコードを
デコードすることで得られる。拡頭部生成回路EGでは
、その指定に基づいて、データを加工し、バスd0また
はdlに出力する。拡頭部生成回路EGの32ビツト出
力線が2組あるのは、第1の命令デコーダIDOと第2
の命令デコーダIDIのそれぞれの制御のもとに独立に
データの転送を行うためである。
Gがあり、拡頭部生成回路EGは命令中のイミディエイ
トデータまたはディスプレースメントデータを32ビツ
トに拡張して出力する。命令中のイミディエイトデータ
やディスプレースメントデータの位置とその長さは、命
令のオペコードにおいて指定されており、オペコードを
デコードすることで得られる。拡頭部生成回路EGでは
、その指定に基づいて、データを加工し、バスd0また
はdlに出力する。拡頭部生成回路EGの32ビツト出
力線が2組あるのは、第1の命令デコーダIDOと第2
の命令デコーダIDIのそれぞれの制御のもとに独立に
データの転送を行うためである。
盈IA≦≧仁ト影見
演算ユニットEU内の整数論理演算器ALUについても
同様に、第1の命令デコーダIDOと第2の命令デコー
ダIDIのそれぞれに対応して2組ある。
同様に、第1の命令デコーダIDOと第2の命令デコー
ダIDIのそれぞれに対応して2組ある。
レジスタファイルRF
命令デコードユニットDU内のレジスタファイルRFは
レジスタROからR15までの16本の32ビツトレジ
スタで構成されており、各レジスタは4つの読み出しポ
ートと2つの書き込みポートの計6ボートを持つ、その
ポートの内半分(二つの読み出しポートと一つの書き込
みポート)が第1の命令デコーダIDOの側に対応して
おり。
レジスタROからR15までの16本の32ビツトレジ
スタで構成されており、各レジスタは4つの読み出しポ
ートと2つの書き込みポートの計6ボートを持つ、その
ポートの内半分(二つの読み出しポートと一つの書き込
みポート)が第1の命令デコーダIDOの側に対応して
おり。
第1の論理演算器ALUOに接続されている。残りの半
分のポートも同様に第2の命令デコーダIDIの側に対
応しており、第2の論理演算器ALUIに接続されてい
る。
分のポートも同様に第2の命令デコーダIDIの側に対
応しており、第2の論理演算器ALUIに接続されてい
る。
32ビツト の 線
命令デコードユニットDUと演算ユニットEUは、6組
の32ビツト幅の信号線do、di。
の32ビツト幅の信号線do、di。
d2.d3.eo、elで接続される。その内4組(d
o、di、d2.d3)は命令デコードユニットDUか
ら演算ユニットEUへの、一方残り2組(eo、el)
は演算ユニットEUから命令デコードユニットDUへの
データの転送に用いられる。
o、di、d2.d3)は命令デコードユニットDUか
ら演算ユニットEUへの、一方残り2組(eo、el)
は演算ユニットEUから命令デコードユニットDUへの
データの転送に用いられる。
例えば、レジスタROとレジスタR1の値を加算してレ
ジスタR1にセットする命令を第1の論理演算器ALU
Oが処理する場合、まずレジスタファイルRFからレジ
スタROとR1の値が読み出され、それぞれ32ビツト
信号線dOとdlに出力される。パイプラインにおける
命令デコードユニットDUの次の実行ステージすなわち
演算ユニットEUにおいて、第1の論理演算器ALUO
は信号線doとdlから値を入力して、これらの加算を
行う。そして加算結果が信号線eoに出力される。更に
次の処理であるレジスタストアのステージでは、再び命
令デコードユニットDU内の処理に戻り、信号線eO上
の値がレジスタファイルRF内のレジスタR1にセット
される。以上は第1の命令デコーダIDO側を用いた動
作である。
ジスタR1にセットする命令を第1の論理演算器ALU
Oが処理する場合、まずレジスタファイルRFからレジ
スタROとR1の値が読み出され、それぞれ32ビツト
信号線dOとdlに出力される。パイプラインにおける
命令デコードユニットDUの次の実行ステージすなわち
演算ユニットEUにおいて、第1の論理演算器ALUO
は信号線doとdlから値を入力して、これらの加算を
行う。そして加算結果が信号線eoに出力される。更に
次の処理であるレジスタストアのステージでは、再び命
令デコードユニットDU内の処理に戻り、信号線eO上
の値がレジスタファイルRF内のレジスタR1にセット
される。以上は第1の命令デコーダIDO側を用いた動
作である。
第2の命令デコーダIDI側を用いた場合、それぞれ信
号線d2.d3.elそれに第2の論理演算器ALUI
が用いられる。すなわち、レジスタROとR1の値は信
号線d2とd3にそれぞれ出力され、第2の論理演算器
ALUIで加算が行われたあと、信号線e1を用いて加
算結果がレジスタR1に転送される。
号線d2.d3.elそれに第2の論理演算器ALUI
が用いられる。すなわち、レジスタROとR1の値は信
号線d2とd3にそれぞれ出力され、第2の論理演算器
ALUIで加算が行われたあと、信号線e1を用いて加
算結果がレジスタR1に転送される。
マイクロプロセッサとメモリ間でデータの転送を行う場
合、信号線eo、e1とIOUとの間の2組の32ビツ
ト幅の信号線が用いられる。この部分の動作は本発明と
あまり関係が無いので、説明は省略する。
合、信号線eo、e1とIOUとの間の2組の32ビツ
ト幅の信号線が用いられる。この部分の動作は本発明と
あまり関係が無いので、説明は省略する。
本発明の効果は、複数の命令の並列デコードが可能にな
ることである。本実施例では、可変長命令の命令セット
を持つマイクロプロセッサを例に説明する。そこでまず
、可変長命令とはどのようなものであるかを簡単に説明
する。
ることである。本実施例では、可変長命令の命令セット
を持つマイクロプロセッサを例に説明する。そこでまず
、可変長命令とはどのようなものであるかを簡単に説明
する。
可孟退滝皇
可変長命令とは、−口に言えば、複数の命令フォーマッ
トを持ち、異なる命令フォーマットを取った時に長さが
変化する命令を言う。すなわち、長さのことなる命令を
一つでも持つ命令セットは、可変長の命令を持つと言え
る。
トを持ち、異なる命令フォーマットを取った時に長さが
変化する命令を言う。すなわち、長さのことなる命令を
一つでも持つ命令セットは、可変長の命令を持つと言え
る。
異定艮全鬼
これに対して、全ての命令の長さが一定である場合は、
固定長の命令セットと一般に呼んでいる。
固定長の命令セットと一般に呼んでいる。
の Aセ、・
本実施例では第2図に示すように、16ビツトを単位と
して、16ビツトから96ビツトまでの6種類の長さを
持つ命令セットを仮定する。これらの命令はメモリ上で
は、16ビツト境界に置かれる。すなわち命令の各16
ビツト単位は全て偶数バイトアドレスに置かれる。この
様子を示したのが第3図である。
して、16ビツトから96ビツトまでの6種類の長さを
持つ命令セットを仮定する。これらの命令はメモリ上で
は、16ビツト境界に置かれる。すなわち命令の各16
ビツト単位は全て偶数バイトアドレスに置かれる。この
様子を示したのが第3図である。
続いて5本実施例における命令の並列デコードの動作を
説明する。
説明する。
第3図はメモリ上における命令の並びの一つの例を示し
ている。各命令は例えば1nsto。
ている。各命令は例えば1nsto。
1nstlという具合に示した。16ビツトを超える長
さを持つ命令には更にハイフンと数字を付加して、1n
st2 0,1nst2 1という具合に示した。すな
わち、16ビツトを超える長さを持つ命令は複数個に分
割される。また、各命令においてデコード処理を行わな
ければならないコードは、該命令の先頭のコードに限定
されると仮定する。すなわち命令の先頭以外のコードは
イミディエイトデータまたはディスプレースメントデー
タであるとする0例えば1nst2の場合、最初のコー
ド1nst2 0はデコードが必要であるが、後続のコ
ード1nst2 1はデコード不要である。
さを持つ命令には更にハイフンと数字を付加して、1n
st2 0,1nst2 1という具合に示した。すな
わち、16ビツトを超える長さを持つ命令は複数個に分
割される。また、各命令においてデコード処理を行わな
ければならないコードは、該命令の先頭のコードに限定
されると仮定する。すなわち命令の先頭以外のコードは
イミディエイトデータまたはディスプレースメントデー
タであるとする0例えば1nst2の場合、最初のコー
ド1nst2 0はデコードが必要であるが、後続のコ
ード1nst2 1はデコード不要である。
以上の前提のもとに、命令ブリフェッチユニットエUか
ら命令デコードユニットDUへの転送バスである16ビ
ツト信号線1o−5の、ある2っの時点での状態を第4
図に示す。第4図(a)は、第3図の命令列が既に命令
ブリフェッチユニットIUのブリフェッチキューPFQ
に取り込まれ、最初の命令1nstoがデコードされよ
うとしている状態を示している。次のマシンサイクルの
前半では、最初の命令1nstoのデコードが第1の命
令デコーダIDOで行われ、後続の命令1nstlのデ
コードが第2のデコーダIDIで行われる。このデコー
ドの結果、二つの命令1nstO,1nstlが共に最
短の長さを持つ命令フォーマットであることが判り、命
令デコードユニットDUから命令ブリフェッチユニット
IUへ、32ビツトだけ命令のポインタを進めるように
指示が出される。その結果、更に半マシンサイクル後の
命令ブリフェッチユニットIUと命令デコードユニット
DUとの間の信号線10−5の状態は、二つの命令1n
sto、1nstlが取り去られ、その代りに命令i
n s t 5.1nst6が追加されて第4図(b)
のようになる。この時には、命令コード1nst2 0
のデコードが第1のデコーダIDOで行われ、命令コー
ド1nst 21の第2のデコードがIDIで行われる
。第1のデコーダIDOでの命令コード1nst2 0
のデコードの結果、命令1nst2は最短の長さを持つ
命令フォーマットではないことが判る。
ら命令デコードユニットDUへの転送バスである16ビ
ツト信号線1o−5の、ある2っの時点での状態を第4
図に示す。第4図(a)は、第3図の命令列が既に命令
ブリフェッチユニットIUのブリフェッチキューPFQ
に取り込まれ、最初の命令1nstoがデコードされよ
うとしている状態を示している。次のマシンサイクルの
前半では、最初の命令1nstoのデコードが第1の命
令デコーダIDOで行われ、後続の命令1nstlのデ
コードが第2のデコーダIDIで行われる。このデコー
ドの結果、二つの命令1nstO,1nstlが共に最
短の長さを持つ命令フォーマットであることが判り、命
令デコードユニットDUから命令ブリフェッチユニット
IUへ、32ビツトだけ命令のポインタを進めるように
指示が出される。その結果、更に半マシンサイクル後の
命令ブリフェッチユニットIUと命令デコードユニット
DUとの間の信号線10−5の状態は、二つの命令1n
sto、1nstlが取り去られ、その代りに命令i
n s t 5.1nst6が追加されて第4図(b)
のようになる。この時には、命令コード1nst2 0
のデコードが第1のデコーダIDOで行われ、命令コー
ド1nst 21の第2のデコードがIDIで行われる
。第1のデコーダIDOでの命令コード1nst2 0
のデコードの結果、命令1nst2は最短の長さを持つ
命令フォーマットではないことが判る。
第1の命令デコーダIDOには最短命令が入力された場
合には、第2の命令デコーダIDIには次の命令の先頭
オペコードが入力される。第2の命令デコーダIDIは
このような次の命令の先頭オペコードの入力を仮定して
、命令デコードを行っている。そのため、第1の命令デ
コーダIDOにおいてデコードした命令が非最短命令で
あった場合、第2の命令デコーダIDIで行われた命令
デコードは誤っていたと判断され、その誤りの判断結果
は第1の命令デコーダIDOの出力1dOoutに反映
されており、この判断結果に応答して、無効化処理がパ
イプライン制御部PCNTにおいて行われる。第1図に
示したように、第1と第2の命令デコーダIDO,ID
Iからパイプライン制御部PCNTへは、デコード結果
すなわちido outとidl outの出力が
送られる。出力ido outには、第1のデコーダ
IDOにおいてデコードした命令が、最短の長さの命令
フォーマットであるか否かを示す情報が含まれている。
合には、第2の命令デコーダIDIには次の命令の先頭
オペコードが入力される。第2の命令デコーダIDIは
このような次の命令の先頭オペコードの入力を仮定して
、命令デコードを行っている。そのため、第1の命令デ
コーダIDOにおいてデコードした命令が非最短命令で
あった場合、第2の命令デコーダIDIで行われた命令
デコードは誤っていたと判断され、その誤りの判断結果
は第1の命令デコーダIDOの出力1dOoutに反映
されており、この判断結果に応答して、無効化処理がパ
イプライン制御部PCNTにおいて行われる。第1図に
示したように、第1と第2の命令デコーダIDO,ID
Iからパイプライン制御部PCNTへは、デコード結果
すなわちido outとidl outの出力が
送られる。出力ido outには、第1のデコーダ
IDOにおいてデコードした命令が、最短の長さの命令
フォーマットであるか否かを示す情報が含まれている。
また、出力idl outには第2のデコーダIDI
がデコードできない命令が入力されたことを示す情報を
含んでいても良い。但し本実施例の場合には出力idl
outにそのような情報は含まれていないものとす
る。
がデコードできない命令が入力されたことを示す情報を
含んでいても良い。但し本実施例の場合には出力idl
outにそのような情報は含まれていないものとす
る。
第1の命令デコーダIDOに入力された命令の長さが最
短すなわち16ビツトで無いという出力ido ou
tに含まれた情報によっては、第2の命令デコーダID
1のデコード結果を無効化しなければならない。その無
効化処理は、前述のようにパイプライン制御部PCNT
で行われる。
短すなわち16ビツトで無いという出力ido ou
tに含まれた情報によっては、第2の命令デコーダID
1のデコード結果を無効化しなければならない。その無
効化処理は、前述のようにパイプライン制御部PCNT
で行われる。
パイプライン PCNTの なプロ・・り第5図
に、パイプライン制御部PCNTの詳細なブロック図を
示す。
に、パイプライン制御部PCNTの詳細なブロック図を
示す。
パイプライン制御部PCNTはパイプラインのステージ
制御部Pipe CNTLとセレクタSEL、ノーオ
ペレーション指示部NOPとから構成されており、id
o out、idl outおよび各ユニッh(I
U、DU、EU、l0U)の状態をもとに、マイクロプ
ロセッサ全体のパイプライン動作を制御する。このパイ
プライン処理における各処理ステージの制御は、第5図
のパイプ制御部PCNT内のパイプラインステージ制御
部Pipe CNTLにおいて行われる。また、第2
の命令デコーダIDIの出力情報の無効化処理は、この
パイプラインステージ制御部PipeCNTLの手前で
行われる。
制御部Pipe CNTLとセレクタSEL、ノーオ
ペレーション指示部NOPとから構成されており、id
o out、idl outおよび各ユニッh(I
U、DU、EU、l0U)の状態をもとに、マイクロプ
ロセッサ全体のパイプライン動作を制御する。このパイ
プライン処理における各処理ステージの制御は、第5図
のパイプ制御部PCNT内のパイプラインステージ制御
部Pipe CNTLにおいて行われる。また、第2
の命令デコーダIDIの出力情報の無効化処理は、この
パイプラインステージ制御部PipeCNTLの手前で
行われる。
すなわち、第2の命令デコーダIDIの出力idl
outの無効化は次のように行われる。
outの無効化は次のように行われる。
まず、第2の命令デコーダIDIの出力1dl−out
はセレクタSELの一方の入力に供給される。セレクタ
SELの他方の入力の一方は、特に限定されないが本実
施例では、固定値NOPが供給される。この固定値NO
Pは、idl outと全く同一のフィールドを持ち
、いわゆるn。
はセレクタSELの一方の入力に供給される。セレクタ
SELの他方の入力の一方は、特に限定されないが本実
施例では、固定値NOPが供給される。この固定値NO
Pは、idl outと全く同一のフィールドを持ち
、いわゆるn。
operationと呼ばれる不実行指示命令を指示す
る。
る。
NOPはno operationを指示する命令とし
て一般に用いられるnop命令のデコード情報と同じで
あっても良いし、異なっていても良い。必要なのは、N
OPがno operationを指示することであり
、例えば扱うデータのサイズ指定などは、どのような値
であっても構わない。セレクタSELにおけるNOPと
idl outの選択は、第1の命令デコーダIDO
のデコード結果であるid。
て一般に用いられるnop命令のデコード情報と同じで
あっても良いし、異なっていても良い。必要なのは、N
OPがno operationを指示することであり
、例えば扱うデータのサイズ指定などは、どのような値
であっても構わない。セレクタSELにおけるNOPと
idl outの選択は、第1の命令デコーダIDO
のデコード結果であるid。
outに含まれる、第1の命令デコーダIDOでデコー
ドした命令の全体の長さが16ビツトであるか否かとい
う情報idl validによって行われる。命令長
が16ビツトであった場合にはidl outが選択
される。逆に命令長が16ビツトを超えていた場合には
NOPが選択される。
ドした命令の全体の長さが16ビツトであるか否かとい
う情報idl validによって行われる。命令長
が16ビツトであった場合にはidl outが選択
される。逆に命令長が16ビツトを超えていた場合には
NOPが選択される。
こうして、パイプライン制御信号pcnto。
pcntlが得られる。
再び、第3図の命令列の実行を想定する。この時のパイ
プライン制御信号pcntQ、pent1の変化を、第
6図(、)に示す。第6図(a)は第3図とは異なり、
縦軸が時間になっていることに注意されたい。例えば第
4図(a)から第4図(b)の状態に移る際には、命令
i、 n s t O+1nstlのデコードが行われ
る。これが第6図では、−養土のラインで示されている
。そして次のマシンサイクルでは1nst2 Q及び
1nst 2−1がデコードされ、pCnts、pcn
tlには1nst2 0のデコード結果とNOPが出力
される。以下同様にして、1nstoから1nst 6
までは4マシンサイクルでデコード処理が行われる。
プライン制御信号pcntQ、pent1の変化を、第
6図(、)に示す。第6図(a)は第3図とは異なり、
縦軸が時間になっていることに注意されたい。例えば第
4図(a)から第4図(b)の状態に移る際には、命令
i、 n s t O+1nstlのデコードが行われ
る。これが第6図では、−養土のラインで示されている
。そして次のマシンサイクルでは1nst2 Q及び
1nst 2−1がデコードされ、pCnts、pcn
tlには1nst2 0のデコード結果とNOPが出力
される。以下同様にして、1nstoから1nst 6
までは4マシンサイクルでデコード処理が行われる。
これと同様の処理を第1の命令デコーダIDOのみを用
いて行った従来の処理の場合のpent Oの変化を第
6図(b)に示す。この従来の場合、1nstoから1
nst6までの命令のデコード処理には、第6図(b)
に示すように、7マシンサイクルを要する。
いて行った従来の処理の場合のpent Oの変化を第
6図(b)に示す。この従来の場合、1nstoから1
nst6までの命令のデコード処理には、第6図(b)
に示すように、7マシンサイクルを要する。
このように、本実施例では、命令デコード性能はピーク
時に2倍、最悪の場合でも単一の命令デコーダを用いた
場合に等しい性能が得られる。
時に2倍、最悪の場合でも単一の命令デコーダを用いた
場合に等しい性能が得られる。
次に、上記命令1nsto、1nstl。
1nst2 0,1nst2 1の処理をより具体的な
例を用いて説明する。例えば、命令1nst Oがレジ
スタROとレジスタR1の値を加算してレジスタR1に
その結果をセットする固定長命令、命令1nstlがレ
ジスタR2とレジスタR3の値を加算してレジスタR3
にその結果をセットする固定長命令とし、さらに命令1
nst2はレジスタR4の値にディスプレースメントデ
ータを加算してアドレスとし、そのアドレスのデータを
メイン・メモリからフェッチしてレジスタR5にセット
する可変長命令であるとする。ここに命令1nst2
0はオペコードであり、1nst21はディスプレース
メントである。
例を用いて説明する。例えば、命令1nst Oがレジ
スタROとレジスタR1の値を加算してレジスタR1に
その結果をセットする固定長命令、命令1nstlがレ
ジスタR2とレジスタR3の値を加算してレジスタR3
にその結果をセットする固定長命令とし、さらに命令1
nst2はレジスタR4の値にディスプレースメントデ
ータを加算してアドレスとし、そのアドレスのデータを
メイン・メモリからフェッチしてレジスタR5にセット
する可変長命令であるとする。ここに命令1nst2
0はオペコードであり、1nst21はディスプレース
メントである。
まず、命令1nstOと1nstlの処理について説明
する。
する。
二つの命令1nstoと1nstlは、第4図(a)の
ようにして、フリフェッチキューPFQからの96ビツ
トの信号線に出力される。そして第1の命令デコーダI
DOでは1nstoがデコードされ、第2の命令デコー
ダIDIでは1nst 1がデコードがされる。
ようにして、フリフェッチキューPFQからの96ビツ
トの信号線に出力される。そして第1の命令デコーダI
DOでは1nstoがデコードされ、第2の命令デコー
ダIDIでは1nst 1がデコードがされる。
この場合、1nstoのデコードの結果、命令1nst
oが最短命令であることが判り、その判定結果はデコー
ド結果のido out中の信号idl vali
dをアサートすることで示されるe ido out
とidl outは前述のパイプライン制御部PCN
Tを通して、制御信号pcnto、pcntlとして出
力される。そしてこれらの制御信号の指示によって以下
の動作が行われる。
oが最短命令であることが判り、その判定結果はデコー
ド結果のido out中の信号idl vali
dをアサートすることで示されるe ido out
とidl outは前述のパイプライン制御部PCN
Tを通して、制御信号pcnto、pcntlとして出
力される。そしてこれらの制御信号の指示によって以下
の動作が行われる。
まず、制御信号pcntoの指示によって、レジスタR
Oの値が信号線dOに、レジスタR1の値が信号線d1
にそれぞれ出力される。また同時に、制御信号pcnt
lの指示によって、レジスタR2の値が信号線d2に、
レジスタR3の値が信号線d3に出力される。続いて論
理演算器ALUOでは信号線doとdlの値を加算して
信号線eOに出力し、論理演算器ALUIでは信号線d
2とd3の値を加算して信号線e1に出力する。更にそ
れに続くレジスタストアのステージでは、信号線eOの
値がレジスタR1にセットされ、信号線e1の値がレジ
スタR3にセットされる。
Oの値が信号線dOに、レジスタR1の値が信号線d1
にそれぞれ出力される。また同時に、制御信号pcnt
lの指示によって、レジスタR2の値が信号線d2に、
レジスタR3の値が信号線d3に出力される。続いて論
理演算器ALUOでは信号線doとdlの値を加算して
信号線eOに出力し、論理演算器ALUIでは信号線d
2とd3の値を加算して信号線e1に出力する。更にそ
れに続くレジスタストアのステージでは、信号線eOの
値がレジスタR1にセットされ、信号線e1の値がレジ
スタR3にセットされる。
次に、命令1nst2の処理動作を説明する。
命令1nst2は、第4図(b)のようにして、ブリフ
ェッチキューPFQからの96ビツトの信号線に出力さ
れる。そして第1の命令デコーダIDOでは1nst2
0がデコードされ、第2の命令デコーダIDIでは1
nst2 1が次の命令の先頭コードであると仮定して
デコードされる。
ェッチキューPFQからの96ビツトの信号線に出力さ
れる。そして第1の命令デコーダIDOでは1nst2
0がデコードされ、第2の命令デコーダIDIでは1
nst2 1が次の命令の先頭コードであると仮定して
デコードされる。
この場合には、1nst2 0のデコードの結果、命令
1nst2が非最短命令であることが判り、その判定結
果はデコード結果の1dOout中の信号idl v
alidをネゲートすることで示される。idOout
は前述のパイプライン制御部PCNTを通して、制御信
号pcnt。
1nst2が非最短命令であることが判り、その判定結
果はデコード結果の1dOout中の信号idl v
alidをネゲートすることで示される。idOout
は前述のパイプライン制御部PCNTを通して、制御信
号pcnt。
として出力される。同時に、idl validがネ
ゲートされているために、パイプライン制御部PCNT
内のセレクタSELにおいてn。
ゲートされているために、パイプライン制御部PCNT
内のセレクタSELにおいてn。
operation指示であるNOPが選択され、pc
nt 1として出力される。そしてこれらの制御信号の
指示によって以下の動作が行われる。
nt 1として出力される。そしてこれらの制御信号の
指示によって以下の動作が行われる。
まず、制御信号pcntoの指示によって、レジスタR
4の値が信号線doに出力され、また16ビツトのディ
スプレースメント1nst21が拡張部主成部EGで3
2ビツトに拡張されて信号NIAdiに出力される。
4の値が信号線doに出力され、また16ビツトのディ
スプレースメント1nst21が拡張部主成部EGで3
2ビツトに拡張されて信号NIAdiに出力される。
また、制御信号pcntlの指示はNOPであるため、
信号線d2と信号線d3にはとくに出力が指示されない
。続いて整数論理演算器ALUOでは信号線doとdl
の値を加算(アドレス計算)して信号線eOに出力する
。論理演算器ALUIに対する指示はやはりNOPであ
り、信号線e1への出力は特に指示されない。
信号線d2と信号線d3にはとくに出力が指示されない
。続いて整数論理演算器ALUOでは信号線doとdl
の値を加算(アドレス計算)して信号線eOに出力する
。論理演算器ALUIに対する指示はやはりNOPであ
り、信号線e1への出力は特に指示されない。
更にそれに続くステージでは、制御信号pent Oの
指示により、信号線eOの値をアドレスとしたメイン・
メモリのアクセスによりオペランドのフェッチが行われ
、さらにフェッチ・データがレジスタR5にセットされ
る。制御信号pcntl中のにおけるインターフェース
ユニットIOUと命令デコードユニットDU(レジスタ
ストア)への指示はNOPであるので、メイン・メモリ
アクセスや信号線e1からレジスタへの値の転送・設定
は行わない。
指示により、信号線eOの値をアドレスとしたメイン・
メモリのアクセスによりオペランドのフェッチが行われ
、さらにフェッチ・データがレジスタR5にセットされ
る。制御信号pcntl中のにおけるインターフェース
ユニットIOUと命令デコードユニットDU(レジスタ
ストア)への指示はNOPであるので、メイン・メモリ
アクセスや信号線e1からレジスタへの値の転送・設定
は行わない。
本実施例によれば、マイクロプロセッサ全体の処理のス
ループットが向上し、CPI (1命令当りの実行に
要するマシンサイクル数)を1以下にできる。
ループットが向上し、CPI (1命令当りの実行に
要するマシンサイクル数)を1以下にできる。
また、複数の命令デコーダのうち、全ての命令フォーマ
ットをデコードできる命令デコーダはたった一つでよい
、残りの命令デコーダは最短の命令フォーマットをデコ
ードする機能だけがあれば良いから、少ないハードウェ
アで複数命令デコードを実現できる。これはまた、マイ
クロプロセッサのテスト、診断時の処理量とその時間を
削減することになる。
ットをデコードできる命令デコーダはたった一つでよい
、残りの命令デコーダは最短の命令フォーマットをデコ
ードする機能だけがあれば良いから、少ないハードウェ
アで複数命令デコードを実現できる。これはまた、マイ
クロプロセッサのテスト、診断時の処理量とその時間を
削減することになる。
また、複数の命令デコーダに入力する命令コードは、最
短の命令フォーマットの長さで一意に分割され、各々の
命令デコーダに入力される。すなわち全ての命令デコー
ダの入力のセレクトが容易である。これは、ハードウェ
ア量の抑制とともに、高速性の実現に役立つ。
短の命令フォーマットの長さで一意に分割され、各々の
命令デコーダに入力される。すなわち全ての命令デコー
ダの入力のセレクトが容易である。これは、ハードウェ
ア量の抑制とともに、高速性の実現に役立つ。
また、本発明の実施例は、固定長命令セットに有するマ
イクロプロセッサにも適用できる。すなわち、複数の命
令デコーダのうち大多数を、頻度の高い命令のみをデコ
ード可能としておくことにより、少ないハードウェアで
かつ高速な、複数命令を並列に処理する命令デコーダが
実現できる。
イクロプロセッサにも適用できる。すなわち、複数の命
令デコーダのうち大多数を、頻度の高い命令のみをデコ
ード可能としておくことにより、少ないハードウェアで
かつ高速な、複数命令を並列に処理する命令デコーダが
実現できる。
また、固定長命令セット、可変長命令セットに関わらず
、各命令デコーダがデコード可能な命令を、その命令デ
コーダが制御する回路に対応して定めることが可能であ
る。例えば、論理演算器を制御する命令デコーダは、論
理演算命令のみデコード可能であり、その他の命令は、
デコードできなかったことを示す結果を出力する。この
ようにすると、命令デコーダから被制御回路への信号線
数が少なくなるという効果が生じる。
、各命令デコーダがデコード可能な命令を、その命令デ
コーダが制御する回路に対応して定めることが可能であ
る。例えば、論理演算器を制御する命令デコーダは、論
理演算命令のみデコード可能であり、その他の命令は、
デコードできなかったことを示す結果を出力する。この
ようにすると、命令デコーダから被制御回路への信号線
数が少なくなるという効果が生じる。
本発明により、可変長命令セットにおいて複数の固定長
命令の並列デコードが可能になる。従って、従来の方法
と比較して、命令デコード性能の最大スループットが向
上する。
命令の並列デコードが可能になる。従って、従来の方法
と比較して、命令デコード性能の最大スループットが向
上する。
第1図は本発明の一実施例のマイクロプロセッサのブロ
ック図を示し、第2図は本実施例のマイクロプロセッサ
の有する可変長命令セットの6種類の命令長を示し、第
3図は本実施例の命令セットにおけるメモリ上の命令の
並びの−例を示し、第4図は第1図に示したマイクロプ
ロセッサが第3図の命令列を実行する際の信号線1o−
5の値をある二つの時点について示しし、第5図は第1
図のマイクロプロセッサの構成要素の一つである制御回
路PCNTの詳細な構成図を示し、第6図(、)は第1
図のマイクロプロセッサにおいて第3図の命令列を実行
した際に命令デコードによって生成される制御信号の変
化を示し、第6図(b)は第1図のマイクロプロセッサ
において命令デコーダが一つしかない構成を採った場合
の制御信号第2図 第3図 第4図 (a+ (b) 第5図 iu、du、eu、iouの制御信号 第6図 (a) fb)
ック図を示し、第2図は本実施例のマイクロプロセッサ
の有する可変長命令セットの6種類の命令長を示し、第
3図は本実施例の命令セットにおけるメモリ上の命令の
並びの−例を示し、第4図は第1図に示したマイクロプ
ロセッサが第3図の命令列を実行する際の信号線1o−
5の値をある二つの時点について示しし、第5図は第1
図のマイクロプロセッサの構成要素の一つである制御回
路PCNTの詳細な構成図を示し、第6図(、)は第1
図のマイクロプロセッサにおいて第3図の命令列を実行
した際に命令デコードによって生成される制御信号の変
化を示し、第6図(b)は第1図のマイクロプロセッサ
において命令デコーダが一つしかない構成を採った場合
の制御信号第2図 第3図 第4図 (a+ (b) 第5図 iu、du、eu、iouの制御信号 第6図 (a) fb)
Claims (1)
- 【特許請求の範囲】 1、(1)所定のビット幅の命令長の第1及び第2の命
令をマイクロプロセッサの外部からフェッチし、少なく
とも上記所定のビット幅の2倍のビット幅を有する出力
線に上記第1及び第2の命令を並行に出力するフェッチ
ユニットと、 (2)その入力に上記フェッチユニットの上記出力線の
上記第1の命令が供給される第1の命令デコーダと、 (3)その入力に上記フェッチユニットの上記出力線の
上記第2の命令が供給される第2の命令デコーダと、 (4)上記第1の命令デコーダのデコード結果と上記第
2の命令デコーダのデコード結果とが供給される制御部
と、 (5)上記制御部からの出力に応答する命令実行部とを
具備し、 上記所定のビット幅の2倍のビット幅を少なくとも有す
る出力線から上記所定の命令長の上記第1の命令が出力
される条件では、上記制御部は上記第1の命令デコーダ
の上記デコード結果中のこの条件成立の情報に応答して
、上記第2の命令デコーダの上記デコード結果を有効と
し、その結果上記命令実行部は上記制御部の出力に伝達
される上記第1と第2の命令デコーダの上記デコード結
果に応答して上記第1の命令と上記第2の命令を並列に
実行し、 一方上記フェッチユニットの上記出力線から上記所定の
ビット幅と異なる命令長の命令が出力される他の条件で
は、上記制御部は第1のデコーダの上記デコード結果中
のこの他の条件成立の情報に応答して、上記第2のデコ
ーダの上記デコード結果を無効化し、その結果上記命令
実行部は上記制御部の出力に伝達される上記第1の命令
デコーダの上記デコード結果に応答して上記第1の命令
を実行することを特徴とするマイクロプロセッサ。 2、特許請求の範囲第1項記載のマイクロプロセッサに
おいて、上記制御部が上記第2のデコーダのデコード結
果を無効化する際に、この無効化された上記第2のデコ
ーダのデコード結果のビット位置に対応した上記フェッ
チユニットの上記出力線のビット情報に応答して上記命
令実行部はオペランドのアドレスを決定することを特徴
とするマイクロプロセッサ。 3、特許請求の範囲第1項のマイクロプロセッサにおい
て、上記所定のビット幅が最短命令長であることを特徴
とするマイクロプロセッサ。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2190661A JP2834289B2 (ja) | 1990-07-20 | 1990-07-20 | マイクロプロセッサ |
EP91111044A EP0467152B1 (en) | 1990-07-20 | 1991-07-03 | Microprocessor capable of decoding two instructions in parallel |
DE69133134T DE69133134D1 (de) | 1990-07-20 | 1991-07-03 | Mikroprozessor mit der Fähigkeit zur parallelen Dekodierung zweier Befehle |
KR1019910012236A KR100233897B1 (ko) | 1990-07-20 | 1991-07-18 | 2개의 명령을 병렬 디코드 할수 있는 마이크로프로세서 |
US08/169,728 US5408625A (en) | 1990-07-20 | 1993-12-17 | Microprocessor capable of decoding two instructions in parallel |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2190661A JP2834289B2 (ja) | 1990-07-20 | 1990-07-20 | マイクロプロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0477925A true JPH0477925A (ja) | 1992-03-12 |
JP2834289B2 JP2834289B2 (ja) | 1998-12-09 |
Family
ID=16261802
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2190661A Expired - Fee Related JP2834289B2 (ja) | 1990-07-20 | 1990-07-20 | マイクロプロセッサ |
Country Status (5)
Country | Link |
---|---|
US (1) | US5408625A (ja) |
EP (1) | EP0467152B1 (ja) |
JP (1) | JP2834289B2 (ja) |
KR (1) | KR100233897B1 (ja) |
DE (1) | DE69133134D1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08504977A (ja) * | 1992-09-29 | 1996-05-28 | セイコーエプソン株式会社 | スーパースカラ・マイクロプロセサにおけるロード及び/又はストア動作を扱うシステム及び方法 |
JP2013546036A (ja) * | 2010-09-24 | 2013-12-26 | インテル コーポレイション | 命令のクラス及び内容に基づくプロセッサの電力管理 |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0651984A (ja) * | 1992-06-05 | 1994-02-25 | Hitachi Ltd | マイクロプロセッサ |
US5859994A (en) * | 1992-08-10 | 1999-01-12 | Intel Corporation | Apparatus and method for modifying instruction length decoding in a computer processor |
US5485629A (en) * | 1993-01-22 | 1996-01-16 | Intel Corporation | Method and apparatus for executing control flow instructions in a control flow pipeline in parallel with arithmetic instructions being executed in arithmetic pipelines |
US5717908A (en) * | 1993-02-25 | 1998-02-10 | Intel Corporation | Pattern recognition system using a four address arithmetic logic unit |
US5825921A (en) * | 1993-03-19 | 1998-10-20 | Intel Corporation | Memory transfer apparatus and method useful within a pattern recognition system |
US5819057A (en) * | 1995-01-25 | 1998-10-06 | Advanced Micro Devices, Inc. | Superscalar microprocessor including an instruction alignment unit with limited dispatch to decode units |
US5991869A (en) * | 1995-04-12 | 1999-11-23 | Advanced Micro Devices, Inc. | Superscalar microprocessor including a high speed instruction alignment unit |
US5822778A (en) * | 1995-06-07 | 1998-10-13 | Advanced Micro Devices, Inc. | Microprocessor and method of using a segment override prefix instruction field to expand the register file |
US5680578A (en) * | 1995-06-07 | 1997-10-21 | Advanced Micro Devices, Inc. | Microprocessor using an instruction field to specify expanded functionality and a computer system employing same |
US5768574A (en) * | 1995-06-07 | 1998-06-16 | Advanced Micro Devices, Inc. | Microprocessor using an instruction field to expand the condition flags and a computer system employing the microprocessor |
US5845323A (en) * | 1995-08-31 | 1998-12-01 | Advanced Micro Devices, Inc. | Way prediction structure for predicting the way of a cache in which an access hits, thereby speeding cache access time |
US5819056A (en) * | 1995-10-06 | 1998-10-06 | Advanced Micro Devices, Inc. | Instruction buffer organization method and system |
EP0853779B1 (en) * | 1995-10-06 | 2003-08-13 | Advanced Micro Devices, Inc. | Instruction predecode and multiple instruction decode |
US5809273A (en) * | 1996-01-26 | 1998-09-15 | Advanced Micro Devices, Inc. | Instruction predecode and multiple instruction decode |
US5864704A (en) * | 1995-10-10 | 1999-01-26 | Chromatic Research, Inc. | Multimedia processor using variable length instructions with opcode specification of source operand as result of prior instruction |
US5768553A (en) * | 1995-10-30 | 1998-06-16 | Advanced Micro Devices, Inc. | Microprocessor using an instruction field to define DSP instructions |
US5819080A (en) * | 1996-01-02 | 1998-10-06 | Advanced Micro Devices, Inc. | Microprocessor using an instruction field to specify condition flags for use with branch instructions and a computer system employing the microprocessor |
EP0896700A1 (en) * | 1996-05-01 | 1999-02-17 | Advanced Micro Devices, Inc. | Superscalar microprocessor including a high performance instruction alignment unit |
JPH1011289A (ja) * | 1996-06-19 | 1998-01-16 | Mitsubishi Electric Corp | 並列処理プロセッサにおける命令数拡張方法および並列処理プロセッサ |
EP0912924A1 (en) * | 1996-07-16 | 1999-05-06 | Advanced Micro Devices, Inc. | A superscalar microprocesser including a high speed instruction alignment unit |
AU7720096A (en) * | 1996-11-04 | 1998-05-29 | Advanced Micro Devices Inc. | A way prediction structure |
US6230259B1 (en) | 1997-10-31 | 2001-05-08 | Advanced Micro Devices, Inc. | Transparent extended state save |
US6157996A (en) * | 1997-11-13 | 2000-12-05 | Advanced Micro Devices, Inc. | Processor programably configurable to execute enhanced variable byte length instructions including predicated execution, three operand addressing, and increased register space |
US6016533A (en) * | 1997-12-16 | 2000-01-18 | Advanced Micro Devices, Inc. | Way prediction logic for cache array |
US6324639B1 (en) | 1998-03-30 | 2001-11-27 | Matsushita Electric Industrial Co., Ltd. | Instruction converting apparatus using parallel execution code |
EP0992893B1 (en) * | 1998-10-06 | 2008-12-31 | Texas Instruments Inc. | Verifying instruction parallelism |
US6742110B2 (en) | 1998-10-06 | 2004-05-25 | Texas Instruments Incorporated | Preventing the execution of a set of instructions in parallel based on an indication that the instructions were erroneously pre-coded for parallel execution |
US6178496B1 (en) | 1999-02-17 | 2001-01-23 | Motorola, Inc. | System for converting instructions, and method therefore |
US6820189B1 (en) * | 1999-05-12 | 2004-11-16 | Analog Devices, Inc. | Computation core executing multiple operation DSP instructions and micro-controller instructions of shorter length without performing switch operation |
US6877084B1 (en) | 2000-08-09 | 2005-04-05 | Advanced Micro Devices, Inc. | Central processing unit (CPU) accessing an extended register set in an extended register mode |
US6981132B2 (en) | 2000-08-09 | 2005-12-27 | Advanced Micro Devices, Inc. | Uniform register addressing using prefix byte |
US7500240B2 (en) * | 2002-01-15 | 2009-03-03 | Intel Corporation | Apparatus and method for scheduling threads in multi-threading processors |
US7227994B2 (en) * | 2003-03-20 | 2007-06-05 | International Business Machines Corporation | Method and apparatus for imbedded pattern recognition using dual alternating pointers |
US7366352B2 (en) * | 2003-03-20 | 2008-04-29 | International Business Machines Corporation | Method and apparatus for performing fast closest match in pattern recognition |
US7117290B2 (en) | 2003-09-03 | 2006-10-03 | Advanced Micro Devices, Inc. | MicroTLB and micro tag for reducing power in a processor |
US7707389B2 (en) * | 2003-10-31 | 2010-04-27 | Mips Technologies, Inc. | Multi-ISA instruction fetch unit for a processor, and applications thereof |
US7587579B2 (en) * | 2004-12-28 | 2009-09-08 | Ceva D.S.P. Ltd. | Processor core interface for providing external hardware modules with access to registers of the core and methods thereof |
CN100543669C (zh) * | 2005-04-22 | 2009-09-23 | Mips技术公司 | 用于对指令进行再编码的方法与装置 |
US9304773B2 (en) * | 2006-03-21 | 2016-04-05 | Freescale Semiconductor, Inc. | Data processor having dynamic control of instruction prefetch buffer depth and method therefor |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL149925C (ja) * | 1968-10-25 | 1976-06-15 | ||
USRE32493E (en) * | 1980-05-19 | 1987-09-01 | Hitachi, Ltd. | Data processing unit with pipelined operands |
JPS6224326A (ja) * | 1985-07-24 | 1987-02-02 | Hitachi Ltd | デ−タ処理装置 |
JPH0760383B2 (ja) * | 1987-03-31 | 1995-06-28 | 株式会社東芝 | プロセツサ |
DE68926701T2 (de) * | 1988-08-09 | 1997-02-20 | Matsushita Electric Ind Co Ltd | Datenverarbeitungsgerät zur parallelen Dekodierung und parallelen Ausführung von Befehlen mit variabler Wortlänge |
US5202967A (en) * | 1988-08-09 | 1993-04-13 | Matsushita Electric Industrial Co., Ltd. | Data processing apparatus for performing parallel decoding and parallel execution of a variable word length instruction |
US5148528A (en) * | 1989-02-03 | 1992-09-15 | Digital Equipment Corporation | Method and apparatus for simultaneously decoding three operands in a variable length instruction when one of the operands is also of variable length |
-
1990
- 1990-07-20 JP JP2190661A patent/JP2834289B2/ja not_active Expired - Fee Related
-
1991
- 1991-07-03 DE DE69133134T patent/DE69133134D1/de not_active Expired - Lifetime
- 1991-07-03 EP EP91111044A patent/EP0467152B1/en not_active Expired - Lifetime
- 1991-07-18 KR KR1019910012236A patent/KR100233897B1/ko not_active IP Right Cessation
-
1993
- 1993-12-17 US US08/169,728 patent/US5408625A/en not_active Expired - Lifetime
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08504977A (ja) * | 1992-09-29 | 1996-05-28 | セイコーエプソン株式会社 | スーパースカラ・マイクロプロセサにおけるロード及び/又はストア動作を扱うシステム及び方法 |
JP2000148491A (ja) * | 1992-09-29 | 2000-05-30 | Seiko Epson Corp | マイクロコンピュ―タシステム |
JP2000148483A (ja) * | 1992-09-29 | 2000-05-30 | Seiko Epson Corp | コンピュ―タシステム |
JP2013546036A (ja) * | 2010-09-24 | 2013-12-26 | インテル コーポレイション | 命令のクラス及び内容に基づくプロセッサの電力管理 |
Also Published As
Publication number | Publication date |
---|---|
US5408625A (en) | 1995-04-18 |
EP0467152A2 (en) | 1992-01-22 |
DE69133134D1 (de) | 2002-11-21 |
EP0467152B1 (en) | 2002-10-16 |
EP0467152A3 (en) | 1993-05-05 |
KR920003153A (ko) | 1992-02-29 |
JP2834289B2 (ja) | 1998-12-09 |
KR100233897B1 (ko) | 1999-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0477925A (ja) | マイクロプロセッサ | |
US5233694A (en) | Pipelined data processor capable of performing instruction fetch stages of a plurality of instructions simultaneously | |
US5293592A (en) | Decoder for pipelined system having portion indicating type of address generation and other portion controlling address generation within pipeline | |
US4648034A (en) | Busy signal interface between master and slave processors in a computer system | |
US4740893A (en) | Method for reducing the time for switching between programs | |
EP0427245B1 (en) | Data processor capable of simultaneously executing two instructions | |
KR100266424B1 (ko) | 롬(rom)용량을 저감한 데이타 프로세서 | |
KR100254007B1 (ko) | 2개의 명령을 동시에 실행할 수 있는 데이타프로세서 | |
US6112289A (en) | Data processor | |
US4897787A (en) | Data processing system | |
JP2000222206A (ja) | データ処理装置 | |
JP2002073330A (ja) | データ処理装置 | |
EP0507210B1 (en) | A data processing system for performing square operations with improved speed and a method therefor | |
US5041968A (en) | Reduced instruction set computer (RISC) type microprocessor executing instruction functions indicating data location for arithmetic operations and result location | |
EP0094535B1 (en) | Pipe-line data processing system | |
US5924114A (en) | Circular buffer with two different step sizes | |
JPS63259727A (ja) | コプロセツサのインタ−フエイス方式 | |
US7134000B2 (en) | Methods and apparatus for instruction alignment including current instruction pointer logic responsive to instruction length information | |
US5590293A (en) | Dynamic microbranching with programmable hold on condition, to programmable dynamic microbranching delay minimization | |
JP2798121B2 (ja) | データ処理装置 | |
EP0292188A2 (en) | Cache system | |
EP0573071A2 (en) | A microprocessor | |
GB2230116A (en) | Pipelined instruction decoding apparatus | |
US5187782A (en) | Data processing system | |
JPH06214785A (ja) | マイクロプロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071002 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081002 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081002 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091002 Year of fee payment: 11 |
|
LAPS | Cancellation because of no payment of annual fees |