JP2001523862A - ループの初期化および応答のための方法及び専用のフレームバッファ - Google Patents

ループの初期化および応答のための方法及び専用のフレームバッファ

Info

Publication number
JP2001523862A
JP2001523862A JP2000521449A JP2000521449A JP2001523862A JP 2001523862 A JP2001523862 A JP 2001523862A JP 2000521449 A JP2000521449 A JP 2000521449A JP 2000521449 A JP2000521449 A JP 2000521449A JP 2001523862 A JP2001523862 A JP 2001523862A
Authority
JP
Japan
Prior art keywords
data
frame
port
buffer
frame buffer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2000521449A
Other languages
English (en)
Inventor
ウェストビイ、ジュディ、リン
Original Assignee
シーゲート テクノロジー,インコーポレイテッド
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 シーゲート テクノロジー,インコーポレイテッド filed Critical シーゲート テクノロジー,インコーポレイテッド
Publication of JP2001523862A publication Critical patent/JP2001523862A/ja
Pending 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)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)

Abstract

(57)【要約】 ループ初期化および応答(「応答」は他のノードからの命令または問い合わせに答えて送られる非データフレームである)用の専用送信フレームバッファを備えたファイバチャネルループインターフェース回路。このような専用送信フレームバッファを有することにより、二重ポートノードの1つのポートが、初期化フレームまたは応答フレームを送信し、同時に他のポートがデータフレーム、応答フレームまたは初期化フレームを送信することができる。いづれか一方または両方のポートは、同時にフレームを受信することもできる。このシステムは、各々がファイバチャネルの調停ループ連続通信チャネルを支持する二重ポートを有するチャネルノードと、ループの初期化および応答のための前記チャネルノード内の専用のフレームバッファとを有する。ある実施例では、前記専用のフレームバッファは、オンチップバッファとして構成されて、前記2つのポートに接続される2つの到来非データバッファ(53,53’)と、前記2つのポートに接続されるデータバッファ(55)と、これら両ポートの少なくとも一方に接続される外向送信フレームバッファとを有している。また、前記専用のバッファを使用するループの初期化および応答方法が記載されている。

Description

【発明の詳細な説明】
【0001】 (発明の分野) 本発明は、大容量記憶装置の分野に関する。特に、本発明は、ループの初期化
及び応答のための専用のフレームバッファを備えた改良されたファイバチャンネ
ルの調停ループ(「FC−AL」)装置および方法に関する。
【0002】 (発明の背景) どんなコンピュータシステムでも1つの重要な要素は、データを記憶する装置
である。コンピュータシステムは、データを記憶することができる多くの種々の
装置を有している。大量のデータをコンピュータシステム内に記憶するための1
つの共通の場所は、ディスクドライブ上である。ディスクドライブの最も基本的
な部分は、回転されるディスクと、トランスジューサをこのディスク上の種々の
場所へ移動するアクチュエータと、そのディスクにデータを書き込んだり、そこ
からデータを読み出すために使用する回路とである。ディスクドライブは、また
、ディスク表面からデータをうまく検索し、かつ、ディスク表面にデータをうま
く記入することができるようにデータを符号化する回路も有している。マイクロ
プロセッサは、要求するコンピュータにデータを送り返したり、ディスクにデー
タを記憶するために要求するコンピュータからデータを取り出したりする他にデ
ィスクドライブの動作の大部分を制御する。
【0003】 ディスクドライブとコンピュータシステムの残りの部分との間でデータを転送
するインターフェースは、一般的には、小型コンピュータシステムインターフェ
ース(「SCSI」またはファイバチャンネルのようなバスまたはチャンネルで
ある。このインターフェースのいくつかの面は、種々のメーカーからの種々の装
置が相互に交換でき、そして、共通のインターフェースに接続することができる
ようにしばしば規格化されている。これらの規格は、米国規格協会(「ANSI
」)のような組織のいくつかの規格委員会によって一般的に特定されている。
【0004】 種々の記憶装置と種々のコンピュータとの間でデータを交換するための1つの 規格化されたインターフェースは、ファイバチャンネルである。ある実施例では
、ファイバチャンネルの規格は、調停ループ(以下に記載)を含む。ある実施例
では、ファイバチャンネルの規格は、データ転送の制御のためのSCSIに似た
プロトコルの基礎となっている。
【0005】 ファイバチャンネルは、小型コンピュータ基準インターフェース「SCSI」
設計に関する大きな利点を意味する。ファイバチャンネルは、伝統的なSCSI
設計のための1秒間あたり2メガバイトから20メガバイトの範囲に比較して、 現在1秒間あたり106メガバイトまでのかなり高い帯域幅を提供する。ファイ
バチャンネルは、一般的なSCSI環境での最大7個または5個の装置に比較し
て126個までの装置(ホストを含む)が接続できるという点でより大きな接続
性を提供する。ファイバチャンネルは、単一のコネクタで取り付けることができ
、かつ、スイッチを必要としない。同軸の電気導体を使用するファイバーチャン
ネルは、SCSI環境の場合、25メートルまでの最大全長であるのに比較して
、装置間の30メートルまでの距離及びチャンネル全体の光ファイバを使用して
10キロメートルまでの距離で動作する。SCSI環境では、データ伝送の誤り
は、パリティの使用により検出され、ファイバチャンネルでは、誤りは、実行時
のデスパリティ(disparity)及び周期冗長符号チェック(「CRC)
チェック」)情報により確認される。さらに多くの情報は、「CRC Checki
ng Using a Generator in a Multi−port
Design」なる名称の米国特許第5,802,080号および「16B/2
0B Encoder」なる名称の米国特許第5,663,724号(両者共、 発明者は、本発明者のWestbyで、共に本譲受人のSeagate Tec
hnology,Inc.に対し共通に譲渡された)で見ることができる。
【0006】 ファイバチャンネル調停ループ(「FC−AL」)は、バイトオリエンテッド
DC平衡(0、4)ランレングスリミテッド8B/10Bチャンネル区分ブロッ ク伝送符号体系(byte−oriented DC−balanced (0
,4)run−length−limited 8B/10B−partiti oned block−transmission code scheme)
を使用する工業規格システムである。FC−ALは、106.25MHZの周波
数で動作する。8B/10Bエンコーダ/デコーダの1つの形は、「Byte O
riented DC Balanced (0,4)8B/10B Part itioned Block Transmission Code」(Fra naszek et al.による)に対し1984年12月4日付与の米国特
許第4,486,739号に記載されている。
【0007】 ファイバチャンネルの調停ループ(「FC−AL」)は、おのおのが「ノード
」と呼ばれる複数の装置を共に連結できるようにする。ノードは、ファイバチャ
ンネル「トポロジ」(次にすぐ定義する)に接続できるようにするインターフェ
ースを有するコンピュータシステムの任意の装置(コンピュータ、ワークステー
ション、プリンタ、ディスクドライブ、スキャナなど)であってもよい。各ノー
ドは、他のノードにアクセスを行うNL(ノードループ)ポートと呼ばれる少なく
とも1つのポートを有している。2つ以上のポートを接続する要素は、まとめて
「トポロジ」または「ループ」と呼ばれる。各ノードは、提供されたトポロジま
たはループ内のすべての他のノードと通信を行う。
【0008】 ポートとは、ファイバチャンネルノードの接続部であって、この接続部を通し
てデータが他のノード(外部世界)のポートまでファイバチャンネルを通ること
ができる接続部である。一般的なファイバチャンネルドライブは、このドライブ
のノード内に入れられた2つのポートを有している。各ポートは、一対の「ファ
イバ」、すなわち、そのポートに情報を運ぶものと、そのポートから情報を運び
出すものとを有している。各「ファイバ」は、連続データ接続部であり、一実施
例では、各ファイバは、実際には同軸線であり(例えば、ノードが他のノードに
接近している時に使用される同軸の銅導体)、他の実施例では、ファイバは、そ
の通路の少なくとも一部のために光ファイバーとして形成される(例えば、種々
のキャビネットまたは、特に、種々のビルディングのノードのように、ノードが
かなりの距離互いに分離されている時)。各ポートに接続された対をなすファイ
バ(1本はこのポートにデータを運ぶためのものであり、他の1本はこのポート
からデータを運び出すためのものである)は、「リンク」と呼ばれ、そして、各
トポロジの一部である。リンクは、ノード間で「フレーム」内に入れられた情報
すなわち信号を運ぶものである。各リンクは、多種類のフレーム(例えば、初期
化、データおよび制御の各フレーム)を取り扱うことができる。
【0009】 各ファイバは、一方向にのみデータを運ぶので、ノードは、ループに沿って互
いに接続され、そしてループでは、ノードは伝送すべきデータを有する時にその
ループの制御のために調停を行わなければならない。「調停」は、どのノードが
そのループの制御を行うかを決定するためにこれらノードを調整させる方法であ
る。ファイバチャンネルの調停ループは、ハブまたはスイッチなしでこのループ
に多くのノードを取り付ける。ノードのポートは、2地点間のデータ転送回路を
形成するために調停操作を使用する。FC−ALは、2地点間データ転送回路を
形成するための少なくとも最小の必要な機能を有する分布トポロジである。この
調停ループのトポロジは、2個のノードポートと126個のノードポートとの間
の任意の数のノードを接続するために使用される。
【0010】 ある実施例では、各ノードは、冗長性を提供する(各々が別々のループに接続
された)二重ポートを有しているので、1つのループが故障した場合に、他のル
ープがループの義務を果すことができる。二重ポートは、2つのホスト(例えば
、2つのホストコンピュータ)に単一のドライブを共有させることもできる。
【0011】 一般的な第1世代と第2世代のFC−ALドライブでは、2つのポートがフレ
ーム確認およびフレーム発生の論理回路を共有した。このことは、もしも1つの
ポートがフレームを受信または送信する場合、別のポートが事実上ビジーであり
(それは、フレーム確認およびフレーム発生の論理回路を同時に使用することが
できなかったからである)、そして、この別のポートは、従って、フレームを送
信するためのそのホスト‐バスアダプタの許可を拒否するよう強制されることを
意味した。あるホスト‐バスアダプタは、連続的に調停を行い、そして、主ポー
トが閉じられるまで再三にわたりフレームを送信しようと試みる必要があろう。
また、ドライブは、一度に1つのポートで伝送することができるだけであった。
ある場合には、与えられたポートでの外部へのデータ転送は、他の(別の)ポー
トで応答を送信したりまたはループの初期化を行うために停止させられなければ
ならないであろう。
【0012】 CRCの背景 大部分のデータ伝送動作は、その伝送のヘッダおよびペイロードデータに基づ
く誤り符号をチェックして、その受信されたヘッダおよびペイロードデータの完
全性を確認する誤りチェック方式を使用している。このような1つの誤りチェッ
ク体系は、周期冗長符号(「CRC」)情報を使用する。CRC誤りチェック方
式を使用する一般的な回路は、受信したデータワードの完全性を確認するための
CRCチェッカと、送信されるデジタルワード用のCRC情報を発生するための
CRC発生器を有する。多ポート設計では、CRCチェッカとCRC発生器は、
各受信デジタルワードの確認を扱うため、および、送信される各デジタルワード
用のCRC情報を発生するために各ポートごとに利用できなければならない。多
くの用途では、回路またはループインターフェースモジュールは、一度に1つの
ポートのみで伝送を行う。例えば、多ポートインターフェースモジュールを介し
てコンピュータネットワークと通信するディスクドライブサブシステムは、任意
のあたえられた時に単一のポートのみを介してデータを準備して伝送するであろ
う。しかし、ループインターフェースモジュールは、あたえられた時に複数のポ
ートを介してデータを受信しようとするかもしれない。
【0013】 複数のポートを介してデータを受信しようとする1つの試みは、1つのポート
が既にデータを受信している時に他のポートを介するデータの受信をまったく禁
止することである。この試みにより、CRCチェッカまたはフレーム確認論理回
路のような共通の資源がそれら一部のポート間で共有することができる。データ
を受信する第1のポートは、他のポートを除外して共通の資源を独占的に使用し
、他のポートは、データの受信を禁止される。従って、到来するデータは、他の
ポートでは受信できず、他のポートは、データ転送の機能に制限される。この試
みにより、他のポートは、データの伝送要求に応答して「ビジー」条件を受ける
ことになり、第1のポートが、その行っていた動作を完了すると共に、共通の資
源を解放するまで、再三再四、データの伝送を要求するシーケンスは、繰り返さ
れる必要があった。
【0014】 ループ初期化の背景 複数のループネットワークでは、誤り条件が検出された後、および、ループイ
ンターフェースモジュールがチャンネルに接続された時またはファイバチャンネ
ルがパワーを供給された時に、ループの「初期化」をすることが必要である。初
期化は、通常、ループ初期化データをそのループに伝送することによって達成さ
れる。しかし、このループに接続されたループインターフェースモジュールが、
他のループに接続されたポートを介してデータを既に受信している場合には、そ
のループインターフェースモジュールは、ループ初期化データを受信することが
できないであろう。通常、このような条件下では、データ転送は中止され、そし
て、ループ初期化が、まず行われるようにする。他の場合には、ループ初期化シ
ーケンスは、不安定となり、そして、(二重ループノードの)他のループがデー
タ受信を完了するまで連続的な再試行モードに入る。さらに、もしもループイン
ターフェースモジュールが一度に1つのループでのみ受信することができる場合
、ループインターフェースモジュールは、1つのチャンネルでループの初期化が
行われている時に他のポートを介してデータを受信することができない。
【0015】 ファイバリンクは、コンピュータネットワークの種々の装置間でデータの送信
に関連してかなりの配慮を受けている。詳述すると、ファイバチャンネルは、さ
らに大きい帯域幅、より大きな接続性、モジュールの取り付けのさらなる容易性
、さらなる伝送距離および他のファクタに鑑みて、小型コンピュータシステムイ
ンターフェース(「SCSI」)に対して大きな利点を提供する。例えば、一般
的なSCSIバスは、約25メートルまでの全長で15個までのモジュールを取
り扱うことができるが、ファイバチャンネルは、電気的な伝送を利用してモジュ
ール間約30メートルの距離または光伝送を用いて10キロメートルまでの距離
で126個までのモジュールを取り扱うことができる。従って、例えば、1秒間
当たりテラビットのピークのデータ伝送速度を達成するためには、70本までの
SCSIバスを必要とするが、約10本のファイバチャンネルだけあれば良いで
あろう。
【0016】 重要なことは、データトラフィックの負荷を減少させる(さもなければ他のチ
ャンネルに課されるであろう。)ためにできるだけ早くチャンネルを動作させる
(すなわち、初期化する)ことである。
【0017】 従って、多ポートループインターフェースモジュールに、同時に複数のチャン
ネルでデータフレームおよび非データフレームを受信させ、または、1つのチャ
ンネルでデータを送信させながら他のチャンネルでデータを受信させ、または、
複数のチャンネルで初期化および応答フレームを同時に送信させることができる
構成が存在する必要が有る。また、オンチップバッファに記憶されたデータのデ
ータチェック能力をさらに増大する必要も存在する。
【0018】 (発明の要約) ループ初期化および応答のための方法および専用フレームバッファ。初期化お
よび応答(「応答」は他のノードからの命令または問い合わせに応答して送られ
る非データフレームである)用の専用送信フレームバッファを備えたファイバチ
ャンネルループインターフェース回路が記載される。このような専用送信フレー
ムバッファを有することにより、二重ポートノードの1つのポートが、初期化フ
レームまたは応答フレームを送信し、同時に他のポートがデータフレーム、応答
フレームまたは初期化フレームを送信することができる。一実施例では、いづれ
か一方または両方のポートは、同時にフレームを受信することもできる。
【0019】 本発明は、各々がファイバチャンネルの調停ループ連続通信チャンネルを支持
する二重ポートを備えた第1のチャンネルノードと、ループの初期化および応答
のための前記第1のチャンネルノード内の専用のフレームバッファ(1個以上の
特化した要素のフレームバッファ)とを有する改良になる通信チャンネル装置を
提供する。ある実施例では、前記専用のフレームバッファは、オンチップバッフ
ァとして構成されて、第1のポートに接続される第1の到来非データバッファと
、第2のポートに接続される第2の到来非データバッファと、 前記第1のポー
トと前記第2のポートの両方に接続されるデータフレームバッファと、 前記第
1と第2のポートの少なくとも1つに接続される外向送信フレームバッファとを
有する。
【0020】 任意に、この通信チャンネル装置は、更に、前記送信フレームバッファのデー
タを使用して、前記第1のポートと前記第2のポートの両方にほぼ同時にループ
初期化を行うループ初期化回路を有する。ある実施例では、約80ワード(この
場合、各「ワード」は、36ビット幅、すなわち、32データビットと4パリィ
ビットである)を備えた送信フレームバッファを有する.また、他の実施例では
、前記専用のフレームバッファは、ループの初期化および応答のために、前記第
1のポートと前記第2のポートの少なくとも1つに接続される送信フレームバッ
ファを有する。
【0021】 前記通信チャンネル装置のある実施例では、前記送信フレームバッファは、前
記第1のポートでループ初期化または応答を送信し、ほほ同時に、第2のポート
がデータを送信する。一前記実施例で、この通信チャンネル装置は、前記送信フ
レームバッファのデータを使用して前記第1のポートと前記第2のポートの両方
にほぼ同時にループ初期化を行うループ初期化回路を更に有している。
【0022】 この通信チャンネル装置のある実施例では、前記専用のフレームバッファは、
オンチップバッファとして構成され、ループ初期化および応答のために前記第1
のポートと前記第2のポートの少なくとも1つに接続される専用の送信フレーム
バッファを有している。一前記実施例では、前記専用の送信フレームバッファは
、両ポートに接続されて、前記送信フレームバッファの空間の約半分を第1のポ
ートに、前記送信フレームバッファの空間のもう半分を第2のポートに保持する
。この通信チャンネル装置は、前記送信フレームバッファのデータを使用して、
前記第1と第2のポートの両方にほぼ同時にループ初期化を行うループ初期化回
路を更に有している。選択的に、この通信チャンネル装置のこれらの実施例のど
れも、更に、前記第1のチャンネルノードに接続される磁気ディスク記憶ドライ
ブ、および第2のノードに接続されたコンピュータ装置(または、等価的に第2
のノードを持つコンピュータ装置)を有しており、前記第2のノードは、前記第
1のチャンネルノードと前記第2のノードの間でデータを転送するために、通信
チャンネルで前記第1のチャンネルノードに接続される。本発明の他の態様では
、第1のチャンネルノードの2つのポートのおのおので第1のチャンネルの調停
ループ連続通信チャンネルを支持し、前記第1のチャンネルノードに配置の専用
のフレームバッファにフレームを受信し、前記専用のフレームバッファからフレ
ームを送信する方法を提供する。
【0023】 前記方法のある実施例では、前記専用のフレームバッファは、第1のポートに
接続される第1の到来非データバッファと、第2のポートに接続される第2の到
来非データバッファと、前記第1のポートと前記第2のポートの両方に接続され
るデータフレームバッファと、専用の送信フレームバッファを有する。 前記方
法のある変形例は、前記専用の送信フレームバッファのデータを使用して、前記
第1のポートと前記第2のポートの両方でほぼ同時にループ初期化を行う。任意
に、前記専用の送信フレームバッファは、各々が36ビット幅(32データビッ
トと4パリティビット)である約80ワードをもつ送信フレームバッファを有す
る。ある実施例は、ループ初期化および応答のため前記第1と第2のポートの少
なくとも1つに接続された専用の送信フレームバッファからループ初期化フレー
ムおよび応答フレームを送信することを含む前記専用の送信フレームバッファか
らフレームを送信することを提供する。
【0024】 前記方法のある他の実施例は、また、前記第2のポートでほぼ同時にデータを
受信しながら、前記第1のポートでデータを送信することを提供する。
【0025】 前記方法のある実施例では、前記専用のフレームバッファは、オンチップバッ
ファとして構成され、および、ループ初期化および応答のために前記第1のポー
トと前記第2のポートの少なくとも1つに接続される専用の送信フレームバッフ
ァを有している。一前記実施例では、前記専用の送信フレームバッファは、両ポ
ートに接続され、および、前記送信フレームバッファの空間の約半分を第1のポ
ート用に、前記送信フレームバッファの空間のもう半分を第2のポート用に保持
する。この方法は、前記送信フレームバッファのデータを使用して、前記第1と
第2のポートの両方にほぼ同時にループ初期化を行うことを更に有している。他
の前記実施例では、この方法は、更に、前記第1のチャンネルノードに接続され
る磁気ディスク記憶ドライブと第2のノードに接続されるコンピュータ装置(ま
たは、等価的に第2のノードを持つコンピュータ装置)との間でデータを転送す
ることを含む。この場合、前記第2のノードは、前記第1のチャンネルノードと
前記第2のノードの間でデータを転送するために、通信チャンネルで前記第1の
チャンネルノードに接続される。
【0026】 かくして、本発明は、二重ポートファイバチャンネルインターフェースノード
の外向きファイバの一方または両方で送信するように動作可能な専用送信バッフ
ァからのループ初期化フレームおよび/または応答フレームの送信を可能にする ことによって、かなりの性能向上をもたらす。ある実施例では、この送信は、二
重ポートファイバチャンネルインターフェースノードが、同時に、前記到来ファ
イバの一つで、データフレームを受信し、および/またはその到来ファイバの一 方または両方で非データフレームを受信している間でさえ、行われる。すなわち
、ポートの一本のファイバでの送信は、任意に、同一ポートの他のファイバでの
受信と同時に行われる。
【0027】 (詳細な説明) 好適な実施例の次の詳細な記載において、その一部を形成する添付図面を参照
する。この添付図面には、例示的に本発明を実施する特定の実施例が示してある
。なお、他の実施例を利用することもできるが、構造上の変化は、本発明の範囲
から逸脱せずに成し得るであろう。 本願に記載された発明は、ハードディスクドライブ、ZIPドライブ、フロッ
ピーディスクドライブ、光ディスクドライブ、CDROM(「コンパクトディス
ク読み取り専用メモリ」)ドライブおよび任意の他の種類のドライブ、(「廉価
な/独立のディスクドライブの冗長アレイ」またはRAID、構成のような)ド ライブのシステムまたはデータがドライブと他の装置または情報取り扱いシステ
ムとの間で通信されるその他の装置を含むあらゆる種類のディスクドライブにと
って有用である。ある実施例では、本発明は、(複数のファイバチャンネルルー
プを互いに接続するために使用されるような)ハブおよびスイッチ、ワークステ
ーション、プリンタ、および他の装置またはファイバチャンネルの調停ループで
接続された情報取り扱いシステムのような非ディスク装置のためのノードインタ
ーフェースにおいて有用である。
【0028】 次に本発明を記載する4つの相互に関連する部分を示す: I.ループ初期化および応答用の専用フレームバッファ、II.受信フレーム用
の専用フレームバッファ、III.オンチップメモリにおけるデータの完全性を
得るためのファイバチャンネルのCRCの使用、および、IV.調停ループのオ ーバーヘッドを減少するための方法および装置。項IVは、本発明の細部に主と
して関連する部分であるが、他の部分は、本発明の環境全体についての関連情報
を提供するものである。 図1は、ファイバチャンネルのノードインターフェースを備えたディスクドラ
イブ装置100のブロック線図を示す。
【0029】 図2と図1を参照すると、ファイバチャンネルのループインターフェース回路
1220は、ループの初期化および応答用の専用の送信フレームバッファ73を
有している。(「ループの初期化」は、ファイバチャンネルループを初期化する
ために、一連の1個以上の特化した非データフレームを送信(およびこれらのフ
レームに対する応答を監視)することによって達成される。「応答」は、他のノ
ードからの命令または問い合わせに応答して送られる非データフレームである。
)ファイバチャンネルの調停ループ通信チャンネル1250(これは、またルー
プ1250またはファイバチャンネルループ1250とも呼ばれる)は、ディス
ク記憶装置100とコンピュータ1202または他の情報取り扱い装置との間で
のデータの通信に使用することができる。一実施例では、ファイバチャンネルル
ープ1250は、連続通信チャンネルであり、他の実施例では、2本以上の並列
線(または「ファイバ」)がファイバチャンネルループ1250を実施するため
に使用される。このような専用の送信フレームバッファ73を有することにより
、二重ポートノード1220の1つのポート116が、初期化または応答フレー
ムを送信しているときに、他のポートは、データフレームを送信または受信する
ことができる。ポート116は、連続線であり、1つの線117は、到来データ
用であり、もう1本の線118は、外部への送信データ用であるが、両方の線1
17と118は、通信チャンネルループ1250に接続されてその一部を形成し
ている。専用の受信バッファ(53、53´および55)も2ポートノードの各
ポート116に設けられている。(なお、´付きの参照数字(例えば、53´)
を備えた各ブロックは、´のない対応ブロック(例えば、53)と同一機能を提
供するが、別のループポートまたは通信チャンネルに使用される。)フレームと
共にファイバチャンネルループ1250から受信された周期冗長符号情報は、1
個以上のフレームバッファ(53、53´または55)の1つに記憶され、そし
て、フレームバッファ(53、53´または55)にある間、データの完全性を
保証するために後でチェックされる。ファイバチャンネルループ1250の制御
のための調停にかかる全時間量を減少するために、データのプログラム可能な量
が伝送に利用できる限り、ファイバチャンネルループ1250の制御は、維持さ
れる(すなわち、ループ接続は開いた状態に保持される)。
【0030】 ある実施例では、ディスクドライブ100は、1個以上のディスク盤134、
ディスク盤当たり1個以上の磁気読み取り/書きこみトランスジューサ150、 およびアームアクチュエータアセンブリ126を備えた磁気記憶ヘッドディスク
アセンブリ(「HDA」)114を備えている。トランスジューサ(または「ヘ
ッド」)とHDAインターフェース113との間の信号は、データをディスク盤
134と転送しあう。従って、ある実施例の「ディスクドライブ」(例えば、図
1のディスクドライブ1256)は、HDA114とHDAインターフェース1
13(例えば、従来のSCSIドライブ)を有し、1個以上のこの従来のディス
クドライブ1256は、図1に示したように、ループまたはファイバチャンネル
トポロジに接続するために、外部ノードインターフェース1220に接続されて
いる。他の実施例では、「ディスクドライブ」は、図2のディスクドライブ10
0によって代表され、そして、ディスクドライブ100全体においてディスクド
ライブ1256と集積されたノードインターフェース1220を有している。一
実施例では、データは、オフチップバッファ111へ転送され、又はこれから転
送を受ける。本発明は、専用のオンチップバッファ119を提供する。このオン
チップバッファ119は、図示の実施例では、各ポート(すなわち、バッファ5
3と53´)毎の受信非データフレームバッファ53(これはまた、「到来非デ
ータバッファ53」とも呼ばれる)、一実施例では、両方のポートによって同時
に使用できる送信フレームバッファ73(他の実施例では、単一のバッファが一
度に1つのポートのみによって使用される)、および共有のデータフレームバッ
ファ55をCRCチェッカ596(図11参照)と共に有している。さらに詳し
く以下に記載する一実施例では、送信フレームバッファ73の40個のワードが
ポートA用に保存され、そして、40ワードがポートB用に保存されるので、両
ポートは、同時に初期化することができる。このような実施例は、各ポート毎に
1つずつ設けられて同時に使用することができる2つの別々の40ワード送信フ
レームバッファを備えることに等価である。1つの前記実施例では、これらの「
ワード」の各々は、36ビット幅(32データビットと4つのパリティビット)
である。
【0031】 ファイバチャンネルループ1250からデータフレームと共に受信されたCR
C有効チェック情報は、データフレームバッファ55にそのデータと共に記憶さ
れ、そして、このデータがデータフレームバッファ55から読み出される時にチ
ェックされ、かくして、データフレームがデータフレームバッファ55に存在す
るかまたはその前にデータフレームが移動中にどこかで生ずる可能性のあるデー
タの誤りをチェックする。同様に、ファイバチャンネルループ1250から非デ
ータフレームと共に受信されたCRC有効チェック情報は、非データフレームバ
ッファ53(53’)にそのデータと共に記憶され、そして、このデータが非デ
ータフレームバッファ53(または53’)から読み出される時にチェックされ
、かくして、非データフレームが非データフレームバッファ53(または53’
)に存在するかまたはその前にデータフレームが移動中にどこかで生ずる可能性
のあるデータの誤りをチェックする。マイクロプロセッサ112は、任意適当な
高速プロセッサであって、ディスクドライブ100内で全データの転送、ルーテ
ィング、シグナリング、誤り復旧などの制御の支援に使用される。本発明におい
ては、ファイバチャンネルインターフェースチップ110は、改良になるフレー
ムバッファ、誤りチェックおよびループ調停を以下に記載するように提供する。
【0032】 一実施例では、ループポートトランシーバブロック115(すなわち、115
と115´)は、ポートAとポートBを介して、これらのポートに接続されたフ
ァイバチャンネルループ1250(図2参照)に転送されるデータを連続にした
り、この連続状態を解除したりするポートトランシーバを有している。ある実施
例では、トランシーバブロック115は、外部のトランシーバとして実施され、
他の実施例では、これらのトランシーバは、ファイバチャンネルインターフェー
スブロック110内のオンチップに配置されている。ある実施例では、右側のイ
ンターフェース(すなわち、図1のトランシーバブロック115または115´
に対して右側)は、10ビット幅の並列入出力信号であり、他の実施例では、そ
れらは、12ビット幅である。共に、ブロック110、111、112、ポート
Aトランシーバブロック115とポートBトランシーバブロック115´は、フ
ァイバチャンネルノードインターフェース1220を形成している。ある実施例
では、ポートトランシーバ115とポートトランシーバ115´は、単一のチッ
プ110内に集積されている。他の実施例では、ポートトランシーバ115とポ
ートトランシーバ115´は、それらのシリアライザ/デシリアライザ機能を有 するが、チップ110とは別の回路で形成されている。
【0033】 他の実施例では、トランシーバ115は、単に、連続ループ1250とチップ
110との間のインターフェースであって、10ビットまたは12ビット幅のデ
ータに対する連続化/非連続化がチップ上で起こる。
【0034】 図2は、コンピュータシステム1200の略図である。好都合にも、本発明は
、コンピュータシステム1200で使用するに充分適している。コンピュータシ
ステム1200は、電子システムまたは情報処理システムと呼んでもよく、中央
処理装置(「CPU」)、メモリおよびシステムバスを有している。コンピュー
タシステム1200は、CPU情報処理システム1202を有し、CPU情報処
理システム1202は、中央処理装置1204、ランダムアクセスメモリ(「R
AM」)1232、および中央処理装置1204とランダムアクセスメモリ12
32を通信結合するためのシステムバス1230を有している。CPU情報処理
システム1202は、ファイバチャンネルノードインターフェース1220を有
している。1個以上のディスク記憶情報処理システム100ないし100´の各
々は、1個以上のディスクドライブ装置1256とファイバチャンネルノードイ
ンターフェース1220を有している。
【0035】 ある実施例では、ディスク記憶情報処理システム100´がディスクドライブ
のRAID(廉価/独立ディスクドライブの冗長配列)となるように、多数のデ ィスクドライブ1256は、例えば、RAID構成で単一のノードインターフェ
ース1220に接続されている。CPU情報処理システム1202は、内部の入
力/出力バス1210を駆動する入出力インターフェース回路1209と、入力 出力バス1210に取り付けることができる1212、1214および1216
のような幾つかの周辺装置を有しても良い。周辺装置は、ハードディスクドライ
ブ、磁気―光ドライブ、フロッピーデスクドライブ、モニタ、キーボードおよび
他のこのような周辺装置を有しても良い。任意の種類のディスクドライブまたは
他の周辺装置は、ここに記載したファイバチャンネル方法および装置(特に、例
えば、ファイバチャンネルノードインターフェース1220における改良)を使
用しても良い。各装置毎に、ポートAまたはポートBは、任意の与えられたルー
プ1250に接続するために使用することができる。
【0036】 コンピュタシステム1200の一実施例は、任意に(CPU情報処理システム
1202と同一または類似の)第2のCPU情報処理システム1202´を有し
、この第2のCPU情報処理システム1202´は、(中央処理装置1204と
同一の)中央処理装置1204´、(RAM1232と同一の)ランダムアクセ
スメモリ(「RAM」)1232´、および中央処理装置1204´とランダム
アクセスメモリ1232´とを通信連結するための(システムバス1230と同
一の)システムバス1230´を有する。CPU情報処理システム1202´は
、(ノードインターフェース1220´と同一の)それ自体のファイバチャンネ
ルノードインターフェース1220´を有する。しかし、それは、(ループ12
50とは別個独立の)第2のファイバチャンネルループ1250´を介して1個
以上のディスクシステム100(この実施の実施例では、それは、ディスクシス
テム100´に接続されているが他の実施例では全ての装置またはディスクシス
テム100ないし、100´に接続されている)に接続されている。この構成に
より、2つのCPUシステム1202と1202´は、各CPUシステム120
2毎の別々のファイバチャンネルループを使用して1個以上のディスク記憶情報
処理システム100を共有することができる。さらに他の実施例では、全てのデ
ィスクシステム100ないし100´および全てのCPUシステム1202ない
し1202´は、両方のループ1250と1250´に接続されている。
【0037】 一実施例では、本発明は、データフレームの不規則な伝送を支援するようなこ
とはしない。本発明の他の実施例によるファイバチャンネルコントローラは、送
受信用の符号ワードのデータフレームを組織するためのプロトコルをも実施する
。このプロトコルは、「ACKNOWLEDGEMENT PROTOCOL
SERIAL DATA NETWORK WITH OUT−OF―ORDE
R DELIVERY」なる名称のG.L.Rouseによる米国特許第5、26
0、933号に開示されている。本発明の一実施例を形成する場合に使用された
ファイバチャンネルの仕様は、次のANSI規格を有している:
【0038】
【表1】 ファイバチャンネルFC-PH X3T11/Project 755D/Rev.4.3 Physical&Signalling Interface ファイバチャンネルFC-AL X3T11/Project 960D/Rev.4.5 Arbitrated Loop ファイバチャンネルFC-AL2 X3T11/Project 1133D/Rev.6.3 Arbitrated Loop ファイバチャンネルFCP X3T10/Rev.012 SCSI用プロトコル X3.2 69-199X
【0039】 I.ループ初期化用および応答用の専用フレームバッファ 本発明の一実施例の場合、フレームバッファは、両ポートを同時に作動できる
ようにするためにフレームバッファが第3世代アプリケーション固有の集積回路
(「ASIC」)チップ(ファイバチャンネルインターフェースチップ110)
に加えられている。非データフレーム(これはまた図1の「受信非データフレー
ムバッファ」53と53´とも呼ばれる)を受信する二つのバッファは、命令お
よびFCPフレーム(ファイバチャンネルプロトコルフレーム)が同時にノード
の両ポートで受信できるように(および、同様に、全二重動作が、すなわち、ポ
ートの1本のファイバ上で受信をしながら同一ポートのほかのファイバ上で送信
を行うことができるように)設けられている。これにより、ディスクドライブ1
00(図2参照)は転送の中止または終わりまで待つよりもむしろ同一のポート
および/または他のポートでのデータ転送中に1つのポートで新しい命令(また は他の非データフレーム)を受信することができる。従来の試みの場合よりも早
く命令を有することによって、本発明は、命令の分類および最適化を可能にし、
同時に、データ転送を進行させ、それにより、コンピュータシステム1200の
性能を改善することができる。
【0040】 二重ポートのファイバチャンネルの調停ループ設計では、オンチップフレーム
バッファは、到来および外向のフレームを管理するために使用できよう。オンチ
ップのRAMは、性能とシリコン不動産との間の均衡を見出すために種々の方法
で構成することができる。本明細書は、ファイバチャンネルのループ初期化フレ
ームと単一フレームのファイバチャンネル応答を記憶しかつ送信するために使用
される専用のフレームバッファ119と単一フレームの送信路70の使用を詳述
する。
【0041】 二重ポート設計では、1つのポートは、データを受信または送信し、および、
転送を扱うためにASIC資源の大部分を利用してもよい。多くのカウンタおよ
び状態マシーンは、この種の多フレームシーケンスを取り扱うために要求しても
よい。
【0042】 本発明では、一定量の論理回路は、各ポート毎の設計を二重にせず、またはデ
ータ転送を停止せずに、主ポートがデータを転送する時に同時に、別のポートが
フレームを受信および送信できるように機能を提供することが要求される。本発
明のある実施例では、1つのポートでフレームを送信しながら他のポートがデー
タを送信する能力を提供するために、単一フレーム送信路回路70と共に(図1
3に示したように)専用の送信フレームバッファ73が提供されている。いづれ
のポートもデータを転送し、または送信フレームバッファ73を使用できるよう
に、論理回路を動的に形成してもよい。
【0043】 主ポートでデータを転送し、そして、ループの初期化が他のポートで行われて
いる時に、データ転送は、間断なく続行することができる。受信される(非デー
タフレームである)ループ初期化フレームは、このフレームがフレームバッファ
(例えば、送信フレームバッファ73、図13参照)に書き込まれる前に確認さ
れる。マイクロプロセッサ112は、受信されたフレームが送信できる前に、こ
の受信されたフレームを送信フレームバッファ73が検査して改変することがで
きるように送信フレームバッファ73に対して書き込み/読み取りアクセスをす る。フレームの「ヘッダ」および「ペイロード」は、そのフレームバッファに記
憶される。(フレームの「ヘッダ」は、そのフレームのソース識別子、シーケン
スカウントおよび発信識別子のような情報を有している。フレームの「ペイロー
ド」は、送信されるデータの主体である。マイクロプロセッサ112の制御下に
おいて単一フレームの送信路70(図3参照)は、フレームの組み立てを行い、
フレームの開始およびフレームの終わりの区切り記号を有し、フレーム周期冗長
符号(「CRC」)情報を発生する。
【0044】 データフレームが主ポートで転送され、そして、ファイバチャンネルプロトコ
ル(FCP)応答フレームの伝送が要求されると、データ転送が遮断なしに続行
可能となる。図3では、マイクロプロセッサ112は、応答フレームのヘッダと
ペイロードを送信フレームバッファ73に配置する。単一フレーム送信回路70
は、フレームの組み立てを行い、フレーム開始および終了の区切り記号を有し、
およびフレームのCRC情報を発生する。一部追加のループ制御論理回路は、フ
レーム伝送のためにループ1250を開放するように設けられている。
【0045】 図14で、送信フレームバッファ73は、書き込みポインタおよび読み取りポ
インタ(それぞれ733と734)を必要とする。(時には、「単一フレーム送
信フレームバッファ」または「送信フレームバッファ」とも記載されるが、バッ
ファ73は、包括的には、「送信フレームバッファ」であり、他の実施例ではバ
ッファ73は、1個以上の各ポート毎に1個以上の送信フレームを有しており、
用語「送信フレームバッファ」は、本明細書では、これら実施例全てを含むよう
に使用される。)単一フレーム送信回路70(その詳細な説明は、図13で以下
に示す)は、フレーム長カウンタ71、送信フレーミング状態マシーン72、C
RC発生器76、および送信マルチプレクサ(「mux」)74を必須とする。
【0046】 ファイバチャンネルインターフェースの説明 図3は、ファイバチャンネルのノードインターフェースチップ110のブロッ
ク線図である。本発明におけるファイバチャンネルのノードインターフェース論
理回路110は、調停ループロジックおよびフレーミングロジックを含むファイ
バチャンネルプロトコルに対し責任を有する。一実施例は、ファイバチャンネル
プロトコル(「FCP」)の規格によって定義されたSCSIの上位プロトコル
のみを使用する第3級のSCSI実施(上記のFCAL仕様参照)に最適化され
たものである。ファイバチャンネルノードインターフェース論理回路110は、
二重ポートおよび全二重動作を支援し、かつ、種々のバッファ帯域幅を支援する
ために4個のオンチップフレームバッファ(53、53´、55および73)を
有している。ファイバチャンネルノードインターフェース論理回路110は、マ
イクロプロセッサ112にインターフェースを介して接続され、これによりマイ
クロプロセッサ112はファイバチャンネルノードインターフェース論理回路1
10を設定し、ファイバチャンネルノードインターフェース論理回路110の現
在の状態についての状態情報を読むことができる。
【0047】 ファイバチャンネルノードインターフェース論理回路110は、2つのループ
ポート回路20(ポートA用に1つとポートB用にもう1つ、各ポートは、ルー
プ通信を支持するためにデータインインターフェースとデータアウトインターフ
ェースを有している)、ループ制御回路40(これはまた、フレーム送信回路4
0とも呼ばれる)、受信路論理回路50、転送制御論理回路60、単一フレーム
送信回路70、送信路マルチプレクサ(「mux」)79、データフレーム送信
路論理回路80、およびマイクロプロセッサインターフェース90を有している
。これらのブロックは、受信フレームの処理、送信データフレームの発生、単一
フレーム送信の発生、転送制御、およびプロセッサインターフェイシングのよう
な機能を支援する。
【0048】 マイクロプロセッサインターフェース回路90は、ファイバチャンネルノード
インターフェース論理回路110のレジスタおよびカウンタに対するマイクロプ
ロセッサ112のアクセスを提供する。(「マイクロプロセッサ」が記載される
時に、この用語は、任意適当なプログラム可能な論理装置を有すると理解される
べきである。)インターフェースレジスタは、ファイバチャンネルインターフェ
ース回路の応答前に外部のマイクロプロセッサ112により初期化される。出力
転送部は、このインターフェース回路を介して初期化され、そして、受信転送物
の状態は、このインターフェース回路を介して入手可能である。
【0049】 図3の入力信号は、ファイバチャンネル16からのデータ入力をポートAのた
めのループポート回路20に送るA_IN3021と、ポートB用のループポー
ト回路20に対しファイバチャンネル16からのデータ入力を送るB_IN30
22を有している。DATA FROM OFF−CHIP PBUFFER3
051は、オフチップバッファ111からのデータを受信路50に送る。TO
OFF−CHIP BUFFER3052は、データをオフチップバッファ11
1に受信路50から送る。BUFFER STATUS3061は、ステータス
を通信制御部60に送る。MPUインターフェース90へのMPU ADDRE
SS3091および MPU DATA3095は、マイクロプロセッサ112
からそれぞれアドレスのデータを提供する。MPUインターフェース90へのR
EAD_ENABLE3092とWRITE_ENABLE3093は、マイク
ロプロセッサ112からイネーブル信号を提供する。信号MPU3076により
、マイクロプロセッサ112は、送信フレームバッファ73にアクセスすること
が可能となる。A_OUT 3023は、ポートA用のループポート回路20か
らファイバチャンネル16にデータを送り、B_OUT3024は、ポートB用
のループポート回路20からファイバチャンネル16にデータを送る。
【0050】 ループポート回路20 図4は、ファイバチャンネルループポート回路20のブロック線図である。本
発明の一実施例のファイバチャンネル設計は、周辺装置の直接取り付け用の二重
ポートファイバチャンネルインターフェースを支持するために、2つの同一のル
ープポート回路20を有している。一実施例では、ファイバチャンネルループポ
ート回路20は、受信レジスタ21、8B/10Bデコーダ論理回路22、ワー ド同期状態マシン23、受信クロック喪失検出器24、同期喪失タイマ25、調
停ループ論理回路26、および8B/10Bエンコーダ27を有している。
【0051】 一実施例では、各ループポート回路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ビッ
ト文字に変換される。(「16B/20B Encoder」なる名称の米国特 許第5、663、724号参照。)調停ループ論理回路20は、ループ状態マシ
ン、配列群デコーダ、および融通性の挿入および削除機能を有している。ループ
ポート回路20は、ファイバチャンネルの調停ループANSI規格(すなわち、
上記のFC−ALおよび/またはFC−AL2)で定義された調停ループプロト コルを実施する。
【0052】 一実施例では、ファイバチャンネルデータは、連続伝送され、そして、トラン
シーバ115によって10ビットの並列データに変換される。受信レジスタ21
は、トランシーバ115の受信部により発生されたクロックを使用してトランシ
ーバ115からの10ビットのデータ(A_IN3021またはB_IN302
2)を捕捉する。これらのデータは、8B/10Bデコーダ22を介して送られ る前にただちに20ビット幅のデータ(すなわち、2つの10ビット文字幅)に
変換される。一実施例では、デコーダ22は、「8B/10B デコーダ」と呼 ばれるが、各動作中に10ビットの1文字を8ビットの1文字に変換する。他の
実施例では、各動作中に2個以上の10ビット文字が対応する数の8ビット文字
に変換される。
【0053】 8B/10Bデコーダ論理回路22は、受信レジスタ21により捕捉された符 号化データを入力する。10ビットの2文字は、並列にデコードされて8ビット
の2文字を出力する。実行時における入力文字のディスパリティはチェックされ
、および、誤り状態は、ワード同期状態マシン23ならびに調停ループ論理回路
26に送られる。実行時の否定的なディスパリティは、実行時のディスパリティ
の誤りに続く次の配列群に強制される。符号化ルールに対する侵害もチェックさ
れ、符号侵害状態は、ワード同期状態マシン23に送られる。
【0054】 受信クロック喪失検出器24は、トランシーバ115からの受信クロックがい
つ停止したかを検出する。受信クロック喪失状態が検出されると、ワード同期状
態マシン23はリセットされ、データは、調停ループ論理回路26のFIFOに
入るのを防止される(FIFOは、異なる速度を有するバスまたは処理の間での
インターフェース接続に一般的には使用されるファーストイン、ファーストアウ
トメモリである)。ワード同期が再び得られるまで、現在の充填ワード(さらに
以下に記載する「CFW」)が伝送される。
【0055】 ワード同期状態マシン23は、ワード同期について入力されたストリームを論
理監視する。ワード同期は、3つの有効な配列群がしかるべきバイト/制御文字 群により検出され、そして、介在する無効文字が検出されない時に達成される。
「ワード喪失同期」は、FC−PH(すなわち、FC−PH Physical
&Signalling Interface X3T11/Project7 55D/Rev.4.3)規格ごとに定義されている。ワード同期が達成されると、
データは、調停ループ論理回路26のFIFOに入力される。
【0056】 同期喪失タイマ25は、(有効な配列群を3組検出するためのフレーム時間ま
でかかる可能性があるので)ワード同期喪失条件がいつ最大フレーム時間以上存
在していたかを判別するために使用される。このタイマ時間が満了すると、マイ
クロプロセッサ112は、同期喪失インターラプト信号4025で割り込みを受
けるので処置を取ることができる。
【0057】 調停ループ論理回路26は、ループ融通性FIFO、ループFIFO制御論理
回路、配列群デコード論理回路、ループ状態マシン論理回路、現在充填ワード選
択論理回路、ループ出力マルチプレクサ論理回路、および種々の機能を有してい
る。ループ融通性FIFOは、(受信クロックによりクロッキングされた)入力
データを送信クロックと再同期化するために必要とされるバッファリングを提供
する。ループFIFO制御論理回路は、挿入または削除の操作が必要とされるか
否かを決定するために調停ループ論理回路26の状態を監視する。配列群は、配
列群認識論理回路により復号化される。これらの配列群は、FC−PHにより定
義された配列群(すなわち、FC−PH Physical&Signalli
ng Interface X3T11/Project755D/Rev.4.3 )を有し、このFC−PHにより定義された配列群は、フレームの区切り符号お
よび調停ループ配列群を有している。現在充填ワード選択論理回路は、現在の充
填ワード(「CFW」)を決定するためにループ状態および復号化された命令セ
ットを監視する。調停ループが動作可能状態になると、ハードウエア状態マシン
は、FC−AL規格(すなわち、Fiber−Channel FC−AL1
Arbitrated Loop standard X3T11/Proje ct960D/Rev.4.5、または、Fiber−Channel FC−A L1 Arbitrated Loop standard X3T11/Pr oject1133D/Rev.6.3)に記載されたループ機能を行うために配列 群デコードを使用する。入力LOOP A TRANSMIT CONTROL
OUTPUTS6425,および、LOOP B TRANSMIT CON
TROL OUTPUTS6427は、図6の論理回路から調停ループ論理回路
26に入力を提供する。出力LOOP A STATUS AND CONTR
OL6422およびLOOP B STATUS AND CONTROL64
32は、それぞれのループの出力を制御し、該調停ループ制御論理回路40に対
して状態を提供する。このループ制御論理回路(図6参照)は、ループ状態マシ
ンに対して要求を発生する。出力LOOP A DATA4026とLOOP
B DATA4027は、それぞれの局部(ローカル)ポート(図7のそれぞれ
のブロック51と51´)に対しデータを提供する。
【0058】 一実施例では、8B/10Bエンコーダ論理回路27は、調停ループ論理回路 26から16ビットのデータと2個のk文字を受け入れる。一実施例では、入力
は、2つの10ビット文字に符号化され、この2つの10ビット文字は、分離さ
れて一度に1個づつトランシーバ115(図1参照)に出力される。トランシー
バ115は、そのデータを連続ストリームに変換する。他の実施例では、両方の
10ビット文字(すなわち20ビット)は、トランシーバ115に並列で送られ
る。このトランシーバ115は、このデータを連続ストリームに変換する。送信
マルチプレクサ79(図3参照)は、エンコーダ27が現在の実行時のディスパ
リティに基づいてEOFの正しいタイプ(すなわち、「フレイバ」(flavo
r))を選択できるように、いつフレーム終了(「EOF」)の区切り符号が転
送されるかを示すための状態を提供もする。また、ポートが(開かれた状態で)
送信する時には、または、調停ループ論理回路26がプリミティブを送信する時
には、実行時のディスパリティが、各非EOFプリミティブの開始時に否定に対
し押し付けられる。出力信号A_OUT3023およびB_OUT3024は、
データをそれぞれのトランシーバ115と115´に送る。
【0059】 図5は、制御がひとたび調停により達成されると、ループを開放状態に保持す
るために一実施例で使用される比較器論理回路30を示す。OFF−CHIP
AVAILABLE DATA5011の量は、比較器5010により所定値X
−FRAMES5013(これは、一実施例ではプログラム可能な値であって、
最適値は経験的に決定される。一実施例ではこの値は、1つのフレームに設定さ
れる)と比較される。DATA−FRAME DATA AVAILABLE5
015の量は、所定値Y−WORDS5017(これは、一実施例ではプログラ
ム可能な値であって、最適値は、経験的に決定される。一実施例では、この値は
、フレームの半分のワードの数に設定される。一実施例では、約2000ワード
が存在し、そして、Y−ワードは、約1、000である)と比較器5012によ
り比較される。ANDゲート5014は、両方の条件が満足される時を判別して
出力HOLD LOOP OPEN5019を出力する。
【0060】 図6は、ループ制御回路40(または、フレーム送信「XMIT」回路40と
も呼ばれる)のブロック線図である。ループ制御回路(図3と図6参照)は、フ
レームまたはR_RDYの送信を開始するために、(ポートAとポートBの調停
ループ論理回路26の)該当する調停ループ状態マシンに対し要求を発生し、か
つ、送信フレーミング状態マシン72(図13)と81(図15)に対し要求を
発生する制御論理回路を有している。
【0061】 送信データシーケンサ論理回路41は、転送がマイクロプロセッサ112によ
り要求された時に駆動される論理回路を有している。送信データシーケンサ論理
回路41は、入力信号TRANSMIT STATUS INPUTS6411
を使用して転送を監視し、そして、その転送の各段階毎に「イネーブル」(すな
わち、イネーブル信号TRANSMIT CONTROL OUTPUTS64
13)を発生する。これにより、マイクロプロセッサ112の介在なしに転送準
備完了応答とFCP応答を発生することができる。
【0062】 ループポートA/B開放制御状態マシン42(ポートA)と42´(ポートB )は、他のL_Portにより該ポートが開放される場合またループ1250が
フレーム送信のために開放される場合を取り扱う。この論理回路は、ループ12
50を調停し、かつ、これを閉じるための要求およびR_RDYおよび種々のフ
レームを送信するための要求を発生し、および半二重操作または全二重操作を行
うように設定することができる。
【0063】 次の条件は、調停の要求を開始するために満足されなければならない: −送信ポートイネーブルでフレームを送信するためのマイクロプロセッサ11
2からの要求、 −送信ポートが監視状態にある、 −送信長カウントが非ゼロ、 −転送を中断するためのマイクロプロセッサ112からの要求がない、および −(非データの転送、または、満たされたデータしきい値でまだ伝送されてい
ない転送準備完了のデータ書き込みの転送または満たされたデータしきい値およ
び満たされたデータフレームバッファのしきい値でのデータ読み取りの転送)。
【0064】 ポートが半二重モードに設定されている場合、R_RDYは、開放された状態
にある時にのみ送信することができる。ポートが全二重モードに設定されている
場合、R_RDYは、開放された状態かまたは開放状態のいづれかで伝送するこ
とができる。R_RDYを伝送させる条件は、「利用可能なバッファ―バッファ
間クレジット(BB_Credit)および最大のBB_Creditよりも小
さい問題のR_RDYを含む。(下に図12において記載されるバッファ―バッ
ファ間クレジットコントロール論理回路603は、フレームを送ることができる
ように連結ポートに対しバッファクレジットを発生する。このクレジットは、R
_RDYを送ることにより発生される。)
【0065】 ポートが半二重モードに設定されている場合、フレームは、開放状態にある時
にのみ送信できる。ポートが全二重モードに設定されている場合は、ポートがフ
レーム受信部により全二重モードで開放されている場合に、フレームは、開放状
態かまたは開放された状態で伝送することができよう。
【0066】 フレームを送信すべき要求は、次の条件がすべて満足される時に発生される: −データフレームバッファ55が利用可能なデータを有し、 −バッファ―バッファ間クレジットが利用可能であり(R_RDYが受信され
た時)、 −非データの転送、またはデータ読み取りの転送および(図12のブロック6
09)転送長カウンタが非ゼロである。
【0067】 ル−プ1250を閉成させる条件は、以下のものを含む: −開放された状態を開始する時にバッファ―バッファ間クレジットが利用でき
ない、 −問題のR_RDYが存在せず、開放された状態においてこれ以上BB_Cr
editが利用できない、 −ポートが開放された状態にある時にプロセッサのビジー要求が働いており、 −転送が完了した、 −データ読み取り転送動作およびデータが利用できない、 −CLSプリミティブが受信され、そして、BB_Creditが利用できな
い。
【0068】 また図6において、ループポートA/B開放初期化制御状態マシン46(ポー トA)と46´(ポートB)は、ファイバーチャネルループ1250が開放初期
化状態にある時の場合を扱う。この論理回路46と46´は、フレームを送信す
るための要求を発生する。各ポート毎に(それぞれ46、46´毎に)1つの状
態マシンが存在する。これらの状態マシンは、マイクロプロセッサ112がフレ
ームの送信を要求する時にこの要求を発生し、およびEOFの送信を監視する。
その送信が完了した場合、転送完了がマイクロプロセッサ112に対して発生さ
れる。
【0069】 ブロック40の入力は、PORT BB_CREDIT AVAILABLE
TO TRANSMIT R_RDY6017,および、PORT CRED
IT AVAILABLE TO TRANSMIT A FRAME6020
(図12参照)、 LOOP A STATUS AND CONTROL64
22および、LOOP B STATUS AND CONTROL6432(
図4参照)、および、DATA AVAILABLE6019(図12参照)を
含む。ブロック40からの出力は、TRANSMIT CONTROL OUT
PUTS6413、LOOP A TRANSMIT CONTROL OUT
PUTS6425、および、LOOP B TRANSMIT CONTROL
OUTPUTS6427を含む。
【0070】 単一フレーム送信路に関する更なる情報は、以下に述べる単一フレーム送信路 回路70 なる名称の項で見られる。 II.フレーム受信のための専用のフレームバッファ 二重ポートファイバチャネルの調停ループ設計1200においては、オンチッ
プフレームバッファ119のバッファは、到来および外向のフレームを管理する
ために使用してもよい。受信および送信されるフレームは、通常は、より遅い転
送速度で大きなオフチップエリア(例えば、オフチップバッファ111)に記憶
される。オフチップバッファ111が単一ポートのための全転送速度が可能な時
でも、二重ポート設計の場合、必要な帯域幅は、更に大きくなり、付加費用が加
わる。FC−AL ASIC110(図1参照)のオンチップフレームバッファ
119は、性能、シリコン不動産およびコスト間のバランスをうまく得るように
種々の方法で構成してもよい。本明細書は、各ポートで同時に非データ型フレー
ムを受信し、かつ、専用の大きなデータフレームバッファ55(また、全オンチ
ップフレームバッファ119の要素)を提供するために専用フレームバッファ5
3および53´(全オンチップフレームバッファ119の要素)の使用を詳述す
る。
【0071】 本発明による二重ポート設計では、フレームは、両ポート116で同時に受信
してもよい。フレームは、受信後、より大きなオフチップメモリ111に通常は
移動され、そこに記憶される。各フレームは、確認されなければならず、フレー
ムオフチップを転送する前にフレーム周期冗長符号(「CRC」)情報は、チェ
ックされなければならない。受信フレーム確認論理回路およびCRCチェッカ論
理回路を二重にすることを避けるために、個々の非データフレーム受信バッファ
53と53´がそれぞれ各ポート116に1つづつ設けられてフレームが全イン
ターフェース速度で同時に受信され、一度に1つづつ読み取られ、確認され、オ
フチップへ転送できるようにする。データが1つのポートで受信または送信でき
ると共に同時に非データフレームが他のポートで同時に受信できるように大きな
共通のデータフレームバッファ55がポート間で共有されるようにさらに設けら
れている。更に、各ポートには2本の個々の一方向ファイバが設けられているの
で、単一ポートが同時に送信および受信を行うことができる。
【0072】 例えば、ポートA受信ファイバ117は、非データフレームを非データ受信バ
ッファ53内へ受信することができ、このとき、ポートA送信ファイバ118は
、データフレームバッファ55からデータフレームを送信するかまたは送信フレ
ームバッファ73から非データフレームを送信することができる。同時に、ポー
トBは、非データフレームを非データ受信バッファ53´へ受信することができ
、この間、非データフレームを送信フレームバッファ73から送信し、またはデ
ータフレームバッファ55からデータフレームを送信することができる(ポート
Aが非データフレームを送信する場合に)。データフレームバッファ55または
受信フレームバッファ53または53´の1つは、前記受信フレーム確認論理回
路およびCRCチェッカ論理回路を使用するように選択されてもよい。なお、本
発明の一実施例では、単一のデータフレームバッファ55が設けられていて、一
度に1つのポート116に使用することができるのみであるが、任意の時に送信
または受信のいずれかに使用される。他の実施例では、多数のデータフレームバ
ッファ55がこのような制限を除去するために設けられている。また、本発明の
一実施例では、単一の送信フレームバッファ73が設けられているが、一度に1
つのポート116に使用することができるだけである。他の実施例では、多数の
送信フレームバッファ73がこのような制限を除去するために設けられて、両ポ
ートで本当に同時のループ初期化動作(または他の非データ応答の送信)を可能
にする。
【0073】 到来データの転送がおこなわれている場合、データフレームまたは非データフ
レームは、主ポートで受信してもよい。同時に、非データフレームは、代わりの
ポートで受信されてもよい。(ヘッダ、ペイロード、CRC、フレームの区切り
符号を有する)データフレームは、大データフレームバッファ55内に置かれ、
一方(ヘッダ、ペイロード、CRC、フレームの区切り符号を有する)非データ
フレームは、より小さな受信フレームバッファ53(または53´)内に置かれ
る。各ポート116毎に1つの受信フレームバッファ53が設けられている。そ
れら3個のフレームバッファの1つ(53、53´または55)は、利用できる
データを有する時には、受信確認論理回路595およびCRCチェッカ論理回路
596(図11参照)を使用するために選択される。
【0074】 外向データの転送が行われている場合、データフレームは、主ポートで送信さ
れる。同時に、非データフレームは、いずれかのポートで受信してもよい。デー
タペイロードは、オフチップから読み取られ、データフレームバッファ55に書
き込まれ、インターフェース転送が開始できるようになるまで記憶される。(ヘ
ッダ、CRCおよびフレーム区切り符号は、フレームがフレームバッファから読
み取られた後に加えられる。)同時に、非データフレームは、主ポートまたは代
わりのポートのいずれかで受信してもよい。フレームバッファが受信確認論理回
路595とCRCチェッカ論理回路596へのアクセスを与えられるまで、非デ
ータフレームは、受信フレームバッファ53または53´に書き込まれて保持さ
れる。
【0075】 可能な最高の性能でデータ転送を行うために、優先順位がデータフレームバッ
ファ55に与えられる。非データフレームは、データ転送が中止または完了する
時に取り扱われる。受信フレームバッファ53の1つが充填されてループのバッ
ファ―バッファ間クレジットがもはや利用できないようになると、データフレー
ムバッファ55の書き込み/読み取り動作は、中止されてバッファ―バッファ間 クレジットが再び利用できるように受信フレームバッファスペースを開放する。
到来データフレームは、この時間中データフレームバッファ55内に累積しても
よい。これは、読み取りが短時間中断した間に、新しいフレームがデータフレー
ムRAM555に書き込まれてもよいからである。インターフェースに利用でき
る外向データフレームは、この時間中に一時的に減少させてもよい。それは、書
き込みが短時間中断されていた時に、フレームがRAM555から読み取られて
もよいからである。
【0076】 図7は、ファイバチャネル受信路およびフレームバッファブロック50(図3
参照)のブロック線図である。受信路およびフレームバッファブロック50は、
受信フレームを処理し、そのフレームを直接オフチップ(オフチップバッファ1
11)に送り、または、単一フレーム送信回路70に送るか、または、フレーム
を受信する3つのフレームバッファの1つ(非データフレーム受信バッファ53
または53´またはデータフレームバッファ55)にそのフレームを記憶する。
受信路50は、プリバッファ受信フレーム処理(ブロック51と51´)、デー
タフレームバッファマルチプレクサ52、ポートAおよびポートBの非データフ
レーム受信バッファ53と53´のそれぞれ、データフレームバッファ55、デ
ータフレームバッファ転送長カウンタ54、フレームバッファコントローラ56
、共通受信路59、およびバッファインターフェース58のブロックを有してい
る。
【0077】 ブロック51への入力は、図4からのLOOP A DATA4026および
(また図6への入力である)LOOP A STATUS AND CONTR
OL6422を有している。ブロック51´への入力は、図4からのLOOP
B DATA4027および(また図6への入力である)LOOP B STA
TUS AND CONTROL6432を有している。データフレームバッフ
ァ55への入力は、OFF−CHIP BUFFER DATA3051を有す
る。信号DATA XFER CONTROL7521は、データフレームバッ
ファ52を制御する。(通常は、バッファが転送速度帯域幅とは対応できないの
で)信号BUF_PAUSE7561は、中止を要求するということをフレーム
バッファコントローラ56に知らせる。カウンタ値をロードするために信号LD
_CONUNTERS7541がデータフレームバッファ転送長カウンタ54に
送られる。
【0078】 出力信号BXFR_CNT_ZERO7542は、転送のデータ全てが選択さ
れたフレームバッファに存在するということを示す。フレームバッファコントロ
ーラ56は、ポートA非データフレーム受信バッファ53に対し読み取りイネー
ブル信号RD_ENABLE7532を、データフレームバッファ55に対しR
D_ENABLE7552を、そして、ポートB非データフレーム受信バッファ
53´に対し信号RD_ENABLE7533を提供する。バッファ制御インタ
ーフェース58は、オフチップバッファ111に対して選択、ストローブ、およ
び/またはイネーブル信号CONTROLS FOR OFF−CHIP BU FFER7589を提供する。出力DATA TO OFF−CHIP BUF
FERへの出力3052は、オフチップバッファ111に対し受信したデータフ
レームおよび非データフレームを提供する。
【0079】 データフレームバッファマルチプレクサ52は、DATA XFER CTL
7521をビットセットしたポートからデータおよびプリバッファ受信状態マシ
ン512の出力を選択する。データフレームバッファマルチプレクサ52の出力
は、データがデータフレームバッファRAM555(図10参照)内に書き込む
ことができるように、データフレームバッファ55に対してデータ信号および状
態信号(それぞれ図10の8511と8512)を提供する。
【0080】 図8は、ファイバチャネルプリバッファ受信フレーム処理路回路51のブロッ
ク線図であって、これは、3つのフレームバッファの1つ(53、53´または
55)に入力されるようファイバチャネル1250から受信したフレームを準備
する。プリバッファ受信路ブロック51は、プリバッファ受信フレーミング状態
マシン512、プリバッファ受信フレーム長カウンタ515(およびそのマルチ
プレクサ514)、およびEOF改変論理回路513を有している。このブロッ
ク51は、ポートAおよびポートB用に二重になっている(すなわち、各ポート
毎に1つ形成されている。)それは、フレームが同時に両ポートで受信できるか
らである。
【0081】 プリバッファ受信状態マシン512は、フレームとR_RDY´が受信される
ときを判別するために入力ストリームを監視する。SOFが検出されると、ヘッ
ダ、ペイロード、およびフレームの区切り符号の各ワード毎に信号が発生される
。このプリバッファ受信フレーミング状態マシン512は、ヘッダまたはペイロ
ード中に受信された無効プリミティブの有無を、および(恐らく破壊されたEO
Fのために)最大フレーム長を侵害する転送の有無についてチェックを行う。
【0082】 プリバッファ受信フレーム長カウンタ515は、受信フレームのヘッダのR_
CTLフィールドに基づいて、受信フレームの行先となるフレームバッファの命
令、その他またはデータバッファの各領域のいずれかの(マルチプレクサ514
により選択される)最大フレーム長をフレームの開始時にロードされる。EOF
が検出される前にプリバッファ受信フレーム長カウンタがゼロになると、長さの
誤りが検出される。この機能により、フレームバッファ内の割り当てられた空間
のオーバーランの防止が支援される。
【0083】 EOF改変論理回路513は、到来フレームがデータフレームであるかどうか
を見極めるためにこの到来フレームをチェックし、そして、フレームバッファ用
のイネーブルを発生する。EOF改変論理回路513は、プリバッファ受信フレ
ーム長カウンタ515により使用される到来フレームのルーティング制御フィー
ルドを捕捉する。EOF改変論理回路513は、さらに詳細な状態情報がフレー
ムバッファを介して共通の受信路59へ送られるようにEOFフィールドを改変
もする。
【0084】 図4からの入力信号LOOP A DATA4026およびLOOP B D
ATA4027は、EOF改変論理回路513に接続される。入力信号LOOP
A STATUS AND CONTROL6422およびLOOP B S
TATUS AND CONTROL6432(これはまた、図6への入力でも
ある)は、プリバッファ受信フレーミング状態マシン512に対しループ125
0に関する状態情報を提供する。入力信号MAX FRAME SIZE851
7は、データフレーム、制御フレームおよび他のフレームのための最大フレーム
サイズについての情報をマルチプレクサ514とプリバッファ受信フレーム長カ
ウンタ515に提供する。
【0085】 出力信号PRE−BUFFER−RECEIVE DATA8511とPRE
−BUFFER−RECEIVE STATUS8512は、データおよび状態
情報を非データバッファ53と53´(図9参照)およびデータフレームバッフ
ァ55へ提供する。
【0086】 図9は、ファイバチャネルの受信非データフレームバッファ回路53のブロッ
ク線図である。受信非データフレームバッファ53は、受信フレームバッファ書
き込み制御回路533、受信フレームバッファ読み取り制御回路534、受信フ
レームバッファRAM535、受信フレームバッファ状態ブロック536、およ
び受信フレームバッファフレームカウンタ531を有している。受信非データフ
レームバッファ回路53は、フレームが両方のポートAとポートBで同時に受信
される可能性があるので、これら両ポートAとB用におのおの一度実施されてい
る。
【0087】 受信フレームバッファ書き込み制御ブロック533は、アドレス(WPTR9
537)、データ(WDAT9536)、および書き込みイネーブル(WE95
39)を受信フレームバッファRAM535のランダムアクセスメモリ(「RA
M」)のために発生する。フレームのデータが受信されると、プリバッファ受信
状態マシン512からの状態イネーブルが、書き込みイネーブル(WE9539
)をRAM535に発生するために使用される。アドレスは、インクリメントさ
れ、ラップビット(WRAP9538)は、いかに多くのスペースが受信フレー
ムバッファRAM535において利用できるかを判別するために受信フレームバ
ッファ状態ブロック536により使用されるように提供される。ループポート回
路20からのデータは、16ビット幅から32ビット幅に変換され、フラグビッ
トがSOFまたはEOFの区切り符号を示すために発生される。受信フレームか
らのCRCは、データを保護するために非データフレームバッファRAM535
を介して送られる。すなわち、ファイバチャネルから受信されたCRC情報は、
データと共に非データフレームバッファ53内に記憶され、そして、非データフ
レームバッファ53内にデータが存在する時にこのデータに生ずるどのような誤
りも検出されるように(もちろん、ファイバチャネルループ1250での送信中
のデータに生じた誤りも検出される)、(例えば、データがオフチップバッファ
111に転送される時に)CRC情報は、非データフレームバッファ53からデ
ータが読み出される時にチェックされる。ブロック53への入力信号は、PRE
−BUFFER−RECEIVE DATA8511およびまたPRE−BUF
FER−RECEIVE STATUS8512(図8参照)、およびマイクロ
プロセッサ112からの登録された(すなわち、後で使用するためにレジスタ内
にクロックされた信号のバージョン)MPU DATA9533およびMPU
ADDRESS9534を有している。
【0088】 受信フレームバッファ読み取り制御ブロック534は、受信フレームバッファ
RAM535用の読み取りアドレス(RPTR9541)を発生し、そして、受
信フレームバッファRAM535からのデータ(RDAT9540)を捕捉する
。フレームバッファコントローラ56(図7参照)は、受信非データフレームバ
ッファ53を選択すると、受信フレームバッファRAM535への読み取りがイ
ネーブルされる。アドレスは、インクリメントされ、ラップビット(WRAP9
542)は、提供されていかに多くのスペースが受信フレームバッファRAM5
35内において利用できるかを判別するために受信フレームバッファ状態ブロッ
ク536により使用される。受信フレームバッファRAM535からのデータは
、レジスタ内へ捕捉され、そして、フレームの開始および終わりを判別するため
にフラグビットについて監視される。イネーブルは発生されて、データが有効な
時を示すために共通の受信路59(図7参照)により使用される。ブロック53
4への入力信号は、マイクロプロセッサ112からのREGISTERED R
EAD−ENABLE9535を有している。ブロック534からの出力信号は
、RECEIVE NON−DATA BUFFER DATA9543および
NON−DATA VALID READ9546を有している。
【0089】 受信フレームバッファRAM535は、同期RAMを有している。この同期R
AMは、33ビット幅(32ビットデータワード+SOF/EOFフラグビット )で、304ワード長のものである。受信された非データフレームのSOF、ヘ
ッダ、ペイロード、CRCおよびEOFは、オフチップバッファ111および共
通受信路59へのアクセスが利用可能となるまで受信フレームバッファRAM5
35に書き込まれて保持される。一実施例では、内蔵の自己試験コントローラに
より、メモリの物理的なレイアウトのために特に開発されたデータパターンで受
信フレームバッファRAM535は試験することができる。
【0090】 受信バッファ状態ブロック536は、受信フレームバッファが空いているか否
か、および、もしもバッファが空いていない場合は、受信フレームバッファRA
M535の書き込みポインタおよび読み取りポインタを比較してどれだけのスペ
ースのフレームが受信フレームバッファRAM535において利用できるかを判
別する。受信バッファ状態ブロック536の出力(AVAILABLE PAC
E9545)は、フレームバッファコントローラ56により使用されて受信フレ
ームバッファRAM535が共通の受信路59へのアクセスを必要とするか否か
を判別する。この出力は、またクレジットが利用できるか否かを判別するために
バッファ−バッファ間クレジットコントロール論理回路613(図12参照)に
より使用されもする。
【0091】 受信フレームバッファフレームカウンタブロック531は、受信フレームバッ
ファRAM535における現在のフレームの数をカウントする。受信フレームバ
ッファフレームカウンタブロック531は、フレームが受信フレームバッファR
AM535に書き込まれる時にインクリメントされ、フレームが受信フレームバ
ッファRAM535から読み出される時にディクリメントされる。そのカウント
(COUNT OF FRAMES IN BUFFER9544)は、クレジ
ットが利用できるか否かを判別するためにバッファ−バッファ間クレジットコン
トロール回路603により使用される。一実施例では、受信フレームバッファR
AM535に入る全ての入力(クロックを除く)は、適当な保持時間を提供する
ために遅延される。
【0092】 図10は、ファイバチャネルのデータフレームバッファ回路55のブロック線
図である。データフレームバッファ回路55は、データフレームバッファ書き込
み制御回路553、データフレームバッファ読み取り制御回路554、データフ
レームバッファRAM555、データフレームバッファ状態ブロック556、デ
ータフレームバッファフレームカウンタ551、およびデータフレーム捕捉ブロ
ック552を有している。1つのデータ転送のみが任意の与えられた時に可能で
あるので、データフレームバッファ回路55は、ポートAとポートBにより共有
される。
【0093】 データフレームバッファ書き込み制御回路553は、データフレームバッファ
RAM555用のアドレス(WPTR9555)、データ(WDAT9554)
および書き込みイネーブル(WE9557)を発生する。(データがディスクに
書き込まれる)書き込み動作の場合、データフレームが受信されると、プリバッ
ファ受信状態マシン512からの状態イネーブルが使用されてデータフレームバ
ッファRAM555に対し書き込みイネーブル(WE9557)を発生する。(
ディスクからデータが読み取られる)読み取り動作の場合、フレームバッファコ
ントローラ56からのイネーブルは、データフレームバッファRAM555への
書き込みイネーブル(WE9557)を発生するために使用される。アドレスは
、インクリメントされ、そして、データフレームバッファRAM555でいかに
多くのデータ/スペースが利用できるかを判別するためにデータフレームバッフ ァ状態ブロック556によってラップビット(ラップ9556)が提供される。
書き込み動作の場合、ループポート回路20からのデータは、16ビット幅から
32ビット幅へ変換され、フラグビットがSOFまたはEOF区切り符号を示す
ために発生される。受信されたフレームからのCRCは、データを保護するため
にデータフレームバッファRAM555を通される。すなわち、ファイバチャネ
ルから受信したCRC情報は、そのデータと共にデータフレームバッファ55内
に記憶され、そして、データがデータフレームバッファ55から読み出される時
(例えば、データがオフチップバッファ111へ転送される時)チェックされる
。これは、データフレームバッファ55にデータが存在する時にこのデータに生
ずるどのような誤りも(もちろん、ファイバチャネルループ1250で送信中の
データに生ずる誤りも)検出されるようにするためである。一実施例では、読み
取り動作の場合、オフチップバッファ111からのデータは、16ビット幅から
32ビット幅に翻訳(または変換)され、データを保護するためにパリティが発
生される。データフレームバッファ書き込み制御回路ブロック553への入力信
号は、PRE−BUFFER−RECEIVE DATA8511およびPRE
−BUFFER−RECEIVE STATUS8512(図8参照)、および
DATA FROM OFF−CHIP BUFFER3051(図3参照)を
有している。
【0094】 従って、一実施例では、データフレームバッファRAM555のデータは、フ
ァイバチャネルループ1250(図2参照)からデータフレームバッファRAM
555を介してオフチップバッファ111に送られる場合、CRC情報によって
保護されるが、もしもそのデータがファイバチャネルループ1250に伝送のた
めにデータフレームバッファRAM555にオフチップバッファ111から送ら
れていた場合には(この後者の場合、CRC情報は、そのデータがデータフレー
ムバッファRAM555を離れた後にファイバチャネルで送られるデータに加え
られる)、パリティにより保護される。
【0095】 データフレームバッファ読み取り制御ブロック554は、データフレームバッ
ファRAM555用の読み取りアドレス(WPTR9559)を発生し、このデ
ータフレームバッファRAM555からのデータ(RDAT9558)を捕捉す
る。(ディスクにデータが書き込まれる書き込み動作の場合、フレームバッファ
コントローラ56は、データフレームバッファ55を選択し、メモリへの読み取
りが可能にされる。(データがディスクから読み取られる読み取り動作の場合、
送信フレーム状態マシン81(図15参照)によりメモリの読み取りが可能状態
となる。アドレスは、インクリメントされ、および、ラップビット(WRAP9
560)が提供されてデータフレームバッファ状態ブロック556によって使用
されてデータフレームバッファにおいていかに多くのデータ/スペースが利用可 能であるかを判別する。書き込み動作の場合、フレームバッファRAMからのデ
ータは、レジスタ内へ捕捉されてフレームの開始および終了を判別するためにフ
ラグビットについて監視されるので、共通の受信路59は、データが有効な時を
示すためにイネーブルを発生することができる。読み取り動作の場合、データフ
レームバッファRAM555からのデータはレジスタ内へ捕捉され、そのパリテ
ィがチェックされる。データフレームバッファ読み取り制御ブロック554から
の出力信号は、DATA FRAME BUFFER DATA9564、DA
TA VALID READ9563およびDATA PARITY ERRO
R9562を有している。
【0096】 データフレームバッファRAM555は、同期RAMを有し、一実施例では、
内蔵の自己試験コントローラを有している。一実施例では、データフレームバッ
ファRAMは、30ビット幅(32ビットデータワード+4個のSOF/EOF フラグビットまたはパリティビット)および3、232ワード長である。(デー
タがディスクに書き込まれるべき)書き込み動作の場合、受信されたデータフレ
ームのSOF,ヘッダ、ペイロード、CRCおよびEOFは、データフレームバ
ッファRAM555に書き込まれて、オフチップバッファ111と共通の受信路
59へのアクセスが利用可能となるまで保持される。(データがディスクから読
み取られるべき)読み取り動作の場合、ペイロードは、RAM555に書き込ま
れてファイバチャネルループ1250が開かれてデータが送信できるようになる
まで保持される。一実施例では、RAMに入る全ての入力(クロックを除く)は
、適当な保持時間を提供するために遅延される。
【0097】 データフレームバッファ状態ブロック556は、データフレームバッファRA
M55の書き込みポインタおよび読み取りポインタを比較して、データフレーム
バッファが空いているか否かを判別し、もしもデータフレームバッファが空いて
いない場合は、データ/スペースにいかに多くのフレームがそのデータフレーム バッファ内で利用可能か否かを判別する。書き込み動作の場合、このデータフレ
ームバッファ状態ブロック556の出力(AVAILABLE SPACE95
61)は、フレームバッファコントローラ56により使用されてデータフレーム
バッファ55が共通の受信路59へのアクセスを必要とするかということを判別
する。該出力は、クレジットが利用可能か否かを判別するためにバッファーバッ
ファ間クレジットコントロール回路603(図12参照)によっても使用される
。(データがディスクから読み取られるべき)読み取り動作の場合、ループ制御
ブロック40は、フレームが送信可能か否かを判別するためにフレームバッファ
内のデータの量を監視する。データフレームバッファのしきい値は、ファイバチ
ャネルループ1250を調停により開くようなものでなければならない。データ
フレームバッファ保持しきい値は、同様に、発生されて全フレームが利用可能で
はないが処理中(データフレームバッファ55およびまたはオフチップバッファ
111に累積されつつある)の場合に、ループ1250を開いたままにすること
ができるようにする。
【0098】 データフレームバッファフレームカウンタブロック551は、入力信号FRA
ME_OUT9550を用いて、現在データフレームバッファRAM555内に
存在するフレームの数を数える。データフレームバッファフレームカウンタブロ
ック551は、フレームがデータフレームバッファRAM555内に書き込まれ
る時にインクリメントされ、フレームがデータフレームバッファRAM555か
ら読み取られる時にデクリメントされる。そのカウント(COUNT OF F
RAMES IN BUFFER9566)は、クレジットが利用可能か否かを
判別するためにバッファ−バッファ間クレジットコントロール回路603により
使用される。 データフレーム捕捉ブロック552は、イネーブル捕捉モードが使用可能とな
る時に(ENABLE DATA WRITE DETECT9551を用いて
)受信したデータフレームを監視し、フレームヘッダの種々のフィールドを捕捉
する。これらの値(DATA CAPTURE OUTPUT9565)は、次
にマイクロプロセッサ112によって読み取られてもよい。
【0099】 また図7において、データフレームバッファ転送長カウンタ54の制御回路は
、読み取りデータがどのようにデータフレームバッファ55内へ前もって入れら
れたかを制御する2つのカウンタを有している。(ブロック54の)データフレ
ームバッファ転送長カウンタは、ファイバチャネルでの転送のためにいかに多く
のデータがオフチップバッファ111から取り出されるべきであるかを判別する
ために使用される。(ブロック54の) データフレームバッファ送信長カウン
タは、使用されてオフチップバッファ111からいかに多くのデータが取り出さ
れるべきであるかを判別し、その後、一時休止してどのフレームバッファがオフ
チップバッファ111へのアクセスをすべきかをコントローラ56が再度評価す
るようにする(次の段落において記載されるプロセス)。
【0100】 フレームバッファコントローラ56は、3つのフレームバッファ(すなわち
、データフレームバッファ55、ポートA受信非データフレームバッファ53ま
たはポートB受信非データフレームバッファ53´)のどれがオフチップバッフ
ァ111の資源に対するアクセスを許可されるべきかを決定する。ポートがルー
プ初期化状態にあって、そのポートの受信非データフレームバッファ53(すな
わち、53または53´)が空いていない場合、ループ初期化フレームは、最高
の優先順位を与えられるので、ループの初期化は、進行することができる。デー
タ転送は、次に高い優先順位を与えられ、受信非データフレームバッファ53が
いっぱいにならない限り続行する。受信非データフレームバッファ53の1つが
もはやフレームのための余地を有しない場合、その特定の受信非データフレーム
バッファ53は、一部のフレームを空にするためにオフチップバッファ111へ
のアクセスを許可され、データ転送が再度行われる。
【0101】 オフチップバッファの資源を必要とする第1のフレームバッファ(55、53
または53´)は、オフチップバッファ111へのアクセスを許可される。両ポ
ートが同時にフレームを受信する場合、ポートAは、最初にアクセスを認められ
る。フレームバッファコントロールブロック56がオフチップバッファ111へ
のアクセスをフレームバッファにひとたび与えると、それは、代わりのポートの
受信非データフレームバッファ53がいっぱいにならなければ、または初期化が
開始されなければ、またはデータ転送が開始されなければ、そのフレームバッフ
ァに対し情報を提供し続ける。与えられたポートのフレームは、オフチップバッ
ファ111に対してそのポートへのフレームの配送順に転送される。
【0102】 フレームバッファコントローラ56とオフチップバッファ111との間のデー
タ転送は、ファイバチャネルからのデータ速度がオフチップバッファ111に対
して維持できない場合には、バッファ制御インターフェース論理回路58によっ
て停止してもよい。 図11は、共通の受信路回路59のブロック線図であり、この受信路回路59
は、フレームバッファの1つ(55、53または53´)から来るフレームを取
ってオフチップバッファ111のためにこのフレームを準備する。この受信路回
路59は、SOFを認識し、確認のチェックのため受信したヘッダから情報を捕
捉する。そのCRCはチェックされ、そして、フレームは、オフチップバッファ
111の該当するバッファ領域へ送られる。
【0103】 受信バッファデコードブロック591は、(入力されたデータ信号FRM B
UFFER DATA9570とイネーブル信号VAL_READ9571から
得られた)フレームの開始および終了の区切り符号を復号化し、フレームの有効
性のチェックのために共通の受信路回路59によって使用される信号を発生する
。EOF区切り符号は、受信路ブロック用に変換される組み込み式の誤り状態(
フレーム長誤りまたは実行時のディスパリティエラー)を有してもよい。
【0104】 受信フレーミング状態マシン592は、フレームの境界を判別するために入力
ストリームを監視する。SOFが検出されると、信号が発せられてそのヘッダの
各ワードを捕捉可能にし、(5991、5992および5993と共に)CRC
チェッカ596、ヘッダ確認制御回路595およびバッファ制御回路598をイ
ネーブルする。受信フレーミング状態マシン592は、ヘッダ中に受信された無
効のプリミティブをチェックし、許容された最大フレーム長を破る転送があるか
どうかをチェックする。共通の受信路59は、一時的に停止状態にすることがで
きるので、受信フレーミング状態マシン592の状態出力は、フレーム捕捉およ
び確認ブロックを適切にイネーブル状態にするための活性化および不活性化する
パルスである。
【0105】 受信フレーミング長カウンタ(マルチプレクサ5931およびカウンタ593
2)は、受信されたフレームのヘッダからのR_CTLフィールドに基づいて、
(信号MAX SIZE INPUTS9572からの)命令、その他、または
データフレームのいずれかの最大フレーム長を、フレームの開始時にロードされ
る。EOFが検出される前に受信フレーミング長カウンタがゼロになると、フレ
ーム長エラーが検出され、フレームは、無効と記録される。この機能は、そのフ
レームのためのオフチップバッファ111内の割り当て空間のオーバーランの防
止を支援する。
【0106】 受信フレームヘッダ捕捉ブロック594は、受信されたヘッダの種々のフィー
ルドを捕捉するために受信フレーミング状態マシン592からの信号を使用する
。 フレームが受信されると、CRCチェッカブロック596は、そのフレームの
終わりにあるCRCをチェックする。(CRC STATUS9596により表
示される)CRCエラーが検出されると、そのフレームは無効と記録される。C
RCチェッカブロック596は、受信フレーミング状態マシン592によりイネ
ーブルされる。そのヘッダフィールド、ペイロードフィールド、およびCRCワ
ードの内容は、処理される。
【0107】 III.オンチップメモリにおけるデータの完全性のためのファイバチャネル
CRCの利用 本発明の1つの態様によれば、ファイバチャネルフレームを一時的に記憶する
フレームバッファにより、フレームの最大のフレームチャネルインターフェース
データ転送速度で受信することが可能となる。フレームは、次に、より遅いさら
に管理可能な速度でオフチップ記憶装置に転送してもよい。パリティ、CRCま
たは他の冗長機能のような種々の機構は、任意に使用されてデータを保護しなが
らこのデータをフレームバッファに記憶する。
【0108】 一実施例では、データの完全性のチェックは、フレームバッファを介して受信
されたファイバチャネル周期冗長符号(「CRC」)をデータと共に通すことに
よって改善され(すなわち、CRCは、フレームと共にフレームバッファ内へ記
憶され、それから後で、フレームと共に読み出される)、RAMを更に広くする
余分のパリティビットは、除去してもよい。(種々の実施例では、フレームバッ
ファは、データフレームバッファ55および/または受信非データフレームバッ ファ53または53´である)。データがRAMから読み出された後、このデー
タがオフチップに(すなわち、オフチップバッファ111に)転送される前に、
そのCRCは、チェックされる。到来データ路の余分のパリティビットもインタ
ーフェースからフレームバッファの到来側へおよびフレームバッファの外向側か
らCRCチェッカ596の入力へ除去することもできる。
【0109】 オフチップRAMへのインターフェースは、一度に1つの転送のみを扱い、オ
ンチップRAMよりも遅くファイバチャネル転送速度よりも遅いので、共通受信
路論理回路59は、非データフレームバッファ53、53´とデータフレームバ
ッファ55との間で共有することができる。この場合、1つのCRCチェッカ5
96のみが必要である。その理由は、まさにフレームがオフチップに行く(すな
わち、オンチップバッファ53、53´または55からオフチップバッファ11
1へ転送される)前にCRCがチェックされるからである。これとは対照的に、
CRCがフレームと共にフレームバッファ内に記憶されず、オフチップバッファ
111への途上でチェックされなかった場合(「オンチップフレームバッファを
介してCRCを通過させる」と称する)、2つのCRCチェッカが必要となろう
(すなわち、プリバッファ通路51と51´内に配置される必要があろう)。
【0110】 一実施例では、この機構は、同様に、データがより遅いオフチップバッファ1
11から転送され、一時的にフレームバッファに記憶され、そして、ファイバチ
ャネルインターフェースで最大のデータ転送速度で送信される時には、反対向き
で使用される。 フレームが受信されると、R_CTLフィールドは、受信されるフレームの種
類を判別するためにルーチング制御デコードブロック5933により復号化され
る。そのR_CTLフィールドは、オフチップバッファ111の該当する領域に
フレームを送り、および、どの有効チェックがそのフレームについて成されるべ
きかを判別するために使用される。
【0111】 ヘッダ確認論理回路595は、受信フレームのヘッダの内容を解析する。その
フレームのR_CTLフィールドに基づいて、種々のフィールドが確認される。
もしも有効チェックの内のいずれかが非データフレームで失敗すると、このフレ
ームは、無効と考えられる。データ書き込み転送が行われている時に、有効チェ
ックがデータフレームで失敗すると、マイクロプロセッサ112は、それを知ら
される。 受信フレーム状態ブロック697は、受信したフレームについての情報を集め
て、無効なデータフレームがオフチップに行くのを阻止し、信号FRAME S
TATUS9580を発生する。もしもフレームが有効でない場合、このフレー
ムは(データ転送が行われない場合)本質的に無視される。
【0112】 命令カウンタ5992は、オフチップバッファ111の命令領域にいかに多く
の命令フレームが含まれているかを追跡するために使用される。有効な命令が受
信されると、この命令カウンタ5992はインクリメントされる。マイクロプロ
セッサ112が命令で終了すると、マイクロプロセッサ112は(マイクロプロ
セッサ112からの信号MPU DECREMENTS9574を使用して)命
令カウンタ5992をディクリメントしなければならない。ブロック5992は
、インターラプト要求CMD RCVD IRQ9578を出力する。
【0113】 「他」スペースカウンタ5991は、バッファーバッファ間クレジットを放つ
ために(マイクロプロセッサ112からの信号MPU INCREMENTS9
575を使用して)オフチップバッファ112の「他」領域にいかに多くのスペ
ースが残っているかを追跡するために使用される。この「他」スペースカウンタ
5991は、命令またはデータフレームのいずれでもない有効なフレームが受信
されると、または、オフチップバッファ111がいっぱいになっている時に命令
フレームが受信されると、ディクリメントされる。マイクロプロセッサ112が
フレームで終了すると、マイクロプロセッサ112は、他のフレームのためのス
ペースが存在するということを示すために「他」スペースカウンタ5991をイ
ンクリメントしなければならない。「他」スペースカウンタ5991は、(信号
OTHER COUNT9576とインターラプト要求OTHER RCVD
IRQ9577)オフチップバッファ111の「他」領域に適するフレームの数
を示す。
【0114】 フレームが受信されると、(他カウンタ5991をディクリメントし、命令カ
ウンタ5992をインクリメントするための信号INCR/DECR9573を 発生する)受信フレームバッファ制御回路598と最新の第4世代論理回路59
93は、信号(CONTROLS FOR OFF―CHIP BUFFER7
589)をオフチップバッファ111の論理回路に発生してフレームを適切な領
域に送る。 図12は、ファイバチャネル転送制御回路60のブロック線図であり、このフ
ァイバチャネル転送制御回路60は、その論理回路の送受信部分のための制御論
理回路を有している。ファイバチャネル転送制御回路60は、転送制御回路およ
びバッファ−バッファ間クレジット制御回路603を有している。
【0115】 データ利用可能/スペースカウンタブロック604は、動作がデータ書き込み かデータ読み取りかに依存して、いかに多くのオフチップスペースまたはデータ
が利用可能であるかの表示(DATA AVAILABLE6019)を提供す
る。データ書き込み転送時には、データ利用可能/スペースカウンタブロック6 04は、BB_Creditが発生し得るように、オフチップバッファ111の
データ部分において(フレームの点で)いかに多くのスペースが利用可能かを示
すために使用される。データ読み取り転送時には、データ利用可能/スペースカ ウンタブロック604は、いかに多くのデータフレームがオフチップバッファ1
11で利用可能かを示すために使用される。バッファポインタどうしの差は、フ
レーム当たりのワードの数を示すマイクロプロセッサがロード可能な(すなわち
、プログラム可能な)値と比較される。
【0116】 バッファ−バッファ間クレジット制御回路603は、フレームの送信を可能に
するために接続ポートにバッファクレジット(信号PORT BB_CREDI
T AVAILABLE TO TRANSMIT R_RDY6017)を発
生する。このクレジットは、R_RDYを送ることによって発生される。任意の
ポートに与えられるクレジットの量は、次により決定される: 1)どれだけ多くの受信スペースがディスクドライブ100用のオフチップバ
ッファ111で利用できるか 2)どれだけ多くの受信スペースがディスクドライブ100用の受信非データ
フレームバッファ53とデータフレームバッファ55で利用できるか 3)クレジットが与えられると、ディスクドライブ100が開かれるポートが
その利用可能なスペースを占有することができるフレームを、もしかすると、送
ることができるか否か。
【0117】 バッファ−バッファ間クレジットは、ポート単位で決定される。バッファ−バ
ッファ間クレジット制御ブロック603は、いつクレジットが利用可能かを示す
ためにループポートA/B開放制御ブロック42と42´(図6参照)に対し信 号を発生する。ループ制御ブロック40は、次に、R_RDYの送信を制御する
【0118】 転送制御回路60の残部は、転送中に使用されるカウンタを有している。受信
R_RDYカウンタ606は、クレジットのどれだけ多くのR_RDYが入力P
ORT R_RDY RECEIVED6010(ポートAとポートBのおのお
の毎に1つ)およびPORT FRAME TRANSMITTED6011(
ポートAおよびポートBのおのおの毎に1つ)および出力信号PORT CRE
DIT AVAILABLE TO TRANSMIT A FRAME602
0から各ポートで受信されたかを判別する。送信R_RDYカウンタ601は、
入力PORT R_RDY TRANSMITTED6001(ポートAとポー
トBのおのおの毎に1つ)およびPORT FRAME RECEIVED60
02(ポートAとポートBのおのおの毎に1つ)から各ポートで送信されたかを
判別する。シーケンスカウンタ607は、受信フレームが整然と到着するかをチ
ェックするためにデータ書き込み転送時に使用され、データフレームのヘッダで
送信されたSEQUENCE COUNT6022を発生するためにデータ読み
取り転送時に使用される。相対オフセットカウンタ608は、データフレームの
ヘッダで送信されたRELATIVE−OFFSET COUNT6023を発
生するためにデータ読み取り転送時に使用される。転送長カウンタ609は、ど
れだけ多くのデータが転送されるべきかを判定するために使用され、その転送が
完了した時に表示(TRANSFER LENGTH COUNT6024)を
提供する。
【0119】 単一フレーム送信路回路70 図13は、ファイバチャネルの単一フレーム送信路回路70のブロック線図で
ある。本発明の一実施例は、ループ初期化および応答のための専用の送信フレー
ムバッファ73を有するファイバチャネルループインターフェース回路を提供す
る。このような専用の送信フレームバッファ73を有することにより、二重ポー
トノードの一方のポートが初期化または応答フレームを送信している時、他方の
ポートは、データフレームを送信または受信(すなわち、「通信」)をすること
ができる。もしもループが同期喪失または他の問題を経験すると、ファイバチャ
ネルループ1250は、再度初期化されなければならず、また、専用の送信フレ
ームバッファ73によりこの機能は、二重ポートノードインターフェースの他の
ポートに接続された他のループで進行している可能性のあるデータ転送または他
の機能を破壊せずに発生することができる。両方のポートは、同時に、同様によ
く初期化することができる。更に、この専用の送信フレームバッファ73により
、1つのポートから応答、受信承認または他の非データ転送を送りながら、同時
に他のポートを使用することができる。従って、マイクロプロセッサ112に関
連して、単一フレームの送信路回路70は、ノードインターフェース1220に
対してループ初期化および応答機能を提供するように動作する。送信フレームバ
ッファ73は、入力MPU LOADABLE7002(マイクロプロセッサ1
12からのデータ)RECEIVE PATH DATA7003およびREC
EIVE PATH CONTROLS7004(受信路50からのフレーム)
を受け入れる。送信フレームバッファ73は、出力MPU READ DATA
3095とブロック74と76を介するXMT_DEPTH DATA7007
(送信されるべきCRCを含む外向フレーム)とを発生する。
【0120】 単一フレーム送信路回路70は、単一フレーム送信フレームバッファ73に存
在するフレームを送信するためのループ制御回路40からの要求を受け入れる。
この単一フレーム送信路回路70は、しかるべきフレームの区切り符号を発生し
、フレームバッファからそのヘッダおよびペイロードを読み取り、CRC発生器
76でしかるべきCRCを発生する。この単一フレーム送信路回路70は、現在
の充填ワードを送信するための信号をループポート回路20に発生し、およびフ
レームの終わり(「EOF」)がいつ送信されるかを示すために、現在の実行時
の不等性に基づいてEOFの第2の文字をエンコーダに発生させることができる
【0121】 単一フレーム送信状態マシン72は、フレームの送信のためにループ制御回路
40から(信号SEND_FRAME7001を介して)要求を受ける。フレー
ムが送信されると、この信号フレーム送信状態マシン72は、しかるべき時に、
フレームの区切り符号、ヘッダおよびペイロードが転送できるようにするために
、送信マルチプレクサ74に送られたフレームの各部分毎の選択物(すなわち、
選択信号)を提供する。この単一フレーム送信状態マシン72は、CRC発生器
76に対してイネーブルをも発生する。EOF信号をいつ送信すべきかを判別す
るために8B/10Bエンコーダ27(図4参照)に対し制御も行われる。フレ ームの送信が完了すると、信号が発生され、そして、ループ制御回路40が動作
を続行することができるようにこのループ制御回路40にその信号が送り返され
る。
【0122】 単一フレーム送信フレーム長カウンタ71は、最終のCRCが適当な時に出力
できるようにするために(このCRCは、一度に一語づつ繰りかえし計算され、
フレームのデータ部分が出力されるに従って累積される)、フレームの長さはい
か程であるかをそのハードウェアが判別できるようにするために使用される。単
一フレーム送信フレーム長カウンタ71は、送信フレーム長レジスタからそのフ
レームの開始時にロードされ、イネーブルされ、その間、フレームが送信される
。単一フレーム送信フレーム長カウンタ71は、単一フレーム送信状態マシン7
2によりイネーブルされて、いつCRC発生器76をイネーブルすべきかを決定
するために状態(すなわち、状態情報)を単一フレーム送信状態マシン72に送
り返す。
【0123】 単一フレーム送信マルチプレクサ74の出力は、EOFの前に含まれるCRC
残余ワードを判別するためのCRC発生器76への入力であり、EOFは、マル
チプレクサ79を介してループポート回路20(図3参照)に送られる。単一フ
レーム送信状態マシン72は、このマルチプレクサ74が適当な時に、フレーム
の区切り符号、ヘッダおよびペイロードを転送できるようにするための選択信号
を発生する。
【0124】 単一送信充填文字発生ブロック76は、いつK文字、現在の充填ワード、およ
びEOFの区切り符号が、単一フレーム送信回路70から送信されるかを決定す
る。出力信号XMIT CONTROLS7010は、単一フレーム送信路回路
70にどのループがアクセスするかを判別する送信路マルチプレクサ79に送ら
れる。
【0125】 図14は、ファイバチャネル送信フレームバッファ73のブロック線図である
。この実施例では、単一フレーム送信フレームバッファ73は、単一フレームバ
ッファ書き込み制御回路733、単一フレームバッファ読み取り制御回路734
、および単一フレーム送信フレームバッファRAM735を有する。単一フレー
ム送信フレームバッファ73は、受信されたループ初期化フレーム、外向ループ
初期化フレームおよび外向単一フレームを記憶するために使用される。一実施例
では、送信バッファRAM735の40ワードがポートA用に保存され、および
40ワードがポートB用に保存される。
【0126】 単一フレームバッファ書き込み制御ブロック733は、アドレス(WPTR1
411)、データ(WDAT1410)、および書き込みイネーブル(WE14
12)を単一フレームバッファRAM735用に発生する。その入力は、DAT
A FROM RECEIVE PATH1401、PORT A FRAME
1403、PORT B FRAME1404、登録済みのMPU DATA9
533および登録済みのMPU ADDRESS9534を有する。ループ初期
化フレームが受信されると、このフレームは、まず、確認のために共通受信路5
9を移動することができるようになるまで受信非データフレームバッファ(53
または53´)に記憶される。このフレームは、オフチップバッファ111へ転
送されるよりもむしろ、単一フレーム送信フレームバッファ73に書き込まれる
。これにより、またオフチップバッファ111は、別のポートへのデータ転送に
更に専用することもできる。ループポートからのデータは、16ビット幅から3
2ビット幅に変換され、そして、フレームの開始アドレスは、そのフレームが関
連するポートに基づいて決定される。
【0127】 マイクロプロセッサ112は、また、ループ初期化フレームを変形したり、ま
たは外向フレームを設定するために、単一フレーム送信フレームバッファ73に
書き込んでも良い。
【0128】 単一フレーム送信バッファ読み取り制御ブロック734は、単一フレーム送信
バッファRAM735用の読み取りアドレス(RPTR1414)を発生し、こ
のRAM735からのデータ(RDAT1413)を捕捉する。入力は、SEN
D FRAME1407とXMIT STATUS1408を有する。単一フレ
ーム状態マシン72が送信のためにフレームをイネーブルする場合、単一フレー
ム送信バッファRAM735の読み取りは、イネーブルされる(SINGLE_
FRAME TRANSMIT BUFFER DATA1415を出力する)
。マイクロプロセッサ112は、また、受信されたループ初期化フレームにアク
セスするために、このフレームバッファを読み取っても良い。送信フレームバッ
ファRAM735からのデータは、レジスタ内へ捕捉され、パリティがチェック
される(出力PARITY ERROR1416を発生する)。
【0129】 単一フレーム送信バッファRAM735は、同期RAMと、一実施例では、内
蔵の自己試験コントローラを有している。この同期RAMは、36ビット幅(3
2ビットデータワード+パリティの4ビット)で、長さが80個の場所を有する
。フレームのヘッダおよびペイロードは、マイクロプロセッサ112がファイバ
チャネルループ1250を検査するため、またはこのファイバチャネルループ1
250での送信のため、送信フレームバッファRAM735に配置されて保持さ
れる。一実施例では、同期RAMに入る全ての入力(クロックを除く)は、適当
な保持時間を提供するために遅延される。
【0130】 図15は、データ送信路回路80のブロック線図であって、このデータ送信回
路80は、ループ制御論理回路40からの要求を受けてフレームを送信する。こ
のデータ送信路回路80は、適当なフレーム区切り符号を発生し、マイクロプロ
セッサは、ロード可能なレジスタからヘッダを形成し、そして、CRCを発生す
る。データ送信路回路80は、現在の充填ワードを送信するため、およびEOF
がいつ送信されるかを示すため、第2のループポート回路20に信号を発生して
、この現在実行時のディスパリティに基づいてEOFの第2の文字をエンコーダ
が発生できるようにする。
【0131】 データ送信フレーミング状態マシン81は、フレームを送信するためにループ
制御論理回路40からの要求(信号SEND−FRAME8001)を受ける。
フレームが送信されると、このデータ送信フレーミング状態マシン81は、適当
な時に、フレームの区切り符号、ヘッダおよびペイロードが転送できるようにす
るために、送信マルチプレクサ86へフレームの各部分毎の選択信号を提供する
。データ送信フレーミング状態マシン81は、CRC発生器87にイネーブルを
発生もする。フレームの送信が完了すると、ループ制御論理回路40がその動作
を継続できるように信号がループ制御論理回路40へと逆に発生される。
【0132】 データ送信フレーム長カウンタ82の使用により、適当な時にCRCが発生で
きるように、そのハードウェアは、フレームの長さがいか程であるかを決定する
ことができる。データ送信フレーム長カウンタ82は、送信フレーム長レジスタ
からフレームの開始時にロードされ、イネーブルされ、その間、フレームが送信
される。データ送信フレーム長カウンタ82は、送信フレーミング状態マシン8
1によりイネーブルされ、そして、CRC発生器87をいつイネーブルすべきか
を決定するために、データ送信フレーミング状態マシン81にその状態を送り返
す。
【0133】 データフレーム送信出力マルチプレクサ86の出力は、データ送信路マルチプ
レクサ79にデータを送られるCRCジェネレータ87への入力である。データ
送信フレーミング状態マシン81は、適当な時に、フレームの区切り符号、ヘッ
ダおよびペイロードを、データフレーム送信出力マルチプレクサ86が転送でき
るようにするために選択信号を発生する。この入力は、FRAME BUFFE
R DATA8004、HEADER REGISTERS8005、TRAN
SFER COUNTS8006およびTRANSFER−READY PAY
LOAD8007を有している。出力は、STATUS TO FRAME B
UFFER READ CONTROL8009を有している。データフレーム
送信出力マルチプレクサ86の区切り符号発生器は、フレームを送信する時にど
のフレーム開始(SOF)およびフレーム終わり(EOF)のプリミティブを使
用すべきかを決定する。
【0134】 データフレーム送信出力マルチプレクサ86の出力は、EOFの前に設けられ
たCRCの残余ワードを判別するために、CRC発生器87を介して転送される
。CRC発生器87用のイネーブルは、データ送信フレーミング状態マシン81
から来る。EOF信号の送信時を決定するための制御は、また、8B/10Bエ ンコーダ27(図4参照)に与えられもする。CRC発生器87の出力は、XM
T_DPTH DATA8008(送信されるべきCRCを有する外向フレーム
)である。
【0135】 データ転送充填文字ブロック85は、K文字、現在の充填ワードおよびEOF
の区切り符号がデータ送信路回路80から送信される時を決定する。出力信号X
MIT OUTPUTS8010は、データ送信路回路80に対しどのループが
アクセスするかを決定する送信路マルチプレクサ79に送られる。
【0136】 送信路マルチプレクサ79(図3参照)の出力は、ループポート回路20内の
ポートAとポートBの調停ループ論理回路26への入力である。単一フレーム路
70とデータ路80からのデータ信号および制御信号は、適正なポートへと送信
路マルチプレクサ79により選択される。送信路マルチプレクサ79は、また、
ポートに対してR_RDYプリミティブを多重化もする。これにより両ポートは
、同時に伝送を行うことができる。
【0137】 IV.調停ループのオーバーヘッドを減少するための方法および装置 ファイバチャネルの調停ループ設計1200においては、ループポート116
のノードインターフェース1220は、ファイバチャネルループ1250へのア
クセスについて調停をしなければならない。優先順位システムが、どのポートが
ファイバチャネルループ1250の制御を得るかを決定するために使用され、「
公正」方法がポートの餓死(starved)がないことを保証するために使用
される。目標の装置として、ディスクドライブ100は、通常、CPU1202
よりも低い優先順位を与えられ、その結果、ディスクドライブ100は、より高
い優先順位の装置がそれぞれのアクセスを完了するまで、調停に勝つために待た
なければならなくなる可能性がある。ループポート116のノードインターフェ
ース1220は、ファイバチャネルループ1250の制御を得ると、不必要な調
停サイクルを回避するために、ファイバチャネルループ1250を閉じる前にで
きるだけ多くのフレームを送信する。しかし、データがもはや利用できない時は
、ループポート116のノードインターフェース1220は、他のポートがファ
イバチャネルループ1250にアクセスできるようにファイバチャネルループ1
250を閉じる。これは、特定の他のコントローラアーキテクチャーで使用され
る方法である。本発明は、ポートへのデータの利用可能性に基づいて、ループ1
250を閉じるべきか否かの決定についてのルールを変更することによって、ル
ープ性能を高めるための機構を提供する。かくして、ループの全体のオーバーヘ
ッドは減少される。
【0138】 特定の他のコントローラアーキテクチャーでは、フレームの終わりの区切り符
号が送信されると、ポートは、他のフレームが利用可能か否かを判別する。もし
もデータがもはや得られない場合(たとえば、もしも全フレームが伝送に利用で
きない場合)、ファイバチャネルループ1250は閉じられる。データは、まも
なく再び後で利用可能となる可能性があるので、ポートは再び後で調停を行って
、転送を続行する前に調停に勝たなければならない。もしもこのことが、転送の
最後のフレームが利用可能になった時に生じると、転送の完了は遅延される。こ
れにより、次の命令が処理できる前にある遅延が生じる可能性がある。
【0139】 本発明は、データがまもなくポートに利用可能となる場合に、ファイバチャネ
ルループ1250がポートによって開放されたままに保持できるようにするコン
トローラアーキテクチャー設計のための機構を提供する。これにより、外向デー
タの転送中にループポート116のノードインターフェース1220が調停を行
う必要回数が減少され、かくして、転送をより早く完了させることができる。一
実施例では、ファイバチャネルループ1250は、次の条件の両方が成り立つ時
、すなわち、 ―少なくともXフレームがオフチップで利用可能であり、および ―データの少なくともYワードがデータフレームバッファ55で利用可能であ
るとき、(ポートがそのループの制御を維持するということを正当化するために
)十分な更なるデータがポートに利用可能であることを予期して、ファイバチャ
ネルループ1250は、開いたままに保持される。
【0140】 一前記実施例では、X(ファイバチャネルループ1250を開いたままに保持
するためにオフチップバッファ111で利用可能となる必要フレームの数を表す
)の値と、Y(ファイバチャネルループ1250を開いたままに保持するために
オンチップバッファ119で利用可能となる必要ワードの数を表す)の値は、(
例えば、マイクロプロセッサ112を介してファームウェアコードにより)おの
おの別々にプログラム可能である。他の実施例では、所定量のデータ(必ずしも
ある数のフレームとして特定されるものではない)がオフチップバッファ111
で利用可能である時(一前記実施例では、オフチップバッファ111で利用可能
であることを要求される所定のデータ量がプログラム可能である時)、ファイバ
チャネルループ1250は、開いたまま保持される。他の実施例では、所定量の
データ(必ずしもある数のワードとして特定されるものではない)がオンチップ
バッファ119で利用可能である時(一前記実施例では、オンチップバッファ1
19で利用可能であることを要求される所定のデータ量がプログラム可能である
時)、ファイバチャネルループ1250は、開いたまま保持される。一実施例で
は、ファイバチャネルループ1250は、所定量のデータが利用可能である場合
(少なくとも半分のフレームがオンチップで、少なくとも一つのフレームがオフ
チップで利用可能である場合)、ファイバチャネルループ1250は、開いたま
ま保持されるが、フレームの転送は、全フレームがオンチップで利用可能になる
までは開始しない。
【0141】 例えば、一実施例では、オンチップデータフレームバッファ55は、少なくと
もデータの6フレーム(すなわち、2112バイトの最大フレームサイズの6フ
レーム)を保持するに充分な大きさである。送信されるデータはまず、(例えば
ディスク盤134から)オフチップバッファ111に移動され、そして次に、オ
ンチップデータフレームバッファ55内へ移動される。一般的には、データは、
データフレームバッファ55から1秒間当たり約106メガバイトまでの速度で
転送することができるが、一実施例では、オフチップバッファ111からオンチ
ップフレームバッファ55への転送は、より遅い速度で生じる。もしも全フレー
ムよりも少ないデータが既にオンチップデータフレームバッファ55に移動され
ている場合には、これらのデータが転送のために必要とされる前に、このフレー
ムの最後の部分がオンチップデータフレームバッファ55に移動される限り、フ
レームの転送を開始して、1秒間当たり(約)106メガバイトの全ファイバチ
ャネル速度で、全フレームの転送を完了することがなおできるかもしれない。
【0142】 従って、本発明の一実施例によれば、データフレームの少なくとも半分がオン
チップデータフレームバッファ55に含まれ、および、データの少なくとも1フ
レームがオフチップバッファ111に含まれている場合には、ファイバチャネル
ループ1250は、開いたままに保持される。この一前記実施例では、(「ルー
プを開放状態に保持する」ために)ファイバチャネルループ1250の制御を維
持するに必要なこのデータ量は、オンチップバッファ55のデータの約1000
バイト(すなわち、2、112バイトフレームの半分)と、オフチップバッファ
111のデータの約2000バイト(すなわち、一つの2、112バイトフレー
ム)とであり、両方の量は、マイクロプロセッサ112により設定されるプログ
ラム可能な値である。一実施例では、今記載したように、所定のデータ量が利用
可能である場合に、ファイバチャネルループ1250は、開放したままに保持さ
れるが、フレームの転送は、全フレームがオンチップで利用可能となった後での
み開始される。一実施例では、CFW(現在充填ワード)信号は、全フレームが
オンチップにあって、このフレームの送信が開始できるようになるまで、ファイ
バチャネルループ1250で送信される。
【0143】 転送に利用可能なフレームの数のカウントは、本発明の一実施例のオフチップ
バッファ111におけるコントローラにより発生される。ファームウェアプログ
ラム可能なカウントX―フレーム(ループを開放状態に維持するためにオフチッ
プバッファ111で必要とされるフレームの数)は、データフレームバッファへ
の転送にデータが利用可能か否かを判別するために、転送に利用可能なフレーム
の数のカウントと比較される。データフレームバッファは、オフチップのより遅
いメモリからのデータを一時的に記憶するために使用されるオンチップRAMで
あるので、データは、ファイバチャネルインターフェースの最高速度で送信する
ことができる。ファイバチャネルループ1250を開いたままに保持するための
充分なデータが、データフレームバッファに既に存在するか否かを判別するため
に、データフレームバッファ内で利用できるデータ量をファームウェアのプログ
ラム可能なカウント、すなわち、Yワード(このファイバチャネルループを開い
たままに保持するためにオンチップバッファ55で必要とされるワードの数)と
比較するために別の比較器が使用される。XとYの値は、種々のオフチップラン
ダムアクセスメモリ(「RAM」)ソリューションと転送速度で、この論理回路
が使用可能となるようにファームウェアがプログラム可能である。
【0144】 本発明の一つのゴールは、ファイバチャネルループ1250を開いたままに保
持して、データがまもなくポート116に利用可能となる時に、余分な調停サイ
クルを回避することである。もしもデータが利用可能となるのを待つことが延長
された時間期間の間(例えば、ヘッド切り替えを行うに必要な時間の間)である
場合には、ファイバチャネルループ1250は、データが利用可能となるのを待
ちながら開いたままにしてはならない。それは、ファイバチャネルループ125
0の他のポートが転送を行うのを防止することになるからである。
【0145】 結論 ループ初期化および応答用の専用の送信フレームバッファ(73)を有するフ
ァイバチャネルループインターフェース回路(110)が記載された。このよう
な専用の送信フレームバッファ(73)を有することにより、二重ポートノード
(1220)の1つのポート(116)が初期化または応答フレームを送信しな
がら、他のポート(116)がデータフレームを送信または受信することができ
る。専用の受信バッファ(53と55)も2ポートノード(1220)の各ポー
ト(116)毎に同様に設けられている。フレームと共にファイバチャネル(1
250)から受信された周期冗長符号情報は、3つのフレームの1つ(53、5
3´または55)に記憶される。これらのデータとCRCは、フレームバッファ
(53、53´または55)にある間、データの完全性を保証するために後でチ
ェックされる。ファイバチャネルループ(1250)の制御のための調停に費や
される全時間量を減少するために、任意にプログラミングによって決定されるデ
ータの最小量(「プログラム可能なデータ量」と呼ばれる)が伝送のために利用
できる限り、ループの制御は維持される(すなわち、ループ接続が開いたままに
保持される)。
【0146】 一実施例では、本発明は、第1のポート(116)と第2のポート(116)
を有する第1のチャネルノード(1220)を備えた改良になる通信チャネルシ
ステム(1200)を提供する。各ポート(116)は、ファイバチャネルの調
停ループ連続通信チャネル(1250)を支持する。通信チャネル装置(120
0)は、ループの初期化および応答のために第1のチャネルノード(1220)
内に、専用のフレームバッファ(119)を同様に有している。専用のフレーム
バッファ(119)は、種々の専用の要素フレームバッファを有している。
【0147】 一前記実施例では、専用のフレームバッファ(119)は、オンチップバッフ
ァとして構成され、そして、第1のポート(116)に作動接続される第1の到
来非データバッファ(53)、第2のポート(116)に作動接続される第2の
到来非データバッファ(53´)、前記第1のポート(116)と前記第2のポ
ート(116)の両方に作動接続されるデータフレームバッファ(55)、およ
び前記第1と第2のポート(116)の少なくとも一方に作動接続される外向送
信フレームバッファ(73)を有している。任意に、通信チャネルシステム(1
200)は、更に、外向送信フレームバッファ(73)のデータを使用して、前
記第1のポート(116)と前記第2のポート(116)の両方にほぼ同時にル
ープ初期化を行う(組み合わされるブロック70と112により実施される)ル
ープ初期化回路を有している。
【0148】 一実施例では、専用のフレームバッファ(119)は、約80ワードのデータ
を有する専用の送信フレームバッファ(73)を有している。他の実施例では、
専用のフレームバッファ(119)は、ループの初期化および応答のために、前
記第1と第2のポート(116)の少なくとも一方に作動接続される専用の送信
フレームバッファ(73)を有する(ここでは、非データフレームは、ループ初
期化および応答情報から選択された情報を有する)。一実施例では、送信フレー
ムバッファ(73)は、第1のポート(116)でループ初期化または応答を送
信し、ほぼ同時に、第2のポート(116)がデータを通信する(すなわち、送
信または受信する)。
【0149】 一前記実施例では、通信チャネルシステム(1200)は、送信フレームバッ
ファ(73)のデータを使用して第1のポート(116)と第2のポート(11
6)の両方にほぼ同時にループ初期化を行う(組み合わされるブロック70と1
12により実施される)ループ初期化回路を更に有している。(一前記実施例で
は、ループ初期化および応答が同時に送信できるように、送信フレームバッファ
(73)は、各ポート(116)またはこれら二つのポート(116)用の独立
の部分で実施される。他の前記実施例では、ループ初期化および応答が前記2つ
のポート(116)に順次互いに接近して、丁度良い時に(しかしまったく同時
ではない)送ることができるように、単一の送信フレームバッファ(73)が2
つのポート(116)により共有されている。
【0150】 一実施例では、専用のフレームバッファ(119)は、オンチップバッファと
して構成され、かつ、ループ初期化および応答のために第1と第2のポート(1
16)の少なくとも一方に作動接続される専用の送信フレームバッファ(73)
を有している。一実施例では、通信チャネルシステム(1200)は、第1のポ
ート用に前記フレームバッファのスペースの約半分を、および、第2のポート用
に前記フレームバッファのスペースのもう半分を保有している。 一前記実施例では、専用の送信フレームバッファ(73)は、両ポートに作動
接続され、および、送信フレームバッファ(73)のデータを使用して、前記第
1と第2のポートの両方にほぼ同時にループ初期化を行う(組み合わされるブロ
ック70と112により実施される)ループ初期化回路を更に有している。
【0151】 任意に、これらのシステムの実施例のどれも、更に、前記第1のチャネルノー
ド(1220)に作動接続される磁気ディスク記憶ドライブ(1256)、およ
び第2のチャネルノード(1220)を有するコンピュータシステム(1202
)を有している。この第2のチャネルノード(1220)は、第1のチャネルの
調停ループ連続通信チャネル(1250)を介して前記第1と第2のチャネルノ
ードの間でデータを転送するために、ファイバチャネルループにおいて前記第1
チャネルノード(1220)に作動接続される。
【0152】 本発明の他の態様は、ディスクドライブ(100)を提供する。このディスク
ドライブ(100)は、回転可能なディスク(143)、このディスク(143
)に対し変換関係にあるトランスジューサ(150)、および、おのおのが、フ
ァイバチャネルの調停ループ連続通信チャネル(1250)を支持する第1のポ
ート(116)と第2のポート(116)とを備えた第1のチャネルノード(1
220)を有している。この第1のチャネルノードは、前記トランスジューサに
作動接続される。ディスクドライブ(100)は、更に、非データフレームを送
信するように動作する前記第1のチャネルノード内に、専用の送信フレームバッ
ファ(73)を有している。この非データフレームは、ループ初期化および応答
情報から選択された情報を有し、送信フレームバッファ(73)は、第1のポー
ト(116)に前記非データフレームを送信し、これとほぼ同時に前記第2のポ
ート(116)は、データを通信する。
【0153】 本発明の更に他の態様は、(a)第1のチャネルノードの第1のポートと第2
のポートのおのおので、第1のチャネルの調停ループ連続通信チャネルを支持し
、 (b)前記第1のチャネルノードに専用のフレームバッファを形成し、 (c)この専用のフレームバッファにフレームを受信し、および (d)ループ初期化および応答のために、前記専用のフレームバッファからフ
レームを送信する方法を提供する。
【0154】 この方法の一実施例では、前記形成ステップ(b)は、更に、 (b)(i)前記専用のフレームバッファに専用の送信フレームバッファを形
成し、および (b)(ii)前記第1と第2のポートの少なくとも一方に前記専用の送信フ
レームバッファを作動接続し、 および前記送信ステップ(d)は、更に、 (d)(i)前記送信フレームバッファからループ初期化フレームおよび応答
フレームを送信するステップを有する。
【0155】 この方法の前記実施例では、前記送信ステップ(d)は、更に、 (d)(ii)前記第2のポートでほぼ同時にデータを通信しながら、前記第
1のポートでフレームを送信するステップを有する。 この方法の他の前記実施例では、前記送信ステップ(d)は更に、 (d)(iii)前記送信フレームバッファのデータを用いて、前記第1と第
2のポートの両方でほぼ同時にループの初期化フレームを送信するステップを有
する。
【0156】 この方法の他の前記実施例では、前記形成ステップ(b)は、更に、 (b)(iii)前記第1のポートに作動接続される第1の到来非データバッ
ファを形成し、 (b)(iv)前記第2のポートに作動接続される第2の到来非データバッフ
ァを形成し、 (b)(v)前記第1のポートと前記第2のポートの両方に作動接続されるデ
ータフレームバッファを形成し、および (b)(vi)専用の送信フレームバッファを形成し、 前記受信ステップ(c)は、更に、 (c)(i)前記第1の到来非データバッファおよび前記第2の到来非データ
バッファに対し非データフレームを受信し、 (c)(ii)データフレームバッファにデータフレームを受信し、および前
記送信ステップ(d)は、更に、 (d)(iv)前記送信フレームバッファから非データフレームを送信するス
テップを有する。
【0157】 この方法の前記実施例では、前記送信ステップ(d)は更に、 (d)(v)前記専用の送信フレームバッファのデータを使用して、前記第1
のポートと前記第2のポートの両方でほぼ同時にループ初期化を行うステップを
有する。
【0158】 この方法の更に他の実施例では、前記形成ステップ(b)は、更に、 (b)(iii)専用のオンチップ送信フレームバッファを有するオンチップ
バッファとして、前記専用のフレームバッファを形成し、および (b)(iv)前記第1と前記第2のポートの少なくとも一つに、前記オンチ
ップ送信フレームバッファを作動接続し、および 前記送信ステップ(d)は、更に、 (d)(vi)前記オンチップ送信フレームバッファからループ初期化および
応答フレームを送信するステップを有する。
【0159】 この方法の前記実施例では、前記形成ステップ(b)は、更に、 前記専用の送信フレームバッファを両ポートに作動接続し、および 前記送信ステップ(d)は更に、 前記送信フレームバッファのデータを用いて、前記第1と前記第2のポートの
両方でほぼ同時にループ初期化フレームを送信するステップを有する。
【0160】 一部の実施例では、前記方法の実施例のいずれの前記送信ステップ(d)も、
任意に、 (d)(viii)前記第1のチャネルノードに作動接続される磁気ディスク
記憶ドライブと第2のチャネルノードを備えたコンピュタ装置との間で、前記フ
ァイバチャネルの調停ループ連続通信チャネルを介してデータを転送するステッ
プを有し、前記第2のチャネルノードは、前記ファイバチャネル調停ループ連続
通信チャネルにより前記第1のチャネルノードに作動接続される。
【0161】 本発明の更に他の態様は、第1のポート(116)と第2のポート(116)
を備え、各ポート(116)がファイバチャネル調停ループ連続通信チャネル(
1250)を支持するようにした第1のチャネルノード(1220)を有する通
信チャネル装置(1200)を提供する。この通信チャネル装置は、同様に、フ
レームの送受信のための専用のフレームバッファ機構をも有する。この機構は、
図1ないし15について上に記載したものとして定義され、かつ、それに等価な
ものである。
【0162】 かくして、本発明は、二重ポートファイバチャネルインターフェースノード(
1220)の外向ファイバ(118)の一方または両方で送信するように動作可
能な専用送信バッファ(73)からのループ初期化フレームおよび/または応答 フレームの送信を可能にすることによって、かなりの性能向上をもたらす。ある
実施例では、この送信は、二重ポートファイバチャネルインターフェースノード
(1220)が、同時に、前記到来ファイバ(117)の一つで、データフレー
ムを受信し、および/またはその到来ファイバ(117)の一方または両方で非 データフレームを受信している間でさえ、行われる。すなわち、ポートの一本の
ファイバ(118)での送信は、任意に、同一ポートの他のファイバ(117)
での受信と同時に行われる。
【0163】 なお、上記は、例示的であって制限を意図するものではない。本発明の種々の
実施例の数多くの特性および利点が、種々の実施例の構造および機能の詳細と共
に上に記載されたが、多くの他の実施例および細部に対する改変は、上記の点を
吟味すれば、当業者に明らかであろう。従って、本発明の範囲は、添付の特許請
求の範囲が権利を有する均等物の全範囲と共にこの特許請求の範囲に関して決定
されるべきである。
【図面の簡単な説明】
【図1】 ファイバチャンネルノードインターフェースを備えたディスクドライブ100
のブロック線図である。
【図2】 本発明を組み込んだ情報処理システム1200のブロック線図である。
【図3】 ファイバチャンネルノードインターフェースチップ100のブロック線図であ
る。
【図4】 ファイバチャンネルループポート回路20のブロック線図である。
【図5】 一実施例において、ループを開放状態に保持するために使用される比較器論理
回路30のブロック線図である。
【図6】 ファイバチャンネルループ制御回路40のブロック線図である。
【図7】 ファイバチャンネル受信路回路50のブロック線図である。
【図8】 ファイバチャンネルプリバッファ受信路回路51のブロック線図である。
【図9】 ファイバチャンネル受信フレーム非データバッファ回路53のブロック線図で
ある。
【図10】 ファイバチャンネルデータフレームバッファ回路55のブロック線図である。
【図11】 ファイバチャンネル共通受信路回路59のブロック線図である。
【図12】 ファイバチャンネル転送制御回路60のブロック線図である。
【図13】 ファイバチャンネル送信路制御回路70のブロック線図である。
【図14】 ファイバチャンネル送信フレームバッファ回路73のブロック線図である。
【図15】 ファイバチャンネルデータ送信路回路80のブロック線図である。
───────────────────────────────────────────────────── フロントページの続き (31)優先権主張番号 60/065,919 (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 【要約の続き】 バッファとを有している。また、前記専用のバッファを 使用するループの初期化および応答方法が記載されてい る。

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 各々がファイバチャンネルの調停ループ連続通信チャンネル
    を支持する第1のポートと第2のポートとを有する第1のチャンネルノードと、 ループの初期化および応答のための前記第1のチャンネルノード内の専用のフ
    レームバッファとを有する通信チャンネルシステム。
  2. 【請求項2】 前記専用のフレームバッファは、オンチップバッファとして
    構成されて、 前記第1のポートに作動接続される第1の到来非データバッファと、 前記第2のポートに作動接続される第2の到来非データバッファと、 前記第1のポートと前記第2のポートの両方に作動接続されるデータフレーム
    バッファと、 前記第1と第2のポートの少なくとも一方に作動接続される外向送信フレーム
    バッファとを有する請求項1に記載の通信チャンネルシステム。
  3. 【請求項3】 更に、前記外向送信フレームバッファのデータを使用して、
    前記第1のポートと前記第2のポートの両方にほぼ同時にループ初期化を行うル
    ープ初期化回路を有する請求項2に記載の通信チャンネルシステム。
  4. 【請求項4】 前記専用のフレームバッファは、ループの初期化および応答
    のために、前記第1のポートと前記第2のポートの少なくとも一方に非データフ
    レームを送信するよう動作する前記第2のチャンネルノード内の専用の送信フレ
    ームバッファを有し、前記非データフレームは、ループ初期化情報および応答情
    報から選択された情報を有する請求項1に記載の通信チャンネルシステム。
  5. 【請求項5】 前記送信フレームバッファは、前記第1のポートで前記非デ
    ータフレームを送信し、ほぼ同時に、前記第2のポートがデータを通信する請求
    項4に記載の通信チャンネルシステム。
  6. 【請求項6】 前記送信フレームバッファのデータを使用して前記第1のポ
    ートと前記第2のポートの両方にほぼ同時にループ初期化を行うループ初期化回
    路を更に有している請求項4に記載の通信チャンネルシステム。
  7. 【請求項7】 前記専用のフレームバッファは、オンチップバッファとして
    構成され、および、 ループ初期化および応答のために前記第1のポートと前記第2のポートの少な
    くとも一方に作動接続される専用の送信フレームバッファを有している請求項1
    に記載の通信チャンネルシステム。
  8. 【請求項8】 前記専用の送信フレームバッファは、両ポートに作動接続さ
    れ、および、 送信フレームバッファのデータを使用して、前記第1と第2のポートの両方に
    ほぼ同時にループ初期化を行うループ初期化回路を更に有している請求項7に記
    載の通信チャンネルシステム。
  9. 【請求項9】 更に、 前記第1のチャンネルノードに作動接続される磁気ディスク記憶ドライブ、お
    よび 第2のチャンネルノードを有するコンピュータシステムを有しており、前記第
    2のチャンネルノードは、前記第1のチャンネルの調停ループ連続通信チャンネ
    ルを介して前記第1のチャンネルノードと前記第2のチャンネルノードの間でデ
    ータを転送するために、ファイバチャンネルループにおいて前記第1チャンネル
    ノードに作動接続される請求項8に記載の通信チャンネルシステム。
  10. 【請求項10】 回転可能なディスクと、 このディスクに対し変換関係にあるトランスジューサと、 おのおのが、ファイバチャンネルの調停ループ連続通信チャンネルを支持する
    第1のポートと第2のポートとを備えていて前記トランスジューサに作動接続さ
    れる第1のチャンネルノードと、 非データフレームを送信するように動作する前記第1のチャンネルノード内の
    専用の送信フレームバッファとを有し、この非データフレームは、ループ初期化
    情報および応答情報から選択された情報を有し、前記送信フレームバッファは、
    第1のポートに前記非データフレームを送信し、これとほぼ同時に前記第2のポ
    ートは、データを通信するディスクドライブ。
  11. 【請求項11】 (a)第1のチャンネルノードの第1のポートと第2のポ
    ートのおのおので第1のチャンネルの調停ループ連続通信チャンネルを支援する
    ステップと、 (b)前記第1のチャンネルノードに専用のフレームバッファを形成するステ
    ップと、 (c)この専用のフレームバッファにフレームを受信するステップと、 (d)ループ初期化および応答のために、前記専用のフレームバッファからフ
    レームを送信するステップとを有する通信チャンネル方法。
  12. 【請求項12】 前記形成するステップ(b)は、更に、 (b)(i)前記専用のフレームバッファに専用の送信フレームバッファを形
    成するステップと、 (b)(ii)前記第1と第2のポートの少なくとも一方に前記専用の送信フ
    レームバッファを作動接続するステップとを有し、 前記送信ステップ(d)は、更に、 (d)(i)前記送信フレームバッファからループ初期化フレームおよび応答
    フレームを送信するステップを有する請求項11に記載の通信チャンネル方法。
  13. 【請求項13】 前記送信するステップ(d)は、更に、 (d)(ii)前記第2のポートでほぼ同時にデータを通信しながら、前記第
    1のポートでフレームを送信するステップを有する請求項12に記載の通信チャ
    ンネル方法。
  14. 【請求項14】 前記送信ステップ(d)は、更に、 (d)(iii)前記送信フレームバッファのデータを用いて、前記第1と第
    2のポートの両方でほぼ同時にループの初期化フレームを送信するステップを有
    する請求項12に記載の通信チャンネル方法。
  15. 【請求項15】 前記形成するステップ(b)は、更に、 (b)(iii)前記第1のポートに作動接続される第1の到来非データバッ
    ファを形成するステップと、 (b)(iv)前記第2のポートに作動接続される第2の到来非データバッフ
    ァを形成するステップと、 (b)(v)前記第1のポートと前記第2のポートの両方に作動接続されるデ
    ータフレームバッファを形成するステップと (b)(vi)専用の送信フレームバッファを形成するステップとを有し、 前記受信ステップ(c)は、更に、 (c)(i)前記第1の到来非データバッファおよび前記第2の到来非データ
    バッファに非データフレームを受信するステップと、 (c)(ii)データフレームバッファにデータフレームを受信するステップ
    とを有し、前記送信するステップ(d)は、更に、 (d)(iv)前記送信フレームバッファから非データフレームを送信するス
    テップを有する請求項11に記載の通信チャンネル方法。
  16. 【請求項16】 前記送信ステップ(d)は、更に、 (d)(v)前記専用の送信フレームバッファのデータを使用して、前記第1
    のポートと前記第2のポートの両方でほぼ同時にループ初期化を行うステップを
    有する請求項15に記載の通信チャンネル方法。
  17. 【請求項17】 前記形成するステップ(b)は、更に、 (b)(iii)専用のオンチップ送信フレームバッファを有するオンチップ
    バッファとして、前記専用のフレームバッファを形成するステップと (b)(iv)前記第1と前記第2のポートの少なくとも一つに、前記オンチ
    ップ送信フレームバッファを作動接続するステップとを有し、前記送信するステ
    ップ(d)は、更に、 (d)(vi)前記オンチップ送信フレームバッファからループ初期化フレー
    ムおよび応答フレームを送信するステップを有する請求項11に記載の通信チャ
    ンネル方法。
  18. 【請求項18】 前記形成するステップ(b)は、更に、 前記専用の送信フレームバッファを両ポートに作動接続するステップを有し、
    前記送信するステップ(d)は、更に、 前記送信フレームバッファのデータを用いて、前記第1と前記第2のポートの
    両方でほぼ同時にループ初期化フレームを送信するステップを有する請求項17
    に記載の通信チャンネル方法。
  19. 【請求項19】 前記送信ステップ(d)は、さらに、 (d)(viii)前記第1のチャンネルノードに作動接続される磁気ディス
    ク記憶ドライブと第2のチャンネルノードを備えたコンピュータシステムとの間
    で、前記ファイバチャンネルの調停ループ連続通信チャンネルを介してデータを
    転送するステップを有し、前記第2のチャンネルノードは、前記ファイバチャン
    ネルの調停ループ連続通信チャンネルにより前記第1のチャンネルノードに作動
    接続される請求項18に記載の通信チャンネル方法。
  20. 【請求項20】 第1のポートと第2のポートを備え、各ポートがファイバ
    チャンネルの調停ループ連続通信チャンネルを支持するようにした第1のチャン
    ネルノードと、 ループの初期化および応答のための専用のフレームバッファ手段とを有する通
    信チャンネルシステム。
JP2000521449A 1997-11-17 1998-11-17 ループの初期化および応答のための方法及び専用のフレームバッファ Pending JP2001523862A (ja)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US6592097P 1997-11-17 1997-11-17
US6592697P 1997-11-17 1997-11-17
US6591997P 1997-11-17 1997-11-17
US60/065,926 1997-11-17
US60/065,920 1997-11-17
US60/065,919 1997-11-17
US6721197P 1997-12-01 1997-12-01
US60/067,211 1997-12-01
PCT/US1998/024558 WO1999026152A2 (en) 1997-11-17 1998-11-17 Method and dedicated frame buffer for loop initialization and responses

Publications (1)

Publication Number Publication Date
JP2001523862A true JP2001523862A (ja) 2001-11-27

Family

ID=27490525

Family Applications (4)

Application Number Title Priority Date Filing Date
JP2000521449A Pending JP2001523862A (ja) 1997-11-17 1998-11-17 ループの初期化および応答のための方法及び専用のフレームバッファ
JP2000521437A Expired - Fee Related JP4272813B2 (ja) 1997-11-17 1998-11-17 オンチップメモリにおけるデータ健全性のためのcrcを用いる方法および装置
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
JP2000521437A Expired - Fee Related JP4272813B2 (ja) 1997-11-17 1998-11-17 オンチップメモリにおけるデータ健全性のためのcrcを用いる方法および装置
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) US6279057B1 (ja)
JP (4) JP2001523862A (ja)
KR (3) KR100650818B1 (ja)
CN (3) CN1304520A (ja)
DE (3) DE19882831T1 (ja)
GB (3) GB2346784B (ja)
WO (3) WO1999026152A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US8327043B2 (en) 2010-07-29 2012-12-04 Kabushiki Kaisha Toshiba Buffer management device which manages buffer transfer, storage apparatus comprising the same device, and buffer management method

Families Citing this family (126)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6356560B1 (en) * 1997-05-30 2002-03-12 Adtran, Inc. Arbitration mechanism for statistically multiplexed frame relay switching system
DE69924475T2 (de) * 1999-06-09 2006-02-16 Texas Instruments Inc., Dallas Multikanal-DMA mit Datenverkehrplanung auf die Ausgänge
JP2001034427A (ja) * 1999-07-23 2001-02-09 Fujitsu Ltd デバイス制御装置及び制御方法
US6529945B1 (en) * 1999-07-26 2003-03-04 International Business Machines Corporation Data buffer management between two different systems
US6574696B1 (en) * 2000-03-07 2003-06-03 Hewlett-Packard Development Company, L.P. Methods and arrangements for providing bi-directional control between data storage drives and automation controllers
US6571367B1 (en) * 2000-03-15 2003-05-27 Emc Corporation Method and apparatus connecting between a fiber channel and a cache memory
US6622183B1 (en) * 2000-03-21 2003-09-16 Lsi Logic Corporation Data transmission buffer having frame counter feedback for re-transmitting aborted data frames
FR2812116A1 (fr) * 2000-07-19 2002-01-25 Schlumberger Systems & Service Procede et dispositif d'inscription securisee de donnees dans une memoire reinscriptible
US7007097B1 (en) * 2000-07-20 2006-02-28 Silicon Graphics, Inc. Method and system for covering multiple resourcces with a single credit in a computer system
US6483843B1 (en) * 2000-10-12 2002-11-19 Emulex Corporation Detecting and counting open ordered sets originating from an attached node port
US6999460B1 (en) * 2000-10-16 2006-02-14 Storage Technology Corporation Arbitrated loop port switching
US6647528B1 (en) * 2000-11-02 2003-11-11 Computer Network Technology Corporation Fiber channel CRC for internal error checking on a switching platform
US6779150B1 (en) * 2000-12-21 2004-08-17 Emc Corporation CRC error detection system and method
US6868516B1 (en) 2000-12-21 2005-03-15 Emc Corporation Method for validating write data to a memory
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 ファイバチャネル調停ループ対応の電子装置及びファイバチャネル調停ループの障害検出方法
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
US6850410B2 (en) * 2001-06-29 2005-02-01 Emc Corporation Advanced technology attachment disk drive module with fibre channel system characteristics
JP3523616B2 (ja) * 2001-07-24 2004-04-26 松下電器産業株式会社 バス最適化方法及び通信ノード
US7215680B2 (en) * 2001-07-26 2007-05-08 Nishan Systems, Inc. Method and apparatus for scheduling packet flow on a fibre channel arbitrated loop
US20030135577A1 (en) * 2001-12-19 2003-07-17 Weber Bret S. Dual porting serial ATA disk drives for fault tolerant applications
US7433948B2 (en) 2002-01-23 2008-10-07 Cisco Technology, Inc. Methods and apparatus for implementing virtualization of storage within a storage area network
US7391723B2 (en) * 2002-04-22 2008-06-24 Computer Network Technology Corporation Frame-level fibre channel CRC on switching platform
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
US7397788B2 (en) * 2002-07-02 2008-07-08 Emulex Design & Manufacturing Corporation Methods and apparatus for device zoning in fibre channel arbitrated loop systems
US7630300B2 (en) * 2002-07-02 2009-12-08 Emulex Design & Manufacturing Corporation Methods and apparatus for trunking 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 삼성전자주식회사 반도체 장치의 제조에서 콘택 형성 방법
JP2005538470A (ja) * 2002-09-10 2005-12-15 イグザグリッド システムズ, インコーポレイテッド ノーダルフェイルオーバを用いるプライマリーデータバックアップおよびリモートデータバックアップ
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
US20040123027A1 (en) * 2002-10-03 2004-06-24 Workman Michael Lee Systems and methods of multiple access paths to single ported storage devices
US20040068591A1 (en) * 2002-10-03 2004-04-08 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
US8165136B1 (en) 2003-09-03 2012-04-24 Cisco Technology, Inc. Virtual port based SPAN
US7474666B2 (en) 2003-09-03 2009-01-06 Cisco Technology, Inc. Switch port analyzers
US7134070B2 (en) * 2003-09-08 2006-11-07 Intel Corporation Checksum determination
US7573870B2 (en) * 2003-09-25 2009-08-11 Lsi Logic Corporation Transmit prioritizer context prioritization scheme
US7353448B1 (en) * 2003-10-21 2008-04-01 Marvell Semiconductor Israel Ltd. Methods, architectures, circuits and systems for transmission error determination
US7219263B1 (en) 2003-10-29 2007-05-15 Qlogic, Corporation Method and system for minimizing memory corruption
US20050114498A1 (en) * 2003-11-06 2005-05-26 International Business Machines Corporation Method and apparatus for managing data transfer in a data processing system
US7219325B1 (en) 2003-11-21 2007-05-15 Xilinx, Inc. Exploiting unused configuration memory cells
JP4426261B2 (ja) * 2003-11-25 2010-03-03 株式会社日立製作所 チャネルアダプタ及びディスクアレイ装置
US7934023B2 (en) 2003-12-01 2011-04-26 Cisco Technology, Inc. Apparatus and method for performing fast fibre channel write operations over relatively high latency networks
US7145776B2 (en) * 2003-12-22 2006-12-05 Emc Corporation Midplane-less data storage enclosure
US7236361B2 (en) * 2003-12-22 2007-06-26 Emc Corporation Fan assembly for installing and removing fans individually and collectively
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
US7360142B1 (en) 2004-03-03 2008-04-15 Marvell Semiconductor Israel Ltd. Methods, architectures, circuits, software and systems for CRC determination
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
US7930377B2 (en) 2004-04-23 2011-04-19 Qlogic, Corporation Method and system for using boot servers in networks
US7669190B2 (en) 2004-05-18 2010-02-23 Qlogic, Corporation Method and system for efficiently recording processor events in host bus adapters
US9201599B2 (en) * 2004-07-19 2015-12-01 Marvell International Ltd. System and method for transmitting data in storage controllers
US20060015659A1 (en) * 2004-07-19 2006-01-19 Krantz Leon A System and method for transferring data using storage controllers
US7719970B1 (en) * 2004-08-20 2010-05-18 Altera Corporation Serial communications system with optional data path and control plane features
US7577772B2 (en) 2004-09-08 2009-08-18 Qlogic, Corporation Method and system for optimizing DMA channel selection
US20060064531A1 (en) * 2004-09-23 2006-03-23 Alston Jerald K Method and system for optimizing data transfer in networks
US7676611B2 (en) 2004-10-01 2010-03-09 Qlogic, Corporation Method and system for processing out of orders frames
US7398335B2 (en) * 2004-11-22 2008-07-08 Qlogic, Corporation Method and system for DMA optimization in host bus adapters
US7164425B2 (en) * 2004-12-21 2007-01-16 Qlogic Corporation Method and system for high speed network application
US7392437B2 (en) 2005-01-20 2008-06-24 Qlogic, Corporation Method and system for testing host bus adapters
US7231480B2 (en) * 2005-04-06 2007-06-12 Qlogic, Corporation Method and system for receiver detection in PCI-Express devices
US7281077B2 (en) * 2005-04-06 2007-10-09 Qlogic, Corporation Elastic buffer module for PCI express devices
US7562284B2 (en) * 2005-08-26 2009-07-14 International Business Machines Corporation Apparatus, system, and method for mandatory end to end integrity checking in a storage system
KR100690274B1 (ko) * 2005-09-12 2007-03-09 삼성전자주식회사 다중 채널 직렬 통신을 위한 순환 중복 검사 장치 및 이를구비한 통신 시스템
US7660926B2 (en) * 2005-11-16 2010-02-09 Sun Microsystems, Inc. Apparatus and method for a core for implementing a communications port
US7694204B2 (en) 2006-03-09 2010-04-06 Silicon Image, Inc. Error detection in physical interfaces for point-to-point communications between integrated circuits
US7461195B1 (en) 2006-03-17 2008-12-02 Qlogic, Corporation Method and system for dynamically adjusting data transfer rates in PCI-express devices
US7933735B2 (en) * 2007-01-31 2011-04-26 Denso Corporation Semiconductor integrated circuit
KR100902051B1 (ko) * 2007-07-12 2009-06-15 주식회사 하이닉스반도체 오류 검사 코드 생성장치 및 방법
US7751350B1 (en) * 2007-08-03 2010-07-06 William George Pabst Full duplex network radio bridge with low latency and high throughput
US7975027B2 (en) * 2007-08-06 2011-07-05 International Business Machines Corporation Credit depletion notification for transmitting frames between a port pair
US7787375B2 (en) * 2007-08-06 2010-08-31 International Business Machines Corporation Performing a recovery action in response to a credit depletion notification
US8111610B2 (en) * 2008-01-25 2012-02-07 Emulex Design & Manufacturing Corporation Flagging of port conditions in high speed networks
US8566688B2 (en) * 2009-09-01 2013-10-22 Ensequence, Inc. Method of certifying multiple versions of an application
KR101069725B1 (ko) * 2009-12-24 2011-10-04 주식회사 하이닉스반도체 반도체 메모리 장치와 이를 위한 고장번지 제어 회로 및 방법
JP5651962B2 (ja) * 2010-02-03 2015-01-14 富士通株式会社 Raid装置、異常デバイス検出装置および異常デバイス検出方法
EP2559200A4 (en) * 2010-04-12 2015-04-22 Qualcomm Inc DETECTION OF LIMITS OF COMMUNICATIONS WITH LOW OVERHEAD ON A NETWORK
US8504893B1 (en) * 2010-09-30 2013-08-06 Micron Technology, Inc. Error detection or correction of a portion of a codeword in a memory device
GB2484717B (en) * 2010-10-21 2018-06-13 Advanced Risc Mach Ltd Security provision for a subject image displayed in a non-secure domain
CN102468915B (zh) * 2010-11-16 2014-07-02 北京中电华大电子设计有限责任公司 一种串口802.11n无线网卡芯片发送通路实现方法
CN102158400B (zh) * 2011-03-03 2013-12-04 北京航空航天大学 天基路由交换系统的通信接口及天基路由交换系统
CN102999458A (zh) * 2011-09-09 2013-03-27 中国航天科工集团第三研究院第八三五七研究所 高速智能串口芯片
CN102567276B (zh) * 2011-12-19 2014-03-12 华为技术有限公司 基于多通道的数据传输方法、接收节点及跨节点互联系统
JP5937485B2 (ja) * 2012-10-24 2016-06-22 富士通フロンテック株式会社 送信装置
US9395924B2 (en) * 2013-01-22 2016-07-19 Seagate Technology Llc Management of and region selection for writes to non-volatile memory
US9569618B2 (en) * 2013-08-28 2017-02-14 Korea University Research And Business Foundation Server and method for attesting application in smart device using random executable code
CN103593261B (zh) * 2013-10-17 2015-09-23 北京控制工程研究所 一种中断服务程序中通信故障的快速恢复方法
US9467389B2 (en) 2014-04-28 2016-10-11 International Business Machines Corporation Handling large frames in a virtualized fibre channel over ethernet (FCoE) data forwarder
US10061734B2 (en) 2015-05-20 2018-08-28 International Business Machines Corporation Adjustment of buffer credits and other parameters in a startup phase of communications between a plurality of channels and a control unit
US9864716B2 (en) 2015-05-20 2018-01-09 International Business Machines Corporation Receiving buffer credits by a plurality of channels of one or more host computational devices for transmitting data to a control unit
US9892065B2 (en) * 2015-05-20 2018-02-13 International Business Machines Corporation Adjustments of buffer credits for optimizing the number of retry operations and transfer ready operations
CN106500739B (zh) * 2016-11-18 2019-01-25 威科达(东莞)智能控制有限公司 一种与绝对值编码器通信的方法
CN108572883B (zh) * 2017-04-19 2021-06-18 北京金山云网络技术有限公司 一种数据正确性校验方法及装置
EP3404546B1 (en) 2017-05-16 2019-09-11 Melexis Technologies NV Device for supervising and initializing ports
CN107229858B (zh) * 2017-05-19 2020-04-03 郑州云海信息技术有限公司 一种支持crc8校验的PECI总线主从机验证系统及验证方法
US11360934B1 (en) 2017-09-15 2022-06-14 Groq, Inc. Tensor streaming processor architecture
US11868804B1 (en) 2019-11-18 2024-01-09 Groq, Inc. Processor instruction dispatch configuration
US11114138B2 (en) 2017-09-15 2021-09-07 Groq, Inc. Data structures with multiple read ports
US11243880B1 (en) 2017-09-15 2022-02-08 Groq, Inc. Processor architecture
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 株式会社デンソー 中継装置
US11301546B2 (en) 2018-11-19 2022-04-12 Groq, Inc. Spatial locality transform of matrices
US11115147B2 (en) * 2019-01-09 2021-09-07 Groq, Inc. Multichip fault management
CN110518978B (zh) * 2019-07-23 2022-12-27 中国航空无线电电子研究所 基于光纤链路的混合数据传输组件
CN113037428B (zh) * 2019-12-09 2022-01-25 大唐移动通信设备有限公司 一种对数据流程的处理方法及装置
CN111966627B (zh) * 2020-08-13 2023-06-30 北京中航通用科技有限公司 用于串行总线的8b/9b编解码方法
TWI778644B (zh) * 2021-05-31 2022-09-21 新唐科技股份有限公司 系統單晶片和其資料燒入方法
CN114578299A (zh) * 2021-06-10 2022-06-03 中国人民解放军63698部队 一种无线远程控制信标设备产生射频信号的方法及系统
US11855655B2 (en) * 2021-09-28 2023-12-26 Texas Instruments Incorporated Serial communications module with CRC
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
US5235482A (en) 1989-11-09 1993-08-10 Rodime Plc Magnetic disk drive incorporating a mechanically damped base
US5034837A (en) 1989-11-09 1991-07-23 Rodime Plc Magnetic disk drive incorporating a magnetic actuator lock and a very small form factor
US5418716A (en) 1990-07-26 1995-05-23 Nec Corporation System for recognizing sentence patterns and a system for recognizing sentence patterns and grammatical cases
US5172538A (en) 1991-09-05 1992-12-22 Luger Linda S Stirrup pad
JP2624064B2 (ja) 1991-11-29 1997-06-25 日本電気株式会社 ロードアンロード機構
JPH05166322A (ja) 1991-12-16 1993-07-02 Nec Ibaraki Ltd 磁気ヘッドのロードアンロード機構
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
EP0681721B1 (en) 1993-02-01 2005-03-23 Sun Microsystems, Inc. Archiving file system for data servers in a distributed network environment
US5617425A (en) * 1993-05-26 1997-04-01 Seagate Technology, Inc. Disc array having array supporting controllers and interface
JP3264465B2 (ja) 1993-06-30 2002-03-11 株式会社日立製作所 記憶システム
JPH0728746A (ja) * 1993-07-14 1995-01-31 Fuji Xerox Co Ltd データ転送装置
JPH0863920A (ja) 1993-08-24 1996-03-08 Sony Corp ロード・アンロード装置及びその駆動制御回路
US5668809A (en) * 1993-10-20 1997-09-16 Lsi Logic Corporation Single chip network hub with dynamic window filter
US5448566A (en) 1993-11-15 1995-09-05 International Business Machines Corporation Method and apparatus for facilitating communication in a multilayer communication architecture via a dynamic communication channel
GB9401092D0 (en) * 1994-01-21 1994-03-16 Newbridge Networks Corp A network management system
FR2719552B1 (fr) * 1994-05-04 1996-07-26 Eurocopter France Aube de redresseur pour dispositif anti-couple à rotor et stator redresseur carénés d'hélicoptère.
US5455723A (en) 1994-06-02 1995-10-03 International Business Machines Corporation Method and apparatus for ramp load and unload
JPH0844649A (ja) * 1994-07-26 1996-02-16 Hitachi Ltd データ処理装置
US5828522A (en) 1994-09-13 1998-10-27 International Business Machines Corporation Velocity control of head load/unload mechanism in a disk drive using dither
US5535035A (en) 1994-09-15 1996-07-09 International Business Machines Corporation Optical fiber ring communications system and communications method
JPH09505428A (ja) 1994-09-16 1997-05-27 フィリップス エレクトロニクス ネムローゼ フェンノートシャップ ページアドレスモードを有するマイクロコントローラ
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
DE69618439D1 (de) 1995-10-10 2002-02-14 Koninkl Philips Electronics Nv Informationsspeicheranlage mit elektromagnetischer hebevorrichtung
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
JP2689973B2 (ja) * 1995-12-29 1997-12-10 日本電気株式会社 スイッチングハブ装置
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
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
US5761534A (en) 1996-05-20 1998-06-02 Cray Research, Inc. System for arbitrating packetized data from the network to the peripheral resources and prioritizing the dispatching of packets onto the network
US5805788A (en) 1996-05-20 1998-09-08 Cray Research, Inc. Raid-5 parity generation and data reconstruction
US5787450A (en) 1996-05-29 1998-07-28 International Business Machines Corporation Apparatus and method for constructing a non-linear data object from a common gateway interface
US5764931A (en) 1996-05-31 1998-06-09 Sun Microsystems, Inc. Method and apparatus for passing bus mastership between processors using predefined bus mastership states
US5822143A (en) 1996-06-11 1998-10-13 Western Digital Corporation Decision feedback equalization implementation of partial-response signaling in a magnetic recording channel
US5790792A (en) 1996-09-04 1998-08-04 Radiant Systems, Inc. Method and apparatus for transmitting multimedia data from and application logic server to interactive multimedia workstations
JP2868080B2 (ja) 1996-09-12 1999-03-10 三菱電機株式会社 通信監視制御装置及び通信監視制御方法
US5812754A (en) 1996-09-18 1998-09-22 Silicon Graphics, Inc. Raid system with fibre channel arbitrated loop
US5889949A (en) * 1996-10-11 1999-03-30 C-Cube Microsystems Processing system with memory arbitrating between memory access requests in a set top box
US5930483A (en) * 1996-12-09 1999-07-27 International Business Machines Corporation Method and apparatus for communications control on a small computer system interface
US5917828A (en) * 1997-01-03 1999-06-29 Ncr Corporation ATM reassembly controller and method
US5978379A (en) * 1997-01-23 1999-11-02 Gadzoox Networks, Inc. Fiber channel learning bridge, learning half bridge, and protocol
US6172990B1 (en) * 1997-06-19 2001-01-09 Xaqti Corporation Media access control micro-RISC stream processor and method for implementing the same
US6061351A (en) * 1997-02-14 2000-05-09 Advanced Micro Devices, Inc. Multicopy queue structure with searchable cache area
US5875074A (en) 1997-04-18 1999-02-23 Quinta Corporation Adjustable head loading apparatus
JPH10302421A (ja) 1997-04-28 1998-11-13 Internatl Business Mach Corp <Ibm> サスペンション・アセンブリとランプ・ブロックおよびヘッド保持機構ならびにディスクドライブ装置
US6185207B1 (en) * 1997-06-19 2001-02-06 International Business Machines Corporation Communication system having a local area network adapter for selectively deleting information and method therefor
US6014380A (en) * 1997-06-30 2000-01-11 Sun Microsystems, Inc. Mechanism for packet field replacement in a multi-layer distributed network element
US6304910B1 (en) * 1997-09-24 2001-10-16 Emulex Corporation Communication processor having buffer list modifier control bits
US6226680B1 (en) * 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US7821969B2 (en) 2002-05-24 2010-10-26 Cisco Technology, Inc. Apparatus and method for preventing disruption of fibre channel fabrics caused by reconfigure fabric (RCF) messages
US8327043B2 (en) 2010-07-29 2012-12-04 Kabushiki Kaisha Toshiba Buffer management device which manages buffer transfer, storage apparatus comprising the same device, and buffer management method

Also Published As

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

Similar Documents

Publication Publication Date Title
JP2001523862A (ja) ループの初期化および応答のための方法及び専用のフレームバッファ
KR100607392B1 (ko) 다이나믹 반이중 방식의 루프 공정성을 보존하기 위한통신 시스템 및 방법
US6185631B1 (en) Program for transferring execution of certain channel functions to a control unit and having means for combining certain commands and data packets in one sequence
US6609165B1 (en) Method and apparatus for using fibre channel extended link service commands in a point-to-point configuration
US6230218B1 (en) Apparatus for transferring execution of certain channel functions to a control unit and having means for combining certain commands and data packets in one sequence
JP3452590B2 (ja) システムメモリからネットワークへのパケットに配列されるデータのフローを制御するネットワークアダプタおよびデータのフローを制御する方法
US7164425B2 (en) Method and system for high speed network application
US6240446B1 (en) Multiplexing of multiple data packets for multiple input/output operations between multiple input/output devices and a channel subsystem having multiple channels
EP1021879A1 (en) Full-duplex communication processor
WO2006036468A1 (en) Method and system for optimizing data transfer in networks
US7986630B1 (en) High performance architecture for fiber channel targets and target bridges
US6499066B1 (en) Method and apparatus for using fibre channel test extended link service commands for interprocess communication
US6330585B1 (en) Transfer information using optical fiber connections
JP3130226B2 (ja) 入出力通信サブシステム及び方法