JP4547452B2 - オンチップメモリにおけるデータ健全性のためのcrcを用いる方法および装置 - Google Patents

オンチップメモリにおけるデータ健全性のためのcrcを用いる方法および装置 Download PDF

Info

Publication number
JP4547452B2
JP4547452B2 JP2008333587A JP2008333587A JP4547452B2 JP 4547452 B2 JP4547452 B2 JP 4547452B2 JP 2008333587 A JP2008333587 A JP 2008333587A JP 2008333587 A JP2008333587 A JP 2008333587A JP 4547452 B2 JP4547452 B2 JP 4547452B2
Authority
JP
Japan
Prior art keywords
frame
data
crc
chip
received
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
JP2008333587A
Other languages
English (en)
Other versions
JP2009151795A (ja
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.)
Seagate Technology LLC
Original Assignee
Seagate Technology LLC
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 Seagate Technology LLC filed Critical Seagate Technology LLC
Publication of JP2009151795A publication Critical patent/JP2009151795A/ja
Application granted granted Critical
Publication of JP4547452B2 publication Critical patent/JP4547452B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/24Testing correct operation
    • H04L1/245Testing correct operation by using the properties of transmission codes
    • H04L1/246Testing correct operation by using the properties of transmission codes two-level transmission codes, e.g. binary
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/48Routing tree calculation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9031Wraparound memory, e.g. overrun or underrun detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9068Intermediate storage in different physical parts of a node or terminal in the network interface card
    • H04L49/9073Early interruption upon arrival of a fraction of a packet
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B5/00Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
    • G11B5/012Recording on, or reproducing or erasing from, magnetic disks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Small-Scale Networks (AREA)
  • Information Transfer Systems (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Multi Processors (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)
  • Computer And Data Communications (AREA)
  • Time-Division Multiplex Systems (AREA)

Description

本発明は、大容量記憶装置の分野に関するものである。特に、本発明は、改良されたファイバチャンネル調整ループ(「FC−AL」)装置と、オンチップメモリにおけるデータ健全性を維持し、もしくは検査するためにファイバチャンネル巡回冗長検査情報を用いる方法に関する。
あらゆるコンピュータシステムの主要な要素として、データを格納する装置がある。コンピュータシステムは、データを格納するための多くの様々な装置を含んでいる。コンピュータシステムで、多量のデータを格納するための1つの共通な場所が、ディスクドライブ上に設けられている。ディスクドライブの最も基本的な部分は、回転するディスク、ディスク上を様々な位置にトランスデューサを移動させるアクチュエータ、そしてディスクにデータを書き込んだりディスクからデータを読み出すために用いられる回路である。ディスクは、また、確実にディスク表面からデータを取り出したり、ディスク表面にデータを書き込めるようにデータをコード化するための回路を有している。マイクロプロセッサは、データ要求元のコンピュータに対してデータを送り戻し、要求元のコンピュータからデータを取得しディスクに格納することに加え、ディスクドライブの動作のほとんどの部分を制御する。
ディスクドライブとコンピュータシステムの他の部分との間でデータを転送するためのインターフェースは、通常、小型計算機システムインターフェース(「SCSI」)あるいはファイバチャンネルのようなバスあるいはファイバチャンネルである。この種のインターフェースのある側面は、異なる製造者から供給される様々な装置が相互接続でき、すべての装置が共通のインターフェースに接続できるように、しばしば標準化されている。このような標準は、通常、米国規格協会(「ANSI」)のような組織の標準化委員会によって取り決められるものとなっている。
様々な記憶装置と様々なコンピュータとの間でデータを交換するための1つの標準化されたインターフェースが、ファイバチャンネルである。いくつかの実施例では、ファイバチャンネル規格には、(後述の)調整ループが含まれている。実施例では、ファイバチャンネル規格は、データ転送を制御するためのSCSIに類似したプロトコルをサポートしている。
ファイバチャンネルは、小型計算機システムインターフェース(「SCSI」)ベースの設計に比べ、顕著な利点をもたらすものである。ファイバチャンネルは、従来のSCSIベース設計での毎秒2〜20メガバイトのものに比べ、現状は、毎秒約106メガバイトに到達するようなより高い帯域幅を提供する。また、通常のSCSIベース環境では、最大7〜15個の装置への対応だったものに対し、ファイバチャンネルは、126個の装置まで(ホストを含めて)接続することができるような、より高い接続性を提供する。ファイバチャンネルは、単一のコネクタで接続でき、スイッチを必要としないものである。SCSIベース環境では、最長25mまでの距離が限界であるのに比べ、同軸の電導体を用いたファイバチャンネルでは、最大30mの距離を隔てた装置間で動作し、さらに、チャンネル全体に光ファイバを用いると、10kmにまで距離を延長することができる。SCSI環境では、データ転送でのエラーは、パリティを用いて検出されるが、一方、ファイバチャンネルでは、現状の不均衡と巡回冗長検査(「CRC検査」)情報とによって特定される。より詳しい情報は、米国特許番号5,802,080、名称「マルチポート設計におけるCRC発生器を用いたCRC検査」および、米国特許番号、5,663,724、名称「16B/20Bエンコーダ」に記載されており、両者ともに本発明者ウエストバイ(Westby)による発明であり、ともに、本発明出願人シーゲート・テクノロジー社からの出願である。
ファイバチャンネル(「FC−AL」)は、バイト指向のDC平衡(0,4)ランレングス限定8B/10Bパーティションのブロック転送コード手順を採用した工業規格システムである。PC−ALは、106.25MHzのクロック周波数で動作する。8B/10Bエンコーダ/デコーダの一形態が、1984年12月4日に特許された米国特許第4,486,739号、発明者フランゼック(Franaszek)他による「バイト指向DC平衡(0,4)8B/10Bパーティションブロック転送コード」に記載されている。
ファイバチャンネル(FC−AL)は、それぞれがノードと呼ばれる複数装置を、互いに接続させることができる。ノードは、コンピュータシステムの装置(コンピュータ、ワークステーション、プリンタ、ディスクドライブ、スキャナ等)のいずれかであってよく、それ自身がファイバチャンネル「トポロジー」(詳細は後述)に接続できるようなインターフェースを有している。各ノードは、他のノードへのアクセスを提供するNLポート(「ノード・ループポート」)と呼ばれる少なくとも1つのポートを持っている。2つ以上のポートを接続しあう要素は、一括して「トポロジー」あるいは「ループ」と呼ばれる。各ノードは、与えられたトポロジーあるいはループ内の他の全てのノードと通信し合う。
ポートは、それらを通してデータがファイバチャンネル上を通り、他のノード(外部世界)のポートに到達することができる、ファイバチャンネルノードでのコネクションである。典型的なファイバチャンネルドライブは、ドライブのノード内に組み込まれた2つのポートを持っている。各ポートは、一方がポートに情報を取り込み、他方がポートから情報を出すための、一組のファイバを持っている。各ファイバは、シリアルデータ接続であり、本実施例では、各ファイバは、実際には、同軸ケーブル(例えば、ノードが互いに近接しあっている場合に用いられる同軸の銅線)である。また、他の実施例では、ファイバは、その経路の少なくともいくつかの部分のために用いられる光ファイバとして実装される(例えば、異なる筐体や、特に、異なる建物にあるノードのように、かなりの距離をおいてノードが分けられている場合)。各ポートに接続される一組のファイバ(一方はデータをポートに取り込み、他方はデータをポートから出す)は、「リンク」と呼ばれ、各トポロジーの一部である。リンクは、「フレーム」内に詰め込まれた情報や信号を、ノード間で送信する。各リンクは、複数のフレーム種類(例えば、初期化、データ、制御のフレーム)を扱うことができる。
各ファイバは、一方向にのみデータを送信するため、ノードは、ループに沿って、互いに接続されていて、ここでは、各ノードが送信すべきデータを持っている際には、各ノードは、ループを制御するために互いに調整して動作しなければならない。「調整して動作する」とは、ノードに対して、どのノードがループを制御する権利を持つのかを調整し決定するプロセスのことである。ファイバチャンネル調整ループは、ハブやスイッチを使わずに、複数のノードをループに接続する。ノードのポートは、調整動作を用いて、一対一のデータ送信回路を確立する。FC−ALは、分散トポロジーであり、ここでは、各ポートには、少なくとも、回路を確立するのに必要な最小限の機能が含まれている。調整ループトポロジーは、ノードポート数が2から126までのノードを接続するのに用いられる。
いくつかの実施例では、各ノードは、冗長性を与える二重ポート(それぞれが、分離したループに接続されている)を持っており、これにより、もし一方のループが故障しても、他方がループの役目を果たすことができる。二重ポートによって、2つのホスト(例えば、2つのホストコンピュータ)が、1つのドライブを共有することも可能となる。
典型的な、第1および第2世代のFC−ALドライブでは、2つのポートが、フレーム検証とフレーム生成論理を共有していた。これは、もし一方のポートがフレームを送受信しているならば、代替するポートが実質的に閉じている状態となり、(なぜならば、このポートは、同時には、フレーム検証とフレーム生成論理を使えないからである)従って、代替するポートはフレームを送出するためのホスト−バスアダプター許可を強制的に拒否することを意味している。いくつかのホスト−バスアダプターは、継続して調整動作を行い、基本ポートが閉じるまで幾度もフレームを送出することを試みなければならないものであった。また、ドライブは、一度にひとつのポートのみを使って送信できるのみであった。いくつかの場合には、所定のポートでの送出データ送信は、他方の(代替の)ポートを使っての応答送出とループ初期化のために中断せざるを得ないものであった。
(CRCの背景)
多くのデータ送信動作は、誤り検査を用い、これにより、送出するヘッダとペイロードのデータにもとづくエラーコードを検査し、受信するヘッダとペイロードのデータの健全性を検証する。このような誤り検査手順のある種のものは、巡回冗長コード(「CRC」)情報を用いる。CRC誤り検査を用いる典型的な回路には、受信するデータワードの健全性を検証するCRCチェッカと、送信されているディジタルワードのためのCRC情報を生成するCRC発生器を含んでいる。多重ポート設計では、CRCチェッカとCRC発生器は、受信ディジタルワードの検証処理と、送信中の各ディジタルワードのためのCRC情報の生成処理が各ポートで可能となるように、有効でなければならない。多くのアプリケーションでは、回路あるいはループインターフェースモジュールは、一度に、一方のみのポートを経由して送信する。例えば、マルチポートインターフェースモジュールを介してコンピュータネットワークと通信するディスクドライブサブシステムは、いかなる時にも、単一のポートのみを介してデータの準備と送信を行う。しかし、ループインターフェースモジュールは、所定の時には、複数のポートを介してデータを受信しようとしてもよい。
複数のポートを通してデータを受信するためのひとつの方法は、ひとつのポートがデータを受信中には、単純に、他のポートからのデータの受け入れを禁止することである。この方法は、CRCチェッカやフレーム検証論理のような共通資源が複数のポート間で共有できるようにするものである。データを受信する第1のポートは、他のポートを排除するために、共通資源の使用状況を把握し、他のポートでのデータの受信が禁止される。従って、到着するデータは、他のポートでは受信されず、他のポートは、データ送信機能に制限を受ける。この方法では、他のポートが、データ送信要求に応じて、「ビジー」状態を受信し、第1のポートが実行中の動作を完了して共通資源を解放するまでは、幾度もデータ送信要求の手順を繰り返すことが要請されるものであった。
(ループ初期化の背景)
複数のループネットワークでは、エラー状態が検出された後や、ループインターフェースモジュールがチャンネルに接続されたり、あるいは、ファイバチャンネルに電源が投入されたときには、ループを初期化する必要がある。初期化は、通常、ループ初期化データをループ上に送出することによって行われる。しかし、もしループに接続されたループインターフェースモジュールが、他のループに接続されたポートを介して、すでにデータを受信中であるならば、当該のループインターフェースモジュールは、ループ初期化データを受信することはできない。通常は、このような状況では、データ転送は中断され、ループ初期化が先ず行われる。他の例としては、ループ初期化が中断し、他のループ(二重ループノードのループ)がデータ受信を完了するまで、連続して初期化をリトライするモードに移行する。さらに、もし、ループインターフェースモジュールが、一度にひとつのループ上でのみデータを受信できるとすれば、ループ初期化がひとつのチャンネルで行われている間は、モジュールは他のポートを介してはデータを受信できなくなる。
ファイバリンクは、コンピュータネットワークの様々な装置間のデータ送信に関連して、注目を集めている。特に、ファイバチャンネルは、より広い帯域幅をもち、優れた接続性、モジュールの接続の容易性、長い送信距離等の点で、小型計算機システムインターフェース(「SCSI」)バスに対して、顕著な優位性を持っている。例えば、典型的なSCSIバスは、25mまでの延長距離の中で、15モジュールまでを扱うことができるが、これに対し、ファイバチャンネルは、電気的な送信路を用いた場合にはモジュール間の距離を約30mまでとし、あるいは、光送信路を用いた場合にはモジュール間の距離を10kmまでとして、126モジュールまで扱うことができる。従って、例えば、毎秒テラバイトのピークデータ送信レートを達成するためには、70本のSCSIバスが必要になるところであるが、ファイバチャンネルでは約10本を必要とするのみである。
他のチャンネルに影響を与えるデータ送信負荷を抑えるために、できるだけ速やかにチャンネルを使用状態に立ち上げる(即ち、「初期化する」)ことが重要である。
従って、マルチポートループインターフェースモジュールがデータと非データフレームを複数のチャンネル上で同時に受信できるよう、あるいは、他のチャンネルでデータ受信しながら1つのチャンネル上でフレームを送信できるように、あるいは、複数のチャンネル上で初期化および応答フレームを同時に送信できるように配慮する必要がある。また、ワンチップバッファ内に格納されたデータについては、より良い改善されたデータ検査能力が必要とされている。
オンチップメモリ中のデータ健全性のためのCRCを用いるための方法と装置を提供する。ファイバチャンネルからフレームとともに受信された巡回冗長コード情報が、オンチップバッファに格納され、後に、フレームバッファに存在する間にデータの健全性を保証するために検査される。様々な実施例では、CRC情報とともにデータフレームは、データフレームバッファに格納され、かつ/または、非データフレームはCRC情報とともに、受信非データフレームバッファに格納される。ループ初期化と応答のための専用の送信フレームバッファを含む改良された通信チャンネルシステムについては、後に詳述する。このような専用の送信フレームバッファを有することにより、他方のポートがデータフレームを送信あるいは受信中に、デュアルポートノードの一方のポートが初期化、あるいは応答フレームを送信できるものとなる。専用の受信バッファもまた、2ポートノードの各ポートに対して設けられる。フレームとともにファイバチャンネルから受信した巡回冗長コード情報は、3つのフレームバッファの1つに格納される。これらのデータとCRCは、後で、フレームバッファに存在する間にデータの健全性を保証するために検査される。ループの制御のための調整に要する時間を減らすために、プログラミングにより選択的に決定された最小量のデータ(プログラム可能なデータと称す)が送信のために利用可能である限り、ループの制御は維持(即ち、ループ接続は開状態を保持)される。
本発明は、オンチップメモリ中でのデータ健全性のためのファイバチャンネル巡回冗長コード(CRC)を用いるための通信チャンネルシステムを提供するものである。本システムは、第1のポートと第2のポートを有し、各ポートはファイバチャンネル調整ループ通信チャンネルをサポートし、各通信チャンネルは通信チャンネル上のデータ送信中に巡回冗長コードを含む、第1のチャンネルノードを含んでいる。本システムは、第1のチャンネルノードにオンチップで位置し、フレームと、受信されたフレームに対応したCRCとを通信チャンネルから受信するオンチップフレームメモリと、オンチップフレームメモリ中に存在する受信されたフレームのデータ健全性検査のための受信された対応したCRCを用いる健全性装置を含んでいる。
本システムの1つの変形は、さらに、動作中にオンチップフレームメモリと健全性装置とを結合するオフチップメモリと、受信したフレームをオンチップメモリからオフチップメモリに移動させる間に巡回冗長コードを検証する検証装置中の検証回路とを含んでいる。
このような実施例は、さらに、データがオフチップメモリからオンチップメモリに移動する際に、パリティを生成しデータに付与するパリティ生成回路を含み、ここで健全性回路は、さらに、データのフレームをオフチップメモリに移動させる間に、巡回冗長コードを検査し取り除く。この実施例の他の様態では、オンチップフレームメモリは、さらに、巡回冗長コードを含まないデータフレームをオフチップメモリから受信し、また、システムは、さらに、オフチップメモリから受信したデータフレームに基づき巡回冗長コードを生成するCRC発生器と、生成された巡回冗長コードを含むデータフレームをオフチップメモリから通信チャンネル上に送信する送信機を含んでいる。さらに他の実施例では、送信すべきデータフレームを、オフチップメモリからオンチップメモリに転送し、パリティを付与するもののCRC情報は含めずに、オンチップメモリに格納する。そのような一実施例では、通信チャンネルからオンチップメモリに転送された受信データフレームを、CRCは付与するもののパリティ情報は含めずに、オンチップメモリに格納する。
1つの変形として、本発明によりシステムを構築し、ここでは、該システムは、さらに、動作中に第1のチャンネルノードと結合する磁気ディスク記憶装置と、動作中に第2のチャンネルノードと結合するコンピュータシステムとを含むものとする(即ち、コンピュータシステムは第2のチャンネルノードを有するものとする)。第2のチャンネルノードは、動作中に第1のチャンネルノードと結合し、通信チャンネルを介して、第1のチャンネルノードと第2のチャンネルノードとの間でデータを転送する。
本発明の他の観点は、ディスクドライブを提供する。ディスクドライブは、回転ディスクと、回転中のディスクと交渉をもつトランスデューサと、第1のポートと第2のポートを有する第1のチャンネルノードを含み、各ポートはファイバチャンネル調整ループ通信チャンネルをサポートする。各通信チャンネルは、通信チャンネル上のデータ送信に巡回冗長コードを含んでいる。第1のチャンネルノードは、データと通信するためのトランスデューサと動作中に結合する。ディスクドライブは、第1のチャンネルノードにオンチップで位置し、フレームと、受信したフレームに対応したCRCを通信チャンネルから受信するオンチップフレームメモリと、オンチップメモリ中に存在する受信フレームのデータ健全性を検査するために、受信した関連CRCを用いる健全性装置を含んでいる。一実施例では、ディスクドライブは、さらに、動作中にオンチップフレームメモリと健全性装置と結合するオフチップメモリと、受信したフレームをオンチップメモリからオフチップメモリに移動させる間に巡回冗長コードを検証する検証装置中の検証回路とを含んでいる。
本発明のさらに他の観点は、通信方法を提供する。本方法は、(a)第1のチャンネルノードの第1ポートと第2ポートのそれぞれの上で、ファイバチャンネル調整ループ通信チャンネルをサポートし、(b)通信チャンネルからフレームを受信し、ここで、受信したフレームは、受信したフレーム中の他のデータに基づく巡回冗長コードを含み、(c)巡回冗長コードを含む受信フレームをフレームバッファに格納し、(d)フレームバッファとは独立したメモリに、受信フレームを格納し、(e)受信フレームを独立したメモリに転送する間に、巡回冗長コード(CRC)を検証することにより、受信フレームの正しさを検査するステップを含んでいる。
一実施例では、本方法は、(f)送信すべきフレームをオンチップフレームバッファに載せ、(g)送信すべきフレーム中のデータに基づき巡回冗長コードを生成し、(h)巡回冗長コードを含み、送信すべきフレームを通信チャンネルに送信するステップを含んでいる。本方法の一実施例では、搭載ステップ(f)は、さらに、(f)(i)送信すべきフレームのデータのパリティを生成し、(f)(ii)送信すべきフレームのデータにパリティを付与し、移動ステップ(d)は、さらに、(d)(i)受信フレームを独立したメモリに移動させる間に巡回冗長コードを取り去るステップを含むものである。本方法の他の実施例では、受信ステップ(b)は、さらに、(b)(i)受信フレームを通信チャンネルから受信している間に、巡回冗長コードを検証することにより、受信フレームの正しさを検査するステップを含むものである。
一実施例では、本方法は、さらに、(i)ファイバチャンネル調整ループ通信チャンネルを介して、動作中に第1のチャンネルノードと結合する磁気ディスク記憶装置と第2のチャンネルノードを有するコンピュータシステムとの間で、データを転送するステップを含み、ここで、第2のチャンネルノードは、通信チャンネルによって、動作中に第1のチャンネルノードと結合する。
本発明の、さらに他の観点は、第1ポートと第2ポートを有するチャンネルノードを含み、各ポートは、ファイバチャンネル調整ループ通信チャンネルをサポートし、各通信チャンネルは、通信チャンネル上のデータ送信中に巡回冗長コードを含む、通信チャンネルシステムを提供する。本システムは、また、巡回冗長コードを含むフレームを、チャンネルノードから受信するバッファと、バッファとは独立したオフチップメモリとを含む。本システムは、また、受信フレームをバッファからオフチップメモリに移動させ、受信フレームをオフチップメモリに移動する間に巡回冗長コード(CRC)を検証することにより、受信フレームの正しさを検査するための手段(本明細書全体で記述されるものとして)を含んでいる。一実施例では、本移動手段は、さらに、フレームが検査されオフチップメモリに移動される際に、CRCを取り除くための手段を含んでいる。
このように、本発明は、フレームが1つ以上の専用の非データバッファならびに専用のデータバッファに格納される際に、フレームと、フレームの受信CRCとの間の調和をとることにより、データ検査能力の顕著な向上を図るものである。他の実施例では、2つの非データバッファが設けられ、デュアルポートファイバチャンネルインターフェースノードの両方の入力ファイバ上で同時に受信するように動作する。いくつかの実施例では、1つのデータバッファが設けられ、デュアルポートファイバチャンネルインターフェースノードのいずれか一方の入力ファイバ上で受信するように動作する。いくつかの実施例では、フレームをオンチップバッファからオフチップメモリに移動させている間に、フレームの巡回冗長コードを検証する、単一のCRCチェッカーが(コスト削減のために)設けられる。いくつかの実施例では、それぞれの送信路上に(コスト削減のために)、フレームをオンチップバッファからファイバチャンネルに移動させている間に、適切な巡回冗長コードを生成する、単一のCRCチェッカーが設けられる。
以下、好適な実施様態を詳細に説明する中では、添付の図を引用し、本発明を実施する特定の実施様態を例証によって示す。なお、本発明の主旨を逸脱することがなければ、他の実施様態も用いることができ、構造的な変更も可能である。本出願で説明する発明は、ハードディスクドライブ、ZIPドライブ、フロッピーディスクドライブ、光ディスクドライブ、CDROM(「コンパクトディスク・リードオンリー・メモリ」)ドライブ、他の種類のドライブを含む全ての種類のディスクドライブ、およびRAID構成(廉価な独立したディスクドライブの冗長配列)のようなドライブシステムや他の装置に有用である。ここで、データは、ドライブと他の装置や情報処理システムとの間で通信される。いくつかの実施例では、本発明は、(複数のファイバチャンネルループを互いに接続するために用いられる)ハブやスイッチ、ワークステーション、プリンタ、他の装置、あるいはファイバチャンネル調整ループに接続される情報処理システムなどの、ノードインターフェースでの非ディスク装置として有用である。
以下は、本発明を記述する4つの相互に関係をもつセクションである。
I.ループ初期化と応答のための専用フレームバッファ、II.フレームを受信するための専用フレームバッファ、III.オンチップメモリ中のデータ健全性のためのファイバチャンネルCRCの使用、IV.調整ループのオーバーヘッドを減少させる方法および装置。セクションIVは、基本的に本発明の詳細に関するセクションであるが、他のセクションも、発明の全体の環境に関わる適切な情報を提供するものである。図1は、ファイバチャンネル・ノードインターフェースをもつディスクドライブ100のブロック図である。
図1と図2を参照すると、ファイバチャンネル・ループインターフェース回路1220は、ループ初期化と応答のための専用送信フレームバッファ73を含んでいる。(「ループ初期化」は、ファイバチャンネルループを初期化する1つ以上の特定の非データフレームの系列を送信することにより(また、これらのフレームに対する応答を監視することにより)行われる。「応答」は、他のノードからのコマンドあるいは問い合わせに応答して送られる非データフレームである。)ファイバチャンネル・調整ループ通信チャンネル1250(ループ1250もしくはファイバチャンネルループ1250と称する)は、ディスクストレージ装置100とコンピュータ102あるいは他の情報処理装置との間でデータ交換するのに用いることができる。一実施例では、ファイバチャンネルループ1250は、シリアル通信チャンネルであり、他の実施例では、ファイバチャンネルループ1250を実装するために2つ以上の平行線(あるいは、ファイバ)が用いられる。このような専用の送信フレームバッファ73によって、他のポートがデータフレームを送受信している間にも、デュアルポートノード1220の1つのポート116が初期化および応答フレームを送信できるようになる。ポート116はシリアルラインで、一方の信号線117は入力するデータ用であり、他方の信号線118は出力するデータ用であり、両方の信号線117、118は通信チャンネルループ1250に接続され、その一部を形成している。受信専用バッファ(53、53′および55)もまた、2ポートノードの各ポート116に設けられる。ダッシュを附した引用数字(例えば、53′)をもつ各ブロックは、ダッシュのつかない対応したブロック(例えば、53)と同一の機能を持つが、分離したループポートあるいは通信チャンネルに用いられることを表している。フレームとともにファイバチャンネル1250から受信された巡回冗長コード情報は、1つ以上のフレームバッファ(53、53′および55)の1つに格納され、データの健全性を保証するために、フレームバッファ(53、53′または55)に入っている間に後で検査される。ループ1250の制御は、ループ1250の制御のための調整に使われる全体時間を抑制するために、データのプログラム可能な量が送信に有効である限り、維持される(即ち、該ループ接続はオープンに保持される)。
いくつかの実施例では、ディスクドライブ100は、1つ以上のディスクプラッタ134、一ディスクプラッタ当り1つ以上の磁気読み書きトランスデューサ150とアーム駆動アセンブリ126を有する磁気記憶ヘッドディスクアセンブリ(「HDA」)114を含んでいる。トランスデューサ(あるいは、「ヘッド」)とHDAインターフェース113の間の信号は、ディスクプラッタ134との間のデータを送信する。このように、いくつかの実施例の「ディスクドライブ」(例えば、図1のディスクドライブ1256)は、HDA114とHDAインターフェース113(例えば、従来のSCSIドライブ)とを含み、1つ以上のこのような従来のディスクドライブ1256は、図1に示すように、ループあるいはファイバチャンネルトポロジーへ接続するために、外部ノードインターフェース1220に接続される。他の実施例では、「ディスクドライブ」というものは、図2のディスクドライブ100によって代表されるものであり、これは、ディスクドライブ100全体の中に、ディスクドライブ1256とともに統合されたノードインターフェース1220を含んでいる。一実施例では、データは、次々に、オフチップバッファ111から、またオフチップバッファ111に対して送信される。本発明は、本実施例で示されて、それぞれのポート(すなわち、バッファ53、53′)について受信非データフレームバッファ53(代わりに、到着非データバッファ53と称する)を含む専用オンチップバッファ119と、一実施例では、両方のポートにより同時に用いられることが可能な(他の実施例では、一度には、単一のバッファが1つのポートのみによって使われる)送信フレームバッファ73と、CRCチェッカー596(図11参照)とともに共有データフレームバッファ55を提供する。以下、詳説する一実施例では、送信フレームバッファ73の40ワードが、ポートAのために予約され、40ワードがポートBのために予約される、これにより、両方のポートが同時に初期化可能となる。この実施例は、それぞれのバッファが各ポートに対応し、同時に使用することが可能な2つの独立した40ワード送信フレームバッファを持つことに相当する。この実施例では、これらのワードのそれぞれは、36ビットワード(32データビットと4パリティビット)である。
ファイバチャンネルループ1250からデータフレームとともに受信されたCRC健全性検査情報は、データフレームバッファ55の中にデータとともに格納され、次に、データがデータフレームバッファ55の外に読み出される時に検査され、データフレームがデータフレームバッファ55の中にある時、あるいはデータフレームの送信過程の初期段階のいずれかの場所で起こり得るデータ障害のための検査を提供する。同様に、ファイバチャンネルループ1250から非データフレームとともに受信されたCRC健全性検査情報は、非データフレームバッファ53(または、53′)の中にデータとともに格納され、次に、データが非データフレームバッファ53(または、53′)の外に読み出される時に検査され、非データフレームが非データフレームバッファ53(または、53′)の中にある時、あるいはデータフレームの送信過程の初期段階のいずれかの場所で起こり得るデータ障害のための検査を提供する。マイクロプロセッサ112は、なにがしかの適当な高速プロセッサであり、ディスクドライブ100内のデータ送信、ルーティング、信号処理、誤り回復などの全体の制御を助けるために用いられる。本発明では、ファイバチャンネル・インターフェースチップ110は、以下に説明するように、改良されたフレームバッファ、エラー検査およびループ調整を提供する。
一実施例では、ループポートトランシーバブロック115(即ち、115および115′)は、そこに接続されたファイバチャンネルループ1250(図2参照)へのポートAとポートBを介したデータ送信を、直列化および並列化するポートトランシーバを含む。いくつかの実施例では、トランシーバ115は、外部トランシーバとして与えられ、他の実施例では、これらのトランシーバはブロック110内のチップ上に配される。いくつかの実施例では、右側のインターフェース(即ち、図1のトランシーバ115および115´の右側に位置するもの)は、10ビット長のパラレル入出力信号である。他の実施例では、これらは20ビット長のものもある。ブロック110、111、112、ポートAトランシーバ115とポートBトランシーバ115′とが一体となって、ファイバチャンネルノードインターフェース1220を構成する。いくつかの実施例では、ポートトランシーバ115、115′は、シングルチップ110の内部に統合されているものもある。他の実施例では、直列化および並列化する機能を含んでいるポートトランシーバ115、115′は、チップ110とは独立した回路の上に実装されているものもある。
他の実施例では、トランシーバ115は、シリアルループ1250とチップ110間の単なるインターフェースとしているものもあり、そこでは、10ビット長あるいは20ビット長さのデータへの直列化および並列化がチップ上で行われる。
図2は、コンピュータシステム1200の概要図である。有利なことに、本発明はコンピュータシステム1200に用いることに非常に適している。コンピュータシステム1200は、電子システムあるいは情報処理システムとも呼ばれ、中央処理装置(CPU)、メモリ、およびシステムバスを含んでいる。コンピュータシステムは、中央処理装置1204、ランダムアクセスメモリ(RAM)1232、および、中央処理装置1204とランダムアクセスメモリ1232とを通信上で結合するためのシステムバス1230を有するCPU情報処理システム1202を含んでいる。CPU情報処理システム1202は、ファイバチャンネルノードインターフェース1220を含んでいる。1つ以上のディスクストレージ情報処理システム100から100′のそれぞれは、1つ以上のディスクドライブ装置1256とファイバチャンネルノードインターフェース1220を含んでいる。
いくつかの実施例では、複数のディスクドライブ1256が、例えば、RAID(廉価な独立したディスクドライブの冗長配列)構成での単一のノードインターフェース1220に接続されており、装置100′は、ディスクドライブのRAID配列である。CPU情報処理システム1202は、また、内部入出力バス1210と、入出力バス1210に付属する1212、1214、1216等のいくつかの周辺装置を駆動する入出力インターフェース回路1209を含んでいる。周辺装置は、ハードディスクドライブ、光磁気ドライブ、フロッピーディスクドライブ、モニター、キーボードやその他周辺装置を含んでいる。いかなる種類のディスクドライブや他の周辺装置であっても、ここで説明するファイバチャンネル方式と装置(特に、例えば、ファイバチャンネルノードインターフェース1220の改善)を適用することができる。各装置については、AポートあるいはBポートのいずれかが、何らかの与えられたループ1250に接続して用いることができる。
システム1200の一実施例は、オプションとして、中央処理ユニット1204′(中央処理ユニット1204と同一あるいは同等のもの)を有する第2のCPU情報処理システム1202′(システム1202と同一あるいは同等のもの)、ランダムアクセスメモリ(RAM)1232′(RAM1232と同一のもの)、および中央処理装置1204′とランダムアクセスメモリ1232′とを通信上で結合するためのシステムバス1230′(システムバス1230と同一のもの)を含むものである。CPU情報処理システム1202′は、それ自身のファイバチャンネルノードインターフェース1220′(ノードインターフェース1220と同一のもの)を含むが、第2のファイバチャンネルループ1250′(ループ1250とは分離し独立しているループ)を介して1つ以上のディスクシステム100に接続している(この図解した例では、ディスクシステム100′に接続しているが、他の例では、全ての装置あるいはディスクシステム100から100′に接続している)。この構成により、2つのCPUシステム1202、1202′は、各CPUシステム1202のための分離したファイバチャンネルループを用いて、1つ以上のディスクシステム100を共有することができる。さらに他の実施例では、全ての装置100から100′および全てのCPUシステム1202から1202′は、両方のループ1250、1250′に接続されている。
一実施例では、本発明は、データフレームの故障時配信をサポートしていない。本発明の他の実施例によれば、ファイバチャンネルコントローラは、送信・受信の目的のためにコードワードのデータフレームを編成するプロトコルも組み込んでいる。このプロトコルは、米国特許番号5,260,933、名称「故障時配信をもつシリアルデータネットワークのための受け取り通知プロトコル」、発明者G.L.Rouseに開示されている。本発明の一実施例を構築する際に用いられるファイバチャンネル仕様は、下記のANSI規格を含んでいる。
(表1)
ファイバチャンネルFC-PH X3T11/プロジェクト755D/改版4.3
物理的および信号インターフェース

ファイバチャンネルFC-AL X3T11/プロジェクト960D/改版4.5
調整ループ

ファイバチャンネルFC-AL2 X3T11/プロジェクト1133D/改版6.3
調整ループ

ファイバチャンネルFCP X3T10/改版012
SCSIプロトコル X3.2
69-199X
I.ループ初期化と応答のための専用フレームバッファ
本発明の一実施例のために、両方のポートが同時に使用できるような、フレームバッファが第三世代の特定用途向け集積回路(「ASIC」)チップ(ファイバチャンネルインターフェースチップ110)に追加されている。非データフレームを受信する2つのバッファ(「受信非データフレームバッファ」とも称される、図1の53、53′)が設けられ、コマンドとFCPフレーム(ファイバチャンネルプロトコルフレーム)がノードの両方のポートに同時に受信されるようになる(また、全二重動作、即ち、ポートの一方のファイバで受信しながら、同じポートの他方のファイバで送信する動作も可能となる)。これにより、ディスクドライブ100(図2参照)が、送信の中断や完了を待つことなく、同一のポートあるいは他のポート上でデータ送信を行っている間に、新しいコマンド(あるいは、他の非データフレーム)を一方のポートで受信することが可能となる。従来の方法に比べより早くコマンドを手に入れることにより、本発明は、データ送信が進行する最中に、コマンドを区別し最適化することを可能とし、以って、システム1200の性能を向上させることができる。
送信フレームバッファ73(図13の記述参照)により、他方のポート上でデータ送信を可能としながら、応答フレームを一方のポートから送信することができる。また、この送信フレームバッファ73により、他方のポート上での送信の中断や完了を待つことなく、一方のポートからループ初期化を実行することが可能となる。
デュアルポートファイバチャンネル調整ループ設計では、到着および送出バッファを管理するために、オンチップフレームバッファが用いられる。オンチップRAMは、性能と半導体集積度の間のバランスを決める様々な方法によって構成することができる。本仕様は、ファイバチャンネルループ初期化フレームと単一フレームファイバチャンネル応答を格納し送信するのに用いられる専用フレームバッファ119と単一フレーム送信路70の使用について詳説するものである。
デュアルポート設計では、ひとつのポートがデータを受信し送信し、その送信を処理するためにASICの資源のほとんどを利用する。この種類の多重フレーム系列を扱うために、多くのカウンタと状態機械が必要とされる。それぞれのポートの設計を重複させたり、データ送信を中断することなく、本発明では、主ポートがデータを送信しながら、代替ポートがフレームを送受信できるようにするため機能を提供するために、限られた量の論理が必要となる。本発明のいくつかの実施例では、他方のポートがデータ送信している間に、一方のポートでフレームを送信できる能力を提供する単一フレーム送信路回路70とともに、専用の送信フレームバッファ73が設けられる(図13を参照)。この論理は、いずれかのポートが、データを送信できるように、あるいは送信フレームバッファ73が利用できるように、動的に構成される。
データが本来のポート(主ポート)を介して送信され、ループ初期化が代替のポート上で実行される際には、データ送信は、割り込みなしに継続することが可能となる。受信される(非データフレームである)ループ初期化フレームは、フレームがフレームバッファ(例えば、送信フレームバッファ73:図13参照)に書きこまれる前に、検証される。マイクロプロセッサ112は、送信フレームバッファ73に対して書き込み、読み込みアクセスを持ち、それが送出できるようになる前に、受信されたフレームを検定し修正できるようにする。フレームの「ヘッダ」と「ペイロード」は、フレームバッファに格納される。(フレームの「ヘッダ」には、フレームのソース識別子、系列計数、発信元識別子といった情報が含まれている。フレームの「ペイロード」は、送信されるデータの本体である。)マイクロプロセッサ112の管理下にある単一フレーム送信路70(図3参照)は、フレームを編成し、フレーム開始およびフレーム終了区切り記号を含み、フレーム巡回冗長コード(「CRC」)情報を生成する。
データフレームが第1のポートを通して送信され、ファイバチャンネルプロトコル(FCP)応答フレームの送信が必要となった際には、データ送信は、割り込みなく継続することができる。図3によれば、マイクロプロセッサ112は、応答フレームのヘッダとペイロードを送信フレームバッファ73に格納するものとなっている。単一フレーム送信回路70は、フレームを組み立て、フレーム開始およびフレーム終了区切り記号を含み、フレームCRC情報を生成する。いくつかの付加的なループ制御論理もまた、フレーム送信のためにループ1250を開放するために設けられる。
図14によれば、送信フレームバッファ73は、書き込みおよび読み出しポインタ(それぞれ、733および734)を必要とする。(時により単一フレーム送信フレームバッファあるいは送信フレームバッファ73として記しているものは、一般的には、「送信フレームバッファ」であり、他の実施例では、バッファ73は、1つ以上のポートのそれぞれのために、1つ以上の送信フレームを含んでいるが、「送信フレームバッファ」という用語は、ここでは、これら全ての実施例を含むものとして使用する。)単一フレーム送信回路70(詳細は、図13にて後に示す)は、フレーム長カウンタ71、送信フレーム化状態機械72、CRC発生器76、および送信マルチプレクサ(「mux」)74を必要とする。
(ファイバチャンネルインターフェース仕様)
図3は、ファイバチャンネル・ノードインターフェースチップ110のブロック図である。本発明のファイバチャンネル・ノードインターフェース論理110は、調整ループ論理とフレーム化論理を含むファイバチャンネルプロトコルを担っている。1つの実施例は、ファイバチャンネルプロトコル(「FCP」)規格により定義されたSCSI上位レベルプロトコルのみを用いて、クラス3SCSI実装(上述のFC−AL仕様参照)のために最適化されている。ファイバチャンネル・ノードインターフェース論理110は、デュアルポートの全二重動作時の補助と、様々なバッファ帯域幅に対応するための4つのオンチップフレームバッファ(53、53′、55、73)を含んでいる。ファイバチャンネル・ノードインターフェース論理110は、マイクロプロセッサ112へも接続して、これにより、マイクロプロセッサ112が、ファイバチャンネル・ノードインターフェース論理110を構成でき、ファイバチャンネル・ノードインターフェース論理110の現在の条件についての状態情報を読み出すことができる。
ファイバチャンネル・ノードインターフェース論理110は、2つのループポート回路20(一方は、ポートAのために、他方はポートBのためにあり、各ポートは、データ入力インターフェースとデータ出力インターフェースを持ち、ループ通信に対応している)、ループ制御回路(あるいは、フレーム送信回路40と称す)、受信路論理50、転送制御論理60、単一フレーム送信回路70、送信路マルチプレクサ(「mux」)79、データフレーム送信路論理80、およびマイクロプロセッサインターフェース90を含んでいる。これらのブロックは、受信フレーム処理、送信データフレーム生成、単一フレーム送信生成、転送制御およびプロセッサ接続などの機能をサポートしている。
マイクロプロセッサインターフェース回路90は、マイクロプロセッサ112に対し、ファイバチャンネル・ノードインターフェース論理110のレジスタとカウンタへのアクセスを提供する。(「マイクロプロセッサ」と記述するときには、この語句がなんらかの適切なプログラム可能な論理装置を含むものであることを前提とする。)インターフェースレジスタは、ファイバチャンネルインターフェースの応答に先立ち、外部マイクロプロセッサ112により初期化される。出力送信はこのインターフェースにより初期化され、受信した送信の状態はこのインターフェースを通して参照可能となる。
図3での入力信号は、ファイバチャンネル16からポートAのループポート回路20へのデータ入力を伝えるA_IN3021と、ファイバチャンネル16からポートBのループポート回路20へのデータ入力を伝えるB_IN3021とを含んでいる。オフチップバッファからのデータ(DATA FROM OFF−CHIP BUFFER)3051は、オフチップバッファ111から受信路50へのデータを伝える。オフチップバッファへのデータ(TO OFF−CHIP BUFFER)3052は、オフチップバッファ111へ受信路50からデータを伝える。バッファ状態(BUFFER STATUS)3061は、転送制御60に状態を提供する。MPUインターフェース90へのMPUアドレス(MPU ADDRESS)3091およびMPUデータ(MPU DATA)3095は、それぞれ、マイクロプロセッサ112からのアドレスとデータを提供する。MPUインターフェース90への読み込みイネーブル(READ_ENABLE)3092および書き込みイネーブル(WRITE_ENABLE)3093は、マイクロプロセッサ112からのイネーブル信号を提供する。MPU信号3076は、マイクロプロセッサ112が送信フレームバッファ73にアクセスできるようにする。A出力(A_OUT)3023は、ポートAのためのデータをループポート回路20からファイバチャンネル16に伝え、B出力(B_OUT)3024は、ポートBのためのデータをループポート回路20からファイバチャンネル16に伝える。
(ループポート回路20)
図4は、ファイバチャンネルループポート回路20のブロック図である。本発明の一実施例のファイバチャンネル設計は、周辺装置の直接接続のためのデュアルポートのファイバチャンネルインターフェースをサポートする2つの同一のループポート回路20を含んでいる。一実施例では、ファイバチャンネルループポート回路20は、受信レジスタ21、8B/10Bデコーダ論理22、ワード同期状態機械23、受信クロック喪失検出器24、同期喪失タイマー25、調整ループ論理26および8B/10Bエンコーダ27を含む。
一実施例では、各ループポート回路20は、10ビットデータインターフェースを用いる外部トランシーバ115(図1参照)に接続している。本実施例では、トランシーバ115は、パラレルインターフェース(例えば、10ビット幅あるいは20ビット幅インターフェース)との間で、シリアルデータを並列化したり、逆に、パラレルデータを直列化する。他の実施例では、これらのトランシーバ115は、チップ110に集積化されている。パラレルデータ(ファイバチャンネルからの入力)は、各トランシーバ115の受信部から受信クロックを用いて取り込まれ、パラレル8B/10Bデコーダを用いたデコーディングの前に、20ビット幅形式に変換される。次に、16ビットデータと2つのk記号(特別の、順序付けられた集合を表すために用いられる)が、調整ループ論理26に送られる前に、ワード健全性のために検査される。調整ループ論理26の出力は、送信クロックに対して、再度同期化され、受信フレーム化論理に送られるか、あるいはエンコーダ27を介してループ1250上に再送信される。一実施例では、上記の各操作の間に、エンコーダ27は、1つの8ビット文字を1つの10ビット文字に変換する。他の実施例では、上記の各操作の間に、2つ以上の8ビット文字が、対応する数の10ビット文字に変換される。(米国特許番号5,663,724、名称「16B/20Bエンコーダ」参照)調整ループ論理26は、ループ状態機械、順序付け集合デコーダと弾性挿入・削除機能を含んでいる。ループポート回路20は、ファイバチャンネル調整ループANSI規格(即ち、上記のFC−ALもしくはFC−AL2)に定義されている調整ループプロトコルを実装している。
一実施例では、ファイバチャンネルデータは、直列化され送信され、トランシーバ115によって10ビット並列データに変換される。受信レジスタ21は、トランシーバ115の受信部により発生されたクロックを用いて、10ビットデータ(A_IN3021またはB_IN3022)をトランシーバ115から取り込む。データは、8B/10Bデコーダ22に送られる前に、直ちに20ビット幅(即ち、2つの10ビット文字幅)に変換される。8B/10Bデコーダと称され、一実施例でのデコーダ22は、各操作中に、1つの10ビット文字を1つの8ビット文字に変換するが、他の実施例では、各操作中に、2つ以上の10ビット文字が対応する下図の8ビット文字に変換される。
8B/10Bデコーダ論理22は、受信レジスタ21によって取り込まれた、エンコードされたデータを入力する。2つの10ビット文字は、同時にデコードされ、2つの8ビット文字を出力する。入力文字の中で連続している不均衡を検査し、誤り状態がワード同期状態機械23と調整ループ論理26に送られる。連続している不均衡誤りに続き、次の順序付け集合に対し、負の連続不均衡を適用する。コード化規則の違反もまた検査され、コード化違反状態もワード同期状態機械23に送られる。
受信クロック喪失検出器24は、トランシーバ115からの受信クロックが停止した時を検出する。「受信クロックの喪失」条件が検出された時には、ワード同期状態機械23はリセットされ、データが調整ループ論理26のFIFOに入るのを阻止する(FIFOは、先入れ先出しメモリであり、通常、異なる速度で駆動されるバスあるいはプロセス間を接続するために用いられる)。ワード同期が再び得られるまで、最新充填ワード(「CFW」については、後に詳述する)が送信される。
ワード同期状態機械23の論理は、ワード同期について、入力ストリームを監視する。3つの順序付け集合について、適当なバイト・制御文字配列を持っていることが検出され、不要な無効文字が検出されない時に、ワード同期が達成される。「ワード同期喪失」は、FC−PH(即ち、FC−PH物理的かつ信号インターフェースX3T11/プロジェクト755D/改版4.3)規格によって定義されている。ワード同期が確立されると、データは調整ループ論理26のFIFOに入力される。
同期喪失タイマー25は、1つ以上の最大フレーム時間の間に、ワード同期喪失条件が存在した時を決定するのに用いられる(3つの有効な順序付け集合を検出するのには、フレーム時間まで要するためである)。このタイマーが時間終了すると、マイクロプロセッサ112には、同期喪失(LOSS−OF−SYNC)割込み信号4055によって割込みが入り、それが措置をとるようになる。
調整ループ論理26は、ループ弾性FIFO、ループFIFO制御論理、順序付け集合デコード論理、ループ状態機会論理、最新充填ワード選択論理、ループ出力マルチプレクサ論理ならびに種々の機能を含んでいる。ループ弾性FIFOは、(受信クロックによりクロッキングされた)入力データを送信クロックと、再度、同期をとるために必要なバッファリングを提供する。ループFIFO制御論理は、調整ループ論理26の状態を監視し、挿入または削除操作が必要かどうかを判断する。順序付け集合は、順序付け集合認識論理により、デコードされる。これらの順序付け集合は、FC−PHで定義された順序付け集合(即ち、PC−PH物理的かつ信号インターフェースX3T11/プロジェクト755D/改版4.3)を含んでおり、これは、フレーム区切り記号と調整ループ順序付け集合を含んでいる。最新充填ワード選択論理は、ループの状態と、最新充填ワード(CFW)を決定するデコードされた順序付け集合を監視する。調整されたループが有効になると、ハードウェア状態機械は、順序付け集合デコードを用いて、FC−AL規格(即ち、ファイバチャンネルFC−AL1調整ループ規格X3T11/プロジェクト960D/改版4.5、またはファイバチャンネルFC−AL2調整ループ規格X3T11/プロジェクト1133D/改版6.3)に記述されたループ関数を実行する。入力である、ループA送信制御出力(LOOP A TRANSMIT CONTROL OUTPUTS)6425とループB送信制御出力(LOOP B TRANSMIT CONTROL OUTPUTS)6427は、図6の論理から調整ループ論理26への入力を提供する。出力である、ループA状態および制御(LOOP A STATES AND CONTROL)6422およびループB状態および制御(LOOP B STATES AND CONTROL)6432は、それぞれのループの出力を制御し、ループ制御論理に状態を提供し、次に、ループ制御論理は、ループ状態機械(図6参照)への要求を生成する。出力である、ループAデータ(LOOP A DATA)4026およびループBデータ(LOOP B DATA)4027は、それぞれのローカルポート(図7のブロック51、51´)へのデータを提供する。
一実施例では、8B/10Bエンコーダ論理27は、調整ループ論理26から、16ビットデータと2k文字(下位k文字は常に0)を受け取る。一実施例では、入力は、2つの10ビット文字にエンコードされる。この2つの10ビット文字は、分離され、データをシリアルストリームに変換するトランシーバ115(図1参照)にひとつずつ出力される。他の実施例では、両方の10ビット文字(即ち、全部で20ビット)が、データをシリアルストリームに変換するトランシーバ115に平行して送られる。送信マルチプレクサ79(図3参照)は、フレーム終了(「EOF」)区切り記号がいつ送信されているかを表す状態も提供し、最新の連続している不均衡に基づき、エンコーダ27がEOFの正しい型(あるいは、「好み」)を選択できるようにする。また、ポートが(開状態にあって)送信中となっている時、あるいは、調整ループ論理26がプリミティブを送信している時には、連続している不均衡は、各非EOFプリミティブの開始で、強制的にネガティブとされる。出力信号A_OUT3023とB_OUT3024は、各トランシーバ115、115′にデータを送信する。
図5は、一実施例において、一旦、調整操作によってループの制御が確立されたならば、ループを開状態に保持するために用いられるコンパレータ論理30を示す。オフチップ有効データ(OFF−CHIP AVAILABLE DATA)5011は、予め定めた値X−FRAMES5013(一実施例において、これは、プログラム可能な値であり、その最適な値は経験的に定められる。一実施例では、この値は、1フレームと定める)と、コンパレータ5010によって比較される。データフレーム有効データ(DATA―FRAME DATA AVAILABLE)5015は、予め定めた値Y−WORDS5017(一実施例において、これは、プログラム可能な値であり、その最適な値は経験的に定められる。一実施例では、この値は、フレームの2分の一に含まれるワードの数と定める。一実施例では、約2000ワードが存在し、Y−WORDSは約1000となる)と、コンパレータ5012によって比較される。ANDゲート5014は、両方の条件が満たされたことを判断し、HOLD LOOP OPEN信号5019を出力する。
図6は、ループ制御回路40(または、フレーム送信(「XMIT」)回路40と称す)のブロック図である。ループ制御回路40(図3および図6参照)は、フレームあるいはR_RDYの送信を開始するために、(ポートAおよびポートBの調整ループ論理26中の)調整ループ状態機械への適切な要求と、送信フレーム化状態機械72(図13参照)および81(図15参照)への要求を生成するための制御論理を含んでいる。
送信データシーケンサ論理41は、マイクロプロセッサ112により送信が要求された際に呼び出され実行される論理を含んでいる。送信データシーケンサ論理41は、入力信号である送信状態入力(TRANSMIT STATUS INPUTS)6411を用いて送信を監視し、送信の各段階についての許可信号(即ち、許可信号である、送信制御出力(TRANSMIT CONTROL OUTPUTS6413))を生成する。これにより、マイクロプロセッサ112が介入することなく、送信準備およびFCP応答が生成できる。
ループポートA/B開制御状態機械42(ポートA)および42′(ポートB)は、他のループポートによりポートが開いている場合か、ループ1250がフレームを送信するために開いている場合を扱う。この論理は、ループ1250の調整と閉鎖の要求と、R_RDYと様々な種類のフレームを送信する要求とを生成するものであり、半二重あるいは全二重動作のために構成することができる。
下記の条件は、調整の要求を始める際に満たしていなければならないものである。
・マイクロプロセッサ112からのXMITポートを使ってのフレーム送信要求が許可されていること
・送信ポートが監視状態にあること
・送信長カウンタがゼロでないこと
・マイクロプロセッサ112から、送信を中断させる要求がないこと
・(非データ送信あるいはデータ書き込み送信で、送信準備が送信されていないものの、データ閾値は満足している状態にあるか、データ読み込み送信で、データ閾値とデータフレームバッファ閾値とが満足した状態にあること)
ポートが半二重モードで構成されている際には、R_RDYは、Opened状態にある時にのみ、送信される。ポートが全二重モードで構成されている際には、Opened状態あるいはOpen状態のいずれの状態でも送信される。R_RDYを送信する条件には、利用可能なバッファー間信用と最大バッファー間信用未満の最大のR_RDYとを含んでいる。(以下で図12にて説明するバッファ間信用制御論理603は、接続されたポートに対してバッファ信用を発行し、フレームが送られるようにする。この信用は、R_RDYを送ることにより発行される。
ポートが、半二重モードで構成される際には、フレームはOpen状態にある時のみ送信される。ポートが全二重モードで構成される際には、もしポートがフレームの受け取り側で全二重モードでオープンされるならば、フレームはOpen状態もしくはOpened状態で送信される。
フレームの送信要求は、以下の条件が満たされたときに生成される。
・データフレームバッファ55がデータを利用可能とすること
・バッファ間信用が利用可能であること(R_RDYが受信されること)
・非データ送信あるいはデータ読み込み送信、および送信長カウンタ(図12、ブロック609)はゼロでないこと
ループ1250を閉じさせる条件は以下を含んでいる。
・Opened状態に入る際には、利用可能なバッファ間信用はないこと
・Opened状態にある時には、際立ったR_RDYはなく、いかなるバッファ間信用も利用可能でないこと
・ポートがOpened状態にある時に、プロセッサのビージー要求が有効になっていること
・送信が完了していること
・データ読み込み送信操作とデータは利用可能でないこと
・CLSプリミティブが受信され、いかなるバッファ間信用も利用可能でないこと
・マイクロプロセッサ一時中断要求は未発行であり、論理はフレームの間にあること。
再度、図6によれば、ループポートA/B開初期化制御状態機械46(ポートA)および46′(ポートB)は、ループ1250が開初期化状態の場合を扱う。この論理46、46′は、フレームを送信する要求を生成する。各ポート(46、46′)には1つの状態機械が存在する。これらの状態機械は、マイクロプロセッサ112がフレームを要求した際に、フレームを送信する要求を生成し、EOFの送信を監視する。送信が完了すると、送信完了信号がマイクロプロセッサ112に対して生成される。
ブロック40への入力には、PORT BB_CREDIT AVAILABLE TO TRANSMIT R_RDY6017、PORT CREDIT AVAILABLE TO TRANSMIT A FRAME6020(図12参照)、LOOP A STATES AND CONTROL6422、LOOP B STATES AND CONTROL6432(図4参照)とDATA AVAILABLE6019(図12参照)が含まれている。ブロック40からの出力には、TRANSMIT CONTROL OUTPUTS6413、LOOP A TRANSMIT CONTROL OUTPUTS6425とLOOP B TRANSMIT CONTROL OUTPUTS6427が含まれている。
単一フレーム送信路に関する詳細な情報は、(単一フレーム送信路回路70)と題したセクションにて説明する。
II.フレーム受信のための専用フレームバッファ
デュアルポートファイバチャンネル調整ループ設計1200では、オンチップフレームバッファ119中のバッファは、到着および送出フレームを扱うために用いられる。受信され送信されるフレームは、たいてい、大きなオフチップ領域(即ち、オフチップバッファ111)に、低速の転送レートで格納される。オフチップバッファ111が、単一ポートに対しては高速の転送レートが利用可能となっている時でも、デュアルポート設計に対して必要とされる帯域幅は、より広いものであり、より高いコストが必要になる。FC−AL ASIC110(図1参照)のオンチップフレームバッファ119は、性能、半導体集積度、コストについて最適なバランスを得るために、様々な方法で構成することができる。本仕様は、非データ型フレームを各ポート上で同時に受信する専用のフレームバッファ53、53′(オンチップフレームバッファ119全体の要素)の使用について詳細に定めるとともに、専用の大型データフレームバッファ55(または、オンチップフレームバッファ119全体の要素)を提供するものである。
本発明によるデュアルポート設計では、フレームは、両方のポート116上で、同時に受信される。フレームは、通常、受信した後、大型のオフチップメモリ111に移されそこに格納される。各フレームは、検証されなければならず、また、フレームを外部に送信する前に、フレーム巡回冗長コード(CRC)情報も検査する必要がある。受信フレーム検証とCRC検査論理の重複を避けるために、各受信非データフレームバッファ53、53′が、各ポート116に1つづ設けられ、高速のインターフェース転送レートで同時にフレームが受信できるように、また一度に読み出され、検証した後、外部に送信できるようになる。非データフレームが他のポートで同時に受信されている間にも、データが1つのポートで受信あるいは送信できるように、大型の共有データフレームバッファ55もまた、ポート間で共有できるように設けられる。さらに、2つの独立した一方向性のファイバも各ポートに設けられるため、単一ポートが同時に送信と受信の両方を実行できる。
例えば、ポートA送信ファイバ118がデータフレームバッファ55からデータフレームを送信している最中、あるいは送信フレームバッファ73が非データフレームを送信している最中に、ポートA受信ファイバ117は、非データフレームを受信して、非データ受信バッファ53に入力することができ、同時に、非データフレームを、送信フレームバッファ73から送信している最中、あるいはデータフレームをデータフレームバッファ55から送信している最中に(ポートAが非データフレームを送信している場合)、ポートBは非データフレームを受信して非データ受信バッファ53′に入力することができる。受信フレーム検証論理およびCRCチェッカーを使うために、データフレームバッファ55または、受信フレームバッファ53、53′のいずれか一方を、選択できる。本発明の一実施例では、単一のデータフレームバッファ55が設けられ、同時には1つのポート116のために利用できるのみであり、いかなる時にも送信あるいは受信のいずれか一方に利用される。他の実施例では、このような制限を排するために、複数のデータフレームバッファ55が設けられるものもある。また、本発明の一実施例では、単一の送信フレームバッファ73が設けられ、同時に1つのポート116のために利用できるのみとしている。他の実施例では、このような制限を排し、全く同時にループ初期化操作(あるいは他の非データ応答の送信)を両方のポートで動作可能とするために、複数の送信フレームバッファ73が設けられるものもある。
到着データ送信が利用可能となっている時には、データあるいは非データフレームが、プライマリポート上で受信される。同時に、非データフレームが、代替のポート上で受信される。データフレーム(ヘッダ、ペイロード、CRCおよびフレーム区切り記号を含む)は、大型のデータフレームバッファ55に格納され、一方、非データフレーム(こちらも、ヘッダ、ペイロード、CRCおよびフレーム区切り記号を含む)は、小さい受信フレームバッファ53(又は、53′)に格納される。各ポート116には、1つの受信フレームバッファ53が設けられる。3つのフレームバッファ(53、53′、55)の1つがデータを利用できる状態になると、受信検証論理595およびCRC検査論理596を用いるために、それが選択される(図11参照)。
送出データ送信が利用可能となっている時には、データフレームがプライマリポート上で送信される。同時に、非データフレームはいずれかのポートで受信される。データのペイロードは、外部から読み込まれ、データフレームバッファ55に書き込まれ、インターフェース送信が始まるまでそこに格納される。(ヘッダ、CRC,フレーム区切り記号は、フレームバッファからフレームが読み出された後に、付加される。)同時に、非データフレームが、プライマリポートあるいは代替ポートのいずれかを通して、受信される。非データフレームは、受信フレームバッファ53又は53′に書き込まれ、そこで、フレームバッファが受信検証論理595およびCRC検査ロジック596にアクセスできるようになる迄、保持される。
データ送信に可能な限り最高の性能を提供するために、データフレームバッファ55には優先権が与えられる。非データフレームは、データ送信が中断したり完了した時に扱われる。もし、ループバッファ間信用がもはや利用可能ではないような状態で、受信フレームバッファ53の1つが満杯になった場合には、バッファ間信用が再び利用可能となるよう、受信フレームバッファ空間を開放するために、データフレームバッファ55の書き込み・読み出し操作は中断される。読み出しが短時間中断している間に新しいフレームがデータフレームRAM555に書き込まれるため、到着したデータフレームは、この間、データフレームバッファ55に格納される。書き込みが短時間中断している間にフレームがRAM555から読み出されるため、インターフェースに利用可能な送出データフレームは、この間暫定的に減少する。
図7は、ファーバーチャンネル受信路およびフレームバッファーブロック50(図3参照)のブロック図である。受信路およびフレームバッファブロック50は、受信したフレームを処理し、直接、外部に(オフチップバッファ111に向けて)、あるいは、単一フレーム送信回路70にフレームを送るか、フレームを受信する3つのフレームバッファ(受信非データフレームバッファ53、53′又はデータフレームバッファ55)のうちの1つに格納する。受信路50は、事前バッファ受信フレーム処理(ブロック51、51′)、データフレームバッファマルチプレクサ52、ポートAおよびポートB用の受信非データフレームバッファ53、53′、データフレームバッファ55、データフレームバッファ送信長カウンタ54、フレームバッファコントローラ56、共通受信路59、およびバッファインターエース58の各ブロックを含んでいる。
ブロック51への入力は、図4からのLOOP A DATA4026と、(図6への入力である)LOOP A STATES AND CONTROL6422である。ブロック51′への入力は、図4からのLOOP B DATA4027と(図6への入力である)LOOP B STATES AND CONTROL6432である。データフレームバッファ55への入力は、OFF-CHIP BUFFER DATA3051を含む。信号であるDATA XFER CONTROL7521は、データフレームバッファマルチプレクサ52を制御する。信号BUF_PAUSE7561は、フレームバッファコントローラ56に対して、中断が求められていることを通知する(通常は、バッファが送信レートの帯域幅に対応できないことが理由である)。信号LD_COUNTERS7541は、データフレームバッファ送信長カウンタ54に対して、カウンタ値をロードするように通知する。
出力信号BXFR_CNT_ZERO7542は、全ての送信データが、選択されたフレームバッファに存在することを示している。フレームバッファコントローラ56は、読み込み許可信号RD_ENABLE7532をポートA受信非データフレームバッファ53に送り、RD_ENABLE7552をデータフレームバッファ55に送り、RD_ENABLE7533をポートB受信非データフレームバッファ53′に送る。バッファコントロールインターフェース58は、選択、ストローブ、および許可信号であるオフチップバッファのためのCONTROLS FOR OFF−CHIP BUFFER7589をオフチップバッファ111のために提供する。オフチップバッファへのデータ出力DATA TO OFF−CHIP BUFFER3052は、受信データフレームと非データフレームをオフチップバッファ111に提供する。
データフレームバッファマルチプレクサ52は、データと事前バッファ受信状態機械512の出力とを、DATA XFER CTL7521ビットセットを持つポートから選択する。このマルチプレクサ52の出力は、データフレームバッファ55に対し、データと状態信号(図10の、それぞれ8511と8512)を提供し、データがデータフレームバッファRAM555(図10参照)に書き込められるようになる。
図8は、ファイバチャンネルから受信され、3つのフレームバッファ(53、53′、55)の1つに入力されるフレームを準備する、ファイバチャンネル事前バッファ受信フレーム処理路回路51のブロック図である。事前バッファ受信路ブロック51は、従前バッファ受信フレーム化状態機械512、事前バッファ受信フレーム長カウンタ515(およびそのマルチプレクサ514)、およびEOF変更論理513を含んでいる。フレームは両方のポートに同時に受信されるので、このブロック51は、ポートAとポートBの両方に複写して使える(即ち、各ポートに一回ずつ実装すればよい)。
事前バッファ受信フレーム化状態機械512は、いつフレームとR_RDYが受信されるかを決定するために、入力ストリームを監視する。SOFが検出された時に、ヘッダ、ペイロードおよびフレーム区切り記号の各ワードのための信号が生成される。この状態機械512は、ヘッダあるいはペイロードの間に受信される無効なプリミティブについてと、最大のフレーム長を違反する送信(多くは、EOFの破壊が原因となる)について検査する。
事前バッファ受信フレーム長カウンタ515は、受信されたフレームのヘッダのR_CTLフィールドに基づき、コマンドあるいは、受信フレームの行先となるフレームバッファのデータバッファ領域の最大フレーム長さ(マルチプレクサ4514により選択されたように)とともに、フレームの最初にロードされる。もし、EOFの検出前にカウンタがゼロに達するならば、長さエラーが検出される。この機能は、フレームバッファ内での割り当て空間の規定外設定を防止するため役立つ。
EOF変更論理513は、到着フレームを検査し、それがデータフレームであるかどうかを確認し、フレームバッファへの許可を生成する。EOF変更論理513は、事前バッファ受信フレーム長カウンタ515により利用される、到着フレームの経路制御フィールドを取り込む。EOF変更論理513は、また、EOFフィールドを変更し、より詳細な状態情報が、フレームバッファを経由して共通受信路59に到達するようにする。
図4からの入力信号であるLOOP A DATA4026とLOOP B DATA4027は、EOF変更論理513に結合される。LOOP A STATES AND CONTROL6422と、LOOP B STATES AND CONTROL6432(図6への入力でもある)は、ループ1250に関する状態情報を、状態機械512に提供する。MAX FRAME SIZE8517は、データフレーム、制御フレームとその他のフレームの最大フレームサイズに関する情報を、マルチプレクサ514とカウンタ515に提供する。
出力信号であるPRE−BUFFER−RECEIVE DATA8511と、PRE−BUFFER−RECEIVE STATES8512は、データと状態情報を、非データバッファ53、53(図9を参照)とデータフレームバッファ55に提供する。
図9は、ファイバチャンネル受信非データフレームバッファ回路53のブロック図である。受信非データフレームバッファ53は、受信フレームバッファ書き込み制御533、受信フレームバッファ読み出し制御534、受信フレームバッファRAM535、受信フレームバッファ状態ブロック536、および受信フレームバッファフレームカウンタ531とを含んでいる。フレームは両方のポートに同時に受信されるため、この回路53は、ポートAおよびポートBのそれぞれに1つずつ実装される。
受信フレームバッファ書き込み制御ブロック533は、アドレス(WPTR9537)、データ(WDAT9536)および受信フレームバッファRAM535中のランダムアクセスメモリ(RAM)に対する書き込み許可(WE9539)を生成する。フレームのデータが受信される時に、事前バッファ受信状態機械512からの状態許可を用いて、書き込み許可(WE9539)を展開し、RAM535に書き込む。アドレスが更新され、受信フレームバッファ状態ブロック536によって、受信フレームバッファRAM535の中にどれだけ利用可能な空間があるかを決定するために用いられるラップビット(WRAP9538)が設けられる。ループポート回路20からのデータは、16ビット幅から32ビット幅に変換され、SOFあるいはEOF区切り記号を表すフラグビットが追加される。受信フレームからのCRCは、データを保護するために、非データフレームバッファRAM535に達する。すなわち、ファイバチャンネルから受信されたCRC情報は、非データフレームバッファ53にデータとともに格納され、次に、データが非データフレームバッファ53から読み出される時(例えば、オフチップバッファ111に送信される時)に検査され、データが非データフレームバッファ53に留まっていた際になんらかのエラーがデータに生じていないかを検出するようにする(当然のことながら、データがファイバチャンネルループ1250中を移動中にデータ中に生じるエラーについても検出される)。ブロック53への入力信号には、PRE−BUFFER−RECEIVE DATA8511と、PRE−BUFFER−RECEIVE STATES8512(図8参照)と、レジスタに登録された(即ち、後の利用のためにレジスタに保管された信号としての)マイクロプロセッサ112からのMPU DATA9533と、MPU ADDRESS9534が含まれている。
受信フレームバッファ読み出し制御ブロック534は、受信フレームバッファRAM535の読み出しアドレス(RPTR9541)を発生し、RAM535からデータ(RDAT9540)を取得する。フレームバッファ制御器56(図7を参照)が、受信非データフレームバッファ53を選択すると、受信フレームバッファRAM535への読み出しが可能になる。アドレスが増分され、受信フレームバッファRAM535において利用可能な空間の大きさを判定するための受信フレームバッファ状態ブロック536によって使用される、ラップビット(WRAP9542)が与えられる。受信フレームバッファRAM535からのデータはレジスタに取得され、フレ―ムの始まりと終わりを判定するためのフラグビットがモニターされる。いつデータが有効であるかを示すため、イネーブルが共通受信路59(図7を参照)によって使用されるように与えられる。ブロック534への入力信号は、マイクロプロセッサ112からのREGISTERED READ_ENABLE9535を含む。ブロック534からの出力信号は、RECEIVE NON−DATA BUFFER DATA9543およびNON−DATA VALID READ9546を含む。
受信フレームバッファRAM535は、同期RAMを含む。そのRAMは、33ビット幅(32ビットデータワード+SOF/EOFフラグビット)および304ワード長である。受信非データフレームのSOF、ヘッダ、ペイロード、CRCおよびEOFは、オフチップバッファ111および共通受信路59へのアクセスが利用可能となるまで保持されるよう、RAM535に書き込まれる。一実施例においては、組込み自己テスト制御器が、受信フレームバッファRAM535を、特にそのメモリの物理的なレイアウトに対して展開されるデータパターンに関してテストされるようにさせる。
受信バッファ状態ブロック536は、受信フレームバッファRAM535の書き込みおよび読み出しポインタを比較し、バッファが空であるかどうかを判定し、バッファが空でない場合には、受信フレームバッファRAM535においてどの程度の数の空間フレームが利用可能であるかを判定する。このブロック536(AVAILABLE SPACE9545)の出力は、受信フレームバッファRAM535が共通受信路59へのアクセスを要求するかどうかを判定するために、フレームバッファ制御器56によって使用される。その出力は、信用が利用可能であるかどうかを判定するため、バッファ間信用制御論理603(図12を参照)によっても使用される。
受信フレームバッファフレームカウンタブロック531は、現に受信フレームバッファRAM535にあるフレーム数を計数する。カウンタ531は、フレームが受信フレームバッファRAM535に書き込まれる時に増分され、フレームが受信フレームバッファRAM535から読み出される時に減分される。その計数(COUNT OF FRAMES IN BUFFER9544)は、信用が利用可能であるかどうかを判定するために、バッファ間信用制御論理603によって使用される。一実施例においては、適切な保持時間を与えるために、RAMに入り込む(クロックを除く)すべての入力が遅延される。
図10は、ファイバチャンネルデータフレームバッファ回路55のブロック図である。データフレームバッファ55は、データフレームバッファ書き込み制御器553、データフレームバッファ読み出し制御器554、データフレームバッファRAM555、データフレームバッファ状態ブロック556、データフレームバッファフレームカウンタ551、およびデータフレーム取得ブロック552を含む。どのような時間においても1個のデータ転送のみが許可される。従って、データフレームバッファ55はポートAとポートBによって共有される。
データフレームバッファ書き込み制御ブロック553は、アドレス(WPTR9555)、データ(WDAT9554)、およびデータフレームバッファRAM555に対する書き込みイネーブル(WE9557)を発生する。書き込み動作(ディスクに書き込まれるべきデータ)に対して、データフレームが受信されると、書き込みイネーブル(WE9557)をメモリ555に与えるために、事前バッファ受信状態機械512からの状態イネーブルが使用される。読み出し動作(ディスクから読み出されるべきデータ)に対して、書き込みイネーブル(WE9557)をメモリ555に与えるために、フレームバッファ制御器56からのイネーブルが使用される。アドレスが増分され、データフレームバッファRAM555において利用可能なデータ/空間の大きさを判定するためデータフレームバッファ状態ブロック556によって使用される、ラップビット(WRAP9556)が与えられる。書き込み動作に対して、ループポート回路20からのデータが、16ビット幅から32ビット幅に変換され、SOFまたはEOF区切り記号を示すために、フラグビットが与えられる。受信されたフレームからのCRCは、データを保護するために、データフレームバッファRAM555を介して送られる。すなわち、ファイバチャンネルから受信されるCRC情報は、データと一緒にデータフレームバッファ55に記憶される。その後、データがデータフレームバッファ55内に存在する際にそれらのデータに生ずるいかなるエラーも検出されるように(もちろん、ファイバチャンネルループ1250を移動中にそれらのデータに生ずるエラーも検出され得るように)、そのCRC情報は、それらのデータがデータフレームバッファ55から読み出される際に(例えば、それらがオフチップバッファ111に転送される際に、)検査される。一実施例においては、読み出し動作に対して、オフチップバッファ111からのデータが、16ビット幅から32ビット幅に変換され、データを保護するためにパリティが発生される。ブロック553への入力信号は、PRE−BUFFER−RECEIVE DATA8511およびPRE−BUFFER−RECEIVE STATES8512(図8を参照)、並びにDATA FROM OFF−CHIP BUFFER3051(図3を参照)を含む。
従って、一実施例においては、データがファイバチャンネルループ1250(図2を参照)からデータフレームバッファRAM555を介して、その後オフチップバッファ111に送られる場合、データフレームバッファRAM555内のデータがCRC情報によって保護される。しかし、ファイバチャンネルループ1250に転送するために、それらがオフチップバッファ111からRAM555に流れた場合には、パリティによって保護される(後者の場合、データがデータフレームバッファRAM555を出た後、CRC情報がファイバチャンネルに向かっているデータに付加される)。
データフレームバッファ読み出し制御ブロック554は、データフレームバッファRAM555の読み出しアドレス(RPTR9559)を発生し、RAM555からデータ(RDAT9558)を取得する。書き込み動作(ディスクに書き込まれるべきデータ)に対して、フレームバッファ制御器56は、データフレームバッファ55を選択し、メモリへの読み出しが可能にさせられる。読み出し動作(ディスクから読み出されるべきデータ)に対して、転送フレーム状態機械81(図15を参照)は、メモリの読み出しを可能にさせる。アドレスが増分され、データフレームバッファRAM555においてどの程度のデータ/空間が利用可能であるかを判定するため、データフレームバッファ状態ブロック556によって使用される、ラップビット(WRAP9560)が与えられる。書き込み動作に対して、フレームバッファRAMからのデータがレジスタに取得され、フレ―ムの開始と終了を判定するためのフラグビットがモニターされる。データが有効である時を示すため、イネーブルが共通受信路59によって使用されるように与えられる。読み出し動作に対して、データフレームバッファRAM555からのデータがレジスタ中に取得され、パリティが検査される。ブロック554からの出力信号は、DATA FRAME BUFFER DATA9564、DATA VALID READ9563、およびDATA PARITY ERROR9562を含む。
データフレームバッファRAM555は、同期RAMを含み、一実施例においては、さらに組み込み自己テスト制御器を含む。一実施例では、RAMは、36ビット幅(32ビットデータワード+4個のSOF/EOFフラグビットまたはパリティビット)および3,232ワード長である。書き込み動作(ディスクに書き込まれるべきデータ)に対して、受信データフレームのSOF、ヘッダ、ペイロード、CRCおよびEOFは、オフチップバッファ111および共通受信路59へのアクセスが利用可能となるまで保持されるよう、RAM555に書き込まれる。読み出し動作(ディスクから読み出されるべきデータ)に対して、ループ1250が開かれ、データが転送されるまで保持されるように、ペイロードのみがRAM555に書き込まれる。一実施例においては、適切な保持時間を与えるために、RAMに入り込む(クロックを除く)すべての入力が遅延させられる。
データフレームバッファ状態ブロック556は、データフレームバッファRAM555の書き込みおよび読み出しポインタを比較し、バッファが空であるかどうかを判定し、バッファが空でない場合には、バッファ内においてどの程度の数のデータ/空間フレームが利用可能であるかを判定する。書き込み動作に対して、このブロック556(AVAILABLE SPACE9561)の出力は、データフレームバッファ55が共通受信路59へのアクセスを要求するかどうかを判定するために、フレームバッファ制御器56によって使用される。その出力は、信用が利用可能であるかどうかを判定するため、バッファ間信用制御器603(図12を参照)によっても使用される。
読み出し動作(ディスクから読み出されるべきデータ)に対して、ループ制御ブロック40は、フレームが転送され得るかどうかを判定するために、フレームバッファ内のデータ量を監視する。データフレームバッファ閾値は、ループ1250を開くよう調整するために適合される必要がある。全フレームが利用可能ではないが、処理中である(データフレームバッファ55および/またはオフチップバッファ111に格納されようとしている)場合には、ループ1250を開放状態に保持させるために、データフレームバッファ保持閾値も発生される。
データフレームバッファ・フレームカウンタブロック551は、入力信号FRAME_OUT9550を使用して、現にデータフレームバッファRAM555にあるフレーム数を計数する。カウンタ551は、フレームがRAM555に書き込まれる時に増分され、フレームがRAM555から読み出される時に減分される。その計数(信号COUNT OF FRAMES IN BUFFER9566)は、信用が利用可能であるかどうかを判定するために、バッファ間信用制御器603によって使用される。
データフレーム取得ブロック552は、イネーブル取得モードが動作可能にされるとき、(入力信号ENABLE DATA WRITE DETECT9551を用いて)受信データフレームを監視し、フレームヘッダの様々なフィールドを取得する。その後、これらの値(DATA CAPTURE OUTPUT9565)は、マイクロプロセッサ112によって読み出される。
再び図7を参照する。データフレームバッファ転送長カウンタ54の制御器は、読み出しデータがいかにしてデータフレームバッファ55内に取り込まれるかを制御する2個のカウンタを含む。(ブロック54内の)データフレームバッファ転送長カウンタは、ファイバチャンネル転送に対してどの程度多くのデータがオフチップバッファ111から取り込まれるべきかを判定するために使用される。どのフレームバッファがオフチップバッファ111にアクセスすべきかを再評価するため、制御器56を一時停止させる前に(以下の章で説明される処理)、(ブロック54内の)データフレームバッファ転送長カウンタは、ファイバチャンネル転送に対してどの程度多くのデータがオフチップバッファ111から取り込まれるべきかを判定するために使用される。
フレームバッファ制御器56は、3個のフレームバッファ(すなわち、データフレームバッファ55、ポートA受信非データフレームバッファ53、またはポートB受信非データフレームバッファ53′)のいずれが、オフチップバッファ111のリソースへのアクセスを許可されるべきかを判定する。ポートがループ初期化状態にあって、しかもそのポート受信非データフレームバッファ53(すなわち、53または53′)が空でない場合には、ループ初期化フレームは最高優先度を与えられ、その結果ループ初期化が進行できる。データ転送は、次の最高優先度を与えられ、受信非データフレームバッファ53が満たされない限り続行されることになる。
受信非データフレームバッファ53の1個が、もはやフレームの空きを持たない場合には、その特定の受信非データフレームバッファ53は、幾つかのフレームを排出させるためオフチップバッファ111へのアクセスを許されることになり、その後データ転送が再開される。
オフチップバッファ111リソースを要求する第1のフレームバッファ(55、53、または53′)は、オフチップバッファ111へのアクセスを許されることになる。両方のポートが同時にフレームを受信する場合、ポートAが最初にアクセスを許可される。一旦、フレームバッファ制御ブロック56が、オフチップバッファ111へのフレームバッファアクセスを与えると、代替ポートの受信非データフレームバッファ53が満たされ、または初期化が開始され、またはデータ転送が開始されない限り、そのフレームバッファのサービスが続行される。所定のポートについてのフレームは、そのポートへの配送順にオフチップバッファ111に転送されることになる。
ファイバチャンネルからのデータ速度がオフチップバッファ111に支持され得ない場合には、フレームバッファ制御器56とオフチップバッファ111間のデータ転送が、バッファ制御インタフェース論理58によって一時停止させられる。
図11は、共通受信路回路59のブロック図である。この回路は、フレームバッファ(55、53、または53′)の1つから出力されてくるフレームを受け取り、オフチップバッファ111用のフレームを作成する。この論理59はSOFを認識し、妥当性チェックのため受信ヘッダから情報を取得する。CRCが検査され、フレームがオフチップバッファ111の適切なバッファ領域に経路付けされる。
受信バッファ復号化ブロック591は、(入力データ信号FRM BUFFER DATA9570およびイネーブル信号VAL_READ9571から導かれる)フレーム開始およびフレーム終了区切り記号を復号化し、フレーム有効性チェックのために共通受信路59によって使用される信号を発生する。EOF区切り記号は、受信路ブロックに対して変換される、組み込まれたエラー状態(フレーム長エラーまたは連続不均衡エラー)を持つかも知れない。
受信フレーム化状態機械592は、フレーム境界を判定するため入力ストリームを監視する。SOFが検出されたとき、ヘッダの各ワードを取得させ、CRCチェッカー596、ヘッダ妥当性制御器595、および(5991、5992、および5993と一緒に)バッファ制御器598を動作可能にさせるための信号が発生される。状態機械592は、ヘッダ中に受信される無効プリミティブを検査すると共に、許容される最大フレーム長を侵害する転送を検査する。共通受信路59は、一時的に停止され得るので、フレーム取得および有効性ブロックが適切に動作可能にされるように、状態機械592の状態出力はアクティブ後非アクティブになるパルスである。
受信フレーム長カウンタ(マルチプレクサ5931およびカウンタ5932)は、受信フレームのヘッダからのR_CTLフィールドに基づいて、命令、または(信号MAX SIZE INPUTS9572からの)データフレームのいずれかの最大フレーム長を持つフレームの始めにロードされる。EOFが検出される前にカウンタが零になる場合には、フレーム長エラーが検出され、そのフレームは無効とされる。この機能は、フレーム用のオフチップバッファ111内の割付空間を越えることを防止するのに役立つ。
受信フレームヘッダ取得ブロック594は、受信ヘッダの様々なフィールドを取得するために、受信フレーム化状態機械592からの信号を使用する。取得された値は、フレーム有効性論理によって使用される。
フレームが受信されると、CRCチェッカーブロック596が、そのフレームの終了時にCRCを検査する。(CRC STATUS9596によって示された)CRCエラーが検出された場合には、そのフレームは無効とされる。CRCチェッカー596は、受信フレーム化状態機械592によって動作可能にされる。ヘッダフィールドの内容、ペイロードフィールド、およびCRCワードが処理される。
III. オンチップメモリ内のデータ健全性にファイバチャンネルCRCを使用する方法
本発明の1つの観点によれば、ファイバチャンネルフレームを一時的に記憶するフレームバッファは、フレームがファイバチャンネルインタフェースの最大データ転送速度で受信させられるようにする。フレームは、その後、より一層遅い、一層管理可能な速度で、オフチップ記憶装置に転送される。データがフレームバッファに記憶されようとする間にデータを保護するため、パリティ、CRC、または別の冗長機能など、様々な機構が任意に使用される。
一実施例においては、受信されたファイバチャンネル巡回冗長コード(「CRC」)をデータと共にフレームバッファを通過させることによって、データ健全性検査が高められる(すなわち、CRCはフレームと共にフレームバッファに記憶され、その後、フレームと共に読み出される)。RAMを拡張させる特別なパリティビットが取除かれる。(様々な実施例において、フレームバッファは、データフレームバッファ55および/または受信非データフレームバッファ53または53′である。)CRCは、データがRAMから読みだされた後に、そしてデータがオフチップ(すなわちオフチップバッファ111に)転送される前に検査される。入りデータ路上の特別なパリティビットも、インタフェースからフレームバッファの入り側に、およびフレームバッファの出側からCRCチェッカー596の入力に、除去される。
オフチップRAMへのインタフェースは、一度に1個の転送のみを取扱い、オンチップRAMより遅くかつファイバチャンネル転送速度よりも遅いので、共通受信路論理59は、非データフレームバッファ53および53′とデータフレームバッファ55との間で共有される。CRCは、フレームがオフチップに行く直前に検査される(すなわち、フレームがオンチップバッファ53、53′または55からオフチップバッファ111に転送される)ので、1個のCRCチェッカー596のみが必要である。反対に、CRCがフレームと共にフレームバッファに記憶されず、その後オフチップバッファ111への途中で検査される場合には(「CRCのオンチップフレームバッファ通過」と呼ばれる)、2個のCRCチェッカーが必要とされる(すなわち、前置バッファ路51および51′内に配置される)。
一実施例においては、データが、より一層遅いオフチップバッファ111から転送され、フレームバッファ内に一時的に記憶され、ファイバチャンネルインタフェース上の最大データ転送速度で送信されるとき、この機構は逆方向に対しても使用される。
フレームが受信されると、受信されるフレームの型を判定するため、経路付け制御復号ブロック5933によって、R_CTLフィールドが復号化される。R_CTLフィールドは、そのフレームをオフチップバッファ111の適切な領域に経路付けするために使用されると共に、どの有効性検査がそのフレームになされべきかを判定する。
ヘッダ妥当性論理595は、受信フレームヘッダの内容を解析する。フレームのR_CTLフィールドに基づいて、様々なフィールドが検査される。いずれかの有効性検査が非データフレームについて失敗した場合には、そのフレームは無効とされる。データ書き込み転送がアクティブのとき有効性検査がデータフレームについて失敗した場合には、マイクロプロセッサ112が通知を受ける。
受信フレーム状態ブロック597は、受信したフレームについての情報を集め、無効データがオフチップに行くことを妨げ、そして信号FRAME STATUS9580を発生する。フレームが有効でない場合には、(データ転送がアクティブでなければ)そのフレームは当然無視される。
命令カウンタ5992は、幾つの命令フレームがオフチップバッファ111の命令領域に含まれているかを追跡するために使用される。有効な命令が受信されると、このカウンタ5992は増分される。マイクロプロセッサ112が命令で終了したとき、そのマイクロプロセッサは、(マイクロプロセッサ112からの信号MPU DECREMENTS9574を用いて)命令カウンタ5992を減分する必要がある。ブロック5992は、割込み要求CMD RCVD IRQ9578を出力する。
バッファ間信用を与えるため、(マイクロプロセッサ112からの信号MPU INCREMENTS9575を用いて)どのくらい多くの空間がオフチップバッファ111の“他の”領域内に残っているかを探知するために、“他の”空間カウンタ5991が使用される。このカウンタ5991は、命令でもデータフレームでもない有効なフレームが受信されたとき、またはオフチップバッファ111が一杯のときに命令フレームが受信されたときに減分される。マイクロプロセッサ112がフレームで終了したとき、別のフレームに対する空間が存在することを示すために、マイクロプロセッサは“他の”空間カウンタ5991を増分する必要がある。“他の”空間カウンタ5991は、オフチップバッファ111の“他の”領域に適合するであろうフレーム数を指示(信号OTHER COUNT9576および割込み要求OTHER RCVD IRQ9577)する。
フレームが受信されると、(他のカウンタ5991を減分し、命令カウンタ5992を増分するために、信号INCR/DECR9573を発生する)受信フレームバッファ制御器598および最終4発生論理5993は、フレームを適切な領域に差し向けるために、オフチップバッファ111の論理への信号(CONTROLS FOR OFF−CHIP BUFFER7589)を発生する。
図12は、論理の送受信部の制御論理を含む、ファイバチャンネル転送制御回路60のブロック図である。転送制御回路60は、転送制御およびバッファ間信用制御603を含む。
データ利用可能/空間カウンタブロック604は、動作がデータ書き込みまたはデータ読み出しであるかどうかによって、どの程度多くのオフチップ空間またはデータが利用可能であるかの指示(DATA AVAILABLE6019)を与える。データ書き込み転送に関して、データ利用可能/空間カウンタブロック604は、BB_CREDITが与えられるために、どの程度多くの空間がオフチップバッファ111のデータ部分において(フレームの観点において)利用可能であるかを指示するために使用される。データ読み出し転送に関して、データ利用可能/空間カウンタブロック604は、どの程度多くのデータフレームがオフチップバッファ111において利用可能であるかを指示するために使用される。バッファポインタの差違が、フレーム毎のワード数を示すマイクロプロセッサロード可能な(すなわち、プログラム可能な)値と比較される。
バッファ間信用制御論理603は、フレームが送られるようにさせるため、バッファ信用(信号PORT BB_CREDIT AVAILABLE TO TRANSMIT R_RDY6017)を接続されたポートに与える。この信用は、R_RDYに送ることによって与えられる。いかなるポートに与えられる信用量も、以下によって決定される。
1)ディスクドライブ100に対して、どの程度多くの受信空間がオフチップバッファ111において利用可能であるか。
2)ディスクドライブ100に対して、どの程度多くの受信空間が受信非データフレームバッファ53およびデータフレームバッファ55において利用可能であるか。
3)信用が与えられた場合、ドライブ100が開かれているポートが利用可能な空間を占有できるフレームを潜在的に送ることができるかどうか。
バッファ間信用は、ポート毎を基準として決定される。バッファ間信用制御ブロック603は、いつ信用が利用可能であるかを示すための信号をループポートA/B開制御ブロック42および42′(図6参照)に対して発生する。その後、ループ制御ブロック40が、R_RDYの送信を制御する。
転送制御回路60の残りは、転送中に使用されるカウンタを含む。受信R_RDYカウンタ606は、入力PORT R_RDY RECEIVED6010(ポートAおよびポートBに対してそれぞれ1個)およびPORT FRAME TRANSMITTED6011(ポートAおよびポートBに対してそれぞれ1個)から、各ポート上でどの程度多くの信用のR_RDYが受信されたかを判定し、信号PORT CREDIT AVAILABLE TO TRANSMIT A FRAME6020を出力する。送信R_RDYカウンタ601は、入力PORT R_RDYTRANSMITTED6001(ポートAおよびポートBに対してそれぞれ1個)およびPORT FRAME RECEIVED6002(ポートAおよびポートBに対してそれぞれ1個)から、各ポート上でどの程度多くの信用のR_RDYが送信されたかを判定する。シーケンスカウンタ607は、データ書き込み転送時に、受信されたフレームが順に到着することを検査するために使用され、かつデータ読み出し転送時に、データフレームのヘッダ内に送信されたSEQUENCE COUNT6022を発生するために使用される。相対的オフセットカウンタ608は、データ読み出し転送時に、データフレームのヘッダ内に送信されたRELATIVE OFFSET COUNT6023を発生するために使用される。転送長カウンタ609は、どの程度多くの転送データがあるかを判定し、転送完了時に指示(TRANSFER LENGTH COUNT6024)を与える。
(単一フレーム送信路回路70)
図13は、ファイバチャンネル用の単一フレーム送信路回路70のブロック図である。本発明の一実施例は、ループ初期化および応答用の専用転送フレームバッファ73を含むファイバチャンネルループインタフェース回路を与える。そのような専用の転送フレームバッファ73を持つことによって、他のポートがデータフレームを送信または受信(すなわち、通信)している間に、デュアルポートノードの1個のポートが初期化または応答フレームを送信することができる。ループが同期喪失や別の問題を経験した場合、ループ1250は再初期化される必要があり、専用転送フレームバッファ73は、デュアルポートノードインタフェースの他のポートに接続された他のループ上で進行しているデータ転送または他の機能を中断させることなく、この機能を生じさせることができる。両方のポートは、同時に同様に初期化され得る。さらに、この専用の転送フレームバッファ73は、他方のポートが使用されている間に一方のポートから、応答、承諾、または他の非データ転送が送信させられるようにさせる。従って、マイクロプロセッサ112と協力して、単一フレーム送信路回路70は、ノードインタフェース1220に対してループ初期化および応答機能を与えるように動作する。転送フレームバッファ73は、入力MPU LOADABLE7002(マイクロプロセッサ112からのデータ)、RECEIVE PATH DATA7003およびRECEIVE PATH CONTROLS7004(受信路50からのフレーム)を受け入れる。転送フレームバッファ73は、MPU READ DATA3095を出力すると共に、ブロック74および76を介して、XMT_DPTH DATA7007(送信されるようとしているCRCを含む出力フレーム)を出力する。
単一フレーム送信路回路70は、ループ制御回路40からの要求を受け入れ、単一フレーム送信フレームバッファ73に存在するフレームを送信する。この回路70は、適切なフレーム区切り記号を発生し、フレームバッファからのペイロードおよびヘッダを読み出し、CRC発生器76で適切なCRCを発生する。この回路70は、また、最新充填ワードを送信するためのループポート回路20に信号を発生し、フレーム終端(EOF)が転送されようとする時を指示し、最新の連続している不均衡に基づいてデコーダにEOFの第2のキャラクタを発生させる。
単一フレーム送信状態機械72は、(信号SEND_FRAME7001によって)ループ制御回路40からの要求を受け入れ、フレームを送信する。フレームが送信されると、この状態機械72は、フレーム区切り記号、ヘッダ、およびペイロードを適切な時に転送させるために、送信マルチプレクサ74に送られるフレームの各部に対する選択(すなわち、選択信号)を与える。この状態機械72は、また、CRC発生器76にイネーブルを発生する。また、いつEOF信号を送信するかを判定するため、8B/10Bエンコーダ27(図4を参照)に制御が与えられる。フレームが送信された時、信号が発生され、ループ制御回路40に送ってその回路に動作を続行させる。
適切な時間に最終CRCが出力されるようにするため、ハードウエアがどのくらい長いフレームがあるか判定できるように単一フレーム送信フレーム長カウンタ71が使用される(CRCは、一度に一ワードを繰返し計算し、フレームのデータ部分が出力される際に累算される)。カウンタ71は、フレームの始めに、送信フレーム長レジスタからロードされ、フレームが送信されている間に動作可能にされる。カウンタ71は、単一フレーム送信状態機械72によって動作可能にされ、いつCRC発生器76を動作可能にするかを判定するため、状態(すなわち、状態情報)を状態機械72に与える。
単一フレーム送信出力マルチプレクサ74の出力は、EOFの前に含まれるCRC残留ワードを判定するためのCRC発生器76への入力であり、それはマルチプレクサ79を介してループポート回路20(図3)に供給される。単一フレーム送信状態機械72は、このマルチプレクサ74に対して選択を発生し、フレーム区切り記号、ヘッダ、およびペイロードが適切な時に転送させられるようにする。
単一送信充填キャラクタ発生器ブロック75は、Kキャラクタ、最新充填ワード、およびEOF区切り記号が単一フレーム送信路回路70から送信されているときを判定する。出力信号XMIT CONTROLS7010は、どのループが単一フレーム送信路回路70へのアクセスを持つかを決定する、送信路マルチプレクサ79に行く。
図14は、ファイバチャンネル送信フレームバッファ73のブロック図である。この実施例において、単一フレーム送信フレームバッファ73は、単一フレームバッファ書き込み制御733、単一フレームバッファ読み出し制御734、および単一フレーム送信フレームバッファRAM735を含む。単一フレーム送信フレームバッファ73は、受信したループ初期化フレーム、出力ループ初期化フレーム、および出力単一フレームを記憶するために使用される。一実施例においては、送信バッファRAM735の40ワードが、ポートAに格納され、40ワードがポートBに格納される。
単一フレームバッファ書き込み制御ブロック733は、単一フレームバッファRAM735に対して、アドレス(WPTR1411)、データ(WDAT1410)、および書き込みイネーブル(WE1412)を発生する。それらの入力は、DATA FROM RECEIVE PATH1401、PORT A FRAME1403、PORT B FRAME1404、登録済MPU DATA9533、および登録済MPU ADDRESS9534を含む。ループ初期化フレームが受信されたとき、妥当性に対する共通受信路59を介して移動できるまで、そのフレームが受信非データフレームバッファ(53または53′)の1つに、最初に記憶される。そのフレームをオフチップバッファ111に転送するというよりは、そのフレームは、単一フレーム送信フレームバッファ73に書き込まれる。これは、また、オフチップバッファ111が代替ポート上のデータ転送に一層専用化される。ループポートからのデータは、16ビット幅から32ビット幅に変換され、フレームの開始アドレスは、そのフレームが関係するポートに基づいて決定される。
マイクロプロセッサ112は、また、ループ初期化フレームを修正し、または出力フレームを構築するため、単一フレーム送信フレームバッファ73に書き込みできる。単一フレーム送信フレームバッファ73内のデータを保護するため、パリティが発生される。
単一フレーム送信バッファ読み出し制御ブロック734は、単一フレーム送信バッファRAM735の読み出しアドレス(RPTR1414)を発生し、RAM735からデータ(RDAT1413)を取得する。入力は、SEND FRAME1407およびXMIT STATES1408を含む。単一フレーム化状態機械72が、フレームを送信できるようにすると、単一フレーム送信バッファRAM735の読み出しが可能とされる(SINGLE_FRAME TRANSMIT BUFFER DATA1415を出力)。マイクロプロセッサ112は、このフレームバッファを読み出し、受信したループ初期化フレームにアクセスする。送信フレームバッファRAM735からのデータは、レジスタに取得され、パリティが検査される(出力PARITY ERROR1416を発生)。
単一フレーム送信バッファRAM735は、同期RAMおよび、一実施例においては、組込み自己テスト制御器を含む。RAMは、36ビット幅(32ビットデータワード+パリティの4ビット)と80位置長を持つ。フレームのヘッダおよびペイロードは、審査のためにマイクロプロセッサ112に対して、またはループ1250上での送信に対して保持されるよう、送信フレームバッファRAM735中に配置される。一実施例においては、適切な保持時間を与えるために、RAMに入力される(クロックを除く)すべての入力が遅延される。
図15は、フレームを送信するため、ループ制御論理40からの要求を受け入れるデータ送信路回路80のブロック図である。回路80は、適切なフレーム区切り記号を発生し、マイクロプロセッサにロード可能なレジスタからヘッダを構築し、CRCを発生する。また、回路80は、最新充填ワードを送信するためのループポート回路20に信号を発生し、EOFが転送されているときを示し、現在の連続している不均衡に基づいて、エンコーダにEOFの第2のキャラクタを発生させる。
データ送信フレーム化状態機械81は、フレームを送信するためループ制御論理40から要求(信号SEND FRAME8001)を受け入れる。フレームが送信されると、状態機械81はフレームの各部分に対する選択を与え、フレーム区切り記号、ヘッダ、およびペイロードが適切な時間に転送されるように、マルチプレクサ86に送信する。また、機械81は、CRC発生器87に対してイネーブルを発生する。フレームが送信されたとき、ループ制御論理40に信号が発生され、それを続行させる。
データ送信フレーム長カウンタ82は、そのハードウエアにフレームがどの程度の長さかを判定させ、CRCが適切な時間に発生されるようにするために使用される。データ送信フレーム長カウンタ82は、送信フレーム長レジスタからのフレームの始めにロードされ、フレームが送信されている間動作可能にされる。データ送信フレーム長カウンタ82は送信フレーム化状態機械81によって動作可能にされ、CRC発生器87をいつ動作可能にするかを判定するため、状態を状態機械に与える。
データフレーム送信出力マルチプレクサ86の出力は、データ送信路をマルチプレクサ79に与えるCRC発生器87の入力である。データ送信フレーム化状態機械81は、このマルチプレクサ86に対する選択を与え、フレーム区切り記号、ヘッダ、およびペイロードが適切な時間に転送されるようにさせる。この入力は、FRAME BUFFER DATA8004、HEADER REGISTERS8005、TRANSFER COUNTS8006、およびTRANSFER−READY PAYLOAD8007を含む。その出力は、STATES TO FRAME BUFFER READ CONTROL8009を含む。マルチプレクサ86内の区切り記号発生器は、フレーム送信時にどのフレーム開始(SOF)およびフレーム終了(EOF)プリミティブを使用するかを決定する。
データフレーム送信出力マルチプレクサ86の出力は、EOF前に含まれるCRC残留ワードを決定するため、CRC発生器87を介して転送される。CRC発生器87に対するイネーブルは、データ送信フレーム化状態機械81から来る。また、EOF信号をいつ送信するかを決定するための制御が、8B/10Bエンコーダ27(図4を参照)に与えられる。CRC発生器87の出力は、XMT_DPTH DATA8008(転送されるべきCRCを含んでいる出力フレーム)である。
データ転送充填キャラクタブロック85は、Kキャラクタ、最新充填ワード、およびEOF区切り記号がデータ送信路回路80から送信されているときを判定する。出力信号XMIT OUTPUTS8010は、どのループがデータ送信路回路80にアクセスしたかを判定する送信路マルチプレクサ79に行く。
送信路マルチプレクサ79(図3を参照)の出力は、ループポート回路20内のポートAおよびポートB調整ループ論理26への入力である。単一フレーム路70およびデータ路80からのデータおよび制御信号は、送信路マルチプレクサ79によって適切なポートに選択される。また、送信路マルチプレクサ79は、R_RDYプリミティブをポートに振り分ける。これによって、両方のポートに同時に送信させることができる。
IV. 調整ループのオーバヘッドを低減させるための方法および装置
ファイバチャンネル調整ループ設計1200において、ループポート116のノードインタフェース1220は、ループ1250へのアクセスに対して調整される必要がある。どのポートがループ1250の制御を得るかを判定するために、優先度システムが使用され、ポートがスターブ(starve)されないことを保証するために、“公平”構造が使用される。目標装置として、ディスクドライブ100は、通常CPU1202よりも低い優先度が与えられる。より高い優先度の装置がそれらのアクセスを完了するまで、ドライブ100は調整を得るまで待たねばならないという結果となる。不必要な調整サイクルを避けるために、ループポート116のノードインタフェース1220がループ1250の制御を得ると、そのノードインタフェースは、ループを閉じる前にできるだけ多くのフレームを送る。しかし、データがもはや利用可能ではないとき、ループポート116のノードインタフェース1220は、ループ1250を閉じ、他のポートがループ1250にアクセスすることを可能にさせる。これは、ある別の制御器技術において使用される方法である。本発明は、ポートへのデータ利用可能性に基づいて、ループ1250を閉じるかどうかの決定ルールを変更することによって、ループ性能を高めるための機構を提供する。従って、ループ全体のオーバヘッドが低減される。
ある別の制御器技術においては、フレーム終了区切り記号が送信されるとき、ポートは、他のフレームが利用可能であるかどうかを判定する。データがもはや利用可能ではない場合(例えば、全フレームが送信に対して利用可能ではない)には、ループ1250は閉じられる。その後すぐにデータは利用可能になる。従って、ポートは後で再び調整を行なう必要があり、転送を続行する前に調整を得る。これが転送の最終フレームが利用可能になる際に起こる場合、転送の完了が遅延され、次の命令が処理され得る前に遅れが生ずることになる。
本発明は、データが即座にポートに対して利用可能となる場合、ループ1250がそのポートによって開に保持されるようにさせる、制御器技術設計の機構を提供する。これにより、ループポート116のノードインタフェース1220が出力データ転送中に調整しなくてはならない回数が低減され、従って、転送をより早く完了させることができる。以下の条件の両方が成立するとき、(そのループのポートの続いている制御を正当に評価するために)ポートに対して利用可能になる十分なさらなるデータに備えて、ループ1250は開に保持される。
・少なくともXフレームが利用可能なオフチップであり、
・データの少なくともYワードが、データフレームバッファ55において利用可能である。
そのような一実施例においては、Xの値(ここで、Xは、ループ1250を開状態に保持するためにオフチップバッファ111において利用可能であることを必要とするフレーム数を表わす)およびYの値(ここで、Yは、ループ1250を開状態に保持するためにオンチップバッファにおいて利用可能であることを必要とするワード数を表わす)は、それぞれ別個に(例えば、マイクロプロセッサ112によるファームウエアコードによって)プログラム可能である。別の実施例においては、(必ずしもフレーム数として特定されない)所定のデータ量がオフチップバッファ111において利用可能であるとき、ループ1250は開状態に保持される(そのような一実施例においては、オフチップバッファ111において利用可能であることが必要な所定のデータ量は、プログラム可能である)。
別の実施例においては、(必ずしもワード数として特定されない)所定のデータ量がオンチップバッファ119において利用可能であるとき、ループ1250は開状態に保持される(そのような一実施例においては、オンチップバッファ119において利用可能であることが必要な所定のデータ量は、プログラム可能である)。一実施例においては、所定量のデータが利用可能であるが(少なくとも1個の半フレームオンチップおよび少なくとも1個のフレーム利用可能オフチップ)、フレーム全体が利用可能なオンチップであるまでフレームの転送が開始しない場合、ループ1250は開状態に保持される。
例えば、一実施例においては、オンチップデータフレームバッファ55は、少なくとも6個のデータフレームを保持するに充分なほど大きい(すなわち、2112バイトの最大フレームサイズの6フレーム)。送信されているデータは、(例えば、ディスクプラッタ134から)最初にオフチップバッファ111に転送され、その後オンチップデータフレームバッファ55に転送される。典型的には、ほぼ毎秒106メガバイトまでの速度で、データがデータフレームバッファ55から転送され、一方、一実施例においては、オフチップバッファ111からオンチップデータフレームバッファ55への転送は、より遅い速度で行われる。全フレームより少ないフレームが既にオンチップデータフレームバッファ55に転送されている場合、それらのデータが外部への転送を要求される前に、フレームの最後の部分がオンチップデータフレームバッファ55に転送される限り、ほぼ毎秒106メガバイトのファイバチャンネル全速度でフレーム転送を開始し、全フレームの転送を完了させることが可能である。
従って、本発明の一実施例によれば、少なくとも2分の1のデータフレームがオンチップデータフレームバッファ55に含まれ、かつ少なくとも1個のデータフレームがオフチップバッファ111に含まれている場合には、ループ1250は開状態に保持される。そのような一実施例においては、ループ1250の制御を保つために(“ループを開に保持する”ために)必要とされるこのデータ量は、オンチップバッファ55においてほぼ1000バイトのデータ(すなわち、2112バイトフレームの2分の1)であり、そしてオフチップバッファ111においてほぼ2000バイトのデータ(すなわち、2112バイトフレーム分)である。両者の量は、マイクロプロセッサ112によって設定されるプログラム可能な値である。一実施例においては、丁度説明したように、所定量のデータが利用可能な場合には、ループ1250は開に保持される。しかし、フレームの転送は、全フレームが利用可能なオンチップである後でのみ開始する。そのような一実施例においては、CFW(最新充填ワード)信号は、全フレームがオンチップであり、フレームの送信が開始できるまで、ループ1250上に送信される。
外部転送に利用可能なフレーム数の計数は、本発明の一実施例のオフチップバッファ111における制御器によって生成される。データが、データフレームバッファ中に転送するために利用可能であるかどうかを判定するために、ファームウエアプログラム可能な計数Xフレーム(ループを開に保つためにオフチップバッファ111において必要とされるフレーム数)が、転送に利用可能なフレーム数の計数に対して比較される。データフレームバッファは、オフチップのより遅いメモリからデータを一時的に蓄えるために使用されるオンチップRAMである。従って、データは、完全なファイバチャンネルインタフェース速度で送信され得る。ループ1250を開に保つために十分なデータがすでにデータフレームバッファにあるかどうかを判定するために、第2の比較器が、データフレームバッファ内で利用可能なデータ量を、ファームウエアプログラム可能な計数、Yワード(ループを開に保つためにオンチップバッファ55において必要とされるワード数)と比較するために使用される。XおよびYの値は、この論理が様々なオフチップランダムアクセスメモリ(“RAM”)ソリューションおよび転送速度で使用されるようにさせるため、ファームウエアプログラム可能である。
本発明の1つの目標は、ループ1250を開に保持し、データがすぐにポート116に対して利用可能であるときに余分な調整サイクルを避けることにある。これは、ループ1250上の他のポートが転送を実行することを防止するので、待ちが延長された時間(例えば、ヘッドスイッチを実行するために必要な時間)となる場合に、利用可能となるデータを待ちながらループ1250が開に保持されてはならない。
(結論)
ループ初期化と応答のための専用の送信フレームバッファ(73)を含むファイバチャンネルループ・インタフェース回路(1220)について述べた。このような専用の送信フレームバッファ(73)を有することにより、他方のポート(116)がデータフレームを送信あるいは受信中に、デュアルポートノード(1220)の一方のポート(116)が初期化、あるいは応答フレームを送信できるものとなる。専用の受信バッファ(53および55)もまた、2ポートノード(1220)の各ポート(116)に対して設けられる。フレームとともにファイバチャンネルから受信した巡回冗長コード情報は、3つのフレームバッファ(53、53′および55)の1つに格納される。これらのデータとCRCは、後で、フレームバッファ(53、53′および55)に存在する間にデータの健全性を保証するために検査される。ループの制御のための調整に要する時間を減らすために、プログラミングにより選択的に決定された最小量のデータ(プログラム可能なデータと称する)が送信のために利用可能である限り、ループ(1250)の制御は維持(即ち、ループ接続は開状態を保持)される。
本発明は、オンチップメモリ中でのデータ健全性のためのファイバチャンネル巡回冗長コード(CRC)を用いるための通信チャンネルシステム(1220)を提供するものである。本システム(1200)は、第1のポート(116)と第2のポート(116)を有し、各ポート(116)はファイバチャンネル調整ループ通信チャンネル(1250)をサポートし、各通信チャンネル(1250)は通信チャンネル(1250)上のデータ送信中に巡回冗長コードを含む、第1のチャンネルノード(1220)を含んでいる。本システム(1200)は、第1のチャンネルノード(1220)に位置し、フレームと、受信されたフレームに対応したCRCとを通信チャンネル(1250)から受信するオンチップフレームメモリ(53または55)と、オンチップフレームメモリ(53または55)中に存在する受信されたフレームのデータ健全性検査のための受信された対応したCRCを用いる健全性装置(596、553)を含んでいる。
本システムの1つの変形は、さらに、動作中にオンチップフレームメモリ(53または55)と健全性装置(596、553)とを結合するオフチップメモリ(111)と、受信したフレームをオンチップメモリ(53または55)からオフチップメモリ(111)に移動させる間に巡回冗長コードを検証する健全性装置内の検証回路(596)とを含んでいる。
このような実施例は、さらに、データがオフチップメモリ(111)からオンチップメモリ(55)に移動する際に、パリティを生成しデータに付与するパリティ生成回路(553)を含み、ここで健全性回路は、さらに、データフレームをオフチップメモリ(111)に移動させる間に、巡回冗長コードを検査し取り除く。この実施例の他の様態では、オンチップフレームメモリ(55)は、さらに、巡回冗長コードを含まないデータフレームをオフチップメモリ(111)から受信し、また、システムは、さらに、オフチップメモリ(111)から受信したデータフレームに基づき巡回冗長コードを生成するCRC発生器(87)と、生成された巡回冗長コードを含むデータフレームをオフチップメモリ(111)から通信チャンネル(1250)上に送信する送信機(トランシーバ115の一部)を含んでいる。さらに、他の実施例では、送信されるべきデータフレームを、オフチップメモリ(111)からオンチップメモリ(55)に転送し、パリティを付与するもののCRC情報は含めずに、オンチップメモリ(55)に格納する。そのような一実施例では、通信チャンネル(1250)からオンチップメモリ(55)に転送された受信データフレームを、CRCは付与するもののパリティ情報は含めずに、オンチップメモリ(55)に格納する。
1つの変形として、本発明によりシステム(1200)を構築し、ここでは、該システム(1200)は、さらに、動作中に第1のチャンネルノード(1220)と結合する磁気ディスク記憶装置(1256)と、動作中に第2のチャンネルノード(1220)と結合するコンピュータシステム(1202)とを含むものとする(即ち、コンピュータシステム(1202)は第2のチャンネルノード(1220)を有するものとする)。第2のチャンネルノード(1220)は、動作中に第1のチャンネルノード(1220)と結合し、ファイバチャンネル調整ループ通信チャンネル(1250)を介して、第1のチャンネルノード(1220)と第2のチャンネルノード(1220)との間でデータを転送する。
本発明の他の観点は、ディスクドライブ(100)を提供する。ディスクドライブ(100)は、回転ディスク(134)と、回転中のディスク(134)と交渉をもつトランスデューサ(150)と、第1のポート(116)と第2のポート(116)を有する第1のチャンネルノード(1220)を含み、各ポート(116)はファイバチャンネル調整ループ通信チャンネル(1250)をサポートする。各通信チャンネル(1250)は、通信チャンネル(1250)上のデータ送信に巡回冗長コードを含んでいる。第1のチャンネルノード(1220)は、データと通信するためのトランスデューサ(150)と動作中に結合する。ディスクドライブ(100)は、第1のチャンネルノード(1220)にオンチップで位置し、フレームと、受信したフレームに対応したCRCを通信チャンネル(1250)から受信するオンチップフレームメモリ(53または55)と、オンチップメモリ(53または55)中に存在する受信フレームのデータ健全性を検査するために、受信した関連CRCを用いる健全性装置(596,553)を含んでいる。一実施例では、ディスクドライブ(100)は、さらに、動作中にオンチップフレームメモリ(53または55)と健全性装置(596,553)と結合するオフチップメモリ(111)と、受信したフレームをオンチップメモリ(53または55)からオフチップメモリ(111)に移動させる間に巡回冗長コードを検証する健全性装置(596,553)中の検証回路(596)とを含んでいる。
本発明のさらに他の観点は、通信方法を提供する。本方法は、
(a)第1のチャンネルノード(1220)の第1ポート(116)と第2ポート(116)のそれぞれの上で、ファイバチャンネル調整ループ通信チャンネル(1250)をサポートし、
(b)通信チャンネル(1250)からフレームを受信し、ここで、受信したフレームは、受信したフレーム中の他のデータに基づく巡回冗長コードを含み、
(c)巡回冗長コードを含む受信フレームをフレームバッファ(53または55)に格納し、
(d)フレームバッファ(53または55)とは独立したメモリ(111)に、受信フレームを格納し、
(e)受信フレームを独立したメモリ(111)に転送する間に、巡回冗長コード(CRC)を検証することにより、受信フレームの正しさを検査するステップを含んでいる。
一実施例では、本方法は、
(f)送信すべきフレームをオンチップフレームバッファ(55)に載せ、
(g)送信すべきフレーム中のデータに基づき巡回冗長コードを生成し、
(h)巡回冗長コードを含み、送信すべきフレームを通信チャンネル(1250)に送信するステップを含んでいる。
本方法の一実施例では、搭載ステップ(f)は、さらに、
(f)(i)送信すべきフレームのデータのパリティを生成し、
(f)(ii)送信すべきフレームのデータにパリティを付与し、移動ステップ(d)は、さらに、
(d)(i)受信フレームを独立したメモリ(111)に移動させる間に巡回冗長コードを取り去るステップを含むものである。
本方法の他の実施例では、受信ステップ(b)は、さらに、
(b)(i)受信フレームを通信チャンネル(1250)から受信している間に、巡回冗長コードを検証することにより、受信フレームの正しさを検査するステップを含むものである。
一実施例では、本方法は、さらに、
(i)ファイバチャンネル調整ループ通信チャンネル(1250)を介して、動作中に第1のチャンネルノード(1220)と結合する磁気ディスク記憶装置(1256)と第2のチャンネルノード(1220)を有するコンピュータシステムとの間で、データを転送するステップを含み、ここで、第2のチャンネルノード(1220)は、通信チャンネル(1250)によって、動作中に第1のチャンネルノード(1220)と結合する。
本発明の、さらに他の観点は、第1ポート(116)と第2ポート(116)を有するチャンネルノード(1220)を含み、各ポート(116)は、ファイバチャンネル調整ループ通信チャンネル(1250)をサポートし、各通信チャンネル(1250)は、通信チャンネル(1250)上のデータ送信中に巡回冗長コードを含む、通信チャンネルシステム(1200)を提供する。本システムは、また、巡回冗長コードを含むフレームを、チャンネルノード(1220)から受信するバッファ(53または55)と、バッファ(53または55)とは独立したオフチップメモリ(111)とを含む。本システム(1200)は、また、受信フレームをバッファからオフチップメモリに移動させ、受信フレームをオフチップメモリに移動する間に巡回冗長コード(CRC)を検証することにより、受信フレームの正しさを検査するための手段(本明細書全体で記述されるものとして)を含んでいる。一実施例では、本移動手段は、さらに、フレームが検査されオフチップメモリに移動される際に、CRCを取り除くための手段を含んでいる。
このように、本発明は、フレームが1つ以上の専用の非データバッファ(53)および専用のデータバッファ(55)の双方または何れか一方に格納される際に、フレームと、フレームの受信CRCとの間の調和をとることにより、データ検査能力の顕著な向上を図るものである。他の実施例では、2つの非データバッファ(53)が設けられ、デュアルポートファイバチャンネルインターフェースノード(1220)の両方の入力ファイバ(117)上で同時に受信するように動作する。いくつかの実施例では、1つのデータバッファ(55)が設けられ、デュアルポートファイバチャンネルインターフェースノード(1220)のいずれか一方の入力ファイバ(117)上で受信するように動作する。いくつかの実施例では、フレームをオンチップバッファ(53または55)からオフチップメモリ(111)に移動させている間に、フレームの巡回冗長コードを検証する、単一のCRCチェッカー(596)が(コスト削減のために)設けられる。いくつかの実施例では、それぞれの送信路上に(コスト削減のために)、フレームをオンチップバッファ(73または55)からファイバチャンネル(1250)に移動させている間に、適切な巡回冗長コードを生成する、単一のCRC発生器(非データフレームに対する76およびデータフレームに対する87)が設けられる。
上述の説明は、例示であって、これに限定されるものではないことを理解されるべきである。前述の説明では、様々な実施例の構造および機能と一緒に、本発明の様々な実施例の数多くの特徴および利点が説明されたが、上述の説明を再検討することで、当業者にとって多くの他の実施例および細部にわたる変更が明らかになるであろう。従って、本発明の範囲は、特許請求の範囲と共に、そこに記載された権利範囲に等価なすべての範囲を考慮して定められるべきである。
図1は、ファイバチャンネル・ノードインターフェースをもつディスクドライブ100のブロック図である。 図2は、本発明を採用した情報処理システム1200のブロック図である。 図3は、ファイバチャンネル・ノードインターフェースチップ110のブロック図である。 図4は、ファイバチャンネル・ループポート回路20のブロック図である。 図5は、一実施例での、ループオープンを保持するために用いられるコンパレータ論理30のブロック図である。 図6は、ファイバチャンネル・ループ制御回路40のブロック図である。 図7は、ファイバチャンネル・受信路回路50のブロック図である。 図8は、ファイバチャンネル・プリバッファ受信路回路51のブロック図である。 図9は、ファイバチャンネル・受信フレーム非データバッファ回路53のブロック図である。 図10は、ファイバチャンネル・データフレームバッファ回路55のブロック図である。 図11は、ファイバチャンネル・共通受信路回路59のブロック図である。 図12は、ファイバチャンネル・転送制御回路60のブロック図である。 図13は、ファイバチャンネル・送信路回路70のブロック図である。 図14は、ファイバチャンネル・送信フレームバッファ回路73のブロック図である。 図15は、ファイバチャンネル・データ送信路回路80のブロック図である。

Claims (21)

  1. オンチップメモリにおけるデータ健全性のためにファイバチャンネル巡回冗長コード(CRC)を用いる通信チャンネルシステムであって、
    第1のポートと第2のポートを有し、各ポートは、ファイバチャンネル調整ループ通信チャンネルをサポートし、各通信チャンネルは通信チャンネル上のデータ送信の中に巡回冗長コードを含む、第1のチャンネルノードと、
    第1のチャンネルノード中のオンチップに位置し、フレームと受信したフレームに対応したCRCとを通信チャンネルから受信する、オンチップフレームメモリと、
    オンチップフレームメモリ内に存在する受信したフレームのデータ健全性検査のために、受信した対応CRCを用いる健全性装置であって、前記受信したフレームに関連するCRCに基づいて前記受信したフレームのデータ健全性をチェックし、前記受信したフレームに関連するCRCを前記受信したフレームから取り除き、前記受信したフレームに関連するCRCをオフチップメモリに格納することなく、前記受信したフレームを前記オフチップメモリに格納する、前記健全性装置と、
    前記オンチップフレームメモリと結合されたCRC生成回路であって、前記受信したフレームが前記オフチップメモリから前記オンチップフレームメモリへ移動するときに、第2のCRCを生成して前記受信したフレームに追加する、前記CRC生成回路と、
    を備え、前記システム。
  2. 請求項1記載のシステムにおいて、
    動作中にオンチップフレームメモリと健全性装置と結合するオフチップメモリと、
    受信したフレームをオンチップメモリからオフチップメモリに移動させる間に巡回冗長コードを検証する健全性装置内部の検証回路と、
    をさらに備えているシステム。
  3. 請求項2記載のシステムにおいて、
    前記健全性装置は、受信したフレームをオフチップメモリに移動させる間に巡回冗長コードを検査し取り除くものであり、
    該システムは、データがオフチップメモリからオンチップメモリに移動されるときにパリティを生成しデータに付与するパリティ生成回路をさらに含むシステム。
  4. 請求項2記載のシステムにおいて、
    巡回冗長コードを含まないデータフレームは、オフチップメモリ内に保持され、
    当該システムは、
    データフレームがデータフレームバッファに移動されたときにオフチップメモリからのデータフレームに基づいて巡回冗長コードを生成し、CRCをデータフレームとともにオンチップフレームメモリ中に収容するCRC発生器と、
    生成された巡回冗長コードを含むデータフレームを通信チャンネルに送信する送信機と、
    をさらに含むシステム。
  5. 請求項2記載のシステムにおいて、
    送信すべきデータフレームが、オフチップメモリからオンチップフレームメモリに転送され、パリティを付与するもののCRC情報は含めずにオンチップフレームメモリに格納されるシステム。
  6. 請求項5記載のシステムにおいて、
    通信チャンネルからオンチップフレームメモリに転送された受信データフレームは、CRCを付与するもののパリティ情報は含めずにオンチップフレームメモリに格納されるシステム。
  7. 請求項2記載のシステムにおいて、
    通信チャンネルからオンチップフレームメモリに転送された受信フレームは、CRCを付与するもののパリティ情報は含めずにオンチップフレームメモリに格納されるシステム。
  8. 請求項1記載のシステムにおいて、
    動作中に第1のチャンネルノードと結合する磁気ディスク記憶装置と、
    第2のチャンネルノードを有するコンピュータシステムとをさらに備え、
    第2のチャンネルノードは、ファイバチャンネル調整ループ通信チャンネルを介して第1のチャンネルノードと第2のチャンネルノードの間でデータを送信するために、動作中にファイバチャンネルループ中の第1のチャンネルノードに結合するシステム。
  9. 回転ディスクと、
    回転中のディスクと交渉をもつトランスデューサと、
    第1のポートと第2のポートとを有するチャンネルノードであって、各ポートはファイバチャンネル調整ループ通信チャンネルをサポートし、各通信チャンネルは、通信チャンネル上のデータ送信に巡回冗長コードを含み、当該チャンネルノードは、データを通信するためのトランスデューサと動作中に結合する、チャンネルノードと、
    該チャンネルノードにオンチップで位置し、フレームと、受信したフレームに対応したCRCを通信チャンネルから受信するオンチップフレームメモリと、
    オンチップメモリ中に存在する受信フレームのデータ健全性を検査するために、受信した関連CRCを用いる健全性装置であって、前記受信したフレームに関連するCRCに基づいて前記受信したフレームのデータ健全性をチェックし、前記受信したフレームに関連するCRCを前記受信したフレームから取り除き、前記受信したフレームに関連するCRCをオフチップメモリに格納することなく、前記受信したフレームを前記オフチップメモリに格納する、前記健全性装置と、
    前記オンチップフレームメモリと結合されたCRC生成回路であって、前記受信したフレームが前記オフチップメモリから前記オンチップフレームメモリへ移動するときに、第2のCRCを生成して前記受信したフレームに追加する、前記CRC生成回路と、
    を有する、ディスクドライブ。
  10. 請求項9記載のディスクドライブにおいて、
    動作中にオンチップフレームメモリと健全性装置と結合するオフチップメモリと、
    受信したフレームをオンチップメモリからオフチップメモリに移動させる間に巡回冗長コードを検証する検証装置中の検証回路とをさらに備えているディスクドライブ。
  11. (a)第1のチャンネルノードの第1ポートと第2ポートのそれぞれの上で、ファイバチャンネル調整ループ通信チャンネルをサポートするステップと、
    (b)通信チャンネルからフレームを受信するステップであって、当該受信したフレームは、受信したフレーム中の他のデータに基づく巡回冗長コードを含むステップと、
    (c)巡回冗長コードを含む受信フレームをフレームバッファに格納するステップと、
    (d)フレームバッファとは独立したメモリに受信フレームを移動するステップと、
    (e)受信フレームを独立したメモリに転送する間に巡回冗長コード(CRC)を検証することにより、受信フレームの正しさを検査するステップと、
    を備え、
    前記受信したフレームに関連するCRCに基づいて前記受信したフレームのデータ健全性をチェックし、前記受信したフレームに関連するCRCを前記受信したフレームから取り除き、前記受信したフレームに関連するCRCを前記メモリに格納することなく、前記受信したフレームを前記メモリに格納され、
    前記受信したフレームが前記メモリから前記フレームバッファへ移動するときに、第2のCRCを生成して前記受信したフレームに追加される、ことを特徴とする通信方法。
  12. 請求項11記載の方法であって、
    (f)送信すべきフレームをオンチップフレームバッファに載せるステップと、
    (g)送信すべきフレーム中のデータに基づき巡回冗長コードを生成するステップと、
    (h)巡回冗長コードを含む送信すべきフレームを通信チャンネルに送信するステップと、
    をさらに含む方法。
  13. 請求項12記載の方法であって、
    前記載せるステップ(f)は、
    (f)(i)送信すべきフレームのデータのパリティを生成するステップと、
    (f)(ii)送信すべきフレームのデータにパリティを付与するステップとをさらに含み、
    前記移動するステップ(d)は、
    (d)(i)受信フレームを独立したメモリに移動させる間に巡回冗長コードを取り去るステップをさらに含む方法。
  14. 請求項11記載の方法において、
    前記受信するステップ(b)が、(b)(i)受信フレームを通信チャンネルから受信している間に巡回冗長コードを検証することにより、受信フレームの正しさを検査するステップをさらに含む方法。
  15. 請求項11記載の方法において、
    (i)ファイバチャンネル調整ループ通信チャンネルを介して、動作中に第1のチャンネルノードと結合する磁気ディスク記憶装置と、第2のチャンネルノードを有するコンピュータシステムとの間で、データを転送するステップをさらに含み、
    該第2のチャンネルノードは、通信チャンネルによって動作中に第1のチャンネルノードと結合される方法。
  16. 第1ポートと第2ポートを有し、各ポートがファイバチャンネル調整ループ通信チャンネルをサポートし、各通信チャンネルが通信チャンネル上のデータ送信中に巡回冗長コードを含む、チャンネルノードと、
    巡回冗長コードを含むフレームをチャンネルノードから受信するバッファと、
    バッファとは独立したオフチップメモリと、
    受信フレームをバッファからオフチップメモリに移動させ、受信フレームをオフチップメモリに移動する間に巡回冗長コード(CRC)を検証することにより、受信フレームの正しさを検査するための手段であって、前記受信したフレームに関連するCRCに基づいて前記受信したフレームのデータ健全性をチェックし、前記受信したフレームに関連するCRCを前記受信したフレームから取り除き、前記受信したフレームに関連するCRCを前記オフチップメモリに格納することなく、前記受信したフレームを前記オフチップメモリに格納する、前記手段と、
    前記受信したフレームが前記オフチップメモリから前記バッファへ移動するときに、第2のCRCを生成して前記受信したフレームに追加する手段と、
    を備えた、通信チャンネルシステム。
  17. 請求項16記載のシステムにおいて、
    移動させる手段は、フレームが検査されオフチップメモリに移動されるときに、CRCを取り除くための手段をさらに含むことを特徴とするシステム。
  18. n個のポートを有する第1のシリアルの装置であって、各ポートはシリアル通信パス上のデータ送信内のデータ保護コードを搬送するシリアル通信パスをサポートする、前記第1のシリアルの装置と、
    前記第1のシリアルの装置内に配置されたオンチップメモリであって、パケットを受信し、該受信したパケットに関連するデータ保護コードを前記シリアル通信パスから受信する、前記オンチップメモリと、
    前記オンチップメモリ内の受信されたパケットのデータ健全性をチェックする、受信された関連するデータ保護コードを利用する健全性装置であって、前記受信したフレームに関連するCRCに基づいて前記受信したフレームのデータ健全性をチェックし、前記受信したフレームに関連するCRCを前記受信したフレームから取り除き、前記受信したフレームに関連するCRCをオフチップメモリに格納することなく、前記受信したフレームを前記オフチップメモリに格納する、前記健全性装置と、
    前記オンチップメモリと結合されたCRC生成回路であって、前記受信したフレームが前記オフチップメモリから前記オンチップメモリへ移動するときに、第2のCRCを生成して前記受信したフレームに追加する、前記CRC生成回路と、
    を備えたシステム。
  19. 記憶媒体と、
    n個のポートを有するシリアルの装置であって、各ポートがシリアル通信パスをサポートし、各シリアル通信パスは該シリアル通信パス上のデータ送信内のデータ保護コードを搬送し、前記シリアルの装置はデータを通信するための前記記憶媒体に動作可能なように結合されている、前記シリアルの装置と、
    前記シリアルの装置内のオンチップに配置されたオンチップメモリであって、パケットを受信し、該受信したパケットに関連するデータ保護コードを前記シリアル通信パスから受信する、前記オンチップメモリと、
    前記オンチップメモリ内の受信されたパケットのデータ健全性をチェックする、受信された関連するデータ保護コードを利用する健全性装置であって、前記受信したフレームに関連するCRCに基づいて前記受信したフレームのデータ健全性をチェックし、前記受信したフレームに関連するCRCを前記受信したフレームから取り除き、前記受信したフレームに関連するCRCをオフチップメモリに格納することなく、前記受信したフレームを前記オフチップメモリに格納する、前記健全性装置と、
    前記オンチップメモリと結合されたCRC生成回路であって、前記受信したフレームが前記オフチップメモリから前記オンチップメモリへ移動するときに、第2のCRCを生成して前記受信したフレームに追加する、前記CRC生成回路と、
    を備えたデータ記憶装置。
  20. 第1のシリアルの装置の各々のn個のポート上のシリアル通信パスをサポートすることと、
    前記シリアル通信パスからのパケットを受信し、前記受信されたパケットは、該受信されたパケット内の他のデータに基づくデータ保護コードを含むことと、
    前記データ保護コードを含む前記受信されたパケットをバッファに格納することと、
    前記受信されたパケットを前記バッファとは独立したメモリへ移動することと、
    前記受信されたパケットを前記独立したメモリへと移動させる間、前記データ保護コードを変化させることによって前記受信されたパケットの正確性をチェックすることと
    を含み、
    前記受信したフレームに関連するCRCに基づいて前記受信したフレームのデータ健全性をチェックし、前記受信したフレームに関連するCRCを前記受信したフレームから取り除き、前記受信したフレームに関連するCRCを前記メモリに格納することなく、前記受信したフレームを前記メモリに格納され、
    前記受信したフレームが前記メモリから前記バッファへ移動するときに、第2のCRCを生成して前記受信したフレームに追加される、方法。
  21. n個のポートを有するシリアルの装置であって、各ポートがシリアル通信パスをサポートし、該シリアル通信パスは、該シリアル通信パス上のデータ送信内のデータ保護コードを結合する、前記シリアルの装置と、
    データ保護コードを含むパケットを前記シリアル通信パスから受信するバッファと、
    前記バッファとは独立したオフチップメモリと、
    前記受信されたパケットを前記オフチップメモリへ移動させる間、前記受信されたパケットを前記バッファから前記オフチップメモリへ移動し、前記データ保護コードを変化させることによって前記受信されたパケットの正確性をチェックする手段であって、前記受信したフレームに関連するCRCに基づいて前記受信したフレームのデータ健全性をチェックし、前記受信したフレームに関連するCRCを前記受信したフレームから取り除き、前記受信したフレームに関連するCRCをオフチップメモリに格納することなく、前記受信したフレームを前記オフチップメモリに格納する、前記手段と、
    前記受信したフレームが前記オフチップメモリから前記バッファへ移動するときに、第2のCRCを生成して前記受信したフレームに追加する手段と、
    を備えたシステム。
