JP3837843B2 - Serial interface circuit - Google Patents

Serial interface circuit Download PDF

Info

Publication number
JP3837843B2
JP3837843B2 JP16598897A JP16598897A JP3837843B2 JP 3837843 B2 JP3837843 B2 JP 3837843B2 JP 16598897 A JP16598897 A JP 16598897A JP 16598897 A JP16598897 A JP 16598897A JP 3837843 B2 JP3837843 B2 JP 3837843B2
Authority
JP
Japan
Prior art keywords
error
circuit
packet
request
response
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP16598897A
Other languages
Japanese (ja)
Other versions
JPH1117711A (en
Inventor
龍太 中村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP16598897A priority Critical patent/JP3837843B2/en
Publication of JPH1117711A publication Critical patent/JPH1117711A/en
Application granted granted Critical
Publication of JP3837843B2 publication Critical patent/JP3837843B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Small-Scale Networks (AREA)
  • Communication Control (AREA)
  • Maintenance And Management Of Digital Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、ディジタルシリアルインタフェース回路に係り、特にHDD(Hard Disk Drive) 、DVD(Digital Video Disk)−ROM、CD(Compact Disk)−ROM、テープストリーマ(Tape Streamer) 等のストレージ装置に接続するシリアルインタフェース回路に関するものである。
【0002】
【従来の技術】
近年、マルチメディア・データ転送のためのインタフェースとして、高速データ転送、リアルタイム転送を実現するIEEE(The Institute of Electrical and Electronic Engineers) 1394、High Performance Sirial Busが規格化された。
【0003】
このIEEE1394シリアルインタフェースのデータ転送においては、ネットワーク内で行われる転送動作をサブアクションと呼び、2つのサブアクションが規定されている。
一つは、従来のRequest,Acknowledge の要求、受信確認を行うアシンクロナス(Asynchronous) 転送であり、他の一つはあるノードから125μsに1回必ずデータが送られるアイソクロナス(Isochronous) 転送である。
【0004】
このように、2つの転送モードを有するIEEE1394シリアルインタフェースでのデータは、パケット単位で転送が行われるが、IEEE1394規格では、取り扱う最小データの単位は1クワドレット(quadlet) (=4バイト=32ビット)である。
【0005】
IEEE1394規格では、通常、コンピュータデータは、図7に示すように、アシンクロナス転送を用いて行われる。
アシンクロナス転送は、図7(a)に示すように、バスを獲得するためのアービトレーション(arb)、データを転送するパケットトランスミッション、およびアクノリッジメント(ack)の3つの遷移状態をとる。
【0006】
そして、パケットトランスミッションの実行は、図7(b)に示すようなフォーマットで行われる。
転送パケットの第1クワドレットは、16ビットのデスティネーションID(destination ID)領域、6ビットのトランザクション ラベルtl(transaction label) 領域、2ビットのリトライ コードrt(retry code)領域、4ビットのトランザクション コードtcode(transaction code) 領域、および4ビットのプライオリティpri(priority)領域から構成されている。
デスティネーションID領域はこのノードのバスナンバーとノードナンバー、プライオリティ領域は優先レベルを示す。
【0007】
第2クワドレットおよび第3クワドレットは、16ビットのソースID(source ID) 領域、および48ビットのデスティネーション オフセット(destination
offset)領域により構成されている。
ソースID領域はこのパケットを送ったノードIDを示し、デスティネーション・オフセット領域はハイ(High)およびロー(Low) の連続した領域からなり、デスティネーション ノードのアドレス空間のアドレスを示す。
【0008】
第4クワドレットは、16ビットのデータ長(data length) 領域、および16ビットのイクステンディド・トランザクション・コード(extended tcode)領域に構成されている。
データ長領域は受信したパケットのバイト数を示し、イクステンディド tcode領域はtcodeがロック・トランザクション(Lock transaction)の場合、このパケットのデータが行う実際のロック動作(Lock Action) を示す領域である。
【0009】
データフィールド領域(data field)の前のクワドレットに付加されたヘッダCRC(header CRC) 領域は、パケットヘッダの誤り検出符号である。
また、データ領域(data field)の後のクワドレットに付加されたデータCRC(data CRC) 領域は、データフィールドの誤り検出符号である。
【0010】
【発明が解決しようとする課題】
ところで、上述したように、アシンクロナス転送で行われる通常のコンピュータデータの転送では、そのプロトコルとして、SBP−2(Serial Bus Protocol-2) が用いられる。
このプロトコルによると、ストレージデバイス(Storage Device)であるターゲット(Target)からホストコンピュータ(Host Computer) であるイニシエータ(Initiator) にデータを転送するときは、ストレージデバイスからホストコンピュータのメモリへデータを書き込む形で、またホストコンピュータからターゲットにデータを転送するときは、ストレージデバイスがホストコンピュータのメモリのデータを読み出す形で転送が行われる。
【0011】
しかしながら、ストレージデバイスに格納される、あるいはストレージデバイスから読み出される大容量のデータをIEEE1394規格のパケットにして、送受信するための、いわゆるトランザクション・レイヤ(Transaction Layer) をコントロールする処理系回路システムが未だ確立されていない。
また、トラザクション系における通信エラーの検出、判別回路も実現する必要がある。
【0012】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、大容量のデータを所定の規格に合わせたパケットにして送受信することができ、また、エラーが発生した場合にその判別を行うことができ、円滑な送受信処理をすることができるシリアルインタフェース回路を提供することにある。
【0013】
【課題を解決するための手段】
上記目的を達成するため、本発明は、自ノードとシリアルインタフェースバスを介して接続された他ノード間でパケットの送受信を行うシリアルインタフェース回路であって、自ノードから他ノードへの要求パケットを生成し、上記シリアルインタフェースバスに送出し、当該要求パケットに対する応答パケットに対する受信処理を行うデータ処理回路と、受信した応答パケットにエラーが有るか否かを判別し、エラーがある場合にはそのエラー内容を判別するエラー判別回路と、受信したパケットにあるトランザクションコードおよびラベルをチェックし、イニシエータからターゲットである上記データ処理回路に対しての応答パケットであるかその他のパケットであるかの分別を行い、応答パケットのみを上記データ処理回路に入力させる分別回路と、を有し、上記エラー判別回路は、要求パケットに対する適当な応答パケットが返ってきたか否かの判別を行い、不適当な応答パケットである場合には、送信した要求に不適当な応答パケットが返ってきたエラーであると判別し、適当な応答パケットが返ってきたと判別すると、その応答がコンプリート (Complete) 、ビジー (Busy) 、ペンディング (Pending) 、であるかで異なる判別処理を行い、コンプリートの場合には、要求に対応した受信または送信あるかを判別し、要求の対応しない場合には送信した要求に不適当な応答パケットが返ってきたエラーであると判別し、要求に対応する場合には、エラーなしのコンプリートであると判別し、ビジーの場合には、再送信を行うリトライ動作を行い、このリトライ回数が、あらかじめ設定したリトライ制限回数に達したか否かの判別を行い、リトライ制限回数に達していると相手がビジーであるエラーと判別し、ペンディングンの場合には、応答パケットをあらかじめ設定した時間内に受信したか否かを判別し、時間内に受信したかった場合には規定時間内に応答が戻らないというエラーであると判別する
【0014】
また、本発明では、上記エラー判別回路は、エラーを検出すると上記データ処理回路のパケットの送受信処理を停止させる。
【0015】
また、本発明では、エラーレジスタを有し、上記エラー判別回路は、エラーを検出した場合にはエラー内容を上記エラーレジスタにセットする。
【0016】
また、本発明では、上記エラーレジスタにエラー内容がセットされている場合には、上記データ処理回路を初期化する制御回路を有する。
【0017】
また、本発明では、上記エラー判別回路はエラーを検出すると上記制御回路にエラーを検出した旨を知らせ、上記制御回路は、エラー検出の知らせを受けて上記エラーレジスタの読み出しを行い、上記初期化処理を行う。
【0018】
また、本発明の回路によれば、データ処理回路において、自ノードから他ノードへの要求パケットが生成され、シリアルインタフェースバスに送出される。
そして、他ノードからの要求パケットに対する応答パケットが受信されて所定の処理が行われる。
また、応答パケットはエラー判別回路にも入力される。エラー判別回路では、受信した応答パケットにエラーが有るか否かが検出され、かつエラーがある場合にはそのエラー内容が判別される。
たとえば、エラー判別回路でエラーが検出されると、データ処理回路のパケットの送受信処理が停止され、また、そのエラー内容がエラーレジスタにセットさされるとともに、エラーを検出した旨が制御回路に知らされる。すなわち、エラー割り込みが行われる。
制御回路では、エラー検出の知らせを受けると、エラーレジスタの内容の読み出しが行われ、データ処理回路に対する初期化処理が行われる。
【0019】
【発明の実施の形態】
図1は、本発明に係るIEEE1394シリアルインタフェース回路の一実施形態を示すブロック構成図である。
なお、このシリアルインタフェース回路は、アシンクロナス通信で扱われるコンピュータデータの転送を行うことを目的として構成されている。このため、図1においては、アイソクロナス通信系回路の具体的な構成は図示していない。
【0020】
このシリアルインタフェース回路は、リンク/トランザクション・レイヤ集積回路10、フィジカル・レイヤ回路20、ストレージデバイスとしての図示しないハードディスクドライバ(HDD)のコントローラ30、ホストコンピュータとしてのローカルプロセッサ40により構成されている。
【0021】
リンク/トランザクション・レイヤ集積回路10は、リンク・レイヤ回路100およびトランザクション・レイヤ回路120が集積化されて構成され、ローカルプロセッサ40の制御の下、アシンクロナス転送の制御、並びにフィジカル・レイヤ回路20の制御を行う。
【0022】
リンク・レイヤ回路100は、図1に示すように、リンクコア(Link Core))101、CPUインタフェース回路(Sub-CPU I/F )102、アシンクロナス通信で用いられる送信用FIFO(AT-FIFO:First-In First-Out) 103、受信用FIFO(AR-FIFO)104、受信パケットを判別する分別回路(DeMux) 105、セルフID用リゾルバ(Resolver)106、およびコントロールレジスタ(Control Registers 、以下CRという)107により構成されている。
【0023】
リンクコア101は、コマンドやコンピュータデータが転送されるアシンクロナス通信用パケットおよびアイソクロナス通信用パケットの送信回路、受信回路、これらパケットのIEEE1394シリアルバスBSを直接ドライブするフィジカル・レイヤ回路20とのインタフェース回路、125μs毎にリセットされるサイクルタイマ、サイクルモニタやCRC回路から構成されている。
また、図示しないハードディスクから読み出され、トランザクション・レイヤ回路120で所定の送信パケットとして生成されたコンピュータデータの送信処理等を行う。
たとえば、後述するトランザクション・レイヤ回路120のトランザクションコントローラ126から送るべきデータがある旨の知らせを受けるとフィジカル・レイヤ回路20を経由して1394シリアルバスのアービトレーションを行いバスを確保する。
なお、図1では、上述したように、アイソクロナス通信系のFIFO等は省略している。
【0024】
CPUインタフェース回路102は、ローカルプロセッサ40と送信用FIFO103、受信用FIFO104とのアシンクロナス通信用パケットの書き込み、読み出し等の調停、並びに、ローカルプロセッサ40とCR107との各種データの送受信の調停を行う。
たとえば、イニシエータとしてのホストコンピュータからIEEE1394インタフェースバスBSを送信され、受信用FIFOに格納されたストレージデバイスとしてのハードディスクのコントロール用コマンドをローカルプロセッサ40に伝送する。
【0025】
ローカルプロセッサ40からは、コンピュータデータを送受信するためにトランザクション・レイヤ回路120を起動させるためのデータがCPUインタフェース102を通してCR107にセット(ADPst=1)される。
【0026】
送信用FIFO103には、IEEE1394シリアルバスBSに伝送させるアシンクロナス通信用パケットが格納され、格納データはリンクコア101に与えられる。
【0027】
また、受信用FIFO104は、IEEE1394シリアルバスBSを伝送されてきたアシンクロナス通信用パケット、たとえばストレージデバイスとしてのハードディスクのコントロール用コマンド等が、分別回路105により格納される。
【0028】
分別回路105は、リンクコア101を介したアシンクロナス通信用パケットの第1クワドレッドにあるトランザクションコードtcode(Transaction code)およびトランザクションラベルtl(Transaction label) をチェックし、イニシエータであるホストコンピュータからターゲットであるトランザクション・レイヤ回路に対しての応答パケット(Response Packet) であるかその他のパケットであるかの分別を行い、応答パケットのみをトランザクション・レイヤ回路120に入力させ、その他のパケットを受信用FIFO104に格納する。
【0029】
なお、分別のチェックに用いられるトランザクションラベルtlは共通に「a」にセットされ、tcode(Transaction code)は、書き込み(Write) の要求(request)および応答(Response)、読み出し(Read)の要求(Read request) および応答(Read Response) で異なるデータがセットされる。
具体的には、tcodeは、書き込み要求(Write request)でクワドレット書き込み(Quadlet Write) の場合には「0」、ブロック書き込み(Block Write) の場合には「1」にセットされる。
また、書き込み応答(Write Response)の場合には「2」にセットされる。
読み出し要求(Read request) でクワドレット読み出し(Quadlet Read)の場合には「4」、ブロック読み出し(Block Read)の場合には「5」にセットされる。
また、読み出し応答(Read Response) の場合には「6/7」にセットされる。
【0030】
リゾルバ106は、IEEE1394シリアルインタフェースバスBSを伝送されてきたセルフIDパケットを解析し、CR107に格納する。また、エラーチェック、ノード数のカウント等の機能も有する。
【0031】
トランザクション・レイヤ回路120は、コンピュータ周辺機器(本実施形態ではハードディスク)のデータをSBP−2(Serial Bus Protocol-2) 規格に基づいて、アシンクロナスパケットとして自動的に送信、受信をする機能を備えている。
また、トランザクション・レイヤ回路120は、リトライ(Retry) 機能並びにスプリットタイムアウト(Split Timeout) 検出機能を備えている。
リトライ機能は、要求パケットを送信した後、ack busy* のAckコードが返ってきた場合、該当する要求パケットを再送信する機能である。パケットを再送信する場合、送信パケットの第1クワドレッドにある2ビットのrt領域を「00」から「01」にセットしてコアリンク101に知らせ送信する。
スプリットタイムアウト(Split Timeout) 検出機能は、応答パケットが返ってくるまでのタイムアウトを検出する機能である。
【0032】
このトランザクション・レイヤ回路120は、トランスポートデータインタフェース回路121、要求パケット生成回路(SBPreq)122、応答パケットデコード回路(SBPRsp)123、要求用FIFO(Request FIFO:ADPTF)124、応答用FIFO(Response FIFO:ADPRF) 125、およびトランザクションコントローラ126により構成されている。
そして、要求パケット生成回路122、応答パケットデコード回路123、要求用FIFO124、応答用FIFO125、およびトランザクションコントローラ126によりデータ処理回路ADPが構成される。
【0033】
トランスポートデータインタフェース回路121は、HDDコントローラ30と要求パケット生成回路122、応答パケットデコード回路123とのデータの送受信の調停を行う。
【0034】
要求パケット生成回路122は、リンク・レイヤ回路100のCR107からデータ転送起動の指示を受けると、送信(書き込み)の場合、SBP−2規格に従ってトランスポートデータインタフェース回路121を介して得た図示しないハードディスクに記録されたコンピュータデータをパケットに分けられるように1個以上のデータに分け、CR107にセットされた転送データ長等のデータに基づいてSBPプロトコルのアドレスを算出し、パケット毎に増加する1394バスアドレスとトランザクションラベルtl(=a)やトランザクションコードtcode(たとえば1または5)等を設定した4クラドレットからなる1394ヘッダを付加して要求用FIFO124に格納する。
また、受信(読み出し)の場合には、SBP−2規格に従って、CR107にセットされた転送データ長等のデータに基づいてSBPプロトコルのアドレスを算出し、パケット毎に増加する1394バスアドレスとトランザクションラベルtl(=a)やトランザクションコードtcode(たとえば1または5)等を設定し、指定されたアドレス、データ長分の1394ブロック読み出し要求コマンド(Block read Request Command)を1個以上のパケットにして要求用FIFO124に格納する。
【0035】
なお、要求パケット生成回路122は、送信および受信時には、CR107にて指定される最大長データmax-payload を受けて送信する要求パケットに対する応答パケットの最大データ長を計算する。
この最大データ長(バイト)maxpl は次式に基づいて求められる。
【0036】
【数1】
maxpl =2(max,Payload+2) …(1)
【0037】
応答パケットデコード回路123は、受信時に応答用FIFO125に格納されたデータを読み出し、1394ヘッダを取り除いて、データを所定のタイミングでトランスポートデータインタフェース回路121を介してHDDコントローラ30に出力する。
【0038】
要求用FIFO124は、送信(書き込み)時にはパケット化された送信データが格納され、受信(読み出し)の場合には、1394ブロック読み出し要求コマンドが格納される。
なお、要求用FIFO124は、送るべきデータを記憶しているときは、その旨を示すたとえばローレベル(「0」)でアクティブの信号EMTをトランザクションコントローラ126に出力する。
【0039】
応答用FIFO125は、受信(読み出し)の場合には、ホストコンピュータ側から1394シリアルバスBSを伝送されてきた受信データが格納される。
なお、応答用FIFO125は、残りの記憶容量を示す信号をトランザクションコントローラ126に出力する。
【0040】
トランザクションコントローラ126は、送信時に要求用FIFO124に格納されたパケット化された送信データ、および受信時に要求用FIFO124に格納された1394ブロック読み出し要求コマンド(要求パケット)のリンク・レイヤコア回路100のリンクコア101への出力制御を行う。
また、送信時に、リンク・レイヤ回路100の分別回路105からの応答パケットを受けて、そのリトライコードrcodeをCR107に書き込み、受信時には分別回路105からの応答パケットを応答用FIFO125に格納する。
【0041】
また、トランザクションコントローラ126は、図2に示すように、応答パケット(他ノードからの受信確認であるAcknowledge も含む)にエラーが有るか否かを判別し、エラーがある場合にはそのエラー内容を判別し、要求パケット生成回路122、応答パケットデコード回路123、要求用FIFO124および応答用パケット125の処理を信号S126で停止させるエラー判別回路1261を有している。
【0042】
書き込み(送信)および読み出し(受信)のトランザクションの場合、受け取る受信確認(Acknowledge) または応答パケットに関しては、たとえば図3に示すようなエラーが発生する可能性があり、エラー判別回路1261は、エラーがあることを検出すると、要求パケット生成回路122、応答パケットデコード回路123、要求用FIFO124および応答用パケット125の処理を停止させるとともに、これらのエラーの内容を判別し、たとえば内容に応じたエラーコードをCR107のエラーレジスタにセットする。また、エラーがあることを検出すると割り込み信号(Interrupt) 用のCR107に割り込みビットをセットしてローカルプロセッサ40にエラーを検出したことを知らせる。
【0043】
ここで、図3の各エラーコードの内容について説明する。
エラーコードERC「0」は、エラーなし、「1」は送信した要求に不適当なackコードが返ってきた、「2」は受信した応答に不適当なackコードを返した、「3」は規定時間内に応答が戻らない、「4」はリトライ制限の回数、要求パケットを送っても相手がビジーである、「5」はバスリセットが発生した、「6」は不適当なrcode(response code) を受信した、「7」は指定ノード以外からの応答パケットを受信した、「8」は実行しているトランザクションとは異なるtcode(transaction code)を受信した、という内容である。
【0044】
ここで、図2に示すエラー判別回路の書き込み(受信)時の動作を図4のフローチャートを参照しつつ説明し、その後、SBP−2規格で決められたパケットを転送する場合のコンピュータデータの通常の送信および受信動作を説明する。
【0045】
エラー判別回路1261においては、まず、要求パケットに対する適当なackコード(応答パケット)が返ってきたか否かの判別が行われる(S1)。
ステップS1で不適当なackコードである場合には、コード「1」の送信した要求に不適当なackコードが返ってきたエラーであると判別される。
ステップS1で適当はackコードが返ってきたと判別されると、その応答がコンプリート(Complete)、ビジー(Busy)、ペンディング(Pending) 、であるかで異なる判別処理が行われる
【0046】
コンプリートの場合には、読み出しであるか書き込みであるかが判別され、読み出しであると不適当な応答である場合にはコード「1」のエラーであると判別され、書き込みである場合にはコンプリートであると判別される(S3)。
【0047】
ビジーの場合には、再送信を行うリトライ動作が行われるが、このリトライ
回数が、あらかじめ設定したリトライ制限回数に達したか否かの判別が行われる(S4)。
ステップS4において、リトライ制限回数に達していないと判別した場合にはステップS1の動作、すなわち要求パケットの再送信動作が行われる。
一方、リトライ制限回数に達していると、コード「4」のリトライ制限の回数だけ要求パケットを送っても相手がビジーであるエラーと判別される。
【0048】
ペンディングンの場合には、ステップS5〜S9の判別動作が順に行われる。
まず、ステップS5においては、応答パケットをあらかじめ設定した時間内に受信したか否かの判別が行われる。
ステップS5において、応答パケットがあらかじめ設定した時間内に返ってこなかった場合には、コード「3」の規定時間内に応答が戻らないというエラーであると判別される。
一方、規定時間内に応答が戻った場合には、ステップS6の処理に移行する。
【0049】
ステップS6においては、受信した応答に不適当なackコードを返したか否かの判別が行われる。
ステップS6において、受信した応答に不適当なackコードを返した場合には、コード2の不適当なackコードを返したエラーであると判別される。
一方、適当なackコードを返した場合には、ステップS7の処理に移行する。
【0050】
ステップS7においては、適当なrcode(response code) を受信したか否かの判別が行われる。
ステップS7において、不適当なrcodeを受信した場合には、コード「6」の不適当なrcodeを受信したエラーであると判別される。
一方、適当なrcodeを受信した場合には、ステップS8の処理に移行する。
【0051】
ステップS8においては、ソース(source)IDが正常であるか否かの判別が行われる。
ステップS8において、ソースIDが異常であると判別されると、コード「7」の指定ノード以外からの応答パケットを受信したエラーであると判別される。
一方、正常なソースIDを受信した場合には、ステップS9の処理に移行する。
【0052】
ステップS9においては、受信したtcode(transaction code)が正常であるか否かの判別が行われる。
ステップS9において、受信したtcodeが異常であると判別されると、コード「8」の実行しているトランザクションとは異なるtcodeを受信したエラーであると判別される。
一方、正常なtcodeを受信した場合にはエラーなし(コンプリート)として処理される。
【0053】
エラー判別回路1261では、上述したようにエラーがあることが検出されると、信号S126が要求パケット生成回路122、応答パケットデコード回路123、要求用FIFO124および応答用パケット125に出力されて、それらの処理が停止させる処理が行われる。
そして、エラーの内容に応じたエラーコードがCR107のエラーレジスタにセットされ、また、エラーがあることを検出すると割り込み信号(Interrupt) 用のCR107に割り込みビットがセットされる。これにより、ローカルプロセッサ40にエラーにより割り込む要求があることが報知される。
これにより、ローカルプロセッサ40により、CR107の内容が読み出され、CR107を介して、トランザクション・レイヤ回路120に対する初期化(リセット)処理が行われる。
【0054】
次に、上記構成において、SBP−2規格で決められたパケットを転送する場合のコンピュータデータの通常の送信および受信動作を説明する。
【0055】
まず、送信動作、すなわち、ターゲットであるハードディスクからイニシエータであるホストコンピュータにデータを転送するときであって、ストレージデバイス(ハードディスク)からホストコンピュータのメモリへデータを書き込む動作を行う場合について説明する。
【0056】
ホストコンピュータから1394シリアルバスBSを転送されてきたSBP−2規格に基づいたORB(Operation Request Block)等のパケットデータがフィジカル・レイヤ回路20、リンク・レイヤ回路100のリンクコア101を介して分別回路105に入力される。
【0057】
分別回路105では、受信パケットを受けてホストコンピュータからターゲットであるトランザクション・レイヤ回路に対しての応答パケット(Response Packet) であるかその他のパケットであるかの分別が行われる。
そしてこの場合、その他のパケットであることから受信データが受信用FIFO104に格納される。
受信用FIFO104に格納されたORB等の受信データは、CPUインタフェース回路102を介してローカルプロセッサ40に入力される。
ローカルプロセッサ40では、CPUインタフェース回路102を介してORBの内容に従ってCR107のトランザクション・レイヤ回路用レジスタの初期化が行われる。
これにより、トランザクション・レイヤ回路120が起動される。
【0058】
起動されたトランザクション・レイヤ回路120では、要求パケット生成回路122において、トランスポートインタフェース121を介してHDDコントローラ30に対してのデータの要求が始められる。
要求に応じ、トランスポートインタフェース121を介して送られてきた送信データは、要求パケット生成回路122においてSBP−2規格に従ってトランスポートデータインタフェース回路121を介して得た図示しないハードディスクに記録されたコンピュータデータをパケットに分けられるように1個以上のデータに分けられ、CR107にセットされた転送データ長等のデータに基づいてSBPプロトコルのアドレスが算出され、パケット毎に増加する1394バスアドレスとトランザクションラベルtl(=a)やトランザクションコードtcode(たとえば1または5)等が設定された4クラドレットからなる1394ヘッダが付加されて要求用FIFO124に格納される。
【0059】
要求用1FIFO124に1つの1394パケットサイズ以上のデータが格納されると、そのデータはトランザクションコントローラ126によりリンク・レイヤ回路100のリンクコア101に送られる。
そして、リンクコア101によって、フィジカル・レイヤ回路20を介して1394シリアルバスBSに対しアービトレーションが掛けられる。
これにより、バスの獲得ができたならば、転送データを含む書き込み要求パケット(Write Request Packet)がフィジカル・レイヤ回路20、1394シリアルバスBSを介してホストコンピュータに送信される。
【0060】
送信後、ホストコンピュータから書き込み要求パケットに対するAckコードと、場合によっては書き込み応答パケット(Write Response Packet) が送られてきて、フィジカル・レイヤ回路20、リンク・レイヤ回路100のリンクコア101を介して分別回路105に入力される。
【0061】
分別回路105では、受信パケットのトランザクションコードtcodeおよびトランザクションラベルtlのチェックが行われ、ホストコンピュータからターゲットであるトランザクション・レイヤ回路120に対しての応答パケット(Response Packet) であると判別されると、その応答パケットがトランザクション・レイヤ回路120のトランザクションコントローラ126に入力される。
【0062】
トランザクションコントローラ126では、入力された応答パケットのAckコードと応答コード(Response code) が正常ならば次のデータのリンクコア101への送出が行われる。
以上の動作が繰り返されて、コンピュータデータのホストコンピュータのメモリへの書き込み(送信)動作が行われる。
【0063】
以上の送信に関するトランザクション・レイヤ回路120の動作の概略を図4に示す。
【0064】
次に、受信動作、すなわち、ホストコンピュータからターゲットにデータを転送するときであって、ストレージデバイス(ハードディスク)がホストコンピュータのメモリのデータを読み出す動作を行う場合について説明する。
【0065】
ホストコンピュータから1394シリアルバスBSを転送されてきたSBP−2規格に基づいたORB(Operation Request Block)等のパケットデータがフィジカル・レイヤ回路20、リンク・レイヤ回路100のリンクコア101を介して分別回路105に入力される。
【0066】
分別回路105では、受信パケットを受けてホストコンピュータからターゲットであるトランザクション・レイヤ回路に対しての応答パケット(Response Packet) であるかその他のパケットであるかの分別が行われる。
そしてこの場合、その他のパケットであることから受信データが受信用FIFO104に格納される。
受信用FIFO104に格納されたORB等の受信データは、CPUインタフェース回路102を介してローカルプロセッサ40に入力される。
ローカルプロセッサ40では、CPUインタフェース回路102を介してORBの内容に従ってCR107のトランザクション・レイヤ回路用レジスタの初期化が行われる。
これにより、トランザクション・レイヤ回路120が起動される。
【0067】
起動されたトランザクション・レイヤ回路120では、要求パケット生成回路122において、SBP−2規格に従って、CR107にセットされた転送データ長等のデータに基づいてSBPプロトコルのアドレスが算出され、パケット毎に増加する1394バスアドレスとトランザクションラベルtl(=a)やトランザクションコードtcode(たとえば1または5)等が設定され、指定されたアドレス、データ長分の1394ブロック読み出し要求コマンド(Block read Request Command)がパケット化されて要求用FIFO124に格納される。
【0068】
要求用FIFO124に格納された読み出し要求コマンドパケットは、トランザクションコントローラ126によりリンク・レイヤ回路100のリンクコア101に送られる。
そして、リンクコア101によって、フィジカル・レイヤ回路20を介して1394シリアルバスBSに対しアービトレーションが掛けられる。
これにより、バスの獲得ができたならば、読み出し要求パケット(Read Request Packet) がフィジカル・レイヤ回路20、1394シリアルバスBSを介してホストコンピュータに送信される。
【0069】
送信後、ホストコンピュータから読み出し要求パケットに対するAckコードと、指定されたデータ長分のデータを含んだ読み出し応答パケット(Read Response Packet) が送られてきて、フィジカル・レイヤ回路20、リンク・レイヤ回路100のリンクコア101を介して分別回路105に入力される。
【0070】
分別回路105では、受信パケットのトランザクションコードtcodeおよびトランザクションラベルtlのチェックが行われ、ホストコンピュータからターゲットであるトランザクション・レイヤ回路に対しての応答パケット(Response Packet) であると判別されると、その応答パケットがトランザクション・レイヤ回路120のトランザクションコントローラ126に入力される。
【0071】
トランザクションコントローラ126では、分別回路105からの応答パケットが応答用FIFO125に格納される。
応答用FIFO125に格納されたデータは、応答パケットデコード回路123によって読み出され、1394ヘッダが取り除かれて、所定のタイミングでトランスポートデータインタフェース回路121を介してHDDコントローラ30に出力される。
以上の動作が繰り返されて、コンピュータデータのストレージデバイス(ハードディスク)への書き込み(受信)動作が行われる。
【0072】
以上の受信に関するトランザクション・レイヤ回路129の動作の概略を図5に示す。
【0073】
以上説明したように、本実施形態によれば、ストレージデバイスが接続され、ストレージデバイスのデータを読み出し、自己指定のトランザクションラベルを付加して送信アシンクロナスパケットとしてシリアルインタフェースバスBSに送出し、他ノードのデータを当該ストレージデバイスへ転送する場合に、自己指定のラベルを付加した要求パケットを生成してシリアルインタフェースバスBSに送出し、他ノードからのこの要求パケットに対する応答パケットを受信し、応答パケットからデータ部を取り出してストレージデバイスへ転送するデータ処理回路としてのトランザクション・レイヤ回路120を設けたので、ストレージデバイスに格納される、あるいはストレージデバイスから読み出される大容量のデータをSBP−2規格に合わせたIEEE1394パケットにして送受信することができ、IEEE1394シリアルバスインタフェースのアシンクロナスパケットを用いて大容量のデータ転送を実現することができる。
そして、SBP−2規格に基づいたORBのフェッチ、データ転送、イニシエータへのステイタス送信といったシーケンスを簡略化でき、ディスクドライバ、テープストリーマ等のコンピュータ周辺機器のデータをIEEE1394シリアルバスに接続する際に最適な設計が可能となる。
【0074】
また、応答パケットにエラーが有るか否かを判別し、エラーがある場合にはそのエラー内容を判別し、要求パケット生成回路122、応答パケットデコード回路123、要求用FIFO124および応答用パケット125の処理を信号S126で停止させるエラー判別回路1261を設けたので、エラーが発生した場合にその判別を行うことができ、制御系回路の付加を軽減でき的確な送受信処理をすることができる。
【0075】
さらに、トランザクション・レイヤ回路120に要求用FIFO124および応答用FIFO125を設けるとともに、リンク・レイヤ回路100に送信用FIFO103および受信用FIFO104を設けたので、要求用FIFO124および応答用FIFO125によるデータのやりとりと並列して、データ以外の通常の1394パケットの送受信を行うことできる。
【0076】
また、リンクコア101を介したアシンクロナス通信用パケットの第1クワドレッドにあるトランザクションコードtcode(Transaction code)およびトランザクションラベルtl(Transaction label) をチェックし、イニシエータであるホストコンピュータからターゲットであるトランザクション・レイヤ回路に対しての応答パケット(Response Packet) であるかその他のパケットであるかの分別を行い、応答パケットのみをトランザクション・レイヤ回路120に入力させ、その他のパケットを受信用FIFO104に格納する分別回路105を設けたので、たとえばトランザクション・レイヤ回路120側で致命的なエラーがおきてデータの読み出し/書き込み動作が止まってしまったとしても、データの次の入力されてくるコマンドの読み出しができなることがなく、データの読み出し/書き込みの状況にかかわりなくコマンドの受信を円滑に行うことができる利点がある。
【0077】
【発明の効果】
以上説明したように、本発明によれば、大容量のデータを所定の規格に合わせたパケットにして送受信することができることはもとより、エラーが発生した場合にその判別を行うことができ、制御系回路の付加を軽減でき、的確な送受信処理をすることができる。
【図面の簡単な説明】
【図1】本発明に係るIEEE1394シリアルインタフェース回路の一実施形態を示すブロック構成図である。
【図2】本発明に係るエラー判別回路を示すブロック図である。
【図3】エラーコードの一例を示す図である。
【図4】エラー判別動作を説明するためのフローチャートである。
【図5】本発明に係るトランザクション・レイヤ回路における送信動作の概略を示す図である。
【図6】本発明に係るトランザクション・レイヤ回路における受信動作の概略を示す図である。
【図7】IEEE1394規格のアシンクロナス転送を説明するための図である。
【符号の説明】
10…リンク/トランザクションレイヤ集積回路、20…フィジカル・レイヤ回路、30…HDDコントローラ、40…ローカルプロセッサ、100,100a…リンク・レイヤ回路、101…リンクコア、102…CPUインタフェース回路、103…アシンクロナス送信用FIFO、104…アシンクロナス受信用FIFO、105,105a…分別回路、106…リゾルバ、107…コントロールレジスタ、120…トランザクション・レイヤ回路、121…トランスポートデータインタフェース回路、121…要求パケット生成回路、123…応答パケットデコード回路、124…要求用FIFO、125…応答用FIFO、126…トランザクションコントローラ、1261…エラー判別回路。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a digital serial interface circuit, and in particular, a serial connected to a storage device such as an HDD (Hard Disk Drive), a DVD (Digital Video Disk) -ROM, a CD (Compact Disk) -ROM, and a tape streamer. The present invention relates to an interface circuit.
[0002]
[Prior art]
In recent years, IEEE (The Institute of Electrical and Electronic Engineers) 1394 and High Performance Serial Bus that realize high-speed data transfer and real-time transfer have been standardized as interfaces for multimedia data transfer.
[0003]
In the data transfer of the IEEE1394 serial interface, a transfer operation performed in the network is called a subaction and two subactions are defined.
One is a conventional Asynchronous transfer for request and acknowledge request and reception confirmation, and the other is an isochronous transfer in which data is always sent once every 125 μs from a certain node.
[0004]
In this way, data in the IEEE 1394 serial interface having two transfer modes is transferred in units of packets, but in the IEEE 1394 standard, the minimum data unit to be handled is 1 quadlet (= 4 bytes = 32 bits). It is.
[0005]
According to the IEEE 1394 standard, computer data is normally transmitted using asynchronous transfer as shown in FIG.
As shown in FIG. 7A, asynchronous transfer takes three transition states: arbitration (arb) for acquiring a bus, packet transmission for transferring data, and acknowledgment (ack).
[0006]
The packet transmission is executed in a format as shown in FIG.
The first quadlet of the transfer packet includes a 16-bit destination ID area, a 6-bit transaction label tl (transaction label) area, a 2-bit retry code rt (retry code) area, and a 4-bit transaction code tcode. ( transaction code) area and 4-bit priority pri (priority) area.
The destination ID area indicates the bus number and node number of this node, and the priority area indicates the priority level.
[0007]
The second and third quadlets have a 16-bit source ID field and a 48-bit destination offset.
offset) area.
The source ID area indicates the node ID that sent this packet, and the destination offset area is composed of continuous high and low areas, indicating the address of the destination node address space.
[0008]
The fourth quadlet is composed of a 16-bit data length area and a 16-bit extended transaction code area.
The data length area indicates the number of bytes of the received packet, and the extended tcode area indicates the actual lock action (Lock Action) performed by the data of this packet when tcode is a lock transaction. .
[0009]
The header CRC (header CRC) area added to the quadlet before the data field area is an error detection code of the packet header.
A data CRC (data CRC) area added to the quadlet after the data field is an error detection code of the data field.
[0010]
[Problems to be solved by the invention]
By the way, as described above, SBP-2 (Serial Bus Protocol-2) is used as a protocol in normal computer data transfer performed by asynchronous transfer.
According to this protocol, when data is transferred from a target (Storage Device) to a host computer (Initiator), data is written from the storage device to the host computer memory. In addition, when data is transferred from the host computer to the target, the transfer is performed in such a manner that the storage device reads the data in the memory of the host computer.
[0011]
However, a processing circuit system for controlling a so-called transaction layer for transmitting and receiving large-capacity data stored in a storage device or read from the storage device as an IEEE 1394 packet is still established. It has not been.
It is also necessary to implement a communication error detection and discrimination circuit in the transaction system.
[0012]
The present invention has been made in view of such circumstances, and an object of the present invention is to transmit / receive a large amount of data in a packet conforming to a predetermined standard, and to determine when an error occurs. An object of the present invention is to provide a serial interface circuit that can be performed and can perform smooth transmission and reception processing.
[0013]
[Means for Solving the Problems]
In order to achieve the above object, the present invention provides a serial interface circuit that transmits and receives packets between other nodes connected to the own node via a serial interface bus, and generates a request packet from the own node to the other node. The data processing circuit that transmits to the serial interface bus and performs reception processing for the response packet to the request packet, and determines whether or not the received response packet has an error. An error determination circuit that determines the transaction code and label in the received packet, and discriminates whether it is a response packet or other packet from the initiator to the data processing circuit that is the target, Only the response packet is input to the data processing circuit. The error determination circuit determines whether or not an appropriate response packet for the request packet has been returned. If the response packet is inappropriate, the error determination circuit is inappropriate for the transmitted request. determines that the error response packet is returned, when it is determined that has been returned appropriate response packet, the response is complete (Complete), busy (busy), different determination processing on whether it is, pending (pending) In the case of completion, it is determined whether there is a reception or transmission corresponding to the request, and in the case where the request does not correspond, it is determined that the error is a response packet that is inappropriate for the transmitted request. If it corresponds, it is determined that the error is complete, and if it is busy, a retry operation is performed to perform retransmission, and this retry count is set in advance. It is determined whether the retry limit has been reached, and if the retry limit has been reached, it is determined that the other party is busy, and in the case of pending, a response packet is received within a preset time. It is determined whether or not it is an error that the response does not return within the specified time if it is received within the specified time .
[0014]
In the present invention, the error determination circuit stops packet transmission / reception processing of the data processing circuit when an error is detected.
[0015]
In the present invention, an error register is provided, and the error determination circuit sets the error content in the error register when an error is detected.
[0016]
The present invention further includes a control circuit for initializing the data processing circuit when the error content is set in the error register.
[0017]
In the present invention, when the error determination circuit detects an error, the error detection circuit notifies the control circuit that the error has been detected, and the control circuit reads the error register upon receiving the error detection notification and performs the initialization. Process.
[0018]
Further, according to the circuit of the present invention, a request packet from the own node to another node is generated and sent to the serial interface bus in the data processing circuit.
Then, a response packet to the request packet from another node is received and predetermined processing is performed.
The response packet is also input to the error determination circuit. The error determination circuit detects whether or not there is an error in the received response packet. If there is an error, the error content is determined.
For example, when an error is detected by the error determination circuit, packet transmission / reception processing of the data processing circuit is stopped, the error content is set in the error register, and the control circuit is notified that the error has been detected. The That is, an error interrupt is performed.
Upon receiving notification of error detection, the control circuit reads the contents of the error register and performs initialization processing on the data processing circuit.
[0019]
DETAILED DESCRIPTION OF THE INVENTION
FIG. 1 is a block diagram showing an embodiment of an IEEE 1394 serial interface circuit according to the present invention.
Note that this serial interface circuit is configured for the purpose of transferring computer data handled in asynchronous communication. For this reason, the specific configuration of the isochronous communication system circuit is not shown in FIG.
[0020]
The serial interface circuit includes a link / transaction layer integrated circuit 10, a physical layer circuit 20, a hard disk driver (HDD) controller 30 (not shown) as a storage device, and a local processor 40 as a host computer.
[0021]
The link / transaction layer integrated circuit 10 is configured by integrating the link layer circuit 100 and the transaction layer circuit 120. Under the control of the local processor 40, the asynchronous transfer control and the physical layer circuit 20 are controlled. I do.
[0022]
As shown in FIG. 1, the link layer circuit 100 includes a link core 101, a CPU interface circuit (Sub-CPU I / F) 102, and a transmission FIFO (AT-FIFO: First) used in asynchronous communication. -In First-Out) 103, a receiving FIFO (AR-FIFO) 104, a classification circuit (DeMux) 105 for discriminating a received packet, a resolver for self ID (Resolver) 106, and a control register (hereinafter referred to as CR) 107.
[0023]
The link core 101 is a transmission circuit and reception circuit for asynchronous communication packets and isochronous communication packets to which commands and computer data are transferred, and an interface circuit with a physical layer circuit 20 that directly drives the IEEE 1394 serial bus BS of these packets. It consists of a cycle timer, cycle monitor, and CRC circuit that are reset every 125 μs.
Further, it performs a transmission process of computer data read from a hard disk (not shown) and generated as a predetermined transmission packet by the transaction layer circuit 120.
For example, upon receiving notification that there is data to be sent from the transaction controller 126 of the transaction layer circuit 120, which will be described later, the 1394 serial bus is arbitrated via the physical layer circuit 20 to secure the bus.
In FIG. 1, as described above, the isochronous communication FIFO and the like are omitted.
[0024]
The CPU interface circuit 102 performs arbitration such as writing and reading of asynchronous communication packets between the local processor 40, the transmission FIFO 103, and the reception FIFO 104, and arbitration of transmission / reception of various data between the local processor 40 and the CR 107.
For example, an IEEE 1394 interface bus BS is transmitted from a host computer as an initiator, and a command for controlling a hard disk as a storage device stored in a reception FIFO is transmitted to the local processor 40.
[0025]
From the local processor 40, data for starting up the transaction layer circuit 120 to send and receive computer data is set in the CR 107 through the CPU interface 102 (ADPst = 1).
[0026]
The transmission FIFO 103 stores asynchronous communication packets to be transmitted to the IEEE 1394 serial bus BS, and the stored data is given to the link core 101.
[0027]
The receiving FIFO 104 stores the asynchronous communication packet transmitted through the IEEE 1394 serial bus BS, for example, a control command for a hard disk as a storage device, by the sorting circuit 105.
[0028]
The classification circuit 105 checks the transaction code tcode (Transaction code) and the transaction label tl (Transaction label) in the first quadred of the asynchronous communication packet via the link core 101, and the target transaction from the host computer that is the initiator. -Whether the packet is a response packet to the layer circuit (Response Packet) or other packet is classified, only the response packet is input to the transaction layer circuit 120, and the other packet is stored in the reception FIFO 104 .
[0029]
Note that the transaction label tl used for the classification check is commonly set to “a”, and tcode (Transaction code) is a write request, a response, and a read request (Read) ( Different data is set for Read request and Read response.
Specifically, tcode is set to “0” when the write request is a quadlet write and “1” when the block write is a block write.
In the case of a write response, it is set to “2”.
It is set to “4” when the read request is a quadlet read and “5” when the block read is a block read.
In the case of a read response (Read Response), it is set to “6/7”.
[0030]
The resolver 106 analyzes the self ID packet transmitted through the IEEE 1394 serial interface bus BS and stores it in the CR 107. It also has functions such as error check and node count.
[0031]
The transaction layer circuit 120 has a function of automatically transmitting and receiving data of a computer peripheral device (hard disk in the present embodiment) as an asynchronous packet based on the SBP-2 (Serial Bus Protocol-2) standard. Yes.
In addition, the transaction layer circuit 120 has a retry function and a split timeout detection function.
The retry function is a function for retransmitting a corresponding request packet when an ack busy * Ack code is returned after transmitting the request packet. When retransmitting a packet, the 2-bit rt region in the first quadred of the transmission packet is set from “00” to “01” to notify the core link 101 and transmit.
The split timeout detection function is a function for detecting a timeout until a response packet is returned.
[0032]
The transaction layer circuit 120 includes a transport data interface circuit 121, a request packet generation circuit (SBPreq) 122, a response packet decode circuit (SBPRsp) 123, a request FIFO (Request FIFO: ADPTF) 124, and a response FIFO (Response FIFO). : ADPRF) 125 and transaction controller 126.
The request packet generation circuit 122, the response packet decoding circuit 123, the request FIFO 124, the response FIFO 125, and the transaction controller 126 constitute a data processing circuit ADP.
[0033]
The transport data interface circuit 121 arbitrates transmission / reception of data between the HDD controller 30, the request packet generation circuit 122, and the response packet decoding circuit 123.
[0034]
When the request packet generation circuit 122 receives a data transfer activation instruction from the CR 107 of the link layer circuit 100, a hard disk (not shown) obtained via the transport data interface circuit 121 according to the SBP-2 standard in the case of transmission (writing) The computer data recorded in the packet is divided into one or more data so that it can be divided into packets, the SBP protocol address is calculated based on data such as the transfer data length set in the CR 107, and the 1394 bus increases for each packet. A 1394 header composed of four cladlets in which an address, a transaction label tl (= a), a transaction code tcode (for example, 1 or 5) and the like are added is added and stored in the request FIFO 124.
In the case of reception (reading), in accordance with the SBP-2 standard, an SBP protocol address is calculated based on data such as the transfer data length set in the CR 107, and the 1394 bus address and transaction label that increase for each packet are calculated. tl (= a), transaction code tcode (for example, 1 or 5), etc. are set, and the 1394 block read request command (Block read Request Command) for the specified address and data length is set to one or more packets for request Store in the FIFO 124.
[0035]
The request packet generation circuit 122 calculates the maximum data length of the response packet for the request packet to be transmitted in response to the maximum length data max-payload specified by the CR 107 during transmission and reception.
This maximum data length (byte) maxpl is obtained based on the following equation.
[0036]
[Expression 1]
maxpl = 2 (max, Payload + 2) (1)
[0037]
The response packet decoding circuit 123 reads the data stored in the response FIFO 125 at the time of reception, removes the 1394 header, and outputs the data to the HDD controller 30 via the transport data interface circuit 121 at a predetermined timing.
[0038]
The request FIFO 124 stores packetized transmission data at the time of transmission (writing), and stores a 1394 block read request command at the time of reception (reading).
When the data to be sent is stored, the request FIFO 124 outputs an active signal EMT to the transaction controller 126 at a low level (“0”) indicating that fact.
[0039]
In the case of reception (reading), the response FIFO 125 stores reception data transmitted from the host computer side through the 1394 serial bus BS.
The response FIFO 125 outputs a signal indicating the remaining storage capacity to the transaction controller 126.
[0040]
The transaction controller 126 transmits the packetized transmission data stored in the request FIFO 124 at the time of transmission and the link core 101 of the link layer core circuit 100 of the 1394 block read request command (request packet) stored in the request FIFO 124 at the time of reception. Control output to.
Also, upon transmission, a response packet from the classification circuit 105 of the link layer circuit 100 is received, and the retry code rcode is written to the CR 107. At the time of reception, the response packet from the classification circuit 105 is stored in the response FIFO 125.
[0041]
Further, as shown in FIG. 2, the transaction controller 126 determines whether or not there is an error in the response packet (including Acknowledge that is a reception confirmation from another node). An error determination circuit 1261 is provided for determining and stopping the processing of the request packet generation circuit 122, the response packet decoding circuit 123, the request FIFO 124, and the response packet 125 at the signal S126.
[0042]
If the write transaction (transmission) and read (receive), for acknowledgment (Acknowledge) or response packet received, there is a possibility that for example an error as shown in FIG. 3 occurs, an error determination circuit 1261, an error When it is detected, the processing of the request packet generation circuit 122, the response packet decoding circuit 123, the request FIFO 124, and the response packet 125 is stopped, and the contents of these errors are determined. For example, an error code corresponding to the contents is set. Set in the error register of CR107. When it is detected that there is an error, an interrupt bit is set in the CR 107 for an interrupt signal (Interrupt) to notify the local processor 40 that the error has been detected.
[0043]
Here, the contents of each error code in FIG. 3 will be described.
Error code ERC “0” indicates no error, “1” returns an ack code inappropriate for the transmitted request, “2” returns an ack code inappropriate for the received response, “3” No response is returned within the specified time, “4” is the retry limit count, the other party is busy even if a request packet is sent, “5” is a bus reset, “6” is an inappropriate rcode (response "7" is a response packet from a node other than the designated node, and "8" is a tcode (transaction code) different from the transaction being executed.
[0044]
Here, the operation at the time of writing (receiving) of the error discriminating circuit shown in FIG. 2 will be described with reference to the flowchart of FIG. 4, and then the normal computer data when transferring a packet determined by the SBP-2 standard is described. The transmission and reception operations will be described.
[0045]
The error determination circuit 1261 first determines whether or not an appropriate ack code (response packet) for the request packet has been returned (S1).
If the ack code is inappropriate in step S1, it is determined that the error is that an inappropriate ack code is returned in response to the request transmitted with the code “1”.
If it is determined in step S1 that the ack code has been returned appropriately, different determination processing is performed depending on whether the response is complete, busy, or pending.
[0046]
In the case of complete, it is determined whether it is a read or a write. If the response is an inappropriate response if it is a read, it is determined that the error is a code “1”, and if it is a write, the complete (S3).
[0047]
In the case of busy, a retry operation for performing retransmission is performed, and it is determined whether or not the number of retries has reached a preset retry limit (S4).
If it is determined in step S4 that the retry limit count has not been reached, the operation in step S1, that is, the request packet retransmission operation is performed.
On the other hand, if the retry limit number has been reached, it is determined that the partner is busy even if the request packet is sent the number of times of the retry limit of code “4”.
[0048]
In the case of pending, the determination operations in steps S5 to S9 are performed in order.
First, in step S5, it is determined whether or not a response packet has been received within a preset time.
In step S5, if the response packet does not return within the preset time, it is determined that the response does not return within the specified time of the code “3”.
On the other hand, if the response is returned within the specified time, the process proceeds to step S6.
[0049]
In step S6, it is determined whether or not an ack code inappropriate for the received response is returned.
In step S6, when an inappropriate ack code is returned to the received response, it is determined that the error is that an inappropriate ack code of code 2 is returned.
On the other hand, if an appropriate ack code is returned, the process proceeds to step S7.
[0050]
In step S7, it is determined whether or not an appropriate rcode (response code) has been received.
If an inappropriate rcode is received in step S7, it is determined that the error is that an inappropriate rcode of code “6” has been received.
On the other hand, if an appropriate rcode is received, the process proceeds to step S8.
[0051]
In step S8, it is determined whether or not the source ID is normal.
If it is determined in step S8 that the source ID is abnormal, it is determined that the error is a response packet received from a node other than the designated node with the code “7”.
On the other hand, if a normal source ID is received, the process proceeds to step S9.
[0052]
In step S9, it is determined whether or not the received tcode (transaction code) is normal.
If it is determined in step S9 that the received tcode is abnormal, it is determined that the error is a tcode received that is different from the transaction in which the code “8” is executed.
On the other hand, when normal tcode is received, it is processed as no error (complete).
[0053]
When it is detected that there is an error as described above, the error determination circuit 1261 outputs the signal S126 to the request packet generation circuit 122, the response packet decode circuit 123, the request FIFO 124, and the response packet 125, A process for stopping the process is performed.
An error code corresponding to the content of the error is set in the error register of the CR 107, and when an error is detected, an interrupt bit is set in the CR 107 for an interrupt signal (Interrupt). This notifies the local processor 40 that there is a request to interrupt due to an error.
As a result, the content of the CR 107 is read by the local processor 40, and an initialization (reset) process for the transaction layer circuit 120 is performed via the CR 107.
[0054]
Next, normal transmission and reception operations of computer data when a packet determined by the SBP-2 standard is transferred in the above configuration will be described.
[0055]
First, a transmission operation, that is, a case in which data is transferred from a target hard disk to an initiator host computer and data is written from a storage device (hard disk) to a memory of the host computer will be described.
[0056]
Packet data such as ORB ( Operation Request Block) based on the SBP-2 standard transferred from the host computer via the 1394 serial bus BS is separated via the physical layer circuit 20 and the link core 101 of the link layer circuit 100. 105 is input.
[0057]
The classification circuit 105 receives the received packet and classifies whether it is a response packet (Response Packet) or other packet from the host computer to the target transaction layer circuit.
In this case, the received data is stored in the receiving FIFO 104 because it is another packet.
Reception data such as ORB stored in the reception FIFO 104 is input to the local processor 40 via the CPU interface circuit 102.
In the local processor 40, the transaction layer circuit register of the CR 107 is initialized according to the contents of the ORB through the CPU interface circuit 102.
As a result, the transaction layer circuit 120 is activated.
[0058]
In the activated transaction layer circuit 120, the request packet generation circuit 122 starts a request for data to the HDD controller 30 via the transport interface 121.
In response to the request, the transmission data sent via the transport interface 121 is computer data recorded on a hard disk (not shown) obtained via the transport data interface circuit 121 according to the SBP-2 standard in the request packet generation circuit 122. The SBP protocol address is calculated based on the data such as the transfer data length set in the CR 107, and the 1394 bus address and the transaction label tl are increased for each packet. (= A), a transaction code tcode (for example, 1 or 5) and the like, a 1394 header composed of 4 gradlets is added and stored in the request FIFO 124.
[0059]
When data of one 1394 packet size or larger is stored in the request 1 FIFO 124, the data is sent to the link core 101 of the link layer circuit 100 by the transaction controller 126.
The link core 101 arbitrates the 1394 serial bus BS via the physical layer circuit 20.
Thus, if the bus is acquired, a write request packet including the transfer data is transmitted to the host computer via the physical layer circuit 20 and the 1394 serial bus BS.
[0060]
After transmission, an Ack code for the write request packet and, in some cases, a write response packet are sent from the host computer, and are sorted via the physical layer circuit 20 and the link core 101 of the link layer circuit 100. Input to the circuit 105.
[0061]
In the classification circuit 105, the transaction code tcode and the transaction label tl of the received packet are checked, and if it is determined that the response packet is a response packet (Response Packet) from the host computer to the target transaction layer circuit 120, The response packet is input to the transaction controller 126 of the transaction layer circuit 120.
[0062]
In the transaction controller 126, if the Ack code and the response code of the input response packet are normal, the next data is sent to the link core 101.
The above operation is repeated, and the operation of writing (sending) computer data to the memory of the host computer is performed.
[0063]
FIG. 4 shows an outline of the operation of the transaction layer circuit 120 relating to the above transmission.
[0064]
Next, a reception operation, that is, a case where the storage device (hard disk) reads data from the memory of the host computer when data is transferred from the host computer to the target will be described.
[0065]
Packet data such as ORB ( Operation Request Block) based on the SBP-2 standard transferred from the host computer via the 1394 serial bus BS is separated via the physical layer circuit 20 and the link core 101 of the link layer circuit 100. 105 is input.
[0066]
The classification circuit 105 receives the received packet and classifies whether it is a response packet (Response Packet) or other packet from the host computer to the target transaction layer circuit.
In this case, the received data is stored in the receiving FIFO 104 because it is another packet.
Reception data such as ORB stored in the reception FIFO 104 is input to the local processor 40 via the CPU interface circuit 102.
In the local processor 40, the transaction layer circuit register of the CR 107 is initialized according to the contents of the ORB through the CPU interface circuit 102.
As a result, the transaction layer circuit 120 is activated.
[0067]
In the activated transaction layer circuit 120, the request packet generation circuit 122 calculates the address of the SBP protocol based on data such as the transfer data length set in the CR 107 in accordance with the SBP-2 standard, and increases for each packet. A 1394 bus address, a transaction label tl (= a), a transaction code tcode (for example, 1 or 5), etc. are set, and a 1394 block read request command (Block read Request Command) corresponding to the specified address and data length is packetized. And stored in the request FIFO 124.
[0068]
The read request command packet stored in the request FIFO 124 is sent to the link core 101 of the link layer circuit 100 by the transaction controller 126.
The link core 101 arbitrates the 1394 serial bus BS via the physical layer circuit 20.
As a result, if the bus is acquired, a read request packet is transmitted to the host computer via the physical layer circuit 20 and the 1394 serial bus BS.
[0069]
After transmission, an Ack code for the read request packet and a read response packet (Read Response Packet) including data for the specified data length are sent from the host computer, and the physical layer circuit 20 and the link layer circuit 100 are sent. Are input to the sorting circuit 105 via the link core 101.
[0070]
In the classification circuit 105, the transaction code tcode and the transaction label tl of the received packet are checked, and if it is determined that the response packet is a response packet (Response Packet) from the host computer to the target transaction layer circuit, The response packet is input to the transaction controller 126 of the transaction layer circuit 120.
[0071]
In the transaction controller 126, the response packet from the classification circuit 105 is stored in the response FIFO 125.
The data stored in the response FIFO 125 is read by the response packet decoding circuit 123, the 1394 header is removed, and the data is output to the HDD controller 30 via the transport data interface circuit 121 at a predetermined timing.
The above operation is repeated, and the operation of writing (receiving) computer data to the storage device (hard disk) is performed.
[0072]
FIG. 5 shows an outline of the operation of the transaction layer circuit 129 related to the above reception.
[0073]
As described above, according to the present embodiment, the storage device is connected, reads the data of the storage device, adds a self-designated transaction label, sends it to the serial interface bus BS as a transmission asynchronous packet, and When transferring data to the storage device, a request packet with a self-designated label is generated and sent to the serial interface bus BS, a response packet to this request packet from another node is received, and the data from the response packet Since the transaction layer circuit 120 is provided as a data processing circuit for taking out the data and transferring it to the storage device, large-capacity data stored in or read from the storage device can be stored in the SBP-2 standard. Combined with the IEEE1394 packet can be transmitted and received, it is possible to realize a large data transfer using an asynchronous packet of IEEE1394 serial bus interface.
The sequence of ORB fetch, data transfer, and status transmission to the initiator based on the SBP-2 standard can be simplified, and it is optimal for connecting computer peripheral data such as disk drivers and tape streamers to the IEEE 1394 serial bus. Design becomes possible.
[0074]
Also, it is determined whether or not there is an error in the response packet. If there is an error, the error content is determined, and the request packet generation circuit 122, response packet decode circuit 123, request FIFO 124, and response packet 125 are processed. Since the error discriminating circuit 1261 is stopped by the signal S126, the discriminating can be performed when an error occurs, and the addition of the control system circuit can be reduced, and the accurate transmission / reception processing can be performed.
[0075]
Further, since the requesting FIFO 124 and the response FIFO 125 are provided in the transaction layer circuit 120, and the transmission FIFO 103 and the receiving FIFO 104 are provided in the link layer circuit 100, data exchange by the requesting FIFO 124 and the response FIFO 125 is performed in parallel. Thus, normal 1394 packets other than data can be transmitted and received.
[0076]
In addition, the transaction code tcode (Transaction code) and the transaction label tl (Transaction label) in the first quadred of the packet for asynchronous communication through the link core 101 are checked, and the target transaction layer circuit is transmitted from the initiator host computer. Is a response packet (Response Packet) or other packet, and only the response packet is input to the transaction layer circuit 120, and the other packet is stored in the reception FIFO 104. For example, even if a fatal error occurs on the transaction layer circuit 120 side and the data read / write operation stops, the next input command of data can be read. No Rukoto, there is an advantage that the reception of the no command regardless of the data read / write status can be smoothly performed.
[0077]
【The invention's effect】
As described above, according to the present invention, not only can a large amount of data be transmitted and received in packets conforming to a predetermined standard, but also when an error occurs, the determination can be made. The addition of a circuit can be reduced, and an accurate transmission / reception process can be performed.
[Brief description of the drawings]
FIG. 1 is a block diagram showing an embodiment of an IEEE 1394 serial interface circuit according to the present invention.
FIG. 2 is a block diagram showing an error determination circuit according to the present invention.
FIG. 3 is a diagram illustrating an example of an error code.
FIG. 4 is a flowchart for explaining an error determination operation;
FIG. 5 is a diagram showing an outline of a transmission operation in a transaction layer circuit according to the present invention.
FIG. 6 is a diagram showing an outline of a reception operation in a transaction layer circuit according to the present invention.
FIG. 7 is a diagram for explaining asynchronous transfer of the IEEE 1394 standard.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 10 ... Link / transaction layer integrated circuit, 20 ... Physical layer circuit, 30 ... HDD controller, 40 ... Local processor, 100, 100a ... Link layer circuit, 101 ... Link core, 102 ... CPU interface circuit, 103 ... Asynchronous transmission Trust FIFO, 104 ... Asynchronous reception FIFO, 105, 105a ... Sorting circuit, 106 ... Resolver, 107 ... Control register, 120 ... Transaction layer circuit, 121 ... Transport data interface circuit, 121 ... Request packet generation circuit, 123 ... Response packet decoding circuit 124... Request FIFO 125. Response FIFO 126 126 Transaction controller 1261 Error determination circuit

Claims (8)

自ノードとシリアルインタフェースバスを介して接続された他ノード間でパケットの送受信を行うシリアルインタフェース回路であって、
自ノードから他ノードへの要求パケットを生成し、上記シリアルインタフェースバスに送出し、当該要求パケットに対する応答パケットに対する受信処理を行うデータ処理回路と、
受信した応答パケットにエラーが有るか否かを判別し、エラーがある場合にはそのエラー内容を判別するエラー判別回路と
受信したパケットにあるトランザクションコードおよびラベルをチェックし、イニシエータからターゲットである上記データ処理回路に対しての応答パケットであるかその他のパケットであるかの分別を行い、応答パケットのみを上記データ処理回路に入力させる分別回路と、を有し、
上記エラー判別回路は、
要求パケットに対する適当な応答パケットが返ってきたか否かの判別を行い、不適当な応答パケットである場合には、送信した要求に不適当な応答パケットが返ってきたエラーであると判別し、
適当な応答パケットが返ってきたと判別すると、その応答がコンプリート (Complete) 、ビジー (Busy) 、ペンディング (Pending) 、であるかで異なる判別処理を行い、
コンプリートの場合には、要求に対応した受信または送信あるかを判別し、要求の対応しない場合には送信した要求に不適当な応答パケットが返ってきたエラーであると判別し、要求に対応する場合には、エラーなしのコンプリートであると判別し、
ビジーの場合には、再送信を行うリトライ動作を行い、このリトライ回数が、あらかじめ設定したリトライ制限回数に達したか否かの判別を行い、リトライ制限回数に達していると相手がビジーであるエラーと判別し、
ペンディングンの場合には、応答パケットをあらかじめ設定した時間内に受信したか否かを判別し、時間内に受信したかった場合には規定時間内に応答が戻らないというエラーであると判別する
シリアルインタフェース回路。
A serial interface circuit that transmits and receives packets between other nodes connected to the local node via a serial interface bus,
A data processing circuit that generates a request packet from the own node to another node, sends the request packet to the serial interface bus, and performs a reception process on a response packet to the request packet
An error determination circuit that determines whether or not there is an error in the received response packet, and if there is an error, determines an error content ;
The transaction code and label in the received packet are checked, the response packet from the initiator to the data processing circuit that is the target is distinguished from other packets, and only the response packet is sent to the data processing circuit. A separation circuit to be input to
The error discrimination circuit
It is determined whether or not an appropriate response packet for the request packet has been returned, and if it is an inappropriate response packet, it is determined that the error is that an inappropriate response packet has been returned for the transmitted request.
When determining that has been returned appropriate response packet, the response is complete (Complete), busy (Busy), performs a different determination processing on whether it is, pending (Pending),
In the case of complete, it is determined whether there is reception or transmission corresponding to the request. In the case where the request does not correspond, it is determined that an error response packet is returned in response to the transmitted request, and the request is responded. If it is, determine that the error is complete and
In the case of busy, a retry operation for performing retransmission is performed, it is determined whether or not the number of retries has reached a preset retry limit, and the partner is busy if the retry limit has been reached. Determined as an error,
In the case of pending, it is determined whether or not the response packet is received within a preset time, and if it is received within the time, it is determined that the error is that the response does not return within the specified time. Serial interface circuit.
上記エラー判別回路は、エラーを検出すると上記データ処理回路のパケットの送受信処理を停止させる
請求項1記載のシリアルインタフェース回路。
The serial interface circuit according to claim 1, wherein the error determination circuit stops packet transmission / reception processing of the data processing circuit when an error is detected.
エラーレジスタを有し、
上記エラー判別回路は、エラーを検出した場合にはエラー内容を上記エラーレジスタにセットする
請求項1記載のシリアルインタフェース回路。
Has an error register,
The serial interface circuit according to claim 1, wherein the error determination circuit sets an error content in the error register when an error is detected.
エラーレジスタを有し、
上記エラー判別回路は、エラーを検出した場合にはエラー内容を上記エラーレジスタにセットする
請求項2記載のシリアルインタフェース回路。
Has an error register,
The serial interface circuit according to claim 2, wherein when an error is detected, the error determination circuit sets an error content in the error register.
上記エラーレジスタにエラー内容がセットされている場合には、上記データ処理回路を初期化する制御回路
を有する請求項3記載のシリアルインタフェース回路。
The serial interface circuit according to claim 3, further comprising a control circuit that initializes the data processing circuit when an error content is set in the error register.
上記エラーレジスタにエラー内容がセットされている場合には、上記データ処理回路を初期化する制御回路
を有する請求項4記載のシリアルインタフェース回路。
The serial interface circuit according to claim 4, further comprising: a control circuit that initializes the data processing circuit when an error content is set in the error register.
上記エラー判別回路はエラーを検出すると上記制御回路にエラーを検出した旨を知らせ、
上記制御回路は、エラー検出の知らせを受けて上記エラーレジスタの読み出しを行い、上記初期化処理を行う
請求項5記載のシリアルインタフェース回路。
When the error determination circuit detects an error, it notifies the control circuit that the error has been detected,
The serial interface circuit according to claim 5, wherein the control circuit reads the error register upon receiving notification of error detection and performs the initialization process.
上記エラー判別回路はエラーを検出すると上記制御回路にエラーを検出した旨を知らせ、
上記制御回路は、エラー検出の知らせを受けて上記エラーレジスタの読み出しを行い、上記初期化処理を行う
請求項6記載のシリアルインタフェース回路。
When the error determination circuit detects an error, it notifies the control circuit that the error has been detected,
The serial interface circuit according to claim 6, wherein the control circuit reads the error register upon receiving notification of error detection and performs the initialization process.
JP16598897A 1997-06-23 1997-06-23 Serial interface circuit Expired - Fee Related JP3837843B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP16598897A JP3837843B2 (en) 1997-06-23 1997-06-23 Serial interface circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP16598897A JP3837843B2 (en) 1997-06-23 1997-06-23 Serial interface circuit

Publications (2)

Publication Number Publication Date
JPH1117711A JPH1117711A (en) 1999-01-22
JP3837843B2 true JP3837843B2 (en) 2006-10-25

Family

ID=15822790

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16598897A Expired - Fee Related JP3837843B2 (en) 1997-06-23 1997-06-23 Serial interface circuit

Country Status (1)

Country Link
JP (1) JP3837843B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3584789B2 (en) * 1999-07-15 2004-11-04 セイコーエプソン株式会社 Data transfer control device and electronic equipment

Also Published As

Publication number Publication date
JPH1117711A (en) 1999-01-22

Similar Documents

Publication Publication Date Title
JP3543647B2 (en) Data transfer control device and electronic equipment
JP3560423B2 (en) Packet transmitting / receiving device and packet receiving device
US20070180336A1 (en) Multi-initiator control unit and method
JP3584789B2 (en) Data transfer control device and electronic equipment
JP3608441B2 (en) Data transfer control device and electronic device
JP3733699B2 (en) Serial interface circuit
JP3785747B2 (en) Serial interface circuit and signal processing method thereof
JP3837843B2 (en) Serial interface circuit
JP3539287B2 (en) Data transfer control device and electronic equipment
JP3494040B2 (en) Data transfer control device and electronic equipment
JPH1117710A (en) Serial interface circuit
JP3494042B2 (en) Data transfer control device and electronic equipment
JPH1117775A (en) Serial interface circuit
JPH1117773A (en) Serial interface circuit
JPH1117767A (en) Serial interface circuit
JPH11308300A (en) Serial interface circuit
JPH1117774A (en) Serial interface circuit
JP4582180B2 (en) Data transmission equipment
JP2000224195A (en) Data transmitter
JPH11308301A (en) Serial interface circuit
JP4062829B2 (en) Serial interface circuit
JP2003023471A (en) Packet transmission/reception processing circuit
JP3610982B2 (en) Data transfer control device and electronic device
JP2000115176A (en) Serial interface circuit
JP2006109312A (en) Communication control apparatus and its method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060131

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060403

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060711

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060724

LAPS Cancellation because of no payment of annual fees