JP2000156696A - デ―タ通信システム用のトランズアクションインタ―フェ―ス - Google Patents

デ―タ通信システム用のトランズアクションインタ―フェ―ス

Info

Publication number
JP2000156696A
JP2000156696A JP11290466A JP29046699A JP2000156696A JP 2000156696 A JP2000156696 A JP 2000156696A JP 11290466 A JP11290466 A JP 11290466A JP 29046699 A JP29046699 A JP 29046699A JP 2000156696 A JP2000156696 A JP 2000156696A
Authority
JP
Japan
Prior art keywords
data
task
transaction interface
transaction
block
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.)
Pending
Application number
JP11290466A
Other languages
English (en)
Inventor
Anthony Fung
フォン アンソニー
Gross Peter
グロス ピーター
C Tsu Jim
シー. ツ ジム
K Ui Danny
ケイ. ウイ ダニー
S Fostov Harry
エス. フォストフ ハリー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ST MICROELECTRONICS Inc
STMicroelectronics lnc USA
Original Assignee
ST MICROELECTRONICS Inc
STMicroelectronics lnc USA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ST MICROELECTRONICS Inc, STMicroelectronics lnc USA filed Critical ST MICROELECTRONICS Inc
Publication of JP2000156696A publication Critical patent/JP2000156696A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40123Interconnection of computers and peripherals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40117Interconnection of audio or video/imaging devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)
  • Small-Scale Networks (AREA)

Abstract

(57)【要約】 (修正有) 【課題】 1394スタンダードに準拠した高速直列バ
ス用のシステムアーキテクチュアを提供する。 【解決手段】 メモリ資源の割り当てを行い且つ多様な
タスク及びサービスの開始のためカーネル/スケジュー
ラ/ディスパッチャを使用する。タスク及びサービスは
1394レイヤに関連するトランスポートレイヤ及びア
プリケーションレイヤで使用されるプロトコルで異な
る。各タスクはステートマシンの進捗状態に従って動作
する。インターフェースはタスクからのデータ情報を受
付け且つ1394バスへ送るためのパケットを形成す
る。パケットは初期的には関連するハードウエアレジス
タを介して送られるが、ビジーの場合は、インターフェ
ースは他の使用可能なレジスタに対しポーリングを行
う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ通信システ
ムへ接続されている装置間での通信に関するものであ
る。更に詳細には、本発明は、高速直列バスへ結合され
ているノード内のタスク及びサービスからデータを受取
り且つ該データを高速直列バス上に配置させるトランズ
アクションインターフェースに関するものである。更
に、本発明は、バスからデータパケットを受取り且つト
ランズアクションインターフェースが存在するノードに
おいて使用するためにそれらをフォーマット化する技術
に関するものである。
【0002】
【従来の技術】一般的に、2つのタイプのデータバス、
即ち直列バスと並列バスとが存在している。並列バス
は、典型的に、容量及び速度で評価される。並列バス幅
容量はバイトが使用され且つ速度はMHz即ちバイト/
秒が通常使用される。例えば、ポピュラなペリフェラル
コンポーネントインターコネクト(PCI)バスは32
ビット幅で最大で33MHzで動作する並列バスであ
る。この周波数においては、毎秒1ギガビット(1Gb
ps)を超えるレート即ち速度でデータを搬送すること
が可能である。並列バスの顕著な特徴は、その幅内の全
てのビットが同時的に送信されるというものであり、例
えば、PCIバスにおいては、32ビットの全てが1つ
のサイクル期間中に同時に送信される。このことは少な
くともバス内においてその幅と同じ数の信号線を必要と
し、且つアドレッシング、電力及びその他の信号のため
に付加的な線を必要とする。PCIバスはほぼ50本の
信号線を有している。信号線は、通常、プリント回路ボ
ード上のトレース又はワイヤとして実現される。並列バ
スにおける多数の信号線はそれを実現することを高価な
ものとしている。更に、PCIバス上のデバイス即ち装
置数が制限され且つ各装置はカードを必要とすると共に
バスへプラグインするためにオープンな対応するカード
スロットを必要とする。
【0003】一方、直列バスは一度に1ビットのデータ
を転送する。このことは直列バスに対して必要とされる
線数を減少するものであるが、それは並列バスと比較し
てデータを転送するのに必要な時間を著しく増加させ
る。例えば、同一の周波数で動作している場合には、P
CIバスが32個のビットを送信するのと同じ時間にお
いて直列バスは単に1ビットのデータを送信するに過ぎ
ない。直列バスの1例はユニバーサルシリアルバス(U
SB)である。このバスは4本のワイヤを有しており、
且つ最大で毎秒12メガビット(Mbps)のデータレ
ートを有している。ワイヤの数が少ないということはケ
ーブルを介してデバイス即ち装置を相互接続するのに直
列バスを理想的なものとしている。何故ならば、ケーブ
ルは安価に製造することが可能だからである。然しなが
ら、データ集約的な適用例は迅速に大量のデータを移動
させることを必要とするので、製造業者等はデータ集約
的な装置を相互接続するためには直列バスではなく通常
並列バスに依存する。このようなデータ集約的な装置を
使用する適用例としては、例えば、ビデオ及びオーディ
オ再生、及び例えばハードディスクドライブ等の高速格
納(記憶)メカニズム等)がある。
【0004】現在までのところ、バスを介してデータを
移動させるシステムの設計者等は高速且つ高価な並列バ
ス又は低速且つ安価な直列バスの間で選択をせねばなら
なかった。最近になって、高速直列バス用の仕様が米国
電気及び電子技術者協会(IEEE)によって採用され
た。その仕様であるIEEE1394−1995は「フ
ァイヤワイヤ(Fire Wire)」又は単に139
4として知られる幾つかのプロトコルスタンダードのう
ちの1つである。1394仕様は単に2対のデータワイ
ヤと1対の電力用のワイヤとを使用する最大で400M
bpsのデータ転送レート用のスタンダードを包含して
いる。このデータレートはビデオ、オーディオ及び高速
格納(記憶)のデータ集約的な必要性を受付けるのに充
分に高速なものである。将来の必要性は1Gbpsを超
えるデータレートを有する別の提案されている1394
スタンダードによって満足される。従って、1394ス
タンダードバスを使用することによって、並列バスを使
用することの欠点なしで、データ集約的なタスクを直列
バス上において廉価に実現することが可能である。13
94バスはピアツーピアアーキテクチュアを使用してい
る。6導体ケーブルによって物理的及び論理的ノードが
1394バスへ取付けられる。最大で63個までのノー
ドが各独立したバスブリッジ上に接続することが可能で
あり、且つ1,023個のブリッジがシステム内におい
て許容され、全部で65,000個を超える装置が1個
の1394システム上に設けることが可能である。コン
ピュータにおいて1394バスが使用される場合には、
多分、オープンホストコントローラインターフェース
(OHCI)スタンダードを使用する1394対PCI
インターフェースが使用される可能性がある。然しなが
ら、厳格に言えば、1394バスは接続ケーブルを介し
て関連する装置を一体的に結合させることによってコン
ピュータとは独立的に動作することが可能である。ケー
ブル仕様に加えて、バックプレーン仕様が1394バス
に対して設けられている。このバックプレーン仕様はコ
ンピュータ又は何等かのその他の自立システム内におけ
るバスに対して使用される蓋然性が高い。本明細書にお
いて記載するトランズアクションインターフェースはケ
ーブル環境又はバックプレーン環境のいずれにおいても
動作する。
【0005】1394スタンダードは3つの「レイヤ
(layer)」即ち層を特定しており、即ち、物理レ
イヤと、リンクレイヤと、トランズアクションレイヤで
ある。物理レイヤは直列バスに沿って電気信号を送信
し、一度に1個のノードのみがデータを送信することを
確保することによってバスの調停を行い、且つバスから
検知した電気信号をリンクレイヤ用のデータ信号へ変換
する。リンクレイヤはバスから検索されたデータ信号を
データパケットへ組立て、且つ例えばアドレッシング、
データチェック、タイミング及び同期のために使用され
る「サイクル」信号の発生等のサービスを提供する。ト
ランズアクションレイヤはリンクレイヤからのデータパ
ケットを受付け且つ読取、書込、ロックを包含するコマ
ンドステータスレジスタ(CSR)アーキテクチュアを
サポートするために必要なバストランズアクション即ち
バス取扱い部を有している。幾つかのその他のバスはC
SRスタンダードを使用し且つ1394がCSRスタン
ダードに準拠せねばならないことを特定することは13
94バスをこれらのその他のバスへ適合させるか又は接
続することを容易なものとさせる。一般的に、制限され
た数のトランズアクション機能のみならず物理レイヤ及
びリンクレイヤがハードウエアにおいて表われる。トラ
ンズアクションレイヤ機能の残部はソフトウエアで実施
される。
【0006】有用なものであるためには、付加的な通信
レイヤが1394レイヤと通信を行い且つその上方で動
作するものでなければならない。例えば、トランズアク
ションレイヤのすぐ上はトランスポートレイヤであり、
それは、例えば、ファンクショナルコントロールプロト
コル(FCP)即ち機能的制御プロトコルと呼ばれる直
列バスプロトコル2(SBP−2)又はスタンダードI
EC61883FCP/CMPを使用する。これらのス
タンダードは高性能直列バスを介してのコマンド及びデ
ータのトランスポート即ち搬送を行うためのプロトコル
を定義する。更に、トランスポートレイヤの上方には例
えばレデューストブロックコマンド(RBC)、プリン
タワーキンググループ(PWG)又はインターネットプ
ロトコル(IP)等のプロトコルスタンダードを使用す
るアプリケーションレイヤが存在している。これらのレ
イヤの相互のインタラクション及び1394仕様のレイ
ヤとのインタラクション即ち相互作用について更に詳細
に説明する。
【0007】従って、各ノードが1394仕様において
概説されている全ての任務を便利な態様で実施すること
を助けるトランズアクションインターフェースを提供す
ることが所望されている。又、このようなトランズアク
ションインターフェースはそれに対して送られるデータ
を最も効果的な態様でルーチング即ち経路付けすること
が望ましい。
【0008】
【発明が解決しようとする課題】本発明は、以上の点に
鑑みなされたものであって、上述した如き従来の技術の
欠点を解消し、高速の直列バスに接続されているノード
におけるタスク及びサービスからのデータを受取り且つ
そのデータを高速直列バスへ送る改良したトランズアク
ションインターフェースを提供することを目的とする。
本発明の別の目的とするところは、1394スタンダー
ドに準拠した高速直列バス用のインターフェース及びデ
ータ処理方法を提供することである。
【0009】
【課題を解決するための手段】例えば1394バスシス
テム等のデータ通信システムにおいて、トランズアクシ
ョンインターフェースはバス上の論理ノードにおいて動
作する。パケットがトランズアクションインターフェー
スが設けられている特定のノードに向かってバス上を送
られると、そのトランズアクションインターフェースは
そのパケットの内容を更なる操作を行うために制御ブロ
ックへデコードする。その更なる操作は、局所的なノー
ドにおいて動作するアプケーションによる実行を包含す
ることが可能である。更に、該アプリケーションはバス
上の別のノードへデータを送信することを要求する場合
がある。この場合には、該アプリケーションはメッセー
ジ制御ブロックを介してトランズアクションインターフ
ェースと通信を行い、それは、次いで、データ信号へ変
換され且つデスティネーション(宛先)ノードで受取ら
れるべくバス上に配置される。
【0010】本発明の1つの側面によれば、高速シリア
ルバス即ち直列バスへ結合されるトランズアクションイ
ンターフェースが提供される。本トランズアクションイ
ンターフェースは直列バスへ取付けられるトランズアク
ションハードウエアへ結合されている。本トランズアク
ションインターフェースはメッセージ制御ブロックを受
付けるキュー(待ち行列)を有しており、それは組織化
したデータと、該メッセージ制御ブロックを読取り且つ
それらをデータパケットへ変換する変換エンジンと、該
データパケットをバス上へ配置されるべき送信ベイへ通
過させる出力ポートとを有している。
【0011】本発明の別の実施例においては、複数個の
レジスタがハードウエア内に設けられており且つトラン
ズアクションインターフェースは最も便利な態様でデー
タを送るためにオープン即ち開いているレジスタをポー
ルする。
【0012】本発明の別の側面においては、直列バスに
対してデータのトランズアクション即ち取扱いを行う方
法が提供される。本方法は、バスへ送られるべきデータ
を受付け、該送られるべきデータを1つ又はそれ以上の
パケットへフォーマットし、メッセージ制御ブロック内
に含まれているその他のデータをパケット用のパケット
ヘッダへフォーマットし、該パケット及び該パケットヘ
ッダを直列バスに対するハードウエアインターフェース
へ書込む各ステップを有している。
【0013】本発明の更に別の実施例においては、ハー
ドウエアインターフェースに対してパケット及びパケッ
トヘッダを書込む場合に、データ構造を評価して、ハー
ドウエアレジスタのうちのいずれかが現在使用可能であ
るか否かを決定し、且つ使用可能でない場合には、その
中にデータを有することのないハードウエアレジスタが
見つかるまで、順番に、ハードウエアレジスタの全てを
逐次的に評価することを包含している。
【0014】
【発明の実施の形態】図1は1394バスアーキテクチ
ュアを実現する1つの方法を示している。バス100は
3個のローカルバス、即ちA,B,Cに分割されてい
る。ローカルバスA及びローカルバスCは、両方とも、
ローカルバスBへ接続するためのブリッジ110を使用
している。デバイス即ち装置がローカルバス上のノード
として存在している。以下に説明するレイヤ構造にはバ
ス上のノードの全ての中に含まれている。該装置は、例
えば第一ハードディスクドライブ120、第二ハードデ
ィスクドライブ122、又はプリンタ124等のデータ
を発生し、受付け又は送信するために使用される任意の
装置とすることが可能である。各ローカルバスは最大で
63個のノードを有することが可能であるが、バスブリ
ッジを使用することによって、1394バスシステムは
65,000個を超えるノードを有することが可能であ
る。典型的に、データトラフィックはローカルバスに制
限されており、従って、例えば、ローカルバスC上の装
置はローカルバスA上を通過するデータを見ることは不
可能である。このことはそのローカルバスに向けられて
いるローカルバス上のデータのみを通過させることによ
ってバスシステムの帯域幅を増加させている。バスブリ
ッジ110は、それに取付けられているローカルバス上
のバストラフィックをモニタし、別のローカルバス上の
ノードに対して意図されているデータを探し出す。この
ようなデータが検知されると、バスブリッジ110はそ
のデータを所望のバスへ転送する。従って、ローカルバ
スA上のプリンタ124はハードディスクドライブ12
0(ローカルバスAの上)か又はローカルバスブリッジ
110を介してハードディスクドライブ122(ローカ
ルバスBの上)のいずれかからデータを受取ることが可
能である。更に、バスブリッジ110は1394バスを
例えばPCIバス(不図示)等のコンピュータにおいて
典型的に使用されているバスへ結合させることが可能で
ある。
【0015】図2は直列バス管理を含む1394のレイ
ヤ構造2の概略的な全体図を示している。このレイヤ構
造はローカル1394バスに取付けられている全てのノ
ードにおいて存在している。レイヤ構造には、トランズ
アクションレイヤ10と、リンクレイヤ20と、物理レ
イヤ30と、直列バス管理40とを有している。139
4レイヤに関連して、トランスポートレイヤ80及びア
プリケーションレイヤ90も上述した如くに使用されて
いる。レイヤ10,20,30と直列バス管理40及び
レイヤ80及び90との間の通信は双方向レイヤ間通信
50を介して行われ、それは1つを超える通信経路を包
含することが可能である。通信50はデータバスとする
ことは必要ではないが、例えば信号ワイヤ、共用メモリ
資源等の多数の通信方法のうちのいずれか又はその他の
手段とすることが可能である。図2に示したように、ト
ランズアクションレイヤ10はリンクレイヤ20、バス
マネジャ55と直接的に通信を行い且つアイソクロノス
(等時性)信号を直列バス管理40内に含まれているア
イソクロノス資源マネジャ65へ通過させる。
【0016】1394バス等の通信システムにおけるレ
イヤは、それらの周りのレイヤから独立しているがそれ
らと関連して動作すべく位置されている。一般的に、例
えば1394バスのデータワイヤ等のようにレイヤがハ
ードウエアから遠ければ遠い程、その次数は一層高い。
一層高い次数のレイヤはより高い次数の機能を実施する
ことが可能である。例えば、1394仕様のトランズア
クションレイヤ10は読取/書込及びロック機能を実施
するに過ぎない。トランスポートレイヤ80はトランズ
アクションレイヤ10と通信を行い且つより高い次数の
コマンドを有している。使用される特定のトランスポー
トレイヤのスタンダードがそのコマンドを決定する。例
えば、SBP−2トランスポートレイヤにおいては、例
えばログイン、再接続、及びパスワード設定等のコマン
ドを使用することが可能である。トランスポートレイヤ
80より高いアプリケーションレイヤ90は例えばRB
C、PWG又はIP等のプロトコルを使用する。アプリ
ケーションレイヤ90は所望のアプリケーションを実施
するためにソフトウエアに関連して動作する。
【0017】1394仕様は2つの基本的なデータ転送
サービス、即ちアイソクロノス(等時性)データ転送及
び非同期データ転送を有している。アイソクロノスデー
タ転送仕様は規則的なインターバル即ち間隔で高速直列
バスに沿ってパケットを送信させる。典型的に、アイソ
クロノスデータ転送サービスはデータ発生器と例えばデ
ジタルビデオカメラ及びビデオディスプレイ等のマルチ
メディアエレクトロニクス又はビデオ編集器等のデータ
受信器との間で搬送される大量のデータに対して使用さ
れる。アイソクロノスデータ転送はリンクレイヤ20と
直接的に通信を行い且つトランズアクションレイヤ10
をバイパスする。トランズアクションレイヤは非同期デ
ータ転送のためにのみ使用される。1394仕様内の大
部分の帯域幅はアイソクロノスデータ転送のために予約
されており、その帯域幅の20%が非同期データ転送の
ためである。
【0018】ノード制御器75がリンクレイヤ及び物理
レイヤへ直接接続されている。バスマネジャ55、アイ
ソクロノス資源マネジャ65及びノード制御器75は、
各々、CSRスタンダードIEEE1212−1991
に従って駆動される。その他のタイプのバスもこのCS
Rスタンダードを使用し、1394バスの接続性を拡張
させている。CSRは直列バス管理40内に位置されて
おり且つ管理CSR57、アイソクロノスCSR67、
及びスタンダードCSR77として表わされている。
【0019】直列バス管理40を有するレイヤ構造2は
バスに沿っての各ノード内に存在している。然しなが
ら、ローカルバス上において1つのバスマネジャ55及
び1つのアイソクロノス資源マネジャ65のみがアクテ
ィブ即ち活性状態である。これらのマネジャは全体的な
ローカルバスにわたって管理責任を実施する。各ローカ
ルバスは1個のバスマネジャ55及び1個のアイソクロ
ノス資源マネジャ65を必要とするに過ぎず(且つそれ
を有することが可能であるに過ぎないので)、他のノー
ドはそれらの夫々のバスマネジャ及びアイソクロノス資
源マネジャをディスエーブル即ち動作不能状態とさせ
る。ノード制御器75は全ての動作可能なノードに対し
てアクティブ即ち活性状態にある。
【0020】上述したように、リンクレイヤ20及び物
理レイヤ30は、通常、例えば、シリコンシステムデザ
イン、インポートレイテッドから入手可能であるか又は
テキサスイントルメンツ、インコーポレイテッドから入
手可能なチップ等のハードウエアで具体化されている。
トランズアクションレイヤ10、トランスポートレイヤ
80、アプリケーションレイヤ90、及びその他のトラ
ンスポートインターフェースの機能は、通常、ソフトウ
エアの形態で実現され、即ちそれがメモリ内にロードさ
れた場合に実行されるソフトウエアプログラムとして実
現される。好適実施例においては、これらのレイヤ及び
機能はファームウエアとして格納され、例えば、リード
オンリメモリ(ROM)、プログラマブルロジックアレ
イ(PLA)又はディスクドライブオーバーレイ等のプ
ログラム可能な格納(記憶)装置内にプログラムしたコ
ードとして格納される。更に、これらのレイヤ及び機能
は当該技術分野において公知の方法によって応用特定集
積回路(ASIC)内にプログラムすることが可能であ
る。一般的に、上にリストしたような一群の動作はソフ
トウエアよりもハードウエアにおいてより高速に動作す
るが、ソフトウエアプログラムは変更、補正及び更新を
する場合により簡単である。ファームウエアの好適実施
例はハードウエアとソフトウエアの両方の利点を結合し
た点である。図3は本発明の1実施例を示している。ト
ランスポートプロトコルインターフェース200が例え
ば図1に示したプリンタ124におけるか又はハードデ
ィスクドライブ120,122におけるようにバス上の
各ノードにおいて存在している。トランズアクションイ
ンターフェース210は図2に示したコンポーネントの
うちの幾つかを具体化している。図3に示したコンポー
ネントを参照すると、トランズアクションハードウエア
205を具体化したチップは前述したシリコンシステム
デザイン又はテキサスインストルメンツによるチップと
することが可能である。トランズアクションインターフ
ェース210は1394トランズアクションレイヤを実
現する。直列バス管理タスク235は例えばリセット又
はパワーオンリセット等のバス管理機能を実現する。図
3に示した表示のうちの残部は例えばRBC等のアプリ
ケーションレイヤと関連して例えばSBP−2等のトラ
ンスポートレイヤによって決定される機能及びコマンド
を実現する。
【0021】トランズアクションハードウエア205を
除いて、図3における表示は2つの種類、即ちサービス
とタスクとに分割することが可能である。タスクはその
他のタスクをスケジュールするか又はサービスをコール
することが可能である。サービスはタスクによってコー
ルされた場合にのみ応答することが可能であり、且つ完
了すると、コールを発生したタスクへリターンする。ト
ランズアクションインターフェース210はカーネル/
スケージューラ/ディスパッチャ220と共にサービス
である。図3に示した表示の残りは以下に説明するよう
にタスクである。
【0022】トランズアクションハードウエア205は
1394バスをモニタし且つバスから検知した電気信号
をデータパケットへ変換する。トランズアクションイン
ターフェース210はトランズアクションハードウエア
205から受取ったデータパケットをデコードする。こ
れらのデータパケットは解析されてタスクがスケジュー
ルされるべきであるか否か、サービスをコールすべきで
あるか否かを、又は何等アクションが必要とされないか
否かを決定する。タスク又はサービスが開始されること
を必要とする場合には、トランズアクションインターフ
ェース210はデータパケットの内容に基づいてメッセ
ージ制御ブロック(MCB)を発生し且つ所望のタスク
をスケジュールするか又は所望のサービスをコールす
る。メッセージ制御ブロックは全てのタスク又はサービ
ス間の通信に対して使用され且つ以下に更に詳細に説明
する。
【0023】トランズアクションインターフェース21
0が処理することの可能なデータの最も小さな単位は1
個のデータパケットである。データパケットは1つのグ
ループのデータである。その最も低い要素において、デ
ジタルデータは1又は0のいずれかである。各個別的な
データはビットと呼ばれる。8個のビットからなる集ま
りはバイトと呼ばれ、且つ4バイト(32ビット)の集
まりはクワドレットと呼ばれる。非同期パケットは少な
くとも4個のクワドレット、即ち128ビットの長さで
なければならない。最初の128ビットはパケットヘッ
ダと呼ばれる。非同期パケットは、更に、データブロッ
クを有することも可能である。データブロックの寸法は
夫々異なるが、1394バスが動作する速度に基づいて
絶対的な絶対値に制限される。1394バスは98.3
04Mbps、196.608Mbps、又は393.
216Mbpsにおいて動作する仕様を包含している。
これらの速度は、しばしば、夫々、100,200,4
00Mbpsへまるめられ且つS100,S200,S
400のラベルが付けられる。S100の速度で動作す
る場合には、最大ブロック寸法は512バイト(又は1
28クワドレット)である。S200及びS400で動
作している場合には、最大ブロック寸法は、夫々、10
24バイト及び2048バイトである。より高いバス速
度スタンダードが認められる場合には、多分最大ブロッ
クサンプルも増加する。
【0024】トランズアクションインターフェース21
0は1394バスからデータを受取り1394バスへデ
ータを送信する。図2のトランズアクションレイヤ10
に関して、バスに沿ってパケット内に送られ且つトラン
ズアクションインターフェース210によって処理され
る3つの主要な機能が存在している。それらは読取、書
込及びロック機能である。これらの機能のうちの各々に
対して、2つの主要な操作、即ちリクエスト(要求)及
びレスポンス(応答)が存在している。リクエスト(要
求)は読取、書込又はロックが行われることを依頼する
ものであり、且つレスポンス(応答)は読取、書込又は
ロックが試みられたことを表わし且つ結果を有してい
る。
【0025】トランズアクションインターフェース21
0が存在しているターゲットノードに対して送られるべ
きパケットはイニシエータ(開始体)によって1394
バス上に配置される。その特定のノードアドレスに対し
て経路付けされたパケットはトランズアクションハード
ウエア205における受信ベイにおいて受取られ且つト
ランズアクションインターフェース210に対してイン
タラプトが発生される。トランズアクションインターフ
ェース210がその現在のタスクを完了すると、インタ
ラプトサービスルーチンにエンターする。1実施例にお
いては、インタラプトを発生する7つのタイプのパケッ
トがパケットヘッダ内に含まれている4ビットトランズ
アクションコードによって識別される。本発明のこの実
施例に対するトランズアクションコードは以下のように
定義される。
【0026】 表 1 トランズアクションコード 意 味 0 データクワドレットに対する書込要求 1 データブロックに対する書込要求 2 書込応答 4 データクワドレットに対する読取要求 5 データブロックに対する読取要求 6 データクワドレットに対する読取応答 7 データブロックに対する読取応答 B ロック応答 上述したように、クワドレットは4バイトであり且つブ
ロックはそのバスが動作する速度に依存して512、1
024又は2048バイトのいずれかである。データブ
ロックに対する書込要求は、特定のノードにおける特定
したデスティネーションメモリアドレスに対してデータ
ブロックを書込むことを依頼することである。データク
ワドレットに対する書込要求はデータブロックに対する
書込要求と同じであるが、特定したデスティネーション
アドレスに対して書込まれるべきデータの量は1つのデ
ータクワドレット内におさまる。データブロックに対す
る読取要求及びデータクワドレットに対する読取要求は
特定したノードにおける特定したデスティネーションメ
モリアドレスからのデータを検索することの要求であ
る。
【0027】書込要求及び読取要求はデータクワドレッ
ト及びデータブロックの両方に対する読取及び書込の両
方の応答を包含する応答を送ることによって応答され
る。データクワドレットに対する読取応答はデータクワ
ドレットに対する読取要求に対する回答において送ら
れ、要求されたデータはデータヘッダ内においてパスさ
れる。データブロックに対する読取応答はデータクワド
レットに対する読取応答と同様であるが、より多くのデ
ータがパスされる。何らかの理由で、読取要求を実施す
ることが不可能である場合には、データが送られること
はないが、エラーステータスが要求を発生したノードへ
送ることが可能である。書込応答はデータクワドレット
又はデータブロックのいずれかに対する書込要求に対す
る回答として送られる。該応答は書込が成功したか否か
を表わす応答コードを送り、且つ成功しなかった場合に
は、何故失敗したかの特定の理由を中継する。書込応答
において、パケットヘッダはこの応答コードを包含して
いる。
【0028】ロック要求及び応答は、アドレスと、引き
数値と、要求されたデータとを送ることにより、且つ応
答においてデータを送ることによって同様に動作する。
【0029】図3を参照すると、トランズアクションイ
ンターフェース210及びカーネル/スケジューラ/デ
ィスパッチャ220は本発明の全ての実施例に対して存
在している。更に、図2に示したトランスポートレイヤ
80及びアプリケーションレイヤ90に対してどのプロ
トコルが使用されるかに依存して、1個又はそれ以上の
タスクが存在する。図3に示した実施例においては、7
個のタスクが示されている。これらのタスクは、トラン
スポートレイヤ80に対してSBP−2プロトコルを使
用する場合に必要とされる機能を実施する構成とされて
いる。従って、本発明は任意の使用されるプロトコルを
受付けるべくスケーラブル即ち拡縮可能である。例え
ば、図10に示した実施例はFCPに対して最適化され
たタスクを示している。従って、所望の任意のプロトコ
ルを実現するために1個又はそれ以上のタスクを使用す
ることが可能である。
【0030】図3においては、図示されている7つのタ
スクが本発明をSBP−2プロトコルと共に動作するこ
とを可能としている。トランズアクションインターフェ
ース210は受信するトランズアクションコードに依存
して異なる動作を行う。例えば、データクワドレット又
はデータブロックに対する書込要求又はデータクワドレ
ット又はデータブロックに対する読取要求がトランズア
クションインターフェース210によって受取られる
と、トランズアクションインターフェースは1つ又はそ
れ以上のタスクのスケジューリングが関与する順番付け
された1組の動作を実施する。
【0031】図3に示したサービス及びタスクはそれら
のサービス及びタスクに関連するキュー(待ち行列)内
に配置されたメッセージ制御ブロック(MCB)を介し
て互いに通信を行う。図3に示した各タスクは少なくと
も1つの夫々の関連するキュー即ち待ち行列を有してい
る。タスク間で転送される情報はMCBを介してのみで
ある。各特定のタスクはそのタスクが動作するために特
に必要とされるデータを含むそれ自身のタイプの制御ブ
ロックを有している。図3に示したものは7つのタスク
であり、即ちコマンドメッセージ制御(CMC)ブロッ
クを使用するコマンドORB実行タスク245と、フェ
ッチ管理メッセージ制御(FMC)ブロックを使用する
フェッチ管理タスク215と、ORBフェッチメッセー
ジ制御(OMC)ブロックを使用するORBフェッチタ
スク255と、非請求(unsolicited)ステ
ータス管理制御(UMC)ブロックを使用する非請求ス
テータスタスク265と、管理エージェントメッセージ
制御(MMC)ブロックを使用する管理エージェントタ
スク225と、直列バスメッセージ制御(SMC)ブロ
ックを使用する直列バス管理タスクと、アプリケーショ
ンメッセージ制御(AMC)ブロックを使用するアプケ
ーションタスク275とである。該サービスは、又、特
にそれらに対してのMCBも有している。ディスパッチ
ャ220はディスパッチメッセージ制御(DMC)ブロ
ックを使用し且つトランズアクションインターフェース
210はトランズアクションメッセージ制御(TMC)
ブロックを使用する。更に、各タスク及びサービスは少
なくとも1個のキュー即ち待ち行列を有しており、その
中に夫々のMCBが配置される。例えば、管理エージェ
ントタスク225はMMCブロックを受取る構成とされ
ている管理エージェントタスクキュー(待ち行列)を有
している。アーキテクチュア内のいずれもがタスク及び
キュー(待ち行列)の関連付けを制限するものではな
い。例えば、1つのタスクは多数のキュー(待ち行列)
を有することが可能であり又は1つのキュー(待ち行
列)は多数のタスクと関連することが可能である。タス
クとキュー(待ち行列)との間の任意の程度の関連付け
が可能である。
【0032】1つのタイプのMCBの例として、図4は
管理エージェントメッセージ制御(MMC)ブロックを
示している。全てのMCBは異なるものであるから、ス
タンダードメッセージ制御ブロックのようなものは存在
しないが、MMCブロックはMCB内に含まれるタイプ
のデータの代表的なものである。タスクが管理エージェ
ントタスク225をスケジュールすることを望む場合に
は、スケジュール用タスクがMMCブロックを構築し且
つそれをMMCキュー(待ち行列)内に配置させる。図
4に示したMMCブロック300は44バイトのデータ
を有している。各バイトは参照用に左側に沿って番号付
けされており且つ0−15の番号が付けられているバイ
トオフセットは各ラインの2つのバイトを構成する個々
のビットを表わしている。タスクにとって有用なデータ
は図4に示したようにMCB内に配置される。例えば、
バスが動作する速度はMMCブロックの最初の2つのバ
イトのビット8,9,10(7,8,9のオフセットを
有している)を占有する。管理操作要求ブロック(OR
B)に対するアドレスは6バイトの長さであり且つバイ
ト4−9を有している。このデータは操作期間中管理エ
ージェントタスク225によって必要とされ且つ使用さ
れる。
【0033】タスクをスケジュールするか又は別のタス
クからサービスをコールするために、幾つかのステップ
が取られる。最初に、特定のタスク又はサービスに対し
てMCBが形成される。次いで、そのMCBはその特定
のタスク又はサービスに関連するキュー即ち待ち行列内
に配置され且つリターンコードが発信元のタスクへ送ら
れる。次いで、発信元のタスクはリターンコードをチェ
ックする。そのリターンコードが、MCBがキュー即ち
待ち行列のトップ即ち一番上にないことを表わす場合に
は、このことはそのタスクが現在稼動中であることを意
味し且つ発信元のタスクはそれ以上のことをすることは
ない。何らのアクションもとられない。何故ならば、一
度開始されると、タスクはそのキュー即ち待ち行列が空
になるまでそのキュー即ち待ち行列内の全てのMCBに
関して動作を行うからである。従って、そのタスクのキ
ュー即ち待ち行列内に現在配置されているMCBは、そ
れがそのキュー即ち待ち行列のトップ即ち一番上に昇っ
た場合に、究極的に動作される。然しながら、そのリタ
ーンコードが、そのタスクのキュー即ち待ち行列内に今
配置されたMCBが既にそのキュー即ち待ち行列のトッ
プ即ち一番上にあることを表わす場合、即ちそのタスク
のキュー即ち待ち行列内にはその他のMCBが存在しな
い場合には、このことはスケジュールされたタスクは既
に稼動中ではなく且つ開始されねばならないことを発信
元のタスクに告知する。
【0034】タスクを開始させるためには、発信元のタ
スクはディスパッチャ220に対してディスパッチメッ
セージ制御(DMC)ブロックを形成する。このDMC
ブロックは、どのタスクが開始されるべきであるか且つ
どのような優先度がDMCブロックに対して与えられる
べきであるかを表わす。ディスパッチャ220はエント
リに対して継続的にチェックが行われる関連するキュー
即ち待ち行列を有している。エントリが所望のタスクを
開始させるためにスケジューラ220によって受取られ
ると、それらは優先度に従ってディスパッチャキュー
(待ち行列)内に配置され、最も高い優先度のものがそ
のキュー即ち待ち行列内の最も高い位置に配置される。
全てのキューの場合におけるように、該ディスパッチャ
又はタスクは、より高い優先度を有するMCBがそのキ
ュー即ち待ち行列内に配置される場合であっても、その
現在のMCBに関する動作が中断されることはない。そ
の代わりに、スケジューラ220は、現在処理中のDM
Cブロックではなく、DMCキュー(待ち行列)内に現
在未処理のブロック及び新たなブロックの優先度に基づ
いてDMCブロックの順番付けを行う。DMCブロック
がDMCキュー(待ち行列)のトップ即ち一番上に到達
すると、ディスパッチャ220はそのDMCブロックの
中を見てどのタスクがコールされるべきであるかを判別
し、次いで、コールされたタスクに対して処理されるこ
とを待機しているそれ自身のキュー即ち待ち行列内に位
置しているMCBが存在していることを通知する。この
ことは、スケジュールされたタスクが動作を開始させ
る。従って、1つのタスクが別のタスクをスケジュール
するか又はサービスをコールするためには、1つ又は2
つのMCBが形成されねばならない。最初に、特に、ス
ケジュールされたタスクに対してMCBが形成され且つ
それと関連するキュー即ち待ち行列内に配置される。次
いで、発信元のタスクによってリターンコードがチェッ
クされる。そのリターンコードが、MCBがそのキュー
即ち待ち行列内に配置されたがそのキューのトップ即ち
一番上にないことを表わす場合には、スケジュールされ
たタスクが既に稼動中であり且つそれがキュー即ち待ち
行列のヘッド即ち一番上に移動した場合にそのMCBに
ついて処理が行われるので、開始用のタスクはそれ以上
のことをすることはない。然しながら、リターンコード
が、MCBがスケジュールされたタスクに対するキュー
即ち待ち行列のトップ即ち一番上に配置されたことを表
わす場合には、発信元のタスクによってDMCブロック
が発生され、それはどのタスクがスケジュールされるべ
きか又はどのサービスがコールされるべきかを表わし、
且つどの優先度がDMCブロックに与えられるべきであ
るかを表わす。次いで、スケジューラ220はそのDM
CブロックをDMCキュー即ち待ち行列内の適宜の位置
に優先度による順番付けに従って配置させる。そのDM
CブロックがDMCキュー即ち待ち行列のトップ即ち一
番上に到達すると、そのキュー即ち待ち行列内にMCB
が存在しており且つ動作を開始すべきあることをスケジ
ュールされたタスク又はコールされたサービスに告知す
る。次いで、所望のタスク又はサービスが開始され、そ
のDMCブロックをフリー即ち自由なメッセージブロッ
クプールへリターンさせ、次いでそれ自身のキュー即ち
待ち行列のトップ即ち一番上にあるMCBについて動作
を行う。
【0035】全てのMCBに対して資源の共通プールが
存在している。メッセージブロックプールはカーネル2
20によって管理される。該プールはMCBを形成する
ことが可能な有限のメモリ空間から構成されている。よ
り多くのMCBが形成されると、プール内に残されるメ
モリ空間の量が減少する。フリー即ち自由なブロックの
プール内においてメモリ空間が残存していない場合に
は、更なる資源が供給されるまで新たなMCBを発生さ
せることは不可能である。MCBが処理された後で且つ
最早必要とされない場合、即ち、それらがキュー即ち待
ち行列から除去されると、MCBをプールへリターンさ
せることによって資源が供給される。タスク又はサービ
スが以前にそのキュー即ち待ち行列内にあるMCBを使
用して完了されると、それはカーネル220をコール
し、MCBをフリー即ち自由なブロッックのプールに戻
すことを要求する。次いで、それは次のフリー即ち自由
なMCBをそのキュー即ち待ち行列のトップ即ち一番上
へ移動させる。更に、DMCブロックがタスク又はサー
ビスを開始するために必要である場合には、コールされ
たタスク又はサービスはそれ自身のMCBを処理する前
に、そのDMCをフリー即ち自由なメモリブロックプー
ルへすぐさまリターンさせる。フリー即ち自由なメモリ
ブロックのプールの寸法は使用可能なメモリの量によっ
て決定され、いずれかのMCBが割り当てられる前には
固定されている。
【0036】ディスパッチキュー(待ち行列)を管理し
且つフリー即ち自由なメッセージブロックのプールを管
理することに加えて、カーネル/スケジューラ/ディス
パッチャ220は、又、1394バストランズアクショ
ンにおけるその他の機能を実施する。カーネル220は
データ構造、タイマ及びインタラプトベクトルを初期化
させる。計時される全てのタスクはタイマを必要とす
る。カーネル220はタイマに基づいてインタラプトを
開始させ、停止させ、再開始させ、チェックし、削除
し、供給するようなタイマ管理サービスを提供する。タ
イマはカーネルサービスへのコールを介してタスクによ
って要求される場合に割当てられる。現在アクティブ即
ち活性状態にある各タイマは全てのクロックサイクルで
調節される。1実施例においては、タイマは与えられた
数で初期化され、それは各クロックサイクルでデクリメ
ントされる。タイマ値がゼロに到達すると、そのタイマ
に関連するタスクに対して通知が送られる。
【0037】上述したように、トランズアクションイン
ターフェース210及びカーネル/スケジューラ/ディ
スパッチャ220と共に動作すべく選択された特定のタ
スクは特定のシステムにおいて使用されるトランスポー
トレイヤ80に依存する。図3に示した実施例において
は、トランスポートレイヤに対するSBP−2プロトコ
ルと共に動作すべくタスクが選択されている。その他の
トランスポートレイヤプロトコルが使用される場合に
は、他のタスクが存在するか又は図3に示したタスクの
幾つかが存在しない場合がある。このように、トランス
ポートプロトコルインターフェース200は極めて柔軟
性があり且つスケーラブル即ち拡縮自在であって、所望
により出来るだけカスタム化することを可能としてい
る。
【0038】図3に示した実施例において示されるよう
に、コマンドORB実行タスク245はアプリケーショ
ンタスク275と典型的に異なるノードに位置されてい
るイニシエータ(開始体)との間のデータ及びステータ
スのトランズアクション即ちやり取りを処理する。動作
について説明すると、イニシエータはアプリケーション
タスク275へデータを送るか又はそれからデータを受
取る。コマンドORB実行タスク245はそれらの間の
データ及びステータスメッセージに対する主要な経路で
ある。フェッチ管理タスク215は、特定のノードにお
いて受取られた操作がそのノードに対して意図されたも
のであったことを確保する。その操作が正しいノードに
ある場合には、フェッチ管理タスク215はエージェン
トの現在の状態を表わすために使用される変数をアップ
デート即ち更新する。ORBフェッチタスク255はイ
ニシエータからのコマンドを含む幾つかのORBを受取
り、且つそれらを実行するためにアプリケーションタス
ク275へパスする。非請求ステータスタスク265は
その他のタスクのうちの1つによって要求される場合に
イニシエータに対してステータスメッセージを送る。管
理エージェントタスク225はイニシエータによって要
求された管理型の機能を実施し、例えばアクセス要求、
ログイン、パスワード設定等である。直列バス管理タス
ク235は1394バスのノード上の直列バス管理40
と直列バス管理タスクが存在している同一のノードに対
するアプリケーションタスク275との間のインターフ
ェースとして機能する。最後に、アプリケーションタス
ク275は図1のアプリケーションレイヤ90における
上部プロトコルコマンドを実行すべく動作する。アプリ
ケーションタスク275は1394バスに沿って転送さ
れる大多数のデータの究極的な発信元又はデスティネー
ション(宛先)である。
【0039】トランズアクションインターフェース21
0は、上述したようにローカルノードに対して送られる
べきパケットを受取ることに加えて、他のノードに対し
て送られるべきパケットを用意する。用意されると、ト
ランズアクションインターフェース210はそのパケッ
トをリンクレイヤ20へ転送し、そこでそれらのパケッ
トは同期され且つバス上に配置されるべき電気信号へ変
換するために物理層10へ送られる。トランズアクショ
ンインターフェース210から送られるべきデータのタ
イプ及び量に依存して、送信ベイ、ペイロードデータ送
信ベイ及び/又は直接メモリアドレス(DMA)チャン
ネルを使用することが可能である。トランズアクション
インターフェース210から送られるべきデータの量が
多い場合には、それをバス上に配置すべき幾つかのパケ
ットへ分解することが可能である。各パケットが用意さ
れ、次いで、バスに沿って送られる。
【0040】タスクが位置しているノード以外のノード
へデータを送ることを所望するタスクは、そのデータを
トランズアクションインターフェース210の送信部分
を介して送る。トランズアクションインターフェース2
10はTMCブロックを保持するために少なくとも2つ
のキュー即ち待ち行列を有しており、即ち時間に対して
クリチカル即ち臨界的なトランズアクションに対して1
つと、時間に対してクリチカルでない即ち非臨界的なト
ランズアクションに対して1つとである。バスに沿って
送られるべきデータはTMCブロックにパッケージ化さ
れ且つ所望により時間に関して臨界的であるか又は時間
に関して臨界的でないキュー内に配置される。時間に関
して臨界的でないTMCキュー(待ち行列)はデータブ
ロック転送要求及び応答に対して使用され、一方時間に
関して臨界的なTMCキュー即ち待ち行列は分割トラン
ズアクションサブアクション内の要求に対する応答のた
めに使用される。時間に関して臨界的でないTMCブロ
ック要求を完了するためには複数個のトランズアクショ
ンが行われる場合がある。トランズアクションが完了す
ると、トランズアクションインターフェース210はデ
ータを送っているタスクに対してタスクが完了したこと
の通知を送る。
【0041】トランズアクションインターフェース21
0によって開始される各トランズアクションはそれと関
連するハードウエアタイマを有している。ハードウエア
タイマはトランズアクションタイムアウトの時間を管理
するために使用される。TMCブロックのリトライ即ち
再試行カウントフィールドは、データ転送が不成功であ
った場合にインクリメントされる。リトライカウントが
プログラム可能な最大数のエントリより低い限り、トラ
ンズアクションインターフェース210は再度データを
送ることを試みる。最大リトライカウントを超えると、
ステータスメッセージがコールを発生したタスクへ送ら
れ、失敗したことを告知する。トランズアクションが完
了すると、即ちトランズアクションインターフェース2
10がデータを送っているノードからアクノレッジメン
ト(肯定応答)を受取ると、トランズアクションインタ
ーフェース210はコールしたタスクに対してトランズ
アクション完了ステータス又はその他の応答データをリ
タンーンするためのスケジュールを行う。そのデータは
DMCブロック内に配置され且つコールを発生したタス
クへディスパッチャ220を介して送られる。
【0042】図5Aはトランズアクションメモリ制御
(TMC)ブロック310に対する構成を示している。
図4を参照して説明したように、全てのMCBは異なっ
ており且つそれが関連するタスク又はサービスに対して
特定のデータを包含している。TMCブロックはトラン
ズアクションインターフェース210と関連している。
トランスポートプロトコルインターフェース200のい
ずれかのタスク又はサービスがトランズアクションイン
ターフェース210へデータを送ることを必要とする場
合には、それはカーネル220からメッセージ制御ブロ
ックを要求し且つ図5A−5Iに示したデータ仕様に従
って且つ本明細書に説明するようにTMCブロックをフ
ォーマットする。
【0043】ワード0に位置されているTMCブロック
310のビット8−15は「task_ID」である。
このフィールドは要求するタスクのID、即ち図3に示
したタスクのうちの1つを識別するために使用される。
それはトランズアクションインターフェース210によ
って使用されて識別されたタスクに対するトランズアク
ション要求のステータスをリターンする。又、ワード0
において、ビット7は「grp」ビットである。このビ
ットは、特定のTMCブロックが1つのグループにおい
て他のTMCブロックとリンクされているか否かを表わ
す。ビット6は、トランズアクションインターフェース
210がサブアクションを完了した場合に、完了ステー
タス又は確認が要求されることを表わすためのインジケ
ータ「conf」を有している。TMCブロックがリン
クされているTMCブロックのグループのメンバである
場合には、最後のTMCブロックにおける唯1つの「c
onf」ビットは1へセットすべきである。ワード0の
ビット5は、アボート(中止)機能が受取られた場合を
表わすために使用される。「abrt」ビットを有する
TMCブロックは処理されることはない。ビット4にお
ける「dta」ビットは、それがTMCブロック310
において送信しているデータがカプセル化されているデ
ータであることを表わすために要求するタスクによって
使用される。ワード0のビット0−3における「tra
nsaction_count」はトランズアクション
インターフェース210が未処理のトランズアクション
要求の数を追跡することを可能とする。トランズアクシ
ョンインターフェース210が直列バスへデータパケッ
トを送るたびに、それはtransaction_co
untをインクリメントさせる。トランズアクションイ
ンターフェース210がデータパケットが送られたノー
ドからトランズアクション応答を受取るたびに、トラン
ズアクションインターフェースはtransactio
n_countをデクリメントさせる。このように、ト
ランズアクションインターフェース210は、常に、そ
れが待機している未処理のトランズアクション応答が幾
つあるかを知得している。
【0044】TMCブロック310のワード1の全体は
「login_ID」フィールドを有している。これは
その特定のログインIDを有するイニシエータによって
アボートコマンドが送られた場合にどのTMCブロック
をアボート即ち中止すべきかを決定することを助けるた
めにトランズアクションインターフェース210によっ
て使用される。ワード2において、ビット11−15及
び3−7は後で使用するために予約されている。ビット
8−10は「retry_count」フィールドを識
別し、そのフィールドはエラーが宣告される前にトラン
ズアクションインターフェース210は何回データを送
るための試みを行うべきかを特定する。又、ワード2に
おいて、ビット0−2は、どの速度で1394バスが動
作するかを特定する。このフィールドにおける0の値は
S100を表わし、1はS200を表わし、且つ2はS
400を表わす。残りの使用可能なデータ値、即ち値3
−7はその他の1394仕様が採用される場合に特定さ
れる。
【0045】TMCブロック310のワード3の全部は
「max_data_transferred_len
gth」である。このフィールドはデータパケットに対
する最大のデータ転送長を特定する。ワード4は「de
stination_ID」フィールドを特定し、それ
はこの特定のTMCブロックと関連しているデスティネ
ーション(宛先)アドレスを表わす。ワード5におい
て、ビット10−15は「transaction_l
abel」フィールドを特定する。このフィールドは要
求パケット及び回答パケットの両方において使用され
る。要求パケットにおいては、要求するタスクがこのフ
ィールドをブランクのままとし且つトランズアクション
インターフェース210はその要求を一意的に識別する
このフィールド内に配置されるべき値を発生する。回答
パケットにおいては、要求するタスクがこのフィールド
をそれが回答するパケットのtransaction_
labelで充填する。この値は初期的な要求を送った
ノード上の別のトランズアクションインターフェースに
よって発生されており、且つその回答を未処理の要求に
対してマッチングさせるためにトランズアクションイン
ターフェースによって使用される。ワード5において
は、ビット8−9は予約されている。ビット4−7は
「transaction_code」を特定する。こ
れらのコードは表1に示したものと同じである。ワード
5のビット0−3は優先度を設定することを可能とする
が、このフィールドはバックプレーンにおいてのみ意味
を有しケーブル環境において意味を有するものではな
い。そのデータの残部、即ちTMCブロック310のワ
ード6−30はトランズアクションインターフェース2
10へ送られるパケットのタイプに依存する。異なるパ
ケットはトランズアクションインターフェースによって
どのタイプのトランズアクションが要求されるかに依存
して、例えばデータブロックに対する書込要求、データ
ブロックに対する読取要求等に依存して異なる。図5B
−5IはTMCブロック310内において使用するため
にパケット依存性データの異なるタイプを示している。
【0046】図5Bは、TMCブロック310の「dt
a」ビットが0にセットされる場合の、データブロック
パケットに対する書込要求又はデータブロックパケット
に対する読取要求に対するパケット情報312を示して
いる。「dta」ビットを0にセットすることは、送信
されたデータがTMCブロック内にカプセル化されてお
らず、そうではなく、そのデータはデータバッファ内に
あることを表わす。図5Bのパケット依存性情報312
は、タスクがホストへデータを送ること又はホストから
データを読取ることを所望する場合に使用される。実際
のデータはデータバッファ内にあり且つTMCブロック
パケット内にはないので、データそれ自身ではなく殆ど
の場合にアドレスが送られる。例えば、ワード6−8は
ホストに対してどこにデータを書込むべきであるか又は
ホストからどこのデータを読取るべきかのオフセットア
ドレスを有している。ワード11及び12はペイロード
バッファの開始アドレスを表わし、一方ワード13及び
14は全ペイロードが幾つのバイトを有するかを表わ
す。上述した如く、1394バスの速度に依存してデー
タパケットがどれ程大きくなることが可能であるかの最
大寸法が存在している。S100においては、データブ
ロック当たりの最大データ転送長は512バイトに過ぎ
ない。読取又は書込要求はこれよりもかなり大きなもの
とすることが可能であり、数百倍又は数千倍大きなもの
とすることが可能である。パケット情報312内に維持
されているアドレス及びカウントデータはトランズアク
ションインターフェース210が以下に説明するように
どれ程のデータが送られた又は受取ったかを追跡するこ
とを可能とする。
【0047】図5Cは、TMCブロック310の「dt
a」ビットが1にセットされる場合にデータブロックパ
ケットに対する書込要求に対するパケット依存性情報3
14を示している。「dta」ビットをセットすること
は、実際に送信中のデータがワード15−30内におけ
るTMCブロック310内においてカプセル化されてい
ることを表わす。パケット依存性情報314内に格納さ
れているフィールドの残部は図5Bに示したものと同様
である。
【0048】図5Dはデータクワドレットに対する書込
要求のトランズアクションに対するパケット依存性情報
316を示している。上述したように、データクワドレ
ットは単に32ビットの情報を有するものであって、且
つこの要求はパケット情報316のワード9及び10内
に格納される。図5Eは書込応答パケットに対するパケ
ット依存性情報318を示している。書込要求に続いて
書込応答が発生される。読取応答と異なり、書込応答は
何ら書込まれたデータをリターンするものではないの
で、書込応答は書込が成功したか又はエラーが発生した
かを表わすことが必要であるに過ぎない。この情報はワ
ード6のビット12−15内に格納され、一方パケット
依存性情報318のその他のビットは全て予約されてい
る。図5Fはデータクワドレットに対する読取要求に対
してのパケット依存性情報320を示している。読取要
求はそれが読取ることを所望するデータのアドレスを有
するに過ぎないので、パケット依存性情報320におい
て要求される情報はこの場合には非常に短いものであ
り、ワード6−8を構成するに過ぎない。
【0049】図5Gはデータブロックに対する読取応答
に対してのパケット依存性情報322を示している。デ
ータブロックに対する読取応答は要求を発生したものに
対して大量のデータをリターンする。大量のデータが要
求されるので、直接メモリアドレス(DMA)チャンネ
ルが使用される。DMAチャンネルは当該技術分野にお
いて公知の如く、最小のオーバーヘッドでもって大量の
データを迅速に転送することを可能とする。このタイプ
のトランズアクションに対するパケット依存性情報32
2は、トランズアクションインターフェース210が以
下に説明するように読取応答においてどれだけのデータ
を送ったかを追跡することのメカニズムを与えている。
【0050】図5Hはデータクワドレットに対する読取
応答に対してのパケット依存性情報324を示してい
る。図5Gに示したデータブロックに対する読取応答と
異なり、データクワドレットに対する読取応答は非常に
短く、且つ全体がパケット情報324のワード9及び1
0内に納まる。図5Iはロック応答に対するパケット依
存性情報326を示している。1394仕様によって要
求されるように、ロックされたデータの古い値の4個の
ワードがロック応答と共に送られる。これらの古い値は
パケット情報326のワード11−14内に納められ
る。
【0051】図6は図3に示したトランズアクションハ
ードウエア205とトランズアクションインターフェー
ス210との通信チャンネルを示している。好適実施例
においては、トランズアクションインターフェース21
0は3つのキュー(待ち行列)332,334,336
のうちの1つにおいて図3のタスク及びサービスからT
MCブロックを受取る。それに対応して、トランズアク
ションハードウエア205は3個の送信ベイ、即ち送信
ベイ0、送信ベイ1、送信ベイ2を有している。これら
の送信ベイは、典型的に、ハードウエアで実現され、例
えば、前述したリンクチップにおいて実現されている。
ハードウエアレジスタはトランズアクションハードウエ
ア205とトランズアクションインターフェース210
との間のインターフェースとして作用する。更に、夫々
の送信ベイに関連してDMAチャンネルが存在してい
る。これらのDMAチャンネルは大量のデータを搬送す
るために使用され、例えば、DMAチャンネルを介して
送られる各データブロックは前述した如く1394バス
の速度によって許容される最大のものである。このこと
は少量のデータ(例えば、16バイト)を送信するもの
であり且つ1394バスの速度がどのようなものであっ
ても同一の寸法である送信ベイと対比される。送信ベイ
2にとって独特なことはペイロードデータ送信ベイと呼
ばれる付加的なハードウエアが設けられていることであ
る。このペイロードデータ送信ベイは、トランズアクシ
ョンインターフェース210が1394バスを介してイ
ニシエータに対しロック応答を送る場合に使用される。
ペイロードデータ送信ベイは制限されたデータを搬送す
ることが可能であるに過ぎない送信ベイ2と同時に13
94バス上に付加的なデータを配置させることを可能と
する。それは、送信ベイのうちの1つの中に納まるより
も多いものであるがDMAチャンネルを充填するのに充
分に大きなものではないデータを1394バス上のノー
ドへ送らねばならない場合に使用される。
【0052】更に、トランズアクションハードウエア2
05は受信ベイを有しており、そこではトランズアクシ
ョンインターフェース210が位置しているノードに対
して宛先としているパケットがトランズアクションハー
ドウエア205によって受信される。これらのパケット
はトランズアクションインターフェース210によって
読取られ且つ前述したようにDMCブロック338を要
求し且つそれを充填することにより図3の適宜のタスク
に対して経路付けされる。
【0053】図6に示した好適実施例においては、トラ
ンズアクションインターフェース210は3個の送信ベ
イをサポートしている。各送信ベイは、特定の要求機能
を受取るそれ自身の夫々のTMCキュー(待ち行列)を
有している。TMCキュー(待ち行列)332,33
4,336は優先度が異なっており、即ち、トランズア
クションインターフェース210のサービスを要求する
図3のタスクはそのTMCブロックをその要求の優先度
に対して適切なキュー(待ち行列)内に配置させる。送
信ベイ0及び対応するキュー(待ち行列)0は時間的に
臨界的でない要求、例えば、ホストに対する又はホスト
からの通常のデータ要求に対して使用される。送信ベイ
1及びそれに対応するTMCキュー(待ち行列)1は短
い時間的に臨界的でない要求に対して使用され、例え
ば、後に説明するように、ホストからの頁テーブルの読
取等に対して使用される。最後に、送信ベイ2及びそれ
に対応するキュー(待ち行列)2は例えば分割トランズ
アクション応答要求等の時間的に臨界的な要求に対して
使用される。分割トランズアクション応答要求は、例え
ば、イニシエータからのCSR書込又はCSR読取要求
において使用される。ローカルノードがCSR書込又は
CSR読取に応答している場合には、最初に、そのCS
R読取又は書込が未処理であることのアクノレッジメン
ト即ち肯定応答がイニシエータへ送られる。それは分割
トランズアクションの最初のアクション即ち動作であ
る。アクノレッジメント即ち肯定応答が送られた後に、
CSR書込又は読取のアドレスがフェッチ管理タスク2
15において検証され、次いで、応答がイニシエータへ
送られる。アクノレッジメント即ち肯定応答が送られる
時と実際のデータが送られる時との間には最大時間仕様
が存在しているので、これらの分割トランズアクション
は最も高い優先度を受取る。従って、送信ベイ2及び対
応するキュー(待ち行列)2は特にこの目的のために使
用される。
【0054】キュー即ち待ち行列のうちの1つからTM
Cブロック310において受取られたデータを1394
バス上へ送るべく行われる準備は以下のようにして実施
される。最初に、トランズアクションインターフェース
210がそのキュー(待ち行列)において受取られたT
MCブロックをデコードして1394バスへ送られるべ
きデータの量及び種類を決定する。次いで、そのデータ
はパケットヘッダ内にフォーマットされ、必要な場合に
は、1394バス仕様に従ってデータパケットにフォー
マット化される。データの量が1つのデータブロックに
おいて送ることが可能なものよりも大きい場合には、ト
ランズアクションインターフェース210は第一データ
ブロックを用意し、それを適宜のDMAチャンネル内へ
ロードし、そこでトランズアクションハードウエア20
5は第一データブロックを1394バス上に配置させ
る。その後のデータブロックは、要求されたデータの量
全てがイニシエータへ送られるまで、逐次的に用意され
且つDMAチャンネル内へロードされる。データブロッ
クがトランズアクションハードウエア205のDMAチ
ャンネル内へロードされる時と次のデータブロックが同
じDMAチャンネル内へロードすることが可能な時との
間には遅延時間が必ず存在している。トランズアクショ
ンハードウエア205のDMAチャンネルがロードされ
る時及び再度新たなデータを受け付けるために自由であ
る時との間の遅延期間は短いものであるが、多数の遅延
期間が寄せ集まるとトランズアクションインターフェー
ス210から1394バスへの効率的なデータ転送を阻
止する。そのために、トランズアクションインターフェ
ース210は、現在使用中でないトランズアクションハ
ードウエア205のその他の送信ベイ及びDMAチャン
ネルを使用するように設計されている。
【0055】このトランズアクションハードウエア20
5の複数個のDMAチャンネルを使用することが可能で
あることは、時間を節約している。何故ならば、それは
データをトランズアクションハードウエア205のDM
Aチャンネル内へ配置させる時から次のブロックのデー
タを配置させることが可能である時までの全体的な遅延
時間を減少させるからである。例えば、10個のブロッ
クのデータを1394バスへ送るためにトランズアクシ
ョンインターフェース210のキュー即ち待ち行列のう
ちの1つを介して要求が来るものと仮定する。1つのキ
ュー(待ち行列)から受取った各ブロックのデータがそ
のキューの夫々のDMAチャンネルを介して送られるこ
とが必要とされる場合には、10個全てのブロックを送
るためには少なくとも9個の遅延期間が必要とされる。
DMAチャンネルが最初のデータブロックに対してオー
プン即ち開かれていると仮定すると、そのDMAチャン
ネルを介して第一データブロックを送る上で遅延時間は
存在しない。然しながら、第一データブロックを送るこ
とと第二データブロックを送ることとの間において第一
遅延期間が発生する。第二データブロックを送ることと
第三データブロックを送ることとの間において第二遅延
時間が発生し、且つ10番目のデータブロックを送るま
で以下同様である。本発明のトランズアクションインタ
ーフェース210は任意のキュー(待ち行列)から受取
られたデータブロックがトランズアクションハードウエ
ア205の任意の使用可能なDMAチャンネルを利用す
ることを可能とする。前の例を使用すると、トランズア
クションインターフェース210から10個のデータブ
ロックを送らねばならないと仮定する。又、3個のDM
Aチャンネルの全てが使用可能であると仮定すると、第
一データブロックはそれを介してデータ送信要求が受取
られたキュー(待ち行列)に関連するDMAチャンネル
内にロードされる。トランズアクションインターフェー
ス210がトランズアクションハードウエア205のD
MAチャンネルがそのデータを1394バス上へ送るこ
とを待機している間に、トランズアクションインターフ
ェースは、その他のDMAチャンネルが使用可能である
かを判別するためのチェックを行う。そうである場合に
は、これらのDMAチャンネルはすぐさまロードされ
る。トランズアクションハードウエア205のDMAチ
ャンネルがロードされるや否や、データブロックは13
94バスを介して送られる。データをDMAチャンネル
内へロードすることとDMAチャンネルが次に続くブロ
ックでロードされる準備がなされていることをトランズ
アクションハードウエア205から表示を受取ることと
の間に未だ遅延時間が存在しているが、本発明トランズ
アクションインターフェース210は全体的な遅延時間
の量を3倍程度減少させる。トランズアクションインタ
ーフェース210が、DMAチャンネルが再度使用可能
であることの通知を受取ると、ブロック4,5,6がロ
ードされる。第二遅延時間に続いて、ブロック7,8,
9がロードされ且つ送られる。1つの付加的な遅延に続
いて、ブロック10が関連するDMAチャンネル内にロ
ードされ且つ送られる。比較として、単に1つのDMA
チャンネルを使用して10個のブロックを送る場合には
最小でも9個の遅延時間のペナルティを有するものであ
るが、この例におけるように使用可能なDMAチャンネ
ルの全てを並列的に使用することは遅延時間を3(ブロ
ック3の後の1つと、ブロック6の後の1つと、ブロッ
ク9の後の1つ)へ制限することが可能である。
【0056】トランズアクションハードウエア205の
全てのDMAチャンネルはトランズアクションインター
フェース210によって必要とされる場合に必ずしも使
用可能であるとは限らない。然しながら、使用可能であ
る場合にはフリー即ち自由なDMA資源を使用すること
を可能とするダイナミックシステムを使用することは、
トランズアクションハードウエア205を可及的に最も
効率的な態様で使用することになる。
【0057】トランズアクションインターフェース21
0の動作に対するスタンダードの手順は、各夫々のTM
Cキュー(待ち行列)332,334,336がそれ自
身の送信ベイを使用することであり、即ちキュー(待ち
行列)0が送信ベイ0を使用し、キュー(待ち行列)1
が送信ベイ1を使用し、且つキュー(待ち行列)2が送
信ベイ2を使用する。然しながら、前述したように、ト
ランズアクションインターフェース210は、DMAチ
ャンネルがそれら自身のキュー(待ち行列)によって使
用されていない場合にそれらのキュー(待ち行列)がト
ランズアクションハードウエア205の他のDMAチャ
ンネルを使用することが可能である場合にはより一層効
率的なものとすることが可能である。好適実施例におい
ては、単に1つのペイロード送信ベイが存在するに過ぎ
ず、且つキュー(待ち行列)に関連している。従って、
ペイロードデータ送信ベイを使用するトランズアクショ
ンインターフェース210を介して送られるデータはキ
ュー(待ち行列)2(336)を介して送られねばなら
ない。キュー(待ち行列)0又はキュー(待ち行列)1
と関連するハードウエアはペイロードデータ送信ベイを
有するものではないので、ペイロードデータ送信ベイを
利用するメッセージは送信ベイ2を介して送られねばな
らない。トランズアクションインターフェース210の
好適実施例及びそのトランズアクションハードウエア2
05との相互接続の説明は単に例示的なものに過ぎず、
種々の変形例は本発明の範囲内に含まれるものであるこ
とを理解すべきである。例えば、キュー(待ち行列)及
び送信ベイの数は任意の数とすることが可能であり、且
つトランズアクションインターフェース210に対して
使用可能な資源及びハードウエアによってのみ制限され
る。更に、1つを超える数の送信ベイがペイロードデー
タ送信ベイを有することが可能であり、その場合にはこ
れらのタイプのトランズアクションをキュー(待ち行
列)のうちの任意のものへ送ることを可能とする。
【0058】図7Aはキュー(待ち行列)のうちの1つ
を介してどのようにしてデータがTMCブロック310
におけるトランズアクションインターフェース210へ
供給され且つ究極的に送信ベイへ送られるかを示してい
る。図7Aに示した例においては、要求するタスクはト
ランズアクションインターフェース210がDMAチャ
ンネル又はペイロードデータ送信ベイではなく送信ベイ
のみを使用してデータを送信することを依頼する。タス
クがトランズアクションインターフェース210が非常
にわずかなデータを送る場合に送信ベイのみを使用して
データを送ることを要求する。何故ならば、送られるデ
ータ全てが非常に短いパケットデータ内に納まらねばな
らないからである。このために、送信ベイのみを使用す
るタイプの要求は書込応答要求又はデータクワドレット
に対する読取要求である。これらの要求に対して図5A
のTMCブロックのワード6−30内に包含されるパケ
ット依存性データを、夫々、図5E及び図5Fに示して
ある。要求するタスクはこれらの図に示した送信ベイ情
報をTMCブロック310内に書込む。次いで、トラン
ズアクションインターフェース210はその送信ベイ情
報を使用可能な送信ベイ内にロードし且つトランズアク
ションハードウエア205におけるトリガビットをセッ
トする。このトリガビットはトランズアクションハード
ウエア205内に組込まれ且つ送信ベイ内に包含されて
いるデータをいつ1394バスへ送るべきかを決定する
ためにトランズアクションハードウエアによって使用さ
れる。上述した如く、TMCブロック310からの情報
がロードされる特定の送信ベイは、どの送信ベイが使用
可能であるかに依存する。最初に、それを介して特定の
TMCブロックが送られたキュー(待ち行列)と関連す
る送信ベイが使用可能であるかチェックされる。その送
信ベイが使用可能である場合には、それが使用される。
そうではなく、その関連する送信ベイがビジーである場
合には、残りの送信ベイが使用可能であるかチェックさ
れる。それらの送信ベイのうちの別の1つが使用可能で
ある場合には、その使用可能な送信ベイが使用される。
このことは、トランズアクションインターフェース21
0が効率的な態様でデータを1394バスへ送ることを
可能とする。その送信ベイにおけるデータが1394バ
スへ送られると、そのデータが送られたノードから該デ
ータが受取られたことを表わす応答が送られる。次い
で、トランズアクションインターフェース210は送信
することを所望した情報が実際に送られたことの確認通
知を要求するタスクへ送る。
【0059】図7Bは送信ベイとペイロードデータ送信
ベイの両方を使用する送信要求を示している。ペイロー
ドデータ送信ベイを使用するこのタイプの要求は139
4仕様からのロック応答である。この応答に対するトラ
ンズアクションコードは表1にリストしてある。ロック
応答に対するTMCブロック310のパケット情報は図
5Iを参照して説明した。特に、ペイロードデータ送信
ベイ内に包含されるデータはTMCブロック310のワ
ード11−14においてトランズアクションインターフ
ェース210へ送られる。トランズアクションインター
フェース210がロック応答に対する要求を受取ると、
それは同時的に送信ベイ情報を送信ベイ内へロードし且
つその送信データをペイロードデータ送信ベイ内にロー
ドし、次いでトランズアクションハードウエア205に
おけるトリガビットをセットしてデータを1394バス
を介して送る準備がされていることをトランズアクショ
ンハードウエアに対して表示する。上述した如く、ロッ
ク応答に対する要求はキュー2(336)を介して送ら
れねばならない。何故ならば、送信ベイ2はペイロード
データ送信ベイを有する唯一の送信ベイだからである。
【0060】図7Cはデータブロックに対する書込要
求、読取要求又は読取応答内に含まれるデータがどのよ
うにして要求するタスクからトランズアクションインタ
ーフェース210へ且つ1394バスへ送られるかを示
している。要求するタスクは図5B及び5Gに示したこ
とにしたがって、TMCブロック310のパケット依存
性情報をデータで充填する。図5Bを参照すると、図7
CにおけるTMCブロック310の送信ベイ情報を構成
している情報のいくらかがワード6−10内に包含され
ている。バッファ開始アドレスがワード11及び12内
に包含されており且つバイト単位でのデータの全部の量
がワード13及び14において送られる。この情報が与
えられると、トランズアクションインターフェース21
0は送信ベイ内にロードされるべき第一パケットヘッダ
及び第一データブロック、即ちデータブロック1を組立
てる。このデータブロックは1394バスの速度によっ
て制限されるが、1つのパケット内において送ることが
可能であるだけのデータを包含する。要求するタスクは
図7Cに示したようにTMCブロック310における最
大ペイロード寸法を送る。トランズアクションインター
フェース210がトランズアクション要求を完了するの
に必要なデータブロックの全てをフォーマットする。第
一データブロックは第二データブロックと同じく最大の
許容可能な寸法を送り、且つ3番目は、要求するタスク
によって送られるデータの全てがデータブロック内に取
り入れられるまでである。特定の要求からのデータを含
む最後のデータブロックであるデータブロックnは(ペ
イロードの全寸法−(n×最大ペイロード寸法))バイ
トを有している。上述した如く、データブロック1,
2,nは最も効率的な態様でトランズアクションハード
ウエア205を介して送られる。
【0061】要求するタスクが非連続的なメモリ位置へ
データを送る場合、即ちデータが断片化されたメモリへ
送られる場合には、要求するタスクは頁テーブルにおけ
る各セグメント当たり1個のTMCブロックをフォーマ
ットする。TMCブロックをフォーマットする前に、要
求するタスクは断片化されたメモリに対するマップとし
て頁テーブルを要求する。従って、各頁テーブルセグメ
ント当たり1個のTMCブロックである複数個のTMC
ブロックをフォーマットすることは要求するタスクの任
務である。頁テーブルセグメント内に含まれているデー
タがグループ化されている場合には、要求するタスクは
「grp」ビット、ワード7、ビット7乃至1をセット
して、別個のTMCブロックにおけるデータがリンクさ
れていることをトランズアクションインターフェース2
10に対して表示する。要求するタスクは、又、確認ビ
ット、ワード0、ビット6を最後の頁テーブルセグメン
トのTMCブロックにおいて1にセットする。従って、
トランズアクションインターフェース210は不連続な
メモリ位置を計算することは必要ではなく、その代わり
に、要求するタスクはトランズアクションインターフェ
ースに対してメモリ位置を供給する。
【0062】図8は複数個の送信ベイをサポートするた
めのトランズアクションインターフェース210とトラ
ンズアクションハードウエア205との間の通信をサポ
ートするために使用されるデータ構造を示している。デ
ータ構造350はトランズアクションハードウエア20
5における各送信ベイに対して1つの要素を有してい
る。各要素は、更に、3つのフィールド、即ち「現在実
行中のTMCキュー番号」、「リトライカウント」、
「デフォルトキューヘッドポインタ」に分割されてい
る。「現在実行中TMCキュー番号」フィールドは、各
特定の要素に対してどのキュー(待ち行列)が現在送信
ベイへアクセスしているかを表わす。例えば、送信ベイ
0が現在元々キュー1(334)を介してトランズアク
ションインターフェース210へ送られたデータ転送に
対する要求を実施している場合には、キュー(待ち行
列)1を表わす番号が要素0に対する「現在実行中TM
Cキュー番号」内にエンターされる。完了すると、この
フィールドは初期値で充填される。この初期値が存在す
ることを検知することは、特定の送信ベイが現在使用中
であるか否かを表わす。「リトライカウント」フィール
ドは、トランズアクションインターフェースがリトライ
即ち再試行を試みるたびにインクリメントされる。リト
ライカウントフィールドがワード2、TMCブロック3
10のビット8−10内に含まれている「retry_
count」と等しくなると、最早リトライは行われず
且つトランズアクションインターフェース210は現在
のトランズアクションを終了する。次いで、エラーが要
求するタスクに対して報告される。エラーが報告される
と、データ構造350のリトライカウントフィールドは
初期値にリセットされる。最後に、各要素のデフォルト
キューヘッドポインタが各要素に対する最後のフィール
ド内に格納される。このデータ構造350における値は
通常動作期間中にトランズアクションインターフェース
210によってアップデートされる。
【0063】トランズアクションインターフェース21
0がデータバスに沿ってパケットを送ると、それからデ
ータが送られたノードに対するトランズアクションハー
ドウエア205の受信ベイ部分によって応答が受取られ
る。この応答はトランズアクションインターフェース2
10における送信インタラプタハンドラによってデコー
ドされる。トランズアクションインターフェース210
が受取ることの可能な応答コードはアボート条件、トラ
ンズアクション完了、肯定応答受信、調停喪失、肯定応
答ミス及びサブアクションギャップである。これらの応
答コードはトランズアクションインターフェース210
がどのような応答を要求するタスクに対して行うべきか
を決定するためにワード0、TMCブロック310のビ
ット0−3に位置されている「transaction
_count」と結合して使用される。「transa
ction_count」エントリは特定のTMCブロ
ックに対する未処理のトランズアクション要求の数を記
録する。例えば、要求するタスクが別のノードに対して
10個のブロックを送る場合には、各ブロックがトラン
ズアクションハードウエア205によって送られた後
に、「transaction_count」が1だけ
インクリメントされる。トランズアクション応答がその
TMCブロックに対して受取られるたびに、「tran
saction_count」は1だけデクリメントさ
れる。従って、TMCブロック310内の「trans
action_count」フィールドが0以外の何か
である場合には、1394バス上のノードに対してパケ
ットが送られたが応答が受取られていないことを意味す
る。
【0064】トランズアクションインターフェース21
0の送信インタラプトハンドラがアボート条件を表わす
トランズアクション応答を受取ると、TMCブロック3
10に対する「transaction_count」
フィールドがチェックされる。「transactio
n_count」が0であり、全ての送信したパケット
が考慮されていることを表わす場合には、トランズアク
ションインターフェース210に対するキュー(待ち行
列)における現在のTMCブロックが取除かれる。アボ
ート条件応答が受取られたが「transaction
_count」が0より大きい場合には、トランズアク
ションインターフェース210は未処理のトランズアク
ション応答の全てを受取ることを待機し、即ち、「tr
ansaction_count」が0と等しくなるま
で待機する。「transaction_count」
が0と等しくなると、現在のTMCブロック310がト
ランズアクションインターフェース210のキュー(待
ち行列)から取除かれる。トランズアクション応答が、
そのトランズアクションが完了したことを表わす場合に
は、TMCブロック310の「transaction
_count」及びペイロードバイトカウントフィール
ドがチェックされる。ペイロードバイトカウントが0よ
り大きい場合には、パケットが送られるべく残ってお
り、且つトランズアクションインターフェース210は
継続して次のデータパケットを送る。ペイロードバイト
カウントが0であるが「transaction_co
unt」が0より大きい場合には、トランズアクション
インターフェース210は「transaction_
count」が上述した如く0へリターンするのを待機
する。ペイロードバイトカウントも「transact
ion_count」も0である場合には、その要求は
完了しており且つトランズアクションインターフェース
210はそのトランズアクションがエラーなしで完了し
たことの応答を要求するタスクへ送る。
【0065】トランズアクション応答が、肯定応答が受
取られたことである場合には、トランズアクションイン
ターフェース210はそのトランズアクションがエラー
なしで完了したことを要求するタスクに知らせる。トラ
ンズアクション応答が、バス上での調停が喪失されたこ
とを表わす場合には、トランズアクションインターフェ
ース210はトランズアクションが完了したがエラーが
発生したことを要求するタスクに知らせる。トランズア
クション応答が、肯定応答がミスしているか又はサブア
クションギャップが大き過ぎることを表わす場合には、
リトライカウントフィールドがチェックされる。データ
構造350のリトライカウントフィールドがワード2の
「retry_count」、TMCブロック310の
ビット8−10の限界未満である場合には、トランズア
クションインターフェース210はそのトランズアクシ
ョンのリトライ即ち再試行を試みる。逆に、リトライカ
ウントがリトライ数に対する「retry_coun
t」限界以上である場合には、要求するタスクに対して
エラーが報告される。
【0066】上述した如く、トランズアクションハード
ウエア205は受信ベイを有している。受信ベイは13
94バスからのデータパケットを受付け且つ図3に示し
たどのタスクがデータパケットからのデータを受取るべ
きかを決定する。図9は、トランズアクションハードウ
エア205の受信ベイにおいて受信パケットが受取られ
た場合の実行の流れ360を示したフローチャートであ
る。この実行の流れはデータパケットが受取られた場合
に活性化するインタラプトサービスルーチンを介して実
行される。時間において予測不可能なイベントが発生す
る場合にインタラプトサービスルーチンを使用すること
は当該技術分野において公知である。ステップ362に
おいてトランズアクションハードウエア205の受信ベ
イにおいて1394バスからデータパケットが受取られ
る。このデータはトランズアクションインターフェース
210における手順へ送られる。トランズアクションイ
ンターフェース210はカーネル220からメモリ制御
ブロックを要求する。メモリ資源が使用可能でない場合
には、トランズアクションインターフェース210はカ
ーネル220における特別のルーチンをコールする。カ
ーネル220はそれが次に使用可能なMCBをトランズ
アクションインターフェース210へ与えることを了知
する。このことは、上述したタスク及びサービスに対す
るメモリ資源割り当てと異なっている。何故ならば、他
のタスクがMCBを要求し且つどれも使用可能でない場
合には、どのタスクが次のMCBを受取るかの順番を決
めるリストが維持されるからである。好適実施例におい
ては、トランズアクションハードウエア205において
1個の受信ベイが存在するに過ぎないので、トランズア
クションインターフェース210は、受信ベイ内にデー
タが存在する場合には、その他の全てのタスクを上回る
優先度を獲得しカーネル220から次に使用可能なメモ
リ制御ブロックを受取る。該データが受信ベイ内にあり
且つどのMCBも使用可能でない間は、その他のデータ
パケットはトランズアクションハードウエア205の受
信ベイハードウエアによって受取ることは不可能であ
る。
【0067】MCBがステップ364において成功裡に
割り当てられると、トランズアクションインターフェー
ス210はデータパケット内をチェックしてローカルノ
ードのどのメモリ位置をアクセスすることが所望されて
いるかを決定する。2つの異なるタイプの操作に対する
アドレスが維持される。第一に、デスティネーション
(宛先)オフセット(受信されたパケットによって送ら
れる)がステップ368においてフェッチエージェント
アドレスのテーブルに対してマッチングされる。該アド
レスがマッチ即ち一致する場合には、FMCブロックが
要求され、トランズアクションインターフェース210
によって充填され、次いで図3のフェッチ管理タスク2
15がステップ370においてスケジューラ220を介
してスケジューリングされる。スケジューリングされる
と、トランズアクションインターフェース210はその
他のデータを受付けるためにステップ372において受
信ベイをクリアする。ステップ374において、トラン
ズアクションインターフェース210の受信要求ハンド
ラがインタラプトからリターンし且つ処理を継続して行
う。
【0068】その代わりに、ステップ368が、フェッ
チエージェント操作を受取らなかったことを表わす場合
には、受取ったデータパケットのデスティネーションオ
フセットがステップ376においてターゲットの管理エ
ージェントレジスタに対してマッチングされる。そのデ
ータパケットが管理エージェント書込動作である場合に
は、MMCブロックがカーネル220から要求され且つ
図3の管理エージェントタスク225がステップ378
においてスケジューリングされる。管理エージェントタ
スク225がステップ378においてスケジューリング
されると、受信ベイがステップ372においてクリアさ
れ且つインタラプトサービスルーチンはステップ374
においてリターンする。
【0069】その代わりに、デスティネーションオフセ
ットがフェッチエージェントアドレス及び管理エージェ
ントレジスタの両方の範囲外に該当する場合には、パケ
ットがCSR動作であると仮定される。従って、ステッ
プ380において、SMCブロックがカーネル220か
ら要求され且つ図3の直列バス管理タスク325がスケ
ジューリングされる。再度、受信ベイがステップ372
においてクリアされ且つインタラプトサービスルーチン
がステップ374においてリターンする。トランズアク
ションインターフェース210のインタラプトサービス
ルーチン部分はデータパケット内に受取られたデータの
有効性をチェックするものではない。その代わりに、イ
ンタラプトサービスルーチンは以下に説明するようにそ
れ自身のデータチェッキングを実施する適宜のタスクの
スケジューリングを行う。
【0070】次に、図3に示したタスクの特定のインス
タンスの幾つかについて説明すると、管理エージェント
タスク225はイニシエータからの管理型要求に応答す
る。イニシエータノードによって送られた管理エージェ
ントCSR書込に応答して、管理エージェントタスク2
25はイシニエータから管理ORBをフェッチし且つ次
いでORB機能を実行する。ORB機能の例としては、
ログイン、パスワード設定、再接続、タスク終了等があ
る。管理エージェントタスク225がイニシエータへ通
信せねばならない場合には、それはトランズアクション
インターフェース210の送信部分を使用する。
【0071】管理エージェントタスク225は、イニシ
エータへデータを送るタスクの後に、該タスクは、次い
で、トランズアクションインターフェース210からの
通知があるまで中断状態となる。トランズアクションイ
ンターフェース210がイニシエータとのデータトラン
ズアクションを完了すると、トランズアクションインタ
ーフェースはスケジューラ220に対してシステムコー
ルを行うことにより管理エージェントタスク225をウ
ェイクアップさせる。次いで、管理エージェントタスク
225はそのタスクに対する管理ORBの実行を継続し
て行う。完了すると、管理エージェントタスク225は
そのキュー(待ち行列)のトップ即ち一番上からMMC
ブロックを廃棄し、カーネルをコールしてMMCブロッ
クをフリー即ち自由なメモリプールへリターンさせ、且
つ、存在する場合には、そのキュー(待ち行列)内の次
のMMCブロックに関しての動作を開始する。管理OR
Bはログインコマンドを包含しており、管理エージェン
トタスク225はOMCブロック及びログイン記述子リ
ストを形成する。OMCブロック及びログイン記述子リ
ストはイニシエータがログアウトした後に除去される。
【0072】アプリケーションタスク275は1394
バス上のノードのうちの1つにおいて動作するアプリケ
ーション、例えば、高速プリンタ、高速格納部(記憶
部)又はオーディオビジュアルアプリケーションを表わ
している。アプリケーションは例えばハードディスクド
ライブ用のレデューストブロックコマンド(RBC)、
プリンタ用のプリンタワーキンググループ(PWG)又
はネットワーク用のインタ−ネットプロトコル(IP)
等の特定のアプリケーションプロトコルを使用してそれ
らの固有のプロトコルを介して通信を行う。幾つかのア
プリケーションは任意の与えられたノード上で一度に動
作することが可能である。各アプリケーションはそれに
対して送給されたコマンドをデコードし、有効性を評価
し、且つ実行する。各別個のアプリケーションは幾つの
アプリケーションが稼動しているかに基づく番号によっ
て識別される別個のキュー(待ち行列)を有している。
【0073】ORBフェッチタスク225は一度に1個
のイニシエータから複数個のコマンドORBを検索すべ
く機能し、カプセル化されているコマンドを実行するた
めにアプリケーションタスク275へパスする。全ての
新たなフェッチに対し、システムコールが行われて、そ
のフェッチを要求するAMCブロックアドレスを決定す
る。このブロックアドレスは、次いで、開始用のタスク
に対応するOMCブロック内に保存される。そのORB
アドレスはOMCブロックから検索される。次いで、ト
ランズアクションインターフェース210はコマンドO
RBを読取り且つリターンすべくスケジューリングされ
る。そのデータがエラーなしでやってくる場合には、A
MCブロックが発生され且つAMCキュー(待ち行列)
内に配置され、検索されたデータを適切なアプリケーシ
ョンタスクへ送る。幾つのイニシエータが存在している
かに依存して、ORBフェッチタスク255は公正なア
ービトレイション(調停)を与えるために各フェッチに
おけるORBの総数を制限する場合がある。
【0074】コマンドORB実行タスク245はアプリ
ケーションタスク275の代わりにデータ転送要求及び
ステータスデリバリ(送給)を与える。コマンドORB
実行タスク245はアプリケーションタスク275によ
ってCMCキュー(待ち行列)内に配置されたコマンド
メッセージ制御(CMC)ブロックから実行すべきコマ
ンドを検索する。コマンドORB実行タスク245は指
示された通りにデータ又はステータスを送るか又は検索
するためにトランズアクションインターフェース210
のスケジューリングを行う。完了すると、トランズアク
ションインターフェース210はコマンドORB実行タ
スク245をウェイクアップさせ、それは、次いで、O
RB実行のステータスをそれが作業を行っている特定の
アプリケーションタスク275に対して通知するか又は
要求されたデータを供給する。
【0075】フェッチ管理タスク215は2つの特別の
書込要求を処理する。いずれの場合においても、フェッ
チ管理タスク215はOMCブロック内のフィールドを
アップデートする。
【0076】最後に、非請求ステータスタスク265は
例え要求されていなくとも、ステータス信号を別のノー
ドにおけるイニシエータへ送るべく動作する。このタス
クは、例えば、そのノードをリセットする前にログイン
されたイニシエータに通知すべく動作する。
【0077】本発明の重要な特徴は、上述したタスクの
各々が予め定めた一連の命令に従って動作するというこ
とである。タスクは、それらの複雑性に依存して、1個
又は多数の論理状態を有する場合がある。各状態はその
タスクに対する一時的な停止用の場所を表わす。各タス
クは、その挙動が現在のデータ(そのMCB内に含まれ
ている)及びそのタスクの現在の状態から決定される順
序回路として考えることが可能である。ある状態にエン
ターした後に受取られる新たなデータに依存して、1つ
の状態にあるタスクは異なる状態へ変化する。その新た
なデータを受取った後に、その状態は更なるデータがそ
のタスクによって獲得されるまで現在の状態に留まるこ
とも可能である。
【0078】上述したタスクのような順序回路の動作は
ステートテーブル即ち状態図を使用して記述することが
可能である。状態図は順序回路の現在の状態及びそれが
次の状態へ進行するための条件をリストする。該条件が
満足されない限り、その順序回路は状態を変化させるこ
とはない。状態図の1つの例を図15A−15Eに示し
てあり、それらは上述した如く管理エージェントタスク
225に対する状態を示している。同様に、順序回路の
異なる状態は状態図に示すことが可能であり、例えば、
図11はコマンドORB実行タスク245の異なる状態
を示している。これらの状態図において、一般的には、
安定な状態は円として示され且つ1つの状態から別の状
態へ変化する条件は矢印として示される。又、逐次的な
マシンの初期状態を示すために典型的に何等かの表示が
使用される。この場合には、初期状態は二重の円で表わ
してある。
【0079】図11は図3において導入したコマンドO
RB実行タスク245に対する状態図400を示してい
る。上述したように、状態図上の円は定常状態を表わし
ており、且つ矢印は状態を変化するために必要な条件を
示している。上述したように、初期状態は二重円として
示してある。コマンドORB実行タスク245の場合に
は、初期データ状態は405として示してある。
【0080】上述したように、コマンドORB実行タス
ク245は、通常、アプリケーションタスク275と通
常1394バスの異なるノードに位置しているイニシエ
ータとの間でのデータ及びステータスのトランズアクシ
ョン即ちやり取りに関する動作を行う。前述したよう
に、コマンドORB実行タスク245は、CMCブロッ
クをフォーマットし且つそれをコマンドORB実行タス
クのキュー(待ち行列)内に配置させることによってア
プリケーションタスク275によってコールされる。そ
の特定のCMCブロックが該キュー(待ち行列)のヘッ
ド即ち一番上にある場合には、コマンドORB実行タス
ク245が初期状態405にエンターする。これは、図
11に示したように、初期データ転送状態及び初期ステ
ータス転送状態の両方である。
【0081】コマンドORB実行タスク245が最初に
行われねばならない決定は、CMCブロックがデータ転
送又はステータス転送動作を包含しているか否かであ
る。この情報はCMCブロック内に含まれており且つコ
マンドORB実行タスク245によって簡単にデコード
される。コマンドORB実行タスク245がデータ転送
のためにコールされていると、次にどの状態へ移行する
かを決定するためにCMCブロックから更なる情報を解
析せねばならない。CMCブロック内のデータが、頁テ
ーブルフェッチが要求されていることを表わす場合に
は、コマンドORB実行タスク245は頁テーブルフェ
ッチを実施し、次いで、状態415へ変化する。然しな
がら、頁テーブルフェッチが必要でない場合には、コマ
ンドORB実行タスクはデータの転送を開始し、且つ直
接的に状態410へ進行する。メモリ資源がフラグメン
ト即ち断片化されているか又は大きなブロックで使用可
能でない場合に、当該技術分野において公知の如く、頁
テーブルフェッチが要求される。頁テーブルフェッチは
コマンドORB実行タスク245によって達成され、そ
れはTMCブロックを要求し、それをブロック読取要求
を実施するのに必要なデータで充填し、次いでTMCブ
ロックをトランズアクションインターフェース210用
のキュー(待ち行列)内に配置させる。コマンドORB
実行タスク245はイニシエータからブロックの形態で
データを要求せねばならないのでブロック読取要求を実
施することが必要である。このブロックはコマンドOR
B実行タスク245のデータ転送を実施するために必要
な頁テーブルデータを包含している。2つの状態の間、
例えば状態405と状態416との間の矢印の上に示さ
れている円は、適宜のMCBが用意されねばならず且つ
他のタスク又はサービスのうちの1つがディスパッチャ
210を介してコールされていることを表わす。TMC
資源が使用可能でない場合、即ちメモリ資源に対するメ
モリ空間の全てがカ−ネル220によって割り当てられ
ている場合には、コマンドORB実行タスク245は状
態420へエンターし、そこで、それは適宜の資源を待
機する。該状態の殆どにおいて、付加的又は異なるデー
タが該タスクに対して供給されるまで、該タスクは更な
る動作から中断される。
【0082】中断された状態とは、中断されたタスクに
対するキュー(待ち行列)の現在トップ即ち一番上にあ
るMCBがそのキュー(待ち行列)のトップ即ち一番上
に留まることを意味している。中断されたタスクはその
タスクがタイムアウトするか又はカーネル220によっ
てウェイクアップされるまで中断された状態に留まる。
中断された状態にある間は、その中断されたタスクはカ
ウントダウンタイマを開始させる。与えられた時間期間
の後に、そのタイマはゼロに到達するまでデクリメント
される。カウントダウンタイマが0に到達すると、エラ
ー条件が発生される。このエラーはタイムアウトしたタ
スクをコールしたタスクに対して報告され且つ当該技術
分野において公知の如く、エラーログ内に格納すること
が可能である。そのエラーが壊滅的なものでない場合に
は、タイムアウトしたタスクは現在そのキュー(待ち行
列)のトップ即ち一番上にあるMCBを除去し、且つ次
に高いMCBに関しての動作を開始する。
【0083】図11に戻って説明すると、頁テーブルが
状態415においてフェッチされると、カーネル220
はコマンドORB実行タスク245をウェイクアップさ
せる。このことは、該タスクを動作可能なものとさせる
べくスケジューリングすることによって行われ、次いで
カーネル220はそのタスクをコールする。コマンドO
RB実行タスク245は、それが中断された時の状態を
記憶している。頁テーブルがフェッチされると、コマン
ドORB実行タスク245は、頁テーブル内に表示され
ている位置から所望のブロックのデータを要求する。こ
のステップは状態415と410との間の矢印として示
されている。上述した如く、この動作はTMCブロック
を要求すること、TMCブロックをデータで充填するこ
と、且つTMCブロックをトランズアクションインター
フェース210用の適宜のキュー(待ち行列)内に配置
することを包含している。上述した如く、このことはデ
ィスパッチャ220を使用するので、状態415と41
0との間の矢印は円を有している。メモリ資源がTMC
ブロックに対して使用可能でない場合には、コマンドO
RB実行タスク245は状態420にエンターし、そこ
でこのような資源を待機する。
【0084】コマンドORB実行タスク245は、状態
415から状態410へエンターする場合には、頁テー
ブルフェッチに続くデータ転送の後に状態410へエン
ターし、又、状態405から状態410へエンターする
場合には、読取/書込データ転送を実施した後に状態4
10へエンターする。状態410にある間に、コマンド
ORB実行タスクは、それが転送すべき付加的なデータ
を有しているか否かを決定する。上述した如く、アプリ
ケーションタスク275によって転送することが要求さ
れているデータの寸法が非同期データパケットに取付け
ることの可能な最大のデータブロックよりも大きい場合
には、転送すべき付加的なデータが存在している。状態
410から、コマンドORB実行タスク245はコール
を発生したタスクへリターンすることが可能であり、又
は、別の頁テーブルフェッチが必要であることが決定さ
れている場合には、再度処理を開始するために初期状態
405へ進行する。別の頁テーブルフェッチが必要であ
る場合には、上述した如く、状態405を介して状態4
15へエンターする。コマンドORB実行タスク245
がそのデータ転送を完了すると、そのタスクは状態41
0からコールを発生したタスクへリターンする。
【0085】コマンドORB実行タスク245はステー
タス転送を送る任務を果たすことも可能である。ステー
タス転送が要求されると、TMCブロックが要求され且
つ適宜のデータで充填される。次いで、TMCブロック
がトランズアクションインターフェース210用のキュ
ー(待ち行列)内に配置される。ステータス転送がコー
ルを発生したタスクによって要求されていることが確認
されない場合には、コマンドORB実行タスク245は
その機能を完了し且つコールを発生したタスクへリター
ンする。そうではなく、ステータス転送がコールを発生
したタスクによって要求されたことが確認されると、コ
マンドORB実行タスク245は状態410へ進行しそ
の確認を待機する。トランズアクションインターフェー
ス210から確認が来ると、コマンドORB実行タスク
245はコールしたタスクへリターンする。上述したよ
うに、メモリ資源がTMCブロックを割り当てるために
現在使用可能でない場合には、コマンドORB実行タス
クは状態420へ進行し、そこでこのような資源を待機
する。使用可能となると、そのステータスはトランズア
クションインターフェースを介して1394バス上の所
望のノードへ送られる。
【0086】各タスクが該タスクの幾つかに対し幾つか
の中断状態を包含する多数の状態を具備するステートマ
シンとして動作させることによって、トランスポートプ
ロトコルインターフェース200は一度に複数個のタス
ク、即ちマルチタスクを実施することが可能である。典
型的に、1394バス上の別のノードからデータが必要
であるために特定の機能の一部が中断状態に保持されて
いる場合には、その現在の機能の他の部分又は別の機能
が他のタスクのうちの1つによって動作させることが可
能である。このように、トランスポートプロトコルイン
ターフェース200によって同時に1つを超える数の機
能を実施することが可能である。更に、中断した状態を
有することによって、カーネル220は他のタスクを実
施することが可能であり、そのことはシステムの性能を
改善させる。タスクはステートマシンによって駆動され
るので、プロセサ時間はタスク間において公平に分布さ
れ最適化される。
【0087】図12はフェッチ管理タスク215に対す
る状態図430を示している。図12においては、更
に、本明細書において説明するように、フェッチ管理タ
スク215に対する実行の流れ450が示されている。
フェッチ管理タスク215は、レジスタのうちの1つが
以下に説明するようにアクセスされるべき場合に、直列
バス管理タスク235によってコールされる。更に、管
理エージェントタスク225はアボート条件及びリセッ
ト条件に対してフェッチ管理タスク215をコールす
る。最後に、トランズアクションインターフェース21
0は、1394バス上の別のノードによって指示される
場合に、フェッチ管理タスク215をコールすることが
可能である。
【0088】状態図430における初期状態は状態43
5である。フェッチ管理タスク215が究極的にトラン
ズアクションインターフェース210をコールすること
は確かなことであるので、TMCブロックはフェッチ管
理タスク215におけるその他の動作が実施される前に
カーネル220からすぐさま要求される。メモリ資源が
使用可能でない場合には、フェッチ管理タスク215は
状態440へエンターしてこのような資源を待機する。
資源がTMCブロックに対して使用可能となると、フェ
ッチ管理タスク215は点線で示した実行の流れ450
にエンターする。実行の流れ450内において、フェッ
チ管理タスク215内において発生するイベントが示さ
れている。これらのイベントはステートマシン自身の状
態ではなく、フェッチ管理タスク215のプログラムの
流れを示した表示である。初期的には、ステップ452
はフェッチ管理タスク215がFMCブロックからとら
れたCSR動作をデコードする場合である。上述したよ
うに、フェッチ管理タスク215が現在作業しているF
MCブロックはフェッチ管理タスク用の関連するキュー
内に配置されている。
【0089】CSRオペレーション即ち動作がステップ
452においてデコードされると、フェッチ管理タスク
215はどのCSRがアクセスされるかを、そのメモリ
位置に基づいて決定する。CSR動作は多数のレジスタ
のうちの1つへアクセスすることが可能であり、例え
ば、それはエージェント状態CSR454、エージェン
トリセットCSR456、ORBポインタCSR45
8、ドアベルCSR460又は非請求ステータスCSR
462に対するCSR動作とすることが可能である。
又、ステップ452から直接ステップ464へ進む矢印
によって示されるように、CSRは特定のメモリ位置と
マッチング即ち一致しない可能性もある。そのステップ
においては、動作要求、例えば読取又は書込要求がその
要求のイニシエータがホストにログインしたか否かを決
定するために有効化される。その動作がログインしたイ
ニシエータの読取要求である場合には、フェッチエージ
ェントレジスタがステップ466において読取られる。
その動作要求がログインしたイニシエータからの書込要
求である場合には、フェッチエージェントレジスタがス
テップ468において書込まれる。その動作が有効な読
取要求であるがホストがログインしていない場合には、
ボックス472に示したようなデフォルト値を包含する
読取デフォルトがそれを要求したものへ供給される。こ
れらのデフォルト値は使用されている特定のトランスポ
ートプロトコルによって規定され、例えば、SBP−2
トランスポートプロトコルにおいては、ログインしてい
ない要求するものからの有効な読取要求に対するデフォ
ルト値は全て0である。ステップ464において、規則
違反のために読取書込要求が拒否されると、例えば、イ
ニシエータがリードオンリメモリの位置への書込又はラ
イトオンリメモリ位置からの読取を行おうとする場合に
は、フェッチ管理タスク215の実行の流れ450は以
下に説明するようにオペレーション即ち動作474へ移
行する。更に、ログインされていないイニシエータが書
込要求を実施しようとする場合には、フェッチ管理タス
ク215はその要求を拒否し且つ実行の流れをステップ
464から直接的にステップ474へ移動させる。ステ
ップ474において、読取又は書込エージェントレジス
タ又は読取又は書込要求が拒否された場合にはエラーメ
ッセージが状態435によって最初に要求されたTMC
ブロック内にパッケージ化される。次いで、そのTMC
ブロックはステップ476においてトランズアクション
インターフェース210のキュー(待ち行列)内に配置
される。
【0090】前と同じく、フェッチ管理タスク215
が、今キュー即ち待ち行列に配置されたTMCブロック
がトランズアクションインターフェース210用のキュ
ー(待ち行列)のヘッド即ち一番上にあることの通知を
フェッチ管理タスク215が受取ると、そのことはトラ
ンズアクションインターフェースが現在稼動中でないこ
とを意味する。従って、トランズアクションインターフ
ェース210が現在稼動中ではないので、トランズアク
ションインターフェースはステップ478においてカー
ネル220を介してスケジューリングが行われる。ステ
ップ476から、TMCブロックがTMCキュー(待ち
行列)内に配置された後に、ORBフェッチタスク25
5からのフェッチエンジンが開始されるか又は再開始さ
れねばならないか否かの決定が行われる。ORBフェッ
チタスク255に関して何等のアクションが必要でない
場合には、フェッチ管理タスク215は実行の流れ45
0のステップ476から初期のFMC状態435へ直接
的にリターンする。然しながら、ORBフェッチタスク
255が開始されるか又は再開始されねばならない場合
には、OMCブロックがステップ480に示されるよう
に発生されねばならない。前と同じく、OMCブロック
を形成するためにメモリ資源が使用可能でない場合に
は、フェッチ管理タスク215は状態485にエンター
し、そこで適切なメモリ資源に対して待機する。フェッ
チ管理タスク215が適切なメモリ資源を有している場
合には、OMCブロックはステップ482においてキュ
ー化即ち待ち行列化される。通常そうであるように、フ
ェッチ管理タスク215がORBフェッチタスク255
が既に稼動中でないことの通知を受取ると、ORBフェ
ッチタスクはステップ484においてスケジューリング
される。フェッチ管理タスク215がその実行の流れ4
50から初期のFMC状態435へリターンすると、そ
れはそれ自身のキュー即ち待ち行列をチェックして、稼
動を継続して行うか否かを決定する。フェッチ管理タス
ク215に対するキュー(待ち行列)内にエントリが存
在しない場合には、フェッチ管理タスクはシャットダウ
ンする。然しながら、フェッチ管理タスク215用のキ
ュー(待ち行列)内に付加的なエントリが存在している
場合には、次のエントリがデコードされ且つフェッチ管
理タスク215に対する処理は再度初期のFMC状態4
35において開始する。
【0091】図13はORBフェッチタスク255に対
する状態図500を示している。上述した如く、ORB
フェッチタスク255は一度に1つのイニシエータから
複数個のコマンドORBを受取り、且つカプセル化した
コマンドをアプリケーションタスク275内において動
作している特定の論理ユニット番号(LUN)へパスす
る。ORBフェッチタスク255は初期状態505で開
始する。その最初のアクションはコマンドORBフェッ
チを要求するAMCブロックアドレスを決定することで
ある。どのAMC資源も使用可能でない場合には、それ
は動作を開始する前にそれらが使用可能となるのを待機
せねばならない。そのブロックアドレスが既知である
と、TMCブロックが形成されて、コマンドORBがイ
ニシエータから検索されることを依頼する。前述したよ
うに、TMC資源が使用可能でない場合には、ORBフ
ェッチタスク255は状態510へ移動してこれらの資
源を待機する。該資源が使用可能であると、ORBフェ
ッチタスク255は状態515へ進行し、そこでコマン
ドORB応答を待機する。状態515において、コマン
ドORB応答が成功し且つ更なるコマンドORBが検索
されることが要求されない場合には、ORBフェッチタ
スク255はこの状態515を出ることが可能である。
然しながら、フェッチすべき更なるORBが存在する場
合には、ORBフェッチタスク255は初期状態505
へ進行して更なるORBをフェッチし且つ処理を継続し
て行う。
【0092】ORBフェッチタスク255に対するキュ
ー(待ち行列)はそれが循環型であるという点で独特で
ある。アプリケーションタスク内のどの1つのLUNも
トランスポートプロトコルインターフェース200の資
源を独占することがないように、公平なアービトレイシ
ョン即ち調停を可能とするために、任意の1つの時刻に
おいてフェッチされることが可能とされるコマンドOR
Bの最大数が存在している。この数はプログラム可能で
あり、且つ、典型的に、例えば3等のかなり小さい数に
設定され、従ってどのLUNもシステムを他のLUNを
排除してそれ自身のために接続させることはない。OM
Cブロックが最初に、例えば、10個のコマンドORB
を要求すると、ORBフェッチタスク255はその初期
の動作においてコマンドORBを3個フェッチする。そ
のOMCブロックは、7個の未処理のコマンドORB要
求と共に、該キュー(待ち行列)のトップ即ち一番上か
ら該キュー(待ち行列)の底部へ移動され、従って他の
OMCブロックを動作させることが可能となる。全部
で、10個のコマンドORBを要求したOMCブロック
はORBフェッチタスク255の初期状態505へ合計
で4回エンターすることとなり、最初の3回の各々にお
いては、3個のコマンドORBをフェッチし、且つ4番
目においては、1個のコマンドORBをフェッチする。
フェッチされると、ORBフェッチタスク255は状態
515となる。前述したように、フェッチすべき更なる
コマンドORBが存在しない場合には、ORBフェッチ
タスク255は状態515からそれをコールするタスク
へリターンする。
【0093】図14は非請求ステータスタスク265に
対する状態図を示している。前述したように、このタス
クはアプリケーション又はトランスポートプロトコルイ
ンターフェース200が位置しているノードがシャット
ダウンされていることの通知をイニシエータへ送る。状
態図520は、非請求ステータスタスク265が525
において初期状態を有していることを示している。非請
求ステータスタスク265の動作は、ホストのメモリ内
にデータを書込むことである。従って、1394バスに
沿ってホストのメモリへ送られるべきこのデータを有す
るTMCブロックが発生されねばならない。いつも通
り、どのメモリ資源もTMCブロックを発生するために
使用可能でない場合には、非請求ステータスタスク26
5は状態530へ進行し、そこでメモリ資源を待機す
る。TMCブロックが使用可能であると、そのステータ
スが送られ且つ非請求ステータスタスク265は状態5
35へエンターし、そこでエラーなしで1394バスに
沿ってステータスが送信されたことの確認を待機する。
非請求ステータスタスク265がそのステータスタスク
がエラーなしで送られたことが通知されると、非ステー
タスタスクは状態535から抜け出しそれをコールした
タスク即ち発信元のタスクへリターンする。
【0094】図15A−15Eは管理エージェントタス
ク225に対する状態変化決定テーブル550を示して
いる。管理エージェントタスク525が存在している現
在の状態は左側に示されており、一方管理エージェント
タスク225が移行する次の状態は決定テーブル550
の右側に示してある。状態は太線によって状態変化決定
テーブル550において互いに分離されている。状態変
化決定テーブル550の上部近くには管理エージェント
タスク225がその現在の状態から次の状態へ変化する
ために満足されねばならない条件が示されている。
【0095】上述したように、管理エージェントタスク
225はアクセス要求及びタスク管理要求を包含するイ
ニシエータからの管理要求を取扱う。一般的に、図4に
示したように、MMCブロックは管理ORB又はタスク
ORBを包含している。管理ORB又はタスクORBを
送ったイニシエータは、管理エージェントタスク225
がそのORBを受取ったことを陳述する応答を予測す
る。従って、管理エージェントタスク225の初期状態
は図15Aの状態変化決定テーブル550に示したよう
に、「管理エージェント書込」状態である。この管理エ
ージェント書込状態は最も上側の状態である。更に、
「ORB書込応答送信」の条件の下のボクッス内にxが
存在している。状態変化決定テーブル550は、管理エ
ージェントタスク225が管理エージェント書込状態に
あり且つORB書込応答送信条件が満足される場合に次
の状態が「ORB書込応答待機」の情報を供給する。管
理エージェントタスク225の1実施例においては、O
RB書込応答送信の条件は常にセットされており、従っ
て管理エージェントタスク225がその初期状態にエン
ターする場合には、それは、常にORB書込応答を送信
する。
【0096】前のタスクの場合のように、状態変化決定
テーブル550上において「自由なTMCブロックな
し」条件として示されるフリーな即ち自由なメモリ資源
が存在しない場合には、管理エージェントタスク225
に対する次の状態は「TMC資源待機」である。管理エ
ージェント書込状態から去るために他の2つの方法が存
在している。分割トランズアクションタイムアウトが存
在しており且つ別のMMCブロックが使用可能である場
合には、管理エージェントタスク225は現在のMMC
ブロックを廃棄し且つそのキュー(待ち行列)内の次の
MMCブロックへ移行する。分割トランズアクションタ
イムアウトは、管理エージェントタスク225がイニシ
エータへ書込中のデータがエラーなしでイニシエータに
よって受取られたことの通知を受取らない場合に発生す
る。この状態においては、管理エ−ジェントタスク22
5はそれがORBを受取ったことを表わす応答を送るだ
けであったので、このエラーに関して更なるアクション
を取ることは必要ではないが、1394バス上で問題が
あることを表わす場合がある。管理エージェントタスク
225の管理エージェント書込状態から抜け出る4番目
の態様は、分割トランズアクションタイムアウトが存在
しているがそのキュー(待ち行列)において更なるMM
Cブロックが使用可能でない場合である。これらの条件
が満足される場合には、管理エージェントタスクは何も
することが出来ず、カーネル220へリターンする。
【0097】状態変化決定テーブル550上で示されて
いる次の状態は「ORB書込応答待機」である。管理エ
ージェントタスク225がこの状態にあり且つ「ホスト
からの管理ORBフェッチ」に対する条件が満足される
場合には、エンターされる次の状態は以下に記載する
「ORBフェッチ待機」である。上述したように、フリ
ーなTMCブロックが使用可能でない場合には、次の状
態はTMC資源待機である。更に、上述したのと同様
に、「エラーなしでトランズアクション完了」の条件が
満足され且つ管理エージェントタスク225用のキュー
(待ち行列)内において更なるMMCブロックが使用可
能である場合には、管理エージェントタスクはその現在
のブロックを配置し且つ次のものに関する動作を開始す
る。管理エージェントタスク225がORBに対する要
求を送ろうとして失敗した場合には、「エラーでトラン
ズアクション完了」の条件が発生する。ORB書込応答
状態待機から抜け出る最後の態様は、トランズアクショ
ンがエラーで完了したが更なるMMCブロックが使用可
能でない場合であり、その場合には、管理エージェント
タスクはカーネル220へリターンする。
【0098】状態変化決定テーブル550から理解され
るように、多数の状態に対する「次の状態」において類
似性が存在している。それらについては上において充分
に説明したので、簡潔性を旨とするために、「TMC資
源待機」、「管理エージェント書込」、「(done、
即ち終了)」状態に対する遷移については管理エージェ
ントタスク225の状態の残部に対しての説明は割愛す
るが、標準状態遷移として言及する。
【0099】図15A上の状態変化決定テーブル550
に示されている3番目の状態は「ORBフェッチ待機」
状態である。この状態はORBフェッチタスク255か
らのORBフェッチを要求した場合に管理エージェント
タスク225によってエンターされる。TMC資源待機
を除いて、標準状態遷移が適用される。状態変化決定テ
ーブル550における「ORBフェッチ待機」状態は図
15Aの殆どと、図15Bの全てと、図15Cの殆どと
をカバーしている。然しながら、この状態はホストから
リターンする場合にORBからデコードすることが可能
な多数の機能に分解されている。ORBがホストからリ
ターンすると、管理エージェントタスク225はステー
タスをホストへ送り、管理エージェントタスクがORB
を受信したことを表わす。管理エージェントタスク22
5がそのORBをデコードした後に、それは解析され
て、機能を含むか否かを判別し、且つそうである場合に
は、どの機能であるかを判別する。それが「ログイン」
機能を含んでおり且つその条件が「EUI−64がホス
トから読取られるべき」を表わす場合には、管理エージ
ェントタスク225がエンターする次の状態は「ログイ
ンEUI待機」である。EUI−64はホストが維持す
るログイン識別子である。ORBフェッチ待機状態のロ
グイン機能に対して標準状態遷移が適用される。
【0100】ORBからデコードされた機能が「クエリ
ィログイン」であると、応答がホストへ送られ、且つ次
の状態は「クエリィログイン応答送信」である。いつも
の通り、フリーなTMCブロックが存在しない場合に
は、次の状態はTMC資源待機である。
【0101】ORBからデコードした機能が「パスワー
ド設定」及び「パスワード要求読取」条件がセットされ
ている場合には、このことは、ホストがパスワードを変
更することを望んでいることを表わし、従って管理エー
ジェントタスク225は「パスワード設定待機」状態へ
進行する。ORB機能が完了するが、エラーを有してい
る場合、例えば、パスワードが誤ったフォーマットであ
った場合には、管理エージェントタスクは存在する場合
に次に使用可能なMMCブロックへ移動する。ORB機
能がエラーなしで完了した場合に同一の結果が発生す
る。
【0102】図15Aに示した最後の機能は「ログアウ
ト」である。この機能のために送られることが必要なも
のは簡単な応答である。従って、管理エージェントタス
ク225が進行することが可能な状態は標準状態のみで
ある。
【0103】図15Bにおいて、1394バスがリセッ
トした後に「再接続」機能が送られる。この機能に対し
ては、管理エージェントタスク225はホストからのE
UI−64を再度読取る。標準状態遷移が適用される。
次の機能は「終了」である。管理エージェントタスク2
25はこの機能に応答して単にステータスを送り戻し且
つ標準状態遷移が適用される。次の機能は「タスク中
止」であり且つ図15Bに示した残りの機能、即ち「タ
スク中止セット」及び「タスククリアセット」に関連し
ている。従って、これらの機能については一緒に検討す
る。アボート(中止)コマンドが管理エージェントタス
ク225によって受取られ且つ管理ORBからデコード
されると、管理エージェントタスク225によってアプ
リケーションタスク275へ通知が送られてアプリケー
ションタスクからORBを除去する。このことは別の状
態遷移を必要とするものではなく、且つ管理エージェン
トタスク225の実行の流れの一部である。タスク中止
及びタスク中止セットの機能の場合には、それ以上のも
のが行われることはなく、且つ標準の次の状態以外の次
の状態は存在しない。タスククリアセット機能の場合に
は、非請求ステータスタスク265が喚起されてホスト
へメッセージを送る。フリーなUMCブロックが存在し
ない場合には、管理エージェントタスク225の次の状
態は「CTSUMCブロックを待機」である。
【0104】図15Cに示した次の機能は「論理ユニッ
トリセット」である。アプリケーションタスク275は
1つを超える論理ユニットを有している。ホストは論理
ユニットがリセットされたことが告げられねばならない
ので、非請求スターテスタスク265が使用される。フ
リーなUMCブロックが存在しない場合には、次の状態
は「論理ユニットリセットUMCブロック待機」とな
る。論理ユニットリセット機能に対するその他の状態は
標準状態である。
【0105】コマンドORBからデコードされた機能が
「ターゲットリセット」である場合には、1つの特定の
ターゲットに対する論理ユニットの全てがリセットされ
る。このことは、論理ユニットリセットに類似している
が範囲がより広い。標準状態遷移が適用され、UMCブ
ロックが使用可能でない場合には「ターゲットリセット
UMCブロック待機」の状態が付加される。
【0106】図15Cに示した管理エージェントタスク
の次の現在の状態は「ログインEUI待機」である。こ
の状態は図15Aに示したORBフェッチ待機状態のロ
グイン関数からエンターされたものである。「ログイン
応答送信」条件が満足される場合には、管理エージェン
トタスク225に対する次の状態は「ログイン送信」で
ある。パスワード要求を読取るための条件が存在してい
る場合には、次の状態は「ログインパスワード待機」と
なる。これらの状態の残部は標準的なものである。
【0107】図15Cに示した次の状態は「ログイン応
答送信」である。この状態においては、管理エージェン
トタスク225がハンドシェーキングの形態としてホス
トへアクノレッジメント即ち肯定応答を送る。標準の次
の状態のみが使用される。
【0108】図15Cに示した最後の現在の状態は「ロ
グインパスワード待機」である。「ログイン応答送信」
条件が満足されると、次の状態はすぐその上に記載され
ている「ログイン応答送信」状態である。該状態遷移の
残部は標準状態である。
【0109】図15Dに示した最初の状態は「クエリィ
ログイン応答送信」状態である。この状態の場合には、
管理エージェントタスク225が単に要求するものに対
してステータスを送信する。標準状態遷移のみが適用さ
れる。
【0110】図15Dに示した現在の状態の残部は全て
管理エージェントタスク225が何かがリターンされる
ことを待機する状態である。現在の状態「パスワード設
定待機」、「再接続EUI待機」、「TMC資源待機」
の場合には、標準状態遷移のみが適用され、従って、更
に何かを説明する必要はない。「CTSUMC待機」、
「LURUMC待機」、「TRUMC待機」の状態の場
合には、標準遷移に加えて状態遷移のみが上述したよう
にUMCブロックが待機しているものである。図15E
に示した現在の状態は図15Dから持ち越された「TM
C資源待機」である。この状態において、トランズアク
ション確認が要求された場合には、その確認要求が送ら
れ且つ次の状態は「TMC資源待機」状態にエンターし
たもののすぐ後の状態である。
【0111】次に、直列バス管理タスク235について
検討する。上述したように、直列バス管理タスク235
は図2の直列バス管理40と同一のノード上のアプリケ
ーションタスク275との間のインターフェースとして
機能する。直列バス管理タスク235用の状態図560
を図16に示してある。初期状態565がCSRプロセ
スを開始する。このCSRプロセスは、ホストがCSR
レジスタを読取ることを試みる場合に喚起される。直列
バス管理タスク235はこのデータを含むホストに対し
読取応答を送る。典型的であるが、初期状態565はT
MCブロックを確保しようとする。TMCブロックが使
用可能でない場合には、TMCブロックが受取られるま
で状態570へエンターする。TMCブロックが受取ら
れ且つ適宜のデータで充填されると、状態575へエン
ターする。この状態も、TMCブロックが元々使用可能
であった場合には、初期状態565によって直接的にエ
ンターすることが可能である。状態575において、直
列バス管理タスク235はトランズアクションインター
フェース210からの適宜の応答を待機し、CSR読取
応答がホストによって受取られたことを表わす。直列バ
ス管理タスク235が、CSR読取応答が受取られたこ
との表示を受取ると、それはそのコールしたタスク即ち
発信元のタスクへ状態575から直接的にリターンす
る。
【0112】図17はアプリケーションタスク275の
状態図580を示している。アプリケーションタスク2
75内において、状態図580はアプリケーションタス
ク275内に含まれる全てのLUNに対して繰り返され
る。上述したように、アプリケーションタスク275は
ハイレベルコマンドを受取り且つそれらを実行する。ア
プリケーションタスク275は1394バス上の他のノ
ードへデータ及びステータス転送を送るためにコマンド
ORB実行タスク245を使用する。
【0113】状態図580の初期状態は状態585であ
る。この状態において、ORBフェッチタスク255に
よって送給されたコマンドが処理される。そのコマンド
が有効なコマンドである場合には、コマンドORB実行
タスク245を介してデータがイニシエータへ送られ
る。このことはCMCブロックを必要とする。どのメモ
リ資源も使用可能でない場合には、アプリケーションタ
スク275は状態590へ進行し、そこでメモリ資源を
待機する。CMCブロックが使用可能であると、データ
が転送され且つアプリケーションタスク275は状態5
95へ進行し、そこでデータ転送のステータスを待機す
る。データ転送の各サブセットが完了すると、アプリケ
ーションタスク275は状態600へ変化し、そこで転
送結果が処理される。更なるデータ転送が必要である場
合には、それらはコマンドORB実行タスク245を介
して送られ、それに対して所要のCMCブロックが得ら
れねばならない。どのメモリ資源も使用可能でない場合
には、アプリケーションタスク275はそれらが使用可
能となるまで状態605へ移動する。次いで、次の転送
が実行され且つアプリケーションタスク275は転送結
果を待機するために状態595へリターンする。データ
転送の全てが完了すると、ステータスが状態595から
イニシエータへ送られる。このステップもCMCメモリ
ブロックの形成を必要とするので、いずれも使用可能で
ない場合には、アプリケーションタスク275は、CM
Cブロックが使用可能となるまで状態610へ変化す
る。ステータスが送られると、状態615にエンター
し、そこでステータス結果が待機される。エラーが発生
すると、アプリケーションタスク275は動作を終了さ
せるが、その結果が満足のいくものである場合には、そ
のコンマンドが完了され且つ再度初期状態585にエン
ターしてアプリケーションタスク275用のキュー(待
ち行列)のトップ即ち一番上にある別のAMCブロック
に関して動作を行う。
【0114】状態585,590,595から点線を介
して示したものは、管理エージェントタスク225によ
ってアボート即ち中止すべく指示された場合に、アプリ
ケーションタスク275が何を行うかの表示である。管
理エージェントタスクがアプリケーションタスク275
のアボート(中止)機能をコールすると、アプリケーシ
ョンタスクはすぐさま状態615へ進行し、そこでステ
ータス結果を待機する。アプリケーションタスク275
はこの状態からアボート即ち中止する。
【0115】動作中の1394バスアーキテクチュアの
1例はサービス及びタスクの相互の動作の更なる理解を
与えるものである。タスクのうちの幾つかを使用する例
は管理ログインORBを介してホストへログインする動
作である。このことは、例えば、プリンタが1394バ
スへプラグインされる場合に発生する。図3を参照する
と、ローカルでないノード上のイニシエータでログイン
が始まる。イニシエータがローカルノード上のトランズ
アクションインターフェース210へ1個又はそれ以上
のデータパケットを送り、該ノードにおいて、ハードウ
エア受信ベイによりそれが受信され且つデコードされ
る。トランズアクションインターフェース210は該パ
ケットからのトランズアクションコードをデコードし且
つ開始用のタスクがローカルノード上で見つかったデス
ティネーション(宛先)アドレスにデータを書込むこと
を要求するか否かを判別するためにそれをデコードする
(ホストへのログイン)。この特定の動作は管理エージ
ェント書込動作であり、最初に管理エージェントタスク
225を使用する。
【0116】トランズアクションインターフェース21
0はカーネル220からフリーなMMCブロックを要求
し、そのMMCブロックを受信したデータパケットから
読取ったデータで初期化し、且つそれを管理エージェン
トタスク225の作業用キュー(待ち行列)内にキュー
化させる。トランズアクションインターフェース210
へ送られたリターンコードが、このMMCブロックが現
在そのキュー(待ち行列)のトップ即ち一番上にあるこ
とを示す場合には、管理エージェントタスク225は現
在動作しておらず且つ開始されねばならない。トランズ
アクションインターフェース210はDMCブロックを
構築し且つ管理エージェントタスク225を開始するた
めにディスパッチャ220をコールする。次いで、ディ
スパッチャ220は管理エージェントタスク225がそ
のキュー(待ち行列)内にエントリを有するものである
ことを管理エージェントタスク225へ通知する。管理
エージェントタスク225はそのキュー(待ち行列)内
にあるMMCブロック及びその中に含まれる動作をデコ
ードする。デコードされたオペレーション即ち動作は管
理エージェントタスク225に対して、それがホストか
ら管理ORBを読取らねばならないことを告知する。こ
のことは、トランズアクションインターフェース210
から送信することを包含している。TMCブロックが形
成され、管理ORBアドレス及びその他のパラメータで
初期化され且つTMCキュー(待ち行列)のうちの1つ
にキュー化される。管理エージェントタスク225がM
MCブロック内のタスク状態をアップデートし、従っ
て、それはORBフェッチを待機する。TMCブロック
がそのキュー(待ち行列)のトップ即ち一番上にあるこ
とをリターンコードが表示する場合には、トランズアク
ションインターフェース210はディスパッチャ220
を介して開始されねばならない。それが実行を開始した
後に、トランズアクションインターフェース210はT
MCブロックをデコードして、それが送信をスケジュー
リングせねばならないか否かを判別する。それがスケジ
ューリングされ且つ実行される。
【0117】トランズアクションインターフェース21
0はイニシエータから管理ORBを受取る。次いで、ト
ランズアクションインターフェース210はログインコ
マンドで管理エージェントタスク225をコールする。
管理エージェントタスク225はイニシエータに対して
ログインを試みる。全てのログイン基準が満足される
と、管理エージェントタスク225は新しいOMCブロ
ックを要求する。次いで、そのOMCブロックが関連性
のあるデータで初期化され、且つログイン応答が構築さ
れる。そのログイン応答はTMCキュー(待ち行列)の
うちの1つへTMCブロックをキュー化即ち配置させる
ことによりトランズアクションインターフェース210
でスケジューリングされ、ログインが成功したことをイ
ニシエータに告知する。その後に、TMCブロックをT
MCキュー(待ち行列)のうちの1つの中に配置させる
ことによりステータスブロックがイニシエータへ送られ
る。ステータスブロックが送られた後に、オリジナルの
MMCブロックは割り当て状態から外され、フリーなメ
モリブロックプールへリターンされ、且つ管理エージェ
ントタスク225はそのキュー(待ち行列)内の次に高
いMMCブロックについて処理を行う。当業者によって
理解されるように、トランスポートレイヤ80として使
用されている任意のプロトコルに対する任意の機能をト
ランズアクションインターフェース210がコールする
ことの可能なタスクに形成することが可能である。
【0118】更なる例として、図10はそのトランスポ
ートレイヤ80としてファンクションコントロールプロ
トコル即ち機能制御プロトコルを使用する本発明の実施
例を示している。注意すべきことであるが、トランズア
クションハードウエア205、トランズアクションイン
ターフェース210、カーネル220は図3に示した実
施例と同一の機能を有している。更に、直列バス管理タ
スク235及びアプリケーションタスク275も図3に
示した実施例と同様である。然しながら、例えばアプリ
ケーション/FCPコマンド実行タスク295等の幾つ
かのタスクは使用されるプロトコル、この場合にはFC
Pに対して特別に形成される。CSR管理タスク285
は1394バスを実現するために必要とされるCSRサ
ービスを包含する別の方法である。図3に示した実施例
においては、これらのサービスは直列バス管理タスク2
35によって取扱われる。
【0119】1394バスと共に使用する可能性のある
アプリケーション及びプロトコルの幾つかを図18に示
してある。本明細書に記載したように通信制御器200
を使用する1394バスは殆ど任意のタイプの周辺装置
を互いに接続させることを可能とする。図18におい
て、1394バスは図の底部に示してあり且つそれが非
同期及びアイソクロノス(等時性)の両方の能力を有す
るものであることを示している。1394バスの次に上
のレイヤは図2に示したトランスポートレイヤの例を示
している。SBP−2、FCP及びSBP−2共通アイ
ソクロノスパケットフォーマットが示されている。トラ
ンスポートレイヤ80の次に上のレイヤは図2に示した
ようにアプリケーションレイヤ90の例を示している。
例えばハードディスクドライブ及びデジタルビデオディ
スクドライブに使用されるMMC−2、プリンタと共に
使用されるプロトコルであるPWG、ハードディスクド
ライブと共にしばしば使用される別のプロトコルである
RBC、民生電子装置に対して使用されるAVトランズ
アクションセット等の上位レベルのプロトコルが示され
ている。次に、アプリケーションレイヤ90の上には、
プリンタ、ハードディスクドライブ、DVDプレイヤ等
のそれらの下側にリストされているプロトコルを使用す
る装置が示されている。勿論、ここにリストしたもの以
外のその他の周辺装置が効果的に且つ異なるアプリケー
ション又はトランスポートプロトコルと共に1394バ
スを使用することが可能である。上述したように、この
ことは1394バスのその他のバスとの互換性を拡張さ
せる。
【0120】以上、本発明の具体的実施の態様について
詳細に説明したが、本発明は、これら具体例にのみ制限
されるべきものではなく、本発明の技術的範囲を逸脱す
ることなしに種々の変形が可能であることは勿論であ
る。
【図面の簡単な説明】
【図1】 可能性のある1394バス形態を示した概略
図。
【図2】 1394スタンダードのレイヤ及び1394
スタンダードのレイヤと相互作用を行うレイヤを示した
概略図。
【図3】 本発明の1実施例に基づくサービス及びタス
クを示した概略図。
【図4】 メッセージ制御ブロック構造を示した概略
図。
【図5A】 トランズアクションインターフェース用の
メッセージ制御ブロックであって、どのアクションがと
られたかに依存するメッセージ制御ブロックに対する特
定のデータ構造を示した概略図。
【図5B】 トランズアクションインターフェース用の
メッセージ制御ブロックであって、どのアクションがと
られたかに依存するメッセージ制御ブロックに対する特
定のデータ構造を示した概略図。
【図5C】 トランズアクションインターフェース用の
メッセージ制御ブロックであって、どのアクションがと
られたかに依存するメッセージ制御ブロックに対する特
定のデータ構造を示した概略図。
【図5D】 トランズアクションインターフェース用の
メッセージ制御ブロックであって、どのアクションがと
られたかに依存するメッセージ制御ブロックに対する特
定のデータ構造を示した概略図。
【図5E】 トランズアクションインターフェース用の
メッセージ制御ブロックであって、どのアクションがと
られたかに依存するメッセージ制御ブロックに対する特
定のデータ構造を示した概略図。
【図5F】 トランズアクションインターフェース用の
メッセージ制御ブロックであって、どのアクションがと
られたかに依存するメッセージ制御ブロックに対する特
定のデータ構造を示した概略図。
【図5G】 トランズアクションインターフェース用の
メッセージ制御ブロックであって、どのアクションがと
られたかに依存するメッセージ制御ブロックに対する特
定のデータ構造を示した概略図。
【図5H】 トランズアクションインターフェース用の
メッセージ制御ブロックであって、どのアクションがと
られたかに依存するメッセージ制御ブロックに対する特
定のデータ構造を示した概略図。
【図5I】 トランズアクションインターフェース用の
メッセージ制御ブロックであって、どのアクションがと
られたかに依存するメッセージ制御ブロックに対する特
定のデータ構造を示した概略図。
【図6】 トランズアクションインターフェースのデー
タの流れを示した概略図。
【図7】 (A),(B),(C)は夫々どれだけのデ
ータを送るかに依存してデータがどのようにして送信ベ
イへ供給されるかを示した概略図。
【図8】 1394バスへデータを送る場合に使用され
るデータ構造を示した概略図。
【図9】 データパケットが1394バス上のノードで
受取られた場合の実行の流れを示したフローチャート。
【図10】 本発明の別の実施例に基づくサービス及び
タスクを示した概略図。
【図11】 コマンドORB実行タスクの状態を示した
状態図。
【図12】 フェッチ管理タスクの状態及び実行の流れ
を示した状態図。
【図13】 ORBフェッチタスクの状態を示した状態
図。
【図14】 非請求ステータスタスクの状態を示した状
態図。
【図15A】 管理エージェントタスクの状態を示すテ
ーブルを示した概略図。
【図15B】 管理エージェントタスクの状態を示すテ
ーブルを示した概略図。
【図15C】 管理エージェントタスクの状態を示すテ
ーブルを示した概略図。
【図15D】 管理エージェントタスクの状態を示すテ
ーブルを示した概略図。
【図15E】 管理エージェントタスクの状態を示すテ
ーブルを示した概略図。
【図16】 直列バス管理タスクの状態を示した状態
図。
【図17】 アプリケーションタスクの状態を示した状
態図。
【図18】 1394バスと共に使用することの可能な
アプリケーション及びプロトコルを示した概略図。
【符号の説明】
200 トランスポートプロトコルインターフェース 205 トランズアクションハードウエア 210 トランズアクションインターフェース 215 フェッチ管理タスク 220 カーネル/スケジューラ/ディスパッチャ 225 管理エージェントタスク 235 直列バス管理タスク 245 コマンドORB実行タスク 255 ORBフェッチタスク 265 非請求ステータスタスク 275 アプリケーションタスク
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アンソニー フォン アメリカ合衆国, カリフォルニア 94566, プリーザントン, パセオ グ ラナダ 3077 (72)発明者 ピーター グロス アメリカ合衆国, カリフォルニア 95131, サン ノゼ, ティー ローズ サークル 1375 (72)発明者 ジム シー. ツ アメリカ合衆国, カリフォルニア 95051, サンタ クララ, レスター コート 322 (72)発明者 ダニー ケイ. ウイ アメリカ合衆国, カリフォルニア 94560, ニューアーク, ベルヘイブン アベニュー 6048 (72)発明者 ハリー エス. フォストフ アメリカ合衆国, カリフォルニア 95139, サン ノゼ, スコウヒーガン コート 139

Claims (24)

    【特許請求の範囲】
  1. 【請求項1】 送信ベイを具備するハードウエアを有す
    る直列バス上のノードにおけるトランズアクションイン
    ターフェースにおいて、 各メッセージ制御ブロックが組織化されたデータを含む
    1個又はそれ以上のメッセージ制御ブロックを受付ける
    構成とされているキュー、 前記メッセージ制御ブロックを読取り且つ前記組織化し
    たデータをデータパケットへ変換させる構成とさせてい
    る変換エンジン、 前記データパケットをバス上に配置させるべく前記送信
    ベイへ通過させる構成とされている出力ポート、を有し
    ていることを特徴とするトランズアクションインターフ
    ェース。
  2. 【請求項2】 請求項1において、前記データパケット
    が前記送信ベイ内のハードウエアレジスタ内に書込まれ
    ることを特徴とするトランズアクションインターフェー
    ス。
  3. 【請求項3】 請求項2において、前記データパケット
    が前記ハードウエアレジスタへ書込まれた後に、前記送
    信ベイ内にデータが存在することを表わすためにトリガ
    ビットがセットされることを特徴とするトランズアクシ
    ョンインターフェース。
  4. 【請求項4】 請求項1において、更に、 前記キューにおいて受付けられたブロックよりも一層高
    い優先度を有するメッセージ制御ブロックを受付ける構
    成とされている第二キュー、 前記第二キューにおいて受取られたブロックよりも一層
    高い優先度を有するメッセージ制御ブロックを受付ける
    構成とされている第三キュー、を有していることを特徴
    とするトランズアクションインターフェース。
  5. 【請求項5】 請求項1において、更に、複数個の送信
    ベイと出力ポートとを有しており、前記送信ベイの各々
    は前記出力ポートの夫々の1つと関連しており、且つ各
    出力ポートは、各データパケットに対して、それの夫々
    の送信ベイへデータパケットを通過させることを試み、
    且つビジーである場合には、ビジーでない送信ベイが見
    つかるまで前記データパケットを別の送信ベイへ通過さ
    せることを繰返し試みる構成とされていることを特徴と
    するトランズアクションインターフェース。
  6. 【請求項6】 請求項5において、トランズアクション
    インターフェースにおける出力ポートの総数及び送信ベ
    イの総数が3であることを特徴とするトランズアクショ
    ンインターフェース。
  7. 【請求項7】 請求項1において、前記ハードウエア
    が、更に、DMAチャンネルを有していることを特徴と
    するトランズアクションインターフェース。
  8. 【請求項8】 請求項1において、前記ハードウエア
    が、更に、ペイロードデータ送信ベイを有していること
    を特徴とするトランズアクションインターフェース。
  9. 【請求項9】 請求項8において、1394プロトコル
    に従うロック応答を有するデータが前記送信ベイ及び前
    記ペイロードデータ装置ベイの両方を使用して前記ノー
    ドによって送給されることを特徴とするトランズアクシ
    ョンインターフェース。
  10. 【請求項10】 請求項1において、更に、前記直列バ
    スからのデータパケットを受取る構成とされている受信
    ハードウエアベイを有していることを特徴とするトラン
    ズアクションインターフェース。
  11. 【請求項11】 請求項1において、前記キューによっ
    て受取られるメッセージ制御ブロックがトランズアクシ
    ョンメッセージ制御ブロックであることを特徴とするト
    ランズアクションインターフェース。
  12. 【請求項12】 少なくとも2個の送信ベイを具備する
    ハードウエアインターフェースを有する直列バス上のノ
    ードにおけるトランズアクションインターフェースにお
    いて、 各メッセージ制御ブロックが組織化されたデータを含ん
    でいる1個又はそれ以上のメッセージ制御ブロックを受
    取る構成とされているキュー、 前記メッセージ制御ブロックを読取り且つ前記組織化さ
    れたデータをデータパケットへ変換させる構成とされて
    いる1組の論理プロセス、 各々が夫々の送信ベイへ関連しており且つ各々が前記デ
    ータパケットをそれの夫々の送信ベイへ又はバス上に配
    置されるべく別の送信ベイへ通過させる構成とされてい
    る少なくとも2個の出力ポート、を有していることを特
    徴とするトランズアクションインターフェース。
  13. 【請求項13】 請求項12において、前記データパケ
    ットが送信ベイレジスタ内へ書込まれることを特徴とす
    るトランズアクションインターフェース。
  14. 【請求項14】 請求項12において、更に、 前記キューにおいて受付けられるメッセージ制御ブロッ
    クよりも一層高い優先度を持ったメッセージ制御ブロッ
    クを受付ける構成とされている複数個の優先度キュー、
    を有していることを特徴とするトランズアクションイン
    ターフェース。
  15. 【請求項15】 請求項12において、前記送信ベイの
    各々が夫々の出力ポートへ関連しており、且つ前記出力
    ポートのうちの1つが前記送信ベイへデータパケットを
    通過させる前に、前記1組の論理プロセスがデータ構造
    をチェックして存在する場合に前記トランズアクション
    インターフェースの送信ベイのうちのいずれがデータを
    それに書込むためにフリーであるかを決定することを特
    徴とするトランズアクションインターフェース。
  16. 【請求項16】 請求項15において、前記1組の論理
    プロセスがその他の送信ベイをチェックする前に前記出
    力ポートの夫々の送信ベイをチェックすることを特徴と
    するトランズアクションインターフェース。
  17. 【請求項17】 請求項12において、トランズアクシ
    ョンインターフェースにおける出力ポートの総数及び送
    信ベイの総数が3であることを特徴とするトランズアク
    ションインターフェース。
  18. 【請求項18】 請求項12において、前記ハードウエ
    アが更にDMAチャンネルを有していることを特徴とす
    るトランズアクションインターフェース。
  19. 【請求項19】 請求項12において、更に、前記直列
    バスからデータパケットを受取る構成とされているハー
    ドウエア受信ベイを有していることを特徴とするトラン
    ズアクションインターフェース。
  20. 【請求項20】 直列バスに対してデータを取扱う方法
    において、 バスへ送られることとなっているデータを含むメッセー
    ジ制御ブロックをキューにおいて受付け、 送られるべきデータを1個又はそれ以上のパケットへフ
    ォーマットし、 前記メッセージ制御ブロック内に含まれているその他の
    データを前記パケット用のパケットヘッダへフォーマッ
    トし、 前記パケット及び前記パケットヘッダを直列バスへのハ
    ードウエアインターフェースへ書込み、 前記パケットが書込まれたハードウエアインターフェー
    スと通信を行う、ことを特徴とする方法。
  21. 【請求項21】 請求項20において、ハードウエアイ
    ンターフェースに対して前記パケット及び前記パケット
    ヘッダを書込む場合に、 複数個の出力ノードのうちの1つにおいて、複数個のハ
    ードウエアレジスタのうちの夫々の1つが現在使用可能
    であるか否かを決定するためにデータ構造を評価し、 前記夫々のハードウエアレジスタが使用可能である場合
    には、データパケットを前記ハードウエアレジスタへ書
    込み、 前記夫々のハードウエアレジスタが使用可能でない場合
    には、その中にデータを有することのないハードウエア
    レジスタが見つかるまで順番に前記ハードウエアレジス
    タの全てを逐次的に評価する、ことを特徴とする方法。
  22. 【請求項22】 請求項20において、メッセージ制御
    ブロックを受付ける場合に、複数個のキューのうちの1
    つにおいてメッセージ制御ブロックを受取り、各キュー
    が他のキューと異なる実行用の優先度を有するものとし
    て指定されていることを特徴とする方法。
  23. 【請求項23】 請求項20において、1つ又はそれ以
    上のパケットへ送られるべきデータをフォーマットする
    場合に、データをブロックにカプセル化し、該ブロック
    の寸法は直列バスの速度によって制限されることを特徴
    とする方法。
  24. 【請求項24】 請求項20において、前記ハードウエ
    アインターフェースに対する通信を行う場合に、前記ハ
    ードウエアインターフェースにおけるトリガビットをセ
    ットすることを特徴とする方法。
JP11290466A 1998-10-13 1999-10-13 デ―タ通信システム用のトランズアクションインタ―フェ―ス Pending JP2000156696A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/170,960 US6243778B1 (en) 1998-10-13 1998-10-13 Transaction interface for a data communication system
US09/170960 1998-10-13

Publications (1)

Publication Number Publication Date
JP2000156696A true JP2000156696A (ja) 2000-06-06

Family

ID=22621985

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11290466A Pending JP2000156696A (ja) 1998-10-13 1999-10-13 デ―タ通信システム用のトランズアクションインタ―フェ―ス

Country Status (3)

Country Link
US (1) US6243778B1 (ja)
EP (1) EP1014650A3 (ja)
JP (1) JP2000156696A (ja)

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4111472B2 (ja) * 1998-05-15 2008-07-02 キヤノン株式会社 通信制御方法及び装置及び通信システム
US6549951B1 (en) 1998-08-25 2003-04-15 Stmicroelectronics, Inc. Method and device for controlling communications with a serial bus
JP3148733B2 (ja) * 1999-02-26 2001-03-26 株式会社神戸製鋼所 信号処理装置及び信号処理システム
US6498793B1 (en) * 1999-03-12 2002-12-24 Hewlett-Packard Company Method for hardware-assisted automatic sorting of out-of-order packets using restricted transaction label
US6859846B2 (en) * 1999-05-12 2005-02-22 Sony Corporation Method of distributed recording whereby the need to transition to a second recording device from a first recording device is broadcast by the first recording device
US6477156B1 (en) * 1999-06-29 2002-11-05 Nokia Corporation Apparatus, and associated method, for selectably operating radio device in alternate operating mode
US6628607B1 (en) 1999-07-09 2003-09-30 Apple Computer, Inc. Method and apparatus for loop breaking on a serial bus
US6792495B1 (en) * 1999-07-27 2004-09-14 Intel Corporation Transaction scheduling for a bus system
JP2001045031A (ja) * 1999-08-03 2001-02-16 Seiko Epson Corp 被ログイン装置、ログイン装置、及びそれらを備える装置間通信システム、ログイン制御方法、並びに記録媒体
JP3365377B2 (ja) * 1999-08-12 2003-01-08 セイコーエプソン株式会社 ログイン装置、被ログイン装置、及び装置間通信システム、ログイン制御方法、並びに記録媒体
US6542941B1 (en) * 1999-09-30 2003-04-01 Intel Corporation Efficient command delivery and data transfer
US6721789B1 (en) * 1999-10-06 2004-04-13 Sun Microsystems, Inc. Scheduling storage accesses for rate-guaranteed and non-rate-guaranteed requests
US6721859B1 (en) * 1999-10-21 2004-04-13 Sony Corporation Multi-protocol media storage device implementing protocols optimized for storing and retrieving both asynchronous and isochronous data
US6691096B1 (en) 1999-10-28 2004-02-10 Apple Computer, Inc. General purpose data container method and apparatus for implementing AV/C descriptors
US6671768B1 (en) 1999-11-01 2003-12-30 Apple Computer, Inc. System and method for providing dynamic configuration ROM using double image buffers for use with serial bus devices
US6813663B1 (en) 1999-11-02 2004-11-02 Apple Computer, Inc. Method and apparatus for supporting and presenting multiple serial bus nodes using distinct configuration ROM images
US6618750B1 (en) 1999-11-02 2003-09-09 Apple Computer, Inc. Method and apparatus for determining communication paths
US6636914B1 (en) 1999-11-05 2003-10-21 Apple Computer, Inc. Method and apparatus for arbitration and fairness on a full-duplex bus using dual phases
US6587904B1 (en) 1999-11-05 2003-07-01 Apple Computer, Inc. Method and apparatus for preventing loops in a full-duplex bus
US6570885B1 (en) * 1999-11-12 2003-05-27 International Business Machines Corporation Segment-controlled process for controlling castouts from a communication cache in a port in any of multiple nodes in a communications network
US6639918B1 (en) * 2000-01-18 2003-10-28 Apple Computer, Inc. Method and apparatus for border node behavior on a full-duplex bus
US7050453B1 (en) * 2000-02-17 2006-05-23 Apple Computer, Inc. Method and apparatus for ensuring compatibility on a high performance serial bus
US6633954B1 (en) * 2000-03-31 2003-10-14 Emc Corporation Method for enhancing host application performance with a DASD using task priorities
US6961631B1 (en) * 2000-04-12 2005-11-01 Microsoft Corporation Extensible kernel-mode audio processing architecture
US6646195B1 (en) * 2000-04-12 2003-11-11 Microsoft Corporation Kernel-mode audio processing modules
US6438633B1 (en) * 2000-04-20 2002-08-20 Sony Corporation System for providing deterministic performance from a non-deterministic device
US6718497B1 (en) 2000-04-21 2004-04-06 Apple Computer, Inc. Method and apparatus for generating jitter test patterns on a high performance serial bus
US6618785B1 (en) * 2000-04-21 2003-09-09 Apple Computer, Inc. Method and apparatus for automatic detection and healing of signal pair crossover on a high performance serial bus
WO2001086434A2 (en) * 2000-05-08 2001-11-15 Transilica, Inc. Software modem architecture
US6675200B1 (en) * 2000-05-10 2004-01-06 Cisco Technology, Inc. Protocol-independent support of remote DMA
US7624156B1 (en) * 2000-05-23 2009-11-24 Intel Corporation Method and system for communication between memory regions
US7720821B1 (en) 2000-06-30 2010-05-18 Sony Corporation Method of and apparatus for writing and reading time sensitive data within a storage device
JP2002027012A (ja) * 2000-07-03 2002-01-25 Fujitsu Ltd ネットワーク接続装置
US6920516B2 (en) * 2000-08-31 2005-07-19 Hewlett-Packard Development Company, L.P. Anti-starvation interrupt protocol
US7065098B2 (en) * 2001-01-19 2006-06-20 Raze Technologies, Inc. Redundant telecommunication system using memory equalization apparatus and method of operation
FR2819668B1 (fr) * 2001-01-18 2003-03-28 Canon Kk Procede et dispositif de communication entre un noeud local connecte a un premier bus serie ieee 1394 et un noeud distant connecte a un second bus serie ieee 1394 au travers d'un pont d'interconnexion de bus
CN101526982B (zh) * 2001-02-16 2012-05-30 索尼株式会社 数据处理方法及其设备
US7333504B2 (en) * 2001-03-08 2008-02-19 Honeywell International Inc. Simultaneous serial transmission of messages with data field arbitration
US7085869B1 (en) * 2001-04-04 2006-08-01 Advanced Micro Devices, Inc. Arrangement for managing transmitted packets requiring acknowledgement in a host channel adapter
JP2002318777A (ja) 2001-04-19 2002-10-31 Matsushita Electric Ind Co Ltd 高速シリアルインターフェース用のコマンド発行装置
US7124292B2 (en) * 2001-05-21 2006-10-17 Sony Corporation Automatically configuring storage array including a plurality of media storage devices for storing and providing data within a network of devices
US6766386B2 (en) * 2001-08-28 2004-07-20 Broadcom Corporation Method and interface for improved efficiency in performing bus-to-bus read data transfers
US20030050957A1 (en) * 2001-09-07 2003-03-13 Atul Hatalkar Delegating scheduling tasks to clients
US7028124B2 (en) * 2001-09-26 2006-04-11 Intel Corporation Method and apparatus for dual queue head processing of interrupt endpoints
IL161107A0 (en) * 2001-09-28 2004-08-31 Tidal Networks Inc Multi-threaded packet processing engine for stateful packet processing
US20060218556A1 (en) * 2001-09-28 2006-09-28 Nemirovsky Mario D Mechanism for managing resource locking in a multi-threaded environment
US7330885B2 (en) * 2001-10-25 2008-02-12 Sun Microsystems, Inc. Method and apparatus for managing data time-outs
US6965961B1 (en) * 2002-03-01 2005-11-15 University Of Rochester Queue-based spin lock with timeout
US6990503B1 (en) * 2002-04-12 2006-01-24 Ncr Corporation Rescheduling transactions in a database system
JP4350404B2 (ja) * 2002-04-24 2009-10-21 キヤノン株式会社 記録装置及びその制御方法
US7627631B2 (en) 2002-05-02 2009-12-01 Bea Systems, Inc. Systems and methods for collaborative business plug-ins
US7305493B2 (en) * 2002-11-27 2007-12-04 Intel Corporation Embedded transport acceleration architecture
US7584474B2 (en) * 2003-02-25 2009-09-01 Bea Systems, Inc. Systems and methods for transaction chaining
US7353284B2 (en) 2003-06-13 2008-04-01 Apple Inc. Synchronized transmission of audio and video data from a computer to a client via an interface
US7668099B2 (en) 2003-06-13 2010-02-23 Apple Inc. Synthesis of vertical blanking signal
US8275910B1 (en) 2003-07-02 2012-09-25 Apple Inc. Source packet bridge
DE10339535A1 (de) * 2003-08-26 2005-03-24 Deutsche Thomson-Brandt Gmbh Verfahren zum Abfragen von Informationen bezüglich einer Netzwerkteilnehmerstation in einem Netzwerk verteilter Stationen sowie Netzwerkteilnehmerstation für die Durchführung des Verfahrens
US7788567B1 (en) 2003-11-18 2010-08-31 Apple Inc. Symbol encoding for tolerance to single byte errors
US7995606B1 (en) 2003-12-03 2011-08-09 Apple Inc. Fly-by and ack-accelerated arbitration for broadcast packets
US7237135B1 (en) 2003-12-29 2007-06-26 Apple Inc. Cyclemaster synchronization in a distributed bridge
US7308517B1 (en) 2003-12-29 2007-12-11 Apple Inc. Gap count analysis for a high speed serialized bus
EP1735672A1 (en) * 2004-04-01 2006-12-27 Delphi Technologies, Inc. Method and protocol for diagnostics of arbitrarily complex networks of devices
US7752355B2 (en) * 2004-04-27 2010-07-06 International Business Machines Corporation Asynchronous packet based dual port link list header and data credit management structure
JP2006115315A (ja) * 2004-10-15 2006-04-27 Fujitsu Ltd データ転送方法及びデータ転送装置
US7484217B2 (en) * 2005-02-24 2009-01-27 International Business Machines Corporation Method for automatic adjustment of time a consumer waits to access data from a queue during a waiting phase and transmission phase at the queue
US7853957B2 (en) * 2005-04-15 2010-12-14 Intel Corporation Doorbell mechanism using protection domains
US9477515B2 (en) 2009-12-15 2016-10-25 Intel Corporation Handling operating system (OS) transitions in an unbounded transactional memory (UTM) mode
US8316194B2 (en) 2009-12-15 2012-11-20 Intel Corporation Mechanisms to accelerate transactions using buffered stores
US8521995B2 (en) * 2009-12-15 2013-08-27 Intel Corporation Handling operating system (OS) transitions in an unbounded transactional memory (UTM) mode
US8407520B2 (en) * 2010-04-23 2013-03-26 Ebay Inc. System and method for definition, creation, management, transmission, and monitoring of errors in SOA environment
US9465670B2 (en) 2011-12-16 2016-10-11 Intel Corporation Generational thread scheduler using reservations for fair scheduling
JP6157181B2 (ja) * 2013-04-02 2017-07-05 キヤノン株式会社 サーバーシステム、その制御方法、およびそのプログラム
CN104320317B (zh) * 2014-10-28 2019-03-15 新华三技术有限公司 一种以太网物理层芯片状态的传送方法和装置
US10990439B1 (en) * 2019-09-26 2021-04-27 Facebook Technologies, Llc Tracing task execution across services in microkernel-based operating systems
US10922264B1 (en) * 2020-02-04 2021-02-16 Nxp B.V. CAN transceiver

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5117486A (en) * 1989-04-21 1992-05-26 International Business Machines Corp. Buffer for packetizing block of data with different sizes and rates received from first processor before transferring to second processor
US5210749A (en) * 1990-05-29 1993-05-11 Advanced Micro Devices, Inc. Configuration of srams as logical fifos for transmit and receive of packet data
US5621898A (en) * 1994-11-29 1997-04-15 Compaq Computer Corporation Arbiter organization for serial bus transfers
US5682478A (en) * 1995-01-19 1997-10-28 Microsoft Corporation Method and apparatus for supporting multiple, simultaneous services over multiple, simultaneous connections between a client and network server
US5991520A (en) * 1996-02-02 1999-11-23 Sony Corporation Application programming interface for managing and automating data transfer operations between applications over a bus structure
US5751723A (en) * 1996-07-01 1998-05-12 Motorola, Inc. Method and system for overhead bandwidth recovery in a packetized network
JP3087696B2 (ja) * 1997-07-25 2000-09-11 日本電気株式会社 分散メモリ型マルチプロセッサ・システム制御方法およびコンピュータ読み取り可能な記録媒体
US6052580A (en) * 1997-07-31 2000-04-18 Lucent Technologies Inc. Upper medium access control processor architecture

Also Published As

Publication number Publication date
EP1014650A2 (en) 2000-06-28
US6243778B1 (en) 2001-06-05
EP1014650A3 (en) 2005-08-31

Similar Documents

Publication Publication Date Title
JP2000156696A (ja) デ―タ通信システム用のトランズアクションインタ―フェ―ス
US6549951B1 (en) Method and device for controlling communications with a serial bus
JP3843667B2 (ja) データ転送制御装置及び電子機器
US6523058B1 (en) State machine driven transport protocol interface
JP3452590B2 (ja) システムメモリからネットワークへのパケットに配列されるデータのフローを制御するネットワークアダプタおよびデータのフローを制御する方法
JP3608441B2 (ja) データ転送制御装置及び電子機器
US20070180336A1 (en) Multi-initiator control unit and method
JP3780776B2 (ja) データ転送制御装置及び電子機器
KR100746900B1 (ko) 전자장치, 및 전자장치의 물리층 회로의 상태를 제어하는방법
US20040057448A1 (en) Information processing system, information processing apparatus, and information processing method
EP1107532A2 (en) Registration of devices in a network
JP4033915B2 (ja) データストリーム制御方法及び装置
WO2001006708A1 (fr) Dispositif de gestion de transfert de donnees et appareil electronique
JPH1117710A (ja) シリアルインタフェース回路
JP3610982B2 (ja) データ転送制御装置及び電子機器
JP2000224195A (ja) データ伝送装置
WO2023004801A1 (zh) 一种任务处理方法及装置
JP2000250846A (ja) シーケンス処理装置
JPH03250937A (ja) Lan制御方式
JP3105883B2 (ja) 通信装置および方法
JP2003023471A (ja) パケット送受信処理回路
JP2001186146A (ja) データ転送制御装置及び電子機器
JP2001175546A (ja) データ転送制御装置、情報記憶媒体及び電子機器
JP2001177544A (ja) データ転送制御装置、情報記憶媒体及び電子機器
JP2001177536A (ja) データ転送制御装置、情報記憶媒体及び電子機器