JPH1185662A - 通信制御方法及び装置及び通信システム - Google Patents
通信制御方法及び装置及び通信システムInfo
- Publication number
- JPH1185662A JPH1185662A JP24443097A JP24443097A JPH1185662A JP H1185662 A JPH1185662 A JP H1185662A JP 24443097 A JP24443097 A JP 24443097A JP 24443097 A JP24443097 A JP 24443097A JP H1185662 A JPH1185662 A JP H1185662A
- Authority
- JP
- Japan
- Prior art keywords
- initiator
- target
- data
- request
- channel
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program 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/126—Program 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1211—Improving printing performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1236—Connection management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1278—Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
- G06F3/1285—Remote printer device, e.g. being remote from client or server
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1293—Printer information exchange with computer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40052—High-speed IEEE 1394 serial bus
- H04L12/40123—Interconnection of computers and peripherals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0012—High 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)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
- Record Information Processing For Printing (AREA)
Abstract
を提供する。 【解決手段】プリンタは、順次実行用のキュー104と
即時実行エージェント106と順次実行エージェント1
05とを有する。即時実行エージェントは受信したコマ
ンドを直ちに実行してホストへのデータの書き込みを、
順次実行エージェントはキューからコマンドを取り出し
てホストからのデータの読み出しを行う。一方ホストで
は、プリンタからのデータ転送要求をキューに入れ、そ
のキューの要求あるいはアプリケーションからの要求に
基づいてコマンドをプリンタに発行する。その際、プリ
ンタのキューの容量以上のコマンドは発行しない。この
ようにして、上り下りいずれの方向も、互いに独立した
全2重チャネルが提供できる。
Description
ータとプリンタ等、機器同士を接続する通信制御方法及
び通信制御装置に関する。
スが、コンピュータと周辺機器、あるいは周辺機器同士
の接続に用いられつつある。IEEE1394インター
フェースは、セントロニクスインターフェースなどのハ
ンドシェイク方式に比べて高速で、しかも双方向通信が
可能である。また、メモリバスモデルのインターフェー
スであり、IEEE1394インターフェースで接続さ
れた機器は、相手の機器に対して指定したアドレスのデ
ータを読み書きすることができる。
るための物理層及びリンク層のプロトコルを定めたもの
で、機器ごとの詳細なプロトコルは定められていない。
そのため、物理・リンク層としてIEEE1394を利
用したSBP(Serial Bus Protocol)−2などのトラン
スポート層のプロトコルが提案されている。トランスポ
ート層はアプリケーションに対してデータ転送機能を提
供する層であり、この層を利用するアプリケーション
は、互いにデータの交換が可能となる。
E1394のメモリバスモデルとしての特徴を活かした
プロトコルであり、データの受信側が自身の都合に応じ
てデータを受信することができる。
に、まず送信側でログインという操作を行って通信相手
との間のチャネルを確立する。この際、ログインされた
側がイニシエータ、相手側がターゲットと呼ばれる。デ
ータ転送は、イニシエータからの指示に応じて、ターゲ
ットからイニシエータにデータを読み書きすることで行
われる。この方式においては、イニシエータは、ログイ
ン後、送信するデータを格納したアドレスやサイズ等が
書かれたORB(Operation Request Block)を作成し、
そのORBのアドレスをターゲットに知らせる。ターゲ
ットでは自分の都合に合わせてORBに書かれたアドレ
スやサイズに基づいてイニシエータからデータを読み出
して処理し、あるいはデータを書き込み、それらの処理
後ステータスブロックを作成して、処理の状態をイニシ
エータに知らせることになる。
の上に構築されるSBP−2プロトコルを利用して通信
を行う場合、特に、ホストコンピュータ等のデータ源を
イニシエータとし、それからターゲットであるプリンタ
装置などの周辺機器へのデータ転送に応用する場合、次
のような問題点があった。 全2重通信のために手順が複雑である。
イニシエータによって管理され、ターゲットはイニシエ
ータへの非同期のデータ転送を行うことができない。す
なわち、SBP−2では、ターゲットがイニシエータへ
のデータ転送を行いたい時には、イニシエータに対して
アンソリサイテドステータスでデータリード要求を送
り、イニシエータはそれに応じてORB生成し、ペンデ
ィング中のORB(イニシエータからターゲットへのデ
ータ転送要求などが含まれている)のリストの末尾にそ
の生成したORBをつける。このORBは先頭から順番
に処理されるため、ターゲットがイニシエータにリード
要求を発行したタイミングではなく、イニシエータ側の
ORBの処理が進み、ターゲットからのデータリード要
求によるORBが処理されたときに初めてターゲットか
らイニシエータにデータが転送されることになる。すな
わち、双方向の非同期なデータ転送が行えず、ターゲッ
トからイニシエータに転送すべきデータが非同期に発生
する場合、例えばターゲットがプリンタであれば、その
プリンタでエラーが発生する場合など、直ちにイニシエ
ータに伝達すべきデータを即時に伝達できない。
するデータを即時的にホストに転送するためには、プリ
ンタをイニシエータとしてログイン手続きを行い、ホス
トコンピュータをターゲットとするデータ転送を行わね
ばならない。
で互いにログインしてそれぞれがイニシエータでありタ
ーゲットであるような状況では、ホストコンピュータ及
びプリンタの双方にイニシエータとしてのプロセスとタ
ーゲットとしてのプロセスを備えなければならない。ま
た、ログインの操作もプリンタから行わねばならない。
は、画像処理のために大量のメモリ資源やプロセッサ資
源を消費する。そのために、装置の構成を簡略化して原
価を節減したり、処理を迅速に行うため画像処理用途以
外に用いられる資源をできるだけ節約しなければならな
いが、上述のように多くのプロセスを稼働することにな
ればその分多くの資源を消費することになり、原価低減
・処理の効率化という目的に反することになる。
関係であれば、各方向に流れるデータは、印刷データと
それに対する処理状況といったように、互いに関連付け
られるものであるが、各方向について独立したログイン
によりチャネルを設定すると、それらデータとレスポン
スとを関連づけなければならず、そのための処理手順を
新たに追加する必要がある。
2をそのままホストコンピュータ−プリンタ装置間の通
信に適用することは適切でなく、各装置における必要な
資源を減らすことや効率を向上させることが難しかっ
た。 マルチチャネルを実現できない。
せた複合機が利用されつつある。例えば、ファクシミリ
装置を、スキャナ単体,プリンタ単体,ファクシミリと
してホストコンピュータ等から利用できるデジタル複合
機などがある。このような装置を利用する際には、各単
体機能ごとに独立した複数のチャネルを介して通信を行
えば、同時に複数の機能を利用することができる。
ャネルを提供できないため、そのように単体機能を同時
に利用することが難しい。 SBP−2以外のプロトコルを採用すれば非同期に発
生するデータの転送が可能となるものも、マルチチャネ
ルが実現できるものもあるが、そのようなプロトコルで
はIEEE1394のメモリバスモデルとしての特徴を
活かすことができない。すなわち、ホストとプリンタの
通信であれば、プリンタ側の都合に応じてデータ転送を
行うことができず、ホストがプリンタの状態を監視しな
がらデータ転送を行わねばならないことになる。
で、1回のログインで全2重通信(互いに非同期な双方
向通信)を可能とし、また、データの交換に必要なプロ
セスやメモリといった資源を効率的に利用できる通信制
御方法及び通信制御装置及びそれを用いた印刷装置を提
供することを目的とする。
のキューの空き容量を相互に監視しているため、ORB
あるいはステータスブロックを送信した際に、確実に受
信される通信制御方法及び通信制御装置及びそれを用い
た印刷装置を提供することを目的とする。
ーゲットがその都合に応じて読み出すことで行うことが
でき、イニシエータがターゲットの都合によってデータ
転送に占有されることを防止できる通信制御方法及び通
信制御装置及びそれを用いた印刷装置を提供することを
目的とする。
方法及び通信制御装置及びそれを用いた印刷装置を提供
することを目的とする。
に本発明は次のような構成から成る。すなわち、イニシ
エータの有する記憶領域に対してターゲットからデータ
を読み書きしてデータを交換する通信制御方法であっ
て、イニシエータは、前記記憶領域に対する読み出し・
書き込みそれぞれに応じた命令を、ターゲットが保持で
きる読み出し・書き込みそれぞれの命令の数を越えない
ようにターゲットに送信し、ターゲットは、受信した読
み出し・書き込みそれぞれの命令を、互いに異なるキュ
ーにより保持して、互いに独立に処理する。あるいは、
イニシエータの有する記憶領域に対してターゲットから
データを読み書きしてデータを交換する通信制御方法で
あって、ターゲットは、送信しようとするデータのサイ
ズが所定サイズを越えるか判定し、越える場合には、前
記記憶領域に対する書込み命令を発行するようイニシエ
ータに対して要求し、越えない場合には、当該データを
イニシエータの前記記憶領域中の定められた領域に書き
込み、イニシエータは、前記ターゲットから書込み命令
を発行する要求を受信した場合には書込み命令を発行す
る。
に対してターゲットからデータを読み書きしてデータを
交換する通信システムであって、イニシエータは、前記
記憶領域に対する読み出し・書き込みそれぞれに応じた
命令を、ターゲットが保持できる読み出し・書き込みそ
れぞれの命令の数を越えないようにターゲットに送信
し、ターゲットは、受信した読み出し・書き込みそれぞ
れの命令を、互いに異なるキューにより保持して、互い
に独立に処理する。
に対してターゲットからデータを読み書きしてデータを
交換する通信システムであって、ターゲットは、送信し
ようとするデータのサイズが所定サイズを越えるか判定
し、越える場合には、前記記憶領域に対する書込み命令
を発行するようイニシエータに対して要求し、越えない
場合には、当該データをイニシエータの前記記憶領域中
の定められた領域に書き込み、イニシエータは、前記タ
ーゲットから書込み命令を発行する要求を受信した場合
には書込み命令を発行する。
通信により接続されたターゲットからデータを読み書き
してデータを交換する通信制御方法であって、前記ター
ゲットからの自発的な要求を受けてキューに登録するキ
ューイング工程と、アプリケーションあるいはターゲッ
トからの要求に応じて、前記記憶領域に対する読み出し
・書き込み命令を、ターゲットが保持できる読み出し・
書き込みそれぞれの命令の数を越えないように生成して
送信する命令生成工程とを備える。
ータの有する記憶領域に対してデータを読み書きしてデ
ータを交換する通信制御方法であって、前記イニシエー
タから受信した読み出し命令を所定容量のキューに登録
するキューイング工程と、前記キューから読み出し命令
を取り出して実行する順次実行工程と、前記イニシエー
タから受信した書込み命令を受信後直ちに実行する即時
実行工程と、前記イニシエータに対するデータ転送の要
求を発行する転送要求工程とを備える。
らデータを読み書きしてデータを交換する通信制御装置
であって、ターゲットとの通信手段と、前記記憶領域を
含むメモリと、前記ターゲットからの自発的な要求を登
録するキュー管理手段と、アプリケーションあるいはタ
ーゲットからの要求に応じて、前記記憶領域に対する読
み出し・書き込み命令を、ターゲットが保持できる読み
出し・書き込みそれぞれの命令の数を越えないように生
成して送信する命令生成手段とを備える。
に対してデータを読み書きしてデータを交換する通信制
御装置であって、イニシエータとの通信手段と、前記イ
ニシエータから受信した読み出し命令を保持する所定容
量のキューと、前記キューから読み出し命令を取り出し
て実行する順次実行手段と、前記イニシエータから受信
した書込み命令を受信後直ちに実行する即時実行手段
と、前記イニシエータに対するデータ転送の要求を発行
する転送要求手段とを備える。
れるターゲットからデータを読み書きしてデータを交換
する通信制御プログラムを格納するコンピュータ可読の
記憶媒体であって、前記プログラムは、前記ターゲット
からの自発的な要求を登録するキュー管理手段と、アプ
リケーションあるいはターゲットからの要求に応じて、
前記記憶領域に対する読み出し・書き込み命令を、ター
ゲットが保持できる読み出し・書き込みそれぞれの命令
の数を越えないように生成して送信する命令生成手段と
を備える。
の有する記憶領域に対してデータを読み書きしてデータ
を交換する通信制御プログラムを格納するコンピュータ
可読の記憶媒体であって、前記プログラムは、前記イニ
シエータから受信した読み出し命令を所定容量のキュー
に登録するキュー管理手段と、前記キューから読み出し
命令を取り出して実行する順次実行手段と、前記イニシ
エータから受信した書込み命令を受信後直ちに実行する
即時実行手段と、前記イニシエータに対するデータ転送
の要求を発行する転送要求手段とを備える。
方法を用いて、ホスト装置をイニシエータとし、プリン
タ装置をターゲットしてホスト装置とプリンタ装置とを
接続し、前記プリンタ装置は、ホスト装置から印刷デー
タを受信してそれを基に印刷出力し、前記ホスト装置
は、プリンタ装置からプリンタの状態情報を受信する印
刷システム。
て、ホストコンピュータとプリンタとを、IEEE13
94で接続し、その上に構築されたSBP−2プロトコ
ルを用いた、本発明に係るプロトコル(以下HPTと呼
ぶ)に従ってデータ転送を行うプリンタシステムを説明
する。図40は、そのプリンタシステムにおけるハード
ウエア構成図である。 <システムのハードウエア構成>図40において、ホス
トコンピュータ200は、ROM3のプログラム用RO
Mに記憶された文書処理プログラム等に基づいて、図
形,イメージ,文字,表(表計算等を含む)等が混在し
た文書処理を実行するCPU1を備える。CPU1はシ
ステムデバイス4に接続される各デバイスをCPU1が
総括的に制御する。また、ROM3のプログラム用RO
Mには、CPU1の制御プログラム等が記憶され、RO
M3のフォント用ROMには上記文書処理の際に使用す
るフォントデータ等が記憶され、ROM3のデータ用R
OMは上記文書処理等を行う際に使用する各種データが
記憶される。RAM2は、CPU1の主メモリ,ワーク
エリア等として機能する。プログラムはRAM2に格納
されても良い。また、RAM2には、送信データバッフ
ァやORBを格納するシステムメモリが確保される。
キーボード9や不図示のポインティングデバイスからの
キー入力を制御する。CRTコントローラ(CRTC)
6は、CRTディスプレイ(CRT)10の表示を制御
する。メモリコントローラ(MC)7は、プートプログ
ラム,種々のアプリケーション,フォントデータ,ユー
ザファイル,編集ファイル等を記憶するハードディスク
(HD)、フロッピーディスク(FD)等の外部メモリ
11とのアクセスを制御する。1394インターフェー
ス8は、IEEE1394規格に従ってプリンタ100
に接続されて、プリンタ100との通信制御処理を実行
する。なお、CPU1は、例えばRAM2上に設定され
た表示情報RAMへのアウトラインフォントの展開(ラ
スタライズ)処理を実行し、CRT10上でのWYSI
WYGを可能としている。また、CPU1は、CRT1
0上の不図示のマウスカーソル等で指示されたコマンド
に基づいて登録された種々のウィンドウを開き、種々の
データ処理を実行する。
12は、ROM13のプログラム用ROMに記憶された
制御プログラム等或いは外部メモリ14に記憶された制
御プログラム等に基づいてシステムバス15に接続され
る各種のデバイスとのアクセスを総括的に制御し、印刷
部インタフェース16を介して接続される印刷部(プリ
ンタエンジン)17に出力情報としての画像信号を出力
する。また、このROM13のプログラムROMには、
後述する各種エージェントた画像処理を実現するCPU
12の制御プログラム等が記憶される。ROM13のフ
ォント用ROMには上記出力情報を生成する際に使用す
るフォントデータ等が記憶され、ROM13のデータ用
ROMには、ハードディスク等の外部メモリ14が無い
プリンタの場合には、ホストコンピュータ上で利用され
る情報等が記憶されている。CPU12は1394イン
ターフェース18を介してホストコンピュータとの通信
処理が可能となっており、プリンタ内の情報等をホスト
コンピュータ200に通知可能に構成されている。
ークエリア等として機能するRAMで、図示しない増設
ポートに接続されるオプションRAMによりメモリ容量
を拡張することができるように構成されている。なお、
RAM19は、出力情報展開領域、環境データ格納領
域、NVRAM等に用いられる。
ード等の外部メモリ14は、メモリコントローラ(M
C)20によりアクセスを制御される。外部メモリ14
は、オプションとして接続され、フォントデータ、エミ
ュレーションプログラム、フォームデータ等を記憶す
る。また、操作パネル18には、操作のためのスイッチ
およびLED表示器等が配されている。また、前述した
外部メモリは1個に限らず、少なくとも1個以上備え、
内蔵フォントに加えてオプションフォントカード,言語
系の異なるプリンタ制御言語を解釈するプログラムを格
納した外部メモリを複数接続できるように構成されてい
ても良い。さらに、図示しないNVRAMを有し、操作
パネル1012からのプリンタモード設定情報を記憶す
るようにしても良い。 <イニシエータの構成>上述したハードウエア構成にお
いて、プリンタ100をターゲットとし、ホストコンピ
ュータ200をイニシエータとした通信システムを、図
1及び図2に示す。本実施形態に置いては、これら構成
は、それぞれホストコンピュータ及びプリンタにおける
CPUによりプログラムを実行することで実現される。
まず、図2のイニシエータから説明する。
コンピュータにおいては、アプリケーションであるプリ
ンタドライバ209はHPT処理部203を介してプリ
ンタに対するデータ転送要求を発行するとともに、プリ
ンタからの応答を受ける。
を含んでおり、システムメモリ208に生成されるOR
Bを管理している。ORBはホストコンピュータからプ
リンタへ、あるいはプリンタからホストコンピュータへ
転送されるデータバッファのアドレスやサイズ等を格納
したブロックであり、先頭のORBから順次リンクされ
ている。このORBについては、次のような処理の原則
がある。 リンクの先頭のORBから順次処理される。完了通知
(ステータスブロック)を受信するとリンクからはずさ
れる。 新たに生成されたORBはリンクの末尾につながれ
る。 リンクされるORBの数の上限は後述するプリンタに
おける2つのキューの容量の合計と同一である。
206は、プリンタの2つのキューそれぞれについて2
つのカウンタを用意している。ひとつはCurrentQuedQUE
というカウンタであり、後述するプリンタのプリフェッ
チキューの現在の空き数を示している。また、もうひと
つはCurrentImmediateQUEというカウンタである。こち
らのカウンタが対応するキューの容量は本実施形態では
1であり、処理されているエントリのみがキューに入っ
ているということができる。これらカウンタは、ORB
の生成と削除に合わせて増減される。
側のドアベルレジスタと呼ばれるレジスタに書き込むこ
とにより、ORBが発生したことをプリンタに知らせ
る。この手続きはSBP−2で規定されているもので、
その規格書等に記載されている。
キュー204及びキュー処理部205を含む。1394
インターフェース201を介して受信されたステータス
は、ステータス識別部202により識別され、ステータ
スの種類に応じて直接ORB管理部206に送り付けら
れるか、あるいはステータスキュー204に入れられ、
先入先出順にキュー処理部205で処理される。ステー
タスの種類には2種類ある。 ノーマルステータス…ホストコンピュータ−プリンタ
間のデータ転送の結果を通知するステータスブロックで
あり、直接ORB管理部に送られる。 アンソリサイテド(Unsolicited)ステータス…プリン
タからホストコンピュータに対して転送すべき非同期デ
ータが発生したことを示すステータスブロックであり、
ステータスキューに入れられる。これは通常プリンタか
ら自発的に発行される。これらの区別はステータスブロ
ックに書き込まれた値によってなされる。
タから書き込まれるレジスタであり、ホストコンピュー
タが読むべきデータがプリンタがあることを示す。
上のような機能的な構成からなっている。 <ターゲットの構成>図1は、ターゲットたるプリンタ
の機能上の構成を示すブロック図である。
ホストコンピュータによって書き込まれるレジスタであ
り、ORBが新たに生成されたことを示す。コマンドフ
ェッチエージェント103は、1394インターフェー
ス101を介してORBを読み込み、その種類に応じて
プリフェッチキュー104に入れるか、あるいは即時実
行エージェント106に送りつける。このコマンドの種
類は、即時実行か順次実行かを示すフィールドを基準に
して判定される。しかし、実質的にはこのフィールドは
コマンドの機能に対応しており、本実施形態ではターゲ
ットからイニシエータへのデータ転送のためのコマンド
(リード要求コマンド)や、ターゲットの状態を捕捉す
るためのコマンドは即時実行であり、イニシエータから
ターゲットへの印刷データの転送などは順次実行とされ
ている。
エージェント106は、ともにコマンドフェッチエージ
ェント103によって読み込まれたORBを、その内容
に応じて、ホストコンピュータのバッファからのデータ
の読み出しや、データ処理部7から与えられたデータの
書込みなどを行う。その後、ホストコンピュータにノー
マルステータスを返す。
PDLを解釈実行してラスタデータを生成するラスタラ
イズやデバイス管理を行うデータ処理部107からのデ
ータ転送要求に応じて、アンソリサイテドステータスを
ホストコンピュータに送る。バスインターフェース10
2は、プリンタ100からホストコンピュータ200の
システムメモリ208の所望のメモリロケーションにア
クセスするためのインターフェースである。
ジェントはホストコンピュータからプリンタへのデータ
転送のORBのために用いられ、即時実行エージェント
はプリンタからホストコンピュータへのデータ転送のO
RBのために用いられる。
と動作を簡単に説明した。これらを更に詳しく説明する
前に、まずORBの詳しい内容を説明する。 <コマンドORB(Operation Request Block)の内容>
図3はORB一般の構成を示す図である。図3(A)に
おいて、"Next_ORB"(リンク)フィールド301は、次
のORBへのリンクである。次のORBがない場合には
それを表す所定の値が入れられる。なお、先頭のORB
は、所定のアドレスレジスタにより示される。"data_de
scripter"(データアドレス)フィールド302は、デ
ータバッファのアドレスを示す。"d"(方向)フィール
ド303は、ホストコンピュータからプリンタへのデー
タ転送(0:ライト)か、プリンタからホストコンピュ
ータへのデータ転送(1:リード)かを示す。"data_si
ze"(データサイズ)フィールド304は、アドレスフ
ィールド302で指し示されるデータバッファのサイズ
を示す。以上、図の点線よりも上のフィールドがSBP
−2で規定されているフィールドであり、これから説明
するフィールド305〜308が、HPTに固有の処理
に用いられるフィールドである。
ターゲットにおいて、即時実行エージェントか、順次実
行エージェントかどちらで実行されるORBであるかを
示している。値が0すなわち順次実行エージェントであ
ればプリフェッチキューに入れられ、値が1であれば即
時実行エージェントにより処理される。"function"(フ
ァンクション)フィールド306は、図3(B)に示す
ようにORBの意味を示している。これについては、更
に詳しく説明する。"command_block_length"(コマンド
長)フィールド307は、"control_block"(コントロ
ールブロック)フィールド308の長さを表している。
コントロールブロックフィールド308には、ファンク
ションフィールド306の値に応じて様々な値が入れら
れる。
る。 (キューデプスコマンド)図4はファンクション=0の
キューデプスコマンドORBを示している。このコマン
ドは、ターゲットのプリフェッチキュー104の深さを
得るためのコマンドである。即時ビットは1にセットさ
れる。
は、"source_ID"(ソースID)401と"status_queue
_length"(ステータスキュー長)402の2つのフィー
ルドが含まれている。ソースIDは、イニシエータにロ
グインしたプロセスの識別子が入れられる。図2の例で
は、ログインしたプロセスはプリンタドライバとなる。
これは、複数のプロセスがログインしている場合に、タ
ーゲットが応答すべきプロセスを識別するために付加さ
れている。また、ステータスキュー長402は、イニシ
エータの有するステータスキュー204の深さをターゲ
ットに知らせるためのフィールドである。
てステータスキューにどれだけアンソリサイテドステー
タスがキューイングされているかを管理するために用い
られる。ターゲットは、イニシエータがプリフェッチキ
ューを管理するのと同様に、アンソリサイテドステータ
スの生成および処理済みの通知に従ってステータスキュ
ーの深さを管理している。
ータスキュー長をカウンタCurrentUnsolicitedQUEに格
納するとともに、プリフェッチキュー長をイニシエータ
に返す。イニシエータでは、このコマンドによって得た
プリフェッチキューのキューの深さを元にして、ORB
の生成および消去という動作に応じて、ターゲットにキ
ューされているORBの数を管理する。 (データ転送コマンド)図5はファンクション=1のデ
ータ転送コマンドORBを示している。このコマンド
は、イニシエータからターゲットにデータを転送するた
めのコマンドである。"page_table_present"ビット50
1は、ページテーブルの存在を示しており、ページテー
ブルがある場合には、"page_size"フィールド502に
ページテーブルにより参照されるページサイズをセット
する。転送するデータバッファは、このページテーブル
とアドレス503およびデータサイズ504によって示
される。
ィールドの値に応じて、指定されたデータバッファへの
データのかき込みあるいはバッファからデータの読み出
しを行う。 (リード要求コマンド)図6はファンクション=2のリ
ード要求コマンドORBを示している。このコマンド
は、ターゲットから「リード要求ステータス」、すなわ
ちターゲットのプリンタからホストへのデータ転送要求
が送られてきた場合に、プリンタにデータを書き込むべ
きデータバッファを提供するコマンドである。"sequenc
e_number"(シーケンス番号)フィールド601は、こ
のコマンドを発行するきっかけとなった対応するリード
要求ステータスに付されているシーケンス番号と同一の
値であり、リード要求ステータスとリード要求コマンド
とを対応づけるための番号である。その他のフィールド
の構成はデータ転送コマンドと同様である。ただし、即
時ビットは1、方向ビットも1(リード)に設定され
る。即時ビットが1に設定されているのは、ターゲット
から発行されるリード要求ステータスに対して直ちに対
応するためである。また、バッファのサイズは、リード
要求ステータスによって指定されている値を使用する。
シエータのシステムメモリに確保された、指定されたデ
ータバッファへとデータを書き込む。 (ダイレクトステータス応答コマンド)図7はファンク
ション=3のダイレクトステータス応答コマンドORB
を示している。このコマンドは、ターゲットによりリー
ド要求を破棄させる場合に、リード要求ステータスに対
応して発行される。あるいは、ターゲットからのダイレ
クトステータスに対応したターゲットへの応答に用いら
れる。"sequence_number"(シーケンス番号)フィール
ド701は、このコマンドを発行するきっかけとなった
対応するリード要求ステータスあるいはダイレクトステ
ータスに付されているシーケンス番号と同一の値であ
る。その他のフィールドの構成はデータ転送コマンドと
同様である。ただし、即時ビットは1に設定される。
するシーケンス番号を有するリード要求ステータスを発
行していれば、それにかかるリード要求を破棄する。 (デバイス資源獲得コマンド)図8はファンクション=
8のデバイス資源獲得コマンドORBを示している。"r
esource_ID"(リソースID)フィールド801は、図
8(B)に示されている。値0は、使用するデバイスク
ラスおよび論理ユニット特性に依存した値であり、この
システムでは、0はデバイスクラスとしてプリンタ、論
理ユニット特性として印刷サービスを示している。
ースIDで指定された資源を、このコマンドの送り手で
あるイニシエータに対して割り当てる。 (デバイス資源解放コマンド)図9はファンクション=
9のデバイス資源解放コマンドORBを示している。"r
esource_ID"(リソースID)フィールド801は、図
8(B)に示されている通りである。
ースIDで指定された資源を解放する。 (基本デバイスステータスコマンド)図10はファンク
ション=A(Hex)の基本デバイスステータスコマンドO
RBを示している。
ゲット自身の有する状態を基本デバイスステータスブロ
ックにのせてイニシエータに応答する。イニシエータは
このコマンドを発行することで、ターゲットの状態を把
握できる。プリンタにおいては、例えば用紙サイズやサ
ポートするエミュレーション、その他のプリンタに関る
様々な状態情報が基本ステータスとしてターゲットから
返される。 <ステータスブロックの内容>図11は、ターゲットで
あるプリンタからイニシエータであるホストコンピュー
タに返されるステータスブロックを示している。ステー
タスブロックは、前述したコマンドORBに対応して用
意されている。ステータスブロックは、ターゲットの順
次実行エージェントおよび即時実行エージェントから発
行される。
の部分はSBP−2により規定されたフィールドであ
り、ステータスに対応するコマンドORBを示すためな
どのフィールドを含む。"i"(即時ビット)1101
は、ステータスが順次実行エージェントと即時実行エー
ジェントのいずれから発行されたかを示す。値が0であ
れば順次実行エージェントから、1であれば即時実行エ
ージェントから発行されたことを示す。"hpt_status"
(hptステータス)フォールド1102は、図11
(B)に示したように、ステータスブロックの種類を示
している。"hpt_status_dependent"フィールド1103
は、hptステータスに依存してその値が与えられ
る。"status_length"(ステータス長)フィールド10
4は、レスポンスブロック1105の長さを示してい
る。次に、種類毎にステータスブロックを説明する。 (キューデプスステータスブロック)図12は、hpt
ステータス=0のキューデプスステータスを示してい
る。キューデプスステータスは、キューデプスコマンド
に対するターゲットからの応答であり、ターゲットは"p
refetch_queue_depth"フィールド1201にプリフェッ
チキュー104の深さをセットしてイニシエータに返
す。これによりイニシエータはプリフェッチキューの容
量を知ることができ、その容量にあわせて生成するOR
Bの数を管理する。 (データ転送ステータスブロック)図13は、hptス
テータス=1のデータ転送ステータスを示している。デ
ータ転送ステータスは、データ転送コマンドに対するタ
ーゲットからの応答であり、データ転送コマンドORB
の処理が終了した時点でターゲットから発行される。イ
ニシエータはこのステータスを受けることで、ターゲッ
トのキューから1つのORBが処理されて排出されたこ
とを知ることができる。 (リード要求ステータスブロック)このステータスはh
ptステータス=2であり、そのフォーマットは特に図
示しないが、レスポンスブロック内に、イニシエータに
確保させるデータバッファのサイズを有している。この
ステータスは、コマンドORBに対して発行されるので
はなく、通常ターゲットから自発的に発行される。イニ
シエータはこのリード要求ステータスに対して、前述し
たリード要求コマンドORBを発行する。この手順につ
いては後述する。 (ダイレクトステータスブロック)このステータスはh
ptステータス=3であり、そのフォーマットは特に図
示しないが、レスポンスブロック内に、アプリケーショ
ンレベル(すなわちターゲットにおけるデータ処理部)
のステータスを含んでいる。すなわち、通常はアプリケ
ーションレベルのデータの交換はORBとそれにリンク
したデータバッファとを用いて行われる。しかし、デー
タが非常に小さく、レスポンスブロックの上限(本例で
は24バイト)内に治まる場合には、HTPレベルの応
答にアプリケーションレベルの応答を重畳してしまう。
イニシエータではこのステータスに対応してダイレクト
ステータス応答コマンドORBを発行する。 (デバイス資源獲得ステータスブロック)このステータ
スはhptステータス=8であり、そのフォーマットは
特に図示しないが、デバイス資源獲得コマンドを受けて
それを処理したターゲットから発行される。 (デバイス資源解放ステータスブロック)このステータ
スはhptステータス=9であり、そのフォーマットは
特に図示しないが、デバイス資源解放コマンドを受けて
それを処理したターゲットから発行される。 (基本デバイスステータスブロック)このステータスは
hptステータス=A(Hex)であり、そのフォーマット
は特に図示しないが、基本デバイスステータスコマンド
を受けた場合に、ターゲットから発行される。このステ
ータスには、所定のデバイスステータスがセットされ
る。
用いられるコマンドおよびステータスについて説明し
た。次に、イニシエータおよびターゲットにおけるデー
タ交換の手順を説明する。 <イニシエータからのデータ転送要求処理>図14はホ
ストコンピュータにおける、ホストコンピュータからプ
リンタあるいはプリンタからホストコンピュータへのデ
ータ転送要求に応じて、プリンタにコマンドORBの生
成を通知する手順を示している。
らデータの転送要求はステップS1401で監視されて
いる。データ転送要求には、プリンタドライバ等のアプ
リケーションが転送すべきデータがあることを知らせて
くる場合と、プリンタからのデータリード要求に応じて
知らされる場合とがある。なおプリンタが主体的にホス
トコンピュータに送るステータスを、アンソリサイテド
ステータスと呼ぶ。一方、ホストコンピュータからのコ
マンドORBの処理完了通知として返すステータスをノ
ーマルステータスと呼ぶ。
02で、それを順次実行とするか、即時実行とするか決
定し、ORBの即時ビットにセットする。プリンタから
のアンソリサイテドステータスによってORBを発行す
る場合は即時実行、ホストコンピュータのアプリケーシ
ョンからのデータ転送要求による場合には順次実行とし
ている。
いてカウンタCurrentQuedQUEが0でないか判定する。こ
のカウンタCurrentQuedQUEの初期値としては、電源立ち
上げ時やリセット時等、プリンタのプリフェッチキュー
の深さがキューデプスコマンドにより読取られて、それ
がセットされる。すなわち、カウンタCurrentQuedQUEに
より、現在のプリフェッチキューの空きがカウントされ
る。ステップS1404において空きが0であれば、タ
ーゲットのプリフェッチキューは空いていないので、空
くまでまつ。空きがあればステップS1404でカウン
タCurrentQuedQUEを1減らし、ステップS1407でデ
ータ転送ORBを生成してリストにリンクする。このと
き、アプリケーションによって作成されているデータバ
ッファがORBにリンクされる。その後、ステップS1
408で、プリンタのドアベルレジスタ108に書き込
み、OBRが発生したことをターゲットに知らせる。
ると判定された場合、ステップS1406でカウンタCu
rrentImmediateQUEの値が0より大きいか判定する。な
お、ターゲットの即時実行エージェントにはキューは用
意されておらず、従ってこのカウンタの値は最大値が1
であり、リセット時に1に設定されている。0より大き
い場合には、ステップS1406でそのカウンタを1減
らし、ORBを生成リンクにリストしてドアベルを書き
込む。
込まれると、図15の手順で、フェッチエージェントに
よってORBがターゲットに取り込まれる。 <フェッチエージェントによる処理>図15は、ドアベ
ルレジスタ108に書き込みが行われた際のターゲット
のフェッチエージェントによる処理手順である。
と、ステップS1601においてリードポインタに、シ
ステムメモリ内でリンクされている先頭のORBのアド
レスを設定する。
で示されるORBの即時ビットをテストし、即時である
か順次であるか判定する。順次実行である場合には、ス
テップS1603でプリフェッチキュー104の最後尾
のアドレス(NextWritePointer)を獲得する。ホストコン
ピュータはプリフェッチキューの空きを確認してドアベ
ルをライトするので、キューの空きは保証されている。
タで示されるORBをプリフェッチキューの最後尾にコ
ピーし、ステップS1605で、順次実行エージェント
に対してORBの受信を通知する。ステップS1606
で、リードポインタで示されるORBの"Next_ORB"フィ
ールド(次のORBへのリンクフィールド)がヌルでは
ないか、すなわちリンクしているORBがあるか判定
し、なければ終了するが、あれば、そのリンクされてい
るORBのアドレスをリードポインタに設定してステッ
プS1602からくり返す。
るORBであると判定されると、ステップS1608で
は、そのORBを即時実行エージェントによって予め示
されるアドレスへとコピーする。その後、ステップS1
609で即時実行エージェントにORBの受信を通知
し、ステップS1606に進む。
り込まれて各実行エージェントにORBの受信が通知さ
れ、図16の手順でORBの処理が実行される。 <実行エージェントによる処理>実行エージェントは、
即時実行エージェントと順次実行エージェントがある
が、ORBの処理に関しては同じ手順であるので、図1
6としてまとめて説明する。
トからORB受信の通知があると、ステップS1701
においてNextreadpointerにより指し示されるORBの
データアドレスフィールド、方向ビット、データサイズ
フィールドの値を取り出す。なお、Nextreadpointerと
は、キューに格納されている、実行エージェントがまさ
に処理するORBへのポインタである。順次実行エージ
ェントにおいては、プリフェッチキューの先頭のORB
が指し示される。
タサイズが0であるか判定し、サイズが0でなければ、
ステップS1703において方向ビット(Direction bi
t)がライトであるかリードであるか判定する。ライトで
ある場合には、データアドレスとデータサイズで指定さ
れるデータをイニシエータのシステムメモリから読み出
し、データ処理部107に渡す。
707で渡されたデータを処理する。例えば、プリンタ
ではPDLデータの解析やラスタライズなどが行われ
る。
と、ステップS1708で、当該ORBの処理が完了し
た旨通知するデータ転送ステータスブロック(ノーマル
ステータス)を生成し、ステップS1709でステータ
スをイニシエータにの通知するために、ステータスレジ
スタ210にその旨書き込む。
ビットがリードであると判定されると、ステップS17
10において、ORBのデータアドレスフィールドおよ
びデータサイズフィールドで指定されたデータバッファ
に、データを書き込む。このターゲットから書き込まれ
るデータをリバースデータと呼ぶ。書き込むリバースデ
ータは、データ処理部などで作成、バッファに格納され
ているデータであり、例えば、プリンタの搭載フォント
の列挙といった24バイト以上のデータである。
データを格納してあったバッファを解放する。
で処理完了通知のステータスブロック(ノーマルステー
タス)を作成し、ステップS1714でステータスレジ
スタに所定の値を書き込んでステータスブロックの通知
をホストコンピュータに知らせる。
ウンタCurrentUnsolicitedQUEを1増やして終了する。
このカウンタCurrentUnsolicitedQUEは、キューデプス
コマンドを受信した際に、その"status_que_depth"フィ
ールドに格納されている値が初期値として設定されてい
る。このカウンタは、ステータスキュー204の空きを
示すように、アンソリサイテドステータスブロックの送
信と、その処理済みの通知に応じて増減される。カウン
タCurrentUnsolicitedQUEのカウントは次の条件に従っ
て行われる。 −カウントアップの条件 アンソリサイテドステータスブロックを送信した場合
1加算する。イニシエータではアンソリサイテドステー
タスのみがステータスキュー204にキューイングされ
る。 −カウントダウンの条件 リード要求ORBの処理完了のステータスブロックを
送信した場合に1加算する。イニシエータではこのステ
ータスを受けてステータスキュー203から処理済みの
ステータスブロックをはずす。 データサイズが0のORBの処理完了のステータスブ
ロックを送信した場合に1加算する。すなわち、ダイレ
クトステータス応答のORBに対するステータスブロッ
クを送信した場合に1加算する。イニシエータでは、こ
のステータスを受けてステータスキュー203から処理
済みのステータスブロック(ダイレクトステータス)を
はずす。
が0であると判定されたなら、特に処理すべきデータは
ないので、何もせずに処理完了通知を送るべくステップ
S1713でステータスブロックを応答する。
の生成から、ターゲットによるその処理とステータスブ
ロックの生成までの処理が行われる。次に、図17,1
8を参照して、プリンタからホストコンピュータへのア
ンソリサイテドステータスの送信をきっかけとするデー
タ転送を説明する。 <ターゲットにおけるアンソリサイテドステータスの発
行処理>プリンタに紙切れやジャム等のエラーが発生し
た場合など、プリンタからホストコンピュータに直ちに
通知しなければならない情報がある。この場合にはプリ
ンタが主体となって、データをプリンタに転送する。プ
リンタから送るべきデータがあると、データ処理部10
7はその旨即時実行エージェントに通知し、それにより
図17の処理が開始される。
ータに送信すべきデータが24バイト超過であるか判定
する。24バイトとは、ステータスブロックのレスポン
スブロックにいれられるデータ量の上限である。
02でリード要求ステータスブロック(アンソリサイテ
ドステータス)を生成し、ステップS1803でステー
タスブロックの"ORB_offset"フィールドにリバースデー
タが格納されたアドレスを設定する。このとき、リバー
スデータのサイズもステータスブロックに書き込まれ
る。
tUnsolicitedQUEの値が0より大きい以下、すなわちス
テータスキューに空きがあるか判定する。空きがなけれ
ば空くまで待ってから、ステップS1805で、カウン
タCurrentUnsolicitedQUEの値を1減らして、ステップ
S1806でステータスレジスタに適当な値を書き込
む。
そのデータはステータスブロックに重畳してホストコン
ピュータに送れるため、ダイレクトステータス(アンソ
リサイテドステータス)を作成し、そのコマンドセット
依存フィールドにリバースデータを格納する。その後ス
テップS1804に分岐する。
ータスがイニシエータに送り付けられる。
エータは、図18の手順でそれを処理する。 <イニシエータによるステータス処理>この処理は、ス
テータスレジスタに所定の値がセットされて生じる割り
込みによって起動される。また、この割り込みとして
は、ステータスレジスタに値がセットされるごとの多重
割り込みを許している。
タスがノーマルステータスかアンソリサイテドステータ
スか判別する。アンソリサイテドステータスであれば、
ステップS1502で、ステータスブロックをターゲッ
トから読み出してステータスキューの末尾にコピーす
る。ステップS1503ではそのブロックがキューの先
頭になったか判定し、キューの先頭になったなら、ステ
ップS1504で、リバースデータの格納用のバッファ
を確保し、ステップS1505でそのステータスがリー
ド要求ステータスかそれともダイレクトステータスか判
定する。
求コマンドORBをステップS1506で作成する。作
成されるORBは、即時フラグが「即時」であり、方向
フラグがリードである。また、バッファのアドレスをO
RBに搭載する。この後、データ転送の必要事項が生じ
たことを図14のプロセスに通知する。図14のプロセ
スにより、ステップS1506で作成されたORBはタ
ーゲットに送られ、そのデータバッファにターゲットか
らデータが書き込まれてデータ転送が行われることにな
る。
スと判定された場合、そのステータス内のリバースデー
タを確保したバッファにコピーし、ステップS1509
で、アプリケーション等の上位プロセスにそのリバース
データを送る。その後、ダイレクトステータス応答OR
B(即時ビットは「即時」)をステップS1510で作
成する。この時データサイズは0に指定する。
ータスと判定されると、そのステータスに対応するOR
Bの方向ビットがリードかライトかステップS1511
で判定される。ライト、すなわちイニシエータからター
ゲットへのデータ転送であった場合、対応ORBをリス
トから削除し(ステップS1512)、それが使用して
いたデータバッファを解放し(ステップS1513)、
プリフェッチキューの空き容量であるカウンタCurrentQ
uedQUEの値を1増やす。
からイニシエータへのデータ転送であれば、そのステー
タスはリード要求コマンドORBに対する応答であるの
で、ステップS1515で、プリンタドライバ等の上位
プロセスにリード処理の終了を通知して、ステップS1
516で対応ORBをリストから削除し、カウンタCurr
entImmediateQUEを1増やす。すなわち、即時実行エー
ジェントに次のORBを送ることができる状態にする。
の書き込みが行われた場合に、ステータスを処理する。
すなわち、アンソリサイテドステータスはキューする
が、ノーマルステータスは直ちに処理される。アンソリ
サイテドステータスをキューイングする理由は、アンソ
リサイテドステータスはORBの生成を引き起こすが、
生成されリストされるORBの数はプリフェッチキュー
の容量を上回らないように制限されているためである。
ORBの数をこのように制限するのは、即時実行される
べきORBが、ORB作成通知後直ちに処理されること
を保証するためである。ORBが無制限に作られてしま
うと、ORBリスト自体が即時実行エージェントに処理
されるORBのキューとなってしまい、即時実行が保証
されなくなる。リンクされるORBの数を、ターゲット
のプリフェッチキューに入れられているORBの数と即
時実行エージェントで実行されているORBの数(1)
との合計値に制限することで、リンクリスト上のORB
を、ターゲットにおけるプリフェッチキューに対して透
過にすることができる。 <メッセージシーケンスの例>以上説明した手順でイニ
シエータとターゲットとの間で交換されるメッセージシ
ーケンスの例を、図19〜図21を用いて説明する。 (ターゲットへのデータ転送シーケンス)図19は、イ
ニシエータ(ホストコンピュータ)からターゲット(プ
リンタ)へのデータ転送時のシーケンス例である。
規格で規定されたデータ、すなわち図3のコマンドおよ
び図11のステータスにおける、SBP−2で規定され
たフィールドを処理する処理層である。また、HPTと
は、SBP−2で規定されいない、ファンクションごと
に定められた処理を行う処理層である。HPTでは、前
述したフローチャートの手順を行う。SBP−2は、そ
の手順において、ORBのリンクやドアベルのライト、
ORBやステータスのHPTへの引き渡し等の機能を果
たす。
データ、HPTでORB(ここではデータ転送ORB)
が作成され、空きキューカウンタ(CurrentQuedQUE)が1
減らされて、ORBのリンク要求がSBP−2に出され
る(1901)。SBP−2ではORBをリンクしてド
アベルレジスタにライト要求を出す(1902)。13
94インタフェースにより、ドアベルレジスタが書き込
まれ(1903)、それがターゲットのSBP−2に通
知される(1904)。
要求を1394インタフェースに出して(1905)、
システムメモリからORBが読み出される(190
6)。HPTは、読み出されたORBの内容に応じて対
応キューに格納する(1907)。ここではデータ転送
コマンドORBなので、1394インタフェースに対し
てデータリード要求を出す(1908)。これに応じ
て、指定されたアドレスからデータが読み出され、アプ
リケーションに渡される(1909)。アプリケーショ
ンは、この場合画像の展開を行うラスタライザ等であ
り、展開された画像はプリンタエンジンから印刷出力さ
れることになる。
してステータスブロック送信要求が出され(191
0)、ステータスブロック(データ転送ステータス)が
イニシエータに返される(1911)。イニシエータの
HTPは、これを受けると対応ORBをリンクから削除
し、空きキューカウンタを1増やす(1912)。
ターゲットにデータが転送される。 (イニシエータへのデータ転送シーケンス)図20は、
リード要求ステータスのシーケンスである。
作成されると、アンソリサイテドステータス(リード要
求ステータス)が作成され、ステータスキューカウンタ
(CurrentUnsolicitedQUE)が1減らされて、アンソリサ
イテドステータス送信要求が出される(2001)。こ
れを受けたSBP−2ではアンソリサイテドステータス
ブロックをイニシエータに送信する(2002)。イニ
シエータのSBP−2層は、このステータスを受けてH
PT層にアンソリサイテドステータスブロックを送信す
る(2003)。HPT層は、アンソリサイテドステー
タスブロックをステータスキューにコピーする。
いては、データバッファおよびリード要求ORBを作成
してSBP−2層に作成したORBのリンクを要求する
(2004)。SBP−2層は、ドアベルレジスタへの
書き込み要求を出し(2005)、1394インタフェ
ースによりライトが行われる(2006)。ドアベル書
き込みの通知は1394インタフェースからSBP−2
に通知され(2007)直ちにORBのリード要求(2
008)とORBのリードが行われる(2009)。読
み出されたORBはターゲットのHPT層に渡され、H
PTでは指定されたキューにそれを格納した後(201
0)、その内容を解析してデータリード要求であること
を認識し、データライト要求を1394インタフェース
に対して出す(2011)。
タの用意したデータバッファに書き込まれる(201
2)。
作成要求ががターゲットから出され、ステータスキュー
の空きが1つ増やされる(2013)。それに応じてノ
ーマルステータスブロックがイニシエータに返され(2
014)、それによってHPTにORBのリンク削除の
要求が出されると、対応ORBが削除され、即時実行エ
ージェント側のキューの空き数(0のはずである)に1
加えられ、使用されたデータバッファが解放される(2
015)。
ニシエータにデータが転送される。 (イニシエータへのデータ転送シーケンス)図21は、
ターゲットからイニシエータへとデータ転送する際のシ
ーケンスである。ただし、図20のシーケンスと異な
り、転送されるデータが小さいためにダイレクトステー
タスを用いている。
作成されると、アンソリサイテドステータス(ダイレク
トステータス)が作成され、ステータスキューカウンタ
(CurrentUnsolicitedQUE)が1減らされて、アンソリサ
イテドステータス送信要求が出される(2101)。こ
れを受けたSBP−2ではアンソリサイテドステータス
ブロックをイニシエータに送信する(2102)。イニ
シエータのSBP−2層は、このステータスを受けてH
PT層にアンソリサイテドステータスブロックを送信す
る(2103)。HPT層は、アンソリサイテドステー
タスブロックをステータスキューにコピーする。
いては、ステータスに重畳されたアプリケーションレベ
ルのデータを読み出し、データバッファおよびダイレク
トステータス応答ORBを作成してSBP−2層に作成
したORBのリンクを要求する(2104)。SBP−
2層は、ドアベルレジスタへの書き込み要求を出し(2
105)、1394インタフェースによりライトが行わ
れる(2106)。ドアベル書き込みの通知は1394
インタフェースからSBP−2に通知され(2107)
直ちにORBのリード要求(2108)とORBのリー
ドが行われる(2109)。
層に渡され、HPTでは指定されたキューにそれを格納
した後(2110)、その内容を解析する。ダイレクト
ステータス応答ORBであることが認識されると、対応
するステータスブロック作成要求がターゲットから出さ
れ、ステータスキューの空きが1つ増やされる(211
1)。それに応じてノーマルステータスブロックがイニ
シエータに返され(2112)、それによってHPTに
ORBのリンク削除の要求が出されると、対応ORBが
削除され、即時実行エージェント側のキューの空き数に
1加えられ、使用されたデータバッファが解放される
(2113)。
ニシエータにデータが転送される。このシーケンスで
は、図20のシーケンスに比べてデータライト要求(2
011)およびリバースデータ書き込み(2012)の
2つの手順が省かれている。 <本システムに特有の機能>本システムの構成および動
作は上述した通りである。このシステムに特有な機能や
構成、利点などをここで整理すると次のようなものがあ
げられる。 ORBのキューを順次実行用と即時実行用と2つ設
け、それぞれに応じた実行エージェントを設けた。これ
により、イニシエータからのデータ転送要求ORBはキ
ューイングされて順次処理されるが(順次実行)、ター
ゲットからのリード要求ステータスは、リード要求OR
B発行後直ちに処理される(即時実行)。即時実行は、
ORBリストにリンクするORB数の上限を、ライトの
ORBについては順次実行キューの容量に、リードのO
RBについては即時実行キューの容量(この場合1)に
することにより保証されている。
タスは、イニシエータにおいてキューイングされる。こ
のため、イニシエータからのデータ転送要求はターゲッ
トのプリフェッチキューにより、ターゲットからのデー
タ転送要求(リード要求)はイニシエータのステータス
キューによりそれぞれキューイングされることになり、
アプリケーション層にデータ転送をおこなうための全2
重通信チャネルを提供できる。すなわち、いずれの方向
へのデータ転送についても、キューに入れられた順に要
求は処理され、一方へのデータ転送の処理が他方のデー
タ転送の処理に影響を及ぼさず、互いに干渉しない独立
したチャネルを提供できる。言い換えれば、イニシエー
タからターゲット,ターゲットからイニシエータへと、
それぞれにおいて非同期に発生したデータを非同期に転
送できる。 イニシエータとターゲットとが互いのキューの空き容
量を相互に監視しているため、ORBあるいはステータ
スブロックを送信した際に、確実に受信される。 全2重通信チャネルは1回のログインで提供される。
すなわち、資源を豊富に有するホストコンピュータをイ
ニシエータとし、資源の乏しいプリンタをターゲットと
して相互にデータを交換できる。このため、プリンタの
備える資源、特に必要なメモリ容量を抑制することがで
きる。 IEEE1394インターフェースを利用しているた
めに、ターゲット側へのデータ転送を、ターゲットがそ
の都合に応じて読み出すことで行うことができ、イニシ
エータがターゲットの都合によってデータ転送に占有さ
れることを防止できる。 SBP−2プロトコルを利用しているため、ターゲッ
トでキューされるのはORBだけで、実際に転送される
データそのものは処理待ちの間イニシエータに格納され
ている。このため、ターゲットのメモリ資源を小容量化
できる。 ダイレクトステータスを利用することで、HPT層の
ステータスにアプリケーション層のデータを重畳させて
ターゲットからイニシエータに送信できる。このため、
データ転送シーケンスを短くすることができる。
ピュータとプリンタに限らず様々な装置に適用すること
ができる。また、上述した特徴点は、ホストコンピュー
タとプリンタとの関係にとどまらず、ホストコンピュー
タと資源の少ない周辺装置一般、周辺装置同士という接
続であっても有用である。 [第2の実施の形態]本発明の第2の実施の形態とし
て、同時に複数の論理チャネルを提供するシステムを説
明する。この場合、ターゲット側には、プリンタ単体で
なく、ファクシミリや画像スキャナといった機器が複合
したデジタル複合機を利用することができる。 <システムの構成>図23は本実施形態におけるイニシ
エータのブロック図である。図2と異なる点について説
明し、共通する構成の説明は省略する。図23で特徴的
といえるのは、ステータス識別部212が、ステータス
の種類だけでなく、論理チャネルを識別し、チャネル毎
にステータスを振り分ける点と、システムメモリ,HP
T処理部を有する1チャネル分の構成を、複数(図では
2)チャネル分備えている点である。
ロックに含まれるチャネルIDに従って、チャネルを識
別する。これについては後述する。例えば、デジタル複
合機を利用する場合には、1つのチャネルはプリンタド
ライバが、もう一つは画像スキャナドライバが利用す
る、といったように各チャネル毎に異なるアプリケーシ
ョンであってもよいし、同一のアプリケーションが複数
のチャネルを利用してもよい。
る。図1と異なる点は、コマンドフェッチエージェント
113が、コマンドORBをチャネル毎に振り分ける、
という点である。各チャネルは、図1と同様の構成であ
り、プリフェッチキューと2つの実行エージェントを有
している。
ており、コマンドフェッチエージェント113はそれを
見てチャネルを識別する。 <コマンドORBの形式>図24〜図32はコマンドO
RBのフォーマットの例である。図24はデータ転送コ
マンドORB,図25はリード要求コマンドORB,図
26はダイレクトステータス応答コマンドORBの図,
図27はデバイス資源獲得コマンドORBの図,図28
はデバイス資源解放コマンドROBの図,図30は基本
デバイスステータスコマンドORBの図であり、第1の
実施の形態におけるそれぞれのコマンドと、チャネルI
Dフィールドを有する点で異なっている。他の構成は同
じである。
RBの図で、ターゲットからのデバイス資源放棄要求に
対する応答である。アクセプトビット2901により、
放棄が要求された資源を放棄したか否かが示される。タ
ーゲットは資源が乏しいため、複数のチャネルが利用さ
れたり、複数のアプリケーションプロセスが稼働するな
どにより各プロセスの資源が不足することもあり得る。
そのような場合、ターゲットから資源放棄要求が出され
ることになる。
マンド、図31(B)はオープンチャネル要求ステータ
スの図である。これらにより、所望の論理チャネルが開
かれる。
マンド、図31(B)はクローズンチャネル要求ステー
タスの図である。これらにより、所望の論理チャネルが
閉じられる。 <ステータスブロックの形式>図33〜図38はステー
タスブロックのフォーマットを示す図である。図33は
ステータス一般の形式の図、図34はリード要求ステー
タスの図、図35はダイレクトステータスの図、図36
はデバイス資源獲得ステータスの図、図38は基本デバ
イスステータスの図である。これらの形式は、チャネル
IDが含まれていることを除いて第1の実施の形態にお
けるステータスブロックと同様である。
タスブロックの図であり、イニシエータに放棄を求める
資源のIDを資源IDフィールド3701に格納してい
る。このステータスはターゲットから発せられる要求の
ため、アンソリサイテドステータスとしてイニシエータ
に送信される。 <イニシエータおよびターゲットにおけるコマンド/ス
テータス処理手順>図39は、本実施形態における処理
手順である。図39(A)はイニシエータにおいてステ
ータスレジスタに書き込みが行われて起動される処理手
順で、第1実施形態の図18に相当する。処理が開始さ
れると、初めにステップS3901でチャネルIDが判
別される。その後、判別された各チャネルについて、図
18のステップS1501からと同様の処理がおこなわ
れる。
ベルレジスタに書き込みが行われて起動される処理の手
順で、第1の実施の形態における図15に相当する。処
理が開始されると、初めにステップS3911でチャネ
ルIDが判別される。その後判別された各チャネルにつ
いて、図15のステップS1601からと同様の処理が
おこなわれる。
(図14)、ターゲットエージェントによる処理(図1
6)、プリンタからホストコンピュータへとデータが発
生した場合の処理(図17)については、第1の実施の
形態と同様である。ただし、これらの処理の前に、まず
チャネルが開かれなければならない。
ットからのダイレクトステータスによるデータ転送と同
様のシーケンスで行われる。
が実行される。複数の論理チャネルが利用できることを
除けば、第1の実施形態とほぼ同様のシステムである。
それぞれについて全2重通信を提供することができる。
そのため、デジタル複合機等、複数のデバイスを有する
機器についても、双方向通信を提供できる。それによ
り、第1の実施の形態で説明した〜の機能を複数の
チャネルについて提供できる。
ホストコンピュータ,インタフェイス機器,リーダ,プ
リンタなど)から構成されるシステムに適用しても、一
つの機器からなる装置(例えば、複写機,ファクシミリ
装置など)に適用してもよい。
の機能を実現するソフトウェアのプログラムコード(す
なわち、図14〜図18および図39の手順のプログラ
ム)を記録した記憶媒体を、システムあるいは装置に供
給し、そのシステムあるいは装置のコンピュータ(また
はCPUやMPU)が記憶媒体に格納されたプログラム
コードを読出し実行することによっても達成される。
ラムコード自体が前述した実施形態の機能を実現するこ
とになり、そのプログラムコードを記憶した記憶媒体は
本発明を構成することになる。
体としては、例えば、フロッピディスク,ハードディス
ク,光ディスク,光磁気ディスク,CD−ROM,CD
−R,磁気テープ,不揮発性のメモリカード,ROMな
どを用いることができる。
コードを実行することにより、前述した実施形態の機能
が実現されるだけでなく、そのプログラムコードの指示
に基づき、コンピュータ上で稼働しているOS(オペレ
ーティングシステム)などが実際の処理の一部または全
部を行い、その処理によって前述した実施形態の機能が
実現される場合も含まれる。
ムコードが、コンピュータに挿入された機能拡張ボード
やコンピュータに接続された機能拡張ユニットに備わる
メモリに書込まれた後、そのプログラムコードの指示に
基づき、その機能拡張ボードや機能拡張ユニットに備わ
るCPUなどが実際の処理の一部または全部を行い、そ
の処理によって前述した実施形態の機能が実現される場
合も含まれる。
1回のログインで、互いに非同期で転送できる双方向通
信する全2重通信を可能とし、また、データの交換に必
要なプロセスやメモリといった資源を効率的に利用でき
る。
のキューの空き容量を相互に監視しているため、ORB
あるいはステータスブロックを送信した際に、確実に受
信される。
しているために、ターゲット側へのデータ転送を、ター
ゲットがその都合に応じて読み出すことで行うことがで
き、イニシエータがターゲットの都合によってデータ転
送に占有されることを防止できる。
め、ターゲットでキューされるのはORBだけで、実際
に転送されるデータそのものは処理待ちの間イニシエー
タに格納されている。このため、ターゲットのメモリ資
源を小容量化できる。
HPT層のステータスにアプリケーション層のデータを
重畳させてターゲットからイニシエータに送信できる。
このため、データ転送シーケンスを短くすることができ
る。
ク図である。
示す図である。
す図である。
す図である。
ォーマットを示す図である。
トを示す図である。
トを示す図である。
ォーマットを示す図である。
す図である。
ットを示す図である。
トを示す図である。
に対する処理手順のフローチャートである。
ターゲットのフェッチエージェントによる処理手順のフ
ローチャートである。
た際の実行エージェントによる処理手順のフローチャー
トである。
対する処理手順のフローチャートである。
際のイニシエータによる処理手順のフローチャートであ
る。
ーゲット(プリンタ)へのデータ転送時のシーケンスの
図である。
ステータスを用いてデータ転送する際のシーケンスの図
である。
ステータスを用いてデータ転送する際のシーケンスの図
である。
ック図である。
ロック図である。
ORBのフォーマットを示す図である。
ORBのフォーマットを示す図である。
ス応答コマンドORBのフォーマットを示す図である。
マンドORBのフォーマットを示す図である。
マンドORBのフォーマットを示す図である。
答コマンドORBのフォーマットを示す図である。
タスコマンドORBのフォーマットを示す図である。
を示す図である。
を示す図である。
一般のフォーマットを示す図である。
スブロックのフォーマットを示す図である。
スブロックのフォーマットを示す図である。
テータスブロックのフォーマットを示す図である。
テータスブロックのフォーマットを示す図である。
タスブロックのフォーマットを示す図である。
による、ステータスレジスタへの書込みがおこなわれた
際の処理手順と、(B)マルチチャネル化されたターゲ
ットによる、ドアベルレジスタへの書込みがおこなわれ
た際の処理手順のフローチャートである。
プリンタシステムのハードウエア構成図である。
Claims (34)
- 【請求項1】 イニシエータの有する記憶領域に対して
ターゲットからデータを読み書きしてデータを交換する
通信制御方法であって、 イニシエータは、前記記憶領域に対する読み出し・書き
込みそれぞれに応じた命令を、ターゲットが保持できる
読み出し・書き込みそれぞれの命令の数を越えないよう
にターゲットに送信し、 ターゲットは、受信した読み出し・書き込みそれぞれの
命令を、互いに異なるキューにより保持して、互いに独
立に処理することを特徴とする通信制御方法。 - 【請求項2】 前記ターゲットは、書き込み命令につい
ては、キューに保持せず直ちに処理することを特徴とす
る請求項1に記載の通信制御方法。 - 【請求項3】 前記イニシエータは、前記記憶領域に対
するデータの書き込み要求をターゲットから受けると、
それを第2のキューにより保持してからターゲットに対
して書き込み命令を発行することを特徴とする請求項1
または2に記載の通信制御方法。 - 【請求項4】 前記ターゲットは、前記第2のキューに
より保持できる数を越えないように、書き込み要求を前
記イニシエータに発行することを特徴とする請求項3に
記載の通信制御方法。 - 【請求項5】 前記イニシエータは、前記記憶領域に対
する書込みの命令を、前記ターゲットからの要求に応じ
て発行することを特徴とする請求項1乃至4のいずれか
に記載の通信制御方法。 - 【請求項6】 前記ターゲットは、前記イニシエータに
転送すべきデータが所定サイズに満たない場合には、前
記記憶領域への書き込みをイニシエータに対して要求せ
ず、イニシエータに対して当該データを前記記憶領域中
の所定領域に直接書き込むことを特徴とする請求項5に
記載の通信制御方法。 - 【請求項7】 イニシエータの有する記憶領域に対して
ターゲットからデータを読み書きしてデータを交換する
通信制御方法であって、 ターゲットは、送信しようとするデータのサイズが所定
サイズを越えるか判定し、越える場合には、前記記憶領
域に対する書込み命令を発行するようイニシエータに対
して要求し、越えない場合には、当該データをイニシエ
ータに対して送り付け、 イニシエータは、前記ターゲットから書込み命令を発行
する要求を受信した場合には書込み命令を発行すること
を特徴とする通信制御方法。 - 【請求項8】 前記ターゲット及びイニシエータは、前
記書き込み・読み出しそれぞれの命令についてチャネル
識別子を付与し、チャネル識別子ごとに各命令を独立し
て処理することを特徴とする請求項1乃至8のいずれか
に記載の通信制御方法。 - 【請求項9】 イニシエータの有する記憶領域に対して
ターゲットからデータを読み書きしてデータを交換する
通信システムであって、 イニシエータは、前記記憶領域に対する読み出し・書き
込みそれぞれに応じた命令を、ターゲットが保持できる
読み出し・書き込みぞれぞれの命令の数を越えないよう
にターゲットに送信し、 ターゲットは、受信した読み出し・書き込みそれぞれの
命令を、互いに異なるキューにより保持して、互いに独
立に処理することを特徴とする通信システム。 - 【請求項10】 前記ターゲットは、書き込み命令につ
いては、キューに保持せず直ちに処理することを特徴と
する請求項9に記載の通信システム。 - 【請求項11】 前記イニシエータは、前記記憶領域に
対するデータの書き込み要求をターゲットから受ける
と、それを第2のキューにより保持してからターゲット
に対して書き込み命令を発行することを特徴とする請求
項9または10に記載の通信システム。 - 【請求項12】 前記ターゲットは、前記第2のキュー
により保持できる数を越えないように、書き込み要求を
前記イニシエータに発行することを特徴とする請求項1
1に記載の通信システム。 - 【請求項13】 前記イニシエータは、前記記憶領域に
対する書込みの命令を、前記ターゲットからの要求に応
じて発行することを特徴とする請求項9乃至12のいず
れかに記載の通信システム。 - 【請求項14】 前記ターゲットは、前記イニシエータ
に転送すべきデータが所定サイズに満たない場合には、
前記記憶領域への書き込みをイニシエータに対して要求
せず、イニシエータに対して当該データを前記記憶領域
中の所定領域に直接書き込むことを特徴とする請求項1
3に記載の通信システム。 - 【請求項15】 イニシエータの有する記憶領域に対し
てターゲットからデータを読み書きしてデータを交換す
る通信システムであって、 ターゲットは、送信しようとするデータのサイズが所定
サイズを越えるか判定し、越える場合には、前記記憶領
域に対する書込み命令を発行するようイニシエータに対
して要求し、越えない場合には、当該データをイニシエ
ータに対して書き込み、 イニシエータは、前記ターゲットから書込み命令を発行
する要求を受信した場合には書込み命令を発行すること
を特徴とする通信システム。 - 【請求項16】 前記ターゲット及びイニシエータは、
前記書き込み・読み出しそれぞれの命令についてチャネ
ル識別子を付与し、チャネル識別子ごとに各命令を独立
して処理することを特徴とする請求項9乃至16のいず
れかに記載の通信システム。 - 【請求項17】 メモリ内の記憶領域に対して、通信に
より接続されたターゲットからデータを読み書すること
でターゲットとデータを交換する通信制御方法であっ
て、 前記ターゲットからの自発的な要求を受けてキューに登
録するキューイング工程と、 アプリケーションあるいはターゲットからの要求に応じ
て、前記記憶領域に対する読み出し・書き込み命令を、
ターゲットが保持できる読み出し・書き込みそれぞれの
命令の数を越えないように生成して送信する命令生成工
程とを備えることを特徴とする通信制御方法。 - 【請求項18】 通信により接続されたイニシエータの
有する記憶領域に対してデータを読み書きしてイニシエ
ータとデータを交換する通信制御方法であって、 前記イニシエータから受信した読み出し命令を所定容量
のキューに登録するキューイング工程と、 前記キューから読み出し命令を取り出して実行する順次
実行工程と、 前記イニシエータから受信した書込み命令を受信後直ち
に実行する即時実行工程と、 前記イニシエータに対するデータ転送の要求を発行する
転送要求工程とを備えることを特徴とする通信制御方
法。 - 【請求項19】 前記ターゲットからの要求が、いずれ
のチャネルであるかチャネル識別子により判別するチャ
ネル判別工程を更に備え、前記命令生成工程は、判別さ
れたチャネルあるいはアプリケーションに対応したチャ
ネルに応じたチャネル識別子を命令に付与することを特
徴とする請求項18に記載の通信制御方法。 - 【請求項20】 前記イニシエータからの命令が、いず
れのチャネルであるかチャネル識別子により判別するチ
ャネル判別工程と、判別されたチャネルに応じたチャネ
ル識別子を付与した応答をイニシエータに返す応答工程
とを更に備えるとともに、前記転送要求工程は、判別さ
れたチャネルあるいはアプリケーションに対応したチャ
ネルに応じたチャネル識別子を要求に付与することを特
徴とする請求項19に記載の通信制御方法。 - 【請求項21】 前記転送要求工程は、前記イニシエー
タに対するデータのサイズが所定サイズより大きけれ
ば、前記イニシエータに対して前記記憶領域へのデータ
書込み命令を発行する要求を出し、小さければ、当該デ
ータを前記記録領域の定められた領域に直接書き込むこ
とを特徴とする請求項20に記載の通信制御方法。 - 【請求項22】 記憶領域に対してデータを読み書きし
てターゲットとデータを交換する通信制御装置であっ
て、 ターゲットとの通信手段と、 前記記憶領域を含むメモリと、 前記ターゲットからの自発的な要求を登録するキュー管
理手段と、 アプリケーションあるいはターゲットからの要求に応じ
て、前記記憶領域に対する読み出し・書き込み命令を、
ターゲットが保持できる読み出し・書き込みそれぞれの
命令の数を越えないように生成して送信する命令生成手
段とを備えることを特徴とする通信制御装置。 - 【請求項23】 イニシエータの有する記憶領域に対し
てデータを読み書きしてイニシエータとデータを交換す
る通信制御装置であって、 イニシエータとの通信手段と、 前記イニシエータから受信した読み出し命令を保持する
所定容量のキューと、 前記キューから読み出し命令を取り出して実行する順次
実行手段と、 前記イニシエータから受信した書込み命令を受信後直ち
に実行する即時実行手段と、 前記イニシエータに対するデータ転送の要求を発行する
転送要求手段とを備えることを特徴とする通信制御装
置。 - 【請求項24】 前記ターゲットからの要求が、いずれ
のチャネルであるかチャネル識別子により判別するチャ
ネル判別手段を更に備え、前記命令生成手段は、判別さ
れたチャネルあるいはアプリケーションに対応したチャ
ネルに応じたチャネル識別子を命令に付与することを特
徴とする請求項22に記載の通信制御装置。 - 【請求項25】 前記イニシエータからの命令が、いず
れのチャネルであるかチャネル識別子により判別するチ
ャネル判別手段と、判別されたチャネルに応じたチャネ
ル識別子を付与した応答をイニシエータに返す応答手段
とを更に備えるとともに、前記転送要求手段は、判別さ
れたチャネルあるいはアプリケーションに対応したチャ
ネルに応じたチャネル識別子を要求に付与することを特
徴とする請求項23に記載の通信制御装置。 - 【請求項26】 前記転送要求手段は、前記イニシエー
タに対するデータのサイズが所定サイズより大きけれ
ば、前記イニシエータに対して前記記憶領域へのデータ
書込み命令を発行する要求を出し、小さければ、当該デ
ータを前記記憶領域の定められた領域に直接書き込むこ
とを特徴とする請求項25に記載の通信制御装置。 - 【請求項27】 記憶領域に対して通信で接続されるタ
ーゲットからデータを読み書きしてデータを交換する通
信制御プログラムを格納するコンピュータ可読の記憶媒
体であって、前記プログラムは、 前記ターゲットからの自発的な要求を登録するキュー管
理手段と、 アプリケーションあるいはターゲットからの要求に応じ
て、前記記憶領域に対する読み出し・書き込み命令を、
ターゲットが保持できる命令の数を越えないように生成
して送信する命令生成手段とを備えることを特徴とする
記憶媒体。 - 【請求項28】 通信で接続されるイニシエータの有す
る記憶領域に対してデータを読み書きしてデータを交換
する通信制御プログラムを格納するコンピュータ可読の
記憶媒体であって、前記プログラムは、 前記イニシエータから受信した読み出し命令を所定容量
のキューに登録するキュー管理手段と、 前記キューから読み出し命令を取り出して実行する順次
実行手段と、 前記イニシエータから受信した書込み命令を受信後直ち
に実行する即時実行手段と、 前記イニシエータに対するデータ転送の要求を発行する
転送要求手段とを備えることを特徴とする記憶媒体。 - 【請求項29】 前記ターゲットからの要求が、いずれ
のチャネルであるかチャネル識別子により判別するチャ
ネル判別手段を更に備え、前記命令生成手段は、判別さ
れたチャネルあるいはアプリケーションに対応したチャ
ネルに応じたチャネル識別子を命令に付与することを特
徴とする請求項27に記載の記憶媒体。 - 【請求項30】 前記イニシエータからの命令が、いず
れのチャネルであるかチャネル識別子により判別するチ
ャネル判別手段と、判別されたチャネルに応じたチャネ
ル識別子を付与した応答をイニシエータに返す応答手段
とを更に備えるとともに、前記転送要求手段は、判別さ
れたチャネルあるいはアプリケーションに対応したチャ
ネルに応じたチャネル識別子を要求に付与することを特
徴とする請求項28に記載の記憶媒体。 - 【請求項31】 前記転送要求手段は、前記イニシエー
タに対するデータのサイズが所定サイズより大きけれ
ば、前記イニシエータに対して前記記憶領域へのデータ
書込み命令を発行する要求を出し、小さければデータ転
送の要求とともにデータをイニシエータに送り付けるこ
とを特徴とする請求項30に記載の記憶媒体。 - 【請求項32】 請求項1乃至9いずれかに記載の通信
制御方法を用いて、ホスト装置をイニシエータとし、プ
リンタ装置をターゲットしてホスト装置とプリンタ装置
とを接続し、前記プリンタ装置は、ホスト装置から印刷
データを受信してそれを基に印刷出力し、前記ホスト装
置は、プリンタ装置からプリンタの状態情報を受信する
ことを特徴とする印刷システム。 - 【請求項33】 請求項17または19に記載の通信制
御方法によりターゲットに印刷データを送信し、ターゲ
ットから状態情報を受信することを特徴とする印刷制御
装置。 - 【請求項34】 請求項18または20または21に記
載の通信制御方法によりイニシエータから印刷データを
受信し、イニシエータに状態情報を送信することを特徴
とする印刷装置。
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 |
DE69839783T DE69839783D1 (de) | 1997-09-09 | 1998-09-04 | Kommunikationssteuerverfahren und Vorrichtung und Kommunikationssystem |
DE69813976T DE69813976T2 (de) | 1997-09-09 | 1998-09-04 | Datenübertragungssteuerverfahren und Vorrichtung und Datenübertragungssystem |
EP02079458A EP1280064B1 (en) | 1997-09-09 | 1998-09-04 | 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 |
CA002246830A CA2246830C (en) | 1997-09-09 | 1998-09-08 | Communication control method and apparatus, and communication system |
KR1019980037116A KR100297219B1 (ko) | 1997-09-09 | 1998-09-09 | 통신 제어 방법 및 장치, 및 통신 시스템 |
CNB981191320A CN1179277C (zh) | 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 true JPH1185662A (ja) | 1999-03-30 |
JP4086345B2 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) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004523035A (ja) * | 2001-01-31 | 2004-07-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | メモリを介してデータ処理システムの間でデータのフローを制御する方法および装置 |
JP2004523829A (ja) * | 2001-01-31 | 2004-08-05 | インターナショナル・ビジネス・マシーンズ・コーポレーション | メモリを介してデータ処理システムの間でデータのフローを制御する方法および装置 |
JP2011044133A (ja) * | 2009-07-23 | 2011-03-03 | Seiko Epson Corp | 記録システム、及び、記録システムにおける通信制御方法 |
Families Citing this family (25)
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 | キヤノン株式会社 | 通信制御方法及び機器 |
EP2284688B1 (en) * | 1999-03-18 | 2015-02-25 | Seiko Epson Corporation | Information processing apparatus for controlling a printer, control method and storage medium carrying computer program |
JP3365377B2 (ja) * | 1999-08-12 | 2003-01-08 | セイコーエプソン株式会社 | ログイン装置、被ログイン装置、及び装置間通信システム、ログイン制御方法、並びに記録媒体 |
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 |
JP5593682B2 (ja) * | 2009-11-17 | 2014-09-24 | セイコーエプソン株式会社 | プリンター、プリンターの制御方法、及び、プログラム |
IN2014DE02931A (ja) | 2013-11-01 | 2015-06-26 | Seiko Epson Corp | |
CN104615388B (zh) * | 2013-11-01 | 2017-12-22 | 精工爱普生株式会社 | 打印控制系统 |
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 |
WO2023008008A1 (ja) * | 2021-07-30 | 2023-02-02 | 株式会社ソフトギア | 情報処理プログラム、情報処理装置及び情報処理方法 |
Family Cites Families (12)
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 |
-
1997
- 1997-09-09 JP JP24443097A patent/JP4086345B2/ja not_active Expired - Fee Related
-
1998
- 1998-09-04 EP EP98307152A patent/EP0902371B1/en not_active Expired - Lifetime
- 1998-09-04 EP EP02079458A patent/EP1280064B1/en not_active Expired - Lifetime
- 1998-09-04 DE DE69839783T patent/DE69839783D1/de not_active Expired - Lifetime
- 1998-09-04 DE DE69813976T patent/DE69813976T2/de not_active Expired - Lifetime
- 1998-09-08 CA CA002246830A patent/CA2246830C/en not_active Expired - Fee Related
- 1998-09-08 US US09/148,472 patent/US6452693B1/en not_active Expired - Lifetime
- 1998-09-09 KR KR1019980037116A patent/KR100297219B1/ko not_active IP Right Cessation
- 1998-09-09 CN CNB981191320A patent/CN1179277C/zh not_active Expired - Fee Related
-
2002
- 2002-07-15 US US10/194,202 patent/US6927873B2/en not_active Expired - Lifetime
-
2005
- 2005-05-09 US US11/124,266 patent/US7296095B2/en not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004523035A (ja) * | 2001-01-31 | 2004-07-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | メモリを介してデータ処理システムの間でデータのフローを制御する方法および装置 |
JP2004523829A (ja) * | 2001-01-31 | 2004-08-05 | インターナショナル・ビジネス・マシーンズ・コーポレーション | メモリを介してデータ処理システムの間でデータのフローを制御する方法および装置 |
JP2011044133A (ja) * | 2009-07-23 | 2011-03-03 | Seiko Epson Corp | 記録システム、及び、記録システムにおける通信制御方法 |
Also Published As
Publication number | Publication date |
---|---|
US6452693B1 (en) | 2002-09-17 |
US20050200895A1 (en) | 2005-09-15 |
CA2246830A1 (en) | 1999-03-09 |
EP1280064A2 (en) | 2003-01-29 |
EP1280064B1 (en) | 2008-07-23 |
US6927873B2 (en) | 2005-08-09 |
DE69813976D1 (de) | 2003-06-05 |
CN1179277C (zh) | 2004-12-08 |
US20020171870A1 (en) | 2002-11-21 |
EP1280064A3 (en) | 2004-10-20 |
DE69813976T2 (de) | 2003-12-11 |
DE69839783D1 (de) | 2008-09-04 |
US7296095B2 (en) | 2007-11-13 |
JP4086345B2 (ja) | 2008-05-14 |
EP0902371A1 (en) | 1999-03-17 |
CN1219705A (zh) | 1999-06-16 |
CA2246830C (en) | 2002-07-30 |
KR19990029655A (ko) | 1999-04-26 |
KR100297219B1 (ko) | 2001-10-26 |
EP0902371B1 (en) | 2003-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4086345B2 (ja) | 通信制御方法及び装置及び通信システム | |
US7110831B2 (en) | Communication control method, communication system, print control apparatus, printing apparatus, host apparatus, peripheral apparatus, and storage medium | |
JP3990833B2 (ja) | 通信制御方法及び装置 | |
US7199890B2 (en) | Print control method and apparatus | |
US7130068B1 (en) | Print server apparatus, information processing apparatus, print job reservation management method, reservation job generation method and memory medium | |
EP0949561B1 (en) | Print system and printer | |
JP4111472B2 (ja) | 通信制御方法及び装置及び通信システム | |
WO2005124531A1 (ja) | 情報処理装置及びジョブ転送制御方法 | |
JP3774702B2 (ja) | 印刷制御プログラム及び情報処理装置 | |
US7489414B2 (en) | Image forming system and image forming apparatus | |
CN100409170C (zh) | 打印控制装置以及控制方法 | |
US7190469B1 (en) | Printing system for printing interrupt jobs | |
US20040227972A1 (en) | Printing apparatus and canceling method | |
JP4307467B2 (ja) | 通信制御方法及び通信システム | |
JP3566511B2 (ja) | 情報処理装置及び印刷システム及び印刷処理方法並びにコンピュータ可読の記憶媒体 | |
JP2004126943A (ja) | 印刷処理装置、印刷処理方法及び印刷処理プログラム | |
JP3037537B2 (ja) | 印刷システムおよび印刷システムに使用する印刷装置 | |
JPH04233028A (ja) | プリンタ装置 | |
JP2002273985A (ja) | 印刷制御装置およびデータ処理方法および記憶媒体 | |
JP2002041255A (ja) | 画像出力装置 | |
JP2000250728A (ja) | データ処理装置およびデータ処理装置のデータ処理方法および印刷制御装置および印刷制御装置のデータ処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体 | |
JPH09171444A (ja) | ネットワークプリンタシステム | |
JP2000047839A (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 |