(57)【特許請求の範囲】
【請求項１】
ＣＰＵに接続されたシーケンス処理装置であって、
バスからパケットを受け取るリンクコア回路と、
前記リンクコア回路から前記パケットを受け取り、前記パケットの内容に応じて制御信号を出力するパケットフィルタ回路と、
前記パケットフィルタ回路からの制御信号に応答して、コマンド処理シーケンスの実行を制御するシーケンス制御回路と、
前記シーケンス制御回路の制御下で、前記リンクコア回路からの前記パケットをコマンド受信バッファに出力するパケット処理回路と
を備え、
前記ＣＰＵは、前記コマンド受信バッファに格納された前記パケットから読み出されるコマンドを実行し、前記シーケンス制御回路によるコマンド処理シーケンスの実行中には、前記コマンド受信バッファに格納された前記パケットに基づいて、前記コマンド処理シーケンスの実行結果を示すステータス情報のひな型を作成することを特徴とするシーケンス処理装置。
【請求項２】
前記シーケンス制御回路は、前記コマンド処理シーケンスが実行されている間、前記コマンド処理シーケンスに関連しないパケットを前記バスから受け取ることを禁止するように前記リンクコア回路を制御する、請求項１に記載のシーケンス処理装置。
【請求項３】
前記シーケンス制御回路によって起動され、データ転送処理シーケンスの実行を制御するデータ転送制御回路をさらに備えており、前記シーケンス制御回路は、前記パケットフィルタ回路からの制御信号に応答して、該データ転送制御回路を起動させる、請求項１に記載のシーケンス処理装置。
【請求項４】
前記シーケンス制御回路は、前記データ転送処理シーケンスが実行されている間、前記バスから任意のパケットを受け取るように前記リンクコア回路を制御する、請求項３に記載のシーケンス処理装置。
【請求項５】
前記データ転送処理シーケンスが実行されている間に前記リンクコア回路が前記バスからパケットを受け取った場合には、前記データ転送制御回路は、前記データ転送処理シーケンスの実行を一時中断し、
前記シーケンス制御回路は、前記受け取ったパケットに基づく新たなコマンド処理シーケンスの実行を開始する、請求項３に記載のシーケンス処理装置。
【請求項６】
前記シーケンス制御回路は、前記新たなコマンド処理シーケンスが実行されている間、前記新たなコマンド処理シーケンスに関連しないパケットを前記バスから受け取ることを禁止するように前記リンクコア回路を制御する、請求項５に記載のシーケンス処理装置。
【請求項７】
前記シーケンス処理装置は、複数のコマンド受信バッファを有しており、
前記パケット処理回路は、前記リンクコアからの前記パケットを前記複数のコマンド受信バッファに選択的に出力する、請求項１に記載のシーケンス処理装置。
【請求項８】
前記シーケンス処理装置は、前記ステータス情報のひな型を格納するステータス送信バッファをさらに有しており、
前記ＣＰＵは、前記コマンド処理シーケンスが終了する前に、作成した前記ステータス情報のひな型を前記ステータス送信バッファに格納する、請求項１に記載のシーケンス処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、シーケンス処理装置に関し、特に、ＩＥＥＥ１３９４方式のインタフェースを用いてデータを転送するためのシーケンスを処理するシーケンス処理装置に関する。
【０００２】
【従来の技術】
従来、コンピュータなどの電子機器とハードディスク装置などの記録装置との間でデータを転送するための方式としては、ＳＣＳＩ方式が採用されてきた。
【０００３】
最近、ハードディスク装置のデータ転送速度の向上や巨大磁気抵抗効果を利用したヘッドの実用化が近づくにつれて、記録密度の向上とともにデータ転送速度の向上が続けられている。また、マイクロプロセッサの性能の向上も著しい。
【０００４】
このような状況下で、ＳＣＳＩ方式より速くデータを転送することが可能なインタフェースの開発が求められている。
【０００５】
ＡＶ機器とコンピュータなどの電子機器とを接続するインタフェースとして、ＩＥＥＥ１３９４方式のインタフェースが次世代インタフェースとして注目されている。これは、ＩＥＥＥ１３９４方式のインタフェースがアシンクロナス（Ａｓｙｎｃｒｏｎｏｕｓ）通信とアイソクロナス（Ｉｓｏｃｈｒｏｎｏｕｓ）通信とを定義しているからである。
【０００６】
アシンクロナス通信は、記録媒体から読み出されたデータをコンピュータに転送する場合のようにリアルタイム性が要求されず、信頼性をより要求される通信に用いられる。アイソクロナス通信は、動画などのＡＶデータを転送する場合のように信頼性以上にリアルタイム性を要求される通信に用いられる。
【０００７】
例えば、ＩＥＥＥ１３９４方式のインタフェースを用いて、コンピュータから出力されたデータをＤＶＤ−ＲＡＭドライブ装置に格納したり、ＤＶＤ−ＲＡＭドライブ装置に記録されたデータをコンピュータが読み出したりする場合には、アシンクロナス通信が用いられる。
【０００８】
ＩＥＥＥ１３９４方式のアシンクロナス通信をする場合のイニシエータ（例えば、コンピュータ）とターゲット（例えば、周辺装置）との間のプロトコルとして、ＳＢＰ−２（Ｓｅｒｉａｌ  Ｂｕｓ  Ｐｒｏｔｏｃｏｌ）が知られている。ＳＢＰ−２は、現在、ＡＮＳＩにて審議が継続されている状態である。
【０００９】
以下、図８および図９を参照して、ＳＢＰ−２に従って、イニシエータ（例えば、ホストＰＣ）がターゲット（例えば、光ディスク装置）に記録されたデータを読み出す場合におけるコマンド処理シーケンスを説明する。
【００１０】
なお、ＳＢＰ−２においては、ＲＥＡＤ、ＷＲＩＴＥなどのコマンド系のコマンドと、ＬＯＧＩＮ、ＱＵＥＲＹ  ＬＯＧＩＮ、ＡＢＯＲＴ  ＴＡＳＫ、ＡＢＯＲＴ  ＴＡＳＫ  ＳＥＴなどのマネージメント系（タスク管理系）のコマンドとの２種類のコマンドが用意されている。
【００１１】
図８は、マネージメント系のＬＯＧＩＮコマンドを実行するためのコマンド処理シーケンスを示す。
【００１２】
（１）イニシエータは、ＱＲＲＱ（Ｑｕａｄｌｅｔ  Ｒｅａｄ  Ｒｅｑｕｅｓｔ）パケットを発行することにより、ターゲットのコンフィグレーションＲＯＭに格納されているＭＡＮＡＧＥＭＥＮＴ＿ＡＧＥＮＴレジスタのアドレスの取得を要求する。
【００１３】
（２）ターゲットは、イニシエータからのＱＲＲＱパケットに応答して、ＱＲＲＳ（Ｑｕａｄｌｅｔ  Ｒｅａｄ  Ｒｅｓｐｏｎｓｅ）パケットをイニシエータに返す。
【００１４】
（３）イニシエータは、ＢＷＲＱ（Ｂｌｏｃｋ  Ｗｒｉｔｅ  Ｒｅｑｕｅｓｔ）パケットを発行することにより、ＯＲＢ（Ｏｐｅｒａｔｉｏｎ  Ｒｅｑｕｅｓｔ  Ｂｌｏｃｋｓ）のアドレスをＭＡＮＡＧＥＭＥＮＴ＿ＡＧＥＮＴレジスタに書き込む。なお、ＯＲＢは、イニシエータにおいて予め用意されており、ＭＡＮＡＧＥＭＥＮＴ＿ＡＧＥＮＴレジスタは、ターゲットのＣＳＲ（ＣｏｎｔｒｏｌＳｔａｔｕｓ  Ｒｅｓｉｓｔｅｒ）空間に定義されている。
【００１５】
（４）ターゲットは、イニシエータからのＢＷＲＱパケットに応答して、ＷＲＳ（Ｗｒｉｔｅ  Ｒｅｓｐｏｎｓｅ）パケットをイニシエータに返す。
【００１６】
（５）ターゲットは、ＢＲＲＱ（Ｂｌｏｃｋ  Ｒｅａｄ  Ｒｅｑｕｅｓｔ）パケットを発行することにより、ＭＡＮＡＧＥＭＥＮＴ＿ＡＧＥＮＴレジスタに格納されたアドレスに位置するＯＲＢをイニシエータからターゲットに送信することを要求する。
【００１７】
（６）イニシエータは、ターゲットからのＢＲＲＱパケットに応答して、ＢＲＲＳ（Ｂｌｏｃｋ  Ｒｅａｄ  Ｒｅｓｐｏｎｓｅ）パケットをターゲットに返す。ＢＲＲＳパケットのデータフィールドには、ＯＲＢが格納されている。このようにして、ＯＲＢがイニシエータからターゲットに送信される。
【００１８】
（７）ターゲットは、イニシエータからＯＲＢを受信し、受信されたＯＲＢの内容を解析する。
【００１９】
（８）受信されたＯＲＢがＬＯＧＩＮコマンドを表す場合には、ターゲットは、そのＬＯＧＩＮコマンドを実行する。
【００２０】
（９）ＬＯＧＩＮコマンドの実行が終了した後、ターゲットは、ＬＯＧＩＮコマンドの実行結果を示すステータス情報を作成する。
【００２１】
（１０）ターゲットは、ＢＷＲＱパケットを発行することにより、ステータス情報をイニシエータに送信する。ステータス情報は、ＯＲＢによって指定される所定のアドレス（イニシエータのＳｔａｔｕｓ＿ＦＩＦＯアドレス）に格納される。
【００２２】
（１１）イニシエータは、ターゲットからのＢＷＲＱパケットに応答して、ＷＲＳパケットをターゲットに返す。
【００２３】
（１２）ターゲットは、イニシエータからのＷＲＳパケットのｒＣｏｄｅがｒｅｓｐ＿ｃｏｍｐｌｅｔｅであるか否かを判定する。イニシエータからのＷＲＳパケットのｒＣｏｄｅがｒｅｓｐ＿ｃｏｍｐｌｅｔｅである場合には、ＬＯＧＩＮコマンドに関する一連のコマンド処理シーケンスが完了する。
【００２４】
なお、図８には示されていないが、ターゲットは、イニシエータからのパケットを受信すると、Ａｃｋ  Ｐａｃｋｅｔ（Ａｃｋｎｏｗｌｅｄｇｅ  Ｐａｃｋｅｔ）をイニシエータに返す。同様に、イニシエータは、ターゲットからのパケットを受信すると、Ａｃｋ  Ｐａｃｋｅｔをターゲットに返す。
【００２５】
図９は、コマンド系のＲＥＡＤコマンドを実行するためのコマンド処理シーケンスを示す。図９に示されるコマンド処理シーケンスは、図８に示されるコマンド処理シーケンスが実行された後に実行される。
【００２６】
（１３）イニシエータは、ＲＥＡＤコマンドを表すＯＲＢを作成する。ＲＥＡＤコマンドを表すＯＲＢは、データ数、最大パケット長、転送方向、転送方法などＲＥＡＤコマンドを実行するために必要な情報を定義する。
【００２７】
（１４）イニシエータは、ＱＷＲＱパケットを発行することにより、ターゲットのＡＧＥＮＴ＿ＲＥＳＥＴレジスタをリセットする。なお、ＡＧＥＮＴ＿ＲＥＳＥＴレジスタは、ターゲットのＣＳＲ空間に定義されている。
【００２８】
（１５）ターゲットは、イニシエータからのＱＷＲＱパケットに応答して、ＷＲＳパケットをイニシエータに返す。
【００２９】
（１６）イニシエータは、ＢＷＲＱパケットを発行することにより、ＯＲＢのアドレスをＯＲＢ＿ＰＯＩＮＴＥＲレジスタに書き込む。なお、ＯＲＢ＿ＰＯＩＮＴＥＲレジスタは、ターゲットのＣＳＲ空間に定義されている。
【００３０】
（１７）ターゲットは、イニシエータからのＢＷＲＱパケットに応答して、ＷＲＳパケットをイニシエータに返す。
【００３１】
（１８）ターゲットは、ＢＲＲＱパケットを発行することにより、ＯＲＢ＿ＰＯＩＮＴＥＲレジスタに格納されたアドレスに位置するＯＲＢをイニシエータからターゲットに送信することを要求する。
【００３２】
（１９）イニシエータは、ターゲットからのＢＲＲＱパケットに応答して、ＢＲＲＳパケットをターゲットに返す。ＢＲＲＳパケットのデータフィールドには、ＯＲＢが格納されている。このようにして、ＯＲＢがイニシエータからターゲットに送信される。
【００３３】
（２０）ターゲットは、イニシエータからＯＲＢを受信し、受信されたＯＲＢの内容を解析する。
【００３４】
（２１）受信されたＯＲＢがＲＥＡＤコマンドを表す場合には、ターゲットは、そのＲＥＡＤコマンドを実行する。ＲＥＡＤコマンドの実行により、以下の（２２）および（２３）が繰り返される。これは、転送すべきデータのサイズが大きい場合には、そのデータを複数のパケットに分割して転送するためである。転送すべきデータは、ターゲットによって用意される。
【００３５】
（２２）ターゲットは、ＢＷＲＱパケットを発行することにより、ＯＲＢによって指定されるアドレスにデータを格納する。
【００３６】
（２３）イニシエータは、ターゲットからのＢＷＲＱパケットに応答して、ＷＲＳパケットをターゲットに返す。
【００３７】
（２２）および（２３）は１つのトランザクションを構成する。１つのトランザクションが正常に終了したことが確認された後に、次のトランザクションが実行される。このようにして、データ転送処理シーケンスが進むことになる。
【００３８】
（２４）データ転送処理シーケンスが正常に終了した後、ターゲットは、ＲＥＡＤコマンドの実行結果を示すステータス情報を作成する。
【００３９】
（２５）ターゲットは、ＢＷＲＱパケットを発行することにより、ステータス情報をイニシエータに送信する。ステータス情報は、ＯＲＢによって指定される所定のアドレスに格納される。
【００４０】
（２６）イニシエータは、ターゲットからのＢＷＲＱパケットに応答して、ＷＲＳパケットをターゲットに返す。
【００４１】
（２７）ターゲットは、イニシエータからのＷＲＳパケットのｒＣｏｄｅがｒｅｓｐ＿ｃｏｍｐｌｅｔｅであるか否かを判定する。イニシエータからのＷＲＳパケットのｒＣｏｄｅがｒｅｓｐ＿ｃｏｍｐｌｅｔｅである場合には、ＲＥＡＤコマンドに関する一連のコマンド処理シーケンスが完了する。
【００４２】
なお、図９には示されていないが、ターゲットは、イニシエータからのパケットを受信すると、Ａｃｋ  Ｐａｃｋｅｔをイニシエータに返す。同様に、イニシエータは、ターゲットからのパケットを受信すると、Ａｃｋ  Ｐａｃｋｅｔをターゲットに返す。
【００４３】
例えば、イニシエータまたはターゲットがパケットの受信に成功した場合には、イニシエータまたはターゲットは、パケットの受信に成功したことを示す”Ａｃｋ＿ｃｏｍｐｌｅｔｅ”という値を有するＡｃｋ  Ｐａｃｋｅｔを返す。イニシエータまたはターゲットがパケットを受信することができない状態である場合には、イニシエータまたはターゲットは、パケットを受信することができない状態であることを示す”Ａｃｋ＿ｂｕｓｙ”という値を有するＡｃｋ  Ｐａｃｋｅｔを返す。
【００４４】
データ転送処理シーケンスにおいて、ターゲットからのＢＷＲＱパケットに対してイニシエータが”Ａｃｋ＿ｂｕｓｙ”という値を有するＡｃｋ  Ｐａｃｋｅｔをターゲットに返した場合には、ターゲットはＢＷＲＱパケットをイニシエータに再送信する。
【００４５】
図１０は、ＳＢＰ−２に従ったコマンド処理シーケンスを実行する従来のシーケンス処理装置１１０の構成を示す。
【００４６】
シーケンス処理装置１１０は、１３９４バス１１２に接続される物理層コントローラ（ＰＨＹ）１００と、１３９４バス１１２からのパケットを物理層コントローラ１００を介して受け取り、パケットを物理層コントローラ１００を介して１３９４バス１１２に出力するリンク層コントローラ１０１とを含む。
【００４７】
リンク層コントローラ１０１には、ＣＰＵ１０２、ＤＭＡコントローラ１０３およびメモリ１０４が接続されている。
【００４８】
物理層コントローラ１００は、バスの初期化、アービトレーション、バイアス電圧の制御等の機能を有している。
【００４９】
リンク層コントローラ１０１は、リンクコア回路１０１ａと、送信用ＦＩＦＯ１０１ｂ−１と、受信用ＦＩＦＯ１０１ｂ−２と、コントロールステータスレジスタ（ＣＳＲ）１０１ｃと、インタフェース部１０１ｄとを含む。
【００５０】
リンクコア回路１０１ａは、誤り検出符号の作成／検出、パケットへの符号の付加、物理層コントローラ１００へのパケット送信、Ａｃｋ  Ｐａｃｋｅｔのコード検出およびリトライ等の機能を有している。送信用ＦＩＦＯ１０１ｂ−１および受信用ＦＩＦＯ１０１ｂ−２のサイズは、最大転送パケットサイズに等しい。
【００５１】
１３９４バス１１２からパケットが受信されると、そのパケットは受信用ＦＩＦＯ１０１ｂ−２に格納される。そのパケットに対するすべての処理は、ＣＰＵ１０２の制御下で行われる。ＣＰＵ１０２は、インタフェース部１０１ｄを介してＣＳＲ１０１ｃからデータを読み出し、または、ＣＳＲ１０１ｃにデータを書き込むことにより、リンク層コントローラ１０１の動作を制御する。
【００５２】
このようにして、パケットが受信用ＦＩＦＯ１０１ｂ−２に格納されると、そのパケットに関連するコマンド処理シーケンスがＣＰＵ１０２によって実行される。
【００５３】
なお、図８および図９を参照して説明したコンフィグレーションＲＯＭ、ＭＡＮＡＧＥＭＥＮＴ＿ＡＧＥＮＴレジスタ、ＡＧＥＮＴ＿ＲＥＳＥＴレジスタ、ＯＲＢ＿ＰＯＩＮＴＥＲレジスタは、図１０には示されていないが、いずれも、ＣＰＵ１０２内に設けられている。
【００５４】
【発明が解決しようとする課題】
しかしながら、従来のシーケンス処理装置１１０では、ＣＰＵ１０２がリンク層コントローラ１０１を制御することにより、ＣＰＵ１０２がコマンド処理シーケンスやデータ転送処理シーケンスの実行を制御する必要がある。このことは、ＣＰＵ１０２の負荷を増大させる。特に、ＤＶＤ−ＲＯＭ／ＲＡＭなどの記録装置によって取り扱われる大量のデータを転送する必要がある場合には、ＣＰＵ１０２の負荷が飛躍的に増大する。その結果、ＣＰＵ１０２によって実行されるファームウェアのオーバーヘッドが増大し、ＩＥＥＥ１３９４方式を採用することにより本来実現されるべき高速シリアルバスインタフェースとしての高い転送レートを実現することが非常に困難になる。また、ＣＰＵ１０２が制御すべき処理が増大するほどＣＰＵ１０２のＲＯＭ容量も大きくなるため、そのようなＣＰＵを含む装置を他のシステムに組み込みことは不都合を生じさせやすい。
【００５５】
本発明は、上記課題を解決するためになされたものであり、コマンド処理シーケンスの実行中におけるＣＰＵの負荷を軽減することにより、データを高速に転送することを可能にするシーケンス処理装置を提供することを目的とする。
【００５６】
【課題を解決するための手段】
本発明のシーケンス処理装置は、ＣＰＵに接続されたシーケンス処理装置であって、バスからパケットを受け取るリンクコア回路と、前記リンクコア回路から前記パケットを受け取り、前記パケットの内容に応じて制御信号を出力するパケットフィルタ回路と、前記パケットフィルタ回路からの制御信号に応答して、コマンド処理シーケンスの実行を制御するシーケンス制御回路と、前記シーケンス制御回路の制御下で、前記リンクコア回路からの前記パケットをコマンド受信バッファに出力するパケット処理回路とを備え、前記ＣＰＵは、前記コマンド受信バッファに格納された前記パケットから読み出されるコマンドを実行し、前記シーケンス制御回路によるコマンド処理シーケンスの実行中には、前記コマンド受信バッファに格納された前記パケットに基づいて、前記コマンド処理シーケンスの実行結果を示すステータス情報のひな型を作成することを特徴とする。これにより上記目的が達成される。
【００５７】
前記シーケンス制御回路は、前記コマンド処理シーケンスが実行されている間、前記コマンド処理シーケンスに関連しないパケットを前記バスから受け取ることを禁止するように前記リンクコア回路を制御してもよい。
【００５８】
前記シーケンス処理装置は、前記シーケンス制御回路によって起動され、データ転送処理シーケンスの実行を制御するデータ転送制御回路をさらに備えており、前記シーケンス制御回路は、前記パケットフィルタ回路からの制御信号に応答して、該データ転送制御回路を起動させる構成であってもよい。
【００５９】
前記シーケンス制御回路は、前記データ転送処理シーケンスが実行されている間、前記バスから任意のパケットを受け取るように前記リンクコア回路を制御してもよい。
【００６０】
前記データ転送処理シーケンスが実行されている間に前記リンクコア回路が前記バスからパケットを受け取った場合には、前記データ転送制御回路は、前記データ転送処理シーケンスの実行を一時中断し、前記シーケンス制御回路は、前記受け取ったパケットに基づく新たなコマンド処理シーケンスの実行を開始してもよい。
【００６１】
前記シーケンス制御回路は、前記新たなコマンド処理シーケンスが実行されている間、前記新たなコマンド処理シーケンスに関連しないパケットを前記バスから受け取ることを禁止するように前記リンクコア回路を制御してもよい。
【００６２】
前記シーケンス処理装置は、複数のコマンド受信バッファを有しており、前記パケット処理回路は、前記リンクコアからの前記パケットを前記複数のコマンド受信バッファに選択的に出力してもよい。
【００６３】
前記シーケンス処理装置は、前記ステータス情報のひな型を格納するステータス送信バッファをさらに有しており、前記ＣＰＵは、前記コマンド処理シーケンスが終了する前に、作成した前記ステータス情報のひな型を前記ステータス送信バッファに格納してもよい。
【００６４】
以下、作用を説明する。
【００６５】
請求項１に係る発明によれば、コマンド受信バッファに格納されたパケット（コマンド）は、ＣＰＵによって実行される。しかし、コマンド処理シーケンスの実行はシーケンス制御回路によって制御されるため、ＣＰＵがコマンド処理シーケンスの実行に関与することはない。これにより、コマンド処理シーケンスの実行中におけるＣＰＵの負荷を軽減することが可能になる。
【００６６】
請求項２に係る発明によれば、コマンド処理シーケンスが実行されている間、そのコマンド処理シーケンスに関連しないパケットをバスから受け取ることが禁止される。これにより、コマンド処理シーケンスがいったん開始されると、そのコマンド処理シーケンスの実行が途中で中断されることがない。コマンド処理シーケンスの実行の途中で他のコマンド処理シーケンスに分岐するなどの余分な制御をする必要がないため、コマンド処理シーケンスの制御が容易になる。その結果、シーケンス処理装置の構成を簡素化することが可能になる。
【００６７】
請求項３に係る発明によれば、データ転送処理シーケンスの実行はデータ転送制御回路によって制御されるため、ＣＰＵがデータ転送処理シーケンスの実行に関与することはない。これにより、データ転送処理シーケンスの実行中におけるＣＰＵの負荷を軽減することが可能になる。
【００６８】
請求項４に係る発明によれば、データ転送処理シーケンスが実行されている間、任意のパケットをバスから受け取ることが許容される。これにより、データ転送処理シーケンスによって長時間バスが占有されることを防止することができる。
【００６９】
請求項５に係る発明によれば、データ転送処理シーケンスが実行されている間にバスからパケットを受け取った場合には、データ転送処理シーケンスの実行が一時中断され、受け取ったパケットに基づく新たなコマンド処理シーケンスの実行が開始される。これにより、データ転送処理シーケンスの実行中に、新たなコマンド処理シーケンスを優先的に実行することが可能になる。
【００７０】
請求項６に係る発明によれば、新たなコマンド処理シーケンスが実行されている間、その新たなコマンド処理シーケンスに関連しないパケットをバスから受け取ることが禁止される。これにより、コマンド処理シーケンスの制御が容易になる。その結果、シーケンス処理装置の構成を簡素化することが可能になる。
【００７１】
請求項７に係る発明によれば、複数のコマンド受信バッファが設けられており、受信されたパケットは複数のコマンド受信バッファに選択的に出力される。これにより、コマンド処理シーケンスの実行中に、新たなコマンド処理シーケンスを優先的に実行することが可能になる。
【００７２】
請求項８に係る発明によれば、ＣＰＵは、コマンド処理シーケンスが終了する前にステータス情報を予め作成しておくことができる。これは、ＣＰＵがコマンド処理シーケンスの実行に関与していないからである。これにより、コマンド処理シーケンスの終了後すぐにステータス情報をバスに出力することが可能になる。
【００７３】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施の形態を説明する。なお、ここで示す実施の形態はあくまでも一例であり、かならずしもこの実施の形態に限定されるものではない。
【００７４】
（実施の形態１）
図１は、本発明の実施の形態１のシーケンス処理装置１の構成を示す。シーケンス処理装置１は、図８および図９に示されるターゲットとして機能する。
【００７５】
シーケンス処理装置１は、ＩＥＥＥ１３９４シリアルバス１２（以下、バス１２という）を介してホストコンピュータ１０（以下、イニシエータ１０という）に接続されている。また、シーケンス処理装置１は、ＣＰＵ２５に接続されており、ＤＭＡバス２９を介して光ディスクコントローラ３０に接続されている。
【００７６】
リンクコア回路１４は、バス１２からのパケットを物理層コントローラ１３を介して受信する。リンクコア回路１４は、受信したパケットに対して誤り検出符号の作成／検出、パケットへの符号の付加、コードの検出（例えば、Ａｃｋ  Ｐａｃｋｅｔのコードの検出）などを行う。また、リンクコア回路１４は、物理層コントローラ１３を介してパケットをバス１２に出力する。さらに、リンクコア回路１４は、パケットの転送が失敗した場合にそのパケットの転送を再度試みるリトライ機能を有している。
【００７７】
物理層コントローラ１３は、バス１２の初期化、アービトレーション、バイアス電圧の制御等の機能を有している。
【００７８】
パケットフィルタ回路１５は、リンクコア回路１４からパケットを受け取り、そのパケットのヘッダフィールドの内容を解析する。パケットフィルタ回路１５は、その解析結果に応じて、そのパケットをパケット受信バッファ１８に格納するか、送受信バッファ１６に格納するかを選択する。また、パケットフィルタ回路１５は、その解析結果に応じて、パケット処理回路２０またはシーケンス制御回路２１に制御信号を出力する。
【００７９】
パケット受信バッファ１８には、コマンド処理シーケンスおよびデータ転送処理シーケンスなどのプロトコル処理に関係がないパケットが格納される。
【００８０】
シーケンス制御回路２１は、パケットフィルタ回路１５からの制御信号に応答して、コマンド処理シーケンスの実行を制御する。シーケンス制御回路２１は、ＭＡＮＡＧＥＭＥＮＴ＿ＡＧＥＮＴ２１ａ、ＡＧＥＮＴ＿ＲＥＳＥＴレジスタ２１ｂ、ＯＲＢ＿ＰＯＩＮＴＥＲ２１ｃ等のＳＢＰ−２コマンド処理シーケンスに必要なＡＧＥＮＴ＿ＲＥＳＩＳＴＥＲを含む。
【００８１】
パケット処理回路２０は、シーケンス制御回路２１の制御の下で動作し、リンクコア回路１４によって受信されたパケットをコマンドとしてコマンド受信バッファ２２に格納する。コマンド受信バッファ２２に格納されたコマンドは、ＣＰＵ２５の制御によってレジスタ２４に転送される。これにより、コマンドがＣＰＵ２５から読み出し可能な状態となる。
【００８２】
ＣＰＵ２５は、レジスタ２４から読み出されたコマンドを実行する。例えば、レジスタ２４から読み出されたコマンドがＬＯＧＩＮコマンドである場合には、ＣＰＵ２５は、ＬＯＧＩＮ処理を実行する。
【００８３】
このように、シーケンス処理装置１によれば、コマンド受信バッファ２２に格納されたパケット（コマンド）は、ＣＰＵ２５によって実行される。しかし、コマンド処理シーケンスの実行はシーケンス制御回路２１によって制御されるため、ＣＰＵ２５がコマンド処理シーケンスの実行に関与することはない。これにより、コマンド処理シーケンスの実行中におけるＣＰＵ２５の負荷を軽減することが可能になる。このことは、ＩＥＥＥ１３９４に準拠したＳＢＰ−２プロトコルでの高速なデータ転送を実現するのに役立つ。
【００８４】
ＣＰＵ２５は、コマンド処理シーケンスが終了する前に、コマンド処理シーケンスの実行結果を示すステータス情報の「ひな型」をレジスタ２４の情報に基づいて作成する。これは、ＣＰＵ２５はコマンド処理シーケンスの実行に関与しないため、コマンド処理シーケンスと並列的な処理を行うことが可能だからである。レジスタ２４の情報には、例えば、ステータス情報をイニシエータ１０に送信するために使用されるＢＷＲＱパケットを作成するために必要なデスティネーションＩＤやデスティネーションオフセットが含まれる。ステータス情報の「ひな型」は、ステータス送信バッファ２８に一時的に格納される。
【００８５】
パケット処理回路２０は、ステータス送信バッファ２８からステータス情報の「ひな型」を受け取り、これとシーケンス制御回路２１（またはデータ転送制御回路２６）から供給されるコマンド処理シーケンスの実行結果（例えば、成功／失敗）とを合成することにより、ＢＷＲＱ形式のステータス情報を作成する。ＢＷＲＱ形式のステータス情報は、リンクコア回路１４を介してバス１２に出力される。
【００８６】
このように、コマンド処理シーケンスの終了前にステータス情報の「ひな型」を予め作成しておくことにより、コマンド処理シーケンスの終了後すぐにステータス情報をバスに出力することが可能になる。
【００８７】
データ転送制御回路２６は、データ転送処理シーケンスの実行を制御する。例えば、ＲＥＡＤコマンドが実行される場合には、データ転送制御回路２６は、シーケンス制御回路２１によって起動され、光ディスク３３（例えば、ＤＶＤ−ＲＡＭディスク）に記録されたデータを読み出すようにパケット処理回路２０に指示する。光ディスク３３から読み出されたデータは、光ヘッド３２、アナログ信号処理回路３１、光ディスクコントローラ３０およびＤＭＡバス２９を介してパケット処理回路２０に入力される。アナログ信号処理回路３１では、変調復調や誤り訂正などの処理が行われる。
【００８８】
パケット処理回路２０は、光ディスク３３から読み出したデータを複数のパケットに分割して格納し、その複数のパケットをリンクコア回路１４を介してバス１２に出力する。このようなパケット生成処理およびパケット転送処理は、データ転送制御回路２６によって制御される。
【００８９】
このように、データ転送処理シーケンスの実行はデータ転送制御回路２６によって制御されるため、ＣＰＵ２５がデータ転送処理シーケンスの実行に関与することはない。これにより、データ転送処理シーケンスの実行中におけるＣＰＵ２５の負荷を軽減することが可能になる。このことは、ＩＥＥＥ１３９４に準拠した高速なデータ転送を実現するのに役立つ。
【００９０】
なお、ＩＥＥＥ１３９４方式に従ってデータを転送する場合には、その転送速度によりパケットの転送可能な最大ペイロードサイズが規定されているため、転送速度によりパケットのデータフィールドの最大サイズは規定されている。本実施の形態では、Ｓ４００（４００ｂｉｔ／ｓｅｃ）とし、１パケットでの転送可能なデータ長は２０４８バイトである。
【００９１】
送信フィルタ１９は、レジスタ２４からのパケットとパケット処理回路２０からのパケットとを送信バッファ１７に選択的に格納するために使用される。送信バッファ１７に格納されたパケットは、リンクコア回路１４を介してバス１２に出力される。
【００９２】
なお、シーケンス制御回路２１は、コマンド処理シーケンスが実行されている間、そのコマンド処理シーケンスに関連しないパケットをバスから受け取ることを禁止するようにリンクコア回路１４を制御する。
【００９３】
パケットをバスから受け取ることを禁止する制御は、例えば、パケットフィルタ回路１５からの制御信号に応答して、レジスタ２４内のＡｃｋコントロール変数２４ａの値を”Ａｃｋ＿ｂｕｓｙ”に設定することによって達成される。
【００９４】
リンクコア回路１４は、レジスタ２４内のＡｃｋコントロール変数２４ａの値を参照可能なように構成されている。Ａｃｋコントロール変数２４ａの値が”Ａｃｋ＿ｂｕｓｙ”に設定されている場合には、リンクコア回路１４は、バス１２からパケットを受信することなく、そのパケットに対して”Ａｃｋ＿ｂｕｓｙ”の値を有するＡｃｋ  Ｐａｃｋｅｔをイニシエータ１０に返す。
【００９５】
バスからのパケットが実行中のコマンド処理シーケンスに関連するパケットか否かは、レジスタ２４内のｔｃｏｄｅ変数２４ｂの値およびｔｌ変数２４ｃの値を参照することによって判定され得る。ここで、ｔｃｏｄｅ変数２４ｂは、パケットの種類（すなわち、ＱＲＲＱ、ＢＲＲＱ、ＢＷＲＱ、ＷＲＳなど）を示すコードである。ｔｌ変数２４ｃは、トランザクションを識別するためのコードである。ｔコード変数２４ｂの値およびｔｌ変数２４ｃの値は、レジスタ２４に格納されるパケットによって更新される。
【００９６】
リンクコア回路１４は、レジスタ２４内のｔｃｏｄｅ変数２４ｂａの値およびｔｌ変数２４ｃの値を参照可能なように構成されている。リンクコア回路１４は、バス１２からのパケットに含まれるｔｃｏｄｅ領域の値およびｔｌ領域の値とｔコード変数２４ｂの値およびｔｌ変数２４ｃの値と比較し、両者が一致すればバスからのパケットが実行中のコマンド処理シーケンスに関連すると判定し、両者が一致しなければバスからのパケットが実行中のコマンド処理シーケンスに関連しないと判定する。
【００９７】
このように、コマンド処理シーケンスが実行されている間、そのコマンド処理シーケンスに関連しないパケットをバスから受信しないようにすることにより、コマンド処理シーケンスがいったん開始されると、そのコマンド処理シーケンスの実行が途中で中断されることがない。コマンド処理シーケンスの実行の途中で他のコマンド処理シーケンスに分岐するなどの余分な制御をする必要がないため、シーケンス制御回路２１によるコマンド処理シーケンスの制御が容易になる。その結果、シーケンス処理装置１の構成を簡素化することが可能になる。
【００９８】
図２（ａ）〜（ｅ）は、バス１２から受信されるパケットのフォーマットを示す。図２（ａ）〜（ｅ）において、斜線の領域はリザーブ領域を示す。
【００９９】
より具体的には、図２（ａ）は、ＢＷＲＱ（Ｂｌｏｃｋ  Ｗｒｉｔｅ  Ｒｅｑｕｅｓｔ）パケットのフォーマットを示す。図２（ｂ）は、ＱＷＲＱ（Ｑｕａｄｌｅｔ  Ｗｒｉｔｅ  Ｒｅｑｕｅｓｔ）パケットのフォーマットを示す。図２（ｃ）は、ＷＲＳ（Ｗｒｉｔｅ  Ｒｅｓｐｏｎｓｅ）パケットのフォーマットを示す。図２（ｄ）は、ＢＲＲＱ（Ｂｌｏｃｋ  Ｒｅａｄ  Ｒｅｑｕｅｓｔ）パケットのフォーマットを示す。図２（ｅ）は、ＢＲＲＳ（Ｂｌｏｃｋ  Ｒｅａｄ  Ｒｅｓｐｏｎｓｅ）パケットのフォーマットを示す。
【０１００】
なお、バス１２に出力されるパケットのフォーマットも図２（ａ）〜（ｅ）に示されるフォーマットと同一である。
【０１０１】
図３（ａ）〜（ｅ）は、リンクコア回路１４に書き込む際のパケットのフォーマットを示す。すなわち、図１に示される送信バッファ１７、送受信バッファ１８およびパケット処理回路２０は、いずれも、図３（ａ）〜（ｅ）に示されるフォーマットでパケットをリンクコア回路１４に書き込む。なお、図３（ａ）〜（ｅ）に示されるフォーマットは、図２（ａ）〜（ｅ）に示されるフォーマットにそれぞれ対応する。
【０１０２】
リンクコア回路１４は、パケットをバス１２に出力する際には、ｈｅａｄｅｒ＿ＣＲＣやｄａｔａ＿ＣＲＣなどのチェックコードを計算し、その計算結果を示すフィールドを図３（ａ）〜（ｅ）に示されるフォーマットのパケットに追加する。このようにして、リンクコア回路１４によって、図２（ａ）〜（ｅ）に示されるフォーマットのパケットが作成される。
【０１０３】
また、リンクコア回路１４は、パケットをバス１２から受信した際には、図２（ａ）〜（ｅ）に示されるフォーマットに含まれるｈｅａｄｅｒ＿ＣＲＣ領域やｄａｔａ＿ＣＲＣ領域を参照することにより、ＣＲＣによる誤り検出を行う。
【０１０４】
図４Ａおよび図４Ｂは、マネージメント系のＬＯＧＩＮコマンドが実行される場合におけるシーケンス処理装置１の動作を示す。
【０１０５】
図４Ａを参照して、バス１２からＢＷＲＱ＃１パケットが受信されると、バス１２には”Ａｃｋ＿ｃｏｍｐｌｅｔｅ”の値を有するＡｃｋ  Ｐａｃｋｅｔが返される。
【０１０６】
バス１２上のＢＷＲＱ＃１パケットは、パケットフィルタ回路１５に転送される。
【０１０７】
パケットフィルタ回路１５は、ＢＷＲＱ＃１パケットの内容を解析することにより、制御信号をシーケンス制御回路２１に出力する。
【０１０８】
シーケンス制御回路２１は、パケットフィルタ回路１５からの制御信号に応答して、「Ａｃｋ  Ｃｏｎｔｒｏｌ  Ｓｅｔ」というイベントを発生させる。これにより、レジスタ２４内のＡｃｋコントロール変数２４ａの値が”Ａｃｋ＿ｂｕｓｙ”に設定される。
【０１０９】
その後、シーケンス制御回路２１は、「ＷＲＳ要求」というイベントを発生させる。このイベントの発生に応答して、パケット処理回路２０は、ＷＲＳパケットのヘッダとデータとを生成する。ＷＲＳパケットは、送受信バッファ１６を介してバス１２に出力される。
【０１１０】
そのＷＲＳパケットに対する応答として、”Ａｃｋ＿ｃｏｍｐｌｅｔｅ”の値を有するＡｃｋ  Ｐａｃｋｅｔがバス１２から受信されると、その受信されたＡｃｋ  Ｐａｃｋｅｔがパケットフィルタ回路１５に転送される。
【０１１１】
パケットフィルタ回路１５は、Ａｃｋ  Ｐａｃｋｅｔの内容を解析することにより、制御信号をシーケンス制御回路２１に出力する。
【０１１２】
シーケンス制御回路２１は、パケットフィルタ回路１５からの制御信号に応答して、「ＢＲＲＱ要求」というイベントを発生させる。このイベントの発生に応答して、パケット処理回路２０は、ＢＲＲＱパケットのヘッダとデータとを生成する。ＢＲＲＱパケットは、バス１２に出力される。
【０１１３】
そのＢＲＲＱパケットに対する応答として、ＢＲＲＳパケットがバス１２から受信されると、その受信されたＢＲＲＳパケットがパケットフィルタ回路１５に転送される。
【０１１４】
パケットフィルタ回路１５は、ＢＲＲＳパケットの内容を解析することにより、制御信号をシーケンス制御回路２１に出力する。
【０１１５】
シーケンス制御回路２１は、パケットフィルタ回路１５からの制御信号に応答して、「コマンド格納」というイベントを発生させる。このイベントの発生に応答して、パケット処理回路２０は、パケットフィルタ回路１５から送受信バッファ１６を介して受け取ったＢＲＲＳパケットをコマンド受信バッファ２２に出力する。
【０１１６】
また、「コマンド格納」というイベントによってコマンド受信割り込みがＣＰＵ２５に出力される。ＣＰＵ２５は、このコマンド受信割り込みに応答して、コマンド受信バッファ２２に格納されたコマンドをレジスタ２４に取り込み、そのコマンドを実行する。
【０１１７】
なお、図４Ａにおいて、バス１２上に示される「ＢＷＲＱ＃２」および「Ａｃｋ  ｂｕｓｙ」は、バス１２上のＢＷＲＱ＃２パケットが実行中のコマンド処理シーケンスに関連しないパケットであると判定されたため、そのＢＷＲＱ＃２パケットに対する応答として”Ａｃｋ＿ｂｕｓｙ”の値を有するＡｃｋ  Ｐａｃｋｅｔがバス１２に出力されたことを示す。
【０１１８】
次に、図４Ｂを参照して、ＣＰＵ２５は、「ステータスＷｒｉｔｅ」という処理を実行することにより、ステータス情報の「ひな型」を作成し、それをステータス送信バッファ２８に格納する。ステータス送信バッファ２８に格納されたステータス情報の「ひな型」は、ＢＷＲＱパケットのデータとして使用される。
【０１１９】
その後、ＣＰＵ２５は、「ステータス転送起動」という処理を実行することにより、シーケンス制御回路２１は、「ステータス転送」というイベントを発生させる。このイベントの発生に応答して、パケット処理回路２０は、ＢＷＲＱパケットのヘッダを作成し、このＢＷＲＱパケットのヘッダとステータス送信バッファ２８に格納されたＢＷＲＱパケットのデータとを結合させる。これにより、ＢＷＲＱパケットが完成する。ＢＷＲＱパケットは、送受信バッファ１６を介してバス１２に出力される。
【０１２０】
そのＢＷＲＱパケットに対する応答として、”Ａｃｋ＿ｃｏｍｐｌｅｔｅ”の値を有するＡｃｋ  ＰａｃｋｅｔとＷＲＳパケットとがバス１２から受信されると、その受信されたＷＲＳパケットがパケットフィルタ回路１５に転送される。
【０１２１】
パケットフィルタ回路１５は、ＷＲＳパケットの内容を解析することにより、制御信号をシーケンス制御回路２１に出力する。
【０１２２】
シーケンス制御回路２１は、パケットフィルタ回路１５からの制御信号に応答して、「ステータス転送終了」というイベントを発生させる。「ステータス転送終了」というイベントによって割り込みがＣＰＵ２５に出力される。ＣＰＵ２５は、割り込みの発生によってマネージメント系のＬＯＧＩＮコマンドに対応するコマンド処理シーケンスが終了したことを通知される。
【０１２３】
（実施の形態２）
図５は、本発明の実施の形態２のシーケンス処理装置２の構成を示す。図５において、図１に示される構成要素と同一の構成要素には同一の参照符号を付し、その説明を省略する。
【０１２４】
シーケンス処理装置２は、マネージメント系のコマンドを格納するためのコマンド受信バッファ２２ａと、コマンド系のコマンドを格納するためのコマンド受信バッファ２２ｂとを備えている。なお、コマンドの種類が３種類以上ある場合には、その種類に応じて３個以上のコマンド受信バッファを設けるようにしてもよい。
【０１２５】
受信されたパケットは、コマンド受信バッファ２２ａまたはコマンド受信バッファ２２ｂの一方に選択的に出力される。これにより、コマンド処理シーケンスの実行中に、新たなコマンド処理シーケンスを優先的に実行することが可能になる。
【０１２６】
シーケンス制御回路２１は、データ転送処理シーケンスが実行されている間、任意のパケットをバスから受け取るようにリンクコア回路１４を制御してもよい。このような制御は、レジスタ２４内のＡｃｋコントロール変数２４ａの値の設定を”Ａｃｋ＿ｂｕｓｙ”から解除することによって達成される。これにより、データ転送処理シーケンスによってバス１２が長時間占有され続けることを防止することができる。
【０１２７】
さらに、データ転送処理シーケンスが実行されている間に、リンクコア回路１４がパケットをバス１２から受け取った場合には、データ転送制御回路２６は、データ転送処理シーケンスの実行を一時中断し、シーケンス制御回路２１は、受け取ったパケットに基づく新たなコマンド処理シーケンスの実行を開始するようにしてもよい。これにより、データ転送処理シーケンスの実行中に、新たなコマンド処理シーケンスを優先的に実行することが可能になる。
【０１２８】
シーケンス制御回路２１は、新たなコマンド処理シーケンスが実行されている間、その新たなコマンド処理シーケンスに関連しないパケットをバスから受け取ることを禁止するようにリンクコア回路１４を制御してもよい。このような制御は、新たなコマンド処理シーケンスの実行の開始に応答して、レジスタ２４内のＡｃｋコントロール変数２４ａの値を”Ａｃｋ＿ｂｕｓｙ”に再設定することによって達成される。これにより、シーケンス制御回路２１によるコマンド処理シーケンスの制御が容易になる。その結果、シーケンス処理装置１の構成を簡素化することが可能になる。
【０１２９】
図６Ａおよび図６Ｂは、コマンド系のＲＥＡＤコマンドが実行される場合におけるシーケンス処理装置２の動作を示す。なお、この例では、イニシエータ１０から要求されるデータ長を３２ｋＢｙｔｅとする。データを転送するパケットのデータフィールドのサイズが２ｋＢｙｔｅである。したがって、３２ｋＢｙｔｅのデータを転送するために１６個のパケットが転送されることになる。
【０１３０】
図６Ａに示されるコマンド処理シーケンスは、「コマンド格納」というイベントの発生に応答して、パケット処理回路２０がＢＲＲＳパケットをコマンド受信バッファ２２ｂに格納する点を除き、図４Ａに示されるコマンド処理シーケンスと同一である。
【０１３１】
また、「コマンド格納」というイベントによってコマンド受信割り込みがＣＰＵ２５に出力される。ＣＰＵ２５は、このコマンド受信割り込みに応答して、コマンド受信バッファ２２ｂに格納されたコマンドをレジスタ２４経由で読み出す。
【０１３２】
その後、ＣＰＵ２５は、「転送パラメータ設定」という処理により、データの転送に必要な各種のパラメータを設定する。
【０１３３】
次に、図６Ｂを参照して、ＣＰＵ２５は、「ステータスＷｒｉｔｅ」という処理を実行することにより、ステータス情報の「ひな型」を作成し、それをステータス送信バッファ２８に格納する。ステータス送信バッファ２８に格納されたステータス情報の「ひな型」は、ＢＷＲＱパケットのデータとして使用される。
【０１３４】
その後、ＣＰＵ２５は、「データ転送起動」という処理を実行することにより、データ転送制御回路２６は、「データ転送」というイベントを発生させる。このイベントの発生に応答して、パケット処理回路２０は、ＢＷＲＱパケットのヘッダとデータとを作成する。ＢＷＲＱパケットのデータは、光ディスク３３から読み出されたデータに基づいて生成される。ＢＷＲＱパケットは、送受信バッファ１６を介してバス１２に出力される。
【０１３５】
そのＢＷＲＱパケットに対する応答として、”Ａｃｋ＿ｃｏｍｐｌｅｔｅ”の値を有するＡｃｋ  ＰａｃｋｅｔとＷＲＳパケットとがバス１２から受信されると、その受信されたＷＲＳパケットがパケットフィルタ回路１５に転送される。
【０１３６】
パケットフィルタ回路１５は、ＷＲＳパケットの内容を解析することにより、制御信号をシーケンス制御回路２１に出力する。シーケンス制御回路２１は、この制御信号をデータ転送制御回路２６に通知する。
【０１３７】
データ転送制御回路２６は、「データ転送」というイベントの発生を繰り返す。これにより、１６個のＢＷＲＱパケットが転送されることになる。
【０１３８】
データ転送制御回路２６が、「データ転送終了」というイベントを発生させると、このイベントの発生に応答して、シーケンス制御回路２１は、「ステータス転送」というイベントを発生させる。この後のシーケンスは、図４Ｂに示されるシーケンスと同一であるので説明を省略する。
【０１３９】
なお、ＣＰＵ２５が「データ転送起動」という処理を行った後、連続してステータスを送信するパケットをステータス送信バッファ２８に書き込んでおき、コマンドを実行した後のＣＰＵ２５への割り込みをスキップしてコマンドの実行を終了した後、シーケンス制御回路２１が「ステータス転送」というイベントを発生させるというシーケンスを加えると、ハードウェアとソフトウェアとを用いて並列にシーケンスを処理することができる。これにより、ＣＰＵ２５の処理によるソフトウェアのオーバーヘッドをなくすことができる。
【０１４０】
なお、コマンド系のＷＲＩＴＥコマンドが実行される場合におけるシーケンス処理装置２の動作は、データの転送方向が逆であることを除いて基本的にコマンド系のＲＥＡＤコマンドが実行される場合におけるシーケンス処理装置２の動作と同様である。
【０１４１】
図７Ａ〜図７Ｄは、コマンド系のＲＥＡＤコマンドが実行されている間にイニシエータ１０からマネージメント系のＬＯＧＩＮコマンドが発行された場合におけるシーケンス処理装置２の動作を示す。
【０１４２】
図７Ａを参照して、データ転送処理シーケンスの実行中に、バス１２からＬＯＧＩＮコマンドのＢＷＲＱパケットが受信されると、そのＢＷＲＱパケットがパケットフィルタ回路１５に転送される。
【０１４３】
パケットフィルタ回路１５は、ＢＷＲＱパケットの内容を解析することにより、制御信号をシーケンス制御回路２１に出力する。
【０１４４】
シーケンス制御回路２１は、パケットフィルタ回路１５からの制御信号に応答して、「トランザクション終了待ち」というイベントを発生させる。このイベントの発生に応答して、データ転送制御回路２６は、「トランザクション一時停止」というイベントを発生させる。このイベントの発生に応答して、パケット処理回路２０に対して、トランザクション停止要求の制御信号を与え、データ転送処理シーケンスのための新たなパケットの生成が停止される。
【０１４５】
図７Ｂを参照して、「トランザクション一時停止」というイベントの発生に応答して、シーケンス制御回路２１は、「Ａｃｋ  Ｃｏｎｔｒｏｌ  Ｓｅｔ」というイベントを発生させる。これに続くシーケンスは、図４Ａに示されるマネージメント系のＬＯＧＩＮコマンドのコマンド処理シーケンスと同様である。
【０１４６】
図７Ｃを参照して、「ステータス転送終了」というイベントによって割り込みがＣＰＵ２５に出力される。ＣＰＵ２５は、割り込みの発生によってマネージメント系のＬＯＧＩＮコマンドに対応するコマンド処理シーケンスが終了したことを通知される。
【０１４７】
その後、ＣＰＵ２５は、「データ転送再開」という処理を実行することにより、データ転送制御回路２６は、「データ転送」というイベントを発生させる。これにより、一時中断した以降のデータ転送処理シーケンスが再開される。
【０１４８】
図７Ｃ〜図７Ｄに示されるデータ転送の再開後のデータ転送処理シーケンスは、図６Ｂに示されるデータ転送処理シーケンスと同様である。
【０１４９】
このように、本実施の形態によれば、シーケンス制御回路２１とデータ転送制御回路２６とが協同してトランザクションを管理することにより、データ転送処理シーケンスおよびコマンド処理シーケンスの実行を効率的に制御することができる。その結果、一連のシーケンス処理の高速化を図ることができる。また、本実施の形態で説明したように、データ転送処理シーケンスの実行中にそのデータ転送処理シーケンスとは無関係のコマンドを受信した場合でもＣＰＵ２５がそのコマンドに基づくコマンド処理シーケンスを実行する必要がない。従って、ＣＰＵ２５におけるファームウェアのオーバーヘッドを最小限にすることができる。
【０１５０】
なお、上述した実施の形態１および実施の形態２では、イニシエータが１つの場合について記述したが、ＩＥＥＥ１３９４ではターゲットに接続されている２以上のノードがイニシエータになることができる。この際にも、上述したシーケンス処理を行うことで、複数のイニシエータに対するシーケンス処理を行うことができる。
【０１５１】
【発明の効果】
本発明によれば、コマンド受信バッファに格納されたパケット（コマンド）は、ＣＰＵによって実行される。しかし、コマンド処理シーケンスの実行はシーケンス制御回路によって制御されるため、ＣＰＵがコマンド処理シーケンスの実行に関与することはない。これにより、コマンド処理シーケンスの実行中におけるＣＰＵの負荷を軽減することが可能になる。その結果、データを高速に転
送することを可能にするシーケンス処理装置を提供することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態１のシーケンス処理装置１の構成を示す図である。
【図２】（ａ）〜（ｅ）は、バス１２から受信されるパケットのフォーマットを示す図である。
【図３】（ａ）〜（ｅ）は、リンクコア回路１４に書き込む際のパケットのフォーマットを示す図である。
【図４Ａ】マネージメント系のＬＯＧＩＮコマンドが実行される場合におけるシーケンス処理装置１の動作を示す図である。
【図４Ｂ】マネージメント系のＬＯＧＩＮコマンドが実行される場合におけるシーケンス処理装置１の動作を示す図である。
【図５】本発明の実施の形態２のシーケンス処理装置２の構成を示す図である。
【図６Ａ】コマンド系のＲＥＡＤコマンドが実行される場合におけるシーケンス処理装置２の動作を示す図である。
【図６Ｂ】コマンド系のＲＥＡＤコマンドが実行される場合におけるシーケンス処理装置２の動作を示す図である。
【図７Ａ】コマンド系のＲＥＡＤコマンドが実行されている間にイニシエータ１０からマネージメント系のＬＯＧＩＮコマンドが発行された場合におけるシーケンス処理装置２の動作を示す図である。
【図７Ｂ】コマンド系のＲＥＡＤコマンドが実行されている間にイニシエータ１０からマネージメント系のＬＯＧＩＮコマンドが発行された場合におけるシーケンス処理装置２の動作を示す図である。
【図７Ｃ】コマンド系のＲＥＡＤコマンドが実行されている間にイニシエータ１０からマネージメント系のＬＯＧＩＮコマンドが発行された場合におけるシーケンス処理装置２の動作を示す図である。
【図７Ｄ】コマンド系のＲＥＡＤコマンドが実行されている間にイニシエータ１０からマネージメント系のＬＯＧＩＮコマンドが発行された場合におけるシーケンス処理装置２の動作を示す図である。
【図８】マネージメント系のＬＯＧＩＮコマンドを実行するためのコマンド処理シーケンスを示す図である。
【図９】コマンド系のＲＥＡＤコマンドを実行するためのコマンド処理シーケンスを示す図である。
【図１０】従来のシーケンス処理装置１１０の構成を示す図である。
【符号の説明】
１、２  シーケンス処理装置
１０  ホストコンピュータ
１２  １３９４シリアルバス
１３  物理層コントローラ
１４  リンクコア回路
１５  パケットフィルタ回路
１６  送受信バッファ
１７  送信バッファ
１８  パケット受信バッファ
１９  送信フィルタ
２０  パケット処理回路
２１  シーケンス制御回路
２２  コマンド受信バッファ
２２ａ、２２ｂ  コマンド受信バッファ
２４  レジスタ
２５  ＣＰＵ
２６  データ転送制御回路
２９  ＤＭＡバス
３０  光ディスクコントローラ
３１  アナログ信号処理回路
３２  光ヘッド
３３  光ディスク
【図１】
0003838606.tif 000002
【図２】
0003838606.tif 000003
【図３】
0003838606.tif 000004
【図４Ａ】
0003838606.tif 000005
【図４Ｂ】
0003838606.tif 000006
【図５】
0003838606.tif 000007
【図６Ａ】
0003838606.tif 000008
【図６Ｂ】
0003838606.tif 000009
【図７Ａ】
0003838606.tif 000010
【図７Ｂ】
0003838606.tif 000011
【図７Ｃ】
0003838606.tif 000012
【図７Ｄ】
0003838606.tif 000013
【図８】
0003838606.tif 000014
【図９】
0003838606.tif 000015
【図１０】
0003838606.tif 000016