(57)【特許請求の範囲】
【請求項１】
メモリアクセス方法であって、
スイッチにより、プロセッサからデータパケットを受信することであって、前記データパケットは、送信元ノード情報と、宛先ノード情報と、プロトコルタイプとを備え、前記プロトコルタイプは、前記データパケットのタイプを示すのに使用される、受信することと、
前記データパケットに対してフローテーブルをマッチすることであって、前記フローテーブルは、少なくとも１つのフローエントリを備え、各フローエントリは、マッチングフィールドと、アクションフィールドとを備え、かつ前記少なくとも１つのフローエントリは、第１のフローエントリを備え、前記第１のフローエントリのマッチングフィールドは、前記データパケットにおける前記送信元ノード情報、前記宛先ノード情報、および前記プロトコルタイプとマッチするのに使用され、前記第１のフローエントリのアクションフィールドは、前記スイッチに組み込まれたストレージデバイスに関する操作コマンドを示すのに使用され、前記ストレージデバイスのストレージスペースは前記プロセッサにおいてアプリケーションプログラムに割り当てられる、マッチすることと、
前記データパケットが前記第１のフローエントリとマッチすることに成功した場合、マッチされることに成功した前記第１のフローエントリの前記アクションフィールドにおける前記操作コマンドにより前記ストレージデバイスに対して操作を実行することと
を備え、
前記方法は、
コントローラにより送信されたフローテーブル構成メッセージを受信することと、
前記フローテーブル構成メッセージにしたがって前記第１のフローエントリを構成することと
をさらに備えることを特徴とするメモリアクセス方法。
【請求項２】
マッチされることに成功した前記第１のフローエントリの前記アクションフィールドにおける前記操作コマンドにより前記ストレージデバイスに対して操作を前記実行することは、
マッチされることに成功した前記第１のフローエントリの前記アクションフィールドにおける前記操作コマンドが読取り操作コマンドである場合、前記ストレージデバイスからデータを読み取り、かつ前記読み取られたデータを、前記送信元ノード情報に対応するノードに戻すこと、または
マッチされることに成功した前記第１のフローエントリの前記アクションフィールドにおける前記操作コマンドが書込み操作コマンドである場合、前記データパケットに入っているデータを前記ストレージデバイスに書き込むことを備えることを特徴とする請求項１に記載の方法。
【請求項３】
前記少なくとも１つのフローエントリは、第２のフローエントリをさらに備え、前記第２のフローエントリのマッチングフィールドは、前記データパケットにおける前記送信元ノード情報、前記宛先ノード情報、および前記プロトコルタイプとマッチするのに使用され、前記第２のフローエントリのアクションフィールドは、前記データパケットにおける前記データに対して計算処理を実行するための操作コマンドを示すのに使用されることを特徴とする請求項２に記載の方法。
【請求項４】
前記データパケットが前記第２のフローエントリとマッチすることに成功した場合、マッチされることに成功した前記第２のフローエントリの前記アクションフィールドにおける前記操作コマンドにより前記データパケットにおける前記データに対して計算処理を実行して、計算結果を獲得することと、
前記計算結果を、前記データパケットにおける前記送信元ノード情報に対応する前記ノードに送信することと
をさらに備えることを特徴とする請求項３に記載の方法。
【請求項５】
スイッチであって、
プロセッサからデータパケットを受信するように構成された第１の受信モジュールであって、前記データパケットは、送信元ノード情報と、宛先ノード情報と、プロトコルタイプとを備え、前記プロトコルタイプは、前記データパケットのタイプを示すのに使用される、第１の受信モジュールと、
前記第１の受信モジュールによって受信された前記データパケットに対してフローテーブルをマッチするように構成されたマッチングモジュールであって、前記フローテーブルは、少なくとも１つのフローエントリを備え、前記フローエントリは、マッチングフィールドと、アクションフィールドとを備え、かつ前記少なくとも１つのフローエントリは、第１のフローエントリを備え、前記第１のフローエントリのマッチングフィールドは、前記データパケットにおける前記送信元ノード情報、前記宛先ノード情報、および前記プロトコルタイプとマッチするのに使用され、前記第１のフローエントリのアクションフィールドは、前記スイッチに組み込まれたストレージデバイスに関する操作コマンドを示すのに使用され、前記ストレージデバイスのストレージスペースは前記プロセッサにおいてアプリケーションプログラムに割り当てられる、マッチングモジュールと、
前記データパケットが前記第１のフローエントリとマッチすることに成功した場合、マッチされることに成功した前記第１のフローエントリの前記アクションフィールドにおける前記操作コマンドにより前記ストレージデバイスに対して操作を実行するように構成された操作モジュールと
を備え、前記スイッチは、
コントローラにより送信されたフローテーブル構成メッセージを受信するように構成された、第２の受信モジュールと、
前記フローテーブル構成メッセージにしたがって前記第１のフローエントリを構成するように構成された、構成モジュールと
をさらに備えたことを特徴とするスイッチ。
【請求項６】
前記操作モジュールは、
前記操作コマンドが読取り操作コマンドである場合、前記ストレージデバイスからデータを読み取るように構成された読取りユニットと、
前記読取りユニットによって読み取られた前記データを、前記送信元ノード情報に対応するノードに戻すように構成された送信ユニットと、
前記操作コマンドが書込み操作コマンドである場合、前記データパケットに入っているデータを前記ストレージデバイスに書き込むように構成された書込みユニットと
を備えることを特徴とする請求項５に記載のスイッチ。
【請求項７】
前記少なくとも１つのフローエントリは、第２のフローエントリをさらに備え、前記第２のフローエントリのマッチングフィールドは、前記データパケットにおける前記送信元ノード情報、前記宛先ノード情報、および前記プロトコルタイプとマッチするのに使用され、前記第２のフローエントリのアクションフィールドは、前記データパケットにおける前記データに対して計算処理を実行するための操作コマンドを示すのに使用されることを特徴とする請求項６に記載のスイッチ。
【請求項８】
前記データパケットが前記第２のフローエントリとマッチすることに成功した場合、マッチされることに成功した前記第２のフローエントリの前記アクションフィールドにおける前記操作コマンドにより前記データパケットにおける前記データに対して計算処理を実行して、計算結果を獲得するように構成された処理モジュールと、
前記処理モジュールによって獲得された前記計算結果を、前記データパケットにおける前記送信元ノード情報に対応する前記ノードに送信するように構成された送信モジュールと
をさらに備えることを特徴とする請求項７に記載のスイッチ。
【請求項９】
スイッチであって、
プロセッサと、
メモリと、
バスと、
通信インターフェースと
を備え、
前記メモリは、コンピュータ実行コマンドを記憶するように構成され、前記プロセッサと前記メモリは、前記バスを使用することによって接続され、前記スイッチが実行する場合、前記プロセッサは、前記メモリに記憶された前記コンピュータ実行コマンドを実行して、前記スイッチが、請求項１乃至４のいずれか一項に記載の方法を実行するようにすることを特徴とするスイッチ。
【請求項１０】
スイッチであって、
プロセッサからデータパケットを受信するように構成された入力ポートであって、前記データパケットは、送信元ノード情報と、宛先ノード情報と、プロトコルタイプとを備え、前記プロトコルタイプは、前記データパケットのタイプを示すのに使用される、入力ポートと、
フローテーブルを記憶するように構成されたメモリであって、前記フローテーブルは、少なくとも１つのフローエントリを備え、前記フローエントリは、マッチングフィールドと、アクションフィールドとを備え、かつ前記少なくとも１つのフローエントリは、第１のフローエントリを備え、前記第１のフローエントリのマッチングフィールドは、前記データパケットにおける前記送信元ノード情報、前記宛先ノード情報、および前記プロトコルタイプとマッチするのに使用され、前記第１のフローエントリのアクションフィールドは、前記スイッチに組み込まれたストレージデバイスに関する操作コマンドを示すのに使用される、メモリと、
データを記憶するように構成された前記ストレージデバイスであって、前記ストレージデバイスのストレージスペースは前記プロセッサにおいてアプリケーションプログラムに割り当てられる、前記ストレージデバイスと、
前記メモリに記憶された前記フローテーブルを使用することによって、前記入力ポートにおいて前記受信されたデータパケットに対してフローテーブルをマッチするように構成されたテーブルルックアップ論理回路と、
前記データパケットが前記第１のフローエントリとマッチすることに成功した場合、マッチされることに成功した前記第１のフローエントリの前記アクションフィールドにおける前記操作コマンドにより前記ストレージデバイスに対して操作を実行するように構成された操作論理回路と、
前記操作論理回路を使用することによって伝送された前記データパケットのために出力ポートを選択するように構成されたクロスバーバスと、
前記クロスバーバスを使用することによって伝送された前記データパケットを送信するように構成された出力ポートと
を備えることを特徴とするスイッチ。
【請求項１１】
マルチプロセッサシステムであって、
複数のプロセッサと、
相互接続ネットワークと
を備え、
前記複数のプロセッサは、前記相互接続ネットワークを使用することによって互いに通信可能に接続され、前記相互接続ネットワークは、複数のスイッチを備え、前記スイッチは、請求項５乃至１０のいずれか一項に記載のスイッチを備えることを特徴とするマルチプロセッサシステム。
【請求項１２】
複数の外部ストレージデバイスをさらに備え、
前記複数の外部ストレージデバイスは、前記相互接続ネットワークを使用することによって前記複数のプロセッサに通信可能に接続されることを特徴とする請求項１１に記載のマルチプロセッサシステム。
【請求項１３】
システムオンチップであることを特徴とする請求項１１または１２に記載のマルチプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ技術の分野に関し、詳細には、メモリアクセス方法、スイッチ、およびマルチプロセッサシステムに関する。
【背景技術】
【０００２】
コンピュータ速度および計算規模のますます高い要件は、マルチプロセッサシステムにつながる。マルチプロセッサシステムにおいて、複数のプロセッサが、相互接続ネットワークを使用することによって互いに通信する。相互接続ネットワークは、通常、複数のスイッチを含み、したがって、相互接続ネットワークは、計算を担うプロセッサに接続されることができ、記憶を担うメモリに接続されることもできる。プロセッサがメモリにアクセスする必要がある場合、要求は、相互接続ネットワークを使用することによってメモリに転送される。しかし、プロセッサおよびメモリの増大する数量は、相互接続ネットワークの増大する規模をもたらし、かつプロセッサが遠隔メモリにアクセスする場合、増大するアクセス遅延をさらにもたらす。その結果、システムパフォーマンスが低下する。
【０００３】
プロセッサが遠隔メモリ（すなわち、スイッチのポートに接続されたメモリ）にアクセスする場合、アクセス遅延を低減するための方法が、従来技術において提供される。その方法において、相互接続ネットワークにおけるすべてのスイッチは、キャッシュ（Ｃａｃｈｅ）機能を有して、いくらかのメモリデータをキャッシュするようにする。プロセッサがアクセスする必要があるデータがスイッチに入っている場合、データは、スイッチにおけるキャッシュを使用することによって直接に戻されることがあり、したがって、遠隔メモリは、アクセスされる必要がなく、アクセス遅延が低減される。
【０００４】
本発明を実施するプロセスにおいて、本発明者は、従来技術が少なくとも以下の問題を有することを見出した。
【０００５】
すべてのスイッチがキャッシュを有し、各キャッシュにキャッシュされたデータは、共有されるデータ、すなわち、複数のプロセッサによって使用されるデータを含むことがある。スイッチのキャッシュにおける共有されるデータが変更され、かつ共有されるデータのコピーが別のスイッチのキャッシュに存在するとき、その別のスイッチにおけるコピーが適時に変更されることができず、そのデータが別のプロセッサによってアクセスされた場合、エラーが生じる。したがって、プロセッサのエラーを回避するのに、キャッシュにおけるデータ整合性が確実にされる必要がある。しかし、キャッシュ一貫性の保持は、通常、極めて複雑である。
【発明の概要】
【０００６】
スイッチにおけるキャッシュがアクセス遅延を低減するのに使用される場合、キャッシュ一貫性の困難な保持の従来技術の問題を解決するのに、本発明の実施形態は、メモリアクセス方法、スイッチ、およびマルチプロセッサシステムを提供する。技術的解決策は以下のとおりである。
【０００７】
第１の態様によれば、本発明の実施形態が、メモリアクセス方法を提供し、方法は、
スイッチによる、データパケットを受信することであって、データパケットは、送信元ノード情報と、宛先ノード情報と、プロトコルタイプとを含み、プロトコルタイプは、データパケットのタイプを示すのに使用されること、
データパケットに対してフローテーブルマッチングを実行することであって、フローテーブルは、少なくとも１つのフローエントリを含み、フローエントリは、マッチングフィールドと、アクションフィールドとを含み、かつ少なくとも１つのフローエントリは、第１のフローエントリを含み、第１のフローエントリのマッチングフィールドは、データパケットにおける送信元ノード情報、宛先ノード情報、およびプロトコルタイプとマッチするのに使用され、第１のフローエントリのアクションフィールドは、スイッチに組み込まれたストレージデバイスに関する操作コマンドを示すのに使用されること、および
データパケットが第１のフローエントリとマッチすることに成功した場合、マッチされることに成功した第１のフローエントリのアクションフィールドにおける操作コマンドによりストレージデバイスに対して操作を実行することを含む。
【０００８】
第１の態様の第１の可能な実施態様様式において、マッチされることに成功した第１のフローエントリのアクションフィールドにおける操作コマンドによりストレージデバイスに対して操作を実行することは、
マッチされることに成功した第１のフローエントリのアクションフィールドにおける操作コマンドが読取り操作コマンドである場合、ストレージデバイスからデータを読み取り、かつ読み取られたデータを、送信元ノード情報に対応するノードに戻すこと、または
マッチされることに成功した第１のフローエントリのアクションフィールドにおける操作コマンドが書込み操作コマンドである場合、データパケットに入っているデータをストレージデバイスに書き込むことを含む。
【０００９】
第１の態様の第２の可能な実施態様様式において、少なくとも１つのフローエントリは、第２のフローエントリをさらに含み、第２のフローエントリのマッチングフィールドは、データパケットにおける送信元ノード情報、宛先ノード情報、およびプロトコルタイプとマッチするのに使用され、第２のフローエントリのアクションフィールドは、データパケットにおけるデータに対して計算処理を実行するための操作コマンドを示すのに使用される。
【００１０】
さらに、第２の可能な実施態様様式において、方法は、
データパケットが第２のフローエントリとマッチすることに成功した場合、マッチされることに成功した第２のフローエントリのアクションフィールドにおける操作コマンドによりデータパケットにおけるデータに対して計算処理を実行して、計算結果を獲得すること、および
計算結果を、データパケットにおける送信元ノード情報に対応するノードに送信することをさらに含む。
【００１１】
第１の態様の第３の可能な実施態様様式において、方法は、
コントローラによって送信されたフローテーブル構成メッセージを受信することであって、フローテーブル構成メッセージは、スイッチに関するフローエントリを構成するのに使用されること、および
フローテーブル構成メッセージによりフローエントリを構成することをさらに含む。
【００１２】
第２の態様によれば、本発明の実施形態が、スイッチを提供し、スイッチは、
データパケットを受信するように構成された第１の受信モジュールであって、データパケットは、送信元ノード情報と、宛先ノード情報と、プロトコルタイプとを含み、プロトコルタイプは、データパケットのタイプを示すのに使用される、第１の受信モジュールと、
第１の受信モジュールによって受信されたデータパケットに対してフローテーブルマッチングを実行するように構成されたマッチングモジュールであって、フローテーブルは、少なくとも１つのフローエントリを含み、フローエントリは、マッチングフィールドと、アクションフィールドとを含み、かつ少なくとも１つのフローエントリは、第１のフローエントリを含み、第１のフローエントリのマッチングフィールドは、データパケットにおける送信元ノード情報、宛先ノード情報、およびプロトコルタイプとマッチするのに使用され、第１のフローエントリのアクションフィールドは、スイッチに組み込まれたストレージデバイスに関する操作コマンドを示すのに使用される、マッチングモジュールと、
データパケットが第１のフローエントリとマッチすることに成功した場合、マッチされることに成功した第１のフローエントリのアクションフィールドにおける操作コマンドによりストレージデバイスに対して操作を実行するように構成された操作モジュールとを含む。
【００１３】
第２の態様の第１の可能な実施態様様式において、操作モジュールは、
操作コマンドが読取り操作コマンドである場合、ストレージデバイスからデータを読み取るように構成された読取りユニットと、
読取りユニットによって読み取られたデータを、送信元ノード情報に対応するノードに戻すように構成された送信ユニットと、
操作コマンドが書込み操作コマンドである場合、データパケットに入っているデータをストレージデバイスに書き込むように構成された書込みユニットとを含む。
【００１４】
第２の態様の第２の可能な実施態様様式において、少なくとも１つのフローエントリは、第２のフローエントリをさらに含み、第２のフローエントリのマッチングフィールドは、データパケットにおける送信元ノード情報、宛先ノード情報、およびプロトコルタイプとマッチするのに使用され、第２のフローエントリのアクションフィールドは、データパケットにおけるデータに対して計算処理を実行するための操作コマンドを示すのに使用される。
【００１５】
さらに、第２の可能な実施態様様式において、スイッチは、
データパケットが第２のフローエントリとマッチすることに成功した場合、マッチされることに成功した第２のフローエントリのアクションフィールドにおける操作コマンドによりデータパケットにおけるデータに対して計算処理を実行して、計算結果を獲得するように構成された処理モジュールと、
処理モジュールによって獲得された計算結果を、データパケットにおける送信元ノード情報に対応するノードに送信するように構成された送信モジュールとをさらに含む。
【００１６】
第２の態様の第３の可能な実施態様様式において、スイッチは、
コントローラによって送信されたフローテーブル構成メッセージを受信するように構成された第２の受信モジュールであって、フローテーブル構成メッセージは、スイッチに関するフローエントリを構成するのに使用される、第２の受信モジュールと、
第２の受信モジュールによって受信されたフローテーブル構成メッセージによりフローエントリを構成するように構成された構成モジュールとをさらに含む。
【００１７】
第３の態様によれば、本発明の実施形態が、スイッチを提供し、スイッチは、プロセッサと、メモリと、バスと、通信インターフェースとを含み、メモリは、コンピュータ実行コマンドを記憶するように構成され、プロセッサとメモリは、バスを使用することによって接続され、コンピュータが実行する場合、プロセッサは、メモリに記憶されたコンピュータ実行コマンドを実行して、スイッチが、第１の態様において提供される方法を実行するようにする。
【００１８】
第４の態様によれば、本発明の実施形態が、スイッチを提供し、スイッチは、
データパケットを受信するように構成された入力ポートであって、データパケットは、送信元ノード情報と、宛先ノード情報と、プロトコルタイプとを含み、プロトコルタイプは、データパケットのタイプを示すのに使用される、入力ポートと、
フローテーブルを記憶するように構成されたメモリであって、フローテーブルは、少なくとも１つのフローエントリを含み、フローエントリは、マッチングフィールドと、アクションフィールドとを含み、かつ少なくとも１つのフローエントリは、第１のフローエントリを含み、第１のフローエントリのマッチングフィールドは、データパケットにおける送信元ノード情報、宛先ノード情報、およびプロトコルタイプとマッチするのに使用され、第１のフローエントリのアクションフィールドは、スイッチに組み込まれたストレージデバイスに関する操作コマンドを示すのに使用される、メモリと、
データを記憶するように構成されたストレージデバイスと、
メモリに記憶されたフローテーブルを使用することによって、入力ポートにおいて受信されたデータパケットに対してフローテーブルマッチングを実行するように構成されたテーブルルックアップ論理回路と、
データパケットが第１のフローエントリとマッチすることに成功した場合、マッチされることに成功した第１のフローエントリのアクションフィールドにおける操作コマンドによりストレージデバイスに対して操作を実行するように構成された操作論理回路と、
操作論理回路を使用することによって伝送されたデータパケットのために出力ポートを選択するように構成されたクロスバーバスと、
クロスバーバスを使用することによって伝送されたデータパケットを送信するように構成された出力ポートとを含む。
【００１９】
第５の態様によれば、本発明の実施形態が、マルチプロセッサシステムを提供し、マルチプロセッサシステムは、複数のプロセッサと、相互接続ネットワークとを含み、複数のプロセッサは、相互接続ネットワークを使用することによって互いに通信可能に接続され、相互接続ネットワークは、複数のスイッチを含み、スイッチは、第２の態様、または第３の態様、または第４の態様において提供されるスイッチを含む。
【００２０】
第５の態様の第１の可能な実施態様様式において、マルチプロセッサシステムは、複数の外部ストレージデバイスをさらに含み、複数の外部ストレージデバイスは、相互接続ネットワークを使用することによって複数のプロセッサに通信可能に接続される。
【００２１】
第５の態様の第２の可能な実施態様様式において、マルチプロセッサシステムは、システムオンチップである。
【００２２】
本発明の実施形態において提供される技術的解決策は、以下の有益な効果をもたらす。ストレージデバイスがスイッチに組み込まれ、フローテーブルマッチングが、受信されたデータパケットに対して実行され、データパケットが、フローテーブルにおける第１のフローエントリとマッチすることに成功した場合、第１のフローエントリのアクションフィールドにおける操作コマンドにより、スイッチに組み込まれたストレージデバイスに対して操作が直接に実行されて、プロセッサが遠隔メモリにアクセスする可能性を低減するようにし、かつ解消するようにさえし、かつメモリアクセス遅延を低減するようにする。さらに、スイッチにおけるストレージデバイスは、データを別々に記憶するため、別のスイッチにおけるストレージデバイスにコピーは存在せず、キャッシュ一貫性を保持することに関する問題が存在しない。このことが、実施態様を簡略化する。
【図面の簡単な説明】
【００２３】
本発明の実施形態における技術的解決策をより明確に説明するために、以下の記述により、実施形態を説明するために要求される添付の図面を簡単に説明する。明らかに、以下の説明における添付の図面は、本発明の単にいくつかの実施形態を示し、当業者は、それでも、独創的な取組みなしにこれらの添付の図面から他の図面を導き出すことがある。
【００２４】
【図１】マルチプロセッサシステムの概略構造図である。
【図２】本発明の実施形態１によるメモリアクセス方法のフローチャートである。
【図３】本発明の実施形態２によるメモリアクセス方法のフローチャートである。
【図４】本発明の実施形態２によるメモリアクセス方法のアクセス例の概略図である。
【図５】本発明の実施形態３によるスイッチの構造ブロック図である。
【図６】本発明の実施形態４によるスイッチの構造ブロック図である。
【図７】本発明の実施形態５によるスイッチの構造ブロック図である。
【図８】本発明の実施形態５によるスイッチの特定の実施態様の構造図である。
【図９】本発明の実施形態６によるスイッチのハードウェアの構造図である。
【図１０】本発明の実施形態７によるマルチプロセッサシステムの構造ブロック図である。
【発明を実施するための形態】
【００２５】
本発明の目的、技術的解決策、および利点をより明確にするために、以下の記述により、添付の図面を参照して本発明の実施形態を詳細にさらに説明する。
【００２６】
本発明の実施形態が、メモリアクセス方法、スイッチ、およびマルチプロセッサシステムを提供する。以下の記述により、図１を参照してマルチプロセッサシステムのネットワークアーキテクチャを説明する。
【００２７】
図１を参照して、マルチプロセッサシステムにおいて、複数のプロセッサ２が、相互接続ネットワーク１を使用することによって互いに接続される。相互接続ネットワークは、複数のスイッチを含み、これらのスイッチは、プロセッサ２の間で通信データを転送することを担う。さらに、マルチプロセッサシステムは、複数の別々のストレージデバイス３をさらに含み、ストレージデバイス３は、相互接続ネットワーク１を使用することによってプロセッサ２に接続される。したがって、相互接続ネットワーク１におけるこれらのスイッチは、プロセッサ２からストレージデバイス３にアクセス要求を転送すること、およびストレージデバイス３によって戻される応答メッセージをプロセッサ２に転送することをさらに担う。
【００２８】
マルチプロセッサシステムの前述のネットワークアーキテクチャは、例に過ぎず、本発明の実施形態に限定を課さないことを知るのは容易である。例えば、マルチプロセッサシステムは、ストレージデバイス３を含まないことがある。
【００２９】
実施形態１
本発明のこの実施形態は、前述のマルチプロセッサシステムに適用可能なメモリアクセス方法を提供する。方法は、スイッチによって実行されることがある。特定の実施態様において、スイッチは、ＯｐｅｎＦｌｏｗスイッチ（ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ、略してＯＦＳ）、またはマッチング機能を有する別のスイッチであり得る。図２に示されるとおり、方法は、以下のステップを含む。
【００３０】
ステップ１０１  スイッチが、データパケットを受信し、データパケットは、送信元ノード情報と、宛先ノード情報と、プロトコルタイプとを含む。
【００３１】
送信元ノード情報は、送信元ノード識別子、送信元ノードＭＡＣアドレス、または類似したものであり得る。宛先ノード情報は、宛先ノード識別子、宛先ノードＭＡＣアドレス、または類似したものであり得る。プロトコルタイプは、読取り要求データパケット、書込み要求データパケット、または計算要求データパケットなどのデータパケットのタイプを示すのに使用される。
【００３２】
本発明のこの実施形態において、ストレージデバイスがスイッチに組み込まれる。ストレージデバイスは、スタティックランダムアクセスメモリ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ、略して、ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ、略して、ＤＲＡＭ）、または類似したものであり得る。
【００３３】
フローテーブルがＯＦＳにおいて設定されることを知るのは容易である。フローテーブルは、少なくとも１つのフローエントリを含み、各フローエントリは、マッチングフィールドと、アクションフィールドとを含む。フローテーブルにおけるフローエントリは、通常、転送フローエントリを含む。転送フローエントリは、データパケットの転送出口を決定するのに使用される。フローテーブルにおけるフローエントリは、データパケット変更フローエントリをさらに含むことがある。データパケット変更フローエントリは、データパケットにおける情報を変更すること、例えば、データパケットにおけるヘッダフィールドを変更することを決定するのに使用される。
【００３４】
ステップ１０２  データパケットに対してフローテーブルマッチングを実行する。
【００３５】
前述したとおり、スイッチにおけるフローテーブルは、複数のエントリを含むことがある。しかし、本発明のこの実施形態において、フローエントリは、第１のフローエントリをさらに含む。第１のフローエントリのマッチングフィールドは、データパケットにおける送信元ノード情報、宛先ノード情報、およびプロトコルタイプとマッチするのに使用され、第１のフローエントリのアクションフィールドは、スイッチに組み込まれたストレージデバイスに関する操作コマンドを示すのに使用される。操作コマンドは、読取り操作コマンドと、書込み操作コマンドとを含むが、以上には限定されない。
【００３６】
第１のフローエントリのアクションフィールドにおける操作コマンドが、一般に、第１のフローエントリのマッチングフィールドにおけるプロトコルタイプと互いに対応することを知るのは容易である。例えば、第１のフローエントリのマッチングフィールドにおけるプロトコルタイプが、読取り要求データパケットを示すのに使用される場合、第１のフローエントリのアクションフィールドにおける操作コマンドは、スイッチに組み込まれたストレージデバイスに関する読取り操作コマンドである。
【００３７】
実施態様において、フローエントリの機能により、様々なフローエントリ（第１のフローエントリ、転送フローエントリ、およびデータパケット変更フローエントリなどの）が、１つのフローテーブルにおいて構成されることがあり、または異なるフローエントリが、異なるフローテーブルにおいて構成されることがある。
【００３８】
様々なフローテーブルが、スイッチの三値連想メモリ（Ｔｅｒｎａｒｙ  Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ、略して、ＴＣＡＭ）またはリデューストレイテンシダイナミックランダムアクセスメモリ（Ｒｅｄｕｃｅｄ  Ｌａｔｅｎｃｙ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ、略して、ＲＬＤＲＡＭ）において、通常、設定される。
【００３９】
スイッチにおけるフローエントリが、ＯｐｅｎＦｌｏｗコントローラ（ＯｐｅｎＦｌｏｗ  Ｃｏｎｔｒｏｌｌｅｒ、略してＯＦＣ）によって構成されることがあることを知るのは容易である。
【００４０】
ステップ１０３  データパケットが第１のフローエントリとマッチすることに成功した場合、マッチされることに成功した第１のフローエントリのアクションフィールドにおける操作コマンドによりストレージデバイスに対して操作を実行する。
【００４１】
特に、ステップ１０３は、
マッチされることに成功した第１のフローエントリのアクションフィールドにおける操作コマンドが読取り操作コマンドである場合、ストレージデバイスからデータを読み取り、かつ読み取られたデータを、送信元ノード情報に対応するノードに戻すこと、または
マッチされることに成功した第１のフローエントリのアクションフィールドにおける操作コマンドが書込み操作コマンドである場合、データパケットに入っているデータをストレージデバイスに書き込むことを含むことがある。
【００４２】
本発明のこの実施形態において、ストレージデバイスがスイッチに組み込まれ、フローテーブルマッチングが、受信されたデータパケットに対して実行され、データパケットが、フローテーブルにおける第１のフローエントリとマッチすることに成功した場合、第１のフローエントリのアクションフィールドにおける操作コマンドにより、スイッチに組み込まれたストレージデバイスに対して操作が直接に実行されて、プロセッサが遠隔メモリにアクセスする可能性を低減するようにし、かつ解消するようにさえし、かつメモリアクセス遅延を低減するようにする。さらに、スイッチにおけるストレージデバイスは、データを別々に記憶するため、別のスイッチにおけるストレージデバイスにコピーは存在せず、キャッシュ一貫性を保持することに関する問題が存在しない。このことが、実施態様を簡略化する。さらに、第１のフローエントリがマッチされることに成功した場合、各スイッチが、スイッチ内のストレージデバイスに直接にアクセスするため、１つのアクセス要求に関して、相互接続ネットワークが、アクセスされること、および切り離されることが１回だけしか行われる必要がなく（すなわち、アクセス要求を受信すること、および応答メッセージを戻すこと）、ネットワークリソースを節約するようにする。
【００４３】
実施形態２
本発明のこの実施形態は、前述のマルチプロセッサシステムに適用可能なメモリアクセス方法を提供する。フローテーブルが、スイッチにおいて設定される。フローテーブルは、少なくとも１つのフローエントリを含み、各フローエントリは、マッチングフィールドと、アクションフィールドとを含む。マッチングフィールドは、スイッチによって受信されたデータパケットにおける情報とマッチするのに使用され、アクションフィールドは、フローエントリがマッチされることに成功した場合、データパケットに対して実行されるべき操作を示すのに使用される。フローテーブルにおけるフローエントリは、通常、転送フローエントリを含む。転送フローエントリは、データパケットの転送出口を決定するのに使用される。フローテーブルにおけるフローエントリは、データパケット変更フローエントリをさらに含むことがある。データパケット変更フローエントリは、データパケットにおける情報を変更すること、例えば、データパケットにおけるヘッダフィールドを変更することを決定するのに使用される。さらに、ＳＲＡＭまたはＤＲＡＭなどのストレージデバイス（メモリとも呼ばれる）が、スイッチにさらに組み込まれる。実施態様において、スイッチは、ＯＦＳであることがあり、またはマッチング機能を有する別のスイッチであることがある。
【００４４】
以下は、図３を参照してこの実施形態における方法を詳細に説明する。図３に示されるとおり、方法は、以下のステップを含む。
【００４５】
ステップ２０１  スイッチが、プロセッサによって送信されたデータパケットを受信し、データパケットは、送信元ノード情報と、宛先ノード情報と、プロトコルタイプとを含む。
【００４６】
送信元ノード情報は、送信元ノード識別子、送信元ノードＭＡＣアドレス、または類似したものであり得る。宛先ノード情報は、宛先ノード識別子、宛先ノードＭＡＣアドレス、または類似したものであり得る。プロトコルタイプは、読取り要求データパケット、書込み要求データパケット、または計算要求データパケットなどのデータパケットのタイプを示すのに使用される。
【００４７】
データパケットは、読取り／書込みアドレスなどの操作アドレスをさらに含むことがある。データパケットが書込みデータパケットである場合、データパケットは、書き込まれるべきデータをさらに含むことが理解されることがある。
【００４８】
ステップ２０２  スイッチが、データパケットに対してフローテーブルマッチングを実行する。データパケットが、第１のフローエントリとマッチすることに成功した場合、ステップ２０３を実行する。データパケットが第２のフローエントリとマッチすることに成功した場合、ステップ２０４および２０５を実行する。
【００４９】
前述したとおり、スイッチにおけるフローテーブルは、複数のエントリを含むことがある。本発明のこの実施形態において、フローエントリは、第１のフローエントリをさらに含むことが強調されなければならない。第１のフローエントリのマッチングフィールドは、データパケットにおける送信元ノード情報、宛先ノード情報、およびプロトコルタイプとマッチするのに使用され、第１のフローエントリのアクションフィールドは、スイッチに組み込まれたストレージデバイスに関する操作コマンドを示すのに使用される。操作コマンドは、読取り操作コマンドと、書込み操作コマンドとを含むが、以上には限定されない。
【００５０】
第１のフローエントリのアクションフィールドにおける操作コマンドが、一般に、第１のフローエントリのマッチングフィールドにおけるプロトコルタイプと互いに対応することを知るのは容易である。例えば、第１のフローエントリのマッチングフィールドにおけるプロトコルタイプが、読取り要求データパケットを示すのに使用される場合、第１のフローエントリのアクションフィールドにおける操作コマンドは、スイッチに組み込まれたストレージデバイスに関する読取り操作コマンドである。
【００５１】
さらに、この実施形態において、フローエントリは、第２のフローエントリをさらに含むことがある。第２のフローエントリのマッチングフィールドが、データパケットにおける送信元ノード情報、宛先ノード情報、およびプロトコルタイプとマッチするのに使用され、第２のフローエントリのアクションフィールドが、データパケットにおけるデータに対して計算処理を実行するための操作コマンドを示すのに使用される。計算処理は、巡回冗長検査（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ、略して、ＣＲＣ）または高速フーリエ変換（Ｆａｓｔ  Ｆｏｕｒｉｅｒ  Ｔｒａｎｓｆｏｒｍａｔｉｏｎ、略して、ＦＦＴ）を含むが、以上には限定されない。
【００５２】
実施態様において、フローエントリの機能により、様々なフローエントリ（第１のフローエントリ、転送フローエントリ、およびデータパケット変更フローエントリなどの）が、１つのフローテーブルにおいて構成されることがあり、または異なるフローエントリが、異なるフローテーブルにおいて構成されることがある。例えば、第１のフローエントリが、１つのフローテーブルにおいて構成され、転送フローエントリが、別のフローテーブルにおいて構成される。このことは、本発明のこの実施形態において限定されない。
【００５３】
様々なフローテーブルが、スイッチのＴＣＡＭまたはＲＬＤＲＡＭにおいて設定されることがある。
【００５４】
ステップ２０２において、マッチングが、受信されたデータパケットおよび各フローエントリに対して実行されることがあることを知るのは容易である。
【００５５】
さらに、特定の実施態様において、スイッチにおけるフローテーブルが、スイッチのポートにより設定されることがある。例えば、スイッチの１つのポートが、フローテーブルのグループに対応することがある。フローテーブルの各グループは、１つのフローテーブルを含むことがあり（フローテーブルは、すべてのタイプのフローエントリを含む）、またはフローテーブルの各グループは、複数のフローテーブルを含むことがある（複数のフローテーブルは、異なるタイプのフローエントリを含む）。ポートにおいて受信されたデータパケットは、ポートに対応するフローテーブルに照らしてのみマッチされる。別の例において、フローテーブルの１つだけのグループが、スイッチにおいて構成されることがあり、すべてのポートにおいて受信されたデータパケットは、フローテーブルのグループに照らしてマッチされる。
【００５６】
ステップ２０３  スイッチが、マッチされることに成功した第１のフローエントリのアクションフィールドにおける操作コマンドによりストレージデバイスに対して操作を実行する。
【００５７】
特にステップ２０３は、
マッチされることに成功した第１のフローエントリのアクションフィールドにおける操作コマンドが読取り操作コマンドである場合、ストレージデバイスからデータを読み取り、かつ読み取られたデータを、送信元ノード情報に対応するノードに戻すこと、または
マッチされることに成功した第１のフローエントリのアクションフィールドにおける操作コマンドが書込み操作コマンドである場合、データパケットに入っているデータをストレージデバイスに書き込むことを含むことがある。
【００５８】
この実施形態の特定の適用シナリオ、およびスイッチの特定の操作手続きが、以下に図４を参照して詳細に説明される。
【００５９】
プロセッサ０４とプロセッサ４２が、アプリケーションプログラムを一緒に実行する。プロセッサ０４は、プロセッサ４２と対話して、アプリケーションプログラムを実行するためにプロセッサ４２によって要求されるデータがプロセッサ０４から獲得される必要があることを決定する。アプリケーションプログラムは、コントローラに、共有されるストレージスペース（ストレージスペースは、スイッチに組み込まれたストレージデバイスのストレージスペースである）を申請して、プロセッサ０４が、プロセッサ４２によって要求されるデータを、プロセッサ４２のアクセスのために共有されるストレージスペースに書き込むことがあるようにする。システムがセットアップされると、コントローラは、スイッチにおけるすべてのストレージデバイスを知り、スイッチにおけるすべてのストレージデバイスを管理する。
【００６０】
コントローラは、スイッチ１１におけるストレージスペースをアプリケーションプログラムに割り当て、割り当てられたストレージスペースのアドレスをプロセッサ０４およびプロセッサ４２に通知し（例えば、ストレージスペース割当て情報が送信されることがあり、ストレージスペース割当て情報は、スイッチ識別子と、ストレージスペースアドレスとを含むことがある）、フローテーブル構成情報をスイッチ１１に送信する。フローテーブル構成情報は、第１のフローエントリを構成するのに使用される。少なくとも２つの構成された第１のフローエントリが存在する。１つの第１のフローエントリのマッチングフィールドは、送信元ノード識別子（０４）と、宛先ノード識別子（１１）と、プロトコルタイプ（ＷＲ）とを含み、対応するアクションフィールドは、書込み操作コマンド（ＭＥＭ  ＷＲ）である。他方の第１のフローエントリのマッチングフィールドは、送信元ノード識別子（ｘｘ）と、宛先ノード識別子（１１）と、プロトコルタイプ（ＲＤ）とを含み、対応するアクションフィールドは、読取り操作コマンド（ＭＥＭ  ＲＤ）である。
【００６１】
さらに、コントローラは、フローテーブル構成情報を別のスイッチ（例えば、スイッチ００または０１）にさらに送信することがある。フローテーブル構成情報は、転送フローエントリを構成するのに使用される。転送フローエントリは、プロセッサ０４およびプロセッサ４２によってスイッチ１１に送信されるデータパケットをスイッチ１１に転送するように命令するのに使用される。
【００６２】
プロセッサ０４が、コントローラによって割り当てられたストレージスペースを獲得した後、図４に示されるとおり、プロセッサ０４は、書込み要求データパケット（２）を、相互接続ネットワークにおけるスイッチ００に送信する。書込み要求データパケットは、送信元ノード識別子（０４）と、宛先ノード識別子（１１）と、プロトコルタイプ（書込み要求を示すＷＲ）と、書込みアドレス（００）と、書き込まれるべきデータ（ｘｘ）とを含む。書き込まれるべきデータ（ｘｘ）は、アプリケーションプログラムを実行するのにプロセッサ４２によって要求されるデータである。スイッチ００は、書込み要求データパケットをスイッチ０１に転送し、スイッチ０１は、書込み要求データパケットをスイッチ１１（すなわち、宛先ノード）に転送する。書込み要求データパケットを受信した後、スイッチ００およびスイッチ０１は、書込み要求データパケットに対してフローテーブルマッチングを実行し、マッチされることに成功した転送フローエントリのアクションフィールドにより、書込み要求データパケットを転送することを知るのは容易である。
【００６３】
前述されるとおり、スイッチ１１におけるフローテーブル（１）は、２つの第１のフローエントリを含む。フローエントリ１のマッチングフィールドは、送信元ノード識別子（０４）と、宛先ノード識別子（１１）と、プロトコルタイプ（ＷＲ）とを含み、対応するアクションフィールドは、書込み操作コマンド（ＭＥＭ  ＷＲ）である。フローエントリ２のマッチングフィールドは、送信元ノード識別子（ｘｘ）と、宛先ノード識別子（１１）と、プロトコルタイプ（ＲＤ）とを含み、対応するアクションフィールドは、読取り操作コマンド（ＭＥＭ  ＲＤ）である。スイッチ１１が書込み要求データパケットに対してフローテーブルマッチングを実行した後、書込み要求データパケットは、フローエントリ１とマッチされることに成功することがある。したがって、書込み操作コマンドが、スイッチ１１におけるストレージデバイスに対して実行され、書き込まれるべきデータｘｘが、スイッチ１１におけるストレージデバイスのアドレス００に書き込まれる。
【００６４】
同様に、プロセッサ４２が、読取り要求データパケット（３）を、相互接続ネットワークにおけるスイッチ０２に送信する。読取り要求データパケットは、送信元ノード識別子（４２）と、宛先ノード識別子（１１）と、プロトコルタイプ（読取り要求を示すＲＤ）と、読取りアドレス（００）とを含む。スイッチ０２は、読取り要求データパケットをスイッチ１２に転送し、スイッチ１２は、読取り要求データパケットをスイッチ１１（すなわち、宛先ノード）に転送する。読取り要求データパケットを受信した後、スイッチ０２およびスイッチ１２は、読取り要求データパケットに対してフローテーブルマッチングを実行し、マッチされることに成功した転送フローエントリのアクションフィールドにより、読取り要求データパケットを転送することを知るのは容易である。
【００６５】
スイッチ１１が、読取り要求データパケットに対してフローテーブルマッチングを実行した後、読取り要求データパケットは、フローエントリ２とマッチされることに成功することがある。したがって、読取り操作コマンドが、スイッチ１１におけるストレージデバイスによって実行され、データｘｘが、スイッチ１１におけるストレージデバイスのアドレス００から読み取られる。応答データパケット（４）がさらに生成される。応答データパケットは、送信元ノード識別子（１１）と、宛先ノード識別子（４２）と、プロトコルタイプ（読取り応答を示すＲＤ  ＲＬＹ）と、読取りアドレス（００）と、読取りデータ（ｘｘ）とを含む。応答データパケットは、スイッチ１２およびスイッチ０２を使用することによってプロセッサ４２に戻される。
【００６６】
読取り要求データパケットの処理手続きから、外部ストレージデバイスにアクセスするための既存の読取り要求手続きと比較して（読取り要求データパケットが、第１に、プロセッサによって、アクセスされる相互接続ネットワークに送信され、次に、相互接続ネットワークを使用することによって外部ストレージデバイスに転送され、読取り応答データパケットが、外部ストレージデバイスによって相互接続ネットワークに送信され、次に、相互接続ネットワークを使用することによってプロセッサに転送されて、アクセスプロセスにおいて、データパケットに関して、相互接続ネットワークがアクセスされること、および切り離されることが２回、行われる必要がある）、この実施形態のアクセスプロセスにおいて、データパケットに関して、相互接続ネットワークが、アクセスされること、および切り離されることが１回だけしか行われる必要がなく、したがって、本発明のこの実施形態におけるメモリアクセス方法がネットワークリソースを節約することがあることが知られ得る。
【００６７】
前述の適用シナリオは、例に過ぎず、限定するものではないことに留意されたい。本発明のこの実施形態は、以下のシナリオにさらに適用される。コントローラが、第１に、共有されるストレージスペースをアプリケーションに割り当て、かつ対応するアプリケーションを、処理のためにプロセッサに割り当てる。この事例において、プロセッサに割り当てられたアプリケーションは、共有されるストレージスペースが使用されることができることを前もって知り、したがって、共有されるストレージスペースに直接にアクセスすることができる。
【００６８】
ステップ２０４  スイッチが、マッチされることに成功した第２のフローエントリのアクションフィールドにおける操作コマンドによりデータパケットにおけるデータに対して計算処理を実行して、計算結果を獲得する。
【００６９】
実施態様において、計算モジュールがスイッチにおいて設定されることがあり、または特定の計算デバイスがスイッチに配置されることがある。スイッチは、データを特定の計算デバイスに送信し、計算デバイスによって戻される計算結果を受信する。
【００７０】
ステップ２０５  スイッチが、計算結果をプロセッサに送信する。
【００７１】
プロセッサは、データパケットにおける送信元ノード情報に対応するノードである。
【００７２】
この実施形態において、計算結果は、ステップ２０１においてプロセッサに送信される。
【００７３】
スイッチにおけるフローエントリがＯＦＣによって構成されることがあることを知るのは容易である。したがって、方法は、
ＯＦＣによって送信されたフローテーブル構成メッセージを受信することであって、フローテーブル構成メッセージは、スイッチに関するフローエントリを構成するのに使用されること、および
フローテーブル構成メッセージによるフローエントリを構成することをさらに含むことがある。
【００７４】
本発明のこの実施形態において、ストレージデバイスがスイッチに組み込まれ、フローテーブルマッチングが、受信されたデータパケットに対して実行され、データパケットが、フローテーブルにおける第１のフローエントリとマッチすることに成功した場合、第１のフローエントリのアクションフィールドにおける操作コマンドにより、スイッチに組み込まれたストレージデバイスに対して操作が直接に実行されて、プロセッサが遠隔メモリにアクセスする可能性を低減するようにし、かつ解消するようにさえし、かつメモリアクセス遅延を低減するようにする。さらに、スイッチにおけるストレージデバイスは、データを別々に記憶するため、別のスイッチにおけるストレージデバイスにコピーは存在せず、キャッシュ一貫性を保持することに関する問題が存在しない。このことが、実施態様を簡略化する。さらに、第１のフローエントリがマッチされることに成功した場合、各スイッチが、スイッチ内のストレージデバイスに直接にアクセスするため、１つのアクセス要求に関して、相互接続ネットワークが、アクセスされること、および切り離されることが１回だけしか行われる必要がなく（すなわち、アクセス要求を受信すること、および応答メッセージを戻すこと）、ネットワークリソースを節約するようにする。さらに、この実施形態において、第２のフローエントリがスイッチにおいてさらに構成される。データパケットが第２のフローエントリとマッチされる場合、計算処理が、データパケットにおけるデータに対して実行されて、ネットワークハードウェア計算容量を強化するようにすることがある。
【００７５】
実施形態３
本発明のこの実施形態は、スイッチを提供する。フローテーブルが、スイッチにおいて設定される。フローテーブルは、少なくとも１つのフローエントリを含み、各フローエントリは、マッチングフィールドと、アクションフィールドとを含む。マッチングフィールドは、スイッチによって受信されたデータパケットにおける情報とマッチするのに使用され、アクションフィールドは、フローエントリがマッチされることに成功した場合、データパケットに対して実行されるべき操作を示すのに使用される。フローテーブルにおけるフローエントリは、通常、転送フローエントリを含む。転送フローエントリは、データパケットの転送出口を決定するのに使用される。フローテーブルにおけるフローエントリは、データパケット変更フローエントリをさらに含むことがある。データパケット変更フローエントリは、データパケットにおける情報を変更すること、例えば、データパケットにおけるヘッダフィールドを変更することを決定するのに使用される。さらに、ＳＲＡＭまたはＤＲＡＭなどのストレージデバイスが、スイッチにさらに組み込まれる。実施態様において、スイッチは、ＯＦＳであることがある。
【００７６】
図５を参照すると、スイッチが、第１の受信モジュール３０１と、マッチングモジュール３０２と、操作モジュール３０３とを含む。
【００７７】
第１の受信モジュール３０１は、データパケットを受信するように構成され、データパケットは、送信元ノード情報と、宛先ノード情報と、プロトコルタイプとを含み、プロトコルタイプは、データパケットのタイプを示すのに使用される。送信元ノード情報は、送信元ノード識別子、送信元ノードＭＡＣアドレス、または類似したものであり得る。宛先ノード情報は、宛先ノード識別子、宛先ノードＭＡＣアドレス、または類似したものであり得る。プロトコルタイプは、読取り要求データパケット、書込み要求データパケット、または計算要求データパケットなどのデータパケットのタイプを示すのに使用される。
【００７８】
マッチングモジュール３０２は、第１の受信モジュール３０１によって受信されたデータパケットに対してフローテーブルマッチングを実行するように構成され、フローテーブルは、少なくとも１つのフローエントリを含み、フローエントリは、マッチングフィールドと、アクションフィールドとを含み、少なくとも１つのフローエントリは、第１のフローエントリを含み、第１のフローエントリのマッチングフィールドは、データパケットにおける送信元ノード情報、宛先ノード情報、およびプロトコルタイプとマッチするのに使用され、第１のフローエントリのアクションフィールドは、スイッチに組み込まれたストレージデバイスに関する操作コマンドを示すのに使用される。操作コマンドは、読取り操作コマンドと、書込み操作コマンドとを含むが、以上には限定されない。
【００７９】
第１のフローエントリのアクションフィールドにおける操作コマンドが、一般に、第１のフローエントリのマッチングフィールドにおけるプロトコルタイプと互いに対応することを知るのは容易である。例えば、第１のフローエントリのマッチングフィールドにおけるプロトコルタイプが、読取り要求データパケットを示すのに使用される場合、第１のフローエントリのアクションフィールドにおける操作コマンドは、スイッチに組み込まれたストレージデバイスに関する読取り操作コマンドである。
【００８０】
実施態様において、フローエントリの機能により、様々なフローエントリ（第１のフローエントリ、転送フローエントリ、およびデータパケット変更フローエントリなどの）が、１つのフローテーブルにおいて構成されることがあり、または異なるフローエントリが、異なるフローテーブルにおいて構成されることがある。
【００８１】
様々なフローテーブルが、スイッチの三値連想メモリ（Ｔｅｒｎａｒｙ  Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ、略して、ＴＣＡＭ）またはリデューストレイテンシダイナミックランダムアクセスメモリ（Ｒｅｄｕｃｅｄ  Ｌａｔｅｎｃｙ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ、略して、ＲＬＤＲＡＭ）において、通常、設定される。
【００８２】
操作モジュール３０３は、データパケットが第１のフローエントリとマッチすることに成功した場合、マッチされることに成功した第１のフローエントリのアクションフィールドにおける操作コマンドによりストレージデバイスに対して操作を実行するように構成される。
【００８３】
本発明のこの実施形態において、ストレージデバイスがスイッチに組み込まれ、フローテーブルマッチングが、受信されたデータパケットに対して実行され、データパケットが、フローテーブルにおける第１のフローエントリとマッチすることに成功した場合、第１のフローエントリのアクションフィールドにおける操作コマンドにより、スイッチに組み込まれたストレージデバイスに対して操作が直接に実行されて、プロセッサが遠隔メモリにアクセスする可能性を低減するようにし、かつ解消するようにさえし、かつメモリアクセス遅延を低減するようにする。さらに、スイッチにおけるストレージデバイスは、データを別々に記憶するため、別のスイッチにおけるストレージデバイスにコピーは存在せず、キャッシュ一貫性を保持することに関する問題が存在しない。このことが、実施態様を簡略化する。さらに、第１のフローエントリがマッチされることに成功した場合、各スイッチが、スイッチ内のストレージデバイスに直接にアクセスするため、１つのアクセス要求に関して、相互接続ネットワークが、アクセスされること、および切り離されることが１回だけしか行われる必要がなく（すなわち、アクセス要求を受信すること、および応答メッセージを戻すこと）、ネットワークリソースを節約するようにする。
【００８４】
実施形態４
本発明のこの実施形態は、スイッチを提供する。フローテーブルが、スイッチにおいて設定される。フローテーブルは、少なくとも１つのフローエントリを含み、各フローエントリは、マッチングフィールドと、アクションフィールドとを含む。マッチングフィールドは、スイッチによって受信されたデータパケットにおける情報とマッチするのに使用され、アクションフィールドは、フローエントリがマッチされることに成功した場合、データパケットに対して実行されるべき操作を示すのに使用される。フローテーブルにおけるフローエントリは、通常、転送フローエントリを含む。転送フローエントリは、データパケットの転送出口を決定するのに使用される。フローテーブルにおけるフローエントリは、データパケット変更フローエントリをさらに含むことがある。データパケット変更フローエントリは、データパケットにおける情報を変更すること、例えば、データパケットにおけるヘッダフィールドを変更することを決定するのに使用される。さらに、ＳＲＡＭまたはＤＲＡＭなどのストレージデバイスが、スイッチにさらに組み込まれる。実施態様において、スイッチは、ＯＦＳであることがあり、またはマッチング機能を有する別のスイッチであることがある。
【００８５】
図６を参照すると、スイッチは、第１の受信モジュール４０１と、マッチングモジュール４０２と、操作モジュール４０３とを含む。
【００８６】
第１の受信モジュール４０１は、データパケットを受信するように構成され、データパケットは、送信元ノード情報と、宛先ノード情報と、プロトコルタイプとを含み、プロトコルタイプは、データパケットのタイプを示すのに使用される。マッチングモジュール４０２は、第１の受信モジュール４０１によって受信されたデータパケットに対してフローテーブルマッチングを実行するように構成され、フローテーブルは、少なくとも１つのフローエントリを含み、フローエントリは、マッチングフィールドと、アクションフィールドとを含み、かつ少なくとも１つのフローエントリは、第１のフローエントリを含み、第１のフローエントリのマッチングフィールドは、データパケットにおける送信元ノード情報、宛先ノード情報、およびプロトコルタイプとマッチするのに使用され、第１のフローエントリのアクションフィールドは、スイッチに組み込まれたストレージデバイスに関する操作コマンドを示すのに使用される。操作モジュール４０３は、データパケットが第１のフローエントリとマッチすることに成功した場合、マッチされることに成功した第１のフローエントリのアクションフィールドにおける操作コマンドによりストレージデバイスに対して操作を実行するように構成される。
【００８７】
送信元ノード情報は、送信元ノード識別子、送信元ノードＭＡＣアドレス、または類似したものであり得る。宛先ノード情報は、宛先ノード識別子、宛先ノードＭＡＣアドレス、または類似したものであり得る。プロトコルタイプは、読取り要求データパケット、書込み要求データパケット、または計算要求データパケットなどのデータパケットのタイプを示すのに使用される。
【００８８】
データパケットは、読取り／書込みアドレスなどの操作アドレスをさらに含むことがある。データパケットが書込みデータパケットである場合、データパケットは、書き込まれるべきデータをさらに含むことが理解されることがある。
【００８９】
この実施形態の実施態様様式において、操作モジュール４０３は、
第１のフローエントリにおける操作コマンドが読取り操作コマンドである場合、ストレージデバイスからデータを読み取るように構成された読取りユニットと、
読取りユニットによって読み取られたデータを、送信元ノード情報に対応するノードに戻すように構成された送信ユニットと、
第１のフローエントリにおける操作コマンドが書込み操作コマンドである場合、データパケットに入っているデータをストレージデバイスに書き込むように構成された書込みユニットとを含むことがある。
【００９０】
第１のフローエントリにおける操作コマンドは、読取り操作コマンドと、書込み操作コマンドとを含むが、以上には限定されない。第１のフローエントリのアクションフィールドにおける操作コマンドが、一般に、第１のフローエントリのマッチングフィールドにおけるプロトコルタイプと互いに対応することを知るのは容易である。例えば、第１のフローエントリのマッチングフィールドにおけるプロトコルタイプが、読取り要求データパケットを示すのに使用される場合、第１のフローエントリのアクションフィールドにおける操作コマンドは、スイッチに組み込まれたストレージデバイスに関する読取り操作コマンドである。
【００９１】
この実施形態において、スイッチにおけるフローエントリは、第２のフローエントリをさらに含み、第２のフローエントリのマッチングフィールドは、データパケットにおける送信元ノード情報、宛先ノード情報、およびプロトコルタイプとマッチするのに使用され、第２のフローエントリのアクションフィールドは、データパケットにおけるデータに対して計算処理を実行するための操作コマンドを示すのに使用される。計算処理は、ＣＲＣまたはＦＦＴを含むが、以上には限定されない。
【００９２】
実施態様において、フローエントリの機能により、様々なフローエントリ（第１のフローエントリ、転送フローエントリ、およびデータパケット変更フローエントリなどの）が、１つのフローテーブルにおいて構成されることがあり、または異なるフローエントリが、異なるフローテーブルにおいて構成されることがある。例えば、第１のフローエントリが、１つのフローテーブルにおいて構成され、転送フローエントリが、別のフローテーブルにおいて構成される。このことは、本発明のこの実施形態において限定されない。
【００９３】
様々なフローテーブルが、スイッチのＴＣＡＭまたはＲＬＤＲＡＭにおいて設定されることがある。
【００９４】
マッチングモジュール４０２が、スイッチによって受信されたデータパケットとスイッチにおける各フローエントリの間でマッチングを実行することがあることを知るのは容易である。
【００９５】
さらに、特定の実施態様において、スイッチにおけるフローテーブルが、スイッチのポートにより設定されることがある。例えば、スイッチの１つのポートが、フローテーブルのグループに対応することがある。フローテーブルの各グループは、１つのフローテーブルを含むことがあり（フローテーブルは、すべてのタイプのフローエントリを含む）、またはフローテーブルの各グループは、複数のフローテーブルを含むことがある（複数のフローテーブルは、異なるタイプのフローエントリを含む）。ポートにおいて受信されたデータパケットは、ポートに対応するフローテーブルに照らしてのみマッチされる。別の例において、フローテーブルの１つだけのグループが、スイッチにおいて構成されることがあり、すべてのポートにおいて受信されたデータパケットは、フローテーブルのグループに照らしてマッチされる。
【００９６】
対応するように、スイッチは、
データパケットが第２のフローエントリとマッチすることに成功した場合、マッチされることに成功した第２のフローエントリのアクションフィールドにおける操作コマンドによりデータパケットにおけるデータに対して計算処理を実行して、計算結果を獲得するように構成された処理モジュール４０４と、
処理モジュール４０４によって獲得された計算結果を、プロセッサなどの、データパケットにおける送信元ノード情報に対応するノードに送信するように構成された送信モジュール４０５とをさらに含むことがある。
【００９７】
実施態様において、計算モジュールがスイッチにおいて設定されることがあり、または特定の計算デバイスがスイッチに配置されることがある。スイッチは、データを特定の計算デバイスに送信し、計算デバイスによって戻される計算結果を受信する。
【００９８】
任意選択で、スイッチは、
コントローラによって送信されたフローテーブル構成メッセージを受信するように構成された第２の受信モジュール４０６であって、フローテーブル構成メッセージは、スイッチに関するフローエントリを構成するのに使用される、第２の受信モジュール４０６と、
第２の受信モジュール４０６によって受信されたフローテーブル構成メッセージによりフローエントリを構成するように構成された構成モジュール４０７とをさらに含むことがある。
【００９９】
本発明のこの実施形態において、ストレージデバイスがスイッチに組み込まれ、フローテーブルマッチングが、受信されたデータパケットに対して実行され、データパケットが、フローテーブルにおける第１のフローエントリとマッチすることに成功した場合、第１のフローエントリのアクションフィールドにおける操作コマンドにより、スイッチに組み込まれたストレージデバイスに対して操作が直接に実行されて、プロセッサが遠隔メモリにアクセスする可能性を低減するようにし、かつ解消するようにさえし、かつメモリアクセス遅延を低減するようにする。さらに、スイッチにおけるストレージデバイスは、データを別々に記憶するため、別のスイッチにおけるストレージデバイスにコピーは存在せず、キャッシュ一貫性を保持することに関する問題が存在しない。このことが、実施態様を簡略化する。さらに、第１のフローエントリがマッチされることに成功した場合、各スイッチが、スイッチ内のストレージデバイスに直接にアクセスするため、１つのアクセス要求に関して、相互接続ネットワークが、アクセスされること、および切り離されることが１回だけしか行われる必要がなく（すなわち、アクセス要求を受信すること、および応答メッセージを戻すこと）、ネットワークリソースを節約するようにする。さらに、この実施形態において、第２のフローエントリがスイッチにおいてさらに構成される。データパケットが第２のフローエントリとマッチされる場合、計算処理が、データパケットにおけるデータに対して実行されて、ネットワークハードウェア計算容量を強化するようにすることがある。
【０１００】
実施形態５
本発明のこの実施形態は、スイッチを提供する。図７を参照すると、スイッチは、プロセッサ５０１と、メモリ５０２と、バス５０３と、通信インターフェース５０４とを含む。メモリ５０２は、コンピュータ実行コマンドを記憶するのに使用される。プロセッサ５０１とメモリ５０２は、バス５０３を使用することによって接続される。コンピュータが実行する場合、プロセッサ５０１は、メモリ５０２に記憶されたコンピュータ実行コマンドを実行して、スイッチが、実施形態１または実施形態２におけるスイッチによって実行される方法を実行するようにする。
【０１０１】
スイッチは、組み込まれたストレージデバイスをさらに含み、組み込まれたストレージデバイスは、ＳＲＡＭ、ＤＲＡＭ、または類似したものであり得る。ストレージデバイスは、メモリ５０２であることがあり、またはメモリ５０２とは独立したストレージデバイスであることがある。
【０１０２】
特定の実施態様において、スイッチのハードウェア構造が図８に示されることがある。スイッチは、入力ポート６０１と、プロセッサ６０２と、組み込まれたストレージデバイス６０３と、メモリ６０４と、クロスバー（ＣｒｏｓｓＢａｒ）バス６０５と、出力ポート６０６とを含む。
【０１０３】
入力ポート６０１は、データパケットを受信するように構成され、データパケットは、送信元ノード情報と、宛先ノード情報と、プロトコルタイプとを含む。
【０１０４】
メモリ６０４は、フローテーブルを記憶するように構成される。フローテーブルは、少なくとも１つのフローエントリを含み、各フローエントリは、マッチングフィールドと、アクションフィールドとを含む。フローテーブルにおけるフローエントリは、通常、転送フローエントリを含む。転送フローエントリは、データパケットの転送出口を決定するのに使用される。フローテーブルにおけるフローエントリは、データパケット変更フローエントリをさらに含むことがある。データパケット変更フローエントリは、データパケットにおける情報を変更すること、例えば、データパケットにおけるヘッダフィールドを変更することを決定するのに使用される。
【０１０５】
本発明のこの実施形態において、フローエントリは、第１のフローエントリをさらに含み、第１のフローエントリのマッチングフィールドは、データパケットにおける送信元ノード情報、宛先ノード情報、およびプロトコルタイプとマッチするのに使用され、第１のフローエントリのアクションフィールドは、スイッチに組み込まれたストレージデバイスに関する操作コマンドを示すのに使用される。操作コマンドは、読取り操作コマンドと、書込み操作コマンドとを含むが、以上には限定されない。
【０１０６】
第１のフローエントリのアクションフィールドにおける操作コマンドが、一般に、第１のフローエントリのマッチングフィールドにおけるプロトコルタイプと互いに対応することを知るのは容易である。例えば、第１のフローエントリのマッチングフィールドにおけるプロトコルタイプが、読取り要求データパケットを示すのに使用される場合、第１のフローエントリのアクションフィールドにおける操作コマンドは、スイッチに組み込まれたストレージデバイスに関する読取り操作コマンドである。
【０１０７】
実施態様において、フローエントリの機能により、様々なフローエントリ（第１のフローエントリ、転送フローエントリ、およびデータパケット変更フローエントリなどの）が、１つのフローテーブルにおいて構成されることがあり、または異なるフローエントリが、異なるフローテーブルにおいて構成されることがある。
【０１０８】
プロセッサ６０２は、メモリ６０４におけるフローテーブルを使用することによって入力ポートにおいてデータパケットに対してフローテーブルマッチングを実行すること、およびデータパケットが、フローテーブルにおける第１のフローエントリとマッチすることに成功した場合、マッチされることに成功した第１のフローエントリのアクションフィールドにおける操作コマンドにより、組み込まれたストレージデバイス６０３に対して、読取り操作および書込み操作などの操作を実行することを行うように構成される。
【０１０９】
操作が完了された後、応答データパケットが、クロスバーバス６０５を使用することによって出力ポート６０６に出力され、次に、要求デバイスにフィードバックされる。
【０１１０】
プロセッサ６０２は、データパケットが第２のフローエントリとマッチすることに成功した場合、マッチされることに成功した第２のフローエントリのアクションフィールドにおける操作コマンドによりデータパケットにおけるデータに対して計算処理を実行して、計算結果を獲得すること、および計算結果を、クロスバーバス６０５および出力ポート６０６を使用することによって要求デバイスに送信することを行うようにさらに構成される。
【０１１１】
本発明のこの実施形態において、ストレージデバイスがスイッチに組み込まれ、フローテーブルマッチングが、受信されたデータパケットに対して実行され、データパケットが、フローテーブルにおける第１のフローエントリとマッチすることに成功した場合、第１のフローエントリのアクションフィールドにおける操作コマンドにより、スイッチに組み込まれたストレージデバイスに対して操作が直接に実行されて、プロセッサが遠隔メモリにアクセスする可能性を低減するようにし、かつ解消するようにさえし、かつメモリアクセス遅延を低減するようにする。さらに、スイッチにおけるストレージデバイスは、データを別々に記憶するため、別のスイッチにおけるストレージデバイスにコピーは存在せず、キャッシュ一貫性を保持することに関する問題が存在しない。このことが、実施態様を簡略化する。さらに、第１のフローエントリがマッチされることに成功した場合、各スイッチが、スイッチ内のストレージデバイスに直接にアクセスするため、１つのアクセス要求に関して、相互接続ネットワークが、アクセスされること、および切り離されることが１回だけしか行われる必要がなく（すなわち、アクセス要求を受信すること、および応答メッセージを戻すこと）、ネットワークリソースを節約するようにする。さらに、この実施形態において、第２のフローエントリがスイッチにおいてさらに構成される。データパケットが第２のフローエントリとマッチされる場合、計算処理が、データパケットにおけるデータに対して実行されて、ネットワークハードウェア計算容量を強化するようにすることがある。
【０１１２】
実施形態６
本発明のこの実施形態は、スイッチを提供する。図９を参照すると、スイッチは、入力ポート７０１と、メモリ７０２と、テーブルルックアップ論理回路７０３と、ストレージデバイス７０４と、操作論理回路７０５と、クロスバーバス７０６と、出力ポート７０７とを含む。
【０１１３】
入力ポート７０１は、データパケットを受信するように構成され、データパケットは、送信元ノード情報と、宛先ノード情報と、プロトコルタイプとを含む。
【０１１４】
メモリ７０２は、フローテーブルを記憶するように構成される。フローテーブルは、少なくとも１つのフローエントリを含み、各フローエントリは、マッチングフィールドと、アクションフィールドとを含む。フローテーブルにおけるフローエントリは、通常、転送フローエントリを含む。転送フローエントリは、データパケットの転送出口を決定するのに使用される。フローテーブルにおけるフローエントリは、データパケット変更フローエントリをさらに含むことがある。データパケット変更フローエントリは、データパケットにおける情報を変更すること、例えば、データパケットにおけるヘッダフィールドを変更することを決定するのに使用される。
【０１１５】
本発明のこの実施形態において、フローエントリは、第１のフローエントリをさらに含み、第１のフローエントリのマッチングフィールドは、データパケットにおける送信元ノード情報、宛先ノード情報、およびプロトコルタイプとマッチするのに使用され、第１のフローエントリのアクションフィールドは、スイッチに組み込まれたストレージデバイスに関する操作コマンドを示すのに使用される。操作コマンドは、読取り操作コマンドと、書込み操作コマンドとを含むが、以上には限定されない。
【０１１６】
第１のフローエントリのアクションフィールドにおける操作コマンドが、一般に、第１のフローエントリのマッチングフィールドにおけるプロトコルタイプと互いに対応することを知るのは容易である。例えば、第１のフローエントリのマッチングフィールドにおけるプロトコルタイプが、読取り要求データパケットを示すのに使用される場合、第１のフローエントリのアクションフィールドにおける操作コマンドは、スイッチに組み込まれたストレージデバイスに関する読取り操作コマンドである。
【０１１７】
実施態様において、フローエントリの機能により、様々なフローエントリ（第１のフローエントリ、転送フローエントリ、およびデータパケット変更フローエントリなどの）が、１つのフローテーブルにおいて構成されることがあり、または異なるフローエントリが、異なるフローテーブルにおいて構成されることがある。
【０１１８】
テーブルルックアップ論理回路７０３は、メモリ７０２におけるフローテーブルを使用することによって入力ポートにおいてデータパケットに対してフローテーブルマッチングを実行するように構成される。操作論理回路７０５は、マッチされることに成功した第１のフローエントリのアクションフィールドにおける操作コマンドにより、かつテーブルルックアップ論理回路７０３の出力結果により、組み込まれたストレージデバイス７０４に対して、読取り操作および書込み操作などの操作を実行するように構成される。
【０１１９】
操作が完了された後、応答データパケットが、クロスバーバス７０６を使用することによって出力ポート７０７に出力され、次に、要求デバイスにフィードバックされる。
【０１２０】
操作論理回路７０５は、データパケットが第２のフローエントリとマッチすることに成功した場合、マッチされることに成功した第２のフローエントリのアクションフィールドにおける操作コマンドによりデータパケットにおけるデータに対して計算処理を実行して、計算結果を獲得すること、および計算結果を、クロスバーバス７０６および出力ポート７０７を使用することによって要求デバイスに送信することを行うようにさらに構成される。
【０１２１】
メモリ７０２は、ＴＣＡＭまたはＲＬＤＲＡＭであり得る。ストレージデバイス７０４は、ＳＲＡＭ、ＤＲＡＭ、または類似したものであり得る。テーブルルックアップ論理回路７０３の特定の回路、および操作論理回路７０５の特定の回路は、当技術分野における従来の回路である。したがって、詳細な構造的説明は、本明細書において省略される。
【０１２２】
本発明のこの実施形態において、ストレージデバイスがスイッチに組み込まれ、フローテーブルマッチングが、受信されたデータパケットに対して実行され、データパケットが、フローテーブルにおける第１のフローエントリとマッチすることに成功した場合、第１のフローエントリのアクションフィールドにおける操作コマンドにより、スイッチに組み込まれたストレージデバイスに対して操作が直接に実行されて、プロセッサが遠隔メモリにアクセスする可能性を低減するようにし、かつ解消するようにさえし、かつメモリアクセス遅延を低減するようにする。さらに、スイッチにおけるストレージデバイスは、データを別々に記憶するため、別のスイッチにおけるストレージデバイスにコピーは存在せず、キャッシュ一貫性を保持することに関する問題が存在しない。このことが、実施態様を簡略化する。さらに、第１のフローエントリがマッチされることに成功した場合、各スイッチが、スイッチ内のストレージデバイスに直接にアクセスするため、１つのアクセス要求に関して、相互接続ネットワークが、アクセスされること、および切り離されることが１回だけしか行われる必要がなく（すなわち、アクセス要求を受信すること、および応答メッセージを戻すこと）、ネットワークリソースを節約するようにする。さらに、この実施形態において、第２のフローエントリがスイッチにおいてさらに構成される。データパケットが第２のフローエントリとマッチされる場合、計算処理が、データパケットにおけるデータに対して実行されて、ネットワークハードウェア計算容量を強化するようにすることがある。
【０１２３】
実施形態７
本発明のこの実施形態は、マルチプロセッサシステムを提供する。図１０を参照すると、システムは、複数のプロセッサ８０１と、相互接続ネットワーク８００とを含む。複数のプロセッサ８０１は、相互接続ネットワーク８００を使用することによって互いに通信可能に接続され、相互接続ネットワーク８００は、複数のスイッチ８０２を含む。スイッチ８０２は、実施形態４、５、または６において提供されるスイッチである。
【０１２４】
この実施形態の実施態様様式において、マルチプロセッサシステムは、複数の外部ストレージデバイス８０３をさらに含むことがある。複数の外部ストレージデバイス８０３は、相互接続ネットワーク８００を使用することによって複数のプロセッサ８０１に通信可能に接続される。
【０１２５】
この実施形態の別の実施態様様式において、マルチプロセッサシステムは、システムオンチップ（Ｓｙｓｅｍ  ｏｎ  Ｃｈｉｐ、略して、ＳＯＣ）であり得る。スイッチ８０２が独立した通信デバイスであり得ることを知るのは容易である。
【０１２６】
本発明のこの実施形態において、ストレージデバイスがスイッチに組み込まれ、フローテーブルマッチングが、受信されたデータパケットに対して実行され、データパケットが、フローテーブルにおける第１のフローエントリとマッチすることに成功した場合、第１のフローエントリのアクションフィールドにおける操作コマンドにより、スイッチに組み込まれたストレージデバイスに対して操作が直接に実行されて、プロセッサが遠隔メモリにアクセスする可能性を低減するようにし、かつ解消するようにさえし、かつメモリアクセス遅延を低減するようにする。さらに、スイッチにおけるストレージデバイスは、データを別々に記憶するため、別のスイッチにおけるストレージデバイスにコピーは存在せず、キャッシュ一貫性を保持することに関する問題が存在しない。このことが、実施態様を簡略化する。さらに、第１のフローエントリがマッチされることに成功した場合、各スイッチが、スイッチ内のストレージデバイスに直接にアクセスするため、１つのアクセス要求に関して、相互接続ネットワークが、アクセスされること、および切り離されることが１回だけしか行われる必要がなく（すなわち、アクセス要求を受信すること、および応答メッセージを戻すこと）、ネットワークリソースを節約するようにする。さらに、この実施形態において、第２のフローエントリがスイッチにおいてさらに構成される。データパケットが第２のフローエントリとマッチされる場合、計算処理が、データパケットにおけるデータに対して実行されて、ネットワークハードウェア計算容量を強化するようにすることがある。
【０１２７】
前述の実施形態において提供されるスイッチが、受信されたデータパケットによりメモリにアクセスする場合、前述の機能モジュールの分割が、例示のための例としてとられることに留意されたい。実際の適用において、前述の機能は、要件により異なる機能モジュールに割り当てられ、かつ実施されることができ、すなわち、装置の内部構造は、前述される機能のすべてまたは一部を実施するように異なる機能モジュールに分割される。さらに、前述の実施形態において提供されるスイッチとメモリ管理方法実施形態は、同一の概念に属する。スイッチの特定の実施プロセスに関して、方法実施形態を参照されたい。詳細が、本明細書において再び説明されることはない。
【０１２８】
本発明の前述の実施形態の順序番号は、例示目的であるに過ぎず、実施形態の優先順位を示すように意図されない。
【０１２９】
当業者は、実施形態のステップのすべてまたはいくつかが、ハードウェア、または関係付けられたハードウェアに命令するプログラムによって実施されることがあることを理解することがある。プログラムは、コンピュータ可読記憶媒体に記憶されることがある。記憶媒体は、読取り専用メモリ、磁気ディスク、または光ディスクを含むことがある。
【０１３０】
前述の説明は、本発明の例示的な実施形態に過ぎず、本発明を限定するようには意図されない。本発明の趣旨および原理を逸脱することなく行われる任意の変形、均等の置換、および改良が、本発明の保護範囲に入るものとする。
【図１】
0006514329.tif 000002
【図２】
0006514329.tif 000003
【図３】
0006514329.tif 000004
【図４】
0006514329.tif 000005
【図５】
0006514329.tif 000006
【図６】
0006514329.tif 000007
【図７】
0006514329.tif 000008
【図８】
0006514329.tif 000009
【図９】
0006514329.tif 000010
【図１０】
0006514329.tif 000011