JP4088611B2 - シングル・チップ・プロトコル・コンバーター - Google Patents

シングル・チップ・プロトコル・コンバーター Download PDF

Info

Publication number
JP4088611B2
JP4088611B2 JP2004213847A JP2004213847A JP4088611B2 JP 4088611 B2 JP4088611 B2 JP 4088611B2 JP 2004213847 A JP2004213847 A JP 2004213847A JP 2004213847 A JP2004213847 A JP 2004213847A JP 4088611 B2 JP4088611 B2 JP 4088611B2
Authority
JP
Japan
Prior art keywords
protocol
single chip
processor
soc
protocol converter
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.)
Active
Application number
JP2004213847A
Other languages
English (en)
Other versions
JP2005216283A (ja
Inventor
クリストス・ジェイ・ジョージオウ
ヴィクター・エル・グレグリック
ヴァレンティーナ・サラプーラ
インディラ・ネア
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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
Priority claimed from US10/768,828 external-priority patent/US7412588B2/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2005216283A publication Critical patent/JP2005216283A/ja
Application granted granted Critical
Publication of JP4088611B2 publication Critical patent/JP4088611B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、ネットワーク・プロセッサー・デバイスおよびストレージ・エリア・ネットワークに関し、詳細には、単一のICチップ内で、あるいは従来のSoC、DSP、FPGA内のサブブロセッサー・コア・コンポーネント、または類似の集積回路サブシステムとして実装された、プロトコル変換のためのアーキテクチャを提供することによって、多数のネットワーク・プロトコルに渡るシステムおよび方法に関する。
市場がストレージ・エリア・ネットワーク(SAN)およびネットワーク接続ストレージ(NAS)システムへ移行するにつれて、ならびにインターネットの大規模な拡大により、サーバーおよびストレージ・デザインにおける新しい要求が出されている。並列SCSI接続を介して接続されたストレージは、ファイバー・チャネル(FC)ストレージ・エリア・ネットワーク(SAN)、ならびに、iSCSIおよびFibre Channel over IP(FC−IP)などの他の新生のネットワーキング・アーキテクチャによって置き換えられつつある。iSCSIは、通常はギガビット・イーサネット(R)の周囲に構築された、TCP/IPネットワークを介したブロック・データの転送に関係しており、FC−IPは、インターネット・プロトコル(IP)ベースのストレージ・ネットワーキング技術であり、この技術により、IPネットワークを介してデータをSAN設備の間でトンネリングすることによってFC情報の送信が可能となる。
汎用CPUは、ネットワーク・プロトコル変換の計算要件を満たすことができず、あるいは、単位コスト、スペースおよび電力に関して費用が高すぎる。これは、ネットワーキングおよびプロトコル処理機能の多数をホスト・プロセッサーからホスト・バス・アダプター(HBA)またはネットワーク・インターフェース・コントローラ(NIC)へオフロードすることにつながる。最初は、大部分のHBAおよびNICはASIC内で、ハードワイヤード・ロジックを使用して実装された。しかし、TCP/IPまたはiSCSIなど、複雑なネットワーク・プロトコルを実装する必要性が生じたので、プログラマブルなソリューションが、それが提供するいくつかの利点のために魅力的なものとなっており、これらの利点は、プログラマブルなソリューションが、異なる発展するプロトコルに対処することができること、プログラマブルなソリューションがプログラム変更を介して容易にアップグレード可能であること、プログラマブルなソリューションが、より速い市場参入までの期間を提供することである。
既存のSANはしばしば物理的にリモートであり、時としてより遠い距離にあり、しばしば、多数のネットワーク・アーキテクチャを使用している。既存のSANを統合するため、また、既存のWANおよびLANインフラストラクチャーを利用するために、データ通信および遠隔通信の分野でネットワーク・プロトコル変換のための必要性がある。プロトコル変換は、システム内のすべての異なる部分のシームレスな統合およびオペレーションを可能にするようになる。
システム・レベルのプロトコル・コンバーター製品は、BrocadeCommunications Systemsによって、マルチプロトコル・ファブリック・ルーティング・サービスのために発表されており、これは[http://biz.yahoo.com/prnews/031028/sftu100_1.html]であり、FibreChannel-to-Fibre Channel(FC−to−FC)、iSCSI−to−FCブリッジング、および、ファイバー・チャネルからFC−IPへの変換を提供するように計画している。
既存のプロトコル・コンバーターは多数のチップをカード上に統合して、所望のロジック機能性、またはより一般には、既存のホスト・システムにプラグ・インされたホスト・バス・アダプター・カード(HBA)を、あるいはメインのホストI/Oカード上のドーター・カードとして得て、結果として、単位コスト、スペースおよび電力に関してかさばる、より高価な製品を生じる。加えて、既存のプロトコル・コンバーターはプログラマブルではなく、あるいはプログラム可能性が非常に制限されており、異なる、あるいは新しいプロトコルに対処するために容易にアップグレードされない。加えて、様々な物理層アクセス・モジュールまたはチップが存在し、それらの実装および回路技術はしばしば1つの特定の物理層プロトコルに合わせて最適化されており、より新しい物理層プロトコルがポート上で必要とされるとき、ホスト・バス・アダプター(HBA)カード全体またはいくつかのコンポーネントの交換が必要となる。同じ物理I/Oカード内の変換は通常行われず、シングル・チップ・ソリューション内で、あるいはSoC半導体デバイス内の組み込みコアとして通常行われない。
従来技術によるシステム・オン・チップ・デザイン20を図1に例示する。これは、PPC440(Power PC)25などの処理要素、ローカル・プロセッサー・バス(PLB)21、オン・チップ周辺バス(OPB)24、ならびに、SRAM15、DDRコントローラー18、PCI−Xブリッジ22、DMA26およびDMAコントローラー28などのいくつかのコンポーネント、イーサネット(R)LANシステムのためのデータ・リンク層を提供するために使用されるイーサネット(R)・メディア・アクセス制御(MAC)プロトコル・デバイス50、プロセッサー・コア・タイマー33および割り込みコントローラー35、ならびに、OPBバス24およびPLB21とインターフェースをとるOPBブリッジ29を含む。図1に示す従来技術の実施態様では、I.B.M.の組み込みPowerPC440プロセッサー・コアおよびコアコネクト・ローカル・バスが利用されるが、ARM(例えば、http://www.arm.com/products/?OpenDocumentを参照されたい)、MIPS(MIPS:「MIPS32 4KP−組み込みMIPSプロセッサー・コア(MIPS324KP-Embedded MIPS Processor Core)」、http://www.ce.chalmers.se/thomas1/in1E/mips32_4Kp_brief.pdf)処理コアなど、他の組み込みプロセッサー・コアを使用する類似の構成を見つけることができる。図1のように、オン・チップ周辺バス24とインターフェースをとるために提供された他のデバイスには、以下のRAM/ROM周辺コントローラー45a、外部バス・マスター45b、UARTデバイス45c、Inter−ICバス(I2C)インターフェース45d、汎用I/Oインターフェース45eおよびゲートウェイ・インターフェース45fのうち1つまたは複数が含まれる。
SoCプロセッサーおよびコンポーネント・デザインの態様が記載されている、関連する参照文献には、以下が含まれる。
米国特許第6,331,977号には、チップの内部のいくつかの機能I/Oの間のクロスバー・スイッチ、および、いくつかの外部接続ピンを含む、システム・オン・チップ(SOC)が記載されており、ただしピンの数は内部I/Oの数より少ない。
米国特許第6,262,594号には、システム・オン・チップのパッドのグループの構成可能な使用のためのクロスバー・スイッチを実装する装置および方法が記載されている。
米国特許第6,038,630号には、多数のデータ・バスを介して外部構造にアクセスする多数の機能ユニットを有する統合システムのための、共有アクセス制御デバイスを提供するための、クロスバー・スイッチを実装する装置および方法が記載されている。
米国特許出願第US2002/0184419号には、共通バス・システムを使用するシステム・オン・チップのための異なるコンポーネントの使用を可能にするASICが記載されており、また、共通バスとの互換性を達成するための、異なる速度およびデータ幅を有する機能ユニットのためのラッパーが記載されている。
米国特許出願第US2002/0176402号には、SoC上の機能ユニットをリンクするための八角形相互接続ネットワークが記載されている。相互接続ネットワーク上の機能ユニットはリングとして編成され、中間のコンポーネントを結合するいくつかのクロス・データ・リンクを使用する。
米国特許出願第US2001/0042147号には、SOC相互接続のためのシステム・リソース・ルーターが記載されており、これは、各データ・キャッシュ(D−キャッシュ)および命令(I−キャッシュ)を接続する2つのチャネル・ソケットを含む。また、相互接続を提供するために、外部データ転送イニシエーター、2つの内部M−チャネル・バス、およびM−チャネル・コントローラーもが含まれる。
米国特許出願第US2002/0172197号には、point-to-point方式における、チップ上に組み込まれたクロスバー・スイッチを介して、多数の送信および受信デバイスを接続する通信システムが記載されている。
米国特許出願第US2001/0047465号には、本発明のいくつかの変形形態が記載されており、これは、送信を個々の送信タスクに分割すること、各送信タスクについての計算の複雑性を決定すること、および、計算の複雑性を回路毎のMIPSの数に基づかせることによって、合計のゲートを最小限にするための、通信システム(通常、SOCまたはASIC)のためのスケーラブルなアーキテクチャを提供する。
エー・ブリンクマン(A. Brinkmann)、ジェー・シー・ニーマン(J. C.Niemann)、アイ・ヘヘマン(I. Hehemann)、ディー・ランゲン(D. Langen)、エム・ポルマン(M. Porrmann)、ユー・ルッカート(U.Ruckert)、「次世代システム・オン・チップのためのオン・チップ相互接続(On-Chip Interconnects for NextGeneration System-on-Chips)」、ASIC2003の会議の議事録、2003年9月26〜27日、ロチェスター(Rochester)、ニューヨーク(NewYork)という名称の参照文献には、アクティブなスイッチ・ボックスを利用して、パケット・ネットワーク通信を可能にするためにプロセッサー・セルを接続する、SoCアーキテクチャが記載されている。この論文は、マルチスレッド化機能を有するプロセッサー・コアに言及しておらず、その記載もない。
Kyeong Keol Ryu、Eung Shinおよびヴィンセント・ジェー・ムーニー(VincentJ. Mooney)、「5つの異なるマルチプロセッサーSoCバス・アーキテクチャの比較(A Comparison of Five DifferentMultiprocessor SoC Bus Architectures)」、デジタル・システム・デザインにおけるユーロマイクロ・シンポジウム(EuromicroSymposium on Digital System Design)(DSS'01)の会議の議事録、2001年9月4〜6日、ワルシャワ(Warsaw)、ポーランド(Poland)という名称の参照文献には、グローバル・バスIアーキテクチャ(GBIA)、グローバル・バスIIアーキテクチャ(GBIIA)、Bi−FIFOバス・アーキテクチャ(BFBA)、クロスバー・スイッチ・バス・アーキテクチャ(CSBA)、およびコアコネクト・バス・アーキテクチャ(CCBA)を含む、マルチプロセッサーSoCバス・アーキテクチャが記載されている。
単一の組み込みプロセッサーに基づいた手法は、いくつかの応用例に対して費用効率が高い統合ソリューションを提供するが、より要求の厳しい応用例によって必要とされる計算能力、および、プロトコル変換のための柔軟性、または例えば2.5Gbpsファイバー・チャネルから10Gbpsファイバー・チャネルへの将来のプロトコル速度増大のための柔軟性に欠けることがある。
過去数年間で、図1のSoCの計算能力は、いくつかのネットワーキングの応用例において、プロセッサー・コア25と並列に動作する、図2に示す共通バス(PLB)に接続された専用プロセッサー・コア(アクセラレータ)39の追加を通じて、向上されている。これらの追加の専用プロセッサー・コア39a、39bなどは、シリコン・エリア内で通常小さく、これは、通常の汎用プロセッサーで見られる機能の多数(例えば、仮想アドレッシングをサポートするためのメモリ管理ユニットなど)が排除されるからである。この手法の例は、IBMのPowerNP(例えば、エム・ヘッデス(M. Heddes)、「IBMパワー・ネットワーク・プロセッサー・アーキテクチャ(IBM Power Networkprocessor architecture)」、ホット・チップス12(Hot Chips 12)の議事録、パロ・アルト(Palo Alto)、CA、USA、2000年8月、IEEEコンピューター・ソサエティ(ComputerSociety)という名称の参照文献を参照されたい)、および、NECのTCI/IPオフロード・エンジン(例えば、「10 Tensilica Xtensaプロセッサー・コア付きの、NECの新しいTCP/IPオフロード・エンジン(NEC'sNew TCP/IP Offload Engine Powered by 10 Tensilica Xtensa Processor Cores)」、http://www.tensilica.com/html/pr_2003_05_12.htmlという名称の参照文献を参照されたい)である。これらのシステムはプログラマブルであり、したがって、ハードワイヤード・アクセラレーターに比較してより柔軟であるが、いくつかの欠点を有する。すなわち、a)これらのシステムは追加のトラフィックをSoCバス(例えば、PLB21)上で引き起こし、これは、バスがこのときプロセッサー・アクセラレータへの命令およびデータ・ストリームをサポートしなければならず、場合によっては帯域幅競合およびシステム・パフォーマンスの制限を引き起こすからであること、b)SoCバスはしばしばマルチプロセッサーのパフォーマンスに合わせて最適化されないが、SoCシステム内の標準化されたコンポーネントおよび接続プロトコルとの互換性に合わせて最適化されること、c)プロセッサー・アクセラレータ39はしばしば非常に制限された命令セットのみを実施し、アセンブラー言語を使用し、したがって、プロセッサー・アクセラレータ上で実行するアプリケーションの開発および保守が非常に困難となり、費用がかかるようになることである。
第3のタイプのSoCデザイン75は、モトローラのMPC5554マイクロコントローラー(「デザイン・ニュース(Design News)」、2003年11月3日、38ページ)など、クロスバー・スイッチを介して接続された組み込みプロセッサー・コアであり、そのブロック図を図3に示す。図3に例示するように、モトローラのSoCデザインは、PowerPCプロセッサー・コア、メモリおよびバス・インターフェースを含む、図1および2のSoCデザインと類似の多数の要素からなるが、とりわけ、3x5クロスバー・スイッチ72をローカル・バスの1つの代わりとして実装する。クロスバー・スイッチ72をSoCデザインに組み込むことによって、プロセッサー・コア通信はより高速に発生することができ、3つのラインが同時に動作し、それにより帯域幅競合の問題にある程度まで対処する。しかし、SoCはなお、マルチプロセッサー・サポート、または、単一のSoCチップ内のプロトコル変換のようなより高度な機能、または高速インターフェースに合わせて最適化されていない。チップ内のI/O通信はクロスバー・スイッチによって制限され、なお、外部バス・インターフェースおよびホスト・システム・バスとの通信を必要とし、いかなる将来のアップグレードのためのマイクロコントローラー(SoCチップ)のパフォーマンスおよび柔軟性をも制限する。いかなるプロトコル変換も、いくつかのステージまたはチップ内で、オフ・チップで実行されることが必要となる。加えて、データ・パケットを、ホスト・システム・バス上に出された命令から分離することはできない。図3の実施例では、あるプロトコル、例えば、通常は自動車の応用例において使用されるFlexCan(CANプロトコル:「コントロール・エリア・ネットワーク」)データ・ストリームが現在モトローラMPC5554チップ内に、外部I/Oブリッジ78を介して実装されており、ならびに、DSPI(または「シリアル・ペリフェラル・インターフェース」)またはeSCI(「拡張シリアル通信インターフェース」)などの他のプロトコルが現在実装されており、各プロトコルまたはI/O固有のストリームは、I/Oブリッジ、クロスバー・スイッチ、および通常は内部チップ・バスまたは外部バス・インターフェースのいずれかを通じてシステム・バスへと至る。
現在、シングル・チップ内に今日のプロトコル変換はなく、ある独立プロトコルまたはプロトコル・バージョン・レベルからまったく新しいプロトコルまたはバージョン・レベルへの、内部チップ・バスに接続された組み込みコアによるプロトコル変換のための手段はない。
現在のプロトコル変換はシステム、またはカード・レベルでのみ行われ、前述のように多数のチップを含み、1つの例は、図4に示す、SANネットワークについて前述したBrocade Silkworm Fablic Application Server(例えば、http://www.brocade.com/san/extending_valueof_SANs.jspを参照されたい)である。
図4に概念的に示す従来技術のBrocadeシステム100では例えば、FibreChannel-to-Fibre Channel(FC−to−FC)ルーティング102、iSCSI−to−FCブリッジング104、およびファイバー・チャネルからFC−IPへの変換110の機能が提供される。Brocadeのデザインは、今日の既存の技術に勝る改良であり、1つのファイバーI/Oポート・カードが多数のプロトコルをサポートすることができ、システム内の他のポート上のトラフィックを妨げることなく、同じI/Oカード上であるプロトコルから別のプロトコルへのマイグレーションを行うこともできる。これは、パケットの処理機能、ローカル・メモリおよびフレーム・バッファーを有するいくつかのインラインRISCプロセッサー・チップ、ソフトウェア・プリプロセッサー、およびプロセッサー・カード内の変換エンジンにおいて、データおよび制御フレームを分割することによって実施される。これは標準の単一のHBAカードに勝る改良であり、単一のHBAカード内で2つのネットワーク・プロトコルを可能にし、コストおよびスペース、メイン・システム・バス上のトラフィックを妨げることなくプロトコルを変更する柔軟性、データ転送オーバーヘッド、およびメイン・システム・プロセッサー・メモリ上のメモリ競合をなくす。Brocadeの手法におけるマルチプロセッサーは完全にパイプライン化され、ローカル・メモリに接続される。
この機能性を、単一のHBAカードまたはブリッジ・カードとは対照的にシングル・チップ内に組み込んで、シングル・チップ内の真のプロトコル変換を可能にし、プロトコル・コンバーター内のデータおよび制御フレームを処理して、完成したパケットをローカルSoCバスまたはシステム・バスに送達することが、大変望ましいであろう。これは、I/Oカードをさらに削減する可能性、ハードウェアの節約(チップの数)、より少ない帯域幅競合、メモリ競合を可能にし、より高いプロトコル速度、および、SoCチップ内の(あるいはローカル・システム・バスに接続された)より多くのプロセッサー、およびより高いスループットを可能にするであろう。
米国特許出願第10/604,491号 米国特許第6,331,977号 米国特許第6,262,594号 米国特許第6,038,630号 米国特許出願第US2002/0184419号 米国特許出願第US2002/0176402号 米国特許出願第US2001/0042147号 米国特許出願第US2002/0172197号 米国特許出願第US2001/0047465号 http://biz.yahoo.com/prnews/031028/sftu100_1.html http://www.arm.com/products/?OpenDocument MIPS:「MIPS32 4KP−組み込みMIPSプロセッサー・コア(MIPS324KP-Embedded MIPS Processor Core)」、http://www.ce.chalmers.se/〜thomas1/in1E/mips32_4Kp_brief.pdf エー・ブリンクマン(A. Brinkmann)、ジェー・シー・ニーマン(J.C. Niemann)、アイ・ヘヘマン(I. Hehemann)、ディー・ランゲン(D. Langen)、エム・ポルマン(M. Porrmann)、ユー・ルッカート(U.Ruckert)、「次世代システム・オン・チップのためのオン・チップ相互接続(On-Chip Interconnects for NextGeneration System-on-Chips)」、ASIC2003の会議の議事録、2003年9月26〜27日、ロチェスター(Rochester)、ニューヨーク(NewYork) Kyeong Keol Ryu、Eung Shinおよびヴィンセント・ジェー・ムーニー(VincentJ. Mooney)、「5つの異なるマルチプロセッサーSoCバス・アーキテクチャの比較(A Comparison of Five DifferentMultiprocessor SoC Bus Architectures)」、デジタル・システム・デザインにおけるユーロマイクロ・シンポジウム(EuromicroSymposium on Digital System Design)(DSS'01)の会議の議事録、2001年9月4〜6日、ワルシャワ(Warsaw)、ポーランド(Poland) エム・ヘッデス(M. Heddes)、「IBMパワー・ネットワーク・プロセッサー・アーキテクチャ(IBMPower Network processor architecture)」、ホット・チップス12(Hot Chips 12)の議事録、パロ・アルト(PaloAlto)、CA、USA、2000年8月、IEEEコンピューター・ソサエティ(Computer Society) 「10 Tensilica Xtensaプロセッサー・コア付きの、NECの新しいTCP/IPオフロード・エンジン(NEC's New TCP/IP Offload Engine Powered by 10 Tensilica XtensaProcessor Cores)」、http://www.tensilica.com/html/pr_2003_05_12.html 「デザイン・ニュース(Design News)」、2003年11月3日、38ページ http://www.brocade.com/san/extending_valueof_SANs.jsp
本発明の目的は、ホスト・システムのリソースを必要とすることなくプロトコル変換処理をシングル・チップまたは組み込みマクロ実装内で完全に実行する、シングル・チップ上の、あるいはSoCマクロとして埋め込まれるような、自己完結型プロトコル・コンバーターを提供することである。
本発明の一態様によれば、有効なプロトコル・コンバーターが単一の半導体チップ上で、あるいは、SoCタイプのデザインで使用するためのシングル・チップ組み込みプロトコル・コンバーター・マクロとして提供され、シングル・チップまたは組み込みSoCマクロ実装は、ある通信プロトコルを別の新しい通信プロトコルに変換すること、または、ある通信プロトコル・バージョン・レベルを別の通信プロトコル・バージョン・レベルに変換すること、あるいはその両方ができる。例えば、SoC組み込みプロトコル・コンバーター・マクロまたはシングル・チップ・プロトコル・コンバーターは、パケットをあるプロトコル・バージョン・レベル、例えばファイバー・チャネル2Gb/sから、別の例えばファイバー・チャネル10Gb/sへ変換すること、または、シングル・チップまたは組み込みSoCマクロ内のあるプロトコルから完全に異なるプロトコルへの変換(例えば、ファイバー・チャネルからイーサネット(R)またはiSCSIなど)のために構成可能である。
シングル・チップとして実装されるか、組み込みマクロとして実装されるかにかかわらず、プロトコル・コンバーターは、1つまたは複数のプロセッサー・コア・アセンブリであって、その各々は、プロトコル変換機能を実施するためのオペレーションを実行することができる2つ以上のマイクロプロセッサー・デバイスを含む、プロセッサー・コア・アセンブリと、各プロセッサー・コア・アセンブリ内の少なくとも1つのデータおよび命令を格納するための、前記2つ以上のマイクロプロセッサー・デバイスに関連付けられたローカル・ストレージ・デバイスと、1つまたは複数の通信プロトコルに従って通信パケットの受信および送信を可能にする、1つまたは複数の構成可能なインターフェース・デバイスと、前記2つ以上のマイクロプロセッサー・デバイスとインターフェース・デバイスの間の通信を可能にするための相互接続手段とを含む。したがって、シングル・チップ・プロトコル・コンバーターおよび組み込みマクロ・デザインは、SoCタイプのデザインを、はるかにより高いプロトコル速度に応じてスケールするための手段を含み、より多数のプロセッサーをSoC実装内に組み込む機能を含むので有利である。
シングル・チップまたは組み込みプロトコル・コンバーター機能性を、完全にパイプライン化されたマルチスレッド化のマルチプロセッサー・チップ・デザインを利用することによって実現することができ、そこではローカル・メモリがチップ内に(あるいはSoC接続マクロとして)組み込まれてプロトコル変換のすべての機能(サイズ変更、再フォーマット、制御、パーティション化)がハンドルされて、完成したパケットがローカル・バスに送達される。
好ましくは、シングル・チップ・プロトコル・コンバーターおよび組み込みマクロ・デザインは、プロトコル処理の大部分を、ホスト・システム・バスのリソースを必要とすることなく実行し(すなわち、処理はSoC接続マクロ内で行われる)、すなわち、いかなるプロトコル変換されたパケットも後でローカルSoCまたはシステム・バス上に、必要とされるときに配置される。プロトコル処理命令は、スタンド・アロン・デザインのためのSoCプロトコル・マクロまたはプロトコル変換チップ内で、完全に実行される。改善されたバス・パフォーマンス、システム帯域幅、システム内のプロトコルの数の増加、および、ホスト・バス接続カードの著しい削減または除去を達成することができる。
シングル・チップ組み込みマクロのために、通常はプロトコル変換の応用例において使用されるメイン・システム・ドーター・カードは除去され、したがってコストが低下し、パフォーマンスが高まる。
さらに、SoC組み込みプロトコル・コンバーター・マクロまたはシングル・チップ・プロトコル・コンバーター・アーキテクチャは、ある機能(すなわち、プロトコル変換)からまったく新しい機能(TCP/IPオフロード、アクセラレータ、ファイアウォール機能など)へと容易に再構成可能である。このように、シングル・チップまたは組み込みプロトコル・コンバーター・マクロの動作機能を、まったく新しい動作機能へと修正することができ、この新しい動作機能は、そのために最初にプログラムされていた可能性のある第1の動作機能とは別のユニークなものである。この動作機能変更を、それだけに限定されないが、チップ内のプロセッサー・コア・アセンブリ(プロセッサー・クラスター)の数、クラスター内のプロセッサーの数、ローカル・メモリ(例えば、クラスター内の命令キャッシュ・メモリ)の量、および、各クラスターに関連付けられたローカル・メモリ(SRAM、DRAMなど)の量を含む要素に基づかせることができる。
さらなる実施形態によれば、シングル・チップ・プロトコル・コンバーター集積回路(IC)またはSoCプロトコル変換マクロ・コア実装は、十分なローカル・メモリ、制御ロジック、収集および作業キュー、クロスバー・スイッチまたは他のスイッチング・サブシステム、プロトコル制御、インターフェース、およびバス・ブリッジI/O機能がシングル・チップ・デザイン内に組み込まれた、マルチスレッド化、パイプライン、マルチプロセッサー・コアを利用する。標準バス・ブリッジI/O機能をシステム・オン・チップ(SoC)ローカル・バスに組み込むことによって、組み込みプロトコル・コンバーター・マクロはさらに、より高い密度、効率、改善されたホスト・プロセッサー・パフォーマンス、帯域幅、およびメモリ競合の改善、オーバーヘッドの削減のために実現される。マルチスレッド化の手法である、少数の命令、単純なプロセッサー構造、組み込みメモリ、および、プロセッサー内の深くまで実行しないコンテキストによるパイプライン化では、プロトコル・コンバーター・チップまたは組み込みマクロを非常に適合可能にすることができ、また、多数のプロトコル、バージョン・レベル、および、最初のプロトコル・コンバーター・チップまたは組み込みSoCマクロが最初に意図されたものとは別のネットワーク機能に対しても再構成可能にすることができる。
本発明のSoC組み込みプロトコル・コンバーター・マクロまたはシングル・チップ・プロトコル・コンバーターは、SANネットワーク、サーバー、ホーム・ネットワーク、自動車ネットワーク、産業および遠隔通信から、単純なI/Oプロトコル・データ・ストリームまでの、多数の応用例に適用されるので有利である。
本発明の装置および方法のさらなる特徴、態様および利点は、以下の説明、付属の特許請求の範囲、および添付の図面に関してよりよく理解されるであろう。
本明細書で参照されるとき、「プロトコル」という用語は、通常は規格機関によって指定されたいずれかの特定の入力/出力(I/O)通信データ物理層ストリームを指し、あるいは、会社内部の独自のインターフェースにすることができ、その例には、それだけに限定されないが、ファイバー・チャネル、ギガビット・イーサネット(R)、iSCSI、IP、TCP/IP、FC−IP、ESCON、FCON、CAN、SAMBA、DSL、VoIP、MPLS、GMPLSその他多数が含まれる。
説明する実施形態では、プロトコルは、ファイバー・チャネル、イーサネット(R)、iSCSI、ESCON、FCON、IP、階層化、または、FC−IP、IP/MPLSなどのカプセル化されたプロトコルなど、通信プロトコルである。データ通信プロトコルは通常、バイト、ワードまたはセット、フレーム、およびパケット単位で配列されたデータ・ビットを有し、フレームの開始、フレームの終了、ソース、宛先などの制御文字、ならびに、ビット・ストリームのペイロード内の実際のデータを有する。
本発明のプロトコル・コンバーターは専用プロセッサーを使用し、スタンドアロンまたはSoC(システム・オン・チップ)タイプのデザイン内で統合されるものとして実装される。SoC実装のためのマクロとして利用することができるベース・プロトコル・コンバーター・チップ350のブロック図を、図5に例示する。
このコアの基本的構造およびオペレーションは、本明細書に組み込まれた、2003年7月25日出願の「システム・オン・チップ・デザインのためのコンポーネントとしての自己完結型プロセッサー・サブシステム(Self-Contained processor subsystem as component for System-on-Chipdesign)」という名称の、所有者が同じである同時係属の関連米国特許出願第10/604,491号に記載されており、そのオペレーションをここで本明細書で説明する。
簡単に言えば、図5のように、シングル・チップ上の(または、SoC組み込みマクロ・コアとしての)プロトコル・コンバーターは、プロトコル変換専用の自己完結型プロセッサー・ベースのサブシステム350であるが、他のネットワーク機能へと再構成可能であり、1つまたは複数のプロセッサー・クラスター200、データまたは命令あるいはその両方を格納するための1つまたは複数のローカル・メモリ・バンク215、および、クロスバー・スイッチ(または別法として、ファブリック・スイッチまたはMPバスを利用することができる)または他の類似のスイッチング手段として実装されたローカル相互接続手段220を含む。本発明のシングル・チップ・プロトコル・コンバーター・デザインは、PowerPCアーキテクチャから導出された、低減された汎用命令セットを有する、多数の単純なプロセッサー・コアを含む。
各プロセッサー・クラスター200は、1つまたは複数の処理コア205を含み、その各々は、4ステージの深さのパイプラインを有するシングル・イシュー・アーキテクチャであり、各プロセッサー・コア205はそれ自体のレジスター・ファイル226、演算論理装置(ALU)225および命令シーケンサー227を有する。図5に示すシングル・チップ・プロトコル・コンバーター、および、図8に示すプロトコル変換のためのSoC組み込みマクロの実施形態では、8個のプロセッサー・コア205がプロセッサー・クラスター200内に、命令キャッシュ208と共にパックされる。命令キャッシュのサイズはデザイン・オプション、例えば32kBであり、これはネットワーク・アプリケーションには十分である。ローカル・バスを介して少なくとも2個のプロセッサー・コア205に関連付けられたローカルSRAMメモリ・ユニット230が、さらに提供される。例えば、1個、2個または16個ものプロセッサー・クラスター(128個のコアを含む)など、十分な計算能力をサポートするために必要とされるプロトコル・コンバーター350内のプロセッサー・クラスター200の厳密な数は、アプリケーションの要件によって決まる。例えば、ファイバー・チャネル・ネットワーク・プロトコルのための機能性を実施するには、より複雑なTCP/IP終端、IP、またはiSCSIプロトコル変換の実施態様のためよりも少ない計算能力が必要となる。
本発明のプロセッサー・ベースのサブシステム・プロトコル・コンバーター350のもう1つの特徴は、組み込みメモリ215を、アプリケーション・プログラム、現在の制御情報、およびアプリケーションによって使用されるデータを格納するために使用することである。標準の動作条件下でスムーズなオペレーションを提供するために十分な量のメモリが、そのサイズを過度に増すことなく、プロトコル・コンバーター内に配置される。従来のオフ・チップ・メモリと比較して、組み込みメモリのさらなる利点は、短く予測可能なアクセス時間を提供することであり、これはパケットの処理のための時間許容度推定において正確に計上される。
プロトコル・コンバーター・チップ350内のすべての要素はクロスバー・スイッチ220を介して相互接続され、クロスバー・スイッチ220は具体的には、プロセッサー・クラスター200、共有メモリ・ブロック215、およびネットワーク・プロトコル層ハードウェア支援デバイスまたは組み込みMACインターフェース175、185を相互接続する。SoC内の組み込みマクロとして実装されるとき(本明細書で図8〜10に関して説明するものなど)、クロスバー・スイッチ220は、SoCプロセッサー・ローカル・バス210または外部システム・バス223(例えば、PCIまたはPCI−Xなど)に、ブリッジ・マクロ(バス)224を用いて接続されるか、あるいは直接接続される。ブリッジを、異なる速度、バス幅、信号およびシグナリング・プロトコルに対処するように適合させることができる。マクロSoC実装では、プロトコル・コンバーター・マクロ350と組み込みプロセッサー・ローカル・バス210(例えば、IBMのコアコネクトのPLB、またはARMBAのARM、MIPなど)の間の標準インターフェースの利点は、プロセッサー・コンバーターをSoCコンポーネント・ライブラリ内のマクロとして統合することを可能にすることである。
ネットワーク・プロトコルのより低いレベルでの非常に時間依存型の機能のためにさらに実装されるものは、ハードウェア・アクセラレータであり、これは低レベル・プロトコル・タスクをハンドルし、これらのタスクは、データ・エンコード/デコード、シリアライゼーション/デシリアライゼーション、リンク管理、ならびに、CRCおよびチェックサム計算などである。これらのタスクは、転送されたパケットのあらゆるバイトにおいて実行され、ソフトウェア内で実装される場合、非常に計算が高価となる。これらの機能のハードウェア実装はしたがって、ファイバー・チャネルおよびギガビット・イーサネット(R)185のためのネットワーク・インターフェース175内で実装されたハードウェア・アクセラレータとして提供され、各々は小さいシリコン・エリアのみを必要とし、各ファイバー・チャネルおよびギガビット・イーサネット(R)通信リンク190、195とそれぞれインターフェースをとる。
プロトコル・コンバーター・コア350およびプロセッサー・バス(SoCプロセッサー・ローカル・バス、またはシングル・チップ実装におけるシステム・バス)の分離から生じる追加の利点は、1)プロトコル・コアとSoCシステムまたはシステム・バスの間の唯一のトラフィックがデータの流れのトラフィック(データの受信および送信)であり、したがって帯域幅競合が最小限にされること、および、2)サブシステム相互接続ファブリック(すなわち、スイッチ)が、最適化された高パフォーマンスのソリューションをプロトコル・コアに提供し、標準コンポーネント・インターフェースおよびSoC全体の接続プロトコル、スイッチ・ファブリックに接続された他のプロセッサー、またはメイン・システム・バス自体に対処する必要なしに、より高いプロトコル変換速度、単一のSoCまたはホスト・バス・アダプター・カード内でハンドルされるプロトコルの増加、およびメイン・システム・バス上の競合の低減が可能となることである。
プロセッサー・サブシステムがプロトコル・コンバーターとして(スタンドアロン・シングル・チップ、または組み込みSoCマクロとして)実装されるときのオペレーションを、このとき説明する。一実施形態では、シングル・チップ・プロトコル・コンバーター350(または、SoCデザインでは組み込みマクロ)は、ファイバー・チャネル(FC)からギガビット・イーサネット(R)(GE)への変換を提供する。このデザインにより、ファイバー・チャネルからIP、ファイバー・チャネルからiSCSI、ファイバー・チャネルからInfiniband、TCP/IPからiSCSI、および本明細書で述べた他のプロトコルのいずれかなど、多数の組み合わせが可能になることを理解されたい。実際には、この実装はデータ通信プロトコルのみに限定されないが、自動車ネットワーク、家庭または産業の環境内で実装することができ、これらは、CANなどの自動車ネットワークのためのモトローラMPC5554マイクロコントローラー、またはホーム・アプリケーションのためのSAMBAネットワークに類似したものなどである。
図6は、ファイバー・チャネルからギガビット・イーサネット(R)へのシングル・チップ・プロトコル・コンバーター300として構成された、図5のシングル・チップ・プロトコル・コア350の例示的な図解である。
図6に示すプロトコル・コアでは、必要とされたエンドポイント機能性、ならびに、2つのプロトコルの間の変換のために必要とされたパケットのサイズ変更および再フォーマットが実装される。この実装のための基本は、プロトコル・オペレーションをパーティション化して、これらのプロトコル・オペレーションをチップ上の異なるリソースによってハンドルすることができるようにすることである。プロセッサー(または、プロセッサーのグループ)に対する各プロトコル・オペレーションは、実装されるネットワーク物理インターフェースに近いいくつかの時間依存型機能を除いて、ハードウェア・アクセラレータによる。パケットおよび処理の流れをここで、図6に関して以下のように説明する。受信されたパケットおよびある状況情報は、インバウンドFIFOバッファから組み込みメモリへ、DMAロジックによって転送され、DMAロジックはすでに空きバッファのリストから空のメモリ域へのポインタを受信している。パケット・ヘッダーが検査されてパケット・コンテキストが決定され、必要な場合は現在のコンテキストがスイッチされ、これは、制御情報をメモリから得ることによって、あるいは、パケットが新しい交換の第1のものである場合に新しい制御情報を生成することによって行われる。加えて、受信されたパケットが検証されて、このパケットが、属する交換のサービス・クラスによりコンパイルすることが保証される。受信されたパケットについての肯定応答をソースに戻すように送信することが必要とされる場合(例えば、ファイバー・チャネル内のクラス2サービス)、肯定応答パケットが生成される。肯定応答パケットについての対応するヘッダー情報がアセンブルされ、パケットがアウトバウンド・ファイバー・チャネル・ネットワーク・インターフェースに送信される。パケットは、本明細書ではデータ・ビットの集合として定義され、少なくとも宛先情報を含み、また通常、通信パケットではヘッダーも含む。
一方、ギガビット・イーサネット(R)のパケット・ヘッダーが、受信されたパケットについて生成され、パケットはイーサネット(R)・ネットワーク・プロトコルに従ってサイズ変更される。新たに形成されたパケット(または複数のパケット)は、イーサネット(R)(EMAC)ネットワーク・インターフェース・ハードウェア・モジュール185内のアウトバウンドFIFOバッファに転送される。類似のタスクは、反対のプロトコル変換を実行するため、すなわち、パケットをイーサネット(R)からファイバー・チャネル・ネットワークに転送するために行われる。このプロトタイプ・シングル・チップ・ファイバー・チャネル/イーサネット(R)・プロトコル・コンバーターの実装300の論理表現を、図6に例示する。この実装の例は14個のプロセッサーを使用し、これらのプロセッサーは、図6の処理ブロック260内に示すファイバー・チャネル(FC)からイーサネット(R)への変換において動作し、FC入力パケットはプロセッサーP1で受信され、反対の変換プロセスを図6の処理ブロック270に示す。
プロトコル・タスクをハードウェア・リソースに割り当てることは、図6に示すプロセスの流れに従って以下のように実行される。プロセッサーP1がファイバー・チャネル・インバウンドDMAセットアップおよびターゲット・メモリ域割り当てを処理し、プロセッサーP2が、パケット・ヘッダー情報に基づいて、4個のプロセッサーP3〜P6のうち1つにパケットをディスパッチし、これがコンテキスト・スイッチ、パケット検証、および、必要とされる場合に肯定応答パケット生成を実行し、プロセッサーP7がイーサネット(R)・ヘッダー生成を実行し、イーサネット(R)・アウトバウンド・ネットワーク・インターフェースへのデータ転送をセットアップし、もはや必要とされないメモリ域ブロックを空きバッファのリンク・リストに戻す。同様に、イーサネット(R)・ネットワークからファイバー・チャネル・ネットワークへのパケットの流れは、図6に示すようにプロセッサーP8〜P14によってハンドルされる。イーサネット(R)・ネットワークに送信されるパケットへのポインタは、作業キュー249に配置され、ファイバー・チャネル上で送信されるパケットへのポインタは、ファイバー・チャネル・アウトバウンド作業キュー259上に配置される。
他のネットワーク・プロトコルまたはプロトコル変換を、類似の方法で容易に実装することができる。例えば、iSCSIまたはTCP/IPプロトコル・スタックの実装では、ユニプロセッサー実装のための既存のコードを再利用することができ、この既存のコードをアーキテクチャに適合させるための適度のプログラミング労力のみが必要となる。具体的には、パケット・ディスパッチングおよび収集のタスク(それぞれ、受信パスではP2およびP7のラベルが付けられたプロセッサー、および、送信パスではP9およびP14のラベルが付けられたプロセッサー)を実装しなければならないが、ネットワーク・プロトコルは、ほとんど不変で並列で、P3からP6、およびP10からP13のラベルが付けられたプロセッサー上で実行するように適合される。プロトコル・タスクを並列で実行するプロセッサーの数を、タスクの複雑さに従ってスケールして、タイミング要件を満たさなければならない。例えば、iSCSIプロトコル変換は、シングル・チップ・プロトコル変換を実行するための図6に示す実施例では、14個を超えるプロセッサーを必要とすることがある。
多数のプロセッサー・コア上のパケット処理は、すべての処理オペレーションを実行する単一のプロセッサーにパケットが割り当てられる、実行−完了の手法に従うことによって、あるいは、それにより別々のプロセッサーに割り当てられる複数のパイプライン・ステージにパケット処理オペレーションがパーティション化される、パイプライン化を介して実行される。本明細書で説明する一実施態様では、パイプライン化手法は、例えばI−キャッシュなど、ハードウェア・リソースのよりよい利用を提供する。別々のパイプライン・ステージに割り当てることができるネットワーク・オペレーションの例は、ヘッダー・ハンドリング、パケット検証、肯定応答の生成、パケットの再配列およびメッセージ・アセンブリ、ならびにエンドツーエンド制御である。
プロトコル・タスクをプロセッサーにスケジューリングすることは、初期化中に静的に実行され、すなわち、各プロセッサー205は同じセットのオペレーションを様々なパケット上で実行する。同様に、ガーベッジ・コレクションなど、動的メモリ管理に関連付けられたオーバーヘッドを回避するために、静的メモリ管理が使用される。使用されるすべてのメモリ構造230は、システム起動中に初期化される。これらのメモリ構造には、データ・パケットを格納するためのメモリ域275、既存のネットワーク接続の制御および状況情報のためのメモリ280、プログラムコード285および作業キューが含まれる。このアーキテクチャにおいて使用される様々なメモリ構造を図7に例示する。これは、パケット・プロトコル変換のすべてのサブプロセスがシングル・チップ内に、あるいは、SoCタイプのデザインに接続された組み込みマクロとして残ることができるようにし、最後の完成したパケットをシステム・バスまたは内部SoCバスに送達することができるようにする、これらの構造の提供である。
図7のように、データ・パケットを格納するメモリ域215は、リンク・リスト275として編成される。着信パケットは、リンク・リストから得られた次の空きバッファに格納される。パケット処理中に、パケットが格納されるメモリ域へのポインタのみが、プロセッサーの間で受け渡される。パケット処理が完了するとき、パケットはアウトバウンド・ネットワーク・インターフェースに転送され、バッファは空きバッファのリストに戻される。
プロセッサー同期化は、さらに(図7に)示すように、作業キュー290を介したメッセージ受け渡しの形態で実行される。この手法では、各プロセッサーP1〜P4が作業キュー290に関連付けられ、これが、そのスレッドによって処理されることを待機中のパケットへのポインタを格納する。プロセッサーが次のパケットに取り組む準備ができているとき、プロセッサーは次の保留中パケットのポインタをその作業キューから得る。処理を終了するとき、プロセッサーはこのパケットへのポインタを、パイプライン内の次のスレッドの作業キューに配置する。メモリ・アクセス衝突の際の正確なオペレーションを保証するために、ロッキングが利用される。
プロセッサーのスケジューリングにおける重要な考慮事項は、すべてのパイプライン・ステージが同じパケット処理時間を必要としないことがあること、およびさらに、各パイプライン・ステージの処理時間がパケット・コンテキストに応じて変わることがあることである。例えば、ファイバー・チャネルでは、パケット処理時間は、パケットがパケットのシーケンス内の最初のパケットであるか、中央のパケットであるか、最後のパケットであるかによって、パケットがリンク制御情報を搬送するかどうかによって、また、パケットが送信請求メッセージに属するか、非送信請求メッセージに属するかによって決まる。パイプラインのステージの1つが他のステージより著しく遅い場合、その作業キューがオーバーロードされるようになり、ボトルネックになることがある。これは、いくつかのプロセッサー、例えば図7のP1〜P4を使用して同じパイプライン・ステージに並列に取り組むことによって、修正される。
パイプライン・ステージ内の処理時間がパケットの間で変わることがあるので、すべてのプロセッサーを十分に利用することはできない。その代わりに、パイプライン・ステージの間で調和のとれたスループットは、十分なバッファリングおよび分離ロジックを提供することによって達成される。
同じタスクに取り組むために多数のプロセッサーを割り当てるには、タスク・ディスパッチング・プロセッサー(例えば、図7ではプロセッサーP5として示し、「MT」というラベルが付けられる)の導入が必要となる。パケット割り当て方法は短い処理時間で実行するように単純であり、リソース競合およびロッキングを通じたパフォーマンス劣化につながってはならない。
その代わりに、ファイバー・チャネルの実施態様では、ビン・ソート・アルゴリズムが使用され、これは結果として、同じコンテキスト・グループに属するすべてのパケットを単一のプロセッサーによって処理することになる。現在のコンテキストに関する情報はプロセッサーのレジスター・ファイル内にキャッシュされ、リソース競合、およびこの情報をフェッチするための平均アクセス時間が減る。ソートのオーバーヘッドは、単純なハッシュ関数を使用することによって低く保たれる。一実施態様では、パケット・ソートおよびプロセッサー割り当てのタスクは約50個の命令のみを導入する。しかし、これは、デザインの選択に応じて変わることがあり、35個〜200個の命令のいずれにも及ぶ可能性があることを理解されたい。図示の実施形態では、可能な限り少ない命令セットとして使用されており、例えば、35個〜50個の命令に及ぶ。いずれかの所与の時間に通常のネットワーク・トラフィック内のプロセッサーよりもアクティブなコンテキスト・グループがあることがあり、いくつかの異なるコンテキストを単一のプロセッサーに同時に割り当てることができる。最悪の場合、すべてのパケットがただ1つのプロセッサーに割り当てられることがあり、プロセッサーのオーバーロードを引き起こす可能性がある。しかし、実際のアプリケーションを実行中のネットワーク・トラフィックは、これが問題ではないことを明らかにしており、これはコンテキスト・グループが、並列で動作するプロセッサーの間で均一に分散されるからである。
シングル・チップ・プロトコル・コンバーターのアーキテクチャはセルラーであり、デザインをカスタム・スケールすることができる。デザインでは、プロセッサー・コアおよび組み込みメモリ・ブロックの数は、著しいデザインの変更を行うことなくアプリケーションの要件に容易に適合される。例えば、以下のネットワーキング・アプリケーションでは、10Gb/sの回線速度で動作するマルチプロセッサー・プロトコル・コンバーターの、必要とされる計算能力は、後述のように変わることがある。この点で、プロトコル・コンバーター・デザインは実際に他のネットワーク処理機能に「適合可能」であり、これは、レイアウト・デザイン、組み込みメモリ、異なるプロセスによってハンドルされたネットワークおよびプロトコル・リソースのパーティション化によるものであり、また、様々なサブプロセッサーに委任され、「制約されない」ものであり、すなわち、プロセッサーは特定のネットワーク機能から独立しており、これは、各プロセッサーが、TCP/IPオフロード機能、フレーム分類子機能、前処理機能、ハードウェア・アクセラレータ、RISCまたはデータ処理機能など、ただ1つの所与の潜在的機能性のみを有する従来技術とは異なることに留意されたい。本発明のシングル・チップ・プロトコル・コンバーター350、または組み込みマクロ・コア550として、同じプロセッサー、およびローカル・メモリのペアは、所期のオペレーションをスケールするために十分な処理能力が与えられる限り、異なるネットワーク機能(すなわち、オペレーション)を実行することができる。いくつかの実施例を以下に挙げる。
プロトコル変換:14個のプロセッサー(すなわち、2個の8コア・プロセッサー・クラスター)。図5および6に示す64バイトのI−キャッシュ、64KバイトのデータSRAM、PowerPC440(または他のプロセッサー)、および他のマクロを含むチップは、0.13mのASIC技術では約35mmを必要とするようになる。
TCP/IPオフロード・エンジン:32個のプロセッサー、すなわち、4個のプロセッサー・クラスターであり、128KバイトのI−キャッシュおよび128KバイトのSRAMを仮定すると、これは上記の技術では50mmを占有するようになる。
統合ファイアウォール:128個のプロセッサー(推定)、すなわち、16個のプロセッサー・コア・クラスター。512KバイトのI−キャッシュおよび512KバイトのSRAMを仮定すると、結果として生じるチップは約150mmとなる。
同じ基本アーキテクチャ(より多数のサブプロセッサーをチップ内で、あるいは、所与のアプリケーションのために必要とされるSoC組み込みマクロとして構築することができる)は、ネットワーク速度または市況が変化するときに適合可能である。例えば、このアーキテクチャは、このチップを「ファイアウォール・プロセッサー」または「プロトコル・コンバーター」として、あるいは、実装されてもいないまったく新しいデザインまたはプロトコルとしても再構成するように適合される。このように、1つの基本デザインは、多数のアプリケーションおよび潜在的な機能まで拡張可能である。チップまたは組み込みマクロSoCコアのネットワーク機能を、チップのデザインを変更することなく、変更することができ、これはプロセッサーおよびメモリ・ユニットの数を単に選択すること、および次いで、適切なソフトウェア・コアまたはバージョン・レベルを適用することによって行うことができる。新しいプロトコル機能のための、選択されるプロセッサーおよびメモリ・ユニットの数は、意図された新しい機能のためのコアのパフォーマンスの統計シミュレーションによって選択される。
前述のように、プロトコル・コンバーターを、別の半導体基板上のスタンドアロンの集積回路チップとして実装することができ、あるいは、SoCタイプのデザイン、FPGA、DSPなどのマクロとして組み込むことができる。本発明の第2の態様によってSoC(システム・オン・チップ)デザイン400内の組み込みマクロ・コアとして実装されたプロトコル・コンバーターの一実施例を、図8に示す。マクロはSoCデザインに限定されないが、標準DSP、マイクロコントローラー、FPGA、ASICおよびマイクロプロセッサー内で実装することもでき、これは、必要とされるものが、完成されたデータ・パケット(変換済または未変換)を送達するための標準バス・インターフェースまたはブリッジのみであるからである。「SoC」という用語は一般的に、ローカル・バスまたは多数のオン・チップ・バスに接続された少なくとも1つの処理要素、メモリ要素、I/Oインターフェースおよびコアを有する、システム・オン・チップを定義するために使用される。
図8のように、組み込みプロトコル・コンバーター・マクロ・コア550(スタンドアロン・チップ・デザインとして図5にも示す)を含むSoC400の一実施形態は、CPUまたはMPU要素425(ここではIBMのPowerPC440として示すが、PowerPCの他にも、ARM、MIPなど、他のSoCプロセッサー・コアを実装することができることを理解されたい)、ローカルSoCバス210(図8でIBMのコアコネクトPLB210(プロセッサー・ローカル・バス)として例示)、オプショナルのより低速のバス(図8でIBMのオン・チップ周辺バスまたはOPB240として例示)、および、図1に示すものなど、いずれかの数のSoCコンポーネント(コア)を含み、このSoCコンポーネント(コア)には、SRAM415、DDRコントローラー418、PCI−Xブリッジ422、DMA426およびDMAコントローラー428、OPBブリッジ429などが含まれる。OPB240は他のデバイスを接続し、これには、RAM/ROM周辺コントローラー445a、外部バス・マスター445b、UARTデバイス445c、Inter−ICバス(I2C)インターフェース445d、汎用I/Oインターフェース445eおよびゲートウェイ・インターフェース445fのうち1つまたは複数が含まれる。
図8に示す実施形態には、自己完結型プロセッサー・ベースのプロトコル・コンバーター550が含まれ、これは、シングル・チップ・プロトコル・コンバーターまたはSoCシステム400内の組み込みマクロ・コアとして統合され、プロセッサー・コア425バスと、ブリッジ224およびPLB210を介して通信する。上述のように、プロセッサー・ベースのプロトコル・コンバーター・マクロ・コア550は、1つまたは複数のプロセッサー・クラスター200、データまたは命令あるいはその両方を格納するための1つまたは複数のローカル・メモリ・バンク215、図示の実施形態ではクロスバー・スイッチ220などのローカル相互接続手段、または同等に、ファブリックまたはNxXスイッチなど、および、少なくとも2つのネットワーク・プロトコルのための少なくとも2つのメディアアクセス制御(MAC)インターフェース・ユニット175、185(メディアアクセス制御)を含む。図8のように、これらのMACユニット175、185は各外部MACインターフェース・デバイス475、485とインターフェースをとり、各外部MACインターフェース・デバイスは、物理層チップ(PHY)、SoC組み込みMACもしくはPHY機能、または、SoCもしくはホスト・カードから分離した外部プロトコル・チップであってもよい。すなわち、図8のMAC475、485は、ファイバー・チャネル・ハードウェア支援コアおよびイーサネット(R)10/100/1G EMACを含むことができるが、いかなるプロトコルのためのインターフェースを含んでもよく、別々のMACまたはPHYデバイス(物理層チップ)としてオフ・チップで統合することができ、あるいは、ローカル・カード上のSoCチップの外部であってもよい。自動車の応用例またはホーム・ネットワーキングなど、今日のより低速の応用例では、これが望ましいことがある。
図9は、組み込みSoC内の単一のパケットの、外部プロトコル・インターフェースへのプロトコル変換のためのプロセスの流れを例示する。マクロ内のローカル・メモリがパケットの処理およびDMA転送を制御するので、パケットをマクロからのプロトコル変換の後に第1のインターフェースから第2のI/Oインターフェースへ転送することができ、あるいはローカルSoCバス210に、かつ最終的にホスト・システム・バス223(例えば、図9に示すPCI−X133MHzまたは類似の等価物)に出力することができる。好ましくは、通信は二重であり、すなわち、送信および受信方向の通信を可能にするリンクを含む。図9に示す例として、AからBへのパケット変換を、第1のプロトコルに従ったパケットで示し、例えば、1Gイーサネット(R)・パケットがSoC外部プロトコル・チップ、マクロまたはEMAC(外部イーサネット(R)I/O)インターフェース485で受信され、クロスバー・スイッチ220を介してマクロの内部メモリ215へのコンバーター・マクロのEMAC185内部FIFOへ転送される。作業キューを用いたマクロの内部メモリ(SRAM、DRAMなど)はイーサネット(R)・パケットを収集し、オン・チップ・コントローラー機能はイーサネット(R)・パケットを、クロスバー・スイッチを介して、例えば図9に示す「proc.1」クラスターのサブプロセッサーに転送する。本明細書で説明するように、並列性、パイプライン化、およびマルチスレッド化により、プロトコル変換のプロセスは、プロトコル変換のために組み込みプロトコル・コンバーター・マクロ・コア550内のいくつかのサブプロセッサーの間で均一に分割され、いくつかの変換プロセスは1つのプロセッサーとマッチさせられることを理解されたい。このように、ただ1つのラウンドを通じても、例えば、「A」が「B」へ「proc.1」から「proc.3」まで進むことが示され、実際にはパケットは変換のためにいくつかのプロセッサーの間でパーティション化される。プロトコルAからBへのパケット変換を図9に示すが、代替プロセスは、「B終了」の反対側で入ってプロトコル#1(A−側)で出るプロトコルB’パケットを有することを含むようになる。B’およびA’プロセスの流れは双方向二重リンクの反対側になることを理解されたい。
実際のプロトコル変換は、組み込みプロトコル・コンバーター・マクロ・コア550内に含まれた処理要素で実行される。マクロは、並列に実行するいくつかのプロセスP0、P1...Pnを有し、各方向(すなわち、受信および送信)につき1セットである。これらの各プロセスは、マクロのProc.0、Proc.1、Proc.2などのラベルが付けられた処理要素のうち1つにマップされる。3つの異なる種類のプロセスが、説明した実施形態における組み込みSoCマクロのプロセッサー上で実行するために提供され、これらのプロセスには以下が含まれる。
1.ディスパッチ:タスクをプロセッサーに割り振るプロセス。
2.プロトコル処理:プロトコル処理タスク。
3.収集:DMA SoCコントローラーを、パケットをコアの内部メモリから転送するように、ならびに、パケットが転送された後にいくつかのメモリ管理機能を実行するように設定する。
これらのプロセスの間の通信は、図7に示すものなど、メモリ内の基本的に専用のエリアである作業キューを介して実施される。アイドル・プロセスは、それがいずれかの保留中の作業を有するかどうかを、その作業キューを定期的にポーリングすることによって判断する。
プロトコル・マクロ・コアは、必要とされるすべての特定のプロトコル・タスクを実施し、これらのタスクは、データを一連のIPパケットにパーティション化すること、IPパケット・ヘッダーの生成、イーサネット(R)・パケットの生成などであり、また、パケットをイーサネット(R)MACマクロに戻すように移動する。プロトコルによって定義されるように、パケットを再送する必要がある場合、これはSoCローカル・プロセッサーからの干渉なしに行われ、パケット/データ転送リクエストまたは実際のデータ転送のみが、外部DMAまたはDDRメモリによって必要とされる。パケット「A」から「B」へのプロトコル変換の後、パケットはローカル・オン・チップ・マクロ・メモリに戻すように転送され、データの終わりが通知される。そこから、ローカル・マクロ・メモリおよび組み込みローカルDMAコントローラーは、変換されたパケットを、クロスバー・スイッチ、ファイバー・チャネル・インターフェース、および最終的には外部I/Oインターフェースを通じて転送する。別法として、ファイバー・チャネル・インターフェースは、組み込みコントローラーに最終的な変換済パケットを送信させることができる。
外部SoC DDR418またはDMA426はさらに、パケットをプロトコル・コンバーター・インターフェースから送信することに対して、パケットをローカルSoCバスへ、バス・ブリッジを介して、必要であれば最終的にはホスト・システム・バス223上へと送達させるようにリクエストすることができる。同様に、ホスト・バス223はパケットをプロトコル変換のためにマクロに送信し、変換され戻された完成したパケットを受信するか、あるいは、各プロトコルおよびパケット・タイプに応じて外部プロトコル・インターフェース475、485のどちらかに転送することができる。
図10は、ホスト・バス223から受信され、外部SoCインターフェース485に送信のために送達される、単一のパケットのプロトコル変換のための例示的プロセスの流れを例示する。図10に例示したプロセスの流れの例では、ファイバー・チャネル・プロトコル・パケットがホスト・システム・バス223から送信(発信)され、例えば1G EMACインターフェース485などの外部イーサネット(R)・インターフェースへの変換および送信のために、SoCプロトコル・コンバーター・マクロ350へ送信される。図10のように、SoCメイン・プロセッサー(PowerPC440)はデータ処理のためのリクエストを設定し、このリクエスト、および、外部DDRメモリ内のデータへのポインタをプロトコル・コンバーター・マクロ・コア550へ、バス・ブリッジ224を介して送信する。図示の実施形態では、割り込み信号が生じるが、これを、データを専用レジスタまたは事前に指定されたメモリ位置に書き込むことによって、実施することができる。
組み込みプロトコル・コンバーター・マクロ・コア550はリクエストを認識し、DMAエンジンを起動してデータを外部ホストまたはSoCローカル・メモリからマクロ・ローカル・メモリに転送する。データ(例えば、パケット#B)は、ローカルSoCバスおよびブリッジ・バスを介してマクロのローカル・メモリ215に転送される。すべてのデータが送信されるとき、SoCプロセッサーはタスク完了について通知を受ける。これを、割り込みをPowerPC440に送信すること、または、PowerPC440によって定期的にポーリングされるある事前定義された位置に書き込むことによって、実施することができる。
作業キュー、収集シーケンス、および、タスク・ディスパッチング・プロセッサー(MT)(図7に示す)である1つのプロセッサーを用いて、ファイバー・チャネル・パケット(B)はマクロのローカル・メモリから多数のサブプロセッサーへ、本明細書で説明したパケットのパーティション化によって転送される。例えば、プロトコル「B」(ファイバー・チャネル・タイプ)からプロトコル「A」(ギガビット・イーサネット(R)・タイプ)へのプロトコル変換の完了時に、完成されたパケットは、クロスバー・スイッチ220を介してローカル・マクロのメモリに戻るように転送される。ローカルDMAリクエストは、パケット「A」をマクロのメモリから外部イーサネット(R)・インターフェース485に転送して、転送および変換を完了する。
本明細書で説明した方法は、I/Oカードおよびチップの数の削減、柔軟性の大幅な改善、ネットワーク機能性、より高い密度(より多数のプロセッサーがローカルまたはホスト・バスに接続される)、より高いプロトコル処理速度、帯域幅の改善、メモリ競合の低減、エンド・システム顧客のための柔軟性、ネットワーク・デザイン/アップグレードの容易さ、および、今日存在するものより大幅に改善されたプロトコル変換を可能にする。
本発明を詳細に、その例示的かつ実行された実施形態に関して示し、説明したが、形態および詳細における前述および他の変更を本発明において、付属の特許請求の範囲の範囲によってのみ限定されるべきである本発明の精神および範囲から逸脱することなく行うことができることは、当業者には理解されよう。
従来技術による単一のプロセッサーの使用における通常のSoCを例示するブロック図である。 従来技術によるプロセス・アクセラレーターを使用する、今日の市場に出ている通常のSoCを示すブロック図である。 従来技術によるモトローラMPC5554マイクロコントローラー(クロスバー・スイッチを組み込むSoC)を示すブロック図である。 従来技術によるSANネットワークのためのBrocadeのSilkworm(商標)Fabric Application Server_を示すブロック図である。 本発明の一実施形態によるシングル・チップ・プロトコル・コンバーター・コア・デザインの例示的概観を示す図である。 本発明の一実施形態による、ファイバー・チャネルからギガビット・イーサネット(R)のシングル・チップ・プロトコル・コンバーターとして構成されたプロトコル・コアの例示的な図解の図である。 本発明の一実施形態によるよるシングル・チップ・プロトコル・コンバーター内の例示的メモリ割り振りを示す図である。 本発明の第2の態様によるSoCデザイン内の組み込みマクロとして構成されたプロトコル・コンバーター・チップを示す図である。 本発明による図8のシステムのための、SoCマクロ内から外部I/OへのSoCプロトコル・コンバーター・パケットの流れを示す図である。 本発明による、ホスト・バスからSoCデバイス外部パケット送達インターフェースへの例示的SoCプロトコル・コンバーター・パケットの流れを示す図である。
符号の説明
175 ネットワーク・プロトコル層ハードウェア支援デバイスまたは組み込みMACインターフェース
185 ネットワーク・プロトコル層ハードウェア支援デバイスまたは組み込みMACインターフェース
190 ファイバー・チャネル通信リンク
195 ギガビット・イーサネット(R)通信リンク
200 プロセッサー・クラスター
205 プロセッサー・コア
208 命令キャッシュ
210 SoCプロセッサー・ローカル・バス
215 ローカル・メモリ・バンク
220 ローカル相互接続手段
223 外部システム・バス
224 ブリッジ・マクロ(バス)
225 演算論理装置(ALU)
226 レジスター・ファイル
227 命令シーケンサー
230 ローカルSRAMメモリ・ユニット
240 オン・チップ周辺バスまたはOPB
249 作業キュー
259 ファイバー・チャネル・アウトバウンド作業キュー
260 処理ブロック
270 処理ブロック
275 メモリ域
280 メモリ
285 プログラムコード
290 作業キュー
300 シングル・チップ・プロトコル・コンバーター
350 ベース・プロトコル・コンバーター・チップ
400 SoC(システム・オン・チップ)デザイン
415 SRAM
418 DDRコントローラー
422 PCI−Xブリッジ
425 CPUまたはMPU要素
426 DMA
428 DMAコントローラー
429 OPBブリッジ
445a RAM/ROM周辺コントローラー
445b 外部バス・マスター
445c UARTデバイス
445d Inter−ICバス(I2C)インターフェース
445e 汎用I/Oインターフェース
445f ゲートウェイ・インターフェース
475 外部MACインターフェース・デバイス
485 外部MACインターフェース・デバイス
550 組み込みマクロ・コア

Claims (11)

  1. プロセッサー要素、メモリ・ストレージ要素、ローカル通信バス、プロトコル・タイプに従ってパケットを受信するインターフェース手段を備えるシステム・オン・チップ(SoC)集積回路(IC)デバイスに組み込まれ、第1のプロトコル・タイプに従って生成されたパケットを受信すること、および、前記パケットを処理してプロトコル変換を実施すること、および、第2のプロトコル・タイプに変換されたパケットを、その出力のために生成することができる、シングル・チップ・プロトコル・コンバーターICであって、
    1つまたは複数のプロセッサー・コア・アセンブリであって、各々は、プロトコル変換処理を実施するためのオペレーションを実行可能な2つ以上のマイクロプロセッサー・デバイスを含む、プロセッサー・コア・アセンブリと、
    各プロセッサー・コア・アセンブリ内の少なくとも1つのデータおよび命令を格納するための、前記2つ以上のマイクロプロセッサー・デバイスに関連付けられた組み込みローカル・ストレージ・デバイスと、
    1つまたは複数の通信プロトコルに従って通信パケットの受信および送信を可能にする、1つまたは複数のインターフェース・デバイスと、
    前記2つ以上のマイクロプロセッサー・デバイスと前記インターフェース・デバイスの間の通信を可能にするための相互接続手段とを含み、
    前記プロトコル変換処理は、前記組み込みローカル・ストレージ・デバイスと共に前記プロトコル変換処理を担当するマクロ・コアを構成する前記プロセッサー・コア・アセンブリが、プロトコル変換を指令する前記プロセッサー要素からのリクエストを受け、前記データを、DMA手段により外部ホストまたは前記メモリ・ストレージ要素から前記組み込みローカル・ストレージ・デバイスに転送し、すべての前記データの転送が完了した段階で前記プロセッサー要素に対してタスク完了を通知して、前記シングル・チップ・プロトコル・コンバーターIC内で前記プロトコル変換処理を完全に実行する、シングル・チップ・プロトコル・コンバーターIC。
  2. 前記1つまたは複数のインターフェース・デバイスは、プログラマブルなメディア・アクセス制御インターフェース・デバイス(MAC)、および、特定のプロトコルのパケットを受信するためのプロトコル・インターフェース・アクセラレーター・デバイスを含むグループからの1つまたは複数を含む、請求項1に記載のシングル・チップ・プロトコル・コンバーターIC。
  3. 前記1つまたは複数のプロセッサー・コア・アセンブリ、ストレージ・デバイス、相互接続手段、およびインターフェース・デバイスは連携して、第1および第2のプロトコルの間の変換のために必要とされたパケットのサイズ変更および再フォーマットを可能にし、前記シングル・チップ・プロトコル・コンバーターは、さらに、受信されたパケットの、単一のプロトコル・タイプの異なるバージョン・レベルの間の変換を可能にするように構成される、請求項2に記載のシングル・チップ・プロトコル・コンバーターIC。
  4. それにより、第1のタイプの前記受信されたパケットは、1つまたは複数のマイクロプロセッサー・デバイスにパーティション化され、各プロセッサー・デバイスは、同じ命令のセットを実行し、特定のプロトコル・プロセスとペアにされる、請求項1に記載のシングル・チップ・プロトコル・コンバーターIC。
  5. プロトコル変換のための受信された命令は、前記プロセッサー・コア・アセンブリ内に完全に含まれ、前記プロトコル変換処理は、前記シングル・チップ・プロトコル・コンバーターIC上の異なるリソースによってハンドルするためのプロトコル・オペレーションのパーティション化を含む、請求項1に記載のシングル・チップ・プロトコル・コンバーターIC。
  6. 前記相互接続手段は、クロスバー・スイッチを含む、請求項1に記載のシングル・チップ・プロトコル・コンバーターIC。
  7. シングル・チップ・プロトコル・コンバーターを、プロトコル変換に関係する1つまたは複数の機能を実行させる手段を含んで構成する、請求項1に記載のシングル・チップ・プロトコル・コンバーターIC。
  8. 前記シングル・チップ・プロトコル・コンバーターICは、前記SoC IC内のマクロ・コアとして実装され、前記プロトコル変換のプロセスは、前記SoC ICのプロトコル変換マクロ・コア内に含まれる、請求項1に記載のシングル・チップ・プロトコル・コンバーターIC。
  9. 前記SoC ICは、前記プロセッサー要素、前記メモリ・ストレージ要素、およびI/Oインターフェースを含むコンポーネントを含み、前記シングル・チップ・プロトコル・コンバーターのコアは、前記シングル・チップ・プロトコル・コンバーター・コアと、前記SoC ICの前記コンポーネントの間の通信を、前記ローカル通信バスを介して可能にするためのバス・インターフェース・デバイスをさらに含む、請求項1に記載のシングル・チップ・プロトコル・コンバーターIC。
  10. 前記1つまたは複数のインターフェース・デバイスは、ファイバー・チャネル、Gbイーサネット(登録商標)、Infiniband、iSCSI、FC−IP、TCP/IP、IP、MPLS、VoDSL、CANおよびSAMBAを含むグループからの1つまたは複数を含む、ネットワーク通信プロトコルに従った通信を受信することができる、請求項1に記載のシングル・チップ・プロトコル・コンバーターIC。
  11. 請求項1〜10のいずれか1項の記載のシングル・チップ・プロトコル・コンバーターICをマクロ・コアとして含む、SoC ICデバイス。
JP2004213847A 2004-01-30 2004-07-22 シングル・チップ・プロトコル・コンバーター Active JP4088611B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/768,828 US7412588B2 (en) 2003-07-25 2004-01-30 Network processor system on chip with bridge coupling protocol converting multiprocessor macro core local bus to peripheral interfaces coupled system bus

Publications (2)

Publication Number Publication Date
JP2005216283A JP2005216283A (ja) 2005-08-11
JP4088611B2 true JP4088611B2 (ja) 2008-05-21

Family

ID=34911294

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004213847A Active JP4088611B2 (ja) 2004-01-30 2004-07-22 シングル・チップ・プロトコル・コンバーター

Country Status (2)

Country Link
JP (1) JP4088611B2 (ja)
TW (1) TWI338231B (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4376862B2 (ja) * 2005-12-20 2009-12-02 富士通テン株式会社 通信メッセージ変換装置及び通信メッセージ変換方法
JP4807502B2 (ja) * 2006-03-10 2011-11-02 日本電気株式会社 I/oブリッジ回路及び割り込み信号制御方法
JP4869123B2 (ja) * 2007-03-28 2012-02-08 株式会社日立製作所 ストレージシステム
FR2925187B1 (fr) * 2007-12-14 2011-04-08 Commissariat Energie Atomique Systeme comportant une pluralite d'unites de traitement permettant d'executer des taches en parallele,en mixant le mode d'execution de type controle et le mode d'execution de type flot de donnees
EP2301222B1 (en) * 2008-06-07 2012-01-18 Coherent Logix Incorporated Transmitting and receiving control information for use with multimedia streams
US8700821B2 (en) * 2008-08-22 2014-04-15 Intel Corporation Unified multi-transport medium connector architecture
JP2010278897A (ja) * 2009-05-29 2010-12-09 Renesas Electronics Corp 通信データ処理回路及び通信データ処理方法
KR101101342B1 (ko) * 2010-02-18 2012-01-02 한국외국어대학교 연구산학협력단 Can 기반 tmo 실시간 분산 프로세스 간 통신 방법
JP2015065507A (ja) * 2013-09-24 2015-04-09 日本電気株式会社 ゲートウェイ装置および通信ネットワークおよびゲートウェイ装置の制御方法
US9311044B2 (en) * 2013-12-04 2016-04-12 Oracle International Corporation System and method for supporting efficient buffer usage with a single external memory interface
US11811724B2 (en) * 2020-06-20 2023-11-07 Opticore Technologies, Inc. Method and system for resolving UNI port information on an external SOC/switch based on a mac-table cache
CN115866081B (zh) * 2022-11-09 2024-02-27 燕山大学 一种基于soc的工业以太网协议转换方法

Also Published As

Publication number Publication date
TWI338231B (en) 2011-03-01
TW200540644A (en) 2005-12-16
JP2005216283A (ja) 2005-08-11

Similar Documents

Publication Publication Date Title
US8811422B2 (en) Single chip protocol converter
EP3400688B1 (en) Massively parallel computer, accelerated computing clusters, and two dimensional router and interconnection network for field programmable gate arrays, and applications
CN110915173B (zh) 用于计算节点和存储节点的数据处理单元
JP4542845B2 (ja) システム・オン・チップ設計のための構成要素としての自己完結型プロセッサ・サブシステムおよびネットワーク・プロセッサ
US8127112B2 (en) SIMD array operable to process different respective packet protocols simultaneously while executing a single common instruction stream
US20030099254A1 (en) Systems and methods for interfacing asynchronous and non-asynchronous data media
JP4088611B2 (ja) シングル・チップ・プロトコル・コンバーター
US20050228930A1 (en) Programmable inter-virtual channel and intra-virtual channel instructions issuing rules for an I/O bus of a system-on-a-chip processor
JP2003050788A (ja) 高レベル・データ・リンク・コントローラから多数個のディジタル信号プロセッサ・コアに信号を分配するための装置と方法
EP1828911A2 (en) Method and apparatus to provide efficient communication between processing elements in a processor unit
US6768336B2 (en) Circuit architecture for reduced-synchrony on-chip interconnect
US20230224261A1 (en) Network interface device
Qiao et al. Design of DMA controller for multichannel PCI bus frame engine and data link manager
Christgau et al. Enabling Communication with FPGA-based Network-attached Accelerators for HPC Workloads
Wang et al. Reconfigurable RDMA communication framework of MULTI-DSP
Salapura et al. A Multiprocessor System-on-a-Chip Design Methodology for Networking Applications
IL148261A (en) Integrated circuit switch with embedded processor

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070305

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070508

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20070523

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070523

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070719

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070814

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071109

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20071214

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

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20080219

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080225

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

Free format text: PAYMENT UNTIL: 20110228

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4088611

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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

Free format text: PAYMENT UNTIL: 20110228

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20110228

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120229

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Free format text: PAYMENT UNTIL: 20120229

Year of fee payment: 4

S202 Request for registration of non-exclusive licence

Free format text: JAPANESE INTERMEDIATE CODE: R315201

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

Free format text: PAYMENT UNTIL: 20120229

Year of fee payment: 4

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20130228

Year of fee payment: 5

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20130228

Year of fee payment: 5

S202 Request for registration of non-exclusive licence

Free format text: JAPANESE INTERMEDIATE CODE: R315201

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

Free format text: PAYMENT UNTIL: 20130228

Year of fee payment: 5

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20140228

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250