(57)【特許請求の範囲】
【請求項１】
ヘッダフィールドとデータフィールドとからなるパケットを単位として伝送路を介して相手機器と通信を行うデータ伝送装置であって、
送信専用バッファと、
受信専用バッファと、
送受信兼用バッファと、
送信するパケットの内容に応じてその格納先を前記送信専用バッファか前記送受信兼用バッファかに振り分けるための送信用フィルタと、
受信したパケットの内容に応じてその格納先を前記受信専用バッファか前記送受信兼用バッファかに振り分けるための受信用フィルタと、
送信すべき情報を含んだパケットを作成したり、受信したパケットから必要な情報を取り出したりするためのパケット処理回路と、
前記送信専用バッファ又は前記送受信兼用バッファに格納されたパケットを前記伝送路上の電気信号に変換したり、受信された前記伝送路上の電気信号を前記受信専用バッファ又は前記送受信兼用バッファに格納するパケットに変換したりするための送受信回路と、
前記パケット処理回路を起動するための中央処理ユニットとを備え、
前記受信用フィルタは、ある要求パケットに対して対をなす応答パケットが受信された場合には該受信した応答パケットを前記送受信兼用バッファに格納するとともに応答検出の旨を前記パケット処理回路に知らせ、前記要求パケットに対してそれ以外のパケットが受信された場合には該受信したパケットを前記受信専用バッファに格納するとともに一時停止命令を前記パケット処理回路へ発行する機能を有することを特徴とするデータ伝送装置。
【請求項２】
請求項１記載のデータ伝送装置において、
前記パケット処理回路は、
前記送信用フィルタに与えた要求パケットの数をカウントするための要求パケットカウンタと、
前記送受信兼用バッファから読み出した応答パケットの数をカウントするための応答パケットカウンタと、
前記一時停止命令に応答して、新たな要求パケットの作成を停止させ、かつ前記応答パケットカウンタの値と前記要求パケットカウンタの値との一致で前記中央処理ユニットへの一時停止完了通知がなされるように指示するための一時停止コントローラとを備えたことを特徴とするデータ伝送装置。
【請求項３】
請求項２記載のデータ伝送装置において、
前記パケット処理回路は、前記一時停止完了通知の後に前記中央処理ユニットからのデータ伝送再起動命令を受け付けるための手段を更に備えたことを特徴とするデータ伝送装置。
【請求項４】
ヘッダフィールドとデータフィールドとからなるパケットを単位として伝送路を介して相手機器と通信を行うデータ伝送装置であって、
送信専用バッファと、
受信専用バッファと、
送受信兼用バッファと、
送信するパケットの内容に応じてその格納先を前記送信専用バッファか前記送受信兼用バッファかに振り分けるための送信用フィルタと、
受信したパケットの内容に応じてその格納先を前記受信専用バッファか前記送受信兼用バッファかに振り分けるための受信用フィルタと、
送信すべき情報を含んだパケットを作成したり、受信したパケットから必要な情報を取り出したりするためのパケット処理回路と、
前記送信専用バッファ又は前記送受信兼用バッファに格納されたパケットを前記伝送路上の電気信号に変換したり、受信された前記伝送路上の電気信号を前記受信専用バッファ又は前記送受信兼用バッファに格納するパケットに変換したりするための送受信回路と、
前記相手機器中の記憶場所の間接アドレス指定に用いられるページテーブルデータを格納するためのページテーブルメモリと、
前記パケット処理回路を制御するためのパケット転送制御回路と、
前記パケット転送制御回路を起動するための中央処理ユニットとを備え、
前記パケット転送制御回路は、ページテーブルを用いたデータ伝送の要求を前記受信専用バッファを介して前記中央処理ユニットが受け取り、該中央処理ユニットにより該パケット転送制御回路が起動された場合には、前記相手機器からページテーブルデータを取得するための要求パケットを前記パケット処理回路に作成させ、前記パケット処理回路が前記送受信兼用バッファを介して取得したページテーブルデータを前記ページテーブルメモリに格納し、かつ該ページテーブルメモリに格納されたページテーブルデータにより指定された前記相手機器中の記憶場所へのアクセスのための他の要求パケットを前記パケット処理回路に作成させる機能を有することを特徴とするデータ伝送装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータと光ディスクドライブ等の周辺機器との間で伝送路を介してデータやコマンド等をパケット単位で伝送するデータ伝送装置に関するものである。
【０００２】
【従来の技術】
近年、ＡＶ機器やコンピュータ機器等を接続するディジタルインターフェースとして、ＩＥＥＥ１３９４方式が注目されている。この方式は、コンピュータ機器間の通信のみならず、ＡＶ機器間での通信にも用いることができるものである。これは、ＩＥＥＥ１３９４方式に、アシンクロナス（asynchronous）通信とアイソクロノス（isochronous）通信とが定義されているためである。アシンクロナス通信は、コンピュータデータの伝送のような、リアルタイム性が要求されず、しかも信頼性がより要求されるデータの伝送に用いられる。アイソクロノス通信は、動画のＡＶデータ等のような、信頼性以上にリアルタイム性が要求されるデータの伝送に用いられる。したがって、一般的に、ＩＥＥＥ１３９４方式を用いて、例えばコンピュータデータを光ディスクドライブ等に格納したり、光ディスクドライブから記録済みのコンピュータデータを読み出したりする際には、アシンクロナス通信が採用される。なお、アシンクロナス通信を用いたイニシエータとターゲットとの間の通信プロトコルについては、ＳＢＰ−２（serial bus protocol - 2）が現在ＡＮＳＩにて審議されている。このＳＢＰ−２規格では、Login、QueryLogin、AbortTask等のタスク管理コマンドや、ページテーブルを用いた間接アドレス指定のデータ伝送が定義されている。
【０００３】
ターゲット側における従来のデータ伝送装置は、送信専用バッファと受信専用バッファとを持ち、その各々のサイズは最大転送パケットサイズと等しいのが通例である。これらのバッファを構成するＦＩＦＯ（first-in-first-out）バッファは、それぞれＡＴＦ（asynchronous transmission FIFO buffer）及びＡＲＦ（asynchronous reception FIFO buffer）と呼ばれる。しかも、従来は単一の中央処理ユニット（ＣＰＵ：central processing unit）が、ＡＴＦ及びＡＲＦの管理等の処理をプログラムに従って実行していた。
【０００４】
【発明が解決しようとする課題】
ところが、従来のデータ伝送装置ではＣＰＵの負荷が非常に大きくなってきた。ＣＰＵは、要求パケット（request packet）及び応答パケット（response packet）の作成並びにＡＴＦへの書き込み、ＡＲＦからの受信パケットの読み出し及び受信パケット中のヘッダフィールドの解析といった各処理のみならず、イニシエータが発行したタスク管理コマンドに対する適切な処理をも実行しなければならない。また、データ伝送中にイニシエータがタスク管理コマンドを発行したり、ターゲット側のコンフィギュレーションＲＯＭ（config#ROM）やＣＳＲ（control and status registers）へのアクセス要求をデータ伝送中にイニシエータが発行したりした場合には、データ伝送の一時停止や再開の処理をＣＰＵが管理しなければならない。更に、ページテーブルを用いたデータ伝送の要求がイニシエータから発行された場合には、イニシエータからのページテーブルデータの取得と、該ページテーブルデータに基づくデータ伝送の実行とをＣＰＵが１ページ毎に制御しなければならない。したがって、従来のデータ伝送装置は、ＣＰＵのファームウェア処理によるオーバーヘッドが大きく、データ伝送に長い時間がかかるという問題を有していた。
【０００５】
本発明の目的は、ＣＰＵのファームウェア処理によるオーバーヘッドを低減し、以て高速データ伝送を実現することにある。
【０００６】
【課題を解決するための手段】
上記目的を達成するために、本発明は、ヘッダフィールドとデータフィールドとからなるパケットを単位として伝送路を介して相手機器と通信を行うデータ伝送装置において、送信専用バッファと、受信専用バッファと、送受信兼用バッファと、送信するパケットの内容に応じてその格納先を送信専用バッファか送受信兼用バッファかに振り分けるための送信用フィルタと、受信したパケットの内容に応じてその格納先を受信専用バッファか送受信兼用バッファかに振り分けるための受信用フィルタと、送信すべき情報を含んだパケットを作成したり、受信したパケットから必要な情報を取り出したりするためのパケット処理回路と、送信専用バッファ又は送受信兼用バッファに格納されたパケットを伝送路上の電気信号に変換したり、受信された伝送路上の電気信号を受信専用バッファ又は送受信兼用バッファに格納するパケットに変換したりするための送受信回路と、パケット処理回路を起動するための中央処理ユニット（ＣＰＵ）とを備えた構成を採用し、受信用フィルタは、ある要求パケットに対して対をなす応答パケットが受信された場合には該受信した応答パケットを送受信兼用バッファに格納するとともに応答検出の旨をパケット処理回路に知らせ、前記要求パケットに対してそれ以外のパケットが受信された場合には該受信したパケットを受信専用バッファに格納するとともに一時停止命令をパケット処理回路へ発行する機能を有することとしたものである。
【０００７】
前記パケット処理回路は、送信用フィルタに与えた要求パケットの数をカウントするための要求パケットカウンタと、送受信兼用バッファから読み出した応答パケットの数をカウントするための応答パケットカウンタと、前記一時停止命令に応答して、新たな要求パケットの作成を停止させ、かつ応答パケットカウンタの値と要求パケットカウンタの値との一致でＣＰＵへの一時停止完了通知がなされるように指示するための一時停止コントローラとを備える。これにより、データ伝送動作中に該動作に関係のないパケットを受信した場合には、その受信時点でのトランザクションが完結した時点でデータ伝送が一時停止し、送信専用バッファ、受信専用バッファ及び送受信兼用バッファをＣＰＵが自由に使用できることとなる。更に、一時停止完了通知の後にＣＰＵからのデータ伝送再起動命令を受け付けるための手段をパケット処理回路が備えることが好ましい。
【０００８】
また、本発明に係る他のデータ伝送装置は、送信専用バッファと、受信専用バッファと、送受信兼用バッファと、送信するパケットの内容に応じてその格納先を送信専用バッファか送受信兼用バッファかに振り分けるための送信用フィルタと、受信したパケットの内容に応じてその格納先を受信専用バッファか送受信兼用バッファかに振り分けるための受信用フィルタと、送信すべき情報を含んだパケットを作成したり、受信したパケットから必要な情報を取り出したりするためのパケット処理回路と、送信専用バッファ又は送受信兼用バッファに格納されたパケットを伝送路上の電気信号に変換したり、受信された伝送路上の電気信号を受信専用バッファ又は送受信兼用バッファに格納するパケットに変換したりするための送受信回路と、相手機器中の記憶場所の間接アドレス指定に用いられるページテーブルデータを格納するためのページテーブルメモリと、パケット処理回路を制御するためのパケット転送制御回路と、該パケット転送制御回路を起動するための中央処理ユニット（ＣＰＵ）とを備えた構成を採用したものである。しかも、パケット転送制御回路は、ページテーブルを用いたデータ伝送の要求を受信専用バッファを介してＣＰＵが受け取り、該ＣＰＵにより該パケット制御回路が起動された場合には、相手機器からページテーブルデータを取得するための要求パケットをパケット処理回路に作成させ、該パケット処理回路が送受信兼用バッファを介して取得したページテーブルデータをページテーブルメモリに格納し、かつ該ページテーブルメモリに格納されたページテーブルデータにより指定された相手機器中の記憶場所へのアクセスのための他の要求パケットをパケット処理回路に作成させる機能を有することとしたものである。これにより、パケット転送制御回路が起動された後は、ページテーブルを用いたデータ伝送がＣＰＵの介入なしに自動的に実行される。
【０００９】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を詳細に説明するが、これによって本発明の技術的範囲が制限されるものではないのはもちろんである。
【００１０】
図１は、本発明の一実施の形態のデータ伝送装置の構成図である。１はコマンドを発行したり、データを送受信したりするホストＰＣ（以降イニシエータとも呼ぶ）であり、２は光ディスクドライブ（以降ターゲットとも呼ぶ）である。ホストＰＣ１と光ディスクドライブ２とは、ＩＥＥＥ１３９４シリアルバス３を介して接続されている。４は送受信回路で、物理層コントローラ（ＰＨＹ）４１とリンク層コントローラ（ＬＩＮＫ）４２とからなっている。ＰＨＹ４１は、１３９４バス３のイニシャライズ、データのエンコード／デコード、アービトレーション、バイアス電圧の出力／検出等の機能を持ち、ＬＩＮＫ４２は、誤り訂正符号（ＣＲＣ）の生成／検出、パケットの生成／検出等の機能を持つ。５はコマンド等を受信するための受信専用バッファ（ＡＲＦ）であり、６はステータス等を送信するための送信専用バッファ（ＡＴＦ）であり、７はデータを送受信するための送受信兼用バッファ（ＤＴＲＦ：data transmission and reception FIFO buffer）である。８は受信したパケットの内容に応じてその格納先をＡＲＦ５かＤＴＲＦ７かに振り分けるための受信用フィルタ（ＲＦＩＬ）であり、９は送信するパケットの内容に応じてその格納先をＡＴＦ６かＤＴＲＦ７かに振り分けるための送信用フィルタ（ＴＦＩＬ）である。更に１０は、受信されたパケットから必要なデータのみを抜き出し、光ディスクコントローラ（ＯＤＣ：optical disk controller）１４にＤＭＡコントローラ（ＤＭＡＣ：direct memory access controller）１３及びＤＭＡバスを介して転送するためのデータに変換したり、或いは光ディスク１６からヘッド１７を介して読み出されたデータに所定のアナログ信号処理を施すアナログ信号処理回路１５を経てＯＤＣ１４で復調や誤り訂正処理等が施されたデータに、ヘッダを付与したり、パケット化を行うパケット処理回路（ＰＰＲＣ：packet processor）である。１１はＣＰＵ、１２はＣＰＵ１１に接続されたレジスタである。
【００１１】
図２Ａ〜ＥはＩＥＥＥ１３９４で定義されている非同期パケットの一部のフォーマットを示している。ＩＥＥＥ１３９４では、動作の要求を行うための要求パケットと、要求パケットによって要求された動作の結果を返すための応答パケットとが定義されている。いずれのパケットに対しても、パケットを受信した場合には、パケットの受信状態を示すＡＣＫパケット（acknowledge packet）を相手機器に返す。ＡＣＫパケットは、処理完了を示すack#complete、受信は完了したが処理中であることを示すack#pending、再送要求を示すack#busy等の状態を示す。要求パケットと応答パケットとは通常対をなして使用されるが、ＡＣＫパケットの内容によってはＡＣＫパケットの受信で処理が完了する場合もある。
【００１２】
図２Ａ，Ｂ及びＤは、それぞれＢＷＲＱパケット（write request for data block packet：データブロック書き込み要求パケット）、ＱＷＲＱパケット（write request for data quadlet packet：データクワッドレット書き込み要求パケット）、ＢＲＲＱパケット（read request for data block packet：データブロック読み出し要求パケット）である。書き込み要求（ＢＷＲＱ及びＱＷＲＱ）パケットに対する応答パケットとして図２Ｃに示すＷＲＳパケット（write response packet：書き込み応答パケット）が定義されており、またＢＲＲＱパケットに対する応答パケットとして図２Ｅに示すＢＲＲＳパケット（read response for data block packet：データブロック読み出し応答パケット）が定義されている。いずれの場合もパケットの種類を識別するｔｃｏｄｅ（transaction code）と、ｔｌ（transaction label、トランザクション固有のタグ情報）とが含まれており、また応答パケットの場合には、応答状態を示すｒｃｏｄｅ（response code）が含まれている。したがって、ｔｃｏｄｅによりトランザクションの種類が識別でき、またｔｌにより対をなす要求パケットと応答パケットとを認識することができる。なお、詳細についてはＩＥＥＥ１３９４−１９９５規格書を参照されたい。
【００１３】
図３Ａ〜Ｅは、図１の光ディスクドライブ２における内部パケット構成を示す説明図であって、図２Ａ〜Ｅの各々に対応している。図３Ａ〜Ｅ中の斜線部分は、リザーブ領域である。送信される内部パケットに対しては、header#CRCやdata#CRCの計算やsource#IDの付加等のパケットの再構成がＬＩＮＫ４２で行われる。また、内部パケットが受信されたものである場合には、それはＬＩＮＫ４２による誤り検出・訂正等の結果である。
【００１４】
前記ＲＦＩＬ８は、データ受信時には、イニシエータ１からのデータの送信を要求するＢＲＲＱパケットに対応するデータフィールドにデータが含まれたＢＲＲＳパケットが受信された場合には、その受信されたＢＲＲＳパケットの格納先をＤＴＲＦ７にし、それ以外のパケットが受信された場合には、その格納先をＡＲＦ５にするように動作する。またイニシエータ１にデータを送信する時には、ＲＦＩＬ８は、受信されたパケット中のｔｃｏｄｅとｒｃｏｄｅとｔｌとから、送信するデータをデータフィールドに含むＢＷＲＱパケットに対して対をなすＷＲＳパケットが受信されたと判断されると、受信したパケットをＤＴＲＦ７に格納するとともに応答検出の旨をＰＰＲＣ１０に知らせ、それ以外のパケットが受信された場合には、受信したパケットをＡＲＦ５に格納するとともに一時停止命令をＰＰＲＣ１０へ発行するように動作する。前記ＴＦＩＬ９は、データ伝送時において、送信するパケットをＡＴＦ６に格納するか、或いはＤＴＲＦ７に格納するかを、送信するパケットのｔｃｏｄｅにより選択する。
【００１５】
図４は、図１中のパケット処理回路（ＰＰＲＣ）１０の詳細構成を示している。ＰＰＲＣ１０は、ヘッダフィールド書き込み回路（ＨＦＷ：header field write circuit）２０と、データフィールド書き込み回路（ＤＦＷ：data field write circuit）２１と、ヘッダフィールド読み出し回路（ＨＦＲ：header field read circuit）２２と、データフィールド読み出し回路（ＤＦＲ：data field read circuit）２３と、処理コントローラ（ＰＲＣＣ：process controller）３０とを備えている。ＰＲＣＣ３０は、要求パケットカウンタ３１と、応答パケットカウンタ３２と、一時停止コントローラ３３とを備えている。ＨＦＷ２０は、イニシエータ１からのデータ受信時にはデータの送信を要求するためのＢＲＲＱパケットを作成し、イニシエータ１へのデータ送信時にはデータを含むＢＷＲＱパケットのヘッダフィールドを作成して、いずれもＴＦＩＬ９に与える。また、ＨＦＷ２０は、ＣＰＵ１１からレジスタ１２を経由して与えられたペイロード（payload）サイズに応じてパケット内のデータ長（data#length）を決定し、大量のデータを複数のパケットに分割して伝送する場合には、ヘッダフィールド内のｔｌの値をパケット毎に変え、デスティネーションオフセット（destination#offset）を更新する。ＤＦＷ２１は、イニシエータ１へデータを送信する場合に、ＨＦＷ２０が作成してＴＦＩＬ９に与えたＢＷＲＱパケットヘッダの後に、ＨＦＷ２０から与えられたdata#lengthの値に応じて、ＤＭＡＣ１３からデータを受け取ってＴＦＩＬ９に与える。要求パケットカウンタ３１は、ＴＦＩＬ９に与えた要求パケットの数をカウントする。ＨＦＲ２２は、イニシエータ１からのデータ受信時にはＢＲＲＱパケットに対するＢＲＲＳパケットのヘッダフィールドを読み出し、イニシエータ１へのデータ送信時にはＢＷＲＱパケットに対するＷＲＳパケットのヘッダフィールドを読み出して、それぞれｒｃｏｄｅの確認を行う。ｒｃｏｄｅが処理完了（resp#complete）以外の場合には、その旨がＰＲＣＣ３０及びレジスタ１２を経由してＣＰＵ１１に通知される。ＤＦＲ２３は、イニシエータ１からのデータ受信時に、ＨＦＲ２２がＢＲＲＳパケットのヘッダフィールドを読み出した後、ＨＦＲ２２から与えられたdata#lengthの値に応じて、ＤＴＲＦ７からデータを読み出しながらＤＭＡＣ１３に転送する。応答パケットカウンタ３２は、ＤＴＲＦ７から読み出した応答パケットの数をカウントし、かつデータ伝送累積数をカウントして、要求パケットカウンタ３１の値と応答パケットカウンタ３２の値とが一致し、かつレジスタ１２を経由してＣＰＵ１１から与えられたデータ伝送総数とデータ伝送累積数とが一致した時点でデータ伝送終了と判断して、レジスタ１２を経由してＣＰＵ１１に知らせる。一時停止コントローラ３３は、データ伝送においてＰＰＲＣ１０が発行した要求パケットに対する応答パケット以外のパケット受信をＲＦＩＬ８が検出すると、ＨＦＷ２０に対して新たなパケットヘッダの作成を停止させ、応答パケットカウンタ３２に対して要求パケットカウンタ３１の値との一致で一時停止完了をレジスタ１２を経由してＣＰＵ１１に知らせるように指示する。
【００１６】
図５は、ＳＢＰ−２を用いてイニシエータ１とターゲット２との間でデータの伝送を行う場合の、基本的なプロトコルの動作説明図である。イニシエータ１がターゲット２からデータを読み込む場合、つまりイニシエータ１がＲＥＡＤコマンドを発行した場合の動作について、図５を用いて説明する。データ伝送を行う前には種々のやり取りが行われるが、ここでは説明を省略する。
【００１７】
（１）データを伝送しようとすると、まずイニシエータ１は、ターゲット２側のＣＳＲ空間に定義されているORB#POINTERレジスタ宛に、自らのシステムメモリ内に作成しておいたＯＲＢ（operation request block）のアドレスをデータフィールドに含むＢＷＲＱパケットを発行し、ターゲット２側のORB#POINTERレジスタに書き込む。ＯＲＢは、イニシエータ１からのコマンドを含むものである。これに対して、ターゲット２は、ｒｃｏｄｅが処理完了（resp#complete）を示すＷＲＳパケットを返す。
【００１８】
（２）ターゲット２は、ＯＲＢが格納されたイニシエータ１のシステムメモリアドレスに対して、ＢＲＲＱパケットを発行する。イニシエータ１は、このＢＲＲＱパケットを受信すると、その応答パケットであるＢＲＲＳパケットのデータフィールドにＯＲＢを格納し送信する。このようにして、ターゲット２はイニシエータ１からＯＲＢ、つまりコマンドを受け取る。
【００１９】
（３）ターゲット２は、受け取ったＯＲＢを解析し、ＲＥＡＤコマンドであった場合、伝送すべきデータが準備できると、そのデータをデータフィールドに含んだＢＷＲＱパケットを、ＲＥＡＤコマンドが含まれるＯＲＢで指定されたイニシエータ１のシステムメモリアドレスに対して発行し、データを書き込む。このとき、ＢＷＲＱパケットの大きさは、ＩＥＥＥ１３９４バス３の伝送速度等に依存するために、大量のデータを伝送しようとすると、データを複数個のＢＷＲＱパケットに分割して、伝送を行うことになる。このとき、伝送のタイミングとしては、１つのトランザクションが完了する、つまりターゲット２がＢＷＲＱパケットに対して処理完了（ack#complete）を示すＡＣＫパケットを受信したか、或いは受信完了処理中（ack#pending）を示すＡＣＫパケットを受信し、その後ＢＷＲＱパケットに対して対となるresp#completeのＷＲＳパケットを受信したことを確認しながら行われる。
【００２０】
（４）ＯＲＢで指定されたデータ長の伝送が全て終了すると、ターゲット２は、予めイニシエータ１が指定したアドレスにＲＥＡＤコマンドに対するステータスをＢＷＲＱパケットを用いて書き込む。
【００２１】
以上で、ＲＥＡＤコマンドに関する一連の動作が完了するが、これらのトランザクションのうち、ターゲット２から送られたＢＷＲＱパケットをイニシエータ１が受信できない場合、再送要求を示すＡＣＫパケットをイニシエータ１が返すことにより、リトライ（再送）を行うことができる。
【００２２】
同様に、ＷＲＩＴＥコマンドの場合は、データの伝送時には、イニシエータ１のシステムメモリ中に格納されたデータを、ターゲット２がＢＲＲＱパケットを利用して読み込み、光ディスク１６に書き込む。
【００２３】
図６Ａ〜Ｃは、ＲＥＡＤコマンドの実行中にイニシエータ１がターゲット２側の不図示のコンフィギュレーションＲＯＭへのアクセスを要求するＢＲＲＱパケットを発行した場合のタイミングチャートである。ＤＴＲＦ７の容量は２×ｋクワッドレットであるものとする。ここに、ｋは最大転送パケットサイズである。具体的には、本実施形態では、伝送速度が２００Ｍｂｐｓ（いわゆるＳ２００）であるものとし、１パケットに含まれ得る伝送可能なデータ長は１０２４バイト（２５６クワッドレット）であるものとする。つまり、ＤＴＲＦ７のバッファサイズは、データを伝送する際に用いられるパケット、つまりＳＢＰ−２プロトコルの場合は、ＲＥＡＤコマンドではＢＷＲＱパケット、ＷＲＩＴＥコマンドではＢＲＲＳパケットであるので、これらのパケットサイズの２倍であるものとする。なお、パケットのデータフィールドの最大サイズは伝送速度に応じてＩＥＥＥ１３９４規格により定義されている。
【００２４】
図６Ａ〜Ｃの例では、１回のＲＥＡＤコマンドでイニシエータ１から要求されるデータ長を４０９６バイトとする。したがって、４０９６バイトのデータを伝送するためには、データを伝送するパケットのデータフィールドのサイズが１０２４バイトであるので、４回に分けてデータ伝送が行われる。
【００２５】
（１）ＣＰＵ１１はＲＥＡＤコマンドを確認後、光ディスク１６から必要なデータを読み出すために初期設定を行う。このとき、ＣＰＵ１１は、レジスタ１２を経由してＨＦＷ２０に、ＲＥＡＤコマンドで指定されたデータ格納先を示すイニシエータ１のシステムメモリのアドレス、イニシエータ１のＩＤ等のヘッダ情報を書き込む。
【００２６】
（２）ＣＰＵ１１がレジスタ１２を介してＨＦＷ２０にデータ伝送起動をかけると、ＨＦＷ２０はＣＰＵ１１から与えられた情報を用いて、最初の１０２４バイトのデータを伝送するためのＢＷＲＱ＃１パケットのヘッダを作成し、ＴＦＩＬ９を経由してＤＴＲＦ７に書き込む。このとき、要求パケットカウンタ３１はカウントアップされ値は１となる。
【００２７】
（３）続いてＤＦＷ２１はＤＭＡＣ１３から１０２４バイトのデータを順次受け取り、ＴＦＩＬ９を経由してこれをＤＴＲＦ７に書き込む。このとき、ＨＦＷ２０はＲＦＩＬ８にＢＷＲＱ＃１パケットのｔｌを渡す。こうして１０２４バイトのデータを含んだＢＷＲＱ＃１パケットが１３９４バス３上に送出され、イニシエータ１に送られる。
【００２８】
（４）更にＨＦＷ２０は次の１０２４バイトのデータを伝送するためのＢＷＲＱ＃２パケットのヘッダを作成してＴＦＩＬ９を経由してＤＴＲＦ７に書き込む。このとき、要求パケットカウンタ３１はカウントアップされ値は２となる。またこのとき、ヘッダフィールド内のdestination#offsetは、先に送信したＢＷＲＱ＃１パケットのdestination#offsetに１０２４を加えた値となっており、またｔｌはインクリメントされている。
【００２９】
（５）続いてＤＦＷ２１はＤＭＡＣ１３から１０２４バイトのデータを順次受け取り、これを１０２０バイトまでＴＦＩＬ９を経由してＤＴＲＦ７に書き込む。最後の４バイトを書き込まないのは、ＢＷＲＱ＃２パケットを１３９４バス３上に送出させないためである。このままＰＰＲＣ１０はＢＷＲＱ＃１パケットの応答待ちとなる。
【００３０】
（６）ＢＷＲＱ＃１パケットを受信したイニシエータ１は、このＢＷＲＱ＃１パケットに対するＷＲＳパケットを返送する。
【００３１】
（７）ターゲット２が受信したＷＲＳパケットはＲＦＩＬ８に与えられる。ＲＦＩＬ８は、この受信パケットのｔｃｏｄｅがＷＲＳパケットのそれであり、かつｔｌがＢＷＲＱ＃１パケットのそれと一致し、かつｒｃｏｄｅがresp#completeであることを確認して、応答パケットカウンタ３２に応答検出信号を送る。ＰＰＲＣ１０は、この応答検出信号によってトランザクションの正常終了を確認する。このとき、応答パケットカウンタ３２はカウントアップされ値は１になる。
【００３２】
（８）応答検出信号を受け取った応答パケットカウンタ３２は、ＤＦＷ２１に通知して、この通知を受けたＤＦＷ２１はＢＷＲＱパケット＃２の最後の４バイトをＴＦＩＬ９を経由してＤＴＲＦ７に書き込む。このとき、ＨＦＷ２０はＲＦＩＬ８にＢＷＲＱ＃２パケットのｔｌを渡す。こうして１０２４バイトのデータを含んだＢＷＲＱ＃２パケットが１３９４バス３上に送出され、イニシエータ１に送られる。
【００３３】
（９）更にＨＦＷ２０は次の１０２４バイトのデータを伝送するためのＢＷＲＱ＃３パケットのヘッダを作成して、ＴＦＩＬ９を経由してＤＴＲＦ７に書き込む。このとき、要求パケットカウンタ３１はカウントアップされ値は３となる。またこのとき、ヘッダフィールド内のdestination#offsetは、先に送信したＢＷＲＱ＃２パケットのdestination#offsetに１０２４を加えた値となっており、またｔｌはインクリメントされている。
【００３４】
（１０）続いてＤＦＷ２１はＤＭＡＣ１３から１０２４バイトのデータを順次受け取り、これを１０２０バイトまでＴＦＩＬ９を経由してＤＴＲＦ７に書き込む。最後の４バイトを書き込まないのは、ＢＷＲＱ＃３パケットを１３９４バス３上に送出させないためである。このままＰＰＲＣ１０はＢＷＲＱ＃２パケットの応答待ちとなる。
【００３５】
（１１）ＢＷＲＱ＃２パケットを受信したイニシエータ１は、不図示のコンフィギュレーションＲＯＭへのアクセスを要求するＢＲＲＱパケット（図６Ａ中のハッチング）を発行し、続いてＢＷＲＱ＃２パケットに対するＷＲＳパケットを返送する。
【００３６】
（１２）ターゲット２が受信したＢＲＲＱパケットはＲＦＩＬ８に与えられる。この受信パケットのｔｃｏｄｅは期待しているＷＲＳパケットのそれではないので、ＣＰＵ１１宛のパケットを受信したことをＣＰＵ１１に通知し、同パケットをＡＲＦ５に格納する。ＣＰＵ１１はこの通知を受けるが、データ伝送中なので一時停止完了待ちとなる。同時にＲＦＩＬ８は、一時停止コントローラ３３に対して一時停止命令を出す。
【００３７】
一時停止命令を受けた一時停止コントローラ３３はＨＦＷ２０に対して、新たな要求パケットの作成を停止するように命令し、また応答パケットカウンタ３２に対して、要求パケットカウンタ３１と値が一致した場合にはレジスタ１２を経由してＣＰＵ１１に一時停止完了を通知するように命令する。
【００３８】
ターゲット２が続いて受信したＷＲＳパケットはＲＦＩＬ８に与えられる。ＲＦＩＬ８は、この受信パケットのｔｃｏｄｅがＷＲＳパケットのそれであり、かつｔｌがＢＷＲＱ＃２パケットのそれと一致し、かつｒｃｏｄｅがresp#completeであることを確認して、応答パケットカウンタ３２に応答検出信号を送る。ＰＰＲＣ１０は、この応答検出信号によってトランザクションの正常終了を確認する。このとき、応答パケットカウンタ３２はカウントアップされ値は２になる。
【００３９】
（１３）応答検出信号を受け取った応答パケットカウンタ３２は、要求パケットカウンタ３１とまだ値が一致していないのでＤＦＷ２１に通知して、この通知を受けたＤＦＷ２１はＢＷＲＱ＃３パケットの最後の４バイトをＴＦＩＬ９を経由してＤＴＲＦ７に書き込む。このとき、ＨＦＷ２０はＲＦＩＬ８にＢＷＲＱ＃３パケットのｔｌを渡す。こうして１０２４バイトのデータを含んだＢＷＲＱ＃３パケットが１３９４バス３上に送出され、イニシエータ１に送られる。このとき、ＨＦＷ２０は新たなＢＷＲＱパケットのヘッダを作成しない。
【００４０】
（１４）ＢＷＲＱ＃３パケットを受信したイニシエータ１は、このＢＷＲＱ＃３パケットに対するＷＲＳパケットを返送する。
【００４１】
（１５）ターゲット２が受信したＷＲＳパケットはＲＦＩＬ８に与えられる。ＲＦＩＬ８は、この受信パケットのｔｃｏｄｅがＷＲＳパケットのそれであり、かつｔｌがＢＷＲＱ＃３パケットのそれと一致し、かつｒｃｏｄｅがresp#completeであることを確認して、応答パケットカウンタ３２に応答検出信号を送る。ＰＰＲＣ１０は、この応答検出信号によってトランザクションの正常終了を確認する。このとき、応答パケットカウンタ３２はカウントアップされ値は３になり、要求パケットカウンタ３１の値と等しくなるので、応答パケットカウンタ３２はレジスタ１２経由でＣＰＵ１１に対して一時停止完了の通知をする。またこの時点でＡＲＦ５、ＡＴＦ６及びＤＴＲＦ７は共に空になっており、ＣＰＵ１１が自由にパケットの送受信を行うことができる状態になっている。
【００４２】
（１６）一時停止完了通知を受けたＣＰＵ１１は、先にイニシエータ１から受け取っていたＢＲＲＱパケットに対するＢＲＲＳパケットを作成し、これをＡＴＦ６に書き込む。このＢＲＲＳパケットは１３９４バス３上に送出され、イニシエータ１に返される。
【００４３】
（１７）ＣＰＵ１１は続けてトランザクションを起こす必要があれば行い、不要になった時点でＨＦＷ２０に対してレジスタ１２を介してデータ伝送再起動を命令する。
【００４４】
（１８）ＰＰＲＣ１０は最後の１０２４バイトのデータ伝送を＃３のトランザクション同様に行ってデータ伝送を終了し、ＣＰＵ１１に伝送終了を通知してデータ伝送が終了する。
【００４５】
以上述べてきたように、本実施形態によれば、ＡＲＦ５及びＡＴＦ６に加えてＤＴＲＦ７を設け、これらのバッファを状況に応じて使い分けることにより、ファームウェアのオーバーヘッドを少なくして、高速なデータ伝送が可能になる。また、データ伝送動作中に該動作に関係のないパケットをターゲット２が受信した場合には、その受信時点でのトランザクションが完結した時点でデータ伝送が一時停止し、再起動をかけるまでの間ＣＰＵ１１が自由に他のトランザクションを実行することができる。
【００４６】
図７は、本発明の他の実施の形態のデータ伝送装置の構成図である。これは、図１の構成にパケット転送制御回路（ＰＴＲＣ：packet transmission controller）１８と、ページテーブルメモリ（ＰＴＭ：page table memory）１９とを付加したものである。ＰＴＭ１９は、イニシエータ１中の記憶場所の間接アドレス指定に用いられるページテーブルデータを格納するためのメモリである。ＰＴＲＣ１８は、ＰＰＲＣ１０とＣＰＵ１１との間に介在し、ＰＰＲＣ１０を制御するようにＣＰＵ１１により起動される。詳細に説明すると、ＰＴＲＣ１８は、ページテーブルを用いたデータ伝送の要求をＡＲＦ５を介してＣＰＵ１１が受け取ると、該ＣＰＵ１１により起動されて、イニシエータ１からページテーブルデータを取得するためのＢＲＲＱパケットをＰＰＲＣ１０に作成させ、該ＰＰＲＣ１０がＤＴＲＦ７を介して取得したページテーブルデータをＰＴＭ１９に格納し、かつ該ＰＴＭ１９に格納されたページテーブルデータにより指定されたイニシエータ１中の記憶場所へのアクセスのための要求パケット（例えばＢＷＲＱパケット）をＰＰＲＣ１０に作成させる。
【００４７】
図８は、ページテーブルを用いたデータ伝送の要求を伴うＲＥＡＤコマンドをイニシエータ１が発行した場合の動作説明図である。イニシエータ１は、まず自らのシステムメモリ内にページテーブルデータ（P.T.DATA）を作成する。ここでは、ｎ（ｎは整数）ページのテーブルが作成されるものとする。このページテーブルの先頭アドレスがＰＴＡ（ページテーブルアドレス）である。ページ１は、データ格納先を示すイニシエータ１のシステムメモリのアドレス（ＡＤＲ１）と、データ長（LENGTH１）とを含んでいる。他のページも同様である。
【００４８】
（１）データを伝送しようとすると、まずイニシエータ１は、ターゲット２側のＣＳＲ空間に定義されているORB#POINTERレジスタ宛に、自らのシステムメモリ内に作成しておいたＯＲＢのアドレスをデータフィールドに含むＢＷＲＱパケットを発行し、ターゲット２側のORB#POINTERレジスタに書き込む。これに対して、ターゲット２は、ｒｃｏｄｅが処理完了（resp#complete）を示すＷＲＳパケットを返す。
【００４９】
（２）ターゲット２は、ＯＲＢが格納されたイニシエータ１のシステムメモリアドレスに対して、ＢＲＲＱパケットを発行する。イニシエータ１は、このＢＲＲＱパケットを受信すると、その応答パケットであるＢＲＲＳパケットのデータフィールドにＯＲＢを格納し送信する。このようにして、ターゲット２はイニシエータ１からＯＲＢ、つまりコマンドを受け取る。このＯＲＢの中には、ページテーブルの存在を示す情報と、ＰＴＡと、ページ数ｎとが含まれている。
【００５０】
（３）ターゲット２は、ＯＲＢを解析してページテーブルの存在を確認した後、ｎページのページテーブルデータを読み出すべく、イニシエータ１のアドレスＰＴＡに対してＢＲＲＱパケットを発行する。イニシエータ１は、このＢＲＲＱパケットに対して、所要のページテーブルデータを含んだＢＲＲＳパケットをターゲット２へ返す。ターゲット２は、受け取ったページテーブルデータを解析し、その結果をＰＴＭ１９に格納する。
【００５１】
（４）ターゲット２は、伝送すべきページ１のデータが準備できると、そのデータをデータフィールドに含んだＢＷＲＱパケットを、ＡＤＲ１で指定されたイニシエータ１のシステムメモリアドレスに対して発行し、データを書き込む。このとき、LENGTH１がペイロードサイズを越えている場合には、ページ１のデータを複数個のＢＷＲＱパケットに分割して、伝送を行うことになる。伝送のタイミングとしては、１つのトランザクションが完了する、つまりターゲット２がＢＷＲＱパケットに対して処理完了（ack#complete）を示すＡＣＫパケットを受信したか、或いは受信完了処理中（ack#pending）を示すＡＣＫパケットを受信し、その後ＢＷＲＱパケットに対して対となるresp#completeのＷＲＳパケットを受信したことを確認しながら行われる。そして、指定された全ページのデータ伝送が完了するまで、ＰＴＭ１９が繰り返し参照される。
【００５２】
そして、ＯＲＢで指定されたデータ長の伝送が全て終了すると、図示を省略するが、ターゲット２は、予めイニシエータ１が指定したアドレスにＲＥＡＤコマンドに対するステータスをＢＷＲＱパケットを用いて書き込む。このシーケンスは、図５中の（４）と同様である。
【００５３】
図９Ａ及びＢは、ＲＥＡＤコマンドの実行に際してページテーブルを用いる場合のタイミングチャートである。ここでは、ページ数ｎを２とする。ただし、図７中のターゲット２は、ＷＲＩＴＥコマンドの実行に際してページテーブルを用いる場合にも対処できるものである。
【００５４】
（１）ＣＰＵ１１は、イニシエータ１から取得したＯＲＢで示された情報を元に、ページテーブルアドレスＰＴＡと、ページ数ｎと、ペイロードサイズと、ｔｃｏｄｅと、ｔｌの初期値とをＰＴＲＣ１８に設定した後で、このＰＴＲＣ１８を起動する。
【００５５】
（２）ＰＴＲＣ１８は、イニシエータ１からページテーブルデータを取得するためのＢＲＲＱ＃０パケットを作成するように、ＰＲＣＣ３０を介してＨＦＷ２０を制御する。
【００５６】
（３）ＨＦＷ２０はＢＲＲＱ＃０パケットを作成し、ＴＦＩＬ９を経由してＡＴＦ６に書き込む。こうしてＢＲＲＱ＃０パケットが１３９４バス３上に送出され、イニシエータ１に送られる。
【００５７】
（４）ＰＲＣＣ３０は、ＢＲＲＱ＃０パケットに対してイニシエータ１から返されるＡＣＫパケット及びＢＲＲＳ＃０パケットを受け取るまで待つ。
【００５８】
（５）ターゲット２が受信したＢＲＲＳ＃０パケットは、ＲＦＩＬ８を経由してＤＴＲＦ７に書き込まれる。この受信パケットのｔｃｏｄｅがＢＲＲＳパケットのそれであり、かつｔｌがＢＲＲＱ＃０パケットのそれと一致することがＲＦＩＬ８により確認されると、ＰＲＣＣ３０はＤＴＲＦ７からヘッダ＃０を読み出すようにＨＦＲ２２を起動する。更にＰＲＣＣ３０は、受信したＢＲＲＳ＃０パケットのｒｃｏｄｅがresp#completeであることを条件として、当該パケット中のデータ＃０を読み出すようにＤＦＲ２３を起動する。ＤＦＲ２３は、ＨＦＲ２２が読み出したヘッダ情報を元にデータ＃０をＤＴＲＦ７から読み出し、これをＰＲＣＣ３０へ送る。
【００５９】
（６）ＰＴＲＣ１８は、ＰＲＣＣ３０からデータ＃０、すなわちページテーブルデータを受け取り、これをＰＴＭ１９に書き込む。
【００６０】
（７）ＰＴＲＣ１８は、ＰＴＭ１９からページ１の情報（ＡＤＲ１及びLENGTH１）を読み出し、この情報を元に、ページ１のデータをイニシエータ１へ伝送するためのＢＷＲＱ＃１１パケットを作成するように、ＰＲＣＣ３０を介してＨＦＷ２０を制御する。
【００６１】
（８）ＨＦＷ２０はヘッダ＃１１を、ＤＦＷ２１はデータ＃１１をそれぞれ作成し、ＴＦＩＬ９を経由してＤＴＲＦ７に書き込む。こうしてＢＷＲＱ＃１１パケットが１３９４バス３上に送出され、イニシエータ１に送られる。このとき、LENGTH１がペイロードサイズを越えている場合には、ページ１のデータが複数個のＢＷＲＱパケットに分割される。その結果、イニシエータ１では、ＡＤＲ１から始まる記憶場所にLENGTH１の長さのデータが格納される。
【００６２】
（９）ＰＴＲＣ１８は、ＰＴＭ１９からページ２の情報（ＡＤＲ２及びLENGTH２）を更に読み出し、この情報を元に、ページ２のデータをイニシエータ１へ伝送するためのＢＷＲＱ＃２１パケットを作成するように、ＰＲＣＣ３０を介してＨＦＷ２０を制御する。
【００６３】
（１０）ＨＦＷ２０はヘッダ＃２１を、ＤＦＷ２１はデータ＃２１をそれぞれ作成し、ＴＦＩＬ９を経由してＤＴＲＦ７に書き込む。こうしてＢＷＲＱ＃２１パケットが１３９４バス３上に送出され、イニシエータ１に送られる。このとき、LENGTH２がペイロードサイズを越えている場合には、ページ２のデータが複数個のＢＷＲＱパケットに分割される。その結果、イニシエータ１では、ＡＤＲ２から始まる記憶場所にLENGTH２の長さのデータが格納される。
【００６４】
（１１）この後、ＰＴＲＣ１８は所要の全データ送信が正常に終了したことを確認するか、又は途中で異常終了したことを確認すると、ＣＰＵ１１へ割り込み信号ＩＮＴ（正常終了の場合はcomplete、異常終了の場合はerror）をアサートして送信処理の終了を伝える。
【００６５】
以上述べてきたように、本実施形態によれば、ＡＲＦ５及びＡＴＦ６に加えてＤＴＲＦ７を設け、これらのバッファを状況に応じて使い分けることにより、ファームウェアのオーバーヘッドを少なくして、高速なデータ伝送が可能になる。また、ＰＴＲＣ１８が起動された後は、ページテーブルを用いたデータ伝送がＣＰＵ１１の介入なしに自動的に実行される。
【００６６】
【発明の効果】
以上のとおり、本発明によれば、従来のＣＰＵファームウェア処理の一部をハードウェアに分担させることとしたので、高速データ伝送を実現することができる。
【図面の簡単な説明】
【図１】本発明に係るデータ伝送装置を備えた光ディスクドライブの内部構成例を示すブロック図である。
【図２Ａ】図１中のＩＥＥＥ１３９４バス上のＢＷＲＱパケットの構成を示す説明図である。
【図２Ｂ】図１中のＩＥＥＥ１３９４バス上のＱＷＲＱパケットの構成を示す説明図である。
【図２Ｃ】図１中のＩＥＥＥ１３９４バス上のＷＲＳパケットの構成を示す説明図である。
【図２Ｄ】図１中のＩＥＥＥ１３９４バス上のＢＲＲＱパケットの構成を示す説明図である。
【図２Ｅ】図１中のＩＥＥＥ１３９４バス上のＢＲＲＳパケットの構成を示す説明図である。
【図３Ａ】図１の光ディスクドライブにおける内部ＢＷＲＱパケットの構成を示す説明図である。
【図３Ｂ】図１の光ディスクドライブにおける内部ＱＷＲＱパケットの構成を示す説明図である。
【図３Ｃ】図１の光ディスクドライブにおける内部ＷＲＳパケットの構成を示す説明図である。
【図３Ｄ】図１の光ディスクドライブにおける内部ＢＲＲＱパケットの構成を示す説明図である。
【図３Ｅ】図１の光ディスクドライブにおける内部ＢＲＲＳパケットの構成を示す説明図である。
【図４】図１中のパケット処理回路の詳細構成例を示すブロック図である。
【図５】図１におけるＲＥＡＤコマンド実行時の動作説明図である。
【図６Ａ】図１における各部の動作を示すタイミングチャートである。
【図６Ｂ】図６Ａに続くタイミングチャートである。
【図６Ｃ】図６Ｂに続くタイミングチャートである。
【図７】本発明に係るデータ伝送装置を備えた光ディスクドライブの他の内部構成例を示すブロック図である。
【図８】図７におけるＲＥＡＤコマンド実行時の動作説明図である。
【図９Ａ】図７における各部の動作を示すタイミングチャートである。
【図９Ｂ】図９Ａに続くタイミングチャートである。
【符号の説明】
１  ホストＰＣ（イニシエータ）
２  光ディスクドライブ（ターゲット）
３  ＩＥＥＥ１３９４シリアルバス
４  送受信回路
５  受信専用バッファ（ＡＲＦ）
６  送信専用バッファ（ＡＴＦ）
７  送受信兼用バッファ（ＤＴＲＦ）
８  受信用フィルタ（ＲＦＩＬ）
９  送信用フィルタ（ＴＦＩＬ）
１０  パケット処理回路（ＰＰＲＣ）
１１  中央処理ユニット（ＣＰＵ）
１２  レジスタ
１３  ＤＭＡコントローラ（ＤＭＡＣ）
１４  光ディスクコントローラ（ＯＤＣ）
１５  アナログ信号処理回路
１６  光ディスク
１７  光ヘッド
１８  パケット転送制御回路（ＰＴＲＣ）
１９  ページテーブルメモリ（ＰＴＭ）
２０  ヘッダフィールド書き込み回路（ＨＦＷ）
２１  データフィールド書き込み回路（ＤＦＷ）
２２  ヘッダフィールド読み出し回路（ＨＦＲ）
２３  データフィールド読み出し回路（ＤＦＲ）
３０  処理コントローラ（ＰＲＣＣ）
３１  要求パケットカウンタ
３２  応答パケットカウンタ
３３  一時停止コントローラ
４１  物理層コントローラ（ＰＨＹ）
４２  リンク層コントローラ（ＬＩＮＫ）
【図１】
0004362199.tif 000002
【図２Ａ】
0004362199.tif 000003
【図２Ｂ】
0004362199.tif 000004
【図２Ｃ】
0004362199.tif 000005
【図２Ｄ】
0004362199.tif 000006
【図２Ｅ】
0004362199.tif 000007
【図３Ａ】
0004362199.tif 000008
【図３Ｂ】
0004362199.tif 000009
【図３Ｃ】
0004362199.tif 000010
【図３Ｄ】
0004362199.tif 000011
【図３Ｅ】
0004362199.tif 000012
【図４】
0004362199.tif 000013
【図５】
0004362199.tif 000014
【図６Ａ】
0004362199.tif 000015
【図６Ｂ】
0004362199.tif 000016
【図６Ｃ】
0004362199.tif 000017
【図７】
0004362199.tif 000018
【図８】
0004362199.tif 000019
【図９Ａ】
0004362199.tif 000020
【図９Ｂ】
0004362199.tif 000021