JP2002318777A - 高速シリアルインターフェース用のコマンド発行装置 - Google Patents
高速シリアルインターフェース用のコマンド発行装置Info
- Publication number
- JP2002318777A JP2002318777A JP2001120745A JP2001120745A JP2002318777A JP 2002318777 A JP2002318777 A JP 2002318777A JP 2001120745 A JP2001120745 A JP 2001120745A JP 2001120745 A JP2001120745 A JP 2001120745A JP 2002318777 A JP2002318777 A JP 2002318777A
- Authority
- JP
- Japan
- Prior art keywords
- command
- orb
- packet
- status
- cpu
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
- G06F13/126—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
- Communication Control (AREA)
- Information Transfer Systems (AREA)
Abstract
(57)【要約】
【課題】 SBP−2(serial bus protocol - 2)の
イニシエータ機能を実現するうえで、コマンド発行の際
の中央処理ユニット(CPU)の負担を軽減する。 【解決手段】 CPU10により起動されてコマンド発
行シーケンスを制御するためのシーケンス制御回路29
と、発行すべきオペレーション要求ブロック(ORB)
を送信パケットに構成したり、受信したパケットからス
テータスを取り出したりするためのパケット処理回路2
8と、CPU10により登録されたコマンドORBを格
納するためのバッファ30と、CPU10により登録さ
れたマネージメントORBを格納するためのバッファ3
1と、発行したマネージメントORBに対して受信した
ステータスを格納してCPU10へ渡すためのバッファ
32と、発行したコマンドORBに対して受信したステ
ータスを格納してCPU10へ渡すためのバッファ33
とを設ける。
イニシエータ機能を実現するうえで、コマンド発行の際
の中央処理ユニット(CPU)の負担を軽減する。 【解決手段】 CPU10により起動されてコマンド発
行シーケンスを制御するためのシーケンス制御回路29
と、発行すべきオペレーション要求ブロック(ORB)
を送信パケットに構成したり、受信したパケットからス
テータスを取り出したりするためのパケット処理回路2
8と、CPU10により登録されたコマンドORBを格
納するためのバッファ30と、CPU10により登録さ
れたマネージメントORBを格納するためのバッファ3
1と、発行したマネージメントORBに対して受信した
ステータスを格納してCPU10へ渡すためのバッファ
32と、発行したコマンドORBに対して受信したステ
ータスを格納してCPU10へ渡すためのバッファ33
とを設ける。
Description
【0001】
【発明の属する技術分野】本発明は、高速シリアルイン
ターフェース用のコマンド発行装置に関するものであ
る。
ターフェース用のコマンド発行装置に関するものであ
る。
【0002】
【従来の技術】近年、AV機器やコンピュータ機器等を
接続するための高速シリアルインターフェースとして、
IEEE1394方式が注目されている。この方式は、
従来のパラレル方式であるATAPI(AT attachment
packet interface)、SCSI(small computer syste
m interface)等によるコンピュータ機器間の通信のみ
ならず、AV機器間での通信にも用いることができるも
のである。これは、IEEE1394方式に、アシンク
ロナス(asynchronous)通信とアイソクロノス(isochr
onous)通信とが定義されているためである。
接続するための高速シリアルインターフェースとして、
IEEE1394方式が注目されている。この方式は、
従来のパラレル方式であるATAPI(AT attachment
packet interface)、SCSI(small computer syste
m interface)等によるコンピュータ機器間の通信のみ
ならず、AV機器間での通信にも用いることができるも
のである。これは、IEEE1394方式に、アシンク
ロナス(asynchronous)通信とアイソクロノス(isochr
onous)通信とが定義されているためである。
【0003】一般的にIEEE1394方式を用いて、
例えばコンピュータデータをハードディスク等の磁気デ
ィスクやDVD−RAM等の光ディスクに格納したり、
これらのディスクから記録済みのコンピュータデータを
ホストコンピュータが読み出したりする際には、アシン
クロナス通信により、制御コマンドやデータが伝送され
る。従来、ホストコンピュータ(イニシエータ)とハー
ドディスクやDVD−RAM等(ターゲット)との間で
は、アシンクロナス通信を用いたプロトコルの1つであ
るSBP−2(serial bus protocol - 2)が主に採用
されている。
例えばコンピュータデータをハードディスク等の磁気デ
ィスクやDVD−RAM等の光ディスクに格納したり、
これらのディスクから記録済みのコンピュータデータを
ホストコンピュータが読み出したりする際には、アシン
クロナス通信により、制御コマンドやデータが伝送され
る。従来、ホストコンピュータ(イニシエータ)とハー
ドディスクやDVD−RAM等(ターゲット)との間で
は、アシンクロナス通信を用いたプロトコルの1つであ
るSBP−2(serial bus protocol - 2)が主に採用
されている。
【0004】
【発明が解決しようとする課題】さて、日本国でのデジ
タル放送開始に伴って、AV機器とコンピュータ周辺機
器との融合が加速しはじめ、セットトップボックス(S
TB:set top box)の記録媒体としてハードディスク
やDVD−RAM等が利用され始めている。これらのデ
ィスクに記録されるAVデータは、管理や編集を容易に
するためにコンピュータファイルとして扱えるフォーマ
ットで記録される。この場合、AV機器であるSTBに
SBP−2のイニシエータ機能を実装することが必須と
なってくる。
タル放送開始に伴って、AV機器とコンピュータ周辺機
器との融合が加速しはじめ、セットトップボックス(S
TB:set top box)の記録媒体としてハードディスク
やDVD−RAM等が利用され始めている。これらのデ
ィスクに記録されるAVデータは、管理や編集を容易に
するためにコンピュータファイルとして扱えるフォーマ
ットで記録される。この場合、AV機器であるSTBに
SBP−2のイニシエータ機能を実装することが必須と
なってくる。
【0005】従来、SBP−2のイニシエータ機能を実
装する機器はコンピュータが主流であったため、十分な
速度性能を持った中央処理ユニット(CPU:central
processing unit)が全てのパケット送受信の管理、特
にオペレーション要求ブロック(ORB:operation re
quest block)を含んだパケットの生成等をプログラム
に従って行っていた。ところが、十分な速度性能を持っ
たCPUをAV機器に搭載するのは、コストパフォーマ
ンスの点で非常に困難である。
装する機器はコンピュータが主流であったため、十分な
速度性能を持った中央処理ユニット(CPU:central
processing unit)が全てのパケット送受信の管理、特
にオペレーション要求ブロック(ORB:operation re
quest block)を含んだパケットの生成等をプログラム
に従って行っていた。ところが、十分な速度性能を持っ
たCPUをAV機器に搭載するのは、コストパフォーマ
ンスの点で非常に困難である。
【0006】また、イニシエータ機器(STB)からタ
ーゲット機器(ハードディスクドライブやDVD−RA
Mドライブ)にAVデータを記録したり、画像の再生、
編集を行うときに、CPU処理では十分なコマンド実行
速度が得られず、ターゲット機器の転送性能を十分引き
出せない。更に、システム全体として必要な転送性能が
得られないという問題が生じていた。
ーゲット機器(ハードディスクドライブやDVD−RA
Mドライブ)にAVデータを記録したり、画像の再生、
編集を行うときに、CPU処理では十分なコマンド実行
速度が得られず、ターゲット機器の転送性能を十分引き
出せない。更に、システム全体として必要な転送性能が
得られないという問題が生じていた。
【0007】本発明の目的は、高速シリアルインターフ
ェースのイニシエータ機能を実装する機器において、コ
マンド発行の際のCPUの負担を軽減することにある。
ェースのイニシエータ機能を実装する機器において、コ
マンド発行の際のCPUの負担を軽減することにある。
【0008】
【課題を解決するための手段】上記目的を達成するた
め、本発明は、高速シリアルインターフェースにおける
イニシエータとしてパケットを用いてターゲットへコマ
ンドを発行するためのコマンド発行装置において、CP
Uにより起動されてコマンド発行シーケンスを制御する
ためのシーケンス制御回路と、発行すべきORBを送信
パケットに構成したり、受信したパケットからステータ
スを取り出したりするためのパケット処理回路と、前記
CPUにより登録されたコマンドORBを格納するため
のコマンドORB送信バッファと、前記CPUにより登
録されたマネージメントORBを格納するためのマネー
ジメントORB送信バッファと、発行したマネージメン
トORBに対して受信したステータスを格納して前記C
PUへ渡すためのマネージメント用ステータス受信バッ
ファと、発行したコマンドORBに対して受信したステ
ータスを格納して前記CPUへ渡すためのコマンド用ス
テータス受信バッファとを備えた構成を採用したもので
ある。
め、本発明は、高速シリアルインターフェースにおける
イニシエータとしてパケットを用いてターゲットへコマ
ンドを発行するためのコマンド発行装置において、CP
Uにより起動されてコマンド発行シーケンスを制御する
ためのシーケンス制御回路と、発行すべきORBを送信
パケットに構成したり、受信したパケットからステータ
スを取り出したりするためのパケット処理回路と、前記
CPUにより登録されたコマンドORBを格納するため
のコマンドORB送信バッファと、前記CPUにより登
録されたマネージメントORBを格納するためのマネー
ジメントORB送信バッファと、発行したマネージメン
トORBに対して受信したステータスを格納して前記C
PUへ渡すためのマネージメント用ステータス受信バッ
ファと、発行したコマンドORBに対して受信したステ
ータスを格納して前記CPUへ渡すためのコマンド用ス
テータス受信バッファとを備えた構成を採用したもので
ある。
【0009】
【発明の実施の形態】以下、図面を参照して本発明の実
施の形態を詳細に説明するが、これによって本発明の技
術的範囲が制限されるものではない。
施の形態を詳細に説明するが、これによって本発明の技
術的範囲が制限されるものではない。
【0010】図1A〜図1Eは、IEEE1394で定
義されている非同期パケットの一部の構造を示すパケッ
ト構成図である。IEEE1394では、動作の要求を
行うための要求(request)パケットと、要求パケット
によって要求された動作の結果を返すための応答(resp
onse)パケットとが定義されている。いずれのパケット
に対しても、パケットを受信した場合には、パケットの
受信状態を示すアクノリッジ(ACK:acknoledge)パ
ケットを相手機器に返す。ACKパケットには、処理完
了を示すack_complete、受信は完了したが
処理中であることを示すack_pending、再送
要求を示すack_busy等の状態を示す。要求パケ
ットと応答パケットとは通常対をなして使用される。
義されている非同期パケットの一部の構造を示すパケッ
ト構成図である。IEEE1394では、動作の要求を
行うための要求(request)パケットと、要求パケット
によって要求された動作の結果を返すための応答(resp
onse)パケットとが定義されている。いずれのパケット
に対しても、パケットを受信した場合には、パケットの
受信状態を示すアクノリッジ(ACK:acknoledge)パ
ケットを相手機器に返す。ACKパケットには、処理完
了を示すack_complete、受信は完了したが
処理中であることを示すack_pending、再送
要求を示すack_busy等の状態を示す。要求パケ
ットと応答パケットとは通常対をなして使用される。
【0011】図1A、図1B及び図1Dは、いずれも要
求パケットを示しており、それぞれBWRQパケット
(write request for data block packet:ブロックデ
ータ書き込み要求パケット)、QWRQパケット(writ
e request for data quadlet packet:クワドレットデ
ータ書き込み要求パケット)、BRRQパケット(read
request for data block packet:ブロックデータ読み
出し要求パケット)である。書き込み要求(BWRQ及
びQWRQ)パケットに対する応答パケットとして図1
Cに示すWRSパケット(write response packet:書
き込み応答パケット)が定義されており、またBRRQ
パケットに対する応答パケットとして図1Eに示すBR
RSパケット(read response for data block packe
t:ブロックデータ読み出し応答パケット)が定義され
ている。いずれの場合もパケットの種類を識別するトラ
ンザクションコード(tcode:transaction code)
と、トランザクション固有のタグ情報であるトランザク
ションラベル(tl:transaction label)とが含まれ
ており、また応答パケットの場合には、応答状態を示す
レスポンスコード(rcode:response code)が含
まれている。したがって、tcodeによりトランザク
ションの種類が識別でき、またtlにより対をなす要求
パケットと応答パケットとを認識することができる。な
お、詳細については、IEEE1394−1995規格
書を参照されたい。
求パケットを示しており、それぞれBWRQパケット
(write request for data block packet:ブロックデ
ータ書き込み要求パケット)、QWRQパケット(writ
e request for data quadlet packet:クワドレットデ
ータ書き込み要求パケット)、BRRQパケット(read
request for data block packet:ブロックデータ読み
出し要求パケット)である。書き込み要求(BWRQ及
びQWRQ)パケットに対する応答パケットとして図1
Cに示すWRSパケット(write response packet:書
き込み応答パケット)が定義されており、またBRRQ
パケットに対する応答パケットとして図1Eに示すBR
RSパケット(read response for data block packe
t:ブロックデータ読み出し応答パケット)が定義され
ている。いずれの場合もパケットの種類を識別するトラ
ンザクションコード(tcode:transaction code)
と、トランザクション固有のタグ情報であるトランザク
ションラベル(tl:transaction label)とが含まれ
ており、また応答パケットの場合には、応答状態を示す
レスポンスコード(rcode:response code)が含
まれている。したがって、tcodeによりトランザク
ションの種類が識別でき、またtlにより対をなす要求
パケットと応答パケットとを認識することができる。な
お、詳細については、IEEE1394−1995規格
書を参照されたい。
【0012】図2、図3及び図4に、SBP−2におけ
る各種データフォーマットを示す。イニシエータは、自
らのシステムメモリ内にORBを作成する。SBP−2
ではイニシエータとターゲットとの接続状態、コマンド
実行等を管理するためのマネージメント系のコマンドが
定義されている。これらは、図2のマネージメント(ma
nagement)ORBに含まれて扱われる。READコマン
ド、WRITEコマンド等は、図3のコマンド(comman
d)ORBに含まれて扱われる。コマンドはコマンドブ
ロック(command_block)フィールドに格
納される。図4は、ステータスのデータフォーマットを
示している。ターゲット側のCSR(control and statu
s registres)空間には、マネージメントエージェント
(MANAGEMENT_AGENT)レジスタ、コマ
ンドエージェント(CommandAgent)レジス
タ等が定義されている。CommandAgentレジ
スタは、エージェントステート(AGENT_STAT
E)、エージェントリセット(AGENT_RESE
T)、ORBポインタ(ORB_POINTER)、ド
アベル(DOORBELL)の各レジスタから構成され
る。
る各種データフォーマットを示す。イニシエータは、自
らのシステムメモリ内にORBを作成する。SBP−2
ではイニシエータとターゲットとの接続状態、コマンド
実行等を管理するためのマネージメント系のコマンドが
定義されている。これらは、図2のマネージメント(ma
nagement)ORBに含まれて扱われる。READコマン
ド、WRITEコマンド等は、図3のコマンド(comman
d)ORBに含まれて扱われる。コマンドはコマンドブ
ロック(command_block)フィールドに格
納される。図4は、ステータスのデータフォーマットを
示している。ターゲット側のCSR(control and statu
s registres)空間には、マネージメントエージェント
(MANAGEMENT_AGENT)レジスタ、コマ
ンドエージェント(CommandAgent)レジス
タ等が定義されている。CommandAgentレジ
スタは、エージェントステート(AGENT_STAT
E)、エージェントリセット(AGENT_RESE
T)、ORBポインタ(ORB_POINTER)、ド
アベル(DOORBELL)の各レジスタから構成され
る。
【0013】図5は、コマンドORBのリンクを示して
いる。リンクされていないコマンドORBは、図3に示
す次ORB(next_ORB)フィールドが空(Nu
ll)になっている。具体的には、同フィールドの先頭
ビットが“1”であることによってNullであると識
別する。ところが、コマンドORBがリンクされている
と、図5上段に示すように、先に発行されるコマンドA
のORBのnext_ORBフィールドにはコマンドB
のORBのアドレスが記載されている。これによって、
ターゲットは取得したコマンドORBのnext_OR
BフィールドがNullになるまで、next_ORB
フィールドが示すアドレスにコマンドORBを取得しに
いくことになる。
いる。リンクされていないコマンドORBは、図3に示
す次ORB(next_ORB)フィールドが空(Nu
ll)になっている。具体的には、同フィールドの先頭
ビットが“1”であることによってNullであると識
別する。ところが、コマンドORBがリンクされている
と、図5上段に示すように、先に発行されるコマンドA
のORBのnext_ORBフィールドにはコマンドB
のORBのアドレスが記載されている。これによって、
ターゲットは取得したコマンドORBのnext_OR
BフィールドがNullになるまで、next_ORB
フィールドが示すアドレスにコマンドORBを取得しに
いくことになる。
【0014】次に、図6を用いて、SBP−2における
ターゲットのステート管理について説明する。ターゲッ
トは図6に示すように、リセット(RESET)、アク
ティブ(ACTIVE)、サスペンド(SUSPEN
D)、デッド(DEAD)の4つのステートによって管
理され、これらの状態はCommandAgentレジ
スタの1つであるAGENT_STATEレジスタに示
される。ターゲットは電源投入時RESETステートに
いる。ターゲットのORB_POINTERレジスタが
アクセスされ、コマンドORB取得を行うとACTIV
Eステートに遷移する。コマンドORB実行終了後、ス
テータスを返すとSUSPENDステートに遷移し、以
後ORB_POINTERレジスタあるいはDOORB
ELLレジスタにアクセスされてコマンドORBを取得
するとACTIVEステートに遷移し、ステータス返送
後SUSPENDステートに遷移することを繰り返す。
ところが、実行したコマンドORBがエラーで終了した
場合や、コマンドORBの実行シーケンス中のトランザ
クションエラー等が発生すると、ターゲットはDEAD
ステートに遷移する。ターゲットはDEADステートに
いると、続けてコマンドORBを取得することができな
いため、イニシエータからAGENT_RESETレジ
スタにアクセスしてもらうことによってRESETステ
ートにもどることができる。
ターゲットのステート管理について説明する。ターゲッ
トは図6に示すように、リセット(RESET)、アク
ティブ(ACTIVE)、サスペンド(SUSPEN
D)、デッド(DEAD)の4つのステートによって管
理され、これらの状態はCommandAgentレジ
スタの1つであるAGENT_STATEレジスタに示
される。ターゲットは電源投入時RESETステートに
いる。ターゲットのORB_POINTERレジスタが
アクセスされ、コマンドORB取得を行うとACTIV
Eステートに遷移する。コマンドORB実行終了後、ス
テータスを返すとSUSPENDステートに遷移し、以
後ORB_POINTERレジスタあるいはDOORB
ELLレジスタにアクセスされてコマンドORBを取得
するとACTIVEステートに遷移し、ステータス返送
後SUSPENDステートに遷移することを繰り返す。
ところが、実行したコマンドORBがエラーで終了した
場合や、コマンドORBの実行シーケンス中のトランザ
クションエラー等が発生すると、ターゲットはDEAD
ステートに遷移する。ターゲットはDEADステートに
いると、続けてコマンドORBを取得することができな
いため、イニシエータからAGENT_RESETレジ
スタにアクセスしてもらうことによってRESETステ
ートにもどることができる。
【0015】図7は、本発明に係るSBP−2のコマン
ド発行装置を実装したデータ伝送システムのブロック図
である。図7のシステムでは、IEEE1394バス3
を介してイニシエータ1がターゲット2に接続されてい
る。例えば、イニシエータ1はSTBであり、ターゲッ
ト2はハードディスクドライブ又は光ディスクドライブ
である。イニシエータ1は、CPU10と、コマンド発
行装置20とを備えている。コマンド発行装置20は、
物理層コントローラ(PHY)21と、リンク層コント
ローラ(LINK)22と、送信バッファ(ATF:as
ynchronous transmission FIFO buffer)23と、受信
バッファ(ARF:asynchronous reception FIFO buff
er)24と、制御レジスタ部25と、送信フィルタ(T
FIL)26と、受信フィルタ(RFIL)27と、パ
ケット処理回路(PPRC)28と、シーケンス制御回
路(SQC)29と、コマンドORB送信バッファ(C
OTB)30と、マネージメントORB送信バッファ
(MOTB)31と、マネージメント用ステータス受信
バッファ(SRBM)32と、コマンド用ステータス受
信バッファ(SRBC)33とからなる。
ド発行装置を実装したデータ伝送システムのブロック図
である。図7のシステムでは、IEEE1394バス3
を介してイニシエータ1がターゲット2に接続されてい
る。例えば、イニシエータ1はSTBであり、ターゲッ
ト2はハードディスクドライブ又は光ディスクドライブ
である。イニシエータ1は、CPU10と、コマンド発
行装置20とを備えている。コマンド発行装置20は、
物理層コントローラ(PHY)21と、リンク層コント
ローラ(LINK)22と、送信バッファ(ATF:as
ynchronous transmission FIFO buffer)23と、受信
バッファ(ARF:asynchronous reception FIFO buff
er)24と、制御レジスタ部25と、送信フィルタ(T
FIL)26と、受信フィルタ(RFIL)27と、パ
ケット処理回路(PPRC)28と、シーケンス制御回
路(SQC)29と、コマンドORB送信バッファ(C
OTB)30と、マネージメントORB送信バッファ
(MOTB)31と、マネージメント用ステータス受信
バッファ(SRBM)32と、コマンド用ステータス受
信バッファ(SRBC)33とからなる。
【0016】物理層コントローラ21は、バス3のイニ
シャライズ、データのエンコード/デコード、アービト
レーション、バイアス電圧の出力/検出等の機能を持
つ。リンク層コントローラ22は、パケットの送受信、
誤り訂正符号の生成/検出等の機能を持つ。送信バッフ
ァ23は送信すべきパケットを格納するためのバッファ
であり、受信バッファ24はCPU10宛てに受信した
パケットを格納するためのバッファである。制御レジス
タ部25は、パケット送受信の際のCPU10からの様
々な制御を行ったり、コマンド発行のための初期設定や
ORBの登録、ステータスの読み出し等を行ったりする
場合に用いられるレジスタ群である。
シャライズ、データのエンコード/デコード、アービト
レーション、バイアス電圧の出力/検出等の機能を持
つ。リンク層コントローラ22は、パケットの送受信、
誤り訂正符号の生成/検出等の機能を持つ。送信バッフ
ァ23は送信すべきパケットを格納するためのバッファ
であり、受信バッファ24はCPU10宛てに受信した
パケットを格納するためのバッファである。制御レジス
タ部25は、パケット送受信の際のCPU10からの様
々な制御を行ったり、コマンド発行のための初期設定や
ORBの登録、ステータスの読み出し等を行ったりする
場合に用いられるレジスタ群である。
【0017】送信フィルタ26は、パケット処理回路2
8からのパケット送信要求とCPU10からのパケット
送信要求とを受けて送信バッファ23が空であれば、要
求されたパケットを送信バッファ23へ書き込む。この
送信フィルタ26は、パケット処理回路28とCPU1
0から同時にパケット送信要求があった場合、いずれか
を優先させる調停機能を有し、また送信バッファ23が
空でない場合はパケットの書き込みを禁止する機能も有
している。
8からのパケット送信要求とCPU10からのパケット
送信要求とを受けて送信バッファ23が空であれば、要
求されたパケットを送信バッファ23へ書き込む。この
送信フィルタ26は、パケット処理回路28とCPU1
0から同時にパケット送信要求があった場合、いずれか
を優先させる調停機能を有し、また送信バッファ23が
空でない場合はパケットの書き込みを禁止する機能も有
している。
【0018】受信フィルタ27は、パケット処理回路2
8宛てのパケットとCPU10宛てのパケットとを識別
する。具体的には、受信フィルタ27は、コマンド発行
時にパケット処理回路28から与えられた情報、つまり
要求パケットに対してはtcodeとdestinat
ion_offset(パケット送信先アドレス)とに
より、また応答パケットに対してはtcodeとtlと
によってパケット処理回路28宛てのパケットであるこ
とを識別して、受信パケットをパケット処理回路28へ
渡す。それ以外の受信パケットはCPU10宛てのパケ
ットであると識別して、受信バッファ24へ格納する。
8宛てのパケットとCPU10宛てのパケットとを識別
する。具体的には、受信フィルタ27は、コマンド発行
時にパケット処理回路28から与えられた情報、つまり
要求パケットに対してはtcodeとdestinat
ion_offset(パケット送信先アドレス)とに
より、また応答パケットに対してはtcodeとtlと
によってパケット処理回路28宛てのパケットであるこ
とを識別して、受信パケットをパケット処理回路28へ
渡す。それ以外の受信パケットはCPU10宛てのパケ
ットであると識別して、受信バッファ24へ格納する。
【0019】パケット処理回路28は、コマンド発行シ
ーケンスやステータス受信にかかわるパケットの生成や
トランザクションの管理を行う。詳細の動作については
後述する。
ーケンスやステータス受信にかかわるパケットの生成や
トランザクションの管理を行う。詳細の動作については
後述する。
【0020】シーケンス制御回路29は、コマンドOR
B送信バッファ30、マネージメントORB送信バッフ
ァ31とともにコマンド発行シーケンスを制御する。こ
のシーケンス制御回路29は、CPU10から制御レジ
スタ部25を介して受け取った、ターゲット2のMAN
AGEMENT_AGENTレジスタ及びComman
dAgentレジスタの各々のアドレスや、ターゲット
2のdestinationIDをもとに、当該MAN
AGEMENT_AGENTレジスタ及びComman
dAgentレジスタの各々へのアクセス要求をCPU
10他の各ブロックから受けて要求パケットを生成し、
これをパケット処理回路28へ渡す。また同要求パケッ
トに対する応答パケットの受信通知をパケット処理回路
28から受けてコマンド発行シーケンスを管理する。
B送信バッファ30、マネージメントORB送信バッフ
ァ31とともにコマンド発行シーケンスを制御する。こ
のシーケンス制御回路29は、CPU10から制御レジ
スタ部25を介して受け取った、ターゲット2のMAN
AGEMENT_AGENTレジスタ及びComman
dAgentレジスタの各々のアドレスや、ターゲット
2のdestinationIDをもとに、当該MAN
AGEMENT_AGENTレジスタ及びComman
dAgentレジスタの各々へのアクセス要求をCPU
10他の各ブロックから受けて要求パケットを生成し、
これをパケット処理回路28へ渡す。また同要求パケッ
トに対する応答パケットの受信通知をパケット処理回路
28から受けてコマンド発行シーケンスを管理する。
【0021】コマンドORB送信バッファ30は、CP
U10から制御レジスタ部25を介して登録されたコマ
ンドORBを格納する。しかも、コマンドORB送信バ
ッファ30はコマンドORBのアドレスを自動で管理す
る機能を有する。具体的には、コマンドORB送信バッ
ファ30は、CPU10からコマンドORBを登録され
ると、自動的に同コマンドORBのアドレスを決定し、
このアドレスをシーケンス制御回路29に通知する。シ
ーケンス制御回路29は、コマンドORB発行の際、同
コマンドORBのアドレスをターゲット2のORB_P
OINTERレジスタにBWRQパケットを使用して書
き込むことになる。また、同コマンドORBのアドレス
はシーケンス制御回路29からパケット処理回路28を
介して受信フィルタ27に通知され、ターゲット2から
受信したBWRQパケットのdestination_
offsetが同コマンドORBのアドレスと一致すれ
ば、当該BWRQパケットはパケット処理回路28に渡
されることになり、パケット処理回路28はコマンドO
RB送信バッファ30から読み出したORBを含んだB
RRSパケットを生成して送信フィルタ26に渡すこと
になる。
U10から制御レジスタ部25を介して登録されたコマ
ンドORBを格納する。しかも、コマンドORB送信バ
ッファ30はコマンドORBのアドレスを自動で管理す
る機能を有する。具体的には、コマンドORB送信バッ
ファ30は、CPU10からコマンドORBを登録され
ると、自動的に同コマンドORBのアドレスを決定し、
このアドレスをシーケンス制御回路29に通知する。シ
ーケンス制御回路29は、コマンドORB発行の際、同
コマンドORBのアドレスをターゲット2のORB_P
OINTERレジスタにBWRQパケットを使用して書
き込むことになる。また、同コマンドORBのアドレス
はシーケンス制御回路29からパケット処理回路28を
介して受信フィルタ27に通知され、ターゲット2から
受信したBWRQパケットのdestination_
offsetが同コマンドORBのアドレスと一致すれ
ば、当該BWRQパケットはパケット処理回路28に渡
されることになり、パケット処理回路28はコマンドO
RB送信バッファ30から読み出したORBを含んだB
RRSパケットを生成して送信フィルタ26に渡すこと
になる。
【0022】更に、コマンドORB送信バッファ30
は、複数のORBを登録することができ、CPU10か
らコマンドORBが登録されたときに当該コマンドOR
B送信バッファ30内に未発行のコマンドORBが残っ
ていた場合、自動的にORBのリンクを行う機能を有し
ている。図5下段に示すように、コマンドORB送信バ
ッファ30は、追加登録されたコマンドORBのアドレ
スを自動的に割り当て、先に登録されているコマンドO
RBのnext_ORBフィールドを当該追加登録され
たコマンドORBのアドレスに書き換える。またこのと
き、コマンドORB送信バッファ30は、シーケンス制
御回路29にターゲット2のDOORBELLレジスタ
へのアクセスを要求する。
は、複数のORBを登録することができ、CPU10か
らコマンドORBが登録されたときに当該コマンドOR
B送信バッファ30内に未発行のコマンドORBが残っ
ていた場合、自動的にORBのリンクを行う機能を有し
ている。図5下段に示すように、コマンドORB送信バ
ッファ30は、追加登録されたコマンドORBのアドレ
スを自動的に割り当て、先に登録されているコマンドO
RBのnext_ORBフィールドを当該追加登録され
たコマンドORBのアドレスに書き換える。またこのと
き、コマンドORB送信バッファ30は、シーケンス制
御回路29にターゲット2のDOORBELLレジスタ
へのアクセスを要求する。
【0023】マネージメントORB送信バッファ31
は、CPU10から制御レジスタ部25を介して登録さ
れたマネージメントORBを格納する。しかも、マネー
ジメントORB送信バッファ31はマネージメントOR
Bのアドレスを自動で管理する機能を有する。具体的に
は、マネージメントORB送信バッファ31は、CPU
10からマネージメントORBを登録されると、自動的
に同マネージメントORBのアドレスを決定し、このア
ドレスをシーケンス制御回路29に通知する。シーケン
ス制御回路29は、マネージメントORB発行の際、同
マネージメントORBのアドレスをターゲット2のMA
NAGEMENT_AGENTレジスタにBWRQパケ
ットを使用して書き込むことになる。また、同マネージ
メントORBのアドレスはシーケンス制御回路29から
パケット処理回路28を介して受信フィルタ27に通知
され、ターゲット2から受信したBWRQパケットのd
estination_offsetが同マネージメン
トORBのアドレスと一致すれば、当該BWRQパケッ
トはパケット処理回路28に渡されることになり、パケ
ット処理回路28はマネージメントORB送信バッファ
31から読み出したORBを含んだBRRSパケットを
生成して送信フィルタ26に渡すことになる。
は、CPU10から制御レジスタ部25を介して登録さ
れたマネージメントORBを格納する。しかも、マネー
ジメントORB送信バッファ31はマネージメントOR
Bのアドレスを自動で管理する機能を有する。具体的に
は、マネージメントORB送信バッファ31は、CPU
10からマネージメントORBを登録されると、自動的
に同マネージメントORBのアドレスを決定し、このア
ドレスをシーケンス制御回路29に通知する。シーケン
ス制御回路29は、マネージメントORB発行の際、同
マネージメントORBのアドレスをターゲット2のMA
NAGEMENT_AGENTレジスタにBWRQパケ
ットを使用して書き込むことになる。また、同マネージ
メントORBのアドレスはシーケンス制御回路29から
パケット処理回路28を介して受信フィルタ27に通知
され、ターゲット2から受信したBWRQパケットのd
estination_offsetが同マネージメン
トORBのアドレスと一致すれば、当該BWRQパケッ
トはパケット処理回路28に渡されることになり、パケ
ット処理回路28はマネージメントORB送信バッファ
31から読み出したORBを含んだBRRSパケットを
生成して送信フィルタ26に渡すことになる。
【0024】マネージメント用ステータス受信バッファ
32は、発行したマネージメントORBに対して受信し
たステータスを格納してCPU10に通知する。マネー
ジメントORB発行前にCPU10から制御レジスタ部
25を介して受信フィルタ27に通知されるSTATU
S_FIFOのアドレスに一致したdestinati
on_offsetを持つBWRQパケットをターゲッ
ト2から受信すると、受信フィルタ27は同BWRQパ
ケットをパケット処理回路28に渡す。パケット処理回
路28は、マネージメントORB送信バッファ31から
通知されたマネージメントORBのアドレスと、受信し
たステータスのORB_offset_hi/ORB_
offset_lo(図4参照)とが一致すると、マネ
ージメント用ステータス受信バッファ32にステータス
を渡す。
32は、発行したマネージメントORBに対して受信し
たステータスを格納してCPU10に通知する。マネー
ジメントORB発行前にCPU10から制御レジスタ部
25を介して受信フィルタ27に通知されるSTATU
S_FIFOのアドレスに一致したdestinati
on_offsetを持つBWRQパケットをターゲッ
ト2から受信すると、受信フィルタ27は同BWRQパ
ケットをパケット処理回路28に渡す。パケット処理回
路28は、マネージメントORB送信バッファ31から
通知されたマネージメントORBのアドレスと、受信し
たステータスのORB_offset_hi/ORB_
offset_lo(図4参照)とが一致すると、マネ
ージメント用ステータス受信バッファ32にステータス
を渡す。
【0025】コマンド用ステータス受信バッファ33
は、発行したコマンドORBに対して受信したステータ
スを格納してCPU10に通知する。コマンドORB発
行前にCPU10から制御レジスタ部25を介して受信
フィルタ27に通知されるSTATUS_FIFOのア
ドレスに一致したdestination_offse
tを持つBWRQパケットをターゲット2から受信する
と、受信フィルタ27は同BWRQパケットをパケット
処理回路28に渡す。パケット処理回路28は、マネー
ジメントORB送信バッファ31から通知されたマネー
ジメントORBのアドレスと、受信したステータスのO
RB_offset_hi/ORB_offset_l
oとが一致しない場合には、コマンド用ステータス受信
バッファ33にステータスを渡す。また、コマンド用ス
テータス受信バッファ33は、複数のステータスを格納
できる。更にコマンド用ステータス受信バッファ33
は、受信したステータスがエラーであることを検出する
(図4に示すステータスのdビットがセットされている
と、該当するコマンドORBがエラーであったことを示
す)と、シーケンス制御回路29にターゲット2のAG
ENT_RESETレジスタへのアクセスを要求する機
能を有する。
は、発行したコマンドORBに対して受信したステータ
スを格納してCPU10に通知する。コマンドORB発
行前にCPU10から制御レジスタ部25を介して受信
フィルタ27に通知されるSTATUS_FIFOのア
ドレスに一致したdestination_offse
tを持つBWRQパケットをターゲット2から受信する
と、受信フィルタ27は同BWRQパケットをパケット
処理回路28に渡す。パケット処理回路28は、マネー
ジメントORB送信バッファ31から通知されたマネー
ジメントORBのアドレスと、受信したステータスのO
RB_offset_hi/ORB_offset_l
oとが一致しない場合には、コマンド用ステータス受信
バッファ33にステータスを渡す。また、コマンド用ス
テータス受信バッファ33は、複数のステータスを格納
できる。更にコマンド用ステータス受信バッファ33
は、受信したステータスがエラーであることを検出する
(図4に示すステータスのdビットがセットされている
と、該当するコマンドORBがエラーであったことを示
す)と、シーケンス制御回路29にターゲット2のAG
ENT_RESETレジスタへのアクセスを要求する機
能を有する。
【0026】以下、図1中のコマンド発行装置20の5
つの動作例を説明する。
つの動作例を説明する。
【0027】(動作例1)図8と図9A〜図9Bとを用
いてマネージメントORB発行時のコマンド発行装置2
0の動作を説明する。イニシエータ1は、マネージメン
トORB発行前に、ターゲット2のコンフィギュレーシ
ョンROMからMANAGEMENT_AGENTレジ
スタのアドレスを取得する必要があるが、ここではその
動作説明は省略する。
いてマネージメントORB発行時のコマンド発行装置2
0の動作を説明する。イニシエータ1は、マネージメン
トORB発行前に、ターゲット2のコンフィギュレーシ
ョンROMからMANAGEMENT_AGENTレジ
スタのアドレスを取得する必要があるが、ここではその
動作説明は省略する。
【0028】(1)CPU10は、初期設定としてター
ゲット2から取得したMANAGEMENT_AGEN
Tレジスタのアドレスとターゲット2のノードIDとを
シーケンス制御回路29に、ステータスの受信バッファ
(STATUS_FIFO)のアドレスをマネージメン
ト用ステータス受信バッファ32にそれぞれ設定する。
ゲット2から取得したMANAGEMENT_AGEN
Tレジスタのアドレスとターゲット2のノードIDとを
シーケンス制御回路29に、ステータスの受信バッファ
(STATUS_FIFO)のアドレスをマネージメン
ト用ステータス受信バッファ32にそれぞれ設定する。
【0029】(2)CPU10は発行するマネージメン
トORBを作成し、マネージメントORB送信バッファ
31に登録する。このときマネージメントORB送信バ
ッファ31は、同マネージメントORBのアドレス(図
8の*P)を決定してシーケンス制御回路29へ通知す
る。また、パケット処理回路28と受信フィルタ27に
も同アドレスを通知する。
トORBを作成し、マネージメントORB送信バッファ
31に登録する。このときマネージメントORB送信バ
ッファ31は、同マネージメントORBのアドレス(図
8の*P)を決定してシーケンス制御回路29へ通知す
る。また、パケット処理回路28と受信フィルタ27に
も同アドレスを通知する。
【0030】(3)CPU10はシーケンス制御回路2
9にマネージメントORBの発行を要求する(ここから
図8の(a)のフェーズ開始)。
9にマネージメントORBの発行を要求する(ここから
図8の(a)のフェーズ開始)。
【0031】(4)シーケンス制御回路29はCPU1
0から与えられたターゲット2のノードIDをdest
ination_IDに、MANAGEMENT_AG
ENTレジスタのアドレスをdestination_
offsetに、そしてマネージメントORB送信バッ
ファ31から与えられたマネージメントORBのアドレ
ス(*P)をdata_fieldに、tcodeを
“1(BWRQであることを示す)”に、data_l
engthを“8”に設定した図1Aに示すBWRQパ
ケットを生成し、パケット処理回路28に渡す。
0から与えられたターゲット2のノードIDをdest
ination_IDに、MANAGEMENT_AG
ENTレジスタのアドレスをdestination_
offsetに、そしてマネージメントORB送信バッ
ファ31から与えられたマネージメントORBのアドレ
ス(*P)をdata_fieldに、tcodeを
“1(BWRQであることを示す)”に、data_l
engthを“8”に設定した図1Aに示すBWRQパ
ケットを生成し、パケット処理回路28に渡す。
【0032】(5)パケット処理回路28は同BWRQ
パケットのtlに任意の値を設定して送信フィルタ2
6、送信バッファ23、リンク層コントローラ22、物
理層コントローラ21を介して1394バス3に送出す
る。このときパケット処理回路28は、tcodeとt
lとを受信フィルタ27に通知する。
パケットのtlに任意の値を設定して送信フィルタ2
6、送信バッファ23、リンク層コントローラ22、物
理層コントローラ21を介して1394バス3に送出す
る。このときパケット処理回路28は、tcodeとt
lとを受信フィルタ27に通知する。
【0033】(6)同BWRQパケットをターゲット2
が受信し、WRSパケットを返す。
が受信し、WRSパケットを返す。
【0034】(7)受信フィルタ27は受信した同WR
SパケットのtcodeがWRSであることと、tlが
パケット処理回路28から渡されたそれと一致している
こととを確認できると、パケット処理回路28とシーケ
ンス制御回路29にWRSパケットの受信を通知してW
RSパケット自体は読み捨てる(ここまでが図8の
(a)のフェーズ)。
SパケットのtcodeがWRSであることと、tlが
パケット処理回路28から渡されたそれと一致している
こととを確認できると、パケット処理回路28とシーケ
ンス制御回路29にWRSパケットの受信を通知してW
RSパケット自体は読み捨てる(ここまでが図8の
(a)のフェーズ)。
【0035】(8)続いてターゲット2はマネージメン
トORBを取得するために、マネージメントORBのア
ドレス(*P)宛てにBRRQパケットを送信する。受
信フィルタ27は、受信したBRRQパケットのdes
tination_offsetとパケット処理回路2
8から通知されたマネージメントORBのアドレス(*
P)とが一致していることを確認すると、パケット処理
回路28にBRRQパケット受信の通知とともにtlを
渡し、BRRQパケット自体は読み捨てる(ここから図
8の(b)のフェーズ開始)。
トORBを取得するために、マネージメントORBのア
ドレス(*P)宛てにBRRQパケットを送信する。受
信フィルタ27は、受信したBRRQパケットのdes
tination_offsetとパケット処理回路2
8から通知されたマネージメントORBのアドレス(*
P)とが一致していることを確認すると、パケット処理
回路28にBRRQパケット受信の通知とともにtlを
渡し、BRRQパケット自体は読み捨てる(ここから図
8の(b)のフェーズ開始)。
【0036】(9)パケット処理回路28は、data
_fieldにマネージメントORB送信バッファ31
から読み出したマネージメントORBを入れてBRRS
パケットを作成する。更にパケット処理回路28は、同
BRRSパケットのtlを受信フィルタ27から受けた
tlに書き換えたうえ送信フィルタ26、送信バッファ
23、リンク層コントローラ22、物理層コントローラ
21を介して1394バス3に送出する。
_fieldにマネージメントORB送信バッファ31
から読み出したマネージメントORBを入れてBRRS
パケットを作成する。更にパケット処理回路28は、同
BRRSパケットのtlを受信フィルタ27から受けた
tlに書き換えたうえ送信フィルタ26、送信バッファ
23、リンク層コントローラ22、物理層コントローラ
21を介して1394バス3に送出する。
【0037】(10)ターゲット2は同BRRSパケッ
トを受信することによって、マネージメントORBを取
得してこれを実行する(ここまでが図8の(b)のフェ
ーズ)。
トを受信することによって、マネージメントORBを取
得してこれを実行する(ここまでが図8の(b)のフェ
ーズ)。
【0038】(11)ORBの実行が完了すると、ター
ゲット2は図4に示すステータスを作成し、このステー
タスをBWRQパケットのdata_fieldに入れ
てイニシエータ1に送信する(ここから図8の(c)の
フェーズ開始)。
ゲット2は図4に示すステータスを作成し、このステー
タスをBWRQパケットのdata_fieldに入れ
てイニシエータ1に送信する(ここから図8の(c)の
フェーズ開始)。
【0039】(12)受信フィルタ27は、受信した同
ステータスを含んだBWRQパケットのdestina
tion_offsetが、CPU10に設定されてい
たSTATUS_FIFOのアドレスと一致しているこ
とが確認できると、パケット処理回路28にBWRQパ
ケット受信の通知をするとともに同BWRQパケットを
パケット処理回路28に渡す。
ステータスを含んだBWRQパケットのdestina
tion_offsetが、CPU10に設定されてい
たSTATUS_FIFOのアドレスと一致しているこ
とが確認できると、パケット処理回路28にBWRQパ
ケット受信の通知をするとともに同BWRQパケットを
パケット処理回路28に渡す。
【0040】(13)パケット処理回路28は、同BW
RQパケットのdata_fieldに含まれるステー
タスのORB_offset_hiとORB_offs
et_lo(図4参照)とを参照し、マネージメントO
RB送信バッファ31から受けていたマネージメントO
RBのアドレス(*P)と一致していれば、ステータス
をマネージメント用ステータス受信バッファ32に格納
する。また同時に同BWRQパケットに対するWRSパ
ケットを作成して、送信フィルタ26、送信バッファ2
3、リンク層コントローラ22、物理層コントローラ2
1を介して1394バス3に送出する。
RQパケットのdata_fieldに含まれるステー
タスのORB_offset_hiとORB_offs
et_lo(図4参照)とを参照し、マネージメントO
RB送信バッファ31から受けていたマネージメントO
RBのアドレス(*P)と一致していれば、ステータス
をマネージメント用ステータス受信バッファ32に格納
する。また同時に同BWRQパケットに対するWRSパ
ケットを作成して、送信フィルタ26、送信バッファ2
3、リンク層コントローラ22、物理層コントローラ2
1を介して1394バス3に送出する。
【0041】(14)パケット処理回路28は、送信し
た同WRSパケットに対するACKパケットの情報が正
常終了であることを確認すると、CPU10に対してマ
ネージメントORBに対するステータスの受信を通知す
る(ここまでが図8の(c)のフェーズ)。
た同WRSパケットに対するACKパケットの情報が正
常終了であることを確認すると、CPU10に対してマ
ネージメントORBに対するステータスの受信を通知す
る(ここまでが図8の(c)のフェーズ)。
【0042】(15)CPU10はマネージメント用ス
テータス受信バッファ32からステータスを読み出す。
テータス受信バッファ32からステータスを読み出す。
【0043】以上のように、本コマンド発行装置20を
使用することで、CPU10は、初期設定、マネージメ
ントORBの作成と登録、マネージメントORBの発行
要求を行うと、この時点から、ステータスの受信通知及
びステータスの読み出しまでの間、負荷をなくすことが
できる。
使用することで、CPU10は、初期設定、マネージメ
ントORBの作成と登録、マネージメントORBの発行
要求を行うと、この時点から、ステータスの受信通知及
びステータスの読み出しまでの間、負荷をなくすことが
できる。
【0044】(動作例2)次に、図10と図11A〜図
11Bとを用いてコマンドORB発行時のコマンド発行
装置20の動作を説明する。イニシエータ1は、コマン
ドORB発行前に、ターゲット2へのログインによって
得られるComnandAgentレジスタのアドレス
を取得する必要があるが、ここではその動作説明は省略
する。
11Bとを用いてコマンドORB発行時のコマンド発行
装置20の動作を説明する。イニシエータ1は、コマン
ドORB発行前に、ターゲット2へのログインによって
得られるComnandAgentレジスタのアドレス
を取得する必要があるが、ここではその動作説明は省略
する。
【0045】(1)CPU10は、初期設定としてター
ゲット2から取得したCommandAgentレジス
タのアドレスとターゲット2のノードIDとをシーケン
ス制御回路29に、ステータスの受信バッファ(STA
TUS_FIFO)のアドレスをコマンド用ステータス
受信バッファ33にそれぞれ設定する。ターゲット2の
ノードIDはマネージメントORB発行時と同じ値であ
るので、マネージメントORBの発行後は省略可能であ
る。また、コマンドORBの発行が2回目以降であれ
ば、CommandAgentレジスタのアドレスの設
定とSTATUS_FIFOのアドレスの設定も省略で
きる。
ゲット2から取得したCommandAgentレジス
タのアドレスとターゲット2のノードIDとをシーケン
ス制御回路29に、ステータスの受信バッファ(STA
TUS_FIFO)のアドレスをコマンド用ステータス
受信バッファ33にそれぞれ設定する。ターゲット2の
ノードIDはマネージメントORB発行時と同じ値であ
るので、マネージメントORBの発行後は省略可能であ
る。また、コマンドORBの発行が2回目以降であれ
ば、CommandAgentレジスタのアドレスの設
定とSTATUS_FIFOのアドレスの設定も省略で
きる。
【0046】(2)CPU10は発行するコマンドOR
Bを作成し、コマンドORB送信バッファ30に登録す
る。このときコマンドORB送信バッファ30は、同コ
マンドORBのアドレス(図10の*P)を決定してシ
ーケンス制御回路29へ通知する。また、パケット処理
回路28と受信フィルタ27にも同アドレスを通知す
る。
Bを作成し、コマンドORB送信バッファ30に登録す
る。このときコマンドORB送信バッファ30は、同コ
マンドORBのアドレス(図10の*P)を決定してシ
ーケンス制御回路29へ通知する。また、パケット処理
回路28と受信フィルタ27にも同アドレスを通知す
る。
【0047】(3)CPU10はシーケンス制御回路2
9にコマンドORBの発行を要求する(ここから図10
の(a)のフェーズ開始)。
9にコマンドORBの発行を要求する(ここから図10
の(a)のフェーズ開始)。
【0048】(4)シーケンス制御回路29はCPU1
0から与えられたターゲット2のノードIDをdest
ination_IDに、ORB_POINTERレジ
スタのアドレスをdestination_offse
tに、そしてコマンドORB送信バッファ30から与え
られたコマンドORBのアドレス(*P)をdata_
fieldに、tcodeを“1(BWRQであること
を示す)”に、data_lengthを“8”にそれ
ぞれ設定した図1Aに示すBWRQパケットを生成し、
パケット処理回路28に渡す。
0から与えられたターゲット2のノードIDをdest
ination_IDに、ORB_POINTERレジ
スタのアドレスをdestination_offse
tに、そしてコマンドORB送信バッファ30から与え
られたコマンドORBのアドレス(*P)をdata_
fieldに、tcodeを“1(BWRQであること
を示す)”に、data_lengthを“8”にそれ
ぞれ設定した図1Aに示すBWRQパケットを生成し、
パケット処理回路28に渡す。
【0049】(5)パケット処理回路28は同BWRQ
パケットのtlに任意の値を設定して送信フィルタ2
6、送信バッファ23、リンク層コントローラ22、物
理層コントローラ21を介して1394バス3に送出す
る。このときパケット処理回路28は、tcodeとt
lとを受信フィルタ27に通知する。
パケットのtlに任意の値を設定して送信フィルタ2
6、送信バッファ23、リンク層コントローラ22、物
理層コントローラ21を介して1394バス3に送出す
る。このときパケット処理回路28は、tcodeとt
lとを受信フィルタ27に通知する。
【0050】(6)同BWRQパケットをターゲット2
が受信し、WRSパケットを返す。
が受信し、WRSパケットを返す。
【0051】(7)受信フィルタ27は受信した同WR
SパケットのtcodeがWRSであることと、tlが
パケット処理回路28から渡されたそれと一致している
こととを確認できると、パケット処理回路28とシーケ
ンス制御回路29とにWRSパケットの受信を通知して
WRSパケット自体は読み捨てる(ここまでが図10の
(a)のフェーズ)。
SパケットのtcodeがWRSであることと、tlが
パケット処理回路28から渡されたそれと一致している
こととを確認できると、パケット処理回路28とシーケ
ンス制御回路29とにWRSパケットの受信を通知して
WRSパケット自体は読み捨てる(ここまでが図10の
(a)のフェーズ)。
【0052】(8)続いてターゲット2はコマンドOR
Bを取得するために、コマンドORBのアドレス(*
P)宛てにBRRQパケットを送信する。受信フィルタ
27は、受信したBRRQパケットのdestinat
ion_offsetとパケット処理回路28から通知
されたコマンドORBのアドレス(*P)とが一致して
いることを確認すると、パケット処理回路28にBRR
Qパケット受信の通知とともにtlを渡し、BRRQパ
ケット自体は読み捨てる(ここから図10の(b)のフ
ェーズ開始)。
Bを取得するために、コマンドORBのアドレス(*
P)宛てにBRRQパケットを送信する。受信フィルタ
27は、受信したBRRQパケットのdestinat
ion_offsetとパケット処理回路28から通知
されたコマンドORBのアドレス(*P)とが一致して
いることを確認すると、パケット処理回路28にBRR
Qパケット受信の通知とともにtlを渡し、BRRQパ
ケット自体は読み捨てる(ここから図10の(b)のフ
ェーズ開始)。
【0053】(9)パケット処理回路28は、data
_fieldにコマンドORB送信バッファ30から読
み出したコマンドORBを入れてBRRSパケットを作
成する。更にパケット処理回路28は同BRRSパケッ
トのtlを受信フィルタ27から受けたtlに書き換え
たうえ送信フィルタ26、送信バッファ23、リンク層
コントローラ22、物理層コントローラ21を介して1
394バス3に送出する。
_fieldにコマンドORB送信バッファ30から読
み出したコマンドORBを入れてBRRSパケットを作
成する。更にパケット処理回路28は同BRRSパケッ
トのtlを受信フィルタ27から受けたtlに書き換え
たうえ送信フィルタ26、送信バッファ23、リンク層
コントローラ22、物理層コントローラ21を介して1
394バス3に送出する。
【0054】(10)ターゲット2は同BRRSパケッ
トを受信することによって、コマンドORBを取得して
これを実行する(ここまでが図10の(b)のフェー
ズ)。
トを受信することによって、コマンドORBを取得して
これを実行する(ここまでが図10の(b)のフェー
ズ)。
【0055】(11)ORBの実行が完了すると、ター
ゲット2は図4に示すステータスを作成し、このステー
タスをBWRQパケットのdata_fieldに入れ
てイニシエータ1に送信する(ここから図10の(c)
のフェーズ開始)。
ゲット2は図4に示すステータスを作成し、このステー
タスをBWRQパケットのdata_fieldに入れ
てイニシエータ1に送信する(ここから図10の(c)
のフェーズ開始)。
【0056】(12)受信フィルタ27は受信した同ス
テータスを含んだBWRQパケットのdestinat
ion_offsetが、CPU10に設定されていた
STATUS_FIFOのアドレスと一致していること
が確認できると、パケット処理回路28にBWRQパケ
ット受信の通知をするとともに同BWRQパケットをパ
ケット処理回路28に渡す。
テータスを含んだBWRQパケットのdestinat
ion_offsetが、CPU10に設定されていた
STATUS_FIFOのアドレスと一致していること
が確認できると、パケット処理回路28にBWRQパケ
ット受信の通知をするとともに同BWRQパケットをパ
ケット処理回路28に渡す。
【0057】(13)パケット処理回路28は、同BW
RQパケットのdata_fieldに含まれるステー
タスのORB_offset_hiとORB_offs
et_lo(図4参照)とを参照し、マネージメントO
RB送信バッファ31から受けていたマネージメントO
RBのアドレスと一致していなければ、ステータスをコ
マンド用ステータス受信バッファ33に格納する。また
同時に同BWRQパケットに対するWRSパケットを作
成して、送信フィルタ26、送信バッファ23、リンク
層コントローラ22、物理層コントローラ21を介して
1394バス3に送出する。
RQパケットのdata_fieldに含まれるステー
タスのORB_offset_hiとORB_offs
et_lo(図4参照)とを参照し、マネージメントO
RB送信バッファ31から受けていたマネージメントO
RBのアドレスと一致していなければ、ステータスをコ
マンド用ステータス受信バッファ33に格納する。また
同時に同BWRQパケットに対するWRSパケットを作
成して、送信フィルタ26、送信バッファ23、リンク
層コントローラ22、物理層コントローラ21を介して
1394バス3に送出する。
【0058】(14)パケット処理回路28は、送信し
た同WRSパケットに対するACKパケットの情報が正
常終了であることを確認すると、CPU10に対してコ
マンドORBに対するステータスの受信を通知する(こ
こまでが図10の(c)のフェーズ)。
た同WRSパケットに対するACKパケットの情報が正
常終了であることを確認すると、CPU10に対してコ
マンドORBに対するステータスの受信を通知する(こ
こまでが図10の(c)のフェーズ)。
【0059】(15)CPU10はコマンド用ステータ
ス受信バッファ33からステータスを読み出す。
ス受信バッファ33からステータスを読み出す。
【0060】以上のように、本コマンド発行装置20を
使用することで、CPU10は、初期設定、コマンドO
RBの作成と登録、コマンドORBの発行要求を行う
と、この時点から、ステータスの受信通知及びステータ
スの読み出しまでの間、負荷をなくすことができる。な
お、本動作例ではORB_POINTERレジスタへの
アクセスによるコマンドORBの発行を説明している
が、AGENT_STATEがSUSPEND状態での
DOORBELLレジスタへのアクセスによるコマンド
ORB発行時も同様の機能が動作することは言うまでも
ない。
使用することで、CPU10は、初期設定、コマンドO
RBの作成と登録、コマンドORBの発行要求を行う
と、この時点から、ステータスの受信通知及びステータ
スの読み出しまでの間、負荷をなくすことができる。な
お、本動作例ではORB_POINTERレジスタへの
アクセスによるコマンドORBの発行を説明している
が、AGENT_STATEがSUSPEND状態での
DOORBELLレジスタへのアクセスによるコマンド
ORB発行時も同様の機能が動作することは言うまでも
ない。
【0061】(動作例3)次に、図12A〜図12Bと
図13A〜図13Cとを用いて、リンクされたコマンド
ORBの発行時のコマンド発行装置20の動作を説明す
る。本動作例では、図5のコマンドC追加前、つまりコ
マンドA、コマンドBの2つのコマンドORBの発行に
ついて説明する。
図13A〜図13Cとを用いて、リンクされたコマンド
ORBの発行時のコマンド発行装置20の動作を説明す
る。本動作例では、図5のコマンドC追加前、つまりコ
マンドA、コマンドBの2つのコマンドORBの発行に
ついて説明する。
【0062】本動作例では、CPU10は発行する2つ
のコマンドORB(ORB A、ORB B)を作成
し、連続してコマンドORB送信バッファ30に登録す
る。このときコマンドORB送信バッファ30は、コマ
ンドAのORBのアドレス(図12A中の*A)を決定
してシーケンス制御回路29へ通知する。また、パケッ
ト処理回路28と受信フィルタ27にも同アドレスを通
知する。続いてコマンドORB送信バッファ30はコマ
ンドBのORBのアドレス(図12A中の*B)を決定
して、コマンドAのORBのnext_ORBフィール
ドを*Bに書き換える。このとき、コマンドAのORB
の場合と同様にコマンドBのORBのアドレス(図12
A中の*B)もパケット処理回路28と受信フィルタ2
7とに通知する。
のコマンドORB(ORB A、ORB B)を作成
し、連続してコマンドORB送信バッファ30に登録す
る。このときコマンドORB送信バッファ30は、コマ
ンドAのORBのアドレス(図12A中の*A)を決定
してシーケンス制御回路29へ通知する。また、パケッ
ト処理回路28と受信フィルタ27にも同アドレスを通
知する。続いてコマンドORB送信バッファ30はコマ
ンドBのORBのアドレス(図12A中の*B)を決定
して、コマンドAのORBのnext_ORBフィール
ドを*Bに書き換える。このとき、コマンドAのORB
の場合と同様にコマンドBのORBのアドレス(図12
A中の*B)もパケット処理回路28と受信フィルタ2
7とに通知する。
【0063】図12Aの(a)〜(c)のフェーズは、
動作例2と同様に進められる。そして、コマンドAのO
RBに対するステータスの受信がCPU10に通知され
ると、CPU10はコマンド用ステータス受信バッファ
33からステータスを読み出す。ただし、コマンド用ス
テータス受信バッファ33に複数のステータスを同時に
格納できるようにしておくと、CPU10による当該コ
マンドAのORBに対するステータスの読み出しを、コ
マンドBのORBに対するステータスの読み出し時まで
延期することができる。
動作例2と同様に進められる。そして、コマンドAのO
RBに対するステータスの受信がCPU10に通知され
ると、CPU10はコマンド用ステータス受信バッファ
33からステータスを読み出す。ただし、コマンド用ス
テータス受信バッファ33に複数のステータスを同時に
格納できるようにしておくと、CPU10による当該コ
マンドAのORBに対するステータスの読み出しを、コ
マンドBのORBに対するステータスの読み出し時まで
延期することができる。
【0064】ここで、ターゲット2はコマンドAのOR
Bのnext_ORBフィールドがNullでなく*B
であることを確認する。したがって、コマンドBのOR
B取得とその実行とが開始する。図12Bの(d)及び
(e)のフェーズは、図12Aの(b)及び(c)のフ
ェーズと同様である。
Bのnext_ORBフィールドがNullでなく*B
であることを確認する。したがって、コマンドBのOR
B取得とその実行とが開始する。図12Bの(d)及び
(e)のフェーズは、図12Aの(b)及び(c)のフ
ェーズと同様である。
【0065】以上のように、本コマンド発行装置20を
使用することで、CPU10は複数のコマンドORBを
発行する際にORBをリンクさせることを意識すること
なく、登録する全てのコマンドORBのnext_OR
BフィールドをNullのまま登録することができ、C
PU10の負荷を低減することができる。
使用することで、CPU10は複数のコマンドORBを
発行する際にORBをリンクさせることを意識すること
なく、登録する全てのコマンドORBのnext_OR
BフィールドをNullのまま登録することができ、C
PU10の負荷を低減することができる。
【0066】(動作例4)次に、図14A〜図14Bと
図15A〜図15Dとを用いて、リンクされたComm
andORBの実行中にCommandORBが追加発
行された時のコマンド発行装置20の動作を説明する。
本動作例では、図5のようにコマンドA、コマンドBの
2つのORBをリンクして発行した後、コマンドAの実
行中にコマンドCを追加発行する動作について説明す
る。
図15A〜図15Dとを用いて、リンクされたComm
andORBの実行中にCommandORBが追加発
行された時のコマンド発行装置20の動作を説明する。
本動作例では、図5のようにコマンドA、コマンドBの
2つのORBをリンクして発行した後、コマンドAの実
行中にコマンドCを追加発行する動作について説明す
る。
【0067】図14Aの(a)及び(b)のフェーズ
は、動作例3と同様に進められる。そして、ターゲット
2がコマンドAのORB実行中に、CPU10は3つ目
のコマンドCのORBを作成し、コマンドORB送信バ
ッファ30に登録する。このときコマンドORB送信バ
ッファ30は、コマンドCのORBのアドレス(図14
A中の*C)を決定してパケット処理回路28と受信フ
ィルタ27とに通知する。更に、コマンドORB送信バ
ッファ30は、既に登録されているコマンドBのORB
のnext_ORBフィールドを*Cに書き換え、シー
ケンス制御回路29にターゲット2のDOORBELL
レジスタへのアクセスを要求する。シーケンス処理回路
29は現在コマンドAのORBが実行中であることから
DOORBELLレジスタへのアクセス要求に対して、
アクセスを行わない。ただし、リンクされていた最後の
ORB、つまりコマンドBのORBを実行中であれば、
DOOBELLレジスタへのアクセス行う。
は、動作例3と同様に進められる。そして、ターゲット
2がコマンドAのORB実行中に、CPU10は3つ目
のコマンドCのORBを作成し、コマンドORB送信バ
ッファ30に登録する。このときコマンドORB送信バ
ッファ30は、コマンドCのORBのアドレス(図14
A中の*C)を決定してパケット処理回路28と受信フ
ィルタ27とに通知する。更に、コマンドORB送信バ
ッファ30は、既に登録されているコマンドBのORB
のnext_ORBフィールドを*Cに書き換え、シー
ケンス制御回路29にターゲット2のDOORBELL
レジスタへのアクセスを要求する。シーケンス処理回路
29は現在コマンドAのORBが実行中であることから
DOORBELLレジスタへのアクセス要求に対して、
アクセスを行わない。ただし、リンクされていた最後の
ORB、つまりコマンドBのORBを実行中であれば、
DOOBELLレジスタへのアクセス行う。
【0068】図14Aの(c)のフェーズや図14Bの
(d)〜(g)のフェーズについては、多言を要しない
であろう。なお、本動作例でも、コマンド用ステータス
受信バッファ33に複数のステータスを同時に格納でき
るようにしておくと、CPU10によるコマンドA,B
のORBに対するステータスの読み出しを、コマンドC
のORBに対するステータスの読み出し時まで延期する
ことができる。
(d)〜(g)のフェーズについては、多言を要しない
であろう。なお、本動作例でも、コマンド用ステータス
受信バッファ33に複数のステータスを同時に格納でき
るようにしておくと、CPU10によるコマンドA,B
のORBに対するステータスの読み出しを、コマンドC
のORBに対するステータスの読み出し時まで延期する
ことができる。
【0069】以上のように、本コマンド発行装置20を
使用することで、CPU10はリンクして発行した複数
のコマンドORBを実行中に追加のコマンドORBを発
行する際にもORBをリンクさせることを意識すること
なく、登録する全てのコマンドORBのnext_OR
BフィールドをNullのまま登録することができ、C
PU10の負荷を低減することができる。
使用することで、CPU10はリンクして発行した複数
のコマンドORBを実行中に追加のコマンドORBを発
行する際にもORBをリンクさせることを意識すること
なく、登録する全てのコマンドORBのnext_OR
BフィールドをNullのまま登録することができ、C
PU10の負荷を低減することができる。
【0070】(動作例5)次に、図16と図17A〜図
17Bとを用いて、コマンドエラー発生時のコマンド発
行装置20の動作を説明する。ここでは、DEADステ
ートへの遷移、RESETステートへの復帰の動作につ
いて説明する。
17Bとを用いて、コマンドエラー発生時のコマンド発
行装置20の動作を説明する。ここでは、DEADステ
ートへの遷移、RESETステートへの復帰の動作につ
いて説明する。
【0071】図16の(a)及び(b)のフェーズは、
動作例2と同様に進められる。ここでターゲット2は、
図16の(a)のフェーズにおいてイニシエータ1へW
RSパケットを返した時点で、RESETステートから
ACTIVEステートへ遷移する。そして、ターゲット
2がORBの実行中にエラーが発生すると、ターゲット
2は図4に示すフォーマットに従ってエラーのステータ
スを作成し、このステータスをBWRQパケットのda
ta_fieldに入れてイニシエータ1に送信する。
エラーのステータスは、図4の“d”ビットをセットす
ることによって生成する。ここでターゲット2はDEA
Dステートに遷移する(ここから図16の(c)のフェ
ーズ開始)。
動作例2と同様に進められる。ここでターゲット2は、
図16の(a)のフェーズにおいてイニシエータ1へW
RSパケットを返した時点で、RESETステートから
ACTIVEステートへ遷移する。そして、ターゲット
2がORBの実行中にエラーが発生すると、ターゲット
2は図4に示すフォーマットに従ってエラーのステータ
スを作成し、このステータスをBWRQパケットのda
ta_fieldに入れてイニシエータ1に送信する。
エラーのステータスは、図4の“d”ビットをセットす
ることによって生成する。ここでターゲット2はDEA
Dステートに遷移する(ここから図16の(c)のフェ
ーズ開始)。
【0072】以下、図16の(c)及び(d)のフェー
ズについて詳細に説明する。
ズについて詳細に説明する。
【0073】(1)受信フィルタ27は受信したエラー
ステータスを含んだBWRQパケットのdestina
tion_offsetが、CPU10に設定されてい
たSTATUS_FIFOのアドレスと一致しているこ
とが確認できると、パケット処理回路28にBWRQパ
ケット受信の通知をするとともに同BWRQパケットを
パケット処理回路28に渡す。
ステータスを含んだBWRQパケットのdestina
tion_offsetが、CPU10に設定されてい
たSTATUS_FIFOのアドレスと一致しているこ
とが確認できると、パケット処理回路28にBWRQパ
ケット受信の通知をするとともに同BWRQパケットを
パケット処理回路28に渡す。
【0074】(2)パケット処理回路28は、同BWR
Qパケットのdata_fieldに含まれるステータ
スのORB_offset_hiとORB_offse
t_lo(図4参照)とを参照し、マネージメントOR
B送信バッファ31から受けていたマネージメントOR
Bのアドレスと一致していなければ、ステータスをコマ
ンド用ステータス受信バッファ33に格納する。また同
時に同BWRQパケットに対するWRSパケットを作成
して、送信フィルタ26、送信バッファ23、リンク層
コントローラ22、物理層コントローラ21を介して1
394バス3に送出する。
Qパケットのdata_fieldに含まれるステータ
スのORB_offset_hiとORB_offse
t_lo(図4参照)とを参照し、マネージメントOR
B送信バッファ31から受けていたマネージメントOR
Bのアドレスと一致していなければ、ステータスをコマ
ンド用ステータス受信バッファ33に格納する。また同
時に同BWRQパケットに対するWRSパケットを作成
して、送信フィルタ26、送信バッファ23、リンク層
コントローラ22、物理層コントローラ21を介して1
394バス3に送出する。
【0075】(3)パケット処理回路28は、送信した
同WRSパケットに対するACKパケットの情報が正常
終了であることを確認すると、CPU10に対してコマ
ンドORBに対するステータスの受信を通知する(ここ
までが図16の(c)のフェーズ)。
同WRSパケットに対するACKパケットの情報が正常
終了であることを確認すると、CPU10に対してコマ
ンドORBに対するステータスの受信を通知する(ここ
までが図16の(c)のフェーズ)。
【0076】(4)ステータスを格納したコマンド用ス
テータス受信バッファ33は、図4に示すステータスの
“d”ビットがセットされていることを確認すると、シ
ーケンス制御回路29に対して、ターゲット2のAGE
NT_RESETレジスタへのアクセスを要求する。
テータス受信バッファ33は、図4に示すステータスの
“d”ビットがセットされていることを確認すると、シ
ーケンス制御回路29に対して、ターゲット2のAGE
NT_RESETレジスタへのアクセスを要求する。
【0077】(5)CPU10はコマンド用ステータス
受信バッファ33からステータスを読み出す。
受信バッファ33からステータスを読み出す。
【0078】(6)AGENT_RESETレジスタへ
のアクセス要求を受けたシーケンス制御回路29は、C
PU10から与えられたターゲット2のノードIDをd
estination_IDに、AGENT_RESE
Tレジスタのアドレスをdestination_of
fsetに、任意の値をquadlet_dataに、
tcodeを“0(QWRQを示す)”にそれぞれ設定
した図1Bに示すQWRQパケットを生成し、パケット
処理回路28に渡す(ここから図16の(d)のフェー
ズ開始)。
のアクセス要求を受けたシーケンス制御回路29は、C
PU10から与えられたターゲット2のノードIDをd
estination_IDに、AGENT_RESE
Tレジスタのアドレスをdestination_of
fsetに、任意の値をquadlet_dataに、
tcodeを“0(QWRQを示す)”にそれぞれ設定
した図1Bに示すQWRQパケットを生成し、パケット
処理回路28に渡す(ここから図16の(d)のフェー
ズ開始)。
【0079】(7)パケット処理回路28は同QWRQ
パケットのtlに任意の値を設定して送信フィルタ2
6、送信バッファ23、リンク層コントローラ22、物
理層コントローラ21を介して1394バス3に送出す
る。このときパケット処理回路28は、tcodeとt
lを受信フィルタ27に通知する。
パケットのtlに任意の値を設定して送信フィルタ2
6、送信バッファ23、リンク層コントローラ22、物
理層コントローラ21を介して1394バス3に送出す
る。このときパケット処理回路28は、tcodeとt
lを受信フィルタ27に通知する。
【0080】(8)同QWRQパケットをターゲット2
が受信し、WRSパケットを返す。ここでターゲット2
はRESETステートに遷移する。
が受信し、WRSパケットを返す。ここでターゲット2
はRESETステートに遷移する。
【0081】(9)受信フィルタ27は受信した同WR
SパケットのtcodeがWRSであることと、tlが
パケット処理回路28から渡されたそれと一致している
こととを確認できると、パケット処理回路28とシーケ
ンス制御回路29にWRSパケットの受信を通知してW
RSパケット自体は読み捨てる(ここまでが図16の
(d)のフェーズ)。
SパケットのtcodeがWRSであることと、tlが
パケット処理回路28から渡されたそれと一致している
こととを確認できると、パケット処理回路28とシーケ
ンス制御回路29にWRSパケットの受信を通知してW
RSパケット自体は読み捨てる(ここまでが図16の
(d)のフェーズ)。
【0082】(10)シーケンス制御回路29は、CP
U10にAGENT_RESETレジスタへのアクセス
を行ったことを通知する。
U10にAGENT_RESETレジスタへのアクセス
を行ったことを通知する。
【0083】以上のように、本コマンド発行装置20を
使用することで、発行したコマンドORBがエラー終了
し、ターゲット2がDEADステートに遷移していて
も、RESETステートへ遷移させるアクションをCP
U10が起こす必要がないため、CPU10の負荷を軽
減できる。また本コマンド発行装置20は、リンクされ
たコマンドORBの途中でエラーが発生した場合、AG
ENT_RESETレジスタアクセス後は、ORB_P
OINTERレジスタアクセスによって登録しているコ
マンドORBを引き続き発行することも可能であるた
め、CPU10は続けてコマンドORBを発行すること
ができる。
使用することで、発行したコマンドORBがエラー終了
し、ターゲット2がDEADステートに遷移していて
も、RESETステートへ遷移させるアクションをCP
U10が起こす必要がないため、CPU10の負荷を軽
減できる。また本コマンド発行装置20は、リンクされ
たコマンドORBの途中でエラーが発生した場合、AG
ENT_RESETレジスタアクセス後は、ORB_P
OINTERレジスタアクセスによって登録しているコ
マンドORBを引き続き発行することも可能であるた
め、CPU10は続けてコマンドORBを発行すること
ができる。
【0084】
【発明の効果】以上説明してきたとおり、本発明によれ
ば、コマンドORBやマネージメントORBをその各々
のための送信バッファに登録し、かつシーケンス制御回
路を起動するだけで、発行したORBに対するステータ
スを受け取るまでは、CPUに負担がかからない。ま
た、本発明によれば、非プログラム制御の採用により、
コマンド発行装置における応答性能の高いイニシエータ
機能を実現することができる。
ば、コマンドORBやマネージメントORBをその各々
のための送信バッファに登録し、かつシーケンス制御回
路を起動するだけで、発行したORBに対するステータ
スを受け取るまでは、CPUに負担がかからない。ま
た、本発明によれば、非プログラム制御の採用により、
コマンド発行装置における応答性能の高いイニシエータ
機能を実現することができる。
【図1A】IEEE1394バス上のBWRQパケット
の構成図である。
の構成図である。
【図1B】IEEE1394バス上のQWRQパケット
の構成図である。
の構成図である。
【図1C】IEEE1394バス上のWRSパケットの
構成図である。
構成図である。
【図1D】IEEE1394バス上のBRRQパケット
の構成図である。
の構成図である。
【図1E】IEEE1394バス上のBRRSパケット
の構成図である。
の構成図である。
【図2】SBP−2におけるマネージメントORBのデ
ータフォーマット図である。
ータフォーマット図である。
【図3】SBP−2におけるコマンドORBのデータフ
ォーマット図である。
ォーマット図である。
【図4】SBP−2におけるステータスのデータフォー
マット図である。
マット図である。
【図5】SBP−2におけるコマンドORBのリンクを
説明するための図である。
説明するための図である。
【図6】SBP−2におけるターゲットのステート遷移
図である。
図である。
【図7】本発明に係るSBP−2のコマンド発行装置を
実装したデータ伝送システムのブロック図である。
実装したデータ伝送システムのブロック図である。
【図8】図7のコマンド発行装置によるマネージメント
ORBの発行シーケンスを示す図である。
ORBの発行シーケンスを示す図である。
【図9A】マネージメントORB発行時の図7中の各部
の動作を示すタイミングチャートである。
の動作を示すタイミングチャートである。
【図9B】図9Aに続くタイミングチャートである。
【図10】図7のコマンド発行装置によるコマンドOR
Bの発行シーケンスを示す図である。
Bの発行シーケンスを示す図である。
【図11A】コマンドORB発行時の図7中の各部の動
作を示すタイミングチャートである。
作を示すタイミングチャートである。
【図11B】図11Aに続くタイミングチャートであ
る。
る。
【図12A】図7のコマンド発行装置によるリンクされ
たコマンドORBの発行シーケンスを示す図である。
たコマンドORBの発行シーケンスを示す図である。
【図12B】図12Aに続くシーケンス図である。
【図13A】リンクされたコマンドORB発行時の図7
中の各部の動作を示すタイミングチャートである。
中の各部の動作を示すタイミングチャートである。
【図13B】図13Aに続くタイミングチャートであ
る。
る。
【図13C】図13Bに続くタイミングチャートであ
る。
る。
【図14A】図7のコマンド発行装置によるリンクされ
たコマンドORB実行中の他のコマンドORB追加発行
シーケンスを示す図である。
たコマンドORB実行中の他のコマンドORB追加発行
シーケンスを示す図である。
【図14B】図14Aに続くシーケンス図である。
【図15A】リンクされたコマンドORBの実行中に他
のコマンドORBが追加発行された時の図7中の各部の
動作を示すタイミングチャートである。
のコマンドORBが追加発行された時の図7中の各部の
動作を示すタイミングチャートである。
【図15B】図15Aに続くタイミングチャートであ
る。
る。
【図15C】図15Bに続くタイミングチャートであ
る。
る。
【図15D】図15Cに続くタイミングチャートであ
る。
る。
【図16】図7のコマンド発行装置におけるコマンドエ
ラー発生時の動作シーケンスを示す図である。
ラー発生時の動作シーケンスを示す図である。
【図17A】コマンドエラー発生時の図7中の各部の動
作を示すタイミングチャートである。
作を示すタイミングチャートである。
【図17B】図17Aに続くタイミングチャートであ
る。
る。
【符号の説明】 1 イニシエータ 2 ターゲット 3 IEEE1394バス 10 CPU 20 コマンド発行装置 21 物理層コントローラ(PHY) 22 リンク層コントローラ(LINK) 23 送信バッファ(ATF) 24 受信バッファ(ARF) 25 制御レジスタ部 26 送信フィルタ(TFIL) 27 受信フィルタ(RFIL) 28 パケット処理回路(PPRC) 29 シーケンス制御回路(SQC) 30 コマンドORB送信バッファ(COTB) 31 マネージメントORB送信バッファ(MOTB) 32 マネージメント用ステータス受信バッファ(SR
BM) 33 コマンド用ステータス受信バッファ(SRBC)
BM) 33 コマンド用ステータス受信バッファ(SRBC)
Claims (9)
- 【請求項1】 高速シリアルインターフェースにおける
イニシエータとして、パケットを用いてターゲットへコ
マンドを発行するためのコマンド発行装置であって、 中央処理ユニット(CPU)により起動されてコマンド
発行シーケンスを制御するためのシーケンス制御回路
と、 発行すべきオペレーション要求ブロック(ORB)を送
信パケットに構成したり、受信したパケットからステー
タスを取り出したりするためのパケット処理回路と、 前記CPUにより登録されたコマンドORBを格納する
ためのコマンドORB送信バッファと、 前記CPUにより登録されたマネージメントORBを格
納するためのマネージメントORB送信バッファと、 発行したマネージメントORBに対して受信したステー
タスを格納して前記CPUへ渡すためのマネージメント
用ステータス受信バッファと、 発行したコマンドORBに対して受信したステータスを
格納して前記CPUへ渡すためのコマンド用ステータス
受信バッファとを備えたことを特徴とするコマンド発行
装置。 - 【請求項2】 請求項1記載のコマンド発行装置におい
て、 前記ターゲットへ送信すべきパケットを格納するための
送信バッファと、 前記パケット処理回路からのパケット送信要求と前記C
PUからのパケット送信要求との調停を行い、送信すべ
きパケットを前記送信バッファに書き込むための送信フ
ィルタと、 前記CPU宛てのパケットを格納するための受信バッフ
ァと、 受信したパケットの内容に応じて、該受信したパケット
を前記パケット処理回路宛てと前記CPU宛てとに振り
分けるための受信フィルタとを更に備えたことを特徴と
するコマンド発行装置。 - 【請求項3】 請求項1記載のコマンド発行装置におい
て、 前記シーケンス制御回路は、前記CPUから与えられた
パラメータをもとに、前記ターゲットのマネージメント
エージェント(MANAGEMENT_AGENT)レ
ジスタへのアクセスを行うパケットを生成・発行するよ
うに構成されたことを特徴とするコマンド発行装置。 - 【請求項4】 請求項1記載のコマンド発行装置におい
て、 前記シーケンス制御回路は、前記CPUから与えられた
パラメータをもとに、前記ターゲットのORBポインタ
(ORB_POINTER)レジスタへのアクセスを行
うパケットを生成・発行するように構成されたことを特
徴とするコマンド発行装置。 - 【請求項5】 請求項1記載のコマンド発行装置におい
て、 前記コマンドORB送信バッファは、複数のコマンドO
RBを同時に登録できる容量を有することを特徴とする
コマンド発行装置。 - 【請求項6】 請求項5記載のコマンド発行装置におい
て、 前記コマンドORB送信バッファは、複数のコマンドO
RBを登録するにあたり、次ORB(next_OR
B)フィールドが空(Null)であっても、ORBが
リンクされるように自動的にアドレスを割り振ってne
xt_ORBフィールドを書き換えるように構成された
ことを特徴とするコマンド発行装置。 - 【請求項7】 請求項5記載のコマンド発行装置におい
て、 前記コマンドORB送信バッファは、コマンドORBの
実行中に新たなコマンドORBが登録されると、次OR
B(next_ORB)フィールドを書き換えてORB
をリンクした後、前記シーケンス制御回路に前記ターゲ
ットのドアベル(DOORBELL)レジスタへのアク
セス要求を行い、 前記シーケンス制御回路は、前記コマンドORB送信バ
ッファからの要求を受けて、前記DOORBELLレジ
スタへのアクセスを行うパケットを生成・発行するよう
に構成されたことを特徴とするコマンド発行装置。 - 【請求項8】 請求項1記載のコマンド発行装置におい
て、 前記コマンド用ステータス受信バッファは、複数のステ
ータスを同時に格納できる容量を有することを特徴とす
るコマンド発行装置。 - 【請求項9】 請求項1記載のコマンド発行装置におい
て、 前記コマンド用ステータス受信バッファは、受信したス
テータスがエラーのステータスであった場合、前記シー
ケンス制御回路に前記ターゲットのエージェントリセッ
ト(AGENT_RESET)レジスタへのアクセス要
求を行い、 前記シーケンス制御回路は、前記コマンド用ステータス
受信バッファからの要求を受けて、前記AGENT_R
ESETレジスタへのアクセスを行うパケットを生成・
発行するように構成されたことを特徴とするコマンド発
行装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001120745A JP2002318777A (ja) | 2001-04-19 | 2001-04-19 | 高速シリアルインターフェース用のコマンド発行装置 |
US10/124,265 US7127530B2 (en) | 2001-04-19 | 2002-04-18 | Command issuing apparatus for high-speed serial interface |
EP02008865A EP1253520B1 (en) | 2001-04-19 | 2002-04-19 | Apparatus for issuing command for high-speed serial interface |
DE60215997T DE60215997T2 (de) | 2001-04-19 | 2002-04-19 | Vorrichtung zur Ausgabe von Befehlen an einer seriellen Hochgeschwindigkeitschnittstelle |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001120745A JP2002318777A (ja) | 2001-04-19 | 2001-04-19 | 高速シリアルインターフェース用のコマンド発行装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2002318777A true JP2002318777A (ja) | 2002-10-31 |
Family
ID=18970735
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001120745A Pending JP2002318777A (ja) | 2001-04-19 | 2001-04-19 | 高速シリアルインターフェース用のコマンド発行装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7127530B2 (ja) |
EP (1) | EP1253520B1 (ja) |
JP (1) | JP2002318777A (ja) |
DE (1) | DE60215997T2 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7039690B2 (en) * | 2001-08-01 | 2006-05-02 | Lucent Technologies Inc. | System and method for accessing registers of PHY device in network |
JP3808394B2 (ja) * | 2002-04-02 | 2006-08-09 | 松下電器産業株式会社 | ストリームデータ処理装置、ストリームデータ処理方法、プログラム、及び、媒体 |
JP4094931B2 (ja) * | 2002-10-29 | 2008-06-04 | 三菱電機株式会社 | トランシーバ集積回路及び通信モジュール |
CN1313942C (zh) * | 2003-07-02 | 2007-05-02 | 国际商业机器公司 | 在操作系统级实现数据处理的方法、设备和系统 |
TWI237771B (en) * | 2004-03-22 | 2005-08-11 | Via Tech Inc | Media player control system and control method used therein |
US8082381B2 (en) * | 2008-09-02 | 2011-12-20 | Nvidia Corporation | Connecting a plurality of peripherals |
US8103803B2 (en) * | 2008-11-21 | 2012-01-24 | Nvidia Corporation | Communication between a processor and a controller |
US8610732B2 (en) * | 2008-12-11 | 2013-12-17 | Nvidia Corporation | System and method for video memory usage for general system application |
US8677074B2 (en) * | 2008-12-15 | 2014-03-18 | Nvidia Corporation | Shared memory access techniques |
US8032673B2 (en) * | 2009-12-14 | 2011-10-04 | Apple Inc. | Transaction ID filtering for buffered programmed input/output (PIO) write acknowledgements |
US9244741B2 (en) * | 2011-04-02 | 2016-01-26 | Open Invention Network, Llc | System and method for service mobility |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5920030A (ja) | 1982-07-26 | 1984-02-01 | Fujitsu Ltd | 入出力命令制御方式 |
JP4086345B2 (ja) * | 1997-09-09 | 2008-05-14 | キヤノン株式会社 | 通信制御方法及び装置及び通信システム |
JP4111472B2 (ja) * | 1998-05-15 | 2008-07-02 | キヤノン株式会社 | 通信制御方法及び装置及び通信システム |
US6243778B1 (en) | 1998-10-13 | 2001-06-05 | Stmicroelectronics, Inc. | Transaction interface for a data communication system |
US6185632B1 (en) * | 1998-10-19 | 2001-02-06 | Hewlett-Packard Company | High speed communication protocol for IEEE-1394 including transmission of request and reply writes to a datagram-FIFO-address to exchange commands to end a job |
JP3990833B2 (ja) | 1998-12-11 | 2007-10-17 | キヤノン株式会社 | 通信制御方法及び装置 |
US6205494B1 (en) | 1998-12-18 | 2001-03-20 | Western Digital Corporation | Controller with automatic generation of linked list of data transfer descriptors for sequential commands, with linked list being used for execution of sequential data transfers |
JP3408442B2 (ja) * | 1998-12-24 | 2003-05-19 | エヌイーシーアクセステクニカ株式会社 | データ転送装置 |
JP2000224195A (ja) * | 1999-02-04 | 2000-08-11 | Matsushita Electric Ind Co Ltd | データ伝送装置 |
JP3838606B2 (ja) | 1999-02-26 | 2006-10-25 | 松下電器産業株式会社 | シーケンス処理装置 |
JP3365377B2 (ja) * | 1999-08-12 | 2003-01-08 | セイコーエプソン株式会社 | ログイン装置、被ログイン装置、及び装置間通信システム、ログイン制御方法、並びに記録媒体 |
JP3598923B2 (ja) * | 1999-12-20 | 2004-12-08 | セイコーエプソン株式会社 | データ転送制御装置、情報記憶媒体及び電子機器 |
US6763402B2 (en) * | 2000-05-25 | 2004-07-13 | Bnl Technologies, Inc. | Data storage subsystem |
US7164689B2 (en) * | 2000-12-05 | 2007-01-16 | Matsushita Electric Industrial Co., Ltd. | Multi-initiator control unit and method |
-
2001
- 2001-04-19 JP JP2001120745A patent/JP2002318777A/ja active Pending
-
2002
- 2002-04-18 US US10/124,265 patent/US7127530B2/en not_active Expired - Fee Related
- 2002-04-19 DE DE60215997T patent/DE60215997T2/de not_active Expired - Lifetime
- 2002-04-19 EP EP02008865A patent/EP1253520B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP1253520A2 (en) | 2002-10-30 |
US20020156943A1 (en) | 2002-10-24 |
EP1253520A3 (en) | 2005-02-02 |
DE60215997T2 (de) | 2007-03-01 |
EP1253520B1 (en) | 2006-11-15 |
DE60215997D1 (de) | 2006-12-28 |
US7127530B2 (en) | 2006-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6947442B1 (en) | Data transfer control device and electronic equipment | |
US7545822B2 (en) | Information communication system, information communication method, information signal processing device and information signal processing method, and storage medium | |
CN100454283C (zh) | 虚拟通用串行总线设备系统及其数据传输方法 | |
CN100412836C (zh) | 利用外部装置通过通用串行总线控制主机的方法及其系统 | |
CN101937406A (zh) | 一种VxWorks操作系统中实现驱动1394设备的方法和系统 | |
JP2002318777A (ja) | 高速シリアルインターフェース用のコマンド発行装置 | |
TW498209B (en) | Data transfer control apparatus and electronic machine | |
US7165124B2 (en) | Data transfer control system, electronic instrument, program, and data transfer control method | |
US20040057448A1 (en) | Information processing system, information processing apparatus, and information processing method | |
JP2005302026A (ja) | ネットワーク接続周辺装置にアクセスするためのコンピュータ可読媒体、方法およびコンピュータシステム | |
WO2001029679A1 (en) | A multi-protocol media storage device implementing protocols optimized for storing and retrieving both asynchronous and isochronous data | |
KR100843199B1 (ko) | 고속 아이.디.이. 인터페이스 장치 및 그 방법 | |
TW200530835A (en) | Combined optical storage and flash card reader using single ide or sata port and method thereof | |
JP4979206B2 (ja) | 情報処理方法および情報処理装置 | |
US7346714B2 (en) | Notification of completion of communication with a plurality of data storage areas | |
US20040230734A1 (en) | Data transfer control system, electronic instrument, and data transfer control method | |
JP4428750B2 (ja) | データ通信システム | |
JP3838606B2 (ja) | シーケンス処理装置 | |
JP2000224195A (ja) | データ伝送装置 | |
WO2000062179A1 (en) | Asynchronous data transmission with scattering page tables | |
JP4026979B2 (ja) | データ通信システム | |
US7167940B2 (en) | Data processing method, data processing apparatus, communications device, communications method, communications protocol and program | |
JP4362199B2 (ja) | データ伝送装置 | |
JP4582180B2 (ja) | データ伝送装置 | |
JP2007080462A (ja) | 着脱可能な記録媒体を使用したデジタル機器 |