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

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

Info

Publication number
JP2001523856A
JP2001523856A JP2000521437A JP2000521437A JP2001523856A JP 2001523856 A JP2001523856 A JP 2001523856A JP 2000521437 A JP2000521437 A JP 2000521437A JP 2000521437 A JP2000521437 A JP 2000521437A JP 2001523856 A JP2001523856 A JP 2001523856A
Authority
JP
Japan
Prior art keywords
frame
data
chip
buffer
port
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.)
Granted
Application number
JP2000521437A
Other languages
English (en)
Other versions
JP4272813B2 (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 JP2001523856A publication Critical patent/JP2001523856A/ja
Application granted granted Critical
Publication of JP4272813B2 publication Critical patent/JP4272813B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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
    • 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
    • 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)
  • General Physics & Mathematics (AREA)
  • 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)
  • Computer And Data Communications (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

(57)【要約】 改良した通信チャンネルシステムおよびその方法が述べられている。通信チャンネルシステムは、デュアルポート116を有するチャンネルノード1220を含み、各ポートはファイバチャンネル調整ループ通信チャンネル1250をサポートしている。巡回冗長コード(CRC)を含み、ファイバチャンネルループ1250から受信されたフレームは、オンチップ110バッファ119に格納され、フレームがバッファから読み出される際に、フレームの健全性を保証するために、健全性装置596により検査される。様々な実施例では、CRCを持つデータフレームがデータフレームバッファ55に格納され、もしくはCRCを持つ非データフレームが非データフレームバッファ53又は53′に格納される。

Description

【発明の詳細な説明】
【0001】 (発明の属する技術分野) 本発明は、大容量記憶装置の分野に関するものである。特に、本発明は、改良
されたファイバチャンネル調整ループ(「FC−AL」)装置と、オンチップメ
モリにおけるデータ健全性を維持し、もしくは検査するためにファイバチャンネ
ル巡回冗長検査情報を用いる方法に関する。
【0002】 (従来の技術) あらゆるコンピュータシステムの主要な要素として、データを格納する装置が
ある。コンピュータシステムは、データを格納するための多くの様々な装置を含
んでいる。コンピュータシステムで、多量のデータを格納するための1つの共通
な場所が、ディスクドライブ上に設けられている。ディスクドライブの最も基本
的な部分は、回転するディスク、ディスク上を様々な位置にトランスデューサを
移動させるアクチュエータ、そしてディスクにデータを書き込んだりディスクか
らデータを読み出すために用いられる回路である。ディスクは、また、確実にデ
ィスク表面からデータを取り出したり、ディスク表面にデータを書き込めるよう
にデータをコード化するための回路を有している。マイクロプロセッサは、デー
タ要求元のコンピュータに対してデータを送り戻し、要求元のコンピュータから
データを取得しディスクに格納することに加え、ディスクドライブの動作のほと
んどの部分を制御する。
【0003】 ディスクドライブとコンピュータシステムの他の部分との間でデータを転送す
るためのインターフェースは、通常、小型計算機システムインターフェース(「
SCSI」)あるいはファイバチャンネルのようなバスあるいファイバチャンネ
ルンネルである。この種のインターフェースのある側面は、異なる製造者から供
給される様々な装置が相互接続でき、すべての装置が共通のインターフェースに
接続できるように、しばしば標準化されている。このような標準は、通常、米国
規格協会(「ANSI」)のような組織の標準化委員会によって取り決められる
ものとなっている。
【0004】 様々な記憶装置と様々なコンピュータとの間でデータを交換するための1つの
標準化されたインターフェースが、ファイバチャンネルである。いくつかの実施
例では、ファイバチャンネル規格には、(後述の)調整ループが含まれている。
実施例では、ファイバチャンネル規格は、データ転送を制御するためのSCSI
に類似したプロトコルをサポートしている。
【0005】 ファイバチャンネルは、小型計算機システムインターフェース(「SCSI」
)ベースの設計に比べ、顕著な利点をもたらすものである。ファイバチャンネル
は、従来のSCSIベース設計での毎秒2〜20メガバイトのものに比べ、現状
は、毎秒約106メガバイトに到達するようなより高い帯域幅を提供する。また
、通常のSCSIベース環境では、最大7〜15個の装置への対応だったものに
対し、ファイバチャンネルは、126個の装置まで(ホストを含めて)接続する
ことができるような、より高い接続性を提供する。ファイバチャンネルは、単一
のコネクタで接続でき、スイッチを必要としないものである。SCSIベース環
境では、最長25mまでの距離が限界であるのに比べ、同軸の電導体を用いたフ
ァイバチャンネルでは、最大30mの距離を隔てた装置間で動作し、さらに、チ
ャンネル全体に光ファイバを用いると、10kmにまで距離を延長することがで
きる。SCSI環境では、データ転送でのエラーは、パリティを用いて検出され
るが、一方、ファイバチャンネルでは、現状の不均衡と巡回冗長検査(「CRC
検査」)情報とによって特定される。より詳しい情報は、米国特許番号5,80
2,080、名称「マルチポート設計におけるCRC発生器を用いたCRC検査
」および、米国特許番号、5,663,724、名称「16B/20Bエンコー
ダ」に記載されており、両者ともに本発明者ウエストバイ(Westby)によ
る発明であり、ともに、本発明出願人シーゲート・テクノロジー社からの出願で
ある。
【0006】 ファイバチャンネル(「FC−AL」)は、バイト指向のDC平衡(0,4)
ランレングス限定8B/10Bパーティションのブロック転送コード手順を採用
した工業規格システムである。PC−ALは、106.25MHzのクロック周
波数で動作する。8B/10Bエンコーダ/デコーダの一形態が、1984年1
2月4日に特許された米国特許第4,486,739号、発明者フランゼック(
Franaszek)他による「バイト指向DC平衡(0,4)8B/10Bパ
ーティションブロック転送コード」に記載されている。
【0007】 (発明が解決しようとする課題) ファイバチャンネル(FC−AL)は、それぞれがノードと呼ばれる複数装置
を、互いに接続させることができる。ノードは、コンピュータシステムの装置(
コンピュータ、ワークステーション、プリンタ、ディスクドライブ、スキャナ等
)のいずれかであってよく、それ自身がファイバチャンネル「トポロジー」(詳
細は後述)に接続できるようなインターフェースを有している。各ノードは、他
のノードへのアクセスを提供するNLポート(「ノード・ループポート」)と呼
ばれる少なくとも1つのポートを持っている。2つ以上のポートを接続しあう要
素は、一括して「トポロジー」あるいは「ループ」と呼ばれる。各ノードは、与
えられたトポロジーあるいはループ内の他の全てのノードと通信し合う。
【0008】 ポートは、それらを通してデータがファイバチャンネル上を通り、他のノード
(外部世界)のポートに到達することができる、ファイバチャンネルノードでの
コネクションである。典型的なファイバチャンネルドライブは、ドライブのノー
ド内に組み込まれた2つのポートを持っている。各ポートは、一方がポートに情
報を取り込み、他方がポートから情報を出すための、一組のファイバを持ってい
る。各ファイバは、シリアルデータ接続であり、本実施例では、各ファイバは、
実際には、同軸ケーブル(例えば、ノードが互いに近接しあっている場合に用い
られる同軸の銅線)である。また、他の実施例では、ファイバは、その経路の少
なくともいくつかの部分のために用いられる光ファイバとして実装される(例え
ば、異なる筐体や、特に、異なる建物にあるノードのように、かなりの距離をお
いてノードが分けられている場合)。各ポートに接続される一組のファイバ(一
方はデータをポートに取り込み、他方はデータをポートから出す)は、「リンク
」と呼ばれ、各トポロジーの一部である。リンクは、「フレーム」内に詰め込ま
れた情報や信号を、ノード間で送信する。各リンクは、複数のフレーム種類(例
えば、初期化、データ、制御のフレーム)を扱うことができる。
【0009】 各ファイバは、一方向にのみデータを送信するため、ノードは、ループに沿っ
て、互いに接続されていて、ここでは、各ノードが送信すべきデータを持ってい
る際には、各ノードは、ループを制御するために互いに調整して動作しなければ
ならない。「調整して動作する」とは、ノードに対して、どのノードがループを
制御する権利を持つのかを調整し決定するプロセスのことである。ファイバチャ
ンネル調整ループは、ハブやスイッチを使わずに、複数のノードをループに接続
する。ノードのポートは、調整動作を用いて、一対一のデータ送信回路を確立す
る。FC−ALは、分散トポロジーであり、ここでは、各ポートには、少なくと
も、回路を確立するのに必要な最小限の機能が含まれている。調整ループトポロ
ジーは、ノードポート数が2から126までのノードを接続するのに用いられる
【0010】 いくつかの実施例では、各ノードは、冗長性を与える二重ポート(それぞれが
、分離したループに接続されている)を持っており、これにより、もし一方のル
ープが故障しても、他方がループの役目を果たすことができる。二重ポートによ
って、2つのホスト(例えば、2つのホストコンピュータ)が、1つのドライブ
を共有することも可能となる。
【0011】 典型的な、第1および第2世代のFC−ALドライブでは、2つのポートが、
フレーム検証とフレーム生成論理を共有していた。これは、もし一方のポートが
フレームを送受信しているならば、代替するポートが実質的に閉じている状態と
なり、(なぜならば、このポートは、同時には、フレーム検証とフレーム生成論
理を使えないからである)従って、代替するポートはフレームを送出するための
ホスト−バスアダプター許可を強制的に拒否することを意味している。いくつか
のホスト−バスアダプターは、継続して調整動作を行い、基本ポートが閉じるま
で幾度もフレームを送出することを試みなければならないものであった。また、
ドライブは、一度にひとつのポートのみを使って送信できるのみであった。いく
つかの場合には、所定のポートでの送出データ送信は、他方の(代替の)ポート
を使っての応答送出とループ初期化のために中断せざるを得ないものであった。
【0012】 (CRCの背景) 多くのデータ送信動作は、誤り検査を用い、これにより、送出するヘッダとペ
イロードのデータにもとづくエラーコードを検査し、受信するヘッダとペイロー
ドのデータの健全性を検証する。このような誤り検査手順のある種のものは、巡
回冗長コード(「CRC」)情報を用いる。CRC誤り検査を用いる典型的な回
路には、受信するデータワードの健全性を検証するCRCチェッカと、送信され
ているディジタルワードのためのCRC情報を生成するCRC発生器を含んでい
る。多重ポート設計では、CRCチェッカとCRC発生器は、受信ディジタルワ
ードの検証処理と、送信中の各ディジタルワードのためのCRC情報の生成処理
が各ポートで可能となるように、有効でなければならない。多くのアプリケーシ
ョンでは、回路あるいはループインターフェースモジュールは、一度に、一方の
みのポートを経由して送信する。例えば、マルチポートインターフェースモジュ
ールを介してコンピュータネットワークと通信するディスクドライブサブシステ
ムは、いかなる時にも、単一のポートのみを介してデータの準備と送信を行う。
しかし、ループインターフェースモジュールは、所定の時には、複数のポートを
介してデータを受信しようとしてもよい。
【0013】 複数のポートを通してデータを受信するためのひとつの方法は、ひとつのポー
トがデータを受信中には、単純に、他のポートからのデータの受け入れを禁止す
ることである。この方法は、CRCチェッカやフレーム検証論理のような共通資
源が複数のポート間で共有できるようにするものである。データを受信する第1
のポートは、他のポートを排除するために、共通資源の使用状況を把握し、他の
ポートでのデータの受信が禁止される。従って、到着するデータは、他のポート
では受信されず、他のポートは、データ送信機能に制限を受ける。この方法では
、他のポートが、データ送信要求に応じて、「ビジー」状態を受信し、第1のポ
ートが実行中の動作を完了して共通資源を解放するまでは、幾度もデータ送信要
求の手順を繰り返すことが要請されるものであった。
【0014】 (ループ初期化の背景) 複数のループネットワークでは、エラー状態が検出された後や、ループインタ
ーフェースモジュールがチャンネルに接続されたり、あるいは、ファイバチャン
ネルに電源が投入されたときには、ループを初期化する必要がある。初期化は、
通常、ループ初期化データをループ上に送出することによって行われる。しかし
、もしループに接続されたループインターフェースモジュールが、他のループに
接続されたポートを介して、すでにデータを受信中であるならば、当該のループ
インターフェースモジュールは、ループ初期化データを受信することはできない
。通常は、このような状況では、データ転送は中断され、ループ初期化が先ず行
われる。他の例としては、ループ初期化が中断し、他のループ(二重ループノー
ドのループ)がデータ受信を完了するまで、連続して初期化をリトライするモー
ドに移行する。さらに、もし、ループインターフェースモジュールが、一度にひ
とつのループ上でのみデータを受信できるとすれば、ループ初期化がひとつのチ
ャンネルで行われている間は、モジュールは他のポートを介してはデータを受信
できなくなる。
【0015】 ファイバリンクは、コンピュータネットワークの様々な装置間のデータ送信に
関連して、注目を集めている。特に、ファイバチャンネルは、より広い帯域幅を
もち、優れた接続性、モジュールの接続の容易性、長い送信距離等の点で、小型
計算機システムインターフェース(「SCSI」)バスに対して、顕著な優位性
を持っている。例えば、典型的なSCSIバスは、25mまでの延長距離の中で
、15モジュールまでを扱うことができるが、これに対し、ファイバチャンネル
は、電気的な送信路を用いた場合にはモジュール間の距離を約30mまでとし、
あるいは、光送信路を用いた場合にはモジュール間の距離を10kmまでとして
、126モジュールまで扱うことができる。従って、例えば、毎秒テラバイトの
ピークデータ送信レートを達成するためには、70本のSCSIバスが必要にな
るところであるが、ファイバチャンネルでは約10本を必要とするのみである。
【0016】 他のチャンネルに影響を与えるデータ送信負荷を抑えるために、できるだけ速
やかにチャンネルを使用状態に立ち上げる(即ち、「初期化する」)ことが重要
である。
【0017】 従って、マルチポートループインターフェースモジュールがデータと非データ
フレームを複数のチャンネル上で同時に受信できるよう、あるいは、他のチャン
ネルでデータ受信しながら1つのチャンネル上でフレームを送信できるように、
あるいは、複数のチャンネル上で初期化および応答フレームを同時に送信できる
ように配慮する必要がある。また、ワンチップバッファ内に格納されたデータに
ついては、より良い改善されたデータ検査能力が必要とされている。
【0018】 (課題を解決するための手段) ワンチップメモリ中のデータ健全性のためのCRCを用いるための方法と装置
を提供する。ファイバチャンネルからフレームとともに受信された巡回冗長コー
ド情報が、オンチップバッファに格納され、後に、フレームバッファに存在する
間にデータの健全性を保証するために検査される。様々な実施例では、CRC情
報とともにデータフレームは、データフレームバッファに格納され、かつ/また
は、非データフレームはCRC情報とともに、受信非データフレームバッファに
格納される。ループ初期化と応答のための専用の送信フレームバッファを含む改
良された通信チャンネルシステムについては、後に詳述する。このような専用の
送信フレームバッファを有することにより、他方のポートがデータフレームを送
信あるいは受信中に、デュアルポートノードの一方のポートが初期化、あるいは
応答フレームを送信できるものとなる。専用の受信バッファもまた、2ポートノ
ードの各ポートに対して設けられる。フレームとともにファイバチャンネルから
受信した巡回冗長コード情報は、3つのフレームバッファの1つに格納される。
これらのデータとCRCは、後で、フレームバッファに存在する間にデータの健
全性を保証するために検査される。ループの制御のための調整に要する時間を減
らすために、プログラミングにより選択的に決定された最小量のデータ(プログ
ラム可能なデータと称す)が送信のために利用可能である限り、ループの制御は
維持(即ち、ループ接続は開状態を保持)される。
【0019】 本発明は、オンチップメモリ中でのデータ健全性のためのファイバチャンネル
巡回冗長コード(CRC)を用いるための通信チャンネルシステムを提供するも
のである。本システムは、第1のポートと第2のポートを有し、各ポートはファ
イバチャンネル調整ループ通信チャンネルをサポートし、各通信チャンネルは通
信チャンネル上のデータ送信中に巡回冗長コードを含む、第1のチャンネルノー
ドを含んでいる。本システムは、第1のチャンネルノードにオンチップで位置し
、フレームと、受信されたフレームに対応したCRCとを通信チャンネルから受
信するオンチップフレームメモリと、オンチップフレームメモリ中に存在する受
信されたフレームのデータ健全性検査のための受信された対応したCRCを用い
る健全性装置を含んでいる。
【0020】 本システムの1つの変形は、さらに、動作中にオンチップフレームメモリと健
全性装置とを結合するオフチップメモリと、受信したフレームをオンチップメモ
リからオフチップメモリに移動させる間に巡回冗長コードを検証する検証装置中
の検証回路とを含んでいる。
【0021】 このような実施例は、さらに、データがオフチップメモリからオンチップメモ
リに移動する際に、パリティを生成しデータに付与するパリティ生成回路を含み
、ここで健全性回路は、さらに、データのフレームをオフチップメモリに移動さ
せる間に、巡回冗長コードを検査し取り除く。この実施例の他の様態では、オン
チップフレームメモリは、さらに、巡回冗長コードを含まないデータフレームを
オフチップメモリから受信し、また、システムは、さらに、オフチップメモリか
ら受信したデータフレームに基づき巡回冗長コードを生成するCRC発生器と、
生成された巡回冗長コードを含むデータフレームをオフチップメモリから通信チ
ャンネル上に送信する送信機を含んでいる。さらに他の実施例では、送信すべき
データフレームを、オフチップメモリからオンチップメモリに転送し、パリティ
を付与するもののCRC情報は含めずに、オンチップメモリに格納する。そのよ
うな一実施例では、通信チャンネルからオンチップメモリに転送された受信デー
タフレームを、CRCは付与するもののパリティ情報は含めずに、オンチップメ
モリに格納する。
【0022】 1つの変形として、本発明によりシステムを構築し、ここでは、該システムは
、さらに、動作中に第1のチャンネルノードと結合する磁気ディスク記憶装置と
、動作中に第2のチャンネルノードと結合するコンピュータシステムとを含むも
のとする(即ち、コンピュータシステムは第2のチャンネルノードを有するもの
とする)。第2のチャンネルノードは、動作中に第1のチャンネルノードと結合
し、通信チャンネルを介して、第1のチャンネルノードと第2のチャンネルノー
ドとの間でデータを転送する。
【0023】 本発明の他の観点は、ディスクドライブを提供する。ディスクドライブは、回
転ディスクと、回転中のディスクと交渉をもつトランスデューサと、第1のポー
トと第2のポートを有する第1のチャンネルノードを含み、各ポートはファイバ
チャンネル調整ループ通信チャンネルをサポートする。各通信チャンネルは、通
信チャンネル上のデータ送信に巡回冗長コードを含んでいる。第1のチャンネル
ノードは、データと通信するためのトランスデューサと動作中に結合する。ディ
スクドライブは、第1のチャンネルノードにオンチップで位置し、フレームと、
受信したフレームに対応したCRCを通信チャンネルから受信するオンチップフ
レームメモリと、オンチップメモリ中に存在する受信フレームのデータ健全性を
検査するために、受信した関連CRCを用いる健全性装置を含んでいる。一実施
例では、ディスクドライブは、さらに、動作中にオンチップフレームメモリと健
全性装置と結合するオフチップメモリと、受信したフレームをオンチップメモリ
からオフチップメモリに移動させる間に巡回冗長コードを検証する検証装置中の
検証回路とを含んでいる。
【0024】 本発明のさらに他の観点は、通信方法を提供する。本方法は、(a)第1のチ
ャンネルノードの第1ポートと第2ポートのそれぞれの上で、ファイバチャンネ
ル調整ループ通信チャンネルをサポートし、(b)通信チャンネルからフレーム
を受信し、ここで、受信したフレームは、受信したフレーム中の他のデータに基
づく巡回冗長コードを含み、(c)巡回冗長コードを含む受信フレームをフレー
ムバッファに格納し、(d)フレームバッファとは独立したメモリに、受信フレ
ームを格納し、(e)受信フレームを独立したメモリに転送する間に、巡回冗長
コード(CRC)を検証することにより、受信フレームの正しさを検査するステ
ップを含んでいる。
【0025】 一実施例では、本方法は、(f)送信すべきフレームをオンチップフレームバ
ッファに載せ、(g)送信すべきフレーム中のデータに基づき巡回冗長コードを
生成し、(h)巡回冗長コードを含み、送信すべきフレームを通信チャンネルに
送信するステップを含んでいる。本方法の一実施例では、搭載ステップ(f)は
、さらに、(f)(i)送信すべきフレームのデータのパリティを生成し、(f
)(ii)送信すべきフレームのデータにパリティを付与し、移動ステップ(d
)は、さらに、(d)(i)受信フレームを独立したメモリに移動させる間に巡
回冗長コードを取り去るステップを含むものである。本方法の他の実施例では、
受信ステップ(b)は、さらに、(b)(i)受信フレームを通信チャンネルか
ら受信している間に、巡回冗長コードを検証することにより、受信フレームの正
しさを検査するステップを含むものである。
【0026】 一実施例では、本方法は、さらに、(i)ファイバチャンネル調整ループ通信
チャンネルを介して、動作中に第1のチャンネルノードと結合する磁気ディスク
記憶装置と第2のチャンネルノードを有するコンピュータシステムとの間で、デ
ータを転送するステップを含み、ここで、第2のチャンネルノードは、通信チャ
ンネルによって、動作中に第1のチャンネルノードと結合する。
【0027】 本発明の、さらに他の観点は、第1ポートと第2ポートを有するチャンネルノ
ードを含み、各ポートは、ファイバチャンネル調整ループ通信チャンネルをサポ
ートし、各通信チャンネルは、通信チャンネル上のデータ送信中に巡回冗長コー
ドを含む、通信チャンネルシステムを提供する。本システムは、また、巡回冗長
コードを含むフレームを、チャンネルノードから受信するバッファと、バッファ
とは独立したオフチップメモリとを含む。本システムは、また、受信フレームを
バッファからオフチップメモリに移動させ、受信フレームをオフチップメモリに
移動する間に巡回冗長コード(CRC)を検証することにより、受信フレームの
正しさを検査するための手段(本明細書全体で記述されるものとして)を含んで
いる。一実施例では、本移動手段は、さらに、フレームが検査されオフチップメ
モリに移動される際に、CRCを取り除くための手段を含んでいる。
【0028】 このように、本発明は、フレームが1つ以上の専用の非データバッファならび
に専用のデータバッファに格納される際に、フレームと、フレームの受信CRC
との間の調和をとることにより、データ検査能力の顕著な向上を図るものである
。他の実施例では、2つの非データバッファが設けられ、デュアルポートファイ
バチャンネルインターフェースノードの両方の入力ファイバ上で同時に受信する
ように動作する。いくつかの実施例では、1つのデータバッファが設けられ、デ
ュアルポートファイバチャンネルインターフェースノードのいずれか一方の入力
ファイバ上で受信するように動作する。いくつかの実施例では、フレームをオン
チップバッファからオフチップメモリに移動させている間に、フレームの巡回冗
長コードを検証する、単一のCRCチェッカーが(コスト削減のために)設けら
れる。いくつかの実施例では、それぞれの送信路上に(コスト削減のために)、
フレームをオンチップバッファからファイバチャンネルに移動させている間に、
適切な巡回冗長コードを生成する、単一のCRCチェッカーが設けられる。
【0029】 (発明の実施の形態) 以下、好適な実施様態を詳細に説明する中では、添付の図を引用し、本発明を
実施する特定の実施様態を例証によって示す。なお、本発明の主旨を逸脱するこ
とがなければ、他の実施様態も用いることができ、構造的な変更も可能である。
本出願で説明する発明は、ハードディスクドライブ、ZIPドライブ、フロッピ
ーディスクドライブ、光ディスクドライブ、CDROM(「コンパクトディスク
・リードオンリー・メモリ」)ドライブ、他の種類のドライブを含む全ての種類
のディスクドライブ、およびRAID構成(廉価な独立したディスクドライブの
冗長配列)のようなドライブシステムや他の装置に有用である。ここで、データ
は、ドライブと他の装置や情報処理システムとの間で通信される。いくつかの実
施例では、本発明は、(複数のファイバチャンネルループを互いに接続するため
に用いられる)ハブやスイッチ、ワークステーション、プリンタ、他の装置、あ
るいはファイバチャンネル調整ループに接続される情報処理システムなどの、ノ
ードインターフェースでの非ディスク装置として有用である。
【0030】 以下は、本発明を記述する4つの相互に関係をもつセクションである。 I.ループ初期化と応答のための専用フレームバッファ、II.フレームを受信す
るための専用フレームバッファ、III.オンチップメモリ中のデータ健全性のた めのファイバチャンネルCRCの使用、IV.調整ループのオーバーヘッドを減少
させる方法および装置。セクションIVは、基本的に本発明の詳細に関するセクシ
ョンであるが、他のセクションも、発明の全体の環境に関わる適切な情報を提供
するものである。図1は、ファイバチャンネル・ノードインターフェースをもつ
ディスクドライブ100のブロック図である。
【0031】 図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
の制御のための調整に使われる全体時間を抑制するために、データのプログラム
可能な量が送信に有効である限り、維持される(即ち、該ループ接続はオープン
に保持される)。
【0032】 いくつかの実施例では、ディスクドライブ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パリティビット)である。
【0033】 ファイバチャンネルループ1250からデータフレームとともに受信されたC
RC健全性検査情報は、データフレームバッファ55の中にデータとともに格納
され、次に、データがデータフレームバッファ55の外に読み出される時に検査
され、データフレームがデータフレームバッファ55の中にある時、あるいはデ
ータフレームの送信過程の初期段階のいずれかの場所で起こり得るデータ障害の
ための検査を提供する。同様に、ファイバチャンネルループ1250から非デー
タフレームとともに受信されたCRC健全性検査情報は、非データフレームバッ
ファ53(または、53′)の中にデータとともに格納され、次に、データが非
データフレームバッファ53(または、53′)の外に読み出される時に検査さ
れ、非データフレームが非データフレームバッファ53(または、53′)の中
にある時、あるいはデータフレームの送信過程の初期段階のいずれかの場所で起
こり得るデータ障害のための検査を提供する。マイクロプロセッサ112は、な
にがしかの適当な高速プロセッサであり、ディスクドライブ100内のデータ送
信、ルーティング、信号処理、誤り回復などの全体の制御を助けるために用いら
れる。本発明では、ファイバチャンネル・インターフェースチップ110は、以
下に説明するように、改良されたフレームバッファ、エラー検査およびループ調
整を提供する。
【0034】 一実施例では、ループポートトランシーバブロック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とは独立した回路の上に実装
されているものもある。
【0035】 他の実施例では、トランシーバ115は、シリアルループ1250とチップ1
10間の単なるインターフェースとしているものもあり、そこでは、10ビット
長あるいは20ビット長さのデータへの直列化および並列化がチップ上で行われ
る。
【0036】 図2は、コンピュータシステム1200の概要図である。有利なことに、本発
明はコンピュータシステム1200に用いることに非常に適している。コンピュ
ータシステム1200は、電子システムあるいは情報処理システムとも呼ばれ、
中央処理装置(CPU)、メモリ、およびシステムバスを含んでいる。コンピュ
ータシステムは、中央処理装置1204、ランダムアクセスメモリ(RAM)1
232、および、中央処理装置1204とランダムアクセスメモリ1232とを
通信上で結合するためのシステムバス1230を有するCPU情報処理システム
1202を含んでいる。CPU情報処理システム1202は、ファイバチャンネ
ルノードインターフェース1220を含んでいる。1つ以上のディスクストレー
ジ情報処理システム100から100′のそれぞれは、1つ以上のディスクドラ
イブ装置1256とファイバチャンネルノードインターフェース1220を含ん
でいる。
【0037】 いくつかの実施例では、複数のディスクドライブ1256が、例えば、RAI
D(廉価な独立したディスクドライブの冗長配列)構成での単一のノードインタ
ーフェース1220に接続されており、装置100′は、ディスクドライブのR
AID配列である。CPU情報処理システム1202は、また、内部入出力バス
1210と、入出力バス1210に付属する1212、1214、1216等の
いくつかの周辺装置を駆動する入出力インターフェース回路1209を含んでい
る。周辺装置は、ハードディスクドライブ、光磁気ドライブ、フロッピーディス
クドライブ、モニター、キーボードやその他周辺装置を含んでいる。いかなる種
類のディスクドライブや他の周辺装置であっても、ここで説明するファイバチャ
ンネル方式と装置(特に、例えば、ファイバチャンネルノードインターフェース
1220の改善)を適用することができる。各装置については、Aポートあるい
はBポートのいずれかが、何らかの与えられたループ1250に接続して用いる
ことができる。
【0038】 システム1200の一実施例は、オプションとして、中央処理ユニット120
4′(中央処理ユニット1204と同一あるいは同等のもの)を有する第2のC
PU情報処理システム1202′(システム1202と同一あるいは同等のもの
)、ランダムアクセスメモリ(RAM)1232′(RAM1232と同一のも
の)、および中央処理装置1204′とランダムアクセスメモリ1232′とを
通信上で結合するためのシステムバス1230′(システムバス1230と同一
のもの)を含むものである。CPU情報処理システム1202′は、それ自身の
ファイバチャンネルノードインターフェース1220′(ノードインターフェー
ス1220と同一のもの)を含むが、第2のファイバチャンネルループ1250
′(ループ1250とは分離し独立しているループ)を介して1つ以上のディス
クシステム100に接続している(この図解した例では、ディスクシステム10
0′に接続しているが、他の例では、全ての装置あるいはディスクシステム10
0から100′に接続している)。この構成により、2つのCPUシステム12
02、1202′は、各CPUシステム1202のための分離したファイバチャ
ンネルループを用いて、1つ以上のディスクシステム100を共有することがで
きる。さらに他の実施例では、全ての装置100から100′および全てのCP
Uシステム1202から1202′は、両方のループ1250、1250′に接
続されている。
【0039】 一実施例では、本発明は、データフレームの故障時配信をサポートしていない
。本発明の他の実施例によれば、ファイバチャンネルコントローラは、送信・受
信の目的のためにコードワードのデータフレームを編成するプロトコルも組み込
んでいる。このプロトコルは、米国特許番号5,260,933、名称「故障時
配信をもつシリアルデータネットワークのための受け取り通知プロトコル」、発
明者G.L.Rouseに開示されている。本発明の一実施例を構築する際に用
いられるファイバチャンネル仕様は、下記のANSI規格を含んでいる。
【0040】
【表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
【0041】 I.ループ初期化と応答のための専用フレームバッファ 本発明の一実施例のために、両方のポートが同時に使用できるような、フレー
ムバッファが第三世代の特定用途向け集積回路(「ASIC」)チップ(ファイ
バチャンネルインターフェースチップ110)に追加されている。非データフレ
ームを受信する2つのバッファ(「受信非データフレームバッファ」とも称され
る、図1の53、53′)が設けられ、コマンドとFCPフレーム(ファイバチ
ャンネルプロトコルフレーム)がノードの両方のポートに同時に受信されるよう
になる(また、全二重動作、即ち、ポートの一方のファイバで受信しながら、同
じポートの他方のファイバで送信する動作も可能となる)。これにより、ディス
クドライブ100(図2参照)が、送信の中断や完了を待つことなく、同一のポ
ートあるいは他のポート上でデータ送信を行っている間に、新しいコマンド(あ
るいは、他の非データフレーム)を一方のポートで受信することが可能となる。
従来の方法に比べより早くコマンドを手に入れることにより、本発明は、データ
送信が進行する最中に、コマンドを区別し最適化することを可能とし、以って、
システム1200の性能を向上させることができる。
【0042】 送信フレームバッファ73(図13の記述参照)により、他方のポート上でデ
ータ送信を可能としながら、応答フレームを一方のポートから送信することがで
きる。また、この送信フレームバッファ73により、他方のポート上での送信の
中断や完了を待つことなく、一方のポートからループ初期化を実行することが可
能となる。
【0043】 デュアルポートファイバチャンネル調整ループ設計では、到着および送出バッ
ファを管理するために、オンチップフレームバッファが用いられる。オンチップ
RAMは、性能と半導体集積度の間のバランスを決める様々な方法によって構成
することができる。本仕様は、ファイバチャンネルループ初期化フレームと単一
フレームファイバチャンネル応答を格納し送信するのに用いられる専用フレーム
バッファ119と単一フレーム送信路70の使用について詳説するものである。
【0044】 デュアルポート設計では、ひとつのポートがデータを受信し送信し、その送信
を処理するためにASICの資源のほとんどを利用する。この種類の多重フレー
ム系列を扱うために、多くのカウンタと状態機械が必要とされる。それぞれのポ
ートの設計を重複させたり、データ送信を中断することなく、本発明では、主ポ
ートがデータを送信しながら、代替ポートがフレームを送受信できるようにする
ため機能を提供するために、限られた量の論理が必要となる。本発明のいくつか
の実施例では、他方のポートがデータ送信している間に、一方のポートでフレー
ムを送信できる能力を提供する単一フレーム送信路回路70とともに、専用の送
信フレームバッファ73が設けられる(図13を参照)。この論理は、いずれか
のポートが、データを送信できるように、あるいは送信フレームバッファ73が
利用できるように、動的に構成される。
【0045】 データが本来のポート(主ポート)を介して送信され、ループ初期化が代替の
ポート上で実行される際には、データ送信は、割り込みなしに継続することが可
能となる。受信される(非データフレームである)ループ初期化フレームは、フ
レームがフレームバッファ(例えば、送信フレームバッファ73:図13参照)
に書きこまれる前に、検証される。マイクロプロセッサ112は、送信フレーム
バッファ73に対して書き込み、読み込みアクセスを持ち、それが送出できるよ
うになる前に、受信されたフレームを検定し修正できるようにする。フレームの
「ヘッダ」と「ペイロード」は、フレームバッファに格納される。(フレームの
「ヘッダ」には、フレームのソース識別子、系列計数、発信元識別子といった情
報が含まれている。フレームの「ペイロード」は、送信されるデータの本体であ
る。)マイクロプロセッサ112の管理下にある単一フレーム送信路70(図3
参照)は、フレームを編成し、フレーム開始およびフレーム終了区切り記号を含
み、フレーム巡回冗長コード(「CRC」)情報を生成する。
【0046】 データフレームが第1のポートを通して送信され、ファイバチャンネルプロト
コル(FCP)応答フレームの送信が必要となった際には、データ送信は、割り
込みなく継続することができる。図3によれば、マイクロプロセッサ112は、
応答フレームのヘッダとペイロードを送信フレームバッファ73に格納するもの
となっている。単一フレーム送信回路70は、フレームを組み立て、フレーム開
始およびフレーム終了区切り記号を含み、フレームCRC情報を生成する。いく
つかの付加的なループ制御論理もまた、フレーム送信のためにループ1250を
開放するために設けられる。
【0047】 図14によれば、送信フレームバッファ73は、書き込みおよび読み出しポイ
ンタ(それぞれ、733および734)を必要とする。(時により単一フレーム
送信フレームバッファあるいは送信フレームバッファ73として記しているもの
は、一般的には、「送信フレームバッファ」であり、他の実施例では、バッファ
73は、1つ以上のポートのそれぞれのために、1つ以上の送信フレームを含ん
でいるが、「送信フレームバッファ」という用ワードは、ここでは、これら全て
の実施例を含むものとして使用する。)単一フレーム送信回路70(詳細は、図
13にて後に示す)は、フレーム長カウンタ71、送信フレーム化状態機械72
、CRC発生器76、および送信マルチプレクサ(「mux」)74を必要とす
る。
【0048】 (ファイバチャンネルインターフェース仕様) 図3は、ファイバチャンネル・ノードインターフェースチップ110のブロッ
ク図である。本発明のファイバチャンネル・ノードインターフェース論理110
は、調整ループ論理とフレーム化論理を含むファイバチャンネルプロトコルを担
っている。1つの実施例は、ファイバチャンネルプロトコル(「FCP」)規格
により定義されたSCSI上位レベルプロトコルのみを用いて、クラス3SCS
I実装(上述のFC−AL仕様参照)のために最適化されている。ファイバチャ
ンネル・ノードインターフェース論理110は、デュアルポートの全二重動作時
の補助と、様々なバッファ帯域幅に対応するための4つのオンチップフレームバ
ッファ(53、53′、55、73)を含んでいる。ファイバチャンネル・ノー
ドインターフェース論理110は、マイクロプロセッサ112へも接続して、こ
れにより、マイクロプロセッサ112が、ファイバチャンネル・ノードインター
フェース論理110を構成でき、ファイバチャンネル・ノードインターフェース
論理110の現在の条件についての状態情報を読み出すことができる。
【0049】 ファイバチャンネル・ノードインターフェース論理110は、2つのループポ
ート回路20(一方は、ポートAのために、他方はポートBのためにあり、各ポ
ートは、データ入力インターフェースとデータ出力インターフェースを持ち、ル
ープ通信に対応している)、ループ制御回路(あるいは、フレーム送信回路40
と称す)、受信路論理50、転送制御論理60、単一フレーム送信回路70、送
信路マルチプレクサ(「mux」)79、データフレーム送信路論理80、およ
びマイクロプロセッサインターフェース90を含んでいる。これらのブロックは
、受信フレーム処理、送信データフレーム生成、単一フレーム送信生成、転送制
御およびプロセッサ接続などの機能をサポートしている。
【0050】 マイクロプロセッサインターフェース回路90は、マイクロプロセッサ112
に対し、ファイバチャンネル・ノードインターフェース論理110のレジスタと
カウンタへのアクセスを提供する。(「マイクロプロセッサ」と記述するときに
は、この語句がなんらかの適切なプログラム可能な論理装置を含むものであるこ
とを前提とする。)インターフェースレジスタは、ファイバチャンネルインター
フェースの応答に先立ち、外部マイクロプロセッサ112により初期化される。
出力送信はこのインターフェースにより初期化され、受信した送信の状態はこの
インターフェースを通して参照可能となる。
【0051】 図3での入力信号は、ファイバチャンネル16からポートAのループポート回
路20へのデータ入力を伝えるA_IN3021と、ファイバチャンネル16か
らポートBのループポート回路20へのデータ入力を伝えるB_IN3021と
を含んでいる。オフチップバッファからのデータ(DATA FROM OFF
−CHIP BUFFER)3051は、オフチップバッファ111から受信路
50へのデータを伝える。オフチップバッファへのデータ(TO OFF−CH
IP BUFFER)3052は、オフチップバッファ111へ受信路50から
データを伝える。バッファ状態(BUFFER STATUS)3061は、転
送制御60に状態を提供する。MPUインターフェース90へのMPUアドレス
(MPU ADDRESS)3091およびMPUデータ(MPU DATA)
3095は、それぞれ、マイクロプロセッサ112からのアドレスとデータを提
供する。MPUインターフェース90への読み込みイネーブル(READ_EN
ABLE)3092および書き込みイネーブル(WRITE_ENABLE)3
093は、マイクロプロセッサ112からのイネーブル信号を提供する。MPU
信号3076は、マイクロプロセッサ112が送信フレームバッファ73にアク
セスできるようにする。A出力(A_OUT)3023は、ポートAのためのデ
ータをループポート回路20からファイバチャンネル16に伝え、B出力(B_
OUT)3024は、ポートBのためのデータをループポート回路20からファ
イバチャンネル16に伝える。
【0052】 (ループポート回路20) 図4は、ファイバチャンネルループポート回路20のブロック図である。本発
明の一実施例のファイバチャンネル設計は、周辺装置の直接接続のためのデュア
ルポートのファイバチャンネルインターフェースをサポートする2つの同一のル
ープポート回路20を含んでいる。一実施例では、ファイバチャンネルループポ
ート回路20は、受信レジスタ21、8B/10Bデコーダ論理22、ワード同
期状態機械23、受信クロック喪失検出器24、同期喪失タイマー25、調整ル
ープ論理26および8B/10Bエンコーダ27を含む。
【0053】 一実施例では、各ループポート回路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,66
3,724、名称「16B/20Bエンコーダ」参照)調整ループ論理26は、
ループ状態機械、順序付け集合デコーダと弾性挿入・削除機能を含んでいる。ル
ープポート回路20は、ファイバチャンネル調整ループANSI規格(即ち、上
記のFC−ALもしくはFC−AL2)に定義されている調整ループプロトコル
を実装している。
【0054】 一実施例では、ファイバチャンネルデータは、直列化され送信され、トランシ
ーバ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ビット文字に変換される。
【0055】 8B/10Bデコーダ論理22は、受信レジスタ21によって取り込まれた、
エンコードされたデータを入力する。2つの10ビット文字は、同時にデコード
され、2つの8ビット文字を出力する。入力文字の中で連続している不均衡を検
査し、誤り状態がワード同期状態機械23と調整ループ論理26に送られる。連
続している不均衡誤りに続き、次の順序付け集合に対し、負の連続不均衡を適用
する。コード化規則の違反もまた検査され、コード化違反状態もワード同期状態
機械23に送られる。
【0056】 受信クロック喪失検出器24は、トランシーバ115からの受信クロックが停
止した時を検出する。「受信クロックの喪失」条件が検出された時には、ワード
同期状態機械23はリセットされ、データが調整ループ論理26のFIFOに入
るのを阻止する(FIFOは、先入れ先出しメモリであり、通常、異なる速度で
駆動されるバスあるいはプロセス間を接続するために用いられる)。ワード同期
が再び得られるまで、最新充填ワード(「CFW」については、後に詳述する)
が送信される。
【0057】 ワード同期状態機械23の論理は、ワード同期について、入力ストリームを監
視する。3つの順序付け集合について、適当なバイト・制御文字配列を持ってい
ることが検出され、不要な無効文字が検出されない時に、ワード同期が達成され
る。「ワード同期喪失」は、FC−PH(即ち、FC−PH物理的かつ信号イン
ターフェースX3T11/プロジェクト755D/改版4.3)規格によって定
義されている。ワード同期が確立されると、データは調整ループ論理26のFI
FOに入力される。
【0058】 同期喪失タイマー25は、1つ以上の最大フレーム時間の間に、ワード同期喪
失条件が存在した時を決定するのに用いられる(3つの有効な順序付け集合を検
出するのには、フレーム時間まで要するためである)。このタイマーが時間終了
すると、マイクロプロセッサ112には、同期喪失(LOSS−OF−SYNC
)割込み信号4055によって割込みが入り、それが措置をとるようになる。
【0059】 調整ループ論理26は、ループ弾性FIFO、ループFIFO制御論理、順序
付け集合デコード論理、ループ状態機会論理、最新充填ワード選択論理、ループ
出力マルチプレクサ論理ならびに種々の機能を含んでいる。ループ弾性FIFO
は、(受信クロックによりクロッキングされた)入力データを送信クロックと、
再度、同期をとるために必要なバッファリングを提供する。ループFIFO制御
論理は、調整ループ論理26の状態を監視し、挿入または削除操作が必要かどう
かを判断する。順序付け集合は、順序付け集合認識論理により、デコードされる
。これらの順序付け集合は、FC−PHで定義された順序付け集合(即ち、PC
−PH物理的かつ信号インターフェースX3T11/プロジェクト755D/改
版4.3)を含んでおり、これは、フレーム区切り記号と調整ループ順序付け集
合を含んでいる。最新充填ワード選択論理は、ループの状態と、最新充填ワード
(CFW)を決定するデコードされた順序付け集合を監視する。調整されたルー
プが有効になると、ハードウェア状態機械は、順序付け集合デコードを用いて、
FC−AL規格(即ち、ファイバチャンネルFC−AL1調整ループ規格X3T
11/プロジェクト960D/改版4.5、またはファイバチャンネルFC−A
L2調整ループ規格X3T11/プロジェクト1133D/改版6.3)に記述
されたループ関数を実行する。入力である、ループA送信制御出力(LOOP
A TRANSMIT CONTROL OUTPUTS)6425とループB
送信制御出力(LOOP B TRANSMIT CONTROL OUTPU
TS)6427は、図6の論理から調整ループ論理26への入力を提供する。出
力である、ループA状態および制御(LOOP A STATES AND C
ONTROL)6422およびループB状態および制御(LOOP B STA
TES AND CONTROL)6432は、それぞれのループの出力を制御
し、ループ制御論理に状態を提供し、次に、ループ制御論理は、ループ状態機械
(図6参照)への要求を生成する。出力である、ループAデータ(LOOP A
DATA)4026およびループBデータ(LOOP B DATA)402
7は、それぞれのローカルポート(図7のブロック51、51´)へのデータを
提供する。
【0060】 一実施例では、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_OUT302
4は、各トランシーバ115、115′にデータを送信する。
【0061】 図5は、一実施例において、一旦、調整操作によってループの制御が確立され
たならば、ループを開状態に保持するために用いられるコンパレータ論理30を
示す。オフチップ有効データ(OFF−CHIP AVAILABLE DAT
A)5011は、予め定めた値X−FRAMES5013(一実施例において、
これは、プログラム可能な値であり、その最適な値は経験的に定められる。一実
施例では、この値は、1フレームと定める)と、コンパレータ5010によって
比較される。データフレーム有効データ(DATA―FRAME DATA A
VAILABLE)5015は、予め定めた値Y−WORDS5017(一実施
例において、これは、プログラム可能な値であり、その最適な値は経験的に定め
られる。一実施例では、この値は、フレームの2分の一に含まれるワードの数と
定める。一実施例では、約2000ワードが存在し、Y−WORDSは約100
0となる)と、コンパレータ5012によって比較される。ANDゲート501
4は、両方の条件が満たされたことを判断し、HOLD LOOP OPEN信
号5019を出力する。
【0062】 図6は、ループ制御回路40(または、フレーム送信(「XMIT」)回路4
0と称す)のブロック図である。ループ制御回路40(図3および図6参照)は
、フレームあるいはR_RDYの送信を開始するために、(ポートAおよびポー
トBの調整ループ論理26中の)調整ループ状態機械への適切な要求と、送信フ
レーム化状態機械72(図13参照)および81(図15参照)への要求を生成
するための制御論理を含んでいる。
【0063】 送信データシーケンサ論理41は、マイクロプロセッサ112により送信が要
求された際に呼び出され実行される論理を含んでいる。送信データシーケンサ論
理41は、入力信号である送信状態入力(TRANSMIT STATUS I
NPUTS)6411を用いて送信を監視し、送信の各段階についての許可信号
(即ち、許可信号である、送信制御出力(TRANSMIT CONTROL
OUTPUTS6413))を生成する。これにより、マイクロプロセッサ11
2が介入することなく、送信準備およびFCP応答が生成できる。 ループポートA/B開制御状態機械42(ポートA)および42′(ポートB
)は、他のループポートによりポートが開いている場合か、ループ1250がフ
レームを送信するために開いている場合を扱う。この論理は、ループ1250の
調整と閉鎖の要求と、R_RDYと様々な種類のフレームを送信する要求とを生
成するものであり、半二重あるいは全二重動作のために構成することができる。
【0064】 下記の条件は、調整の要求を始める際に満たしていなければならないものであ
る。 ・マイクロプロセッサ112からのXMITポートを使ってのフレーム送信要
求が許可されていること ・送信ポートが監視状態にあること ・送信長カウンタがゼロでないこと ・マイクロプロセッサ112から、送信を中断させる要求がないこと ・(非データ送信あるいはデータ書き込み送信で、送信準備が送信されていな
いものの、データ閾値は満足している状態にあるか、データ読み込み送信で、デ
ータ閾値とデータフレームバッファ閾値とが満足した状態にあること)
【0065】 ポートが半二重モードで構成されている際には、R_RDYは、Opened
状態にある時にのみ、送信される。ポートが全二重モードで構成されている際に
は、Opened状態あるいはOpen状態のいずれの状態でも送信される。R
_RDYを送信する条件には、利用可能なバッファー間信用と最大バッファー間
信用未満の最大のR_RDYとを含んでいる。(以下で図12にて説明するバッ
ファ間信用制御論理603は、接続されたポートに対してバッファ信用を発行し
、フレームが送られるようにする。この信用は、R_RDYを送ることにより発
行される。
【0066】 ポートが、半二重モードで構成される際には、フレームはOpen状態にある
時のみ送信される。ポートが全二重モードで構成される際には、もしポートがフ
レームの受け取り側で全二重モードでオープンされるならば、フレームはOpe
n状態もしくはOpened状態で送信される。
【0067】 フレームの送信要求は、以下の条件が満たされたときに生成される。 ・データフレームバッファ55がデータを利用可能とすること ・バッファ間信用が利用可能であること(R_RDYが受信されること) ・非データ送信あるいはデータ読み込み送信、および送信長カウンタ(図12
、ブロック609)はゼロでないこと ループ1250を閉じさせる条件は以下を含んでいる。 ・Opened状態に入る際には、利用可能なバッファ間信用はないこと ・Opened状態にある時には、際立ったR_RDYはなく、いかなるバッ
ファ間信用も利用可能でないこと ・ポートがOpened状態にある時に、プロセッサのビージー要求が有効に
なっていること ・送信が完了していること ・データ読み込み送信操作とデータは利用可能でないこと ・CLSプリミティブが受信され、いかなるバッファ間信用も利用可能でない
こと ・マイクロプロセッサ一時中断要求は未発行であり、論理はフレームの間にあ
ること。
【0068】 再度、図6によれば、ループポートA/B開初期化制御状態機械46(ポート
A)および46′(ポートB)は、ループ1250が開初期化状態の場合を扱う
。この論理46、46′は、フレームを送信する要求を生成する。各ポート(4
6、46′)には1つの状態機械が存在する。これらの状態機械は、マイクロプ
ロセッサ112がフレームを要求した際に、フレームを送信する要求を生成し、
EOFの送信を監視する。送信が完了すると、送信完了信号がマイクロプロセッ
サ112に対して生成される。
【0069】 ブロック40への入力には、PORT BB_CREDIT AVAILAB
LE 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 OUTPUTS6
413、LOOP A TRANSMIT CONTROL OUTPUTS6
425とLOOP B TRANSMIT CONTROL OUTPUTS6
427が含まれている。
【0070】 単一フレーム送信路に関する詳細な情報は、(単一フレーム送信路回路70)
と題したセクションにて説明する。
【0071】 II.フレーム受信のための専用フレームバッファ デュアルポートファイバチャンネル調整ループ設計1200では、オンチップ
フレームバッファ119中のバッファは、到着および送出フレームを扱うために
用いられる。受信され送信されるフレームは、たいてい、大きなオフチップ領域
(即ち、オフチップバッファ111)に、低速の転送レートで格納される。オフ
チップバッファ111が、単一ポートに対しては高速の転送レートが利用可能と
なっている時でも、デュアルポート設計に対して必要とされる帯域幅は、より広
いものであり、より高いコストが必要になる。FC−AL ASIC110(図
1参照)のオンチップフレームバッファ119は、性能、半導体集積度、コスト
について最適なバランスを得るために、様々な方法で構成することができる。本
仕様は、非データ型フレームを各ポート上で同時に受信する専用のフレームバッ
ファ53、53′(オンチップフレームバッファ119全体の要素)の使用につ
いて詳細に定めるとともに、専用の大型データフレームバッファ55(または、
オンチップフレームバッファ119全体の要素)を提供するものである。
【0072】 本発明によるデュアルポート設計では、フレームは、両方のポート116上で
、同時に受信される。フレームは、通常、受信した後、大型のオフチップメモリ
111に移されそこに格納される。各フレームは、検証されなければならず、ま
た、フレームを外部に送信する前に、フレーム巡回冗長コード(CRC)情報も
検査する必要がある。受信フレーム検証とCRC検査論理の重複を避けるために
、各受信非データフレームバッファ53、53′が、各ポート116に1つづ設
けられ、高速のインターフェース転送レートで同時にフレームが受信できるよう
に、また一度に読み出され、検証した後、外部に送信できるようになる。非デー
タフレームが他のポートで同時に受信されている間にも、データが1つのポート
で受信あるいは送信できるように、大型の共有データフレームバッファ55もま
た、ポート間で共有できるように設けられる。さらに、2つの独立した一方向性
のファイバも各ポートに設けられるため、単一ポートが同時に送信と受信の両方
を実行できる。
【0073】 例えば、ポートA送信ファイバ118がデータフレームバッファ55からデー
タフレームを送信している最中、あるいは送信フレームバッファ73が非データ
フレームを送信している最中に、ポートA受信ファイバ117は、非データフレ
ームを受信して、非データ受信バッファ53に入力することができ、同時に、非
データフレームを、送信フレームバッファ73から送信している最中、あるいは
データフレームをデータフレームバッファ55から送信している最中に(ポート
Aが非データフレームを送信している場合)、ポートBは非データフレームを受
信して非データ受信バッファ53′に入力することができる。受信フレーム検証
論理およびCRCチェッカーを使うために、データフレームバッファ55または
、受信フレームバッファ53、53′のいずれか一方を、選択できる。本発明の
一実施例では、単一のデータフレームバッファ55が設けられ、同時には1つの
ポート116のために利用できるのみであり、いかなる時にも送信あるいは受信
のいずれか一方に利用される。他の実施例では、このような制限を排するために
、複数のデータフレームバッファ55が設けられるものもある。また、本発明の
一実施例では、単一の送信フレームバッファ73が設けられ、同時に1つのポー
ト116のために利用できるのみとしている。他の実施例では、このような制限
を排し、全く同時にループ初期化操作(あるいは他の非データ応答の送信)を両
方のポートで動作可能とするために、複数の送信フレームバッファ73が設けら
れるものもある。
【0074】 到着データ送信が利用可能となっている時には、データあるいは非データフレ
ームが、プライマリポート上で受信される。同時に、非データフレームが、代替
のポート上で受信される。データフレーム(ヘッダ、ペイロード、CRCおよび
フレーム区切り記号を含む)は、大型のデータフレームバッファ55に格納され
、一方、非データフレーム(こちらも、ヘッダ、ペイロード、CRCおよびフレ
ーム区切り記号を含む)は、小さい受信フレームバッファ53(又は、53′)
に格納される。各ポート116には、1つの受信フレームバッファ53が設けら
れる。3つのフレームバッファ(53、53′、55)の1つがデータを利用で
きる状態になると、受信検証論理595およびCRC検査論理596を用いるた
めに、それが選択される(図11参照)。
【0075】 送出データ送信が利用可能となっている時には、データフレームがプライマリ
ポート上で送信される。同時に、非データフレームはいずれかのポートで受信さ
れる。データのペイロードは、外部から読み込まれ、データフレームバッファ5
5に書き込まれ、インターフェース送信が始まるまでそこに格納される。(ヘッ
ダ、CRC,フレーム区切り記号は、フレームバッファからフレームが読み出さ
れた後に、付加される。)同時に、非データフレームが、プライマリポートある
いは代替ポートのいずれかを通して、受信される。非データフレームは、受信フ
レームバッファ53又は53′に書き込まれ、そこで、フレームバッファが受信
検証論理595およびCRC検査ロジック596にアクセスできるようになる迄
、保持される。
【0076】 データ送信に可能な限り最高の性能を提供するために、データフレームバッフ
ァ55には優先権が与えられる。非データフレームは、データ送信が中断したり
完了した時に扱われる。もし、ループバッファ間信用がもはや利用可能ではない
ような状態で、受信フレームバッファ53の1つが満杯になった場合には、バッ
ファ間信用が再び利用可能となるよう、受信フレームバッファ空間を開放するた
めに、データフレームバッファ55の書き込み・読み出し操作は中断される。読
み出しが短時間中断している間に新しいフレームがデータフレームRAM555
に書き込まれるため、到着したデータフレームは、この間、データフレームバッ
ファ55に格納される。書き込みが短時間中断している間にフレームがRAM5
55から読み出されるため、インターフェースに利用可能な送出データフレーム
は、この間暫定的に減少する。
【0077】 図7は、ファーバーチャンネル受信路およびフレームバッファーブロック50
(図3参照)のブロック図である。受信路およびフレームバッファブロック50
は、受信したフレームを処理し、直接、外部に(オフチップバッファ111に向
けて)、あるいは、単一フレーム送信回路70にフレームを送るか、フレームを
受信する3つのフレームバッファ(受信非データフレームバッファ53、53′
又はデータフレームバッファ55)のうちの1つに格納する。受信路50は、事
前バッファ受信フレーム処理(ブロック51、51′)、データフレームバッフ
ァマルチプレクサ52、ポートAおよびポートB用の受信非データフレームバッ
ファ53、53′、データフレームバッファ55、データフレームバッファ送信
長カウンタ54、フレームバッファコントローラ56、共通受信路59、および
バッファインターエース58の各ブロックを含んでいる。
【0078】 ブロック51への入力は、図4からのLOOP A DATA4026と、(
図6への入力である)LOOP A STATES AND CONTROL6
422である。ブロック51′への入力は、図4からのLOOP B DATA
4027と(図6への入力である)LOOP B STATES AND CO
NTROL6432である。データフレームバッファ55への入力は、OFF- CHIP BUFFER DATA3051を含む。信号であるDATA XF
ER CONTROL7521は、データフレームバッファマルチプレクサ52
を制御する。信号BUF_PAUSE7561は、フレームバッファコントロー
ラ56に対して、中断が求められていることを通知する(通常は、バッファが送
信レートの帯域幅に対応できないことが理由である)。信号LD_COUNTE
RS7541は、データフレームバッファ送信長カウンタ54に対して、カウン
タ値をロードするように通知する。
【0079】 出力信号BXFR_CNT_ZERO7542は、全ての送信データが、選択
されたフレームバッファに存在することを示している。フレームバッファコント
ローラ56は、読み込み許可信号RD_ENABLE7532をポートA受信非
データフレームバッファ53に送り、RD_ENABLE7552をデータフレ
ームバッファ55に送り、RD_ENABLE7533をポートB受信非データ
フレームバッファ53′に送る。バッファコントロールインターフェース58は
、選択、ストローブ、および許可信号であるオフチップバッファのためのCON
TROLS FOR OFF−CHIP BUFFER7589をオフチップバ
ッファ111のために提供する。オフチップバッファへのデータ出力DATA
TO OFF−CHIP BUFFER3052は、受信データフレームと非デ
ータフレームをオフチップバッファ111に提供する。
【0080】 データフレームバッファマルチプレクサ52は、データと事前バッファ受信状
態機械512の出力とを、DATA XFER CTL7521ビットセットを
持つポートから選択する。このマルチプレクサ52の出力は、データフレームバ
ッファ55に対し、データと状態信号(図10の、それぞれ8511と8512
)を提供し、データがデータフレームバッファRAM555(図10参照)に書
き込められるようになる。
【0081】 図8は、ファイバチャンネルから受信され、3つのフレームバッファ(53、
53′、55)の1つに入力されるフレームを準備する、ファイバチャンネル事
前バッファ受信フレーム処理路回路51のブロック図である。事前バッファ受信
路ブロック51は、従前バッファ受信フレーム化状態機械512、事前バッファ
受信フレーム長カウンタ515(およびそのマルチプレクサ514)、およびE
OF変更論理513を含んでいる。フレームは両方のポートに同時に受信される
ので、このブロック51は、ポートAとポートBの両方に複写して使える(即ち
、各ポートに一回ずつ実装すればよい)。
【0082】 事前バッファ受信フレーム化状態機械512は、いつフレームとR_RDYが
受信されるかを決定するために、入力ストリームを監視する。SOFが検出され
た時に、ヘッダ、ペイロードおよびフレーム区切り記号の各ワードのための信号
が生成される。この状態機械512は、ヘッダあるいはペイロードの間に受信さ
れる無効なプリミティブについてと、最大のフレーム長を違反する送信(多くは
、EOFの破壊が原因となる)について検査する。
【0083】 事前バッファ受信フレーム長カウンタ515は、受信されたフレームのヘッダ
のR_CTLフィールドに基づき、コマンドあるいは、受信フレームの行先とな
るフレームバッファのデータバッファ領域の最大フレーム長さ(マルチプレクサ
4514により選択されたように)とともに、フレームの最初にロードされる。
もし、EOFの検出前にカウンタがゼロに達するならば、長さエラーが検出され
る。この機能は、フレームバッファ内での割り当て空間の規定外設定を防止する
ため役立つ。
【0084】 EOF変更論理513は、到着フレームを検査し、それがデータフレームであ
るかどうかを確認し、フレームバッファへの許可を生成する。EOF変更論理5
13は、事前バッファ受信フレーム長カウンタ515により利用される、到着フ
レームの経路制御フィールドを取り込む。EOF変更論理513は、また、EO
Fフィールドを変更し、より詳細な状態情報が、フレームバッファを経由して共
通受信路59に到達するようにする。
【0085】 図4からの入力信号であるLOOP A DATA4026とLOOP B
DATA4027は、EOF変更論理513に結合される。LOOP A ST
ATES AND CONTROL6422と、LOOP B STATES
AND CONTROL6432(図6への入力でもある)は、ループ1250
に関する状態情報を、状態機械512に提供する。MAX FRAME SIZ
E8517は、データフレーム、制御フレームとその他のフレームの最大フレー
ムサイズに関する情報を、マルチプレクサ514とカウンタ515に提供する。
【0086】 出力信号であるPRE−BUFFER−RECEIVE DATA8511と
、PRE−BUFFER−RECEIVE STATES8512は、データと
状態情報を、非データバッファ53、53(図9を参照)とデータフレームバッ
ファ55に提供する。
【0087】 図9は、ファイバチャンネル受信非データフレームバッファ回路53のブロッ
ク図である。受信非データフレームバッファ53は、受信フレームバッファ書き
込み制御533、受信フレームバッファ読み出し制御534、受信フレームバッ
ファRAM535、受信フレームバッファ状態ブロック536、および受信フレ
ームバッファフレームカウンタ531とを含んでいる。フレームは両方のポート
に同時に受信されるため、この回路53は、ポートAおよびポートBのそれぞれ
に1つづつ実装される。
【0088】 受信フレームバッファ書き込み制御ブロック533は、アドレス(WPTR9
537)、データ(WDAT9536)および受信フレームバッファRAM53
5中のランダムアクセスメモリ(RAM)に対する書き込み許可(WE9539
)を生成する。フレームのデータが受信される時に、事前バッファ受信状態機械
512からの状態許可を用いて、書き込み許可(WE9539)を展開し、RA
M535に書き込みむ。アドレスが更新され、受信フレームバッファ状態ブロッ
ク536によって、受信フレームバッファRAM535の中にどれだけ利用可能
な空間があるかを決定するために用いられるラップビット(WRAP9538)
が設けられる。ループポート回路20からのデータは、16ビット幅から32ビ
ット幅に変換され、SOFあるいはEOF区切り記号を表すフラグビットが追加
される。受信フレームからのCRCは、データを保護するために、非データフレ
ームバッファRAM535に達する。すなわち、ファイバチャンネルから受信さ
れたCRC情報は、非データフレームバッファ53にデータとともに格納され、
次に、データが非データフレームバッファ53から読み出される時(例えば、オ
フチップバッファ111に送信される時)に検査され、データが非データフレー
ムバッファ53に留まっていた際になんらかのエラーがデータに生じていないか
を検出するようにする(当然のことながら、データがファイバチャンネルループ
1250中を移動中にデータ中に生じるエラーについても検出される)。ブロッ
ク53への入力信号には、PRE−BUFFER−RECEIVE DATA8
511と、PRE−BUFFER−RECEIVE STATES8512(図
8参照)と、レジスタに登録された(即ち、後の利用のためにレジスタに保管さ
れた信号としての)マイクロプロセッサ112からのMPU DATA9533
と、MPU ADDRESS9534が含まれている。
【0089】 受信フレームバッファ読み出し制御ブロック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およびN
ON−DATA VALID READ9546を含む。
【0090】 受信フレームバッファRAM535は、同期RAMを含む。そのRAMは、3
3ビット幅(32ビットデータワード+SOF/EOFフラグビット)および3
04ワード長である。受信非データフレームのSOF、ヘッダ、ペイロード、C
RCおよびEOFは、オフチップバッファ111および共通受信路59へのアク
セスが利用可能となるまで保持されるよう、RAM535に書き込まれる。一実
施例においては、組込み自己テスト制御器が、受信フレームバッファRAM53
5を、特にそのメモリの物理的なレイアウトに対して展開されるデータパターン
に関してテストされるようにさせる。
【0091】 受信バッファ状態ブロック536は、受信フレームバッファRAM535の書
き込みおよび読み出しポインタを比較し、バッファが空であるかどうかを判定し
、バッファが空でない場合には、受信フレームバッファRAM535においてど
の程度の数の空間フレームが利用可能であるかを判定する。このブロック536
(AVAILABLE SPACE9545)の出力は、受信フレームバッファ RAM535が共通受信路59へのアクセスを要求するかどうかを判定するため
に、フレームバッファ制御器56によって使用される。その出力は、信用が利用
可能であるかどうかを判定するため、バッファ間信用制御論理603(図12を
参照)によっても使用される。
【0092】 受信フレームバッファフレームカウンタブロック531は、現に受信フレーム
バッファRAM535にあるフレーム数を計数する。カウンタ531は、フレー
ムが受信フレームバッファRAM535に書き込まれる時に増分され、フレーム
が受信フレームバッファRAM535から読み出される時に減分される。その計
数(COUNT OF FRAMES IN BUFFER9544)は、信用
が利用可能であるかどうかを判定するために、バッファ間信用制御論理603に
よって使用される。一実施例においては、適切な保持時間を与えるために、RA
Mに入り込む(クロックを除く)すべての入力が遅延される。
【0093】 図10は、ファイバチャンネルデータフレームバッファ回路55のブロック図
である。データフレームバッファ55は、データフレームバッファ書き込み制御
器553、データフレームバッファ読み出し制御器554、データフレームバッ
ファRAM555、データフレームバッファ状態ブロック556、データフレー
ムバッファフレームカウンタ551、およびデータフレーム取得ブロック552
を含む。どのような時間においても1個のデータ転送のみが許可される。従って
、データフレームバッファ55はポートAとポートBによって共有される。
【0094】 データフレームバッファ書き込み制御ブロック553は、アドレス(WPTR
9555)、データ(WDAT9554)、およびデータフレームバッファRA
M555に対する書き込みイネーブル(WE9557)を発生する。書き込み動
作(ディスクに書き込まれるべきデータ)に対して、データフレームが受信され
ると、書き込みイネーブル(WE9557)をメモリ555に与えるために、事
前バッファ受信状態機械512からの状態イネーブルが使用される。読み出し動
作(ディスクから読み出されるべきデータ)に対して、書き込みイネーブル(W
E9557)をメモリ555に与えるために、フレームバッファ制御器56から
のイネーブルが使用される。アドレスが増分され、データフレームバッファRA
M555において利用可能なデータ/空間の大きさを判定するためデータフレー
ムバッファ状態ブロック556によって使用される、ラップビット(WRAP9
556)が与えられる。書き込み動作に対して、ループポート回路20からのデ
ータが、16ビット幅から32ビット幅に変換され、SOFまたはEOF区切り
記号を示すために、フラグビットが与えられる。受信されたフレームからのCR
Cは、データを保護するために、データフレームバッファRAM555を介して
送られる。すなわち、ファイバチャンネルから受信されるCRC情報は、データ
と一緒にデータフレームバッファ55に記憶される。その後、データがデータフ
レームバッファ55内に存在する際にそれらのデータに生ずるいかなるエラーも
検出されるように(もちろん、ファイバチャンネルループ1250を移動中にそ
れらのデータに生ずるエラーも検出され得るように)、そのCRC情報は、それ
らのデータがデータフレームバッファ55から読み出される際に(例えば、それ
らがオフチップバッファ111に転送される際に、)検査される。一実施例にお
いては、読み出し動作に対して、オフチップバッファ111からのデータが、1
6ビット幅から32ビット幅に変換され、データを保護するためにパリティが発
生される。ブロック553への入力信号は、PRE−BUFFER−RECEI
VE DATA8511およびPRE−BUFFER−RECEIVE STA
TES8512(図8を参照)、並びにDATA FROM OFF−CHIP
BUFFER3051(図3を参照)を含む。
【0095】 従って、一実施例においては、データがファイバチャンネルループ1250(
図2を参照)からデータフレームバッファRAM555を介して、その後オフチ
ップバッファ111に送られる場合、データフレームバッファRAM555内の
データがCRC情報によって保護される。しかし、ファイバチャンネルループ1
250に転送するために、それらがオフチップバッファ111からRAM555
に流れた場合には、パリティによって保護される(後者の場合、データがデータ
フレームバッファRAM555を出た後、CRC情報がファイバチャンネルに向
かっているデータに付加される)。
【0096】 データフレームバッファ読み出し制御ブロック554は、データフレームバッ
ファRAM555の読み出しアドレス(RPTR9559)を発生し、RAM5
55からデータ(RDAT9558)を取得する。書き込み動作(ディスクに書
き込まれるべきデータ)に対して、フレームバッファ制御器56は、データフレ
ームバッファ55を選択し、メモリへの読み出しが可能にさせられる。読み出し
動作(ディスクから読み出されるべきデータ)に対して、転送フレーム状態機械
81(図15を参照)は、メモリの読み出しを可能にさせる。アドレスが増分さ
れ、データフレームバッファRAM555においてどの程度のデータ/空間が利
用可能であるかを判定するため、データフレームバッファ状態ブロック556に
よって使用される、ラップビット(WRAP9560)が与えられる。書き込み
動作に対して、フレームバッファRAMからのデータがレジスタに取得され、フ
レ―ムの開始と終了を判定するためのフラグビットがモニターされる。データが
有効である時を示すため、イネーブルが共通受信路59によって使用されるよう
に与えられる。読み出し動作に対して、データフレームバッファRAM555か
らのデータがレジスタ中に取得され、パリティが検査される。ブロック554か
らの出力信号は、DATA FRAME BUFFER DATA9564、D
ATA VALID READ9563、およびDATA PARITY ER
ROR9562を含む。
【0097】 データフレームバッファRAM555は、同期RAMを含み、一実施例におい
ては、さらに組み込み自己テスト制御器を含む。一実施例では、RAMは、36
ビット幅(32ビットデータワード+4個のSOF/EOFフラグビットまたは
パリティビット)および3,232ワード長である。書き込み動作(ディスクに
書き込まれるべきデータ)に対して、受信データフレームのSOF、ヘッダ、ペ
イロード、CRCおよびEOFは、オフチップバッファ111および共通受信路
59へのアクセスが利用可能となるまで保持されるよう、RAM555に書き込
まれる。読み出し動作(ディスクから読み出されるべきデータ)に対して、ルー
プ1250が開かれ、データが転送されるまで保持されるように、ペイロードの
みがRAM555に書き込まれる。一実施例においては、適切な保持時間を与え
るために、RAMに入り込む(クロックを除く)すべての入力が遅延させられる
【0098】 データフレームバッファ状態ブロック556は、データフレームバッファRA
M555の書き込みおよび読み出しポインタを比較し、バッファが空であるかど
うかを判定し、バッファが空でない場合には、バッファ内においてどの程度の数
のデータ/空間フレームが利用可能であるかを判定する。書き込み動作に対して
、このブロック556(AVAILABLE SPACE9561)の出力は、
データフレームバッファ55が共通受信路59へのアクセスを要求するかどうか
を判定するために、フレームバッファ制御器56によって使用される。その出力
は、信用が利用可能であるかどうかを判定するため、バッファ間信用制御器60
3(図12を参照)によっても使用される。
【0099】 読み出し動作(ディスクから読み出されるべきデータ)に対して、ループ制御
ブロック40は、フレームが転送され得るかどうかを判定するために、フレーム
バッファ内のデータ量を監視する。データフレームバッファ閾値は、ループ12
50を開くよう調整するために適合される必要がある。全フレームが利用可能で
はないが、処理中である(データフレームバッファ55および/またはオフチッ
プバッファ111に格納されようとしている)場合には、ループ1250を開放
状態に保持させるために、データフレームバッファ保持閾値も発生される。
【0100】 データフレームバッファ・フレームカウンタブロック551は、入力信号FR
AME_OUT9550を使用して、現にデータフレームバッファRAM555
にあるフレーム数を計数する。カウンタ551は、フレームがRAM555に書
き込まれる時に増分され、フレームがRAM555から読み出される時に減分さ
れる。その計数(信号COUNT OF FRAMES IN BUFFER9
566)は、信用が利用可能であるかどうかを判定するために、バッファ間信用
制御器603によって使用される。
【0101】 データフレーム取得ブロック552は、イネーブル取得モードが動作可能にさ
れるとき、(入力信号ENABLE DATA WRITE DETECT95
51を用いて)受信データフレームを監視し、フレームヘッダの様々なフィール
ドを取得する。その後、これらの値(DATA CAPTURE OUTPUT
9565)は、マイクロプロセッサ112によって読み出される。
【0102】 再び図7を参照する。データフレームバッファ転送長カウンタ54の制御器は
、読み出しデータがいかにしてデータフレームバッファ55内に取り込まれるか
を制御する2個のカウンタを含む。(ブロック54内の)データフレームバッフ
ァ転送長カウンタは、ファイバチャンネル転送に対してどの程度多くのデータが
オフチップバッファ111から取り込まれるべきかを判定するために使用される
。どのフレームバッファがオフチップバッファ111にアクセスすべきかを再評
価するため、制御器56を一時停止させる前に(以下の章で説明される処理)、
(ブロック54内の)データフレームバッファ転送長カウンタは、ファイバチャ
ンネル転送に対してどの程度多くのデータがオフチップバッファ111から取り
込まれるべきかを判定するために使用される。
【0103】 フレームバッファ制御器56は、3個のフレームバッファ(すなわち、データ
フレームバッファ55、ポートA受信非データフレームバッファ53、またはポ
ートB受信非データフレームバッファ53′)のいずれが、オフチップバッファ
111のリソースへのアクセスを許可されるべきかを判定する。ポートがループ
初期化状態にあって、しかもそのポート受信非データフレームバッファ53(す
なわち、53または53′)が空でない場合には、ループ初期化フレームは最高
優先度を与えられ、その結果ループ初期化が進行できる。データ転送は、次の最
高優先度を与えられ、受信非データフレームバッファ53が満たされない限り続
行されることになる。
【0104】 受信非データフレームバッファ53の1個が、もはやフレームの空きを持たな
い場合には、その特定の受信非データフレームバッファ53は、幾つかのフレー
ムを排出させるためオフチップバッファ111へのアクセスを許されることにな
り、その後データ転送が再開される。
【0105】 オフチップバッファ111リソースを要求する第1のフレームバッファ(55
、53、または53′)は、オフチップバッファ111へのアクセスを許される
ことになる。両方のポートが同時にフレームを受信する場合、ポートAが最初に
アクセスを許可される。一旦、フレームバッファ制御ブロック56が、オフチッ
プバッファ111へのフレームバッファアクセスを与えると、代替ポートの受信
非データフレームバッファ53が満たされ、または初期化が開始され、またはデ
ータ転送が開始されない限り、そのフレームバッファのサービスが続行される。
所定のポートについてのフレームは、そのポートへの配送順にオフチップバッフ
ァ111に転送されることになる。
【0106】 ファイバチャンネルからのデータ速度がオフチップバッファ111に支持され
得ない場合には、フレームバッファ制御器56とオフチップバッファ111間の
データ転送が、バッファ制御インタフェース論理58によって一時停止させられ
る。
【0107】 図11は、共通受信路回路59のブロック図である。この回路は、フレームバ
ッファ(55、53、または53′)の1つから出力されてくるフレームを受け
取り、オフチップバッファ111用のフレームを作成する。この論理59はSO
Fを認識し、妥当性チェックのため受信ヘッダから情報を取得する。CRCが検
査され、フレームがオフチップバッファ111の適切なバッファ領域に経路付け
される。
【0108】 受信バッファ復号化ブロック591は、(入力データ信号FRM BUFFE
R DATA9570およびイネーブル信号VAL_READ9571から導か
れる)フレーム開始およびフレーム終了区切り記号を復号化し、フレーム有効性
チェックのために共通受信路59によって使用される信号を発生する。EOF区
切り記号は、受信路ブロックに対して変換される、組み込まれたエラー状態(フ
レーム長エラーまたは連続不均衡エラー)を持つかも知れない。
【0109】 受信フレーム化状態機械592は、フレーム境界を判定するため入力ストリー
ムを監視する。SOFが検出されたとき、ヘッダの各ワードを取得させ、CRC
チェッカー596、ヘッダ妥当性制御器595、および(5991、5992、
および5993と一緒に)バッファ制御器598を動作可能にさせるための信号
が発生される。状態機械592は、ヘッダ中に受信される無効プリミティブを検
査すると共に、許容される最大フレーム長を侵害する転送を検査する。共通受信
路59は、一時的に停止され得るので、フレーム取得および有効性ブロックが適
切に動作可能にされるように、状態機械592の状態出力はアクティブ後非アク
ティブになるパルスである。
【0110】 受信フレーム長カウンタ(マルチプレクサ5931およびカウンタ5932)
は、受信フレームのヘッダからのR_CTLフィールドに基づいて、命令、また
は(信号MAX SIZE INPUTS9572からの)データフレームのい
ずれかの最大フレーム長を持つフレームの始めにロードされる。EOFが検出さ
れる前にカウンタが零になる場合には、フレーム長エラーが検出され、そのフレ
ームは無効とされる。この機能は、フレーム用のオフチップバッファ111内の
割付空間を越えることを防止するのに役立つ。
【0111】 受信フレームヘッダ取得ブロック594は、受信ヘッダの様々なフィールドを
取得するために、受信フレーム化状態機械592からの信号を使用する。取得さ
れた値は、フレーム有効性論理によって使用される。
【0112】 フレームが受信されると、CRCチェッカーブロック596が、そのフレーム
の終了時にCRCを検査する。(CRC STATUS9596によって示され
た)CRCエラーが検出された場合には、そのフレームは無効とされる。CRC
チェッカー596は、受信フレーム化状態機械592によって動作可能にされる
。ヘッダフィールドの内容、ペイロードフィールド、およびCRCワードが処理
される。
【0113】 III. オンチップメモリ内のデータ健全性にファイバチャンネルCRCを使用す る方法
【0114】 本発明の1つの観点によれば、ファイバチャンネルフレームを一時的に記憶す
るフレームバッファは、フレームがファイバチャンネルインタフェースの最大デ
ータ転送速度で受信させられるようにする。フレームは、その後、より一層遅い
、一層管理可能な速度で、オフチップ記憶装置に転送される。データがフレーム
バッファに記憶されようとする間にデータを保護するため、パリティ、CRC、
または別の冗長機能など、様々な機構が任意に使用される。
【0115】 一実施例においては、受信されたファイバチャンネル巡回冗長コード(「CR
C」)をデータと共にフレームバッファを通過させることによって、データ健全
性検査が高められる(すなわち、CRCはフレームと共にフレームバッファに記
憶され、その後、フレームと共に読み出される)。RAMを拡張させる特別なパ
リティビットが取除かれる。(様々な実施例において、フレームバッファは、デ
ータフレームバッファ55および/または受信非データフレームバッファ53ま
たは53′である。)CRCは、データがRAMから読みだされた後に、そして
データがオフチップ(すなわちオフチップバッファ111に)転送される前に検
査される。入りデータ路上の特別なパリティビットも、インタフェースからフレ
ームバッファの入り側に、およびフレームバッファの出側からCRCチェッカー
596の入力に、除去される。
【0116】 オフチップRAMへのインタフェースは、一度に1個の転送のみを取扱い、オ
ンチップRAMより遅くかつファイバチャンネル転送速度よりも遅いので、共通
受信路論理59は、非データフレームバッファ53および53′とデータフレー
ムバッファ55との間で共有される。CRCは、フレームがオフチップに行く直
前に検査される(すなわち、フレームがオンチップバッファ53、53′または
55からオフチップバッファ111に転送される)ので、1個のCRCチェッカ
ー596のみが必要である。反対に、CRCがフレームと共にフレームバッファ
に記憶されず、その後オフチップバッファ111への途中で検査される場合には
(「CRCのオンチップフレームバッファ通過」と呼ばれる)、2個のCRCチ
ェッカーが必要とされる(すなわち、前置バッファ路51および51′内に配置
される)。
【0117】 一実施例においては、データが、より一層遅いオフチップバッファ111から
転送され、フレームバッファ内に一時的に記憶され、ファイバチャンネルインタ
フェース上の最大データ転送速度で送信されるとき、この機構は逆方向に対して
も使用される。
【0118】 フレームが受信されると、受信されるフレームの型を判定するため、経路付け
制御復号ブロック5933によって、R_CTLフィールドが復号化される。R
_CTLフィールドは、そのフレームをオフチップバッファ111の適切な領域
に経路付けするために使用されると共に、どの有効性検査がそのフレームになさ
れべきかを判定する。
【0119】 ヘッダ妥当性論理595は、受信フレームヘッダの内容を解析する。フレーム
のR_CTLフィールドに基づいて、様々なフィールドが検査される。いずれか
の有効性検査が非データフレームについて失敗した場合には、そのフレームは無
効とされる。データ書き込み転送がアクティブのとき有効性検査がデータフレー
ムについて失敗した場合には、マイクロプロセッサ112が通知を受ける。
【0120】 受信フレーム状態ブロック597は、受信したフレームについての情報を集め
、無効データがオフチップに行くことを妨げ、そして信号FRAME STAT
US9580を発生する。フレームが有効でない場合には、(データ転送がアク
ティブでなければ)そのフレームは当然無視される。
【0121】 命令カウンタ5992は、幾つの命令フレームがオフチップバッファ111の
命令領域に含まれているかを追跡するために使用される。有効な命令が受信され
ると、このカウンタ5992は増分される。マイクロプロセッサ112が命令で
終了したとき、そのマイクロプロセッサは、(マイクロプロセッサ112からの
信号MPU DECREMENTS9574を用いて)命令カウンタ5992を
減分する必要がある。ブロック5992は、割込み要求CMD RCVD IR
Q9578を出力する。
【0122】 バッファ間信用を与えるため、(マイクロプロセッサ112からの信号MPU
INCREMENTS9575を用いて)どのくらい多くの空間がオフチップ
バッファ111の“他の”領域内に残っているかを探知するために、“他の”空
間カウンタ5991が使用される。このカウンタ5991は、命令でもデータフ
レームでもない有効なフレームが受信されたとき、またはオフチップバッファ1
11が一杯のときに命令フレームが受信されたときに減分される。マイクロプロ
セッサ112がフレームで終了したとき、別のフレームに対する空間が存在する
ことを示すために、マイクロプロセッサは“他の”空間カウンタ5991を増分
する必要がある。“他の”空間カウンタ5991は、オフチップバッファ111
の“他の”領域に適合するであろうフレーム数を指示(信号OTHER COU
NT9576および割込み要求OTHER RCVD IRQ9577)する。
【0123】 フレームが受信されると、(他のカウンタ5991を減分し、命令カウンタ5
992を増分するために、信号INCR/DECR9573を発生する)受信フ
レームバッファ制御器598および最終4発生論理5993は、フレームを適切
な領域に差し向けるために、オフチップバッファ111の論理への信号(CON
TROLS FOR OFF−CHIP BUFFER7589)を発生する。
【0124】 図12は、論理の送受信部の制御論理を含む、ファイバチャンネル転送制御回
路60のブロック図である。転送制御回路60は、転送制御およびバッファ間信
用制御603を含む。
【0125】 データ利用可能/空間カウンタブロック604は、動作がデータ書き込みまた
はデータ読み出しであるかどうかによって、どの程度多くのオフチップ空間また
はデータが利用可能であるかの指示(DATA AVAILABLE6019)
を与える。データ書き込み転送に関して、データ利用可能/空間カウンタブロッ
ク604は、BB_CREDITが与えられるために、どの程度多くの空間がオ
フチップバッファ111のデータ部分において(フレームの観点において)利用
可能であるかを指示するために使用される。データ読み出し転送に関して、デー
タ利用可能/空間カウンタブロック604は、どの程度多くのデータフレームが
オフチップバッファ111において利用可能であるかを指示するために使用され
る。バッファポインタの差違が、フレーム毎のワード数を示すマイクロプロセッ
サロード可能な(すなわち、プログラム可能な)値と比較される。
【0126】 バッファ間信用制御論理603は、フレームが送られるようにさせるため、バ
ッファ信用(信号PORT BB_CREDIT AVAILABLE TO
TRANSMIT R_RDY6017)を接続されたポートに与える。この信
用は、R_RDYに送ることによって与えられる。いかなるポートに与えられる
信用量も、以下によって決定される。 1)ディスクドライブ100に対して、どの程度多くの受信空間がオフチップ
バッファ111において利用可能であるか。 2)ディスクドライブ100に対して、どの程度多くの受信空間が受信非デー
タフレームバッファ53およびデータフレームバッファ55において利用可能で
あるか。 3)信用が与えられた場合、ドライブ100が開かれているポートが利用可能
な空間を占有できるフレームを潜在的に送ることができるかどうか。
【0127】 バッファ間信用は、ポート毎を基準として決定される。バッファ間信用制御ブ
ロック603は、いつ信用が利用可能であるかを示すための信号をループポート
A/B開制御ブロック42および42′(図6参照)に対して発生する。その後
、ループ制御ブロック40が、R_RDYの送信を制御する。
【0128】 転送制御回路60の残りは、転送中に使用されるカウンタを含む。受信R_R
DYカウンタ606は、入力PORT R_RDY RECEIVED6010
(ポートAおよびポートBに対してそれぞれ1個)およびPORT FRAME
TRANSMITTED6011(ポートAおよびポートBに対してそれぞれ
1個)から、各ポート上でどの程度多くの信用のR_RDYが受信されたかを判
定し、信号PORT CREDIT AVAILABLE TO TRANSM
IT A FRAME6020を出力する。送信R_RDYカウンタ601は、 入力PORT R_RDYTRANSMITTED6001(ポートAおよびポ
ートBに対してそれぞれ1個)およびPORT FRAME RECEIVED
6002(ポートAおよびポートBに対してそれぞれ1個)から、各ポート上で
どの程度多くの信用のR_RDYが送信されたかを判定する。シーケンスカウン
タ607は、データ書き込み転送時に、受信されたフレームが順に到着すること
を検査するために使用され、かつデータ読み出し転送時に、データフレームのヘ
ッダ内に送信されたSEQUENCE COUNT6022を発生するために使
用される。相対的オフセットカウンタ608は、データ読み出し転送時に、デー
タフレームのヘッダ内に送信されたRELATIVE OFFSET COUN
T6023を発生するために使用される。転送長カウンタ609は、どの程度多
くの転送データがあるかを判定し、転送完了時に指示(TRANSFER LE
NGTH COUNT6024)を与える。
【0129】 (単一フレーム送信路回路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 D
ATA3095を出力すると共に、ブロック74および76を介して、XMT_
DPTH DATA7007(送信されるようとしているCRCを含む出力フレ
ーム)を出力する。
【0130】 単一フレーム送信路回路70は、ループ制御回路40からの要求を受け入れ、
単一フレーム送信フレームバッファ73に存在するフレームを送信する。この回
路70は、適切なフレーム区切り記号を発生し、フレームバッファからのペイロ
ードおよびヘッダを読み出し、CRC発生器76で適切なCRCを発生する。こ
の回路70は、また、最新充填ワードを送信するためのループポート回路20に
信号を発生し、フレーム終端(EOF)が転送されようとする時を指示し、最新
の連続している不均衡に基づいてデコーダにEOFの第2のキャラクタを発生さ
せる。
【0131】 単一フレーム送信状態機械72は、(信号SEND_FRAME7001によ
って)ループ制御回路40からの要求を受け入れ、フレームを送信する。フレー
ムが送信されると、この状態機械72は、フレーム区切り記号、ヘッダ、および
ペイロードを適切な時に転送させるために、送信マルチプレクサ74に送られる
フレームの各部に対する選択(すなわち、選択信号)を与える。この状態機械7
2は、また、CRC発生器76にイネーブルを発生する。また、いつEOF信号
を送信するかを判定するため、8B/10Bエンコーダ27(図4を参照)に制
御が与えられる。フレームが送信された時、信号が発生され、ループ制御回路4
0に送ってその回路に動作を続行させる。
【0132】 適切な時間に最終CRCが出力されるようにするため、ハードウエアがどのく
らい長いフレームがあるか判定できるように単一フレーム送信フレーム長カウン
タ71が使用される(CRCは、一度に一ワードを繰返し計算し、フレームのデ
ータ部分が出力される際に累算される)。カウンタ71は、フレームの始めに、
送信フレーム長レジスタからロードされ、フレームが送信されている間に動作可
能にされる。カウンタ71は、単一フレーム送信状態機械72によって動作可能
にされ、いつCRC発生器76を動作可能にするかを判定するため、状態(すな
わち、状態情報)を状態機械72に与える。
【0133】 単一フレーム送信出力マルチプレクサ74の出力は、EOFの前に含まれるC
RC残留ワードを判定するためのCRC発生器76への入力であり、それはマル
チプレクサ79を介してループポート回路20(図3)に供給される。単一フレ
ーム送信状態機械72は、このマルチプレクサ74に対して選択を発生し、フレ
ーム区切り記号、ヘッダ、およびペイロードが適切な時に転送させられるように
する。
【0134】 単一送信充填キャラクタ発生器ブロック75は、Kキャラクタ、最新充填ワー
ド、およびEOF区切り記号が単一フレーム送信路回路70から送信されている
ときを判定する。出力信号XMIT CONTROLS7010は、どのループ
が単一フレーム送信路回路70へのアクセスを持つかを決定する、送信路マルチ
プレクサ79に行く。
【0135】 図14は、ファイバチャンネル送信フレームバッファ73のブロック図である
。この実施例において、単一フレーム送信フレームバッファ73は、単一フレー
ムバッファ書き込み制御733、単一フレームバッファ読み出し制御734、お
よび単一フレーム送信フレームバッファRAM735を含む。単一フレーム送信
フレームバッファ73は、受信したループ初期化フレーム、出力ループ初期化フ
レーム、および出力単一フレームを記憶するために使用される。一実施例におい
ては、送信バッファRAM735の40ワードが、ポートAに格納され、40ワ
ードがポートBに格納される。
【0136】 単一フレームバッファ書き込み制御ブロック733は、単一フレームバッファ
RAM735に対して、アドレス(WPTR1411)、データ(WDAT14
10)、および書き込みイネーブル(WE1412)を発生する。それらの入力
は、DATA FROM RECEIVE PATH1401、PORT A
FRAME1403、PORT B FRAME1404、登録済MPU DA
TA9533、および登録済MPU ADDRESS9534を含む。ループ初
期化フレームが受信されたとき、妥当性に対する共通受信路59を介して移動で
きるまで、そのフレームが受信非データフレームバッファ(53または53′)
の1つに、最初に記憶される。そのフレームをオフチップバッファ111に転送
するというよりは、そのフレームは、単一フレーム送信フレームバッファ73に
書き込まれる。これは、また、オフチップバッファ111が代替ポート上のデー
タ転送に一層専用化される。ループポートからのデータは、16ビット幅から3
2ビット幅に変換され、フレームの開始アドレスは、そのフレームが関係するポ
ートに基づいて決定される。
【0137】 マイクロプロセッサ112は、また、ループ初期化フレームを修正し、または
出力フレームを構築するため、単一フレーム送信フレームバッファ73に書き込
みできる。単一フレーム送信フレームバッファ73内のデータを保護するため、
パリティが発生される。
【0138】 単一フレーム送信バッファ読み出し制御ブロック734は、単一フレーム送信
バッファRAM735の読み出しアドレス(RPTR1414)を発生し、RA
M735からデータ(RDAT1413)を取得する。入力は、SEND FR
AME1407およびXMIT STATES1408を含む。単一フレーム化
状態機械72が、フレームを送信できるようにすると、単一フレーム送信バッフ
ァRAM735の読み出しが可能とされる(SINGLE_FRAME TRA
NSMIT BUFFER DATA1415を出力)。マイクロプロセッサ1
12は、このフレームバッファを読み出し、受信したループ初期化フレームにア
クセスする。送信フレームバッファRAM735からのデータは、レジスタに取
得され、パリティが検査される(出力PARITY ERROR1416を発生
)。
【0139】 単一フレーム送信バッファRAM735は、同期RAMおよび、一実施例にお
いては、組込み自己テスト制御器を含む。RAMは、36ビット幅(32ビット
データワード+パリティの4ビット)と80位置長を持つ。フレームのヘッダお
よびペイロードは、審査のためにマイクロプロセッサ112に対して、またはル
ープ1250上での送信に対して保持されるよう、送信フレームバッファRAM
735中に配置される。一実施例においては、適切な保持時間を与えるために、
RAMに入力される(クロックを除く)すべての入力が遅延される。
【0140】 図15は、フレームを送信するため、ループ制御論理40からの要求を受け入
れるデータ送信路回路80のブロック図である。回路80は、適切なフレーム区
切り記号を発生し、マイクロプロセッサにロード可能なレジスタからヘッダを構
築し、CRCを発生する。また、回路80は、最新充填ワードを送信するための
ループポート回路20に信号を発生し、EOFが転送されているときを示し、現
在の連続している不均衡に基づいて、エンコーダにEOFの第2のキャラクタを
発生させる。
【0141】 データ送信フレーム化状態機械81は、フレームを送信するためループ制御論
理40から要求(信号SEND FRAME8001)を受け入れる。フレーム
が送信されると、状態機械81はフレームの各部分に対する選択を与え、フレー
ム区切り記号、ヘッダ、およびペイロードが適切な時間に転送されるように、マ
ルチプレクサ86に送信する。また、機械81は、CRC発生器87に対してイ
ネーブルを発生する。フレームが送信されたとき、ループ制御論理40に信号が
発生され、それを続行させる。
【0142】 データ送信フレーム長カウンタ82は、そのハードウエアにフレームがどの程
度の長さかを判定させ、CRCが適切な時間に発生されるようにするために使用
される。データ送信フレーム長カウンタ82は、送信フレーム長レジスタからの
フレームの始めにロードされ、フレームが送信されている間動作可能にされる。
データ送信フレーム長カウンタ82は送信フレーム化状態機械81によって動作
可能にされ、CRC発生器87をいつ動作可能にするかを判定するため、状態を
状態機械に与える。
【0143】 データフレーム送信出力マルチプレクサ86の出力は、データ送信路をマルチ
プレクサ79に与えるCRC発生器87の入力である。データ送信フレーム化状
態機械81は、このマルチプレクサ86に対する選択を与え、フレーム区切り記
号、ヘッダ、およびペイロードが適切な時間に転送されるようにさせる。この入
力は、FRAME BUFFER DATA8004、HEADER REGI
STERS8005、TRANSFER COUNTS8006、およびTRA
NSFER−READY PAYLOAD8007を含む。その出力は、STA
TES TO FRAME BUFFER READ CONTROL8009
を含む。マルチプレクサ86内の区切り記号発生器は、フレーム送信時にどのフ
レーム開始(SOF)およびフレーム終了(EOF)プリミティブを使用するか
を決定する。
【0144】 データフレーム送信出力マルチプレクサ86の出力は、EOF前に含まれるC
RC残留ワードを決定するため、CRC発生器87を介して転送される。CRC
発生器87に対するイネーブルは、データ送信フレーム化状態機械81から来る
。また、EOF信号をいつ送信するかを決定するための制御が、8B/10Bエ
ンコーダ27(図4を参照)に与えられる。CRC発生器87の出力は、XMT
_DPTH DATA8008(転送されるべきCRCを含んでいる出力フレー
ム)である。
【0145】 データ転送充填キャラクタブロック85は、Kキャラクタ、最新充填ワード、
およびEOF区切り記号がデータ送信路回路80から送信されているときを判定
する。出力信号XMIT OUTPUTS8010は、どのループがデータ送信
路回路80にアクセスしたかを判定する送信路マルチプレクサ79に行く。
【0146】 送信路マルチプレクサ79(図3を参照)の出力は、ループポート回路20内
のポートAおよびポートB調整ループ論理26への入力である。単一フレーム路
70およびデータ路80からのデータおよび制御信号は、送信路マルチプレクサ
79によって適切なポートに選択される。また、送信路マルチプレクサ79は、
R_RDYプリミティブをポートに振り分ける。これによって、両方のポートに
同時に送信させることができる。
【0147】 IV. 調整ループのオーバヘッドを低減させるための方法および装置 ファイバチャンネル調整ループ設計1200において、ループポート116の
ノードインタフェース1220は、ループ1250へのアクセスに対して調整さ
れる必要がある。どのポートがループ1250の制御を得るかを判定するために
、優先度システムが使用され、ポートがスターブ(starve)されないことを保証
するために、“公平”構造が使用される。目標装置として、ディスクドライブ1
00は、通常CPU1202よりも低い優先度が与えられる。より高い優先度の
装置がそれらのアクセスを完了するまで、ドライブ100は調整を得るまで待た
ねばならないという結果となる。不必要な調整サイクルを避けるために、ループ
ポート116のノードインタフェース1220がループ1250の制御を得ると
、そのノードインタフェースは、ループを閉じる前にできるだけ多くのフレーム
を送る。しかし、データがもはや利用可能ではないとき、ループポート116の
ノードインタフェース1220は、ループ1250を閉じ、他のポートがループ
1250にアクセスすることを可能にさせる。これは、ある別の制御器技術にお
いて使用される方法である。本発明は、ポートへのデータ利用可能性に基づいて
、ループ1250を閉じるかどうかの決定ルールを変更することによって、ルー
プ性能を高めるための機構を提供する。従って、ループ全体のオーバヘッドが低
減される。
【0148】 ある別の制御器技術においては、フレーム終了区切り記号が送信されるとき、
ポートは、他のフレームが利用可能であるかどうかを判定する。データがもはや
利用可能ではない場合(例えば、全フレームが送信に対して利用可能ではない)
には、ループ1250は閉じられる。その後すぐにデータは利用可能になる。従
って、ポートは後で再び調整を行なう必要があり、転送を続行する前に調整を得
る。これが転送の最終フレームが利用可能になる際に起こる場合、転送の完了が
遅延され、次の命令が処理され得る前に遅れが生ずることになる。
【0149】 本発明は、データが即座にポートに対して利用可能となる場合、ループ125
0がそのポートによって開に保持されるようにさせる、制御器技術設計の機構を
提供する。これにより、ループポート116のノードインタフェース1220が
出力データ転送中に調整しなくてはならない回数が低減され、従って、転送をよ
り早く完了させることができる。以下の条件の両方が成立するとき、(そのルー
プのポートの続いている制御を正当に評価するために)ポートに対して利用可能
になる十分なさらなるデータに備えて、ループ1250は開に保持される。 ・少なくともXフレームが利用可能なオフチップであり、 ・データの少なくともYワードが、データフレームバッファ55において利用
可能である。
【0150】 そのような一実施例においては、Xの値(ここで、Xは、ループ1250を開
状態に保持するためにオフチップバッファ111において利用可能であることを
必要とするフレーム数を表わす)およびYの値(ここで、Yは、ループ1250
を開状態に保持するためにオンチップバッファにおいて利用可能であることを必
要とするワード数を表わす)は、それぞれ別個に(例えば、マイクロプロセッサ
112によるファームウエアコードによって)プログラム可能である。別の実施
例においては、(必ずしもフレーム数として特定されない)所定のデータ量がオ
フチップバッファ111において利用可能であるとき、ループ1250は開状態
に保持される(そのような一実施例においては、オフチップバッファ111にお
いて利用可能であることが必要な所定のデータ量は、プログラム可能である)。
【0151】 別の実施例においては、(必ずしもワード数として特定されない)所定のデー
タ量がオンチップバッファ119において利用可能であるとき、ループ1250
は開状態に保持される(そのような一実施例においては、オンチップバッファ1
19において利用可能であることが必要な所定のデータ量は、プログラム可能で
ある)。一実施例においては、所定量のデータが利用可能であるが(少なくとも
1個の半フレームオンチップおよび少なくとも1個のフレーム利用可能オフチッ
プ)、フレーム全体が利用可能なオンチップであるまでフレームの転送が開始し
ない場合、ループ1250は開状態に保持される。
【0152】 例えば、一実施例においては、オンチップデータフレームバッファ55は、少
なくとも6個のデータフレームを保持するに充分なほど大きい(すなわち、21
12バイトの最大フレームサイズの6フレーム)。送信されているデータは、(
例えば、ディスクプラッタ134から)最初にオフチップバッファ111に転送
され、その後オンチップデータフレームバッファ55に転送される。典型的には
、ほぼ毎秒106メガバイトまでの速度で、データがデータフレームバッファ5
5から転送され、一方、一実施例においては、オフチップバッファ111からオ
ンチップデータフレームバッファ55への転送は、より遅い速度で行われる。全
フレームより少ないフレームが既にオンチップデータフレームバッファ55に転
送されている場合、それらのデータが外部への転送を要求される前に、フレーム
の最後の部分がオンチップデータフレームバッファ55に転送される限り、ほぼ
毎秒106メガバイトのファイバチャンネル全速度でフレーム転送を開始し、全
フレームの転送を完了させることが可能である。
【0153】 従って、本発明の一実施例によれば、少なくとも2分の1のデータフレームが
オンチップデータフレームバッファ55に含まれ、かつ少なくとも1個のデータ
フレームがオフチップバッファ111に含まれている場合には、ループ1250
は開状態に保持される。そのような一実施例においては、ループ1250の制御
を保つために(“ループを開に保持する”ために)必要とされるこのデータ量は
、オンチップバッファ55においてほぼ1000バイトのデータ(すなわち、2
112バイトフレームの2分の1)であり、そしてオフチップバッファ111に
おいてほぼ2000バイトのデータ(すなわち、2112バイトフレーム分)で
ある。両者の量は、マイクロプロセッサ112によって設定されるプログラム可
能な値である。一実施例においては、丁度説明したように、所定量のデータが利
用可能な場合には、ループ1250は開に保持される。しかし、フレームの転送
は、全フレームが利用可能なオンチップである後でのみ開始する。そのような一
実施例においては、CFW(最新充填ワード)信号は、全フレームがオンチップ
であり、フレームの送信が開始できるまで、ループ1250上に送信される。
【0154】 外部転送に利用可能なフレーム数の計数は、本発明の一実施例のオフチップバ
ッファ111における制御器によって生成される。データが、データフレームバ
ッファ中に転送するために利用可能であるかどうかを判定するために、ファーム
ウエアプログラム可能な計数Xフレーム(ループを開に保つためにオフチップバ
ッファ111において必要とされるフレーム数)が、転送に利用可能なフレーム
数の計数に対して比較される。データフレームバッファは、オフチップのより遅
いメモリからデータを一時的に蓄えるために使用されるオンチップRAMである
。従って、データは、完全なファイバチャンネルインタフェース速度で送信され
得る。ループ1250を開に保つために十分なデータがすでにデータフレームバ
ッファにあるかどうかを判定するために、第2の比較器が、データフレームバッ
ファ内で利用可能なデータ量を、ファームウエアプログラム可能な計数、Yワー
ド(ループを開に保つためにオンチップバッファ55において必要とされるワー
ド数)と比較するために使用される。XおよびYの値は、この論理が様々なオフ
チップランダムアクセスメモリ(“RAM”)ソリューションおよび転送速度で
使用されるようにさせるため、ファームウエアプログラム可能である。
【0155】 本発明の1つの目標は、ループ1250を開に保持し、データがすぐにポート
116に対して利用可能であるときに余分な調整サイクルを避けることにある。
これは、ループ1250上の他のポートが転送を実行することを防止するので、
待ちが延長された時間(例えば、ヘッドスイッチを実行するために必要な時間)
となる場合に、利用可能となるデータを待ちながらループ1250が開に保持さ
れてはならない。
【0156】 (結論) ループ初期化と応答のための専用の送信フレームバッファ(73)を含むファ
イバチャンネルループ・インタフェース回路(1220)について述べた。この
ような専用の送信フレームバッファ(73)を有することにより、他方のポート
(116)がデータフレームを送信あるいは受信中に、デュアルポートノード(
1220)の一方のポート(116)が初期化、あるいは応答フレームを送信で
きるものとなる。専用の受信バッファ(53および55)もまた、2ポートノー
ド(1220)の各ポート(116)に対して設けられる。フレームとともにフ
ァイバチャンネルから受信した巡回冗長コード情報は、3つのフレームバッファ
(53、53′および55)の1つに格納される。これらのデータとCRCは、
後で、フレームバッファ(53、53′および55)に存在する間にデータの健
全性を保証するために検査される。ループの制御のための調整に要する時間を減
らすために、プログラミングにより選択的に決定された最小量のデータ(プログ
ラム可能なデータと称する)が送信のために利用可能である限り、ループ(12
50)の制御は維持(即ち、ループ接続は開状態を保持)される。
【0157】 本発明は、オンチップメモリ中でのデータ健全性のためのファイバチャンネル
巡回冗長コード(CRC)を用いるための通信チャンネルシステム(1220)
を提供するものである。本システム(1200)は、第1のポート(116)と
第2のポート(116)を有し、各ポート(116)はファイバチャンネル調整
ループ通信チャンネル(1250)をサポートし、各通信チャンネル(1250
)は通信チャンネル(1250)上のデータ送信中に巡回冗長コードを含む、第
1のチャンネルノード(1220)を含んでいる。本システム(1200)は、
第1のチャンネルノード(1220)に位置し、フレームと、受信されたフレー
ムに対応したCRCとを通信チャンネル(1250)から受信するオンチップフ
レームメモリ(53または55)と、オンチップフレームメモリ(53または5
5)中に存在する受信されたフレームのデータ健全性検査のための受信された対
応したCRCを用いる健全性装置(596、553)を含んでいる。
【0158】 本システムの1つの変形は、さらに、動作中にオンチップフレームメモリ(5
3または55)と健全性装置(596、553)とを結合するオフチップメモリ
(111)と、受信したフレームをオンチップメモリ(53または55)からオ
フチップメモリ(111)に移動させる間に巡回冗長コードを検証する健全性装
置内の検証回路(596)とを含んでいる。
【0159】 このような実施例は、さらに、データがオフチップメモリ(111)からオン
チップメモリ(55)に移動する際に、パリティを生成しデータに付与するパリ
ティ生成回路(553)を含み、ここで健全性回路は、さらに、データフレーム
をオフチップメモリ(111)に移動させる間に、巡回冗長コードを検査し取り
除く。この実施例の他の様態では、オンチップフレームメモリ(55)は、さら
に、巡回冗長コードを含まないデータフレームをオフチップメモリ(111)か
ら受信し、また、システムは、さらに、オフチップメモリ(111)から受信し
たデータフレームに基づき巡回冗長コードを生成するCRC発生器(87)と、
生成された巡回冗長コードを含むデータフレームをオフチップメモリ(111)
から通信チャンネル(1250)上に送信する送信機(トランシーバ115の一
部)を含んでいる。さらに、他の実施例では、送信されるべきデータフレームを
、オフチップメモリ(111)からオンチップメモリ(55)に転送し、パリテ
ィを付与するもののCRC情報は含めずに、オンチップメモリ(55)に格納す
る。そのような一実施例では、通信チャンネル(1250)からオンチップメモ
リ(55)に転送された受信データフレームを、CRCは付与するもののパリテ
ィ情報は含めずに、オンチップメモリ(55)に格納する。
【0160】 1つの変形として、本発明によりシステム(1200)を構築し、ここでは、
該システム(1200)は、さらに、動作中に第1のチャンネルノード(122
0)と結合する磁気ディスク記憶装置(1256)と、動作中に第2のチャンネ
ルノード(1220)と結合するコンピュータシステム(1202)とを含むも
のとする(即ち、コンピュータシステム(1202)は第2のチャンネルノード
(1220)を有するものとする)。第2のチャンネルノード(1220)は、
動作中に第1のチャンネルノード(1220)と結合し、ファイバチャンネル調
整ループ通信チャンネル(1250)を介して、第1のチャンネルノード(12
20)と第2のチャンネルノード(1220)との間でデータを転送する。
【0161】 本発明の他の観点は、ディスクドライブ(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,55
3)と結合するオフチップメモリ(111)と、受信したフレームをオンチップ
メモリ(53または55)からオフチップメモリ(111)に移動させる間に巡
回冗長コードを検証する健全性装置(596,553)中の検証回路(596)
とを含んでいる。
【0162】 本発明のさらに他の観点は、通信方法を提供する。本方法は、 (a)第1のチャンネルノード(1220)の第1ポート(116)と第2ポ
ート(116)のそれぞれの上で、ファイバチャンネル調整ループ通信チャンネ
ル(1250)をサポートし、 (b)通信チャンネル(1250)からフレームを受信し、ここで、受信した
フレームは、受信したフレーム中の他のデータに基づく巡回冗長コードを含み、 (c)巡回冗長コードを含む受信フレームをフレームバッファ(53または5
5)に格納し、 (d)フレームバッファ(53または55)とは独立したメモリ(111)に
、受信フレームを格納し、 (e)受信フレームを独立したメモリ(111)に転送する間に、巡回冗長コ
ード(CRC)を検証することにより、受信フレームの正しさを検査するステッ
プを含んでいる。 一実施例では、本方法は、 (f)送信すべきフレームをオンチップフレームバッファ(55)に載せ、 (g)送信すべきフレーム中のデータに基づき巡回冗長コードを生成し、 (h)巡回冗長コードを含み、送信すべきフレームを通信チャンネル(125
0)に送信するステップを含んでいる。 本方法の一実施例では、搭載ステップ(f)は、さらに、 (f)(i)送信すべきフレームのデータのパリティを生成し、 (f)(ii)送信すべきフレームのデータにパリティを付与し、移動ステッ
プ(d)は、さらに、 (d)(i)受信フレームを独立したメモリ(111)に移動させる間に巡回
冗長コードを取り去るステップを含むものである。 本方法の他の実施例では、受信ステップ(b)は、さらに、 (b)(i)受信フレームを通信チャンネル(1250)から受信している間
に、巡回冗長コードを検証することにより、受信フレームの正しさを検査するス
テップを含むものである。
【0163】 一実施例では、本方法は、さらに、 (i)ファイバチャンネル調整ループ通信チャンネル(1250)を介して、
動作中に第1のチャンネルノード(1220)と結合する磁気ディスク記憶装置
(1256)と第2のチャンネルノード(1220)を有するコンピュータシス
テムとの間で、データを転送するステップを含み、ここで、第2のチャンネルノ
ード(1220)は、通信チャンネル(1250)によって、動作中に第1のチ
ャンネルノード(1220)と結合する。
【0164】 本発明の、さらに他の観点は、第1ポート(116)と第2ポート(116)
を有するチャンネルノード(1220)を含み、各ポート(116)は、ファイ
バチャンネル調整ループ通信チャンネル(1250)をサポートし、各通信チャ
ンネル(1250)は、通信チャンネル(1250)上のデータ送信中に巡回冗
長コードを含む、通信チャンネルシステム(1200)を提供する。本システム
は、また、巡回冗長コードを含むフレームを、チャンネルノード(1220)か
ら受信するバッファ(53または55)と、バッファ(53または55)とは独
立したオフチップメモリ(111)とを含む。本システム(1200)は、また
、受信フレームをバッファからオフチップメモリに移動させ、受信フレームをオ
フチップメモリに移動する間に巡回冗長コード(CRC)を検証することにより
、受信フレームの正しさを検査するための手段(本明細書全体で記述されるもの
として)を含んでいる。一実施例では、本移動手段は、さらに、フレームが検査
されオフチップメモリに移動される際に、CRCを取り除くための手段を含んで
いる。
【0165】 このように、本発明は、フレームが1つ以上の専用の非データバッファ(53
)および専用のデータバッファ(55)の双方または何れか一方に格納される際
に、フレームと、フレームの受信CRCとの間の調和をとることにより、データ
検査能力の顕著な向上を図るものである。他の実施例では、2つの非データバッ
ファ(53)が設けられ、デュアルポートファイバチャンネルインターフェース
ノード(1220)の両方の入力ファイバ(117)上で同時に受信するように
動作する。いくつかの実施例では、1つのデータバッファ(55)が設けられ、
デュアルポートファイバチャンネルインターフェースノード(1220)のいず
れか一方の入力ファイバ(117)上で受信するように動作する。いくつかの実
施例では、フレームをオンチップバッファ(53または55)からオフチップメ
モリ(111)に移動させている間に、フレームの巡回冗長コードを検証する、
単一のCRCチェッカー(596)が(コスト削減のために)設けられる。いく
つかの実施例では、それぞれの送信路上に(コスト削減のために)、フレームを
オンチップバッファ(73または55)からファイバチャンネル(1250)に
移動させている間に、適切な巡回冗長コードを生成する、単一のCRC発生器(
非データフレームに対する76およびデータフレームに対する87)が設けられ
る。
【0166】 上述の説明は、例示であって、これに限定されるものではないことを理解され
るべきである。前述の説明では、様々な実施例の構造および機能と一緒に、本発
明の様々な実施例の数多くの特徴および利点が説明されたが、上述の説明を再検
討することで、当業者にとって多くの他の実施例および細部にわたる変更が明ら
かになるであろう。従って、本発明の範囲は、特許請求の範囲と共に、そこに記
載された権利範囲に等価なすべての範囲を考慮して定められるべきである。
【図面の簡単な説明】
【図1】 図1は、ファイバチャンネル・ノードインターフェースをもつディスクドライ
ブ100のブロック図である。
【図2】 図2は、本発明を採用した情報処理システム1200のブロック図である。
【図3】 図3は、ファイバチャンネル・ノードインターフェースチップ110のブロッ
ク図である。
【図4】 図4は、ファイバチャンネル・ループポート回路20のブロック図である。
【図5】 図5は、一実施例での、ループオープンを保持するために用いられるコンパレ
ータ論理30のブロック図である。
【図6】 図6は、ファイバチャンネル・ループ制御回路40のブロック図である。
【図7】 図7は、ファイバチャンネル・受信路回路50のブロック図である。
【図8】 図8は、ファイバチャンネル・プリバッファ受信路回路51のブロック図であ
る。
【図9】 図9は、ファイバチャンネル・受信フレーム非データバッファ回路53のブロ
ック図である。
【図10】 図10は、ファイバチャンネル・データフレームバッファ回路55のブロック
図である。
【図11】 図11は、ファイバチャンネル・共通受信路回路59のブロック図である。
【図12】 図12は、ファイバチャンネル・転送制御回路60のブロック図である。
【図13】 図13は、ファイバチャンネル・送信路回路70のブロック図である。
【図14】 図14は、ファイバチャンネル・送信フレームバッファ回路73のブロック図
である。
【図15】 図15は、ファイバチャンネル・データ送信路回路80のブロック図である。
───────────────────────────────────────────────────── フロントページの続き (31)優先権主張番号 60/065,926 (32)優先日 平成9年11月17日(1997.11.17) (33)優先権主張国 米国(US) (31)優先権主張番号 60/067,211 (32)優先日 平成9年12月1日(1997.12.1) (33)優先権主張国 米国(US) (81)指定国 CN,DE,GB,JP,KR, SG Fターム(参考) 5B001 AA01 AA04 AB02 AD06 5B065 BA01 CE11 EA01 EA03 5B083 AA08 AA09 BB01 BB02 CC03 DD01 DD11 EE05 GG04 5J065 AA01 AB01 AC03 AC04 AD04 AE06 AH06 AH09

Claims (17)

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

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US6591997P 1997-11-17 1997-11-17
US6592697P 1997-11-17 1997-11-17
US6592097P 1997-11-17 1997-11-17
US60/065,919 1997-11-17
US60/065,920 1997-11-17
US60/065,926 1997-11-17
US6721197P 1997-12-01 1997-12-01
US60/067,211 1997-12-01
PCT/US1998/024571 WO1999026137A1 (en) 1997-11-17 1998-11-17 Method and apparatus for using crc for data integrity in on-chip memory

Related Child Applications (1)

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

Publications (2)

Publication Number Publication Date
JP2001523856A true JP2001523856A (ja) 2001-11-27
JP4272813B2 JP4272813B2 (ja) 2009-06-03

Family

ID=27490525

Family Applications (4)

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

Family Applications After (3)

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

Country Status (7)

Country Link
US (6) US6502189B1 (ja)
JP (4) JP4272813B2 (ja)
KR (3) KR100564665B1 (ja)
CN (3) CN1304520A (ja)
DE (3) DE19882822T1 (ja)
GB (3) GB2342021B (ja)
WO (3) WO1999026151A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001034427A (ja) * 1999-07-23 2001-02-09 Fujitsu Ltd デバイス制御装置及び制御方法
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
JP2014086924A (ja) * 2012-10-24 2014-05-12 Fujitsu Frontech Ltd エラー検出装置及びエラー検出方法
US8725854B2 (en) 2002-01-23 2014-05-13 Cisco Technology, Inc. Methods and apparatus for implementing virtualization of storage within a storage area network

Families Citing this family (124)

* 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
EP1059589B1 (en) * 1999-06-09 2005-03-30 Texas Instruments Incorporated Multi-channel DMA with scheduled ports
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
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
US7664018B2 (en) 2002-07-02 2010-02-16 Emulex Design & Manufacturing Corporation Methods and apparatus for switching fibre channel arbitrated loop devices
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
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 삼성전자주식회사 반도체 장치의 제조에서 콘택 형성 방법
US7925623B2 (en) * 2002-09-10 2011-04-12 Exagrid Systems, Inc. Method and apparatus for integrating primary data storage with local and remote data protection
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 株式会社日立製作所 チャネルアダプタ及びディスクアレイ装置
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
US20050187979A1 (en) * 2004-02-09 2005-08-25 Microsoft Corporation System and method for message-level connection management
US7986630B1 (en) * 2004-02-09 2011-07-26 Lsi Corporation High performance architecture for fiber channel targets and target bridges
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
US7281077B2 (en) * 2005-04-06 2007-10-09 Qlogic, Corporation Elastic buffer module for PCI express devices
US7231480B2 (en) * 2005-04-06 2007-06-12 Qlogic, Corporation Method and system for receiver detection in 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
US7787375B2 (en) * 2007-08-06 2010-08-31 International Business Machines Corporation Performing a recovery action in response to a credit depletion notification
US7975027B2 (en) * 2007-08-06 2011-07-05 International Business Machines Corporation Credit depletion notification for transmitting frames between a port pair
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装置、異常デバイス検出装置および異常デバイス検出方法
US9295100B2 (en) 2010-04-12 2016-03-22 Qualcomm Incorporated Delayed acknowledgements for low-overhead communication in a network
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 华为技术有限公司 基于多通道的数据传输方法、接收节点及跨节点互联系统
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
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
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
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总线主从机验证系统及验证方法
US11868804B1 (en) 2019-11-18 2024-01-09 Groq, Inc. Processor instruction dispatch configuration
US11243880B1 (en) 2017-09-15 2022-02-08 Groq, Inc. Processor architecture
US11360934B1 (en) 2017-09-15 2022-06-14 Groq, Inc. Tensor streaming processor architecture
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 株式会社デンソー 中継装置
US11455370B2 (en) 2018-11-19 2022-09-27 Groq, Inc. Flattened input stream generation for convolution with expanded kernel
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
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

Family Cites Families (84)

* 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
US5034837A (en) 1989-11-09 1991-07-23 Rodime Plc Magnetic disk drive incorporating a magnetic actuator lock and a very small form factor
US5235482A (en) 1989-11-09 1993-08-10 Rodime Plc Magnetic disk drive incorporating a mechanically damped base
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 磁気ヘッドのロードアンロード機構
JPH05244160A (ja) * 1992-02-28 1993-09-21 Toshiba Corp フレーム削除機能を持つブリッジ装置
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
DE69434311D1 (de) 1993-02-01 2005-04-28 Sun Microsystems Inc Archivierungsdateiensystem für datenanbieter in einer verteilten netzwerkumgebung
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
JPH0897803A (ja) 1994-09-26 1996-04-12 Nec Eng Ltd データ伝送方式
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
US5598541A (en) * 1994-10-24 1997-01-28 Lsi Logic Corporation Node loop port communication interface super core for fibre channel
US5638518A (en) 1994-10-24 1997-06-10 Lsi Logic Corporation Node loop core for implementing transmission protocol in 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
JPH0955718A (ja) * 1995-08-17 1997-02-25 Nec Corp データ通信装置
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
CA2182539A1 (en) 1995-09-29 1997-03-30 Nandakumar Natarajan Method and apparatus for buffer management
CN1169201A (zh) 1995-10-10 1997-12-31 菲利浦电子有限公司 具有电磁提升装置的信息存储设备
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
JPH09149034A (ja) * 1995-11-20 1997-06-06 Nec Eng Ltd Atmセルの生成方法及び通信制御装置
JPH09149067A (ja) 1995-11-21 1997-06-06 Hitachi Cable Ltd スイッチングハブ
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
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
JP2689973B2 (ja) * 1995-12-29 1997-12-10 日本電気株式会社 スイッチングハブ装置
US5790773A (en) 1995-12-29 1998-08-04 Symbios, Inc. Method and apparatus for generating snapshot copies for data backup in a raid subsystem
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
US5663724A (en) 1996-03-28 1997-09-02 Seagate Technology, Inc. 16B/20B encoder
US5802080A (en) * 1996-03-28 1998-09-01 Seagate Technology, Inc. CRC checking using a CRC generator in a multi-port design
US5761705A (en) 1996-04-04 1998-06-02 Symbios, Inc. Methods and structure for maintaining cache consistency in a RAID controller having redundant caches
US5805788A (en) 1996-05-20 1998-09-08 Cray Research, Inc. Raid-5 parity generation and data reconstruction
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
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

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001034427A (ja) * 1999-07-23 2001-02-09 Fujitsu Ltd デバイス制御装置及び制御方法
US8725854B2 (en) 2002-01-23 2014-05-13 Cisco Technology, Inc. Methods and apparatus for implementing virtualization of storage within a storage area network
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
JP2014086924A (ja) * 2012-10-24 2014-05-12 Fujitsu Frontech Ltd エラー検出装置及びエラー検出方法

Also Published As

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

Similar Documents

Publication Publication Date Title
JP4547452B2 (ja) オンチップメモリにおけるデータ健全性のためのcrcを用いる方法および装置
US7233977B2 (en) Messaging mechanism employing mailboxes for inter processor communications
JP4076724B2 (ja) ダイナミック半二重によるループ・フェアネスの保持
US6279050B1 (en) Data transfer apparatus having upper, lower, middle state machines, with middle state machine arbitrating among lower state machine side requesters including selective assembly/disassembly requests
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
US7984252B2 (en) Storage controllers with dynamic WWN storage modules and methods for managing data and connections between a host and a storage device
JPH04233352A (ja) システムメモリからネットワークへのパケットに配列されるデータのフローを制御するネットワークアダプタおよびデータのフローを制御する方法
JPH07325767A (ja) 入出力通信サブシステム及び方法
US7802031B2 (en) Method and system for high speed network application
EP1810161A1 (en) Method and system for optimizing data transfer in networks
US7152132B2 (en) Method and apparatus for improving buffer utilization in communication networks
US7986630B1 (en) High performance architecture for fiber channel targets and target bridges
US7225274B2 (en) Method and apparatus for transferring data across a protocol bridge
US20060015659A1 (en) System and method for transferring data using storage controllers
JP3130226B2 (ja) 入出力通信サブシステム及び方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051116

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080201

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080501

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080512

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080602

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080609

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080630

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080707

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080801

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080905

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081226

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20090113

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

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

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

Free format text: PAYMENT UNTIL: 20120306

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees