JP2001523856A - オンチップメモリにおけるデータ健全性のためのcrcを用いる方法および装置 - Google Patents
オンチップメモリにおけるデータ健全性のためのcrcを用いる方法および装置Info
- Publication number
- JP2001523856A JP2001523856A JP2000521437A JP2000521437A JP2001523856A JP 2001523856 A JP2001523856 A JP 2001523856A JP 2000521437 A JP2000521437 A JP 2000521437A JP 2000521437 A JP2000521437 A JP 2000521437A JP 2001523856 A JP2001523856 A JP 2001523856A
- Authority
- JP
- Japan
- Prior art keywords
- frame
- data
- chip
- buffer
- port
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/368—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/24—Testing correct operation
- H04L1/245—Testing correct operation by using the properties of transmission codes
- H04L1/246—Testing correct operation by using the properties of transmission codes two-level transmission codes, e.g. binary
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/42—Loop networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/48—Routing tree calculation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9031—Wraparound memory, e.g. overrun or underrun detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
- H04L49/9068—Intermediate storage in different physical parts of a node or terminal in the network interface card
- H04L49/9073—Early interruption upon arrival of a fraction of a packet
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2002—Error 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/2007—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0038—System on Chip
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B5/00—Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
- G11B5/012—Recording on, or reproducing or erasing from, magnetic disks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Small-Scale Networks (AREA)
- Information Transfer Systems (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
- Time-Division Multiplex Systems (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
Description
されたファイバチャンネル調整ループ(「FC−AL」)装置と、オンチップメ
モリにおけるデータ健全性を維持し、もしくは検査するためにファイバチャンネ
ル巡回冗長検査情報を用いる方法に関する。
ある。コンピュータシステムは、データを格納するための多くの様々な装置を含
んでいる。コンピュータシステムで、多量のデータを格納するための1つの共通
な場所が、ディスクドライブ上に設けられている。ディスクドライブの最も基本
的な部分は、回転するディスク、ディスク上を様々な位置にトランスデューサを
移動させるアクチュエータ、そしてディスクにデータを書き込んだりディスクか
らデータを読み出すために用いられる回路である。ディスクは、また、確実にデ
ィスク表面からデータを取り出したり、ディスク表面にデータを書き込めるよう
にデータをコード化するための回路を有している。マイクロプロセッサは、デー
タ要求元のコンピュータに対してデータを送り戻し、要求元のコンピュータから
データを取得しディスクに格納することに加え、ディスクドライブの動作のほと
んどの部分を制御する。
るためのインターフェースは、通常、小型計算機システムインターフェース(「
SCSI」)あるいはファイバチャンネルのようなバスあるいファイバチャンネ
ルンネルである。この種のインターフェースのある側面は、異なる製造者から供
給される様々な装置が相互接続でき、すべての装置が共通のインターフェースに
接続できるように、しばしば標準化されている。このような標準は、通常、米国
規格協会(「ANSI」)のような組織の標準化委員会によって取り決められる
ものとなっている。
標準化されたインターフェースが、ファイバチャンネルである。いくつかの実施
例では、ファイバチャンネル規格には、(後述の)調整ループが含まれている。
実施例では、ファイバチャンネル規格は、データ転送を制御するためのSCSI
に類似したプロトコルをサポートしている。
)ベースの設計に比べ、顕著な利点をもたらすものである。ファイバチャンネル
は、従来のSCSIベース設計での毎秒2〜20メガバイトのものに比べ、現状
は、毎秒約106メガバイトに到達するようなより高い帯域幅を提供する。また
、通常のSCSIベース環境では、最大7〜15個の装置への対応だったものに
対し、ファイバチャンネルは、126個の装置まで(ホストを含めて)接続する
ことができるような、より高い接続性を提供する。ファイバチャンネルは、単一
のコネクタで接続でき、スイッチを必要としないものである。SCSIベース環
境では、最長25mまでの距離が限界であるのに比べ、同軸の電導体を用いたフ
ァイバチャンネルでは、最大30mの距離を隔てた装置間で動作し、さらに、チ
ャンネル全体に光ファイバを用いると、10kmにまで距離を延長することがで
きる。SCSI環境では、データ転送でのエラーは、パリティを用いて検出され
るが、一方、ファイバチャンネルでは、現状の不均衡と巡回冗長検査(「CRC
検査」)情報とによって特定される。より詳しい情報は、米国特許番号5,80
2,080、名称「マルチポート設計におけるCRC発生器を用いたCRC検査
」および、米国特許番号、5,663,724、名称「16B/20Bエンコー
ダ」に記載されており、両者ともに本発明者ウエストバイ(Westby)によ
る発明であり、ともに、本発明出願人シーゲート・テクノロジー社からの出願で
ある。
ランレングス限定8B/10Bパーティションのブロック転送コード手順を採用
した工業規格システムである。PC−ALは、106.25MHzのクロック周
波数で動作する。8B/10Bエンコーダ/デコーダの一形態が、1984年1
2月4日に特許された米国特許第4,486,739号、発明者フランゼック(
Franaszek)他による「バイト指向DC平衡(0,4)8B/10Bパ
ーティションブロック転送コード」に記載されている。
を、互いに接続させることができる。ノードは、コンピュータシステムの装置(
コンピュータ、ワークステーション、プリンタ、ディスクドライブ、スキャナ等
)のいずれかであってよく、それ自身がファイバチャンネル「トポロジー」(詳
細は後述)に接続できるようなインターフェースを有している。各ノードは、他
のノードへのアクセスを提供するNLポート(「ノード・ループポート」)と呼
ばれる少なくとも1つのポートを持っている。2つ以上のポートを接続しあう要
素は、一括して「トポロジー」あるいは「ループ」と呼ばれる。各ノードは、与
えられたトポロジーあるいはループ内の他の全てのノードと通信し合う。
(外部世界)のポートに到達することができる、ファイバチャンネルノードでの
コネクションである。典型的なファイバチャンネルドライブは、ドライブのノー
ド内に組み込まれた2つのポートを持っている。各ポートは、一方がポートに情
報を取り込み、他方がポートから情報を出すための、一組のファイバを持ってい
る。各ファイバは、シリアルデータ接続であり、本実施例では、各ファイバは、
実際には、同軸ケーブル(例えば、ノードが互いに近接しあっている場合に用い
られる同軸の銅線)である。また、他の実施例では、ファイバは、その経路の少
なくともいくつかの部分のために用いられる光ファイバとして実装される(例え
ば、異なる筐体や、特に、異なる建物にあるノードのように、かなりの距離をお
いてノードが分けられている場合)。各ポートに接続される一組のファイバ(一
方はデータをポートに取り込み、他方はデータをポートから出す)は、「リンク
」と呼ばれ、各トポロジーの一部である。リンクは、「フレーム」内に詰め込ま
れた情報や信号を、ノード間で送信する。各リンクは、複数のフレーム種類(例
えば、初期化、データ、制御のフレーム)を扱うことができる。
て、互いに接続されていて、ここでは、各ノードが送信すべきデータを持ってい
る際には、各ノードは、ループを制御するために互いに調整して動作しなければ
ならない。「調整して動作する」とは、ノードに対して、どのノードがループを
制御する権利を持つのかを調整し決定するプロセスのことである。ファイバチャ
ンネル調整ループは、ハブやスイッチを使わずに、複数のノードをループに接続
する。ノードのポートは、調整動作を用いて、一対一のデータ送信回路を確立す
る。FC−ALは、分散トポロジーであり、ここでは、各ポートには、少なくと
も、回路を確立するのに必要な最小限の機能が含まれている。調整ループトポロ
ジーは、ノードポート数が2から126までのノードを接続するのに用いられる
。
、分離したループに接続されている)を持っており、これにより、もし一方のル
ープが故障しても、他方がループの役目を果たすことができる。二重ポートによ
って、2つのホスト(例えば、2つのホストコンピュータ)が、1つのドライブ
を共有することも可能となる。
フレーム検証とフレーム生成論理を共有していた。これは、もし一方のポートが
フレームを送受信しているならば、代替するポートが実質的に閉じている状態と
なり、(なぜならば、このポートは、同時には、フレーム検証とフレーム生成論
理を使えないからである)従って、代替するポートはフレームを送出するための
ホスト−バスアダプター許可を強制的に拒否することを意味している。いくつか
のホスト−バスアダプターは、継続して調整動作を行い、基本ポートが閉じるま
で幾度もフレームを送出することを試みなければならないものであった。また、
ドライブは、一度にひとつのポートのみを使って送信できるのみであった。いく
つかの場合には、所定のポートでの送出データ送信は、他方の(代替の)ポート
を使っての応答送出とループ初期化のために中断せざるを得ないものであった。
イロードのデータにもとづくエラーコードを検査し、受信するヘッダとペイロー
ドのデータの健全性を検証する。このような誤り検査手順のある種のものは、巡
回冗長コード(「CRC」)情報を用いる。CRC誤り検査を用いる典型的な回
路には、受信するデータワードの健全性を検証するCRCチェッカと、送信され
ているディジタルワードのためのCRC情報を生成するCRC発生器を含んでい
る。多重ポート設計では、CRCチェッカとCRC発生器は、受信ディジタルワ
ードの検証処理と、送信中の各ディジタルワードのためのCRC情報の生成処理
が各ポートで可能となるように、有効でなければならない。多くのアプリケーシ
ョンでは、回路あるいはループインターフェースモジュールは、一度に、一方の
みのポートを経由して送信する。例えば、マルチポートインターフェースモジュ
ールを介してコンピュータネットワークと通信するディスクドライブサブシステ
ムは、いかなる時にも、単一のポートのみを介してデータの準備と送信を行う。
しかし、ループインターフェースモジュールは、所定の時には、複数のポートを
介してデータを受信しようとしてもよい。
トがデータを受信中には、単純に、他のポートからのデータの受け入れを禁止す
ることである。この方法は、CRCチェッカやフレーム検証論理のような共通資
源が複数のポート間で共有できるようにするものである。データを受信する第1
のポートは、他のポートを排除するために、共通資源の使用状況を把握し、他の
ポートでのデータの受信が禁止される。従って、到着するデータは、他のポート
では受信されず、他のポートは、データ送信機能に制限を受ける。この方法では
、他のポートが、データ送信要求に応じて、「ビジー」状態を受信し、第1のポ
ートが実行中の動作を完了して共通資源を解放するまでは、幾度もデータ送信要
求の手順を繰り返すことが要請されるものであった。
ーフェースモジュールがチャンネルに接続されたり、あるいは、ファイバチャン
ネルに電源が投入されたときには、ループを初期化する必要がある。初期化は、
通常、ループ初期化データをループ上に送出することによって行われる。しかし
、もしループに接続されたループインターフェースモジュールが、他のループに
接続されたポートを介して、すでにデータを受信中であるならば、当該のループ
インターフェースモジュールは、ループ初期化データを受信することはできない
。通常は、このような状況では、データ転送は中断され、ループ初期化が先ず行
われる。他の例としては、ループ初期化が中断し、他のループ(二重ループノー
ドのループ)がデータ受信を完了するまで、連続して初期化をリトライするモー
ドに移行する。さらに、もし、ループインターフェースモジュールが、一度にひ
とつのループ上でのみデータを受信できるとすれば、ループ初期化がひとつのチ
ャンネルで行われている間は、モジュールは他のポートを介してはデータを受信
できなくなる。
関連して、注目を集めている。特に、ファイバチャンネルは、より広い帯域幅を
もち、優れた接続性、モジュールの接続の容易性、長い送信距離等の点で、小型
計算機システムインターフェース(「SCSI」)バスに対して、顕著な優位性
を持っている。例えば、典型的なSCSIバスは、25mまでの延長距離の中で
、15モジュールまでを扱うことができるが、これに対し、ファイバチャンネル
は、電気的な送信路を用いた場合にはモジュール間の距離を約30mまでとし、
あるいは、光送信路を用いた場合にはモジュール間の距離を10kmまでとして
、126モジュールまで扱うことができる。従って、例えば、毎秒テラバイトの
ピークデータ送信レートを達成するためには、70本のSCSIバスが必要にな
るところであるが、ファイバチャンネルでは約10本を必要とするのみである。
やかにチャンネルを使用状態に立ち上げる(即ち、「初期化する」)ことが重要
である。
フレームを複数のチャンネル上で同時に受信できるよう、あるいは、他のチャン
ネルでデータ受信しながら1つのチャンネル上でフレームを送信できるように、
あるいは、複数のチャンネル上で初期化および応答フレームを同時に送信できる
ように配慮する必要がある。また、ワンチップバッファ内に格納されたデータに
ついては、より良い改善されたデータ検査能力が必要とされている。
を提供する。ファイバチャンネルからフレームとともに受信された巡回冗長コー
ド情報が、オンチップバッファに格納され、後に、フレームバッファに存在する
間にデータの健全性を保証するために検査される。様々な実施例では、CRC情
報とともにデータフレームは、データフレームバッファに格納され、かつ/また
は、非データフレームはCRC情報とともに、受信非データフレームバッファに
格納される。ループ初期化と応答のための専用の送信フレームバッファを含む改
良された通信チャンネルシステムについては、後に詳述する。このような専用の
送信フレームバッファを有することにより、他方のポートがデータフレームを送
信あるいは受信中に、デュアルポートノードの一方のポートが初期化、あるいは
応答フレームを送信できるものとなる。専用の受信バッファもまた、2ポートノ
ードの各ポートに対して設けられる。フレームとともにファイバチャンネルから
受信した巡回冗長コード情報は、3つのフレームバッファの1つに格納される。
これらのデータとCRCは、後で、フレームバッファに存在する間にデータの健
全性を保証するために検査される。ループの制御のための調整に要する時間を減
らすために、プログラミングにより選択的に決定された最小量のデータ(プログ
ラム可能なデータと称す)が送信のために利用可能である限り、ループの制御は
維持(即ち、ループ接続は開状態を保持)される。
巡回冗長コード(CRC)を用いるための通信チャンネルシステムを提供するも
のである。本システムは、第1のポートと第2のポートを有し、各ポートはファ
イバチャンネル調整ループ通信チャンネルをサポートし、各通信チャンネルは通
信チャンネル上のデータ送信中に巡回冗長コードを含む、第1のチャンネルノー
ドを含んでいる。本システムは、第1のチャンネルノードにオンチップで位置し
、フレームと、受信されたフレームに対応したCRCとを通信チャンネルから受
信するオンチップフレームメモリと、オンチップフレームメモリ中に存在する受
信されたフレームのデータ健全性検査のための受信された対応したCRCを用い
る健全性装置を含んでいる。
全性装置とを結合するオフチップメモリと、受信したフレームをオンチップメモ
リからオフチップメモリに移動させる間に巡回冗長コードを検証する検証装置中
の検証回路とを含んでいる。
リに移動する際に、パリティを生成しデータに付与するパリティ生成回路を含み
、ここで健全性回路は、さらに、データのフレームをオフチップメモリに移動さ
せる間に、巡回冗長コードを検査し取り除く。この実施例の他の様態では、オン
チップフレームメモリは、さらに、巡回冗長コードを含まないデータフレームを
オフチップメモリから受信し、また、システムは、さらに、オフチップメモリか
ら受信したデータフレームに基づき巡回冗長コードを生成するCRC発生器と、
生成された巡回冗長コードを含むデータフレームをオフチップメモリから通信チ
ャンネル上に送信する送信機を含んでいる。さらに他の実施例では、送信すべき
データフレームを、オフチップメモリからオンチップメモリに転送し、パリティ
を付与するもののCRC情報は含めずに、オンチップメモリに格納する。そのよ
うな一実施例では、通信チャンネルからオンチップメモリに転送された受信デー
タフレームを、CRCは付与するもののパリティ情報は含めずに、オンチップメ
モリに格納する。
、さらに、動作中に第1のチャンネルノードと結合する磁気ディスク記憶装置と
、動作中に第2のチャンネルノードと結合するコンピュータシステムとを含むも
のとする(即ち、コンピュータシステムは第2のチャンネルノードを有するもの
とする)。第2のチャンネルノードは、動作中に第1のチャンネルノードと結合
し、通信チャンネルを介して、第1のチャンネルノードと第2のチャンネルノー
ドとの間でデータを転送する。
転ディスクと、回転中のディスクと交渉をもつトランスデューサと、第1のポー
トと第2のポートを有する第1のチャンネルノードを含み、各ポートはファイバ
チャンネル調整ループ通信チャンネルをサポートする。各通信チャンネルは、通
信チャンネル上のデータ送信に巡回冗長コードを含んでいる。第1のチャンネル
ノードは、データと通信するためのトランスデューサと動作中に結合する。ディ
スクドライブは、第1のチャンネルノードにオンチップで位置し、フレームと、
受信したフレームに対応したCRCを通信チャンネルから受信するオンチップフ
レームメモリと、オンチップメモリ中に存在する受信フレームのデータ健全性を
検査するために、受信した関連CRCを用いる健全性装置を含んでいる。一実施
例では、ディスクドライブは、さらに、動作中にオンチップフレームメモリと健
全性装置と結合するオフチップメモリと、受信したフレームをオンチップメモリ
からオフチップメモリに移動させる間に巡回冗長コードを検証する検証装置中の
検証回路とを含んでいる。
ャンネルノードの第1ポートと第2ポートのそれぞれの上で、ファイバチャンネ
ル調整ループ通信チャンネルをサポートし、(b)通信チャンネルからフレーム
を受信し、ここで、受信したフレームは、受信したフレーム中の他のデータに基
づく巡回冗長コードを含み、(c)巡回冗長コードを含む受信フレームをフレー
ムバッファに格納し、(d)フレームバッファとは独立したメモリに、受信フレ
ームを格納し、(e)受信フレームを独立したメモリに転送する間に、巡回冗長
コード(CRC)を検証することにより、受信フレームの正しさを検査するステ
ップを含んでいる。
ッファに載せ、(g)送信すべきフレーム中のデータに基づき巡回冗長コードを
生成し、(h)巡回冗長コードを含み、送信すべきフレームを通信チャンネルに
送信するステップを含んでいる。本方法の一実施例では、搭載ステップ(f)は
、さらに、(f)(i)送信すべきフレームのデータのパリティを生成し、(f
)(ii)送信すべきフレームのデータにパリティを付与し、移動ステップ(d
)は、さらに、(d)(i)受信フレームを独立したメモリに移動させる間に巡
回冗長コードを取り去るステップを含むものである。本方法の他の実施例では、
受信ステップ(b)は、さらに、(b)(i)受信フレームを通信チャンネルか
ら受信している間に、巡回冗長コードを検証することにより、受信フレームの正
しさを検査するステップを含むものである。
チャンネルを介して、動作中に第1のチャンネルノードと結合する磁気ディスク
記憶装置と第2のチャンネルノードを有するコンピュータシステムとの間で、デ
ータを転送するステップを含み、ここで、第2のチャンネルノードは、通信チャ
ンネルによって、動作中に第1のチャンネルノードと結合する。
ードを含み、各ポートは、ファイバチャンネル調整ループ通信チャンネルをサポ
ートし、各通信チャンネルは、通信チャンネル上のデータ送信中に巡回冗長コー
ドを含む、通信チャンネルシステムを提供する。本システムは、また、巡回冗長
コードを含むフレームを、チャンネルノードから受信するバッファと、バッファ
とは独立したオフチップメモリとを含む。本システムは、また、受信フレームを
バッファからオフチップメモリに移動させ、受信フレームをオフチップメモリに
移動する間に巡回冗長コード(CRC)を検証することにより、受信フレームの
正しさを検査するための手段(本明細書全体で記述されるものとして)を含んで
いる。一実施例では、本移動手段は、さらに、フレームが検査されオフチップメ
モリに移動される際に、CRCを取り除くための手段を含んでいる。
に専用のデータバッファに格納される際に、フレームと、フレームの受信CRC
との間の調和をとることにより、データ検査能力の顕著な向上を図るものである
。他の実施例では、2つの非データバッファが設けられ、デュアルポートファイ
バチャンネルインターフェースノードの両方の入力ファイバ上で同時に受信する
ように動作する。いくつかの実施例では、1つのデータバッファが設けられ、デ
ュアルポートファイバチャンネルインターフェースノードのいずれか一方の入力
ファイバ上で受信するように動作する。いくつかの実施例では、フレームをオン
チップバッファからオフチップメモリに移動させている間に、フレームの巡回冗
長コードを検証する、単一のCRCチェッカーが(コスト削減のために)設けら
れる。いくつかの実施例では、それぞれの送信路上に(コスト削減のために)、
フレームをオンチップバッファからファイバチャンネルに移動させている間に、
適切な巡回冗長コードを生成する、単一のCRCチェッカーが設けられる。
実施する特定の実施様態を例証によって示す。なお、本発明の主旨を逸脱するこ
とがなければ、他の実施様態も用いることができ、構造的な変更も可能である。
本出願で説明する発明は、ハードディスクドライブ、ZIPドライブ、フロッピ
ーディスクドライブ、光ディスクドライブ、CDROM(「コンパクトディスク
・リードオンリー・メモリ」)ドライブ、他の種類のドライブを含む全ての種類
のディスクドライブ、およびRAID構成(廉価な独立したディスクドライブの
冗長配列)のようなドライブシステムや他の装置に有用である。ここで、データ
は、ドライブと他の装置や情報処理システムとの間で通信される。いくつかの実
施例では、本発明は、(複数のファイバチャンネルループを互いに接続するため
に用いられる)ハブやスイッチ、ワークステーション、プリンタ、他の装置、あ
るいはファイバチャンネル調整ループに接続される情報処理システムなどの、ノ
ードインターフェースでの非ディスク装置として有用である。
るための専用フレームバッファ、III.オンチップメモリ中のデータ健全性のた めのファイバチャンネルCRCの使用、IV.調整ループのオーバーヘッドを減少
させる方法および装置。セクションIVは、基本的に本発明の詳細に関するセクシ
ョンであるが、他のセクションも、発明の全体の環境に関わる適切な情報を提供
するものである。図1は、ファイバチャンネル・ノードインターフェースをもつ
ディスクドライブ100のブロック図である。
1220は、ループ初期化と応答のための専用送信フレームバッファ73を含ん
でいる。(「ループ初期化」は、ファイバチャンネルループを初期化する1つ以
上の特定の非データフレームの系列を送信することにより(また、これらのフレ
ームに対する応答を監視することにより)行われる。「応答」は、他のノードか
らのコマンドあるいは問い合わせに応答して送られる非データフレームである。
)ファイバチャンネル・調整ループ通信チャンネル1250(ループ1250も
しくはファイバチャンネルループ1250と称する)は、ディスクストレージ装
置100とコンピュータ102あるいは他の情報処理装置との間でデータ交換す
るのに用いることができる。一実施例では、ファイバチャンネルループ1250
は、シリアル通信チャンネルであり、他の実施例では、ファイバチャンネルルー
プ1250を実装するために2つ以上の平行線(あるいは、ファイバ)が用いら
れる。このような専用の送信フレームバッファ73によって、他のポートがデー
タフレームを送受信している間にも、デュアルポートノード1220の1つのポ
ート116が初期化および応答フレームを送信できるようになる。ポート116
はシリアルラインで、一方の信号線117は入力するデータ用であり、他方の信
号線118は出力するデータ用であり、両方の信号線117、118は通信チャ
ンネルループ1250に接続され、その一部を形成している。受信専用バッファ
(53、53′および55)もまた、2ポートノードの各ポート116に設けら
れる。ダッシュを附した引用数字(例えば、53′)をもつ各ブロックは、ダッ
シュのつかない対応したブロック(例えば、53)と同一の機能を持つが、分離
したループポートあるいは通信チャンネルに用いられることを表している。フレ
ームとともにファイバチャンネル1250から受信された巡回冗長コード情報は
、1つ以上のフレームバッファ(53、53′および55)の1つに格納され、
データの健全性を保証するために、フレームバッファ(53、53′または55
)に入っている間に後で検査される。ループ1250の制御は、ループ1250
の制御のための調整に使われる全体時間を抑制するために、データのプログラム
可能な量が送信に有効である限り、維持される(即ち、該ループ接続はオープン
に保持される)。
ッタ134、一ディスクプラッタ当り1つ以上の磁気読み書きトランスデューサ
150とアーム駆動アセンブリ126を有する磁気記憶ヘッドディスクアセンブ
リ(「HDA」)114を含んでいる。トランスデューサ(あるいは、「ヘッド
」)とHDAインターフェース113の間の信号は、ディスクプラッタ134と
の間のデータを送信する。このように、いくつかの実施例の「ディスクドライブ
」(例えば、図1のディスクドライブ1256)は、HDA114とHDAイン
ターフェース113(例えば、従来のSCSIドライブ)とを含み、1つ以上の
このような従来のディスクドライブ1256は、図1に示すように、ループある
いはファイバチャンネルトポロジーへ接続するために、外部ノードインターフェ
ース1220に接続される。他の実施例では、「ディスクドライブ」というもの
は、図2のディスクドライブ100によって代表されるものであり、これは、デ
ィスクドライブ100全体の中に、ディスクドライブ1256とともに統合され
たノードインターフェース1220を含んでいる。一実施例では、データは、次
々に、オフチップバッファ111から、またオフチップバッファ111に対して
送信される。本発明は、本実施例で示されて、それぞれのポート(すなわち、バ
ッファ53、53′)について受信非データフレームバッファ53(代わりに、
到着非データバッファ53と称する)を含む専用オンチップバッファ119と、
一実施例では、両方のポートにより同時に用いられることが可能な(他の実施例
では、一度には、単一のバッファが1つのポートのみによって使われる)送信フ
レームバッファ73と、CRCチェッカー596(図11参照)とともに共有デ
ータフレームバッファ55を提供する。以下、詳説する一実施例では、送信フレ
ームバッファ73の40ワードが、ポートAのために予約され、40ワードがポ
ートBのために予約される、これにより、両方のポートが同時に初期化可能とな
る。この実施例は、それぞれのバッファが各ポートに対応し、同時に使用するこ
とが可能な2つの独立した40ワード送信フレームバッファを持つことに相当す
る。この実施例では、これらのワードのそれぞれは、36ビットワード(32デ
ータビットと4パリティビット)である。
RC健全性検査情報は、データフレームバッファ55の中にデータとともに格納
され、次に、データがデータフレームバッファ55の外に読み出される時に検査
され、データフレームがデータフレームバッファ55の中にある時、あるいはデ
ータフレームの送信過程の初期段階のいずれかの場所で起こり得るデータ障害の
ための検査を提供する。同様に、ファイバチャンネルループ1250から非デー
タフレームとともに受信されたCRC健全性検査情報は、非データフレームバッ
ファ53(または、53′)の中にデータとともに格納され、次に、データが非
データフレームバッファ53(または、53′)の外に読み出される時に検査さ
れ、非データフレームが非データフレームバッファ53(または、53′)の中
にある時、あるいはデータフレームの送信過程の初期段階のいずれかの場所で起
こり得るデータ障害のための検査を提供する。マイクロプロセッサ112は、な
にがしかの適当な高速プロセッサであり、ディスクドライブ100内のデータ送
信、ルーティング、信号処理、誤り回復などの全体の制御を助けるために用いら
れる。本発明では、ファイバチャンネル・インターフェースチップ110は、以
下に説明するように、改良されたフレームバッファ、エラー検査およびループ調
整を提供する。
び115′)は、そこに接続されたファイバチャンネルループ1250(図2参
照)へのポートAとポートBを介したデータ送信を、直列化および並列化するポ
ートトランシーバを含む。いくつかの実施例では、トランシーバ115は、外部
トランシーバとして与えられ、他の実施例では、これらのトランシーバはブロッ
ク110内のチップ上に配される。いくつかの実施例では、右側のインターフェ
ース(即ち、図1のトランシーバ115および115´の右側に位置するもの)
は、10ビット長のパラレル入出力信号である。他の実施例では、これらは20
ビット長のものもある。ブロック110、111、112、ポートAトランシー
バ115とポートBトランシーバ115′とが一体となって、ファイバチャンネ
ルノードインターフェース1220を構成する。いくつかの実施例では、ポート
トランシーバ115、115′は、シングルチップ110の内部に統合されてい
るものもある。他の実施例では、直列化および並列化する機能を含んでいるポー
トトランシーバ115、115′は、チップ110とは独立した回路の上に実装
されているものもある。
10間の単なるインターフェースとしているものもあり、そこでは、10ビット
長あるいは20ビット長さのデータへの直列化および並列化がチップ上で行われ
る。
明はコンピュータシステム1200に用いることに非常に適している。コンピュ
ータシステム1200は、電子システムあるいは情報処理システムとも呼ばれ、
中央処理装置(CPU)、メモリ、およびシステムバスを含んでいる。コンピュ
ータシステムは、中央処理装置1204、ランダムアクセスメモリ(RAM)1
232、および、中央処理装置1204とランダムアクセスメモリ1232とを
通信上で結合するためのシステムバス1230を有するCPU情報処理システム
1202を含んでいる。CPU情報処理システム1202は、ファイバチャンネ
ルノードインターフェース1220を含んでいる。1つ以上のディスクストレー
ジ情報処理システム100から100′のそれぞれは、1つ以上のディスクドラ
イブ装置1256とファイバチャンネルノードインターフェース1220を含ん
でいる。
D(廉価な独立したディスクドライブの冗長配列)構成での単一のノードインタ
ーフェース1220に接続されており、装置100′は、ディスクドライブのR
AID配列である。CPU情報処理システム1202は、また、内部入出力バス
1210と、入出力バス1210に付属する1212、1214、1216等の
いくつかの周辺装置を駆動する入出力インターフェース回路1209を含んでい
る。周辺装置は、ハードディスクドライブ、光磁気ドライブ、フロッピーディス
クドライブ、モニター、キーボードやその他周辺装置を含んでいる。いかなる種
類のディスクドライブや他の周辺装置であっても、ここで説明するファイバチャ
ンネル方式と装置(特に、例えば、ファイバチャンネルノードインターフェース
1220の改善)を適用することができる。各装置については、Aポートあるい
はBポートのいずれかが、何らかの与えられたループ1250に接続して用いる
ことができる。
4′(中央処理ユニット1204と同一あるいは同等のもの)を有する第2のC
PU情報処理システム1202′(システム1202と同一あるいは同等のもの
)、ランダムアクセスメモリ(RAM)1232′(RAM1232と同一のも
の)、および中央処理装置1204′とランダムアクセスメモリ1232′とを
通信上で結合するためのシステムバス1230′(システムバス1230と同一
のもの)を含むものである。CPU情報処理システム1202′は、それ自身の
ファイバチャンネルノードインターフェース1220′(ノードインターフェー
ス1220と同一のもの)を含むが、第2のファイバチャンネルループ1250
′(ループ1250とは分離し独立しているループ)を介して1つ以上のディス
クシステム100に接続している(この図解した例では、ディスクシステム10
0′に接続しているが、他の例では、全ての装置あるいはディスクシステム10
0から100′に接続している)。この構成により、2つのCPUシステム12
02、1202′は、各CPUシステム1202のための分離したファイバチャ
ンネルループを用いて、1つ以上のディスクシステム100を共有することがで
きる。さらに他の実施例では、全ての装置100から100′および全てのCP
Uシステム1202から1202′は、両方のループ1250、1250′に接
続されている。
。本発明の他の実施例によれば、ファイバチャンネルコントローラは、送信・受
信の目的のためにコードワードのデータフレームを編成するプロトコルも組み込
んでいる。このプロトコルは、米国特許番号5,260,933、名称「故障時
配信をもつシリアルデータネットワークのための受け取り通知プロトコル」、発
明者G.L.Rouseに開示されている。本発明の一実施例を構築する際に用
いられるファイバチャンネル仕様は、下記のANSI規格を含んでいる。
ムバッファが第三世代の特定用途向け集積回路(「ASIC」)チップ(ファイ
バチャンネルインターフェースチップ110)に追加されている。非データフレ
ームを受信する2つのバッファ(「受信非データフレームバッファ」とも称され
る、図1の53、53′)が設けられ、コマンドとFCPフレーム(ファイバチ
ャンネルプロトコルフレーム)がノードの両方のポートに同時に受信されるよう
になる(また、全二重動作、即ち、ポートの一方のファイバで受信しながら、同
じポートの他方のファイバで送信する動作も可能となる)。これにより、ディス
クドライブ100(図2参照)が、送信の中断や完了を待つことなく、同一のポ
ートあるいは他のポート上でデータ送信を行っている間に、新しいコマンド(あ
るいは、他の非データフレーム)を一方のポートで受信することが可能となる。
従来の方法に比べより早くコマンドを手に入れることにより、本発明は、データ
送信が進行する最中に、コマンドを区別し最適化することを可能とし、以って、
システム1200の性能を向上させることができる。
ータ送信を可能としながら、応答フレームを一方のポートから送信することがで
きる。また、この送信フレームバッファ73により、他方のポート上での送信の
中断や完了を待つことなく、一方のポートからループ初期化を実行することが可
能となる。
ファを管理するために、オンチップフレームバッファが用いられる。オンチップ
RAMは、性能と半導体集積度の間のバランスを決める様々な方法によって構成
することができる。本仕様は、ファイバチャンネルループ初期化フレームと単一
フレームファイバチャンネル応答を格納し送信するのに用いられる専用フレーム
バッファ119と単一フレーム送信路70の使用について詳説するものである。
を処理するためにASICの資源のほとんどを利用する。この種類の多重フレー
ム系列を扱うために、多くのカウンタと状態機械が必要とされる。それぞれのポ
ートの設計を重複させたり、データ送信を中断することなく、本発明では、主ポ
ートがデータを送信しながら、代替ポートがフレームを送受信できるようにする
ため機能を提供するために、限られた量の論理が必要となる。本発明のいくつか
の実施例では、他方のポートがデータ送信している間に、一方のポートでフレー
ムを送信できる能力を提供する単一フレーム送信路回路70とともに、専用の送
信フレームバッファ73が設けられる(図13を参照)。この論理は、いずれか
のポートが、データを送信できるように、あるいは送信フレームバッファ73が
利用できるように、動的に構成される。
ポート上で実行される際には、データ送信は、割り込みなしに継続することが可
能となる。受信される(非データフレームである)ループ初期化フレームは、フ
レームがフレームバッファ(例えば、送信フレームバッファ73:図13参照)
に書きこまれる前に、検証される。マイクロプロセッサ112は、送信フレーム
バッファ73に対して書き込み、読み込みアクセスを持ち、それが送出できるよ
うになる前に、受信されたフレームを検定し修正できるようにする。フレームの
「ヘッダ」と「ペイロード」は、フレームバッファに格納される。(フレームの
「ヘッダ」には、フレームのソース識別子、系列計数、発信元識別子といった情
報が含まれている。フレームの「ペイロード」は、送信されるデータの本体であ
る。)マイクロプロセッサ112の管理下にある単一フレーム送信路70(図3
参照)は、フレームを編成し、フレーム開始およびフレーム終了区切り記号を含
み、フレーム巡回冗長コード(「CRC」)情報を生成する。
コル(FCP)応答フレームの送信が必要となった際には、データ送信は、割り
込みなく継続することができる。図3によれば、マイクロプロセッサ112は、
応答フレームのヘッダとペイロードを送信フレームバッファ73に格納するもの
となっている。単一フレーム送信回路70は、フレームを組み立て、フレーム開
始およびフレーム終了区切り記号を含み、フレームCRC情報を生成する。いく
つかの付加的なループ制御論理もまた、フレーム送信のためにループ1250を
開放するために設けられる。
ンタ(それぞれ、733および734)を必要とする。(時により単一フレーム
送信フレームバッファあるいは送信フレームバッファ73として記しているもの
は、一般的には、「送信フレームバッファ」であり、他の実施例では、バッファ
73は、1つ以上のポートのそれぞれのために、1つ以上の送信フレームを含ん
でいるが、「送信フレームバッファ」という用ワードは、ここでは、これら全て
の実施例を含むものとして使用する。)単一フレーム送信回路70(詳細は、図
13にて後に示す)は、フレーム長カウンタ71、送信フレーム化状態機械72
、CRC発生器76、および送信マルチプレクサ(「mux」)74を必要とす
る。
ク図である。本発明のファイバチャンネル・ノードインターフェース論理110
は、調整ループ論理とフレーム化論理を含むファイバチャンネルプロトコルを担
っている。1つの実施例は、ファイバチャンネルプロトコル(「FCP」)規格
により定義されたSCSI上位レベルプロトコルのみを用いて、クラス3SCS
I実装(上述のFC−AL仕様参照)のために最適化されている。ファイバチャ
ンネル・ノードインターフェース論理110は、デュアルポートの全二重動作時
の補助と、様々なバッファ帯域幅に対応するための4つのオンチップフレームバ
ッファ(53、53′、55、73)を含んでいる。ファイバチャンネル・ノー
ドインターフェース論理110は、マイクロプロセッサ112へも接続して、こ
れにより、マイクロプロセッサ112が、ファイバチャンネル・ノードインター
フェース論理110を構成でき、ファイバチャンネル・ノードインターフェース
論理110の現在の条件についての状態情報を読み出すことができる。
ート回路20(一方は、ポートAのために、他方はポートBのためにあり、各ポ
ートは、データ入力インターフェースとデータ出力インターフェースを持ち、ル
ープ通信に対応している)、ループ制御回路(あるいは、フレーム送信回路40
と称す)、受信路論理50、転送制御論理60、単一フレーム送信回路70、送
信路マルチプレクサ(「mux」)79、データフレーム送信路論理80、およ
びマイクロプロセッサインターフェース90を含んでいる。これらのブロックは
、受信フレーム処理、送信データフレーム生成、単一フレーム送信生成、転送制
御およびプロセッサ接続などの機能をサポートしている。
に対し、ファイバチャンネル・ノードインターフェース論理110のレジスタと
カウンタへのアクセスを提供する。(「マイクロプロセッサ」と記述するときに
は、この語句がなんらかの適切なプログラム可能な論理装置を含むものであるこ
とを前提とする。)インターフェースレジスタは、ファイバチャンネルインター
フェースの応答に先立ち、外部マイクロプロセッサ112により初期化される。
出力送信はこのインターフェースにより初期化され、受信した送信の状態はこの
インターフェースを通して参照可能となる。
路20へのデータ入力を伝えるA_IN3021と、ファイバチャンネル16か
らポートBのループポート回路20へのデータ入力を伝えるB_IN3021と
を含んでいる。オフチップバッファからのデータ(DATA FROM OFF
−CHIP BUFFER)3051は、オフチップバッファ111から受信路
50へのデータを伝える。オフチップバッファへのデータ(TO OFF−CH
IP BUFFER)3052は、オフチップバッファ111へ受信路50から
データを伝える。バッファ状態(BUFFER STATUS)3061は、転
送制御60に状態を提供する。MPUインターフェース90へのMPUアドレス
(MPU ADDRESS)3091およびMPUデータ(MPU DATA)
3095は、それぞれ、マイクロプロセッサ112からのアドレスとデータを提
供する。MPUインターフェース90への読み込みイネーブル(READ_EN
ABLE)3092および書き込みイネーブル(WRITE_ENABLE)3
093は、マイクロプロセッサ112からのイネーブル信号を提供する。MPU
信号3076は、マイクロプロセッサ112が送信フレームバッファ73にアク
セスできるようにする。A出力(A_OUT)3023は、ポートAのためのデ
ータをループポート回路20からファイバチャンネル16に伝え、B出力(B_
OUT)3024は、ポートBのためのデータをループポート回路20からファ
イバチャンネル16に伝える。
明の一実施例のファイバチャンネル設計は、周辺装置の直接接続のためのデュア
ルポートのファイバチャンネルインターフェースをサポートする2つの同一のル
ープポート回路20を含んでいる。一実施例では、ファイバチャンネルループポ
ート回路20は、受信レジスタ21、8B/10Bデコーダ論理22、ワード同
期状態機械23、受信クロック喪失検出器24、同期喪失タイマー25、調整ル
ープ論理26および8B/10Bエンコーダ27を含む。
スを用いる外部トランシーバ115(図1参照)に接続している。本実施例では
、トランシーバ115は、パラレルインターフェース(例えば、10ビット幅あ
るいは20ビット幅インターフェース)との間で、シリアルデータを並列化した
り、逆に、パラレルデータを直列化する。他の実施例では、これらのトランシー
バ115は、チップ110に集積化されている。パラレルデータ(ファイバチャ
ンネルからの入力)は、各トランシーバ115の受信部から受信クロックを用い
て取り込まれ、パラレル8B/10Bデコーダを用いたデコーディングの前に、
20ビット幅形式に変換される。次に、16ビットデータと2つのk記号(特別
の、順序付けられた集合を表すために用いられる)が、調整ループ論理26に送
られる前に、ワード健全性のために検査される。調整ループ論理26の出力は、
送信クロックに対して、再度同期化され、受信フレーム化論理に送られるか、あ
るいはエンコーダ27を介してループ1250上に再送信される。一実施例では
、上記の各操作の間に、エンコーダ27は、1つの8ビット文字を1つの10ビ
ット文字に変換する。他の実施例では、上記の各操作の間に、2つ以上の8ビッ
ト文字が、対応する数の10ビット文字に変換される。(米国特許番号5,66
3,724、名称「16B/20Bエンコーダ」参照)調整ループ論理26は、
ループ状態機械、順序付け集合デコーダと弾性挿入・削除機能を含んでいる。ル
ープポート回路20は、ファイバチャンネル調整ループANSI規格(即ち、上
記のFC−ALもしくはFC−AL2)に定義されている調整ループプロトコル
を実装している。
ーバ115によって10ビット並列データに変換される。受信レジスタ21は、
トランシーバ115の受信部により発生されたクロックを用いて、10ビットデ
ータ(A_IN3021またはB_IN3022)をトランシーバ115から取
り込む。データは、8B/10Bデコーダ22に送られる前に、直ちに20ビッ
ト幅(即ち、2つの10ビット文字幅)に変換される。8B/10Bデコーダと
称され、一実施例でのデコーダ22は、各操作中に、1つの10ビット文字を1
つの8ビット文字に変換するが、他の実施例では、各操作中に、2つ以上の10
ビット文字が対応する下図の8ビット文字に変換される。
エンコードされたデータを入力する。2つの10ビット文字は、同時にデコード
され、2つの8ビット文字を出力する。入力文字の中で連続している不均衡を検
査し、誤り状態がワード同期状態機械23と調整ループ論理26に送られる。連
続している不均衡誤りに続き、次の順序付け集合に対し、負の連続不均衡を適用
する。コード化規則の違反もまた検査され、コード化違反状態もワード同期状態
機械23に送られる。
止した時を検出する。「受信クロックの喪失」条件が検出された時には、ワード
同期状態機械23はリセットされ、データが調整ループ論理26のFIFOに入
るのを阻止する(FIFOは、先入れ先出しメモリであり、通常、異なる速度で
駆動されるバスあるいはプロセス間を接続するために用いられる)。ワード同期
が再び得られるまで、最新充填ワード(「CFW」については、後に詳述する)
が送信される。
視する。3つの順序付け集合について、適当なバイト・制御文字配列を持ってい
ることが検出され、不要な無効文字が検出されない時に、ワード同期が達成され
る。「ワード同期喪失」は、FC−PH(即ち、FC−PH物理的かつ信号イン
ターフェースX3T11/プロジェクト755D/改版4.3)規格によって定
義されている。ワード同期が確立されると、データは調整ループ論理26のFI
FOに入力される。
失条件が存在した時を決定するのに用いられる(3つの有効な順序付け集合を検
出するのには、フレーム時間まで要するためである)。このタイマーが時間終了
すると、マイクロプロセッサ112には、同期喪失(LOSS−OF−SYNC
)割込み信号4055によって割込みが入り、それが措置をとるようになる。
付け集合デコード論理、ループ状態機会論理、最新充填ワード選択論理、ループ
出力マルチプレクサ論理ならびに種々の機能を含んでいる。ループ弾性FIFO
は、(受信クロックによりクロッキングされた)入力データを送信クロックと、
再度、同期をとるために必要なバッファリングを提供する。ループFIFO制御
論理は、調整ループ論理26の状態を監視し、挿入または削除操作が必要かどう
かを判断する。順序付け集合は、順序付け集合認識論理により、デコードされる
。これらの順序付け集合は、FC−PHで定義された順序付け集合(即ち、PC
−PH物理的かつ信号インターフェースX3T11/プロジェクト755D/改
版4.3)を含んでおり、これは、フレーム区切り記号と調整ループ順序付け集
合を含んでいる。最新充填ワード選択論理は、ループの状態と、最新充填ワード
(CFW)を決定するデコードされた順序付け集合を監視する。調整されたルー
プが有効になると、ハードウェア状態機械は、順序付け集合デコードを用いて、
FC−AL規格(即ち、ファイバチャンネルFC−AL1調整ループ規格X3T
11/プロジェクト960D/改版4.5、またはファイバチャンネルFC−A
L2調整ループ規格X3T11/プロジェクト1133D/改版6.3)に記述
されたループ関数を実行する。入力である、ループA送信制御出力(LOOP
A TRANSMIT CONTROL OUTPUTS)6425とループB
送信制御出力(LOOP B TRANSMIT CONTROL OUTPU
TS)6427は、図6の論理から調整ループ論理26への入力を提供する。出
力である、ループA状態および制御(LOOP A STATES AND C
ONTROL)6422およびループB状態および制御(LOOP B STA
TES AND CONTROL)6432は、それぞれのループの出力を制御
し、ループ制御論理に状態を提供し、次に、ループ制御論理は、ループ状態機械
(図6参照)への要求を生成する。出力である、ループAデータ(LOOP A
DATA)4026およびループBデータ(LOOP B DATA)402
7は、それぞれのローカルポート(図7のブロック51、51´)へのデータを
提供する。
、16ビットデータと2k文字(下位k文字は常に0)を受け取る。一実施例で
は、入力は、2つの10ビット文字にエンコードされる。この2つの10ビット
文字は、分離され、データをシリアルストリームに変換するトランシーバ115
(図1参照)にひとつずつ出力される。他の実施例では、両方の10ビット文字
(即ち、全部で20ビット)が、データをシリアルストリームに変換するトラン
シーバ115に平行して送られる。送信マルチプレクサ79(図3参照)は、フ
レーム終了(「EOF」)区切り記号がいつ送信されているかを表す状態も提供
し、最新の連続している不均衡に基づき、エンコーダ27がEOFの正しい型(
あるいは、「好み」)を選択できるようにする。また、ポートが(開状態にあっ
て)送信中となっている時、あるいは、調整ループ論理26がプリミティブを送
信している時には、連続している不均衡は、各非EOFプリミティブの開始で、
強制的にネガティブとされる。出力信号A_OUT3023とB_OUT302
4は、各トランシーバ115、115′にデータを送信する。
たならば、ループを開状態に保持するために用いられるコンパレータ論理30を
示す。オフチップ有効データ(OFF−CHIP AVAILABLE DAT
A)5011は、予め定めた値X−FRAMES5013(一実施例において、
これは、プログラム可能な値であり、その最適な値は経験的に定められる。一実
施例では、この値は、1フレームと定める)と、コンパレータ5010によって
比較される。データフレーム有効データ(DATA―FRAME DATA A
VAILABLE)5015は、予め定めた値Y−WORDS5017(一実施
例において、これは、プログラム可能な値であり、その最適な値は経験的に定め
られる。一実施例では、この値は、フレームの2分の一に含まれるワードの数と
定める。一実施例では、約2000ワードが存在し、Y−WORDSは約100
0となる)と、コンパレータ5012によって比較される。ANDゲート501
4は、両方の条件が満たされたことを判断し、HOLD LOOP OPEN信
号5019を出力する。
0と称す)のブロック図である。ループ制御回路40(図3および図6参照)は
、フレームあるいはR_RDYの送信を開始するために、(ポートAおよびポー
トBの調整ループ論理26中の)調整ループ状態機械への適切な要求と、送信フ
レーム化状態機械72(図13参照)および81(図15参照)への要求を生成
するための制御論理を含んでいる。
求された際に呼び出され実行される論理を含んでいる。送信データシーケンサ論
理41は、入力信号である送信状態入力(TRANSMIT STATUS I
NPUTS)6411を用いて送信を監視し、送信の各段階についての許可信号
(即ち、許可信号である、送信制御出力(TRANSMIT CONTROL
OUTPUTS6413))を生成する。これにより、マイクロプロセッサ11
2が介入することなく、送信準備およびFCP応答が生成できる。 ループポートA/B開制御状態機械42(ポートA)および42′(ポートB
)は、他のループポートによりポートが開いている場合か、ループ1250がフ
レームを送信するために開いている場合を扱う。この論理は、ループ1250の
調整と閉鎖の要求と、R_RDYと様々な種類のフレームを送信する要求とを生
成するものであり、半二重あるいは全二重動作のために構成することができる。
る。 ・マイクロプロセッサ112からのXMITポートを使ってのフレーム送信要
求が許可されていること ・送信ポートが監視状態にあること ・送信長カウンタがゼロでないこと ・マイクロプロセッサ112から、送信を中断させる要求がないこと ・(非データ送信あるいはデータ書き込み送信で、送信準備が送信されていな
いものの、データ閾値は満足している状態にあるか、データ読み込み送信で、デ
ータ閾値とデータフレームバッファ閾値とが満足した状態にあること)
状態にある時にのみ、送信される。ポートが全二重モードで構成されている際に
は、Opened状態あるいはOpen状態のいずれの状態でも送信される。R
_RDYを送信する条件には、利用可能なバッファー間信用と最大バッファー間
信用未満の最大のR_RDYとを含んでいる。(以下で図12にて説明するバッ
ファ間信用制御論理603は、接続されたポートに対してバッファ信用を発行し
、フレームが送られるようにする。この信用は、R_RDYを送ることにより発
行される。
時のみ送信される。ポートが全二重モードで構成される際には、もしポートがフ
レームの受け取り側で全二重モードでオープンされるならば、フレームはOpe
n状態もしくはOpened状態で送信される。
、ブロック609)はゼロでないこと ループ1250を閉じさせる条件は以下を含んでいる。 ・Opened状態に入る際には、利用可能なバッファ間信用はないこと ・Opened状態にある時には、際立ったR_RDYはなく、いかなるバッ
ファ間信用も利用可能でないこと ・ポートがOpened状態にある時に、プロセッサのビージー要求が有効に
なっていること ・送信が完了していること ・データ読み込み送信操作とデータは利用可能でないこと ・CLSプリミティブが受信され、いかなるバッファ間信用も利用可能でない
こと ・マイクロプロセッサ一時中断要求は未発行であり、論理はフレームの間にあ
ること。
A)および46′(ポートB)は、ループ1250が開初期化状態の場合を扱う
。この論理46、46′は、フレームを送信する要求を生成する。各ポート(4
6、46′)には1つの状態機械が存在する。これらの状態機械は、マイクロプ
ロセッサ112がフレームを要求した際に、フレームを送信する要求を生成し、
EOFの送信を監視する。送信が完了すると、送信完了信号がマイクロプロセッ
サ112に対して生成される。
LE TO TRANSMIT R_RDY6017、PORT CREDIT
AVAILABLE TO TRANSMIT A FRAME6020(図
12参照)、LOOP A STATES AND CONTROL6422、
LOOP B STATES AND CONTROL6432(図4参照)と
DATA AVAILABLE6019(図12参照)が含まれている。ブロッ
ク40からの出力には、TRANSMIT CONTROL OUTPUTS6
413、LOOP A TRANSMIT CONTROL OUTPUTS6
425とLOOP B TRANSMIT CONTROL OUTPUTS6
427が含まれている。
と題したセクションにて説明する。
フレームバッファ119中のバッファは、到着および送出フレームを扱うために
用いられる。受信され送信されるフレームは、たいてい、大きなオフチップ領域
(即ち、オフチップバッファ111)に、低速の転送レートで格納される。オフ
チップバッファ111が、単一ポートに対しては高速の転送レートが利用可能と
なっている時でも、デュアルポート設計に対して必要とされる帯域幅は、より広
いものであり、より高いコストが必要になる。FC−AL ASIC110(図
1参照)のオンチップフレームバッファ119は、性能、半導体集積度、コスト
について最適なバランスを得るために、様々な方法で構成することができる。本
仕様は、非データ型フレームを各ポート上で同時に受信する専用のフレームバッ
ファ53、53′(オンチップフレームバッファ119全体の要素)の使用につ
いて詳細に定めるとともに、専用の大型データフレームバッファ55(または、
オンチップフレームバッファ119全体の要素)を提供するものである。
、同時に受信される。フレームは、通常、受信した後、大型のオフチップメモリ
111に移されそこに格納される。各フレームは、検証されなければならず、ま
た、フレームを外部に送信する前に、フレーム巡回冗長コード(CRC)情報も
検査する必要がある。受信フレーム検証とCRC検査論理の重複を避けるために
、各受信非データフレームバッファ53、53′が、各ポート116に1つづ設
けられ、高速のインターフェース転送レートで同時にフレームが受信できるよう
に、また一度に読み出され、検証した後、外部に送信できるようになる。非デー
タフレームが他のポートで同時に受信されている間にも、データが1つのポート
で受信あるいは送信できるように、大型の共有データフレームバッファ55もま
た、ポート間で共有できるように設けられる。さらに、2つの独立した一方向性
のファイバも各ポートに設けられるため、単一ポートが同時に送信と受信の両方
を実行できる。
タフレームを送信している最中、あるいは送信フレームバッファ73が非データ
フレームを送信している最中に、ポートA受信ファイバ117は、非データフレ
ームを受信して、非データ受信バッファ53に入力することができ、同時に、非
データフレームを、送信フレームバッファ73から送信している最中、あるいは
データフレームをデータフレームバッファ55から送信している最中に(ポート
Aが非データフレームを送信している場合)、ポートBは非データフレームを受
信して非データ受信バッファ53′に入力することができる。受信フレーム検証
論理およびCRCチェッカーを使うために、データフレームバッファ55または
、受信フレームバッファ53、53′のいずれか一方を、選択できる。本発明の
一実施例では、単一のデータフレームバッファ55が設けられ、同時には1つの
ポート116のために利用できるのみであり、いかなる時にも送信あるいは受信
のいずれか一方に利用される。他の実施例では、このような制限を排するために
、複数のデータフレームバッファ55が設けられるものもある。また、本発明の
一実施例では、単一の送信フレームバッファ73が設けられ、同時に1つのポー
ト116のために利用できるのみとしている。他の実施例では、このような制限
を排し、全く同時にループ初期化操作(あるいは他の非データ応答の送信)を両
方のポートで動作可能とするために、複数の送信フレームバッファ73が設けら
れるものもある。
ームが、プライマリポート上で受信される。同時に、非データフレームが、代替
のポート上で受信される。データフレーム(ヘッダ、ペイロード、CRCおよび
フレーム区切り記号を含む)は、大型のデータフレームバッファ55に格納され
、一方、非データフレーム(こちらも、ヘッダ、ペイロード、CRCおよびフレ
ーム区切り記号を含む)は、小さい受信フレームバッファ53(又は、53′)
に格納される。各ポート116には、1つの受信フレームバッファ53が設けら
れる。3つのフレームバッファ(53、53′、55)の1つがデータを利用で
きる状態になると、受信検証論理595およびCRC検査論理596を用いるた
めに、それが選択される(図11参照)。
ポート上で送信される。同時に、非データフレームはいずれかのポートで受信さ
れる。データのペイロードは、外部から読み込まれ、データフレームバッファ5
5に書き込まれ、インターフェース送信が始まるまでそこに格納される。(ヘッ
ダ、CRC,フレーム区切り記号は、フレームバッファからフレームが読み出さ
れた後に、付加される。)同時に、非データフレームが、プライマリポートある
いは代替ポートのいずれかを通して、受信される。非データフレームは、受信フ
レームバッファ53又は53′に書き込まれ、そこで、フレームバッファが受信
検証論理595およびCRC検査ロジック596にアクセスできるようになる迄
、保持される。
ァ55には優先権が与えられる。非データフレームは、データ送信が中断したり
完了した時に扱われる。もし、ループバッファ間信用がもはや利用可能ではない
ような状態で、受信フレームバッファ53の1つが満杯になった場合には、バッ
ファ間信用が再び利用可能となるよう、受信フレームバッファ空間を開放するた
めに、データフレームバッファ55の書き込み・読み出し操作は中断される。読
み出しが短時間中断している間に新しいフレームがデータフレームRAM555
に書き込まれるため、到着したデータフレームは、この間、データフレームバッ
ファ55に格納される。書き込みが短時間中断している間にフレームがRAM5
55から読み出されるため、インターフェースに利用可能な送出データフレーム
は、この間暫定的に減少する。
(図3参照)のブロック図である。受信路およびフレームバッファブロック50
は、受信したフレームを処理し、直接、外部に(オフチップバッファ111に向
けて)、あるいは、単一フレーム送信回路70にフレームを送るか、フレームを
受信する3つのフレームバッファ(受信非データフレームバッファ53、53′
又はデータフレームバッファ55)のうちの1つに格納する。受信路50は、事
前バッファ受信フレーム処理(ブロック51、51′)、データフレームバッフ
ァマルチプレクサ52、ポートAおよびポートB用の受信非データフレームバッ
ファ53、53′、データフレームバッファ55、データフレームバッファ送信
長カウンタ54、フレームバッファコントローラ56、共通受信路59、および
バッファインターエース58の各ブロックを含んでいる。
図6への入力である)LOOP A STATES AND CONTROL6
422である。ブロック51′への入力は、図4からのLOOP B DATA
4027と(図6への入力である)LOOP B STATES AND CO
NTROL6432である。データフレームバッファ55への入力は、OFF- CHIP BUFFER DATA3051を含む。信号であるDATA XF
ER CONTROL7521は、データフレームバッファマルチプレクサ52
を制御する。信号BUF_PAUSE7561は、フレームバッファコントロー
ラ56に対して、中断が求められていることを通知する(通常は、バッファが送
信レートの帯域幅に対応できないことが理由である)。信号LD_COUNTE
RS7541は、データフレームバッファ送信長カウンタ54に対して、カウン
タ値をロードするように通知する。
されたフレームバッファに存在することを示している。フレームバッファコント
ローラ56は、読み込み許可信号RD_ENABLE7532をポートA受信非
データフレームバッファ53に送り、RD_ENABLE7552をデータフレ
ームバッファ55に送り、RD_ENABLE7533をポートB受信非データ
フレームバッファ53′に送る。バッファコントロールインターフェース58は
、選択、ストローブ、および許可信号であるオフチップバッファのためのCON
TROLS FOR OFF−CHIP BUFFER7589をオフチップバ
ッファ111のために提供する。オフチップバッファへのデータ出力DATA
TO OFF−CHIP BUFFER3052は、受信データフレームと非デ
ータフレームをオフチップバッファ111に提供する。
態機械512の出力とを、DATA XFER CTL7521ビットセットを
持つポートから選択する。このマルチプレクサ52の出力は、データフレームバ
ッファ55に対し、データと状態信号(図10の、それぞれ8511と8512
)を提供し、データがデータフレームバッファRAM555(図10参照)に書
き込められるようになる。
53′、55)の1つに入力されるフレームを準備する、ファイバチャンネル事
前バッファ受信フレーム処理路回路51のブロック図である。事前バッファ受信
路ブロック51は、従前バッファ受信フレーム化状態機械512、事前バッファ
受信フレーム長カウンタ515(およびそのマルチプレクサ514)、およびE
OF変更論理513を含んでいる。フレームは両方のポートに同時に受信される
ので、このブロック51は、ポートAとポートBの両方に複写して使える(即ち
、各ポートに一回ずつ実装すればよい)。
受信されるかを決定するために、入力ストリームを監視する。SOFが検出され
た時に、ヘッダ、ペイロードおよびフレーム区切り記号の各ワードのための信号
が生成される。この状態機械512は、ヘッダあるいはペイロードの間に受信さ
れる無効なプリミティブについてと、最大のフレーム長を違反する送信(多くは
、EOFの破壊が原因となる)について検査する。
のR_CTLフィールドに基づき、コマンドあるいは、受信フレームの行先とな
るフレームバッファのデータバッファ領域の最大フレーム長さ(マルチプレクサ
4514により選択されたように)とともに、フレームの最初にロードされる。
もし、EOFの検出前にカウンタがゼロに達するならば、長さエラーが検出され
る。この機能は、フレームバッファ内での割り当て空間の規定外設定を防止する
ため役立つ。
るかどうかを確認し、フレームバッファへの許可を生成する。EOF変更論理5
13は、事前バッファ受信フレーム長カウンタ515により利用される、到着フ
レームの経路制御フィールドを取り込む。EOF変更論理513は、また、EO
Fフィールドを変更し、より詳細な状態情報が、フレームバッファを経由して共
通受信路59に到達するようにする。
DATA4027は、EOF変更論理513に結合される。LOOP A ST
ATES AND CONTROL6422と、LOOP B STATES
AND CONTROL6432(図6への入力でもある)は、ループ1250
に関する状態情報を、状態機械512に提供する。MAX FRAME SIZ
E8517は、データフレーム、制御フレームとその他のフレームの最大フレー
ムサイズに関する情報を、マルチプレクサ514とカウンタ515に提供する。
、PRE−BUFFER−RECEIVE STATES8512は、データと
状態情報を、非データバッファ53、53(図9を参照)とデータフレームバッ
ファ55に提供する。
ク図である。受信非データフレームバッファ53は、受信フレームバッファ書き
込み制御533、受信フレームバッファ読み出し制御534、受信フレームバッ
ファRAM535、受信フレームバッファ状態ブロック536、および受信フレ
ームバッファフレームカウンタ531とを含んでいる。フレームは両方のポート
に同時に受信されるため、この回路53は、ポートAおよびポートBのそれぞれ
に1つづつ実装される。
537)、データ(WDAT9536)および受信フレームバッファRAM53
5中のランダムアクセスメモリ(RAM)に対する書き込み許可(WE9539
)を生成する。フレームのデータが受信される時に、事前バッファ受信状態機械
512からの状態許可を用いて、書き込み許可(WE9539)を展開し、RA
M535に書き込みむ。アドレスが更新され、受信フレームバッファ状態ブロッ
ク536によって、受信フレームバッファRAM535の中にどれだけ利用可能
な空間があるかを決定するために用いられるラップビット(WRAP9538)
が設けられる。ループポート回路20からのデータは、16ビット幅から32ビ
ット幅に変換され、SOFあるいはEOF区切り記号を表すフラグビットが追加
される。受信フレームからのCRCは、データを保護するために、非データフレ
ームバッファRAM535に達する。すなわち、ファイバチャンネルから受信さ
れたCRC情報は、非データフレームバッファ53にデータとともに格納され、
次に、データが非データフレームバッファ53から読み出される時(例えば、オ
フチップバッファ111に送信される時)に検査され、データが非データフレー
ムバッファ53に留まっていた際になんらかのエラーがデータに生じていないか
を検出するようにする(当然のことながら、データがファイバチャンネルループ
1250中を移動中にデータ中に生じるエラーについても検出される)。ブロッ
ク53への入力信号には、PRE−BUFFER−RECEIVE DATA8
511と、PRE−BUFFER−RECEIVE STATES8512(図
8参照)と、レジスタに登録された(即ち、後の利用のためにレジスタに保管さ
れた信号としての)マイクロプロセッサ112からのMPU DATA9533
と、MPU ADDRESS9534が含まれている。
RAM535の読み出しアドレス(RPTR9541)を発生し、RAM535
からデータ(RDAT9540)を取得する。フレームバッファ制御器56(図
7を参照)が、受信非データフレームバッファ53を選択すると、受信フレーム
バッファRAM535への読み出しが可能になる。アドレスが増分され、受信フ
レームバッファRAM535において利用可能な空間の大きさを判定するための
受信フレームバッファ状態ブロック536によって使用される、ラップビット(
WRAP9542)が与えられる。受信フレームバッファRAM535からのデ
ータはレジスタに取得され、フレ―ムの始まりと終わりを判定するためのフラグ
ビットがモニターされる。いつデータが有効であるかを示すため、イネーブルが
共通受信路59(図7を参照)によって使用されるように与えられる。ブロック
534への入力信号は、マイクロプロセッサ112からのREGISTERED
READ_ENABLE9535を含む。ブロック534からの出力信号は、
RECEIVE NON−DATA BUFFER DATA9543およびN
ON−DATA VALID READ9546を含む。
3ビット幅(32ビットデータワード+SOF/EOFフラグビット)および3
04ワード長である。受信非データフレームのSOF、ヘッダ、ペイロード、C
RCおよびEOFは、オフチップバッファ111および共通受信路59へのアク
セスが利用可能となるまで保持されるよう、RAM535に書き込まれる。一実
施例においては、組込み自己テスト制御器が、受信フレームバッファRAM53
5を、特にそのメモリの物理的なレイアウトに対して展開されるデータパターン
に関してテストされるようにさせる。
き込みおよび読み出しポインタを比較し、バッファが空であるかどうかを判定し
、バッファが空でない場合には、受信フレームバッファRAM535においてど
の程度の数の空間フレームが利用可能であるかを判定する。このブロック536
(AVAILABLE SPACE9545)の出力は、受信フレームバッファ RAM535が共通受信路59へのアクセスを要求するかどうかを判定するため
に、フレームバッファ制御器56によって使用される。その出力は、信用が利用
可能であるかどうかを判定するため、バッファ間信用制御論理603(図12を
参照)によっても使用される。
バッファRAM535にあるフレーム数を計数する。カウンタ531は、フレー
ムが受信フレームバッファRAM535に書き込まれる時に増分され、フレーム
が受信フレームバッファRAM535から読み出される時に減分される。その計
数(COUNT OF FRAMES IN BUFFER9544)は、信用
が利用可能であるかどうかを判定するために、バッファ間信用制御論理603に
よって使用される。一実施例においては、適切な保持時間を与えるために、RA
Mに入り込む(クロックを除く)すべての入力が遅延される。
である。データフレームバッファ55は、データフレームバッファ書き込み制御
器553、データフレームバッファ読み出し制御器554、データフレームバッ
ファRAM555、データフレームバッファ状態ブロック556、データフレー
ムバッファフレームカウンタ551、およびデータフレーム取得ブロック552
を含む。どのような時間においても1個のデータ転送のみが許可される。従って
、データフレームバッファ55はポートAとポートBによって共有される。
9555)、データ(WDAT9554)、およびデータフレームバッファRA
M555に対する書き込みイネーブル(WE9557)を発生する。書き込み動
作(ディスクに書き込まれるべきデータ)に対して、データフレームが受信され
ると、書き込みイネーブル(WE9557)をメモリ555に与えるために、事
前バッファ受信状態機械512からの状態イネーブルが使用される。読み出し動
作(ディスクから読み出されるべきデータ)に対して、書き込みイネーブル(W
E9557)をメモリ555に与えるために、フレームバッファ制御器56から
のイネーブルが使用される。アドレスが増分され、データフレームバッファRA
M555において利用可能なデータ/空間の大きさを判定するためデータフレー
ムバッファ状態ブロック556によって使用される、ラップビット(WRAP9
556)が与えられる。書き込み動作に対して、ループポート回路20からのデ
ータが、16ビット幅から32ビット幅に変換され、SOFまたはEOF区切り
記号を示すために、フラグビットが与えられる。受信されたフレームからのCR
Cは、データを保護するために、データフレームバッファRAM555を介して
送られる。すなわち、ファイバチャンネルから受信されるCRC情報は、データ
と一緒にデータフレームバッファ55に記憶される。その後、データがデータフ
レームバッファ55内に存在する際にそれらのデータに生ずるいかなるエラーも
検出されるように(もちろん、ファイバチャンネルループ1250を移動中にそ
れらのデータに生ずるエラーも検出され得るように)、そのCRC情報は、それ
らのデータがデータフレームバッファ55から読み出される際に(例えば、それ
らがオフチップバッファ111に転送される際に、)検査される。一実施例にお
いては、読み出し動作に対して、オフチップバッファ111からのデータが、1
6ビット幅から32ビット幅に変換され、データを保護するためにパリティが発
生される。ブロック553への入力信号は、PRE−BUFFER−RECEI
VE DATA8511およびPRE−BUFFER−RECEIVE STA
TES8512(図8を参照)、並びにDATA FROM OFF−CHIP
BUFFER3051(図3を参照)を含む。
図2を参照)からデータフレームバッファRAM555を介して、その後オフチ
ップバッファ111に送られる場合、データフレームバッファRAM555内の
データがCRC情報によって保護される。しかし、ファイバチャンネルループ1
250に転送するために、それらがオフチップバッファ111からRAM555
に流れた場合には、パリティによって保護される(後者の場合、データがデータ
フレームバッファRAM555を出た後、CRC情報がファイバチャンネルに向
かっているデータに付加される)。
ファRAM555の読み出しアドレス(RPTR9559)を発生し、RAM5
55からデータ(RDAT9558)を取得する。書き込み動作(ディスクに書
き込まれるべきデータ)に対して、フレームバッファ制御器56は、データフレ
ームバッファ55を選択し、メモリへの読み出しが可能にさせられる。読み出し
動作(ディスクから読み出されるべきデータ)に対して、転送フレーム状態機械
81(図15を参照)は、メモリの読み出しを可能にさせる。アドレスが増分さ
れ、データフレームバッファRAM555においてどの程度のデータ/空間が利
用可能であるかを判定するため、データフレームバッファ状態ブロック556に
よって使用される、ラップビット(WRAP9560)が与えられる。書き込み
動作に対して、フレームバッファRAMからのデータがレジスタに取得され、フ
レ―ムの開始と終了を判定するためのフラグビットがモニターされる。データが
有効である時を示すため、イネーブルが共通受信路59によって使用されるよう
に与えられる。読み出し動作に対して、データフレームバッファRAM555か
らのデータがレジスタ中に取得され、パリティが検査される。ブロック554か
らの出力信号は、DATA FRAME BUFFER DATA9564、D
ATA VALID READ9563、およびDATA PARITY ER
ROR9562を含む。
ては、さらに組み込み自己テスト制御器を含む。一実施例では、RAMは、36
ビット幅(32ビットデータワード+4個のSOF/EOFフラグビットまたは
パリティビット)および3,232ワード長である。書き込み動作(ディスクに
書き込まれるべきデータ)に対して、受信データフレームのSOF、ヘッダ、ペ
イロード、CRCおよびEOFは、オフチップバッファ111および共通受信路
59へのアクセスが利用可能となるまで保持されるよう、RAM555に書き込
まれる。読み出し動作(ディスクから読み出されるべきデータ)に対して、ルー
プ1250が開かれ、データが転送されるまで保持されるように、ペイロードの
みがRAM555に書き込まれる。一実施例においては、適切な保持時間を与え
るために、RAMに入り込む(クロックを除く)すべての入力が遅延させられる
。
M555の書き込みおよび読み出しポインタを比較し、バッファが空であるかど
うかを判定し、バッファが空でない場合には、バッファ内においてどの程度の数
のデータ/空間フレームが利用可能であるかを判定する。書き込み動作に対して
、このブロック556(AVAILABLE SPACE9561)の出力は、
データフレームバッファ55が共通受信路59へのアクセスを要求するかどうか
を判定するために、フレームバッファ制御器56によって使用される。その出力
は、信用が利用可能であるかどうかを判定するため、バッファ間信用制御器60
3(図12を参照)によっても使用される。
ブロック40は、フレームが転送され得るかどうかを判定するために、フレーム
バッファ内のデータ量を監視する。データフレームバッファ閾値は、ループ12
50を開くよう調整するために適合される必要がある。全フレームが利用可能で
はないが、処理中である(データフレームバッファ55および/またはオフチッ
プバッファ111に格納されようとしている)場合には、ループ1250を開放
状態に保持させるために、データフレームバッファ保持閾値も発生される。
AME_OUT9550を使用して、現にデータフレームバッファRAM555
にあるフレーム数を計数する。カウンタ551は、フレームがRAM555に書
き込まれる時に増分され、フレームがRAM555から読み出される時に減分さ
れる。その計数(信号COUNT OF FRAMES IN BUFFER9
566)は、信用が利用可能であるかどうかを判定するために、バッファ間信用
制御器603によって使用される。
れるとき、(入力信号ENABLE DATA WRITE DETECT95
51を用いて)受信データフレームを監視し、フレームヘッダの様々なフィール
ドを取得する。その後、これらの値(DATA CAPTURE OUTPUT
9565)は、マイクロプロセッサ112によって読み出される。
、読み出しデータがいかにしてデータフレームバッファ55内に取り込まれるか
を制御する2個のカウンタを含む。(ブロック54内の)データフレームバッフ
ァ転送長カウンタは、ファイバチャンネル転送に対してどの程度多くのデータが
オフチップバッファ111から取り込まれるべきかを判定するために使用される
。どのフレームバッファがオフチップバッファ111にアクセスすべきかを再評
価するため、制御器56を一時停止させる前に(以下の章で説明される処理)、
(ブロック54内の)データフレームバッファ転送長カウンタは、ファイバチャ
ンネル転送に対してどの程度多くのデータがオフチップバッファ111から取り
込まれるべきかを判定するために使用される。
フレームバッファ55、ポートA受信非データフレームバッファ53、またはポ
ートB受信非データフレームバッファ53′)のいずれが、オフチップバッファ
111のリソースへのアクセスを許可されるべきかを判定する。ポートがループ
初期化状態にあって、しかもそのポート受信非データフレームバッファ53(す
なわち、53または53′)が空でない場合には、ループ初期化フレームは最高
優先度を与えられ、その結果ループ初期化が進行できる。データ転送は、次の最
高優先度を与えられ、受信非データフレームバッファ53が満たされない限り続
行されることになる。
い場合には、その特定の受信非データフレームバッファ53は、幾つかのフレー
ムを排出させるためオフチップバッファ111へのアクセスを許されることにな
り、その後データ転送が再開される。
、53、または53′)は、オフチップバッファ111へのアクセスを許される
ことになる。両方のポートが同時にフレームを受信する場合、ポートAが最初に
アクセスを許可される。一旦、フレームバッファ制御ブロック56が、オフチッ
プバッファ111へのフレームバッファアクセスを与えると、代替ポートの受信
非データフレームバッファ53が満たされ、または初期化が開始され、またはデ
ータ転送が開始されない限り、そのフレームバッファのサービスが続行される。
所定のポートについてのフレームは、そのポートへの配送順にオフチップバッフ
ァ111に転送されることになる。
得ない場合には、フレームバッファ制御器56とオフチップバッファ111間の
データ転送が、バッファ制御インタフェース論理58によって一時停止させられ
る。
ッファ(55、53、または53′)の1つから出力されてくるフレームを受け
取り、オフチップバッファ111用のフレームを作成する。この論理59はSO
Fを認識し、妥当性チェックのため受信ヘッダから情報を取得する。CRCが検
査され、フレームがオフチップバッファ111の適切なバッファ領域に経路付け
される。
R DATA9570およびイネーブル信号VAL_READ9571から導か
れる)フレーム開始およびフレーム終了区切り記号を復号化し、フレーム有効性
チェックのために共通受信路59によって使用される信号を発生する。EOF区
切り記号は、受信路ブロックに対して変換される、組み込まれたエラー状態(フ
レーム長エラーまたは連続不均衡エラー)を持つかも知れない。
ムを監視する。SOFが検出されたとき、ヘッダの各ワードを取得させ、CRC
チェッカー596、ヘッダ妥当性制御器595、および(5991、5992、
および5993と一緒に)バッファ制御器598を動作可能にさせるための信号
が発生される。状態機械592は、ヘッダ中に受信される無効プリミティブを検
査すると共に、許容される最大フレーム長を侵害する転送を検査する。共通受信
路59は、一時的に停止され得るので、フレーム取得および有効性ブロックが適
切に動作可能にされるように、状態機械592の状態出力はアクティブ後非アク
ティブになるパルスである。
は、受信フレームのヘッダからのR_CTLフィールドに基づいて、命令、また
は(信号MAX SIZE INPUTS9572からの)データフレームのい
ずれかの最大フレーム長を持つフレームの始めにロードされる。EOFが検出さ
れる前にカウンタが零になる場合には、フレーム長エラーが検出され、そのフレ
ームは無効とされる。この機能は、フレーム用のオフチップバッファ111内の
割付空間を越えることを防止するのに役立つ。
取得するために、受信フレーム化状態機械592からの信号を使用する。取得さ
れた値は、フレーム有効性論理によって使用される。
の終了時にCRCを検査する。(CRC STATUS9596によって示され
た)CRCエラーが検出された場合には、そのフレームは無効とされる。CRC
チェッカー596は、受信フレーム化状態機械592によって動作可能にされる
。ヘッダフィールドの内容、ペイロードフィールド、およびCRCワードが処理
される。
るフレームバッファは、フレームがファイバチャンネルインタフェースの最大デ
ータ転送速度で受信させられるようにする。フレームは、その後、より一層遅い
、一層管理可能な速度で、オフチップ記憶装置に転送される。データがフレーム
バッファに記憶されようとする間にデータを保護するため、パリティ、CRC、
または別の冗長機能など、様々な機構が任意に使用される。
C」)をデータと共にフレームバッファを通過させることによって、データ健全
性検査が高められる(すなわち、CRCはフレームと共にフレームバッファに記
憶され、その後、フレームと共に読み出される)。RAMを拡張させる特別なパ
リティビットが取除かれる。(様々な実施例において、フレームバッファは、デ
ータフレームバッファ55および/または受信非データフレームバッファ53ま
たは53′である。)CRCは、データがRAMから読みだされた後に、そして
データがオフチップ(すなわちオフチップバッファ111に)転送される前に検
査される。入りデータ路上の特別なパリティビットも、インタフェースからフレ
ームバッファの入り側に、およびフレームバッファの出側からCRCチェッカー
596の入力に、除去される。
ンチップRAMより遅くかつファイバチャンネル転送速度よりも遅いので、共通
受信路論理59は、非データフレームバッファ53および53′とデータフレー
ムバッファ55との間で共有される。CRCは、フレームがオフチップに行く直
前に検査される(すなわち、フレームがオンチップバッファ53、53′または
55からオフチップバッファ111に転送される)ので、1個のCRCチェッカ
ー596のみが必要である。反対に、CRCがフレームと共にフレームバッファ
に記憶されず、その後オフチップバッファ111への途中で検査される場合には
(「CRCのオンチップフレームバッファ通過」と呼ばれる)、2個のCRCチ
ェッカーが必要とされる(すなわち、前置バッファ路51および51′内に配置
される)。
転送され、フレームバッファ内に一時的に記憶され、ファイバチャンネルインタ
フェース上の最大データ転送速度で送信されるとき、この機構は逆方向に対して
も使用される。
制御復号ブロック5933によって、R_CTLフィールドが復号化される。R
_CTLフィールドは、そのフレームをオフチップバッファ111の適切な領域
に経路付けするために使用されると共に、どの有効性検査がそのフレームになさ
れべきかを判定する。
のR_CTLフィールドに基づいて、様々なフィールドが検査される。いずれか
の有効性検査が非データフレームについて失敗した場合には、そのフレームは無
効とされる。データ書き込み転送がアクティブのとき有効性検査がデータフレー
ムについて失敗した場合には、マイクロプロセッサ112が通知を受ける。
、無効データがオフチップに行くことを妨げ、そして信号FRAME STAT
US9580を発生する。フレームが有効でない場合には、(データ転送がアク
ティブでなければ)そのフレームは当然無視される。
命令領域に含まれているかを追跡するために使用される。有効な命令が受信され
ると、このカウンタ5992は増分される。マイクロプロセッサ112が命令で
終了したとき、そのマイクロプロセッサは、(マイクロプロセッサ112からの
信号MPU DECREMENTS9574を用いて)命令カウンタ5992を
減分する必要がある。ブロック5992は、割込み要求CMD RCVD IR
Q9578を出力する。
INCREMENTS9575を用いて)どのくらい多くの空間がオフチップ
バッファ111の“他の”領域内に残っているかを探知するために、“他の”空
間カウンタ5991が使用される。このカウンタ5991は、命令でもデータフ
レームでもない有効なフレームが受信されたとき、またはオフチップバッファ1
11が一杯のときに命令フレームが受信されたときに減分される。マイクロプロ
セッサ112がフレームで終了したとき、別のフレームに対する空間が存在する
ことを示すために、マイクロプロセッサは“他の”空間カウンタ5991を増分
する必要がある。“他の”空間カウンタ5991は、オフチップバッファ111
の“他の”領域に適合するであろうフレーム数を指示(信号OTHER COU
NT9576および割込み要求OTHER RCVD IRQ9577)する。
992を増分するために、信号INCR/DECR9573を発生する)受信フ
レームバッファ制御器598および最終4発生論理5993は、フレームを適切
な領域に差し向けるために、オフチップバッファ111の論理への信号(CON
TROLS FOR OFF−CHIP BUFFER7589)を発生する。
路60のブロック図である。転送制御回路60は、転送制御およびバッファ間信
用制御603を含む。
はデータ読み出しであるかどうかによって、どの程度多くのオフチップ空間また
はデータが利用可能であるかの指示(DATA AVAILABLE6019)
を与える。データ書き込み転送に関して、データ利用可能/空間カウンタブロッ
ク604は、BB_CREDITが与えられるために、どの程度多くの空間がオ
フチップバッファ111のデータ部分において(フレームの観点において)利用
可能であるかを指示するために使用される。データ読み出し転送に関して、デー
タ利用可能/空間カウンタブロック604は、どの程度多くのデータフレームが
オフチップバッファ111において利用可能であるかを指示するために使用され
る。バッファポインタの差違が、フレーム毎のワード数を示すマイクロプロセッ
サロード可能な(すなわち、プログラム可能な)値と比較される。
ッファ信用(信号PORT BB_CREDIT AVAILABLE TO
TRANSMIT R_RDY6017)を接続されたポートに与える。この信
用は、R_RDYに送ることによって与えられる。いかなるポートに与えられる
信用量も、以下によって決定される。 1)ディスクドライブ100に対して、どの程度多くの受信空間がオフチップ
バッファ111において利用可能であるか。 2)ディスクドライブ100に対して、どの程度多くの受信空間が受信非デー
タフレームバッファ53およびデータフレームバッファ55において利用可能で
あるか。 3)信用が与えられた場合、ドライブ100が開かれているポートが利用可能
な空間を占有できるフレームを潜在的に送ることができるかどうか。
ロック603は、いつ信用が利用可能であるかを示すための信号をループポート
A/B開制御ブロック42および42′(図6参照)に対して発生する。その後
、ループ制御ブロック40が、R_RDYの送信を制御する。
DYカウンタ606は、入力PORT R_RDY RECEIVED6010
(ポートAおよびポートBに対してそれぞれ1個)およびPORT FRAME
TRANSMITTED6011(ポートAおよびポートBに対してそれぞれ
1個)から、各ポート上でどの程度多くの信用のR_RDYが受信されたかを判
定し、信号PORT CREDIT AVAILABLE TO TRANSM
IT A FRAME6020を出力する。送信R_RDYカウンタ601は、 入力PORT R_RDYTRANSMITTED6001(ポートAおよびポ
ートBに対してそれぞれ1個)およびPORT FRAME RECEIVED
6002(ポートAおよびポートBに対してそれぞれ1個)から、各ポート上で
どの程度多くの信用のR_RDYが送信されたかを判定する。シーケンスカウン
タ607は、データ書き込み転送時に、受信されたフレームが順に到着すること
を検査するために使用され、かつデータ読み出し転送時に、データフレームのヘ
ッダ内に送信されたSEQUENCE COUNT6022を発生するために使
用される。相対的オフセットカウンタ608は、データ読み出し転送時に、デー
タフレームのヘッダ内に送信されたRELATIVE OFFSET COUN
T6023を発生するために使用される。転送長カウンタ609は、どの程度多
くの転送データがあるかを判定し、転送完了時に指示(TRANSFER LE
NGTH COUNT6024)を与える。
である。本発明の一実施例は、ループ初期化および応答用の専用転送フレームバ
ッファ73を含むファイバチャンネルループインタフェース回路を与える。その
ような専用の転送フレームバッファ73を持つことによって、他のポートがデー
タフレームを送信または受信(すなわち、通信)している間に、デュアルポート
ノードの1個のポートが初期化または応答フレームを送信することができる。ル
ープが同期喪失や別の問題を経験した場合、ループ1250は再初期化される必
要があり、専用転送フレームバッファ73は、デュアルポートノードインタフェ
ースの他のポートに接続された他のループ上で進行しているデータ転送または他
の機能を中断させることなく、この機能を生じさせることができる。両方のポー
トは、同時に同様に初期化され得る。さらに、この専用の転送フレームバッファ
73は、他方のポートが使用されている間に一方のポートから、応答、承諾、ま
たは他の非データ転送が送信させられるようにさせる。従って、マイクロプロセ
ッサ112と協力して、単一フレーム送信路回路70は、ノードインタフェース
1220に対してループ初期化および応答機能を与えるように動作する。転送フ
レームバッファ73は、入力MPU LOADABLE7002(マイクロプロ
セッサ112からのデータ)、RECEIVE PATH DATA7003お
よびRECEIVE PATH CONTROLS7004(受信路50からの
フレーム)を受け入れる。転送フレームバッファ73は、MPU READ D
ATA3095を出力すると共に、ブロック74および76を介して、XMT_
DPTH DATA7007(送信されるようとしているCRCを含む出力フレ
ーム)を出力する。
単一フレーム送信フレームバッファ73に存在するフレームを送信する。この回
路70は、適切なフレーム区切り記号を発生し、フレームバッファからのペイロ
ードおよびヘッダを読み出し、CRC発生器76で適切なCRCを発生する。こ
の回路70は、また、最新充填ワードを送信するためのループポート回路20に
信号を発生し、フレーム終端(EOF)が転送されようとする時を指示し、最新
の連続している不均衡に基づいてデコーダにEOFの第2のキャラクタを発生さ
せる。
って)ループ制御回路40からの要求を受け入れ、フレームを送信する。フレー
ムが送信されると、この状態機械72は、フレーム区切り記号、ヘッダ、および
ペイロードを適切な時に転送させるために、送信マルチプレクサ74に送られる
フレームの各部に対する選択(すなわち、選択信号)を与える。この状態機械7
2は、また、CRC発生器76にイネーブルを発生する。また、いつEOF信号
を送信するかを判定するため、8B/10Bエンコーダ27(図4を参照)に制
御が与えられる。フレームが送信された時、信号が発生され、ループ制御回路4
0に送ってその回路に動作を続行させる。
らい長いフレームがあるか判定できるように単一フレーム送信フレーム長カウン
タ71が使用される(CRCは、一度に一ワードを繰返し計算し、フレームのデ
ータ部分が出力される際に累算される)。カウンタ71は、フレームの始めに、
送信フレーム長レジスタからロードされ、フレームが送信されている間に動作可
能にされる。カウンタ71は、単一フレーム送信状態機械72によって動作可能
にされ、いつCRC発生器76を動作可能にするかを判定するため、状態(すな
わち、状態情報)を状態機械72に与える。
RC残留ワードを判定するためのCRC発生器76への入力であり、それはマル
チプレクサ79を介してループポート回路20(図3)に供給される。単一フレ
ーム送信状態機械72は、このマルチプレクサ74に対して選択を発生し、フレ
ーム区切り記号、ヘッダ、およびペイロードが適切な時に転送させられるように
する。
ド、およびEOF区切り記号が単一フレーム送信路回路70から送信されている
ときを判定する。出力信号XMIT CONTROLS7010は、どのループ
が単一フレーム送信路回路70へのアクセスを持つかを決定する、送信路マルチ
プレクサ79に行く。
。この実施例において、単一フレーム送信フレームバッファ73は、単一フレー
ムバッファ書き込み制御733、単一フレームバッファ読み出し制御734、お
よび単一フレーム送信フレームバッファRAM735を含む。単一フレーム送信
フレームバッファ73は、受信したループ初期化フレーム、出力ループ初期化フ
レーム、および出力単一フレームを記憶するために使用される。一実施例におい
ては、送信バッファRAM735の40ワードが、ポートAに格納され、40ワ
ードがポートBに格納される。
RAM735に対して、アドレス(WPTR1411)、データ(WDAT14
10)、および書き込みイネーブル(WE1412)を発生する。それらの入力
は、DATA FROM RECEIVE PATH1401、PORT A
FRAME1403、PORT B FRAME1404、登録済MPU DA
TA9533、および登録済MPU ADDRESS9534を含む。ループ初
期化フレームが受信されたとき、妥当性に対する共通受信路59を介して移動で
きるまで、そのフレームが受信非データフレームバッファ(53または53′)
の1つに、最初に記憶される。そのフレームをオフチップバッファ111に転送
するというよりは、そのフレームは、単一フレーム送信フレームバッファ73に
書き込まれる。これは、また、オフチップバッファ111が代替ポート上のデー
タ転送に一層専用化される。ループポートからのデータは、16ビット幅から3
2ビット幅に変換され、フレームの開始アドレスは、そのフレームが関係するポ
ートに基づいて決定される。
出力フレームを構築するため、単一フレーム送信フレームバッファ73に書き込
みできる。単一フレーム送信フレームバッファ73内のデータを保護するため、
パリティが発生される。
バッファRAM735の読み出しアドレス(RPTR1414)を発生し、RA
M735からデータ(RDAT1413)を取得する。入力は、SEND FR
AME1407およびXMIT STATES1408を含む。単一フレーム化
状態機械72が、フレームを送信できるようにすると、単一フレーム送信バッフ
ァRAM735の読み出しが可能とされる(SINGLE_FRAME TRA
NSMIT BUFFER DATA1415を出力)。マイクロプロセッサ1
12は、このフレームバッファを読み出し、受信したループ初期化フレームにア
クセスする。送信フレームバッファRAM735からのデータは、レジスタに取
得され、パリティが検査される(出力PARITY ERROR1416を発生
)。
いては、組込み自己テスト制御器を含む。RAMは、36ビット幅(32ビット
データワード+パリティの4ビット)と80位置長を持つ。フレームのヘッダお
よびペイロードは、審査のためにマイクロプロセッサ112に対して、またはル
ープ1250上での送信に対して保持されるよう、送信フレームバッファRAM
735中に配置される。一実施例においては、適切な保持時間を与えるために、
RAMに入力される(クロックを除く)すべての入力が遅延される。
れるデータ送信路回路80のブロック図である。回路80は、適切なフレーム区
切り記号を発生し、マイクロプロセッサにロード可能なレジスタからヘッダを構
築し、CRCを発生する。また、回路80は、最新充填ワードを送信するための
ループポート回路20に信号を発生し、EOFが転送されているときを示し、現
在の連続している不均衡に基づいて、エンコーダにEOFの第2のキャラクタを
発生させる。
理40から要求(信号SEND FRAME8001)を受け入れる。フレーム
が送信されると、状態機械81はフレームの各部分に対する選択を与え、フレー
ム区切り記号、ヘッダ、およびペイロードが適切な時間に転送されるように、マ
ルチプレクサ86に送信する。また、機械81は、CRC発生器87に対してイ
ネーブルを発生する。フレームが送信されたとき、ループ制御論理40に信号が
発生され、それを続行させる。
度の長さかを判定させ、CRCが適切な時間に発生されるようにするために使用
される。データ送信フレーム長カウンタ82は、送信フレーム長レジスタからの
フレームの始めにロードされ、フレームが送信されている間動作可能にされる。
データ送信フレーム長カウンタ82は送信フレーム化状態機械81によって動作
可能にされ、CRC発生器87をいつ動作可能にするかを判定するため、状態を
状態機械に与える。
プレクサ79に与えるCRC発生器87の入力である。データ送信フレーム化状
態機械81は、このマルチプレクサ86に対する選択を与え、フレーム区切り記
号、ヘッダ、およびペイロードが適切な時間に転送されるようにさせる。この入
力は、FRAME BUFFER DATA8004、HEADER REGI
STERS8005、TRANSFER COUNTS8006、およびTRA
NSFER−READY PAYLOAD8007を含む。その出力は、STA
TES TO FRAME BUFFER READ CONTROL8009
を含む。マルチプレクサ86内の区切り記号発生器は、フレーム送信時にどのフ
レーム開始(SOF)およびフレーム終了(EOF)プリミティブを使用するか
を決定する。
RC残留ワードを決定するため、CRC発生器87を介して転送される。CRC
発生器87に対するイネーブルは、データ送信フレーム化状態機械81から来る
。また、EOF信号をいつ送信するかを決定するための制御が、8B/10Bエ
ンコーダ27(図4を参照)に与えられる。CRC発生器87の出力は、XMT
_DPTH DATA8008(転送されるべきCRCを含んでいる出力フレー
ム)である。
およびEOF区切り記号がデータ送信路回路80から送信されているときを判定
する。出力信号XMIT OUTPUTS8010は、どのループがデータ送信
路回路80にアクセスしたかを判定する送信路マルチプレクサ79に行く。
のポートAおよびポートB調整ループ論理26への入力である。単一フレーム路
70およびデータ路80からのデータおよび制御信号は、送信路マルチプレクサ
79によって適切なポートに選択される。また、送信路マルチプレクサ79は、
R_RDYプリミティブをポートに振り分ける。これによって、両方のポートに
同時に送信させることができる。
ノードインタフェース1220は、ループ1250へのアクセスに対して調整さ
れる必要がある。どのポートがループ1250の制御を得るかを判定するために
、優先度システムが使用され、ポートがスターブ(starve)されないことを保証
するために、“公平”構造が使用される。目標装置として、ディスクドライブ1
00は、通常CPU1202よりも低い優先度が与えられる。より高い優先度の
装置がそれらのアクセスを完了するまで、ドライブ100は調整を得るまで待た
ねばならないという結果となる。不必要な調整サイクルを避けるために、ループ
ポート116のノードインタフェース1220がループ1250の制御を得ると
、そのノードインタフェースは、ループを閉じる前にできるだけ多くのフレーム
を送る。しかし、データがもはや利用可能ではないとき、ループポート116の
ノードインタフェース1220は、ループ1250を閉じ、他のポートがループ
1250にアクセスすることを可能にさせる。これは、ある別の制御器技術にお
いて使用される方法である。本発明は、ポートへのデータ利用可能性に基づいて
、ループ1250を閉じるかどうかの決定ルールを変更することによって、ルー
プ性能を高めるための機構を提供する。従って、ループ全体のオーバヘッドが低
減される。
ポートは、他のフレームが利用可能であるかどうかを判定する。データがもはや
利用可能ではない場合(例えば、全フレームが送信に対して利用可能ではない)
には、ループ1250は閉じられる。その後すぐにデータは利用可能になる。従
って、ポートは後で再び調整を行なう必要があり、転送を続行する前に調整を得
る。これが転送の最終フレームが利用可能になる際に起こる場合、転送の完了が
遅延され、次の命令が処理され得る前に遅れが生ずることになる。
0がそのポートによって開に保持されるようにさせる、制御器技術設計の機構を
提供する。これにより、ループポート116のノードインタフェース1220が
出力データ転送中に調整しなくてはならない回数が低減され、従って、転送をよ
り早く完了させることができる。以下の条件の両方が成立するとき、(そのルー
プのポートの続いている制御を正当に評価するために)ポートに対して利用可能
になる十分なさらなるデータに備えて、ループ1250は開に保持される。 ・少なくともXフレームが利用可能なオフチップであり、 ・データの少なくともYワードが、データフレームバッファ55において利用
可能である。
状態に保持するためにオフチップバッファ111において利用可能であることを
必要とするフレーム数を表わす)およびYの値(ここで、Yは、ループ1250
を開状態に保持するためにオンチップバッファにおいて利用可能であることを必
要とするワード数を表わす)は、それぞれ別個に(例えば、マイクロプロセッサ
112によるファームウエアコードによって)プログラム可能である。別の実施
例においては、(必ずしもフレーム数として特定されない)所定のデータ量がオ
フチップバッファ111において利用可能であるとき、ループ1250は開状態
に保持される(そのような一実施例においては、オフチップバッファ111にお
いて利用可能であることが必要な所定のデータ量は、プログラム可能である)。
タ量がオンチップバッファ119において利用可能であるとき、ループ1250
は開状態に保持される(そのような一実施例においては、オンチップバッファ1
19において利用可能であることが必要な所定のデータ量は、プログラム可能で
ある)。一実施例においては、所定量のデータが利用可能であるが(少なくとも
1個の半フレームオンチップおよび少なくとも1個のフレーム利用可能オフチッ
プ)、フレーム全体が利用可能なオンチップであるまでフレームの転送が開始し
ない場合、ループ1250は開状態に保持される。
なくとも6個のデータフレームを保持するに充分なほど大きい(すなわち、21
12バイトの最大フレームサイズの6フレーム)。送信されているデータは、(
例えば、ディスクプラッタ134から)最初にオフチップバッファ111に転送
され、その後オンチップデータフレームバッファ55に転送される。典型的には
、ほぼ毎秒106メガバイトまでの速度で、データがデータフレームバッファ5
5から転送され、一方、一実施例においては、オフチップバッファ111からオ
ンチップデータフレームバッファ55への転送は、より遅い速度で行われる。全
フレームより少ないフレームが既にオンチップデータフレームバッファ55に転
送されている場合、それらのデータが外部への転送を要求される前に、フレーム
の最後の部分がオンチップデータフレームバッファ55に転送される限り、ほぼ
毎秒106メガバイトのファイバチャンネル全速度でフレーム転送を開始し、全
フレームの転送を完了させることが可能である。
オンチップデータフレームバッファ55に含まれ、かつ少なくとも1個のデータ
フレームがオフチップバッファ111に含まれている場合には、ループ1250
は開状態に保持される。そのような一実施例においては、ループ1250の制御
を保つために(“ループを開に保持する”ために)必要とされるこのデータ量は
、オンチップバッファ55においてほぼ1000バイトのデータ(すなわち、2
112バイトフレームの2分の1)であり、そしてオフチップバッファ111に
おいてほぼ2000バイトのデータ(すなわち、2112バイトフレーム分)で
ある。両者の量は、マイクロプロセッサ112によって設定されるプログラム可
能な値である。一実施例においては、丁度説明したように、所定量のデータが利
用可能な場合には、ループ1250は開に保持される。しかし、フレームの転送
は、全フレームが利用可能なオンチップである後でのみ開始する。そのような一
実施例においては、CFW(最新充填ワード)信号は、全フレームがオンチップ
であり、フレームの送信が開始できるまで、ループ1250上に送信される。
ッファ111における制御器によって生成される。データが、データフレームバ
ッファ中に転送するために利用可能であるかどうかを判定するために、ファーム
ウエアプログラム可能な計数Xフレーム(ループを開に保つためにオフチップバ
ッファ111において必要とされるフレーム数)が、転送に利用可能なフレーム
数の計数に対して比較される。データフレームバッファは、オフチップのより遅
いメモリからデータを一時的に蓄えるために使用されるオンチップRAMである
。従って、データは、完全なファイバチャンネルインタフェース速度で送信され
得る。ループ1250を開に保つために十分なデータがすでにデータフレームバ
ッファにあるかどうかを判定するために、第2の比較器が、データフレームバッ
ファ内で利用可能なデータ量を、ファームウエアプログラム可能な計数、Yワー
ド(ループを開に保つためにオンチップバッファ55において必要とされるワー
ド数)と比較するために使用される。XおよびYの値は、この論理が様々なオフ
チップランダムアクセスメモリ(“RAM”)ソリューションおよび転送速度で
使用されるようにさせるため、ファームウエアプログラム可能である。
116に対して利用可能であるときに余分な調整サイクルを避けることにある。
これは、ループ1250上の他のポートが転送を実行することを防止するので、
待ちが延長された時間(例えば、ヘッドスイッチを実行するために必要な時間)
となる場合に、利用可能となるデータを待ちながらループ1250が開に保持さ
れてはならない。
イバチャンネルループ・インタフェース回路(1220)について述べた。この
ような専用の送信フレームバッファ(73)を有することにより、他方のポート
(116)がデータフレームを送信あるいは受信中に、デュアルポートノード(
1220)の一方のポート(116)が初期化、あるいは応答フレームを送信で
きるものとなる。専用の受信バッファ(53および55)もまた、2ポートノー
ド(1220)の各ポート(116)に対して設けられる。フレームとともにフ
ァイバチャンネルから受信した巡回冗長コード情報は、3つのフレームバッファ
(53、53′および55)の1つに格納される。これらのデータとCRCは、
後で、フレームバッファ(53、53′および55)に存在する間にデータの健
全性を保証するために検査される。ループの制御のための調整に要する時間を減
らすために、プログラミングにより選択的に決定された最小量のデータ(プログ
ラム可能なデータと称する)が送信のために利用可能である限り、ループ(12
50)の制御は維持(即ち、ループ接続は開状態を保持)される。
巡回冗長コード(CRC)を用いるための通信チャンネルシステム(1220)
を提供するものである。本システム(1200)は、第1のポート(116)と
第2のポート(116)を有し、各ポート(116)はファイバチャンネル調整
ループ通信チャンネル(1250)をサポートし、各通信チャンネル(1250
)は通信チャンネル(1250)上のデータ送信中に巡回冗長コードを含む、第
1のチャンネルノード(1220)を含んでいる。本システム(1200)は、
第1のチャンネルノード(1220)に位置し、フレームと、受信されたフレー
ムに対応したCRCとを通信チャンネル(1250)から受信するオンチップフ
レームメモリ(53または55)と、オンチップフレームメモリ(53または5
5)中に存在する受信されたフレームのデータ健全性検査のための受信された対
応したCRCを用いる健全性装置(596、553)を含んでいる。
3または55)と健全性装置(596、553)とを結合するオフチップメモリ
(111)と、受信したフレームをオンチップメモリ(53または55)からオ
フチップメモリ(111)に移動させる間に巡回冗長コードを検証する健全性装
置内の検証回路(596)とを含んでいる。
チップメモリ(55)に移動する際に、パリティを生成しデータに付与するパリ
ティ生成回路(553)を含み、ここで健全性回路は、さらに、データフレーム
をオフチップメモリ(111)に移動させる間に、巡回冗長コードを検査し取り
除く。この実施例の他の様態では、オンチップフレームメモリ(55)は、さら
に、巡回冗長コードを含まないデータフレームをオフチップメモリ(111)か
ら受信し、また、システムは、さらに、オフチップメモリ(111)から受信し
たデータフレームに基づき巡回冗長コードを生成するCRC発生器(87)と、
生成された巡回冗長コードを含むデータフレームをオフチップメモリ(111)
から通信チャンネル(1250)上に送信する送信機(トランシーバ115の一
部)を含んでいる。さらに、他の実施例では、送信されるべきデータフレームを
、オフチップメモリ(111)からオンチップメモリ(55)に転送し、パリテ
ィを付与するもののCRC情報は含めずに、オンチップメモリ(55)に格納す
る。そのような一実施例では、通信チャンネル(1250)からオンチップメモ
リ(55)に転送された受信データフレームを、CRCは付与するもののパリテ
ィ情報は含めずに、オンチップメモリ(55)に格納する。
該システム(1200)は、さらに、動作中に第1のチャンネルノード(122
0)と結合する磁気ディスク記憶装置(1256)と、動作中に第2のチャンネ
ルノード(1220)と結合するコンピュータシステム(1202)とを含むも
のとする(即ち、コンピュータシステム(1202)は第2のチャンネルノード
(1220)を有するものとする)。第2のチャンネルノード(1220)は、
動作中に第1のチャンネルノード(1220)と結合し、ファイバチャンネル調
整ループ通信チャンネル(1250)を介して、第1のチャンネルノード(12
20)と第2のチャンネルノード(1220)との間でデータを転送する。
イブ(100)は、回転ディスク(134)と、回転中のディスク(134)と
交渉をもつトランスデューサ(150)と、第1のポート(116)と第2のポ
ート(116)を有する第1のチャンネルノード(1220)を含み、各ポート
(116)はファイバチャンネル調整ループ通信チャンネル(1250)をサポ
ートする。各通信チャンネル(1250)は、通信チャンネル(1250)上の
データ送信に巡回冗長コードを含んでいる。第1のチャンネルノード(1220
)は、データと通信するためのトランスデューサ(150)と動作中に結合する
。ディスクドライブ(100)は、第1のチャンネルノード(1220)にオン
チップで位置し、フレームと、受信したフレームに対応したCRCを通信チャン
ネル(1250)から受信するオンチップフレームメモリ(53または55)と
、オンチップメモリ(53または55)中に存在する受信フレームのデータ健全
性を検査するために、受信した関連CRCを用いる健全性装置(596,553
)を含んでいる。一実施例では、ディスクドライブ(100)は、さらに、動作
中にオンチップフレームメモリ(53または55)と健全性装置(596,55
3)と結合するオフチップメモリ(111)と、受信したフレームをオンチップ
メモリ(53または55)からオフチップメモリ(111)に移動させる間に巡
回冗長コードを検証する健全性装置(596,553)中の検証回路(596)
とを含んでいる。
ート(116)のそれぞれの上で、ファイバチャンネル調整ループ通信チャンネ
ル(1250)をサポートし、 (b)通信チャンネル(1250)からフレームを受信し、ここで、受信した
フレームは、受信したフレーム中の他のデータに基づく巡回冗長コードを含み、 (c)巡回冗長コードを含む受信フレームをフレームバッファ(53または5
5)に格納し、 (d)フレームバッファ(53または55)とは独立したメモリ(111)に
、受信フレームを格納し、 (e)受信フレームを独立したメモリ(111)に転送する間に、巡回冗長コ
ード(CRC)を検証することにより、受信フレームの正しさを検査するステッ
プを含んでいる。 一実施例では、本方法は、 (f)送信すべきフレームをオンチップフレームバッファ(55)に載せ、 (g)送信すべきフレーム中のデータに基づき巡回冗長コードを生成し、 (h)巡回冗長コードを含み、送信すべきフレームを通信チャンネル(125
0)に送信するステップを含んでいる。 本方法の一実施例では、搭載ステップ(f)は、さらに、 (f)(i)送信すべきフレームのデータのパリティを生成し、 (f)(ii)送信すべきフレームのデータにパリティを付与し、移動ステッ
プ(d)は、さらに、 (d)(i)受信フレームを独立したメモリ(111)に移動させる間に巡回
冗長コードを取り去るステップを含むものである。 本方法の他の実施例では、受信ステップ(b)は、さらに、 (b)(i)受信フレームを通信チャンネル(1250)から受信している間
に、巡回冗長コードを検証することにより、受信フレームの正しさを検査するス
テップを含むものである。
動作中に第1のチャンネルノード(1220)と結合する磁気ディスク記憶装置
(1256)と第2のチャンネルノード(1220)を有するコンピュータシス
テムとの間で、データを転送するステップを含み、ここで、第2のチャンネルノ
ード(1220)は、通信チャンネル(1250)によって、動作中に第1のチ
ャンネルノード(1220)と結合する。
を有するチャンネルノード(1220)を含み、各ポート(116)は、ファイ
バチャンネル調整ループ通信チャンネル(1250)をサポートし、各通信チャ
ンネル(1250)は、通信チャンネル(1250)上のデータ送信中に巡回冗
長コードを含む、通信チャンネルシステム(1200)を提供する。本システム
は、また、巡回冗長コードを含むフレームを、チャンネルノード(1220)か
ら受信するバッファ(53または55)と、バッファ(53または55)とは独
立したオフチップメモリ(111)とを含む。本システム(1200)は、また
、受信フレームをバッファからオフチップメモリに移動させ、受信フレームをオ
フチップメモリに移動する間に巡回冗長コード(CRC)を検証することにより
、受信フレームの正しさを検査するための手段(本明細書全体で記述されるもの
として)を含んでいる。一実施例では、本移動手段は、さらに、フレームが検査
されオフチップメモリに移動される際に、CRCを取り除くための手段を含んで
いる。
)および専用のデータバッファ(55)の双方または何れか一方に格納される際
に、フレームと、フレームの受信CRCとの間の調和をとることにより、データ
検査能力の顕著な向上を図るものである。他の実施例では、2つの非データバッ
ファ(53)が設けられ、デュアルポートファイバチャンネルインターフェース
ノード(1220)の両方の入力ファイバ(117)上で同時に受信するように
動作する。いくつかの実施例では、1つのデータバッファ(55)が設けられ、
デュアルポートファイバチャンネルインターフェースノード(1220)のいず
れか一方の入力ファイバ(117)上で受信するように動作する。いくつかの実
施例では、フレームをオンチップバッファ(53または55)からオフチップメ
モリ(111)に移動させている間に、フレームの巡回冗長コードを検証する、
単一のCRCチェッカー(596)が(コスト削減のために)設けられる。いく
つかの実施例では、それぞれの送信路上に(コスト削減のために)、フレームを
オンチップバッファ(73または55)からファイバチャンネル(1250)に
移動させている間に、適切な巡回冗長コードを生成する、単一のCRC発生器(
非データフレームに対する76およびデータフレームに対する87)が設けられ
る。
るべきである。前述の説明では、様々な実施例の構造および機能と一緒に、本発
明の様々な実施例の数多くの特徴および利点が説明されたが、上述の説明を再検
討することで、当業者にとって多くの他の実施例および細部にわたる変更が明ら
かになるであろう。従って、本発明の範囲は、特許請求の範囲と共に、そこに記
載された権利範囲に等価なすべての範囲を考慮して定められるべきである。
ブ100のブロック図である。
ク図である。
ータ論理30のブロック図である。
る。
ック図である。
図である。
である。
Claims (17)
- 【請求項1】 オンチップメモリにおけるデータ健全性のためにファイバチ
ャンネル巡回冗長コード(CRC)を用いる通信チャンネルシステムであって、 第1のポートと第2のポートを有し、各ポートは、ファイバチャンネル調整ル
ープ通信チャンネルをサポートし、各通信チャンネルは通信チャンネル上のデー
タ送信の中に巡回冗長コードを含む、第1のチャンネルノードと、 第1のチャンネルノード中のオンチップに位置し、フレームと受信したフレー
ムに対応したCRCとを通信チャンネルから受信する、オンチップフレームメモ
リと、 オンチップフレームメモリ内に存在する受信したフレームのデータ健全性検査
のために、受信した対応CRCを用いる健全性装置と、 を備えるシステム。 - 【請求項2】 請求項1記載のシステムにおいて、 動作中にオンチップフレームメモリと健全性装置と結合するオフチップメモリ
と、 受信したフレームをオンチップメモリからオフチップメモリに移動させる間に
巡回冗長コードを検証する健全性装置内部の検証回路と、 をさらに備えているシステム。 - 【請求項3】 請求項2記載のシステムにおいて、 前記健全性装置は、受信したフレームをオフチップメモリに移動させる間に巡
回冗長コードを検査し取り除くものであり、 該システムは、データがオフチップメモリからオンチップメモリに移動される
ときにパリティを生成しデータに付与するパリティ生成回路をさらに含むシステ
ム。 - 【請求項4】 請求項2記載のシステムにおいて、 巡回冗長コードを含まないデータフレームは、オフチップメモリ内に保持され
、 当該システムは、 データフレームがデータフレームバッファに移動されたときにオフチップメモ
リからのデータフレームに基づいて巡回冗長コードを生成し、CRCをデータフ
レームとともにオンチップフレームメモリ中に収容するCRC発生器と、 生成された巡回冗長コードを含むデータフレームを通信チャンネルに送信する
送信機と、 をさらに含むシステム。 - 【請求項5】 請求項2記載のシステムにおいて、 送信すべきデータフレームが、オフチップメモリからオンチップフレームメモ
リに転送され、パリティを付与するもののCRC情報は含めずにオンチップフレ
ームメモリに格納されるシステム。 - 【請求項6】 請求項5記載のシステムにおいて、 通信チャンネルからオンチップフレームメモリに転送された受信データフレー
ムは、CRCを付与するもののパリティ情報は含めずにオンチップフレームメモ
リに格納されるシステム。 - 【請求項7】 請求項2記載のシステムにおいて、 通信チャンネルからオンチップフレームメモリに転送された受信フレームは、
CRCを付与するもののパリティ情報は含めずにオンチップフレームメモリに格
納されるシステム。 - 【請求項8】 請求項1記載のシステムにおいて、 動作中に第1のチャンネルノードと結合する磁気ディスク記憶装置と、 第2のチャンネルノードを有するコンピュータシステムとをさらに備え、 第2のチャンネルノードは、ファイバチャンネル調整ループ通信チャンネルを
介して第1のチャンネルノードと第2のチャンネルノードの間でデータを送信す
るために、動作中にファイバチャンネルループ中の第1のチャンネルノードに結
合するシステム。 - 【請求項9】 回転ディスクと、 回転中のディスクと交渉をもつトランスデューサと、 第1のポートと第2のポートとを有するチャンネルノードであって、各ポート
はファイバチャンネル調整ループ通信チャンネルをサポートし、各通信チャンネ
ルは、通信チャンネル上のデータ送信に巡回冗長コードを含み、当該チャンネル
ノードは、データを通信するためのトランスデューサと動作中に結合する、チャ
ンネルノードと、 該チャンネルノードにオンチップで位置し、フレームと、受信したフレームに
対応したCRCを通信チャンネルから受信するオンチップフレームメモリと、 オンチップメモリ中に存在する受信フレームのデータ健全性を検査するために
、受信した関連CRCを用いる健全性装置と、 を有するディスクドライブ。 - 【請求項10】 請求項9記載のディスクドライブにおいて、 動作中にオンチップフレームメモリと健全性装置と結合するオフチップメモリ
と、 受信したフレームをオンチップメモリからオフチップメモリに移動させる間に
巡回冗長コードを検証する検証装置中の検証回路とをさらに備えているディスク
ドライブ。 - 【請求項11】 (a)第1のチャンネルノードの第1ポートと第2ポート
のそれぞれの上で、ファイバチャンネル調整ループ通信チャンネルをサポートす
るステップと、 (b)通信チャンネルからフレームを受信するステップであって、当該受信し
たフレームは、受信したフレーム中の他のデータに基づく巡回冗長コードを含む
ステップと、 (c)巡回冗長コードを含む受信フレームをフレームバッファに格納するステ
ップと、 (d)フレームバッファとは独立したメモリに受信フレームを移動するステッ
プと、 (e)受信フレームを独立したメモリに転送する間に巡回冗長コード(CRC
)を検証することにより、受信フレームの正しさを検査するステップと、 を備えることを特徴とする通信方法。 - 【請求項12】 請求項11記載の方法であって、 (f)送信すべきフレームをオンチップフレームバッファに載せるステップと
、 (g)送信すべきフレーム中のデータに基づき巡回冗長コードを生成するステ
ップと、 (h)巡回冗長コードを含む送信すべきフレームを通信チャンネルに送信する
ステップと、 をさらに含む方法。 - 【請求項13】 請求項12記載の方法であって、 前記載せるステップ(f)は、 (f)(i)送信すべきフレームのデータのパリティを生成するステップと、 (f)(ii)送信すべきフレームのデータにパリティを付与するステップと
をさらに含み、 前記移動するステップ(d)は、 (d)(i)受信フレームを独立したメモリに移動させる間に巡回冗長コード
を取り去るステップをさらに含む方法。 - 【請求項14】 請求項11記載の方法において、 前記受信するステップ(b)が、(b)(i)受信フレームを通信チャンネル
から受信している間に巡回冗長コードを検証することにより、受信フレームの正
しさを検査するステップをさらに含む方法。 - 【請求項15】 請求項11記載の方法において、 (i)ファイバチャンネル調整ループ通信チャンネルを介して、動作中に第1
のチャンネルノードと結合する磁気ディスク記憶装置と、第2のチャンネルノー
ドを有するコンピュータシステムとの間で、データを転送するステップをさらに
含み、 該第2のチャンネルノードは、通信チャンネルによって動作中に第1のチャン
ネルノードと結合される方法。 - 【請求項16】 第1ポートと第2ポートを有し、各ポートがファイバチャ
ンネル調整ループ通信チャンネルをサポートし、各通信チャンネルが通信チャン
ネル上のデータ送信中に巡回冗長コードを含む、チャンネルノードと、 巡回冗長コードを含むフレームをチャンネルノードから受信するバッファと、 バッファとは独立したオフチップメモリと、 受信フレームをバッファからオフチップメモリに移動させ、受信フレームをオ
フチップメモリに移動する間に巡回冗長コード(CRC)を検証することにより
、受信フレームの正しさを検査するための手段と、 を備える通信チャンネルシステム。 - 【請求項17】 請求項16記載のシステムにおいて、 移動させる手段は、フレームが検査されオフチップメモリに移動されるときに
、CRCを取り除くための手段をさらに含むことを特徴とするシステム。
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US6591997P | 1997-11-17 | 1997-11-17 | |
US6592697P | 1997-11-17 | 1997-11-17 | |
US6592097P | 1997-11-17 | 1997-11-17 | |
US60/065,919 | 1997-11-17 | ||
US60/065,920 | 1997-11-17 | ||
US60/065,926 | 1997-11-17 | ||
US6721197P | 1997-12-01 | 1997-12-01 | |
US60/067,211 | 1997-12-01 | ||
PCT/US1998/024571 WO1999026137A1 (en) | 1997-11-17 | 1998-11-17 | Method and apparatus for using crc for data integrity in on-chip memory |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008333587A Division JP4547452B2 (ja) | 1997-11-17 | 2008-12-26 | オンチップメモリにおけるデータ健全性のためのcrcを用いる方法および装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001523856A true JP2001523856A (ja) | 2001-11-27 |
JP4272813B2 JP4272813B2 (ja) | 2009-06-03 |
Family
ID=27490525
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000521437A Expired - Fee Related JP4272813B2 (ja) | 1997-11-17 | 1998-11-17 | オンチップメモリにおけるデータ健全性のためのcrcを用いる方法および装置 |
JP2000521449A Pending JP2001523862A (ja) | 1997-11-17 | 1998-11-17 | ループの初期化および応答のための方法及び専用のフレームバッファ |
JP2000521448A Pending JP2001523861A (ja) | 1997-11-17 | 1998-11-17 | フレーム受信のための方法及び専用のフレームバッファ |
JP2008333587A Expired - Fee Related JP4547452B2 (ja) | 1997-11-17 | 2008-12-26 | オンチップメモリにおけるデータ健全性のためのcrcを用いる方法および装置 |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000521449A Pending JP2001523862A (ja) | 1997-11-17 | 1998-11-17 | ループの初期化および応答のための方法及び専用のフレームバッファ |
JP2000521448A Pending JP2001523861A (ja) | 1997-11-17 | 1998-11-17 | フレーム受信のための方法及び専用のフレームバッファ |
JP2008333587A Expired - Fee Related JP4547452B2 (ja) | 1997-11-17 | 2008-12-26 | オンチップメモリにおけるデータ健全性のためのcrcを用いる方法および装置 |
Country Status (7)
Country | Link |
---|---|
US (6) | US6502189B1 (ja) |
JP (4) | JP4272813B2 (ja) |
KR (3) | KR100564665B1 (ja) |
CN (3) | CN1304520A (ja) |
DE (3) | DE19882822T1 (ja) |
GB (3) | GB2342021B (ja) |
WO (3) | WO1999026151A1 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001034427A (ja) * | 1999-07-23 | 2001-02-09 | Fujitsu Ltd | デバイス制御装置及び制御方法 |
US7934023B2 (en) | 2003-12-01 | 2011-04-26 | Cisco Technology, Inc. | Apparatus and method for performing fast fibre channel write operations over relatively high latency networks |
JP2014086924A (ja) * | 2012-10-24 | 2014-05-12 | Fujitsu Frontech Ltd | エラー検出装置及びエラー検出方法 |
US8725854B2 (en) | 2002-01-23 | 2014-05-13 | Cisco Technology, Inc. | Methods and apparatus for implementing virtualization of storage within a storage area network |
Families Citing this family (124)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6356560B1 (en) * | 1997-05-30 | 2002-03-12 | Adtran, Inc. | Arbitration mechanism for statistically multiplexed frame relay switching system |
EP1059589B1 (en) * | 1999-06-09 | 2005-03-30 | Texas Instruments Incorporated | Multi-channel DMA with scheduled ports |
US6529945B1 (en) * | 1999-07-26 | 2003-03-04 | International Business Machines Corporation | Data buffer management between two different systems |
US6574696B1 (en) * | 2000-03-07 | 2003-06-03 | Hewlett-Packard Development Company, L.P. | Methods and arrangements for providing bi-directional control between data storage drives and automation controllers |
US6571367B1 (en) * | 2000-03-15 | 2003-05-27 | Emc Corporation | Method and apparatus connecting between a fiber channel and a cache memory |
US6622183B1 (en) * | 2000-03-21 | 2003-09-16 | Lsi Logic Corporation | Data transmission buffer having frame counter feedback for re-transmitting aborted data frames |
FR2812116A1 (fr) * | 2000-07-19 | 2002-01-25 | Schlumberger Systems & Service | Procede et dispositif d'inscription securisee de donnees dans une memoire reinscriptible |
US7007097B1 (en) * | 2000-07-20 | 2006-02-28 | Silicon Graphics, Inc. | Method and system for covering multiple resourcces with a single credit in a computer system |
US6483843B1 (en) * | 2000-10-12 | 2002-11-19 | Emulex Corporation | Detecting and counting open ordered sets originating from an attached node port |
US6999460B1 (en) * | 2000-10-16 | 2006-02-14 | Storage Technology Corporation | Arbitrated loop port switching |
US6647528B1 (en) * | 2000-11-02 | 2003-11-11 | Computer Network Technology Corporation | Fiber channel CRC for internal error checking on a switching platform |
US6868516B1 (en) | 2000-12-21 | 2005-03-15 | Emc Corporation | Method for validating write data to a memory |
US6779150B1 (en) * | 2000-12-21 | 2004-08-17 | Emc Corporation | CRC error detection system and method |
US6934904B2 (en) * | 2001-04-30 | 2005-08-23 | Sun Microsystems, Inc. | Data integrity error handling in a redundant storage array |
US7016969B1 (en) * | 2001-05-11 | 2006-03-21 | Cisco Technology, Inc. | System using weighted fairness decisions in spatial reuse protocol forwarding block to determine allowed usage for servicing transmit and transit traffic in a node |
JP2002368768A (ja) * | 2001-06-05 | 2002-12-20 | Hitachi Ltd | ファイバチャネル調停ループ対応の電子装置及びファイバチャネル調停ループの障害検出方法 |
US6850410B2 (en) * | 2001-06-29 | 2005-02-01 | Emc Corporation | Advanced technology attachment disk drive module with fibre channel system characteristics |
US7065661B2 (en) * | 2002-12-16 | 2006-06-20 | Emc Corporation | Using request and grant signals to read revision information from an adapter board that interfaces a disk drive |
JP3523616B2 (ja) * | 2001-07-24 | 2004-04-26 | 松下電器産業株式会社 | バス最適化方法及び通信ノード |
US7215680B2 (en) * | 2001-07-26 | 2007-05-08 | Nishan Systems, Inc. | Method and apparatus for scheduling packet flow on a fibre channel arbitrated loop |
US20030135577A1 (en) * | 2001-12-19 | 2003-07-17 | Weber Bret S. | Dual porting serial ATA disk drives for fault tolerant applications |
US7391723B2 (en) * | 2002-04-22 | 2008-06-24 | Computer Network Technology Corporation | Frame-level fibre channel CRC on switching platform |
US7808924B2 (en) | 2002-05-24 | 2010-10-05 | Cisco Technology, Inc. | Apparatus and method for preventing disruption of fibre channel fabrics caused by ReConfigure Fabric (RCF) messages |
US7630300B2 (en) * | 2002-07-02 | 2009-12-08 | Emulex Design & Manufacturing Corporation | Methods and apparatus for trunking in fibre channel arbitrated loop systems |
US7397788B2 (en) * | 2002-07-02 | 2008-07-08 | Emulex Design & Manufacturing Corporation | Methods and apparatus for device zoning in fibre channel arbitrated loop systems |
US7664018B2 (en) | 2002-07-02 | 2010-02-16 | Emulex Design & Manufacturing Corporation | Methods and apparatus for switching fibre channel arbitrated loop devices |
US7660316B2 (en) * | 2002-07-02 | 2010-02-09 | Emulex Design & Manufacturing Corporation | Methods and apparatus for device access fairness in fibre channel arbitrated loop systems |
US7171525B1 (en) * | 2002-07-31 | 2007-01-30 | Silicon Image, Inc. | Method and system for arbitrating priority bids sent over serial links to a multi-port storage device |
KR100457046B1 (ko) * | 2002-08-07 | 2004-11-10 | 삼성전자주식회사 | 반도체 장치의 제조에서 콘택 형성 방법 |
US7925623B2 (en) * | 2002-09-10 | 2011-04-12 | Exagrid Systems, Inc. | Method and apparatus for integrating primary data storage with local and remote data protection |
US7397768B1 (en) | 2002-09-11 | 2008-07-08 | Qlogic, Corporation | Zone management in a multi-module fibre channel switch |
US7220908B2 (en) * | 2002-09-12 | 2007-05-22 | Yamaha Corporation | Waveform processing apparatus with versatile data bus |
US6961786B2 (en) * | 2002-09-25 | 2005-11-01 | Lsi Logic Corporation | Fiber loop linking/detecting |
US20040068591A1 (en) * | 2002-10-03 | 2004-04-08 | Workman Michael Lee | Systems and methods of multiple access paths to single ported storage devices |
US20040123027A1 (en) * | 2002-10-03 | 2004-06-24 | Workman Michael Lee | Systems and methods of multiple access paths to single ported storage devices |
US7327680B1 (en) * | 2002-11-05 | 2008-02-05 | Cisco Technology, Inc. | Methods and apparatus for network congestion control |
US6829658B2 (en) | 2002-12-16 | 2004-12-07 | Emc Corporation | Compatible signal-to-pin connector assignments for usage with fibre channel and advanced technology attachment disk drives |
US7194673B2 (en) * | 2002-12-20 | 2007-03-20 | Emc Corporation | Detecting intermittent losses of synchronization in a fibre channel loop |
US7782784B2 (en) * | 2003-01-10 | 2010-08-24 | Cisco Technology, Inc. | Port analyzer adapter |
US7899048B1 (en) | 2003-01-15 | 2011-03-01 | Cisco Technology, Inc. | Method and apparatus for remotely monitoring network traffic through a generic network |
US7516272B2 (en) | 2003-03-28 | 2009-04-07 | Emc Corporation | Midplane-independent implementations of data storage system enclosures |
US6961784B1 (en) * | 2003-04-17 | 2005-11-01 | Qlogic Corporation | Method and system for processing non-data frames in host bus adapters |
US7646767B2 (en) | 2003-07-21 | 2010-01-12 | Qlogic, Corporation | Method and system for programmable data dependant network routing |
JP4432388B2 (ja) | 2003-08-12 | 2010-03-17 | 株式会社日立製作所 | 入出力制御装置 |
US7234101B1 (en) | 2003-08-27 | 2007-06-19 | Qlogic, Corporation | Method and system for providing data integrity in storage systems |
US7474666B2 (en) | 2003-09-03 | 2009-01-06 | Cisco Technology, Inc. | Switch port analyzers |
US8165136B1 (en) | 2003-09-03 | 2012-04-24 | Cisco Technology, Inc. | Virtual port based SPAN |
US7134070B2 (en) * | 2003-09-08 | 2006-11-07 | Intel Corporation | Checksum determination |
US7573870B2 (en) * | 2003-09-25 | 2009-08-11 | Lsi Logic Corporation | Transmit prioritizer context prioritization scheme |
US7353448B1 (en) * | 2003-10-21 | 2008-04-01 | Marvell Semiconductor Israel Ltd. | Methods, architectures, circuits and systems for transmission error determination |
US7219263B1 (en) | 2003-10-29 | 2007-05-15 | Qlogic, Corporation | Method and system for minimizing memory corruption |
US20050114498A1 (en) * | 2003-11-06 | 2005-05-26 | International Business Machines Corporation | Method and apparatus for managing data transfer in a data processing system |
US7219325B1 (en) * | 2003-11-21 | 2007-05-15 | Xilinx, Inc. | Exploiting unused configuration memory cells |
JP4426261B2 (ja) * | 2003-11-25 | 2010-03-03 | 株式会社日立製作所 | チャネルアダプタ及びディスクアレイ装置 |
US7236361B2 (en) * | 2003-12-22 | 2007-06-26 | Emc Corporation | Fan assembly for installing and removing fans individually and collectively |
US7145776B2 (en) * | 2003-12-22 | 2006-12-05 | Emc Corporation | Midplane-less data storage enclosure |
US7231581B2 (en) * | 2003-12-31 | 2007-06-12 | Intel Corporation | Communicating using a partial block in a frame |
US20050187979A1 (en) * | 2004-02-09 | 2005-08-25 | Microsoft Corporation | System and method for message-level connection management |
US7986630B1 (en) * | 2004-02-09 | 2011-07-26 | Lsi Corporation | High performance architecture for fiber channel targets and target bridges |
US7434150B1 (en) | 2004-03-03 | 2008-10-07 | Marvell Israel (M.I.S.L.) Ltd. | Methods, circuits, architectures, software and systems for determining a data transmission error and/or checking or confirming such error determinations |
US7360142B1 (en) | 2004-03-03 | 2008-04-15 | Marvell Semiconductor Israel Ltd. | Methods, architectures, circuits, software and systems for CRC determination |
US7930377B2 (en) | 2004-04-23 | 2011-04-19 | Qlogic, Corporation | Method and system for using boot servers in networks |
US7669190B2 (en) | 2004-05-18 | 2010-02-23 | Qlogic, Corporation | Method and system for efficiently recording processor events in host bus adapters |
US9201599B2 (en) | 2004-07-19 | 2015-12-01 | Marvell International Ltd. | System and method for transmitting data in storage controllers |
US20060015659A1 (en) * | 2004-07-19 | 2006-01-19 | Krantz Leon A | System and method for transferring data using storage controllers |
US7719970B1 (en) * | 2004-08-20 | 2010-05-18 | Altera Corporation | Serial communications system with optional data path and control plane features |
US7577772B2 (en) | 2004-09-08 | 2009-08-18 | Qlogic, Corporation | Method and system for optimizing DMA channel selection |
US20060064531A1 (en) * | 2004-09-23 | 2006-03-23 | Alston Jerald K | Method and system for optimizing data transfer in networks |
US7676611B2 (en) | 2004-10-01 | 2010-03-09 | Qlogic, Corporation | Method and system for processing out of orders frames |
US7398335B2 (en) * | 2004-11-22 | 2008-07-08 | Qlogic, Corporation | Method and system for DMA optimization in host bus adapters |
US7164425B2 (en) * | 2004-12-21 | 2007-01-16 | Qlogic Corporation | Method and system for high speed network application |
US7392437B2 (en) | 2005-01-20 | 2008-06-24 | Qlogic, Corporation | Method and system for testing host bus adapters |
US7281077B2 (en) * | 2005-04-06 | 2007-10-09 | Qlogic, Corporation | Elastic buffer module for PCI express devices |
US7231480B2 (en) * | 2005-04-06 | 2007-06-12 | Qlogic, Corporation | Method and system for receiver detection in PCI-Express devices |
US7562284B2 (en) * | 2005-08-26 | 2009-07-14 | International Business Machines Corporation | Apparatus, system, and method for mandatory end to end integrity checking in a storage system |
KR100690274B1 (ko) * | 2005-09-12 | 2007-03-09 | 삼성전자주식회사 | 다중 채널 직렬 통신을 위한 순환 중복 검사 장치 및 이를구비한 통신 시스템 |
US7660926B2 (en) * | 2005-11-16 | 2010-02-09 | Sun Microsystems, Inc. | Apparatus and method for a core for implementing a communications port |
US7694204B2 (en) * | 2006-03-09 | 2010-04-06 | Silicon Image, Inc. | Error detection in physical interfaces for point-to-point communications between integrated circuits |
US7461195B1 (en) | 2006-03-17 | 2008-12-02 | Qlogic, Corporation | Method and system for dynamically adjusting data transfer rates in PCI-express devices |
US7933735B2 (en) * | 2007-01-31 | 2011-04-26 | Denso Corporation | Semiconductor integrated circuit |
KR100902051B1 (ko) * | 2007-07-12 | 2009-06-15 | 주식회사 하이닉스반도체 | 오류 검사 코드 생성장치 및 방법 |
US7751350B1 (en) * | 2007-08-03 | 2010-07-06 | William George Pabst | Full duplex network radio bridge with low latency and high throughput |
US7787375B2 (en) * | 2007-08-06 | 2010-08-31 | International Business Machines Corporation | Performing a recovery action in response to a credit depletion notification |
US7975027B2 (en) * | 2007-08-06 | 2011-07-05 | International Business Machines Corporation | Credit depletion notification for transmitting frames between a port pair |
US8111610B2 (en) * | 2008-01-25 | 2012-02-07 | Emulex Design & Manufacturing Corporation | Flagging of port conditions in high speed networks |
US8566688B2 (en) * | 2009-09-01 | 2013-10-22 | Ensequence, Inc. | Method of certifying multiple versions of an application |
KR101069725B1 (ko) * | 2009-12-24 | 2011-10-04 | 주식회사 하이닉스반도체 | 반도체 메모리 장치와 이를 위한 고장번지 제어 회로 및 방법 |
JP5651962B2 (ja) * | 2010-02-03 | 2015-01-14 | 富士通株式会社 | Raid装置、異常デバイス検出装置および異常デバイス検出方法 |
US9295100B2 (en) | 2010-04-12 | 2016-03-22 | Qualcomm Incorporated | Delayed acknowledgements for low-overhead communication in a network |
JP4922442B2 (ja) | 2010-07-29 | 2012-04-25 | 株式会社東芝 | バッファ管理装置、同装置を備えた記憶装置、及びバッファ管理方法 |
US8504893B1 (en) * | 2010-09-30 | 2013-08-06 | Micron Technology, Inc. | Error detection or correction of a portion of a codeword in a memory device |
GB2484717B (en) * | 2010-10-21 | 2018-06-13 | Advanced Risc Mach Ltd | Security provision for a subject image displayed in a non-secure domain |
CN102468915B (zh) * | 2010-11-16 | 2014-07-02 | 北京中电华大电子设计有限责任公司 | 一种串口802.11n无线网卡芯片发送通路实现方法 |
CN102158400B (zh) * | 2011-03-03 | 2013-12-04 | 北京航空航天大学 | 天基路由交换系统的通信接口及天基路由交换系统 |
CN102999458A (zh) * | 2011-09-09 | 2013-03-27 | 中国航天科工集团第三研究院第八三五七研究所 | 高速智能串口芯片 |
CN102567276B (zh) * | 2011-12-19 | 2014-03-12 | 华为技术有限公司 | 基于多通道的数据传输方法、接收节点及跨节点互联系统 |
US9395924B2 (en) * | 2013-01-22 | 2016-07-19 | Seagate Technology Llc | Management of and region selection for writes to non-volatile memory |
US9569618B2 (en) * | 2013-08-28 | 2017-02-14 | Korea University Research And Business Foundation | Server and method for attesting application in smart device using random executable code |
CN103593261B (zh) * | 2013-10-17 | 2015-09-23 | 北京控制工程研究所 | 一种中断服务程序中通信故障的快速恢复方法 |
US9467389B2 (en) * | 2014-04-28 | 2016-10-11 | International Business Machines Corporation | Handling large frames in a virtualized fibre channel over ethernet (FCoE) data forwarder |
US9864716B2 (en) | 2015-05-20 | 2018-01-09 | International Business Machines Corporation | Receiving buffer credits by a plurality of channels of one or more host computational devices for transmitting data to a control unit |
US9892065B2 (en) | 2015-05-20 | 2018-02-13 | International Business Machines Corporation | Adjustments of buffer credits for optimizing the number of retry operations and transfer ready operations |
US10061734B2 (en) | 2015-05-20 | 2018-08-28 | International Business Machines Corporation | Adjustment of buffer credits and other parameters in a startup phase of communications between a plurality of channels and a control unit |
CN106500739B (zh) * | 2016-11-18 | 2019-01-25 | 威科达(东莞)智能控制有限公司 | 一种与绝对值编码器通信的方法 |
CN108572883B (zh) * | 2017-04-19 | 2021-06-18 | 北京金山云网络技术有限公司 | 一种数据正确性校验方法及装置 |
EP3404546B1 (en) * | 2017-05-16 | 2019-09-11 | Melexis Technologies NV | Device for supervising and initializing ports |
CN107229858B (zh) * | 2017-05-19 | 2020-04-03 | 郑州云海信息技术有限公司 | 一种支持crc8校验的PECI总线主从机验证系统及验证方法 |
US11868804B1 (en) | 2019-11-18 | 2024-01-09 | Groq, Inc. | Processor instruction dispatch configuration |
US11243880B1 (en) | 2017-09-15 | 2022-02-08 | Groq, Inc. | Processor architecture |
US11360934B1 (en) | 2017-09-15 | 2022-06-14 | Groq, Inc. | Tensor streaming processor architecture |
US11114138B2 (en) | 2017-09-15 | 2021-09-07 | Groq, Inc. | Data structures with multiple read ports |
US11170307B1 (en) | 2017-09-21 | 2021-11-09 | Groq, Inc. | Predictive model compiler for generating a statically scheduled binary with known resource constraints |
CN107977284A (zh) * | 2017-11-30 | 2018-05-01 | 苏州麦迪斯顿医疗科技股份有限公司 | 一种数据处理方法、装置、服务器和介质 |
JP7192244B2 (ja) | 2018-05-15 | 2022-12-20 | 株式会社デンソー | 中継装置 |
US11455370B2 (en) | 2018-11-19 | 2022-09-27 | Groq, Inc. | Flattened input stream generation for convolution with expanded kernel |
US11115147B2 (en) * | 2019-01-09 | 2021-09-07 | Groq, Inc. | Multichip fault management |
CN110518978B (zh) * | 2019-07-23 | 2022-12-27 | 中国航空无线电电子研究所 | 基于光纤链路的混合数据传输组件 |
CN113037428B (zh) * | 2019-12-09 | 2022-01-25 | 大唐移动通信设备有限公司 | 一种对数据流程的处理方法及装置 |
CN111966627B (zh) * | 2020-08-13 | 2023-06-30 | 北京中航通用科技有限公司 | 用于串行总线的8b/9b编解码方法 |
TWI778644B (zh) * | 2021-05-31 | 2022-09-21 | 新唐科技股份有限公司 | 系統單晶片和其資料燒入方法 |
CN114578299A (zh) * | 2021-06-10 | 2022-06-03 | 中国人民解放军63698部队 | 一种无线远程控制信标设备产生射频信号的方法及系统 |
US11855655B2 (en) * | 2021-09-28 | 2023-12-26 | Texas Instruments Incorporated | Serial communications module with CRC |
CN114117980B (zh) * | 2022-01-25 | 2022-06-07 | 飞腾信息技术有限公司 | 芯片设计方法、芯片设计模块、电子设备和介质 |
US20230236756A1 (en) * | 2022-01-25 | 2023-07-27 | Infineon Technologies Ag | Buffer management in an ethernet switch |
Family Cites Families (84)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4486739A (en) | 1982-06-30 | 1984-12-04 | International Business Machines Corporation | Byte oriented DC balanced (0,4) 8B/10B partitioned block transmission code |
US4654654A (en) * | 1983-02-07 | 1987-03-31 | At&T Bell Laboratories | Data network acknowledgement arrangement |
GB8606217D0 (en) | 1986-03-13 | 1986-04-16 | Univ Strathclyde | Local area network priority control system |
US4933785A (en) | 1988-03-01 | 1990-06-12 | Prairietek Corporation | Disk drive apparatus using dynamic loading/unloading |
US5168568A (en) | 1989-02-06 | 1992-12-01 | Compaq Computer Corporation | Delaying arbitration of bus access in digital computers |
US5187780A (en) * | 1989-04-07 | 1993-02-16 | Digital Equipment Corporation | Dual-path computer interconnect system with zone manager for packet memory |
US5170466A (en) * | 1989-10-10 | 1992-12-08 | Unisys Corporation | Storage/retrieval system for document |
US5034837A (en) | 1989-11-09 | 1991-07-23 | Rodime Plc | Magnetic disk drive incorporating a magnetic actuator lock and a very small form factor |
US5235482A (en) | 1989-11-09 | 1993-08-10 | Rodime Plc | Magnetic disk drive incorporating a mechanically damped base |
US5418716A (en) | 1990-07-26 | 1995-05-23 | Nec Corporation | System for recognizing sentence patterns and a system for recognizing sentence patterns and grammatical cases |
US5172538A (en) | 1991-09-05 | 1992-12-22 | Luger Linda S | Stirrup pad |
JP2624064B2 (ja) | 1991-11-29 | 1997-06-25 | 日本電気株式会社 | ロードアンロード機構 |
JPH05166322A (ja) | 1991-12-16 | 1993-07-02 | Nec Ibaraki Ltd | 磁気ヘッドのロードアンロード機構 |
JPH05244160A (ja) * | 1992-02-28 | 1993-09-21 | Toshiba Corp | フレーム削除機能を持つブリッジ装置 |
US5260933A (en) | 1992-05-15 | 1993-11-09 | International Business Machines Corporation | Acknowledgement protocol for serial data network with out-of-order delivery |
US5772597A (en) | 1992-09-14 | 1998-06-30 | Sextant Medical Corporation | Surgical tool end effector |
US5341260A (en) | 1992-12-04 | 1994-08-23 | Seagate Technology, Inc. | Reduced torque unloading ramp system for a hard disk drive |
DE69434311D1 (de) | 1993-02-01 | 2005-04-28 | Sun Microsystems Inc | Archivierungsdateiensystem für datenanbieter in einer verteilten netzwerkumgebung |
US5617425A (en) * | 1993-05-26 | 1997-04-01 | Seagate Technology, Inc. | Disc array having array supporting controllers and interface |
JP3264465B2 (ja) | 1993-06-30 | 2002-03-11 | 株式会社日立製作所 | 記憶システム |
JPH0728746A (ja) * | 1993-07-14 | 1995-01-31 | Fuji Xerox Co Ltd | データ転送装置 |
JPH0863920A (ja) | 1993-08-24 | 1996-03-08 | Sony Corp | ロード・アンロード装置及びその駆動制御回路 |
US5668809A (en) * | 1993-10-20 | 1997-09-16 | Lsi Logic Corporation | Single chip network hub with dynamic window filter |
US5448566A (en) | 1993-11-15 | 1995-09-05 | International Business Machines Corporation | Method and apparatus for facilitating communication in a multilayer communication architecture via a dynamic communication channel |
GB9401092D0 (en) * | 1994-01-21 | 1994-03-16 | Newbridge Networks Corp | A network management system |
FR2719552B1 (fr) * | 1994-05-04 | 1996-07-26 | Eurocopter France | Aube de redresseur pour dispositif anti-couple à rotor et stator redresseur carénés d'hélicoptère. |
US5455723A (en) | 1994-06-02 | 1995-10-03 | International Business Machines Corporation | Method and apparatus for ramp load and unload |
JPH0844649A (ja) * | 1994-07-26 | 1996-02-16 | Hitachi Ltd | データ処理装置 |
US5828522A (en) | 1994-09-13 | 1998-10-27 | International Business Machines Corporation | Velocity control of head load/unload mechanism in a disk drive using dither |
US5535035A (en) * | 1994-09-15 | 1996-07-09 | International Business Machines Corporation | Optical fiber ring communications system and communications method |
WO1996008766A1 (en) | 1994-09-16 | 1996-03-21 | Philips Electronics N.V. | Microcontroller having a page address mode |
JPH0897803A (ja) | 1994-09-26 | 1996-04-12 | Nec Eng Ltd | データ伝送方式 |
US5619647A (en) | 1994-09-30 | 1997-04-08 | Tandem Computers, Incorporated | System for multiplexing prioritized virtual channels onto physical channels where higher priority virtual will pre-empt a lower priority virtual or a lower priority will wait |
US5598541A (en) * | 1994-10-24 | 1997-01-28 | Lsi Logic Corporation | Node loop port communication interface super core for fibre channel |
US5638518A (en) | 1994-10-24 | 1997-06-10 | Lsi Logic Corporation | Node loop core for implementing transmission protocol in fibre channel |
US5617541A (en) * | 1994-12-21 | 1997-04-01 | International Computer Science Institute | System for packetizing data encoded corresponding to priority levels where reconstructed data corresponds to fractionalized priority level and received fractionalized packets |
US5619497A (en) | 1994-12-22 | 1997-04-08 | Emc Corporation | Method and apparatus for reordering frames |
US5590006A (en) | 1994-12-23 | 1996-12-31 | International Business Machines Corporation | One-sided, single platter hard disk with center parking features |
US5812564A (en) | 1995-05-08 | 1998-09-22 | Western Digital Corporation | Disk drive with embedded finite field processor for error correction |
US5831795A (en) | 1995-05-10 | 1998-11-03 | Iomega Corporation | Head loading mechanism for a disk drive |
US5694615A (en) | 1995-06-26 | 1997-12-02 | Hewlett Packard Company | Storage system having storage units interconnected to form multiple loops to provide simultaneous access from multiple hosts |
US5815662A (en) | 1995-08-15 | 1998-09-29 | Ong; Lance | Predictive memory caching for media-on-demand systems |
JPH0955718A (ja) * | 1995-08-17 | 1997-02-25 | Nec Corp | データ通信装置 |
US5768623A (en) | 1995-09-19 | 1998-06-16 | International Business Machines Corporation | System and method for sharing multiple storage arrays by dedicating adapters as primary controller and secondary controller for arrays reside in different host computers |
CA2182539A1 (en) | 1995-09-29 | 1997-03-30 | Nandakumar Natarajan | Method and apparatus for buffer management |
CN1169201A (zh) | 1995-10-10 | 1997-12-31 | 菲利浦电子有限公司 | 具有电磁提升装置的信息存储设备 |
US5778426A (en) | 1995-10-23 | 1998-07-07 | Symbios, Inc. | Methods and structure to maintain a two level cache in a RAID controller and thereby selecting a preferred posting method |
US5864448A (en) | 1995-10-24 | 1999-01-26 | International Business Machines Corporation | Slider and suspension retention and retraction system for high capacity disk drive |
US5822782A (en) | 1995-10-27 | 1998-10-13 | Symbios, Inc. | Methods and structure to maintain raid configuration information on disks of the array |
US5805920A (en) | 1995-11-13 | 1998-09-08 | Tandem Computers Incorporated | Direct bulk data transfers |
JPH09149034A (ja) * | 1995-11-20 | 1997-06-06 | Nec Eng Ltd | Atmセルの生成方法及び通信制御装置 |
JPH09149067A (ja) | 1995-11-21 | 1997-06-06 | Hitachi Cable Ltd | スイッチングハブ |
US5758081A (en) | 1995-12-08 | 1998-05-26 | Aytac; Haluk M. | Computing and communications transmitting, receiving system, with a push button interface, that is continously on, that pairs up with a personal computer and carries out mainly communications related routine tasks |
US5781801A (en) | 1995-12-20 | 1998-07-14 | Emc Corporation | Method and apparatus for receive buffer management in multi-sender communication systems |
US5809328A (en) | 1995-12-21 | 1998-09-15 | Unisys Corp. | Apparatus for fibre channel transmission having interface logic, buffer memory, multiplexor/control device, fibre channel controller, gigabit link module, microprocessor, and bus control device |
US5768530A (en) | 1995-12-28 | 1998-06-16 | Emc Corporation | High speed integrated circuit interface for fibre channel communications |
US5787242A (en) | 1995-12-29 | 1998-07-28 | Symbios Logic Inc. | Method and apparatus for treatment of deferred write data for a dead raid device |
JP2689973B2 (ja) * | 1995-12-29 | 1997-12-10 | 日本電気株式会社 | スイッチングハブ装置 |
US5790773A (en) | 1995-12-29 | 1998-08-04 | Symbios, Inc. | Method and apparatus for generating snapshot copies for data backup in a raid subsystem |
US6115767A (en) * | 1996-03-04 | 2000-09-05 | Matsushita Electric Industrial Co., Ltd. | Apparatus and method of partially transferring data through bus and bus master control device |
US5819111A (en) | 1996-03-15 | 1998-10-06 | Adobe Systems, Inc. | System for managing transfer of data by delaying flow controlling of data through the interface controller until the run length encoded data transfer is complete |
US5663724A (en) | 1996-03-28 | 1997-09-02 | Seagate Technology, Inc. | 16B/20B encoder |
US5802080A (en) * | 1996-03-28 | 1998-09-01 | Seagate Technology, Inc. | CRC checking using a CRC generator in a multi-port design |
US5761705A (en) | 1996-04-04 | 1998-06-02 | Symbios, Inc. | Methods and structure for maintaining cache consistency in a RAID controller having redundant caches |
US5805788A (en) | 1996-05-20 | 1998-09-08 | Cray Research, Inc. | Raid-5 parity generation and data reconstruction |
US5761534A (en) | 1996-05-20 | 1998-06-02 | Cray Research, Inc. | System for arbitrating packetized data from the network to the peripheral resources and prioritizing the dispatching of packets onto the network |
US5787450A (en) | 1996-05-29 | 1998-07-28 | International Business Machines Corporation | Apparatus and method for constructing a non-linear data object from a common gateway interface |
US5764931A (en) | 1996-05-31 | 1998-06-09 | Sun Microsystems, Inc. | Method and apparatus for passing bus mastership between processors using predefined bus mastership states |
US5822143A (en) | 1996-06-11 | 1998-10-13 | Western Digital Corporation | Decision feedback equalization implementation of partial-response signaling in a magnetic recording channel |
US5790792A (en) | 1996-09-04 | 1998-08-04 | Radiant Systems, Inc. | Method and apparatus for transmitting multimedia data from and application logic server to interactive multimedia workstations |
JP2868080B2 (ja) | 1996-09-12 | 1999-03-10 | 三菱電機株式会社 | 通信監視制御装置及び通信監視制御方法 |
US5812754A (en) | 1996-09-18 | 1998-09-22 | Silicon Graphics, Inc. | Raid system with fibre channel arbitrated loop |
US5889949A (en) * | 1996-10-11 | 1999-03-30 | C-Cube Microsystems | Processing system with memory arbitrating between memory access requests in a set top box |
US5930483A (en) * | 1996-12-09 | 1999-07-27 | International Business Machines Corporation | Method and apparatus for communications control on a small computer system interface |
US5917828A (en) * | 1997-01-03 | 1999-06-29 | Ncr Corporation | ATM reassembly controller and method |
US5978379A (en) * | 1997-01-23 | 1999-11-02 | Gadzoox Networks, Inc. | Fiber channel learning bridge, learning half bridge, and protocol |
US6172990B1 (en) * | 1997-06-19 | 2001-01-09 | Xaqti Corporation | Media access control micro-RISC stream processor and method for implementing the same |
US6061351A (en) * | 1997-02-14 | 2000-05-09 | Advanced Micro Devices, Inc. | Multicopy queue structure with searchable cache area |
US5875074A (en) | 1997-04-18 | 1999-02-23 | Quinta Corporation | Adjustable head loading apparatus |
JPH10302421A (ja) | 1997-04-28 | 1998-11-13 | Internatl Business Mach Corp <Ibm> | サスペンション・アセンブリとランプ・ブロックおよびヘッド保持機構ならびにディスクドライブ装置 |
US6185207B1 (en) * | 1997-06-19 | 2001-02-06 | International Business Machines Corporation | Communication system having a local area network adapter for selectively deleting information and method therefor |
US6014380A (en) * | 1997-06-30 | 2000-01-11 | Sun Microsystems, Inc. | Mechanism for packet field replacement in a multi-layer distributed network element |
US6304910B1 (en) * | 1997-09-24 | 2001-10-16 | Emulex Corporation | Communication processor having buffer list modifier control bits |
US6226680B1 (en) * | 1997-10-14 | 2001-05-01 | Alacritech, Inc. | Intelligent network interface system method for protocol processing |
-
1998
- 1998-11-17 US US09/193,387 patent/US6502189B1/en not_active Expired - Lifetime
- 1998-11-17 US US09/193,482 patent/US6317800B1/en not_active Ceased
- 1998-11-17 GB GB9928812A patent/GB2342021B/en not_active Expired - Fee Related
- 1998-11-17 DE DE19882822T patent/DE19882822T1/de not_active Withdrawn
- 1998-11-17 WO PCT/US1998/024536 patent/WO1999026151A1/en active IP Right Grant
- 1998-11-17 KR KR1020007005387A patent/KR100564665B1/ko not_active IP Right Cessation
- 1998-11-17 CN CN98811240.XA patent/CN1304520A/zh active Pending
- 1998-11-17 KR KR1020007005385A patent/KR100650818B1/ko active IP Right Grant
- 1998-11-17 DE DE19882830T patent/DE19882830T1/de not_active Withdrawn
- 1998-11-17 CN CN98811207.8A patent/CN1123832C/zh not_active Expired - Lifetime
- 1998-11-17 WO PCT/US1998/024571 patent/WO1999026137A1/en active IP Right Grant
- 1998-11-17 JP JP2000521437A patent/JP4272813B2/ja not_active Expired - Fee Related
- 1998-11-17 WO PCT/US1998/024558 patent/WO1999026152A2/en active IP Right Grant
- 1998-11-17 DE DE19882831T patent/DE19882831T1/de not_active Withdrawn
- 1998-11-17 JP JP2000521449A patent/JP2001523862A/ja active Pending
- 1998-11-17 GB GB0009935A patent/GB2346784B/en not_active Expired - Fee Related
- 1998-11-17 GB GB9928809A patent/GB2341526B/en not_active Expired - Fee Related
- 1998-11-17 US US09/193,446 patent/US6324669B1/en not_active Ceased
- 1998-11-17 US US09/193,681 patent/US6279057B1/en not_active Expired - Lifetime
- 1998-11-17 JP JP2000521448A patent/JP2001523861A/ja active Pending
- 1998-11-17 KR KR1020007005386A patent/KR100734649B1/ko not_active IP Right Cessation
- 1998-11-17 CN CNB988112086A patent/CN1158605C/zh not_active Expired - Lifetime
-
2003
- 2003-11-13 US US10/714,478 patent/USRE40034E1/en not_active Expired - Lifetime
- 2003-11-26 US US10/723,963 patent/USRE42228E1/en not_active Expired - Lifetime
-
2008
- 2008-12-26 JP JP2008333587A patent/JP4547452B2/ja not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001034427A (ja) * | 1999-07-23 | 2001-02-09 | Fujitsu Ltd | デバイス制御装置及び制御方法 |
US8725854B2 (en) | 2002-01-23 | 2014-05-13 | Cisco Technology, Inc. | Methods and apparatus for implementing virtualization of storage within a storage area network |
US7934023B2 (en) | 2003-12-01 | 2011-04-26 | Cisco Technology, Inc. | Apparatus and method for performing fast fibre channel write operations over relatively high latency networks |
JP2014086924A (ja) * | 2012-10-24 | 2014-05-12 | Fujitsu Frontech Ltd | エラー検出装置及びエラー検出方法 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4547452B2 (ja) | オンチップメモリにおけるデータ健全性のためのcrcを用いる方法および装置 | |
US7233977B2 (en) | Messaging mechanism employing mailboxes for inter processor communications | |
JP4076724B2 (ja) | ダイナミック半二重によるループ・フェアネスの保持 | |
US6279050B1 (en) | Data transfer apparatus having upper, lower, middle state machines, with middle state machine arbitrating among lower state machine side requesters including selective assembly/disassembly requests | |
US6317805B1 (en) | Data transfer interface having protocol conversion device and upper, lower, middle machines: with middle machine arbitrating among lower machine side requesters including selective assembly/disassembly requests | |
US6397273B2 (en) | System having an enhanced parity mechanism in a data assembler/disassembler for use in a pipeline of a host-storage system interface to global memory | |
US7984252B2 (en) | Storage controllers with dynamic WWN storage modules and methods for managing data and connections between a host and a storage device | |
JPH04233352A (ja) | システムメモリからネットワークへのパケットに配列されるデータのフローを制御するネットワークアダプタおよびデータのフローを制御する方法 | |
JPH07325767A (ja) | 入出力通信サブシステム及び方法 | |
US7802031B2 (en) | Method and system for high speed network application | |
EP1810161A1 (en) | Method and system for optimizing data transfer in networks | |
US7152132B2 (en) | Method and apparatus for improving buffer utilization in communication networks | |
US7986630B1 (en) | High performance architecture for fiber channel targets and target bridges | |
US7225274B2 (en) | Method and apparatus for transferring data across a protocol bridge | |
US20060015659A1 (en) | System and method for transferring data using storage controllers | |
JP3130226B2 (ja) | 入出力通信サブシステム及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051116 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071214 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080201 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080501 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080512 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080602 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080609 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080630 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080707 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080801 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080905 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081226 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20090113 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090203 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090302 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120306 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |