JP4086345B2 - 通信制御方法及び装置及び通信システム - Google Patents

通信制御方法及び装置及び通信システム Download PDF

Info

Publication number
JP4086345B2
JP4086345B2 JP24443097A JP24443097A JP4086345B2 JP 4086345 B2 JP4086345 B2 JP 4086345B2 JP 24443097 A JP24443097 A JP 24443097A JP 24443097 A JP24443097 A JP 24443097A JP 4086345 B2 JP4086345 B2 JP 4086345B2
Authority
JP
Japan
Prior art keywords
target
command
initiator
data
read
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
JP24443097A
Other languages
English (en)
Other versions
JPH1185662A (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP24443097A priority Critical patent/JP4086345B2/ja
Priority to EP02079458A priority patent/EP1280064B1/en
Priority to EP98307152A priority patent/EP0902371B1/en
Priority to DE69813976T priority patent/DE69813976T2/de
Priority to DE69839783T priority patent/DE69839783D1/de
Priority to US09/148,472 priority patent/US6452693B1/en
Priority to CA002246830A priority patent/CA2246830C/en
Priority to CNB981191320A priority patent/CN1179277C/zh
Priority to KR1019980037116A priority patent/KR100297219B1/ko
Publication of JPH1185662A publication Critical patent/JPH1185662A/ja
Priority to US10/194,202 priority patent/US6927873B2/en
Priority to US11/124,266 priority patent/US7296095B2/en
Application granted granted Critical
Publication of JP4086345B2 publication Critical patent/JP4086345B2/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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/126Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1211Improving printing performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1236Connection management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1293Printer information exchange with computer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40123Interconnection of computers and peripherals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0012High speed serial bus, e.g. IEEE P1394

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)
  • Record Information Processing For Printing (AREA)

Description

【0001】
【産業上の利用分野】
本発明は、例えばホストコンピュータとプリンタ等、機器同士を接続する通信制御方法及び通信制御装置に関する。
【0002】
【従来の技術】
近年、IEEE1394インターフェースが、コンピュータと周辺機器、あるいは周辺機器同士の接続に用いられつつある。IEEE1394インターフェースは、セントロニクスインターフェースなどのハンドシェイク方式に比べて高速で、しかも双方向通信が可能である。また、メモリバスモデルのインターフェースであり、IEEE1394インターフェースで接続された機器は、相手の機器に対して指定したアドレスのデータを読み書きすることができる。
【0003】
このIEEE1394は、広範囲に応用するための物理層及びリンク層のプロトコルを定めたもので、機器ごとの詳細なプロトコルは定められていない。そのため、物理・リンク層としてIEEE1394を利用したSBP(Serial Bus Protocol)−2などのトランスポート層のプロトコルが提案されている。トランスポート層はアプリケーションに対してデータ転送機能を提供する層であり、この層を利用するアプリケーションは、互いにデータの交換が可能となる。
【0004】
このSBP−2なるプロトコルは、IEEE1394のメモリバスモデルとしての特徴を活かしたプロトコルであり、データの受信側が自身の都合に応じてデータを受信することができる。
【0005】
SBP−2では、データを転送する場合に、まず送信側でログインという操作を行って通信相手との間のチャネルを確立する。この際、ログインされた側がイニシエータ、相手側がターゲットと呼ばれる。データ転送は、イニシエータからの指示に応じて、ターゲットからイニシエータにデータを読み書きすることで行われる。この方式においては、イニシエータは、ログイン後、送信するデータを格納したアドレスやサイズ等が書かれたORB(Operation Request Block)を作成し、そのORBのアドレスをターゲットに知らせる。ターゲットでは自分の都合に合わせてORBに書かれたアドレスやサイズに基づいてイニシエータからデータを読み出して処理し、あるいはデータを書き込み、それらの処理後ステータスブロックを作成して、処理の状態をイニシエータに知らせることになる。
【0006】
【発明が解決しようとする課題】
このIEEE1394の上に構築されるSBP−2プロトコルを利用して通信を行う場合、特に、ホストコンピュータ等のデータ源をイニシエータとし、それからターゲットであるプリンタ装置などの周辺機器へのデータ転送に応用する場合、次のような問題点があった。
▲1▼全2重通信のために手順が複雑である。
【0007】
SBP−2では、基本的にデータの転送はイニシエータによって管理され、ターゲットはイニシエータへの非同期のデータ転送を行うことができない。すなわち、SBP−2では、ターゲットがイニシエータへのデータ転送を行いたい時には、イニシエータに対してアンソリサイテドステータスでデータリード要求を送り、イニシエータはそれに応じてORB生成し、ペンディング中のORB(イニシエータからターゲットへのデータ転送要求などが含まれている)のリストの末尾にその生成したORBをつける。このORBは先頭から順番に処理されるため、ターゲットがイニシエータにリード要求を発行したタイミングではなく、イニシエータ側のORBの処理が進み、ターゲットからのデータリード要求によるORBが処理されたときに初めてターゲットからイニシエータにデータが転送されることになる。すなわち、双方向の非同期なデータ転送が行えず、ターゲットからイニシエータに転送すべきデータが非同期に発生する場合、例えばターゲットがプリンタであれば、そのプリンタでエラーが発生する場合など、直ちにイニシエータに伝達すべきデータを即時に伝達できない。
【0008】
このため、例えばプリンタで非同期に発生するデータを即時的にホストに転送するためには、プリンタをイニシエータとしてログイン手続きを行い、ホストコンピュータをターゲットとするデータ転送を行わねばならない。
【0009】
このようにホストコンピュータとプリンタで互いにログインしてそれぞれがイニシエータでありターゲットであるような状況では、ホストコンピュータ及びプリンタの双方にイニシエータとしてのプロセスとターゲットとしてのプロセスを備えなければならない。また、ログインの操作もプリンタから行わねばならない。
【0010】
プリンタのような画像を扱う周辺装置では、画像処理のために大量のメモリ資源やプロセッサ資源を消費する。そのために、装置の構成を簡略化して原価を節減したり、処理を迅速に行うため画像処理用途以外に用いられる資源をできるだけ節約しなければならないが、上述のように多くのプロセスを稼働することになればその分多くの資源を消費することになり、原価低減・処理の効率化という目的に反することになる。
【0011】
また、ホストコンピュータとプリンタとの関係であれば、各方向に流れるデータは、印刷データとそれに対する処理状況といったように、互いに関連付けられるものであるが、各方向について独立したログインによりチャネルを設定すると、それらデータとレスポンスとを関連づけなければならず、そのための処理手順を新たに追加する必要がある。
【0012】
このようにIEEE1394及びSBP−2をそのままホストコンピュータ−プリンタ装置間の通信に適用することは適切でなく、各装置における必要な資源を減らすことや効率を向上させることが難しかった。
▲2▼マルチチャネルを実現できない。
【0013】
最近、周辺装置として種々の機能を複合させた複合機が利用されつつある。例えば、ファクシミリ装置を、スキャナ単体,プリンタ単体,ファクシミリとしてホストコンピュータ等から利用できるデジタル複合機などがある。このような装置を利用する際には、各単体機能ごとに独立した複数のチャネルを介して通信を行えば、同時に複数の機能を利用することができる。
【0014】
しかしながら、SBP−2では、マルチチャネルを提供できないため、そのように単体機能を同時に利用することが難しい。
▲3▼SBP−2以外のプロトコルを採用すれば非同期に発生するデータの転送が可能となるものも、マルチチャネルが実現できるものもあるが、そのようなプロトコルではIEEE1394のメモリバスモデルとしての特徴を活かすことができない。すなわち、ホストとプリンタの通信であれば、プリンタ側の都合に応じてデータ転送を行うことができず、ホストがプリンタの状態を監視しながらデータ転送を行わねばならないことになる。
【0015】
本発明は上記従来例に鑑みてなされたもので、1回のログインで全2重通信(互いに非同期な双方向通信)を可能とし、また、データの交換に必要なプロセスやメモリといった資源を効率的に利用できる通信制御方法及び通信制御装置及びそれを用いた印刷装置を提供することを目的とする。
【0016】
また、イニシエータとターゲットとが互いのキューの空き容量を相互に監視しているため、ORBあるいはステータスブロックを送信した際に、確実に受信される通信制御方法及び通信制御装置及びそれを用いた印刷装置を提供することを目的とする。
【0017】
また、ターゲット側へのデータ転送を、ターゲットがその都合に応じて読み出すことで行うことができ、イニシエータがターゲットの都合によってデータ転送に占有されることを防止できる通信制御方法及び通信制御装置及びそれを用いた印刷装置を提供することを目的とする。
【0018】
また、マルチチャネルを実現する通信制御方法及び通信制御装置及びそれを用いた印刷装置を提供することを目的とする。
【0019】
【課題を解決するための手段】
上記目的を達成するために本発明は次のような構成から成る。すなわち、
イニシエータとターゲットとの間でデータを通信するための通信制御方法であって、
前記イニシエータが、前記イニシエータの記憶領域からのデータの読み出しの命令及び前記イニシエータの記憶領域に対するデータの書き込みの命令それぞれを、前記ターゲットに送信する送信工程と、
前記ターゲットが、前記読み出しの命令及び前記書き込みの命令それぞれを保持する保持工程と、
前記ターゲットが、保持された前記読み出しの命令に従って、前記イニシエータの記憶領域から前記ターゲットへのデータの読み出しを前記イニシエータに要求する読み出し工程と、
前記ターゲットが、保持された前記書き込みの命令に従って、前記イニシエータの記憶領域に対する前記ターゲットからのデータの書き込みを前記イニシエータに要求する書き込み工程とを有し、
前記送信工程では、前記イニシエータは、前記ターゲットに送信された前記読み出しの命令の数と前記読み出しの命令に従って行われたデータの読み出しの完了を示す前記ターゲットからの完了通知の数との差分が、前記ターゲットが保持できる前記読み出しの命令の数を超えないように、前記読み出しの命令を前記ターゲットに送信し、
前記送信工程では、前記イニシエータは、前記ターゲットに送信された前記書き込みの命令の数と前記書き込みの命令に従って行われたデータの書き込みの完了を示す前記ターゲットからの完了通知の数との差分が、前記ターゲットが保持できる前記書き込みの命令の数を超えないように、前記書き込みの命令を前記ターゲットに送信する
【0020】
あるいは、イニシエータとターゲットとの間でデータを通信する通信システムであって、
前記イニシエータにおいて、前記イニシエータの記憶領域からのデータの読み出しの命令及び前記イニシエータの記憶領域に対するデータの書き込みの命令それぞれを、前記ターゲットに送信する送信手段と、
前記ターゲットにおいて、前記読み出しの命令及び前記書き込みの命令それぞれを保持する手段と、
前記ターゲットにおいて、保持された前記読み出しの命令に従って、前記イニシエータの記憶領域から前記ターゲットへのデータの読み出しを前記イニシエータに要求する手段と、
前記ターゲットにおいて、保持された前記書き込みの命令に従って、前記イニシエータの記憶領域に対する前記ターゲットからのデータの書き込みを前記イニシエータに要求する手段とを有し、
前記送信手段は、前記ターゲットに送信された前記読み出しの命令の数と前記読み出しの命令に従って行われたデータの読み出しの完了を示す前記ターゲットからの完了通知の数との差分が、前記ターゲットが保持できる前記読み出しの命令の数を超えないように、前記読み出しの命令を前記ターゲットに送信し、
前記送信手段は、前記ターゲットに送信された前記書き込みの命令の数と前記書き込みの命令に従って行われたデータの書き込みの完了を示す前記ターゲットからの完了通知の数との差分が、前記ターゲットが保持できる前記書き込みの命令の数を超えないように、前記書き込みの命令を前記ターゲットに送信する
【0021】
あるいは、ターゲットとの間でデータを通信する通信制御装置であって、
前記通信制御装置の記憶領域からのデータの読み出しの命令及び前記通信制御装置の記憶領域に対するデータの書き込みの命令それぞれを生成する生成手段と、
前記読み出しの命令及び前記書き込みの命令それぞれを前記ターゲットに送信する送信手段とを有し、
前記ターゲットは、前記読み出しの命令に従って、前記通信制御装置の記憶領域から前記ターゲットへのデータの読み出しを前記通信制御装置に要求し、
前記ターゲットは、前記書き込みの命令に従って、前記通信制御装置の記憶領域に対する前記ターゲットからのデータの書き込みを前記通信制御装置に要求し、
前記送信手段は、前記ターゲットに送信された前記読み出しの命令の数と前記読み出しの命令に従って行われたデータの読み出しの完了を示す前記ターゲットからの完了通知の数との差分が、前記ターゲットが保持できる前記読み出しの命令の数を超えないように、前記読み出しの命令を前記ターゲットに送信し、
前記送信手段は、前記ターゲットに送信された前記書き込みの命令の数と前記書き込みの命令に従って行われたデータの書き込みの完了を示す前記ターゲットからの完了通知の数との差分が、前記ターゲットが保持できる前記書き込みの命令の数を超えないように、前記書き込みの命令を前記ターゲットに送信する
【0026】
また、本発明の他の側面によれば、イニシエータとターゲットとの間でデータを通信するための通信制御方法であって、
前記ターゲットにおいて、第1のキューの第1のコマンドに応じて、前記イニシエータの記憶領域の指定された位置からデータを前記ターゲットに読み出すことを前記イニシエータに要求する工程と、
前記ターゲットにおいて、第2のキューの第2のコマンドに応じて、前記イニシエータの記憶領域の指定された位置に前記ターゲットからのデータを書き込むことを前記イニシエータに要求する工程と、
前記ターゲットにおいて、コマンドに含まれている、前記第1のキューにキューされるべきかまたは前記第2のキューにキューされるべきかを示す指定に従って、前記第1のコマンドと前記第2のコマンドとをそれぞれ前記第1のキューまたは前記第2のキューに転送する転送工程と、
前記イニシエータにおいて、前記指定を含む前記第1のコマンドと前記指定を含む前記第2のコマンドとをそれぞれ生成する生成工程と、
前記第1のキューが空き領域を持っているかを判断する第1の判断工程と、
前記第2のキューが空き領域を持っているかを判断する第2の判断工程と、
対応するキューが空き領域を持っているときに前記第1のコマンドと前記第2のコマンドとがそれぞれ前記イニシエータから前記ターゲットに転送されるように、前記第1のコマンドと前記第2のコマンドとのそれぞれの転送を制御する制御工程とを有することを特徴とする。
【0027】
また、本発明の他の側面によれば、ターゲットとの間でデータを通信するイニシエータとしての通信制御装置であって、
第1のキューにキューされるべきかまたは第2のキューにキューされるべきかを示す指定を含む第1のコマンドと第2のコマンドとをそれぞれ生成する生成手段と、
前記第1のキューが空き領域を持っているかを判断する第1の判断手段と、
前記第2のキューが空き領域を持っているかを判断する第2の判断手段と、
対応するキューが空き領域を持っているときに前記第1のコマンドと前記第2のコマンドとがそれぞれ転送されるように、前記第1のコマンドと前記第2のコマンドとのそれぞれの転送を制御する転送制御手段とを有し、
前記ターゲットは、前記第1のキューの前記第1のコマンドに応じて、前記通信制御装置の記憶領域の指定された位置からデータを前記ターゲットに読み出すことを前記通信制御装置に要求し
前記ターゲットは、前記第2のキューの前記第2のコマンドに応じて、前記通信制御装置の記憶領域の指定された位置に前記ターゲットからのデータを書き込むことを前記通信制御装置に要求し
前記ターゲットは、前記指定に従って、前記第1のコマンドと前記第2のコマンドとをそれぞれ前記第1のキューまたは前記第2のキューに転送することを特徴とする。
【0028】
また、本発明の他の側面によれば、イニシエータの記憶領域の指定された位置からデータを読み出すようターゲットに指示する第1のタイプのコマンドと、前記イニシエータの記憶領域の指定された位置にデータを書き込むよう前記ターゲットに指示する第2のタイプのコマンドとを前記ターゲットに送信するイニシエータにおける通信制御方法であって、
前記ターゲットが前記第1のタイプのコマンドに従ってデータを読み出した後に行う完了通知に従って、未だ送信されていない前記第1のタイプのコマンドを前記ターゲットに送信する工程と、
前記ターゲットが前記第2のタイプのコマンドに従ってデータを書き込んだ後に行う完了通知に従って、未だ送信されていない前記第2のタイプのコマンドを前記ターゲットに送信する工程とを有する。
また、本発明の他の側面によれば、イニシエータの記憶領域の指定された位置からデータを読み出すようターゲットに指示する第1のタイプのコマンドと、前記イニシエータの記憶領域の指定された位置にデータを書き込むよう前記ターゲットに指示する第2のタイプのコマンドとを前記ターゲットに送信するイニシエータとしての通信制御装置であって、
前記ターゲットが前記第1のタイプのコマンドに従ってデータを読み出した後に行う完了通知に従って、未だ送信されていない前記第1のタイプのコマンドを前記ターゲットに送信する手段と、
前記ターゲットが前記第2のタイプのコマンドに従ってデータを書き込んだ後に行う完了通知に従って、未だ送信されていない前記第2のタイプのコマンドを前記ターゲットに送信する手段とを有する。
【0029】
【発明の実施の形態】
[第1の実施の形態]
本発明の第1の実施の形態として、ホストコンピュータとプリンタとを、IEEE1394で接続し、その上に構築されたSBP−2プロトコルを用いた、本発明に係るプロトコル(以下HPTと呼ぶ)に従ってデータ転送を行うプリンタシステムを説明する。図40は、そのプリンタシステムにおけるハードウエア構成図である。
<システムのハードウエア構成>
図40において、ホストコンピュータ200は、ROM3のプログラム用ROMに記憶された文書処理プログラム等に基づいて、図形,イメージ,文字,表(表計算等を含む)等が混在した文書処理を実行するCPU1を備える。CPU1はシステムデバイス4に接続される各デバイスをCPU1が総括的に制御する。また、ROM3のプログラム用ROMには、CPU1の制御プログラム等が記憶され、ROM3のフォント用ROMには上記文書処理の際に使用するフォントデータ等が記憶され、ROM3のデータ用ROMは上記文書処理等を行う際に使用する各種データが記憶される。RAM2は、CPU1の主メモリ,ワークエリア等として機能する。プログラムはRAM2に格納されても良い。また、RAM2には、送信データバッファやORBを格納するシステムメモリが確保される。
【0030】
キーボードコントローラ(KBC)5は、キーボード9や不図示のポインティングデバイスからのキー入力を制御する。CRTコントローラ(CRTC)6は、CRTディスプレイ(CRT)10の表示を制御する。メモリコントローラ(MC)7は、プートプログラム,種々のアプリケーション,フォントデータ,ユーザファイル,編集ファイル等を記憶するハードディスク(HD)、フロッピーディスク(FD)等の外部メモリ11とのアクセスを制御する。1394インターフェース8は、IEEE1394規格に従ってプリンタ100に接続されて、プリンタ100との通信制御処理を実行する。なお、CPU1は、例えばRAM2上に設定された表示情報RAMへのアウトラインフォントの展開(ラスタライズ)処理を実行し、CRT10上でのWYSIWYGを可能としている。また、CPU1は、CRT10上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウィンドウを開き、種々のデータ処理を実行する。
【0031】
プリンタ100において、プリンタCPU12は、ROM13のプログラム用ROMに記憶された制御プログラム等或いは外部メモリ14に記憶された制御プログラム等に基づいてシステムバス15に接続される各種のデバイスとのアクセスを総括的に制御し、印刷部インタフェース16を介して接続される印刷部(プリンタエンジン)17に出力情報としての画像信号を出力する。また、このROM13のプログラムROMには、後述する各種エージェントた画像処理を実現するCPU12の制御プログラム等が記憶される。ROM13のフォント用ROMには上記出力情報を生成する際に使用するフォントデータ等が記憶され、ROM13のデータ用ROMには、ハードディスク等の外部メモリ14が無いプリンタの場合には、ホストコンピュータ上で利用される情報等が記憶されている。CPU12は1394インターフェース18を介してホストコンピュータとの通信処理が可能となっており、プリンタ内の情報等をホストコンピュータ200に通知可能に構成されている。
【0032】
RAM19は、CPU12の主メモリ、ワークエリア等として機能するRAMで、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。なお、RAM19は、出力情報展開領域、環境データ格納領域、NVRAM等に用いられる。
【0033】
前述したハードディスク(HD)、ICカード等の外部メモリ14は、メモリコントローラ(MC)20によりアクセスを制御される。外部メモリ14は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、操作パネル18には、操作のためのスイッチおよびLED表示器等が配されている。また、前述した外部メモリは1個に限らず、少なくとも1個以上備え、内蔵フォントに加えてオプションフォントカード,言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていても良い。さらに、図示しないNVRAMを有し、操作パネル1012からのプリンタモード設定情報を記憶するようにしても良い。
<イニシエータの構成>
上述したハードウエア構成において、プリンタ100をターゲットとし、ホストコンピュータ200をイニシエータとした通信システムを、図1及び図2に示す。本実施形態に置いては、これら構成は、それぞれホストコンピュータ及びプリンタにおけるCPUによりプログラムを実行することで実現される。まず、図2のイニシエータから説明する。
【0034】
図2において、イニシエータであるホストコンピュータにおいては、アプリケーションであるプリンタドライバ209はHPT処理部203を介してプリンタに対するデータ転送要求を発行するとともに、プリンタからの応答を受ける。
【0035】
HPT処理部203はORB管理部206を含んでおり、システムメモリ208に生成されるORBを管理している。ORBはホストコンピュータからプリンタへ、あるいはプリンタからホストコンピュータへ転送されるデータバッファのアドレスやサイズ等を格納したブロックであり、先頭のORBから順次リンクされている。このORBについては、次のような処理の原則がある。
▲1▼リンクの先頭のORBから順次処理される。完了通知(ステータスブロック)を受信するとリンクからはずされる。
▲2▼新たに生成されたORBはリンクの末尾につながれる。
▲3▼リンクされるORBの数の上限は後述するプリンタにおける2つのキューの容量の合計と同一である。
【0036】
この▲3▼項を実現するために、ORB管理部206は、プリンタの2つのキューそれぞれについて2つのカウンタを用意している。ひとつはCurrentQuedQUEというカウンタであり、後述するプリンタのプリフェッチキューの現在の空き数を示している。また、もうひとつはCurrentImmediateQUEというカウンタである。こちらのカウンタが対応するキューの容量は本実施形態では1であり、処理されているエントリのみがキューに入っているということができる。これらカウンタは、ORBの生成と削除に合わせて増減される。
【0037】
また、ORBを生成した際には、プリンタ側のドアベルレジスタと呼ばれるレジスタに書き込むことにより、ORBが発生したことをプリンタに知らせる。この手続きはSBP−2で規定されているもので、その規格書等に記載されている。
【0038】
また、HPT処理部203は、ステータスキュー204及びキュー処理部205を含む。1394インターフェース201を介して受信されたステータスは、ステータス識別部202により識別され、ステータスの種類に応じて直接ORB管理部206に送り付けられるか、あるいはステータスキュー204に入れられ、先入先出順にキュー処理部205で処理される。ステータスの種類には2種類ある。
▲1▼ノーマルステータス…ホストコンピュータ−プリンタ間のデータ転送の結果を通知するステータスブロックであり、直接ORB管理部に送られる。
▲2▼アンソリサイテド(Unsolicited)ステータス…プリンタからホストコンピュータに対して転送すべき非同期データが発生したことを示すステータスブロックであり、ステータスキューに入れられる。これは通常プリンタから自発的に発行される。
これらの区別はステータスブロックに書き込まれた値によってなされる。
【0039】
また、ステータスレジスタ210はプリンタから書き込まれるレジスタであり、ホストコンピュータが読むべきデータがプリンタがあることを示す。
【0040】
イニシエータたるホストコンピュータは以上のような機能的な構成からなっている。
<ターゲットの構成>
図1は、ターゲットたるプリンタの機能上の構成を示すブロック図である。
【0041】
図1において、ドアベルレジスタ108はホストコンピュータによって書き込まれるレジスタであり、ORBが新たに生成されたことを示す。コマンドフェッチエージェント103は、1394インターフェース101を介してORBを読み込み、その種類に応じてプリフェッチキュー104に入れるか、あるいは即時実行エージェント106に送りつける。このコマンドの種類は、即時実行か順次実行かを示すフィールドを基準にして判定される。しかし、実質的にはこのフィールドはコマンドの機能に対応しており、本実施形態ではターゲットからイニシエータへのデータ転送のためのコマンド(リード要求コマンド)や、ターゲットの状態を捕捉するためのコマンドは即時実行であり、イニシエータからターゲットへの印刷データの転送などは順次実行とされている。
【0042】
順次実行エージェント105及び即時実行エージェント106は、ともにコマンドフェッチエージェント103によって読み込まれたORBを、その内容に応じて、ホストコンピュータのバッファからのデータの読み出しや、データ処理部7から与えられたデータの書込みなどを行う。その後、ホストコンピュータにノーマルステータスを返す。
【0043】
さらに、即時実行エージェント106は、PDLを解釈実行してラスタデータを生成するラスタライズやデバイス管理を行うデータ処理部107からのデータ転送要求に応じて、アンソリサイテドステータスをホストコンピュータに送る。バスインターフェース102は、プリンタ100からホストコンピュータ200のシステムメモリ208の所望のメモリロケーションにアクセスするためのインターフェースである。
【0044】
なお、本例のシステムでは、順次実行エージェントはホストコンピュータからプリンタへのデータ転送のORBのために用いられ、即時実行エージェントはプリンタからホストコンピュータへのデータ転送のORBのために用いられる。
【0045】
以上、イニシエータ及びタ−ゲットの構成と動作を簡単に説明した。これらを更に詳しく説明する前に、まずORBの詳しい内容を説明する。
<コマンドORB(Operation Request Block)の内容>
図3はORB一般の構成を示す図である。図3(A)において、"Next_ORB"(リンク)フィールド301は、次のORBへのリンクである。次のORBがない場合にはそれを表す所定の値が入れられる。なお、先頭のORBは、所定のアドレスレジスタにより示される。"data_descripter"(データアドレス)フィールド302は、データバッファのアドレスを示す。"d"(方向)フィールド303は、ホストコンピュータからプリンタへのデータ転送(0:ライト)か、プリンタからホストコンピュータへのデータ転送(1:リード)かを示す。"data_size"(データサイズ)フィールド304は、アドレスフィールド302で指し示されるデータバッファのサイズを示す。以上、図の点線よりも上のフィールドがSBP−2で規定されているフィールドであり、これから説明するフィールド305〜308が、HPTに固有の処理に用いられるフィールドである。
【0046】
"i"フィールド(即時ビット)305は、ターゲットにおいて、即時実行エージェントか、順次実行エージェントかどちらで実行されるORBであるかを示している。値が0すなわち順次実行エージェントであればプリフェッチキューに入れられ、値が1であれば即時実行エージェントにより処理される。"function"(ファンクション)フィールド306は、図3(B)に示すようにORBの意味を示している。これについては、更に詳しく説明する。"command_block_length"(コマンド長)フィールド307は、"control_block"(コントロールブロック)フィールド308の長さを表している。コントロールブロックフィールド308には、ファンクションフィールド306の値に応じて様々な値が入れられる。
【0047】
次に、機能ごとにORBの内容を説明する。
(キューデプスコマンド)
図4はファンクション=0のキューデプスコマンドORBを示している。このコマンドは、ターゲットのプリフェッチキュー104の深さを得るためのコマンドである。即時ビットは1にセットされる。
【0048】
このコマンドのコントロールブロックには、"source_ID"(ソースID)401と"status_queue_length"(ステータスキュー長)402の2つのフィールドが含まれている。ソースIDは、イニシエータにログインしたプロセスの識別子が入れられる。図2の例では、ログインしたプロセスはプリンタドライバとなる。これは、複数のプロセスがログインしている場合に、ターゲットが応答すべきプロセスを識別するために付加されている。また、ステータスキュー長402は、イニシエータの有するステータスキュー204の深さをターゲットに知らせるためのフィールドである。
【0049】
ステータスキュー長は、ターゲットにおいてステータスキューにどれだけアンソリサイテドステータスがキューイングされているかを管理するために用いられる。ターゲットは、イニシエータがプリフェッチキューを管理するのと同様に、アンソリサイテドステータスの生成および処理済みの通知に従ってステータスキューの深さを管理している。
【0050】
このコマンドを受けたターゲットは、ステータスキュー長をカウンタCurrentUnsolicitedQUEに格納するとともに、プリフェッチキュー長をイニシエータに返す。イニシエータでは、このコマンドによって得たプリフェッチキューのキューの深さを元にして、ORBの生成および消去という動作に応じて、ターゲットにキューされているORBの数を管理する。
(データ転送コマンド)
図5はファンクション=1のデータ転送コマンドORBを示している。このコマンドは、イニシエータからターゲットにデータを転送するためのコマンドである。"page_table_present"ビット501は、ページテーブルの存在を示しており、ページテーブルがある場合には、"page_size"フィールド502にページテーブルにより参照されるページサイズをセットする。転送するデータバッファは、このページテーブルとアドレス503およびデータサイズ504によって示される。
【0051】
このコマンドを受けたターゲットは方向フィールドの値に応じて、指定されたデータバッファへのデータのかき込みあるいはバッファからデータの読み出しを行う。
(リード要求コマンド)
図6はファンクション=2のリード要求コマンドORBを示している。このコマンドは、ターゲットから「リード要求ステータス」、すなわちターゲットのプリンタからホストへのデータ転送要求が送られてきた場合に、プリンタにデータを書き込むべきデータバッファを提供するコマンドである。"sequence_number"(シーケンス番号)フィールド601は、このコマンドを発行するきっかけとなった対応するリード要求ステータスに付されているシーケンス番号と同一の値であり、リード要求ステータスとリード要求コマンドとを対応づけるための番号である。その他のフィールドの構成はデータ転送コマンドと同様である。ただし、即時ビットは1、方向ビットも1(リード)に設定される。即時ビットが1に設定されているのは、ターゲットから発行されるリード要求ステータスに対して直ちに対応するためである。また、バッファのサイズは、リード要求ステータスによって指定されている値を使用する。
【0052】
このコマンドを受けたターゲットは、イニシエータのシステムメモリに確保された、指定されたデータバッファへとデータを書き込む。
(ダイレクトステータス応答コマンド)
図7はファンクション=3のダイレクトステータス応答コマンドORBを示している。このコマンドは、ターゲットによりリード要求を破棄させる場合に、リード要求ステータスに対応して発行される。あるいは、ターゲットからのダイレクトステータスに対応したターゲットへの応答に用いられる。"sequence_number"(シーケンス番号)フィールド701は、このコマンドを発行するきっかけとなった対応するリード要求ステータスあるいはダイレクトステータスに付されているシーケンス番号と同一の値である。その他のフィールドの構成はデータ転送コマンドと同様である。ただし、即時ビットは1に設定される。
【0053】
このコマンドを受けたターゲットは、対応するシーケンス番号を有するリード要求ステータスを発行していれば、それにかかるリード要求を破棄する。
(デバイス資源獲得コマンド)
図8はファンクション=8のデバイス資源獲得コマンドORBを示している。"resource_ID"(リソースID)フィールド801は、図8(B)に示されている。値0は、使用するデバイスクラスおよび論理ユニット特性に依存した値であり、このシステムでは、0はデバイスクラスとしてプリンタ、論理ユニット特性として印刷サービスを示している。
【0054】
このコマンドを受けたターゲットは、リソースIDで指定された資源を、このコマンドの送り手であるイニシエータに対して割り当てる。
(デバイス資源解放コマンド)
図9はファンクション=9のデバイス資源解放コマンドORBを示している。"resource_ID"(リソースID)フィールド801は、図8(B)に示されている通りである。
【0055】
このコマンドを受けたターゲットは、リソースIDで指定された資源を解放する。
(基本デバイスステータスコマンド)
図10はファンクション=A(Hex)の基本デバイスステータスコマンドORBを示している。
【0056】
このコマンドを受けたターゲットは、ターゲット自身の有する状態を基本デバイスステータスブロックにのせてイニシエータに応答する。イニシエータはこのコマンドを発行することで、ターゲットの状態を把握できる。プリンタにおいては、例えば用紙サイズやサポートするエミュレーション、その他のプリンタに関る様々な状態情報が基本ステータスとしてターゲットから返される。
<ステータスブロックの内容>
図11は、ターゲットであるプリンタからイニシエータであるホストコンピュータに返されるステータスブロックを示している。ステータスブロックは、前述したコマンドORBに対応して用意されている。ステータスブロックは、ターゲットの順次実行エージェントおよび即時実行エージェントから発行される。
【0057】
図11(A)において、右側の点線より上の部分はSBP−2により規定されたフィールドであり、ステータスに対応するコマンドORBを示すためなどのフィールドを含む。"i"(即時ビット)1101は、ステータスが順次実行エージェントと即時実行エージェントのいずれから発行されたかを示す。値が0であれば順次実行エージェントから、1であれば即時実行エージェントから発行されたことを示す。"hpt_status"(hptステータス)フォールド1102は、図11(B)に示したように、ステータスブロックの種類を示している。"hpt_status_dependent"フィールド1103は、hptステータスに依存してその値が与えられる。"status_length"(ステータス長)フィールド104は、レスポンスブロック1105の長さを示している。次に、種類毎にステータスブロックを説明する。
(キューデプスステータスブロック)
図12は、hptステータス=0のキューデプスステータスを示している。キューデプスステータスは、キューデプスコマンドに対するターゲットからの応答であり、ターゲットは"prefetch_queue_depth"フィールド1201にプリフェッチキュー104の深さをセットしてイニシエータに返す。これによりイニシエータはプリフェッチキューの容量を知ることができ、その容量にあわせて生成するORBの数を管理する。
(データ転送ステータスブロック)
図13は、hptステータス=1のデータ転送ステータスを示している。データ転送ステータスは、データ転送コマンドに対するターゲットからの応答であり、データ転送コマンドORBの処理が終了した時点でターゲットから発行される。イニシエータはこのステータスを受けることで、ターゲットのキューから1つのORBが処理されて排出されたことを知ることができる。
(リード要求ステータスブロック)
このステータスはhptステータス=2であり、そのフォーマットは特に図示しないが、レスポンスブロック内に、イニシエータに確保させるデータバッファのサイズを有している。このステータスは、コマンドORBに対して発行されるのではなく、通常ターゲットから自発的に発行される。イニシエータはこのリード要求ステータスに対して、前述したリード要求コマンドORBを発行する。この手順については後述する。
(ダイレクトステータスブロック)
このステータスはhptステータス=3であり、そのフォーマットは特に図示しないが、レスポンスブロック内に、アプリケーションレベル(すなわちターゲットにおけるデータ処理部)のステータスを含んでいる。すなわち、通常はアプリケーションレベルのデータの交換はORBとそれにリンクしたデータバッファとを用いて行われる。しかし、データが非常に小さく、レスポンスブロックの上限(本例では24バイト)内に治まる場合には、HTPレベルの応答にアプリケーションレベルの応答を重畳してしまう。イニシエータではこのステータスに対応してダイレクトステータス応答コマンドORBを発行する。
(デバイス資源獲得ステータスブロック)
このステータスはhptステータス=8であり、そのフォーマットは特に図示しないが、デバイス資源獲得コマンドを受けてそれを処理したターゲットから発行される。
(デバイス資源解放ステータスブロック)
このステータスはhptステータス=9であり、そのフォーマットは特に図示しないが、デバイス資源解放コマンドを受けてそれを処理したターゲットから発行される。
(基本デバイスステータスブロック)
このステータスはhptステータス=A(Hex)であり、そのフォーマットは特に図示しないが、基本デバイスステータスコマンドを受けた場合に、ターゲットから発行される。このステータスには、所定のデバイスステータスがセットされる。
【0058】
以上、本実施形態の印刷システムにおいて用いられるコマンドおよびステータスについて説明した。次に、イニシエータおよびターゲットにおけるデータ交換の手順を説明する。
<イニシエータからのデータ転送要求処理>
図14はホストコンピュータにおける、ホストコンピュータからプリンタあるいはプリンタからホストコンピュータへのデータ転送要求に応じて、プリンタにコマンドORBの生成を通知する手順を示している。
【0059】
プリンタドライバ等のアプリケーションからデータの転送要求はステップS1401で監視されている。データ転送要求には、プリンタドライバ等のアプリケーションが転送すべきデータがあることを知らせてくる場合と、プリンタからのデータリード要求に応じて知らされる場合とがある。なおプリンタが主体的にホストコンピュータに送るステータスを、アンソリサイテドステータスと呼ぶ。一方、ホストコンピュータからのコマンドORBの処理完了通知として返すステータスをノーマルステータスと呼ぶ。
【0060】
データ転送要求があると、ステップS1402で、それを順次実行とするか、即時実行とするか決定し、ORBの即時ビットにセットする。プリンタからのアンソリサイテドステータスによってORBを発行する場合は即時実行、ホストコンピュータのアプリケーションからのデータ転送要求による場合には順次実行としている。
【0061】
順次実行の場合、ステップS1403においてカウンタCurrentQuedQUEが0でないか判定する。このカウンタCurrentQuedQUEの初期値としては、電源立ち上げ時やリセット時等、プリンタのプリフェッチキューの深さがキューデプスコマンドにより読取られて、それがセットされる。すなわち、カウンタCurrentQuedQUEにより、現在のプリフェッチキューの空きがカウントされる。ステップS1404において空きが0であれば、ターゲットのプリフェッチキューは空いていないので、空くまでまつ。空きがあればステップS1404でカウンタCurrentQuedQUEを1減らし、ステップS1407でデータ転送ORBを生成してリストにリンクする。このとき、アプリケーションによって作成されているデータバッファがORBにリンクされる。その後、ステップS1408で、プリンタのドアベルレジスタ108に書き込み、OBRが発生したことをターゲットに知らせる。
【0062】
一方、ステップS1402で即時実行であると判定された場合、ステップS140でカウンタCurrentImmediateQUEの値が0より大きいか判定する。なお、ターゲットの即時実行エージェントにはキューは用意されておらず、従ってこのカウンタの値は最大値が1であり、リセット時に1に設定されている。0より大きい場合には、ステップS1406でそのカウンタを1減らし、ORBを生成リンクにリストしてドアベルを書き込む。
【0063】
以上のようにしてドアベルレジスタに書き込まれると、図15の手順で、フェッチエージェントによってORBがターゲットに取り込まれる。
<フェッチエージェントによる処理>
図15は、ドアベルレジスタ108に書き込みが行われた際のターゲットのフェッチエージェントによる処理手順である。
【0064】
ドアベルレジスタ108に書き込まれると、ステップS1601においてリードポインタに、システムメモリ内でリンクされている先頭のORBのアドレスを設定する。
【0065】
ステップS1602では、リードポインタで示されるORBの即時ビットをテストし、即時であるか順次であるか判定する。順次実行である場合には、ステップS1603でプリフェッチキュー104の最後尾のアドレス(NextWritePointer)を獲得する。ホストコンピュータはプリフェッチキューの空きを確認してドアベルをライトするので、キューの空きは保証されている。
【0066】
次にステップS1604で、リードポインタで示されるORBをプリフェッチキューの最後尾にコピーし、ステップS1605で、順次実行エージェントに対してORBの受信を通知する。ステップS1606で、リードポインタで示されるORBの"Next_ORB"フィールド(次のORBへのリンクフィールド)がヌルではないか、すなわちリンクしているORBがあるか判定し、なければ終了するが、あれば、そのリンクされているORBのアドレスをリードポインタに設定してステップS1602からくり返す。
【0067】
一方、ステップS1602で即時実行されるORBであると判定されると、ステップS1608では、そのORBを即時実行エージェントによって予め示されるアドレスへとコピーする。その後、ステップS1609で即時実行エージェントにORBの受信を通知し、ステップS1606に進む。
【0068】
以上のようにしてORBがターゲットの取り込まれて各実行エージェントにORBの受信が通知され、図16の手順でORBの処理が実行される。
<実行エージェントによる処理>
実行エージェントは、即時実行エージェントと順次実行エージェントがあるが、ORBの処理に関しては同じ手順であるので、図16としてまとめて説明する。
【0069】
実行エージェントは、フェッチエージェントからORB受信の通知があると、ステップS1701においてNextreadpointerにより指し示されるORBのデータアドレスフィールド、方向ビット、データサイズフィールドの値を取り出す。なお、Nextreadpointerとは、キューに格納されている、実行エージェントがまさに処理するORBへのポインタである。順次実行エージェントにおいては、プリフェッチキューの先頭のORBが指し示される。
【0070】
ステップS1702では、取り出したデータサイズが0であるか判定し、サイズが0でなければ、ステップS1703において方向ビット(Direction bit)がライトであるかリードであるか判定する。ライトである場合には、データアドレスとデータサイズで指定されるデータをイニシエータのシステムメモリから読み出し、データ処理部107に渡す。
【0071】
データ処理部はステップS1705〜S1707で渡されたデータを処理する。例えば、プリンタではPDLデータの解析やラスタライズなどが行われる。
【0072】
データ処理部での処理終了が通知されると、ステップS1708で、当該ORBの処理が完了した旨通知するデータ転送ステータスブロック(ノーマルステータス)を生成し、ステップS1709でステータスをイニシエータにの通知するために、ステータスレジスタ210にその旨書き込む。
【0073】
一方、ステップS1703でORBの方向ビットがリードであると判定されると、ステップS1710において、ORBのデータアドレスフィールドおよびデータサイズフィールドで指定されたデータバッファに、データを書き込む。このターゲットから書き込まれるデータをリバースデータと呼ぶ。書き込むリバースデータは、データ処理部などで作成、バッファに格納されているデータであり、例えば、プリンタの搭載フォントの列挙といった24バイト以上のデータである。
【0074】
ステップS1711では書き込みが済んだデータを格納してあったバッファを解放する。
【0075】
処理が終了したなら、ステップS1713で処理完了通知のステータスブロック(ノーマルステータス)を作成し、ステップS1714でステータスレジスタに所定の値を書き込んでステータスブロックの通知をホストコンピュータに知らせる。
【0076】
最後に、ステップS1715において、カウンタCurrentUnsolicitedQUEを1増やして終了する。このカウンタCurrentUnsolicitedQUEは、キューデプスコマンドを受信した際に、その"status_que_depth"フィールドに格納されている値が初期値として設定されている。このカウンタは、ステータスキュー204の空きを示すように、アンソリサイテドステータスブロックの送信と、その処理済みの通知に応じて増減される。カウンタCurrentUnsolicitedQUEのカウントは次の条件に従って行われる。
−カウントアップの条件
▲1▼アンソリサイテドステータスブロックを送信した場合1加算する。イニシエータではアンソリサイテドステータスのみがステータスキュー204にキューイングされる。
−カウントダウンの条件
▲1▼リード要求ORBの処理完了のステータスブロックを送信した場合に1加算する。イニシエータではこのステータスを受けてステータスキュー203から処理済みのステータスブロックをはずす。
▲2▼データサイズが0のORBの処理完了のステータスブロックを送信した場合に1加算する。すなわち、ダイレクトステータス応答のORBに対するステータスブロックを送信した場合に1加算する。イニシエータでは、このステータスを受けてステータスキュー203から処理済みのステータスブロック(ダイレクトステータス)をはずす。
【0077】
また、ステップS1702でデータサイズが0であると判定されたなら、特に処理すべきデータはないので、何もせずに処理完了通知を送るべくステップS1713でステータスブロックを応答する。
【0078】
以上の手順で、イニシエータによるORBの生成から、ターゲットによるその処理とステータスブロックの生成までの処理が行われる。次に、図17,18を参照して、プリンタからホストコンピュータへのアンソリサイテドステータスの送信をきっかけとするデータ転送を説明する。
<ターゲットにおけるアンソリサイテドステータスの発行処理>
プリンタに紙切れやジャム等のエラーが発生した場合など、プリンタからホストコンピュータに直ちに通知しなければならない情報がある。この場合にはプリンタが主体となって、データをプリンタに転送する。プリンタから送るべきデータがあると、データ処理部107はその旨即時実行エージェントに通知し、それにより図17の処理が開始される。
【0079】
ステップS1801では、ホストコンピュータに送信すべきデータが24バイト超過であるか判定する。24バイトとは、ステータスブロックのレスポンスブロックにいれられるデータ量の上限である。
【0080】
上限値を越えている場合、ステップS1802でリード要求ステータスブロック(アンソリサイテドステータス)を生成し、ステップS1803でステータスブロックの"ORB_offset"フィールドにリバースデータが格納されたアドレスを設定する。このとき、リバースデータのサイズもステータスブロックに書き込まれる。
【0081】
ステップS1804では、カウンタCurrentUnsolicitedQUEの値が0より大きい以下、すなわちステータスキューに空きがあるか判定する。空きがなければ空くまで待ってから、ステップS1805で、カウンタCurrentUnsolicitedQUEの値を1減らして、ステップS1806でステータスレジスタに適当な値を書き込む。
【0082】
一方、データが24バイト以下であれば、そのデータはステータスブロックに重畳してホストコンピュータに送れるため、ダイレクトステータス(アンソリサイテドステータス)を作成し、そのコマンドセット依存フィールドにリバースデータを格納する。その後ステップS1804に分岐する。
【0083】
以上のようにして、アンソリサイテドステータスがイニシエータに送り付けられる。
【0084】
ターゲットからステータスを受けたイニシエータは、図18の手順でそれを処理する。
<イニシエータによるステータス処理>
この処理は、ステータスレジスタに所定の値がセットされて生じる割り込みによって起動される。また、この割り込みとしては、ステータスレジスタに値がセットされるごとの多重割り込みを許している。
【0085】
まずステップS1501において、ステータスがノーマルステータスかアンソリサイテドステータスか判別する。アンソリサイテドステータスであれば、ステップS1502で、ステータスブロックをターゲットから読み出してステータスキューの末尾にコピーする。ステップS1503ではそのブロックがキューの先頭になったか判定し、キューの先頭になったなら、ステップS1504で、リバースデータの格納用のバッファを確保し、ステップS1505でそのステータスがリード要求ステータスかそれともダイレクトステータスか判定する。
【0086】
リード要求ステータスであれば、リード要求コマンドORBをステップS1506で作成する。作成されるORBは、即時フラグが「即時」であり、方向フラグがリードである。また、バッファのアドレスをORBに搭載する。この後、データ転送の必要事項が生じたことを図14のプロセスに通知する。図14のプロセスにより、ステップS1506で作成されたORBはターゲットに送られ、そのデータバッファにターゲットからデータが書き込まれてデータ転送が行われることになる。
【0087】
ステップS1505でダイレクトステータスと判定された場合、そのステータス内のリバースデータを確保したバッファにコピーし、ステップS1509で、アプリケーション等の上位プロセスにそのリバースデータを送る。その後、ダイレクトステータス応答ORB(即時ビットは「即時」)をステップS1510で作成する。この時データサイズは0に指定する。
【0088】
一方、ステップS1501でノーマルステータスと判定されると、そのステータスに対応するORBの方向ビットがリードかライトかステップS1511で判定される。ライト、すなわちイニシエータからターゲットへのデータ転送であった場合、対応ORBをリストから削除し(ステップS1512)、それが使用していたデータバッファを解放し(ステップS1513)、プリフェッチキューの空き容量であるカウンタCurrentQuedQUEの値を1増やす。
【0089】
方向ビットがリード、すなわちターゲットからイニシエータへのデータ転送であれば、そのステータスはリード要求コマンドORBに対する応答であるので、ステップS1515で、プリンタドライバ等の上位プロセスにリード処理の終了を通知して、ステップS1516で対応ORBをリストから削除し、カウンタCurrentImmediateQUEを1増やす。すなわち、即時実行エージェントに次のORBを送ることができる状態にする。
【0090】
以上のようにして、ステータスレジスタへの書き込みが行われた場合に、ステータスを処理する。すなわち、アンソリサイテドステータスはキューするが、ノーマルステータスは直ちに処理される。アンソリサイテドステータスをキューイングする理由は、アンソリサイテドステータスはORBの生成を引き起こすが、生成されリストされるORBの数はプリフェッチキューの容量を上回らないように制限されているためである。ORBの数をこのように制限するのは、即時実行されるべきORBが、ORB作成通知後直ちに処理されることを保証するためである。ORBが無制限に作られてしまうと、ORBリスト自体が即時実行エージェントに処理されるORBのキューとなってしまい、即時実行が保証されなくなる。リンクされるORBの数を、ターゲットのプリフェッチキューに入れられているORBの数と即時実行エージェントで実行されているORBの数(1)との合計値に制限することで、リンクリスト上のORBを、ターゲットにおけるプリフェッチキューに対して透過にすることができる。
<メッセージシーケンスの例>
以上説明した手順でイニシエータとターゲットとの間で交換されるメッセージシーケンスの例を、図19〜図21を用いて説明する。
(ターゲットへのデータ転送シーケンス)
図19は、イニシエータ(ホストコンピュータ)からターゲット(プリンタ)へのデータ転送時のシーケンス例である。
【0091】
なお、図中のSBP−2とは、SBP−2規格で規定されたデータ、すなわち図3のコマンドおよび図11のステータスにおける、SBP−2で規定されたフィールドを処理する処理層である。また、HPTとは、SBP−2で規定されいない、ファンクションごとに定められた処理を行う処理層である。HPTでは、前述したフローチャートの手順を行う。SBP−2は、その手順において、ORBのリンクやドアベルのライト、ORBやステータスのHPTへの引き渡し等の機能を果たす。
【0092】
まず、イニシエータのアプリケーションでデータ、HPTでORB(ここではデータ転送ORB)が作成され、空きキューカウンタ(CurrentQuedQUE)が1減らされて、ORBのリンク要求がSBP−2に出される(1901)。SBP−2ではORBをリンクしてドアベルレジスタにライト要求を出す(1902)。1394インタフェースにより、ドアベルレジスタが書き込まれ(1903)、それがターゲットのSBP−2に通知される(1904)。
【0093】
通知を受けたSBP−2は、ORBリード要求を1394インタフェースに出して(1905)、システムメモリからORBが読み出される(1906)。HPTは、読み出されたORBの内容に応じて対応キューに格納する(1907)。ここではデータ転送コマンドORBなので、1394インタフェースに対してデータリード要求を出す(1908)。これに応じて、指定されたアドレスからデータが読み出され、アプリケーションに渡される(1909)。アプリケーションは、この場合画像の展開を行うラスタライザ等であり、展開された画像はプリンタエンジンから印刷出力されることになる。
【0094】
これに対してターゲットのSBP−2に対してステータスブロック送信要求が出され(1910)、ステータスブロック(データ転送ステータス)がイニシエータに返される(1911)。イニシエータのHTPは、これを受けると対応ORBをリンクから削除し、空きキューカウンタを1増やす(1912)。
【0095】
以上のシーケンスによりイニシエータからターゲットにデータが転送される。(イニシエータへのデータ転送シーケンス)
図20は、リード要求ステータスのシーケンスである。
【0096】
ターゲットのアプリケーションでデータが作成されると、アンソリサイテドステータス(リード要求ステータス)が作成され、ステータスキューカウンタ(CurrentUnsolicitedQUE)が1減らされて、アンソリサイテドステータス送信要求が出される(2001)。これを受けたSBP−2ではアンソリサイテドステータスブロックをイニシエータに送信する(2002)。イニシエータのSBP−2層は、このステータスを受けてHPT層にアンソリサイテドステータスブロックを送信する(2003)。HPT層は、アンソリサイテドステータスブロックをステータスキューにコピーする。
【0097】
ステータスキューの先頭のステータスについては、データバッファおよびリード要求ORBを作成してSBP−2層に作成したORBのリンクを要求する(2004)。SBP−2層は、ドアベルレジスタへの書き込み要求を出し(2005)、1394インタフェースによりライトが行われる(2006)。ドアベル書き込みの通知は1394インタフェースからSBP−2に通知され(2007)直ちにORBのリード要求(2008)とORBのリードが行われる(2009)。読み出されたORBはターゲットのHPT層に渡され、HPTでは指定されたキューにそれを格納した後(2010)、その内容を解析してデータリード要求であることを認識し、データライト要求を1394インタフェースに対して出す(2011)。
【0098】
これに応じてリバースデータがイニシエータの用意したデータバッファに書き込まれる(2012)。
【0099】
この処理が終わると、ステータスブロック作成要求ががターゲットから出され、ステータスキューの空きが1つ増やされる(2013)。それに応じてノーマルステータスブロックがイニシエータに返され(2014)、それによってHPTにORBのリンク削除の要求が出されると、対応ORBが削除され、即時実行エージェント側のキューの空き数(0のはずである)に1加えられ、使用されたデータバッファが解放される(2015)。
【0100】
以上のシーケンスによりターゲットからイニシエータにデータが転送される。
(イニシエータへのデータ転送シーケンス)
図21は、ターゲットからイニシエータへとデータ転送する際のシーケンスである。ただし、図20のシーケンスと異なり、転送されるデータが小さいためにダイレクトステータスを用いている。
【0101】
ターゲットのアプリケーションでデータが作成されると、アンソリサイテドステータス(ダイレクトステータス)が作成され、ステータスキューカウンタ(CurrentUnsolicitedQUE)が1減らされて、アンソリサイテドステータス送信要求が出される(2101)。これを受けたSBP−2ではアンソリサイテドステータスブロックをイニシエータに送信する(2102)。イニシエータのSBP−2層は、このステータスを受けてHPT層にアンソリサイテドステータスブロックを送信する(2103)。HPT層は、アンソリサイテドステータスブロックをステータスキューにコピーする。
【0102】
ステータスキューの先頭のステータスについては、ステータスに重畳されたアプリケーションレベルのデータを読み出し、データバッファおよびダイレクトステータス応答ORBを作成してSBP−2層に作成したORBのリンクを要求する(2104)。SBP−2層は、ドアベルレジスタへの書き込み要求を出し(2105)、1394インタフェースによりライトが行われる(2106)。ドアベル書き込みの通知は1394インタフェースからSBP−2に通知され(2107)直ちにORBのリード要求(2108)とORBのリードが行われる(2109)。
【0103】
読み出されたORBはターゲットのHPT層に渡され、HPTでは指定されたキューにそれを格納した後(2110)、その内容を解析する。ダイレクトステータス応答ORBであることが認識されると、対応するステータスブロック作成要求がターゲットから出され、ステータスキューの空きが1つ増やされる(2111)。それに応じてノーマルステータスブロックがイニシエータに返され(2112)、それによってHPTにORBのリンク削除の要求が出されると、対応ORBが削除され、即時実行エージェント側のキューの空き数に1加えられ、使用されたデータバッファが解放される(2113)。
【0104】
以上のシーケンスによりターゲットからイニシエータにデータが転送される。このシーケンスでは、図20のシーケンスに比べてデータライト要求(2011)およびリバースデータ書き込み(2012)の2つの手順が省かれている。
<本システムに特有の機能>
本システムの構成および動作は上述した通りである。このシステムに特有な機能や構成、利点などをここで整理すると次のようなものがあげられる。
▲1▼ORBのキューを順次実行用と即時実行用と2つ設け、それぞれに応じた実行エージェントを設けた。これにより、イニシエータからのデータ転送要求ORBはキューイングされて順次処理されるが(順次実行)、ターゲットからのリード要求ステータスは、リード要求ORB発行後直ちに処理される(即時実行)。即時実行は、ORBリストにリンクするORB数の上限を、ライトのORBについては順次実行キューの容量に、リードのORBについては即時実行キューの容量(この場合1)にすることにより保証されている。
【0105】
一方、ターゲットからのリード要求ステータスは、イニシエータにおいてキューイングされる。このため、イニシエータからのデータ転送要求はターゲットのプリフェッチキューにより、ターゲットからのデータ転送要求(リード要求)はイニシエータのステータスキューによりそれぞれキューイングされることになり、アプリケーション層にデータ転送をおこなうための全2重通信チャネルを提供できる。すなわち、いずれの方向へのデータ転送についても、キューに入れられた順に要求は処理され、一方へのデータ転送の処理が他方のデータ転送の処理に影響を及ぼさず、互いに干渉しない独立したチャネルを提供できる。言い換えれば、イニシエータからターゲット,ターゲットからイニシエータへと、それぞれにおいて非同期に発生したデータを非同期に転送できる。
▲2▼イニシエータとターゲットとが互いのキューの空き容量を相互に監視しているため、ORBあるいはステータスブロックを送信した際に、確実に受信される。
▲3▼全2重通信チャネルは1回のログインで提供される。すなわち、資源を豊富に有するホストコンピュータをイニシエータとし、資源の乏しいプリンタをターゲットとして相互にデータを交換できる。このため、プリンタの備える資源、特に必要なメモリ容量を抑制することができる。
▲4▼IEEE1394インターフェースを利用しているために、ターゲット側へのデータ転送を、ターゲットがその都合に応じて読み出すことで行うことができ、イニシエータがターゲットの都合によってデータ転送に占有されることを防止できる。
▲5▼SBP−2プロトコルを利用しているため、ターゲットでキューされるのはORBだけで、実際に転送されるデータそのものは処理待ちの間イニシエータに格納されている。このため、ターゲットのメモリ資源を小容量化できる。
▲6▼ダイレクトステータスを利用することで、HPT層のステータスにアプリケーション層のデータを重畳させてターゲットからイニシエータに送信できる。このため、データ転送シーケンスを短くすることができる。
【0106】
なお、本実施例のシステムは、ホストコンピュータとプリンタに限らず様々な装置に適用することができる。また、上述した特徴点は、ホストコンピュータとプリンタとの関係にとどまらず、ホストコンピュータと資源の少ない周辺装置一般、周辺装置同士という接続であっても有用である。
[第2の実施の形態]
本発明の第2の実施の形態として、同時に複数の論理チャネルを提供するシステムを説明する。この場合、ターゲット側には、プリンタ単体でなく、ファクシミリや画像スキャナといった機器が複合したデジタル複合機を利用することができる。
<システムの構成>
図23は本実施形態におけるイニシエータのブロック図である。図2と異なる点について説明し、共通する構成の説明は省略する。図23で特徴的といえるのは、ステータス識別部212が、ステータスの種類だけでなく、論理チャネルを識別し、チャネル毎にステータスを振り分ける点と、システムメモリ,HPT処理部を有する1チャネル分の構成を、複数(図では2)チャネル分備えている点である。
【0107】
なお、ステータス識別部は、ステータスブロックに含まれるチャネルIDに従って、チャネルを識別する。これについては後述する。例えば、デジタル複合機を利用する場合には、1つのチャネルはプリンタドライバが、もう一つは画像スキャナドライバが利用する、といったように各チャネル毎に異なるアプリケーションであってもよいし、同一のアプリケーションが複数のチャネルを利用してもよい。
【0108】
図22は、ターゲットのブロック図である。図1と異なる点は、コマンドフェッチエージェント113が、コマンドORBをチャネル毎に振り分ける、という点である。各チャネルは、図1と同様の構成であり、プリフェッチキューと2つの実行エージェントを有している。
【0109】
なお、ORBには、論理チャネルが示されており、コマンドフェッチエージェント113はそれを見てチャネルを識別する。
<コマンドORBの形式>
図24〜図32はコマンドORBのフォーマットの例である。図24はデータ転送コマンドORB,図25はリード要求コマンドORB,図26はダイレクトステータス応答コマンドORBの図,図27はデバイス資源獲得コマンドORBの図,図28はデバイス資源解放コマンドROBの図,図30は基本デバイスステータスコマンドORBの図であり、第1の実施の形態におけるそれぞれのコマンドと、チャネルIDフィールドを有する点で異なっている。他の構成は同じである。
【0110】
図29はデバイス資源放棄応答コマンドORBの図で、ターゲットからのデバイス資源放棄要求に対する応答である。アクセプトビット2901により、放棄が要求された資源を放棄したか否かが示される。ターゲットは資源が乏しいため、複数のチャネルが利用されたり、複数のアプリケーションプロセスが稼働するなどにより各プロセスの資源が不足することもあり得る。そのような場合、ターゲットから資源放棄要求が出されることになる。
【0111】
図31(A)は、オープンチャネル要求コマンド、図31(B)はオープンチャネル要求ステータスの図である。これらにより、所望の論理チャネルが開かれる。
【0112】
図32(A)は、クローズチャネル要求コマンド、図31(B)はクローズンチャネル要求ステータスの図である。これらにより、所望の論理チャネルが閉じられる。
<ステータスブロックの形式>
図33〜図38はステータスブロックのフォーマットを示す図である。図33はステータス一般の形式の図、図34はリード要求ステータスの図、図35はダイレクトステータスの図、図36はデバイス資源獲得ステータスの図、図38は基本デバイスステータスの図である。これらの形式は、チャネルIDが含まれていることを除いて第1の実施の形態におけるステータスブロックと同様である。
【0113】
また、図37は、デバイス資源放棄ステータスブロックの図であり、イニシエータに放棄を求める資源のIDを資源IDフィールド3701に格納している。このステータスはターゲットから発せられる要求のため、アンソリサイテドステータスとしてイニシエータに送信される。
<イニシエータおよびターゲットにおけるコマンド/ステータス処理手順>
図39は、本実施形態における処理手順である。図39(A)はイニシエータにおいてステータスレジスタに書き込みが行われて起動される処理手順で、第1実施形態の図18に相当する。処理が開始されると、初めにステップS3901でチャネルIDが判別される。その後、判別された各チャネルについて、図18のステップS1501からと同様の処理がおこなわれる。
【0114】
図39(B)は、ターゲットにおいてドアベルレジスタに書き込みが行われて起動される処理の手順で、第1の実施の形態における図15に相当する。処理が開始されると、初めにステップS3911でチャネルIDが判別される。その後判別された各チャネルについて、図15のステップS1601からと同様の処理がおこなわれる。
【0115】
このほか、データ転送要求から始まる処理(図14)、ターゲットエージェントによる処理(図16)、プリンタからホストコンピュータへとデータが発生した場合の処理(図17)については、第1の実施の形態と同様である。ただし、これらの処理の前に、まずチャネルが開かれなければならない。
【0116】
ターゲットからの資源放棄要求は、ターゲットからのダイレクトステータスによるデータ転送と同様のシーケンスで行われる。
【0117】
本実施形態では、以上の手順でデータ転送が実行される。複数の論理チャネルが利用できることを除けば、第1の実施形態とほぼ同様のシステムである。
【0118】
このシステムにより、複数の論理チャネルそれぞれについて全2重通信を提供することができる。そのため、デジタル複合機等、複数のデバイスを有する機器についても、双方向通信を提供できる。それにより、第1の実施の形態で説明した▲1▼〜▲6▼の機能を複数のチャネルについて提供できる。
【0119】
【他の実施形態】
なお、本発明は、複数の機器(例えばホストコンピュータ,インタフェイス機器,リーダ,プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機,ファクシミリ装置など)に適用してもよい。
【0120】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコード(すなわち、図14〜図18および図39の手順のプログラム)を記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても達成される。
【0121】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0122】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,磁気テープ,不揮発性のメモリカード,ROMなどを用いることができる。
【0123】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【0124】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【0125】
【発明の効果】
以上説明したように、本発明によれば、イニシエータとターゲットとの間で互いに非同期で転送できる双方向通信を可能とし、また、データの通信に必要なプロセスやメモリといった資源を効率的に利用できる。
【0126】
また、イニシエータが、ターゲットが保持できる命令の数を超えないようにするため、或いはターゲットのキューの空き領域を判断するため、命令を送信した際に、確実に受信される。
【0127】
IEEE1394インターフェースを利用しているために、ターゲット側へのデータ転送を、ターゲットがその都合に応じて読み出すことで行うことができ、イニシエータがターゲットの都合によってデータ転送に占有されることを防止できる。
【0128】
SBP−2プロトコルを利用しているため、ターゲットでキューされるのはORBだけで、実際に転送されるデータそのものは処理待ちの間イニシエータに格納されている。このため、ターゲットのメモリ資源を小容量化できる。
【0129】
ダイレクトステータスを利用することで、HPT層のステータスにアプリケーション層のデータを重畳させてターゲットからイニシエータに送信できる。このため、データ転送シーケンスを短くすることができる。
【0130】
また、マルチチャネルを実現できる。
【0131】
【図面の簡単な説明】
【図1】ターゲット(プリンタ)のブロック図である。
【図2】イニシエータ(ホストコンピュータ)のブロック図である。
【図3】ORB一般のフォーマットを示す図である。
【図4】キューデプスコマンドORBのフォーマットを示す図である。
【図5】データ転送コマンドORBのフォーマットを示す図である。
【図6】リード要求コマンドORBのフォーマットを示す図である。
【図7】ダイレクトステータス応答コマンドORBのフォーマットを示す図である。
【図8】デバイス資源獲得コマンドORBのフォーマットを示す図である。
【図9】デバイス資源開放コマンドORBのフォーマットを示す図である。
【図10】基本デバイスステータスコマンドORBのフォーマットを示す図である。
【図11】ステータスブロック一般のフォーマットを示す図である。
【図12】キューデプスステータスブロックのフォーマットを示す図である。
【図13】データ転送ステータスブロックのフォーマットを示す図である。
【図14】イニシエータによる、データ転送要求の発生に対する処理手順のフローチャートである。
【図15】ドアベルレジスタに書き込みが行われた際のターゲットのフェッチエージェントによる処理手順のフローチャートである。
【図16】フェッチエージェントからORB通知を受けた際の実行エージェントによる処理手順のフローチャートである。
【図17】ターゲットによる、データ転送発生の要求に対する処理手順のフローチャートである。
【図18】ステータスレジスタに書込みがおこなされた際のイニシエータによる処理手順のフローチャートである。
【図19】イニシエータ(ホストコンピュータ)からターゲット(プリンタ)へのデータ転送時のシーケンスの図である。
【図20】ターゲットからイニシエータへとリード要求ステータスを用いてデータ転送する際のシーケンスの図である。
【図21】ターゲットからイニシエータへとダイレクトステータスを用いてデータ転送する際のシーケンスの図である。
【図22】マルチチャネルを提供するターゲットのブロック図である。
【図23】マルチチャネルを提供するイニシエータのブロック図である。
【図24】マルチチャネル化されたデータ転送コマンドORBのフォーマットを示す図である。
【図25】マルチチャネル化されたリード要求コマンドORBのフォーマットを示す図である。
【図26】マルチチャネル化されたダイレクトステータス応答コマンドORBのフォーマットを示す図である。
【図27】マルチチャネル化されたデバイス資源獲得コマンドORBのフォーマットを示す図である。
【図28】マルチチャネル化されたデバイス資源開放コマンドORBのフォーマットを示す図である。
【図29】マルチチャネル化されたデバイス資源放棄応答コマンドORBのフォーマットを示す図である。
【図30】マルチチャネル化された基本デバイスステータスコマンドORBのフォーマットを示す図である。
【図31】オープンチャネル要求/応答のフォーマットを示す図である。
【図32】クローズチャネル要求/応答のフォーマットを示す図である。
【図33】マルチチャネル化されたステータスブロック一般のフォーマットを示す図である。
【図34】マルチチャネル化されたデータ転送ステータスブロックのフォーマットを示す図である。
【図35】マルチチャネル化されたダイレクトステータスブロックのフォーマットを示す図である。
【図36】マルチチャネル化されたデバイス資源獲得ステータスブロックのフォーマットを示す図である。
【図37】マルチチャネル化されたデバイス資源放棄ステータスブロックのフォーマットを示す図である。
【図38】マルチチャネル化された基本デバイスステータスブロックのフォーマットを示す図である。
【図39】(A)マルチチャネル化されたイニシエータによる、ステータスレジスタへの書込みがおこなわれた際の処理手順と、(B)マルチチャネル化されたターゲットによる、ドアベルレジスタへの書込みがおこなわれた際の処理手順のフローチャートである。
【図40】IEEE1394インターフェースを用いたプリンタシステムのハードウエア構成図である。
【符号の説明】
1 CPU
2 RAM
3 ROM
4 システムバス
12 CPU
13 ROM
19 RAM
100 プリンタ
101 1394インターフェース
102 バスインターフェース
103 コマンドフェッチエージェント
104 プリフェッチキュー
105 順次実行エージェント
106 即時実行エージェント
107 データ処理部
200 ホストコンピュータ
201 1394インターフェース
202 ステータス識別部
203 HPT処理部
204 ステータスキュー
205 キュー処理部
206 ORB管理部
207 バスインターフェース
208 システムメモリ
209 アプリケーション

Claims (20)

  1. イニシエータとターゲットとの間でデータを通信するための通信制御方法であって、
    前記イニシエータが、前記イニシエータの記憶領域からのデータの読み出しの命令及び前記イニシエータの記憶領域に対するデータの書き込みの命令それぞれを、前記ターゲットに送信する送信工程と、
    前記ターゲットが、前記読み出しの命令及び前記書き込みの命令それぞれを保持する保持工程と、
    前記ターゲットが、保持された前記読み出しの命令に従って、前記イニシエータの記憶領域から前記ターゲットへのデータの読み出しを前記イニシエータに要求する読み出し工程と、
    前記ターゲットが、保持された前記書き込みの命令に従って、前記イニシエータの記憶領域に対する前記ターゲットからのデータの書き込みを前記イニシエータに要求する書き込み工程とを有し、
    前記送信工程では、前記イニシエータは、前記ターゲットに送信された前記読み出しの命令の数と前記読み出しの命令に従って行われたデータの読み出しの完了を示す前記ターゲットからの完了通知の数との差分が、前記ターゲットが保持できる前記読み出しの命令の数を超えないように、前記読み出しの命令を前記ターゲットに送信し、
    前記送信工程では、前記イニシエータは、前記ターゲットに送信された前記書き込みの命令の数と前記書き込みの命令に従って行われたデータの書き込みの完了を示す前記ターゲットからの完了通知の数との差分が、前記ターゲットが保持できる前記書き込みの命令の数を超えないように、前記書き込みの命令を前記ターゲットに送信することを特徴とする通信制御方法。
  2. 前記送信工程では、前記イニシエータは、前記書き込みの命令を、前記ターゲットからの要求に応じて送信することを特徴とする請求項1に記載の通信制御方法。
  3. 前記イニシエータは、前記書き込みの命令及び前記読み出しの命令それぞれに異なる識別子を付与し、前記ターゲットは、前記書き込みの命令及び前記読み出しの命令それぞれを前記識別子に対応するキューに保持することを特徴とする請求項1或いは2に記載の通信制御方法。
  4. 前記読み出し工程では、前記ターゲットは、保持された前記読み出しの命令に従って、前記イニシエータの記憶領域における特定の領域を指定してデータの読み出しを前記イニシエータに要求し、
    前記書き込み工程では、前記ターゲットは、保持された前記書き込みの命令に従って、前記イニシエータの記憶領域における特定の領域を指定してデータの書き込みを前記イニシエータに要求することを特徴とする請求項1乃至のいずれかに記載の通信制御方法。
  5. イニシエータとターゲットとの間でデータを通信する通信システムであって、
    前記イニシエータにおいて、前記イニシエータの記憶領域からのデータの読み出しの命令及び前記イニシエータの記憶領域に対するデータの書き込みの命令それぞれを、前記ターゲットに送信する送信手段と、
    前記ターゲットにおいて、前記読み出しの命令及び前記書き込みの命令それぞれを保持する手段と、
    前記ターゲットにおいて、保持された前記読み出しの命令に従って、前記イニシエータの記憶領域から前記ターゲットへのデータの読み出しを前記イニシエータに要求する手段と、
    前記ターゲットにおいて、保持された前記書き込みの命令に従って、前記イニシエータの記憶領域に対する前記ターゲットからのデータの書き込みを前記イニシエータに要求する手段とを有し、
    前記送信手段は、前記ターゲットに送信された前記読み出しの命令の数と前記読み出しの命令に従って行われたデータの読み出しの完了を示す前記ターゲットからの完了通知の数との差分が、前記ターゲットが保持できる前記読み出しの命令の数を超えないように、前記読み出しの命令を前記ターゲットに送信し、
    前記送信手段は、前記ターゲットに送信された前記書き込みの命令の数と前記書き込みの命令に従って行われたデータの書き込みの完了を示す前記ターゲットからの完了通知の数との差分が、前記ターゲットが保持できる前記書き込みの命令の数を超えないように、前記書き込みの命令を前記ターゲットに送信することを特徴とする通信システム。
  6. ターゲットとの間でデータを通信する通信制御装置であって、
    前記通信制御装置の記憶領域からのデータの読み出しの命令及び前記通信制御装置の記憶領域に対するデータの書き込みの命令それぞれを生成する生成手段と、
    前記読み出しの命令及び前記書き込みの命令それぞれを前記ターゲットに送信する送信手段とを有し、
    前記ターゲットは、前記読み出しの命令に従って、前記通信制御装置の記憶領域から前記ターゲットへのデータの読み出しを前記通信制御装置に要求し、
    前記ターゲットは、前記書き込みの命令に従って、前記通信制御装置の記憶領域に対する前記ターゲットからのデータの書き込みを前記通信制御装置に要求し、
    前記送信手段は、前記ターゲットに送信された前記読み出しの命令の数と前記読み出しの命令に従って行われたデータの読み出しの完了を示す前記ターゲットからの完了通知の数との差分が、前記ターゲットが保持できる前記読み出しの命令の数を超えないように、前記読み出しの命令を前記ターゲットに送信し、
    前記送信手段は、前記ターゲットに送信された前記書き込みの命令の数と前記書き込みの命令に従って行われたデータの書き込みの完了を示す前記ターゲットからの完了通知の数との差分が、前記ターゲットが保持できる前記書き込みの命令の数を超えないように、前記書き込みの命令を前記ターゲットに送信することを特徴とする通信制御装置。
  7. 前記生成手段は、前記書き込みの命令及び前記読み出しの命令それぞれに異なる識別子を付与し、前記ターゲットは、前記書き込みの命令及び前記読み出しの命令それぞれを前記識別子に対応するキューに保持することを特徴とする請求項に記載の通信制御装置。
  8. 前記ターゲットは、前記読み出しの命令に従って、前記通信制御装置の記憶領域における特定の領域を指定してデータの読み出しを前記通信制御装置に要求し、
    前記ターゲットは、前記書き込みの命令に従って、前記通信制御装置の記憶領域における特定の領域を指定してデータの書き込みを前記通信制御装置に要求することを特徴とする請求項6或いは7に記載の通信制御装置。
  9. イニシエータとターゲットとの間でデータを通信するための通信制御方法であって、
    前記ターゲットにおいて、第1のキューの第1のコマンドに応じて、前記イニシエータの記憶領域の指定された位置からデータを前記ターゲットに読み出すことを前記イニシエータに要求する工程と、
    前記ターゲットにおいて、第2のキューの第2のコマンドに応じて、前記イニシエータの記憶領域の指定された位置に前記ターゲットからのデータを書き込むことを前記イニシエータに要求する工程と、
    前記ターゲットにおいて、コマンドに含まれている、前記第1のキューにキューされるべきかまたは前記第2のキューにキューされるべきかを示す指定に従って、前記第1のコマンドと前記第2のコマンドとをそれぞれ前記第1のキューまたは前記第2のキューに転送する転送工程と、
    前記イニシエータにおいて、前記指定を含む前記第1のコマンドと前記指定を含む前記第2のコマンドとをそれぞれ生成する生成工程と、
    前記第1のキューが空き領域を持っているかを判断する第1の判断工程と、
    前記第2のキューが空き領域を持っているかを判断する第2の判断工程と、
    対応するキューが空き領域を持っているときに前記第1のコマンドと前記第2のコマンドとがそれぞれ前記イニシエータから前記ターゲットに転送されるように、前記第1のコマンドと前記第2のコマンドとのそれぞれの転送を制御する制御工程とを有することを特徴とする通信制御方法。
  10. 前記イニシエータにおいて、前記記憶領域に対するデータ書き込み要求を前記ターゲットから受信する受信工程と、
    前記イニシエータにおいて、前記受信工程で受信されたデータ書き込み要求をステータスキューに保持する保持工程とを有し、
    前記イニシエータは、前記受信工程で受信されたデータ書き込み要求に応じて、他の第2のコマンドを送信することを特徴とする請求項に記載の通信制御方法。
  11. 前記ターゲットは、前記ステータスキューに保持可能な数を超えないように、前記データ書き込み要求をイニシエータに送信することを特徴とする請求項10に記載の通信制御方法。
  12. 前記第1のコマンドと前記第2のコマンドはそれぞれチャネル識別子が付与され、チャネル識別子ごとにコマンドは処理されることを特徴とする請求項乃至11のいずれかに記載の通信制御方法。
  13. ターゲットとの間でデータを通信するイニシエータとしての通信制御装置であって、
    第1のキューにキューされるべきかまたは第2のキューにキューされるべきかを示す指定を含む第1のコマンドと第2のコマンドとをそれぞれ生成する生成手段と、
    前記第1のキューが空き領域を持っているかを判断する第1の判断手段と、
    前記第2のキューが空き領域を持っているかを判断する第2の判断手段と、
    対応するキューが空き領域を持っているときに前記第1のコマンドと前記第2のコマンドとがそれぞれ転送されるように、前記第1のコマンドと前記第2のコマンドとのそれぞれの転送を制御する転送制御手段とを有し、
    前記ターゲットは、前記第1のキューの前記第1のコマンドに応じて、前記通信制御装置の記憶領域の指定された位置からデータを前記ターゲットに読み出すことを前記通信制御装置に要求し
    前記ターゲットは、前記第2のキューの前記第2のコマンドに応じて、前記通信制御装置の記憶領域の指定された位置に前記ターゲットからのデータを書き込むことを前記通信制御装置に要求し
    前記ターゲットは、前記指定に従って、前記第1のコマンドと前記第2のコマンドとをそれぞれ前記第1のキューまたは前記第2のキューに転送することを特徴とする通信制御装置。
  14. イニシエータとの間でデータを通信するターゲットとしての通信制御装置であって、
    第1のキューの第1のコマンドに応じて、前記イニシエータの記憶領域の指定された位置から前記通信制御装置へデータを読み出すことを前記イニシエータに要求する手段と、
    第2のキューの第2のコマンドに応じて、前記イニシエータの記憶領域の指定された位置に前記通信制御装置からのデータを書き込むことを前記イニシエータに要求する手段と、
    コマンドに含まれている、前記第1のキューにキューされるべきかまたは前記第2のキューにキューされるべきかを示す指定に従って、前記第1のコマンドと前記第2のコマンドとをそれぞれ前記第1のキューまたは前記第2のキューに転送する転送手段とを有し、
    前記イニシエータは、前記指定を含む前記第1のコマンドまたは前記第2のコマンドを生成し、対応するキューが空き領域を持っているときに前記第1のコマンドまたは前記第2のコマンドが転送されるように、前記第1のコマンドまたは前記第2のコマンドの転送を制御することを特徴とする通信制御装置。
  15. イニシエータの記憶領域の指定された位置からデータを読み出すようターゲットに指示する第1のタイプのコマンドと、前記イニシエータの記憶領域の指定された位置にデータを書き込むよう前記ターゲットに指示する第2のタイプのコマンドとを前記ターゲットに送信するイニシエータにおける通信制御方法であって、
    前記ターゲットが前記第1のタイプのコマンドに従って前記イニシエータの記憶領域の指定された位置から前記ターゲットへのデータの読み出しを前記イニシエータに要求した後に行う完了通知に従って、未だ送信されていない前記第1のタイプのコマンドを前記ターゲットに送信する工程と、
    前記ターゲットが前記第2のタイプのコマンドに従って前記イニシエータの記憶領域の指定された位置に対する前記ターゲットからのデータの書き込みを前記イニシエータに要求した後に行う完了通知に従って、未だ送信されていない前記第2のタイプのコマンドを前記ターゲットに送信する工程とを有すること特徴とする通信制御方法。
  16. 前記第1のタイプのコマンドと前記第2のタイプのコマンドとは、前記記憶領域のアドレスを示すデータアドレスフィールドを含むブロックであることを特徴とする請求項15に記載の通信制御方法。
  17. 前記ターゲットに送信可能な前記第1のタイプのコマンドの数をカウントする第1のカウント工程と、
    前記ターゲットに送信可能な前記第2のタイプのコマンドの数をカウントする第2のカウント工程とを有し、
    前記第1のカウント工程では、前記第1のタイプのコマンドが前記ターゲットに送信される場合、前記ターゲットに送信可能な前記第1のタイプのコマンドの数を減らし、前記第1のカウント工程では、前記第1のタイプのコマンドに対応する前記完了通知に従って、前記ターゲットに送信可能な前記第1のタイプのコマンドの数を増やし、前記第2のカウント工程では、前記第2のタイプのコマンドが前記ターゲットに送信される場合、前記ターゲットに送信可能な前記第2のタイプのコマンドの数を減らし、前記第2のカウント工程では、前記第2のタイプのコマンドに対応する前記完了通知に従って、前記ターゲットに送信可能な前記第2のタイプのコマンドの数を増やし、前記第1のカウント工程でカウントされる数に従って前記第1のタイプのコマンドが前記ターゲットに送信され、
    前記第2のカウント工程でカウントされる数に従って前記第2のタイプのコマンドが前記ターゲットに送信されることを特徴とする請求項15または16に記載の通信制御方法。
  18. イニシエータの記憶領域の指定された位置からデータを読み出すようターゲットに指示する第1のタイプのコマンドと、前記イニシエータの記憶領域の指定された位置にデータを書き込むよう前記ターゲットに指示する第2のタイプのコマンドとを前記ターゲットに送信するイニシエータとしての通信制御装置であって、
    前記ターゲットが前記第1のタイプのコマンドに従って前記通信制御装置の記憶領域の指定された位置から前記ターゲットへのデータの読み出しを前記通信制御装置に要求した後に行う完了通知に従って、未だ送信されていない前記第1のタイプのコマンドを前記ターゲットに送信する手段と、
    前記ターゲットが前記第2のタイプのコマンドに従って前記通信制御装置の記憶領域の指定された位置に対する前記ターゲットからのデータの書き込みを前記通信制御装置に要求した後に行う完了通知に従って、未だ送信されていない前記第2のタイプのコマンドを前記ターゲットに送信する手段とを有すること特徴とする通信制御装置。
  19. 前記第1のタイプのコマンドと前記第2のタイプのコマンドとは、前記記憶領域のアドレスを示すデータアドレスフィールドを含むブロックであることを特徴とする請求項18に記載の通信制御装置。
  20. 前記ターゲットに送信可能な前記第1のタイプのコマンドの数をカウントする第1のカウント手段と、
    前記ターゲットに送信可能な前記第2のタイプのコマンドの数をカウントする第2のカウント手段とを有し、
    前記第1のカウント手段では、前記第1のタイプのコマンドが前記ターゲットに送信される場合、前記ターゲットに送信可能な前記第1のタイプのコマンドの数を減らし、前記第1のカウント手段では、前記第1のタイプのコマンドに対応する前記完了通知に従って、前記ターゲットに送信可能な前記第1のタイプのコマンドの数を増やし、前記第2のカウント手段では、前記第2のタイプのコマンドが前記ターゲットに送信される場合、前記ターゲットに送信可能な前記第2のタイプのコマンドの数を減らし、前記第2のカウント手段では、前記第2のタイプのコマンドに対応する前記完了通知に従って、前記ターゲットに送信可能な前記第2のタイプのコマンドの数を増やし、前記第1のカウント手段でカウントされる数に従って前記第1のタイプのコマンドが前記ターゲットに送信され、
    前記第2のカウント手段でカウントされる数に従って前記第2のタイプのコマンドが前記ターゲットに送信されることを特徴とする請求項18または19に記載の通信制御装置。
JP24443097A 1997-09-09 1997-09-09 通信制御方法及び装置及び通信システム Expired - Fee Related JP4086345B2 (ja)

Priority Applications (11)

Application Number Priority Date Filing Date Title
JP24443097A JP4086345B2 (ja) 1997-09-09 1997-09-09 通信制御方法及び装置及び通信システム
EP98307152A EP0902371B1 (en) 1997-09-09 1998-09-04 Communication control method and apparatus, and communication system
DE69813976T DE69813976T2 (de) 1997-09-09 1998-09-04 Datenübertragungssteuerverfahren und Vorrichtung und Datenübertragungssystem
DE69839783T DE69839783D1 (de) 1997-09-09 1998-09-04 Kommunikationssteuerverfahren und Vorrichtung und Kommunikationssystem
EP02079458A EP1280064B1 (en) 1997-09-09 1998-09-04 Communication control method and apparatus, and communication system
CA002246830A CA2246830C (en) 1997-09-09 1998-09-08 Communication control method and apparatus, and communication system
US09/148,472 US6452693B1 (en) 1997-09-09 1998-09-08 Communication control method and apparatus, and communication system
CNB981191320A CN1179277C (zh) 1997-09-09 1998-09-09 通信控制方法和装置及通信系统
KR1019980037116A KR100297219B1 (ko) 1997-09-09 1998-09-09 통신 제어 방법 및 장치, 및 통신 시스템
US10/194,202 US6927873B2 (en) 1997-09-09 2002-07-15 Communication control method and apparatus, and communication system
US11/124,266 US7296095B2 (en) 1997-09-09 2005-05-09 Communication control method and apparatus, and communication system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24443097A JP4086345B2 (ja) 1997-09-09 1997-09-09 通信制御方法及び装置及び通信システム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2006188698A Division JP4307467B2 (ja) 2006-07-07 2006-07-07 通信制御方法及び通信システム

Publications (2)

Publication Number Publication Date
JPH1185662A JPH1185662A (ja) 1999-03-30
JP4086345B2 true JP4086345B2 (ja) 2008-05-14

Family

ID=17118548

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24443097A Expired - Fee Related JP4086345B2 (ja) 1997-09-09 1997-09-09 通信制御方法及び装置及び通信システム

Country Status (7)

Country Link
US (3) US6452693B1 (ja)
EP (2) EP0902371B1 (ja)
JP (1) JP4086345B2 (ja)
KR (1) KR100297219B1 (ja)
CN (1) CN1179277C (ja)
CA (1) CA2246830C (ja)
DE (2) DE69839783D1 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4111472B2 (ja) 1998-05-15 2008-07-02 キヤノン株式会社 通信制御方法及び装置及び通信システム
JP4443679B2 (ja) * 1998-10-09 2010-03-31 株式会社リコー プリントシステム
JP4109770B2 (ja) * 1998-12-02 2008-07-02 キヤノン株式会社 通信制御方法及び機器
JP3365377B2 (ja) * 1999-08-12 2003-01-08 セイコーエプソン株式会社 ログイン装置、被ログイン装置、及び装置間通信システム、ログイン制御方法、並びに記録媒体
KR20030071856A (ko) * 2001-01-31 2003-09-06 인터내셔널 비지네스 머신즈 코포레이션 메모리를 통해 데이터 처리 시스템들간의 데이터 흐름을제어하기 위한 방법 및 장치
JP4755390B2 (ja) * 2001-01-31 2011-08-24 インターナショナル・ビジネス・マシーンズ・コーポレーション メモリを介してデータ処理システムの間でデータのフローを制御する方法および装置
JP2002318777A (ja) * 2001-04-19 2002-10-31 Matsushita Electric Ind Co Ltd 高速シリアルインターフェース用のコマンド発行装置
JP4854144B2 (ja) * 2001-07-16 2012-01-18 キヤノン株式会社 印刷システム、管理方法、及び印刷装置
JP2003110651A (ja) * 2001-10-01 2003-04-11 Canon Inc データ処理方法、データ処理装置、通信プロトコル及びプログラム
JP4264924B2 (ja) * 2002-06-07 2009-05-20 ソニーマニュファクチュアリングシステムズ株式会社 データ転送方法
KR100453052B1 (ko) * 2002-06-07 2004-10-15 삼성전자주식회사 전송 패킷을 이용하여 다기능을 수행하기 위한 통신 방법 및 장치
US6676022B1 (en) * 2002-10-04 2004-01-13 Mobile-Mind, Inc. Smart card system with command queuing
US7143224B2 (en) * 2003-05-09 2006-11-28 Stmicroelectronics, Inc. Smart card for performing advance operations to enhance performance and related system, integrated circuit, and methods
US8437020B2 (en) * 2004-05-13 2013-05-07 Sharp Laboratories Of America, Inc. System and method for printer emulation
KR100535442B1 (ko) 2005-04-18 2005-12-09 주식회사 빅솔론 프린팅 장치, 상기 프린팅 장치의 제어 방법 및 상기프린팅 장치를 이용한 데이터 처리 장치
JP2008152464A (ja) * 2006-12-15 2008-07-03 Toshiba Corp 記憶装置
US8279475B2 (en) 2008-05-27 2012-10-02 Bixolon Co., Ltd. Printing apparatus and method for processing real-time command using the printing apparatus
KR101541344B1 (ko) * 2008-12-05 2015-08-03 삼성전자주식회사 메모리 장치 및 메모리 장치의 제어 방법
US8397253B2 (en) * 2009-07-23 2013-03-12 Fmr Llc Inserting personalized information into digital content
JP5601041B2 (ja) * 2009-07-23 2014-10-08 セイコーエプソン株式会社 記録システム、及び、記録システムにおける通信制御方法
JP5593682B2 (ja) * 2009-11-17 2014-09-24 セイコーエプソン株式会社 プリンター、プリンターの制御方法、及び、プログラム
CN104615388B (zh) * 2013-11-01 2017-12-22 精工爱普生株式会社 打印控制系统
IN2014DE02931A (ja) 2013-11-01 2015-06-26 Seiko Epson Corp
CN103618586B (zh) * 2013-11-07 2017-07-28 华为技术有限公司 一种发送响应帧的方法及装置
US10520929B2 (en) * 2016-08-31 2019-12-31 Esab Ab Techniques for implementing universal commands in a welding or cutting system
US11157285B2 (en) * 2020-02-06 2021-10-26 International Business Machines Corporation Dynamic modification of instructions that do not modify the architectural state of a processor
CN115917519B (zh) * 2021-07-30 2023-09-08 株式会社软技 存储有信息处理程序的记录介质、信息处理装置和信息处理方法
US20230409239A1 (en) * 2022-06-21 2023-12-21 Micron Technology, Inc. Efficient command fetching in a memory sub-system

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4224667A (en) * 1978-10-23 1980-09-23 International Business Machines Corporation Command queuing for I/O adapters
JP3194938B2 (ja) 1990-08-15 2001-08-06 株式会社日立製作所 印刷システム
US5640596A (en) * 1992-03-10 1997-06-17 Hitachi, Ltd. Input output control system for transferring control programs collectively as one transfer unit designated by plurality of input output requests to be executed
JP3002056B2 (ja) 1992-06-23 2000-01-24 キヤノン株式会社 プリンタ装置及び該装置における印刷制御方法
JP2952111B2 (ja) * 1992-07-09 1999-09-20 キヤノン株式会社 データ制御装置
US5611056A (en) * 1994-08-31 1997-03-11 Unisys Corporation Method for controlling the expansion of connections to a SCSI bus
JPH08255120A (ja) 1995-03-17 1996-10-01 Fujitsu Ltd 入出力制御装置
US5720015A (en) * 1996-04-22 1998-02-17 Lexmark International, Inc. Method and apparatus for providing remote printer resource management
GB9611715D0 (en) * 1996-06-05 1996-08-07 Int Computers Ltd Peripheral device control
US6441308B1 (en) 1996-06-07 2002-08-27 Cable Design Technologies, Inc. Cable with dual layer jacket
US6112265A (en) * 1997-04-07 2000-08-29 Intel Corportion System for issuing a command to a memory having a reorder module for priority commands and an arbiter tracking address of recently issued command
US5875313A (en) * 1997-04-08 1999-02-23 National Instruments Corporation PCI bus to IEEE 1394 bus translator employing write pipe-lining and sequential write combining

Also Published As

Publication number Publication date
EP0902371A1 (en) 1999-03-17
CA2246830C (en) 2002-07-30
EP1280064A3 (en) 2004-10-20
CN1179277C (zh) 2004-12-08
US20020171870A1 (en) 2002-11-21
EP1280064A2 (en) 2003-01-29
EP1280064B1 (en) 2008-07-23
KR100297219B1 (ko) 2001-10-26
US6452693B1 (en) 2002-09-17
JPH1185662A (ja) 1999-03-30
US6927873B2 (en) 2005-08-09
DE69839783D1 (de) 2008-09-04
KR19990029655A (ko) 1999-04-26
US20050200895A1 (en) 2005-09-15
CN1219705A (zh) 1999-06-16
CA2246830A1 (en) 1999-03-09
EP0902371B1 (en) 2003-05-02
DE69813976T2 (de) 2003-12-11
US7296095B2 (en) 2007-11-13
DE69813976D1 (de) 2003-06-05

Similar Documents

Publication Publication Date Title
JP4086345B2 (ja) 通信制御方法及び装置及び通信システム
JP4109770B2 (ja) 通信制御方法及び機器
JP3990833B2 (ja) 通信制御方法及び装置
US6927866B2 (en) Print system and printer
JPH07281848A (ja) リモート印刷システムおよびそのコンピュータ
JP4111472B2 (ja) 通信制御方法及び装置及び通信システム
EP1710682A2 (en) A print controller with function for guaranteeing the order of print requests received, and a control method therefor
JP2000122817A (ja) ネットワークプリンタ
US8072630B2 (en) Integration of job control and synchronization with printer controller data exchanges
JP4307467B2 (ja) 通信制御方法及び通信システム
JP3566511B2 (ja) 情報処理装置及び印刷システム及び印刷処理方法並びにコンピュータ可読の記憶媒体
JP2004126943A (ja) 印刷処理装置、印刷処理方法及び印刷処理プログラム
JP3168853B2 (ja) 印刷データ制御方式
JPH04318617A (ja) オンラインプリンティングシステム
JPH11175269A (ja) ホスト装置
JP2002041255A (ja) 画像出力装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040908

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040908

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20040908

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20040908

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060424

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060508

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060707

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070413

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080219

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

Free format text: PAYMENT UNTIL: 20110228

Year of fee payment: 3

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130228

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20140228

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees