JP2017537404A - メモリアクセス方法、スイッチ、およびマルチプロセッサシステム - Google Patents

メモリアクセス方法、スイッチ、およびマルチプロセッサシステム Download PDF

Info

Publication number
JP2017537404A
JP2017537404A JP2017528517A JP2017528517A JP2017537404A JP 2017537404 A JP2017537404 A JP 2017537404A JP 2017528517 A JP2017528517 A JP 2017528517A JP 2017528517 A JP2017528517 A JP 2017528517A JP 2017537404 A JP2017537404 A JP 2017537404A
Authority
JP
Japan
Prior art keywords
flow entry
data packet
switch
flow
operation command
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
Application number
JP2017528517A
Other languages
English (en)
Other versions
JP6514329B2 (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2017537404A publication Critical patent/JP2017537404A/ja
Application granted granted Critical
Publication of JP6514329B2 publication Critical patent/JP6514329B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/005Network, LAN, Remote Access, Distributed System
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/154Networked environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)

Abstract

本発明の実施形態が、メモリアクセス方法、スイッチ、およびマルチプロセッサシステムを提供する。メモリアクセス方法は、スイッチによる、データパケットを受信すること、データパケットに対してフローテーブルをマッチすることであって、フローテーブルは、少なくとも1つのフローエントリを含み、フローエントリは、マッチングフィールドと、アクションフィールドとを含み、かつ少なくとも1つのフローエントリは、第1のフローエントリを含み、第1のフローエントリのマッチングフィールドは、データパケットにおける送信元ノード情報、宛先ノード情報、およびプロトコルタイプとマッチするのに使用され、第1のフローエントリのアクションフィールドは、スイッチに組み込まれたストレージデバイスに関する操作コマンドを示すのに使用されること、およびデータパケットが第1のフローエントリとマッチすることに成功した場合、マッチされることに成功した第1のフローエントリのアクションフィールドにおける操作コマンドによりストレージデバイスに対して操作を実行することを含む。本発明において、マルチプロセッサシステムにおけるプロセッサが、スイッチに組み込まれたストレージデバイスにアクセスして、プロセッサが遠隔メモリにアクセスする可能性を低減するようにし、かつ解消するようにさえし、かつメモリアクセス遅延を低減するようにする。

Description

本発明は、コンピュータ技術の分野に関し、詳細には、メモリアクセス方法、スイッチ、およびマルチプロセッサシステムに関する。
コンピュータ速度および計算規模のますます高い要件は、マルチプロセッサシステムにつながる。マルチプロセッサシステムにおいて、複数のプロセッサが、相互接続ネットワークを使用することによって互いに通信する。相互接続ネットワークは、通常、複数のスイッチを含み、したがって、相互接続ネットワークは、計算を担うプロセッサに接続されることができ、記憶を担うメモリに接続されることもできる。プロセッサがメモリにアクセスする必要がある場合、要求は、相互接続ネットワークを使用することによってメモリに転送される。しかし、プロセッサおよびメモリの増大する数量は、相互接続ネットワークの増大する規模をもたらし、かつプロセッサが遠隔メモリにアクセスする場合、増大するアクセス遅延をさらにもたらす。その結果、システムパフォーマンスが低下する。
プロセッサが遠隔メモリ(すなわち、スイッチのポートに接続されたメモリ)にアクセスする場合、アクセス遅延を低減するための方法が、従来技術において提供される。その方法において、相互接続ネットワークにおけるすべてのスイッチは、キャッシュ(Cache)機能を有して、いくらかのメモリデータをキャッシュするようにする。プロセッサがアクセスする必要があるデータがスイッチに入っている場合、データは、スイッチにおけるキャッシュを使用することによって直接に戻されることがあり、したがって、遠隔メモリは、アクセスされる必要がなく、アクセス遅延が低減される。
本発明を実施するプロセスにおいて、本発明者は、従来技術が少なくとも以下の問題を有することを見出した。
すべてのスイッチがキャッシュを有し、各キャッシュにキャッシュされたデータは、共有されるデータ、すなわち、複数のプロセッサによって使用されるデータを含むことがある。スイッチのキャッシュにおける共有されるデータが変更され、かつ共有されるデータのコピーが別のスイッチのキャッシュに存在するとき、その別のスイッチにおけるコピーが適時に変更されることができず、そのデータが別のプロセッサによってアクセスされた場合、エラーが生じる。したがって、プロセッサのエラーを回避するのに、キャッシュにおけるデータ整合性が確実にされる必要がある。しかし、キャッシュ一貫性の保持は、通常、極めて複雑である。
スイッチにおけるキャッシュがアクセス遅延を低減するのに使用される場合、キャッシュ一貫性の困難な保持の従来技術の問題を解決するのに、本発明の実施形態は、メモリアクセス方法、スイッチ、およびマルチプロセッサシステムを提供する。技術的解決策は以下のとおりである。
第1の態様によれば、本発明の実施形態が、メモリアクセス方法を提供し、方法は、
スイッチによる、データパケットを受信することであって、データパケットは、送信元ノード情報と、宛先ノード情報と、プロトコルタイプとを含み、プロトコルタイプは、データパケットのタイプを示すのに使用されること、
データパケットに対してフローテーブルマッチングを実行することであって、フローテーブルは、少なくとも1つのフローエントリを含み、フローエントリは、マッチングフィールドと、アクションフィールドとを含み、かつ少なくとも1つのフローエントリは、第1のフローエントリを含み、第1のフローエントリのマッチングフィールドは、データパケットにおける送信元ノード情報、宛先ノード情報、およびプロトコルタイプとマッチするのに使用され、第1のフローエントリのアクションフィールドは、スイッチに組み込まれたストレージデバイスに関する操作コマンドを示すのに使用されること、および
データパケットが第1のフローエントリとマッチすることに成功した場合、マッチされることに成功した第1のフローエントリのアクションフィールドにおける操作コマンドによりストレージデバイスに対して操作を実行することを含む。
第1の態様の第1の可能な実施態様様式において、マッチされることに成功した第1のフローエントリのアクションフィールドにおける操作コマンドによりストレージデバイスに対して操作を実行することは、
マッチされることに成功した第1のフローエントリのアクションフィールドにおける操作コマンドが読取り操作コマンドである場合、ストレージデバイスからデータを読み取り、かつ読み取られたデータを、送信元ノード情報に対応するノードに戻すこと、または
マッチされることに成功した第1のフローエントリのアクションフィールドにおける操作コマンドが書込み操作コマンドである場合、データパケットに入っているデータをストレージデバイスに書き込むことを含む。
第1の態様の第2の可能な実施態様様式において、少なくとも1つのフローエントリは、第2のフローエントリをさらに含み、第2のフローエントリのマッチングフィールドは、データパケットにおける送信元ノード情報、宛先ノード情報、およびプロトコルタイプとマッチするのに使用され、第2のフローエントリのアクションフィールドは、データパケットにおけるデータに対して計算処理を実行するための操作コマンドを示すのに使用される。
さらに、第2の可能な実施態様様式において、方法は、
データパケットが第2のフローエントリとマッチすることに成功した場合、マッチされることに成功した第2のフローエントリのアクションフィールドにおける操作コマンドによりデータパケットにおけるデータに対して計算処理を実行して、計算結果を獲得すること、および
計算結果を、データパケットにおける送信元ノード情報に対応するノードに送信することをさらに含む。
第1の態様の第3の可能な実施態様様式において、方法は、
コントローラによって送信されたフローテーブル構成メッセージを受信することであって、フローテーブル構成メッセージは、スイッチに関するフローエントリを構成するのに使用されること、および
フローテーブル構成メッセージによりフローエントリを構成することをさらに含む。
第2の態様によれば、本発明の実施形態が、スイッチを提供し、スイッチは、
データパケットを受信するように構成された第1の受信モジュールであって、データパケットは、送信元ノード情報と、宛先ノード情報と、プロトコルタイプとを含み、プロトコルタイプは、データパケットのタイプを示すのに使用される、第1の受信モジュールと、
第1の受信モジュールによって受信されたデータパケットに対してフローテーブルマッチングを実行するように構成されたマッチングモジュールであって、フローテーブルは、少なくとも1つのフローエントリを含み、フローエントリは、マッチングフィールドと、アクションフィールドとを含み、かつ少なくとも1つのフローエントリは、第1のフローエントリを含み、第1のフローエントリのマッチングフィールドは、データパケットにおける送信元ノード情報、宛先ノード情報、およびプロトコルタイプとマッチするのに使用され、第1のフローエントリのアクションフィールドは、スイッチに組み込まれたストレージデバイスに関する操作コマンドを示すのに使用される、マッチングモジュールと、
データパケットが第1のフローエントリとマッチすることに成功した場合、マッチされることに成功した第1のフローエントリのアクションフィールドにおける操作コマンドによりストレージデバイスに対して操作を実行するように構成された操作モジュールとを含む。
第2の態様の第1の可能な実施態様様式において、操作モジュールは、
操作コマンドが読取り操作コマンドである場合、ストレージデバイスからデータを読み取るように構成された読取りユニットと、
読取りユニットによって読み取られたデータを、送信元ノード情報に対応するノードに戻すように構成された送信ユニットと、
操作コマンドが書込み操作コマンドである場合、データパケットに入っているデータをストレージデバイスに書き込むように構成された書込みユニットとを含む。
第2の態様の第2の可能な実施態様様式において、少なくとも1つのフローエントリは、第2のフローエントリをさらに含み、第2のフローエントリのマッチングフィールドは、データパケットにおける送信元ノード情報、宛先ノード情報、およびプロトコルタイプとマッチするのに使用され、第2のフローエントリのアクションフィールドは、データパケットにおけるデータに対して計算処理を実行するための操作コマンドを示すのに使用される。
さらに、第2の可能な実施態様様式において、スイッチは、
データパケットが第2のフローエントリとマッチすることに成功した場合、マッチされることに成功した第2のフローエントリのアクションフィールドにおける操作コマンドによりデータパケットにおけるデータに対して計算処理を実行して、計算結果を獲得するように構成された処理モジュールと、
処理モジュールによって獲得された計算結果を、データパケットにおける送信元ノード情報に対応するノードに送信するように構成された送信モジュールとをさらに含む。
第2の態様の第3の可能な実施態様様式において、スイッチは、
コントローラによって送信されたフローテーブル構成メッセージを受信するように構成された第2の受信モジュールであって、フローテーブル構成メッセージは、スイッチに関するフローエントリを構成するのに使用される、第2の受信モジュールと、
第2の受信モジュールによって受信されたフローテーブル構成メッセージによりフローエントリを構成するように構成された構成モジュールとをさらに含む。
第3の態様によれば、本発明の実施形態が、スイッチを提供し、スイッチは、プロセッサと、メモリと、バスと、通信インターフェースとを含み、メモリは、コンピュータ実行コマンドを記憶するように構成され、プロセッサとメモリは、バスを使用することによって接続され、コンピュータが実行する場合、プロセッサは、メモリに記憶されたコンピュータ実行コマンドを実行して、スイッチが、第1の態様において提供される方法を実行するようにする。
第4の態様によれば、本発明の実施形態が、スイッチを提供し、スイッチは、
データパケットを受信するように構成された入力ポートであって、データパケットは、送信元ノード情報と、宛先ノード情報と、プロトコルタイプとを含み、プロトコルタイプは、データパケットのタイプを示すのに使用される、入力ポートと、
フローテーブルを記憶するように構成されたメモリであって、フローテーブルは、少なくとも1つのフローエントリを含み、フローエントリは、マッチングフィールドと、アクションフィールドとを含み、かつ少なくとも1つのフローエントリは、第1のフローエントリを含み、第1のフローエントリのマッチングフィールドは、データパケットにおける送信元ノード情報、宛先ノード情報、およびプロトコルタイプとマッチするのに使用され、第1のフローエントリのアクションフィールドは、スイッチに組み込まれたストレージデバイスに関する操作コマンドを示すのに使用される、メモリと、
データを記憶するように構成されたストレージデバイスと、
メモリに記憶されたフローテーブルを使用することによって、入力ポートにおいて受信されたデータパケットに対してフローテーブルマッチングを実行するように構成されたテーブルルックアップ論理回路と、
データパケットが第1のフローエントリとマッチすることに成功した場合、マッチされることに成功した第1のフローエントリのアクションフィールドにおける操作コマンドによりストレージデバイスに対して操作を実行するように構成された操作論理回路と、
操作論理回路を使用することによって伝送されたデータパケットのために出力ポートを選択するように構成されたクロスバーバスと、
クロスバーバスを使用することによって伝送されたデータパケットを送信するように構成された出力ポートとを含む。
第5の態様によれば、本発明の実施形態が、マルチプロセッサシステムを提供し、マルチプロセッサシステムは、複数のプロセッサと、相互接続ネットワークとを含み、複数のプロセッサは、相互接続ネットワークを使用することによって互いに通信可能に接続され、相互接続ネットワークは、複数のスイッチを含み、スイッチは、第2の態様、または第3の態様、または第4の態様において提供されるスイッチを含む。
第5の態様の第1の可能な実施態様様式において、マルチプロセッサシステムは、複数の外部ストレージデバイスをさらに含み、複数の外部ストレージデバイスは、相互接続ネットワークを使用することによって複数のプロセッサに通信可能に接続される。
第5の態様の第2の可能な実施態様様式において、マルチプロセッサシステムは、システムオンチップである。
本発明の実施形態において提供される技術的解決策は、以下の有益な効果をもたらす。ストレージデバイスがスイッチに組み込まれ、フローテーブルマッチングが、受信されたデータパケットに対して実行され、データパケットが、フローテーブルにおける第1のフローエントリとマッチすることに成功した場合、第1のフローエントリのアクションフィールドにおける操作コマンドにより、スイッチに組み込まれたストレージデバイスに対して操作が直接に実行されて、プロセッサが遠隔メモリにアクセスする可能性を低減するようにし、かつ解消するようにさえし、かつメモリアクセス遅延を低減するようにする。さらに、スイッチにおけるストレージデバイスは、データを別々に記憶するため、別のスイッチにおけるストレージデバイスにコピーは存在せず、キャッシュ一貫性を保持することに関する問題が存在しない。このことが、実施態様を簡略化する。
本発明の実施形態における技術的解決策をより明確に説明するために、以下の記述により、実施形態を説明するために要求される添付の図面を簡単に説明する。明らかに、以下の説明における添付の図面は、本発明の単にいくつかの実施形態を示し、当業者は、それでも、独創的な取組みなしにこれらの添付の図面から他の図面を導き出すことがある。
マルチプロセッサシステムの概略構造図である。 本発明の実施形態1によるメモリアクセス方法のフローチャートである。 本発明の実施形態2によるメモリアクセス方法のフローチャートである。 本発明の実施形態2によるメモリアクセス方法のアクセス例の概略図である。 本発明の実施形態3によるスイッチの構造ブロック図である。 本発明の実施形態4によるスイッチの構造ブロック図である。 本発明の実施形態5によるスイッチの構造ブロック図である。 本発明の実施形態5によるスイッチの特定の実施態様の構造図である。 本発明の実施形態6によるスイッチのハードウェアの構造図である。 本発明の実施形態7によるマルチプロセッサシステムの構造ブロック図である。
本発明の目的、技術的解決策、および利点をより明確にするために、以下の記述により、添付の図面を参照して本発明の実施形態を詳細にさらに説明する。
本発明の実施形態が、メモリアクセス方法、スイッチ、およびマルチプロセッサシステムを提供する。以下の記述により、図1を参照してマルチプロセッサシステムのネットワークアーキテクチャを説明する。
図1を参照して、マルチプロセッサシステムにおいて、複数のプロセッサ2が、相互接続ネットワーク1を使用することによって互いに接続される。相互接続ネットワークは、複数のスイッチを含み、これらのスイッチは、プロセッサ2の間で通信データを転送することを担う。さらに、マルチプロセッサシステムは、複数の別々のストレージデバイス3をさらに含み、ストレージデバイス3は、相互接続ネットワーク1を使用することによってプロセッサ2に接続される。したがって、相互接続ネットワーク1におけるこれらのスイッチは、プロセッサ2からストレージデバイス3にアクセス要求を転送すること、およびストレージデバイス3によって戻される応答メッセージをプロセッサ2に転送することをさらに担う。
マルチプロセッサシステムの前述のネットワークアーキテクチャは、例に過ぎず、本発明の実施形態に限定を課さないことを知るのは容易である。例えば、プロセッサシステムは、ストレージデバイス3を含まないことがある。
実施形態1
本発明のこの実施形態は、前述のマルチプロセッサシステムに適用可能なメモリアクセス方法を提供する。方法は、スイッチによって実行されることがある。特定の実施態様において、スイッチは、OpenFlowスイッチ(OpenFlow Switch、略してOFS)、またはマッチング機能を有する別のスイッチであり得る。図2に示されるとおり、方法は、以下のステップを含む。
ステップ101 スイッチが、データパケットを受信し、データパケットは、送信元ノード情報と、宛先ノード情報と、プロトコルタイプとを含む。
送信元ノード情報は、送信元ノード識別子、送信元ノードMACアドレス、または類似したものであり得る。宛先ノード情報は、宛先ノード識別子、宛先ノードMACアドレス、または類似したものであり得る。プロトコルタイプは、読取り要求データパケット、書込み要求データパケット、または計算要求データパケットなどのデータパケットのタイプを示すのに使用される。
本発明のこの実施形態において、ストレージデバイスがスイッチに組み込まれる。ストレージデバイスは、スタティックランダムアクセスメモリ(Static Random Access Memory、略して、SRAM)、ダイナミックランダムアクセスメモリ(Dynamic Random Access Memory、略して、DRAM)、または類似したものであり得る。
フローテーブルがOFSにおいて設定されることを知るのは容易である。フローテーブルは、少なくとも1つのフローエントリを含み、各フローエントリは、マッチングフィールドと、アクションフィールドとを含む。フローテーブルにおけるフローエントリは、通常、転送フローエントリを含む。転送フローエントリは、データパケットの転送出口を決定するのに使用される。フローテーブルにおけるフローエントリは、データパケット変更フローエントリをさらに含むことがある。データパケット変更フローエントリは、データパケットにおける情報を変更すること、例えば、データパケットにおけるヘッダフィールドを変更することを決定するのに使用される。
ステップ102 データパケットに対してフローテーブルマッチングを実行する。
前述したとおり、スイッチにおけるフローテーブルは、複数のエントリを含むことがある。しかし、本発明のこの実施形態において、フローエントリは、第1のフローエントリをさらに含む。第1のフローエントリのマッチングフィールドは、データパケットにおける送信元ノード情報、宛先ノード情報、およびプロトコルタイプとマッチするのに使用され、第1のフローエントリのアクションフィールドは、スイッチに組み込まれたストレージデバイスに関する操作コマンドを示すのに使用される。操作コマンドは、読取り操作コマンドと、書込み操作コマンドとを含むが、以上には限定されない。
第1のフローエントリのアクションフィールドにおける操作コマンドが、一般に、第1のフローエントリのマッチングフィールドにおけるプロトコルタイプと互いに対応することを知るのは容易である。例えば、第1のフローエントリのマッチングフィールドにおけるプロトコルタイプが、読取り要求データパケットを示すのに使用される場合、第1のフローエントリのアクションフィールドにおける操作コマンドは、スイッチに組み込まれたストレージデバイスに関する読取り操作コマンドである。
実施態様において、フローエントリの機能により、様々なフローエントリ(第1のフローエントリ、転送フローエントリ、およびデータパケット変更フローエントリなどの)が、1つのフローテーブルにおいて構成されることがあり、または異なるフローエントリが、異なるフローテーブルにおいて構成されることがある。
様々なフローテーブルが、スイッチの三値連想メモリ(Ternary Content Addressable Memory、略して、TCAM)またはリデューストレイテンシダイナミックランダムアクセスメモリ(Reduced Latency Dynamic Random Access Memory、略して、RLDRAM)において、通常、設定される。
スイッチにおけるフローエントリが、OpenFlowコントローラ(OpenFlow Controller、略してOFC)によって構成されることがあることを知るのは容易である。
ステップ103 データパケットが第1のフローエントリとマッチすることに成功した場合、マッチされることに成功した第1のフローエントリのアクションフィールドにおける操作コマンドによりストレージデバイスに対して操作を実行する。
特に、ステップ103は、
マッチされることに成功した第1のフローエントリのアクションフィールドにおける操作コマンドが読取り操作コマンドである場合、ストレージデバイスからデータを読み取り、かつ読み取られたデータを、送信元ノード情報に対応するノードに戻すこと、または
マッチされることに成功した第1のフローエントリのアクションフィールドにおける操作コマンドが書込み操作コマンドである場合、データパケットに入っているデータをストレージデバイスに書き込むことを含むことがある。
本発明のこの実施形態において、ストレージデバイスがスイッチに組み込まれ、フローテーブルマッチングが、受信されたデータパケットに対して実行され、データパケットが、フローテーブルにおける第1のフローエントリとマッチすることに成功した場合、第1のフローエントリのアクションフィールドにおける操作コマンドにより、スイッチに組み込まれたストレージデバイスに対して操作が直接に実行されて、プロセッサが遠隔メモリにアクセスする可能性を低減するようにし、かつ解消するようにさえし、かつメモリアクセス遅延を低減するようにする。さらに、スイッチにおけるストレージデバイスは、データを別々に記憶するため、別のスイッチにおけるストレージデバイスにコピーは存在せず、キャッシュ一貫性を保持することに関する問題が存在しない。このことが、実施態様を簡略化する。さらに、第1のフローエントリがマッチされることに成功した場合、各スイッチが、スイッチ内のストレージデバイスに直接にアクセスするため、1つのアクセス要求に関して、相互接続ネットワークが、アクセスされること、および切り離されることが1回だけしか行われる必要がなく(すなわち、アクセス要求を受信すること、および応答メッセージを戻すこと)、ネットワークリソースを節約するようにする。
実施形態2
本発明のこの実施形態は、前述のマルチプロセッサシステムに適用可能なメモリアクセス方法を提供する。フローテーブルが、スイッチにおいて設定される。フローテーブルは、少なくとも1つのフローエントリを含み、各フローエントリは、マッチングフィールドと、アクションフィールドとを含む。マッチングフィールドは、スイッチによって受信されたデータパケットにおける情報とマッチするのに使用され、アクションフィールドは、フローエントリがマッチされることに成功した場合、データパケットに対して実行されるべき操作を示すのに使用される。フローテーブルにおけるフローエントリは、通常、転送フローエントリを含む。転送フローエントリは、データパケットの転送出口を決定するのに使用される。フローテーブルにおけるフローエントリは、データパケット変更フローエントリをさらに含むことがある。データパケット変更フローエントリは、データパケットにおける情報を変更すること、例えば、データパケットにおけるヘッダフィールドを変更することを決定するのに使用される。さらに、SRAMまたはDRAMなどのストレージデバイス(メモリとも呼ばれる)が、スイッチにさらに組み込まれる。実施態様において、スイッチは、OFSであることがあり、またはマッチング機能を有する別のスイッチであることがある。
以下は、図3を参照してこの実施形態における方法を詳細に説明する。図3に示されるとおり、方法は、以下のステップを含む。
ステップ201 スイッチが、プロセッサによって送信されたデータパケットを受信し、データパケットは、送信元ノード情報と、宛先ノード情報と、プロトコルタイプとを含む。
送信元ノード情報は、送信元ノード識別子、送信元ノードMACアドレス、または類似したものであり得る。宛先ノード情報は、宛先ノード識別子、宛先ノードMACアドレス、または類似したものであり得る。プロトコルタイプは、読取り要求データパケット、書込み要求データパケット、または計算要求データパケットなどのデータパケットのタイプを示すのに使用される。
データパケットは、読取り/書込みアドレスなどの操作アドレスをさらに含むことがある。データパケットが書込みデータパケットである場合、データパケットは、書き込まれるべきデータをさらに含むことが理解されることがある。
ステップ202 スイッチが、データパケットに対してフローテーブルマッチングを実行する。データパケットが、第1のフローエントリとマッチすることに成功した場合、ステップ203を実行する。データパケットが第2のフローエントリとマッチすることに成功した場合、ステップ204および205を実行する。
前述したとおり、スイッチにおけるフローテーブルは、複数のエントリを含むことがある。本発明のこの実施形態において、フローエントリは、第1のフローエントリをさらに含むことが強調されなければならない。第1のフローエントリのマッチングフィールドは、データパケットにおける送信元ノード情報、宛先ノード情報、およびプロトコルタイプとマッチするのに使用され、第1のフローエントリのアクションフィールドは、スイッチに組み込まれたストレージデバイスに関する操作コマンドを示すのに使用される。操作コマンドは、読取り操作コマンドと、書込み操作コマンドとを含むが、以上には限定されない。
第1のフローエントリのアクションフィールドにおける操作コマンドが、一般に、第1のフローエントリのマッチングフィールドにおけるプロトコルタイプと互いに対応することを知るのは容易である。例えば、第1のフローエントリのマッチングフィールドにおけるプロトコルタイプが、読取り要求データパケットを示すのに使用される場合、第1のフローエントリのアクションフィールドにおける操作コマンドは、スイッチに組み込まれたストレージデバイスに関する読取り操作コマンドである。
さらに、この実施形態において、フローエントリは、第2のフローエントリをさらに含むことがある。第2のフローエントリのマッチングフィールドが、データパケットにおける送信元ノード情報、宛先ノード情報、およびプロトコルタイプとマッチするのに使用され、第2のフローエントリのアクションフィールドが、データパケットにおけるデータに対して計算処理を実行するための操作コマンドを示すのに使用される。計算処理は、巡回冗長検査(Cyclic Redundancy Check、略して、CRC)または高速フーリエ変換(Fast Fourier Transformation、略して、FFT)を含むが、以上には限定されない。
実施態様において、フローエントリの機能により、様々なフローエントリ(第1のフローエントリ、転送フローエントリ、およびデータパケット変更フローエントリなどの)が、1つのフローテーブルにおいて構成されることがあり、または異なるフローエントリが、異なるフローテーブルにおいて構成されることがある。例えば、第1のフローエントリが、1つのフローテーブルにおいて構成され、転送フローエントリが、別のフローテーブルにおいて構成される。このことは、本発明のこの実施形態において限定されない。
様々なフローテーブルが、スイッチのTCAMまたはRLDRAMにおいて設定されることがある。
ステップ202において、マッチングが、受信されたデータパケットおよび各フローエントリに対して実行されることがあることを知るのは容易である。
さらに、特定の実施態様において、スイッチにおけるフローテーブルが、スイッチのポートにより設定されることがある。例えば、スイッチの1つのポートが、フローテーブルのグループに対応することがある。フローテーブルの各グループは、1つのフローテーブルを含むことがあり(フローテーブルは、すべてのタイプのフローエントリを含む)、またはフローテーブルの各グループは、複数のフローテーブルを含むことがある(複数のフローテーブルは、異なるタイプのフローエントリを含む)。ポートにおいて受信されたデータパケットは、ポートに対応するフローテーブルに照らしてのみマッチされる。別の例において、フローテーブルの1つだけのグループが、スイッチにおいて構成されることがあり、すべてのポートにおいて受信されたデータパケットは、フローテーブルのグループに照らしてマッチされる。
ステップ203 スイッチが、マッチされることに成功した第1のフローエントリのアクションフィールドにおける操作コマンドによりストレージデバイスに対して操作を実行する。
特にステップ203は、
マッチされることに成功した第1のフローエントリのアクションフィールドにおける操作コマンドが読取り操作コマンドである場合、ストレージデバイスからデータを読み取り、かつ読み取られたデータを、送信元ノード情報に対応するノードに戻すこと、または
マッチされることに成功した第1のフローエントリのアクションフィールドにおける操作コマンドが書込み操作コマンドである場合、データパケットに入っているデータをストレージデバイスに書き込むことを含むことがある。
この実施形態の特定の適用シナリオ、およびスイッチの特定の操作手続きが、以下に図4を参照して詳細に説明される。
プロセッサ04とプロセッサ42が、アプリケーションプログラムを一緒に実行する。プロセッサ04は、プロセッサ42と対話して、アプリケーションプログラムを実行するためにプロセッサ42によって要求されるデータがプロセッサ04から獲得される必要があることを決定する。アプリケーションプログラムは、コントローラに、共有されるストレージスペース(ストレージスペースは、スイッチに組み込まれたストレージデバイスのストレージスペースである)を申請して、プロセッサ04が、プロセッサ42によって要求されるデータを、プロセッサ42のアクセスのために共有されるストレージスペースに書き込むことがあるようにする。システムがセットアップされると、コントローラは、スイッチにおけるすべてのストレージデバイスを知り、スイッチにおけるすべてのストレージデバイスを管理する。
コントローラは、スイッチ11におけるストレージスペースをアプリケーションプログラムに割り当て、割り当てられたストレージスペースのアドレスをプロセッサ04およびプロセッサ42に通知し(例えば、ストレージスペース割当て情報が送信されることがあり、ストレージスペース割当て情報は、スイッチ識別子と、ストレージスペースアドレスとを含むことがある)、フローテーブル構成情報をスイッチ11に送信する。フローテーブル構成情報は、第1のフローエントリを構成するのに使用される。少なくとも2つの構成された第1のフローエントリが存在する。1つの第1のフローエントリのマッチングフィールドは、送信元ノード識別子(04)と、宛先ノード識別子(11)と、プロトコルタイプ(WR)とを含み、対応するアクションフィールドは、書込み操作コマンド(MEM WR)である。他方の第1のフローエントリのマッチングフィールドは、送信元ノード識別子(xx)と、宛先ノード識別子(11)と、プロトコルタイプ(RD)とを含み、対応するアクションフィールドは、読取り操作コマンド(MEM RD)である。
さらに、コントローラは、フローテーブル構成情報を別のスイッチ(例えば、スイッチ00または01)にさらに送信することがある。フローテーブル構成情報は、転送フローエントリを構成するのに使用される。転送フローエントリは、プロセッサ04およびプロセッサ42によってスイッチ11に送信されるデータパケットをスイッチ11に転送するように命令するのに使用される。
プロセッサ04が、コントローラによって割り当てられたストレージスペースを獲得した後、図4に示されるとおり、プロセッサ04は、書込み要求データパケット(2)を、相互接続ネットワークにおけるスイッチ00に送信する。書込み要求データパケットは、送信元ノード識別子(04)と、宛先ノード識別子(11)と、プロトコルタイプ(書込み要求を示すWR)と、書込みアドレス(00)と、書き込まれるべきデータ(xx)とを含む。書き込まれるべきデータ(xx)は、アプリケーションプログラムを実行するのにプロセッサ42によって要求されるデータである。スイッチ00は、書込み要求データパケットをスイッチ01に転送し、スイッチ01は、書込み要求データパケットをスイッチ11(すなわち、宛先ノード)に転送する。書込み要求データパケットを受信した後、スイッチ00およびスイッチ01は、書込み要求データパケットに対してフローテーブルマッチングを実行し、マッチされることに成功した転送フローエントリのアクションフィールドにより、書込み要求データパケットを転送することを知るのは容易である。
前述されるとおり、スイッチ11におけるフローテーブル(1)は、2つの第1のフローエントリを含む。フローエントリ1のマッチングフィールドは、送信元ノード識別子(04)と、宛先ノード識別子(11)と、プロトコルタイプ(WR)とを含み、対応するアクションフィールドは、書込み操作コマンド(MEM WR)である。フローエントリ2のマッチングフィールドは、送信元ノード識別子(xx)と、宛先ノード識別子(11)と、プロトコルタイプ(RD)とを含み、対応するアクションフィールドは、読取り操作コマンド(MEM RD)である。スイッチ11が書込み要求データパケットに対してフローテーブルマッチングを実行した後、書込み要求データパケットは、フローエントリ1とマッチされることに成功することがある。したがって、書込み操作コマンドが、スイッチ11におけるストレージデバイスに対して実行され、書き込まれるべきデータxxが、スイッチ11におけるストレージデバイスのアドレス00に書き込まれる。
同様に、プロセッサ42が、読取り要求データパケット(3)を、相互接続ネットワークにおけるスイッチ02に送信する。読取り要求データパケットは、送信元ノード識別子(42)と、宛先ノード識別子(11)と、プロトコルタイプ(読取り要求を示すRD)と、読取りアドレス(00)とを含む。スイッチ02は、読取り要求データパケットをスイッチ12に転送し、スイッチ12は、読取り要求データパケットをスイッチ11(すなわち、宛先ノード)に転送する。読取り要求データパケットを受信した後、スイッチ02およびスイッチ12は、読取り要求データパケットに対してフローテーブルマッチングを実行し、マッチされることに成功した転送フローエントリのアクションフィールドにより、読取り要求データパケットを転送することを知るのは容易である。
スイッチ11が、読取り要求データパケットに対してフローテーブルマッチングを実行した後、読取り要求データパケットは、フローエントリ2とマッチされることに成功することがある。したがって、読取り操作コマンドが、スイッチ11におけるストレージデバイスによって実行され、データxxが、スイッチ11におけるストレージデバイスのアドレス00から読み取られる。応答データパケット(4)がさらに生成される。応答データパケットは、送信元ノード識別子(11)と、宛先ノード識別子(42)と、プロトコルタイプ(読取り応答を示すRD RLY)と、読取りアドレス(00)と、読取りデータ(xx)とを含む。応答データパケットは、スイッチ12およびスイッチ02を使用することによってプロセッサ42に戻される。
読取り要求データパケットの処理手続きから、外部ストレージデバイスにアクセスするための既存の読取り要求手続きと比較して(読取り要求データパケットが、第1に、プロセッサによって、アクセスされる相互接続ネットワークに送信され、次に、相互接続ネットワークを使用することによって外部ストレージデバイスに転送され、読取り応答データパケットが、外部ストレージデバイスによって相互接続ネットワークに送信され、次に、相互接続ネットワークを使用することによってプロセッサに転送されて、アクセスプロセスにおいて、データパケットに関して、相互接続ネットワークがアクセスされること、および切り離されることが2回、行われる必要がある)、この実施形態のアクセスプロセスにおいて、データパケットに関して、相互接続ネットワークが、アクセスされること、および切り離されることが1回だけしか行われる必要がなく、したがって、本発明のこの実施形態におけるメモリアクセス方法がネットワークリソースを節約することがあることが知られ得る。
前述の適用シナリオは、例に過ぎず、限定するものではないことに留意されたい。本発明のこの実施形態は、以下のシナリオにさらに適用される。コントローラが、第1に、共有されるストレージスペースをアプリケーションに割り当て、かつ対応するアプリケーションを、処理のためにプロセッサに割り当てる。この事例において、プロセッサに割り当てられたアプリケーションは、共有されるストレージスペースが使用されることができることを前もって知り、したがって、共有されるストレージスペースに直接にアクセスすることができる。
ステップ204 スイッチが、マッチされることに成功した第2のフローエントリのアクションフィールドにおける操作コマンドによりデータパケットにおけるデータに対して計算処理を実行して、計算結果を獲得する。
実施態様において、計算モジュールがスイッチにおいて設定されることがあり、または特定の計算デバイスがスイッチに配置されることがある。スイッチは、データを特定の計算デバイスに送信し、計算デバイスによって戻される計算結果を受信する。
ステップ205 スイッチが、計算結果をプロセッサに送信する。
プロセッサは、データパケットにおける送信元ノード情報に対応するノードである。
この実施形態において、計算結果は、ステップ201においてプロセッサに送信される。
スイッチにおけるフローエントリがOFCによって構成されることがあることを知るのは容易である。したがって、方法は、
OFCによって送信されたフローテーブル構成メッセージを受信することであって、フローテーブル構成メッセージは、スイッチに関するフローエントリを構成するのに使用されること、および
フローテーブル構成メッセージによるフローエントリを構成することをさらに含むことがある。
本発明のこの実施形態において、ストレージデバイスがスイッチに組み込まれ、フローテーブルマッチングが、受信されたデータパケットに対して実行され、データパケットが、フローテーブルにおける第1のフローエントリとマッチすることに成功した場合、第1のフローエントリのアクションフィールドにおける操作コマンドにより、スイッチに組み込まれたストレージデバイスに対して操作が直接に実行されて、プロセッサが遠隔メモリにアクセスする可能性を低減するようにし、かつ解消するようにさえし、かつメモリアクセス遅延を低減するようにする。さらに、スイッチにおけるストレージデバイスは、データを別々に記憶するため、別のスイッチにおけるストレージデバイスにコピーは存在せず、キャッシュ一貫性を保持することに関する問題が存在しない。このことが、実施態様を簡略化する。さらに、第1のフローエントリがマッチされることに成功した場合、各スイッチが、スイッチ内のストレージデバイスに直接にアクセスするため、1つのアクセス要求に関して、相互接続ネットワークが、アクセスされること、および切り離されることが1回だけしか行われる必要がなく(すなわち、アクセス要求を受信すること、および応答メッセージを戻すこと)、ネットワークリソースを節約するようにする。さらに、この実施形態において、第2のフローエントリがスイッチにおいてさらに構成される。データパケットが第2のフローエントリとマッチされる場合、計算処理が、データパケットにおけるデータに対して実行されて、ネットワークハードウェア計算容量を強化するようにすることがある。
実施形態3
本発明のこの実施形態は、スイッチを提供する。フローテーブルが、スイッチにおいて設定される。フローテーブルは、少なくとも1つのフローエントリを含み、各フローエントリは、マッチングフィールドと、アクションフィールドとを含む。マッチングフィールドは、スイッチによって受信されたデータパケットにおける情報とマッチするのに使用され、アクションフィールドは、フローエントリがマッチされることに成功した場合、データパケットに対して実行されるべき操作を示すのに使用される。フローテーブルにおけるフローエントリは、通常、転送フローエントリを含む。転送フローエントリは、データパケットの転送出口を決定するのに使用される。フローテーブルにおけるフローエントリは、データパケット変更フローエントリをさらに含むことがある。データパケット変更フローエントリは、データパケットにおける情報を変更すること、例えば、データパケットにおけるヘッダフィールドを変更することを決定するのに使用される。さらに、SRAMまたはDRAMなどのストレージデバイスが、スイッチにさらに組み込まれる。実施態様において、スイッチは、OFSであることがある。
図5を参照すると、スイッチが、第1の受信モジュール301と、マッチングモジュール302と、操作モジュール303とを含む。
第1の受信モジュール301は、データパケットを受信するように構成され、データパケットは、送信元ノード情報と、宛先ノード情報と、プロトコルタイプとを含み、プロトコルタイプは、データパケットのタイプを示すのに使用される。送信元ノード情報は、送信元ノード識別子、送信元ノードMACアドレス、または類似したものであり得る。宛先ノード情報は、宛先ノード識別子、宛先ノードMACアドレス、または類似したものであり得る。プロトコルタイプは、読取り要求データパケット、書込み要求データパケット、または計算要求データパケットなどのデータパケットのタイプを示すのに使用される。
マッチングモジュール302は、第1の受信モジュール301によって受信されたデータパケットに対してフローテーブルマッチングを実行するように構成され、フローテーブルは、少なくとも1つのフローエントリを含み、フローエントリは、マッチングフィールドと、アクションフィールドとを含み、少なくとも1つのフローエントリは、第1のフローエントリを含み、第1のフローエントリのマッチングフィールドは、データパケットにおける送信元ノード情報、宛先ノード情報、およびプロトコルタイプとマッチするのに使用され、第1のフローエントリのアクションフィールドは、スイッチに組み込まれたストレージデバイスに関する操作コマンドを示すのに使用される。操作コマンドは、読取り操作コマンドと、書込み操作コマンドとを含むが、以上には限定されない。
第1のフローエントリのアクションフィールドにおける操作コマンドが、一般に、第1のフローエントリのマッチングフィールドにおけるプロトコルタイプと互いに対応することを知るのは容易である。例えば、第1のフローエントリのマッチングフィールドにおけるプロトコルタイプが、読取り要求データパケットを示すのに使用される場合、第1のフローエントリのアクションフィールドにおける操作コマンドは、スイッチに組み込まれたストレージデバイスに関する読取り操作コマンドである。
実施態様において、フローエントリの機能により、様々なフローエントリ(第1のフローエントリ、転送フローエントリ、およびデータパケット変更フローエントリなどの)が、1つのフローテーブルにおいて構成されることがあり、または異なるフローエントリが、異なるフローテーブルにおいて構成されることがある。
様々なフローテーブルが、スイッチの三値連想メモリ(Ternary Content Addressable Memory、略して、TCAM)またはリデューストレイテンシダイナミックランダムアクセスメモリ(Reduced Latency Dynamic Random Access Memory、略して、RLDRAM)において、通常、設定される。
操作モジュール303は、データパケットが第1のフローエントリとマッチすることに成功した場合、マッチされることに成功した第1のフローエントリのアクションフィールドにおける操作コマンドによりストレージデバイスに対して操作を実行するように構成される。
本発明のこの実施形態において、ストレージデバイスがスイッチに組み込まれ、フローテーブルマッチングが、受信されたデータパケットに対して実行され、データパケットが、フローテーブルにおける第1のフローエントリとマッチすることに成功した場合、第1のフローエントリのアクションフィールドにおける操作コマンドにより、スイッチに組み込まれたストレージデバイスに対して操作が直接に実行されて、プロセッサが遠隔メモリにアクセスする可能性を低減するようにし、かつ解消するようにさえし、かつメモリアクセス遅延を低減するようにする。さらに、スイッチにおけるストレージデバイスは、データを別々に記憶するため、別のスイッチにおけるストレージデバイスにコピーは存在せず、キャッシュ一貫性を保持することに関する問題が存在しない。このことが、実施態様を簡略化する。さらに、第1のフローエントリがマッチされることに成功した場合、各スイッチが、スイッチ内のストレージデバイスに直接にアクセスするため、1つのアクセス要求に関して、相互接続ネットワークが、アクセスされること、および切り離されることが1回だけしか行われる必要がなく(すなわち、アクセス要求を受信すること、および応答メッセージを戻すこと)、ネットワークリソースを節約するようにする。
実施形態4
本発明のこの実施形態は、スイッチを提供する。フローテーブルが、スイッチにおいて設定される。フローテーブルは、少なくとも1つのフローエントリを含み、各フローエントリは、マッチングフィールドと、アクションフィールドとを含む。マッチングフィールドは、スイッチによって受信されたデータパケットにおける情報とマッチするのに使用され、アクションフィールドは、フローエントリがマッチされることに成功した場合、データパケットに対して実行されるべき操作を示すのに使用される。フローテーブルにおけるフローエントリは、通常、転送フローエントリを含む。転送フローエントリは、データパケットの転送出口を決定するのに使用される。フローテーブルにおけるフローエントリは、データパケット変更フローエントリをさらに含むことがある。データパケット変更フローエントリは、データパケットにおける情報を変更すること、例えば、データパケットにおけるヘッダフィールドを変更することを決定するのに使用される。さらに、SRAMまたはDRAMなどのストレージデバイスが、スイッチにさらに組み込まれる。実施態様において、スイッチは、OFSであることがあり、またはマッチング機能を有する別のスイッチであることがある。
図6を参照すると、スイッチは、第1の受信モジュール401と、マッチングモジュール402と、操作モジュール403とを含む。
第1の受信モジュール401は、データパケットを受信するように構成され、データパケットは、送信元ノード情報と、宛先ノード情報と、プロトコルタイプとを含み、プロトコルタイプは、データパケットのタイプを示すのに使用される。マッチングモジュール402は、第1の受信モジュール401によって受信されたデータパケットに対してフローテーブルマッチングを実行するように構成され、フローテーブルは、少なくとも1つのフローエントリを含み、フローエントリは、マッチングフィールドと、アクションフィールドとを含み、かつ少なくとも1つのフローエントリは、第1のフローエントリを含み、第1のフローエントリのマッチングフィールドは、データパケットにおける送信元ノード情報、宛先ノード情報、およびプロトコルタイプとマッチするのに使用され、第1のフローエントリのアクションフィールドは、スイッチに組み込まれたストレージデバイスに関する操作コマンドを示すのに使用される。操作モジュール403は、データパケットが第1のフローエントリとマッチすることに成功した場合、マッチされることに成功した第1のフローエントリのアクションフィールドにおける操作コマンドによりストレージデバイスに対して操作を実行するように構成される。
送信元ノード情報は、送信元ノード識別子、送信元ノードMACアドレス、または類似したものであり得る。宛先ノード情報は、宛先ノード識別子、宛先ノードMACアドレス、または類似したものであり得る。プロトコルタイプは、読取り要求データパケット、書込み要求データパケット、または計算要求データパケットなどのデータパケットのタイプを示すのに使用される。
データパケットは、読取り/書込みアドレスなどの操作アドレスをさらに含むことがある。データパケットが書込みデータパケットである場合、データパケットは、書き込まれるべきデータをさらに含むことが理解されることがある。
この実施形態の実施態様様式において、操作モジュール402は、
第1のフローエントリにおける操作コマンドが読取り操作コマンドである場合、ストレージデバイスからデータを読み取るように構成された読取りユニットと、
読取りユニットによって読み取られたデータを、送信元ノード情報に対応するノードに戻すように構成された送信ユニットと、
第1のフローエントリにおける操作コマンドが書込み操作コマンドである場合、データパケットに入っているデータをストレージデバイスに書き込むように構成された書込みユニットとを含むことがある。
第1のフローエントリにおける操作コマンドは、読取り操作コマンドと、書込み操作コマンドとを含むが、以上には限定されない。第1のフローエントリのアクションフィールドにおける操作コマンドが、一般に、第1のフローエントリのマッチングフィールドにおけるプロトコルタイプと互いに対応することを知るのは容易である。例えば、第1のフローエントリのマッチングフィールドにおけるプロトコルタイプが、読取り要求データパケットを示すのに使用される場合、第1のフローエントリのアクションフィールドにおける操作コマンドは、スイッチに組み込まれたストレージデバイスに関する読取り操作コマンドである。
この実施形態において、スイッチにおけるフローエントリは、第2のフローエントリをさらに含み、第2のフローエントリのマッチングフィールドは、データパケットにおける送信元ノード情報、宛先ノード情報、およびプロトコルタイプとマッチするのに使用され、第2のフローエントリのアクションフィールドは、データパケットにおけるデータに対して計算処理を実行するための操作コマンドを示すのに使用される。計算処理は、CRCまたはFFTを含むが、以上には限定されない。
実施態様において、フローエントリの機能により、様々なフローエントリ(第1のフローエントリ、転送フローエントリ、およびデータパケット変更フローエントリなどの)が、1つのフローテーブルにおいて構成されることがあり、または異なるフローエントリが、異なるフローテーブルにおいて構成されることがある。例えば、第1のフローエントリが、1つのフローテーブルにおいて構成され、転送フローエントリが、別のフローテーブルにおいて構成される。このことは、本発明のこの実施形態において限定されない。
様々なフローテーブルが、スイッチのTCAMまたはRLDRAMにおいて設定されることがある。
マッチングモジュール402が、スイッチによって受信されたデータパケットとスイッチにおける各フローエントリの間でマッチングを実行することがあることを知るのは容易である。
さらに、特定の実施態様において、スイッチにおけるフローテーブルが、スイッチのポートにより設定されることがある。例えば、スイッチの1つのポートが、フローテーブルのグループに対応することがある。フローテーブルの各グループは、1つのフローテーブルを含むことがあり(フローテーブルは、すべてのタイプのフローエントリを含む)、またはフローテーブルの各グループは、複数のフローテーブルを含むことがある(複数のフローテーブルは、異なるタイプのフローエントリを含む)。ポートにおいて受信されたデータパケットは、ポートに対応するフローテーブルに照らしてのみマッチされる。別の例において、フローテーブルの1つだけのグループが、スイッチにおいて構成されることがあり、すべてのポートにおいて受信されたデータパケットは、フローテーブルのグループに照らしてマッチされる。
対応するように、スイッチは、
データパケットが第2のフローエントリとマッチすることに成功した場合、マッチされることに成功した第2のフローエントリのアクションフィールドにおける操作コマンドによりデータパケットにおけるデータに対して計算処理を実行して、計算結果を獲得するように構成された処理モジュール404と、
処理モジュール404によって獲得された計算結果を、プロセッサなどの、データパケットにおける送信元ノード情報に対応するノードに送信するように構成された送信モジュール405とをさらに含むことがある。
実施態様において、計算モジュールがスイッチにおいて設定されることがあり、または特定の計算デバイスがスイッチに配置されることがある。スイッチは、データを特定の計算デバイスに送信し、計算デバイスによって戻される計算結果を受信する。
任意選択で、スイッチは、
コントローラによって送信されたフローテーブル構成メッセージを受信するように構成された第2の受信モジュール406であって、フローテーブル構成メッセージは、スイッチに関するフローエントリを構成するのに使用される、第2の受信モジュール406と、
第2の受信モジュール406によって受信されたフローテーブル構成メッセージによりフローエントリを構成するように構成された構成モジュール407とをさらに含むことがある。
本発明のこの実施形態において、ストレージデバイスがスイッチに組み込まれ、フローテーブルマッチングが、受信されたデータパケットに対して実行され、データパケットが、フローテーブルにおける第1のフローエントリとマッチすることに成功した場合、第1のフローエントリのアクションフィールドにおける操作コマンドにより、スイッチに組み込まれたストレージデバイスに対して操作が直接に実行されて、プロセッサが遠隔メモリにアクセスする可能性を低減するようにし、かつ解消するようにさえし、かつメモリアクセス遅延を低減するようにする。さらに、スイッチにおけるストレージデバイスは、データを別々に記憶するため、別のスイッチにおけるストレージデバイスにコピーは存在せず、キャッシュ一貫性を保持することに関する問題が存在しない。このことが、実施態様を簡略化する。さらに、第1のフローエントリがマッチされることに成功した場合、各スイッチが、スイッチ内のストレージデバイスに直接にアクセスするため、1つのアクセス要求に関して、相互接続ネットワークが、アクセスされること、および切り離されることが1回だけしか行われる必要がなく(すなわち、アクセス要求を受信すること、および応答メッセージを戻すこと)、ネットワークリソースを節約するようにする。さらに、この実施形態において、第2のフローエントリがスイッチにおいてさらに構成される。データパケットが第2のフローエントリとマッチされる場合、計算処理が、データパケットにおけるデータに対して実行されて、ネットワークハードウェア計算容量を強化するようにすることがある。
実施形態5
本発明のこの実施形態は、スイッチを提供する。図7を参照すると、スイッチは、プロセッサ501と、メモリ502と、バス503と、通信インターフェース504とを含む。メモリ502は、コンピュータ実行コマンドを記憶するのに使用される。プロセッサ501とメモリ502は、バス503を使用することによって接続される。コンピュータが実行する場合、プロセッサ501は、メモリ502に記憶されたコンピュータ実行コマンドを実行して、スイッチが、実施形態1または実施形態2におけるスイッチによって実行される方法を実行するようにする。
スイッチは、組み込まれたストレージデバイスをさらに含み、組み込まれたストレージデバイスは、SRAM、DRAM、または類似したものであり得る。ストレージデバイスは、メモリ502であることがあり、またはメモリ502とは独立したストレージデバイスであることがある。
特定の実施態様において、スイッチのハードウェア構造が図8に示されることがある。スイッチは、入力ポート601と、プロセッサ602と、組み込まれたストレージデバイス603と、メモリ604と、クロスバー(CrossBar)バス605と、出力ポート606とを含む。
入力ポート601は、データパケットを受信するように構成され、データパケットは、送信元ノード情報と、宛先ノード情報と、プロトコルタイプとを含む。
メモリ604は、フローテーブルを記憶するように構成される。フローテーブルは、少なくとも1つのフローエントリを含み、各フローエントリは、マッチングフィールドと、アクションフィールドとを含む。フローテーブルにおけるフローエントリは、通常、転送フローエントリを含む。転送フローエントリは、データパケットの転送出口を決定するのに使用される。フローテーブルにおけるフローエントリは、データパケット変更フローエントリをさらに含むことがある。データパケット変更フローエントリは、データパケットにおける情報を変更すること、例えば、データパケットにおけるヘッダフィールドを変更することを決定するのに使用される。
本発明のこの実施形態において、フローエントリは、第1のフローエントリをさらに含み、第1のフローエントリのマッチングフィールドは、データパケットにおける送信元ノード情報、宛先ノード情報、およびプロトコルタイプとマッチするのに使用され、第1のフローエントリのアクションフィールドは、スイッチに組み込まれたストレージデバイスに関する操作コマンドを示すのに使用される。操作コマンドは、読取り操作コマンドと、書込み操作コマンドとを含むが、以上には限定されない。
第1のフローエントリのアクションフィールドにおける操作コマンドが、一般に、第1のフローエントリのマッチングフィールドにおけるプロトコルタイプと互いに対応することを知るのは容易である。例えば、第1のフローエントリのマッチングフィールドにおけるプロトコルタイプが、読取り要求データパケットを示すのに使用される場合、第1のフローエントリのアクションフィールドにおける操作コマンドは、スイッチに組み込まれたストレージデバイスに関する読取り操作コマンドである。
実施態様において、フローエントリの機能により、様々なフローエントリ(第1のフローエントリ、転送フローエントリ、およびデータパケット変更フローエントリなどの)が、1つのフローテーブルにおいて構成されることがあり、または異なるフローエントリが、異なるフローテーブルにおいて構成されることがある。
プロセッサ602は、メモリ604におけるフローテーブルを使用することによって入力ポートにおいてデータパケットに対してフローテーブルマッチングを実行すること、およびデータパケットが、フローテーブルにおける第1のフローエントリとマッチすることに成功した場合、マッチされることに成功した第1のフローエントリのアクションフィールドにおける操作コマンドにより、組み込まれたストレージデバイス603に対して、読取り操作および書込み操作などの操作を実行することを行うように構成される。
操作が完了された後、応答データパケットが、クロスバーバス605を使用することによって出力ポート606に出力され、次に、要求デバイスにフィードバックされる。
プロセッサ602は、データパケットが第2のフローエントリとマッチすることに成功した場合、マッチされることに成功した第2のフローエントリのアクションフィールドにおける操作コマンドによりデータパケットにおけるデータに対して計算処理を実行して、計算結果を獲得すること、および計算結果を、クロスバーバス605および出力ポート606を使用することによって要求デバイスに送信することを行うようにさらに構成される。
本発明のこの実施形態において、ストレージデバイスがスイッチに組み込まれ、フローテーブルマッチングが、受信されたデータパケットに対して実行され、データパケットが、フローテーブルにおける第1のフローエントリとマッチすることに成功した場合、第1のフローエントリのアクションフィールドにおける操作コマンドにより、スイッチに組み込まれたストレージデバイスに対して操作が直接に実行されて、プロセッサが遠隔メモリにアクセスする可能性を低減するようにし、かつ解消するようにさえし、かつメモリアクセス遅延を低減するようにする。さらに、スイッチにおけるストレージデバイスは、データを別々に記憶するため、別のスイッチにおけるストレージデバイスにコピーは存在せず、キャッシュ一貫性を保持することに関する問題が存在しない。このことが、実施態様を簡略化する。さらに、第1のフローエントリがマッチされることに成功した場合、各スイッチが、スイッチ内のストレージデバイスに直接にアクセスするため、1つのアクセス要求に関して、相互接続ネットワークが、アクセスされること、および切り離されることが1回だけしか行われる必要がなく(すなわち、アクセス要求を受信すること、および応答メッセージを戻すこと)、ネットワークリソースを節約するようにする。さらに、この実施形態において、第2のフローエントリがスイッチにおいてさらに構成される。データパケットが第2のフローエントリとマッチされる場合、計算処理が、データパケットにおけるデータに対して実行されて、ネットワークハードウェア計算容量を強化するようにすることがある。
実施形態6
本発明のこの実施形態は、スイッチを提供する。図9を参照すると、スイッチは、入力ポート701と、メモリ702と、テーブルルックアップ論理回路703と、ストレージデバイス704と、操作論理回路705と、クロスバーバス706と、出力ポート707とを含む。
入力ポート701は、データパケットを受信するように構成され、データパケットは、送信元ノード情報と、宛先ノード情報と、プロトコルタイプとを含む。
メモリ702は、フローテーブルを記憶するように構成される。フローテーブルは、少なくとも1つのフローエントリを含み、各フローエントリは、マッチングフィールドと、アクションフィールドとを含む。フローテーブルにおけるフローエントリは、通常、転送フローエントリを含む。転送フローエントリは、データパケットの転送出口を決定するのに使用される。フローテーブルにおけるフローエントリは、データパケット変更フローエントリをさらに含むことがある。データパケット変更フローエントリは、データパケットにおける情報を変更すること、例えば、データパケットにおけるヘッダフィールドを変更することを決定するのに使用される。
本発明のこの実施形態において、フローエントリは、第1のフローエントリをさらに含み、第1のフローエントリのマッチングフィールドは、データパケットにおける送信元ノード情報、宛先ノード情報、およびプロトコルタイプとマッチするのに使用され、第1のフローエントリのアクションフィールドは、スイッチに組み込まれたストレージデバイスに関する操作コマンドを示すのに使用される。操作コマンドは、読取り操作コマンドと、書込み操作コマンドとを含むが、以上には限定されない。
第1のフローエントリのアクションフィールドにおける操作コマンドが、一般に、第1のフローエントリのマッチングフィールドにおけるプロトコルタイプと互いに対応することを知るのは容易である。例えば、第1のフローエントリのマッチングフィールドにおけるプロトコルタイプが、読取り要求データパケットを示すのに使用される場合、第1のフローエントリのアクションフィールドにおける操作コマンドは、スイッチに組み込まれたストレージデバイスに関する読取り操作コマンドである。
実施態様において、フローエントリの機能により、様々なフローエントリ(第1のフローエントリ、転送フローエントリ、およびデータパケット変更フローエントリなどの)が、1つのフローテーブルにおいて構成されることがあり、または異なるフローエントリが、異なるフローテーブルにおいて構成されることがある。
テーブルルックアップ論理回路703は、メモリ702におけるフローテーブルを使用することによって入力ポートにおいてデータパケットに対してフローテーブルマッチングを実行するように構成される。操作論理回路705は、マッチされることに成功した第1のフローエントリのアクションフィールドにおける操作コマンドにより、かつテーブルルックアップ論理回路703の出力結果により、組み込まれたストレージデバイス704に対して、読取り操作および書込み操作などの操作を実行するように構成される。
操作が完了された後、応答データパケットが、クロスバーバス706を使用することによって出力ポート707に出力され、次に、要求デバイスにフィードバックされる。
操作論理回路705は、データパケットが第2のフローエントリとマッチすることに成功した場合、マッチされることに成功した第2のフローエントリのアクションフィールドにおける操作コマンドによりデータパケットにおけるデータに対して計算処理を実行して、計算結果を獲得すること、および計算結果を、クロスバーバス706および出力ポート707を使用することによって要求デバイスに送信することを行うようにさらに構成される。
メモリ702は、TCAMまたはRLDRAMであり得る。ストレージデバイス704は、SRAM、DRAM、または類似したものであり得る。テーブルルックアップ論理回路703の特定の回路、および操作論理回路705の特定の回路は、当技術分野における従来の回路である。したがって、詳細な構造的説明は、本明細書において省略される。
本発明のこの実施形態において、ストレージデバイスがスイッチに組み込まれ、フローテーブルマッチングが、受信されたデータパケットに対して実行され、データパケットが、フローテーブルにおける第1のフローエントリとマッチすることに成功した場合、第1のフローエントリのアクションフィールドにおける操作コマンドにより、スイッチに組み込まれたストレージデバイスに対して操作が直接に実行されて、プロセッサが遠隔メモリにアクセスする可能性を低減するようにし、かつ解消するようにさえし、かつメモリアクセス遅延を低減するようにする。さらに、スイッチにおけるストレージデバイスは、データを別々に記憶するため、別のスイッチにおけるストレージデバイスにコピーは存在せず、キャッシュ一貫性を保持することに関する問題が存在しない。このことが、実施態様を簡略化する。さらに、第1のフローエントリがマッチされることに成功した場合、各スイッチが、スイッチ内のストレージデバイスに直接にアクセスするため、1つのアクセス要求に関して、相互接続ネットワークが、アクセスされること、および切り離されることが1回だけしか行われる必要がなく(すなわち、アクセス要求を受信すること、および応答メッセージを戻すこと)、ネットワークリソースを節約するようにする。さらに、この実施形態において、第2のフローエントリがスイッチにおいてさらに構成される。データパケットが第2のフローエントリとマッチされる場合、計算処理が、データパケットにおけるデータに対して実行されて、ネットワークハードウェア計算容量を強化するようにすることがある。
実施形態7
本発明のこの実施形態は、マルチプロセッサシステムを提供する。図10を参照すると、システムは、複数のプロセッサ801と、相互接続ネットワーク800とを含む。複数のプロセッサ801は、相互接続ネットワーク800を使用することによって互いに通信可能に接続され、相互接続ネットワーク800は、複数のスイッチ802を含む。スイッチ802は、実施形態4、5、または6において提供されるスイッチである。
この実施形態の実施態様様式において、マルチプロセッサシステムは、複数の外部ストレージデバイス803をさらに含むことがある。複数の外部ストレージデバイス803は、相互接続ネットワーク800を使用することによって複数のプロセッサ801に通信可能に接続される。
この実施形態の別の実施態様様式において、マルチプロセッサシステムは、システムオンチップ(Sysem on Chip、略して、SOC)であり得る。スイッチ802が独立した通信デバイスであり得ることを知るのは容易である。
本発明のこの実施形態において、ストレージデバイスがスイッチに組み込まれ、フローテーブルマッチングが、受信されたデータパケットに対して実行され、データパケットが、フローテーブルにおける第1のフローエントリとマッチすることに成功した場合、第1のフローエントリのアクションフィールドにおける操作コマンドにより、スイッチに組み込まれたストレージデバイスに対して操作が直接に実行されて、プロセッサが遠隔メモリにアクセスする可能性を低減するようにし、かつ解消するようにさえし、かつメモリアクセス遅延を低減するようにする。さらに、スイッチにおけるストレージデバイスは、データを別々に記憶するため、別のスイッチにおけるストレージデバイスにコピーは存在せず、キャッシュ一貫性を保持することに関する問題が存在しない。このことが、実施態様を簡略化する。さらに、第1のフローエントリがマッチされることに成功した場合、各スイッチが、スイッチ内のストレージデバイスに直接にアクセスするため、1つのアクセス要求に関して、相互接続ネットワークが、アクセスされること、および切り離されることが1回だけしか行われる必要がなく(すなわち、アクセス要求を受信すること、および応答メッセージを戻すこと)、ネットワークリソースを節約するようにする。さらに、この実施形態において、第2のフローエントリがスイッチにおいてさらに構成される。データパケットが第2のフローエントリとマッチされる場合、計算処理が、データパケットにおけるデータに対して実行されて、ネットワークハードウェア計算容量を強化するようにすることがある。
前述の実施形態において提供されるスイッチが、受信されたデータパケットによりメモリにアクセスする場合、前述の機能モジュールの分割が、例示のための例としてとられることに留意されたい。実際の適用において、前述の機能は、要件により異なる機能モジュールに割り当てられ、かつ実施されることができ、すなわち、装置の内部構造は、前述される機能のすべてまたは一部を実施するように異なる機能モジュールに分割される。さらに、前述の実施形態において提供されるスイッチとメモリ管理方法実施形態は、同一の概念に属する。スイッチの特定の実施プロセスに関して、方法実施形態を参照されたい。詳細が、本明細書において再び説明されることはない。
本発明の前述の実施形態の順序番号は、例示目的であるに過ぎず、実施形態の優先順位を示すように意図されない。
当業者は、実施形態のステップのすべてまたはいくつかが、ハードウェア、または関係付けられたハードウェアに命令するプログラムによって実施されることがあることを理解することがある。プログラムは、コンピュータ可読記憶媒体に記憶されることがある。記憶媒体は、読取り専用メモリ、磁気ディスク、または光ディスクを含むことがある。
前述の説明は、本発明の例示的な実施形態に過ぎず、本発明を限定するようには意図されない。本発明の趣旨および原理を逸脱することなく行われる任意の変形、均等の置換、および改良が、本発明の保護範囲に入るものとする。
マルチプロセッサシステムの前述のネットワークアーキテクチャは、例に過ぎず、本発明の実施形態に限定を課さないことを知るのは容易である。例えば、マルチプロセッサシステムは、ストレージデバイス3を含まないことがある。
この実施形態の実施態様様式において、操作モジュール40は、
第1のフローエントリにおける操作コマンドが読取り操作コマンドである場合、ストレージデバイスからデータを読み取るように構成された読取りユニットと、
読取りユニットによって読み取られたデータを、送信元ノード情報に対応するノードに戻すように構成された送信ユニットと、
第1のフローエントリにおける操作コマンドが書込み操作コマンドである場合、データパケットに入っているデータをストレージデバイスに書き込むように構成された書込みユニットとを含むことがある。

Claims (15)

  1. メモリアクセス方法であって、
    スイッチによる、データパケットを受信することであって、前記データパケットは、送信元ノード情報と、宛先ノード情報と、プロトコルタイプとを備え、前記プロトコルタイプは、前記データパケットのタイプを示すのに使用される、受信することと、
    前記データパケットに対してフローテーブルをマッチすることであって、前記フローテーブルは、少なくとも1つのフローエントリを備え、前記フローエントリは、マッチングフィールドと、アクションフィールドとを備え、かつ前記少なくとも1つのフローエントリは、第1のフローエントリを備え、前記第1のフローエントリのマッチングフィールドは、前記データパケットにおける前記送信元ノード情報、前記宛先ノード情報、および前記プロトコルタイプとマッチするのに使用され、前記第1のフローエントリのアクションフィールドは、前記スイッチに組み込まれたストレージデバイスに関する操作コマンドを示すのに使用される、マッチすることと、
    前記データパケットが前記第1のフローエントリとマッチすることに成功した場合、マッチされることに成功した前記第1のフローエントリの前記アクションフィールドにおける前記操作コマンドにより前記ストレージデバイスに対して操作を実行することと
    を備えることを特徴とするメモリアクセス方法。
  2. マッチされることに成功した前記第1のフローエントリの前記アクションフィールドにおける前記操作コマンドにより前記ストレージデバイスに対して操作を前記実行することは、
    マッチされることに成功した前記第1のフローエントリの前記アクションフィールドにおける前記操作コマンドが読取り操作コマンドである場合、前記ストレージデバイスからデータを読み取り、かつ前記読み取られたデータを、前記送信元ノード情報に対応するノードに戻すこと、または
    マッチされることに成功した前記第1のフローエントリの前記アクションフィールドにおける前記操作コマンドが書込み操作コマンドである場合、前記データパケットに入っているデータを前記ストレージデバイスに書き込むことを備えることを特徴とする請求項1に記載の方法。
  3. 前記少なくとも1つのフローエントリは、第2のフローエントリをさらに備え、前記第2のフローエントリのマッチングフィールドは、前記データパケットにおける前記送信元ノード情報、前記宛先ノード情報、および前記プロトコルタイプとマッチするのに使用され、前記第2のフローエントリのアクションフィールドは、前記データパケットにおける前記データに対して計算処理を実行するための操作コマンドを示すのに使用されることを特徴とする請求項1または2に記載の方法。
  4. 前記データパケットが前記第2のフローエントリとマッチすることに成功した場合、マッチされることに成功した前記第2のフローエントリの前記アクションフィールドにおける前記操作コマンドにより前記データパケットにおける前記データに対して計算処理を実行して、計算結果を獲得することと、
    前記計算結果を、前記データパケットにおける前記送信元ノード情報に対応する前記ノードに送信することと
    をさらに備えることを特徴とする請求項3に記載の方法。
  5. コントローラによって送信されたフローテーブル構成メッセージを受信することであって、前記フローテーブル構成メッセージは、前記スイッチに関する前記フローエントリを構成するのに使用される、受信することと、
    前記フローテーブル構成メッセージにより前記フローエントリを構成することと
    をさらに備えることを特徴とする請求項1乃至4のいずれか一項に記載の方法。
  6. スイッチであって、
    データパケットを受信するように構成された第1の受信モジュールであって、前記データパケットは、送信元ノード情報と、宛先ノード情報と、プロトコルタイプとを備え、前記プロトコルタイプは、前記データパケットのタイプを示すのに使用される、第1の受信モジュールと、
    前記第1の受信モジュールによって受信された前記データパケットに対してフローテーブルをマッチするように構成されたマッチングモジュールであって、前記フローテーブルは、少なくとも1つのフローエントリを備え、前記フローエントリは、マッチングフィールドと、アクションフィールドとを備え、かつ前記少なくとも1つのフローエントリは、第1のフローエントリを備え、前記第1のフローエントリのマッチングフィールドは、前記データパケットにおける前記送信元ノード情報、前記宛先ノード情報、および前記プロトコルタイプとマッチするのに使用され、前記第1のフローエントリのアクションフィールドは、前記スイッチに組み込まれたストレージデバイスに関する操作コマンドを示すのに使用される、マッチングモジュールと、
    前記データパケットが前記第1のフローエントリとマッチすることに成功した場合、マッチされることに成功した前記第1のフローエントリの前記アクションフィールドにおける前記操作コマンドにより前記ストレージデバイスに対して操作を実行するように構成された操作モジュールと
    を備えることを特徴とするスイッチ。
  7. 前記操作モジュールは、
    前記操作コマンドが読取り操作コマンドである場合、前記ストレージデバイスからデータを読み取るように構成された読取りユニットと、
    前記読取りユニットによって読み取られた前記データを、前記送信元ノード情報に対応するノードに戻すように構成された送信ユニットと、
    前記操作コマンドが書込み操作コマンドである場合、前記データパケットに入っているデータを前記ストレージデバイスに書き込むように構成された書込みユニットと
    を備えることを特徴とする請求項6に記載のスイッチ。
  8. 前記少なくとも1つのフローエントリは、第2のフローエントリをさらに備え、前記第2のフローエントリのマッチングフィールドは、前記データパケットにおける前記送信元ノード情報、前記宛先ノード情報、および前記プロトコルタイプとマッチするのに使用され、前記第2のフローエントリのアクションフィールドは、前記データパケットにおける前記データに対して計算処理を実行するための操作コマンドを示すのに使用されることを特徴とする請求項6または7に記載のスイッチ。
  9. 前記データパケットが前記第2のフローエントリとマッチすることに成功した場合、マッチされることに成功した前記第2のフローエントリの前記アクションフィールドにおける前記操作コマンドにより前記データパケットにおける前記データに対して計算処理を実行して、計算結果を獲得するように構成された処理モジュールと、
    前記処理モジュールによって獲得された前記計算結果を、前記データパケットにおける前記送信元ノード情報に対応する前記ノードに送信するように構成された送信モジュールと
    をさらに備えることを特徴とする請求項8に記載のスイッチ。
  10. コントローラによって送信されたフローテーブル構成メッセージを受信するように構成された第2の受信モジュールであって、前記フローテーブル構成メッセージは、前記スイッチに関する前記フローエントリを構成するのに使用される、第2の受信モジュールと、
    前記第2の受信モジュールによって受信された前記フローテーブル構成メッセージにより前記フローエントリを構成するように構成された構成モジュールと
    をさらに備えることを特徴とする請求項6乃至9のいずれか一項に記載のスイッチ。
  11. スイッチであって、
    プロセッサと、
    メモリと、
    バスと、
    通信インターフェースと
    を備え、
    前記メモリは、コンピュータ実行コマンドを記憶するように構成され、前記プロセッサと前記メモリは、前記バスを使用することによって接続され、前記コンピュータが実行する場合、前記プロセッサは、前記メモリに記憶された前記コンピュータ実行コマンドを実行して、前記スイッチが、請求項1乃至5のいずれか一項に記載の方法を実行するようにすることを特徴とするスイッチ。
  12. スイッチであって、
    データパケットを受信するように構成された入力ポートであって、前記データパケットは、送信元ノード情報と、宛先ノード情報と、プロトコルタイプとを備え、前記プロトコルタイプは、前記データパケットのタイプを示すのに使用される、入力ポートと、
    フローテーブルを記憶するように構成されたメモリであって、前記フローテーブルは、少なくとも1つのフローエントリを備え、前記フローエントリは、マッチングフィールドと、アクションフィールドとを備え、かつ前記少なくとも1つのフローエントリは、第1のフローエントリを備え、前記第1のフローエントリのマッチングフィールドは、前記データパケットにおける前記送信元ノード情報、前記宛先ノード情報、および前記プロトコルタイプとマッチするのに使用され、前記第1のフローエントリのアクションフィールドは、前記スイッチに組み込まれたストレージデバイスに関する操作コマンドを示すのに使用される、メモリと、
    データを記憶するように構成されたストレージデバイスと、
    前記メモリに記憶された前記フローテーブルを使用することによって、前記入力ポートにおいて前記受信されたデータパケットに対してフローテーブルをマッチするように構成されたテーブルルックアップ論理回路と、
    前記データパケットが前記第1のフローエントリとマッチすることに成功した場合、マッチされることに成功した前記第1のフローエントリの前記アクションフィールドにおける前記操作コマンドにより前記ストレージデバイスに対して操作を実行するように構成された操作論理回路と、
    前記操作論理回路を使用することによって伝送された前記データパケットのために出力ポートを選択するように構成されたクロスバーバスと、
    前記クロスバーバスを使用することによって伝送された前記データパケットを送信するように構成された出力ポートと
    を備えることを特徴とするスイッチ。
  13. マルチプロセッサシステムであって、
    複数のプロセッサと、
    相互接続ネットワークと
    を備え、
    前記複数のプロセッサは、前記相互接続ネットワークを使用することによって互いに通信可能に接続され、前記相互接続ネットワークは、複数のスイッチを備え、前記スイッチは、請求項6乃至12のいずれか一項に記載のスイッチを備えることを特徴とするマルチプロセッサシステム。
  14. 複数の外部ストレージデバイスをさらに備え、
    前記複数の外部ストレージデバイスは、前記相互接続ネットワークを使用することによって前記複数のプロセッサに通信可能に接続されることを特徴とする請求項13に記載のマルチプロセッサシステム。
  15. システムオンチップであることを特徴とする請求項13または14に記載のマルチプロセッサシステム。
JP2017528517A 2014-11-28 2014-11-28 メモリアクセス方法、スイッチ、およびマルチプロセッサシステム Active JP6514329B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/092421 WO2016082169A1 (zh) 2014-11-28 2014-11-28 内存访问方法、交换机及多处理器系统

Publications (2)

Publication Number Publication Date
JP2017537404A true JP2017537404A (ja) 2017-12-14
JP6514329B2 JP6514329B2 (ja) 2019-05-15

Family

ID=56073370

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017528517A Active JP6514329B2 (ja) 2014-11-28 2014-11-28 メモリアクセス方法、スイッチ、およびマルチプロセッサシステム

Country Status (5)

Country Link
US (1) US10282293B2 (ja)
EP (1) EP3217616B1 (ja)
JP (1) JP6514329B2 (ja)
CN (1) CN105874758B (ja)
WO (1) WO2016082169A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016167806A1 (en) * 2015-04-17 2016-10-20 Hewlett Packard Enterprise Development Lp Organizing and storing network communications
CN109672615B (zh) * 2017-10-17 2022-06-14 华为技术有限公司 数据报文缓存方法及装置
US10541918B2 (en) * 2018-02-22 2020-01-21 Juniper Networks, Inc. Detecting stale memory addresses for a network device flow cache
CN109450811B (zh) * 2018-11-30 2022-08-12 新华三云计算技术有限公司 流量控制方法、装置及服务器
TWI688955B (zh) * 2019-03-20 2020-03-21 點序科技股份有限公司 記憶體裝置以及記憶體的存取方法
CN112383480B (zh) * 2020-10-29 2022-11-04 曙光网络科技有限公司 流表的处理方法、装置、监管设备和存储介质
CN113132358A (zh) * 2021-03-29 2021-07-16 井芯微电子技术(天津)有限公司 策略分发器、拟态交换机及网络系统
CN116684358B (zh) * 2023-07-31 2023-12-12 之江实验室 一种可编程网元设备的流表管理系统及方法

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010104033A1 (ja) * 2009-03-09 2010-09-16 日本電気株式会社 プロセッサ間通信システム及び通信方法、ネットワークスイッチ、及び並列計算システム
JP2011170718A (ja) * 2010-02-19 2011-09-01 Nec Corp コンピュータシステム、コントローラ、サービス提供サーバ、及び負荷分散方法
JP2011204233A (ja) * 2010-03-18 2011-10-13 Marvell World Trade Ltd バッファマネージャおよびメモリ管理方法
JP2012023538A (ja) * 2010-07-14 2012-02-02 Kryna & Pluton Inc 音響機器用支持具
EP2608461A1 (en) * 2010-08-17 2013-06-26 Nec Corporation Communication device, communication system, communication method, and recording medium
WO2013114490A1 (ja) * 2012-02-02 2013-08-08 日本電気株式会社 コントローラ、負荷分散方法、プログラムを格納した非一時的なコンピュータ可読媒体、コンピュータシステム、制御装置
WO2013146808A1 (ja) * 2012-03-28 2013-10-03 日本電気株式会社 コンピュータシステム、及び通信経路変更方法
JP2013201478A (ja) * 2012-03-23 2013-10-03 Nec Corp ネットワークシステム、スイッチ、及び通信遅延短縮方法
WO2014112612A1 (ja) * 2013-01-21 2014-07-24 日本電気株式会社 通信システム、制御装置及びネットワークトポロジの管理方法
US20140244966A1 (en) * 2013-02-28 2014-08-28 Texas Instruments Incorporated Packet processing match and action unit with stateful actions
US20140241356A1 (en) * 2013-02-25 2014-08-28 Telefonaktiebolaget L M Ericsson (Publ) Method and system for flow table lookup parallelization in a software defined networking (sdn) system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7000078B1 (en) * 1999-10-01 2006-02-14 Stmicroelectronics Ltd. System and method for maintaining cache coherency in a shared memory system
EP2722766A4 (en) 2011-06-16 2015-05-20 Nec Corp COMMUNICATION SYSTEM, CONTROL, SWITCH, MEMORY MANAGEMENT DEVICE AND COMMUNICATION METHOD
CN104185972A (zh) * 2012-03-05 2014-12-03 日本电气株式会社 网络系统、交换机和网络构建方法
CN102946325B (zh) * 2012-11-14 2015-06-03 中兴通讯股份有限公司 一种基于软件定义网络的网络诊断方法、系统及设备
CN103036653B (zh) * 2012-12-26 2015-11-18 华中科技大学 一种对OpenFlow网络进行网络编码的方法
CN103501280A (zh) * 2013-09-12 2014-01-08 电子科技大学 一种多层虚拟覆盖网络接入方法

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010104033A1 (ja) * 2009-03-09 2010-09-16 日本電気株式会社 プロセッサ間通信システム及び通信方法、ネットワークスイッチ、及び並列計算システム
US20110317691A1 (en) * 2009-03-09 2011-12-29 Nec Corporation Interprocessor communication system and communication method, network switch, and parallel calculation system
JP2011170718A (ja) * 2010-02-19 2011-09-01 Nec Corp コンピュータシステム、コントローラ、サービス提供サーバ、及び負荷分散方法
JP2011204233A (ja) * 2010-03-18 2011-10-13 Marvell World Trade Ltd バッファマネージャおよびメモリ管理方法
US20110296063A1 (en) * 2010-03-18 2011-12-01 Alon Pais Buffer manager and methods for managing memory
JP2012023538A (ja) * 2010-07-14 2012-02-02 Kryna & Pluton Inc 音響機器用支持具
EP2608461A1 (en) * 2010-08-17 2013-06-26 Nec Corporation Communication device, communication system, communication method, and recording medium
WO2013114490A1 (ja) * 2012-02-02 2013-08-08 日本電気株式会社 コントローラ、負荷分散方法、プログラムを格納した非一時的なコンピュータ可読媒体、コンピュータシステム、制御装置
JP2013201478A (ja) * 2012-03-23 2013-10-03 Nec Corp ネットワークシステム、スイッチ、及び通信遅延短縮方法
WO2013146808A1 (ja) * 2012-03-28 2013-10-03 日本電気株式会社 コンピュータシステム、及び通信経路変更方法
WO2014112612A1 (ja) * 2013-01-21 2014-07-24 日本電気株式会社 通信システム、制御装置及びネットワークトポロジの管理方法
US20140241356A1 (en) * 2013-02-25 2014-08-28 Telefonaktiebolaget L M Ericsson (Publ) Method and system for flow table lookup parallelization in a software defined networking (sdn) system
US20140244966A1 (en) * 2013-02-28 2014-08-28 Texas Instruments Incorporated Packet processing match and action unit with stateful actions

Also Published As

Publication number Publication date
EP3217616A4 (en) 2017-09-13
US20170262371A1 (en) 2017-09-14
US10282293B2 (en) 2019-05-07
CN105874758B (zh) 2019-07-12
JP6514329B2 (ja) 2019-05-15
WO2016082169A1 (zh) 2016-06-02
CN105874758A (zh) 2016-08-17
EP3217616A1 (en) 2017-09-13
EP3217616B1 (en) 2018-11-21

Similar Documents

Publication Publication Date Title
US11929927B2 (en) Network interface for data transport in heterogeneous computing environments
JP6514329B2 (ja) メモリアクセス方法、スイッチ、およびマルチプロセッサシステム
US9866479B2 (en) Technologies for concurrency of cuckoo hashing flow lookup
JP2021190125A (ja) メモリリソースを管理するためのシステム及び方法
CN112115090A (zh) 用于事务的多协议支持
US20180225254A1 (en) Network communications using pooled memory in rack-scale architecture
US20200379922A1 (en) Adaptive routing for pooled and tiered data architectures
CN105518631B (zh) 内存管理方法、装置和系统、以及片上网络
US20210326270A1 (en) Address translation at a target network interface device
US10762137B1 (en) Page table search engine
CN108702339B (zh) 用于在结构架构中基于服务质量进行节流的装置和方法
US10810133B1 (en) Address translation and address translation memory for storage class memory
US11157191B2 (en) Intra-device notational data movement system
US10754789B1 (en) Address translation for storage class memory in a system that includes virtual machines
US11847049B2 (en) Processing system that increases the memory capacity of a GPGPU
KR20050080704A (ko) 프로세서간 데이터 전송 장치 및 방법
EP3926482A1 (en) System and method for performing transaction aggregation in a network-on-chip (noc)
US11281612B2 (en) Switch-based inter-device notational data movement system
US20240069755A1 (en) Computer system, memory expansion device and method for use in computer system
EP4429213A2 (en) Network interface for data transport in heterogeneous computing environments
KR20240007533A (ko) 메모리 분산 방법, 이를 구현한 컴퓨팅 시스템
CN116795742A (zh) 存储设备、信息存储方法及系统

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170704

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170704

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20180511

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20180511

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180815

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181009

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20181207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190104

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190411

R150 Certificate of patent or registration of utility model

Ref document number: 6514329

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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