JP2008333587A 1997-11-17 2008-12-26 オンチップメモリにおけるデータ健全性のためのcrcを用いる方法および装置 Expired - Fee Related JP4547452B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US6591997P 1997-11-17 1997-11-17
US6592097P 1997-11-17 1997-11-17
US6592697P 1997-11-17 1997-11-17
US6721197P 1997-12-01 1997-12-01

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2000521437A Division JP4272813B2 (ja) 1997-11-17 1998-11-17 オンチップメモリにおけるデータ健全性のためのcrcを用いる方法および装置

Publications (2)

Publication Number Publication Date
JP2009151795A JP2009151795A (ja) 2009-07-09
JP4547452B2 true JP4547452B2 (ja) 2010-09-22

Family

ID=27490525

Family Applications (4)

Application Number Title Priority Date Filing Date
JP2000521448A Pending JP2001523861A (ja) 1997-11-17 1998-11-17 フレーム受信のための方法及び専用のフレームバッファ
JP2000521449A Pending JP2001523862A (ja) 1997-11-17 1998-11-17 ループの初期化および応答のための方法及び専用のフレームバッファ
JP2000521437A Expired - Fee Related JP4272813B2 (ja) 1997-11-17 1998-11-17 オンチップメモリにおけるデータ健全性のためのcrcを用いる方法および装置
JP2008333587A Expired - Fee Related JP4547452B2 (ja) 1997-11-17 2008-12-26 オンチップメモリにおけるデータ健全性のためのcrcを用いる方法および装置

Family Applications Before (3)

Application Number Title Priority Date Filing Date
JP2000521448A Pending JP2001523861A (ja) 1997-11-17 1998-11-17 フレーム受信のための方法及び専用のフレームバッファ
JP2000521449A Pending JP2001523862A (ja) 1997-11-17 1998-11-17 ループの初期化および応答のための方法及び専用のフレームバッファ
JP2000521437A Expired - Fee Related JP4272813B2 (ja) 1997-11-17 1998-11-17 オンチップメモリにおけるデータ健全性のためのcrcを用いる方法および装置

Country Status (7)

Country Link
US (6) US6317800B1 (ja)
JP (4) JP2001523861A (ja)
KR (3) KR100650818B1 (ja)
CN (3) CN1123832C (ja)
DE (3) DE19882830T1 (ja)
GB (3) GB2342021B (ja)
WO (3) WO1999026151A1 (ja)

Families Citing this family (129)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6356560B1 (en) * 1997-05-30 2002-03-12 Adtran, Inc. Arbitration mechanism for statistically multiplexed frame relay switching system
DE69924475T2 (de) * 1999-06-09 2006-02-16 Texas Instruments Inc., Dallas Multikanal-DMA mit Datenverkehrplanung auf die Ausgänge
JP2001034427A (ja) * 1999-07-23 2001-02-09 Fujitsu Ltd デバイス制御装置及び制御方法
US6529945B1 (en) * 1999-07-26 2003-03-04 International Business Machines Corporation Data buffer management between two different systems
US6574696B1 (en) * 2000-03-07 2003-06-03 Hewlett-Packard Development Company, L.P. Methods and arrangements for providing bi-directional control between data storage drives and automation controllers
US6571367B1 (en) * 2000-03-15 2003-05-27 Emc Corporation Method and apparatus connecting between a fiber channel and a cache memory
US6622183B1 (en) * 2000-03-21 2003-09-16 Lsi Logic Corporation Data transmission buffer having frame counter feedback for re-transmitting aborted data frames
FR2812116A1 (fr) * 2000-07-19 2002-01-25 Schlumberger Systems & Service Procede et dispositif d'inscription securisee de donnees dans une memoire reinscriptible
US7007097B1 (en) * 2000-07-20 2006-02-28 Silicon Graphics, Inc. Method and system for covering multiple resourcces with a single credit in a computer system
US6483843B1 (en) * 2000-10-12 2002-11-19 Emulex Corporation Detecting and counting open ordered sets originating from an attached node port
US6999460B1 (en) * 2000-10-16 2006-02-14 Storage Technology Corporation Arbitrated loop port switching
US6647528B1 (en) * 2000-11-02 2003-11-11 Computer Network Technology Corporation Fiber channel CRC for internal error checking on a switching platform
US6868516B1 (en) 2000-12-21 2005-03-15 Emc Corporation Method for validating write data to a memory
US6779150B1 (en) * 2000-12-21 2004-08-17 Emc Corporation CRC error detection system and method
US6934904B2 (en) * 2001-04-30 2005-08-23 Sun Microsystems, Inc. Data integrity error handling in a redundant storage array
US7016969B1 (en) * 2001-05-11 2006-03-21 Cisco Technology, Inc. System using weighted fairness decisions in spatial reuse protocol forwarding block to determine allowed usage for servicing transmit and transit traffic in a node
JP2002368768A (ja) * 2001-06-05 2002-12-20 Hitachi Ltd ファイバチャネル調停ループ対応の電子装置及びファイバチャネル調停ループの障害検出方法
US6850410B2 (en) * 2001-06-29 2005-02-01 Emc Corporation Advanced technology attachment disk drive module with fibre channel system characteristics
US7065661B2 (en) * 2002-12-16 2006-06-20 Emc Corporation Using request and grant signals to read revision information from an adapter board that interfaces a disk drive
JP3523616B2 (ja) * 2001-07-24 2004-04-26 松下電器産業株式会社 バス最適化方法及び通信ノード
US7215680B2 (en) * 2001-07-26 2007-05-08 Nishan Systems, Inc. Method and apparatus for scheduling packet flow on a fibre channel arbitrated loop
US20030135577A1 (en) * 2001-12-19 2003-07-17 Weber Bret S. Dual porting serial ATA disk drives for fault tolerant applications
US7433948B2 (en) 2002-01-23 2008-10-07 Cisco Technology, Inc. Methods and apparatus for implementing virtualization of storage within a storage area network
US7391723B2 (en) * 2002-04-22 2008-06-24 Computer Network Technology Corporation Frame-level fibre channel CRC on switching platform
US7808924B2 (en) 2002-05-24 2010-10-05 Cisco Technology, Inc. Apparatus and method for preventing disruption of fibre channel fabrics caused by ReConfigure Fabric (RCF) messages
US7630300B2 (en) * 2002-07-02 2009-12-08 Emulex Design & Manufacturing Corporation Methods and apparatus for trunking in fibre channel arbitrated loop systems
US7397788B2 (en) * 2002-07-02 2008-07-08 Emulex Design & Manufacturing Corporation Methods and apparatus for device zoning in fibre channel arbitrated loop systems
US7660316B2 (en) * 2002-07-02 2010-02-09 Emulex Design & Manufacturing Corporation Methods and apparatus for device access fairness in fibre channel arbitrated loop systems
US7664018B2 (en) 2002-07-02 2010-02-16 Emulex Design & Manufacturing Corporation Methods and apparatus for switching fibre channel arbitrated loop devices
US7171525B1 (en) * 2002-07-31 2007-01-30 Silicon Image, Inc. Method and system for arbitrating priority bids sent over serial links to a multi-port storage device
KR100457046B1 (ko) * 2002-08-07 2004-11-10 삼성전자주식회사 반도체 장치의 제조에서 콘택 형성 방법
DE60327329D1 (de) * 2002-09-10 2009-06-04 Exagrid Systems Inc Primär- und ferndatensicherung mit knoten-failover
US7397768B1 (en) 2002-09-11 2008-07-08 Qlogic, Corporation Zone management in a multi-module fibre channel switch
US7220908B2 (en) * 2002-09-12 2007-05-22 Yamaha Corporation Waveform processing apparatus with versatile data bus
US6961786B2 (en) * 2002-09-25 2005-11-01 Lsi Logic Corporation Fiber loop linking/detecting
US20040068591A1 (en) * 2002-10-03 2004-04-08 Workman Michael Lee Systems and methods of multiple access paths to single ported storage devices
US20040123027A1 (en) * 2002-10-03 2004-06-24 Workman Michael Lee Systems and methods of multiple access paths to single ported storage devices
US7327680B1 (en) * 2002-11-05 2008-02-05 Cisco Technology, Inc. Methods and apparatus for network congestion control
US6829658B2 (en) 2002-12-16 2004-12-07 Emc Corporation Compatible signal-to-pin connector assignments for usage with fibre channel and advanced technology attachment disk drives
US7194673B2 (en) * 2002-12-20 2007-03-20 Emc Corporation Detecting intermittent losses of synchronization in a fibre channel loop
US7782784B2 (en) * 2003-01-10 2010-08-24 Cisco Technology, Inc. Port analyzer adapter
US7899048B1 (en) 2003-01-15 2011-03-01 Cisco Technology, Inc. Method and apparatus for remotely monitoring network traffic through a generic network
US7516272B2 (en) 2003-03-28 2009-04-07 Emc Corporation Midplane-independent implementations of data storage system enclosures
US6961784B1 (en) * 2003-04-17 2005-11-01 Qlogic Corporation Method and system for processing non-data frames in host bus adapters
US7646767B2 (en) 2003-07-21 2010-01-12 Qlogic, Corporation Method and system for programmable data dependant network routing
JP4432388B2 (ja) 2003-08-12 2010-03-17 株式会社日立製作所 入出力制御装置
US7234101B1 (en) 2003-08-27 2007-06-19 Qlogic, Corporation Method and system for providing data integrity in storage systems
US7474666B2 (en) 2003-09-03 2009-01-06 Cisco Technology, Inc. Switch port analyzers
US8165136B1 (en) 2003-09-03 2012-04-24 Cisco Technology, Inc. Virtual port based SPAN
US7134070B2 (en) * 2003-09-08 2006-11-07 Intel Corporation Checksum determination
US7573870B2 (en) * 2003-09-25 2009-08-11 Lsi Logic Corporation Transmit prioritizer context prioritization scheme
US7353448B1 (en) * 2003-10-21 2008-04-01 Marvell Semiconductor Israel Ltd. Methods, architectures, circuits and systems for transmission error determination
US7219263B1 (en) 2003-10-29 2007-05-15 Qlogic, Corporation Method and system for minimizing memory corruption
US20050114498A1 (en) * 2003-11-06 2005-05-26 International Business Machines Corporation Method and apparatus for managing data transfer in a data processing system
US7219325B1 (en) * 2003-11-21 2007-05-15 Xilinx, Inc. Exploiting unused configuration memory cells
JP4426261B2 (ja) * 2003-11-25 2010-03-03 株式会社日立製作所 チャネルアダプタ及びディスクアレイ装置
US7934023B2 (en) 2003-12-01 2011-04-26 Cisco Technology, Inc. Apparatus and method for performing fast fibre channel write operations over relatively high latency networks
US7236361B2 (en) * 2003-12-22 2007-06-26 Emc Corporation Fan assembly for installing and removing fans individually and collectively
US7145776B2 (en) * 2003-12-22 2006-12-05 Emc Corporation Midplane-less data storage enclosure
US7231581B2 (en) * 2003-12-31 2007-06-12 Intel Corporation Communicating using a partial block in a frame
US7986630B1 (en) * 2004-02-09 2011-07-26 Lsi Corporation High performance architecture for fiber channel targets and target bridges
US20050187979A1 (en) * 2004-02-09 2005-08-25 Microsoft Corporation System and method for message-level connection management
US7434150B1 (en) 2004-03-03 2008-10-07 Marvell Israel (M.I.S.L.) Ltd. Methods, circuits, architectures, software and systems for determining a data transmission error and/or checking or confirming such error determinations
US7360142B1 (en) 2004-03-03 2008-04-15 Marvell Semiconductor Israel Ltd. Methods, architectures, circuits, software and systems for CRC determination
US7930377B2 (en) 2004-04-23 2011-04-19 Qlogic, Corporation Method and system for using boot servers in networks
US7669190B2 (en) 2004-05-18 2010-02-23 Qlogic, Corporation Method and system for efficiently recording processor events in host bus adapters
US9201599B2 (en) * 2004-07-19 2015-12-01 Marvell International Ltd. System and method for transmitting data in storage controllers
US20060015659A1 (en) * 2004-07-19 2006-01-19 Krantz Leon A System and method for transferring data using storage controllers
US7719970B1 (en) * 2004-08-20 2010-05-18 Altera Corporation Serial communications system with optional data path and control plane features
US7577772B2 (en) 2004-09-08 2009-08-18 Qlogic, Corporation Method and system for optimizing DMA channel selection
US20060064531A1 (en) * 2004-09-23 2006-03-23 Alston Jerald K Method and system for optimizing data transfer in networks
US7676611B2 (en) 2004-10-01 2010-03-09 Qlogic, Corporation Method and system for processing out of orders frames
US7398335B2 (en) * 2004-11-22 2008-07-08 Qlogic, Corporation Method and system for DMA optimization in host bus adapters
US7164425B2 (en) * 2004-12-21 2007-01-16 Qlogic Corporation Method and system for high speed network application
US7392437B2 (en) 2005-01-20 2008-06-24 Qlogic, Corporation Method and system for testing host bus adapters
US7231480B2 (en) * 2005-04-06 2007-06-12 Qlogic, Corporation Method and system for receiver detection in PCI-Express devices
US7281077B2 (en) * 2005-04-06 2007-10-09 Qlogic, Corporation Elastic buffer module for PCI express devices
US7562284B2 (en) * 2005-08-26 2009-07-14 International Business Machines Corporation Apparatus, system, and method for mandatory end to end integrity checking in a storage system
KR100690274B1 (ko) * 2005-09-12 2007-03-09 삼성전자주식회사 다중 채널 직렬 통신을 위한 순환 중복 검사 장치 및 이를구비한 통신 시스템
US7660926B2 (en) * 2005-11-16 2010-02-09 Sun Microsystems, Inc. Apparatus and method for a core for implementing a communications port
US7694204B2 (en) * 2006-03-09 2010-04-06 Silicon Image, Inc. Error detection in physical interfaces for point-to-point communications between integrated circuits
US7461195B1 (en) 2006-03-17 2008-12-02 Qlogic, Corporation Method and system for dynamically adjusting data transfer rates in PCI-express devices
US7933735B2 (en) * 2007-01-31 2011-04-26 Denso Corporation Semiconductor integrated circuit
KR100902051B1 (ko) * 2007-07-12 2009-06-15 주식회사 하이닉스반도체 오류 검사 코드 생성장치 및 방법
US7751350B1 (en) * 2007-08-03 2010-07-06 William George Pabst Full duplex network radio bridge with low latency and high throughput
US7975027B2 (en) * 2007-08-06 2011-07-05 International Business Machines Corporation Credit depletion notification for transmitting frames between a port pair
US7787375B2 (en) * 2007-08-06 2010-08-31 International Business Machines Corporation Performing a recovery action in response to a credit depletion notification
US8111610B2 (en) * 2008-01-25 2012-02-07 Emulex Design & Manufacturing Corporation Flagging of port conditions in high speed networks
US8566688B2 (en) * 2009-09-01 2013-10-22 Ensequence, Inc. Method of certifying multiple versions of an application
KR101069725B1 (ko) * 2009-12-24 2011-10-04 주식회사 하이닉스반도체 반도체 메모리 장치와 이를 위한 고장번지 제어 회로 및 방법
JP5651962B2 (ja) * 2010-02-03 2015-01-14 富士通株式会社 Raid装置、異常デバイス検出装置および異常デバイス検出方法
JP5678171B2 (ja) 2010-04-12 2015-02-25 クゥアルコム・インコーポレイテッドQualcomm Incorporated ネットワークにおける低オーバーヘッド通信のためのチャネル推定
JP4922442B2 (ja) 2010-07-29 2012-04-25 株式会社東芝 バッファ管理装置、同装置を備えた記憶装置、及びバッファ管理方法
US8504893B1 (en) * 2010-09-30 2013-08-06 Micron Technology, Inc. Error detection or correction of a portion of a codeword in a memory device
GB2484717B (en) * 2010-10-21 2018-06-13 Advanced Risc Mach Ltd Security provision for a subject image displayed in a non-secure domain
CN102468915B (zh) * 2010-11-16 2014-07-02 北京中电华大电子设计有限责任公司 一种串口802.11n无线网卡芯片发送通路实现方法
CN102158400B (zh) * 2011-03-03 2013-12-04 北京航空航天大学 天基路由交换系统的通信接口及天基路由交换系统
CN102999458A (zh) * 2011-09-09 2013-03-27 中国航天科工集团第三研究院第八三五七研究所 高速智能串口芯片
CN102567276B (zh) * 2011-12-19 2014-03-12 华为技术有限公司 基于多通道的数据传输方法、接收节点及跨节点互联系统
JP5937485B2 (ja) * 2012-10-24 2016-06-22 富士通フロンテック株式会社 送信装置
US9395924B2 (en) * 2013-01-22 2016-07-19 Seagate Technology Llc Management of and region selection for writes to non-volatile memory
US9569618B2 (en) * 2013-08-28 2017-02-14 Korea University Research And Business Foundation Server and method for attesting application in smart device using random executable code
CN103593261B (zh) * 2013-10-17 2015-09-23 北京控制工程研究所 一种中断服务程序中通信故障的快速恢复方法
US9467389B2 (en) 2014-04-28 2016-10-11 International Business Machines Corporation Handling large frames in a virtualized fibre channel over ethernet (FCoE) data forwarder
US10061734B2 (en) 2015-05-20 2018-08-28 International Business Machines Corporation Adjustment of buffer credits and other parameters in a startup phase of communications between a plurality of channels and a control unit
US9864716B2 (en) 2015-05-20 2018-01-09 International Business Machines Corporation Receiving buffer credits by a plurality of channels of one or more host computational devices for transmitting data to a control unit
US9892065B2 (en) * 2015-05-20 2018-02-13 International Business Machines Corporation Adjustments of buffer credits for optimizing the number of retry operations and transfer ready operations
CN106500739B (zh) * 2016-11-18 2019-01-25 威科达(东莞)智能控制有限公司 一种与绝对值编码器通信的方法
CN108572883B (zh) * 2017-04-19 2021-06-18 北京金山云网络技术有限公司 一种数据正确性校验方法及装置
EP3404546B1 (en) * 2017-05-16 2019-09-11 Melexis Technologies NV Device for supervising and initializing ports
CN107229858B (zh) * 2017-05-19 2020-04-03 郑州云海信息技术有限公司 一种支持crc8校验的PECI总线主从机验证系统及验证方法
US11360934B1 (en) 2017-09-15 2022-06-14 Groq, Inc. Tensor streaming processor architecture
US11243880B1 (en) 2017-09-15 2022-02-08 Groq, Inc. Processor architecture
US11868804B1 (en) 2019-11-18 2024-01-09 Groq, Inc. Processor instruction dispatch configuration
US11114138B2 (en) 2017-09-15 2021-09-07 Groq, Inc. Data structures with multiple read ports
US11170307B1 (en) 2017-09-21 2021-11-09 Groq, Inc. Predictive model compiler for generating a statically scheduled binary with known resource constraints
CN107977284A (zh) * 2017-11-30 2018-05-01 苏州麦迪斯顿医疗科技股份有限公司 一种数据处理方法、装置、服务器和介质
JP7192244B2 (ja) 2018-05-15 2022-12-20 株式会社デンソー 中継装置
US11537687B2 (en) 2018-11-19 2022-12-27 Groq, Inc. Spatial locality transform of matrices
US11115147B2 (en) * 2019-01-09 2021-09-07 Groq, Inc. Multichip fault management
CN110518978B (zh) * 2019-07-23 2022-12-27 中国航空无线电电子研究所 基于光纤链路的混合数据传输组件
CN113037428B (zh) * 2019-12-09 2022-01-25 大唐移动通信设备有限公司 一种对数据流程的处理方法及装置
CN111966627B (zh) * 2020-08-13 2023-06-30 北京中航通用科技有限公司 用于串行总线的8b/9b编解码方法
TWI778644B (zh) * 2021-05-31 2022-09-21 新唐科技股份有限公司 系統單晶片和其資料燒入方法
CN114578299A (zh) * 2021-06-10 2022-06-03 中国人民解放军63698部队 一种无线远程控制信标设备产生射频信号的方法及系统
US11855655B2 (en) * 2021-09-28 2023-12-26 Texas Instruments Incorporated Serial communications module with CRC
US12045121B2 (en) 2021-11-12 2024-07-23 Samsung Electronics Co., Ltd. Security IC and operating method thereof
CN114117980B (zh) * 2022-01-25 2022-06-07 飞腾信息技术有限公司 芯片设计方法、芯片设计模块、电子设备和介质
US20230236756A1 (en) * 2022-01-25 2023-07-27 Infineon Technologies Ag Buffer management in an ethernet switch

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05244160A (ja) * 1992-02-28 1993-09-21 Toshiba Corp フレーム削除機能を持つブリッジ装置
JPH0897803A (ja) * 1994-09-26 1996-04-12 Nec Eng Ltd データ伝送方式
JPH0955718A (ja) * 1995-08-17 1997-02-25 Nec Corp データ通信装置
JPH09149034A (ja) * 1995-11-20 1997-06-06 Nec Eng Ltd Atmセルの生成方法及び通信制御装置
JPH09149067A (ja) * 1995-11-21 1997-06-06 Hitachi Cable Ltd スイッチングハブ
JPH09186712A (ja) * 1995-12-29 1997-07-15 Nec Corp スイッチングハブ装置
JPH09238163A (ja) * 1995-09-29 1997-09-09 Hewlett Packard Co <Hp> バッファメモリ管理装置

Family Cites Families (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4486739A (en) 1982-06-30 1984-12-04 International Business Machines Corporation Byte oriented DC balanced (0,4) 8B/10B partitioned block transmission code
US4654654A (en) * 1983-02-07 1987-03-31 At&T Bell Laboratories Data network acknowledgement arrangement
GB8606217D0 (en) * 1986-03-13 1986-04-16 Univ Strathclyde Local area network priority control system
US4933785A (en) 1988-03-01 1990-06-12 Prairietek Corporation Disk drive apparatus using dynamic loading/unloading
US5168568A (en) 1989-02-06 1992-12-01 Compaq Computer Corporation Delaying arbitration of bus access in digital computers
US5187780A (en) * 1989-04-07 1993-02-16 Digital Equipment Corporation Dual-path computer interconnect system with zone manager for packet memory
US5170466A (en) * 1989-10-10 1992-12-08 Unisys Corporation Storage/retrieval system for document
US5235482A (en) 1989-11-09 1993-08-10 Rodime Plc Magnetic disk drive incorporating a mechanically damped base
US5034837A (en) 1989-11-09 1991-07-23 Rodime Plc Magnetic disk drive incorporating a magnetic actuator lock and a very small form factor
US5418716A (en) 1990-07-26 1995-05-23 Nec Corporation System for recognizing sentence patterns and a system for recognizing sentence patterns and grammatical cases
US5172538A (en) 1991-09-05 1992-12-22 Luger Linda S Stirrup pad
JP2624064B2 (ja) 1991-11-29 1997-06-25 日本電気株式会社 ロードアンロード機構
JPH05166322A (ja) 1991-12-16 1993-07-02 Nec Ibaraki Ltd 磁気ヘッドのロードアンロード機構
US5260933A (en) 1992-05-15 1993-11-09 International Business Machines Corporation Acknowledgement protocol for serial data network with out-of-order delivery
US5772597A (en) 1992-09-14 1998-06-30 Sextant Medical Corporation Surgical tool end effector
US5341260A (en) 1992-12-04 1994-08-23 Seagate Technology, Inc. Reduced torque unloading ramp system for a hard disk drive
WO1994018634A1 (en) 1993-02-01 1994-08-18 Lsc, Inc. Archiving file system for data servers in a distributed network environment
US5617425A (en) * 1993-05-26 1997-04-01 Seagate Technology, Inc. Disc array having array supporting controllers and interface
JP3264465B2 (ja) 1993-06-30 2002-03-11 株式会社日立製作所 記憶システム
JPH0728746A (ja) * 1993-07-14 1995-01-31 Fuji Xerox Co Ltd データ転送装置
JPH0863920A (ja) 1993-08-24 1996-03-08 Sony Corp ロード・アンロード装置及びその駆動制御回路
US5668809A (en) * 1993-10-20 1997-09-16 Lsi Logic Corporation Single chip network hub with dynamic window filter
US5448566A (en) 1993-11-15 1995-09-05 International Business Machines Corporation Method and apparatus for facilitating communication in a multilayer communication architecture via a dynamic communication channel
GB9401092D0 (en) * 1994-01-21 1994-03-16 Newbridge Networks Corp A network management system
FR2719552B1 (fr) * 1994-05-04 1996-07-26 Eurocopter France Aube de redresseur pour dispositif anti-couple à rotor et stator redresseur carénés d'hélicoptère.
US5455723A (en) 1994-06-02 1995-10-03 International Business Machines Corporation Method and apparatus for ramp load and unload
JPH0844649A (ja) * 1994-07-26 1996-02-16 Hitachi Ltd データ処理装置
US5828522A (en) 1994-09-13 1998-10-27 International Business Machines Corporation Velocity control of head load/unload mechanism in a disk drive using dither
US5535035A (en) * 1994-09-15 1996-07-09 International Business Machines Corporation Optical fiber ring communications system and communications method
WO1996008766A1 (en) 1994-09-16 1996-03-21 Philips Electronics N.V. Microcontroller having a page address mode
US5619647A (en) 1994-09-30 1997-04-08 Tandem Computers, Incorporated System for multiplexing prioritized virtual channels onto physical channels where higher priority virtual will pre-empt a lower priority virtual or a lower priority will wait
US5638518A (en) 1994-10-24 1997-06-10 Lsi Logic Corporation Node loop core for implementing transmission protocol in fibre channel
US5598541A (en) * 1994-10-24 1997-01-28 Lsi Logic Corporation Node loop port communication interface super core for fibre channel
US5617541A (en) * 1994-12-21 1997-04-01 International Computer Science Institute System for packetizing data encoded corresponding to priority levels where reconstructed data corresponds to fractionalized priority level and received fractionalized packets
US5619497A (en) 1994-12-22 1997-04-08 Emc Corporation Method and apparatus for reordering frames
US5590006A (en) 1994-12-23 1996-12-31 International Business Machines Corporation One-sided, single platter hard disk with center parking features
US5812564A (en) 1995-05-08 1998-09-22 Western Digital Corporation Disk drive with embedded finite field processor for error correction
US5831795A (en) 1995-05-10 1998-11-03 Iomega Corporation Head loading mechanism for a disk drive
US5694615A (en) * 1995-06-26 1997-12-02 Hewlett Packard Company Storage system having storage units interconnected to form multiple loops to provide simultaneous access from multiple hosts
US5815662A (en) 1995-08-15 1998-09-29 Ong; Lance Predictive memory caching for media-on-demand systems
US5768623A (en) 1995-09-19 1998-06-16 International Business Machines Corporation System and method for sharing multiple storage arrays by dedicating adapters as primary controller and secondary controller for arrays reside in different host computers
EP0799473B1 (en) 1995-10-10 2002-01-09 Koninklijke Philips Electronics N.V. Information storage unit with electromagnetic lifting device
US5778426A (en) 1995-10-23 1998-07-07 Symbios, Inc. Methods and structure to maintain a two level cache in a RAID controller and thereby selecting a preferred posting method
US5864448A (en) 1995-10-24 1999-01-26 International Business Machines Corporation Slider and suspension retention and retraction system for high capacity disk drive
US5822782A (en) 1995-10-27 1998-10-13 Symbios, Inc. Methods and structure to maintain raid configuration information on disks of the array
US5805920A (en) 1995-11-13 1998-09-08 Tandem Computers Incorporated Direct bulk data transfers
US5758081A (en) 1995-12-08 1998-05-26 Aytac; Haluk M. Computing and communications transmitting, receiving system, with a push button interface, that is continously on, that pairs up with a personal computer and carries out mainly communications related routine tasks
US5781801A (en) 1995-12-20 1998-07-14 Emc Corporation Method and apparatus for receive buffer management in multi-sender communication systems
US5809328A (en) 1995-12-21 1998-09-15 Unisys Corp. Apparatus for fibre channel transmission having interface logic, buffer memory, multiplexor/control device, fibre channel controller, gigabit link module, microprocessor, and bus control device
US5768530A (en) 1995-12-28 1998-06-16 Emc Corporation High speed integrated circuit interface for fibre channel communications
US5790773A (en) 1995-12-29 1998-08-04 Symbios, Inc. Method and apparatus for generating snapshot copies for data backup in a raid subsystem
US5787242A (en) 1995-12-29 1998-07-28 Symbios Logic Inc. Method and apparatus for treatment of deferred write data for a dead raid device
US6115767A (en) * 1996-03-04 2000-09-05 Matsushita Electric Industrial Co., Ltd. Apparatus and method of partially transferring data through bus and bus master control device
US5819111A (en) 1996-03-15 1998-10-06 Adobe Systems, Inc. System for managing transfer of data by delaying flow controlling of data through the interface controller until the run length encoded data transfer is complete
US5802080A (en) * 1996-03-28 1998-09-01 Seagate Technology, Inc. CRC checking using a CRC generator in a multi-port design
US5663724A (en) 1996-03-28 1997-09-02 Seagate Technology, Inc. 16B/20B encoder
US5761705A (en) 1996-04-04 1998-06-02 Symbios, Inc. Methods and structure for maintaining cache consistency in a RAID controller having redundant caches
US5761534A (en) 1996-05-20 1998-06-02 Cray Research, Inc. System for arbitrating packetized data from the network to the peripheral resources and prioritizing the dispatching of packets onto the network
US5805788A (en) 1996-05-20 1998-09-08 Cray Research, Inc. Raid-5 parity generation and data reconstruction
US5787450A (en) 1996-05-29 1998-07-28 International Business Machines Corporation Apparatus and method for constructing a non-linear data object from a common gateway interface
US5764931A (en) 1996-05-31 1998-06-09 Sun Microsystems, Inc. Method and apparatus for passing bus mastership between processors using predefined bus mastership states
US5822143A (en) 1996-06-11 1998-10-13 Western Digital Corporation Decision feedback equalization implementation of partial-response signaling in a magnetic recording channel
US5790792A (en) 1996-09-04 1998-08-04 Radiant Systems, Inc. Method and apparatus for transmitting multimedia data from and application logic server to interactive multimedia workstations
JP2868080B2 (ja) 1996-09-12 1999-03-10 三菱電機株式会社 通信監視制御装置及び通信監視制御方法
US5812754A (en) 1996-09-18 1998-09-22 Silicon Graphics, Inc. Raid system with fibre channel arbitrated loop
US5889949A (en) * 1996-10-11 1999-03-30 C-Cube Microsystems Processing system with memory arbitrating between memory access requests in a set top box
US5930483A (en) * 1996-12-09 1999-07-27 International Business Machines Corporation Method and apparatus for communications control on a small computer system interface
US5917828A (en) * 1997-01-03 1999-06-29 Ncr Corporation ATM reassembly controller and method
US5978379A (en) * 1997-01-23 1999-11-02 Gadzoox Networks, Inc. Fiber channel learning bridge, learning half bridge, and protocol
US6172990B1 (en) * 1997-06-19 2001-01-09 Xaqti Corporation Media access control micro-RISC stream processor and method for implementing the same
US6061351A (en) * 1997-02-14 2000-05-09 Advanced Micro Devices, Inc. Multicopy queue structure with searchable cache area
US5875074A (en) 1997-04-18 1999-02-23 Quinta Corporation Adjustable head loading apparatus
JPH10302421A (ja) 1997-04-28 1998-11-13 Internatl Business Mach Corp <Ibm> サスペンション・アセンブリとランプ・ブロックおよびヘッド保持機構ならびにディスクドライブ装置
US6185207B1 (en) * 1997-06-19 2001-02-06 International Business Machines Corporation Communication system having a local area network adapter for selectively deleting information and method therefor
US6014380A (en) * 1997-06-30 2000-01-11 Sun Microsystems, Inc. Mechanism for packet field replacement in a multi-layer distributed network element
US6304910B1 (en) * 1997-09-24 2001-10-16 Emulex Corporation Communication processor having buffer list modifier control bits
US6226680B1 (en) * 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05244160A (ja) * 1992-02-28 1993-09-21 Toshiba Corp フレーム削除機能を持つブリッジ装置
JPH0897803A (ja) * 1994-09-26 1996-04-12 Nec Eng Ltd データ伝送方式
JPH0955718A (ja) * 1995-08-17 1997-02-25 Nec Corp データ通信装置
JPH09238163A (ja) * 1995-09-29 1997-09-09 Hewlett Packard Co <Hp> バッファメモリ管理装置
JPH09149034A (ja) * 1995-11-20 1997-06-06 Nec Eng Ltd Atmセルの生成方法及び通信制御装置
JPH09149067A (ja) * 1995-11-21 1997-06-06 Hitachi Cable Ltd スイッチングハブ
JPH09186712A (ja) * 1995-12-29 1997-07-15 Nec Corp スイッチングハブ装置

Also Published As

Publication number Publication date
US6279057B1 (en) 2001-08-21
CN1123832C (zh) 2003-10-08
USRE40034E1 (en) 2008-01-22
KR20010032196A (ko) 2001-04-16
GB2342021A (en) 2000-03-29
CN1304520A (zh) 2001-07-18
KR100564665B1 (ko) 2006-03-29
JP2001523862A (ja) 2001-11-27
WO1999026137A1 (en) 1999-05-27
JP4272813B2 (ja) 2009-06-03
WO1999026152A2 (en) 1999-05-27
JP2001523856A (ja) 2001-11-27
GB0009935D0 (en) 2000-06-07
GB2341526B (en) 2003-01-15
KR100734649B1 (ko) 2007-07-02
JP2009151795A (ja) 2009-07-09
US6502189B1 (en) 2002-12-31
CN1158605C (zh) 2004-07-21
US6324669B1 (en) 2001-11-27
GB9928809D0 (en) 2000-02-02
DE19882831T1 (de) 2001-03-22
CN1290364A (zh) 2001-04-04
CN1278933A (zh) 2001-01-03
US6317800B1 (en) 2001-11-13
DE19882830T1 (de) 2000-11-16
WO1999026151A1 (en) 1999-05-27
GB2346784B (en) 2003-01-15
KR20010032195A (ko) 2001-04-16
GB2346784A (en) 2000-08-16
USRE42228E1 (en) 2011-03-15
KR100650818B1 (ko) 2006-11-27
WO1999026152A3 (en) 2002-03-07
GB2341526A (en) 2000-03-15
GB2342021B (en) 2002-12-31
GB9928812D0 (en) 2000-02-02
JP2001523861A (ja) 2001-11-27
DE19882822T1 (de) 2001-03-22
KR20010032197A (ko) 2001-04-16

Similar Documents

Publication Publication Date Title
JP4547452B2 (ja) オンチップメモリにおけるデータ健全性のためのcrcを用いる方法および装置
JP4076724B2 (ja) ダイナミック半二重によるループ・フェアネスの保持
US7233977B2 (en) Messaging mechanism employing mailboxes for inter processor communications
US6418488B1 (en) Data transfer state machines
US6317805B1 (en) Data transfer interface having protocol conversion device and upper, lower, middle machines: with middle machine arbitrating among lower machine side requesters including selective assembly/disassembly requests
US6397273B2 (en) System having an enhanced parity mechanism in a data assembler/disassembler for use in a pipeline of a host-storage system interface to global memory
JP3172387B2 (ja) 入出力通信サブシステム及び方法
US20020152338A1 (en) Method, system and program product for detecting lost sequences within an exchange on fibre channel
US20080205441A1 (en) Data frame processing
US20070143522A1 (en) Data cut-through in an infiniband/fibre channel bridge
WO2006036468A1 (en) Method and system for optimizing data transfer in networks
US7225274B2 (en) Method and apparatus for transferring data across a protocol bridge
US7234101B1 (en) Method and system for providing data integrity in storage systems
US7152132B2 (en) Method and apparatus for improving buffer utilization in communication networks
JP3130226B2 (ja) 入出力通信サブシステム及び方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091006

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100106

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100526

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: 20100608

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100705

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130709

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees