JP3504355B2 - プロセッサ - Google Patents
プロセッサInfo
- Publication number
- JP3504355B2 JP3504355B2 JP30182894A JP30182894A JP3504355B2 JP 3504355 B2 JP3504355 B2 JP 3504355B2 JP 30182894 A JP30182894 A JP 30182894A JP 30182894 A JP30182894 A JP 30182894A JP 3504355 B2 JP3504355 B2 JP 3504355B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- address
- control
- microinstruction
- branch
- 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
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, look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
Description
て用いられ、命令読み出しステージ、命令解読ステー
ジ、命令実行ステージの少なくとも3段からなるパイプ
ライン制御方式を採用したプロセッサに関する。
プロセッサ等の情報処理装置が普及し、あらゆる分野で
用いられている。
ことを特徴とするCISCプロセッサ(Complex Instructio
n Set Computer)と、命令の種類を限定して高速さを特
徴とするRISCプロセッサ(Reduced Instruction Set Co
mputer)とに大別できる。例えば、TRONやMC68040など
は前者であり、SPARCやMIPSなどは後者である。
パイプライン構造をとることにより命令の見かけ上の実
行時間の短縮が図られている。パイプラインとは、命令
の処理ステージを少なくとも読出し、解読、実行のステ
ージに分け、複数の命令について異なるステージを並列
に実行する処理方法である。CISCプロセッサは、RISCプ
ロセッサと異なり可変長命令形式をとるものが多い。可
変長命令形式は、命令の種類によって命令の語長が異な
り、一般的に固定長命令形式に比べてプログラムの大き
さを小さくすることができる。
けるワード(16ビット)境界あるいはダブルワード
(32ビット)境界に対して固定的ではなくなるため、
多くの命令が境界をまたいで配置されることになる。そ
のため、命令の先読みを行っていても解読すべき命令が
末尾まで読出されていない場合があり、その場合パイプ
ラインによる並列処理を一時的に停止する必要が生じ
る。
ンインタロック、またその原因になる命令が境界をまた
いで配置される状態を命令ミスアライメントと呼ぶ。
ば、特開平5-197546号(発明の名称:「マイクロコンピ
ュータ及び除算回路」)公報に示されているものがあ
る。この従来のプロセッサは、公報27ページ88段落
に記載されるように、JSR(JumpSubRoutine:サブルー
チンコール/プロシージャコール)命令ではプログラム
カウンタPCの内容を退避した後に分岐の処理を行ってい
る。
ージ、解読・アドレス計算ステージ、演算実行ステージ
の3段からなるパイプライン構造をとり、命令読出しス
テージで読出され命令を格納する4バイトの命令バッフ
ァと、命令の動作を細分化した処理単位を実現するマイ
クロ命令を記憶する制御記憶とを有する。
が偶数番地ならば1マシンサイクルで2バイトが、奇数
番地ならば1バイトが読出され、命令バッファに格納さ
れる。
ッファの底(先頭の命令)の命令に対応するマイクロ命
令が制御記憶から読出され、マイクロ命令が指示する制
御信号が出力される。解読・アドレス計算ステージで解
読される命令が複数のマイクロ命令からなる場合には、
1マシンサイクル毎に1つのマイクロ命令を指示する御
信号が出力される。
された1処理単位の指示を1マシンサイクルで実行す
る。
ミングを示す図である。同図は、パイプラインの各ステ
ージで処理する命令と、命令バッファの内容と、制御記
憶から出力される処理単位毎の出力内容とをマシンサイ
クルと呼ばれるタイミング毎に示している。図中に例示
しているプログラムは下記の通りである。
レジスタに格納する1バイトの命令で、1処理単位のマ
イクロ命令からなる。)
地にあるサブルーチンに分岐する3バイトの命令で、3
処理単位のマイクロ命令からなる。分岐先は201番地と
する。)
データをD0レジスタにロードする2バイトの命令で、1
処理単位のマイクロ命令からなる。)
R命令(命令2)と、3バイト長のMOV命令(命令3)と
が奇数番地から配置されており、ミスアライメントにな
っている。
の3つの処理単位が実行するオペレーションの内容を示
す説明図である。同図のようにJSR命令はスタックポイ
ンタ減算、戻り先ストア、分岐実行の処理単位からな
る。SPはスタックポインタ、PCはプログラムカウンタ、
disp16は16ビットのアドレス偏位を示す。それぞれの
処理単位のオペレーションは、図5ではタイミングt
4、t5、t6において実行される
明する。 (タイミングt1) 命令読出しステージで100番地から2バイトの命令コー
ドを読出す。
ードを命令バッファに格納するとともに、命令バッファ
の底から100番地の命令1を取り出して解読・アドレス
計算ステージで解読する。命令1は1バイトなので命令
の末尾までが命令バッファに存在することになる。命令
読出しステージでは2だけ増分した読出しアドレスを計
算して102番地から2バイトの命令コードを読出す。
指示が出力され、演算実行ステージでこれを実行する。
命令1に関する処理単位は唯一で、この実行により命令
1の実行が完了する。前のタイミングで読出された102
番地と103番地の命令コードを命令バッファに格納する
とともに、命令バッファの底から101番地の命令2を取
り出して解読・アドレス計算ステージで解読および分岐
先のアドレス計算を行う。命令2は3バイトであるが命
令の末尾までが命令バッファに存在している。命令読出
しステージは命令バッファに2バイト以上の空きがない
ため命令読出しを行わない。
処理単位であるスタックポインタデクリメントの指示が
出力され、演算実行ステージでこれを実行する。命令2
は3つの処理単位から構成される。命令読出しステージ
では2だけ増分した読出しアドレスを計算して104番地
から2バイトの命令コードを読出す。
処理単位であるスタックへの戻り先番地のストアの指示
が出力され、演算実行ステージでこれを実行する。前の
タイミングで読出された104番地と105番地の命令コード
を命令バッファに格納する。命令読出しステージでは2
だけ増分した読出しアドレスを計算して106番地から2
バイトの命令コードを読出す。
処理単位である分岐の指示が出力され、演算実行ステー
ジでこれを実行する。この分岐の指示により命令バッフ
ァにある全ての命令をフラッシュするともに、命令読出
しステージでは解読・アドレス計算ステージで先に計算
された分岐先アドレスを受け取り、201番地から1バイ
トの命令コードを読出す。受け取ったアドレスが奇数番
地なので1バイトのみの読出しになる。命令2はこの実
行により完了する。
令バッファに格納するとともに、命令バッファの底から
201番地の命令3を取り出して解読・アドレス計算ステ
ージで解読しようとするが命令3は2バイトなので命令
の末尾までが命令バッファに存在しないため解読できな
い。そのため解読・アドレス計算ステージにおける動作
を停止させる(パイプラインインタロック)。命令読出
しステージでは前の読出しアドレスが奇数なので1だけ
増分した読出しアドレスを計算して202番地から2バイ
トの命令コードを読出す。
動作が停止されているため、このタイミングでは演算実
行ステージにおける動作を停止させる(パイプラインイ
ンタロック)。前のタイミングで読出された202番地と2
03番地の命令コードを命令バッファに格納するととも
に、命令バッファの底から201番地の命令3を取り出し
て解読・アドレス計算ステージで解読およびロードのア
ドレス計算を行う。命令3は2バイトなのでこのタイミ
ングで初めて命令の末尾までが命令バッファに存在する
ことになる。命令読出しステージは命令バッファに2バ
イト以上の空きがないため命令読出しを行わない。
の指示が出力され、演算実行ステージでこれを実行す
る。命令3に関する処理単位は唯一で、この実行により
命令3の実行が完了する。命令読出しステージでは2だ
け増分した読出しアドレスを計算して204番地から2バ
イトの命令コードを読出す。
のプロセッサによれば、可変長命令形式おいて複数の処
理単位(マイクロ命令)からなる分岐命令がミスアライ
メントされている場合には、分岐するための処理単位が
最後のマシンサイクルで実行されるので、パイプライン
インタロックが発生し、全体の命令実行時間が伸張して
処理性能が劣化するという問題点を有している。
イミングt7において命令バッファの底から命令3を取
り出して解読しようとするが2バイトの命令3の末尾の
1バイトが命令バッファに存在しないため解読できない
という状態が起こる。これは、2バイトの命令3が奇数
番地に配置されていることと、直前のタイミングt6に
おいて分岐先の命令読出しが行われていることとに起因
する。さらに、タイミングt4やt5では実行されずに
フラッシュされることが明確な命令の先読出しが行われ
ており、これらの命令読出しに伴い無駄な浪費電力が発
生しているという問題もある。
とも1つの分岐でない処理単位とからなる命令を実行す
る場合に該命令の分岐先が命令ミスアライメントであっ
ても命令不在によるパイプラインインタロックが発生せ
ず、従って命令の実行時間が伸張せず処理性能が劣化し
ないプロセッサを提供することを目的とする。
め本発明の請求項1記載のプロセッサは、命令の先読み
を行うプロセッサであって、先読みすべき命令のアドレ
スを保持するフェッチアドレス保持手段と、前記フェッ
チアドレス保持手段のアドレスを分岐先の命令のアドレ
スへと書き換えることを内容とする分岐の処理単位と、
少なくとも1つ以上の処理単位からなるその他の処理単
位とから構成される分岐命令の実行に関する制御処理に
対して、まず分岐の処理単位の実行を制御し、続いてそ
の他の処理単位の実行を制御する制御手段とを備え、前
記分岐先の命令の解読可能なタイミングまでに、前記分
岐先の命令がミスアライメントであるか否かにかかわら
ず、前記分岐先の命令を複数のサイクルにわたって先読
みすることを特徴とする。
載のプロセッサにおいて、前記制御処理は、サブルーチ
ンコール命令の実行制御を含み、前記制御手段は、前記
分岐の処理単位の制御において、サブルーチンコール命
令のオペランドに基づいて得られる分岐先アドレスをフ
ェッチアドレス保持手段に書き込み、その他の処理単位
において、戻り先アドレスを退避すべき領域のアドレス
計算および戻り先アドレスの退避を制御するように構成
されている。
載のプロセッサにおいて、前記制御処理は、割り込み処
理ルーチンへの移行制御を含み、前記制御手段は、前記
分岐の処理単位の制御において、所定の割込み処理ルー
チンの開始アドレスをフェッチアドレス保持手段に書き
込み、その他の処理単位において戻り先アドレスを退避
すべきの領域のアドレス計算および戻り先アドレスの退
避を制御するように構成されている。
いし3記載の何れかのプロセッサにおいて、前記制御処
理は、サブルーチンからの復帰を指示するリターン命令
と、割り込み処理ルーチンからの復帰を指示するリター
ン命令とを含み、前記制御手段は、前記分岐の処理単位
の制御において戻り先アドレスをフェッチアドレス保持
手段に書き込むように構成されている。
載のプロセッサにおいて、前記制御手段は、前記制御処
理の動作を実現する複数のマイクロ命令を記憶する制御
記憶部と、前記各処理単位に対応するマイクロ命令を制
御記憶から順次読み出して、マイクロ命令が指示する制
御信号をプロセッサ内部に発行するマイクロ命令発行部
とを備え、前記マイクロ命令発行部は、サブルーチンコ
ール命令に対しては、当該命令中に指定されたアドレス
をフェッチアドレス保持手段に格納することを指示する
マイクロ命令と、戻り先アドレスを退避すべき領域のア
ドレスの計算を指示するマイクロ命令と、戻り先アドレ
スを退避することを指示するマイクロ命令とをこの順序
で発行し、割り込み処理ルーチンへの移行制御に対して
は、所定の割り込み処理開始アドレスをフェッチアドレ
ス保持手段に格納することを指示するマイクロ命令と、
戻り先アドレスを退避すべき領域のアドレスの計算を指
示するマイクロ命令と、戻り先アドレスを退避すること
を指示するマイクロ命令とをこの順序で発行する。
記載のプロセッサにおいて、前記制御手段は、サブルー
チンコール命令をプリデコードし、当該命令の分岐先ア
ドレスの算出を行うアドレス計算部と、前記制御処理を
実現する複数のマイクロ命令を記憶する制御記憶部と、
前記各処理単位に対応するマイクロ命令を制御記憶から
順次読み出して、マイクロ命令をプロセッサ内部に発行
するマイクロ命令発行部とを備え、前記マイクロ命令発
行部は、サブルーチンコール命令に対して、前記アドレ
ス計算部で得られるアドレスを前記フェッチアドレス保
持手段に格納すると共に、メモリに格納すべきデータを
保持するストアバッファに戻り先アドレスを保持するこ
とを指示するマイクロ命令と、前記退避領域を指すスタ
ックポインタの更新、およびオペランドアドレスを保持
すべきオペランドアドレスバッファに更新されたスタッ
クポインタの内容を格納することを指示するマイクロ命
令と、ストアバッファの内容をオペランドアドレスバッ
ファが指す退避領域に格納することを指示するマイクロ
命令とをこの順序で発行し、割り込み処理ルーチンへの
移行制御に対しては、所定の割込み処理の開始アドレス
を前記フェッチアドレス保持手段に格納すると共にスト
アバッファに戻り先アドレスを保持することを指示する
マイクロ命令と、スタックポインタの更新、及びオペラ
ンドアドレスバッファに更新されたスタックポインタの
内容を格納することを指示するマイクロ命令と、ストア
バッファの内容をオペランドアドレスバッファが指す退
避領域に格納することを指示するマイクロ命令とをこの
順序で発行する。請求項 7 のプロセッサは、前記分岐命
令に対する解読ステージが複数のサイクルから構成され
ることを特徴とする。請求項8のプロセッサは、前記分
岐の処理単位とその他の処理単位とが同一のパイプライ
ンステージで実行されることを特徴とする。
うプロセッサであって、先読みすべき命令のアドレスを
保持するフェッチアドレス保持手段と、フェッチアドレ
ス保持手段のアドレスを書き換えることを内容とする分
岐の処理単位と、その他の処理単位とを含む分岐命令の
実行に関する制御処理に対して、まず分岐の処理単位の
実行を制御し、続いてその他の処理単位の実行を制御す
る制御手段とを備える。これにより、分岐先が命令ミス
アライメントであっても命令不在によるパイプラインイ
ンタロックは発生しないようになる。
項1記載のプロセッサの前記制御処理は、サブルーチン
コール命令の実行制御を含み、前記制御手段は、前記分
岐の処理単位の制御において、サブルーチンコール命令
のオペランドに基づいて得られる分岐先アドレスをフェ
ッチアドレス保持手段に書き込み、その他の処理単位に
おいて、戻り先アドレスを退避すべき領域のアドレス計
算および戻り先アドレスの退避を制御する。
項2記載のプロセッサの前記制御処理は、割り込み処理
ルーチンへの移行制御を含み、前記制御手段は、前記分
岐の処理単位の制御において、所定の割込み処理ルーチ
ンの開始アドレスをフェッチアドレス保持手段に書き込
み、その他の処理単位において戻り先アドレスを退避す
べきの領域のアドレス計算および戻り先アドレスの退避
を制御する。
ないし3記載のプロセッサの前記制御処理は、サブルー
チンからの復帰を指示するリターン命令と、割り込み処
理ルーチンからの復帰を指示するリターン命令とを含
み、 前記制御手段は、前記分岐の処理単位の制御にお
いて戻り先アドレスをフェッチアドレス保持手段に書き
込む。
項3記載のプロセッサの前記制御手段は、前記制御処理
の動作を実現する複数のマイクロ命令を記憶する制御記
憶部と、前記各処理単位に対応するマイクロ命令を制御
記憶から順次読み出して、マイクロ命令が指示する制御
信号をプロセッサ内部に発行するマイクロ命令発行部と
を備え、前記マイクロ命令発行部は、サブルーチンコー
ル命令に対しては、当該命令中に指定されたアドレスを
フェッチアドレス保持手段に格納することを指示するマ
イクロ命令と、戻り先アドレスを退避すべき領域のアド
レスの計算を指示するマイクロ命令と、戻り先アドレス
を退避することを指示するマイクロ命令とをこの順序で
発行し、割り込み処理ルーチンへの移行制御に対して
は、所定の割り込み処理開始アドレスをフェッチアドレ
ス保持手段に格納することを指示するマイクロ命令と、
戻り先アドレスを退避すべき領域のアドレスの計算を指
示するマイクロ命令と、戻り先アドレスを退避すること
を指示するマイクロ命令とをこの順序で発行する。
項3記載のプロセッサの前記制御手段は、サブルーチン
コール命令をプリデコードし、当該命令の分岐先アドレ
スの算出を行うアドレス計算部と、前記制御処理を実現
する複数のマイクロ命令を記憶する制御記憶部と、前記
各処理単位に対応するマイクロ命令を制御記憶から順次
読み出して、マイクロ命令をプロセッサ内部に発行する
マイクロ命令発行部とを備え、前記マイクロ命令発行部
は、サブルーチンコール命令に対して、前記アドレス計
算部で得られるアドレスを前記フェッチアドレス保持手
段に格納すると共に、メモリに格納すべきデータを保持
するストアバッファに戻り先アドレスを保持することを
指示するマイクロ命令と、前記退避領域を指すスタック
ポインタの更新、およびオペランドアドレスを保持すべ
きオペランドアドレスバッファに更新されたスタックポ
インタの内容を格納することを指示するマイクロ命令
と、ストアバッファの内容をオペランドアドレスバッフ
ァが指す退避領域に格納することを指示するマイクロ命
令とをこの順序で発行し、割り込み処理ルーチンへの移
行制御に対しては、所定の割込み処理の開始アドレスを
前記フェッチアドレス保持手段に格納すると共にストア
バッファに戻り先アドレスを保持することを指示するマ
イクロ命令と、スタックポインタの更新、及びオペラン
ドアドレスバッファに更新されたスタックポインタの内
容を格納することを指示するマイクロ命令と、ストアバ
ッファの内容をオペランドアドレスバッファが指す退避
領域に格納することを指示するマイクロ命令とをこの順
序で発行する。
概略構成を示すブロック図である。同図に示すように、
プロセッサ10は、命令バッファ32と制御記憶33を
有する解読部30、レジスタ部40、演算実行部50、
命令読出し部60、バスインタフェース部70を備え、
命令読出し部60、解読部30、演算実行部50でのそ
れぞれの処理をパイプラインとして同時に実行する。
界との間でデータのやり取りを行う入出力バスであり、
プログラムやデータを格納する外部メモリ(図外)等に
接続される。バスインタフェース部70は、入出力バス
711の制御を行う。
部70を介して外部メモリから命令を読出す。その際命
令読出し部60は、分岐命令実行などにより読出しアド
レスが不連続になる場合にのみ解読部30または演算実
行部50からアドレスを受け取り、読出しアドレスが連
続する場合には内部に持つインクリメント回路により読
出しアドレスを計算して命令を読み出す。読出す命令
は、読出しアドレスが偶数番地ならば1マシンサイクル
で2バイト、奇数番地ならば1バイトを読み出して、4
バイトの命令バッファ32に格納する。
取った命令を解読して、命令の実行を制御する。命令が
メモリアクセスを伴う場合にはそのオペランドアドレス
の計算を、分岐を伴う場合にはその分岐先アドレスの計
算を演算実行部50に行わせる。解読部30は、内部に
制御記憶33を持ち、解読した命令が1つの処理単位か
らなる場合は1つの処理の指示を発行し、複数の処理単
位からなる場合は1マシンサイクルに1つの処理単位ず
つ順次処理の指示を発行する。レジスタブロック40
は、命令のオペランドで指定される複数のレジスタを有
する。
行う演算器を持ち、1マシンサイクルで制御記憶33か
ら出力された1処理単位の指示を実行する。図2(a)
は、制御記憶33の構成を示す説明図である。制御記憶
33は、全ての機械語命令に対応する処理単位(マイク
ロ命令)を格納しており、同図(a)は、その一部を示
している。
た場合に参照され発行されるマイクロ命令の内容を格納
する記憶領域で、加算の指示を表す。命令1では1マシ
ンサイクルで制御記憶領域211の内容のみが発行され
る。221〜223は、命令2(JSR命令)が解読され
た場合に参照され発行されるマイクロ命令を格納する制
御記憶領域で、それぞれ分岐、スタックポインタのデク
リメント、スタックへの戻り先番地のストアを実現する
処理単位を表す。命令2では3マシンサイクルかけて制
御記憶領域221〜223の内容が順次発行される。
た場合に参照され発行される処理の内容を格納する制御
記憶領域で、ロードの指示を表す。命令3では1マシン
サイクルで制御記憶領域231の内容のみが発行され
る。図3は、図1に示したプロセッサのさらに詳細な構
成を表すブロック図である。同図において、プロセッサ
10は、命令解読部30、レジスタ部40、演算実行部
50、命令読出し部60、バスインタフェース部70を
有し、バス(以下ABUSと略す)20、第1データバス
(B1BUSと略す)21、第2データバス(B2BUSと略す)
22、命令アドレスバス(NIADDRと略す)701、命令
バス(IBUSと略す)702、オペランドアドレスバス
(OADDRと略す)703、ストアデータバス(STBUSと略
す)704、ロードデータバス(LDBUSと略す)705
により図示するように接続されている。
および解読を行ないマイコン全体を制御するため、割込
み制御部31、命令バッファ(IBと略す)32、制御記
憶33、セレクタ34、命令レジスタ35、ステータス
レジスタ36、プリデコーダ37、マイクロ命令レジス
タ38とから構成されている。割込み制御部31は割込
み受付時のマイコンの動作シーケンスを制御する。命令
バッファ32は、命令の実行に先だって命令読出し部6
0によって先行的にメモリから読み出された命令を蓄え
る。本実施例では、4バイト分の命令を蓄える容量を持
つ。
力される命令と、命令バスから入力される命令との何れ
か一方を選択する。命令レジスタ35は、セレクタ34
から出力する命令を保持する。ステータスレジスタ36
は、命令の解読に必要な各種のステータスフラグを保持
する。
の内容を参照して、命令レジスタ35の命令を解読す
る。本実施例では、プログラマブルロジックアレイ(PL
A)を用いてマイクロプログラムによる制御論理が実装
され、命令レジスタ35の命令を実現するマイクロ命令
を順に出力する。プリデコーダ37は、命令レジスタ3
5の内容とステータスレジスタ36の内容とを入力し、
主として1サイクルで動作するロード命令及び条件分岐
命令を実行するための制御信号を出力する。この動作
は、命令実行ステージに先立って命令解読ステージにお
いて行われる。特に、サブルーチンコール命令、割込み
処理要求命令等の分岐命令に対しては、命令中で指定さ
れた分岐先アドレスをPCB64およびIAB72に格納する
制御を行う。分岐先アドレスへのディスプレースメント
(偏位)で指定される場合には、演算実行部50に分岐
先アドレスの計算を実行させて、その計算結果をPCB6
4およびIAB72に格納する。
3の解読結果である制御指示を保持する。レジスタ部4
0は、データやアドレスを保持するため、データレジス
タ群41、アドレスレジスタ群42、セレクタ43を備
えて構成されている。データレジスタ群41は、主とし
てデータを保持する16ビット長の4本のレジスタDR3
〜DR0を有する。アドレスレジスタ群42は、主として
アドレスを保持する16ビット長の4本のレジスタAR3
〜AR0を有する。このうちAR3はスタックポインタとして
機能する。
とから選択的にデータレジスタ群41及びアドレスレジ
スタ群42に出力する。演算実行部50は、アドレスの
計算やデータ演算するため、演算器51、プログラムス
テータスワード52、オペランドアドレスレジスタ5
3、セレクタ54、セレクタ55、テンポラリーレジス
タ56、セレクタ57、セレクタ58、シフタ59を備
えて構成されている。演算器51は、16ビットのデー
タ演算及びアドレス計算を行う。
結果のフラグ等を保持する16ビットのレジスタであ
る。オペランドアドレスレジスタ53は、メモリをアク
セスするアドレスを格納する。セレクタ54、55は、
演算器51に入力すべきオペランドを選択する。テンポ
ラリーレジスタ56は、演算器51の出力を一時的に保
持する。セレクタ57は、テンポラリーレジスタ56、
オペランドアドレスレジスタ53の何れかを選択してオ
ペランドアドレスバッファ74に出力する。
の何れかを選択する。シフタ59は、セレクタ58の出
力を受けて演算器51とともにシフト動作をする。命令
読出し部60は、命令の読み出し位置を制御するため、
第1プリフェッチカウンタ(PFCと略す)61、第2プ
リフェッチカウンタ(PFCPと略す)62、セレクタ6
3、プログラムカウンタバッファ(PCBと略す)64、
インクリメンタ(INCと略す)65、セレクタ66から
構成されている。
命令の読み出しアドレスを保持する。INC65は、PCB6
4の内容を+1あるいは+2インクリメントして、命令
の先読みアドレスとしてPFC61、セレクタ66を介し
てIAB72に出力する。PFC61は、INC65によりイン
クリメントされたアドレスを保持する。PFCP62は、PF
C61の1つ前のアドレスを保持する。セレクタ63
は、PFC61とPFCP62とのいずれかを選択してABUS2
0及びB1BUS21に出力する。
み出される場合にはPFC61の出力を選択し、分岐する
場合には、テンポラリーレジスタ56又はオペランドア
ドレスレジスタ53からのアドレスを選択して出力す
る。バスインタフェース部70は、外部メモリ(図外)
から命令やデータを読み出す際のバスの接続を制御し、
インタフェース部71、命令アドレスバッファ72、命
令バッファ73、オペランドアドレスバッファ74、ス
トアバッファ75、ロードバッファ76、バススイッチ
77、RAM78、ROM79から構成されている。インタフ
ェース部71は、CPU6のバスと外部との接続を制御す
る。命令アドレスバッファ(IABと略す)72、命令バ
ッファ73、オペランドアドレスバッファ74、ストア
バッファ75、ロードバッファ76は、それぞれ命令ア
ドレス、命令、オペランドアドレス、ストアデータ、ロ
ードデータを保持するためのバッファである。
を接断する。RAM78、ROM79は、それぞれデータ、命
令を格納する。本実施例では外部メモリを前提とするの
で、RAM78、ROM79は無視してよい。
制御記憶33、マイクロ命令レジスタ38による機械語
命令JSR @(disp16,PC)を実現する処理単位の詳細なオペ
レーションを示す説明図である。図2(a)にも示した
ように、JSR @(disp16,PC)命令は、分岐、スタックポイ
ンタ減算、戻り先ストアの3つの処理単位からなる。 分
岐は、プリデコーダ37による制御動作(PFCP又はPFC+
disp16+0又は1 → PCB,IAB)と、制御記憶33及びマイ
クロ命令レジスタ38による制御動作(PFCP又はPFC+0
又は1 → STB)とにより実現される。前者のプリデコー
ダ37の制御により分岐先アドレス(PFCP又はPFC+disp
16又は0/1)が計算され、計算結果がPCB64及びIAB7
2に書き込まれる。分岐先アドレスは、PFC61とPFCP
62のどちらかと16ビットディスプレースメントと0
または1とを加算することにより得られる。PFC61とP
FCP62との選択および0と1の選択は、命令バッファ
32の残量に応じて選択される。この計算結果がPCB6
4及びIAB72に書き込まれる結果、分岐先アドレスか
ら命令が順次フェッチされることになる。また、後者の
制御動作により、戻り先アドレスがストアバッファ75
に保持される。これは、戻り先のストアに対する前準備
であり、戻り先アドレスが保存される。この制御は、制
御記憶領域221のマイクロ命令が指定する制御信号が
マイクロ命令レジスタ38から発行されることにより実
現される。
ックポインタの値をスタック(退避領域)の未使用領域
に変更する処理(AR3-4 → AR3,OAB)である。本実施例
ではアドレススレジスタAR3がスタックポインタである
ので、AR3が4減算される。同時に戻り先ストアの前準
備として減算結果がOAB74にも格納される。この制御
は、制御記憶領域222のスタックポインタ減算のマイ
クロ命令により実現される。 戻り先ストアの処理単位
は、スタックポインタが指すスタックの未使用領域に、
戻り先アドレスを退避させる処理である。この時点では
既に、減算されたスタックポインタの値がOAB74に、
戻り先アドレスがSTB75に格納されているので、STB7
5の内容をOAB74が指すメモリ領域に格納する制御が
行われる。この制御は、制御記憶領域223の戻り先ス
トアのマイクロ命令により実現される。
ッサについて、以下その動作を説明する。従来技術との
違いを明確にするために、従来技術の説明で用いた同一
のプログラム例に用いて説明する。例示プログラムを以
下に示す。 命令1: 100番地 ADD D0,D1 (D0レジスタの値とD1レジスタの値を加算して結果をD1
レジスタに格納する1バイトの命令で、1処理単位のマ
イクロ命令からなる。)
地にあるサブルーチンに分岐する3バイトの命令で、3
処理単位のマイクロ命令からなる。分岐先は201番地と
する。)
データをD0レジスタにロードする2バイトの命令で、1
処理単位のマイクロ命令からなる。)
作タイミング図を示すものである。同図は、命令読出し
部60、解読部30、演算実行部50で処理する命令と
命令バッファ32の内容と制御記憶33の出力内容とを
マシンサイクルと呼ばれるタイミング毎に示している。
時間が経過する順にタイミング毎に説明する。 (タイミングt1) 命令読出し部60が100番地から2バイトの命令コード
を読出す。この読出しアドレスは図示しない分岐その他
の理由によりこのタイミングで解読部30または演算実
行部50から受け取るものとする。また命令バッファ3
2も空であるとする。
ードを命令バッファ32に格納するとともに、命令バッ
ファ32の底から100番地の命令1を取り出して解読部
30で解読する。命令1は1バイトなので命令の末尾ま
でが命令バッファ32に存在することになる。命令読出
し部60では2だけ増分した読出しアドレスを計算して
102番地から2バイトの命令コードを読出す。
算の指示が出力され、演算実行部50でこれを実行す
る。この実行により命令1の実行が完了する。前のタイ
ミングで読出された102番地と103番地の命令コードを命
令バッファ32に格納するとともに、命令バッファ32
の底から101番地の命令2を取り出して解読部30で解
読および分岐先のアドレス計算を行う。命令2は3バイ
トであるが命令の末尾までが命令バッファ32に存在し
ている。命令読出し部60は命令バッファ32に2バイ
ト以上の空きがないため命令読出しを行わない。
1の処理単位である分岐の指示が出力され、図4に示し
たように演算実行部50でこれを実行する。この分岐の
指示により命令バッファ32にある全ての命令をフラッ
シュするともに、命令読出し部60では解読部30で前
のタイミングで計算された分岐先アドレスを受け取り、
201番地から1バイトの命令コードを読出す。受け取っ
たアドレスが奇数番地なので1バイトのみの読出しにな
る。
2の処理単位であるスタックポインタデクリメントの指
示が出力され、図5に示したように演算実行部50でこ
れを実行する。前のタイミングで読出された201番地の
命令コードを命令バッファ32に格納する。命令読出し
部60では前の読出しアドレスが奇数なので1だけ増分
した読出しアドレスを計算して202番地から2バイトの
命令コードを読出す。
3の処理単位であるスタックへの戻り先番地のストアの
指示が出力され、図6に示したように演算実行部50で
これを実行する。前のタイミングで読出された202番地
と203番地の命令コードを命令バッファ32に格納す
る。命令読出し部60は命令バッファ32に2バイト以
上の空きがないため命令読出しを行わない。命令2はこ
の実行により完了する。
て解読部30で解読およびロードのアドレス計算を行
う。命令3は2バイトであるがこのタイミングで既に命
令の末尾までが命令バッファ32に存在しており、パイ
プラインインタロックは発生しない。命令読出し部60
は命令バッファ32に2バイト以上の空きがないため命
令読出しを行わない。
ードの指示が出力され、演算実行部50でこれを実行す
る。この実行により命令3の実行が完了する。命令読出
し部60では2だけ増分した読出しアドレスを計算して
204番地から2バイトの命令コードを読出す。
チンへの分岐命令を実行する場合、解読部30の制御記
憶33から他の指示に先行してまず分岐の指示が出力さ
れるため、演算実行部50におけるスタックポインタデ
クリメントやスタックへの戻り先番地のストアの実行と
並行に命令読出し部60において2回の分岐先の命令読
出しを行うことができ、分岐先の命令がミスアライメン
トであっても分岐先命令を解読する時点で命令バッファ
32に3バイトの分岐先の命令が格納されていることに
なり、命令バッファ32における命令不在によるパイプ
ラインインタロックを回避することができる。
命令の場合をあげているが、分岐の処理単位と少なくと
も1つの分岐でない処理単位とからなる命令であれば何
でも適応できる。例えば、割込み処理ルーチンへの分岐
処理においては、スタックポインタのデクリメントとス
タックへの戻り先番地およびステータスワードのストア
とに先行して分岐の指示を発行するように制御記憶33
を構成すればよいし、サブルーチンからのリターン命令
あるいは割込み処理ルーチンからのリターン命令におい
ては、スタックからの戻り先番地およびステータスワー
ドのロードとスタックポインタインクリメントとに先行
して分岐の指示を発行するように制御記憶33を構成す
ればよい。
を4バイトとしたが、5バイトまたはそれ以上でもよ
い。その場合、サブルーチンへの分岐命令の分岐先命令
を解読する時点で命令バッファ32に少なくとも5バイ
トの分岐先命令が格納されていることになりより効果的
である。または命令バッファ32の容量を3バイトとし
てもよい。
1マシンサイクルで読出される命令を最大2バイトとし
たが、これを4バイトまたはそれ以上としてもよい。1
マシンサイクルで読出される命令語長を大きくするほど
読出しアドレスの境界をまたぐ命令ミスアライメントの
確率は低下するが、語長をいくら大きくしても命令ミス
アライメントは皆無にはならない。
ば、分岐先命令が解読可能になるタイミングでは少なく
とも2回の命令読出しが行われているため、分岐先が命
令ミスアライメントであっても命令不在によるパイプラ
インインタロックは発生しないので、命令の実行時間が
伸張せず処理性能が劣化しないという効果がある。
ルーチンコール命令に対して請求項1と同じ効果があ
る。請求項3のプロセッサによれば、特に割り込み処理
ルーチンへの移行制御に対しても請求項2と同じ効果が
ある。
ないし3何れかの効果に加えて、サブルーチンからの復
帰を指示するリターン命令と、割り込み処理ルーチンか
らの復帰を指示するリターン命令に対して、請求項1な
いし3何れかと同じ効果がある。
の効果に加えて、マイクロプログラムよる制御によって
特にサブルーチンコール命令、割り込み処理ルーチンへ
の移行制御に対して命令の実行時間が伸張せず処理性能
が劣化しないという効果がある。
の効果に加えて、マイクロプログラムよる制御とは独立
にアドレス計算の制御をすることよって特にサブルーチ
ンコール命令および割り込み処理ルーチンへの移行制御
に対して命令の実行時間が伸張せず処理性能が劣化しな
いという効果がある。
を示すブロック図である。
である。 (b)同実施例における制御記憶33のオペレーション
を示す図である。
すブロック図である。
図である。
図である。
Claims (8)
- 【請求項1】命令の先読みを行うプロセッサであって、 先読みすべき命令のアドレスを保持するフェッチアドレ
ス保持手段と、前記 フェッチアドレス保持手段のアドレスを分岐先の命
令のアドレスへと書き換えることを内容とする分岐の処
理単位と、少なくとも1つ以上の処理単位からなるその
他の処理単位とから構成される分岐命令の実行に関する
制御処理に対して、まず分岐の処理単位の実行を制御
し、続いてその他の処理単位の実行を制御する制御手段
とを備え、 前記分岐先の命令の解読可能なタイミングまでに、前記
分岐先の命令がミスアライメントであるか否かにかかわ
らず、前記分岐先の命令を複数のサイクルにわたって先
読みすることを特徴とするプロセッサ。 - 【請求項2】前記制御処理は、サブルーチンコール命令
の実行制御を含み、前記制御手段は、前記分岐の処理単
位の制御において、サブルーチンコール命令のオペラン
ドに基づいて得られる分岐先アドレスをフェッチアドレ
ス保持手段に書き込み、その他の処理単位において、戻
り先アドレスを退避すべき領域のアドレス計算および戻
り先アドレスの退避を制御することを特徴とする請求項
1記載のプロセッサ。 - 【請求項3】前記制御処理は、割り込み処理ルーチンへ
の移行制御を含み、前記制御手段は、前記分岐の処理単
位の制御において、所定の割込み処理ルーチンの開始ア
ドレスをフェッチアドレス保持手段に書き込み、その他
の処理単位において戻り先アドレスを退避すべきの領域
のアドレス計算および戻り先アドレスの退避を制御する
ことを特徴とする請求項2記載のプロセッサ。 - 【請求項4】前記制御処理は、サブルーチンからの復帰
を指示するリターン命令と、割り込み処理ルーチンから
の復帰を指示するリターン命令とを含み、前記制御手段
は、前記分岐の処理単位の制御において戻り先アドレス
をフェッチアドレス保持手段に書き込むことを特徴とす
る請求項1ないし3記載の何れかのプロセッサ。 - 【請求項5】前記制御手段は、前記制御処理の動作を実
現する複数のマイクロ命令を記憶する制御記憶部と、前
記各処理単位に対応するマイクロ命令を制御記憶から順
次読み出して、マイクロ命令が指示する制御信号をプロ
セッサ内部に発行するマイクロ命令発行部とを備え、前
記マイクロ命令発行部は、サブルーチンコール命令に対
しては、当該命令中に指定されたアドレスをフェッチア
ドレス保持手段に格納することを指示するマイクロ命令
と、戻り先アドレスを退避すべき領域のアドレスの計算
を指示するマイクロ命令と、戻り先アドレスを退避する
ことを指示するマイクロ命令とをこの順序で発行し、割
り込み処理ルーチンへの移行制御に対しては、所定の割
り込み処理開始アドレスをフェッチアドレス保持手段に
格納することを指示するマイクロ命令と、戻り先アドレ
スを退避すべき領域のアドレスの計算を指示するマイク
ロ命令と、戻り先アドレスを退避することを指示するマ
イクロ命令とをこの順序で発行することを特徴とする請
求項3記載のプロセッサ。 - 【請求項6】前記制御手段は、サブルーチンコール命令
をプリデコードし、当該命令の分岐先アドレスの算出を
行うアドレス計算部と、前記制御処理を実現する複数の
マイクロ命令を記憶する制御記憶部と、前記各処理単位
に対応するマイクロ命令を制御記憶から順次読み出し
て、マイクロ命令をプロセッサ内部に発行するマイクロ
命令発行部とを備え、前記マイクロ命令発行部は、サブ
ルーチンコール命令に対して、前記アドレス計算部で得
られるアドレスを前記フェッチアドレス保持手段に格納
すると共に、メモリに格納すべきデータを保持するスト
アバッファに戻り先アドレスを保持することを指示する
マイクロ命令と、前記退避領域を指すスタックポインタ
の更新、およびオペランドアドレスを保持すべきオペラ
ンドアドレスバッファに更新されたスタックポインタの
内容を格納することを指示するマイクロ命令と、ストア
バッファの内容をオペランドアドレスバッファが指す退
避領域に格納することを指示するマイクロ命令とをこの
順序で発行し、割り込み処理ルーチンへの移行制御に対
しては、所定の割込み処理の開始アドレスを前記フェッ
チアドレス保持手段に格納すると共にストアバッファに
戻り先アドレスを保持することを指示するマイクロ命令
と、スタックポインタの更新、及びオペランドアドレス
バッファに更新されたスタックポインタの内容を格納す
ることを指示するマイクロ命令と、ストアバッファの内
容をオペランドアドレスバッファが指す退避領域に格納
することを指示するマイクロ命令とをこの順序で発行す
ることを特徴とする請求項3記載のプロセッサ。 - 【請求項7】前記分岐命令に対する解読ステージが複数
のサイクルから構成されることを特徴とする請求項1記
載のプロセッサ。 - 【請求項8】前記分岐の処理単位とその他の処理単位と
が同一のパイプラインステージで実行されることを特徴
とする請求項7記載のプロセッサ。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP30182894A JP3504355B2 (ja) | 1994-12-06 | 1994-12-06 | プロセッサ |
US08/562,069 US5729727A (en) | 1994-12-06 | 1995-11-22 | Pipelined processor which reduces branch instruction interlocks by compensating for misaligned branch instructions |
EP95308603A EP0716376B1 (en) | 1994-12-06 | 1995-11-29 | A pipeline processor with reduced interlocks caused by branch instructions |
DE69529510T DE69529510T2 (de) | 1994-12-06 | 1995-11-29 | Pipelineprozessor mit reduzierten Verschränkungen, die von Verzweigungsbefehlen veranlasst werden |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP30182894A JP3504355B2 (ja) | 1994-12-06 | 1994-12-06 | プロセッサ |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003374914A Division JP2004094973A (ja) | 2003-11-04 | 2003-11-04 | プロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08161166A JPH08161166A (ja) | 1996-06-21 |
JP3504355B2 true JP3504355B2 (ja) | 2004-03-08 |
Family
ID=17901655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP30182894A Expired - Lifetime JP3504355B2 (ja) | 1994-12-06 | 1994-12-06 | プロセッサ |
Country Status (4)
Country | Link |
---|---|
US (1) | US5729727A (ja) |
EP (1) | EP0716376B1 (ja) |
JP (1) | JP3504355B2 (ja) |
DE (1) | DE69529510T2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3526773B2 (ja) * | 1999-02-26 | 2004-05-17 | 松下電器産業株式会社 | マルチプロセッサ装置およびその制御方法 |
US6622240B1 (en) * | 1999-06-18 | 2003-09-16 | Intrinsity, Inc. | Method and apparatus for pre-branch instruction |
US7278014B2 (en) * | 2004-12-02 | 2007-10-02 | International Business Machines Corporation | System and method for simulating hardware interrupts |
JP2007041837A (ja) * | 2005-08-03 | 2007-02-15 | Nec Electronics Corp | 命令プリフェッチ装置及び命令プリフェッチ方法 |
US7478228B2 (en) * | 2006-08-31 | 2009-01-13 | Qualcomm Incorporated | Apparatus for generating return address predictions for implicit and explicit subroutine calls |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5592947A (en) * | 1978-12-29 | 1980-07-14 | Fujitsu Ltd | Interruption control system for microprogram |
JPS573142A (en) * | 1980-06-04 | 1982-01-08 | Matsushita Electric Ind Co Ltd | Instruction prefetching system |
US4488227A (en) * | 1982-12-03 | 1984-12-11 | Honeywell Information Systems Inc. | Program counter stacking method and apparatus for nested subroutines and interrupts |
US4654786A (en) * | 1984-04-11 | 1987-03-31 | Texas Instruments Incorporated | Data processor using picosquencer to control execution of multi-instruction subroutines in a single fetch cycle |
JPS62226232A (ja) * | 1986-03-28 | 1987-10-05 | Toshiba Corp | 分岐先アドレス算出回路 |
JPS63317828A (ja) * | 1987-06-19 | 1988-12-26 | Fujitsu Ltd | マイクロコ−ド読み出し制御方式 |
KR970005453B1 (ko) * | 1987-12-25 | 1997-04-16 | 가부시기가이샤 히다찌세이사꾸쇼 | 고속처리에 적합한 데이타 처리장치 |
US5193205A (en) * | 1988-03-01 | 1993-03-09 | Mitsubishi Denki Kabushiki Kaisha | Pipeline processor, with return address stack storing only pre-return processed address for judging validity and correction of unprocessed address |
US5099419A (en) * | 1988-11-25 | 1992-03-24 | Nec Corporation | Pipeline microcomputer having branch instruction detector and bus controller for producing and carrying branch destination address prior to instruction execution |
US5034880A (en) * | 1988-12-22 | 1991-07-23 | Wang Laboratories, Inc. | Apparatus and method for executing a conditional branch instruction |
JP2984463B2 (ja) * | 1991-06-24 | 1999-11-29 | 株式会社日立製作所 | マイクロコンピュータ |
JP3555900B2 (ja) * | 1993-08-26 | 2004-08-18 | 日本化薬株式会社 | 水面拡散型固形農薬製剤 |
-
1994
- 1994-12-06 JP JP30182894A patent/JP3504355B2/ja not_active Expired - Lifetime
-
1995
- 1995-11-22 US US08/562,069 patent/US5729727A/en not_active Expired - Lifetime
- 1995-11-29 DE DE69529510T patent/DE69529510T2/de not_active Expired - Lifetime
- 1995-11-29 EP EP95308603A patent/EP0716376B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
DE69529510T2 (de) | 2003-06-26 |
EP0716376A2 (en) | 1996-06-12 |
JPH08161166A (ja) | 1996-06-21 |
EP0716376B1 (en) | 2003-01-29 |
EP0716376A3 (en) | 1998-04-01 |
DE69529510D1 (de) | 2003-03-06 |
US5729727A (en) | 1998-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100327776B1 (ko) | 다중 명령세트를 사용하는 데이터 처리방법 | |
KR100323191B1 (ko) | 다중명령세트를이용한데이터프로세싱장치 | |
US4454578A (en) | Data processing unit with pipelined operands | |
KR100328162B1 (ko) | 정보처리회로와마이크로컴퓨터와전자기기 | |
EP0438961A2 (en) | Hardware data string operation controller | |
US5682531A (en) | Central processing unit | |
US5313644A (en) | System having status update controller for determining which one of parallel operation results of execution units is allowed to set conditions of shared processor status word | |
USRE32493E (en) | Data processing unit with pipelined operands | |
JPH03218523A (ja) | データプロセッサ | |
KR20010050792A (ko) | 2개의 서로 다른 고정 길이 명령 세트를 실행하기 위한프로세서 아키텍쳐 | |
EP0992894A1 (en) | Apparatus and method for loop execution | |
US4945511A (en) | Improved pipelined processor with two stage decoder for exchanging register values for similar operand instructions | |
US4541047A (en) | Pipelined data processing system | |
US5924114A (en) | Circular buffer with two different step sizes | |
EP0982655A2 (en) | Data processing unit and method for executing instructions of variable lengths | |
US5966514A (en) | Microprocessor for supporting reduction of program codes in size | |
KR19990046225A (ko) | 확장 명령어를 가진 중앙처리장치 | |
JP3504355B2 (ja) | プロセッサ | |
JPH07239780A (ja) | 1クロック可変長命令実行処理型命令読み込み電子計 算機 | |
US4853889A (en) | Arrangement and method for speeding the operation of branch instructions | |
US5649229A (en) | Pipeline data processor with arithmetic/logic unit capable of performing different kinds of calculations in a pipeline stage | |
US4218741A (en) | Paging mechanism | |
JP2004094973A (ja) | プロセッサ | |
JP2000029696A (ja) | プロセッサおよびパイプライン処理制御方法 | |
KR19990046284A (ko) | 확장명령어를갖는중앙처리장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20031202 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20031210 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071219 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081219 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091219 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091219 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101219 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101219 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111219 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111219 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121219 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121219 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131219 Year of fee payment: 10 |
|
EXPY | Cancellation because of completion of term |