JP3598924B2 - データ転送制御装置、情報記憶媒体及び電子機器 - Google Patents
データ転送制御装置、情報記憶媒体及び電子機器 Download PDFInfo
- Publication number
- JP3598924B2 JP3598924B2 JP36110499A JP36110499A JP3598924B2 JP 3598924 B2 JP3598924 B2 JP 3598924B2 JP 36110499 A JP36110499 A JP 36110499A JP 36110499 A JP36110499 A JP 36110499A JP 3598924 B2 JP3598924 B2 JP 3598924B2
- Authority
- JP
- Japan
- Prior art keywords
- data transfer
- data
- error
- control device
- transferred
- 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
Links
Images
Landscapes
- Small-Scale Networks (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
- Multi Processors (AREA)
Description
【発明の属する技術分野】
本発明は、データ転送制御装置、情報記憶媒体及び電子機器に関し、特に、バスに接続される複数のノード間でIEEE1394などの規格に準じたデータ転送を行うためのデータ転送制御装置、情報記憶媒体及び電子機器に関する。
【0002】
【背景技術及び発明が解決しようとする課題】
近年、IEEE1394と呼ばれるインターフェース規格が脚光を浴びている。このIEEE1394は、次世代のマルチメディアにも対応可能な高速シリアルバスインターフェースを規格化したものである。このIEEE1394によれば、動画像などのリアルタイム性が要求されるデータも扱うことができる。また、IEEE1394のバスには、プリンタ、スキャナ、CD−RWドライブ、ハードディスクドライブなどのコンピュータの周辺機器のみならず、ビデオカメラ、VTR、TVなどの家庭用電化製品も接続できる。このため、電子機器のデジタル化を飛躍的に促進できるものとして期待されている。
【0003】
さて、このようなIEEE1394のバス上でデータ転送を行っている際に、プリンタやスキャナなどの電子機器においてエラーが発生した場合に、以下のような問題が生じることが判明した。
【0004】
例えば、ターゲットであるプリンタにおいてオフライン、紙なし等のエラーが発生した場合、イニシエータであるパーソナルコンピュータに対してエラーステータスが送られる。そして、エラーステータスを受けたイニシエータは、数秒間の待ち時間の後、ターゲットに対して再度印刷要求を行う。この場合に、イニシエータが、エラーの発生により中断した印刷データの転送を最初からやり直すようにターゲットに要求する場合がある。このような場合には、ターゲットに対して印刷データの一部分だけが二重に送られてしまい、二重印刷などの誤印刷が生じてしまう。この結果、エラー発生後にデータ転送を適正に再開できないという問題が生じる。
【0005】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、バス上でのデータ転送中に上層のデバイスにエラーが発生した場合にも適正にデータ転送を再開できるデータ転送制御装置、情報記憶媒体及び電子機器を提供することにある。
【0006】
【課題を解決するための手段】
上記課題を解決するために本発明は、バスに接続される複数のノード間でのデータ転送のためのデータ転送制御装置であって、相手ノードから転送されてきたデータ転送オペレーション要求のための第1のコマンドパケットの処理中に上層のデバイスにエラーが発生した場合に、エラーステータスを相手ノードに転送するステータス転送手段と、前記エラーステータスを受けた相手ノードからデータ転送オペレーション要求のための第2のコマンドパケットが転送されてきた場合に、前記第1のコマンドパケットの内容と前記第2のコマンドパケットの内容とを比較するコマンド比較処理、又は前記第1のコマンドパケットにより転送要求された転送データの先頭アドレスである第1のアドレスと前記第2のコマンドパケットにより転送要求された転送データの先頭アドレスである第2のアドレスとを比較するアドレス比較処理を行う比較手段と、前記第1、第2のコマンドパケットが同一内容であると判断された場合、又は前記第1、第2のアドレスが同一であると判断された場合に、エラー発生時点のデータ転送の続きからデータ転送を再開する再開手段とを含むことを特徴とする。
【0007】
本発明によれば、第1のコマンドパケットの処理中に上層(例えばアプリケーション層)のデバイスにエラーが発生すると、エラーステータスが相手ノードに転送される。そして、このエラーステータスを受けた相手ノードから第2のコマンドパケットが転送されてくると、エラー発生前に転送された第1のコマンドパケットの内容と、エラー発生後に転送された第2のコマンドパケットの内容が比較される。或いは、第1のコマンドパケットにより転送要求された転送データの先頭アドレスである第1のアドレスと、第2のコマンドパケットにより転送要求された転送データの先頭アドレスである第2のアドレスが比較される。そして、第1、第2のコマンドパケットの内容が同一であると判断された場合、或いは、第1、第2のアドレスが同一であると判断された場合に、エラー発生時点の続きから(例えばエラー発生時点で転送を完了したデータの次のデータから)、データ転送が再開されるようになる。従って、第1のコマンドパケットの処理中に上層のデバイスにエラーが発生した場合にも、エラーからの復帰後に、適正にデータ転送を再開できるようになる。
【0008】
なお、第1、第2のコマンドパケットの内容比較と第1、第2のアドレスの比較を両方行い、第1、第2のコマンドパケットの内容が同一であり且つ第1、第2のアドレスが同一であると判断された場合に、エラー発生時点の続きからデータ転送を再開する場合も本発明の範囲に含まれる。
【0009】
また本発明は、前記第1、第2のコマンドパケットが同一内容でないと判断された場合、又は前記第1、第2のアドレスが同一でないと判断された場合には、前記第2のコマンドパケットが新規のコマンドパケットとして処理されることを特徴とする。このようにすれば、エラー発生後に、データ転送要求以外のコマンドパケットが転送されてきた場合や、エラー発生時点の続きからのデータ転送を要求するコマンドパケットが転送されてきた場合にも、適正に対処できるようになる。
【0010】
また本発明は、前記ステータス転送手段が、コマンドパケットの所与のフィールドに、データ転送を再開するアドレスを特定するための情報を書き込むことを特徴とする。このようにすれば、エラーステータスを受けた相手ノードが、エラーステータスに含まれるこの情報を用いて、エラー発生時点の続きからのデータ転送を要求するコマンドパケットを作成できるようになる。
【0011】
また本発明は、前記比較手段が、エラー発生後に相手ノードから転送されてきたコマンドパケットの中で最初に転送されてきたデータ転送オペレーション要求のためのコマンドパケットを、前記第1のコマンドパケットの比較対象となる前記第2のコマンドパケットして採用することを特徴とする。このようにすれば、最初のデータ転送オペレーション要求のためのコマンドパケットが転送されてくるまで、コマンドパケットの内容比較処理が実行されるのが、繰り越されるようになる。これにより、無用なコマンドパケットの内容比較処理が行われるのを防止でき、処理負担の軽減化を図れる。
【0012】
なお本発明では、IEEE1394の規格に準拠したデータ転送を行うことが望ましい。
【0013】
また本発明は、上記のいずれかのデータ転送制御装置との間でのデータ転送を制御するためのプログラムを含む情報記憶媒体であって、データ転送制御装置からエラーステータスが転送されてきた場合に、エラー発生前に転送されたデータ転送オペレーション要求のための第1のコマンドパケットと同一内容の第2のコマンドパケットを作成し、データ転送制御装置に転送要求するためのプログラムを含むことを特徴とする。このようにすれば、誤ったデータ転送再開処理が行われてしまう事態を防止でき、エラーの発生が要因となる不具合の発生を防止できる。
【0014】
また本発明は、上記のいずれかのデータ転送制御装置との間でのデータ転送を制御するためのプログラムを含む情報記憶媒体であって、データ転送制御装置からエラーステータスが転送されてきた場合に、エラー発生前に転送された第1のコマンドパケットによるデータ転送を、エラー発生時点の続きから再開するための第2のコマンドパケットを作成し、データ転送制御装置に転送要求するためのプログラムを含むことを特徴とする。このようにすれば、第2のコマンドパケットは、エラー発生前の第1のコマンドパケットとは異なる新規のコマンドパケットとして処理され、この第2のコマンドパケットにより、エラー発生時点の続きからデータ転送を適正に再開できるようになる。
【0015】
また本発明に係る電子機器は、上記のいずれかのデータ転送制御装置と、前記データ転送制御装置及びバスを介して相手ノードから受信したデータに所与の処理を施す装置と、処理が施されたデータを出力又は記憶するための装置とを含むことを特徴とする。また本発明に係る電子機器は、上記のいずれかのデータ転送制御装置と、前記データ転送制御装置及びバスを介して相手ノードに送信するデータに所与の処理を施す装置と、処理が施されるデータを取り込むための装置とを含むことを特徴とする。
【0016】
本発明によれば、電子機器においてエラーが発生した場合にも、エラー復帰後にデータ転送を適正に再開できるようになる。またデータ転送の高速化を図れ、電子機器の低コスト化、電子機器の処理の高速化なども図ることができる。
【0017】
【発明の実施の形態】
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。
【0018】
1.IEEE1394
まず、IEEE1394について簡単に説明する。
【0019】
1.1 概要
IEEE1394(IEEE1394−1995、P1394.a)では100〜400Mbpsの高速なデータ転送が可能となっている(P1394.bでは800〜3200Mbps)。また、転送速度が異なるノードをバスに接続することも許される。
【0020】
各ノードはツリー状に接続されており、1つのバスに最大で63個のノードが接続可能になっている。なお、バスブリッジを利用すれば約64000個のノードを接続することも可能である。
【0021】
IEEE1394では、パケットの転送方式として非同期転送とアイソクロナス転送が用意されている。ここで非同期転送は、信頼性が要求されるデータの転送に好適な転送方式であり、アイソクロナス転送は、リアルタイム性が要求される動画像や音声などのデータの転送に好適な転送方式である。
【0022】
1.2 層構造
IEEE1394の層構造(プロトコル構成)を図1に示す。
【0023】
IEEE1394のプロトコルは、トランザクション層、リンク層、物理層により構成される。また、シリアルバスマネージメントは、トランザクション層、リンク層、物理層をモニターしたり制御したりするものであり、ノードの制御やバスのリソース管理のための種々の機能を提供する。
【0024】
トランザクション層は、上位層にトランザクション単位のインターフェース(サービス)を提供し、下層のリンク層が提供するインターフェースを通して、リードトランザクション、ライトトランザクション、ロックトランザクション等のトランザクションを実施する。
【0025】
ここで、リードトランザクションでは、応答ノードから要求ノードにデータが転送される。一方、ライトトランザクションでは、要求ノードから応答ノードにデータが転送される。またロックトランザクションでは、要求ノードから応答ノードにデータが転送され、応答ノードがそのデータに処理を施して要求ノードに返信する。
【0026】
リンク層は、アドレッシング、データチェック、パケット送受信のためのデータフレーミング、アイソクロナス転送のためのサイクル制御などを提供する。
【0027】
物理層は、リンク層により使用されるロジカルシンボルの電気信号への変換や、バスの調停や、バスの物理的インターフェースを提供する。
【0028】
1.3 SBP−2
さて、図2に示すように、IEEE1394のトランザクション層の一部の機能を含む上位のプロトコルとして、SBP−2(Serial Bus Protocol−2)と呼ばれるプロトコルが提案されている。
【0029】
ここでSBP−2は、SCSIのコマンドセットをIEEE1394のプロトコル上で利用可能にするために提案されたものである。このSBP−2を用いれば、既存のSCSI規格の電子機器で使用されていたSCSIのコマンドセットに最小限の変更を加えて、IEEE1394規格の電子機器に使用できるようになる。従って、電子機器の設計や開発を容易化できる。また、SCSIのコマンドだけではなく、デバイス固有のコマンドもカプセル化して利用できるため、非常に汎用性が高い。
【0030】
図3に示すようにSBP−2では、まず、イニシエータ(例えばパーソナルコンピュータ)により作成されたログインORB(Operation Request Block)を用いてログイン処理が行われる(ステップT1)。次に、ダミーORBを用いてフェッチエージェントの初期化が行われる(ステップT2)。そして、コマンドブロックORB(ノーマルコマンドORB)を用いてコマンド処理が行われ(ステップT3)、最後に、ログアウトORBを用いてログアウト処理が行われる(ステップT4)。
【0031】
ここで、ステップT3のコマンド処理においては、図4のA1に示すように、イニシエータがライト要求パケットを転送して(ライト要求トランザクションを発行して)、ターゲットのドアベルレジスタをリングする。すると、A2に示すように、ターゲットがリード要求パケットを転送し、イニシエータが対応するリード応答パケットを返す。これにより、イニシエータが作成したORB(コマンドブロックORB)が、ターゲットのデータバッファにフェッチされる。そして、ターゲットは、フェッチされたORBに含まれるコマンドを解析する。
【0032】
そして、ORBに含まれるコマンドがSCSIのライトコマンドであった場合には、A3に示すように、ターゲットがリード要求パケットをイニシエータに転送し、イニシエータが対応するリード応答パケットを返す。これにより、イニシエータのデータバッファに格納されているデータがターゲットに転送される。そして、例えばターゲットがプリンタであった場合には、転送されたデータがプリンタエンジンにより印刷される。
【0033】
一方、ORBに含まれるコマンドがSCSIのリードコマンドであった場合には、図5のB1に示すように、ターゲットは、一連のライト要求パケットをイニシエータに転送する。これにより、例えばターゲットがスキャナであった場合には、スキャナエンジンにより取得されたスキャンデータが、イニシエータのデータバッファに転送されることになる。
【0034】
このSBP−2によれば、ターゲットは、自身が都合の良いときに要求パケットを転送して(トランザクションを発行して)、データを送受信できる。従って、イニシエータとターゲットが同期して動く必要がなくなるため、データ転送効率を高めることができる。
【0035】
なお、IEEE1394の上位プロトコルとしては、SBP−2以外にも、FCP(Function Control Protocol)と呼ばれるプロトコルなども提案されている。
【0036】
さて、ターゲット、イニシエータ間でデータ転送を行う場合、図6(A)のようにイニシエータ(相手ノード)のデータバッファ(記憶手段)にページテーブルが存在する場合と、存在しない場合がある。
【0037】
そして、ページテーブルが存在する場合には、図6(B)に示すように、イニシエータが作成したORBの中には、そのページテーブルのアドレスやエレメント数が含まれる。そして、転送データのアドレス(読み出しアドレス、書き込みアドレス)は、このページテーブルを用いて間接アドレス指定される。
【0038】
一方、ページテーブルが存在しない場合には、図6(C)に示すように、ORBの中にアドレスとデータ長が含まれ、転送データのアドレスが直接アドレス指定される。
【0039】
2.全体構成
次に、本実施形態のデータ転送制御装置の全体構成例について図7を用いて説明する。なお、以下では、イニシエータとの間でデータ転送を行うターゲットがプリンタである場合について例にとり説明するが、本発明はこれに限定されない。
【0040】
本実施形態のデータ転送制御装置10は、PHYデバイス12(物理層のデバイス)、リンクデバイス14(リンク層のデバイス)、CPU16(プロセッサ)、データバッファ18(記憶手段)、ファームウェア20(処理手段)を含む。なお、PHYデバイス12、リンクデバイス14、CPU16、データバッファ18は、任意の構成要素であり、本実施形態のデータ転送制御装置10は、これらの構成要素を全て含む必要はない。
【0041】
PHYデバイス12は、図1の物理層のプロトコルをハードウェアにより実現するための回路であり、リンクデバイス14により使用されるロジカルシンボルを電気信号に変換する機能を有する。
【0042】
リンクデバイス14は、図1のリンク層のプロトコルやトランザクション層のプロトコルの一部をハードウェアにより実現するための回路であり、ノード間でのパケット転送のための各種サービスを提供する。
【0043】
CPU16は、装置全体の制御やデータ転送の制御を行うものである。
【0044】
データバッファ18は、転送データ(パケット)を一時的に格納するバッファであり、SRAM、SDRAM、或いはDRAMなどのハードウェアにより構成される。なお、本実施形態では、データバッファ18は、ランダムアクセス可能なパケット記憶手段として機能する。
【0045】
ファームウェア20は、CPU16上で動作する種々の処理ルーチン(処理モジュール)を含むプログラムであり、トランザクション層のプロトコルは、このファームウェア20と、ハードウェアであるCPU16等により実現される。
【0046】
なお、イニシエータであるパーソナルコンピュータ100が含むデバイスドライバ102は、周辺機器を管理制御するための種々の処理ルーチンを含むプログラムである。このプログラムは、情報記憶媒体110(FD、CD−ROM、DVD、ROM)を利用してパーソナルコンピュータ100にインストールされる。
【0047】
ここで、デバイスドライバ102のプログラムは、ホストシステムが有する情報記憶媒体(ハードディスク、磁気テープ等)からインターネットなどのネットワークを介してダウンロードし、パーソナルコンピュータ100にインストールするようにしてもよい。このようなホストシステムが有する情報記憶媒体の使用も本発明の範囲内に含まれる。
【0048】
ファームウェア20(F/W)は、コミュニケーション部30(COM)、マネージメント部40(MNG)、プリントタスク部50(PRT)、フェッチ部60(FCH)を含む。
【0049】
ここで、コミュニケーション部30は、リンクデバイス14などのハードウェアとの間のインターフェースとして機能する処理モジュールである。
【0050】
マネージメント部40(マネージメントエージェント)は、ログイン、リコネクト、ログアウト、リセット等の管理を行う処理モジュールである。例えばイニシエータがターゲットにログインを要求した場合には、まず、このマネージメント部40が、このログイン要求を受け付けることになる。
【0051】
プリントタスク部50は、後段のアプリケーション層(上層)であるプリンタエンジンとの間のデータ転送処理を行う処理モジュールである。
【0052】
フェッチ部60(フェッチエージェント、コマンドブロックエージェント)は、コマンドブロックORBが含むコマンドを実行するための処理モジュールである。フェッチ部60は、単一の要求しか扱うことができないマネージメント部40と異なり、イニシエータからの要求により自身がフェッチしたORBのリンクリストも扱うことができる。
【0053】
フェッチ部60は、ステータス転送部62、コマンド比較部66、アドレス比較部70、データ転送再開部72を含む。
【0054】
ここでステータス転送部62は、イニシエータ(相手ノード)から転送されてきたORB(コマンドブロックORB。広義には、データ転送オペレーション要求のためのコマンドパケット)の処理中に、プリンタエンジン(上層のデバイス)にエラーが発生した場合に、エラーのステータスをイニシエータに転送する処理を行う。
【0055】
コマンド比較部66は、エラーステータスを受けたイニシエータからORB(コマンドブロックORB)が再度転送されてきた場合に、エラー発生前に処理中であったORB(第1のコマンドパケット)の内容と、エラー発生後に転送されてきたORB(第2のコマンドパケット)の内容とを比較する処理を行う。
【0056】
アドレス比較部70は、エラーステータスを受けたイニシエータからORBが再度転送されてきた場合に、エラー発生前に処理中であったORBにより転送要求された転送データの先頭アドレス(第1のアドレス。IEEE1394のバスアドレス)と、エラー発生後に転送されてきたORBにより転送要求された転送データの先頭アドレス(第2のアドレス)とを比較する処理を行う。
【0057】
データ転送再開部72は、エラー発生前のORB(第1のコマンドパケット)の内容とエラー発生後のORB(第2のコマンドパケット)の内容が同一であり、エラー発生前のORBによる転送データの先頭アドレス(第1のアドレス)とエラー発生後のORBによる転送データの先頭アドレス(第2のアドレス)が同一である場合に、エラー発生時点のデータ転送の続き(エラー発生時点で転送したデータの次のデータ)からデータ転送を再開する処理を行う。
【0058】
なお、処理の確実性の観点からは、ORBの内容が同一であり且つ先頭アドレスが同一である場合に、データ転送を再開することが望ましい。しかしながら、ORBの内容が一致しただけでデータ転送を再開するようにしたり、先頭アドレスが一致しただけでデータ転送を再開するようにしてもよい。このようにすれば、処理負担を軽減化できる。
【0059】
3.本実施形態の処理
次に、本実施形態の処理例について説明する。
【0060】
図8は、ターゲット側(ファームウェア)の処理例を示すフローチャートである。
【0061】
イニシエータから印刷要求があると、ターゲットは、イニシエータのデータバッファからORBをリードする(ステップS1)。そして、ページテーブルが存在する場合には、ORBに含まれるページテーブルアドレス(図6(B)参照)に基づいて、イニシエータのデータバッファからページテーブルをリードする(ステップS2)。
【0062】
次に、プリンターにおいてオフライン、紙なし、カバーオープン、インク・リボン・トナーなしなどのエラーが発生したか否かを判断する(ステップS3)。そして、エラーが発生していない場合には、ステップS2でリードしたページテーブルに基づいてイニシエータのデータバッファから印刷データをリードする(ステップS4)。
【0063】
なお本実施形態では、エラーの発生は割り込みにより通知され、割り込みが通知されると、エラーが発生したことを示すフラグがオンになる。そして、ステップS3では、このフラグがオンになっているか否かをチェックすることで、エラーが発生したか否かを判断している。
【0064】
次に、ページテーブルにより指定される印刷データを全てリードしたか否かを判断する(ステップS5)。そして、全てをリードしていない場合にはステップS3に戻る。一方、全てをリードした場合にはステータスをライトし、転送完了のステータスをイニシエータに伝える(ステップS6)。以上の処理を、全ての印刷データ(印刷物を印刷するのに必要な全ての印刷データ)が転送されるまで繰り返す(ステップS7)。
【0065】
そして本実施形態では、ステップS3でエラーが発生したと判断された場合に、以下のような処理を行う。
【0066】
即ち、まず、エラー発生時点で転送が完了していない未処理のデータのデータ長が情報フィールドに書き込まれたエラーステータスを作成し、イニシエータに転送する(ステップS8)。そして、イニシエータからの印刷要求を待つ(ステップS9、S10)。そして、印刷要求があると、印刷要求のORBをリードする(ステップS11)。次に、ページテーブルが存在する場合には、ORBに含まれるページテーブルアドレスに基づいて、イニシエータのデータバッファからページテーブルをリードする(ステップS12)。
【0067】
次に、エラー発生前に転送されてきたORB(例えばステップS1でリードしたORB)の内容や、そのORBにより転送要求される転送データの先頭アドレスが、エラー発生後に転送されてきたORB(例えばステップS11でリードしたORB)の内容や、そのORBにより転送要求される転送データの先頭アドレスと同一か否かを判断する(ステップS13)。
【0068】
そして、ORBの内容や先頭アドレスが同一であると判断された場合には、プリンタにエラーがまだ生じているかを判断し(ステップS14)、エラーがまだ生じている場合(エラーから復帰していない場合)にはステップS8に戻る。一方、エラーがもう生じていない場合(エラーから復帰している場合)には、エラー発生時点の続きからデータ転送を再開する(ステップS15)。
【0069】
例えば、ORBのリードが完了した時点でエラーが発生した場合には、ステップS15からステップS2に戻り、ページテーブルをリードする。また、ページテーブルのリードが完了した時点でエラーが発生した場合には、ステップS3に戻る。また、データの転送中にエラーが発生した場合には、エラー発生時点でリードを完了していたデータの次のデータをリードする。また、ページテーブルの最後のデータのリードが完了した時点でエラーが発生した場合には、ステップS15からステップS6に戻り、ステータスのライトを行う。
【0070】
一方、ステップS13でORBの内容や先頭アドレスが同一でないと判断された場合には、正常ルート(ステップS1〜S7)に復帰して、エラー発生後のORB(ステップS11でリードしたORB)を新規のORBとして処理する(ステップS16)。即ち、エラーがまだ生じているか否かをステップS3で判断し、エラーがまだ生じている場合(エラーから復帰していない場合)には、ステップS8に移行して、エラースタータスをイニシエータにライトする。一方、エラーがもう生じていない場合(エラーから復帰している場合)には、ステップS4に移行する。そして、ステップS11でリードしたORBにより転送要求される新規の転送データをリードする。
【0071】
図9、図10は、イニシエータ側(デバイスドライバ)の処理例を示すフロチャートであり、図9は、イニシエータで動作するOS(Operating System)が第1のOSである場合のフローチャートである。
【0072】
アプリケーションプログラムからの印刷ジョブが発生すると、イニシエータは、印刷のためのORBやページテーブルを作成し、データバッファに書き込む(ステップS20)。次に、作成したORBをリードするようにターゲットに対して指示する(ステップS21。図4のA1参照)。
【0073】
次に、ステータスがターゲットから送られてきたか否かを判断する(ステップS22)。そして、送られてきた場合には、そのステータスがエラーステータスか否かを判断する(ステップS23)。そして、エラーステータスではない場合には、全ての印刷データが転送されたか否かを判断し(ステップS24)、転送されていない場合には、ステップS20に戻り、転送された場合には印刷ジョブを終了する。
【0074】
そして本実施形態では、ステップS23でエラーステータスであると判断されると、ステップS25に移行し、待ち時間T(例えば3秒)が経過したか否かを判断する。そして、経過した場合には、イニシエータは、ORB、ページテーブルを再作成し(ステップS26)、再作成したORBをリードするようにターゲットに対して指示する(ステップS21)。この場合にイニシエータ(デバイスドライバ)は、エラー発生前のORBの内容や印刷データの先頭アドレス及びデータ長と、エラー発生後のORBの内容や印刷データの先頭アドレス及びデータ長が同一になるように、ORBを再作成する。
【0075】
図10は、イニシエータで動作するOSが第2のOSである場合のフローチャートである。
【0076】
図10が図9と異なるのは、ステップS36においてイニシエータ(デバイスドライバ)が、ターゲットからのエラーステータスに書き込まれた未処理のデータ長に基づき、ORBを再構成する点である。即ち、第1のOSではエラー発生前と同一内容のORBを作成してターゲットに送るのに対して、第2のOSではエラー発生時点の続きからのデータ転送を要求するORBを再構成してターゲットに送る。
【0077】
4.本実施形態の特徴
さて、印刷データの転送中にオフライン、紙なしなどのエラーが発生すると、以下のような問題が生じることが判明した。
【0078】
例えば図11(A)に示すように、C1に示す位置(アドレス)までデータを転送したところで、エラーが発生したとする。またイニシエータであるパーソナルコンピュータで動作するOSが第1のOSであったとする。この場合に、ターゲットからエラーステータスを受けたイニシエータは、数秒間待った後に、図11(B)に示すように印刷のためのORBを再度作成して、印刷データの転送を最初からやり直すようにターゲットに指示する。このため、図11(B)のC2に示す位置からデータ転送が再開されてしまい、印刷データの一部分だけが二重に送られてしまう。この結果、図11(C)に示すような二重印刷の問題が発生する。
【0079】
このような問題を解決するために、本実施形態では、以下に説明するような手法を採用している。
【0080】
例えば図12のD1に示すORBによるデータ転送中に、オフライン、紙なし等のエラーが発生したとする。すると、ターゲットはD2に示すようにイニシエータにエラーステータスを転送する。そして、このエラーステータスを受けたイニシエータにより、D3に示すORBが再度作成され、このORBがターゲットに転送される(ターゲットがリードする)。この場合に、本実施形態では、D1に示すエラー発生前のORB(第1のコマンドパケット)の内容とD3に示すエラー発生(回復)後のORB(第2のコマンドパケット)の内容を比較する。また、エラー発生前のORBにより指定される転送データの先頭アドレスAD1(第1のアドレス)と、エラー発生後のORBにより指定される転送データの先頭アドレスAD2(第2のアドレス)を比較する(図8のステップS13参照)。
【0081】
そして、ORBの内容が同一であり先頭アドレスが同一であると判断された場合には、D4に示すように、エラー発生時点のデータ転送の続きからデータ転送を再開する(図8のステップS15参照)。即ち、エラー発生時点で既に転送を完了していたデータの次のデータからデータ転送を再開する。
【0082】
一方、ORBの内容が同一でなかった場合や先頭アドレスが同一でなかった場合には、D3に示すエラー発生後のORBを新規のORBとして最初から処理する(図8のステップS16参照)。
【0083】
このようにすることで、図12のD5に示す部分の転送データが、図11(B)の場合と異なり、二重転送されないようになる。従って、図11(C)に示すような誤印刷が生じなくなる。また二重転送を避けることができるため、転送時間も短縮できる。
【0084】
例えば本実施形態と異なる手法として、ORBの内容や先頭アドレスの比較処理を行わずに、常に、エラー発生時点の続きからデータ転送を再開するという手法も考えられる。
【0085】
しかしながら、この手法によると、例えば、エラー発生後にイニシエータが印刷データの転送処理をキャンセルし、エラー発生前と全く異なるORBを作成した場合にも、図12のD4からデータ転送が再開されてしまうという不具合が生じる。
【0086】
これに対して本実施形態では、ORBの内容や先頭アドレスがエラー発生の前後で同一の場合には、図12のD4からデータ転送が再開するが、同一でない場合には、全く新規のORBとして処理されるため、上記のような不具合が生じない。
【0087】
また本実施形態によれば、イニシエータ(パーソナルコンピュータ)で動作するOSがどのようなOSであるかを意識しないで済むようになる。
【0088】
例えば、イニシエータ側のOSとして第1のOSと第2のOSがあるとする。そして、第1のOSでは図13に示すように、エラー発生前とエラー発生後でORBの内容や先頭アドレスAD1、AD2は同一になる。即ち、第1のOS(デバイスドライバ)は、エラーステータスを受けると、数秒間の待ち時間の後に、エラー発生前と同一内容のORBを作成し、このORBをリードするようにターゲットに指示する(図9のステップS26参照)。
【0089】
この場合に本実施形態によれば、エラー発生の前後のORBの内容が同一であり、先頭アドレスAD1、AD2も同一であると判断されるので、図13のE1に示すようにエラー発生時点の続きからデータ転送が再開され、二重印刷が防止される。例えば、転送データのデータ長(データサイズ)が15Kバイトであり、エラー発生時点で10Kバイトのデータ転送を完了していた場合には、データ転送の再開により、未処理の5Kバイトのデータが転送されるようになる。
【0090】
一方、第2のOSでは図14に示すように、エラー発生前とエラー発生後でORBの内容や先頭アドレスAD1、AD2が非同一になる。即ち、第2のOS(デバイスドライバ)は、エラーステータスを受けると、数秒間の待ち時間の後に、図14のF1に示す位置からのデータ転送を要求する新規のORBを作成し、このORBをリードするようにターゲットに指示する(図10のステップS36参照)。
【0091】
この場合に本実施形態によれば、エラー発生の前後のORBの内容が非同一であり、先頭アドレスAD1、AD2も非同一であると判断されるので、転送されてきたORBは新規のORBとして処理される。そして、エラー発生後のORBはF1に示す位置からデータ転送を開始するように作成されているため、F2に示すように未処理の5Kバイトのデータを転送できるようになる。
【0092】
このように本実施形態によれば、イニシエータで動作するOSが第1のOSであっても第2のOSであっても、エラー発生により未処理となった5Kバイトのデータを適正に転送できるようになる。即ち、ファームウェアは、イニシエータのOSが第1のOSか第2のOSかを意識する必要が無くなる。従って、イニシエータのOSが第1のOSであっても第2のOSであっても、同一構成のファームウェアで処理できるようになり、ファームウェアの開発期間の短縮化や、デバッグ作業の容易化を図れる。
【0093】
なお、本実施形態では、エラーステータスの情報フィールドに、データ転送を再開するアドレスを特定するための情報を書き込んでいる。より具体的にはエラーステータスの情報フィールドに未処理のデータ長(=転送データの全体のバイト数−エラー発生時点までに転送を完了したデータのバイト数)を書き込んでいる。
【0094】
例えば図14では、未処理のデータ長が5K(=15K−10K)バイトであることが、エラーステータスの情報フィールドに書き込まれる。このような未処理のデータ長をエラーステータスに書き込んでおけば、このエラーステータスを受けたイニシエータ(デバイスドライバ)は、F1に示す位置からのデータ転送を要求する新規のORBを作成できるようになる。この結果、イニシエータのOSが第2のOSであった場合にも、エラー発生時点の続きからデータ転送を適正に再開できるようになる。
【0095】
なお、データ転送の開始時点(開始前)で既にエラーが発生していた場合には、データ転送は未だ行われていないので、エラーステータスの情報フィールドには、ORBに付随するデータ長(転送データの全体のデータ長)が、そのまま書き込まれることになる。
【0096】
また本実施形態では、ORBの内容比較の際に種々の情報を比較している。例えば図15に示すように、本実施形態では、コマンドブロックORBが含むページテーブル存在フラグPや、データサイズや、コマンドブロック(コマンドセット)フィールドの中のオペレーションコード(印刷コマンド、リードコマンドなどを区別するコード)やデータ長を比較している。またORBが、ORBを識別するための識別情報(例えば順序番号)を含む場合には、この識別情報も比較している。このような情報を比較することで、エラー発生前後のORBが同一か否かを簡素な処理で確実に判断できるようになる。そして本実施形態では、エラーが発生してからエラーが回復するまでの間に、これらの情報が1項目でも異なるORBが要求されると、エラー回復後のデータ転送は新規となる。
【0097】
なお、転送データの先頭アドレスAD1、AD2の比較は、具体的には以下のようにして行う。即ち、ページテーブルを使用していない場合には、ORBのデータデスクリプタフィールドの値が同一か否かを比較する。一方、ページテーブルを使用している場合には、ページテーブルの最初のセグメントの内容が同一か否かを比較する。
【0098】
さて本実施形態では、エラー発生後にイニシエータから転送されてきたORBの中で、最初に転送されてきた印刷コマンドを含むORB(コマンドブロックORB)を、エラー発生前のORBの比較対象となるORBとして採用するようにしている。
【0099】
例えば図16に示すように、エラー発生後に、印刷コマンドを含むコマンドブロックORBが直ぐに転送されてくるとは限らない。即ち、イニシエータが、印刷コマンドを含むコマンドブロックORBを転送する前に、ダミーORBやマネージメントORBを転送してくる場合がある。或いは、プリンタのステータス等を調べるためにリードコマンドを含むコマンドブロックORBを転送してくる場合もある。
【0100】
本実施形態では図16のG1に示すように、ダミーORB等が転送されてきても、ORBの内容比較処理を行わず、印刷コマンドを含むコマンドブロックORBが転送されてきた時に初めてORBの内容比較処理を行う。即ち、印刷コマンドを含む最初のコマンドブロックORBが来るまで、ORBの内容比較処理の実行を繰り越す(順送りにする)。これにより、無用なORBの内容比較処理が行われるのが防止され、ファームウェアの処理負担を軽減化できる。
【0101】
5.電子機器
次に、本実施形態のデータ転送制御装置を含む電子機器の例について説明する。
【0102】
例えば図17(A)に電子機器の1つであるプリンタの内部ブロック図を示し、図18(A)にその外観図を示す。CPU(マイクロコンピュータ)510はシステム全体の制御などを行う。操作部511はプリンタをユーザが操作するためのものである。ROM516には、制御プログラム、フォントなどが格納され、RAM518はCPU510のワーク領域として機能する。表示パネル519はプリンタの動作状態をユーザに知らせるためのものである。
【0103】
PHYデバイス502、データ転送制御装置500を介して、パーソナルコンピュータなどの相手ノードから送られてきた印字データは、バス504を介して印字処理部(プリンタエンジン)512に直接送られる。そして、印字データは、印字処理部512にて所与の処理が施され、プリントヘッダなどからなる印字部(データを出力するための装置)514により紙に印字されて出力される。
【0104】
図17(B)に電子機器の1つであるスキャナの内部ブロック図を示し、図18(B)にその外観図を示す。CPU520はシステム全体の制御などを行う。操作部521はスキャナをユーザが操作するためのものである。ROM526には制御プログラムなどが格納され、RAM528はCPU520のワーク領域として機能する。
【0105】
光源、光電変換器などからなる画像読み取り部(データを取り込むための装置)522により原稿の画像が読み取られ、読み取られた画像のデータは画像処理部(スキャナエンジン)524により処理される。そして、処理後の画像データがバス505を介してデータ転送制御装置500に直接送られる。データ転送制御装置500は、この画像データにヘッダなどを付加することでパケットを生成し、PHYデバイス502を介してパーソナルコンピュータなどの相手ノードに送信する。
【0106】
図17(C)に電子機器の1つであるCD−RWドライブの内部ブロック図を示し、図18(C)にその外観図を示す。CPU530はシステム全体の制御などを行う。操作部531はCD−RWをユーザが操作するためのものである。ROM536には制御プログラムなどが格納され、RAM538はCPU530のワーク領域として機能する。
【0107】
レーザ、モータ、光学系などからなる読み取り&書き込み部(データを取り込むための装置又はデータを記憶するための装置)533によりCD−RW532から読み取られたデータは、信号処理部534に入力され、エラー訂正処理などの所与の信号処理が施される。そして、信号処理が施されたデータが、バス506を介してデータ転送制御装置500に直接送られる。データ転送制御装置500は、このデータにヘッダなどを付加することでパケットを生成し、PHYデバイス502を介してパーソナルコンピュータなどの相手ノードに送信する。
【0108】
一方、PHYデバイス502、データ転送制御装置500を介して、相手ノードから送られてきたデータは、バス506を介して信号処理部534に直接送られる。そして、信号処理部534によりこのデータに所与の信号処理が施され、読み取り&書き込み部533によりCD−RW532に記憶される。
【0109】
なお、図17(A)、(B)、(C)において、CPU510、520、530の他に、データ転送制御装置500でのデータ転送制御のためのCPUを別に設けるようにしてもよい。
【0110】
また、図17(A)、(B)、(C)ではRAM501(データバッファに相当)がデータ転送制御装置500の外部に設けられているが、RAM501をデータ転送制御装置500に内蔵させてもよい。
【0111】
本実施形態のデータ転送制御装置を電子機器に用いれば、電子機器にエラーが発生してデータ転送が中断等した場合にも、エラーの回復後にデータ転送を適正に再開できるようになる。これにより、エラー発生を原因とする不具合の発生が防止される。
【0112】
また本実施形態のデータ転送制御装置を電子機器に用いれば、高速なデータ転送が可能になる。従って、ユーザがパーソナルコンピュータなどによりプリントアウトの指示を行った場合に、少ないタイムラグで印字が完了するようになる。また、スキャナへの画像取り込みの指示の後に、少ないタイムラグで読み取り画像をユーザは見ることができるようになる。また、CD−RWからのデータの読み取りや、CD−RWへのデータの書き込みを高速に行うことができるようになる。
【0113】
また本実施形態のデータ転送制御装置を電子機器に用いることで、CPU上で動作するファームウェアの処理負担が軽減され、安価なCPUや低速のバスを用いることが可能になる。更に、データ転送制御装置の低コスト化、小規模化を図れるため、電子機器の低コスト化、小規模化も図れるようになる。
【0114】
なお本実施形態のデータ転送制御装置を適用できる電子機器としては、上記以外にも例えば、種々の光ディスクドライブ(CD−ROM、DVD)、光磁気ディスクドライブ(MO)、ハードディスクドライブ、TV、VTR、ビデオカメラ、オーディオ機器、電話機、プロジェクタ、パーソナルコンピュータ、電子手帳、ワードプロセッサなど種々のものを考えることができる。
【0115】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【0116】
例えば、本発明のデータ転送制御装置の構成は、図7に示す構成が特に望ましいが、これに限定されるものではない。
【0117】
また、コマンドの比較手法、アドレスの比較手法、データ転送の再開手法は、本実施形態で説明した手法が特に望ましいが、これに限定されるものではない。
【0118】
また、本発明は、IEEE1394規格でのデータ転送に適用されることが特に望ましいが、これに限定されるものではない。例えばIEEE1394と同様の思想に基づく規格やIEEE1394を発展させた規格におけるデータ転送にも本発明は適用できる。
【図面の簡単な説明】
【図1】IEEE1394の層構造について示す図である。
【図2】SBP−2について説明するための図である。
【図3】SBP−2のデータ転送処理の概略について説明するための図である。
【図4】データをイニシエータからターゲットに転送する場合のコマンド処理について説明するための図である。
【図5】データをターゲットからイニシエータに転送する場合のコマンド処理について説明するための図である。
【図6】図6(A)、(B)、(C)は、ページテーブルについて説明するための図である。
【図7】本実施形態のデータ転送制御装置の構成例を示す図である。
【図8】ターゲット側(ファームウェア)の処理の概要を示すフローチャートである。
【図9】イニシエータ側(デバイスドライバ)の処理の概要を示すフローチャートである。
【図10】イニシエータ側(デバイスドライバ)の処理の概要を示すフローチャートである。
【図11】図11(A)、(B)、(C)は、二重印刷の問題について説明するための図である。
【図12】エラーの発生の前後でORBの内容や転送データの先頭アドレスが同一の場合に、データ転送を継続して再開する手法について説明するための図である。
【図13】イニシエータで動作するOSが第1のOSである場合の本実施形態の手法について説明するための図である。
【図14】イニシエータで動作するOSが第2のOSである場合の本実施形態の手法について説明するための図である。
【図15】ORBの内容比較について説明するための図である。
【図16】印刷コマンドを含む最初のコマンドブロックORBが来るまで、コマンド比較処理を繰り越す手法について説明するための図である。
【図17】図17(A)、(B)、(C)は、種々の電子機器の内部ブロック図の例である。
【図18】図18(A)、(B)、(C)は、種々の電子機器の外観図の例である。
【符号の説明】
10 データ転送制御装置
12 PHYデバイス
14 リンクデバイス
16 CPU
18 データバッファ
20 ファームウェア(F/W)
30 コミュニケーション部(COM)
40 マネージメント部(MNG)
50 プリントタスク部(PRT)
60 フェッチ部(FCH)
62 ステータス転送部
66 コマンド比較部
70 アドレス比較部
72 データ転送再開部
100 パーソナルコンピュータ
102 デバイスドライバ
104 データバッファ
110 情報記憶媒体
Claims (9)
- バスを介して接続される相手ノードと自ノードとの間でのデータ転送のためのデータ転送制御装置であって、
バスを介して接続される相手ノードから転送されてきたデータ転送オペレーション要求のための第1のコマンドパケットの処理中に上層のデバイスに、前記データ転送オペレーションにより要求されるデータ転送を中断させるエラーが発生した場合に、エラーステータスを相手ノードに転送するステータス転送手段と、
前記エラーステータスを受けた相手ノードからデータ転送オペレーション要求のための第2のコマンドパケットが転送されてきた場合に、前記第1のコマンドパケットの内容と前記第2のコマンドパケットの内容とを比較するコマンド比較処理、又は前記第1のコマンドパケットにより転送要求された転送データの先頭アドレスである第1のアドレスと前記第2のコマンドパケットにより転送要求された転送データの先頭アドレスである第2のアドレスとを比較するアドレス比較処理を行う比較手段と、
前記第1、第2のコマンドパケットが同一内容であると判断された場合、又は前記第1、第2のアドレスが同一であると判断された場合に、エラーの発生により中断したデータ転送を該エラー発生時点のデータ転送の続きから再開する再開手段と、
を含むことを特徴とするデータ転送制御装置。 - 請求項1において、
前記第1、第2のコマンドパケットが同一内容でないと判断された場合、又は前記第1、第2のアドレスが同一でないと判断された場合には、前記第2のコマンドパケットが新規のコマンドパケットとして処理されることを特徴とするデータ転送制御装置。 - 請求項1又は2において、
前記ステータス転送手段が、
コマンドパケットの所与のフィールドに、データ転送を再開するアドレスを特定するための情報を書き込むことを特徴とするデータ転送制御装置。 - 請求項1乃至3のいずれかにおいて、
前記比較手段が、
エラー発生後に相手ノードから転送されてきたコマンドパケットの中で最初に転送されてきたデータ転送オペレーション要求のためのコマンドパケットを、前記第1のコマンドパケットの比較対象となる前記第2のコマンドパケットとして採用することを特徴とするデータ転送制御装置。 - 請求項1乃至4のいずれかにおいて、
IEEE1394の規格に準拠したデータ転送を行うことを特徴とするデータ転送制御装置。 - 請求項1乃至5のいずれかのデータ転送制御装置との間でのデータ転送を制御するためのプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体であって、
データ転送制御装置からエラーステータスが転送されてきた場合に、エラー発生前に転送されたデータ転送オペレーション要求のための第1のコマンドパケットと同一内容の第2のコマンドパケットを作成し、データ転送制御装置に転送要求する手段としてコンピュータを機能させるためのプログラムを含むことを特徴とする情報記憶媒体。 - 請求項1乃至5のいずれかのデータ転送制御装置との間でのデータ転送を制御するためのプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体であって、
データ転送制御装置からエラーステータスが転送されてきた場合に、エラー発生前に転送された第1のコマンドパケットによるデータ転送を、エラー発生時点の続きから再開するための第2のコマンドパケットを作成し、データ転送制御装置に転送要求する手段としてコンピュータを機能させるためのプログラムを含むことを特徴とする情報記憶媒体。 - 請求項1乃至5のいずれかのデータ転送制御装置と、
前記データ転送制御装置及びバスを介して相手ノードから受信したデータに所与の処理を施す装置と、
処理が施されたデータを出力又は記憶するための装置とを含むことを特徴とする電子機器。 - 請求項1乃至5のいずれかのデータ転送制御装置と、
前記データ転送制御装置及びバスを介して相手ノードに転送するデータに所与の処理を施す装置と、
処理が施されるデータを取り込むための装置とを含むことを特徴とする電子機器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP36110499A JP3598924B2 (ja) | 1999-12-20 | 1999-12-20 | データ転送制御装置、情報記憶媒体及び電子機器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP36110499A JP3598924B2 (ja) | 1999-12-20 | 1999-12-20 | データ転送制御装置、情報記憶媒体及び電子機器 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2001177544A JP2001177544A (ja) | 2001-06-29 |
JP3598924B2 true JP3598924B2 (ja) | 2004-12-08 |
JP2001177544A5 JP2001177544A5 (ja) | 2005-02-17 |
Family
ID=18472222
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP36110499A Expired - Fee Related JP3598924B2 (ja) | 1999-12-20 | 1999-12-20 | データ転送制御装置、情報記憶媒体及び電子機器 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3598924B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4863754B2 (ja) * | 2006-04-17 | 2012-01-25 | エスアイアイ・データサービス株式会社 | 注文管理システム |
JP5586934B2 (ja) * | 2009-12-16 | 2014-09-10 | キヤノン株式会社 | 情報処理方法、情報処理装置、及びコンピュータプログラム |
-
1999
- 1999-12-20 JP JP36110499A patent/JP3598924B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001177544A (ja) | 2001-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3843667B2 (ja) | データ転送制御装置及び電子機器 | |
US6857028B1 (en) | Data transfer control device and electronic equipment | |
JP3598923B2 (ja) | データ転送制御装置、情報記憶媒体及び電子機器 | |
JP3584789B2 (ja) | データ転送制御装置及び電子機器 | |
JP3780776B2 (ja) | データ転送制御装置及び電子機器 | |
JP3598924B2 (ja) | データ転送制御装置、情報記憶媒体及び電子機器 | |
JP3494041B2 (ja) | データ転送制御装置及び電子機器 | |
US6978327B1 (en) | Data transfer control device and electronic equipment for performing data | |
US7085855B1 (en) | Data transfer control device and electronic equipment | |
JP3624767B2 (ja) | データ転送制御装置、情報記憶媒体及び電子機器 | |
JP3598922B2 (ja) | データ転送制御装置、情報記憶媒体及び電子機器 | |
US6834316B1 (en) | Data transfer controller and electronic device | |
JP2000134242A (ja) | データ転送制御装置及び電子機器 | |
JP3606145B2 (ja) | データ転送制御装置及び電子機器 | |
JP2005074928A (ja) | データ処理システム、データ処理装置、及びデータ受信プログラム | |
JP2003309618A (ja) | 通信装置及び通信方法 | |
JP4065466B2 (ja) | データ通信システム | |
JP2000032010A (ja) | デ―タ通信システム、デ―タ通信方法、デ―タ通信装置、デジタルインタフェ―ス及び記憶媒体 | |
JP3610982B2 (ja) | データ転送制御装置及び電子機器 | |
JP4175373B2 (ja) | 情報処理装置及び方法並びにデータ通信システム | |
JPH11149432A (ja) | データ転送処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040312 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040312 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20040312 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20040409 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040601 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040802 |
|
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: 20040824 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040906 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080924 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080924 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090924 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090924 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100924 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100924 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110924 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120924 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130924 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |