JP4095384B2 - 情報処理システム、情報処理装置、情報処理方法、プログラム及び記憶媒体 - Google Patents
情報処理システム、情報処理装置、情報処理方法、プログラム及び記憶媒体 Download PDFInfo
- Publication number
- JP4095384B2 JP4095384B2 JP2002260397A JP2002260397A JP4095384B2 JP 4095384 B2 JP4095384 B2 JP 4095384B2 JP 2002260397 A JP2002260397 A JP 2002260397A JP 2002260397 A JP2002260397 A JP 2002260397A JP 4095384 B2 JP4095384 B2 JP 4095384B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- node
- communication
- completed
- data communication
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Transfer Systems (AREA)
- Small-Scale Networks (AREA)
Description
【発明の属する技術分野】
本発明は、IEEE1394等のインターフェースで接続される情報処理システム、情報処理装置、情報処理方法、プログラム及び記憶媒体に関するものである。
【0002】
【従来の技術】
セントロニクス、USB、そしてIEEE1394等の各種インターフェースにおいてホストとデバイスの1対1接続、通信を行なう場合、ホスト・デバイス間でデバイスの各種機能を制御するためにために通信プロトコルの1セッション中に複数の論理チャネル接続を樹立し、チャネルごとにデータ転送を行なう。
【0003】
IEEE1394上のデータ通信プロトコルであるSBP(シリアルバスプロトコル)−2は、それ自体では、ひとつのロジカルユニットにおいて、データ転送の単位であるORB(オペレーションリクエストブロック)1個に対して1つのデータバッファが参照されるため、片方向の単一データチャネル、片方向半二重のデータ通信を行なう仕組みになっており、複数論理チャネルを実現するのは困難であった。現在規格策定中のSBP−2の機能拡張版であるSBP−3においては、この点に注目し、ロジカルユニットにおけるデータ転送の単位であるORBに対して2つのデータバッファを参照できるようにして1ロジカルユニットにつき2つのデータ転送チャネルを実現することを可能とする拡張が行なわれた。
【0004】
【発明が解決しようとする課題】
しかしながらSBP−3のデータ転送においては2つのデータ転送チャネルのフローコントロールはあくまでもORB単位で行なわれるため、何らかの理由によりどちらかのデータ転送チャネルにおいてデータの送受信ができなくなった場合、またどちらかのデータ転送チャネルのデータ転送が他のチャネルよりも遅い場合、正常に転送されているチャネル、速いほうのチャネルが影響を受けてしまう。
【0005】
これは、片方のデータバッファに対するアクセスが正常終了しても、もう片方のデータバッファアクセスが完了しないとそのORBに対する完了通知をSBP−3のイニシエータに対して通知できず、ロジカルユニットとしてのデータ転送が滞ってしまうためである。
【0006】
本発明は、上記従来技術の課題を解決するためになされたもので、その目的とするところは、IEEE1394バス等の2つのチャネルを用いて効率的なデータ転送を行うことにある。
【0007】
【課題を解決するための手段】
上記目的を達成するため、本発明に係るシステムは、
通信制御バスで接続された第1、第2機器を含む情報処理システムであって、
前記第1機器は、
1つのコマンドブロックに対し複数のデータバッファを割り当て
前記第2機器は、
前記コマンドブロックに従って前記複数のデータバッファの少なくとも1つに対するデータ通信を行うデータ通信手段と、
前記データ通信手段によって前記複数のデータバッファのいずれか1つに対するデータ通信が完了した場合には当該データ通信が完了した1つのデータバッファを特定するための情報と前記複数のデータバッファの中でデータ通信が完了していないデータバッファを特定するための情報とを含むステータスを前記第1機器に通知し、前記データ通信手段によって前記複数のデータバッファ全てに対するデータ通信が完了した場合には当該全てのデータバッファに対するデータ通信が完了したことを示すステータスを前記第1機器に通知する完了通知手段と、
を有することを特徴とする。
【0009】
前記通信制御バスはIEEE1394に準拠しており、前記第1機器と前記第2機器との間では、シリアルバスプロトコル3を通信プロトコルとしてデータ通信を行うことを特徴とする。
【0010】
前記完了通知手段は、前記第1機器のステータスFIFOに、前記データバッファの内、データ通信が完了したデータバッファを示すステータスを発行することを特徴とする。
【0011】
前記完了通知手段は、前記データバッファごとに独立してデータ通信の完了を通知することを特徴とする。
【0012】
前記完了通知手段は、更に、前記複数のデータバッファの全てに対するデータ通信の完了を通知することを特徴とする。
【0013】
前記第1機器は、前記データバッファに格納されているデータの識別情報を前記ORBに含むことを特徴とする。
【0014】
上記目的を達成するため、本発明に係る方法は、
通信制御バスで接続された第1、第2機器間における通信方法であって、前記第1機器から前記第2機器へ送信する1つのコマンドブロックに対し複数のデータバッファを割り当て、前記第2機器は、前記コマンドブロックに従って前記複数のデータバッファの少なくとも1つに対するデータ通信を行い、当該データ通信によって前記複数のデータバッファのいずれか1つに対するデータ通信が完了した場合には当該データ通信が完了した1つのデータバッファを特定するための情報と前記複数のデータバッファの中でデータ通信が完了していないデータバッファを特定するための情報とを含むステータスを前記第1機器に通知し、前記データ通信によって前記複数のデータバッファ全てに対するデータ通信が完了した場合には当該全てのデータバッファに対するデータ通信が完了したことを示すステータスを前記第1機器に通知することを特徴とする。
【0016】
上記目的を達成するため、本発明に係る装置は、
他の機器と通信制御バスで接続された情報処理装置であって、
1つのコマンドブロックに対し複数のデータバッファを割り当てた他の機器に対して、前記コマンドブロックに従って前記複数のデータバッファの少なくとも1つに対するデータ通信を行うデータ通信手段と、
前記データ通信手段によって前記複数のデータバッファのいずれか1つに対するデータ通信が完了した場合には当該データ通信が完了した1つのデータバッファを特定するための情報と前記複数のデータバッファの中でデータ通信が完了していないデータバッファを特定するための情報とを含むステータスを前記第1機器に通知し、前記データ通信手段によって前記複数のデータバッファ全てに対するデータ通信が完了した場合には当該全てのデータバッファに対するデータ通信が完了したことを示すステータスを前記他の機器に通知する完了通知手段と、
を有することを特徴とする。
【0022】
また、上記目的を達成するため、本発明に係るプログラムは、上記通信方法をコンピュータに実現させる。また、本発明に係る記憶媒体は、そのプログラムを格納する。
【0023】
【発明の実施の形態】
以下に、図面を参照して、この発明の好適な実施の形態を例示的に詳しく説明する。ただし、この実施の形態に記載されている構成要素の相対配置、表示画面等は、特に特定的な記載がない限りは、この発明の範囲をそれらのみに限定する趣旨のものではない。
【0024】
(第1実施形態)
本発明の第1実施形態としての情報処理システムについて説明する前に、IEEE1394の技術の概要について説明する。
【0025】
〈IEEE1394の技術の概要〉
以下、本実施の形態のデジタルインタフェースに適用されるIEEE1394−1995規格の技術について簡単に説明する。尚、IEEE1394−1995規格(以下、IEEE1394規格)についての詳細は、1996年の8月30日にIEEE(The Institute of Electrical and Electronics Engineers, Inc.)から出版された「IEEE Standard for a High Performance Serial Bus」に記述されている。
【0026】
(1)概要
図2にIEEE1394規格に準拠したデジタルインタフェース(以下、1394インタフェース)を具備するノードにより構成される通信システム(以下、1394ネットワーク)の一例を示す。1394ネットワークは、シリアルデータの通信可能なバス型ネットワークを構成するものである。
【0027】
図2において、各ノードA〜Fは、IEEE1394規格に準拠した通信ケーブルを介して接続されている。これらのノードA〜Hは、例えば、PC(Personal Computer)、デジタルVTR(Video Tape Recorder)、DVD(Digital Video Disc)プレーヤ、デジタルカメラ、ハードディスク、モニタ等の電子機器である。
【0028】
1394ネットワークの接続方式は、ディジーチェーン方式とノード分岐方式とに対応しており、自由度の高い接続を可能としている。
【0029】
又、1394ネットワークでは、例えば、既存の機器を削除したり、新たな機器を追加したり、既存の機器の電源をON/OFFしたりした場合に、自動的にバスリセットを行う。このバスリセットを行うことにより、1394ネットワークは、新たな接続構成の認識と各機器に対するID情報の割り当てとを自動的に行うことができる。この機能によって、1394ネットワークは、ネットワークの接続構成を常時認識することができる。
【0030】
又、1394ネットワークは、他の機器から転送されたデータを中継する機能を有している。この機能により、全ての機器がバスの動作状況を把握することができる。
【0031】
又、1394ネットワークは、Plug&Playと呼ばれる機能を有している。この機能により、全ての機器の電源をOFFにすることなく、接続するだけで自動に接続機器を認識することができる。
【0032】
又、1394ネットワークは、100/200/400Mbpsのデータ転送速度に対応している。上位のデータ転送速度を持つ機器は、下位のデータ転送速度をサポートすることができるため、異なるデータ転送速度に対応する機器同士を接続することができる。
【0033】
更に、1394ネットワークは、2つの異なるデータ転送方式(即ち、アシンクロナス転送モードとアイソクロナス転送モード)に対応している。
【0034】
アシンクロナス(Asynchronous)転送モードは、必要に応じて非同期に転送することが要求されるデータ(即ち、コントロール信号やファイルデータ等)を転送する際に有効である。又、アイソクロナス(Isochronous)転送モードは、所定量のデータを一定のデータレートで連続的に転送することが要求されるデータ(即ち、ビデオデータやオーディオデータ等)を転送する際に有効である。
【0035】
アシンクロナス転送モードとアイソクロナス転送モードとは、各通信サイクル(通常1サイクルは、125μS)内において、混在させることが可能である。各転送モードは、サイクルの開始を示すサイクル・スタート・パケット(以下、CSP)の転送後に実行される。
【0036】
尚、各通信サイクル期間において、アイソクロナス転送モードは、アシンクロナス転送モードよりも優先順位が高く設定されている。又、アイソクロナス転送モードの転送帯域は、各通信サイクル内で保証されている。
【0037】
(2)アーキテクチャ
次に、図3を用いて1394インタフェースの構成要素を説明する。
【0038】
1394インタフェースは、機能的に複数のレイヤ(階層)から構成されている。図3において、1394インタフェースは、IEEE1394規格に準拠した通信ケーブル301を介して他のノードの1394インタフェースと接続される。又、1394インタフェースは、1つ以上の通信ポート302を有し、通信ポート302は、ハードウェア部に含まれるフィジカル・レイヤ303と接続される。
【0039】
図3において、ハードウェア部は、フィジカル・レイヤ303とリンク・レイヤ304とから構成されている。フィジカル・レイヤ303は、他のノードとの物理的、電気的なインタフェース、バスリセットの検出とそれに伴う処理、入出力信号の符号化/復号化、バス使用権の調停等を行う。又、リンク・レイヤ304は、通信パケットの生成と送受信、サイクルタイマの制御等を行なう。
【0040】
又、図3において、ファームウェア部は、トランザクション・レイヤ305とシリアル・バス・マネージメント306とを含んでいる。トランザクション・レイヤ305は、アシンクロナス転送モードを管理し、各種のトランザクション(リード、ライト、ロック)を提供する。シリアル・バス・マネージメント306は、後述するCSRアーキテクチャに基づいて、自ノードの制御、自ノードの接続状態の管理、自ノードのID情報の管理、シリアルバスネットワークの資源管理を行う機能を提供する。
【0041】
以上、ハードウェア部とファームウェア部とが実質的に1394インタフェースを構成するものであり、それらの基本構成は、IEEE1394規格により規定されている。
【0042】
又、ソフトウェア部に含まれるアプリケーション・レイヤ307は、使用するアプリケーションソフトによって異なり、ネットワーク上でどのようにデータを通信するのかを制御する。例えば、デジタルVTRの動画像データの場合は、AV/Cプロトコルなどの通信プロトコルによって規定されている。
【0043】
(2−1)リンク・レイヤ304
図4は、リンク・レイヤ304の提供可能なサービスを示す図である。図4において、リンク・レイヤ304は、次の4つのサービスを提供する。即ち、▲1▼応答ノードに対して所定のパケットの転送を要求するリンク要求(LK_DATA.request)、▲2▼応答ノードに所定のパケットの受信を通知するリンク通知(LK_DATA.indication)、▲3▼応答ノードからのアクノリッジを受信したことを示すリンク応答(LK_DATA.response)、▲4▼要求ノードからのアクノリッジを確認するリンク確認(LK_DATA.confirmation)である。尚、リンク応答(LK_DATA.response)は、ブロードキャスト通信、アイソクロナスパケットの転送の場合には存在しない。
【0044】
又、リンク・レイヤ304は、上述のサービスに基づいて、上述の2種類の転送方式、即ち、アシンクロナス転送モード、アイソクロナス転送モードを実現する。
【0045】
(2−2)トランザクション・レイヤ305
図5は、トランザクション・レイヤ305の提供可能なサービスを示す図である。図5において、トランザクション・レイヤ305は、次の4つのサービスを提供する。即ち、▲1▼応答ノードに対して所定のトランザクションを要求するトランザクション要求(TR_DATA.request)、▲2▼応答ノードに所定のトランザクション要求の受信を通知するトランザクション通知(TR_DATA.indication)、▲3▼応答ノードからの状態情報(ライト、ロックの場合は、データを含む)を受信したことを示すトランザクション応答(TR_DATA.response)、▲4▼要求ノードからの状態情報を確認するトランザクション確認(TR_DATA.confirmation)である。
【0046】
又、トランザクション・レイヤ305は、上述のサービスに基づいてアシンクロナス転送を管理し、次の3種類のトランザクション、即ち、▲1▼リード・トランザクション、▲2▼ライト・トランザクション、▲3▼ロック・トランザクションを実現する。
【0047】
▲1▼リード・トランザクションは、要求ノードが応答ノードの特定アドレスに格納された情報を読み取る。
【0048】
▲2▼ライト・トランザクションは、要求ノードが応答ノードの特定アドレスに所定の情報を書き込む。
【0049】
▲3▼ロック・トランザクションは、要求ノードが応答ノードに対して参照データと更新データとを転送し、応答ノードの特定アドレスの情報とその参照データとを比較し、その比較結果に応じて特定アドレスの情報を更新データに更新する。
【0050】
(2−3)シリアル・バス・マネージメント306
シリアル・バス・マネージメント306は、具体的に、次の3つの機能を提供することができる。3つの機能とは、即ち、▲1▼ノード制御、▲2▼アイソクロナス・リソース・マネージャ(以下、IRM)、▲3▼バスマネージャである。
【0051】
▲1▼ノード制御は、上述の各レイヤを管理し、他のノードとの間で実行されるアシンクロナス転送を管理する機能を提供する。
【0052】
▲2▼IRMは、他のノードとの間で実行されるアイソクロナス転送を管理する機能を提供する。具体的には、転送帯域幅とチャネル番号の割り当てに必要な情報を管理し、これらの情報を他のノードに対して提供する。
【0053】
IRMは、ローカルバス上に唯一存在し、バスリセット毎に他の候補者(IRMの機能を有するノード)の中から動的に選出される。又、IRMは、後述のバスマネージャの提供可能な機能(接続構成の管理、電源管理、速度情報の管理等)の一部を提供してもよい。
【0054】
▲3▼バスマネージャは、IRMの機能を有し、IRMよりも高度なバス管理機能を提供する。具体的には、より高度な電源管理(通信ケーブルを介して電源の供給が可能か否か、電源の供給が必要か否か等の情報を各ノード毎に管理)、より高度な速度情報の管理(各ノード間の最大転送速度の管理)、より高度な接続構成の管理(トポロジ・マップの作成)、これらの管理情報に基づくバスの最適化等を行ない、更にこれらの情報を他のノードに提供する機能を有する。
【0055】
又、バスマネージャは、シリアルバスネットワークを制御するためのサービスをアプリケーションに対して提供できる。ここで、サービスには、シリアルバス制御要求(SB_CONTROL.request)、シリアルバス・イベント制御確認(SB_CONTROL.confirmation)、シリアルバス・イベント通知(SB_CONTROL.indication)等がある。
【0056】
SB_CONTROL.requestは、アプリケーションがバスリセットを要求するサービスである。SB_CONTROL.confirmationは、SB_CONTROL.requestをアプリケーションに対して確認するサービスである。SB_CONTROL.indicationは、非同期に発生するイベントをアプリケーションに対して通知するサービスである。
【0057】
(3)アドレス指定
図6は、1394インタフェースにおけるアドレス空間を説明する図である。尚、1394インタフェースは、ISO/IEC 13213:1994に準じたCSR(Command and Status Register)アーキテクチャに従い、64ビット幅のアドレス空間を規定している。
【0058】
図6において、最初の10ビットのフィールド601は、所定のバスを指定するID番号に使用され、次の6ビットのフィールド602は、所定の機器(ノード)を指定するID番号に使用される。この上位16ビットを「ノードID」と呼び、各ノードはこのノードIDにより他のノードを識別する。又、各ノードは、このノードIDを用いて相手を識別した通信を行うことができる。
【0059】
残りの48ビットからなるフィールドは、各ノードの具備するアドレス空間(256Mバイト構造)を指定する。その内の20ビットのフィールド603は、アドレス空間を構成する複数の領域を指定する。
【0060】
フィールド603において、「0〜0xFFFFD」の部分は、メモリ空間と呼ばれる。「0xFFFFE」の部分は、プライベート空間と呼ばれ、各ノードで自由に利用できるアドレスである。又、「0xFFFFE」の部分は、レジスタ空間と呼ばれ、バスに接続されたノード間において共通の情報を格納する。各ノードは、レジスタ空間の情報を用いることにより、各ノード間の通信を管理することができる。
【0061】
最後の28ビットのフィールド604は、各ノードにおいて共通或いは固有となる情報が格納されるアドレスを指定する。
【0062】
例えば、レジスタ空間において、最初の512バイトは、CSRアーキテクチャーのコア(CSRコア)レジスタ用に使用される。CSRコア・レジスタに格納される情報のアドレス及び機能を図7に示す。図中のオフセットは、「0xFFFFF0000000」からの相対位置である。
【0063】
次の512バイトは、シリアルバス用のレジスタとして使用される。シリアルバス・レジスタに格納される情報のアドレス及び機能を図8に示す。図中のオフセットは、「0xFFFFF0000200」からの相対位置である。
【0064】
その次の1024バイトは、コンフィグレーションROM(Configuration ROM)用に使用される。
【0065】
コンフィグレーションROMには最小形式と一般形式とがあり、「0xFFFFF0000400」から配置される。最小形式のコンフィグレーションROMを図9に示す。図9において、ベンダIDは、IEEEにより各ベンダに対して固有に割り当てられた24ビットの数値である。
【0066】
又、一般形式のコンフィグレーションROMを図10に示す。図10において、上述のベンダIDは、ルートディレクトリ(Root Directory)1002に格納されている。Bus Info Block1001とRoot Leaf1005とには、各ノードを識別する固有のID情報としてノードユニークIDを保持することが可能である。
【0067】
ここで、ノードユニークIDは、メーカー、機種に関わらず、1つのノードを特定することのできる固有のIDを定めるようになっている。ノードユニークIDは64ビットにより構成され、上位24ビットは上述のベンダIDを示し、下位48ビットは各ノードを製造するメーカーにおいて自由に設定可能な情報(例えば、ノードの製造番号等)を示す。尚、このノードユニークIDは、例えばバスリセットの前後で継続して特定のノードを認識する場合に使用される。
【0068】
又、図10において、ルートディレクトリ1002には、ノードの基本的な機能に関する情報を保持することが可能である。詳細な機能情報は、ルートディレクトリ1002からオフセットされるサブディレクトリとしてのユニットディレクトリ(Unit Directories)1004に格納される。ユニットディレクトリ1004には、例えば、ノードのサポートするソフトウェアユニットに関する情報が格納される。具体的には、ノード間のデータ通信を行うためのデータ転送プロトコル、所定の通信手順を定義するコマンドセット等に関する情報が保持される。
【0069】
又、図10において、ノード依存情報ディレクトリ(Node Dependent Info Directory)1003には、デバイス固有の情報を保持することが可能である。ノード依存情報ディレクトリ1003は、ルートディレクトリ1002によりオフセットされる。
【0070】
更に、図10において、ベンダー依存情報(Vendor Dependent Information)1006には、ノードを製造、或いは販売するベンダ固有の情報を保持することができる。
【0071】
残りの領域は、ユニット空間と呼ばれ、各ノード固有の情報、例えば、各機器の識別情報(会社名、機種名等)や使用条件等が格納されたアドレスを指定する。ユニット空間のシリアルバス装置レジスタに格納される情報のアドレス及び機能を図11に示す。図中のオフセットは、「0xFFFFF0000800」からの相対位置である。
【0072】
尚、一般的に、異種のバスシステムの設計を簡略化したい場合、各ノードは、レジスタ空間の最初の2048バイトのみを使うべきである。つまり、CSRコア・レジスタ、シリアルバス・レジスタ、コンフィグレーションROM、ユニット空間の最初の2048バイトの合わせて4096バイトで構成することが望ましい。
【0073】
(4)通信ケーブルの構成
図12にIEEE1394規格に準拠した通信ケーブルの断面図を示す。
【0074】
通信ケーブルは、2組のツイストペア信号線と電源ラインとにより構成されている。電源ラインを設けることによって、1394インタフェースは、主電源のOFFとなった機器、故障により電力低下した機器等にも電力を供給することができる。尚、電源線内を流れる電源の電圧は8〜40V、電流は最大電流DC1.5Aと規定されている。
【0075】
2組のツイストペア信号線には、DS-Link(Data/Strobe Link)符号化方式にて符号化された情報信号が伝送される。図13は、DS-Link符号化方式を説明する図である。
【0076】
このDS-Link符号化方式は、高速なシリアルデータ通信に適しており、その構成は、2組のより対線を必要とする。一組のより対線は、データ信号を送り、他のより対線は、ストローブ信号を送る構成になっている。受信側は、2組の信号線から受信したデータ信号とストローブ信号との排他的論理和をとることによって、クロックを再現することができる。
【0077】
尚、DS-Link符号化方式を用いることにより、1394インタフェースには、例えば次のような利点がある。▲1▼他の符号化方式に比べて転送効率が高い。▲2▼PLL回路が不要となり、コントローラLSIの回路規模を小さくできる。▲3▼アイドル状態であることを示す情報を送る必要が無いため、トランシーバ回路をスリープ状態とし易く、消費電力の低減を図ることができる。
【0078】
(5)バスリセット
各ノードの1394インタフェースは、ネットワークの接続構成に変化が生じたことを自動的に検出することができる。この場合、1394ネットワークは以下に示す手順によりバスリセットと呼ばれる処理を行う。尚、接続構成の変化は、各ノードの具備する通信ポートにかかるバイアス電圧の変化により検知することができる。
【0079】
ネットワークの接続構成の変化(例えば、ノードの挿抜、ノードの電源のON/OFFなどによるノード数の増減)を検出したノード、又は新たな接続構成を認識する必要のあるノードは、1394インタフェースを介して、バス上にバスリセット信号を送信する。
【0080】
バスリセット信号を受信したノードの1394インタフェースは、バスリセットの発生を自身のリンク・レイヤ304に伝達すると共に、そのバスリセット信号を他のノードに転送する。バスリセット信号を受信したノードは、今まで認識していたネットワークの接続構成及び各機器に割り当てられたノードIDをクリアにする。最終的に全てのノードがバスリセット信号を検知した後、各ノードは、バスリセットに伴う初期化処理(即ち、新たな接続構成の認識と新たなノードIDの割り当て)を自動的に行う。
【0081】
尚、バスリセットは、先に述べたような接続構成の変化による起動の他に、ホスト側の制御によって、アプリケーション・レイヤ307がフィジカル・レイヤ303に対して直接命令を出すことによって起動させることも可能である。
【0082】
又、バスリセットが起動するとデータ転送は一時中断され、バスリセットに伴う初期化処理の終了後、新しいネットワークのもとで再開される。
【0083】
(6)バスリセット起動後のシーケンス
バスリセットの起動後、各ノードの1394インタフェースは、新たな接続構成の認識と新たなノードIDの割り当てとを自動的に実行する。以下、バスリセットの開始からノードIDの割り当て処理までの基本的なシーケンスを図14〜16を用いて説明する。
【0084】
図14は、図2の1394ネットワークにおけるバスリセット起動後の状態を説明する図である。
【0085】
図14において、ノードAは1つの通信ポート、ノードBは2つの通信ポート、ノードCは2つの通信ポート、ノードDは3つの通信ポート、ノードEは1つの通信ポート、ノードFは1つの通信ポートを具備している。各ノードの通信ポートには、各ポートを識別するためにポート番号を付されている。
【0086】
以下、図14におけるバスリセットの開始からノードIDの割り当てまでを図15のフローチャートを用いて説明する。
【0087】
図15において、1394ネットワークを構成する各ノードA〜Fは、バスリセットが発生したか否かを常時監視している(ステップS1501)。接続構成の変化を検出したノードからバスリセット信号が出力されると、各ノードは以下の処理を実行する。
【0088】
バスリセットの発生後、各ノードは、夫々の具備する通信ポート間において親子関係の宣言を行なう(ステップS1502)。
【0089】
各ノードは、全てのノード間の親子関係が決定されるまで、ステップS1502の処理を繰り返し行なう(ステップS1503)。
【0090】
全てのノード間の親子関係が決定した後、1394ネットワークは、ネットワークの調停を行なうノード、即ちルートを決定する。(ステップS1504)。
【0091】
ルートを決定した後、各ノードの1394インタフェース夫々は、自己のノードIDを自動的に設定する作業を実行する(ステップS1505)。
【0092】
全てのノードに対してノードIDの設定がなされるまで、各ノードは所定の手順に基づきステップS1505の処理を実行する(ステップS1506)。
【0093】
最終的に全てのノードに対してノードIDが設定された後、各ノードは、アイソクロナス転送或いはアシンクロナス転送を実行する(ステップS1507)。
【0094】
ステップS1507の処理を実行すると共に、各ノードの1394インタフェースは、再びバスリセットの発生を監視する。バスリセットが発生した場合には、ステップS1501以降の処理を再び実行する。
【0095】
以上の手順により、各ノードの1394インタフェースは、バスリセットが起動する毎に、新たな接続構成の認識と新たなノードIDの割り当てとを自動的に実行することができる。
【0096】
(7)親子関係の決定
次に、図16を用いて、図15に示したステップS1502の処理(即ち、各ノード間の親子関係を認識する処理)について詳細に説明する。
【0097】
図16において、バスリセットの発生後、1394ネットワーク上の各ノードA〜Fは、自分の具備する通信ポートの接続状態(接続又は未接続)を確認する(ステップS1601)。
【0098】
通信ポートの接続状態の確認後、各ノードは、他のノードと接続されている通信ポート(以下、接続ポート)の数をカウントする(ステップS1602)。
【0099】
ステップS1602の処理の結果、接続ポートの数が1つである場合、そのノードは、自分が「リーフ」であると認識する(ステップS1603)。ここで、リーフとは、1つのノードとのみ接続されているノードのことである。
【0100】
リーフとなるノードは、その接続ポートに接続されているノードに対して、「自分は子(Child)」であることを宣言する(ステップS1604)。このとき、リーフは、その接続ポートが「親ポート(親ノードと接続された通信ポート)」であると認識する。
【0101】
ここで、親子関係の宣言は、まず、ネットワークの末端であるリーフとブランチとの間にて行われ、続いて、ブランチとブランチとの間で順次に行われる。各ノード間の親子関係は、早く宣言の行なえる通信ポートから順に決定される。又、各ノード間において、子であることを宣言した通信ポートは「親ポート」であると認識され、その宣言を受けた通信ポートは「子ポート(子ノードと接続された通信ポート)」であると認識される。例えば、図14において、ノードA、E、Fは、自分がリーフであると認識した後、親子関係の宣言を行う。これにより、ノードA−B間では子−親、ノードE−D間では子−親、ノードF−D間では子−親と決定される。
【0102】
又、ステップS1602の処理の結果、接続ポートの数が2つ以上の場合、そのノードは、自分を「ブランチ」であると認識する(ステップS1605)。ここで、ブランチとは、2つ以上のノードと接続されているノードのことである。
【0103】
ブランチとなるノードは、各接続ポートのノードから親子関係の宣言を受け付ける(ステップS1606)。宣言を受け付けた接続ポートは、「子ポート」として認識される。
【0104】
1つの接続ポートを「子ポート」と認識した後、ブランチは、まだ親子関係の決定されていない接続ポート(即ち、未定義ポート)が2つ以上あるか否かを検出する(ステップS1607)。その結果、未定義ポートが2つ以上ある場合、ブランチは、再びステップS1606の動作を行う。
【0105】
ステップS1607の結果、未定義ポートが1つだけ存在する場合、ブランチは、その未定義ポートが「親ポート」であると認識し、そのポートに接続されているノードに対して「自分は子」であることを宣言する(ステップS1608、S1609)。
【0106】
ここで、ブランチは、残りの未定義ポートが1つになるまで自分自身が子であると他のノードに対して宣言することができない。例えば、図14において、ノードB、C、Dは、自分がブランチであると認識すると共に、リーフ或いは他のブランチからの宣言を受け付ける。ノードDは、D−E間、D−F間の親子関係が決定した後、ノードCに対して親子関係の宣言を行っている。又、ノードDからの宣言を受けたノードCは、ノードBに対して親子関係の宣言を行っている。
【0107】
又、ステップS1608の処理の結果、未定義ポートが存在しない場合(つまり、ブランチの具備する全ての接続ポートが親ポートとなった場合)、そのブランチは、自分自身がルートであることを認識する。(ステップS1610)。
【0108】
例えば、図14において、接続ポートの全てが親ポートとなったノードBは、1394ネットワーク上の通信を調停するルートとして他のノードに認識される。ここで、ノードBがルートと決定されたが、ノードBの親子関係を宣言するタイミングが、ノードCの宣言するタイミングに比べて早い場合には、他のノードがルートになる可能性もある。即ち、宣言するタイミングによっては、どのノードもルートとなる可能性がある。従って、同じネットワーク構成であっても同じノードがルートになるとは限らない。
【0109】
このように全ての接続ポートの親子関係が宣言されることによって、各ノードは、1394ネットワークの接続構成を階層構造(ツリー構造)として認識することができる(ステップS1611)。尚、上述の親ノードは階層構造における上位であり、子ノードは階層構造における下位となる。
【0110】
(8)ノードIDの割り当て
図17は、図15に示したステップS1505の処理(即ち、自動的に各ノードのノードIDを割り当てる処理)を詳細に説明するフローチャートである。ここで、ノードIDは、バス番号とノード番号とから構成されるが、本実施の形態では、各ノードを同一バス上に接続するものとし、各ノードには同一のバス番号が割り当てられるものとする。
【0111】
図17において、ルートは、ノードIDが未設定のノードが接続されている子ポートの内、最小番号を有する通信ポートに対してノードIDの設定許可を与える(ステップS1701)。
【0112】
尚、図17において、ルートは、最小番号の子ポートに接続されている全ノードのノードIDを設定した後、その子ポートを設定済とし、次に最小となる子ポートに対して同様の制御を行なう。最終的に子ポートに接続された全てのノードのID設定が終了した後、ルート自身のノードIDを設定する。尚、ノードIDに含まれるノード番号は、基本的にリーフ、ブランチの順に0、1、2…と割り当てられる。従って、ルートが最も大きなノード番号を有することになる。
【0113】
ステップS1701において、設定許可を得たノードは、自分の子ポートの内、ノードIDが未設定となるノードを含む子ポートがあるか否かを判断する(ステップS1702)。
【0114】
ステップS1702において、未設定ノードを含む子ポートが検出された場合、上述の設定許可を得たノードは、その子ポートに直接接続されたノードに対してその設定許可を与えるように制御する(ステップS1703)。
【0115】
ステップS1703の処理後、上述の設定許可を得たノードは、自分の子ポートの内、ノードIDが未設定であるノードを含む子ポートがあるか否かを判断する(ステップS1704)。ここで、ステップS1704の処理後、未設定ノードを含む子ポートの存在が検出された場合、そのノードは、再びステップS1703の処理を実行する。
【0116】
又、ステップS1702或いはS1704において、未設定ノードを含む子ポートが検出されなかった場合、設定許可を得たノードは、自分自身のノードIDを設定する(ステップS1705)。
【0117】
自分のノードIDを設定したノードは、自己のノード番号、通信ポートの接続状態に関する情報等を含んだセルフIDパケットをブロードキャストする(ステップS1706)。尚、ブロードキャストとは、あるノードの通信パケットを、1394ネットワークを構成する不特定多数のノードに対して転送することである。
【0118】
ここで、各ノードは、このセルフIDパケットを受信することにより、各ノードに割り当てられたノート番号を認識することができ、自分に割り当てられるノード番号を知ることができる。例えば、図14において、ルートであるノードBは、最小ポート番号「#1」の通信ポートに接続されたノードAに対してノードID設定の許可を与える。ノードAは、自己のノード番号「No.0」と割り当て、自分自身に対してバス番号とノード番号とからなるノードIDを設定する。又、ノードAは、そのノード番号を含むセルフIDパケットをブロードキャストする。
【0119】
図18にセルフIDパケットの構成例を示す。図18において、1801はセルフIDパケットを送出したノードのノード番号を格納するフィールド、1802は対応可能な転送速度に関する情報を格納するフィールド、1803はバス管理機能(バスマネージャの能力の有無等)の有無を示すフィールド、1804は電力の消費及び供給の特性に関する情報を格納するフィールドである。
【0120】
又、図18において、1805はポート番号「#0」となる通信ポートの接続状態に関する情報(接続、未接続、通信ポートの親子関係等)を格納するフィールド、1806はポート番号「#1」となる通信ポートの接続状態に関する情報(接続、未接続、通信ポートの親子関係等)を格納するフィールド、1807はポート番号「#2」となる通信ポートの接続状態に関する情報(接続、未接続、通信ポートの親子関係等)を格納するフィールドである。
【0121】
尚、セルフIDパケットを送出するノードにバスマネージャとなり得る能力がある場合には、フィールド1803に示すコンテンダビットを「1」とし、なり得る能力がなければ、コンテンダビットを0とする。
【0122】
ここで、バスマネージャとは、上述のセルフIDパケットに含まれる各種の情報に基づいて、バスの電源管理(通信ケーブルを介して電源の供給が可能か否か、電源の供給が必要か否か等の情報を各ノード毎に管理する)、速度情報の管理(各ノードの対応可能な転送速度に関する情報から各ノード間の最大転送速度を管理する)、トポロジ・マップ情報の管理(通信ポートの親子関係情報からネットワークの接続構成を管理する)、トポロジ・マップ情報に基づくバスの最適化等を行ない、それらの情報を他のノードに提供する機能を有するノードである。これらの機能により、バスマネージャとなるノードは1394ネットワーク全体のバス管理を行なうことができる。
【0123】
ステップS1706の処理後、ノードIDの設定を行ったノードは、親ノードがあるか否かを判断する(ステップS1707)。親ノードがある場合、その親ノードが、ステップS1702以下の処理を再び実行する。そして、まだノードIDの設定されていないノードに対して許可を与える。
【0124】
又、親ノードが存在しない場合、そのノードは、ルート自身であると判断される。ルートは、全ての子ポートに接続されたノードに対してノードIDが設定されたか否かを判別する(ステップS1708)。
【0125】
ステップS1708において、全てのノードに対するID設定処理が終了しなかった場合、ルートは、そのノードを含む子ポートの内、最小番号となる子ポートに対してID設定の許可を与える(ステップS1701)。その後、ステップS1702以下の処理を実行する。
【0126】
又、全てのノードに対するID設定処理が終了した場合、ルートは、自分自身のノードIDの設定を実行する(ステップS1709)。ノードIDの設定後、ルートは、セルフIDパケットをブロードキャストする(ステップS1710)。
【0127】
以上の処理によって、1394ネットワークは、各ノードに対して自動的にノードIDを割り当てることができる。
【0128】
ここで、ノードIDの設定処理後、複数のノードがバスマネージャの能力を具備する場合、ノード番号の最も大きいノードがバスマネージャとなる。つまり、ネットワーク内で最大となるノード番号を持つルートがバスマネージャになり得る機能を有している場合には、ルートがバスマネージャとなる。
【0129】
しかしながら、ルートにその機能が備わっていない場合には、ルートの次に大きいノード番号を具備するノードがバスマネージャとなる。又、どのノードがバスマネージャになったかについては、各ノードがブロードキャストするセルフIDパケット内のコンテンダビット1803をチェックすることにより把握することができる。
【0130】
(9)アービトレーション
図19は、図1の1394ネットワークにおけるアービトレーションを説明する図である。
【0131】
1394ネットワークでは、データ転送に先立って、必ずバス使用権のアービトレーション(調停)を行なう。1394ネットワークは、論理的なバス型ネットワークであり、各ノードから転送された通信パケットを他のノードに中継することによって、ネットワーク内の全てのノードに同じ通信パケットを転送することのできる。従って、通信パケットの衝突を防ぐために、必ずアービトレーションが必要となる。これによって、ある時間において一つのノードのみが転送を行なうことができる。
【0132】
図19(a)は、ノードBとノードFとが、バス使用権の要求を発している場合について説明する図である。
【0133】
アービトレーションが始まるとノードB、Fは、夫々親ノードに向かって、バス使用権の要求を発する。ノードBの要求を受けた親ノード(即ち、ノードC)は、自分の親ノード(即ち、ノードD)に向かって、そのバス使用権を中継する。この要求は、最終的に調停を行なうルート(ノードD)に届けられる。
【0134】
バス使用要求を受けたルートは、どのノードにバスを使用させるかを決める。この調停作業はルートとなるノードのみが行なえるものであり、調停によって勝ったノードにはバスの使用許可が与えられる。
【0135】
図19(b)は、ノードFの要求が許可され、ノードBの要求が拒否されたことを示す図である。
【0136】
アービトレーションに負けたノードに対してルートは、DP(Data prefix)パケットを送り、拒否されたことを知らせる。拒否されたノードは、次回のアービトレーションまでバス使用要求を待機する。
【0137】
以上のようにアービトレーションを制御することによって、1394ネットワークは、バスの使用権を管理することができる。
【0138】
(10)通信サイクル
アイソクロナス転送モードとアシンクロナス転送モードとは、各通信サイクル期間内において時分割に混在させることができる。ここで、通信サイクルの期間は、通常、125μSである。
【0139】
図20は、1通信サイクルにおいてアイソクロナス転送モードとアシンクロナス転送モードとを混在させた場合を説明する図である。
【0140】
アイソクロナス転送モードは、アシンクロナス転送モードより優先して実行される。その理由は、サイクル・スタート・パケットの後、アシンクロナス転送を起動するために必要なアイドル期間(subaction gap)が、アイソクロナス転送を起動するため必要なアイドル期間(isochronous gap)よりも長くなるように設定されているためである。これにより、アイソクロナス転送は、アシンクロナス転送に優先して実行される。
【0141】
図20において、各通信サイクルのスタート時には、サイクル・スタート・パケット(以下、CSP)が所定のノードから転送される。各ノードは、このCSPを用いて時刻調整を行うことによって、他のノードと同じ時間を計時することができる。
【0142】
(11)アイソクロナス転送モード
アイソクロナス転送モードは、同期型の転送方式である。アイソクロナスモード転送は、通信サイクルの開始後、所定の期間において実行可能である。又、アイソクロナス転送モードは、リアルタイム転送を維持するために、各サイクル毎に必ず実行される。
【0143】
アイソクロナス転送モードは、特に動画像データや音声データ等のリアルタイムな転送を必要とするデータの転送に適した転送モードである。アイソクロナス転送モードは、アシンクロナス転送モードのように1対1の通信ではなく、ブロードキャスト通信である。つまり、あるノードから送出されたパケットは、ネットワーク上の全てのノードに対して一様に転送される。尚、アイソクロナス転送には、ack(受信確認用返信コード)は存在しない。
【0144】
図20において、チャネルe(ch e)、チャネルs(ch s)、チャネルk(ch k)は、各ノードがアイソクロナス転送を行う期間を示す。1394インタフェースでは、複数の異なるアイソクロナス転送を区別するために、夫々異なるチャネル番号を与えている。これにより、複数ノード間でのアイソクロナス転送が可能となる。ここで、このチャネル番号は、送信先を特定するものではなく、データに対する論理的な番号を与えているに過ぎない。
【0145】
又、図20に示したアイソクロナス gapとは、バスのアイドル状態を示すものである。このアイドル状態が一定時間を経過した後、アイソクロナス転送を希望するノードは、バスが使用できると判断し、アービトレーションを実行する。
【0146】
次に、図21にアイソクロナス転送モードに基づいて転送される通信パケットのフォーマットを示す。以下、アイソクロナス転送モードに基づいて転送される通信パケットを、アイソクロナスパケットと称する。
【0147】
図21において、アイソクロナスパケットはヘッダ部2101、ヘッダCRC2102、データ部2103、データCRC2104から構成される。
【0148】
ヘッダ部2101には、データ部2103のデータ長を格納するフィールド2105、アイソクロナスパケットのフォーマット情報を格納するフィールド2106、アイソクロナスパケットのチャネル番号を格納するフィールド2107、パケットのフォーマット及び実行しなければならない処理を識別するトランザクションコード(tcode)を格納するフィールド2108、同期化コードを格納するフィールド2109がある。
【0149】
(12)アシンクロナス転送モード
アシンクロナス転送モードは、非同期型の転送方式である。アシンクロナス転送は、アイソクロナス転送期間の終了後、次の通信サイクルが開始されるまでの間(即ち、次の通信サイクルのCSPが転送されるまでの間)、実行可能である。
【0150】
図20において、最初のサブアクション・ギャップ(subaction gap)は、バスのアイドル状態を示すものである。このアイドル時間が一定値になった後、アシンクロナス転送を希望するノードは、バスが使用できると判断し、アービトレーションを実行する。
【0151】
アービトレーションによりバスの使用権を得たノードは、図22に示すパケットを所定のノードに対して転送する。このパケットを受信したノードは、ack(受信確認用返送コード)或いは応答パケットをack gap後に返送する。
【0152】
図22は、アシンクロナス転送モードに基づく通信パケットのフォーマットを示す図である。以下、アシンクロナス転送モードに基づいて転送される通信パケットを、アシンクロナスパケットと称する。
【0153】
図22において、アシンクロナスパケットは、ヘッダ部2201、ヘッダCRC2202、データ部2203、データCRC2204から構成される。
【0154】
ヘッダ部2201において、フィールド2205には宛先となるノードのノードID、フィールド2206にはソースとなるノードのノードID、フィールド2207には一連のトランザクションを示すためのラベル、フィールド2208には再送ステータスを示すコード、フィールド2209にはパケットのフォーマット及び実行しなければならない処理を識別するトランザクションコード(tcode)、フィールド2210には優先順位、フィールド2211には宛先のメモリ・アドレス、フィールド2212にはデータ部のデータ長、フィールド2213には拡張されたトランザクション・コードが格納される。
【0155】
又、アシンクロナス転送は、自己ノードから相手ノードへの1対1の通信である。転送元ノードから転送されたパケットは、ネットワーク中の各ノードに行き渡るが、自分宛てのアドレス以外のものは無視される。従って、宛先となるノードのみが、そのパケットを読み込むことができる。
【0156】
尚、アシンクロナス転送中に次のCSPを転送すべき時間に至った場合、無理に転送を中断せず、その転送が終了した後、次のCSPを送信する。これにより、1つの通信サイクルが125μS以上続いたときは、その分、次の通信サイクル期間を短縮する。このようにすることによって、1394ネットワークは、ほぼ一定の通信サイクルを保持することができる。
【0157】
(13)デバイスマップ
デバイスマップを作成するためにアプリケーションが1394ネットワークのトポロジーを知る手段として、IEEE1394規格上は以下の手段がある。
【0158】
1.バスマネージャーのトポロジーマップレジスターをリードする
2.バスリセット時にセルフIDパケットから推定する
しかし上記1、2の手段では、各ノードの親子関係によるケーブル接続順のトポロジーは判明するものの、物理的な位置関係のトポロジーを知ることはできない(実装されていないポートまで見えてしまう、といった問題もある)。
【0159】
また、デバイスマップを作成するための情報を、コンフィギュレーションROM以外のデータベースとして持つ、といった手段もあるが、その場合、各種情報を得る手段はデータベースアクセスのためのプロトコルに依存してしまう。
【0160】
ところで、コンフィギュレーションROM自体やコンフィギュレーションROMを読む機能は、IEEE1394規格を遵守したデバイスが必ず持つものである。そこで、デバイスの位置、機能等の情報を各ノードのコンフィギュレーションROMに格納し、それらをアプリケーションから読む機能を与えることにより、データベースアクセス、データ転送等の特定のプロトコルに依存することなく、各ノードのアプリケーションがいわゆるデバイスマップ表示機能を実装することができる。
【0161】
すなわち、コンフィグレーションROMにはノード固有の情報として物理的な位置、機能などが格納可能であり、デバイスマップ表示機能の実現に使用することが可能である。
【0162】
この場合、アプリケーションが物理的な位置関係による1394ネットワークトポロジーを知る手段としては、バスリセット時やユーザからの要求時に、各ノードのコンフィギュレーションROMを読み取ることにより、1394ネットワークのトポロジーを知る、という方法が可能となる。さらに、コンフィギュレーションROM内にノードの物理的位置のみならず、機能などの各種ノード情報も記述すれば、コンフィギュレーションROMを読むことで、ノードの物理的位置と同時に各ノードの機能情報等も得ることができる。アプリケーションが各ノードのコンフィギュレーションROM情報を取得する際には、指定ノードの任意のコンフィギュレーションROM情報を取得するAPIを用いる。
【0163】
このような手段を用いることにより、IEEE1394ネットワーク上のデバイスのアプリケーションは、物理的なトポロジーマップ、各ノードの機能マップなど、用途に応じて様々なデバイスマップを作成することができ、ユーザが必要な機能をもつデバイスを選択する、といったことも可能となる。
【0164】
(14)SBP−2の概要
SBP−2(Serial Bus Protocol2)は、NCITS傘下のTechnical Committee T10のプロジェクトとして1996より標準化の審議が進められ、1998年にANSI NCITS 325-1998として標準化が認可された、IEEE1394バスに関するプロトコルである。レイヤとしては、IEEE1394−1995のトランザクション層の上位に位置するコマンド/データ転送プロトコルである。当初SBP−2は、SCSIコマンドによって、IEEE1394上のデバイスを動作させることを、主な目的として開発されたが、SCSIコマンドに限らず、他のコマンドを載せることもできる。
【0165】
SBP−2の特徴として以下の4つが挙げられる。
【0166】
1)イニシエータ(Initiator)/ターゲット(Target)構成のマスタスレイブモデル(Master Slave Model)であり、マスタであるイニシエータがログイン、ログアウト、タスク、マネージメント、コマンド発行等の全ての権限と責任を持つ。
【0167】
2)バスモデルとしてのIEEE1394の特徴を生かした共有メモリモデル(Shared Memory Model)である。コマンド等のターゲットへの要求内容は、基本的には全てシステムメモリ内に置かれ、要求を受けたターゲットがシステムメモリの内容を読みに行く。又は、システムメモリへ要求されたステータス等の情報を書きこむ。
【0168】
即ち、通信のためのリソースを一箇所に集中できるので、リソースの負担を非常に軽くでき、かつターゲットが自分のペースでシステムメモリへ読み書きできるので、ターゲットの設計の自由度が高く、システムメモリのアクセスをH/W化することにより高速化が容易である。つまり、高性能にも、徹底した低コストモデルにもできる。
【0169】
3)メッセージ交換のためのコマンド群を一連のリンクリストとして記述する仕組みがあるため、レイテンシによる効率低下を隠蔽できるため、IEEE1394バスの特徴を生かした、高速で効率の高いデータ通信を実現できる。
【0170】
4)コマンドセットに依存しない構造である。つまり様々なコマンドセットに対応可能である。
【0171】
特徴1)に示したように、SBP−2はマスタであるイニシエータが全ての権限と責任を持つマスタスレイブモデルであるため、全てはイニシエータからの動作をトリガーにして行われる。イニシエータからのログイン、ログアウト要求やタスクマネージメント要求、コマンド等は、ORB(Operation Request Block)と呼ぶデータ構造に内包された形でターゲットに送られる。正しくは、イニシエータが自メモリに置き、ターゲットがそれを読み出す。図23に、主なORBの種類を示す。
【0172】
1)ダミーORB:ターゲットフェッチエージェントのイニシャライズ時、タスクのキャンセル等に使用する。ターゲットにはno operationとして扱われる。
【0173】
2)コマンドブロックORB:データ転送コマンド、デバイス制御コマンド等のコマンドを内包するORBである。詳細を図24に示す。対応するデータバッファ又はページテーブルのアドレス及びサイズを示すデータディスクリプタ(data_descriptor)、データサイズフィールド(data_size)を有する。また、次のコマンドブロックORBのアドレスを示すネクストORBフィールド(next_ORB)を有するので、コマンドをリンクできるのが特徴である。
【0174】
3)マネージメントORB:マネージメント要求(ログイン、ログアウトを含むアクセス要求、及びタスクマネージメント要求)を内包するORBである。詳細を図25に示す。タスクマネージメントの要求内容(アボートタスクセット(Abort Task Set)、ターゲットリセット等)を示すファンクションフィールド(function)と、ターゲットからの完了ステータスのアドレスを示すステータスFIFO(Status_FIFO)のフィールドを有するのが特徴である。
【0175】
この内、マネージメントORBについては、イニシエータは、ターゲットが応答を返すまで次のORBを発行することができない。一方、ダミーORBを含むコマンドブロックORBには、図24のようにネクストORBフィールドとして次のORBのアドレスを指示するフィールドがあるため、次々とコマンドを連結し、図26のようにリンクリストの形で一連のコマンド列を発行することができる。このネクストORBフィールドがnullの場合は、次に続くORBがないことを示す。
【0176】
また、このコマンドブロックORBの他のフィールドにはデータバッファ又はページテーブルのアドレス及びサイズを示すフィールド(データディスクリプタ及びデータサイズ)があり、例えばコマンドの内容がライトコマンドならば、ターゲットはデータディスクリプタで示されたシステムメモリ上のデータバッファにアクセスし、そこからライトデータを読みこむ。また、コマンドの内容がリードコマンドならば、ターゲットはデータディスクリプタで示されたシステムメモリ上のデータバッファにアクセスし、そこへコマンドの要求するデータを書きこむ。
【0177】
図27及び図28に、データバッファを直接示す場合と、ページテーブルを経由する場合を示す。物理的に不連続な領域のデータバッファを、ページテーブルにより、連続的に扱うことができ、仮想記憶による連続論理領域を物理的に再配置する必要がなくなるわけである。
【0178】
イニシエータからの様々な要求を実行するターゲット側の仕組みを、エージェント(Agent)と称する。エージェントには、マネージメントORBを実行するマネージメントエージェントと、コマンドブロックORBを実行するコマンドブロックエージェントがある。
【0179】
マネージメントエージェントには、マネージメントORBのアドレスをイニシエータがターゲットに知らせるためにストアする、マネージメントエージェントレジスタがある。
【0180】
コマンドブロックエージェントは、イニシエータのコマンドリンクリストからコマンドをフェッチしてくるため、フェッチエージェントとも呼ばれる。フェッチエージェントにも、コマンドブロックORBの先頭アドレスをイニシエータがストアするORBポインタレジスタと、イニシエータがターゲットにコマンドをFetchして貰いたいことを知らせるドアベルレジスタ等を含む、コマンドブロックエージェントレジスタがある。
【0181】
ターゲットはイニシエータからのORBの実行を完了すると、その実行完了のステータスを、ステータスブロックと言うデータ構造の形で(完了の成否に拘らず)イニシエータのステータスFIFOの示すアドレスにストアする。ステータスブロックの例を、図29に示す。
【0182】
ターゲットは最低8バイト、最大32バイトのステータス情報をストアすることができる。マネージメントORBの場合は、図25のステータスFIFOフィールドにORBの一部として明示的にステータスFIFOアドレスが提供されるので、ターゲットは指定されたアドレスにステータスブロックをストアする。それ以外の場合は、フェッチエージェントのコンテキストから得られるステータスFIFOにステータスブロックをストアする。コマンドブロックORBの場合は、イニシエータはステータスFIFOアドレスをログイン要求の一部として提供する。
【0183】
通常ターゲットは、イニシエータの発するORBに対してステータスFIFOアドレスにステータスブロックを書き込むことによって応答するが、デバイス側に変化が発生し、ロジカルユニットに影響する場合は、イニシエータからの要求が無くても自発的にアンソリシテッドステータス(Unsolicited Status)を返すこともできる。この場合のステータスFIFOアドレスは、イニシエータからのログイン要求の際にイニシエータから提供されるステータスFIFOアドレスである。
【0184】
SBP−2におけるイニシエータとターゲットの動作を、図30の動作モデルを用いて説明する。
【0185】
SBP−2の動作は、イニシエータが、ターゲットに対してログイン要求のためのマネージメントORB(ログインORB)を発行することから始まる。ターゲットは、イニシエータからの要求に対してログインレスポンスで応える。
【0186】
ログイン要求が受け入れられると、ターゲットからはログインレスポンスとしてコマンドブロックエージェントレジスタの先頭アドレスがかえされる。
【0187】
ログイン要求が受け入れられると、ターゲットのマネージメントエージェントは、イニシエータからのその後のタスクマネージメント要求を受け付ける。イニシエータは、タスクマネージメントORBを発行して、タスクの実行に必要な情報のやり取りをターゲットとの間で行う。ターゲットはイニシエータの発するORBに対してステータスFIFOにステータスブロックを書き込むことによって応答するが、デバイス側に変化が発生し、ロジカルユニットに影響する場合は、イニシエータからの要求が無くても自主的にアンソリシテッドステータスを返すこともできることは前述の通りである。
【0188】
タスクマネージメントに関するやり取りに続いて、イニシエータは必要なコマンドブロックORB(list)を自分のメモリ領域に形成する。そして、図31のように、ターゲットのコマンドブロックエージェントレジスタのORBポインタにORBの先頭アドレスを書きこむか又はコマンドブロックエージェントレジスタのドアベルレジスタを叩いて、ターゲットに対して通信すべきORBがイニシエータにあることを知らせる。
【0189】
これに応じて、ターゲットは、図32のように、ORBポインタに書かれたORBの先頭アドレス情報をもとにイニシエータのメモリにアクセスし、ORBを順次処理する。
【0190】
ところで、タスクの実行モデルには、オーダードモデルとアンオーダードモデルがある。オーダードモデルでは、ORBはリストの順番に沿って行われ、ターゲットの完了ステータスも順番に返される。アンオーダードモデルでは、ORBの実行順位に制約は無いが、どの順位でも最終的に同じ実行結果が得られるようにイニシエータが責任を持たなければならない。
【0191】
イニシエータからターゲットへのデータ転送はターゲットからシステムメモリへのリードトランザクションによって行われ、一方ターゲットからイニシエータへのデータ転送は、システムメモリへのライトトランザクションによって行われる。即ちデータバッファの転送は方向によらずターゲットが主導する。逆に言えば、ターゲットは自分に都合の良いペースでシステムメモリからのデータを読み出すことができる訳である。イニシエータはターゲットがORBを実行中でも、リストの最後のORBのネクストアドレスを次のORBのアドレスに書き換え、ターゲットのドアベルレジスタを再び叩いてターゲットに変更を知らせることにより、リンクリストにORBを追加することができる。ターゲットは、イニシエータのステータスFIFOのアドレスに完了ステータス(ステータスブロック)を返す。イニシエータは完了ステータス(ステータスブロック)が返されたのを見て、その対象ORBのターゲットによる実行が完了したことを知る。完了したORBは、(ネクストORBフィールドがnullでなければ)タスクセットのリンクリストから外すことができる、イニシエータはその空いたリソースを利用して、必要なら次のコマンドをコマンドリンクリストの最後に追加しても良い。
【0192】
このようにしてORBが実行されタスクが実行される。
【0193】
タスクが終了し、アクセスをつづける必要が無い場合は、イニシエータはログアウトORBを発行し、ターゲットが応えてログアウトが完了する。
【0194】
(15)SBP−3の概要
SBP−3(Serial Bus Protocol3)は、SBP−2を拡張し機能を追加することによりSBP−2において効率が悪かった点、欠いていた機能を補充する目的で2000年後半から規格化作業が行なわれている。
【0195】
SBP−3において拡張された代表的な機能を挙げると以下の通りになる。
1.アイソクロナスデータ転送機能
2.デバイスハンドルによるイニシエータ/ターゲット特定にとるノードID非依存機能
3.1つのORB内の双方向データ転送機能
ここでは上記機能のうち3について説明する。
【0196】
SBP−3はSBP−2と下位互換性を持っており、その基本的なデータ転送シーケンスはSBP−2の概要で説明した通りである。すなわち、イニシエータからターゲットへのデータ転送はターゲットからシステムメモリへのリードトランザクションによって行われ、一方ターゲットからイニシエータへのデータ転送は、システムメモリへのライトトランザクションによって行われる。ターゲットは自分に都合の良いペースでORBを読み出し、ORBの内容をデコードすることによって転送動作の種別情報を知る。ターゲットはORBに対応する転送動作がイニシエータからターゲットへのデータ転送か、ターゲットからイニシエータへのデータ転送なのか、そしてその転送動作がイニシエータ内のどのシステムメモリ領域に対して行なわれるか、をデコードし、該当する転送動作を行なう。またターゲットはそのORBで指定された転送動作を完了した際には、イニシエータのステータスFIFOのアドレスに完了ステータス(ステータスブロック)を返す。
【0197】
SBP−3ではコマンドブロックORB、つまり、データ転送コマンド、デバイス制御コマンド等のコマンドを内包するORBを2種類定義している。ひとつはコマンドブロックORBが有するリクエストフォーマットフィールドの値が0のものであり、SBP−2で定義されたコマンドブロックORBと同一のものである。「(14)SBP−2の概要」で説明したように、ORBが参照するデータバッファ又はページテーブルのアドレス及びサイズを示すデータディスクリプタ、データサイズフィールド、次のコマンドブロックORBのアドレスを示すネクストORBフィールド、そしてデータバッファに対するデータ転送方向を示すディレクションフィールドに代表されるデータ転送に関わるパラメータを指定するフィールドからなる。
【0198】
SBP−3で新規に定義されたコマンドブロックORBはリクエストフォーマットフィールドの値が1となっており従来のORBと区別がつけられる。
【0199】
このORBの特徴は1つのORBから2つのデータバッファが参照されるということである。
【0200】
データバッファ又はページテーブルのアドレス及びサイズを示すデータディスクリプタ、データサイズフィールド、ディレクションフィールド等データバッファに関するフィールドがそれぞれ2組用意され、これによりORBから2つのデータバッファの参照が可能となる。
【0201】
このORBを使用し、一つのデータバッファはターゲットへのライト用バッファ、もう一方のデータバッファはターゲットからのリード用バッファとして使うことにより双方向ORBとして活用することができる。
【0202】
イニシエータは必要なコマンドブロックORBリストを自分のメモリ領域に形成し、上記のように双方向ORBをアペンドしてターゲットのコマンドブロックエージェントレジスタのORBポインタにORBリストの先頭アドレスを書きこむか又はコマンドブロックエージェントレジスタのドアベルレジスタを叩いて、ターゲットに対して通信すべきORBがイニシエータにあることを知らせる。ターゲットは、ORBポインタに書かれたORBの先頭アドレス情報をもとにイニシエータのメモリにアクセスし、ORBをフェッチし、順次処理する。
【0203】
双方向ORBをフェッチしたターゲットは指定された2つのデータバッファそれぞれに対してデータ転送処理を行なう。片側のバッファに対応するディレクションフィールドは0となっていて、ターゲットはデータディスクリプタで示されたシステムメモリ上のデータバッファにアクセスし、そこからライトデータを読みこむ。またもう片方のバッファに対応するディレクションフィールドは1となっていてターゲットはデータディスクリプタで示されたシステムメモリ上のデータバッファにアクセスし、そこへコマンドの要求するデータを書きこむ。
【0204】
両方のデータバッファアクセスが完了するとターゲットはイニシエータのステータスFIFOのアドレスに完了ステータス(ステータスブロック)を返し、そのORBの実行完了を通知する。
【0205】
図33は、SBP−3でのコマンドブロックORBの動作を示す図である。図32で示したSBP−2と比較すると、SBP−3では1つのORBに対してデータバッファアクセスを示す線が2本になっており、SBP−2が1つのデータバッファへのアクセスしかできなかった点が変更されている。2つのデータバッファに独立してアクセスできることにより、イニシエータからターゲットへの2つのデータチャネルを1つのORBに当てはめることができる。データバッファへのデータの流れる方向はそれぞれのデータバッファで規定できる。つまり、2つのデータチャネルをイニシエータからターゲットへのデータ送信に用いることもできるし、一方をイニシエータからターゲットへのデータ送信、他方をターゲットからイニシエータへのデータ送信に用いることもできる。また、もちろん、ターゲットからイニシエータへのデータ送信に2つのデータチャネルを用いることもできる。更に、ホストとプリンタで使うような場合、一方をホストからプリンタへの印字データのために使い、他方をプリンタからホストへのステータス情報を流すために使うことも可能となる。
【0206】
図34にSBP−3の2つのデータバッファを保持する場合のコマンドブロックORBの詳細を示している。SBP−2と異なり、2組のデータバッファを扱えるようにするために、2つのデータディスクリプタと2つのバッファ情報フィールドが用意されている。図中"d"で示したフィールドにそれぞれのデータバッファの方向を指定することができる。その内容はSBP−2と同様であって、0であればイニシエータからターゲット、1であればターゲットからイニシエータへの方向を示している。
【0207】
〈本実施形態に係る情報処理システム〉
図1は、本実施形態の情報処理システムを示す図であり、IEEE1394で接続されたホストコンピュータ(以下ホスト)1aとプリンタ1bを表している。
【0208】
ホスト1aとプリンタ1bの通信はIEEE1394インターフェース上で使われる代表的なデータ転送プロトコルであるSBP(Serial Bus Protocol)−3プロトコルを使って行なわれ、ホスト−プリンタ間のデータ転送を行なうための通信チャネルとしてロジカルユニット0が予め定められている。
【0209】
図1中、ホスト1aはSBP−3プロトコルを用いたイニシエータとしてSBP−3のターゲットであるプリンタ装置1bとの間で通信を行うシステムである。またこの通信システムの場合、SBP−3プロトコルの上位コマンドセットとして予め規定されたプリンタ制御用通信コマンドプロトコルに基づいてホスト−プリンタ間通信が行なわれ、コマンドに従った処理が行なわれる。
【0210】
プリンタ1bはホスト1aから送られたプリンタコントロール、並びにプリントデータを受信し処理する機能と、プリンタ1bへのコントロールに対応して現在のプリンタステータスデータをホストに送信する機能とをそれぞれ提供する複数のデータ転送チャネルCH1,CH2を備える。またこれらのデータ転送チャネル用の通信セッション確立、切断といったマネージメントリクエストを処理するマネージメントエージェントMAを装備している。
【0211】
各データ転送チャネルCH1,CH2はSBP−3プロトコルで定義されたデュアルデータディスクリプタを備えたORBの活用によりデータ転送が行なわれる。それぞれのチャネルは二つのデータディスクリプタで指定されるデータバッファによりデータ転送を行なう。フェッチエージェントFAによりフェッチされるORBはコマンドブロック・エージェントCAにより実行状態が管理され、ORBで指定される2つのデータバッファに対する所定の処理はエクセキューション・エージェントEA0、EA1によりライト、またはリード処理される。フェッチエージェントはSBP−2/3のオーダードモデルに従いイニシエータから発行されるORBをシーケンシャルに処理することにより上記所定の処理を実行させる仕組みとなっている。
【0212】
本実施形態では、プリンタ制御用通信コマンドプロトコルとしてSBP−3を使用することにより、ORB中二つのデータディスクリプタで指定されるデータバッファをそれぞれデータ転送チャネルとしてアロケートし、一方のデータ転送チャネルにはプリントデータを、もう一方のデータ転送チャネルにはプリンタ制御コマンドの転送が行なわれるモデル仕様として定義されている。
【0213】
〈本実施形態に係るステータスブロック〉
通常、SBP−3ではターゲットはORBで指定されたデータバッファに対する処理が完了した際に、それをイニシエータに通知するための完了通知としてイニシエータのステータスFIFOのアドレスに完了ステータス(ステータスブロック)を発行する。しかし、図33のように、1つのORBにおいて2つのデータディスクリプタフィールドを用い2つのデータバッファが指定されている場合に、両方のデータバッファ処理が完了した時点でのみ完了ステータス(ステータスブロック)が発行される。片方のデータバッファに対するアクセスが正常終了しても、もう片方のデータバッファアクセスが完了しないとそのORBに対する完了通知をSBP−3のイニシエータに対して通知できず、ロジカルユニットとしてのデータ転送が滞ってしまう。このため、何らかの理由によりどちらかのデータ転送チャネルにおいてデータの送受信ができなくなった場合、またどちらかのデータ転送チャネルのデータ転送が他のチャネルよりも遅い場合、正常に転送されているチャネル、速いほうのチャネルが影響を受けてしまう。
【0214】
本実施形態に係るシステムにおいて、1つのデータバッファを印字データ、もう1つをステータスのために使うとすると、プリンタが印字データのデータバッファを全て受け取るまで、ホストに対してステータスを戻せないことが発生する。これではステータス情報を随時受け取りことができないことになる。
【0215】
そこで、本実施形態では、図35に示すようなステータスブロックを発行し、データバッファごとのアクセス完了を通知できる構成となっている。
【0216】
図35は、本実施の形態に係るプリンタ制御用通信コマンドプロトコルでの、データバッファ処理が完了した時点で発行する完了ステータス(ステータスブロック)を示す図である。
【0217】
図35に示すように、このステータスブロックには、コマンドセット依存フィールドにデータバッファ毎の完了ステータスをあらわすフィールドとしてa,b1,b2が定義されている。
【0218】
a,b1,b2は、それぞれ、データバッファを表していて、b1は図34で示した1番目のデータディスクリプタが示すデータバッファに対応しており、b2は2番目のデータディスクリプタが示すデータバッファに対応している。aはこれら2つのデータディスクリプタが示す両方のデータバッファに対応する。a,b1,b2のフィールドにはそれぞれ0または1の値がセットされ、1の場合に対応するバッファの完了を示し、0であれば対応するバッファの未完了を示す。つまり、aに1が指定された場合、2つのバッファに対するデータ通信が同時に完了したことを示す。a,b1,b2の3つのフィールドに対する値のセットにより、1つ目のバッファの完了、2つ目のバッファの完了、1,2両方のバッファの完了を個別あるいは同時に通知することができる。
【0219】
図36は、このようなステータスブロックを採用した場合のコマンドブロックORBの動作を示す図である。図のように、ステータスFIFOに対するアクセスは、複数回(この場合2回)行われる。ここで、ステータスFIFOへのアクセスは図35に示したステータスブロックで行われ、a,b1,b2のいずれかのビットに1が設定される。例えば、2つ目のバッファに対する処理のみが完了した場合、1度目のステータスブロックで、b2に1、b1に0がセットされ、1つ目のバッファの処理が完了した場合、2度目のステータスブロックで、b2に0、b1に1がセットされる。このように、それぞれのバッファについて、個別にステータスブロックが送信される。b1,b2共に完了が通知されたので、処理していたORBの完了が通知されたことになる。また、a,に1を設定することで2つのバッファに対するデータ通信の終了を1つのステータスブロックで行うこともできる。
【0220】
以上のように、本実施形態の情報処理システムでは、コマンドブロックに複数のデータバッファを有するようなコマンド実行処理において、個別のデータバッファに対する完了通知を指定することが可能となり、よりバッファの制御を詳細に行うことができる。また同時に複数のデータバッファの完了通知がそろうことによりコマンドブロックの完了と判断することが可能なため、完了通知の回数を少なくすることができる。また1度で全てのデータバッファの完了を通知することが可能となり、完了通知を簡略化することと従来技術との互換性を保つことができる。
【0221】
ひいては、データバッファごとに独立してステータスFIFOにステータスを書き込むことができるので、印字データとは独立してステータスのみを連続してホストに返すことのできるプリントシステムを実現できる。
【0222】
(他の実施形態)
以上、本発明の実施形態について詳述したが、本発明は、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。また、上記実施形態では通信制御バスとしてIEEE1394を利用した例について説明したが、本発明はこれに限定されるものではなく、USBなどの他の規格のバスを利用しても良い。
【0223】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。その場合、プログラムの機能を有していれば、形態は、プログラムである必要はない。
【0224】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明のクレームでは、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【0225】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
【0226】
プログラムを供給するための記録媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などがある。
【0227】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明のクレームに含まれるものである。
【0228】
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【0229】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【0230】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。
【0231】
【発明の効果】
本発明によれば、IEEE1394バス等の2つのチャネルを用いて効率的なデータ転送を行うことができる。
【図面の簡単な説明】
【図1】本発明のホスト・プリンタ通信システムの構成を示した図である。
【図2】1394シリアルバスのネットワークの構成を示した図である。
【図3】本発明の1394シリアルバスの構成要素を示した図である。
【図4】本発明の1394シリアルバスのリンク・レイヤ提供可能なサービスを示す図である。
【図5】本発明の1394シリアルバスのトランズアクション・レイヤ提供可能なサービスを示す図である。
【図6】1394インタフェースにおけるアドレス空間を説明する図である
【図7】1394インタフェースにおけるCSRコア・レジスタに格納される情報のアドレス及び機能を示す図である。
【図8】1394インタフェースにおけるシリアルバス・レジスタに格納される情報のアドレス及び機能を示す図である。
【図9】1394インタフェースにおける最小形式のコンフィグレーションROMを示す図である。
【図10】1394インタフェースにおける一般形式のコンフィグレーションROMを示す図である。
【図11】1394インタフェースにおけるシリアルバス装置レジスタに格納される情報のアドレス及び機能を示す図である。
【図12】IEEE1394規格に準拠した通信ケーブルの断面図である。
【図13】 DS-Link符号化方式を説明する図である。
【図14】バスリセットの開始からノードIDの割り当て処理までの基本的なシーケンスを示した図である。
【図15】バスリセットの開始からノードIDの割り当て処理までの基本的なシーケンスを示した図である。
【図16】バスリセットの開始からノードIDの割り当て処理までの基本的なシーケンスを示した図である。
【図17】図15に示したステップS1505の処理(即ち、自動的に各ノードのノードIDを割り当てる処理)を詳細に説明するフローチャートである。
【図18】1394インターフェースにおけるセルフIDパケットの構成を示した図である。
【図19】1394ネットワークにおけるアービトレーションを説明する図である。
【図20】1通信サイクルにおいてアイソクロナス転送モードとアシンクロナス転送モードとを混在させた場合を説明する図である。
【図21】アイソクロナス転送モードに基づいて転送される通信パケットのフォーマットを示した図である。
【図22】本発明のアシンクロナス転送のパケットフォーマットを示した図である。
【図23】SBP−2におけるORB種別を示した図である。
【図24】SBP−2におけるコマンドブロックORBのフォーマットを示した図である。
【図25】SBP−2におけるマネージメントORBのフォーマットを示した図である。
【図26】SBP−2におけるコマンドブロックORBのリンクリストを示した図である。
【図27】SBP−2におけるデータバッファの直接アクセスを示した図である。
【図28】SBP−2におけるページテーブルの使用を示した図である。
【図29】SBP−2におけるステータスFIFOのフォーマットを示した図である。
【図30】SBP−2におけるログイン動作を示した図である。
【図31】SBP−2にタスク実行の最初の動作を示した図である。
【図32】SBP−2におけるコマンドORBの動作を示した図である。
【図33】SBP−3におけるコマンドORBの動作を示した図である。
【図34】SBP−3におけるコマンドブロックORBのフォーマットを示した図である。
【図35】本発明の実施形態としての情報処理システムにおけるステータスブロックのフォーマットを示した図である。
【図36】本発明の実施形態としての情報処理システムにおけるコマンドORBの動作を示した図である。
Claims (8)
- 通信制御バスで接続された第1、第2機器を含む情報処理システムであって、
前記第1機器は、
1つのコマンドブロックに対し複数のデータバッファを割り当て、
前記第2機器は、
前記コマンドブロックに従って前記複数のデータバッファの少なくとも1つに対するデータ通信を行うデータ通信手段と、
前記データ通信手段によって前記複数のデータバッファのいずれか1つに対するデータ通信が完了した場合には当該データ通信が完了した1つのデータバッファを特定するための情報と前記複数のデータバッファの中でデータ通信が完了していないデータバッファを特定するための情報とを含むステータスを前記第1機器に通知し、前記データ通信手段によって前記複数のデータバッファ全てに対するデータ通信が完了した場合には当該全てのデータバッファに対するデータ通信が完了したことを示すステータスを前記第1機器に通知する完了通知手段と、
を有することを特徴とする情報処理システム。 - 前記通信制御バスはIEEE1394に準拠しており、前記第1機器と前記第2機器との間では、シリアルバスプロトコル3を通信プロトコルとしてデータ通信を行うことを特徴とする請求項1に記載の情報処理システム。
- 前記完了通知手段は、前記第1機器のステータスFIFOに、前記データバッファの内、データ通信が完了したデータバッファを示すステータスを発行することを特徴とする請求項1または2に記載の情報処理システム。
- 前記完了通知手段は、ステータスブロックを用いて、データ通信が完了したことを通知することを特徴とする請求項1、2または3に記載の情報処理システム。
- 通信制御バスで接続された第1、第2機器間における通信方法であって、前記第1機器から前記第2機器へ送信する1つのコマンドブロックに対し複数のデータバッファを割り当て、前記第2機器は、前記コマンドブロックに従って前記複数のデータバッファの少なくとも1つに対するデータ通信を行い、当該データ通信によって前記複数のデータバッファのいずれか1つに対するデータ通信が完了した場合には当該データ通信が完了した1つのデータバッファを特定するための情報と前記複数のデータバッファの中でデータ通信が完了していないデータバッファを特定するための情報とを含むステータスを前記第1機器に通知し、前記データ通信によって前記複数のデータバッファ全てに対するデータ通信が完了した場合には当該全てのデータバッファに対するデータ通信が完了したことを示すステータスを前記第1機器に通知することを特徴とする通信方法。
- 他の機器と通信制御バスで接続された情報処理装置であって、
1つのコマンドブロックに対し複数のデータバッファを割り当てた他の機器に対して、前記コマンドブロックに従って前記複数のデータバッファの少なくとも1つに対するデータ通信を行うデータ通信手段と、
前記データ通信手段によって前記複数のデータバッファのいずれか1つに対するデータ通信が完了した場合には当該データ通信が完了した1つのデータバッファを特定するための情報と前記複数のデータバッファの中でデータ通信が完了していないデータバッファを特定するための情報とを含むステータスを前記第1機器に通知し、前記データ通信手段によって前記複数のデータバッファ全てに対するデータ通信が完了した場合には当該全てのデータバッファに対するデータ通信が完了したことを示すステータスを前記他の機器に通知する完了通知手段と、
を有することを特徴とする情報処理装置。 - 請求項5に記載の通信方法をコンピュータに実現させることを特徴とするプログラム。
- 請求項7に記載のプログラムを格納したことを特徴とするコンピュータ読取り可能な記憶媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002260397A JP4095384B2 (ja) | 2002-09-05 | 2002-09-05 | 情報処理システム、情報処理装置、情報処理方法、プログラム及び記憶媒体 |
US10/654,025 US7346714B2 (en) | 2002-09-05 | 2003-09-04 | Notification of completion of communication with a plurality of data storage areas |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002260397A JP4095384B2 (ja) | 2002-09-05 | 2002-09-05 | 情報処理システム、情報処理装置、情報処理方法、プログラム及び記憶媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004104255A JP2004104255A (ja) | 2004-04-02 |
JP4095384B2 true JP4095384B2 (ja) | 2008-06-04 |
Family
ID=32261130
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002260397A Expired - Fee Related JP4095384B2 (ja) | 2002-09-05 | 2002-09-05 | 情報処理システム、情報処理装置、情報処理方法、プログラム及び記憶媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4095384B2 (ja) |
-
2002
- 2002-09-05 JP JP2002260397A patent/JP4095384B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004104255A (ja) | 2004-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4536981B2 (ja) | 情報信号処理装置及び情報信号処理方法 | |
JP4035235B2 (ja) | 電子機器 | |
JP4027189B2 (ja) | 情報処理システム、情報処理装置、情報処理方法、プログラム及び記憶媒体 | |
US6823408B2 (en) | Electronic equipment, and method for controlling state of physical layer circuit therefor | |
US6963938B2 (en) | Information processing apparatus and method therefor | |
JP2001160939A (ja) | 画像処理装置及び画像処理システム、及びその制御方法 | |
JP2001274813A (ja) | 情報信号処理装置及び情報信号処理方法並びに記憶媒体 | |
JP2000259545A (ja) | 情報処理装置およびその方法、並びに、記録媒体 | |
US7346714B2 (en) | Notification of completion of communication with a plurality of data storage areas | |
JP4095384B2 (ja) | 情報処理システム、情報処理装置、情報処理方法、プログラム及び記憶媒体 | |
JP2004102443A (ja) | 情報処理システム、情報処理方法、プログラム及び記憶媒体 | |
JP4109983B2 (ja) | 通信システム | |
JP2004064665A (ja) | データ転送装置及び送信装置及び受信装置及びそれらの制御方法 | |
JP2003110651A (ja) | データ処理方法、データ処理装置、通信プロトコル及びプログラム | |
JP2005044078A (ja) | 通信方法、印刷装置及びホスト装置 | |
JP2006134222A (ja) | 情報処理装置及び方法 | |
JP2003229857A (ja) | シリアルバスシステム、シリアルバスの帯域管理機器および通信機器 | |
JP2004179898A (ja) | 画像処理装置 | |
JP3495878B2 (ja) | データ処理方法、データ処理装置及びプリンタ | |
JP2009027349A (ja) | ネットワーク機器 | |
EP1182827A2 (en) | Information control method, information processing apparatus, and information control system | |
JP2001144783A (ja) | シリアルバスブリッジ、端末装置、情報通信システム、情報通信方法並びに記憶媒体 | |
JP2004223965A (ja) | 印刷装置 | |
JPH11177589A (ja) | データ転送装置およびデータ転送装置のデータ処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体 | |
JP2004192559A (ja) | 画像処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050902 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070810 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070820 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071019 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20071116 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080116 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20080125 |
|
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: 20080215 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080307 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110314 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: 20120314 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130314 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140314 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |