JP3638505B2 - シミュレーション装置及びマイクロプロセッサ用ソフトウェアシミュレーション方法 - Google Patents

シミュレーション装置及びマイクロプロセッサ用ソフトウェアシミュレーション方法 Download PDF

Info

Publication number
JP3638505B2
JP3638505B2 JP2000196637A JP2000196637A JP3638505B2 JP 3638505 B2 JP3638505 B2 JP 3638505B2 JP 2000196637 A JP2000196637 A JP 2000196637A JP 2000196637 A JP2000196637 A JP 2000196637A JP 3638505 B2 JP3638505 B2 JP 3638505B2
Authority
JP
Japan
Prior art keywords
instruction
simulation
peripheral device
change point
unit
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
JP2000196637A
Other languages
English (en)
Other versions
JP2002014840A (ja
Inventor
裕康 大賀
Original Assignee
Necマイクロシステム株式会社
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 Necマイクロシステム株式会社 filed Critical Necマイクロシステム株式会社
Priority to JP2000196637A priority Critical patent/JP3638505B2/ja
Publication of JP2002014840A publication Critical patent/JP2002014840A/ja
Application granted granted Critical
Publication of JP3638505B2 publication Critical patent/JP3638505B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、マイクロプロセッサ用ソフトウェアシミュレーション技術に係り、特に1命令毎に周辺デバイスのシミュレーションを呼び出さなくても周辺デバイスの割り込みを正確にシミュレーションするとともに、シミュレーション速度を向上できるシミュレーション装置及びマイクロプロセッサ用ソフトウェアシミュレーション方法に関する。
【0002】
【従来の技術】
マイクロプロセッサ用ソフトウェアシミュレーションを実行する従来のシミュレーション装置の一例が、特開平8−328905号公報に記載されている。
【0003】
図7は、上記従来技術のシミュレーション装置を説明するための機能ブロック図である。図7において、101はシミュレーション装置、102はコンソール、103は入力ファイル、104はファイル入力部、105は出力部、106は入力部、107は制御部、108は実行命令カウント部、109はクロック数カウント部、110は周辺シミュレーション実行制御部、111はプログラムメモリ部、112は命令フェッチ部、113は命令解析部、114は命令実行部、115は操作命令実行部、116は周辺シミュレーション部、117は割り込み制御部、118はPSW/PC管理部(Program Status Word:プログラム状態語/Program Counter管理部)を示している。
【0004】
図7に示すように、従来のシミュレーション装置101は、シミュレーションの起動指示情報をコンソール102から入力する入力部106と、命令を入力ファイル103から入力する入力するファイル入力部104と、入力された命令を保持するプログラムメモリ部111と、当該プログラムメモリ部111より命令を読み出す命令フェッチ部112と、当該読み出された命令を受けて命令解析する命令解析部113と、当該命令解析部113の命令解析結果による命令を実行する命令実行部114と、周辺デバイスのシミュレーションを行う周辺シミュレーション部116と、割り込みシミュレーションを行う割り込み制御部117と、PSW(Program Status Word)及びPC(Program Counter)の値を管理するPSW/PC管理部118と、周辺デバイスのシミュレーションに関係する命令を指示入力に従ってかつクロック信号に同期して実行する操作命令実行部115と、実行された命令数を計数する実行命令カウント部108と、命令実行部114の動作により経過したクロック数を記憶するクロック数カウント部109と、当該実行命令カウント部108の計数値が閾値を越えた時に当該クロック数カウント部109に記憶されたクロック数分周辺デバイスのシミュレーションを実行する周辺シミュレーション実行制御部110と、実行命令カウント部108、クロック数カウント部109及び周辺シミュレーション実行制御部110を備え出力部105ならびに入力部106を介してコンソール2に対するデータの入出力を行う制御部107を中心にして構成されている。
【0005】
次にシミュレーション装置101の動作について説明する。図8は、従来のシミュレーション装置101の動作を説明するためのフローチャートである。
【0006】
まず、処理開始後にプログラムをダウンロードしてプログラムメモリ部111に記憶する。コンソール102(ユーザ)から入力部106にシミュレーション実行の要求があると、制御部107が命令フェッチ部112を制御し、命令フェッチ部112はプログラムメモリ部111からまず1命令を取り出す。命令解析部113で、命令の解析処理を行い、命令実行部114に処理を移す(ステップS101:命令フェッチ及び解析処理)。
【0007】
命令実行部114では解析した情報を基に命令の実行処理(ステップS102:命令実行処理)を行い、PC(プログラムカウンタ)を更新し(ステップS103:実行命令カウント処理)、処理を制御部107に戻す。命令を実行するたびに命令の数をカウントし、同時に命令のクロック数をクロック数カウント部109に記憶させる(ステップS104:クロック数カウント処理)。
【0008】
続いて、フェッチした命令が割り込み処理終了命令か否かを判定する(ステップS105)。割り込み処理終了命令であった場合(ステップS105のYES)には、PSW/PC復帰処理を実行し(ステップS106)、その後に、フェッチした命令が周辺命令か否かを判定する(ステップS108)。割り込み処理終了命令でない場合(ステップS105のNO)には、PC更新処理を実行し(ステップS107)、その後に、フェッチした命令が周辺関連処理命令か否かを判定する(ステップS108)。
【0009】
フェッチした命令が周辺関連処理命令でない場合(ステップS108のNO)、実行命令カウント数が設定した値より大きいか否かを判定する(ステップS110)。
【0010】
実行した命令が周辺関連処理命令でない場合(ステップS108のNO)であって、カウントした命令数が予め設定していた値に達していない場合(ステップS110のNO、実行命令カウント数が設定した値より小さい場合)、ステップS101にジャンプして制御部107に処理を戻し、次の命令の処理に移る。
【0011】
実行した命令が周辺関連処理命令でなく(ステップS108のNO)、カウントした命令数が予め設定していた値に達した場合(ステップS110のYES:実行命令カウント数が設定した値より大きい場合)、制御部107から周辺シミュレーション部116に処理を移してステップS109の周辺シミュレーション処理を実行し、クロック数カウント部109に記憶していたクロック数分、タイマ/シリアルなどの周辺デバイスのシミュレーションを実行し、タイマ値をカウントしたり、シリアル転送を行ったりする。以後、命令フェッチ〜周辺デバイスのシミュレーション実行の一連の動作を繰り返す。
【0012】
一方、フェッチした命令が周辺関連処理命令である場合(ステップS108のYES)、周辺シミュレーション処理を実行する(ステップS109)。
【0013】
周辺デバイスのシミュレーションの実行で割り込み(タイマのオーバーフロー割り込み、シリアルの転送終了割り込みなど)等の割り込みコントロール処理(ステップS111)を行い、割り込みが発生する場合(ステップS112のYES)は、PSW/PCの退避(ステップS113、PSW/PC退避処理)及びPCへの割り込みハンドラのアドレスの設定をPSW/PC管理部118で行うことで(ステップS114、割り込みベクタ処理)、次の命令の処理で割り込みハンドラ内に記述された命令の処理に移る。
【0014】
一方、割り込みが発生しない場合(ステップS112のNO)は、ステップS101へジャンプする。
【0015】
このように、複数の命令の実行毎に、そのクロック数分周辺デバイスのシミュレーションを実行することにより、1命令実行毎に周辺デバイスのシミュレーションを実行する方法より、周辺デバイスのシミュレーションを呼び出す回数を減少させることができるため、全体のシミュレーション速度を向上させることができた。
【0016】
【発明が解決しようとする課題】
しかしながら、従来技術には、周辺デバイスの割り込みが正確にシミュレーションできない可能性があるという問題点があった。
【0017】
その理由は、ほとんどの周辺デバイスは、設定した条件が成立すると割り込みを発生させるからである。例えば、周辺デバイスがタイマの場合、カウントアップしていったタイマの値が、コンペアレジスタに設定した値と同じになったとき、割り込みを発生させる。このときにカウントアップするタイミングは、命令には依存せず、クロックに依存するため、周辺デバイスのシミュレーションに関係ない命令でもカウントアップの対象になる。ところが、従来のシミュレーション装置101の場合、数命令のうち、最初の方の命令の実行で、ある周辺デバイスの割り込みが発生するクロックに達しても、数命令分実行した後でないと割り込みを起こすことができないため、その分遅延が生じるという問題点があった。
【0018】
さらに詳しく、図9を参照して従来技術で問題が生じるケースを説明する。図9は、従来技術の問題点を説明するためのプログラムの実行上の命令の並びの模式図である。
【0019】
従来のシミュレーション装置101では、図9(A)に示すように、プログラム上の処理の並びがプログラムの実行上の命令の並びであり、いずれも周辺デバイス(図中「周辺」と表記)のシミュレーションに関係のない命令である(第1の仮定)。また、命令[1]を実行した後で周辺デバイスの処理を実行した際に、ある周辺デバイスの割り込み命令(割り込み命令[1]、割り込み命令[2]、割り込み命令[3])が起きた場合、割り込みハンドラの中で3つの命令を処理する(第2の仮定)。また、上記3つの割り込み命令(割り込み命令[1]、割り込み命令[2]、割り込み命令[3])に一度周辺デバイスのシミュレーションを実行する(第3の仮定)。
【0020】
また、従来のシミュレーション装置101においては、1命令毎に周辺デバイスのシミュレーションを実行するシミュレータの動作は、図9(B)のように動作する。すなわち、命令[1]を実行した後で、割り込みハンドラに処理が移り、3つの割り込み命令(割り込み命令[1]、割り込み命令[2]、割り込み命令[3])を実行した後、通常の処理に移り、命令[2]、命令[3]及び命令[4]を実行する(第4の仮定)。
【0021】
しかしながら、従来のシミュレーション装置101においては、図9(C)に示すように、命令[1]、命令[2]及び命令[3]を実行した後に、割り込みハンドラに処理が移り、3つの割り込み命令(割り込み命令[1]、割り込み命令[2]、割り込み命令[3])を実行した後、通常の処理に移り、命令[4]を実行する。このように、従来のシミュレーション装置101は、本来の処理の流れとは異なる処理を行うため、プログラムによっては異常をきたす可能性があるという問題点があった。
【0022】
本発明は斯かる問題点を鑑みてなされたものであり、その目的とするところは、1命令毎に周辺デバイスのシミュレーションを呼び出さなくても周辺デバイスの割り込みを正確にシミュレーションするとともに、シミュレーション速度を向上できるシミュレーション装置及びマイクロプロセッサ用ソフトウェアシミュレーション方法を提供する点にある。
【0023】
【課題を解決するための手段】
この発明の請求項1に記載の発明の要旨は、周辺デバイスの次に起きる変化点までのクロック数を計算して出力する次変化点クロック数取得部と前記周辺デバイスの変化点の情報を保持する変化点情報テーブルを備えた周辺シミュレーション部と、前記次変化点クロック数取得部から出力されたクロック数を記憶する設定クロック数記憶部を備えた制御部を有し、命令実行にかかったクロック数をカウントした値が前記設定クロック数記憶部に記憶している次の変化点までのクロック値に達した時、または前記周辺デバイスのシミュレーションに関係する命令が実行された時にのみ、前記周辺デバイスのシミュレーションを実行することを特徴とするシミュレーション装置に存する。
また、この発明の請求項2に記載の発明の要旨は、前記次変化点クロック数取得部は、前記周辺デバイスの次に起きる変化点として割り込み発生までのクロック数を計算して出力することを特徴とする請求項1に記載のシミュレーション装置に存する。
また、この発明の請求項3に記載の発明の要旨は、前記次変化点クロック数取得部は、前記周辺デバイスの次に起きる変化点として端子への信号出力までのクロック数を計算して出力することを特徴とする請求項1または2に記載のシミュレーション装置に存する。
また、この発明の請求項4に記載の発明の要旨は、次の変化点までのクロック値を前記次変化点クロック数取得部から取得し、前記設定クロック数記憶部に記憶し、命令が実行されるたびに命令実行にかかったクロック数をカウントしていく際に、前記命令実行にかかったクロック数をカウントした値が前記設定クロック数記憶部に記憶している次の変化点までのクロック値に達した時、または実行した命令が周辺デバイスのシミュレーションに関係する命令であった時に、周辺デバイスのシミュレーションを呼び出すことを特徴とする請求項1乃至3のいずれか一項に記載のシミュレーション装置に存する。
また、この発明の請求項5に記載の発明の要旨は、シミュレーションの起動指示情報をコンソールから入力する入力部と、命令を入力ファイルから入力するファイル入力部と、入力された命令を保持するプログラムメモリ部と、前記プログラムメモリ部より命令を読み出す命令フェッチ部と、前記読み出された命令を受けて命令解析する命令解析部と、前記命令解析部の命令解析結果による命令を実行する命令実行部と、前記周辺デバイスのシミュレーションを行う前記周辺シミュレーション部と、割り込みシミュレーションを行う割り込み制御部と、PSW及びPCの値を管理するPSW/PC管理部と、前記周辺デバイスのシミュレーションに関係する命令を指示入力に従ってかつクロック信号に同期して実行する操作命令実行部と、前記命令実行部の動作により経過したクロック数を記憶するクロック数カウント部と、前記周辺デバイスの次に発生する変化点までのクロック数を取得する前記次変化点クロック数取得部と、前記周辺デバイスの変化点情報を保持する前記変化点情報テーブルと、前記次変化点クロック数取得部から得たクロック数を記憶する前記設定クロック数記憶部と、前記クロック数カウント部の計数値が前記設定クロック数記憶部に記憶したクロック値を越えた時に前記クロック数カウント部に記憶されたクロック数分だけ前記周辺デバイスのシミュレーションを実行する周辺シミュレーション実行制御部と、前記クロック数カウント部、前記周辺シミュレーション実行制御部及び前記設定クロック数記憶部を備え出力部ならびに前記入力部を介して前記コンソールに対するデータの入出力を行う制御部を有することを特徴とする請求項1乃至4のいずれか一項に記載のシミュレーション装置に存する。
また、この発明の請求項6に記載の発明の要旨は、前記制御部は、プログラムをコンパイルする際にコンパイラが出力した命令クロック数予測情報を記憶するプログラム命令クロック数予測情報テーブルと、前記周辺デバイスのシミュレーションを呼び出す位置を特定する周辺デバイスのシミュレーション呼び出し位置特定部を有することを特徴とする請求項1乃至5のいずれか一項に記載のシミュレーション装置に存する。
また、この発明の請求項7に記載の発明の要旨は、プログラムがダウンロードされた際にプログラムの前記命令クロック数予測情報を前記プログラム命令クロック数予測情報テーブルに記憶し、プログラム実行が開始された際に前記周辺デバイスのシミュレーション呼び出し位置特定部が前記周辺デバイスのシミュレーションを呼び出す位置を特定することを特徴とする請求項6に記載のシミュレーション装置に存する。
また、この発明の請求項8に記載の発明の要旨は、周辺デバイスの次に起きる変化点までのクロック数を計算して出力する次変化点クロック数取得工程と前記周辺デバイスの変化点の情報を変化点情報テーブルに保持する工程を備えた周辺シミュレーション工程と、前記次変化点クロック数取得工程から出力されたクロック数を記憶する設定クロック数記憶工程を備えた制御工程を有し、命令実行にかかったクロック数をカウントした値が前記設定クロック数記憶工程に記憶している次の変化点までのクロック値に達した時、または前記周辺デバイスのシミュレーションに関係する命令が実行された時にのみ、前記周辺デバイスのシミュレーションを実行することを特徴とするマイクロプロセッサ用ソフトウェアシミュレーション方法に存する。
また、この発明の請求項9に記載の発明の要旨は、前記周辺デバイスの次に起きる変化点として割り込み発生までのクロック数を計算して出力する前記次変化点クロック数取得工程と前記周辺デバイスの変化点の情報を前記変化点情報テーブルに保持する工程を有することを特徴とする請求項8に記載のマイクロプロセッサ用ソフトウェアシミュレーション方法に存する。
また、この発明の請求項10に記載の発明の要旨は、前記周辺デバイスの次に起きる変化点として端子への信号出力までのクロック数を計算して出力する前記次変化点クロック数取得工程と前記周辺デバイスの変化点の情報を前記変化点情報テーブルに保持する工程を有することを特徴とする請求項8または9に記載のマイクロプロセッサ用ソフトウェアシミュレーション方法に存する。
また、この発明の請求項11に記載の発明の要旨は、次の変化点までのクロック値を前記次変化点クロック数取得工程から取得する工程と、前記設定クロック数記憶工程に記憶する工程と、命令が実行されるたびに命令実行にかかったクロック数をカウントしていく際に、前記命令実行にかかったクロック数をカウントした値が前記設定クロック数記憶工程に記憶している次の変化点までのクロック値に達した時、または実行した命令が周辺デバイスのシミュレーションに関係する命令であった時に、周辺デバイスのシミュレーションを呼び出す工程を有することを特徴とする請求項8乃至10のいずれか一項に記載のマイクロプロセッサ用ソフトウェアシミュレーション方法に存する。
また、この発明の請求項12に記載の発明の要旨は、前記制御工程は、プログラムをコンパイルする際にコンパイラが出力した命令クロック数予測情報をプログラム命令クロック数予測情報テーブルに記憶する工程と、前記周辺デバイスのシミュレーションを呼び出す位置を特定する周辺デバイスのシミュレーション呼び出し位置特定工程を有することを特徴とする請求項8乃至11のいずれか一項に記載のマイクロプロセッサ用ソフトウェアシミュレーション方法に存する。
また、この発明の請求項13に記載の発明の要旨は、プログラムがダウンロードされた際にプログラムの前記命令クロック数予測情報を前記プログラム命令クロック数予測情報テーブルに記憶する工程と、プログラム実行が開始された際に前記周辺デバイスのシミュレーション呼び出し位置特定工程が前記周辺デバイスのシミュレーションを呼び出す位置を特定する工程を有することを特徴とする請求項12に記載のマイクロプロセッサ用ソフトウェアシミュレーション方法に存する。
【0024】
【発明の実施の形態】
本発明は、周辺デバイスの次に起きる変化点(割り込み発生、端子への信号出力など)までのクロック数を計算して出力する次変化点クロック数取得部と、各周辺デバイス(不図示)の変化点の情報を保持する変化点情報テーブルを周辺シミュレーション部に設けるとともに、次変化点クロック数取得部から出力されたクロック数を記憶する設定クロック数記憶部を制御部に設け、以下の条件(第1の条件、第2の条件)のいずれかを満足したときにのみ、周辺デバイスのシミュレーションを実行する点に特徴を有している。
【0025】
第1の条件:命令実行にかかったクロック数をカウントしていき、カウントした値が設定クロック数記憶部に記憶している次の変化点までのクロック値に達した時。
【0026】
第2の条件:周辺デバイスのシミュレーションに関係する命令が実行された時。
【0027】
上記条件に従って、周辺デバイスのシミュレーションを実行し、必要な間隔で周辺デバイスのシミュレーションを呼び出すことにより、最小回数で周辺デバイスのシミュレーションの呼び出しが可能になり、シミュレーション速度を向上できるようになるといった効果を奏する。
【0028】
シミュレーション装置では、次の変化点までのクロック値を次変化点クロック数取得部から取得し、設定クロック数記憶部に記憶する。命令が実行されるたびに命令実行にかかったクロック数をカウントしていき、カウントした値が設定クロック数記憶部に記憶している次の変化点までのクロック値に達した時、または実行した命令が周辺デバイスのシミュレーションに関係する命令であった時に、周辺デバイスのシミュレーションを呼び出す。
【0029】
このようにして、周辺デバイスのシミュレーションを呼び出す回数を減らすことにより、シミュレーション速度を向上できるようになるといった効果を奏する。以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【0030】
(第1の実施の形態)
図1は、本発明の第1の実施の形態に係るシミュレーション装置1を説明するための機能ブロック図である。図1において、1は本実施の形態のシミュレーション装置、2はコンソール、3は入力ファイル、4はファイル入力部、5は出力部、6は入力部、7は制御部、9はクロック数カウント部、10は周辺シミュレーション実行制御部、11はプログラムメモリ部、12は命令フェッチ部、13は命令解析部、14は命令実行部、15は操作命令実行部、16は周辺シミュレーション部、17は割り込み制御部、18はPSW/PC管理部、19は次変化点クロック数取得部、20は変化点情報テーブル、21は設定クロック数記憶部を示している。
【0031】
図1を参照すると、本本実施の形態のシミュレーション装置1は、シミュレーションの起動指示情報をコンソール2(ユーザ)から入力する入力部6と、命令を入力ファイル3から入力するファイル入力部4と、入力された命令を保持するプログラムメモリ部11と、当該プログラムメモリ部11より命令を読み出す命令フェッチ部12と、当該読み出された命令を受けて命令解析する命令解析部13と、当該命令解析部13の命令解析結果による命令を実行する命令実行部14と、各周辺デバイス(不図示)のシミュレーションを行う周辺シミュレーション部16と、割り込みシミュレーションを行う割り込み制御部17と、PSW(Program Status Word)及びPC(Program Counter)の値を管理するPSW/PC管理部18と、周辺デバイスのシミュレーションに関係する命令を指示入力に従ってクロック信号に同期して実行する操作命令実行部15と、命令実行部14の動作により経過したクロック数を記憶するクロック数カウント部9と、各周辺デバイス(不図示)の次に発生する変化点までのクロック数を取得する次変化点クロック数取得部19と、各周辺デバイス(不図示)の変化点情報を保持する変化点情報テーブル20と、次変化点クロック数取得部19から得たクロック数を記憶する設定クロック数記憶部21と、クロック数カウント部9の計数値が設定クロック数記憶部21に記憶したクロック値を越えた時に当該クロック数カウント部9に記憶されたクロック数分周辺デバイスのシミュレーションを実行する周辺シミュレーション実行制御部10と、クロック数カウント部9、周辺シミュレーション実行制御部10及び設定クロック数記憶部21を備え出力部5ならびに入力部6を介してコンソール2に対するデータの入出力を行う制御部7を中心にして構成されている。
【0032】
次にシミュレーション装置1の動作について説明する。シミュレーション装置1は、周辺シミュレーション部16に、周辺デバイスの次に起きる変化点(割り込み発生、端子への信号出力など)までのクロック数を計算して出力する次変化点クロック数取得部19と、各周辺デバイス(不図示)の変化点の情報を保持する変化点情報テーブル20を設け、さらに、制御部7に、次変化点クロック数取得部19から出力されたクロック数を記憶する設定クロック数記憶部21を設け、以下の条件(第1の条件、第2の条件)のいずれかを満足したときにのみ、周辺デバイスのシミュレーションを実行する点に特徴を有している。
【0033】
第1の条件:命令実行にかかったクロック数をカウントしていき、カウントした値が設定クロック数記憶部21に記憶している次の変化点までのクロック値に達した時。
【0034】
第2の条件:周辺デバイスのシミュレーションに関係する命令が実行された時。
【0035】
上記条件に従って、周辺デバイスのシミュレーションを実行し、必要な間隔で周辺デバイスのシミュレーションを呼び出すことにより、最小回数で周辺デバイスのシミュレーションの呼び出しが可能になり、シミュレーション速度を向上できるようになるといった効果を奏する。
【0036】
シミュレーション装置1では、図1に示すように、次の変化点までのクロック値を次変化点クロック数取得部19から取得し、設定クロック数記憶部21に記憶する。命令が実行されるたびに命令実行にかかったクロック数をカウントしていき、カウントした値が設定クロック数記憶部21に記憶している次の変化点までのクロック値に達した時、または実行した命令が周辺デバイスのシミュレーションに関係する命令であった時に、周辺デバイスのシミュレーションを呼び出す。
【0037】
このようにして、周辺デバイスのシミュレーションを呼び出す回数を減らすことにより、シミュレーション速度を向上できるようになるといった効果を奏する。
【0038】
次に、図2のフローチャートを参照して本実施の形態の全体の動作(マイクロプロセッサ用ソフトウェアシミュレーション方法)について詳細に説明する。図2は、本発明の第1の実施の形態に係るマイクロプロセッサ用ソフトウェアシミュレーション方法を説明するためのフローチャートである。
【0039】
まず、プログラム実行を開始した後、次の変化点までのクロック取得処理に移る(ステップS15、次変化点クロック数取得処理)。ここではまず、制御部7が周辺シミュレーション部16の次変化点クロック数取得部19にクロック数を要求する。
【0040】
次変化点クロック数取得部19では、各周辺デバイス(不図示)から次の変化点までのクロック数を取得しようとする(ただし、全ての周辺デバイスが起動していない場合は、各周辺デバイス(不図示)は規定してある最大値を返す)。
【0041】
次変化点クロック数取得部19は上記で取得した値を設定クロック数記憶部21に設定する。
【0042】
次に、命令フェッチ部12がプログラムメモリ部11から命令を取り出し、命令解析部13が命令の解析を行い(ステップS1:命令フェッチ及び解析処理)、命令実行部14が命令の実行処理を行い(ステップS2:命令実行処理)、制御部7に処理を移して、クロック数カウント部9が命令の実行クロック数をカウントする(ステップS4:クロック数カウント処理)。
【0043】
ステップS2の命令実行処理で実行した命令が割り込み処理終了命令か否かを判定する(ステップS5:割り込み処理終了命令の判定)。
【0044】
ステップS2の命令実行処理で実行した命令が割り込み処理終了命令の場合(ステップS5のYES)はPSW/PCを復帰させる処理(ステップS6:PSW/PC復帰処理)を行う(ステップS6)。
【0045】
一方、ステップS2の命令実行処理で実行した命令が割り込み処理終了命令でない場合(ステップS5のNO)は、PCを更新する(ステップS7:PC更新処理)。
【0046】
次に、ステップS2の命令実行処理で実行した命令が周辺関連処理命令か否かを判定する(ステップS8)。
【0047】
ステップS2の命令実行処理で実行した命令が周辺関連処理命令でない場合(ステップS8のNO)、命令の実行にかかったクロック数をカウントし、カウントしたクロック数が設定した値より大きいか否かの判定を行う。カウントしたクロック数が設定クロック数記憶部21に設定された値未満ならば(ステップS16のNO)、次の命令の取り出しと解析処理(ステップS1(命令フェッチ及び解析処理))に戻る。
【0048】
一方、カウントしたクロック数が設定した値に達していた場合(ステップS16のYES)と、ステップS2の命令実行処理で実行した命令が周辺関連処理命令であれば(ステップS8のYES)、周辺シミュレーション部16が周辺シミュレーションの処理を行う(ステップS9:周辺シミュレーション処理)。
【0049】
周辺シミュレーションの処理(ステップS9:周辺シミュレーション処理)後に、割り込みコントロール処理(ステップS11)を行い、その後に、割り込みが発生しているか否かを判定する(ステップS12)。
【0050】
割り込みが発生しているか否かを判定した結果(ステップS12)、割り込みが発生する場合(ステップS12のYES)は、PSW/PC管理部18がPSW/PCを退避させ(ステップS13:PSW/PC退避処理)、割り込みベクタの処理を行う(ステップS14:割り込みベクタ処理)。一方、割り込みが発生しているか否かを判定した結果(ステップS12)、割り込みが発生していない場合(ステップS12のNO)は、ステップS15(次変化点クロック数取得処理)に復帰する。
【0051】
この後、次の命令の処理に移るが、周辺シミュレーションの処理を行ったので、周辺デバイスの次の変化点までのクロック数取得処理(ステップS15、次変化点クロック数取得処理)を行い、取得したクロック数の値を設定クロック数記憶部21に設定する。
【0052】
次に、図3を参照して具体例を用いて説明する。図3は、ある時点からの各周辺デバイス(不図示)の変化点の位置を表した模式図である。図3においては、時間軸は下(紙面下方)に伸びており、各周辺デバイス(不図示)の変化点には黒丸(●)をマークしている。図3の右端の数字(上から順に、600,1000,500,800,700:周辺処理プログラムが実行される間隔(クロック数))は、周辺デバイスのシミュレーションが実行される間隔(クロック数)である。
【0053】
シミュレーションが実行されると、まず、次変化点クロック数取得部19からクロック数として600が設定され、当該600クロック分だけ命令を実行した後に、周辺デバイスのシミュレーションを実行する。
【0054】
当該周辺デバイスのシミュレーションを実行した後に、次変化点クロック数取得部19はクロック数として1000を制御部7に返却し、設定クロック数を1000にする。
【0055】
次に、1000クロック分だけ命令を実行し、その後、周辺デバイスのシミュレーションを実行する。
【0056】
当該周辺デバイスのシミュレーションを実行した後に、次変化点クロック数取得部19は500を制御部7に返却し、設定クロック数を500にする。
【0057】
その後は、同様の処理を繰り返す。クロック数が図3中の4000クロックに到達した時点では、周辺デバイスのシミュレーションの呼び出しは5回で済むことになる。
【0058】
仮に、従来技術で3命令に一度周辺デバイスのシミュレーションを実行すると設定し、3命令の実行クロックの平均が10クロックとした場合、4000クロックまでに400回呼び出されるので、本実施の形態での呼び出し回数は従来技術の80分の1で済むことになる。
【0059】
図4は、周辺デバイスのシミュレーションが実行される間隔を説明するための動作図である。本実施の形態では、図3の具体例に示す周辺デバイス(図中周辺と表記)のシミュレーションが実行される間隔は、図4のように、数10、数100命令(命令[1]…命令[100]→命令[101]…命令[310]→命令[311]…命令[405]→命令[406]…)毎になりうる。このため、実際の周辺シミュレーション部16の次の変化点までの間隔はまちまちではあるが、平均しても数命令分よりも多くなるため、周辺デバイスのシミュレーションを呼び出す回数を大幅に減少させることになる。
【0060】
以上説明したように第1の実施の形態によれば、以下に掲げる効果を奏する。まず第1の効果は、1命令毎に周辺デバイスのシミュレーションを呼び出さなくても、周辺デバイスの割り込みが正確にシミュレーションできることである。その理由は、周辺デバイスの割り込みが発生するまでのクロック数を計算して、そのクロック数分命令を実行した後に、周辺デバイスのシミュレーションを呼び出すため、周辺デバイスの割り込みの発生タイミングで、周辺シミュレーションを実行できるためである。
【0061】
そして第2の効果は、シミュレーション速度を向上できることである。その理由は、平均すると数10から数100命令に一度しか周辺デバイスのシミュレーションを呼び出さないので、従来技術に比べて呼び出し回数を大幅に減少でき、関数の呼び出しにかかる時間を短縮できるためである。
【0062】
(第2の実施の形態)
次に、本発明の第2の実施の形態について図面を参照して詳細に説明する。なお、第1の実施の形態において既に記述したものと同一の部分については、同一符号を付し、重複した説明は省略する。
【0063】
図5は、本発明の第2の実施の形態に係るシミュレーション装置1を説明するための機能ブロック図である。図5において、22はプログラム命令クロック数予測情報テーブル、23は周辺デバイスのシミュレーション呼び出し位置特定部を示している。
【0064】
図5を参照すると、本実施の形態のシミュレーション装置1は、制御部7にプログラム命令クロック数予測情報テーブル22と周辺デバイスのシミュレーション呼び出し位置特定部23を付加した点に特徴を有している。
【0065】
プログラム命令クロック数予測情報テーブル22は、プログラムをコンパイルする際、コンパイラが出力した命令クロック数予測情報を記憶する。
【0066】
ほとんどの命令の実行クロック数は一定であるため、プログラムのコードが分かると各命令にかかるクロック数が予測でき、設定クロック数記憶部21に記憶しているクロック数に達するのはどの位置なのか計算することができる。その結果、命令を続けて実行し、その位置まで周辺デバイスのシミュレーションを呼び出す必要がないので、1命令実行毎にクロック数カウント部9のクロック値と設定クロック数記憶部21に記憶しているクロック値とを比較する必要がなくなる。
【0067】
ただし、メモリ操作命令はメモリへのアクセス時間がメモリの種類やバスの状態等によって異なるので、一定ではない。また、分岐命令ではどのアドレスにジャンプするかは、条件によって異なる。この2種類の命令に関しては、その命令の位置で、命令にかかるクロック数の計算、または分岐先を特定し、周辺デバイスのシミュレーションを呼び出す位置の再特定を行う必要がある。
【0068】
次に、図5及び図6のフローチャートを参照して本実施の形態の変更箇所の動作について詳細に説明する。図6は、本発明の第2の実施の形態に係るマイクロプロセッサ用ソフトウェアシミュレーション方法を説明するためのフローチャートである。なお、第1の実施の形態において図2を用いて説明した動作と共通の動作については、重複した説明を省略する。
【0069】
まず、プログラムがダウンロードされると、プログラムの命令クロック数予測情報を、プログラム命令クロック数予測情報テーブル22に記憶する。プログラム実行が開始された際に周辺デバイスのシミュレーション呼び出し位置特定部23が周辺デバイスのシミュレーションを呼び出す位置を特定する(図5のステップS17:周辺デバイスのシミュレーション呼び出し位置の特定)。
【0070】
ステップS2の命令実行処理を行った後、ステップS2の命令実行処理で実行した命令がメモリ操作命令または分岐命令か否かを判定する(ステップS18:メモリ操作命令または分岐命令の判定)。
【0071】
ステップS2の命令実行処理で実行した命令がメモリ操作命令または分岐命令である場合(ステップS18のYES)、周辺デバイスのシミュレーションの呼び出し位置を再特定(ステップS19:周辺デバイスのシミュレーション呼び出し位置の再特定)し、その後に、ステップS5の割り込み処理終了命令の判定を実行する。一方、ステップS2の命令実行処理で実行した命令がメモリ操作命令または分岐命令でない場合(ステップS18のNO)は、ステップS5の割り込み処理終了命令の判定を実行する。
【0072】
また、ステップS2の命令実行処理で実行した命令が周辺関連処理命令か否かを判定(ステップS8)した結果、ステップS2の命令実行処理で実行した命令が周辺関連処理命令でない場合は(ステップS8のNO)、実行した位置が周辺デバイスのシミュレーションを呼び出す位置か判定する(ステップS20:周辺シミュレーションを呼び出す位置かの判定)。
【0073】
ステップS20の実行の結果、周辺シミュレーションを呼び出す位置であった場合は(ステップS20のYES)、周辺シミュレーション処理(ステップS9)に移る。周辺シミュレーションを呼び出す位置でない場合は(ステップS20のNO)、ステップS1の処理(命令フェッチ及び解析処理)に戻る。
【0074】
以上説明したように第2の実施の形態によれば、上記第1の実施の形態と同様の効果を奏する。
【0075】
なお、本発明が上記各実施の形態に限定されず、本発明の技術思想の範囲内において、上記各実施の形態は適宜変更され得ることは明らかである。また上記構成部材の数、位置、形状等は上記各実施の形態に限定されず、本発明を実施する上で好適な数、位置、形状等にすることができる。また、各図において、同一構成要素には同一符号を付している。
【0076】
【発明の効果】
本発明は以上のように構成されているので、以下に掲げる効果を奏する。まず第1の効果は、1命令毎に周辺デバイスのシミュレーションを呼び出さなくても、周辺デバイスの割り込みが正確にシミュレーションできることである。その理由は、周辺デバイスの割り込みが発生するまでのクロック数を計算して、そのクロック数分命令を実行した後に、周辺デバイスのシミュレーションを呼び出すため、周辺デバイスの割り込みの発生タイミングで、周辺シミュレーションを実行できるためである。
【0077】
そして第2の効果は、シミュレーション速度を向上できることである。その理由は、平均すると数10から数100命令に一度しか周辺デバイスのシミュレーションを呼び出さないので、従来技術に比べて呼び出し回数を大幅に減少でき、関数の呼び出しにかかる時間を短縮できるためである。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態に係るシミュレーション装置を説明するための機能ブロック図である。
【図2】本発明の第1の実施の形態に係るマイクロプロセッサ用ソフトウェアシミュレーション方法を説明するためのフローチャートである。
【図3】ある時点からの各周辺デバイスの変化点の位置を表した模式図である。
【図4】周辺デバイスのシミュレーションが実行される間隔を説明するための動作図である。
【図5】本発明の第2の実施の形態に係るシミュレーション装置を説明するための機能ブロック図である。
【図6】本発明の第2の実施の形態に係るマイクロプロセッサ用ソフトウェアシミュレーション方法を説明するためのフローチャートである。
【図7】従来技術のシミュレーション装置を説明するための機能ブロック図である。
【図8】従来のシミュレーション装置の動作を説明するためのフローチャートである。
【図9】従来技術の問題点を説明するためのプログラムの実行上の命令の並びの模式図である。
【符号の説明】
1…シミュレーション装置
2…コンソール
3…入力ファイル
4…ファイル入力部
5…出力部
6…入力部
7…制御部
9…クロック数カウント部
10…周辺シミュレーション実行制御部
11…プログラムメモリ部
12…命令フェッチ部
13…命令解析部
14…命令実行部
15…操作命令実行部
16…周辺シミュレーション部
17…割り込み制御部
18…PSW/PC管理部
19…次変化点クロック数取得部
20…変化点情報テーブル
21…設定クロック数記憶部
22…プログラム命令クロック数予測情報テーブル
23…周辺デバイスのシミュレーション呼び出し位置特定部

Claims (13)

  1. 周辺デバイスの次に起きる変化点までのクロック数を計算して出力する次変化点クロック数取得部と前記周辺デバイスの変化点の情報を保持する変化点情報テーブルを備えた周辺シミュレーション部と、
    前記次変化点クロック数取得部から出力されたクロック数を記憶する設定クロック数記憶部を備えた制御部を有し、
    命令実行にかかったクロック数をカウントした値が前記設定クロック数記憶部に記憶している次の変化点までのクロック値に達した時、または前記周辺デバイスのシミュレーションに関係する命令が実行された時にのみ、前記周辺デバイスのシミュレーションを実行する
    ことを特徴とするシミュレーション装置。
  2. 前記次変化点クロック数取得部は、前記周辺デバイスの次に起きる変化点として割り込み発生までのクロック数を計算して出力する
    ことを特徴とする請求項1に記載のシミュレーション装置。
  3. 前記次変化点クロック数取得部は、前記周辺デバイスの次に起きる変化点として端子への信号出力までのクロック数を計算して出力する
    ことを特徴とする請求項1または2に記載のシミュレーション装置。
  4. 次の変化点までのクロック値を前記次変化点クロック数取得部から取得し、
    前記設定クロック数記憶部に記憶し、
    命令が実行されるたびに命令実行にかかったクロック数をカウントしていく際に、前記命令実行にかかったクロック数をカウントした値が前記設定クロック数記憶部に記憶している次の変化点までのクロック値に達した時、または実行した命令が周辺デバイスのシミュレーションに関係する命令であった時に、周辺デバイスのシミュレーションを呼び出す
    ことを特徴とする請求項1乃至3のいずれか一項に記載のシミュレーション装置。
  5. シミュレーションの起動指示情報をコンソールから入力する入力部と、
    命令を入力ファイルから入力するファイル入力部と、
    入力された命令を保持するプログラムメモリ部と、
    前記プログラムメモリ部より命令を読み出す命令フェッチ部と、
    前記読み出された命令を受けて命令解析する命令解析部と、
    前記命令解析部の命令解析結果による命令を実行する命令実行部と、
    前記各周辺デバイス(不図示)のシミュレーションを行う前記周辺シミュレーション部と、
    割り込みシミュレーションを行う割り込み制御部と、
    PSW及びPCの値を管理するPSW/PC管理部と、
    前記周辺デバイスのシミュレーションに関係する命令を指示入力に従ってかつクロック信号に同期して実行する操作命令実行部と、
    前記命令実行部の動作により経過したクロック数を記憶するクロック数カウント部と、
    前記周辺デバイスの次に発生する変化点までのクロック数を取得する前記次変化点クロック数取得部と、
    前記周辺デバイスの変化点情報を保持する前記変化点情報テーブルと、
    前記次変化点クロック数取得部から得たクロック数を記憶する前記設定クロック数記憶部と、
    前記クロック数カウント部の計数値が前記設定クロック数記憶部に記憶したクロック値を越えた時に前記クロック数カウント部に記憶されたクロック数分だけ前記周辺デバイスのシミュレーションを実行する周辺シミュレーション実行制御部と、
    前記クロック数カウント部、前記周辺シミュレーション実行制御部及び前記設定クロック数記憶部を備え出力部ならびに前記入力部を介して前記コンソールに対するデータの入出力を行う制御部を有する
    ことを特徴とする請求項1乃至4のいずれか一項に記載のシミュレーション装置。
  6. 前記制御部は、
    プログラムをコンパイルする際にコンパイラが出力した命令クロック数予測情報を記憶するプログラム命令クロック数予測情報テーブルと、
    前記周辺デバイスのシミュレーションを呼び出す位置を特定する周辺デバイスのシミュレーション呼び出し位置特定部を有する
    ことを特徴とする請求項1乃至5のいずれか一項に記載のシミュレーション装置。
  7. プログラムがダウンロードされた際にプログラムの前記命令クロック数予測情報を前記プログラム命令クロック数予測情報テーブルに記憶し、
    プログラム実行が開始された際に前記周辺デバイスのシミュレーション呼び出し位置特定部が前記周辺デバイスのシミュレーションを呼び出す位置を特定する
    ことを特徴とする請求項6に記載のシミュレーション装置。
  8. 周辺デバイスの次に起きる変化点までのクロック数を計算して出力する次変化点クロック数取得工程と前記周辺デバイスの変化点の情報を変化点情報テーブルに保持する工程を備えた周辺シミュレーション工程と、
    前記次変化点クロック数取得工程から出力されたクロック数を記憶する設定クロック数記憶工程を備えた制御工程を有し、
    命令実行にかかったクロック数をカウントした値が前記設定クロック数記憶工程に記憶している次の変化点までのクロック値に達した時、または前記周辺デバイスのシミュレーションに関係する命令が実行された時にのみ、前記周辺デバイスのシミュレーションを実行する
    ことを特徴とするマイクロプロセッサ用ソフトウェアシミュレーション方法。
  9. 前記周辺デバイスの次に起きる変化点として割り込み発生までのクロック数を計算して出力する前記次変化点クロック数取得工程と前記周辺デバイスの変化点の情報を前記変化点情報テーブルに保持する工程を有する
    ことを特徴とする請求項8に記載のマイクロプロセッサ用ソフトウェアシミュレーション方法。
  10. 前記周辺デバイスの次に起きる変化点として端子への信号出力までのクロック数を計算して出力する前記次変化点クロック数取得工程と前記周辺デバイスの変化点の情報を前記変化点情報テーブルに保持する工程を有する
    ことを特徴とする請求項8または9に記載のマイクロプロセッサ用ソフトウェアシミュレーション方法。
  11. 次の変化点までのクロック値を前記次変化点クロック数取得工程から取得する工程と、
    前記設定クロック数記憶工程に記憶する工程と、
    命令が実行されるたびに命令実行にかかったクロック数をカウントしていく際に、前記命令実行にかかったクロック数をカウントした値が前記設定クロック数記憶工程に記憶している次の変化点までのクロック値に達した時、または実行した命令が周辺デバイスのシミュレーションに関係する命令であった時に、周辺デバイスのシミュレーションを呼び出す工程を有する
    ことを特徴とする請求項8乃至10のいずれか一項に記載のマイクロプロセッサ用ソフトウェアシミュレーション方法。
  12. 前記制御工程は、
    プログラムをコンパイルする際にコンパイラが出力した命令クロック数予測情報をプログラム命令クロック数予測情報テーブルに記憶する工程と、
    前記周辺デバイスのシミュレーションを呼び出す位置を特定する周辺デバイスのシミュレーション呼び出し位置特定工程を有する
    ことを特徴とする請求項8乃至11のいずれか一項に記載のマイクロプロセッサ用ソフトウェアシミュレーション方法。
  13. プログラムがダウンロードされた際にプログラムの前記命令クロック数予測情報を前記プログラム命令クロック数予測情報テーブルに記憶する工程と、
    プログラム実行が開始された際に前記周辺デバイスのシミュレーション呼び出し位置特定工程が前記周辺デバイスのシミュレーションを呼び出す位置を特定する工程を有する
    ことを特徴とする請求項12に記載のマイクロプロセッサ用ソフトウェアシミュレーション方法。
JP2000196637A 2000-06-29 2000-06-29 シミュレーション装置及びマイクロプロセッサ用ソフトウェアシミュレーション方法 Expired - Fee Related JP3638505B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000196637A JP3638505B2 (ja) 2000-06-29 2000-06-29 シミュレーション装置及びマイクロプロセッサ用ソフトウェアシミュレーション方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000196637A JP3638505B2 (ja) 2000-06-29 2000-06-29 シミュレーション装置及びマイクロプロセッサ用ソフトウェアシミュレーション方法

Publications (2)

Publication Number Publication Date
JP2002014840A JP2002014840A (ja) 2002-01-18
JP3638505B2 true JP3638505B2 (ja) 2005-04-13

Family

ID=18695093

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000196637A Expired - Fee Related JP3638505B2 (ja) 2000-06-29 2000-06-29 シミュレーション装置及びマイクロプロセッサ用ソフトウェアシミュレーション方法

Country Status (1)

Country Link
JP (1) JP3638505B2 (ja)

Also Published As

Publication number Publication date
JP2002014840A (ja) 2002-01-18

Similar Documents

Publication Publication Date Title
US7987075B2 (en) Apparatus and method to develop multi-core microcomputer-based systems
JP2002091512A (ja) シーケンサのプログラミング支援装置
JP3638505B2 (ja) シミュレーション装置及びマイクロプロセッサ用ソフトウェアシミュレーション方法
JP2715993B2 (ja) シミュレーション方法および装置
US5963725A (en) Simulation system and method for microcomputer program
CN111045730A (zh) 一种用于risc-v架构的硬件快速中断处理系统及其方法
JP2004078599A (ja) 命令スケジューリングのシミュレーション方法とシミュレーションシステム
JP2005100017A (ja) プロセッサシミュレータおよび割込遅延カウントプログラム、並びにプロセッサのシミュレート方法
JPH07253909A (ja) マイクロプログラム検証方法
JP2000076095A (ja) プログラムトレース装置およびプログラムトレース方法およびそのプログラムを記憶した記憶媒体
JP7069870B2 (ja) 情報処理装置
JPH05181673A (ja) マイクロプロセッサ
JP2002278775A (ja) シミュレーション装置、シミュレーション方法およびプログラム
JPH04245332A (ja) データ処理装置
JPS6128144A (ja) トレ−ス動作実行装置
CN113778640A (zh) 任务执行方法、装置、电子设备及存储介质
JP2825315B2 (ja) 情報処理装置
JPH07210388A (ja) ファジィ・コンピュータ
JPS6042968B2 (ja) 情報処理装置
CN117806925A (zh) 一种处理器的性能评估方法及其电子设备、介质
JPS61241843A (ja) 情報処理装置
JPH01243124A (ja) シミュレーション方式
JP2000293396A (ja) システム性能見積もり方法及びシステム性能見積もり装置
JPH05224711A (ja) プログラマブルコントローラの制御方法
JPH0628031B2 (ja) 情報処理装置の制御方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040910

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20041214

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050111

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20080121

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090121

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100121

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110121

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110121

Year of fee payment: 6

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Free format text: PAYMENT UNTIL: 20110121

Year of fee payment: 6

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20110121

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120121

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130121

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130121

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20140121

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees