JP5537919B2 - データ転送のためのシステムおよび方法 - Google Patents

データ転送のためのシステムおよび方法 Download PDF

Info

Publication number
JP5537919B2
JP5537919B2 JP2009287965A JP2009287965A JP5537919B2 JP 5537919 B2 JP5537919 B2 JP 5537919B2 JP 2009287965 A JP2009287965 A JP 2009287965A JP 2009287965 A JP2009287965 A JP 2009287965A JP 5537919 B2 JP5537919 B2 JP 5537919B2
Authority
JP
Japan
Prior art keywords
completion
processor
ram
dma
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009287965A
Other languages
English (en)
Other versions
JP2010134939A (ja
Inventor
マイケル・リウ
ブラドレイ・ローチ
サム・ス
ピーター・フィアッコ
Original Assignee
エミュレックス デザイン アンド マニュファクチュアリング コーポレーション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by エミュレックス デザイン アンド マニュファクチュアリング コーポレーション filed Critical エミュレックス デザイン アンド マニュファクチュアリング コーポレーション
Publication of JP2010134939A publication Critical patent/JP2010134939A/ja
Application granted granted Critical
Publication of JP5537919B2 publication Critical patent/JP5537919B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Description

本発明は、複数のソースからデータを受信し、処理するデータ処理システムに関する。
本出願は、2001年12月12日出願の米国特許出願第60/340,386号明細書(発明の名称“Supercharge Message Exchanger”)に対して優先権を主張しており、これは全体的に本出願で参考文献とされている。また、本出願は2002年12月10日出願の米国特許暫定出願(発明の名称“Supercharge Message Exchanger”)に対して優先権を主張している。
データ処理システムは複数のソースからデータを受信する。
メッセージ交換システムは2以上のプロセッサがさらに効率的に通信することを可能にするために提供され、これは入力/出力(I/O)処理速度を改良する。
1実施形態では、システムはI/O完了が2つのプロセッサに関連する2つのメモリにポストされることを可能にする。いずれかのプロセッサはI/O完了通知をアクセスでき、それに続く動作のためにI/Oを準備する。
1実施形態では、システムはDMAからのI/O完了通知とプロセッサ間のメッセージを記憶するためにゼロ待機状態のランダムアクセスメモリ(RAM)を使用する。ゼロ待機状態のRAMはRAMアクセス待ち時間を減少する。代わりに、システムは減少された性能でより多くの情報容量を実現するため待機状態で高い待ち時間のRAMを使用する。
複数の異なるソースが複数のデータパスにより同時にRAMに書込もうとするとき、システムはレジスタにデータを記憶することによりデータの崩壊の可能性を克服する。システムはまたRAMの複数の論理的区画への公正で迅速なアクセスを可能にする。また、レジスタはRAMがフルでありソースがRAMへ書込みを継続しようとするときデータ崩壊の可能性を克服する。
システムは異なるクロックドメインから発生するI/O完了を管理するように構成され
ている。例えば2つのI/O完了は周辺コンポーネントインターフェース(PCI)側から来てもよく、これは33MHz、66MHz、または133MHzで動作している。2つのI/O完了はファイバチャンネルリンク側から来てもよく、これは106MHzまたは200MHzクロックに同期されてもよい。ARMプロセッサは200MHzクロックでI/O完了またはプロセッサ間メッセージをポストする。
システムはRAMの空またはフル状態と、RAM中のフルである位置の数を追跡する。
さらに、システムはまたプロセッサに重要な事象について通知するためにドアベルレジスタを使用してもよい。ドアベルレジスタは第1のプロセッサが特定のドアベルビットを設定し、第2のプロセッサが特定のドアベルビットを読取りクリアすることを可能にする。第1のプロセッサはまた特定のドアベルビットが第2のプロセッサにより設定されるとき中断を発生することができる。
システムは用途特定集積回路(ASIC)またはフィールドプログラム可能なゲートアレイ(FPGA)装置中に構成されてもよい。
アプリケーションの1特徴は、第1のチャンネルと第2のチャンネルを備えたシステムに関する。第1のチャンネルは第1の直接メモリアクセス(DMA)エンジンと、第2のDMAエンジンと、第1のランダムアクセスメモリ(RAM)と、第1のプロセッサとを具備している。第2のチャンネルは第3のDMAエンジンと、第4のDMAエンジンと、第2のRAMと、第2のプロセッサとを具備している。
別の特徴はランダムアクセスメモリと、第1および第2のエンジンと、プロセッサとを具備するチャンネルに関する。ランダムアクセスメモリは入力/出力完了を記憶するように構成されている。第1および第2のエンジンは入力/出力完了をランダムアクセスメモリに送信するように構成されている。プロセッサはランダムアクセスメモリに記憶された入力/出力完了を処理するように構成されている。
別の特徴は、第2のチャンネルのエンジンからの入力/出力(I/O)完了を記憶するために第1のチャンネルのランダムアクセスメモリ(RAM)を構成し、第1のチャンネルのRAMのI/O完了を処理するステップを含んでいる方法に関する。
別の特徴は、第1のチャンネルのエンジンがインアクチブであるか否かを検出し、第1のチャンネルのエンジンがインアクチブであるならば、第2のチャンネルのエンジンからの入力/出力(I/O)完了を第1のチャンネルのランダムアクセスメモリに記憶し、第1のチャンネルのランダムアクセスメモリ中のI/O完了を処理することを含んでいる方法に関する。
別の特徴は、複数のデータパスから入力/出力(I/O)完了を受信し、複数のレジスタ中にI/O完了を記憶し、各レジスタは予め定められたデータパスからI/O完了を記憶するように構成され、レジスタからI/O完了をランダムアクセスメモリの複数の論理ブロックに転送し、各論理ブロックは予め定められたデータパスからI/O完了を記憶するように構成されているステップを含んでいる方法に関する。
スーパーチャージチャンネルシステムとして作用するように構成されたデュアルチャンネルシステムの1実施形態を示す図。 図1のシステムの各側に構成される完了制御論理装置および完了RAMの1実施形態を示す図。 図2のRAMからのRAMブロック、ゲットおよびプットポインタ、ファームウェア、レジスタ、完了RAM制御論理装置の1実施形態を示す図。 図1のシステムを使用するプロセスの1実施形態を示す図。 図2および3の制御論理装置およびRAMを使用するプロセスの1実施形態を示す図。 単一のチャンネルモードで動作するデュアルプロセッサの1実施形態を示す図。 プロセッサ間ドアベルレジスタの1実施形態のブロック図。
詳細な説明
1以上の実施形態の詳細について添付図面によって以下説明する。他の特徴および利点は説明および図面と、特許請求の範囲から明白であろう。
種々の図面の同一の参照符号は同一のエレメントを示している。
図1は、スーパーチャージチャンネルシステムとして作用するように構成されたデュアルチャンネルシステム100の1実施形態を示している。システム100は2つの周辺コンポーネントインターフェース(PCI)受信/送信(Rx/Tx)直接メモリアクセス(DMA)ポートまたはエンジン102A、102B、2つのリンク(例えばファイバチャンネル)Rx/Tx DMAポートまたはエンジン104A、104Bと、2つの完了RAMインターフェース論理装置106A、106Bと、2つの完了RAM108A、108Bと、メッセージ区域110A、110Bと、データが堅密に結合されたメモリ(DTCM)ポート112A、112Bと、プロセッサ114A、114Bとを含んでいる。システム100は図1に示された素子の代わりにまたは追加して別の素子を含んでいてもよい。
PCI Rx/Tx DMAエンジン102A、102Bは(PCIバスを介して)ホストメモリ140と外部の中間メモリ120(図6の外部メモリ605と同一)との間でデータを転送する。メモリ120はシステム100のオンまたはオフのASICである。リンクRx/Tx DMAエンジン104A、104Bは中間メモリ120とファイバチャンネルリンク/インターフェース150との間でデータを転送する。ファイバチャンネルリンク/インターフェース150はN−ポートまたはL−ポート或いはNL−ポートとも呼ばれる。
システム100はチャンネルA部分(側)101AとチャンネルB部分(側)101Bとを含んでいる。各“チャンネル”101はPCI Rx/Tx DMAエンジン102、リンクRx/Tx DMAエンジン104、完了RAMインターフェース論理装置106、完了RAM108、プロセッサ114を含んでいる。
PCIおよびファイバチャンネルDMAはここでは例として使用されている。他の構成では、システム100は他のタイプのバス、ネットワークまたはプロトコルと共に使用されることができる。
1実施形態では、プロセッサ114A、114BはARM社により開発されたARM946コアプロセッサであるが、他のタイプのプロセッサが使用されてもよい。プロセッサ114A、114BはARM946に限定されない。
[データ転送]
データ転送は2ステッププロセスであってもよい。“送信パス”では、PCI DMAエンジン102Aまたは102Bの一方がPCIバスを介してPCI側のホストメモリ140から中間メモリ120へデータを転送する。リンクDMAエンジン104Aまたは104Bの1つはその後、中間メモリ120からファイバチャンネルリンク/インターフェース150へデータを転送する。
“受信パス”では、リンクDMAエンジン104Aまたは104Bの一方がファイバチャンネルリンクインターフェース150から中間メモリ120へデータを転送する。PCI DMAエンジン102Aまたは102Bはその後、中間メモリ120からPCI側のホストメモリ140へデータを転送する。
[I/O完了]
データがエンジン102A、102B、104Aまたは104Bの1つにより中間メモリ120に適切に記憶され、またはそこから検索されるとき、エンジン102A、102B、104Aまたは104Bは対応する“I/O完了”通知(通告)を対応する完了RAMインターフェース論理装置106Aまたは106Bへ出力する。
“I/O完了”は入力(I)または出力(O)動作が適切に完了し、またはエラーで完了するときのことである。I/Oの例には、(1)ホストメモリ140から中間メモリ120へデータを転送し(送信パス)、(2)中間メモリ120からホストメモリ140へデータを転送し(受信パス)、(3)中間メモリ120からリンク150へデータを転送し(送信パス)、(4)リンク150から中間メモリ120へデータを転送する(受信パス)ことが含まれている。プロセッサ114Aまたは114Bの一方は各動作が適切に完了するときを知る必要がある。プロセッサ114はまた動作が完了したがエラーを有しているか否かを知る必要があり、エラーの回復方法が呼出されることができる。
図1はプロセッサ114A、114Bの一方または両者がRAM108Aまたは108Bに記憶されたI/O完了を処理する態様を示している。
第1の構成では、ハードウェアはモード制御ビットをファームウェアへ提供するように構成され、ここでモード制御ビットは単一のチャンネルモード、デュアルチャンネルモードまたはスーパーチャージモードにシステム100を設定する。
第2の構成では、ハードウェアおよび/またはファームウェアはシステム100を単一のチャンネルモード、デュアルチャンネルモードおよび/またはスーパーチャージモード間で切換える。例えば、ハードウェアまたはファームウェアはDMAエンジン102と104の1セット(例えば102Aと104B)がアイドルであるか否かをダイナミックに決定し、単一のチャンネルモードからスーパーチャージモードへ切換える。
[単一のチャンネルモード]
非スーパーチャージの“単一のチャンネル”モードでは、“送信”と“受信”パスは両者ともI/O完了通知を処理するために1“チャンネル”101で同時に動作している。したがって、ただ1つのプロセッサ114がI/O完了の処理全体を制御している。単一のチャンネルモードでは、1つのチャンネル101だけが動作可能であり、“他方のチャンネル”101は動作可能ではなく、すなわちアイドルである。“動作可能ではない”チャンネルは処理されるI/O完了がないチャンネル101として規定される。
[デュアルチャンネルモード]
“デュアルチャンネルモード”では、両チャンネル101A、101Bは送信および受信動作の両者を同時に独立して実行している。両チャンネルA 101AおよびB 101Bはまた同時にI/O完了を処理している。基本的に、“デュアルチャンネル”モードは単一のチャンネル動作が両チャンネルで行われているときである。
非スーパーチャージの“単一のチャンネル”と“デュアルチャンネル”モードでは、I/O完了はただ1つの完了RAM108にポストされ、これはプロセッサのDTCMポートへ接続される。
[スーパーチャージモード]
チャンネル101Aまたは101Bの1つだけが単一のチャンネルモードで動作しているとき、他方のチャンネルは動作可能ではない状態である。動作可能ではないチャンネルの処理リソースは使用されていない。
モード制御ビット(または単一のチャンネルモードを検出するハードウェアまたはファームウェア)にしたがって、プロセッサ114A、114BはI/O処理速度を増加し、性能を高めるために“スーパーチャージ”モードを付勢することができる。スーパーチャージモードでは、アクチブチャンネル101は動作可能ではないチャンネル101からハードウェアコンポーネントを使用する。特に、各Rx/Tx DMAエンジン102Aと104A(またはチャンネルBがアクチブならば102B、104B)はPCIおよびリンクI/O完了通知を完了RAM108Aと108Bへ書込み/ポストする。この特徴はプロセッサ114Aまたは114BがI/O完了をアクセスし、それに続く処理動作(即ち次のDMA段)のためのI/Oを準備し、もしもあるならば、他のプロセッサ114にその後の処理動作のためのI/Oを準備するように通知することを可能にする。
この特性はI/O処理のボトルネックを防止する。I/Oを生成する(即ち最初にDMA動作をセットアップする)プロセッサ114は、DMA動作が完了するとき、I/O完了通知の事後処理中に係わる必要はない。その代わりに、DMA完了はファームウェアに関与せずに動作を開始するために他のプロセッサ114に対する完了RAM108へ直接送られる。
“スーパーチャージ”モードでは、プロセッサ114A、114Bの両者は単一のアクチブチャンネル101を制御し、即ち両方のプロセッサ114A、114Bは単一のアクチブチャンネルのI/O完了で動作できる。スーパーチャージモードにはアイドルチャンネルは存在しない。しかしながら、以下説明するように、選択される構造にしたがって、使用されていないハードウェアが幾つか存在する。
スーパーチャージモードはプロセッサ114A、114Bが処理動作を分割するために使用される態様においてフレキシブルである。各Rx/Tx DMAエンジン102、104からの両完了RAM108A、108BへのI/O完了通知の書込みはシステム100のファームウェアが最適な解決策を決定するために異なる構造で実験することを可能にする。
スーパーチャージモード構造では、ハードウェアまたはファームウェアはPCI TxおよびRx DMA動作からI/O完了を処理するために1つのプロセッサ114Aを専用にし、その一方で他方のプロセッサ114BはファイバチャンネルリンクのTxとRx DMA動作からのI/O完了を処理するために専用にされる(以下説明する図6参照)。しかしながら、システム100はPCI TxとRx DMA動作を処理する1つのプロセッサ114と、リンクTxとRx DMA動作を管理する他のプロセッサ114に限定されない。
別のスーパーチャージモード構造では、ハードウェアまたはファームウェアは一方のプロセッサ114Aがホストメモリ140からファイバチャンネルリンク/インターフェース150までの“送信パス”全体(即ちPCI Tx DMAとリンクTx DMA)を制御することを可能にし、他方のプロセッサ114Bがファイバチャンネルリンク/インターフェース150からホストメモリ140までの“受信パス”全体(即ちリンクRx DMAとPCI Rx DMA)を制御することを可能にするように構成されている。
別のスーパーチャージモード構造では、ハードウェアまたはファームウェアは1つのプロセッサ114をPCI TXとNL−ポートRxの処理専用とし、他方のプロセッサ114をPCI RXとNL−ポートTxの処理専用とする。
ハードウェアまたはファームウェアはまたこれらの構造の可変度を許容する。
プロセッサ114AがPCI Tx DMA動作を終了されるとき、1つのプロセッサ114AがPCI TxとRx DMA動作を制御するスーパーチャージ構造では、プロセッサ114Aは他方のプロセッサ114Bにデータがファイバチャンネルリンク/インターフェース150へ送信する準備がされていることを通知するため、ライン130Bを介してメッセージを(リンクTxとRx DMA動作を制御する)他方のプロセッサ114Bへ送信する。
システム100はI/O完了通知を記憶するため、RAM108A、108Bとして低い待ち時間でゼロ待機状態のRAMを使用し、それによりプロセッサ114Aまたは114Bのいずれかは迅速に次のDMA段に対するI/Oを準備することができる。ゼロ待機状態RAM108A、108Bはプロセッサ114A、114BによりRAMアクセス時間を減少する。低い待ち時間でゼロ待機状態のRAMおよび他の特定化されたハードウェアは毎秒当りのI/O完了数(IOPS)を改良するために高い性能を与える手段を提供する。
別のシステムでは、ソフトウェアは高い待ち時間のメモリ(待ち状態のメモリ)を使用して1つのプロセッサから別のプロセッサへI/O完了メッセージをマニュアルで移動する。このタイプの別のシステムは低い性能を生じる。
[プロセッサ間の通信]
2つのプロセッサ114A、114Bとの間の通信は少なくとも2つの方法で行われる。第1に、ライン130A、130Bは2つのプロセッサ114A、114Bの間に高速度で効率的な通信交換機構を設けることができる。ライン130A、130Bはデータ処理速度を改善する。ライン130A、130Bは各プロセッサ114が単一のワードまたは8つのワードのバーストを他のプロセッサのゼロ待機状態完了RAM108へ書込むことを可能にする。
例えば、スーパーチャージモードでは、PCI TX/RXエンジン102AとリンクTx/Rxエンジン104AからのDMA I/O完了はプロセッサの完了RAM108A、108Bとの両者にポストされる。1つのプロセッサ114AがI/O完了を処理するとき、プロセッサ114Aはライン130Bを介して他のプロセッサ114Bへメッセージを送信することができる。プロセッサ114A、114B間の通信メッセージは“プロセッサAが特定のI/OのDMAデータを完了し、I/Oが次の処理ステップの準備がされている”ような情報を伝送する。システム100は“スーパーチャージモード”で動作しているとき、ライン130A、130Bを介して2つのARMプロセッサ114A、114B間での効率的なメッセージの交換は劇的にI/O処理速度を改良する。
第2に、各プロセッサ114は図6および7により以下説明するように、ドアベルレジスタと制御論理装置602A、602Bとの使用により他のプロセッサに通知することができる。
[制御論理装置およびRAM]
図2は、図1のシステム100の各側101A、101B中に設けられている完了制御論理装置200およびDTCM RAM214の1実施形態を示している。制御論理装置200は5つのデータパス、即ちファイバチャンネル受信パスFRxQ240、ファイバチャンネル送信パスFTxQ242、PCI受信パスDXBRx244、PCI送信パスDXBTx246、および他のARMプロセッサ114からの書込みパス130に結合されている。制御論理装置200はシステムクロックライン(sysclk)、システムリセットライン(sysrst)、“データが堅密に結合されたメモリ”(DTCM)ポート112、ARMプロセッサ114へのインターフェース262にもまだ結合されている。図1および2に示されているように、インターフェース/信号ライン262はRAMインターフェース論理装置(図1では106、図2では200)とARMプロセッサ114との間である。
図2のDTCM RAM214は図1では完了RAM108Aとメッセージ区域110A(または完了RAM108Bとメッセージ区域110B)に対応する。図2では、データが堅密に結合されたメモリ(DTCM)ポート112はARMプロセッサ114がDTCM RAM214と通信することを可能にする。DTCM RAM214はARMプロセッサ114A、114B内の専用のDTCMポート112とインターフェースする。“DTCM”はプロセッサのDTCMポートプロトコルをサポートするメモリとして規定されてもよい。DTCMポート112はARMプロセッサ114に組込まれるので、プロセッサのメモリに対するアクセス時間は劇的に改良される。
図2の完了制御論理装置200は複数のマルチプレクサ202、204、206、208、210、複数のレジスタ250−257、仲裁装置212、ARMとCRデータおよびアドレスデコーダ226(“CR”は完了RAMを表す)、put_ctl制御装置228、別の仲裁装置230、CRレジスタ232(“CR”は完了RAMを表す)を含んでいる。制御論理装置200は図2に示されているエレメントに加えて、またはその代わりに他のエレメントを含んでいてもよい。制御装置228は4つのプットポインタを追跡する。
レジスタシンボル250−257は単一ビットレジスタとして示されているが、レジスタシンボル250−257は任意の所望の数のビットを記憶するように構成されたレジスタを表している。第5のレジスタ257は示されているデコーダ226に結合されているかまたはデコーダ226内である。
1実施形態では、DTCM RAM214は2つの読取りポートと2つの書込みポートを有する。DTCM RAM214は同期RAMである。1構造では、RAM214は1024×32RAMであるが、種々の他のワード長と任意の数のワードを有するRAMが使用されてもよい。
1実施形態ではDTCM RAM214はFRXQueue完了ブロック216、FTXQueue完了ブロック218、DXBRx完了ブロック220、DXBTx完了ブロック222のような(“待ち行列”または“区画”とも呼ばれる)複数の論理ブロックに分割されている。これらのブロック216、218、220、222は図1のRAM108に対応する。他のプロセッサからのメッセージブロック110はDTCM RAM214の別の区画である。各ブロックは32、64、128または768エントリのような任意の所望の数のエントリを有してもよい。
各ブロックはそのそれぞれのソースからI/O完了を記憶するように動作する。例えばFRXQueue完了ブロック216はファイバチャンネルリンク受信DMA動作からRx I/O完了を記憶する。Rx I/O完了はファイバチャンネルリンク/インターフェース150から中間メモリ120へ転送されるデータに関する。別の例として、DXBRx完了ブロック220はPCI受信DMA動作からのI/O完了を記憶する。
制御論理装置200は各I/O完了がただ1つのRAMブロック216、218,220、222またはブロックが十分なスペースを有するならば110に書込まれることを可能にするように構成されている。制御論理装置200はI/O完了がDTCM RAM214へ書込まれるときはいつでも、プロセッサ114へプロセッサ中断を発生する。
RAMブロックがフルであり、新しいI/O完了が到着するならば、新しいI/O完了はデータをDTCM RAM214に重書きしてはならない。その代わりに、制御論理装置200はデータソースが新しく到着するI/O完了を最初に、レジスタ250−257のようなレジスタへ書込むことを可能にする。その後、制御論理装置200はデータをDTCM RAM214へ書込む。
レジスタが既に新しいI/O完了で満たされているならば、レジスタは新しいデータを記憶する準備がされていない可能性がある。エラーフラグは制御論理装置200またはファームウェアにより断定され、ソースはI/O完了を再度、後に、再送信するように命令される。
[RAM動作]
システムのリセット後、完了RAM制御論理装置200は5つのデータパス240−248に結合するデータソースへ5つのREADY信号を発生する。セットREADY信号を検出するとき、各データソースはそれがDTCM RAM214へ書込むためのデータ(I/O完了)を有するならば、書込みエネーブル信号を発生する。5つのデータパス240−248は一度、書込みエネーブル信号が断定されると、5つの異なる“datain_reg”レジスタ250−257へ第1のデータを送信し始める。レジスタ250−257が満たされるとき、READY信号はデータソースがさらにデータを“datain_reg”レジスタ250−257へ書込まないように宣言を無効にする(deassert)。
異なるソースからの書込みエネーブル信号とデータ信号(I/O完了)は時には、完了RAM制御論理装置200の動作速度と比較して異なる速度(クロックドメイン)で送信される。例えばDXB受信パス244(PCI受信)からのデータ信号(I/O完了)は33MHz、66MHzまたは133MHzで受信される。リンクFRxQパス240(ファイバチャンネルリンク受信)からのデータは200MHzクロックに同期される。リンクFTxQパス242(ファイバチャンネルリンク送信)からのデータは106MHzクロックに同期される。ARMプロセッサはI/O完了またはプロセッサ間メッセージを200MHzクロックでポストする。これらの信号が同期されていないならば、システム100は重要な完了情報を失う可能性がある。システム100は信号が処理される前に、これらの異なる信号を共通のクロックドメインへ同期するか再クロックするように構成されている。
レジスタ250−257が満たされるとき、制御論理装置200は“datain_reg”レジスタ250−257のデータを特別なRAMブロック216―222、110へ移動するか否かを決定する。特別なRAMブロック216―222、110が満たされていないならば、制御論理装置200はデータを“datain_reg”レジスタから特別なRAMブロック216―222、110へ移動する。制御論理装置200はまた関連する“datain_reg”レジスタが次のI/O完了メッセージを記憶する準備がされていることを示すためにREADY信号をソースへ通知する。
特定のRAMブロック216―222、110が満たされているならば、制御論理装置200は“datain_reg”レジスタのデータを特別なRAMブロック216―222、110へ移動しない。ソースへのREADY信号は低アクチブの状態で維持される。
ソースがデータをソースの関連する“datain_reg”レジスタに書込みを続けようとするならば、先にレジスタにロードされたデータは重書きされる。制御論理装置200はフラグを設定し、または中断信号をソースへ送信する。ソースはデータが崩壊されるときと、崩壊されるデータを知っている。ソースは後にデータを再送信する。この場合、DTCM RAM214のデータは重書きされない。
5つのデータパス240−248はDTCM RAM214の5つの異なるブロック216―222、110にアクセスしようとする。5つの異なるレジスタ250−257は5つの異なるソースからデータを記憶するように構成されている。PCI DMA102と、LINK DMA104と、ARMプロセッサ114とが複数のデータパス240−248を介して同時にI/O完了をDTCM RAM214へ書込もうとするとき、制御論理装置200はデータ崩壊の可能性を克服することができる。
全ての5つのレジスタ250−257がロードされるとき、仲裁装置212はDTCM RAM214へ最初に書込まれるレジスタデータを決定する。仲裁装置212はデータを異なるRAMブロック216、218、220、222、110へ移動するために、ラウンドロビン方法のような迅速で公正な仲裁方法を使用してもよい。仲裁方法は異なるソースからのデータがRAMブロック216―222、110へ公正で迅速なアクセスすることを確実にする。
制御論理装置200はまた特定のデータソースのRAM書込みサイクルが第2の書込みが同一のデータソースにより試みられる前に完了することを確実にすることによってデータの崩壊の可能性を克服する。中断はI/O完了の通知が重書きされたならば、データソースとファームウェアに通知するために制御論理装置100またはファームウェアによって発生される。データソースは完了通知を再送信する。
別の方法では、RAMブロック216―222、110および/またはレジスタ250−257が満たされるとき、それぞれのDMAへのREADY信号(図2の“rdy”)は完了状態の書込みを阻止するためにインアクチブになる。DMAはREADY信号が再度アクチブになるまで待機モードにされる。その後I/O完了状態は完了RAMまたはレジスタ250―257へ書込まれる。
[RAMポインタ]
図3は、図2のRAM214からのRAMブロック300、ファームウェア306、ゲットポインタフィールド302、プットポインタフィールド304、プットポインタ304のための制御論理装置308の1実施形態を示している。ファームウェア306はメモリに記憶され、図2の制御論理装置200の制御装置またはプロセッサにより実行される。代わりにファームウェア306は図2のプロセッサ114により実行されてもよい。制御論理装置308は図2の完了RAM制御論理装置200を表している。レジスタ310はゲット/読取りポインタ302とプット/書込みポインタ304を記憶するように構成されている。図3のRAMブロック300は図2のRAMブロック216−222の1つを表している。図2の各RAMブロック216−222はその固有のゲットおよびプットポインタ302、304に関連されている。
図2の第1の4つのRAMブロック216、218、220、222がフルであるか否かを決定するために、RAM制御論理装置200は第1の4つのRAMブロック216―222に対する4つのプットポインタを管理する。I/O完了メッセージが対応するRAMブロック300(図2のRAMブロック216、218、220または222の1つ)に書込まれるとき、put_ctl制御装置228はプットポインタ304をインクリメントする(図3)。
put_ctl制御装置228はプットポインタ値をCR Regレジスタ232へ送り、ここで特定のRAMブロック300に対応するプットポインタ304とゲットポインタ302との間で比較が行われる。プットポインタ304がゲットポインタ302よりも大きいとき、中断がファームウェア306に対して発生され、少なくとも1つの完了メッセージが完了RAMブロック300に存在することを示す。
ファームウェア306がI/O完了メッセージを検索するとき、ファームウェア306は対応するゲットポインタ302をインクリメントする。ファームウェア306は全ての未処理のメッセージを検索し、適切なゲットポインタ302をインクリメントするとき、ゲットポインタ302はプットポインタ304に等しく、中断状態は除去される。
RAMブロック300のゲットポインタ302とプットポインタ304はファームウェア306により容易に追跡される。図3では、制御論理装置308はブロック300への各書込み動作が完了した後、1だけプットポインタ304をインクリメントする。プットポインタ304がRAMブロック300の最後(最後のエントリENTRY n)に到達するとき、制御論理装置308はプットポインタ304にRAMブロック300の最初(“ENTRY0”)にラップバックさせる。
ファームウェア306は図3のゲットポインタ302のような4つのゲットポインタを管理し、これは第1の4つのRAM区画216−222内のエントリを指向する。ファームウェア306は各読取り動作が完了した後、1だけゲットポインタ302をインクリメントする。ゲットポインタがRAMブロック300の最後(最後のエントリ“ENTRY n”)に到達するとき、ファームウェア306はゲットポインタ302に最初(“ENTRY0”)にラップさせる。
データ(I/O完了)がRAMブロック300に書込まれるとすぐに、中断はRAM制御論理装置300により発生される。ファームウェア306はDTCMポート112を通してRAMブロック300からプロセッサ114へデータを読出し始める。
制御論理装置308またはファームウェア306は各RAMブロック216−222の状態を追跡し満たされる完了RAM数を予測するためプットおよびゲットポインタ304、302の値を使用する。ファームウェア306または制御論理装置308はまたRAMブロック300がフルまたは空であるときを予測するためにプットおよびゲットポインタ302、304を使用する。例えば、プットポインタ304がゲットポインタ302マイナス1に等しい(Put=Get−1)ならば、ブロックまたは待ち行列300はフルである。この状態は使用されることができない1つの利用可能な位置がRAM214に存在し、最後のエントリのデータがブロック216、218、220、222、110に関連する“datain_reg”レジスタ250、252、254、256、257(図2)に記憶されることを意味している。最後のRAM位置が書込まれたならば、プットおよびゲットポインタ304、302は等しく、実際にブロック300がフルであるときブロック300が空であることを示す。この理由で、特定のRAMブロック300中でスペースが利用可能になるまで、最後のRAMエントリは外部レジスタに記憶される。
プットおよびゲットポインタ304、302が等しく、即ちput=getならば、ブロック300で、ブロックまたは待ち行列300は空である。チップリセット後、プットおよびゲットポインタ304、302はデフォルト状態の値に等しい。
[別のプロセッサからのメッセージの記憶]
図2の第5のRAM区画/ブロック110は図1のメッセージ区域110A、110Bの1つを表している。第5のRAMブロック110は“他のプロセッサ”からのメッセージを記憶するように構成されている。例えば、図1のメッセージ区域110Aはプロセッサ区域114Bからのメッセージを記憶するように構成され、メッセージ区域110Bはプロセッサ区域114Aからのメッセージを記憶するように構成されている。図1のチャンネルBのプロセッサ114BはチャンネルAのRAM108Aの第5のRAM区画ブロック110(図1のメッセージ区域110A)へメッセージを書込むためにARMプロセッサインターフェース248のARMレジスタアクセスを使用する。
デコーダ226はRAMブロック101にI/O完了メッセージを書込むために初期書込みアドレスを与える。I/O完了メッセージが一度ブロック110に書込まれると、デコーダ226は次の書込み動作のために書込みアドレスをインクリメントする。次のメッセージの書込みサイクルでは、プロセッサインターフェース248はアドレスを与える必要はない。ハードウェア200はそれ故、新しいメッセージが記憶されるべき場所を示す情報を含んでいる。
チャンネルBのプロセッサ114Bがメッセージの書込みを完全に新しいアドレスへ通報するならば、プロセッサ114Bはメッセージとアドレスの両者を提供しなければならない。図1および2のチャンネルBの“DTCM”ポート112BはチャンネルBの固有のメッセージと完了データを検索するために使用される。同様に、図1のチャンネルAの“DTCM”ポート112AはチャンネルAの固有のメッセージと完了データの検索に使用される。
DTCMは物理的にプロセッサの非常に近くに位置されることができるので、システム100はゼロ待機状態アクセスを管理できる。
図4は図1のシステム100を使用するプロセスの1実施形態を示している。ブロック400では、システム100は単一のチャンネル101Aまたは101Bが作動中であり、他のチャンネルがアイドルまたは動作できないことを検出する。システム100は“スーパーチャージモード”に入る。ブロック402で、第1のプロセッサ(114Aと仮定する)はホストメモリ140と中間メモリ120との間のデータ転送からのI/O完了のような1つのタイプのI/O完了を処理することができる。第2のプロセッサ(114Bと仮定する)は中間メモリ120とファイバチャンネルリンク/インターフェース150との間のデータ転送からのI/O完了のような別のタイプのI/O完了を処理することができる。
ブロック404では、第1のプロセッサ114AはI/O完了を終了し、第2のプロセッサ114Bに次の処理段のI/Oを準備するように通知するため、メッセージを第2のプロセッサへ送信する。
図5は図2、3の制御論理装置200およびRAM214を使用するプロセスの1実施形態を示している。ブロック500で、完了RAM制御論理装置200は複数のREADY信号を複数のデータパス(例えば240−248)を介して複数のデータソースへ発生する。
ブロック502で、各データソースはセットREADY信号を検出し、データソースがDTCM RAM214へ書込むためのデータ(I/O完了)を有するならば書込みエネーブル信号を発生する。
ブロック504で、一度書込みエネーブル信号が宣言されると、複数のデータパスはデータを複数のデータインレジスタ(例えば250−256)へ送信し始める。
ブロック506で、レジスタが満たされるとき、READY信号はデータソースがさらに多くのデータをデータインレジスタに書込まれることを阻止するため宣言が無効にされる。
ブロック508で、レジスタが満たされるとき、制御論理装置200はデータインレジスタからDTCM RAM214へデータを移動するか否かを決定し、これは各RAMブロック216−222が満たされているか否かにしたがう。
ブロック510で、レジスタが満たされないならば、制御論理装置200はデータをRAMブロックへ移動する。制御論理装置200はまた関連するデータインレジスタが次のデータセグメントを記憶する準備がされていることを示すためにソースへREADY信号を宣言する。
ブロック511で、5つのレジスタ250−256の全てまたはその幾つかがロードされるとき、仲裁装置212は最初にDTCM RAM214へ書込まれるレジスタデータを決定する。仲裁装置212はRAM214への公生で迅速なアクセスのためのラウンドロビン方法を使用する。
ブロック512で、RAMブロック216―222がフルであるならば、制御論理装置200はデータインデータレジスタのデータをRAMブロック216―222に移動しない。ソースへのREADY信号は低いアクチブの状態である。
ブロック514で、ソースがデータをソースの関連するデータインレジスタに書込みを続けようとする。レジスタが既にデータを記憶しているならば、制御論理装置200はフラグを設定し、または中断信号をソースへ送信する。
[ドアベルレジスタおよび制御論理装置]
図6はスーパーチャージチャンネルモードで動作する2つのプロセッサ114A、114B、例えば単一のファイバチャンネルリンクを制御するため共に動作する2つのプロセッサ114A、114Bを有するシステム600の1実施形態を示している。システム600はPCI/Xインターフェース606、2つの完了RAM108A、108B、リンクRx/Tx DMAエンジン104、PCI Rx/Tx DMAエンジン102、2つのプロセッサ114A、114B、プロセッサ114A、114B間のドアベルレジスタおよび制御論理装置602A、602B、NL−ポートおよび並直列モジュール608、QDR RAM制御装置604、QDR外部メモリ605を含んでいる。
図7は、図6のプロセッサ間ドアベルレジスタおよび論理装置の1実施形態のブロック図である。図7はチャンネルAのドアベルレジスタ704A、706A、708A、710Aのセット702Aと、チャンネルBのドアベルレジスタ704B、706B、708B、710Bのセット702Bとの相互作用およびマッピングを示している。レジスタはドアベルレジスタRO/RC704A、704B、ドアベルエネーブルレジスタR/W706A、706B、ドアベルの他チャンネルR/Wレジスタ708A、708B、ドアベルエネーブル他チャンネル読取り専用レジスタ710A、710Bを含んでいる。
図6および7はDTCMとドアベルレジスタ602A、602Bの動作全体を示している。チャンネルAおよびBのプロセッサ114A、114Bはドアベルレジスタと制御論理装置602A、602Bを通して通信できる。各プロセッサ114は他のプロセッサ114に重要な事象について通知するためにドアベルレジスタと制御論理装置602A、602Bとを使用する。
例えば、プロセッサA 114Aは1ビットをチャンネルAのドアベルの他チャンネルレジスタ708Aへ書込むことによりプロセッサB 114Bを“リング(ring)する”ことができる。チャンネルAのドアベルの他チャンネルレジスタ708Aは2つのレジスタ708Aと704Bとの間の矢印により示されているように、チャンネルBのドアベルレジスタ704BとしてプロセッサBのアドレス復号スペースへマップされる。したがって、チャンネルAのドアベルの他チャンネルレジスタ708Aにビットを設定することにより、ビットをチャンネルBのドアベルレジスタ704Bへ設定させる。
プロセッサB 114Bは適切なエネーブルビットをチャンネルBのドアベルエネーブルレジスタ706Bに設定することによりドアベルレジスタ704Bの特定のドアベルビットで中断を発生することを可能にできる。プロセッサB 114Bはドアベルレジスタ704Bのビットセットを読取りクリアする。
プロセッサA 114Aは、レジスタ706BからチャンネルAのドアベルエネーブル他チャンネルレジスタ710Aまでの矢印により示されているように、プロセッサBのドアベルエネーブルレジスタ706Bの読取り専用能力を有する。
またプロセッサB 114BがプロセッサA 114Aをリングすることを可能にするレジスタ704A、706A、708B、710Bの対応するセットも存在する。したがってプロセッサA 114Aは特定のドアベルビットがプロセッサB 114Bにより設定されるときに中断を発生することもできる。
多数の実施形態を説明した。それにもかかわらず、種々の変更が本発明の技術的範囲を逸脱せずに行われることが理解されよう。したがって他の変更は特許請求の範囲に記載された技術的範囲内に含まれる。

Claims (20)

  1. 1のインタフェースに結合され第1のダイレクトメモリアクセス(DMA)エンジンと、
    第2のインタフェースに結合され第2のDMAエンジンと、
    前記第1のDMAエンジンからのI/O完了を記憶する第1の完了RAMと、
    前記第1の完了RAMに記憶されているI/O完了を処理する第1のプロセッサと、
    前記第2のDMAエンジンからのI/O完了を記憶する第2の完了RAMと、
    前記第2の完了RAMに記憶されているI/O完了を処理する第2のプロセッサと
    を有し、前記第1のDMAエンジンは前記第1及び第2の完了RAMの双方に第1のI/O完了を書き込み、前記第1のプロセッサ又は前記第2のプロセッサが前記第1のI/O完了にアクセスすることを可能にする、システム。
  2. 前記第1及び第2のプロセッサは、前記第1及び第2のプロセッサの間の通信を可能にするドアベルレジスタを利用する接続を有し、前記第1のプロセッサは、前記第2のプロセッサにより前記ドアベルレジスタに設定されたドアベルビットに応じて中断を生じさせる、請求項1記載のシステム。
  3. 前記第1及び第2のプロセッサは、前記第1及び第2のプロセッサの間の通信を可能にするメッセージを送受信するための接続を有する、請求項1記載のシステム。
  4. 前記第2のインタフェースはホストメモリに接続するためのインタフェースを備えている、請求項1記載のシステム。
  5. 前記第1及び第2のDMAエンジンは、ファームウェアの介入なしにDMAによるデータ転送を行う、請求項1記載のシステム。
  6. 用途特定集積回路(ASIC)又はフィールドプログラム可能ゲートアレイ(FPGA)により形成されている請求項1記載のシステム。
  7. 請求項記載のシステムを具備するファイバチャネルネットワーク。
  8. 第1のインタフェースに結合された第1のダイレクトメモリアクセス(DMA)エンジンからのI/O完了を第1の完了RAMに記憶するステップと、
    前記第1の完了RAMに記憶されたI/O完了を第1のプロセッサにより処理するステップと、
    第2のインタフェースに結合された第2のDMAエンジンからのI/O完了を第2の完了RAMに記憶するステップと、
    前記第2の完了RAMに記憶されたI/O完了を第2のプロセッサにより処理するステップと、
    前記第1及び第2の完了RAMの双方に第1のI/O完了を前記第1のDMAエンジンにより書き込み、前記第1のプロセッサ又は前記第2のプロセッサが前記第1のI/O完了にアクセスできるようにするステップと
    を有する方法。
  9. 前記第2のプロセッサによりドアベルレジスタにドアベルビットを設定することで、前記第1及び第2のプロセッサの間の動作を制御するためにドアベルレジスタを利用するステップと、
    前記第2のプロセッサにより前記ドアベルレジスタに設定されたドアベルビットに応じて、前記第1のプロセッサにより中断を生じさせるステップと
    さらに含む請求項記載の方法。
  10. 前記第1及び第2のプロセッサの間の動作を制御するためにメッセージを送受信するステップをさらに含む請求項記載の方法。
  11. 前記第2のインタフェースはホストメモリに接続するためのインタフェースを備えている、請求項記載の方法。
  12. 前記第1及び第2のDMAエンジンは、ファームウェアの介入なしにDMAによるデータ転送を行う、請求項記載の方法。
  13. 前記第1のDMAエンジンは前記第1のインタフェース及び中間メモリの間でデータを転送し、前記第2のDMAエンジンは前記第2のインタフェース及び前記中間メモリの間でデータを転送する、請求項1記載のシステム。
  14. 前記第2の完了RAMに記憶された前記第1のDMAエンジンからの第1のI/O完了を前記第2のプロセッサが処理した後に、前記第2のプロセッサは前記第1のプロセッサにメッセージを送信する、請求項1記載のシステム。
  15. 前記メッセージは、前記第1のプロセッサに、前記第1のI/O完了に関するデータをさらに処理させる、請求項14記載のシステム。
  16. 前記第1の完了RAMは前記メッセージを記憶する、請求項15記載のシステム。
  17. 前記第1のDMAエンジンは前記第1のインタフェース及び中間メモリの間でデータを転送し、前記第2のDMAエンジンは前記第2のインタフェース及び前記中間メモリの間でデータを転送する、請求項8記載の方法。
  18. 前記第2の完了RAMに記憶された前記第1のDMAエンジンからの第1のI/O完了を前記第2のプロセッサが処理した後に、前記第2のプロセッサは前記第1のプロセッサにメッセージを送信する、請求項8記載の方法。
  19. 前記第1のプロセッサが、前記メッセージに応答して、前記第1のI/O完了に関するデータを処理するステップを更に有する請求項18記載の方法。
  20. 前記メッセージを前記第1の完了RAMに記憶するステップを更に有する請求項19記載の方法。
JP2009287965A 2001-12-12 2009-12-18 データ転送のためのシステムおよび方法 Expired - Fee Related JP5537919B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US34038601P 2001-12-12 2001-12-12
US60/340,386 2001-12-12
US10/316,604 2002-12-10
US10/316,604 US6829660B2 (en) 2001-12-12 2002-12-10 Supercharge message exchanger

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2003551680A Division JP4499420B2 (ja) 2001-12-12 2002-12-11 スーパーチャージメッセージ交換装置

Publications (2)

Publication Number Publication Date
JP2010134939A JP2010134939A (ja) 2010-06-17
JP5537919B2 true JP5537919B2 (ja) 2014-07-02

Family

ID=26980501

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2003551680A Expired - Fee Related JP4499420B2 (ja) 2001-12-12 2002-12-11 スーパーチャージメッセージ交換装置
JP2009287965A Expired - Fee Related JP5537919B2 (ja) 2001-12-12 2009-12-18 データ転送のためのシステムおよび方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2003551680A Expired - Fee Related JP4499420B2 (ja) 2001-12-12 2002-12-11 スーパーチャージメッセージ交換装置

Country Status (7)

Country Link
US (3) US6829660B2 (ja)
EP (1) EP1466255B1 (ja)
JP (2) JP4499420B2 (ja)
KR (1) KR100962769B1 (ja)
CA (1) CA2468797C (ja)
DE (1) DE60231749D1 (ja)
WO (1) WO2003050692A1 (ja)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6829660B2 (en) * 2001-12-12 2004-12-07 Emulex Design & Manufacturing Corporation Supercharge message exchanger
US7397768B1 (en) 2002-09-11 2008-07-08 Qlogic, Corporation Zone management in a multi-module fibre channel switch
US7152132B2 (en) * 2003-07-16 2006-12-19 Qlogic Corporation Method and apparatus for improving buffer utilization in communication networks
US7646767B2 (en) 2003-07-21 2010-01-12 Qlogic, Corporation Method and system for programmable data dependant network routing
US7234101B1 (en) 2003-08-27 2007-06-19 Qlogic, Corporation Method and system for providing data integrity in storage systems
US7225277B2 (en) * 2003-09-04 2007-05-29 International Business Machines Corporation Proxy direct memory access
US7093037B2 (en) * 2003-09-22 2006-08-15 Emulex Design & Manufacturing Corporation Generalized queue and specialized register configuration for coordinating communications between tightly coupled processors
US20050240727A1 (en) * 2004-04-23 2005-10-27 Shishir Shah Method and system for managing storage area networks
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
US9264384B1 (en) * 2004-07-22 2016-02-16 Oracle International Corporation Resource virtualization mechanism including virtual host bus adapters
US7401262B2 (en) * 2004-08-05 2008-07-15 International Business Machines Corporation Method and apparatus for a low-level console
US7577772B2 (en) * 2004-09-08 2009-08-18 Qlogic, Corporation Method and system for optimizing DMA channel selection
US7676611B2 (en) * 2004-10-01 2010-03-09 Qlogic, Corporation Method and system for processing out of orders frames
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
JP4606216B2 (ja) * 2005-03-24 2011-01-05 富士通セミコンダクター株式会社 通信データ制御装置
US7231480B2 (en) * 2005-04-06 2007-06-12 Qlogic, Corporation Method and system for receiver detection in PCI-Express devices
US7281077B2 (en) * 2005-04-06 2007-10-09 Qlogic, Corporation Elastic buffer module for PCI express devices
US7428603B2 (en) * 2005-06-30 2008-09-23 Sigmatel, Inc. System and method for communicating with memory devices via plurality of state machines and a DMA controller
US9813283B2 (en) 2005-08-09 2017-11-07 Oracle International Corporation Efficient data transfer between servers and remote peripherals
US7461195B1 (en) 2006-03-17 2008-12-02 Qlogic, Corporation Method and system for dynamically adjusting data transfer rates in PCI-express devices
GB0622408D0 (en) * 2006-11-10 2006-12-20 Ibm Device and method for detection and processing of stalled data request
US7716397B2 (en) * 2007-07-03 2010-05-11 Lsi Corporation Methods and systems for interprocessor message exchange between devices using only write bus transactions
US9973446B2 (en) 2009-08-20 2018-05-15 Oracle International Corporation Remote shared server peripherals over an Ethernet network for resource virtualization
US8725931B1 (en) 2010-03-26 2014-05-13 Western Digital Technologies, Inc. System and method for managing the execution of memory commands in a solid-state memory
US8782327B1 (en) 2010-05-11 2014-07-15 Western Digital Technologies, Inc. System and method for managing execution of internal commands and host commands in a solid-state memory
US9026716B2 (en) 2010-05-12 2015-05-05 Western Digital Technologies, Inc. System and method for managing garbage collection in solid-state memory
US8635412B1 (en) 2010-09-09 2014-01-21 Western Digital Technologies, Inc. Inter-processor communication
US9164886B1 (en) 2010-09-21 2015-10-20 Western Digital Technologies, Inc. System and method for multistage processing in a memory storage subsystem
US9021192B1 (en) 2010-09-21 2015-04-28 Western Digital Technologies, Inc. System and method for enhancing processing of memory access requests
US9331963B2 (en) 2010-09-24 2016-05-03 Oracle International Corporation Wireless host I/O using virtualized I/O controllers
US9158670B1 (en) 2011-06-30 2015-10-13 Western Digital Technologies, Inc. System and method for dynamically adjusting garbage collection policies in solid-state memory
US9083550B2 (en) 2012-10-29 2015-07-14 Oracle International Corporation Network virtualization over infiniband
MY186464A (en) * 2012-12-14 2021-07-22 Mimos Berhad System and method for optimal memory management between cpu and fpga unit
US9665509B2 (en) * 2014-08-20 2017-05-30 Xilinx, Inc. Mechanism for inter-processor interrupts in a heterogeneous multiprocessor system

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6426968A (en) * 1987-07-23 1989-01-30 Nec Corp Multi-processor system
US5130981A (en) * 1989-03-22 1992-07-14 Hewlett-Packard Company Three port random access memory in a network bridge
CA2009780C (en) * 1989-05-17 1999-07-27 Ernest D. Baker Method and apparatus for the direct transfer of information between application programs running on distinct processors without utilizing the services of one or both operating systems
JPH03110657A (ja) * 1989-09-25 1991-05-10 Tokyo Electric Co Ltd マイクロプロセッサ間のデータ転送方法
JP2546901B2 (ja) * 1989-12-05 1996-10-23 株式会社日立製作所 通信制御装置
JPH0675874A (ja) * 1992-04-24 1994-03-18 Texas Instr Inc <Ti> ネットワーク・フロント・エンド回路をネットワーク・アダプター回路に結合するための信号インターフェース
DE69316009T2 (de) 1992-06-12 1998-04-23 Dow Chemical Co Sicheres frontendverbindungssystem und verfahren fur prozesssteuerungsrechner
US5307459A (en) * 1992-07-28 1994-04-26 3Com Corporation Network adapter with host indication optimization
US5828856A (en) 1994-01-28 1998-10-27 Apple Computer, Inc. Dual bus concurrent multi-channel direct memory access controller and method
US5961614A (en) 1995-05-08 1999-10-05 Apple Computer, Inc. System for data transfer through an I/O device using a memory access controller which receives and stores indication of a data status signal
JPH09102783A (ja) * 1995-10-03 1997-04-15 Mitsubishi Electric Corp Atm端末装置及びatm端末装置における通信路決定方法
US5671365A (en) 1995-10-20 1997-09-23 Symbios Logic Inc. I/O system for reducing main processor overhead in initiating I/O requests and servicing I/O completion events
JP3018975B2 (ja) * 1995-12-28 2000-03-13 株式会社日立製作所 Atmプロトコル処理コントローラ
US5894583A (en) * 1996-04-09 1999-04-13 International Business Machines Corporation Variable timeout method for improving missing-interrupt-handler operations in an environment having I/O devices shared by one or more systems
CA2194026C (en) 1996-12-24 2001-05-01 John V. Taglione Method and apparatus for moving data packets between networks while minimizing cpu interventions using a multi-bus architecture
US6067595A (en) * 1997-09-23 2000-05-23 Icore Technologies, Inc. Method and apparatus for enabling high-performance intelligent I/O subsystems using multi-port memories
US6434620B1 (en) * 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
JPH11252150A (ja) * 1998-02-27 1999-09-17 Toshiba Corp ネットワーク接続装置、及びネットワーク接続制御方法
US6185620B1 (en) * 1998-04-03 2001-02-06 Lsi Logic Corporation Single chip protocol engine and data formatter apparatus for off chip host memory to local memory transfer and conversion
US6434630B1 (en) * 1999-03-31 2002-08-13 Qlogic Corporation Host adapter for combining I/O completion reports and method of using the same
US6564271B2 (en) * 1999-06-09 2003-05-13 Qlogic Corporation Method and apparatus for automatically transferring I/O blocks between a host system and a host adapter
US6253250B1 (en) 1999-06-28 2001-06-26 Telocity, Incorporated Method and apparatus for bridging a plurality of buses and handling of an exception event to provide bus isolation
JP3987241B2 (ja) * 1999-07-29 2007-10-03 株式会社東芝 系間情報通信システム
US7010575B1 (en) * 2000-03-31 2006-03-07 Emc Corporation Data storage system having separate data transfer section and message network having bus arbitration
US7103653B2 (en) * 2000-06-05 2006-09-05 Fujitsu Limited Storage area network management system, method, and computer-readable medium
US6829660B2 (en) * 2001-12-12 2004-12-07 Emulex Design & Manufacturing Corporation Supercharge message exchanger

Also Published As

Publication number Publication date
US20060143341A1 (en) 2006-06-29
KR20040069329A (ko) 2004-08-05
US20030126320A1 (en) 2003-07-03
JP2010134939A (ja) 2010-06-17
JP2005513596A (ja) 2005-05-12
JP4499420B2 (ja) 2010-07-07
EP1466255B1 (en) 2009-03-25
US20050097240A1 (en) 2005-05-05
US7096296B2 (en) 2006-08-22
EP1466255A4 (en) 2006-11-29
WO2003050692A1 (en) 2003-06-19
US6829660B2 (en) 2004-12-07
US7363396B2 (en) 2008-04-22
CA2468797C (en) 2012-07-10
EP1466255A1 (en) 2004-10-13
CA2468797A1 (en) 2003-06-19
KR100962769B1 (ko) 2010-06-09
DE60231749D1 (de) 2009-05-07

Similar Documents

Publication Publication Date Title
JP5537919B2 (ja) データ転送のためのシステムおよび方法
JP2802043B2 (ja) クロック故障検出回路
US6161160A (en) Network interface device architecture for storing transmit and receive data in a random access buffer memory across independent clock domains
US5664223A (en) System for independently transferring data using two independently controlled DMA engines coupled between a FIFO buffer and two separate buses respectively
US6178483B1 (en) Method and apparatus for prefetching data read by PCI host
US5276684A (en) High performance I/O processor
US7788334B2 (en) Multiple node remote messaging
US5448558A (en) Method and apparatus for managing packet FIFOS
KR20010015608A (ko) 멀티 포트 메모리를 이용하는 지능형 데이터 버스인터페이스
WO2012143953A2 (en) Optimized multi-root input output virtualization aware switch
KR980013147A (ko) 패킷 상호 연결망에서의 메시지 송신 장치 및 메시지 송신 제어방법
JPH0775016B2 (ja) データ処理システム及びデータ通信バス・システム
JP3769413B2 (ja) ディスクアレイ制御装置
US20030033350A1 (en) Method and apparatus for transmitting packets within a symmetric multiprocessor system
US20060236032A1 (en) Data storage system having memory controller with embedded CPU
US6401142B1 (en) Apparatus and method for selective bus transfer using master and slave modes
KR100329968B1 (ko) 이중포트 구조로 이루어진 다수의 트랜잭션 버퍼를 구비한캐쉬 제어기
WO2003102805A2 (en) Inter-chip processor control plane
JPH11212939A (ja) 共通バスによって相互接続されたプロセッサを有するデータプロセッサユニット間でデータを交換するためのシステム
US20040044877A1 (en) Computer node to mesh interface for highly scalable parallel processing system
US7043612B2 (en) Compute node to mesh interface for highly scalable parallel processing system and method of exchanging data
CN115328832B (zh) 一种基于pcie dma的数据调度系统与方法
KR0138063B1 (ko) 광대역회선 분배시스템의 프로세서간 통신장치

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120724

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121018

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20121023

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121122

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20121128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130319

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130618

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130621

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130719

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130724

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130805

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130819

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130823

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130820

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130918

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131112

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140212

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140312

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

R150 Certificate of patent or registration of utility model

Ref document number: 5537919

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140428

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees