JP2001523861A - フレーム受信のための方法及び専用のフレームバッファ - Google Patents

フレーム受信のための方法及び専用のフレームバッファ

Info

Publication number
JP2001523861A
JP2001523861A JP2000521448A JP2000521448A JP2001523861A JP 2001523861 A JP2001523861 A JP 2001523861A JP 2000521448 A JP2000521448 A JP 2000521448A JP 2000521448 A JP2000521448 A JP 2000521448A JP 2001523861 A JP2001523861 A JP 2001523861A
Authority
JP
Japan
Prior art keywords
data
buffer
port
frame
data frame
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
JP2000521448A
Other languages
English (en)
Inventor
ウェストビイ、ジュディ、リン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seagate Technology LLC
Original Assignee
Seagate Technology LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seagate Technology LLC filed Critical Seagate Technology LLC
Publication of JP2001523861A publication Critical patent/JP2001523861A/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

Abstract

(57)【要約】 ファイバチャンネルの調停ループ連続通信チャンネル設計において2ポートノードの各ポートごとに、非データフレームを受信するための専用の受信バッファが設けられている。この改良になる通信チャンネル装置と方法は、各々が通信チャンネルを支持する2重ポートを備えたチャンネルノードを有している。その両ポートは、単一のインターフェースチップからインターフェースで接続されている。この通信チャンネル装置と方法は、また、フレームを受信するために前記インターフェースチップに配置された専用のオンチップフレームバッファをも有する。この専用のオンチップフレームバッファは、2つのポートの各々に1つづつ接続された2つの到来非データバッファ(53,53’)を有していて、各ポートからの到来非データフレームは、それぞれの到来非データバッファ内に受信される。この通信チャンネル装置は、さらに、オフチップバッファを有し、受信された非データフレームは、前記非データフレームバッファの1つに受信され、この非データフレームバッファから前記オフチップバッファへ転送される。データフレームバッファ(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メートルまでの距離及びチャンネル全体の光ファイバを使用して1
0キロメートルまでの距離で動作する。SCSI環境では、データ伝送の誤りは
、パリティの使用により検出され、ファイバチャンネルでは、誤りは、実行時の
デスパリティ(disparity)及び周期冗長符号チェック(「CRC)チ
ェック」)情報により確認される。さらに多くの情報は、「CRC Check ing Using a Generator in a Multi−por
t Design」なる名称の米国特許第5,802,080号および「16B/
20B Encoder」なる名称の米国特許第5,663,724号(両者共 、発明者は,本発明者のWestbyで、共に本譲受人のSeagate Te
chnology,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 Ori
ented DC Balanced (0,4)8B/10B Partit ioned Block Transmission Code」(Frana szek 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】 ある実施例では、各ノードは、冗長性を提供する(各々が別々のループに接続
された)2重ポートを有しているので、1つのループが故障した場合に、他のル
ープがループの義務を果すことができる。2重ポートは、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】 ループ初期化の背景 複数のループネットワークでは、誤り条件が検出された後、および、ループイ
ンターフェースモジュールがチャンネルに接続された時またはファイバチャンネ
ルがパワーを供給された時に、ループの「初期化」をすることが必要である。初
期化は、通常、ループ初期化データをそのループに伝送することによって達成さ
れる。しかし、このループに接続されたループインターフェースモジュールが、
他のループに接続されたポートを介してデータを既に受信している場合には、そ
のループインターフェースモジュールは、ループ初期化データを受信することが
できないであろう。通常、このような条件下では、データ転送は中止され、そし
て、ループ初期化が、まず行われるようにする。他の場合には、ループ初期化シ
ーケンスは、不安定となり、そして、(2重ループノードの)他のループがデー
タ受信を完了するまで連続的な再試行モードに入る。さらに、もしもループイン
ターフェースモジュールが一度に1つのループでのみ受信することができる場合
、ループインターフェースモジュールは、1つのチャンネルでループの初期化が
行われている時に他のポートを介してデータを受信することができない。
【0015】 ファイバリンクは、コンピュータネットワークの種々の装置間でデータの送信
に関連してかなりの配慮を受けている。詳述すると、ファイバチャンネルは、さ
らに大きい帯域幅、より大きな接続性、モジュールの取り付けのさらなる容易性
、さらなる伝送距離および他のファクタに鑑みて、小型コンピュータ装置インタ
ーフェース(「SCSI」)に対して大きな利点を提供する。例えば、一般的な
SCSIバスは、約25メートルまでの全長で15個までのモジュールを取り扱
うことができるが、ファイバチャンネルは、電気的な伝送を利用してモジュール
間約30メートルの距離または光伝送を用いて10キロメートルまでの距離で1
26個までのモジュールを取り扱うことができる。従って、例えば、1秒間当た
りテラビットのピークのデータ伝送速度を達成するためには、70本までのSC
SIバスを必要とするが、約10本のファイバチャンネルだけあれば良いであろ
う。
【0016】 重要なことは、データトラフィックの負荷を減少させる(さもなければ他のチ
ャンネルに課されるであろう)ためにできるだけ早くチャンネルを動作させる(
すなわち、初期化する)ことである。
【0017】 従って、多ポートループインターフェースモジュールに、同時に複数のチャン
ネルでデータフレームおよび非データフレームを受信させ、または、1つのチャ
ンネルでデータを送信させながら他のチャンネルでデータを受信させ、または、
複数のチャンネルで初期化および応答フレームを同時に送信させることができる
構成が存在する必要が有る。また、オンチップバッファに記憶されたデータのデ
ータチェック能力をさらに増大する必要も存在する。
【0018】 (発明の要約) フレームの受信のための方法および専用フレームバッファ。調停ループファイ
バチャンネル設計において2ポートノードの各ポートごとに、非データフレーム
を受信するための専用受信バッファが設けられている。一実施例では、本発明は
、第1のポートと第2のポートとを有する第1のチャンネルノードを備えた通信
チャンネル装置を提供する。各ポートは、前記チャンネルノード内に配置され、
各ポートは、ファイバチャンネルの調停ループ通信チャンネルを支持する。この
通信チャンネル装置は、また、前記調停ループ通信チャンネルからフレームを受
信するために前記第1のチャンネルノード内に配置された専用のオンチップフレ
ームバッファをも有する。
【0019】 一実施例では、前記専用のオンチップフレームバッファは、構成要素として、
前記第1のポートから到来非データフレームを受信するために前記第1のポート
に作動接続される第1の到来非データバッファと、前記第2のポートから到来非
データフレームを受信するために前記第2のポートに作動接続される第2の到来
非データバッファとを有する。一前記実施例は、更に、オフチップバッファを有
し、そこで、受信された非データフレームがまず前記第1の到来非データフレー
ムバッファへ受信され、次にこの第1の到来非データフレームバッファから前記
オフチップバッファへ転送される。
【0020】 他の実施例では、前記専用のオンチップフレームバッファは、さらに、構成要
素として、前記第1のポートと前記第2のポートからの到来データを受信するた
めに、前記第1のポートと前記第2のポートの両方に作動接続されるデータフレ
ームバッファを有する。一前記実施例は、更に、前記データフレームバッファか
ら転送される到来データフレームを受信するとともに前記オフチップバッファか
ら外向データフレーム(通信チャンネルへ送られるディスク面からのデータフレ
ーム)を前記データフレームバッファへ移動するために、前記データフレームバ
ッファに作動接続されるオフチップバッファを有する。
【0021】 更に他の実施例では、前記専用のオンチップフレームバッファは、構成要素と
して、前記第1のポートから到来非データフレームを受信するために前記第1の
ポートに作動接続される第1の到来非データバッファと、前記第2のポートから
到来非データフレームを受信するために前記第2のポートに作動接続される第2
の到来非データバッファと、前記第1のポートからの到来データフレームを受信
するために前記第1のポートに作動接続されるデータフレームバッファとを有す
る。一前記実施例は、更に、前記データフレームバッファから転送された到来デ
ータフレームを受信するとともに前記オフチップバッファから外向データフレー
ム(通信チャンネルへ送られるディスク面からのデータフレーム)を前記データ
フレームバッファへ移動するために、前記データフレームバッファに作動接続さ
れるオフチップバッファを有する。
【0022】 一部実施例では、この通信チャンネル装置は、更に、前記第1のチャンネルノ
ードに作動接続される磁気ディスク記憶ドライブと、第2のチャンネルノードを
有するコンピュータ装置とを有し、前記第2のチャンネルノードは、前記ファイ
バチャンネルの調停ループ通信チャンネルを介して前記第1のチャンネルノード
と前記第2のチャンネルノードの間でデータを転送するために、ファイバチャン
ネルループにおいて前記第1チャンネルノードに作動接続される。
【0023】 本発明の他の態様は、回転可能なディスクと、このディスクに対し変換関係に
あるトランスジューサと、第1のポートと第2のポートとを備えた第1のチャン
ネルノードとを有し、各ポートが、ファイバチャンネルの調停ループ通信チャン
ネルを支持するようにしたディスクドライブを提供する。前記第1のチャンネル
ノードは、前記トランスジューサに作動接続される。このディスクドライブは、
また、前記調停ループ通信チャンネルからフレームを受信するために前記チャン
ネルノード内に配置された専用のオンチップフレームバッファを有する。一前記
実施例では、前記専用のオンチップフレームバッファは、構成要素として、前記
第1のポートから到来非データフレームを受信するために前記第1のポートに作
動接続される第1の到来非データバッファと、前記第2のポートから到来非デー
タフレームを受信するために前記第2のポートに作動接続される第2の到来非デ
ータバッファとを有する。一前記実施例では、前記ディスクドライブは、更に、
オフチップバッファを有し、そこで、受信された非データフレームがまず前記第
1の到来非データフレームバッファへ受信され、次に、この第1の到来非データ
フレームバッファから前記オフチップバッファへ転送される。
【0024】 本発明のさらに他の態様は、通信チャンネル方法を提供する。この方法は、(
a)第1のチャンネルノードの第1のポートと第2のポートのおのおのでファイ
バチャンネルの調停ループ通信チャンネルを支持するステップと、(b)前記第
1のチャンネルノードに専用のフレームバッファを形成するステップと、(c)
この専用のフレームバッファにデータフレームと非データフレームを受信するス
テップと、(d)前記専用のフレームバッファからフレームを送信するステップ
とを有する。
【0025】 この方法の一実施例では、前記形成するステップ(b)は、更に、(b)(i
)前記第1のポートに作動接続される第1の到来非データバッファと、前記第2
のポートに作動接続される第2の到来非データバッファとを形成するステップを
有し、前記受信するステップ(c)は、更に、(c)(i)前記第1のポートか
ら到来非データフレームを前記第1の到来非データバッファへ受信するステップ
と、(c)(ii)前記第2のポートから到来非データフレームを前記第2の到
来非データバッファへ受信するステップとを有する。この方法の一前記実施例は
、更に、(e)前記第1のチャンネルノードに作動接続されるオフチップバッフ
ァを形成するステップを有し、前記受信するステップ(c)は、更に、(c)(
iii)前記非データフレームバッファから前記オフチップバッファに前記受信
した非データフレームを転送するステップを有する。
【0026】 他の一実施例では、前記形成するステップ(b)は、更に、(b)(ii)前
記第1のポートに作動接続される第1の到来非データバッファと、前記第2のポ
ートに作動接続される第2の到来非データバッファを形成するステップと、前記
第1のポートと前記第2のポートの両方に作動接続されるデータフレームバッフ
ァを形成するステップとを有し、前記受信するステップ(c)は、更に、(c)
(iv)前記第1のポートから到来データフレームを前記データフレームバッフ
ァへ受信するステップを有する。この方法の一前記実施例は、更に、(f)前記
第1のチャンネルノードに作動接続されるオフチップバッファを形成するステッ
プを有し、前記受信するステップ(c)は、更に、(c)(v)受信したデータ
フレームを前記データフレームバッファへ受信し、次にこの受信したデータフレ
ームを前記データフレームバッファから前記オフチップバッファへ転送するステ
ップを有し、前記送信するステップ(d)は、更に、(d)(i)送信すべきデ
ータフレームを(例えば、ディスク面から)前記オフチップバッファへ移動し、
次にこの送信すべきデータフレームを前記オフチップバッファから前記データフ
レームバッファへ転送するステップを有する。
【0027】 この方法の他の実施例では、前記形成するステップ(b)は、更に、(b)(
iii)前記第1のポートに作動接続される第1の到来非データバッファ、前記
第2のポートに作動接続される第2の到来非データバッファ、および前記第1の
ポートと前記第2のポートの両方に作動接続されるデータフレームバッファを形
成するステップを有し、前記受信するステップ(c)は、更に、(c)(vi)
前記第1のポートから到来非データフレームを前記第1の到来非データバッファ
へ受信するステップと、(c)(vii)前記第2のポートから到来非データフ
レームを前記第2の到来非データバッファへ受信するステップと、(c)(vi
ii)前記第1のポートから到来非データフレームを前記データフレームバッフ
ァへ受信するステップと、(c)(ix)受信したデータフレームを前記データ
フレームバッファへ受信し、次にこの受信したデータフレームを前記データフレ
ームバッファから前記オフチップバッファへ転送するステップを有する。この方
法の一前記実施例は、更に、(g)前記第1のチャンネルノードに作動接続され
るオフチップバッファを形成するステップを有し、前記送信するステップ(d)
は、更に、(d)(ii)送信すべきデータフレームを(例えば、ディスク面か
ら)前記オフチップバッファへ移動し、次にこの送信すべきデータフレームを前
記オフチップバッファから前記データフレームバッファへ転送する。この方法の
一部の実施例は、前記第1のチャンネルノードに作動接続される磁気ディスク記
憶ドライブと第2のチャンネルノードを備えたコンピュタ装置との間で、前記フ
ァイバチャンネルの調停ループ通信チャンネルを介してデータを転送するステッ
プを有し、前記第2のチャンネルノードは、前記ファイバチャンネルの調停ルー
プ通信チャンネルにより前記第1のチャンネルノードに作動接続される。
【0028】 本発明の他の態様は、第1のポートと第2のポートを備え、各ポートがファイ
バチャンネルの調停ループ通信チャンネルを支持するようにした第1のチャンネ
ルノードと、フレームを受信するための専用のフレームバッファ装置とを有する
ことを特徴とする改良になる通信チャンネル装置を提供する。
【0029】 かくして、本発明は、1個以上の専用非データバッファへの非データフレーム
の受信および/または専用の送信バッファへのデータフレームの受信を可能にす ることによって、かなりの性能向上をもたらす。ある実施例では、この受信は、
前記ノードが、前記外向ファイバの1本または両方で非データフレームを同時に
送信しているときでさえ、行われる。すなわち、ポートの一本のファイバでの受
信は、任意に、同一ポートの他のファイバでの送信と同時に行われる。
【0030】 (詳細な説明) 好適な実施例の次の詳細な記載において、その一部を形成する添付図面を参照
する。この添付図面には、例示的に本発明を実施する特定の実施例が示してある
。なお、他の実施例を利用することもできるが、構造上の変化は、本発明の範囲
から逸脱せずに成し得るであろう。 本願に記載された発明は、ハードディスクドライブ、ZIPドライブ、フロッ
ピーディスクドライブ、光ディスクドライブ、CDROM(「コンパクトディス
ク読み取り専用メモリ」)ドライブおよび任意の他の種類のドライブ、(「廉価
な/独立のディスクドライブの冗長アレイ」またはRAID、構成のような)ド ライブの装置またはデータがドライブと他の装置または情報取り扱い装置との間
で通信されるその他の装置を含むあらゆる種類のディスクドライブにとって有用
である。ある実施例では、本発明は、(複数のファイバチャンネルループを互い
に接続するために使用されるような)ハブおよびスイッチ、ワークステーション
、プリンタ、および他の装置またはファイバチャンネルの調停ループで接続され
た情報取り扱い装置のような非ディスク装置のためのノードインターフェースに
おいて有用である。
【0031】 次に本発明を記載する4つの相互に関連する部分を示す: I.ループ初期化および応答用の専用フレームバッファ、II.受信フレーム用
の専用フレームバッファ、III.オンチップメモリにおけるデータの完全性を
得るためのファイバチャンネルのCRCの使用、および、IV.調停ループのオ ーバーヘッドを減少するための方法および装置。項IVは、本発明の細部に主と
して関連する部分であるが、他の部分は、本発明の環境全体についての関連情報
を提供するものである。 図1は、ファイバチャンネルのノードインターフェースを備えたディスクドラ
イブ装置100のブロック線図を示す。
【0032】 図2と図1を参照すると、ファイバチャンネルのループインターフェース回路
1220は、ループの初期化および応答用の専用の送信フレームバッファ73を
有している。(「ループの初期化」は、ファイバチャンネルループを初期化する
ために、一連の1個以上の特化した非データフレームを送信(およびこれらのフ
レームに対する応答を監視)することによって達成される。「応答」は、他のノ
ードからの命令または問い合わせに応答して送られる非データフレームである。
)ファイバチャンネルの調停ループ通信チャンネル1250(これは、またルー
プ1250またはファイバチャンネルループ1250とも呼ばれる)は、ディス
ク記憶装置100とコンピュータ1202または他の情報処理装置との間でのデ
ータの通信に使用することができる。一実施例では、ファイバチャンネルループ
1250は、連続通信チャンネルであり、他の実施例では、2本以上の並列線(
または「ファイバ」)がファイバチャンネルループ1250を実施するために使
用される。このような専用の送信フレームバッファ73を有することにより、2
重ポートノード1220の1つのポート116が、初期化または応答フレームを
送信しているときに、他のポートは、データフレームを送信または受信すること
ができる。ポート116は、連続線であり、1つの線117は、到来データ用で
あり、もう1本の線118は、外部への送信データ用であるが、両方の線117
と118は、通信チャンネルループ1250に接続されてその一部を形成してい
る。専用の受信バッファ(53、53´および55)も2ポートノードの各ポー
ト116に設けられている。(なお、´付きの参照数字(例えば、53´)を備
えた各ブロックは、´のない対応ブロック(例えば、53)と同一機能を提供す
るが、別のループポートまたは通信チャンネルに使用される。)フレームと共に
ファイバチャンネルループ1250から受信された周期冗長符号情報は、1個以
上のフレームバッファ(53、53´または55)の1つに記憶され、そして、
フレームバッファ(53、53´または55)にある間、データの完全性を保証
するために後でチェックされる。ファイバチャンネルループ1250の制御のた
めの調停にかかる全時間量を減少するために、データのプログラム可能な量が伝
送に利用できる限り、ファイバチャンネルループ1250の制御は、維持される
(すなわち、ループ接続は開いた状態に保持される)。
【0033】 ある実施例では、ディスクドライブ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つのパリティビット)
である。
【0034】 ファイバチャンネルループ1250からデータフレームと共に受信されたCR
C有効チェック情報は、データフレームバッファ55にそのデータと共に記憶さ
れ、そして、このデータがデータフレームバッファ55から読み出される時にチ
ェックされ、かくして、データフレームがデータフレームバッファ55に存在す
るかまたはその前にデータフレームが移動中にどこかで生ずる可能性のあるデー
タの誤りをチェックする。同様に、ファイバチャンネルループ1250から非デ
ータフレームと共に受信されたCRC有効チェック情報は、非データフレームバ
ッファ53(53’)にそのデータと共に記憶され、そして、このデータが非デ
ータフレームバッファ53(または53’)から読み出される時にチェックされ
、かくして、非データフレームが非データフレームバッファ53(または53’
)に存在するかまたはその前にデータフレームが移動中にどこかで生ずる可能性
のあるデータの誤りをチェックする。マイクロプロセッサ112は、任意適当な
高速プロセッサであって、ディスクドライブ100内で全データの転送、ルーテ
ィング、シグナリング、誤り復旧などの制御の支援に使用される。本発明におい
ては、ファイバチャンネルインターフェースチップ110は、改良になるフレー
ムバッファ、誤りチェックおよびループ調停を以下に記載するように提供する。
【0035】 一実施例では、ループポートトランシーバブロック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とは別の回路で形成されている。
【0036】 他の実施例では、トランシーバ115は、単に、連続ループ1250とチップ
110との間のインターフェースであって、10ビットまたは12ビット幅のデ
ータに対する連続化/非連続化がチップ上で起こる。
【0037】 図2は、コンピュータ装置1200の略図である。好都合にも、本発明は、コ
ンピュータ装置1200で使用するに充分適している。コンピュータ装置120
0は、電子装置または情報処理装置と呼んでもよく、中央処理装置(「CPU」
)、メモリおよび装置バスを有している。コンピュータ装置1200は、CPU
情報処理装置1202を有し、CPU情報処理装置1202は、中央処理装置1
204、ランダムアクセスメモリ(「RAM」)1232、および中央処理装置
1204とランダムアクセスメモリ1232を通信結合するための装置バス12
30を有している。CPU情報処理装置1202は、ファイバチャンネルノード
インターフェース1220を有している。1個以上のディスク記憶情報処理装置
100ないし100´の各々は、1個以上のディスクドライブ装置1256とフ
ァイバチャンネルノードインターフェース1220を有している。
【0038】 ある実施例では、ディスク記憶情報処理装置100´がディスクドライブのR
AID(廉価/独立ディスクドライブの冗長配列)となるように、多数のディス クドライブ1256は、例えば、RAID構成で単一のノードインターフェース
1220に接続されている。CPU情報処理装置1202は、内部の入力/出力 バス1210を駆動する入出力インターフェース回路1209と、入力出力バス
1210に取り付けることができる1212、1214および1216のような
幾つかの周辺装置を有しても良い。周辺装置は、ハードディスクドライブ、磁気
―光ドライブ、フロッピーデスクドライブ、モニタ、キーボードおよび他のこの
ような周辺装置を有しても良い。任意の種類のディスクドライブまたは他の周辺
装置は、ここに記載したファイバチャンネル方法および装置(特に、例えば、フ
ァイバチャンネルノードインターフェース1220における改良)を使用しても
良い。各装置毎に、ポートAまたはポートBは、任意の与えられたループ125
0に接続するために使用することができる。
【0039】 コンピュータ装置1200の一実施例は、任意に(CPU情報処理装置120
2と同一または類似の)第2のCPU情報処理装置1202´を有し、この第2
のCPU情報処理装置1202´は、(中央処理装置1204と同一の)中央処
理装置1204´、(RAM1232と同一の)ランダムアクセスメモリ(「R
AM」)1232´、および中央処理装置1204´とランダムアクセスメモリ
1232´とを通信連結するための(装置バス1230と同一の)装置バス12
30´を有する。CPU情報処理装置1202´は、(ノードインターフェース
1220´と同一の)それ自体のファイバチャンネルノードインターフェース1
220´を有する。しかし、それは、(ループ1250とは別個独立の)第2の
ファイバチャンネルループ1250´を介して1個以上のディスク装置100(
この実施の実施例では、それは、ディスク装置100´に接続されているが他の
実施例では全ての装置またはディスク装置100ないし、100´に接続されて
いる)に接続されている。この構成により、2つのCPU装置1202と120
2´は、各CPU装置1202毎の別々のファイバチャンネルループを使用して
1個以上のディスク記憶情報処理装置100を共有することができる。さらに他
の実施例では、全てのディスク装置100ないし100´および全てのCPU装
置1202ないし1202´は、両方のループ1250と1250´に接続され
ている。
【0040】 一実施例では、本発明は、データフレームの不規則な伝送を支援するようなこ
とはしない。本発明の他の実施例によるファイバチャンネルコントローラは、送
受信用の符号ワードのデータフレームを組織するためのプロトコルをも実施する
。このプロトコルは、「ACKNOWLEDGEMENT PROTOCOL
SERIAL DATA NETWORK WITH OUT−OF―ORDE
R DELIVERY」なる名称のG.L.Rouseによる米国特許第5、26
0、933号に開示されている。本発明の一実施例を形成する場合に使用された
ファイバチャンネルの仕様は、次のANSI規格を有している:
【0041】
【表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
【0042】 I.ループ初期化用および応答用の専用フレームバッファ 本発明の一実施例の場合、フレームバッファは、両ポートを同時に作動できる
ようにするためにフレームバッファが第3世代アプリケーション固有の集積回路
(「ASIC」)チップ(ファイバチャンネルインターフェースチップ110)
に加えられている。非データフレーム(これはまた図1の「受信非データフレー
ムバッファ」53と53´とも呼ばれる)を受信する二つのバッファは、命令お
よびFCPフレーム(ファイバチャンネルプロトコルフレーム)が同時にノード
の両ポートで受信できるように(および、同様に、全2重動作が、すなわち、ポ
ートの1本のファイバ上で受信をしながら同一ポートのほかのファイバ上で送信
を行うことができるように)設けられている。これにより、ディスクドライブ1
00(図2参照)は、転送の中止または終わりまで待つよりもむしろ同一のポー
トおよび/または他のポートでのデータ転送中に1つのポートで新しい命令(ま たは他の非データフレーム)を受信することができる。従来の試みの場合よりも
早く命令を有することによって、本発明は、命令の分類および最適化を可能にし
、同時に、データ転送を進行させ、それにより、コンピュータ装置1200の性
能を改善することができる。
【0043】 2重ポートのファイバチャンネルの調停ループ設計では、オンチップフレーム
バッファは、到来および外向のフレームを管理するために使用できよう。オンチ
ップのRAMは、性能とシリコン不動産との間の均衡を見出すために種々の方法
で構成することができる。本明細書は、ファイバチャンネルのループ初期化フレ
ームと単一フレームのファイバチャンネル応答を記憶しかつ送信するために使用
される専用のフレームバッファ119と単一フレームの送信路70の使用を詳述
する。 2重ポート設計では、1つのポートは、データを受信または送信し、および、
転送を扱うためにASIC資源の大部分を利用してもよい。多くのカウンタおよ
び状態マシンは、この種の多フレームシーケンスを取り扱うために要求してもよ
い。
【0044】 本発明では、一定量の論理回路は、各ポート毎の設計を2重にせず、またはデ
ータ転送を停止せずに、主ポートがデータを転送する時に同時に、別のポートが
フレームを受信および送信できるように機能を提供することが要求される。本発
明のある実施例では、1つのポートでフレームを送信しながら他のポートがデー
タを送信する能力を提供するために、単一フレーム送信路回路70と共に(図1
3に示したように)専用の送信フレームバッファ73が提供されている。いづれ
のポートもデータを転送し、または送信フレームバッファ73を使用できるよう
に、論理回路を動的に形成してもよい。
【0045】 主ポートでデータを転送し、そして、ループの初期化が他のポートで行われて
いる時に、データ転送は、間断なく続行することができる。受信される(非デー
タフレームである)ループ初期化フレームは、このフレームがフレームバッファ
(例えば、送信フレームバッファ73、図13参照)に書き込まれる前に確認さ
れる。マイクロプロセッサ112は、受信されたフレームが送信できる前に、こ
の受信されたフレームを送信フレームバッファ73が検査して改変することがで
きるように送信フレームバッファ73に対して書き込み/読み取りアクセスをす る。フレームの「ヘッダ」および「ペイロード」は、そのフレームバッファに記
憶される。(フレームの「ヘッダ」は、そのフレームのソース識別子、シーケン
スカウントおよび発信識別子のような情報を有している。フレームの「ペイロー
ド」は、送信されるデータの主体である。マイクロプロセッサ112の制御下に
おいて単一フレームの送信路70(図3参照)は、フレームの組み立てを行い、
フレームの開始およびフレームの終わりの区切り記号を有し、フレーム周期冗長
符号(「CRC」)情報を発生する。
【0046】 データフレームが主ポートで転送され、そして、ファイバチャンネルプロトコ
ル(FCP)応答フレームの伝送が要求されると、データ転送が遮断なしに続行
可能となる。図3では、マイクロプロセッサ112は、応答フレームのヘッダと
ペイロードを送信フレームバッファ73に配置する。単一フレーム送信回路70
は、フレームの組み立てを行い、フレーム開始および終了の区切り記号を有し、
およびフレームのCRC情報を発生する。一部追加のループ制御論理回路は、フ
レーム伝送のためにループ1250を開放するように設けられている。
【0047】 図14で、送信フレームバッファ73は、書き込みポインタおよび読み取りポ
インタ(それぞれ733と734)を必要とする。(時には、「単一フレーム送
信フレームバッファ」または「送信フレームバッファ」とも記載されるが、バッ
ファ73は、包括的には、「送信フレームバッファ」であり、他の実施例ではバ
ッファ73は、1個以上の各ポート毎に1個以上の送信フレームを有しており、
用語「送信フレームバッファ」は、本明細書では、これら実施例全てを含むよう
に使用される。)単一フレーム送信回路70(その詳細な説明は、図13で以下
に示す)は、フレーム長カウンタ71、送信フレーミング状態マシン72、CR
C発生器76、および送信マルチプレクサ(「mux」)74を必須とする。
【0048】 ファイバチャンネルインターフェースの説明 図3は、ファイバチャンネルのノードインターフェースチップ110のブロッ
ク線図である。本発明におけるファイバチャンネルのノードインターフェース論
理回路110は、調停ループロジックおよびフレーミングロジックを含むファイ
バチャンネルプロトコルに対し責任を有する。一実施例は、ファイバチャンネル
プロトコル(「FCP」)の規格によって定義されたSCSIの上位プロトコル
のみを使用する第3級のSCSI実施(上記のFCAL仕様参照)に最適化され
たものである。ファイバチャンネルノードインターフェース論理回路110は、
2重ポートおよび全2重動作を支援し、かつ、種々のバッファ帯域幅を支援する
ために4個のオンチップフレームバッファ(53、53´、55および73)を
有している。ファイバチャンネルノードインターフェース論理回路110は、マ
イクロプロセッサ112にインターフェースを介して接続され、これによりマイ
クロプロセッサ112は、ファイバチャンネルノードインターフェース論理回路
110を設定し、ファイバチャンネルノードインターフェース論理回路110の
現在の状態についての状態情報を読むことができる。
【0049】 ファイバチャンネルノードインターフェース論理回路110は、2つのループ
ポート回路20(ポートA用に1つとポートB用にもう1つ、各ポートは、ルー
プ通信を支持するためにデータインインターフェースとデータアウトインターフ
ェースを有している)、ループ制御回路40(これはまた、フレーム送信回路4
0とも呼ばれる)、受信路論理回路50、転送制御論理回路60、単一フレーム
送信回路70、送信路マルチプレクサ(「mux」)79、データフレーム送信
路論理回路80、およびマイクロプロセッサインターフェース90を有している
。これらのブロックは、受信フレームの処理、送信データフレームの発生、単一
フレーム送信の発生、転送制御、およびプロセッサインターフェイシングのよう
な機能を支援する。
【0050】 マイクロプロセッサインターフェース回路90は、ファイバチャンネルノード
インターフェース論理回路110のレジスタおよびカウンタに対するマイクロプ
ロセッサ112のアクセスを提供する。(「マイクロプロセッサ」が記載される
時に、この用語は、任意適当なプログラム可能な論理装置を有すると理解される
べきである。)インターフェースレジスタは、ファイバチャンネルインターフェ
ース回路の応答前に外部のマイクロプロセッサ112により初期化される。出力
転送部は、このインターフェース回路を介して初期化され、そして、受信転送物
の状態は、このインターフェース回路を介して入手可能である。
【0051】 図3の入力信号は、ファイバチャンネル16からのデータ入力をポートAのた
めのループポート回路20に送るA_IN3021と、ポートB用のループポー
ト回路20に対しファイバチャンネル16からのデータ入力を送るB_IN30
22を有している。DATA FROM OFF−CHIP BUFFER30
51は、オフチップバッファ111からのデータを受信路50に送る。TO O
FF−CHIP BUFFER3052は、データをオフチップバッファ111
に受信路50から送る。BUFFER STATUS3061は、ステータスを
通信制御部60に送る。MPUインターフェース90へのMPU ADDRES
S3091および MPU DATA3095は、マイクロプロセッサ112か
らそれぞれアドレスのデータを提供する。MPUインターフェース90へのRE
AD_ENABLE3092とWRITE_ENABLE3093は、マイクロ
プロセッサ112からイネーブル信号を提供する。信号MPU3076により、
マイクロプロセッサ112は、送信フレームバッファ73にアクセスすることが
可能となる。A_OUT 3023は、ポートA用のループポート回路20から
ファイバチャンネル16にデータを送り、B_OUT3024は、ポートB用の
ループポート回路20からファイバチャンネル16にデータを送る。
【0052】 ループポート回路20 図4は、ファイバチャンネルループポート回路20のブロック線図である。本
発明の一実施例のファイバチャンネル設計は、周辺装置の直接取り付け用の2重
ポートファイバチャンネルインターフェースを支持するために、2つの同一のル
ープポート回路20を有している。一実施例では、ファイバチャンネルループポ
ート回路20は、受信レジスタ21、8B/10Bデコーダ論理回路22、ワー ド同期状態マシン23、受信クロック喪失検出器24、同期喪失タイマ25、調
停ループ論理回路26、および8B/10Bエンコーダ27を有している。
【0053】 一実施例では、各ループポート回路20は、10ビットのデータインターフェ
ースを使用して外部トランシーバ115(図1参照)にインターフェースを介し
て接続する。このような実施例では、トランシーバ115は、並列インターフェ
ース(例えば、10ビット幅または20ビット幅のインターフェース)への、お
よび、この並列インターフェースからのデータを直列化し、および、この直列デ
ータを非直列化する。他の実施例では、これらのトランシーバ115は、チップ
110内に集積化されている。(ファイバチャンネルから入力された)並列デー
タは、各トランシーバ115の受信部からの受信クロックを用いて捕捉され、そ
して、並列8B/10Bデコーダを用いて復号の前に20ビット幅のフォーマッ トに変換される。(特別な配列群を示すために使用される)16ビットデータ+
2つのk文字は、次に調停ループ論理回路26に配置される前にワードの有効性
についてチェックされる。調停ループ論理回路26の出力は、送信器のクロック
に再度同期化され、そして、受信フレーミング論理回路に送られるかまたはエン
コーダ27を介してループ1250で再度送信してもよい。一実施例では、エン
コーダ27は、各動作中に1つの8ビット文字を1つの10ビット文字に変換す
る。他の実施例では、2個以上の8ビット文字が各動作で対応する数の10ビッ
ト文字に変換される。(「16B/20B Encoder」なる名称の米国特 許第5、663、724号参照。)調停ループ論理回路20は、ループ状態マシ
ン、配列群デコーダ、および融通性の挿入および削除機能を有している。ループ
ポート回路20は、ファイバチャンネルの調停ループANSI規格(すなわち、
上記のFC−ALおよび/またはFC−AL2)で定義された調停ループプロト コルを実施する。
【0054】 一実施例では、ファイバチャンネルデータは、連続伝送され、そして、トラン
シーバ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ビット文字
に変換される。
【0055】 8B/10Bデコーダ論理回路22は、受信レジスタ21により捕捉された符 号化データを入力する。10ビットの2文字は、並列にデコードされて8ビット
の2文字を出力する。実行時における入力文字のディスパリティはチェックされ
、および、誤り状態は、ワード同期状態マシン23ならびに調停ループ論理回路
26に送られる。実行時の否定的なディスパリティは、実行時のディスパリティ
の誤りに続く次の配列群に強制される。符号化ルールに対する侵害もチェックさ
れ、符号侵害状態は、ワード同期状態マシン23に送られる。
【0056】 受信クロック喪失検出器24は、トランシーバ115からの受信クロックがい
つ停止したかを検出する。受信クロック喪失状態が検出されると、ワード同期状
態マシン23はリセットされ、データは、調停ループ論理回路26のFIFOに
入るのを防止される(FIFOは、異なる速度を有するバスまたは処理の間での
インターフェース接続に一般的には使用されるファーストイン、ファーストアウ
トメモリである)。ワード同期が再び得られるまで、現在の充填ワード(さらに
以下に記載する「CFW」)が伝送される。
【0057】 ワード同期状態マシン23は、ワード同期について入力されたストリームを論
理監視する。ワード同期は、3つの有効な配列群がしかるべきバイト/制御文字 群により検出され、そして、介在する無効文字が検出されない時に達成される。
「ワード喪失同期」は、FC−PH(すなわち、FC−PH Physical
&Signalling Interface X3T11/Project7 55D/Rev.4.3)規格ごとに定義されている。ワード同期が達成されると、
データは、調停ループ論理回路26のFIFOに入力される。
【0058】 同期喪失タイマ25は、(有効な配列群を3組検出するためのフレーム時間ま
でかかる可能性があるので)ワード同期喪失条件がいつ最大フレーム時間以上存
在していたかを判別するために使用される。このタイマ時間が満了すると、マイ
クロプロセッサ112は、同期喪失インターラプト信号4025で割り込みを受
けるので処置を取ることができる。
【0059】 調停ループ論理回路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´)に対しデータを提供する。
【0060】 一実施例では、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´に送る。
【0061】 図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を出力する。
【0062】 図6は、ループ制御回路40(または、フレーム送信「XMIT」回路40と
も呼ばれる)のブロック線図である。ループ制御回路(図3と図6参照)は、フ
レームまたはR_RDYの送信を開始するために、(ポートAとポートBの調停
ループ論理回路26の)該当する調停ループ状態マシンに対し要求を発生し、か
つ、送信フレーミング状態マシン72(図13)と81(図15)に対し要求を
発生する制御論理回路を有している。
【0063】 送信データシーケンサ論理回路41は、転送がマイクロプロセッサ112によ
り要求された時に駆動される論理回路を有している。送信データシーケンサ論理
回路41は、入力信号TRANSMIT STATUS INPUTS6411
を使用して転送を監視し、そして、その転送の各段階毎に「イネーブル」(すな
わち、イネーブル信号TRANSMIT CONTROL OUTPUTS64
13)を発生する。これにより、マイクロプロセッサ112の介在なしに転送準
備完了応答とFCP応答を発生することができる。
【0064】 ループポートA/B開放制御状態マシン42(ポートA)と42´(ポートB )は、他のL_Portにより該ポートが開放される場合またループ1250が
フレーム送信のために開放される場合を取り扱う。この論理回路は、ループ12
50を調停し、かつ、これを閉じるための要求およびR_RDYおよび種々のフ
レームを送信するための要求を発生し、および、半2重操作または全2重操作を
行うように設定することができる。
【0065】 次の条件は、調停の要求を開始するために満足されなければならない: −送信ポートイネ−ブルでフレームを送信するためのマイクロプロセッサ11
2からの要求、 −送信ポートが監視状態にある、 −送信長カウントが非ゼロ、 −転送を中断するためのマイクロプロセッサ112からの要求がない、および −(非データの転送、または、満たされたデータしきい値でまだ伝送されてい
ない転送準備完了のデータ書き込みの転送または満たされたデータしきい値およ
び満たされたデータフレームバッファのしきい値でのデータ読み取りの転送)。
【0066】 ポートが半2重モードに設定されている場合、R_RDYは、開放された状態
にある時にのみ送信することができる。ポートが全2重モードに設定されている
場合、R_RDYは、開放された状態かまたは開放状態のいづれかで伝送するこ
とができる。R_RDYを伝送させる条件は、「利用可能なバッファ―バッファ
間クレジット(BB_Credit)および最大のBB_Creditよりも小
さい問題のR_RDY」を含む。(下に図12において記載されるバッファ―バ
ッファ間クレジットコントロール論理回路603は、フレームを送ることができ
るように連結ポートに対しバッファクレジットを発生する。このクレジットは、
R_RDYを送ることにより発生される。)
【0067】 ポートが半2重モードに設定されている場合、フレームは、開放状態にある時
にのみ送信できる。ポートが全2重モードに設定されている場合は、ポートがフ
レーム受信部により全2重モードで開放されている場合に、フレームは、開放状
態かまたは開放された状態で伝送することができよう。
【0068】 フレームを送信すべき要求は、次の条件がすべて満足される時に発生される: −データフレームバッファ55が利用可能なデータを有し、 −バッファ―バッファ間クレジットが利用可能であり(R_RDYが受信され
た時)、 −非データの転送、またはデータ読み取りの転送および(図12のブロック6
09)転送長カウンタが非ゼロである。
【0069】 ル−プ1250を閉成させる条件は、以下のものを含む: −開放された状態を開始する時にバッファ―バッファ間クレジットが利用でき
ない、 −問題のR_RDYが存在せず、開放された状態においてこれ以上BB_Cr
editが利用できない、 −ポートが開放された状態にある時にプロセッサのビジー要求が働いており、 −転送が完了した、 −データ読み取り転送動作およびデータが利用できない、 −CLSプリミティブが受信され、そして、BB_Creditが利用できな
い。
【0070】 また図6において、ループポートA/B開放初期化制御状態マシン46(ポー トA)と46´(ポートB)は、ファイバーチャネルループ1250が開放初期
化状態にある時の場合を扱う。この論理回路46と46´は、フレームを送信す
るための要求を発生する。各ポート毎に(それぞれ46、46´毎に)1つの状
態マシンが存在する。これらの状態マシンは、マイクロプロセッサ112がフレ
ームの送信を要求する時にこの要求を発生し、およびEOFの送信を監視する。
その送信が完了した場合、転送完了がマイクロプロセッサ112に対して発生さ
れる。
【0071】 ブロック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を含む。
【0072】 単一フレーム送信路に関する更なる情報は、以下に述べる単一フレーム送信路 回路70 なる名称の項で見られる。 II.フレーム受信のための専用のフレームバッファ 2重ポートファイバチャネルの調停ループ設計1200においては、オンチッ
プフレームバッファ119のバッファは、到来および外向のフレームを管理する
ために使用してもよい。受信および送信されるフレームは、通常は、より遅い転
送速度で大きなオフチップエリア(例えば、オフチップバッファ111)に記憶
される。オフチップバッファ111が単一ポートのための全転送速度が可能な時
でも、2重ポート設計の場合、必要な帯域幅は、更に大きくなり、付加費用が加
わる。FC−AL ASIC110(図1参照)のオンチップフレームバッファ
119は、性能、シリコン不動産およびコスト間のバランスをうまく得るように
種々の方法で構成してもよい。本明細書は、各ポートで同時に非データ型フレー
ムを受信し、かつ、専用の大きなデータフレームバッファ55(また、全オンチ
ップフレームバッファ119の要素)を提供するために専用フレームバッファ5
3および53´(全オンチップフレームバッファ119の要素)の使用を詳述す
る。
【0073】 本発明による2重ポート設計では、フレームは、両ポート116で同時に受信
してもよい。フレームは、受信後、より大きなオフチップメモリ111に通常は
移動され、そこに記憶される。各フレームは、確認されなければならず、フレー
ムオフチップを転送する前にフレーム周期冗長符号(「CRC」)情報は、チェ
ックされなければならない。受信フレーム確認論理回路およびCRCチェッカ論
理回路を2重にすることを避けるために、個々の非データフレーム受信バッファ
53と53´がそれぞれ各ポート116に1つづつ設けられてフレームが全イン
ターフェース速度で同時に受信され、一度に1つづつ読み取られ、確認され、オ
フチップへ転送できるようにする。データが1つのポートで受信または送信でき
ると共に同時に非データフレームが他のポートで同時に受信できるように大きな
共通のデータフレームバッファ55がポート間で共有されるようにさらに設けら
れている。更に、各ポートには2本の個々の一方向ファイバが設けられているの
で、単一ポートが同時に送信および受信を行うことができる。
【0074】 例えば、ポート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がこのような制限を除去するために設けられて、両ポ
ートで本当に同時のループ初期化動作(または他の非データ応答の送信)を可能
にする。
【0075】 到来データの転送がおこなわれている場合、データフレームまたは非データフ
レームは、主ポートで受信してもよい。同時に、非データフレームは、代わりの
ポートで受信されてもよい。(ヘッダ、ペイロード、CRC、フレームの区切り
符号を有する)データフレームは、大データフレームバッファ55内に置かれ、
一方(ヘッダ、ペイロード、CRC、フレームの区切り符号を有する)非データ
フレームは、より小さな受信フレームバッファ53(または53´)内に置かれ
る。各ポート116毎に1つの受信フレームバッファ53が設けられている。そ
れら3個のフレームバッファの1つ(53、53´または55)は、利用できる
データを有する時には、受信確認論理回路595およびCRCチェッカ論理回路
596(図11参照)を使用するために選択される。
【0076】 外向データの転送が行われている場合、データフレームは、主ポートで送信さ
れる。同時に、非データフレームは、いずれかのポートで受信してもよい。デー
タペイロードは、オフチップから読み取られ、データフレームバッファ55に書
き込まれ、インターフェース転送が開始できるようになるまで記憶される。(ヘ
ッダ、CRCおよびフレーム区切り符号は、フレームがフレームバッファから読
み取られた後に加えられる。)同時に、非データフレームは、主ポートまたは代
わりのポートのいずれかで受信してもよい。フレームバッファが受信確認論理回
路595とCRCチェッカ論理回路596へのアクセスを与えられるまで、非デ
ータフレームは、受信フレームバッファ53または53´に書き込まれて保持さ
れる。
【0077】 可能な最高の性能でデータ転送を行うために、優先順位がデータフレームバッ
ファ55に与えられる。非データフレームは、データ転送が中止または完了する
時に取り扱われる。受信フレームバッファ53の1つが充填されてループのバッ
ファ―バッファ間クレジットがもはや利用できないようになると、データフレー
ムバッファ55の書き込み/読み取り動作は、中止されてバッファ−バッファ間 クレジットが再び利用できるように受信フレームバッファスペースを開放する。
到来データフレームは、この時間中データフレームバッファ55内に累積しても
よい。これは、読み取りが短時間中断した間に、新しいフレームがデータフレー
ムRAM555に書き込まれてもよいからである。インターフェースに利用でき
る外向データフレームは、この時間中に一時的に減少させてもよい。それは、書
き込みが短時間中断されていた時に、フレームがRAM555から読み取られて
もよいからである。
【0078】 図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のブロックを有してい
る。
【0079】 ブロック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に
送られる。
【0080】 出力信号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に対し受信したデータフ
レームおよび非データフレームを提供する。
【0081】 データフレームバッファマルチプレクサ52は、DATA XFER CTL
7521をビットセットしたポートからデータおよびプリバッファ受信状態マシ
ン512の出力を選択する。データフレームバッファマルチプレクサ52の出力
は、データがデータフレームバッファRAM555(図10参照)内に書き込む
ことができるように、データフレームバッファ55に対してデータ信号および状
態信号(それぞれ図10の8511と8512)を提供する。
【0082】 図8は、ファイバチャネルプリバッファ受信フレーム処理路回路51のブロッ
ク線図であって、これは、3つのフレームバッファの1つ(53、53´または
55)に入力されるようファイバチャネル1250から受信したフレームを準備
する。プリバッファ受信路ブロック51は、プリバッファ受信フレーミング状態
マシン512、プリバッファ受信フレーム長カウンタ515(およびそのマルチ
プレクサ514)、およびEOF改変論理回路513を有している。このブロッ
ク51は、ポートAおよびポートB用に2重になっている(すなわち、各ポート
毎に1つ形成されている。)それは、フレームが同時に両ポートで受信できるか
らである。
【0083】 プリバッファ受信状態マシン512は、フレームとR_RDY´が受信される
ときを判別するために入力ストリームを監視する。SOFが検出されると、ヘッ
ダ、ペイロード、およびフレームの区切り符号の各ワード毎に信号が発生される
。このプリバッファ受信フレーミング状態マシン512は、ヘッダまたはペイロ
ード中に受信された無効プリミティブの有無を、および(恐らく破壊されたEO
Fのために)最大フレーム長を侵害する転送の有無についてチェックを行う。
【0084】 プリバッファ受信フレーム長カウンタ515は、受信フレームのヘッダのR_
CTLフィールドに基づいて、受信フレームの行先となるフレームバッファの命
令、その他またはデータバッファの各領域のいずれかの(マルチプレクサ514
により選択される)最大フレーム長をフレームの開始時にロードされる。EOF
が検出される前にプリバッファ受信フレーム長カウンタがゼロになると、長さの
誤りが検出される。この機能により、フレームバッファ内の割り当てられた空間
のオーバーランの防止が支援される。
【0085】 EOF改変論理回路513は、到来フレームがデータフレームであるかどうか
を見極めるためにこの到来フレームをチェックし、そして、フレームバッファ用
のイネーブルを発生する。EOF改変論理回路513は、プリバッファ受信フレ
ーム長カウンタ515により使用される到来フレームのルーティング制御フィー
ルドを捕捉する。EOF改変論理回路513は、さらに詳細な状態情報がフレー
ムバッファを介して共通の受信路59へ送られるようにEOFフィールドを改変
もする。
【0086】 図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に提供する。
【0087】 出力信号PRE−BUFFER−RECEIVE DATA8511とPRE
−BUFFER−RECEIVE STATUS8512は、データおよび状態
情報を非データバッファ53と53´(図9参照)およびデータフレームバッフ
ァ55へ提供する。
【0088】 図9は、ファイバチャネルの受信非データフレームバッファ回路53のブロッ
ク線図である。受信非データフレームバッファ53は、受信フレームバッファ書
き込み制御回路533、受信フレームバッファ読み取り制御回路534、受信フ
レームバッファRAM535、受信フレームバッファ状態ブロック536、およ
び受信フレームバッファフレームカウンタ531を有している。受信非データフ
レームバッファ回路53は、フレームが両方のポートAとポートBで同時に受信
される可能性があるので、これら両ポートAとB用におのおの一度実施されてい
る。
【0089】 受信フレームバッファ書き込み制御ブロック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を有している。
【0090】 受信フレームバッファ読み取り制御ブロック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を有している。
【0091】 受信フレームバッファRAM535は、同期RAMを有している。この同期R
AMは、33ビット幅(32ビットデータワード+SOF/EOFフラグビット )で、304ワード長のものである。受信された非データフレームのSOF、ヘ
ッダ、ペイロード、CRCおよびEOFは、オフチップバッファ111および共
通受信路59へのアクセスが利用可能となるまで受信フレームバッファRAM5
35に書き込まれて保持される。一実施例では、内蔵の自己試験コントローラに
より、メモリの物理的なレイアウトのために特に開発されたデータパターンで受
信フレームバッファRAM535は試験することができる。
【0092】 受信バッファ状態ブロック536は、受信フレームバッファが空いているか否
か、および、もしもバッファが空いていない場合は、受信フレームバッファRA
M535の書き込みポインタおよび読み取りポインタを比較してどれだけのスペ
ースのフレームが受信フレームバッファRAM535において利用できるかを判
別する。受信バッファ状態ブロック536の出力(AVAILABLE PAC
E9545)は、フレームバッファコントローラ56により使用されて受信フレ
ームバッファRAM535が共通の受信路59へのアクセスを必要とするか否か
を判別する。この出力は、また、クレジットが利用できるか否かを判別するため
にバッファーバッファ間クレジットコントロール論理回路613(図12参照)
により使用されもする。
【0093】 受信フレームバッファフレームカウンタブロック531は、受信フレームバッ
ファRAM535における現在のフレームの数をカウントする。受信フレームバ
ッファフレームカウンタブロック531は、フレームが受信フレームバッファR
AM535に書き込まれる時にインクリメントされ、フレームが受信フレームバ
ッファRAM535から読み出される時にディクリメントされる。そのカウント
(COUNT OF FRAMES IN BUFFER9544)は、クレジ
ットが利用できるか否かを判別するためにバッファーバッファ間クレジットコン
トロール回路603により使用される。一実施例では、受信フレームバッファR
AM535に入る全ての入力(クロックを除く)は、適当な保持時間を提供する
ために遅延される。
【0094】 図10は、ファイバチャネルのデータフレームバッファ回路55のブロック線
図である。データフレームバッファ回路55は、データフレームバッファ書き込
み制御回路553、データフレームバッファ読み取り制御回路554、データフ
レームバッファRAM555、データフレームバッファ状態ブロック556、デ
ータフレームバッファフレームカウンタ551、およびデータフレーム捕捉ブロ
ック552を有している。1つのデータ転送のみが任意の与えられた時に可能で
あるので、データフレームバッファ回路55は、ポートAとポートBにより共有
される。
【0095】 データフレームバッファ書き込み制御回路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参照)を
有している。
【0096】 従って、一実施例では、データフレームバッファRAM555のデータは、フ
ァイバチャネルループ1250(図2参照)からデータフレームバッファRAM
555を介してオフチップバッファ111に送られる場合、CRC情報によって
保護されるが、もしもそのデータがファイバチャネルループ1250に伝送のた
めにデータフレームバッファRAM555にオフチップバッファ111から送ら
れていた場合には(この後者の場合、CRC情報は、そのデータがデータフレー
ムバッファRAM555を離れた後にファイバチャネルで送られるデータに加え
られる)、パリティにより保護される。
【0097】 データフレームバッファ読み取り制御ブロック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を有している。
【0098】 データフレームバッファRAM555は、同期RAMを有し、一実施例では、
内蔵の自己試験コントローラを有している。一実施例では、データフレームバッ
ファRAMは、30ビット幅(32ビットデータワード+4個のSOF/EOF フラグビットまたはパリティビット)および3、232ワード長である。(デー
タがディスクに書き込まれるべき)書き込み動作の場合、受信されたデータフレ
ームのSOF,ヘッダ、ペイロード、CRCおよびEOFは、データフレームバ
ッファRAM555に書き込まれて、オフチップバッファ111と共通の受信路
59へのアクセスが利用可能となるまで保持される。(データがディスクから読
み取られるべき)読み取り動作の場合、ペイロードは、RAM555に書き込ま
れてファイバチャネルループ1250が開かれてデータが送信できるようになる
まで保持される。一実施例では、RAMに入る全ての入力(クロックを除く)は
、適当な保持時間を提供するために遅延される。
【0099】 データフレームバッファ状態ブロック556は、データフレームバッファRA
M55の書き込みポインタおよび読み取りポインタを比較して、データフレーム
バッファが空いているか否かを判別し、もしもデータフレームバッファが空いて
いない場合は、データ/スペースにいかに多くのフレームがそのデータフレーム バッファ内で利用可能か否かを判別する。書き込み動作の場合、このデータフレ
ームバッファ状態ブロック556の出力(AVAILABLE SPACE95
61)は、フレームバッファコントローラ56により使用されてデータフレーム
バッファ55が共通の受信路59へのアクセスを必要とするかということを判別
する。該出力は、クレジットが利用可能か否かを判別するためにバッファーバッ
ファ間クレジットコントロール回路603(図12参照)によっても使用される
。(データがディスクから読み取られるべき)読み取り動作の場合、ループ制御
ブロック40は、フレームが送信可能か否かを判別するためにフレームバッファ
内のデータの量を監視する。データフレームバッファのしきい値は、ファイバチ
ャネルループ1250を調停により開くようなものでなければならない。データ
フレームバッファ保持しきい値は、同様に、発生されて全フレームが利用可能で
はないが処理中(データフレームバッファ55およびまたはオフチップバッファ
111に累積されつつある)の場合に、ループ1250を開いたままにすること
ができるようにする。
【0100】 データフレームバッファフレームカウンタブロック551は、入力信号FRA
ME_OUT9550を用いて、現在データフレームバッファRAM555内に
存在するフレームの数を数える。データフレームバッファフレームカウンタブロ
ック551は、フレームがデータフレームバッファRAM555内に書き込まれ
る時にインクリメントされ、フレームがデータフレームバッファRAM555か
ら読み取られる時にデクリメントされる。そのカウント(COUNT OF F
RAMES IN BUFFER9566)は、クレジットが利用可能か否かを
判別するためにバッファーバッファ間クレジットコントロール回路603により
使用される。 データフレーム捕捉ブロック552は、イネーブル捕捉モードが使用可能とな
る時に(ENABLE DATA WRITE DETECT9551を用いて
)受信したデータフレームを監視し、フレームヘッダの種々のフィールドを捕捉
する。これらの値(DATA CAPTURE OUTPUT9565)は、次
にマイクロプロセッサ112によって読み取られてもよい。
【0101】 また図7において、データフレームバッファ転送長カウンタ54の制御回路は
、読み取りデータがどのようにデータフレームバッファ55内へ前もって入れら
れたかを制御する2つのカウンタを有している。(ブロック54の)データフレ
ームバッファ転送長カウンタは、ファイバチャネルでの転送のためにいかに多く
のデータがオフチップバッファ111から取り出されるべきであるかを判別する
ために使用される。(ブロック54の)データフレームバッファ送信長カウンタ
は、使用されてオフチップバッファ111からいかに多くのデータが取り出され
るべきであるかを判別し、その後、一時休止してどのフレームバッファがオフチ
ップバッファ111へのアクセスをすべきかをコントローラ56が再度評価する
ようにする(次の段落において記載されるプロセス)。
【0102】 フレームバッファコントローラ56は、3つのフレームバッファ(すなわち
、データフレームバッファ55、ポートA受信非データフレームバッファ53ま
たはポートB受信非データフレームバッファ53´)のどれがオフチップバッフ
ァ111の資源に対するアクセスを許可されるべきかを決定する。ポートがルー
プ初期化状態にあって、そのポートの受信非データフレームバッファ53(すな
わち、53または53´)が空いていない場合、ループ初期化フレームは、最高
の優先順位を与えられるので、ループの初期化は、進行することができる。デー
タ転送は、次に高い優先順位を与えられ、受信非データフレームバッファ53が
いっぱいにならない限り続行する。受信非データフレームバッファ53の1つが
もはやフレームのための余地を有しない場合、その特定の受信非データフレーム
バッファ53は、一部のフレームを空にするためにオフチップバッファ111へ
のアクセスを許可され、データ転送が再度行われる。
【0103】 オフチップバッファの資源を必要とする第1のフレームバッファ(55、53
または53´)は、オフチップバッファ111へのアクセスを許可される。両ポ
ートが同時にフレームを受信する場合、ポートAは、最初にアクセスを認められ
る。フレームバッファコントロールブロック56がオフチップバッファ111へ
のアクセスをフレームバッファにひとたび与えると、それは、代わりのポートの
受信非データフレームバッファ53がいっぱいにならなければ、または初期化が
開始されなければ、またはデータ転送が開始されなければ、そのフレームバッフ
ァに対し情報を提供し続ける。与えられたポートのフレームは、オフチップバッ
ファ111に対してそのポートへのフレームの配送順に転送される。
【0104】 フレームバッファコントローラ56とオフチップバッファ111との間のデー
タ転送は、ファイバチャネルからのデータ速度がオフチップバッファ111に対
して維持できない場合には、バッファ制御インターフェース論理回路58によっ
て停止してもよい。 図11は、共通の受信路回路59のブロック線図であり、この受信路回路59
は、フレームバッファの1つ(55、53または53´)から来るフレームを取
ってオフチップバッファ111のためにこのフレームを準備する。この受信路回
路59は、SOFを認識し、確認のチェックのため受信したヘッダから情報を捕
捉する。そのCRCはチェックされ、そして、フレームは、オフチップバッファ
111の該当するバッファ領域へ送られる。
【0105】 受信バッファデコードブロック591は、(入力されたデータ信号FRM B
UFFER DATA9570とイネーブル信号VAL_READ9571から
得られた)フレームの開始および終了の区切り符号を復号化し、フレームの有効
性のチェックのために共通の受信路回路59によって使用される信号を発生する
。EOF区切り符号は、受信路ブロック用に変換される組み込み式の誤り状態(
フレーム長誤りまたは実行時のディスパリティエラー)を有してもよい。
【0106】 受信フレーミング状態マシン592は、フレームの境界を判別するために入力
ストリームを監視する。SOFが検出されると、信号が発せられてそのヘッダの
各ワードを捕捉可能にし、(5991、5992および5993と共に)CRC
チェッカ596、ヘッダ確認制御回路595およびバッファ制御回路598をイ
ネーブルする。受信フレーミング状態マシン592は、ヘッダ中に受信された無
効のプリミティブをチェックし、許容された最大フレーム長を破る転送があるか
どうかをチェックする。共通の受信路59は、一時的に停止状態にすることがで
きるので、受信フレーミング状態マシン592の状態出力は、フレーム捕捉およ
び確認ブロックを適切にイネーブル状態にするための活性化および不活性化する
パルスである。
【0107】 受信フレーミング長カウンタ(マルチプレクサ5931およびカウンタ593
2)は、受信されたフレームのヘッダからのR_CTLフィールドに基づいて、
(信号MAX SIZE INPUTS9572からの)命令、その他、または
データフレームのいずれかの最大フレーム長を、フレームの開始時にロードされ
る。EOFが検出される前に受信フレーミング長カウンタがゼロになると、フレ
ーム長エラーが検出され、フレームは、無効と記録される。この機能は、そのフ
レームのためのオフチップバッファ111内の割り当て空間のオーバーランの防
止を支援する。
【0108】 受信フレームヘッダ捕捉ブロック594は、受信されたヘッダの種々のフィー
ルドを捕捉するために受信フレーミング状態マシン592からの信号を使用する
。 フレームが受信されると、CRCチェッカブロック596は、そのフレームの
終わりにあるCRCをチェックする。(CRC STATUS9596により表
示される)CRCエラーが検出されると、そのフレームは無効と記録される。C
RCチェッカブロック596は、受信フレーミング状態マシン592によりイネ
ーブルされる。そのヘッダフィールド、ペイロードフィールド、およびCRCワ
ードの内容は、処理される。
【0109】 III.オンチップメモリにおけるデータの完全性のためのファイバチャネル
CRCの利用 本発明の1つの態様によれば、ファイバチャネルフレームを一時的に記憶する
フレームバッファにより、フレームの最大のフレームチャネルインターフェース
デ−タ転送速度で受信することが可能となる。フレームは、次に、より遅いさら
に管理可能な速度でオフチップ記憶装置に転送してもよい。パリティ、CRCま
たは他の冗長機能のような種々の機構は、任意に使用されてデータを保護しなが
らこのデータをフレームバッファに記憶する。
【0110】 一実施例では、データの完全性のチェックは、フレームバッファを介して受信
されたファイバチャネル周期冗長符号(「CRC」)をデータと共に通すことに
よって改善され(すなわち、CRCは、フレームと共にフレームバッファ内へ記
憶され、それから後で、フレームと共に読み出される)、RAMを更に広くする
余分のパリティビットは、除去してもよい。(種々の実施例では、フレームバッ
ファは、データフレームバッファ55および/または受信非データフレームバッ ファ53または53´である)。データがRAMから読み出された後、このデー
タがオフチップに(すなわち、オフチップバッファ111に)転送される前に、
そのCRCは、チェックされる。到来データ路の余分のパリティビットもインタ
ーフェースからフレームバッファの到来側へおよびフレームバッファの外向側か
らCRCチェッカ596の入力へ除去することもできる。
【0111】 オフチップRAMへのインターフェースは、一度に1つの転送のみを扱い、オ
ンチップRAMよりも遅くファイバチャネル転送速度よりも遅いので、共通受信
路論理回路59は、非データフレームバッファ53、53´とデータフレームバ
ッファ55との間で共有することができる。この場合、1つのCRCチェッカ5
96のみが必要である。その理由は、まさにフレームがオフチップに行く(すな
わち、オンチップバッファ53、53´または55からオフチップバッファ11
1へ転送される)前にCRCがチェックされるからである。これとは対照的に、
CRCがフレームと共にフレームバッファ内に記憶されず、オフチップバッファ
111への途上でチェックされなかった場合(「オンチップフレームバッファを
介してCRCを通過させる」と称する)、2つのCRCチェッカが必要となろう
(すなわち、プリバッファ通路51と51´内に配置される必要があろう)。
【0112】 一実施例では、この機構は、同様に、データがより遅いオフチップバッファ1
11から転送され、一時的にフレームバッファに記憶され、そして、ファイバチ
ャネルインターフェースで最大のデータ転送速度で送信される時には、反対向き
で使用される。 フレームが受信されると、R_CTLフィールドは、受信されるフレームの種
類を判別するためにルーチング制御デコードブロック5933により復号化され
る。そのR_CTLフィールドは、オフチップバッファ111の該当する領域に
フレームを送り、および、どの有効チェックがそのフレームについて成されるべ
きかを判別するために使用される。
【0113】 ヘッダ確認論理回路595は、受信フレームのヘッダの内容を解析する。その
フレームのR_CTLフィールドに基づいて、種々のフィールドが確認される。
もしも有効チェックの内のいずれかが非データフレームで失敗すると、このフレ
ームは、無効と考えられる。データ書き込み転送が行われている時に、有効チェ
ックがデータフレームで失敗すると、マイクロプロセッサ112は、それを知ら
される。 受信フレーム状態ブロック697は、受信したフレームについての情報を集め
て、無効なデータフレームがオフチップに行くのを阻止し、信号FRAME S
TATUS9580を発生する。もしもフレームが有効でない場合、このフレー
ムは(データ転送が行われない場合)本質的に無視される。
【0114】 命令カウンタ5992は、オフチップバッファ111の命令領域にいかに多く
の命令フレームが含まれているかを追跡するために使用される。有効な命令が受
信されると、この命令カウンタ5992はインクリメントされる。マイクロプロ
セッサ112が命令で終了すると、マイクロプロセッサ112は(マイクロプロ
セッサ112からの信号MPU DECREMENTS9574を使用して)命
令カウンタ5992をディクリメントしなければならない。ブロック5992は
、インターラプト要求CMD RCVD IRQ9578を出力する。
【0115】 「他」スペースカウンタ5991は、バッファーバッファ間クレジットを放つ
ために(マイクロプロセッサ112からの信号MPU INCREMENTS9
575を使用して)オフチップバッファ112の「他」領域にいかに多くのスペ
ースが残っているかを追跡するために使用される。この「他」スペースカウンタ
5991は、命令またはデータフレームのいずれでもない有効なフレームが受信
されると、または、オフチップバッファ111がいっぱいになっている時に命令
フレームが受信されると、ディクリメントされる。マイクロプロセッサ112が
フレームで終了すると、マイクロプロセッサ112は、他のフレームのためのス
ペースが存在するということを示すために「他」スペースカウンタ5991をイ
ンクリメントしなければならない。「他」スペースカウンタ5991は、(信号
OTHER COUNT9576とインターラプト要求OTHER RCVD
IRQ9577)オフチップバッファ111の「他」領域に適するフレームの数
を示す。
【0116】 フレームが受信されると、(他カウンタ5991をディクリメントし、命令カ
ウンタ5992をインクリメントするための信号INCR/DECR9573を 発生する)受信フレームバッファ制御回路598と最近の第4世代論理回路59
93は、信号(CONTROLS FOR OFF―CHIP BUFFER7
589)をオフチップバッファ111の論理回路に発生してフレームを適切な領
域に送る。 図12は、ファイバチャネル転送制御回路60のブロック線図であり、このフ
ァイバチャネル転送制御回路60は、その論理回路の送受信部分のための制御論
理回路を有している。ファイバチャネル転送制御回路60は、転送制御回路およ
びバッファーバッファ間クレジット制御回路603を有している。
【0117】 データ利用可能/スペースカウンタブロック604は、動作がデータ書き込み かデータ読み取りかに依存して、いかに多くのオフチップスペースまたはデータ
が利用可能であるかの表示(DATA AVAILABLE6019)を提供す
る。データ書き込み転送時には、データ利用可能/スペースカウンタブロック6 04は、BB_Creditが発生し得るように、オフチップバッファ111の
データ部分において(フレームの点で)いかに多くのスペースが利用可能かを示
すために使用される。データ読み取り転送時には、データ利用可能/スペースカ ウンタブロック604は、いかに多くのデータフレームがオフチップバッファ1
11で利用可能かを示すために使用される。バッファポインタどうしの差は、フ
レーム当たりのワードの数を示すマイクロプロセッサがロード可能な(すなわち
、プログラム可能な)値と比較される。
【0118】 バッファーバッファ間クレジット制御回路603は、フレームの送信を可能に
するために接続ポートにバッファクレジット(信号PORT BB_CREDI
T AVAILABLE TO TRANSMIT R_RDY6017)を発
生する。このクレジットは、R_RDYを送ることによって発生される。任意の
ポートに与えられるクレジットの量は、次により決定される: 1)どれだけ多くの受信スペースがディスクドライブ100用のオフチップバ
ッファ111で利用できるか 2)どれだけ多くの受信スペースがディスクドライブ100用の受信非データ
フレームバッファ53とデータフレームバッファ55で利用できるか 3)クレジットが与えられると、ディスクドライブ100が開かれるポートが
その利用可能なスペースを占有することができるフレームを、もしかすると、送
ることができるか否か。
【0119】 バッファーバッファ間クレジットは、ポート単位で決定される。バッファーバ
ッファ間クレジット制御ブロック603は、いつクレジットが利用可能かを示す
ためにループポートA/B開放制御ブロック42と42´(図6参照)に対し信 号を発生する。ループ制御ブロック40は、次に、R_RDYの送信を制御する
【0120】 転送制御回路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)を
提供する。
【0121】 単一フレーム送信路回路70 図13は、ファイバチャネルの単一フレーム送信路回路70のブロック線図で
ある。本発明の一実施例は、ループ初期化および応答のための専用の送信フレー
ムバッファ73を有するファイバチャネルループインターフェース回路を提供す
る。このような専用の送信フレームバッファ73を有することにより、2重ポー
トノードの一方のポートが初期化または応答フレームを送信している時、他方の
ポートは、データフレームを送信または受信(すなわち、「通信」)をすること
ができる。もしもループが同期喪失または他の問題を経験すると、ファイバチャ
ネルループ1250は、再度初期化されなければならず、また、専用の送信フレ
ームバッファ73により、この機能は、2重ポートノードインターフェースの他
のポートに接続された他のループで進行している可能性のあるデータ転送または
他の機能を破壊せずに発生することができる。両方のポートは、同時に、同様に
よく初期化することができる。更に、この専用の送信フレームバッファ73によ
り、1つのポートから応答、受信承認または他の非データ転送を送りながら、同
時に他のポートを使用することができる。従って、マイクロプロセッサ112に
関連して、単一フレームの送信路回路70は、ノードインターフェース1220
に対してループ初期化および応答機能を提供するように動作する。送信フレーム
バッファ73は、入力MPU LOADABLE7002(マイクロプロセッサ
112からのデータ)RECEIVE PATH DATA7003およびRE
CEIVE PATH CONTROLS7004(受信路50からのフレーム
)を受け入れる。送信フレームバッファ73は、出力MPU READ DAT
A3095とブロック74と76を介するXMT_DEPTH DATA700
7(送信されるべきCRCを含む外向フレーム)とを発生する。
【0122】 単一フレーム送信路回路70は、単一フレーム送信フレームバッファ73に存
在するフレームを送信するためのループ制御回路40からの要求を受け入れる。
この単一フレーム送信路回路70は、しかるべきフレームの区切り符号を発生し
、フレームバッファからそのヘッダおよペイロードを読み取り、CRC発生器7
6でしかるべきCRCを発生する。この単一フレーム送信路回路70は、現在の
充填ワードを送信するための信号をループポート回路20に発生し、およびフレ
ームの終わり(「EOF」)がいつ送信されるかを示すために、現在の実行時の
ディスパリティに基づいてEOFの第2の文字をエンコーダに発生させることが
できる。
【0123】 単一フレーム送信状態マシン72は、フレームの送信のためにループ制御回路
40から(信号SEND_FRAME7001を介して)要求を受ける。フレー
ムが送信されると、この信号フレーム送信状態マシン72は、しかるべき時に、
フレームの区切り符号、ヘッダおよびペイロードが転送できるようにするために
、送信マルチプレクサ74に送られたフレームの各部分毎の選択物(すなわち、
選択信号)を提供する。この単一フレーム送信状態マシン72は、CRC発生器
76に対してイネーブルをも発生する。EOF信号をいつ送信すべきかを判別す
るために8B/10Bエンコーダ27(図4参照)に対し制御も行われる。フレ ームの送信が完了すると、信号が発生され、そして、ループ制御回路40が動作
を続行することができるようにこのループ制御回路40にその信号が送り返され
る。
【0124】 単一フレーム送信フレーム長カウンタ71は、最終のCRCが適当な時に出力
できるようにするために(このCRCは、一度に一語づつ繰りかえし計算され、
フレームのデータ部分が出力されるに従って累積される)、フレームの長さはい
か程であるかをそのハードウエァが判別できるようにするために使用される。単
一フレーム送信フレーム長カウンタ71は、送信フレーム長レジスタからそのフ
レームの開始時にロードされ、イネーブルされ、その間、フレームが送信される
。単一フレーム送信フレーム長カウンタ71は、単一フレーム送信状態マシン7
2によりイネーブルされて、いつCRC発生器76をイネーブルすべきかを決定
するために状態(すなわち、状態情報)を単一フレーム送信状態マシン72に送
り返す。
【0125】 単一フレーム送信マルチプレクサ74の出力は、EOFの前に含まれるCRC
残余ワードを判別するためのCRC発生器76への入力であり、EOFは、マル
チプレクサ79を介してループポート回路20(図3参照)に送られる。単一フ
レーム送信状態マシン72は、このマルチプレクサ74が適当な時に、フレーム
の区切り符号、ヘッダおよびペイロードを転送できるようにするための選択信号
を発生する。
【0126】 単一送信充填文字発生ブロック76は、いつK文字、現在の充填ワード、およ
びEOFの区切り符号が、単一フレーム送信回路70から送信されるかを決定す
る。出力信号XMIT CONTROLS7010は、単一フレーム送信路回路
70にどのループがアクセスするかを判別する送信路マルチプレクサ79に送ら
れる。
【0127】 図14は、ファイバチャネル送信フレームバッファ73のブロック線図である
。この実施例では、単一フレーム送信フレームバッファ73は、単一フレームバ
ッファ書き込み制御回路733、単一フレームバッファ読み取り制御回路734
、および単一フレーム送信フレームバッファRAM735を有する。単一フレー
ム送信フレームバッファ73は、受信されたループ初期化フレーム、外向ループ
初期化フレームおよび外向単一フレームを記憶するために使用される。一実施例
では、送信バッファRAM735の40ワードがポートA用に保存され、および
40ワードがポートB用に保存される。
【0128】 単一フレームバッファ書き込み制御ブロック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ビット幅に変換され、そして、フレームの開始アドレスは、そのフレームが関
連するポートに基づいて決定される。
【0129】 マイクロプロセッサ112は、また、ループ初期化フレームを変形したり、ま
たは外向フレームを設定するために、単一フレーム送信フレームバッファ73に
書き込んでも良い。
【0130】 単一フレーム送信バッファ読み取り制御ブロック734は、単一フレーム送信
バッファRAM735用の読み取りアドレス(RPTR1414)を発生し、こ
のRAM735からのデータ(RDAT1413)を捕捉する。入力は、SEN
D FRAME1407とXMIT STATUS1408を有する。単一フレ
ーム状態マシン72が送信のためにフレームをイネーブルする場合、単一フレー
ム送信バッファRAM735の読み取りは、イネーブルされる(SINGLE_
FRAME TRANSMIT BUFFER DATA1415を出力する)
。マイクロプロセッサ112は、また、受信されたループ初期化フレームにアク
セスするために、このフレームバッファを読み取っても良い。送信フレームバッ
ファRAM735からのデータは、レジスタ内へ捕捉され、パリティがチェック
される(出力PARITY ERROR1416を発生する)。
【0131】 単一フレーム送信バッファRAM735は、同期RAMと、一実施例では、内
蔵の自己試験コントローラを有している。この同期RAMは、36ビット幅(3
2ビットデータワード+パリティの4ビット)で、長さが80個の場所を有する
。フレームのヘッダおよびペイロードは、マイクロプロセッサ112がファイバ
チャネルループ1250を検査するため、またはこのファイバチャネルループ1
250での送信のため、送信フレームバッファRAM735に配置されて保持さ
れる。一実施例では、同期RAMに入る全ての入力(クロックを除く)は、適当
な保持時間を提供するために遅延される。
【0132】 図15は、データ送信路回路80のブロック線図であって、このデータ送信回
路80は、ループ制御論理回路40からの要求を受けてフレームを送信する。こ
のデータ送信路回路80は、適当なフレーム区切り符号を発生し、マイクロプロ
セッサは、ロード可能なレジスタからヘッダを形成し、そして、CRCを発生す
る。データ送信路回路80は、現在の充填ワードを送信するため、およびEOF
がいつ送信されるかを示すため、第2のループポート回路20に信号を発生して
、この現在実行時のディスパリティに基づいてEOFの第2の文字をエンコーダ
が発生できるようにする。
【0133】 データ送信フレーミング状態マシン81は、フレームを送信するためにループ
制御論理回路40からの要求(信号SEND−FRAME8001)を受ける。
フレームが送信されると、このデータ送信フレーミング状態マシン81は、適当
な時に、フレームの区切り符号、ヘッダおよびペイロードが転送できるようにす
るために、送信マルチプレクサ86へフレームの各部分毎の選択信号を提供する
。データ送信フレーミング状態マシン81は、CRC発生器87にイネーブルを
発生もする。フレームの送信が完了すると、ループ制御論理回路40がその動作
を継続できるように信号がループ制御論理回路40へと逆に発生される。
【0134】 データ送信フレーム長カウンタ82の使用により、適当な時にCRCが発生で
きるように、そのハードウェアは、フレームの長さがいか程であるかを決定する
ことができる。データ送信フレーム長カウンタ82は、送信フレーム長レジスタ
からフレームの開始時にロードされ、イネーブルされ、その間、フレームが送信
される。データ送信フレーム長カウンタ82は、送信フレーミング状態マシン8
1によりイネーブルされ、そして、CRC発生器87をいつイネーブルすべきか
を決定するために、データ送信フレーミング状態マシン81にその状態を送り返
す。
【0135】 データフレーム送信出力マルチプレクサ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)のプリミティブを使
用すべきかを決定する。
【0136】 データフレーム送信出力マルチプレクサ86の出力は、EOFの前に設けられ
たCRCの残余ワードを判別するために、CRC発生器87を介して転送される
。CRC発生器87用のイネーブルは、データ送信フレーミング状態マシン81
から来る。EOF信号の送信時を決定するための制御は、また、8B/10Bエ ンコーダ27(図4参照)に与えられもする。CRC発生器87の出力は、XM
T_DPTH DATA8008(送信されるべきCRCを有する外向フレーム
)である。
【0137】 データ転送充填文字ブロック85は、K文字、現在の充填ワードおよびEOF
の区切り符号がデータ送信路回路80から送信される時を決定する。出力信号X
MIT OUTPUTS8010は、データ送信路回路80に対しどのループが
アクセスするかを決定する送信路マルチプレクサ79に送られる。
【0138】 送信路マルチプレクサ79(図3参照)の出力は、ループポート回路20内の
ポートAとポートBの調停ループ論理回路26への入力である。単一フレーム路
70とデータ路80からのデータ信号および制御信号は、適正なポートへと送信
路マルチプレクサ79により選択される。送信路マルチプレクサ79は、また、
ポートに対してR_RDYプリミティブを多重化もする。これにより両ポートは
、同時に伝送を行うことができる。
【0139】 IV.調停ループのオーバーヘッドを減少するための方法および装置 ファイバチャネルの調停ループ設計1200においては、ループポート116
のノードインターフェース1220は、ファイバチャネルループ1250へのア
クセスについて調停をしなければならない。優先順位装置が、どのポートがファ
イバチャネルループ1250の制御を得るかを決定するために使用され、「公正
」方法がポートの餓死(starved)がないことを保証するために使用され
る。目標の装置として、ディスクドライブ100は、通常、CPU1202より
も低い優先順位を与えられ、その結果、ディスクドライブ100は、より高い優
先順位の装置がそれぞれのアクセスを完了するまで、調停に勝つために待たなけ
ればならなくなる可能性がある。ループポート116のノードインターフェース
1220は、ファイバチャネルループ1250の制御を得ると、不必要な調停サ
イクルを回避するために、ファイバチャネルループ1250を閉じる前にできる
だけ多くのフレームを送信する。しかし、データがもはや利用できない時は、ル
ープポート116のノードインターフェース1220は、他のポートがファイバ
チャネルループ1250にアクセスできるようにファイバチャネルループ125
0を閉じる。これは、特定の他のコントローラアーキテクチャーで使用される方
法である。本発明は、ポートへのデータの利用可能性に基づいて、ループ125
0を閉じるべきか否かの決定についてのルールを変更することによって、ループ
性能を高めるための機構を提供する。かくして、ループの全体のオーバーヘッド
は減少される。
【0140】 特定の他のコントローラアーキテクチャーでは、フレームの終わりの区切り符
号が送信されると、ポートは、他のフレームが利用可能か否かを判別する。もし
もデータがもはや得られない場合(たとえば、もしも全フレームが伝送に利用で
きない場合)、ファイバチャネルループ1250は閉じられる。データは、まも
なく再び後で利用可能となる可能性があるので、ポートは、再び後で調停を行っ
て、転送を続行する前に調停に勝たなければならない。もしもこのことが、転送
の最後のフレームが利用可能になった時に生じると、転送の完了は遅延される。
これにより、次の命令が処理できる前にある遅延が生じる可能性がある。
【0141】 本発明は、データがまもなくポートに利用可能となる場合に、ファイバチャネ
ルループ1250がポートによって開放されたままに保持できるようにするコン
トローラアーキテクチャー設計のための機構を提供する。これにより、外向デー
タの転送中にループポート116のノードインターフェース1220が調停を行
う必要回数が減少され、かくして、転送をより早く完了させることができる。一
実施例では、ファイバチャネルループ1250は、次の条件の両方が成り立つ時
、すなわち、 ―少なくともXフレームがオフチップで利用可能であり、および ―データの少なくともYワードがデータフレームバッファ55で利用可能であ
るとき、(ポートがそのループの制御を維持するということを正当化するために
)十分な更なるデータがポートに利用可能であることを予期して、ファイバチャ
ネルループ1250は、開いたままに保持される。
【0142】 一前記実施例では、X(ファイバチャネルループ1250を開いたままに保持
するためにオフチップバッファ111で利用可能となる必要フレームの数を表す
)の値と、Y(ファイバチャネルループ1250を開いたままに保持するために
オンチップバッファ119で利用可能となる必要ワードの数を表す)値は、(例
えば、マイクロプロセッサ112を介してファームウェアコードにより)おのお
の別々にプログラム可能である。他の実施例では、所定量のデータ(必ずしもあ
る数のフレームとして特定されるものではない)がオフチップバッファ111で
利用可能である時(一前記実施例では、オフチップバッファ111で利用可能で
あることを要求される所定のデータ量がプログラム可能である時)、ファイバチ
ャネルループ1250は、開いたまま保持される。他の実施例では、所定量のデ
ータ(必ずしもある数のワードとして特定されるものではない)がオンチップバ
ッファ119で利用可能である時(一前記実施例では、オンチップバッファ11
9で利用可能であることを要求される所定のデータ量がプログラム可能である時
)、ファイバチャネルループ1250は、開いたまま保持される。一実施例では
、ファイバチャネルループ1250は、所定量のデータが利用可能である場合(
少なくとも半分のフレームがオンチップで、少なくとも一つのフレームがオフチ
ップで利用可能である場合)、ファイバチャネルループ1250は、開いたまま
保持されるが、フレームの転送は、全フレームがオンチップで利用可能になるま
では開始しない。
【0143】 例えば、一実施例では、オンチップデータフレームバッファ55は、少なくと
もデータの6フレーム(すなわち、2112バイトの最大フレームサイズの6フ
レーム)を保持するに充分な大きさである。送信されるデータはまず、(例えば
ディスク盤134から)オフチップバッファ111に移動され、そして次に、オ
ンチップデータフレームバッファ55内へ移動される。一般的には、データは、
データフレームバッファ55から1秒間当たり約106メガバイトまでの速度で
転送することができるが、一実施例では,オフチップバッファ111からオンチ
ップフレームバッファ55への転送は、より遅い速度で生じる。もしも全フレー
ムよりも少ないデータが既にオンチップデータフレームバッファ55に移動され
ている場合には、これらのデータが転送のために必要とされる前に、このフレー
ムの最後の部分がオンチップデータフレームバッファ55に移動される限り、フ
レームの転送を開始して、1秒間当たり(約)106メガバイトの全ファイバチ
ャネル速度で、全フレームの転送を完了することがなおできるかもしれない。
【0144】 従って、本発明の一実施例によれば、データフレームの少なくとも半分がオン
チップデータフレームバッファ55に含まれ、および、データの少なくとも1フ
レームがオフチップバッファ111に含まれている場合には、ファイバチャネル
ループ1250は、開いたままに保持される。この一前記実施例では、(「ルー
プを開放状態に保持する」ために)ファイバチャネルループ1250の制御を維
持するに必要なこのデータ量は、オンチップバッファ55のデータの約1000
バイト(すなわち、2、112バイトフレームの半分)と、オフチップバッファ
111のデータの約2000バイト(すなわち、一つの2、112バイトフレー
ム)とであり、両方の量は、マイクロプロセッサ112により設定されるプログ
ラム可能な値である。一実施例では、今記載したように、所定のデータ量が利用
可能である場合に、ファイバチャネルループ1250は、開放したままに保持さ
れるが、フレームの転送は、全フレームがオンチップで利用可能となった後での
み開始される。一実施例では、CFW(現在充填ワード)信号は、全フレームが
オンチップにあって、このフレームの送信が開始できるようになるまで、ファイ
バチャネルループ1250で送信される。
【0145】 転送に利用可能なフレームの数のカウントは、本発明の一実施例のオフチップ
バッファ111におけるコントローラにより発生される。ファームウェアプログ
ラム可能なカウントX―フレーム(ループを開放状態に維持するためにオフチッ
プバッファ111で必要とされるフレームの数)は、データフレームバッファへ
の転送にデータが利用可能か否かを判別するために、転送に利用可能なフレーム
の数のカウントと比較される。データフレームバッファは、オフチップのより遅
いメモリからのデータを一時的に記憶するために使用されるオンチップRAMで
あるので、データは、ファイバチャネルインターフェースの最高速度で送信する
ことができる。ファイバチャネルループ1250を開いたままに保持するための
充分なデータが、データフレームバッファに既に存在するか否かを判別するため
に、データフレームバッファ内で利用できるデータ量をファームウェアのプログ
ラム可能なカウント、すなわち、Yワード(このファイバチャネルループを開い
たままに保持するためにオンチップバッファ55で必要とされるワードの数)と
比較する別の比較器が使用される。XとYの値は、種々のオフチップランダムア
クセスメモリ(「RAM」)ソリューションと転送速度で、この論理回路が使用
可能となるようにファームウェアがプログラム可能である。
【0146】 本発明の一つのゴールは、ファイバチャネルループ1250を開いたままに保
持して、データがまもなくポート116に利用可能となる時に、余分な調停サイ
クルを回避することである。もしもデータが利用可能となるのを待つことが延長
された時間期間の間(例えば、ヘッド切り替えを行うに必要な時間の間)である
場合には、ファイバチャネルループ1250は、データが利用可能となるのを待
ちながら開いたままにしてはならない。それは、ファイバチャネルループ125
0の他のポートが転送を行うのを防止することになるからである。
【0147】 (結論) ループ初期化および応答のための専用の送信フレームバッファ(73)を有す
るファイバチャンネルインターフェース回路(1220)が記載された。このよ
うな専用の送信フレームバッファ(73)を有することにより、2重ポートノー
ドの1つのポート(1116)が初期化フレームまたは応答フレームを送信して
いるとき他のポート(116)は、データフレームを送信または受信することが
できる。専用の受信バッファ(53と55)が同様に2ポートノード(1220
)の各ポート(116)ごとに設けられている。フレームと共にファイバチャン
ネル(1250)から受信された周期冗長符号は、3つのフレームバッファ(5
3,53‘または55)の1つに記憶される。ループ(1250)の制御のため
の調停にかかる全時間量を減少させるために、(「データのプログラム可能量」
と呼ばれる)プログラミングによって任意に決定される最小のデータ量が伝送に
利用可能である限り、ループ(1250)の制御は、維持される(すなわち、ル
ープ接続は、開放状態に保持される)。
【0148】 一実施例では、本発明は、通信チャンネル装置(1200)を提供する。この
通信チャンネル装置(1200)は、第1のチャンネルノード(1220)を有
し、この中に第1のポート(116)と第2のポート(116)とを有する。各
ポート(116)は、ファイバチャンネルの調停ループ通信チャンネル(125
0)を支持する。この通信チャンネル装置(1200)は、また、前記調停ルー
プ通信チャンネル(1250)からフレームを受信するために前記第1のチャン
ネルノード(1220)内に配置された専用のオンチップフレームバッファ(1
19)をも有する。
【0149】 一実施例では、前記専用のオンチップフレームバッファ(119)は、構成要
素として、前記第1のポート(116)から到来非データフレームを受信するた
めに前記第1のポート(116)に作動接続される第1の到来非データバッファ
(53)と、前記第2のポート(116)から到来非データフレームを受信する
ために前記第2のポート(116)に作動接続される第2の到来非データバッフ
ァ(53’)とを有する。一前記実施例は、更に、オフチップバッファ(111
)を有し、そこで、受信された非データフレームがまず前記第1の到来非データ
フレームバッファ(53)へ受信され、次にこの第1の到来非データフレームバ
ッファ(53)から前記オフチップバッファ(111)へ転送される。
【0150】 他の実施例では、前記専用のオンチップフレームバッファは(119)、さら
に、構成要素として、前記第1のポート(116)と前記第2のポート(116
)からの到来データを受信するために、前記第1のポート(116)と前記第2
のポート(116)の両方に作動接続されるデータフレームバッファ(55)を
有する。一前記実施例は、更に、前記データフレームバッファ(55)から転送
される到来データフレームを受信するとともに前記オフチップバッファ(111
)から外向データフレーム(通信チャンネルへ送られるディスク面からのデータ
フレーム)を前記データフレームバッファ(55)へ移動するために、前記デー
タフレームバッファ(55)に作動接続されるオフチップバッファ(111)を
有する。
【0151】 更に他の実施例では、前記専用のオンチップフレームバッファ(119)は、
構成要素として、前記第1のポートから到来非データフレームを受信するために
前記第1のポート(116)に作動接続される第1の到来非データバッファ(5
3)と、前記第2のポート(116)から到来非データフレームを受信するため
に前記第2のポート(116)に作動接続される第2の到来非データバッファ(
53‘)と、前記第1のポート(116)からの到来データフレームを受信する
ために前記第1のポート(116)に作動接続されるデータフレームバッファ(
55)とを有する。一前記実施例は、更に、前記データフレームバッファ(55
)から転送された到来データフレームを受信するとともに前記オフチップバッフ
ァ(111)から外向データフレーム(通信チャンネル(125)へ送られるデ
ィスク面(134)からのデータフレーム)を前記データフレームバッファ(5
5)へ移動するために、前記データフレームバッファ(55)に作動接続される
オフチップバッファ(111)を有する。
【0152】 一部実施例では、この通信チャンネル装置(1200)は、更に、前記第1の
チャンネルノード(1220)に作動接続される磁気ディスク記憶ドライブ(1
250)と、第2のチャンネルノード(1220)を有するコンピュータ装置(
1202)とを有し、前記第2のチャンネルノード(1220)は、前記ファイ
バチャンネルの調停ループ通信チャンネル(1250)を介して前記第1のチャ
ンネルノード(1220)と前記第2のチャンネルノード(1220)の間でデ
ータを転送するために、ファイバチャンネルループ(1250)において前記第
1チャンネルノード(1220)に作動接続される。
【0153】 本発明の他の態様は、回転可能なディスク(134)と、このディスク(13
4)に対し変換関係にあるトランスジューサ(150)と、第1のポート(11
6)と第2のポート(116)とを備えた第1のチャンネルノード(1220)
とを有し、各ポート(116)が、ファイバチャンネルの調停ループ通信チャン
ネル(1250)を支持するようにしたディスクドライブ(100)を提供する
。前記第1のチャンネルノード(1220)は、前記トランスジューサ(150
)に作動接続される。ディスクドライブ(100)は、また、前記調停ループ通
信チャンネル(1250)からフレームを受信するために前記チャンネルノード
(1220)内に配置された専用のオンチップフレームバッファ(119)を有
する。一前記実施例では、前記専用のオンチップフレームバッファ(119)は
、構成要素として、前記第1のポート(116)から到来非データフレームを受
信するために前記第1のポート(116)に作動接続される第1の到来非データ
バッファ(53)と、前記第2のポート(116)から到来非データフレームを
受信するために前記第2のポート(116)に作動接続される第2の到来非デー
タバッファ(53’)とを有する。一前記実施例では、前記ディスクドライブ(
100)は、更に、オフチップバッファ(111)を有し、そこで、受信された
非データフレームがまず前記第1の到来非データフレームバッファ(53)へ受
信され、次に、この第1の到来非データフレームバッファ(53)から前記オフ
チップバッファ(111)へ転送される。
【0154】 本発明のさらに他の態様は、通信チャンネル方法を提供する。この方法は、 (a)第1のチャンネルノード(1220)の第1のポート(116)と第2
のポート(116)のおのおのでファイバチャンネルの調停ループ通信チャンネ
ル(150)を支持するステップと、 (b)前記第1のチャンネルノード(1220)に専用のフレームバッファ(
119)を形成するステップと、 (c)この専用のフレームバッファ(119)にデータフレームと非データフ
レームを受信するステップと、 (d)前記専用のフレームバッファ(119)からフレームを送信するステッ
プとを有する。
【0155】 この方法の一実施例では、前記形成するステップ(b)は、更に、 (b)(i)前記第1のポート(116)に作動接続される第1の到来非デー
タバッファ(53)と、前記第2のポート(116)に作動接続される第2の到
来非データバッファ(53’)とを形成するステップを有し、 前記受信するステップ(c)は、更に、 (c)(i)前記第1のポート(116)から到来非データフレームを前記第
1の到来非データバッファ(53)へ受信するステップと、 (c)(ii)前記第2のポート(116)から到来非データフレームを前記
第2の到来非データバッファ(53’)へ受信するステップとを有する。
【0156】 この方法の一前記実施例は、更に、(e)前記第1のチャンネルノード(12
20)に作動接続されるオフチップバッファ(111)を形成するステップを有
し、前記受信するステップ(c)は、更に、 (c)(iii)前記非データフレームバッファ(53)から前記オフチップ
バッファ(111)に前記受信した非データフレームを転送するステップを有す
る。
【0157】 他の一実施例では、前記形成するステップ(b)は、更に、 (b)(ii)前記第1のポート(116)に作動接続される第1の到来非デ
ータバッファ(53)と、前記第2のポート(116)に作動接続される第2の
到来非データバッファ(53’)を形成するステップと、前記第1のポート(1
16)と前記第2のポート(116)の両方に作動接続されるデータフレームバ
ッファ(55)を形成するステップとを有し、 前記受信するステップ(c)は、更に、 (c)(iv)前記第1のポート(116)から到来データフレームを前記デ
ータフレームバッファ(55)へ受信するステップを有する。
【0158】 この方法の一前記実施例は、更に、(f)前記第1のチャンネルノード(12
20)に作動接続されるオフチップバッファ(111)を形成するステップを有
し、前記受信するステップ(c)は、更に、 (c)(v)受信したデータフレームを前記データフレームバッファ(55)
へ受信し、次にこの受信したデータフレームを前記データフレームバッファ(5
5)から前記オフチップバッファ(111)へ転送するステップを有し、 前記送信するステップ(d)は、更に、(d)(i)送信すべきデータフレー
ムを(例えば、ディスク面(134)から)前記オフチップバッファ(111)
へ移動し、次にこの送信すべきデータフレームを前記オフチップバッファ(11
1)から前記データフレームバッファ(55)へ転送するステップを有する。
【0159】 この方法の他の実施例では、前記形成するステップ(b)は、更に、 (b)(iii)前記第1のポート(11)に作動接続される第1の到来非デ
ータバッファ(53)、前記第2のポート(116)に作動接続される第2の到
来非データバッファ(53’)、および前記第1のポート(116)と前記第2
のポート(116)の両方に作動接続されるデータフレームバッファ(55)を
形成するステップを有し、 前記受信するステップ(c)は、更に、 (c)(vi)前記第1のポート(116)から到来非データフレームを前記
第1の到来非データバッファ(53)へ受信するステップと、(c)(vii)
前記第2のポート(116)から到来非データフレームを前記第2の到来非デー
タバッファ(53’)へ受信するステップと、 (c)(viii)前記第1のポート(116)から到来非データフレームを
前記データフレームバッファ(55)へ受信するステップと、 (c)(ix)受信したデータフレームを前記データフレームバッファ(55
)へ受信し、次にこの受信したデータフレームを前記データフレームバッファ(
55)から前記オフチップバッファ(111)へ転送するステップを有する。
【0160】 この方法の一前記実施例は、更に、(g)前記第1のチャンネルノード(12
20)に作動接続されるオフチップバッファ(111)を形成するステップを有
し、前記送信するステップ(d)は、更に、 (d)(ii)送信すべきデータフレームを(例えば、ディスク面(134)
から)前記オフチップバッファ(111)へ移動し、次にこの送信すべきデータ
フレームを前記オフチップバッファ(111)から前記データフレームバッファ
(55)へ転送する。
【0161】 この方法の一部の実施例は、前記第1のチャンネルノード(1220)に作動
接続される磁気ディスク記憶ドライブ(1256)と第2のチャンネルノード(
1220)を備えたコンピュータ装置(1202)との間で、前記ファイバチャ
ンネルの調停ループ通信チャンネル(1250)を介してデータを転送するステ
ップを有し、前記第2のチャンネルノード(1220)は、前記ファイバチャン
ネルの調停ループ通信チャンネル(1250)により前記第1のチャンネルノー
ド(1220)に作動接続される。
【0162】 本発明の他の態様は、第1のポート(116)と第2のポート(116)を備
え、各ポート(116)がファイバチャンネルの調停ループ通信チャンネル(1
250)を支持するようにした第1のチャンネルノード(1220)と、フレー
ムを受信するための専用のフレームバッファ装置とを有することを特徴とする改
良になる通信チャンネル装置を提供する。
【0163】 かくして、本発明は、1個以上の専用非データバッファ(53)への非データ
フレームの受信および/または専用のデータバッファ(55)へのデータフレー ムの受信を可能にすることによって、かなりの性能向上をもたらす。ある実施例
では、2つの非データバッファ(53)が設けられて、2重ポートファイバチャ
ンネルインターフェースノード(1220)の両方の到来ファイバ(118)で
同時に受信するよう動作可能である。ある実施例では、1つのデータバッファ(
55)が設けられて、2重ポートファイバチャンネルインターフェースノード(
1220)のいずれか一方の到来ファイバ(118)で受信するよう動作可能で
ある。ある実施例では、この受信は、前記チャンネルノード(1220)が、前
記外向ファイバ(118)の1本または両方で非データフレームを同時に送信し
ているときでさえ、行われる。すなわち、ポートの一本のファイバ(117)で
の受信は、任意に、同一ポートの他のファイバ(118)での送信と同時に行わ
れる。
【0164】 なお、上記は、例示的であって制限を意図するものではない。本発明の種々の
実施例の数多くの特性および利点が、種々の実施例の構造および機能の詳細と共
に上に記載されたが、多くの他の実施例および細部に対する改変は、上記の点を
吟味すれば、当業者に明らかであろう。従って、本発明の範囲は、添付の特許請
求の範囲が権利を有する均等物の全範囲と共にこの特許請求の範囲に関して決定
されるべきである。
【図面の簡単な説明】
【図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 【要約の続き】 ファ(55)は、前記ポートからデータフレームを受信 するために両ポートに作動接続されていて、前記データ フレームを前記オフチップバッファへ移動する。さら に、前記専用の受信バッファを使用してフレームを受信 するための方法が記載されている。

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 各々がファイバチャンネルの調停ループ通信チャンネルを支
    持する第1のポートと第2のポートとを有する第1のチャンネルノードと、 前記調停ループ通信チャンネルからフレームを受信するために前記第1のチャ
    ンネルノード内に配置された専用のオンチップフレームバッファとを有すること
    を特徴とする通信チャンネル装置。
  2. 【請求項2】 前記専用のオンチップフレームバッファは、 前記第1のポートから到来非データフレームを受信するために前記第1のポー
    トに作動接続される第1の到来非データバッファと、 前記第2のポートから到来非データフレームを受信するために前記第2のポー
    トに作動接続される第2の到来非データバッファとを有することを特徴とする請
    求項1に記載の通信チャンネル装置。
  3. 【請求項3】 更に、オフチップバッファを有し、受信された非データフレ
    ームがまず前記第1の到来非データフレームバッファへ受信され、次にこの第1
    の到来非データフレームバッファから前記オフチップバッファへ転送されること
    を特徴とする請求項2に記載の通信チャンネル装置。
  4. 【請求項4】 前記専用のフレームバッファは、 前記第1のポートと前記第2のポートからの到来データを受信するために、前
    記第1のポートと前記第2のポートの両方に作動接続されるデータフレームバッ
    ファを有することを特徴とする請求項1に記載の通信チャンネル装置。
  5. 【請求項5】 更に、 前記データフレームバッファから転送された到来データフレームを受信すると
    ともに前記オフチップバッファから外向データフレームを前記データフレームバ
    ッファへ移動するために前記データフレームバッファに作動接続されるオフチッ
    プバッファを有することを特徴とする請求項2に記載の通信チャンネル装置。
  6. 【請求項6】 前記専用のオンチップフレームバッファは、 前記第1のポートから到来非データフレームを受信するために前記第1のポー
    トに作動接続される第1の到来非データバッファと、 前記第2のポートから到来非データフレームを受信するために前記第2のポー
    トに作動接続される第2の到来非データバッファと、 前記第1のポートからの到来データフレームを受信するために前記第1のポー
    トに作動接続されるデータフレームバッファとを有することを特徴とする請求項
    1に記載の通信チャンネル装置。
  7. 【請求項7】 更に、 オフチップバッファを有し、受信された非データフレームがまず前記データバ
    ッファへ受信され、次にこのデータバッファから前記オフチップバッファへ転送
    され、送信された非データフレームがまず前記オフチップバッファへ移動され、
    次にこのオフチップバッファから前記データバッファへ移動されることを特徴と
    する請求項6に記載の通信チャンネル装置。
  8. 【請求項8】 更に、 前記第1のチャンネルノードに作動接続される磁気ディスク記憶ドライブと、
    第2のチャンネルノードを有するコンピュータ装置とを有し、前記第2のチャン
    ネルノードは、前記第1のチャンネルの調停ループ通信チャンネルを介して前記
    第1のチャンネルノードと前記第2のチャンネルノードの間でデータを転送する
    ために、ファイバチャンネルループにおいて前記第1チャンネルノードに作動接
    続されることを特徴とする請求項7に記載の通信チャンネル装置。
  9. 【請求項9】 回転可能なディスクと、 このディスクに対し変換関係にあるトランスジューサと、 おのおのが、ファイバチャンネルの調停ループ通信チャンネルを支持する第1
    のポートと第2のポートとを備えていて前記トランスジューサに作動接続される
    第1のチャンネルノードと、 前記調停ループ通信チャンネルからフレームを受信するために前記チャンネル
    ノード内に配置された専用のオンチップフレームバッファとを有することを特徴
    とするディスクドライブ。
  10. 【請求項10】 前記専用のオンチップフレームバッファは、 前記第1のポートから到来非データフレームを受信するために前記第1のポー
    トに作動接続される第1の到来非データバッファと、 前記第2のポートから到来非データフレームを受信するために前記第2のポー
    トに作動接続される第2の到来非データバッファとを有することを特徴とする請
    求項9に記載の通信チャンネル装置。
  11. 【請求項11】 更に、オフチップバッファを有し、受信された非データフ
    レームがまず前記第1の到来非データフレームバッファへ受信され、次にこの第
    1の到来非データフレームバッファから前記オフチップバッファへ転送されるこ
    とを特徴とする請求項10に記載の通信チャンネル装置。
  12. 【請求項12】(a)第1のチャンネルノードの第1のポートと第2のポー
    トのおのおのでファイバチャンネルの調停ループ通信チャンネルを支持するステ
    ップと、 (b)前記第1のチャンネルノードに専用のフレームバッファを形成するステ
    ップと、 (c)この専用のフレームバッファにデータフレームと非データフレームを受
    信するステップと、 (d)前記専用のフレームバッファからフレームを送信するステップとを有す
    ることを特徴とする通信チャンネル方法。
  13. 【請求項13】 前記形成するステップ(b)は、更に、 (b)(i)前記第1のポートに作動接続される第1の到来非データバッファ
    、前記第2のポートに作動接続される第2の到来非データバッファを形成するス
    テップを有し、 前記受信するステップ(c)は、更に、 (c)(i)前記第1のポートから到来非データフレームを前記第1の到来非
    データバッファへ受信するステップと、 (c)(ii)前記第2のポートから到来非データフレームを前記第2の到来
    非データバッファへ受信するステップとを有することを特徴とする請求項12に
    記載の通信チャンネル方法。
  14. 【請求項14】 更に、 (e)前記第1のチャンネルノードに作動接続されるオフチップバッファを形
    成するステップを有し、 前記受信するステップ(c)は、更に、 (c)(iii)前記第1の非データフレームバッファから前記オフチップバ
    ッファに前記受信した非データフレームを転送するステップを有することを特徴
    とする請求項13に記載の通信チャンネル方法。
  15. 【請求項15】 前記形成するステップ(b)は、更に、 (b)(ii)前記第1のポートに作動接続される第1の到来非データバッフ
    ァと、前記第2のポートに作動接続される第2の到来非データバッファを形成す
    るステップと、前記第1のポートと前記第2のポートの両方に作動接続されるデ
    ータバッファを形成するステップとを有し、 前記受信するステップ(c)は、更に、 (c)(iv)前記第1のポートから到来データフレームを前記データフレー
    ムバッファへ受信するステップを有することを特徴とする請求項12に記載の通
    信チャンネル方法。
  16. 【請求項16】 更に、 (f)前記第1のチャンネルノードに作動接続されるオフチップバッファを形
    成するステップを有し、 前記受信するステップ(c)は、更に、 (c)(v)受信したデータフレームを前記データフレームバッファへ受信し
    、次にこの受信したデータフレームを前記データフレームバッファから前記オフ
    チップバッファへ転送するステップを有し、 前記送信するステップ(d)は、更に、 (d)(i)送信すべきデータフレームを前記オフチップバッファへ移動し、
    次にこの送信すべきデータフレームを前記オフチップバッファから前記データフ
    レームバッファへ転送するステップを有することを特徴とする請求項15に記載
    の通信チャンネル方法。
  17. 【請求項17】 前記形成するステップ(b)は、更に、 (b)(iii)前記第1のポートに作動接続される第1の到来非データバッ
    ファ、前記第2のポートに作動接続される第2の到来非データバッファ、および
    前記第1のポートと前記第2のポートの両方に作動接続されるデータバッファを
    形成するステップを有し、 前記受信するステップ(c)は、更に、 (c)(vi)前記第1のポートから到来非データフレームを前記第1の到来
    非データバッファへ受信するステップと、 (c)(vii)前記第2のポートから到来非データフレームを前記第2の到
    来非データバッファへ受信するステップと、 (c)(viii)前記第1のポートから到来非データフレームを前記データ
    フレームバッファへ受信するステップと、 (c)(ix)受信したデータフレームを前記データフレームバッファへ受信
    し、次にこの受信したデータフレームを前記データフレームバッファから前記オ
    フチップバッファへ転送するステップを有することを特徴とする請求項12に記
    載の通信チャンネル方法。
  18. 【請求項18】 更に、 (g)前記第1のチャンネルノードに作動接続されるオフチップバッファを形
    成するステップを有し、 前記送信するステップ(d)は、更に、 (d)(ii)送信すべきデータフレームを前記オフチップバッファへ移動し
    、次にこの送信すべきデータフレームを前記オフチップバッファから前記データ
    フレームバッファへ転送するステップを有することを特徴とする請求項17に記
    載の通信チャンネル方法。
  19. 【請求項19】 さらに、 (h)前記第1のチャンネルノードに作動接続される磁気ディスク記憶ドライ
    ブと第2のチャンネルノードを備えたコンピュータ装置との間で、前記ファイバ
    チャンネルの調停ループ通信チャンネルを介してデータを転送するステップを有
    し、前記第2のチャンネルノードは、前記ファイバチャンネルの調停ループ通信
    チャンネルにより前記第1のチャンネルノードに作動接続されることを特徴とす
    る請求項18に記載の通信チャンネル方法。
  20. 【請求項20】 第1のポートと第2のポートを備え、各ポートがファイバ
    チャンネルの調停ループ通信チャンネルを支持するようにした第1のチャンネル
    ノードと、 フレームを受信するための専用のフレームバッファ手段とを有することを特徴
    とする通信チャンネル装置。
JP2000521448A 1997-11-17 1998-11-17 フレーム受信のための方法及び専用のフレームバッファ Pending JP2001523861A (ja)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US6592697P 1997-11-17 1997-11-17
US6591997P 1997-11-17 1997-11-17
US6592097P 1997-11-17 1997-11-17
US60/065,919 1997-11-17
US60/065,920 1997-11-17
US60/065,926 1997-11-17
US6721197P 1997-12-01 1997-12-01
US60/067,211 1997-12-01
PCT/US1998/024536 WO1999026151A1 (en) 1997-11-17 1998-11-17 Method and dedicated frame buffers for receiving frames

Publications (1)

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

Family

ID=27490525

Family Applications (4)

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

Family Applications Before (2)

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

Family Applications After (1)

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

Country Status (7)

Country Link
US (6) US6324669B1 (ja)
JP (4) JP4272813B2 (ja)
KR (3) KR100734649B1 (ja)
CN (3) CN1123832C (ja)
DE (3) DE19882830T1 (ja)
GB (3) GB2342021B (ja)
WO (3) WO1999026152A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7752375B2 (en) 2003-08-12 2010-07-06 Hitachi, Ltd. Input output control apparatus with a plurality of ports and single protocol processing circuit
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

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
US6868516B1 (en) 2000-12-21 2005-03-15 Emc Corporation Method for validating write data to a memory
US6779150B1 (en) * 2000-12-21 2004-08-17 Emc Corporation CRC error detection system and method
US6934904B2 (en) * 2001-04-30 2005-08-23 Sun Microsystems, Inc. Data integrity error handling in a redundant storage array
US7016969B1 (en) * 2001-05-11 2006-03-21 Cisco Technology, Inc. System using weighted fairness decisions in spatial reuse protocol forwarding block to determine allowed usage for servicing transmit and transit traffic in a node
JP2002368768A (ja) * 2001-06-05 2002-12-20 Hitachi Ltd ファイバチャネル調停ループ対応の電子装置及びファイバチャネル調停ループの障害検出方法
US6850410B2 (en) * 2001-06-29 2005-02-01 Emc Corporation Advanced technology attachment disk drive module with fibre channel system characteristics
US7065661B2 (en) * 2002-12-16 2006-06-20 Emc Corporation Using request and grant signals to read revision information from an adapter board that interfaces a disk drive
JP3523616B2 (ja) * 2001-07-24 2004-04-26 松下電器産業株式会社 バス最適化方法及び通信ノード
US7215680B2 (en) * 2001-07-26 2007-05-08 Nishan Systems, Inc. Method and apparatus for scheduling packet flow on a fibre channel arbitrated loop
US20030135577A1 (en) * 2001-12-19 2003-07-17 Weber Bret S. Dual porting serial ATA disk drives for fault tolerant applications
US7433948B2 (en) 2002-01-23 2008-10-07 Cisco Technology, Inc. Methods and apparatus for implementing virtualization of storage within a storage area network
US7391723B2 (en) * 2002-04-22 2008-06-24 Computer Network Technology Corporation Frame-level fibre channel CRC on switching platform
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
US7630300B2 (en) * 2002-07-02 2009-12-08 Emulex Design & Manufacturing Corporation Methods and apparatus for trunking in fibre channel arbitrated loop systems
US7397788B2 (en) * 2002-07-02 2008-07-08 Emulex Design & Manufacturing Corporation Methods and apparatus for device zoning in fibre channel arbitrated loop systems
US7664018B2 (en) 2002-07-02 2010-02-16 Emulex Design & Manufacturing Corporation Methods and apparatus for switching fibre channel arbitrated loop devices
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 삼성전자주식회사 반도체 장치의 제조에서 콘택 형성 방법
EP1537496B1 (en) * 2002-09-10 2008-07-02 Exagrid Systems, Inc. Data protection system and method
US7397768B1 (en) 2002-09-11 2008-07-08 Qlogic, Corporation Zone management in a multi-module fibre channel switch
US7220908B2 (en) * 2002-09-12 2007-05-22 Yamaha Corporation Waveform processing apparatus with versatile data bus
US6961786B2 (en) * 2002-09-25 2005-11-01 Lsi Logic Corporation Fiber loop linking/detecting
US20040068591A1 (en) * 2002-10-03 2004-04-08 Workman Michael Lee Systems and methods of multiple access paths to single ported storage devices
US20040123027A1 (en) * 2002-10-03 2004-06-24 Workman Michael Lee Systems and methods of multiple access paths to single ported storage devices
US7327680B1 (en) * 2002-11-05 2008-02-05 Cisco Technology, Inc. Methods and apparatus for network congestion control
US6829658B2 (en) 2002-12-16 2004-12-07 Emc Corporation Compatible signal-to-pin connector assignments for usage with fibre channel and advanced technology attachment disk drives
US7194673B2 (en) * 2002-12-20 2007-03-20 Emc Corporation Detecting intermittent losses of synchronization in a fibre channel loop
US7782784B2 (en) * 2003-01-10 2010-08-24 Cisco Technology, Inc. Port analyzer adapter
US7899048B1 (en) 2003-01-15 2011-03-01 Cisco Technology, Inc. Method and apparatus for remotely monitoring network traffic through a generic network
US7516272B2 (en) * 2003-03-28 2009-04-07 Emc Corporation Midplane-independent implementations of data storage system enclosures
US6961784B1 (en) * 2003-04-17 2005-11-01 Qlogic Corporation Method and system for processing non-data frames in host bus adapters
US7646767B2 (en) 2003-07-21 2010-01-12 Qlogic, Corporation Method and system for programmable data dependant network routing
US7234101B1 (en) 2003-08-27 2007-06-19 Qlogic, Corporation Method and system for providing data integrity in storage systems
US7474666B2 (en) 2003-09-03 2009-01-06 Cisco Technology, Inc. Switch port analyzers
US8165136B1 (en) 2003-09-03 2012-04-24 Cisco Technology, Inc. Virtual port based SPAN
US7134070B2 (en) * 2003-09-08 2006-11-07 Intel Corporation Checksum determination
US7573870B2 (en) * 2003-09-25 2009-08-11 Lsi Logic Corporation Transmit prioritizer context prioritization scheme
US7353448B1 (en) * 2003-10-21 2008-04-01 Marvell Semiconductor Israel Ltd. Methods, architectures, circuits and systems for transmission error determination
US7219263B1 (en) 2003-10-29 2007-05-15 Qlogic, Corporation Method and system for minimizing memory corruption
US20050114498A1 (en) * 2003-11-06 2005-05-26 International Business Machines Corporation Method and apparatus for managing data transfer in a data processing system
US7219325B1 (en) * 2003-11-21 2007-05-15 Xilinx, Inc. Exploiting unused configuration memory cells
JP4426261B2 (ja) * 2003-11-25 2010-03-03 株式会社日立製作所 チャネルアダプタ及びディスクアレイ装置
US7934023B2 (en) 2003-12-01 2011-04-26 Cisco Technology, Inc. Apparatus and method for performing fast fibre channel write operations over relatively high latency networks
US7236361B2 (en) * 2003-12-22 2007-06-26 Emc Corporation Fan assembly for installing and removing fans individually and collectively
US7145776B2 (en) * 2003-12-22 2006-12-05 Emc Corporation Midplane-less data storage enclosure
US7231581B2 (en) * 2003-12-31 2007-06-12 Intel Corporation Communicating using a partial block in a frame
US7986630B1 (en) * 2004-02-09 2011-07-26 Lsi Corporation High performance architecture for fiber channel targets and target bridges
US20050187979A1 (en) * 2004-02-09 2005-08-25 Microsoft Corporation System and method for message-level connection management
US7434150B1 (en) * 2004-03-03 2008-10-07 Marvell Israel (M.I.S.L.) Ltd. Methods, circuits, architectures, software and systems for determining a data transmission error and/or checking or confirming such error determinations
US7360142B1 (en) 2004-03-03 2008-04-15 Marvell Semiconductor Israel Ltd. Methods, architectures, circuits, software and systems for CRC determination
US7930377B2 (en) 2004-04-23 2011-04-19 Qlogic, Corporation Method and system for using boot servers in networks
US7669190B2 (en) 2004-05-18 2010-02-23 Qlogic, Corporation Method and system for efficiently recording processor events in host bus adapters
US20060015659A1 (en) * 2004-07-19 2006-01-19 Krantz Leon A System and method for transferring data using storage controllers
US9201599B2 (en) * 2004-07-19 2015-12-01 Marvell International Ltd. System and method for transmitting data in 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装置、異常デバイス検出装置および異常デバイス検出方法
KR101426905B1 (ko) 2010-04-12 2014-08-05 퀄컴 인코포레이티드 네트워크에서 저-오버헤드 통신을 위한 지연된 확인응답들
JP4922442B2 (ja) 2010-07-29 2012-04-25 株式会社東芝 バッファ管理装置、同装置を備えた記憶装置、及びバッファ管理方法
US8504893B1 (en) * 2010-09-30 2013-08-06 Micron Technology, Inc. Error detection or correction of a portion of a codeword in a memory device
GB2484717B (en) * 2010-10-21 2018-06-13 Advanced Risc Mach Ltd Security provision for a subject image displayed in a non-secure domain
CN102468915B (zh) * 2010-11-16 2014-07-02 北京中电华大电子设计有限责任公司 一种串口802.11n无线网卡芯片发送通路实现方法
CN102158400B (zh) * 2011-03-03 2013-12-04 北京航空航天大学 天基路由交换系统的通信接口及天基路由交换系统
CN102999458A (zh) * 2011-09-09 2013-03-27 中国航天科工集团第三研究院第八三五七研究所 高速智能串口芯片
CN102567276B (zh) * 2011-12-19 2014-03-12 华为技术有限公司 基于多通道的数据传输方法、接收节点及跨节点互联系统
JP5937485B2 (ja) * 2012-10-24 2016-06-22 富士通フロンテック株式会社 送信装置
US9395924B2 (en) * 2013-01-22 2016-07-19 Seagate Technology Llc Management of and region selection for writes to non-volatile memory
US9569618B2 (en) * 2013-08-28 2017-02-14 Korea University Research And Business Foundation Server and method for attesting application in smart device using random executable code
CN103593261B (zh) * 2013-10-17 2015-09-23 北京控制工程研究所 一种中断服务程序中通信故障的快速恢复方法
US9467389B2 (en) * 2014-04-28 2016-10-11 International Business Machines Corporation Handling large frames in a virtualized fibre channel over ethernet (FCoE) data forwarder
US10061734B2 (en) 2015-05-20 2018-08-28 International Business Machines Corporation Adjustment of buffer credits and other parameters in a startup phase of communications between a plurality of channels and a control unit
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
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
CN106500739B (zh) * 2016-11-18 2019-01-25 威科达(东莞)智能控制有限公司 一种与绝对值编码器通信的方法
CN108572883B (zh) * 2017-04-19 2021-06-18 北京金山云网络技术有限公司 一种数据正确性校验方法及装置
EP3404546B1 (en) 2017-05-16 2019-09-11 Melexis Technologies NV Device for supervising and initializing ports
CN107229858B (zh) * 2017-05-19 2020-04-03 郑州云海信息技术有限公司 一种支持crc8校验的PECI总线主从机验证系统及验证方法
US11868804B1 (en) 2019-11-18 2024-01-09 Groq, Inc. Processor instruction dispatch configuration
US11360934B1 (en) 2017-09-15 2022-06-14 Groq, Inc. Tensor streaming processor architecture
US11114138B2 (en) 2017-09-15 2021-09-07 Groq, Inc. Data structures with multiple read ports
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 株式会社デンソー 中継装置
US11455370B2 (en) 2018-11-19 2022-09-27 Groq, Inc. Flattened input stream generation for convolution with expanded kernel
US11115147B2 (en) * 2019-01-09 2021-09-07 Groq, Inc. Multichip fault management
CN110518978B (zh) * 2019-07-23 2022-12-27 中国航空无线电电子研究所 基于光纤链路的混合数据传输组件
CN113037428B (zh) * 2019-12-09 2022-01-25 大唐移动通信设备有限公司 一种对数据流程的处理方法及装置
CN111966627B (zh) * 2020-08-13 2023-06-30 北京中航通用科技有限公司 用于串行总线的8b/9b编解码方法
TWI778644B (zh) * 2021-05-31 2022-09-21 新唐科技股份有限公司 系統單晶片和其資料燒入方法
CN114578299A (zh) * 2021-06-10 2022-06-03 中国人民解放军63698部队 一种无线远程控制信标设备产生射频信号的方法及系统
US11855655B2 (en) * 2021-09-28 2023-12-26 Texas Instruments Incorporated Serial communications module with CRC
CN114117980B (zh) * 2022-01-25 2022-06-07 飞腾信息技术有限公司 芯片设计方法、芯片设计模块、电子设备和介质
US20230236756A1 (en) * 2022-01-25 2023-07-27 Infineon Technologies Ag Buffer management in an ethernet switch

Family Cites Families (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4486739A (en) 1982-06-30 1984-12-04 International Business Machines Corporation Byte oriented DC balanced (0,4) 8B/10B partitioned block transmission code
US4654654A (en) * 1983-02-07 1987-03-31 At&T Bell Laboratories Data network acknowledgement arrangement
GB8606217D0 (en) * 1986-03-13 1986-04-16 Univ Strathclyde Local area network priority control system
US4933785A (en) 1988-03-01 1990-06-12 Prairietek Corporation Disk drive apparatus using dynamic loading/unloading
US5168568A (en) 1989-02-06 1992-12-01 Compaq Computer Corporation Delaying arbitration of bus access in digital computers
US5187780A (en) * 1989-04-07 1993-02-16 Digital Equipment Corporation Dual-path computer interconnect system with zone manager for packet memory
US5170466A (en) * 1989-10-10 1992-12-08 Unisys Corporation Storage/retrieval system for document
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
WO1996008766A1 (en) * 1994-09-16 1996-03-21 Philips Electronics N.V. Microcontroller having a page address mode
JPH0897803A (ja) 1994-09-26 1996-04-12 Nec Eng Ltd データ伝送方式
US5619647A (en) * 1994-09-30 1997-04-08 Tandem Computers, Incorporated System for multiplexing prioritized virtual channels onto physical channels where higher priority virtual will pre-empt a lower priority virtual or a lower priority will wait
US5638518A (en) 1994-10-24 1997-06-10 Lsi Logic Corporation Node loop core for implementing transmission protocol in fibre channel
US5598541A (en) 1994-10-24 1997-01-28 Lsi Logic Corporation Node loop port communication interface super core for fibre channel
US5617541A (en) * 1994-12-21 1997-04-01 International Computer Science Institute System for packetizing data encoded corresponding to priority levels where reconstructed data corresponds to fractionalized priority level and received fractionalized packets
US5619497A (en) 1994-12-22 1997-04-08 Emc Corporation Method and apparatus for reordering frames
US5590006A (en) 1994-12-23 1996-12-31 International Business Machines Corporation One-sided, single platter hard disk with center parking features
US5812564A (en) 1995-05-08 1998-09-22 Western Digital Corporation Disk drive with embedded finite field processor for error correction
US5831795A (en) 1995-05-10 1998-11-03 Iomega Corporation Head loading mechanism for a disk drive
US5694615A (en) * 1995-06-26 1997-12-02 Hewlett Packard Company Storage system having storage units interconnected to form multiple loops to provide simultaneous access from multiple hosts
US5815662A (en) 1995-08-15 1998-09-29 Ong; Lance Predictive memory caching for media-on-demand systems
JPH0955718A (ja) * 1995-08-17 1997-02-25 Nec Corp データ通信装置
US5768623A (en) 1995-09-19 1998-06-16 International Business Machines Corporation System and method for sharing multiple storage arrays by dedicating adapters as primary controller and secondary controller for arrays reside in different host computers
CA2182539A1 (en) 1995-09-29 1997-03-30 Nandakumar Natarajan Method and apparatus for buffer management
CN1169201A (zh) 1995-10-10 1997-12-31 菲利浦电子有限公司 具有电磁提升装置的信息存储设备
US5778426A (en) 1995-10-23 1998-07-07 Symbios, Inc. Methods and structure to maintain a two level cache in a RAID controller and thereby selecting a preferred posting method
US5864448A (en) 1995-10-24 1999-01-26 International Business Machines Corporation Slider and suspension retention and retraction system for high capacity disk drive
US5822782A (en) 1995-10-27 1998-10-13 Symbios, Inc. Methods and structure to maintain raid configuration information on disks of the array
US5805920A (en) 1995-11-13 1998-09-08 Tandem Computers Incorporated Direct bulk data transfers
JPH09149034A (ja) * 1995-11-20 1997-06-06 Nec Eng Ltd Atmセルの生成方法及び通信制御装置
JPH09149067A (ja) 1995-11-21 1997-06-06 Hitachi Cable Ltd スイッチングハブ
US5758081A (en) 1995-12-08 1998-05-26 Aytac; Haluk M. Computing and communications transmitting, receiving system, with a push button interface, that is continously on, that pairs up with a personal computer and carries out mainly communications related routine tasks
US5781801A (en) 1995-12-20 1998-07-14 Emc Corporation Method and apparatus for receive buffer management in multi-sender communication systems
US5809328A (en) 1995-12-21 1998-09-15 Unisys Corp. Apparatus for fibre channel transmission having interface logic, buffer memory, multiplexor/control device, fibre channel controller, gigabit link module, microprocessor, and bus control device
US5768530A (en) 1995-12-28 1998-06-16 Emc Corporation High speed integrated circuit interface for fibre channel communications
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
US5802080A (en) * 1996-03-28 1998-09-01 Seagate Technology, Inc. CRC checking using a CRC generator in a multi-port design
US5663724A (en) 1996-03-28 1997-09-02 Seagate Technology, Inc. 16B/20B encoder
US5761705A (en) 1996-04-04 1998-06-02 Symbios, Inc. Methods and structure for maintaining cache consistency in a RAID controller having redundant caches
US5761534A (en) 1996-05-20 1998-06-02 Cray Research, Inc. System for arbitrating packetized data from the network to the peripheral resources and prioritizing the dispatching of packets onto the network
US5805788A (en) 1996-05-20 1998-09-08 Cray Research, Inc. Raid-5 parity generation and data reconstruction
US5787450A (en) 1996-05-29 1998-07-28 International Business Machines Corporation Apparatus and method for constructing a non-linear data object from a common gateway interface
US5764931A (en) 1996-05-31 1998-06-09 Sun Microsystems, Inc. Method and apparatus for passing bus mastership between processors using predefined bus mastership states
US5822143A (en) 1996-06-11 1998-10-13 Western Digital Corporation Decision feedback equalization implementation of partial-response signaling in a magnetic recording channel
US5790792A (en) 1996-09-04 1998-08-04 Radiant Systems, Inc. Method and apparatus for transmitting multimedia data from and application logic server to interactive multimedia workstations
JP2868080B2 (ja) 1996-09-12 1999-03-10 三菱電機株式会社 通信監視制御装置及び通信監視制御方法
US5812754A (en) 1996-09-18 1998-09-22 Silicon Graphics, Inc. Raid system with fibre channel arbitrated loop
US5889949A (en) * 1996-10-11 1999-03-30 C-Cube Microsystems Processing system with memory arbitrating between memory access requests in a set top box
US5930483A (en) * 1996-12-09 1999-07-27 International Business Machines Corporation Method and apparatus for communications control on a small computer system interface
US5917828A (en) * 1997-01-03 1999-06-29 Ncr Corporation ATM reassembly controller and method
US5978379A (en) * 1997-01-23 1999-11-02 Gadzoox Networks, Inc. Fiber channel learning bridge, learning half bridge, and protocol
US6172990B1 (en) * 1997-06-19 2001-01-09 Xaqti Corporation Media access control micro-RISC stream processor and method for implementing the same
US6061351A (en) * 1997-02-14 2000-05-09 Advanced Micro Devices, Inc. Multicopy queue structure with searchable cache area
US5875074A (en) 1997-04-18 1999-02-23 Quinta Corporation Adjustable head loading apparatus
JPH10302421A (ja) 1997-04-28 1998-11-13 Internatl Business Mach Corp <Ibm> サスペンション・アセンブリとランプ・ブロックおよびヘッド保持機構ならびにディスクドライブ装置
US6185207B1 (en) * 1997-06-19 2001-02-06 International Business Machines Corporation Communication system having a local area network adapter for selectively deleting information and method therefor
US6014380A (en) * 1997-06-30 2000-01-11 Sun Microsystems, Inc. Mechanism for packet field replacement in a multi-layer distributed network element
US6304910B1 (en) * 1997-09-24 2001-10-16 Emulex Corporation Communication processor having buffer list modifier control bits
US6226680B1 (en) * 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing

Cited By (4)

* 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
US7752375B2 (en) 2003-08-12 2010-07-06 Hitachi, Ltd. Input output control apparatus with a plurality of ports and single protocol processing circuit
US8090893B2 (en) 2003-08-12 2012-01-03 Hitachi, Ltd. Input output control apparatus with a plurality of ports and single protocol processing circuit

Also Published As

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

Similar Documents

Publication Publication Date Title
JP2001523861A (ja) フレーム受信のための方法及び専用のフレームバッファ
US6061360A (en) Method and apparatus for preserving loop fairness with dynamic half-duplex
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
EP0841781B1 (en) Fibre channel switch employing distributed queuing
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
US20100274979A1 (en) Storage controllers with dynamic wwn storage modules and methods for managing data and connections between a host and a storage device
WO2006036468A1 (en) Method and system for optimizing data transfer in networks
US7986630B1 (en) High performance architecture for fiber channel targets and target bridges
US7152132B2 (en) Method and apparatus for improving buffer utilization in communication networks
US20050027877A1 (en) Method and apparatus for accelerating receive-modify-send frames in a fibre channel network
Smith et al. Tachyon: A gigabit fibre channel protocol chip
JP3130226B2 (ja) 入出力通信サブシステム及び方法