JP3850156B2 - 命令処理装置 - Google Patents

命令処理装置 Download PDF

Info

Publication number
JP3850156B2
JP3850156B2 JP35949898A JP35949898A JP3850156B2 JP 3850156 B2 JP3850156 B2 JP 3850156B2 JP 35949898 A JP35949898 A JP 35949898A JP 35949898 A JP35949898 A JP 35949898A JP 3850156 B2 JP3850156 B2 JP 3850156B2
Authority
JP
Japan
Prior art keywords
instruction
read
microprogram
signal
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP35949898A
Other languages
English (en)
Other versions
JP2000181701A (ja
Inventor
弘樹 成田
愛一郎 井上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP35949898A priority Critical patent/JP3850156B2/ja
Priority to US09/461,424 priority patent/US6754814B1/en
Publication of JP2000181701A publication Critical patent/JP2000181701A/ja
Application granted granted Critical
Publication of JP3850156B2 publication Critical patent/JP3850156B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields

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)

Description

【0001】
【発明の属する技術分野】
本発明は、情報処理装置における命令処理装置に関する。
【0002】
【従来の技術】
情報処理装置において、LCTL(load control)命令などのシリアライズ処理を必要とする命令、LPSW(load program status word) 命令などのシステムの制御状態を変更する命令、又は、割り込みなどが実行されると、再命令読み出しが行われる。
【0003】
近年の情報処理装置は、ハードウェアの削減をしつつ命令実行を実現するために、マイクロプログラムを採用している。LCTL命令などのシリアライズ処理を必要とする命令、LPSW命令などのシステムの制御状態を変更する命令、又は、割り込みなどの実行による再命令読み出し方法を実現する際も、同様にマイクロプログラムの使用を実現している。
【0004】
図1は、マイクロプログラムを使用した再命令読み出しの手順を示すフローチャートである。
このマイクロプログラムを使用した再命令読み出しは、時系列で、マイクロプログラムの起動(ステップS1)−命令読み出し停止(ステップS2)−命令読み出しアドレス設定(ステップS3)−命令読み出し開始(ステップS4)を行うことにより実現している。
【0005】
従来のパイプライン処理方式を採用した命令処理装置においても、図1の処理と同様な処理を行う。
図2〜図13を用いて、従来のパイプライン処理方式を採用した再命令読み出し方法の詳細を説明する。図2〜図5は命令処理回路を示し、図2は回路の全体構成と図3〜図5の接続関係を示す。図6〜図8は、再命令読み出し処理のタイムチャートである。図9〜図13は、命令処理回路に使用されるハード構成図を示す。
【0006】
(基本的な再命令読み出し)
基本的な再命令読み出し処理はLPSW命令で行われる。図6〜図8のタイムチャートの内、図6が本例の処理を示す。
LPSW命令における図1の手順は、次のように実行される。まず、図1のステップS1のマイクロプログラムの起動は、図3の命令バッファ(IBUFFER)上にフェッチされた命令が命令レジスタ(IWR)にロードされ、Dサイクルにおいて命令を解読し、制御記憶アドレスレジスタ(CSAR)にオペコード(IO)を供給することによって、制御記憶部(MCS)からマイクロプログラム制御情報(PLHC,PCR,LAST−WORDなど)を次々とDタグ(DTAG)へ読み出し、そのマイクロプログラム制御情報をDサイクルからWサイクルまでシフトさせることによって各サイクル(Dサイクル〜Wサイクル)で各々の処理を行う。
【0007】
図1のステップS2の命令読み出し停止は、図6のFC2(ファンクションカウンタ2)で行われる。図3のMCSから読み出されたFC2のマイクロプログラム制御情報(PLHC=0C)がDサイクルからWサイクルまでシフトされる。この時、TサイクルのTTAGからマイクロプログラム制御情報(PLHC=0C)を解読し、T−CONTROL信号(A)が生成され(図10参照)、図3の命令読み出し制御部に送られる。
【0008】
送られたT−CONTROL信号(A)は、図12のRE−IFCH−TGRをオンし、図3の命令読み出し制御部から送られる信号(C):+IF−REQ信号(図12参照)によって命令読み出し停止を行う。また同時に、命令読み出し制御部から送られる信号(D):−INTIALIZE−NSIC信号(図12参照)により図3のIBUFFERの状態と命令の位置を示すNSI−COUNTERをクリアすることで命令バッファの初期化を行っている。
【0009】
図1のステップS3の命令読み出しアドレス設定は、図6のFC0で行われる。図3のMCSから読み出されたFC0のマイクロプログラム制御情報(PCR=14)がDサイクルからWサイクルまでシフトされる。この時、図4のAサイクルのA−CONTROL信号によりオペランドフェッチが出され、図5のWサイクルのWTAGからはマイクロプログラム制御情報(PCR=14)を解読し、W−CONTROL信号(E)が生成され(図11参照)、図5のRR−LCH(結果レジスタラッチ)を選択し、その出力をPSW(PROGRAM STATUS WORD)に書き込ませる。
【0010】
続けて、図のW+1サイクルにおいて、図11のW−CONTROL信号(E)をラッチしたW−CONTROL−LCH信号(F)により更新されたPSWの命令アドレス(PSWIAR)を命令アドレスレジスタ(IAR)にロードする。
図1のステップS4の命令読み出し開始は、図6のFC5で行われる。図3のMCSから読み出されたFC5のマイクロプログラム制御情報(LAST−WORD)がDサイクルからWサイクルまでシフトされる。この時、図3のDサイクルのDTAGから図9のマイクロプログラム制御情報(LAST−WORD)とD−VALID信号(Dサイクルが有効である信号)との論理積(AND)をとることにより、NSI−REQ信号(G)が生成され、図3の命令読み出し制御部に送られる。
【0011】
図3の命令読み出し制御部に送られたNSI−REQ信号(G)は、図12のRE−IFCH−TRGのラッチをリセットし、続いてSTART−UPのラッチをオンすることにより、その次のクロックサイクルからIF−REQ信号(C)が送られることによって命令読み出しの開始を行う。
以上説明したようにマイクロプログラムが処理されることにより、図1の手順を満足し、図6に示した基本的再命令読み出しが行われる。
【0012】
(後続命令アドレスを生成し、再命令読み出しを行う例)
後続命令アドレスでの再命令読み出しは、LCTL(load control)命令で行われる。図6〜図8のタイムチャートの内、図7が本例の処理を示す。
LCTLも図1の手順に従い、再命令読み出しを行う。本例でのステップS1の再命令読み出しのマイクロプログラム起動、ステップS2の命令読み出し停止、ステップS4の命令読み出し開始は、上述の基本的な再命令読み出しの説明と同様な処理を行う。ただし、ステップS3の命令読み出しアドレス設定のみが異なる。
【0013】
上述の基本的な再命令読み出しと同様に、ステップS1でマイクロプログラムが起動され、ステップS2の命令読み出し停止が図7のFC2によって行われる。
図1のステップS3の命令読み出しアドレス設定は、図7のFC6で行われる。図3のMCSから読み出されたFC6のマイクロプログラム制御情報(PLHC=0F)がDサイクルからWサイクルまでシフトされるのと同様にIARにあるアドレスを図3の命令読み出し制御部から送られる命令アドレス修飾(IAM)により補正されたアドレスとIWRからデコードされた命令長コードがシフトされる。
【0014】
この時、TサイクルのTTAGからはマイクロプログラム制御情報(PLHC=0F)を解読し、T−CONTROL信号(B)が生成され(図10参照)、図4のTIAR(Tサイクルの命令アドレスレジスタ)とTILC(Tサイクルの命令長コード)を加算したTIAR+TILCを選択し、そのTIAR+TILCをIARにロードする。
【0015】
その後、図1のステップS4の命令読み出し開始は、上述の基本的な再命令読み出しの説明と同様な処理をFC8によって行う。
以上のようにマイクロプログラムが処理されることによって、図1の手順を満足し、図7に示す再命令読み出しが行われる。
(割り込み処理においてCPUのステートに影響された再命令読み出しを行う例)
図6〜図8のタイムチャートの内、図8が本例の処理を示す。
【0016】
割り込み処理においてCPUのステートに影響された再命令読み出しも、図1の手順に従い、再命令読み出しを行う。本例でのステップS1のマイクロプログラム起動、ステップS2の命令読み出し停止、ステップS3の命令読み出しアドレス設定は、上述の基本的な再命令読み出しの説明と同様な処理を行う。ただし、ステップS4の命令読み出し開始のみが異なる。
【0017】
上述の基本的な再命令読み出しと同様に、ステップS1でマイクロプログラムが起動され、ステップS2の命令命令読み出し停止が図8のFC2、ステップS3の命令読み出しアドレス設定がFC0で行われる。
図1のステップS4の命令読み出し開始は、図8のFC8で行われる。図3のMCSから読み出されたFC8のマイクロプログラム制御情報(LAST−WORD)がDサイクルからWサイクルまでシフトされる。この時、DサイクルのDTAGからマイクロプログラム制御情報(LAST−WORD)とD−VALID信号(Dサイクルが有効であることを示す信号)との論理積(AND)をとることにより、NSI−REQ信号(G)が生成され(図9参照)、図3の命令読み出し制御部とプロセス制御部に送られる。
【0018】
図3の命令読み出し制御部に送られたNSI−REQは、図12のRE−IFCH−TGRのラッチをリセットし、続いてSTART−UPのラッチをオンする。図3のプロセス制御部に送られたNSI−REQはラッチされ、ラッチされた信号とEND−PROCESS−STATE信号(図13参照)の論理積(AND)をすることにより、STARTステート−PROCESSステートとステート遷移させ、PROCESSステートに入った時、図12のENB─PROCESS−IFCHがオンすることにより、その次のクロックサイクルからIF−REQ信号(C)が送られることによって命令読み出しの開始を行っている。
【0019】
以上説明したようにマイクロプログラムが処理されることによって、図1の手順を満足し、図8に示し再命令読み出しが行われる。
【0020】
【発明が解決しようとする課題】
以上説明した、従来のマイクロプログラムを採用したパイプライン処理方式の再命令読み出し方法には、次の3つの問題点がある。
1.後続命令アドレスの算出について
従来のパイプライン方式の命令処理方法においては、後続命令アドレスの算出を、Tサイクルの命令アドレスレジスタ及びTサイクルの命令長コードによって算出している。このようにすると、ハードウェアの増加を招いてしまうため、新しい後続命令アドレスの算出方法が必要である。
【0021】
2.命令読み出しの開始について
従来の命令読み出し開始は、図6〜図8に示すように、マイクロプログラムの最終フローのDサイクルで、NSI−REQ信号により後続の命令読み出しを開始していた。これは、従来の命令投入制御においては、図に示すように、最初の命令フェッチデータはIBUFFERを経由せず、直接、IWRに投入される方式であったため、再命令読み出しの際、現命令の実行中に後続の命令読み出しを開始すると、IWRの内容を破壊する虞があったためである。
【0022】
これに対し、図6〜図8に示すようにマイクロプログラムの最終フローのDサイクルにおいて、後続の命令読み出し開始を行うとIWRの内容が破壊されるケースは一切ない。しかし、命令読み出し開始が最終フローのDサイクルであると、命令フェッチのキャッシュミス、命令アドレスのアドレス変換などにより命令読み出し処理のクロックサイクル数が増大する場合は、必然的に、命令実行制御部への命令投入が、命令読み出し処理によるクロックサイクル数が増大した分だけ遅れる。
【0023】
3.CPUのステート遷移について
割り込み処理において、最終フローのDサイクル以降でステートがEND−PROCESS−STATE,START,PROCESS−STATEと遷移し、PROCESS−STATEになって初めて命令読み出し開始を行っているため、後続命令の読み出しが遅れる。
【0024】
本発明は、上記問題点を解決し、マイクロプログラムでの再命令読み出しにおいて、ハードウェアの削減をしつつ、新たな再命令読み出し方法の確立と、再命令読み出しを高速化することを目的とするものである。
【0025】
【課題を解決するための手段】
本発明は、上記目的を達成するためになされたものである。
本発明の命令処理装置においては、キャッシュメモリに記憶された命令を読み出して実行をし、一連の命令実行中において、キャッシュメモリに記憶されている別の一連の命令列の読み出しを行う再命令読み出しが行われるパイプライン命令実行処理部と、マイクロプログラム格納部からマイクロプログラムを読み出して、前記マイクロプログラム格納部から読み出されたマイクロプログラムにより前記パイプライン命令実行処理部を制御するパイプライン命令実行制御部と、前記命令実行制御部に設けられ、前記マイクロプログラムの処理待ちを行うスタックと、を有し、前記パイプライン命令実行処理部において前記再命令読み出しが行われる場合に、前記パイプライン命令実行制御部における特定のマイクロプログラムのデコード結果に基づいて、前記パイプライン命令実行制御部により前記パイプライン命令実行処理部における後続命令に対する読み出し要求の停止を行い、前記パイプライン命令実行制御部による前記別の一連の命令列の読み出しアドレスの設定後、前記特定のマイクロプログラムに続くマイクロプログラムのうち前記処理待ちを行うスタックに保持された最終のマイクロプログラムを除くマイクロプログラムのデコード結果に基づいて、前記後続命令に対する読み出し要求の停止の解除を行うことを特徴とする。
【0026】
本発明においては、更に、以下の理由により後述の手段を設ける。
1.命令処理装置は、本来、命令実行制御部と命令フェッチパイプラインはそれぞれ独立して動作するため、マイクロプログラム処理と命令フェッチ処理は同時実行可能である。
2.後続命令アドレスの算出は、Tサイクルの命令アドレスとTサイクルの命令長コードから算出しなくとも算出する方法がある。
【0027】
3.割り込み処理のマイクロプログラム処理が走行するEND−PROCESS−STATEは、割り込み処理などのマイクロプログラムの起動に必要であるが、割り込み処理などのマイクロプログラムが走行している途中ではEND−PROCESS−STATEでなくても良いこと。
以上の理由から、上記問題点を解決するために、以下に記載する手段を設ける。
【0028】
1.命令読み出し要求の停止制御レジスタとマイクロプログラムによる命令読み出し要求の停止手段と停止解除手段を設けることによって再命令読み出しを可能とする。
2.図1の命令読み出し開始を別のマイクロプログラム制御情報により指示することで、マイクロプログラム実行と再命令読み出し処理の同時実行を可能とし、再命令読み出しの高速化も可能とする。
【0029】
3.後続命令アドレスでの再命令読み出しにおいて、マイクロプログラム指示による自命令アドレスと自命令長を保持する手段と加算器を設けることによってハードウェアの削減をし、再命令読み出しを可能とする。
4.割り込み処理などの再命令読み出しにおいて、マイクロプログラム指示によって早期にEND−PROCESS−STATEからSTART−STATEを経由してPROCESS−STATEにステート遷移させ、命令フェッチを可能とする手段を設けることにより、再命令読み出しを実行する。
【0030】
【発明の実施の形態】
以下、本発明の実施形態について図を用いて説明する。
本実施形態では、従来の命令処理の実行をパイプラインによって制御する代わりに、リザベーションステーションと呼ばれる処理待ちのスタックを設けて、命令の実行制御をする方式を採用し、この命令実行制御に対応したマイクロプログラム制御を実現する。以下に、処理待ちのスタックを設けた命令の実行制御方式における、一般的なマイクロプログラム動作を説明する。
【0031】
図14〜図17は、処理待ちのスタックを設けたマイクロプログラム制御を実行する命令処理回路を示す。図14は回路の全体構成と、図15〜図17の接続関係を示す。
最初に、図14〜図17の回路の一般的な動作について説明をする。
図15のキャッシュから命令バッファ(IBUFFER)上に命令がフェッチされ、命令レジスタ(IWR0/1/2)に命令がロードされる。ロードされた各命令は、Dサイクルで解読され、マイクロプログラムを使用する命令であればマイクロプログラム命令を保持するラッチ(IWRM)に命令をロードし、図17のDOPCにオペコードを送る。
【0032】
また、マイクロプログラムを起動するための制御記憶アドレスレジスタ(CSAR)に命令のオペコードを送り、制御記憶部(MCS)からマイクロプログラム制御情報をDTAGへ次々と読み出す。Dサイクルにおいて命令を解読した時、その命令に関する情報がコミット・ステート・エントリ(CSE)に、アドレス生成に関する情報がRSAに、演算に関する情報がRSEにそれぞれ登録される(図16)。
【0033】
RSAからは、Aサイクルにおいて、そのエントリ情報を基にオペランド要求をキャッシュに送り、Ps,Ts,Bs,Rsサイクルとシフトして、オペランドデータをLRにロードする。Rsサイクルでは、オペランドデータの読み出しが完了したことを示すFCH−COMP信号(完了報告信号)がCSEに返される。
【0034】
RSEは、エントリ情報が登録されるとそのエントリ情報を基に演算実行要求がE−UNITに出され、Pe,Be,Xeサイクルとシフトし、Xeサイクルにおいて演算を実行する。また、演算実行がXeサイクルで完了した時、EU−COMP(完了報告信号)がCSEに返される。
CSEは、各機能ユニット(S−UNIT,E−UNIT)からの完了報告信号(FCH−COMP,EU−COMP)を待つことによって、各機能の処理が完了したことを認識し、その命令又は1フローに必要な全ての処理の完了報告があるとUサイクルにおいて命令実行が完了すると判断した信号(COMMIT−COMP)を出す。
【0035】
図17のMCSから読み出されたマイクロプログラム制御情報は、オペコードを一緒にDTAG,ATAG,TTAGとシフトさせ、各サイクル(Dm,Am,Tmr)をマイクロプログラムによって制御する。Tmrのサイクルでは、リザベーションステーションマイクロ(RSM)にエントリ情報(オペコード、マイクロプログラム制御情報)が登録され、登録されたエントリ情報は、Bmr,Xmr,Umrサイクルの制御に使用され、登録された順番にエントリ情報は開放される。MDBはマイクロプログラムによって読み出された演算結果を一時的に保持するバッファで、RSMの各エントリに対応している。
【0036】
Bmr,Xmr,Umrサイクルの制御において、演算ユニットのPeステートからBeステートへのリリースタイミングで同期を取ったRSMのエントリ番号(RSM−ID)をBm,Xm,Umとシフトさせ、任意のステートでRSMからマイクロプログラム制御情報を取り出すことにより、各ステート(Bmr,Xmr,Umr)を制御している。そして、命令の実行に必要な全ての完了報告が各機能ユニットからCSEに送られると、命令実行が完了すると判断した信号(COMMIT−COMP)が出て、RSMからエントリ情報がWTAGへロードされ、Wmサイクルの制御が可能となる。
【0037】
以上説明したように、処理待ちのスタックを設けた命令実行処理方式は、従来のパイプライン処理方式によるマイクロプログラム処理と同様に、各ステートをDm,Am,Tmr,Bmr,Xmr,Umr,Wmとして、マイクロプログラムによる制御を可能としている。
本発明においては、上記の命令実行処理方式の変更に伴い、マイクロプログラムを使用した再命令読み出しにおいて、ハードウェアの削減をしつつ、新たな再命令読み出し方法の確立と、情報処理装置における恒久的な問題として再命令読み出しの高速化を実現する。
【0038】
次に、上記の図14〜図17の回路の動作について、図18〜図20のタイムチャートと、図21〜図33のハードウェアの構成図を用いて、再命令の種類ごとに詳細に説明をする。再命令の種類として、マイクロプログラムによる基本的な再命令読み出しを行う例、後続命令アドレスを生成し、再命令読み出しを行う例、割り込み処理においてステートに影響された再命令読み出しを行う例について説明する。
【0039】
(基本的な再命令読み出しの例)
基本的な再命令読み出し処理は、LPSW命令で行われる。図18〜図20のタイムチャートの内、図18が本例の処理を示す。
LPSW命令は、図1の手順に従って、時系列に再命令読み出し処理が実行される。まず、図1のステップS1のマイクロプログラムの起動は、図15において、キャッシュから命令バッファ(IBUFFER)上に命令がフェッチされ、命令レジスタ(IWR0/1/2)に命令がロードされる。ロードされた各命令はDサイクルで解読され、マイクロプログラム命令であれば、マイクロプログラム命令を保持するラッチ(IWRM)に命令をロードし、図17のDOPCにオペコードを送る。
【0040】
また、マイクロプログラムを起動するための制御記憶アドレスレジスタ(CSAR)に命令のオペコードを送り、制御記憶部(MCS)からマイクロプログラム制御情報(PLHC,EMIT等)をDTAGへ次々と読み出し、オペコードと一緒にDm,Am,Tmr,Bmr,Xmr,Umr,Wmとシフトさせ、各サイクルの処理を行う。
【0041】
図1のステップS2の命令読み出し停止は、図18のFC1(ファンクションカウンタ1)で行われる。図17のMCSから読み出されたFC1のマイクロプログラム制御情報(PLHC=3,EMIT=3)がDmサイクルからWmサイクルまでシフトされる。この時、DmサイクルのDTAGからマイクロプログラム制御情報(PLHC=3,EMIT=3)を解読し、D−μ−HALT−IFCH信号を生成する。
【0042】
生成されたD−μ−HALT−IFCH信号は、図15の命令読み出し制御部に送られ、図23のHALT−IFCH−TGRラッチをオンし、図24のENB−PROCESS−IFCHラッチをオフし、図15の(A)IF−REQUEST−VALID信号が出ないことによって命令読み出し停止を行い、また、図15の(B):CLEAR−IFCH−ALL信号が命令読み出し制御からIBUFFERの状態と命令読み出しデータの位置を示すNSI−COUNTERに送られることで命令バッファの初期化を行う。
【0043】
図1のステップS3の命令読み出しアドレス設定は、図18のFC0,FC1で行われる。図17のMCSからFC0のマイクロプログラム制御情報、FC1のマイクロプログラム制御情報が次々と読み出され、DmサイクルからWmサイクルまでシフトされる。この時、図17のAmサイクルにおいて、FC0,FC1とA−CONTROLによりオペランドフェッチが出され、まず、FC0において、WmサイクルのWTAGからはマイクロプログラム制御情報を解読し、W−CONTROL信号が生成され、図16のEU−RR(結果レジスタ)からMDBを経由し、W−CONTROL信号により、その出力をPSW−HIGH(PROGRAM STATUS WORD HIGH側)に書き込ませる。
【0044】
また、続けてFC1においてWmサイクルのWTAGからはマイクロプログラム制御情報を解読し、W−CONTROL信号が生成され、図16のEU−RRからMDBを経由し、W−CONTROL信号により、その出力をPSW−LOW(PROGRAM STATUS WORD LOW側)に書き込ませる。そして、PSWの変更後、PSWIARは、図15の再命令アドレス生成部に送られ、再命令アドレスを保持する。図29のIARXはPSWIARが入り、また、IARX−ILCはIARX−NSI−TGRがオフであるため、「0」が入り、再命令読み出しアドレスは、図29〜図31からPSWIARを示す。
【0045】
図1のステップS4の読み出し開始は、図18のFC2で行われる。図17のMCSから読み出されたFC2のマイクロプログラム制御情報(PLHC=3,EMIT=0)がDmサイクルからWmサイクルまでシフトされる。この時、WmサイクルのWTAGからマイクロプログラム制御情報(PLHC=3,EMIT=0)を解読し、W−μ−RELEASE−IFCH信号を生成する。生成されたW−μ−RELEASE−IFCH信号は、図15の命令読み出し制御部に送られ、W−μ−RELEASE−IFCH信号により、図23のHALT−IFCH−TGRラッチをオフすることで、図24のENB−PROCESS−IFCHラッチがつき、命令読み出しが可能となって、図15の命令読み出し制御部から送られる信号(A):+IF−REQUEST−VALID信号によって命令読み出し開始を行う。
【0046】
以上説明したようにマイクロプログラムが処理されることによって、図1の手順を満足し、図18のような再命令読み出しが行われる。
図18の再命令読み出しの全体動作について説明する。
まず、FC1のD−μ−HALT−IFCH信号(又は、μ−SHORT−RE−IFCH信号)により再命令読み出しする命令以降の命令をIWR−VALIDをオフすることによって無効にし、また、同時にHALT−IFCH−TGR信号をオンする。HALT−IFCH−TGR信号は命令読み出し停止を指示し、ENB−PROCESS−IFCH信号を止め、命令読み出しを停止させる。
【0047】
次いで、CLEAR−IF−PORT−ALL信号をオンし、命令バッファ機構の初期化と各PORT−VALIDのクリアを行い、また、各PORT−VALIDのクリアによってNO−IF−PORT−SEQ−VAL信号が生成され、再命令読み出しアドレスをセレクトする。そして、PSWを変更後、FC2のW−μ−RELEASE−IFCH信号によりHALT−IFCH−TGR信号をオフすることによって、命令読み出し停止解除を指示し、ENB−PROCESS−IFCH信号をオンし、命令読み出し要求(IF−REQUEST−VALID信号)と再命令アドレスがキャッシュへ送出される。
【0048】
(後続命令アドレスを生成し、再命令読み出しを行う例)
後続命令アドレスでの再命令読み出しは、LCTL命令で行われる。図18〜図20のタイムチャートの内、図19が本例の処理を示す。
LCTL命令は、図1の手順に従って再命令読み出しを行う。後続命令アドレスでの再命令読み出しでのステップS1のマイクロプログラム起動、ステップS2の命令読み出し停止、ステップS4の命令読み出し開始は、上述の基本的な再命令読み出しの説明と同様な処理を行う。ただし、ステップS3の命令読み出しアドレス設定のみが異なる。
【0049】
上述の基本的な再命令読み出しと同様に、ステップS1でマイクロプログラムが起動され、ステップS2の命令読み出し停止を図19のFC0によって行う。
図17のMCSから読み出されたFC1のマイクロプログラム制御情報(PLHC=3,EMIT=1)がDmサイクルからWmサイクルまでシフトされる。この時、WmサイクルのWTAGからマイクロプログラム制御情報(PLHC=3,EMIT=0)を解読し、W−μ−IARX−NSI−REQ信号を生成する。生成されたW−μ−IARX−NSI−REQ信号は、再命令アドレス生成部に送られ、図29のIARX−NSI−TGRラッチにセットされる。
【0050】
この時、PSWからのPSWIAR(自命令アドレス)とW−OPCをデコードしたW−ILC(自命令長)は、命令実行中、常に図15の再命令アドレス生成部に送られる。IARX−NSI−TGRラッチがオンすると、IARXはPSWIARが保持され、また、IARX−ILCには、IARX−NSI−TGRラッチがオンしている間、W−ILCがIARX−ILCに入り、再命令アドレスはPSWIARとW−ILCとを加算したアドレス(後続命令アドレス)を算出したことになる。
【0051】
その後、図1のステップS4の命令読み出し開始は、上述の基本的な再命令読み出しの説明と同様な処理を図19のFC2によって行う。
以上説明したようにマイクロプログラムが処理されることによって、図1の手順を満足し、図19のような命令読み出しが行われる。
図19の再命令読み出しの全体動作について説明する。
【0052】
まず、FC0において、D−μ−HALT−IFCH信号により無効な命令のIWR−VALIDをオフし、HALT−IFCH−TGR信号をオンして命令読み出しを停止させ、命令バッファの初期化と各PORT−VALIDをクリアし、再命令読み出しアドレスをセレクトする。FC1のW−μ−IARX−NSI−REQ信号により再命令読み出しアドレスを後続命令アドレス(PSWIAR+ILC)にし、FC2のW−μ−RELEASE−IFCH信号によりHALT−IFCH−TGR信号をオフすることによって命令読み出し停止解除を指示し、ENB−PROCESS−IFCH信号をオンし、命令読み出し要求(IF−REQUEST−VALID信号)と再命令読み出しアドレス(後続命令アドレス)をキャッシュへ送出する。
【0053】
(割り込み処理においてCPUのステートに影響された再命令読み出しを行う例)
図18〜図20のタイムチャートの内、図20が本例の処理を示す。
割り込み処理においてCPUのステートに影響された再命令読み出しも、図1の手順に従い、再命令読み出しを行う。また、CPUのステートに影響された再命令読み出しのステップS1のマイクロプログラム起動、ステップS2の命令読み出し停止、ステップS3の命令読み出しアドレス設定、ステップS4の命令読み出し開始において、上述の基本的な再命令読み出しの説明と同様な処理を行うが、命令読み出し開始をする際に、マイクロプログラムによって命令読み出しが早く開始されるように工夫がされている。
【0054】
上述の基本的な再命令読み出しと同様に、ステップS1でマイクロプログラムが起動され、ステップS2の命令読み出し停止とステップS3の命令読み出しアドレス設定がFC0、ステップS4の命令読み出し開始がFC1で行われる。
その後、図17のMCSから読み出されたFC2のマイクロプログラム制御情報(PLHC=3,EMIT=4)がDmサイクルからWmサイクルまでシフトされる。この時、DmサイクルのDTAGからマイクロプログラム制御情報(PLHC=3,EMIT=4)を解読し、D−μ−SW−PROCESS信号を生成して、図15のプロセス制御部に送る。
【0055】
プロセス制御部では、図33のようにEND−PROCESS−STATEとD−μ−SW−PROCESS信号の論理積(AND)をとった信号により、CPUのステートをEND−PROCESS−STATEからSTART,PROCESS−STATEと遷移させ、図15の(C):PROCESS−STATE信号を命令読み出し制御部に送り、図24のHALT−IFCH−TGR信号がオフになった次のサイクルでENB−PROCESS−IFCHラッチがオンとなり、そのサイクルで図15の(A):IF−REQEST−VALID信号が命令読み出し制御部からキャッシュへ送られ、再命令読み出しが開始される。
【0056】
なお、割り込みのマイクロプログラム処理のような多重フローにおいて再命令読み出し開始を行うと、図34のように、P,T,B,Rサイクルとシフトされ、命令読み出しデータが早期に命令バッファ上に読み出されるケースがある。このようなケースの場合、命令投入は、現命令が実行されて最終フローのDmサイクルが空くまで命令実行制御部に命令投入をしてはいけない。
【0057】
その制御を図17のDmサイクルにおいて、マイクロプログラム命令の最終フローを示す信号(E):MF−LAST−D信号を図15の命令読み出し制御部に送り、図35のように次命令要求信号(F):NSI−REQUEST信号を図15の命令読み出し制御部から各IWRに送ることでIBUFFERから各IWRへの命令投入制御を行っている。
【0058】
以上のように、マイクロプログラムが処理されることにより、図1の手順を満足し、図20のような再命令読み出しが行われる。
図20の再命令読み出しの全体動作について説明する。
まず、FC0において、D−μ−HALT−IFCH信号により無効な命令のIWR−VALIDをオフし、HALT−IFCH−TGR信号をオンして命令読み出しを停止させ、命令バッファの初期化と各PORT−VALIDをクリアし、再命令読み出しアドレスをセレクトする。FC2のD−μ−SW−PROCESS信号によりEND−PROCESS−STATEからSTART−STATEを経由してPROCESS−STATEにステート遷移させて命令読み出しが可能な状態にし、FC1のW−μ−RELEASE−IFCH信号によりHALT−IFCH−TGR信号をオフすることによって、命令読み出し停止解除を指示し、ENB−PROCESS−IFCH信号をオンし、命令読み出し要求(IF−REQUEST−VALID信号)と再命令読み出しアドレスをキャッシュへ送出する。
【0059】
図21〜33、35の、命令処理回路におけるハードウェアの構成について更に説明をする。
図21、図22は、図15の命令実行制御部におけるD−TAGとW−TAGの詳細実施例である。図21は、D−TAGとW−TAGに含まれるマイクロプログラム制御情報(PLHC,EMIT)を示しており、図22のようにマイクロプログラム制御情報のPLHCとEMITをデコードすることで、再命令読み出し処理に使用される制御信号を生成している。
【0060】
以下に、再命令読み出し処理に使用される制御信号とマイクロプログラム制御情報を示す。
1.D−μ−HALT−IFCH信号(PLHC=3,EMIT=3)
2.W−μ−RELEASE−IFC信号(PLHC=3,EMIT=0)
3.D−μ−SW−PROCESS信号(PLHC=3,EMIT=4)
4.W−μ−IARX−NSI−REQ信号(PLHC=3,EMIT=1)基本的に再命令読み出し処理は、D−μ−HALT−IFCH信号(PLHC=3,EMIT=3)により命令フェッチを停止し、PSWを変更後、W−μ−RELEASE−IFC信号(PLHC=3,EMIT=0)で命令フェッチ停止を解除することで、再命令読み出し処理を実行している。また、D−μ−SW−PROCESS信号(PLHC=3,EMIT=4)は、割り込み処理時の再命令読み出し処理でステート遷移を要求する信号として使用し、W−μ−IARX−NSI−REQ信号(PLHC=3,EMIT=1)は、LCTL命令における後続命令アドレス生成を要求する信号として使用する。
【0061】
また、図21のW−OPCは、Wサイクルのオペコードを示しており、図22でW−OPCをデコードすることによって、後続命令アドレス生成時に使用されるW−ILC(自命令長)を生成している。
図23〜図28は、図15に示す命令読み出し制御部の詳細実施例である。マイクロプログラム制御情報により指示されるD−μ−HALT−IFCH信号(PLHC=3,EMIT=3)は、図23のHALT−IFCH−TGRのラッチをセットし、また、IWR0/1/2上にある命令で、再命令読み出し処理を実行するマイクロプログラム命令以降に存在する命令を無効にするために、図28のμ−SHORT−RE−IFCH信号(=D−μ−HALT−IFCH信号)によりIWR1−VALIDとIWR2−VALID又はIWR2−VALIDのラッチをオフする。
【0062】
D−μ−HALT−IFCH信号(PLHC=3,EMIT=3)によりセットされた図23のHALT−IFCH−TGR信号は、命令読み出し停止をする信号である。HALT−IFCH−TGR信号は図24の命令読み出しが可能な状態を示すENB−PROCESS−IFCHのラッチをオフし、命令読み出し要求(IF−REQUEST−VALID)を停止させ、次に図23のCLEAR−IF−PORT−ALL信号により図25〜図27の命令バッファの状態と命令フェッチデータの位置を示すNSI−COUNTERと図24の命令フェッチパイプライン(3系統:A/B/C)の有効性を示すPORT−VALID A/B/Cをクリアして命令フェッチの初期化を行う。
【0063】
また、クリアされたPORT−VALID A/B/CによってNO−IF−PORT−SEQ−VALID信号を生成し、図24、図32のように命令読み出し要求(IF−REQUEST−VALID)と再命令読み出しアドレスのセレクトを行っている。また、命令フェッチを停止した時、既に命令フェッチのリクエストが出されていることによって各IWRのVALIDラッチが余計にセットされるのを防ぐために、INH−E−VALID信号(=HALT−IFCH−TGR信号)で、図28の各IWR−VALIDラッチにセットする信号を抑える。
【0064】
そして、PSWを更新後、マイクロプログラム制御情報により指示されるW−μ−RELEASE−IFC信号(PLHC=3,EMIT=0)によって、図23のHALT−IFCH−TGRのラッチをリセットし、命令読み出し停止を解除することによって命令読み出しを開始し、再命令読み出し処理を可能とする。
【0065】
また、図35のNSI−REQUEST信号は、再命令読み出し処理時の命令投入制御を行う信号である。各IWRの命令が有効であることを示す信号(IWR0−VALID,IWR1−VALID,IWR2−VALID)と各IWRの命令が多重フローの命令であることを示す信号(D0−MF−TGR,D1−MF−TGR,D2−MF−TGR)と実行しているマイクロプログラム命令のDmサイクルにおける最終フローを示す信号(MF−LAST−D)とDmサイクルのリリース信号(Dm−MF−REL)によって生成される。
【0066】
図29〜図32は、再命令読み出しアドレス生成部の詳細実施例を示す。
図29〜図31は、再命令読み出しアドレスの生成回路を示す。通常、再命令読み出しするアドレスは、PSWIARの値であるが、LCTL命令時の再命令読み出し処理のように後続命令アドレスで再命令読み出し処理するケースがあるため、図29〜図31のようにIARX(自命令アドレス)とILC(自命令長)と加算器を設け、W−μ−IARX−NSI−REQ信号(PLHC=3,EMIT=0)により制御されるIARX−NSI−TGRのラッチによって、再命令読み出しアドレスの選択制御をすることによりPSWIAR(PSWIAR+0レングス)と後続命令アドレス(PSWIAR+ILC)を生成する。
【0067】
IARX−NSI−TGRのラッチがオフの時、再命令読み出しアドレスはPSWIARがそのまま再命令読み出しアドレスとして生成され、IARX−NSI−TGRのラッチがオンの時、再命令読み出しアドレスは、後続命令アドレスを生成する。
図32は、再命令読み出しアドレスのセレクト回路である。図24のPORT−VALID(A/B/C)がクリアされた状態の時、図29〜図31で生成された再命令読み出しアドレスを選択し、命令アドレスを図15のキャッシュへ送出している。
【0068】
図33は、プロセス制御部(図15)の詳細実施例である。
割り込み処理時の再命令読み出し処理はEND−PROCESS−STATEで行われるため、命令読み出しが可能な状態を示すEND−PROCESS−IFCHはオフであり、命令読み出し要求(IF−REQUEST−VALID)は発行されない状態にある。そこで、D−μ−SW−PROCESS信号(PLHC=3,EMIT=4)によって、END−PROCESS−STATEからSTART−STATEを経由してPROCESS−STATEにステート遷移させ命令フェッチを可能な状態とする。
【0069】
図36のタイムチャートを用いて、本発明と従来例とを比較して説明する。
図36は、マイクロプログラム処理で再命令読み出し処理を実行し、命令読み出しを停止させ、本発明と従来技術においてそれぞれ命令読み出し停止解除を行っている状態を示す。
この時、本発明による命令読み出し開始は従来技術による命令読み出し開始より図に示した差分のクロック数だけ早く命令読み出しが可能となり、再命令読み出しアドレスが指す命令を命令実行制御部に早期に命令投入が可能となる。また、本発明において命令読み出し停止解除を指示するフローと最終フローの間にフローが多くあればあるほど、命令読み出しから命令実行パイプラインに命令を投入するまでの命令読み出し処理にかかるクロック数を確保できるため、命令読み出し処理のクロック数が増大するケースの場合でも、確保したクロック数以内で命令フェッチ処理が完了するならば、最終フローのDmサイクルの次のタイミングから早期に命令実行制御部へ命令投入が可能である。
【0070】
【発明の効果】
本発明によれば、命令実行制御を処理待ちのスタックを設けて命令実行処理をし、かつ、マイクロプログラム制御を可能とする命令処理装置とし、再命令読み出しをマイクロプログラムにより制御し、再命令読み出しの高速化を可能とする。
【図面の簡単な説明】
【図1】本発明及び従来例におけるマイクロプログラムを使用した再命令読み出しの手順を示すフローチャート。
【図2】パイプライン処理方式を採用した再命令読み出しの命令処理回路の全体構成と、図3〜図5の回路の接続関係を示す図。
【図3】図2に表示した第1の部分の詳細な構成を示す回路図。
【図4】図2に表示した第2の部分の詳細な構成を示す回路図。
【図5】図2に表示した第3の部分の詳細な構成を示す回路図。
【図6】図2の命令処理回路の第1の動作を示すタイムチャート。
【図7】図2の命令処理回路の第2の動作を示すタイムチャート。
【図8】図2の命令処理回路の第3の動作を示すタイムチャート。
【図9】図2の命令処理回路に使用される第1のハード構成図。
【図10】図2の命令処理回路に使用される第2のハード構成図。
【図11】図2の命令処理回路に使用される第3のハード構成図。
【図12】図2の命令処理回路に使用される第4のハード構成図。
【図13】図2の命令処理回路に使用される第5のハード構成図。
【図14】本発明における、処理待ちのスタックを設けたマイクロプログラム制御を実行する命令処理回路の全体構成と、図15〜図17の回路の接続関係を示す図。
【図15】図14に表示した第1の部分の詳細な構成を示す回路図。
【図16】図14に表示した第2の部分の詳細な構成を示す回路図。
【図17】図14に表示した第3の部分の詳細な構成を示す回路図。
【図18】図14の命令処理回路の第1の動作を示すタイムチャート。
【図19】図14の命令処理回路の第2の動作を示すタイムチャート。
【図20】図14の命令処理回路の第3の動作を示すタイムチャート。
【図21】図14の命令処理回路に使用される第1のハード構成図。
【図22】図14の命令処理回路に使用される第2のハード構成図。
【図23】図14の命令処理回路に使用される第3のハード構成図。
【図24】図14の命令処理回路に使用される第4のハード構成図。
【図25】図14の命令処理回路に使用される第5のハード構成図。
【図26】図14の命令処理回路に使用される第6のハード構成図。
【図27】図14の命令処理回路に使用される第7のハード構成図。
【図28】図14の命令処理回路に使用される第8のハード構成図。
【図29】図14の命令処理回路に使用される第9のハード構成図。
【図30】図14の命令処理回路に使用される第10のハード構成図。
【図31】図14の命令処理回路に使用される第11のハード構成図。
【図32】図14の命令処理回路に使用される第12のハード構成図。
【図33】図14の命令処理回路に使用される第14のハード構成図。
【図34】図20の第3の動作の異なる動作を示すタイムチャート。
【図35】図34の動作に対応して設けられるハード構成図。
【図36】本発明と実施例とを比較するタイムチャート。
【符号の説明】
CSAR…制御記憶アドレスレジスタ
CSE…コミット・ステート・エントリ
D,A,T,B,T…サイクル
FC…フローカウンタ
IBUFFER…命令バッファ
IWR…命令レジスタ
IWRM…ラッチ
MCS…制御記憶部
RSM…リザベーションステーションマイクロ
S−UNIT,E−UNIT…各機能ユニット

Claims (1)

  1. キャッシュメモリに記憶された命令を読み出して実行し、一連の命令実行中において、キャッシュメモリに記憶されている別の一連の命令列の読み出しを行う再命令読み出しが行われるパイプライン命令実行処理部と、
    マイクロプログラム格納部からマイクロプログラムを読み出して、前記マイクロプログラム格納部から読み出されたマイクロプログラムにより前記パイプライン命令実行処理部を制御するパイプライン命令実行制御部と
    前記命令実行制御部に設けられ、前記マイクロプログラムの処理待ちを行うスタックと、を有し
    前記パイプライン命令実行処理部において前記再命令読み出しが行われる場合に、
    前記パイプライン命令実行制御部における特定のマイクロプログラムのデコード結果に基づいて、前記パイプライン命令実行制御部により前記パイプライン命令実行処理部における後続命令に対する読み出し要求の停止を行い、
    前記パイプライン命令実行制御部による前記別の一連の命令列の読み出しアドレスの設定後、前記特定のマイクロプログラムに続くマイクロプログラムのうち前記処理待ちを行うスタックに保持された最終のマイクロプログラムを除くマイクロプログラムのデコード結果に基づいて、前記後続命令に対する読み出し要求の停止の解除を行うこと、
    を特徴とする命令処理装置。
JP35949898A 1998-12-17 1998-12-17 命令処理装置 Expired - Fee Related JP3850156B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP35949898A JP3850156B2 (ja) 1998-12-17 1998-12-17 命令処理装置
US09/461,424 US6754814B1 (en) 1998-12-17 1999-12-16 Instruction processing apparatus using a microprogram that implements a re-reading operation by controlling early loading of instructions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP35949898A JP3850156B2 (ja) 1998-12-17 1998-12-17 命令処理装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2006148727A Division JP3933679B2 (ja) 2006-05-29 2006-05-29 命令処理装置

Publications (2)

Publication Number Publication Date
JP2000181701A JP2000181701A (ja) 2000-06-30
JP3850156B2 true JP3850156B2 (ja) 2006-11-29

Family

ID=18464818

Family Applications (1)

Application Number Title Priority Date Filing Date
JP35949898A Expired - Fee Related JP3850156B2 (ja) 1998-12-17 1998-12-17 命令処理装置

Country Status (2)

Country Link
US (1) US6754814B1 (ja)
JP (1) JP3850156B2 (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6047615B2 (ja) 1980-06-19 1985-10-22 富士通株式会社 逐次化命令実行制御方式
US4635194A (en) 1983-05-02 1987-01-06 International Business Machines Corporation Instruction buffer bypass apparatus
WO1985000453A1 (en) * 1983-07-11 1985-01-31 Prime Computer, Inc. Data processing system
JPS60171538A (ja) 1984-02-17 1985-09-05 Hitachi Ltd 命令の先取り制御方式
US5473767A (en) * 1992-11-03 1995-12-05 Intel Corporation Method and apparatus for asynchronously stopping the clock in a processor
US5724566A (en) * 1994-01-11 1998-03-03 Texas Instruments Incorporated Pipelined data processing including interrupts

Also Published As

Publication number Publication date
JP2000181701A (ja) 2000-06-30
US6754814B1 (en) 2004-06-22

Similar Documents

Publication Publication Date Title
US5465376A (en) Microprocessor, coprocessor and data processing system using them
JP5209933B2 (ja) データ処理装置
JPH03116233A (ja) データプロセッサの命令処理システム
US6058471A (en) Data processing system capable of executing groups of instructions in parallel
JPH11154144A (ja) プロセッサをコプロセッサにインタフェースするための方法および装置
JP2008530714A5 (ja)
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
JPH03116236A (ja) 例外処理方法及び例外処理装置
JP2018005488A (ja) 演算処理装置及び演算処理装置の制御方法
JP2004171573A (ja) 新規な分割命令トランズアクションモデルを使用して構築したコプロセッサ拡張アーキテクチャ
EP1974254B1 (en) Early conditional selection of an operand
US5461715A (en) Data processor capable of execution of plural instructions in parallel
US6115730A (en) Reloadable floating point unit
US6289428B1 (en) Superscaler processor and method for efficiently recovering from misaligned data addresses
US6609191B1 (en) Method and apparatus for speculative microinstruction pairing
JP3850156B2 (ja) 命令処理装置
JP3933679B2 (ja) 命令処理装置
US5212779A (en) System for guarantee reexecution after interruption by conditionally used store buffer if microinstruction being executed is a memory write and last microinstruction
US6789185B1 (en) Instruction control apparatus and method using micro program
US5745723A (en) Data processing system capable of execution of plural instructions in parallel
JPS61110238A (ja) マイクロプログラム式並列プロセツサ
JP2894438B2 (ja) パイプライン処理装置
JP2002182902A (ja) メモリデータアクセス構造およびその方法
JPH06131180A (ja) 命令処理方式および命令処理装置
JP3568737B2 (ja) 条件実行命令を備えるマイクロプロセッサ

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040105

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040127

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040329

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20040402

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20040528

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060313

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060529

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060829

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: 20090908

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100908

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100908

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110908

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120908

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120908

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130908

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees