(57)【特許請求の範囲】
【請求項１】
中央処理装置（CPU）と、クラウドコントローラとを含むコンピュータデバイスであり、前記クラウドコントローラは、送信キューモジュールと、応答キューモジュールと、ダブルデータレート（DDR）インタフェースと、ネットワークインタフェースとを含み、前記DDRインタフェースは、前記CPUを前記クラウドコントローラに接続するように構成され、前記ネットワークインタフェースは、前記クラウドコントローラをネットワークデバイスに接続するように構成されるコンピュータデバイスであって、
前記CPUは、前記ネットワークデバイス上で読み取り／書き込み操作を実行するための要求を生成した後に、前記読み取り／書き込み操作要求を制御コマンドに変換し、前記制御コマンドを前記送信キューモジュールに書き込むように構成され、前記制御コマンドは、前記クラウドコントローラに対して前記ネットワークデバイス上で読み取り操作又は書き込み操作を実行するように命令するために使用され、前記制御コマンドは、前記読み取り操作又は前記書き込み操作の操作情報を搬送し、
前記クラウドコントローラは、前記送信キューモジュール内の前記制御コマンドがトリガーされたときに、前記制御コマンド内の前記操作情報に従って前記ネットワークデバイス上で前記読み取り操作又は前記書き込み操作を実行し、前記ネットワークデバイスにより送信された応答メッセージを受信し、前記ネットワークデバイスにより送信された前記応答メッセージを前記応答キューモジュールに書き込むように構成されるコンピュータデバイス。
【請求項２】
前記読み取り／書き込み操作要求は、読み取り操作要求であり、
前記送信キューモジュールは、コマンド送信キューモジュールと、データ送信キューモジュールとを含み、
前記応答キューモジュールは、応答コマンドキューモジュールと、データ受信キューモジュールとを含み、
前記CPUは、前記読み取り操作要求を読み取り制御コマンドに変換し、前記読み取り制御コマンドを前記コマンド送信キューモジュールに書き込むように構成され、前記読み取り制御コマンドは、読み取り操作情報を搬送し、前記クラウドコントローラに対して前記読み取り操作情報に従って前記ネットワークデバイス上で読み取り操作を実行するように命令するために使用され、
前記クラウドコントローラは、前記コマンド送信キューモジュール内の前記読み取り制御コマンドがトリガーされたときに、前記読み取り制御コマンド内の前記読み取り操作情報に従って前記ネットワークデバイス上で前記読み取り操作を実行し、前記ネットワークデバイスにより送信された読み取り応答メッセージを受信し、前記ネットワークデバイスにより送信された前記読み取り応答メッセージを前記応答コマンドキューモジュールに書き込み、前記ネットワークデバイスにより返信され且つ前記読み取り操作を用いて読み取られるべきデータを前記データ受信キューモジュールに書き込むように構成される、請求項１に記載のコンピュータデバイス。
【請求項３】
前記読み取り操作情報は、前記読み取り操作を用いて読み取られるべき前記データの前記ネットワークデバイス内のアドレスと、前記読み取り操作を用いて読み取られるべき前記データの長さとを含むか、或いは
前記読み取り操作情報は、前記読み取り操作を用いて読み取られるべき前記データの前記ネットワークデバイス内のノードアドレス及びオフセットアドレスと、前記読み取り操作を用いて読み取られるべき前記データの長さとを含む、請求項２に記載のコンピュータデバイス。
【請求項４】
前記CPUは、前記読み取り制御コマンドを前記コマンド送信キューモジュールに書き込んだ後に、ポーリング方式で、前記ネットワークデバイスにより送信された前記読み取り応答メッセージが前記応答コマンドキューモジュールに存在するか否かを問い合わせ、前記ネットワークデバイスにより送信された前記読み取り応答メッセージが前記応答コマンドキューモジュールに存在すると前記CPUが決定し、前記読み取り応答メッセージが読み取り成功応答メッセージであるときに、前記データ受信キューモジュールから、前記読み取り操作を用いて読み取られるべき前記データを読み取るように更に構成される、請求項２又は３に記載のコンピュータデバイス。
【請求項５】
前記クラウドコントローラは、前記ネットワークデバイスにより送信された前記読み取り応答メッセージが前記応答コマンドキューモジュールに存在するか否かを決定し、前記ネットワークデバイスにより送信された前記読み取り応答メッセージが前記応答コマンドキューモジュールに存在するときに、中断を用いて前記CPUに通知するように更に構成され、
前記CPUは、前記クラウドコントローラにより送信された中断メッセージを受信し、前記中断メッセージに従って前記応答コマンドキューモジュールから前記読み取り応答メッセージを取得し、前記取得された読み取り応答メッセージが読み取り成功を示すときに、前記データ受信キューモジュールから、前記読み取り操作を用いて読み取られるべき前記データを読み取るように更に構成される、請求項２又は３に記載のコンピュータデバイス。
【請求項６】
前記読み取り／書き込み操作要求は、書き込み操作要求であり、
前記送信キューモジュールは、コマンド送信キューモジュールと、データ送信キューモジュールとを含み、
前記応答キューモジュールは、応答コマンドキューモジュールと、データ受信キューモジュールとを含み、
前記CPUは、前記書き込み操作要求を書き込み制御コマンドに変換し、前記書き込み制御コマンドを前記コマンド送信キューモジュールに書き込み、前記書き込み操作を用いて書き込まれるべきデータを前記データ送信キューモジュールに書き込むように構成され、前記書き込み制御コマンドは、書き込み操作情報を搬送し、前記クラウドコントローラに対して前記書き込み操作を用いて書き込まれるべき前記データを、前記書き込み操作情報に従って前記ネットワークデバイスに書き込むように命令するために使用され、
前記クラウドコントローラは、前記コマンド送信キューモジュール内の前記書き込み制御コマンドがトリガーされたときに、前記書き込み操作を用いて書き込まれるべき前記データを、前記書き込み制御コマンド内の前記書き込み操作情報に従って前記データ送信キューモジュールから抽出し、前記書き込み操作を用いて書き込まれるべき前記データを前記ネットワークデバイスに書き込み、前記ネットワークデバイスにより送信された書き込み応答メッセージを受信したときに、前記ネットワークデバイスにより送信された前記書き込み応答メッセージを前記応答コマンドキューモジュールに書き込むように構成される、請求項１に記載のコンピュータデバイス。
【請求項７】
前記書き込み操作情報は、前記ネットワークデバイスのアドレスと、前記書き込み操作を用いて書き込まれるべき前記データの長さと、前記書き込み操作を用いて書き込まれるべき前記データの前記データ送信キューモジュール内のアドレスとを含むか、或いは
前記書き込み操作情報は、前記ネットワークデバイスのノードアドレス及びオフセットアドレスと、前記書き込み操作を用いて書き込まれるべき前記データの長さと、前記書き込み操作を用いて書き込まれるべき前記データの前記データ送信キューモジュール内のアドレスとを含む、請求項６に記載のコンピュータデバイス。
【請求項８】
前記CPUは、前記書き込み制御コマンドを前記コマンド送信キューモジュールに書き込んだ後に、ポーリング方式で、前記ネットワークデバイスにより送信された前記書き込み応答メッセージが前記応答コマンドキューモジュールに存在するか否かを問い合わせ、前記ネットワークデバイスにより送信された前記書き込み応答メッセージが前記応答コマンドキューモジュールに存在すると前記CPUが決定したときに、前記書き込み応答メッセージを取得するように更に構成される、請求項６又は７に記載のコンピュータデバイス。
【請求項９】
前記クラウドコントローラは、前記ネットワークデバイスにより送信された前記書き込み応答メッセージが前記応答コマンドキューモジュールに存在するか否かを決定し、前記ネットワークデバイスにより送信された前記書き込み応答メッセージが前記応答コマンドキューモジュールに存在するときに、中断を用いて前記CPUに通知するように更に構成され、
前記CPUは、前記クラウドコントローラにより送信された中断メッセージを受信し、前記中断メッセージに従って前記応答コマンドキューモジュールから前記書き込み応答メッセージを取得するように更に構成される、請求項６又は７に記載のコンピュータデバイス。
【請求項１０】
コンピュータデバイスによりデータを読み取る／書き込むための方法であり、前記コンピュータデバイスは、中央処理装置（CPU）と、クラウドコントローラと、ネットワークインタフェースとを含み、前記CPUは、ダブルデータレート（DDR）インタフェースを使用することにより前記クラウドコントローラに接続され、前記ネットワークインタフェースは、前記クラウドコントローラをネットワークデバイスに接続するように構成される方法であって、
前記CPUにより、前記ネットワークデバイス上で読み取り／書き込み操作を実行するための要求を制御コマンドに変換し、前記制御コマンドを前記クラウドコントローラの送信キューモジュールに書き込むステップであり、前記制御コマンドは、前記クラウドコントローラに対して前記ネットワークデバイス上で読み取り操作又は書き込み操作を実行するように命令するために使用され、前記制御コマンドは、前記読み取り操作又は前記書き込み操作の操作情報を搬送するステップと、
前記クラウドコントローラにより、前記送信キューモジュール内の前記制御コマンドがトリガーされたときに、前記制御コマンド内の前記操作情報に従って前記ネットワークデバイス上で前記読み取り操作又は前記書き込み操作を実行し、前記ネットワークデバイスにより送信された応答メッセージを受信したときに、前記ネットワークデバイスにより送信された前記応答メッセージを前記クラウドコントローラの応答キューモジュールに書き込むステップと
を含む方法。
【請求項１１】
前記読み取り／書き込み操作要求は、読み取り操作要求であり、
対応して、前記CPUにより、前記ネットワークデバイス上で読み取り／書き込み操作を実行するための要求を制御コマンドに変換し、前記制御コマンドを前記クラウドコントローラの送信キューモジュールに書き込むステップは、
前記CPUにより、前記読み取り操作要求を読み取り制御コマンドに変換し、前記読み取り制御コマンドを前記送信キューモジュールのコマンド送信キューモジュールに書き込むステップであり、前記読み取り制御コマンドは、読み取り操作情報を搬送し、前記クラウドコントローラに対して前記読み取り操作情報に従って前記ネットワークデバイス上で読み取り操作を実行するように命令するために使用されるステップを含み、
前記クラウドコントローラにより、前記制御コマンド内の前記操作情報に従って前記ネットワークデバイス上で前記読み取り操作又は前記書き込み操作を実行し、前記ネットワークデバイスにより送信された応答メッセージを受信したときに、前記ネットワークデバイスにより送信された前記応答メッセージを前記クラウドコントローラの応答キューモジュールに書き込むステップは、
前記クラウドコントローラにより、前記コマンド送信キューモジュール内の前記読み取り制御コマンドがトリガーされたときに、前記読み取り制御コマンド内の前記読み取り操作情報に従って前記ネットワークデバイス上で前記読み取り操作を実行し、前記ネットワークデバイスにより送信された読み取り応答メッセージを受信し、前記ネットワークデバイスにより送信された前記読み取り応答メッセージを前記応答キューモジュールの応答コマンドキューモジュールに書き込み、前記ネットワークデバイスにより返信され且つ前記読み取り操作を用いて読み取られるべきデータを前記応答キューモジュールのデータ受信キューモジュールに書き込むステップを含む、請求項１０に記載の方法。
【請求項１２】
前記読み取り操作情報は、前記読み取り操作を用いて読み取られるべき前記データの前記ネットワークデバイス内のアドレスと、前記読み取り操作を用いて読み取られるべき前記データの長さとを含むか、或いは
前記読み取り操作情報は、前記読み取り操作を用いて読み取られるべき前記データの前記ネットワークデバイス内のノードアドレス及びオフセットアドレスと、前記読み取り操作を用いて読み取られるべき前記データの長さとを含む、請求項１１に記載の方法。
【請求項１３】
前記読み取り制御コマンドを前記コマンド送信キューモジュールに書き込んだ後に、前記CPUにより、ポーリング方式で、前記ネットワークデバイスにより送信された前記読み取り応答メッセージが前記応答コマンドキューモジュールに存在するか否かを問い合わせ、前記ネットワークデバイスにより送信された前記読み取り応答メッセージが前記応答コマンドキューモジュールに存在すると前記CPUが決定し、前記読み取り応答メッセージが読み取り成功応答メッセージであるときに、前記データ受信キューモジュールから、前記読み取り操作を用いて読み取られるべき前記データを読み取るステップを更に含む、請求項１１又は１２に記載の方法。
【請求項１４】
前記クラウドコントローラにより、前記ネットワークデバイスにより送信された前記読み取り応答メッセージが前記応答コマンドキューモジュールに存在するか否かを決定し、前記ネットワークデバイスにより送信された前記読み取り応答メッセージが前記応答コマンドキューモジュールに存在するときに、中断を用いて前記CPUに通知するステップと、
前記CPUにより、前記クラウドコントローラにより送信された中断メッセージを受信し、前記中断メッセージに従って前記応答コマンドキューモジュールから前記読み取り応答メッセージを取得し、前記取得された読み取り応答メッセージが読み取り成功を示すときに、前記データ受信キューモジュールから、前記読み取り操作を用いて読み取られるべき前記データを読み取るステップと
を更に含む、請求項１１又は１２に記載の方法。
【請求項１５】
前記読み取り／書き込み操作要求は、書き込み操作要求であり、
対応して、前記CPUにより、前記ネットワークデバイス上で読み取り／書き込み操作を実行するための要求を制御コマンドに変換し、前記制御コマンドを前記クラウドコントローラの送信キューモジュールに書き込むステップは、
前記CPUにより、前記書き込み操作要求を書き込み制御コマンドに変換し、前記書き込み制御コマンドを前記送信キューモジュールのコマンド送信キューモジュールに書き込み、前記書き込み操作を用いて書き込まれるべきデータを前記送信キューモジュールのデータ送信キューモジュールに書き込むステップであり、前記書き込み制御コマンドは、書き込み操作情報を搬送し、前記クラウドコントローラに対して前記書き込み操作を用いて書き込まれるべき前記データを、前記書き込み操作情報に従って前記ネットワークデバイスに書き込むように命令するために使用されるステップを含み、
前記クラウドコントローラにより、前記制御コマンド内の前記操作情報に従って前記ネットワークデバイス上で前記読み取り操作又は前記書き込み操作を実行し、前記ネットワークデバイスにより送信された応答メッセージを受信したときに、前記ネットワークデバイスにより送信された前記応答メッセージを前記クラウドコントローラの応答キューモジュールに書き込むステップは、
前記コマンド送信キューモジュール内の前記書き込み制御コマンドがトリガーされたときに、前記クラウドコントローラにより、前記書き込み操作を用いて書き込まれるべき前記データを、前記書き込み制御コマンド内の前記書き込み操作情報に従って前記データ送信キューモジュールから抽出し、前記書き込み操作を用いて書き込まれるべき前記データを前記ネットワークデバイスに書き込み、前記ネットワークデバイスにより送信された書き込み応答メッセージを受信したときに、前記ネットワークデバイスにより送信された前記書き込み応答メッセージを前記応答キューモジュールの応答コマンドキューモジュールに書き込むステップを含む、請求項１０に記載の方法。
【請求項１６】
前記書き込み操作情報は、前記ネットワークデバイスのアドレスと、前記書き込み操作を用いて書き込まれるべき前記データの長さと、前記書き込み操作を用いて書き込まれるべき前記データの前記データ送信キューモジュール内のアドレスとを含むか、或いは
前記書き込み操作情報は、前記ネットワークデバイスのノードアドレス及びオフセットアドレスと、前記書き込み操作を用いて書き込まれるべき前記データの長さと、前記書き込み操作を用いて書き込まれるべき前記データの前記データ送信キューモジュール内のアドレスとを含む、請求項１５に記載の方法。
【請求項１７】
前記書き込み制御コマンドを前記コマンド送信キューモジュールに書き込んだ後に、前記CPUにより、ポーリング方式で、前記ネットワークデバイスにより送信された前記書き込み応答メッセージが前記応答コマンドキューモジュールに存在するか否かを問い合わせ、前記ネットワークデバイスにより送信された前記書き込み応答メッセージが前記応答コマンドキューモジュールに存在すると前記CPUが決定したときに、前記書き込み応答メッセージを取得するステップを更に含む、請求項１５又は１６に記載の方法。
【請求項１８】
前記クラウドコントローラにより、前記ネットワークデバイスにより送信された前記書き込み応答メッセージが前記応答コマンドキューモジュールに存在するか否かを決定し、前記ネットワークデバイスにより送信された前記書き込み応答メッセージが前記応答コマンドキューモジュールに存在するときに、中断を用いて前記CPUに通知するステップと、
前記CPUにより、前記クラウドコントローラにより送信された中断メッセージを受信し、前記中断メッセージに従って前記応答コマンドキューモジュールから前記書き込み応答メッセージを取得するステップと
を更に含む、請求項１５又は１６に記載の方法。
【請求項１９】
記録したプログラムを有するコンピュータ読み取り可能記憶媒体であって、
前記プログラムは、コンピュータに請求項１０乃至１８のうちいずれか１項に記載の方法を実行させるコンピュータ読み取り可能記憶媒体。
【請求項２０】
コンピュータに請求項１０乃至１８のうちいずれか１項に記載の方法を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報技術の分野に関し、特にコンピュータデバイス及びコンピュータデバイスによりデータを読み取る／書き込むための方法に関する。
【背景技術】
【０００２】
データセンタの発展及びビッグデータの時代の接近により、データセンタアーキテクチャは、密に結合されたサイロ型（siloed）サーバアーキテクチャから仮想化技術中心のアーキテクチャに発展してきている。ビッグデータの現在の時代に適合するために、既存のデータセンタは、将来のビッグデータ処理における一連の課題に直面しており、課題は、Pビット／秒のリアルタイムデータ処理、オンデマンドの動的リソース割り当て及び調整、大規模システムのエネルギー効率の改善等を含む。この場合、リソースプール化、ハードウェアデカップリング及びシリコンフォトニック相互接続のような特性を備えた高スループットのコンピュータデータセンタが出現する。
【０００３】
高スループットのコンピュータデータセンタのアーキテクチャでは、メモリリソース、入力／出力リソース等のリソースプール化が実現される。高スループットのコンピューティングノードは、リソースを動的に割り当てて調整し、システムエネルギー効率を改善するために、ネットワークを使用することによりメモリリソースプール又は入力／出力リソースプールに接続される。リソースプール化のため、ハードウェアデカップリングは、相互接続技術、例えば、シリコンフォトニック相互接続を最も重要な技術になるようにする。現在のデータセンタレベルの相互接続技術は、イーサーネット相互接続技術に主に依存する。しかし、複雑且つ肥大化したプロトコルスタック並びにイーサーネット自体の極めて高い相互接続遅延のため、相互接続技術は、高速で且つ高容量のデータ交換についてのデータセンタの要件をあまり満たすことができなくなってきている一方で、高帯域幅及び低遅延を提供することができる簡略化されたリソースプール化中心の相互接続及びアクセスプロトコル（PRAP、Pooled Resource Access Protocol）は、低遅延についての高スループットのコンピュータデータセンタの要件を満たすことができる。
【０００４】
構築された高スループットのコンピュータをデカップリングするための現在の方法では、クラウドコントローラ（Cloud  Controller）が相互接続のための主要なモジュールとして使用され、PRAP相互接続プロトコルがコンピューティングプール、リモートストレージ（memory）リソースプール、入力／出力（I/O）リソースプール等を接続するために使用され、ダブルデータレート（DDR、Double  Data  Rate）インタフェースが中央処理装置CPUに接続するために使用される。しかし、リモートメモリリソースプール又は入力／出力リソースプール内のデータが読み取られる必要があるときに、ネットワーク遅延のため、クラウドコントローラは、指定された時間内にDDRインタフェースにおいて要求されたデータを返信することができない。したがって、高スループットのコンピュータのCPUがネットワークを使用することによりリモートメモリリソースプール又は入力／出力リソースプールにアクセスするときに、CPUの中断が引き起こされ、高いアクセス遅延、及びCPUが中断の間に他の操作を実行することができないため、システムの全体性能が影響を受けるという問題をもたらす。
【発明の概要】
【０００５】
本発明の実施例は、コンピュータデバイスのCPUがリモートデータを読み取る／書き込むときに高い遅延が引き起こされるため、システム性能が影響を受けるという従来技術の問題を解決するための、コンピュータデバイス及びコンピュータデバイスによりデータを読み取る／書き込むための方法を提供する。
【０００６】
前述の目的を達成するために、本発明の実施例の第１の態様は、中央処理装置CPUと、クラウドコントローラとを含むコンピュータデバイスを提供し、クラウドコントローラは、送信キューモジュールと、応答キューモジュールと、ダブルデータレートDDRインタフェースと、ネットワークインタフェースとを含み、DDRインタフェースは、CPUをクラウドコントローラに接続するように構成され、ネットワークインタフェースは、クラウドコントローラをネットワークデバイスに接続するように構成され、
CPUは、ネットワークデバイス上で読み取り／書き込み操作を実行するための要求を生成した後に、読み取り／書き込み操作要求を制御コマンドに変換し、制御コマンドを送信キューモジュールに書き込むように構成され、制御コマンドは、クラウドコントローラに対してネットワークデバイス上で読み取り操作又は書き込み操作を実行するように命令するために使用され、制御コマンドは、読み取り操作又は書き込み操作の操作情報を搬送し、
クラウドコントローラは、送信キューモジュール内の制御コマンドがトリガーされたときに、制御コマンド内の操作情報に従ってネットワークデバイス上で読み取り操作又は書き込み操作を実行し、ネットワークデバイスにより送信された応答メッセージを受信し、ネットワークデバイスにより送信された応答メッセージを応答キューモジュールに書き込むように構成される。
【０００７】
第１の態様を参照して、本発明の実施例の第１の態様の第１の可能な実現では、読み取り／書き込み操作要求は、読み取り操作要求であり、
送信キューモジュールは、コマンド送信キューモジュールと、データ送信キューモジュールとを含み、
応答キューモジュールは、応答コマンドキューモジュールと、データ受信キューモジュールとを含み、
CPUは、読み取り操作要求を読み取り制御コマンドに変換し、読み取り制御コマンドをコマンド送信キューモジュールに書き込むように具体的に構成され、読み取り制御コマンドは、読み取り操作情報を搬送し、クラウドコントローラに対して読み取り操作情報に従ってネットワークデバイス上で読み取り操作を実行するように命令するために使用され、
クラウドコントローラは、コマンド送信キューモジュール内の読み取り制御コマンドがトリガーされたときに、読み取り制御コマンド内の読み取り操作情報に従ってネットワークデバイス上で読み取り操作を実行し、ネットワークデバイスにより送信された読み取り応答メッセージを受信し、ネットワークデバイスにより送信された読み取り応答メッセージを応答コマンドキューモジュールに書き込み、ネットワークデバイスにより返信され且つ読み取り操作を用いて読み取られるべきデータをデータ受信キューモジュールに書き込むように具体的に構成される。
【０００８】
本発明の実施例の第１の態様の第１の可能な実現を参照して、本発明の実施例の第１の態様の第２の可能な実現では、読み取り操作情報は、読み取り操作を用いて読み取られるべきデータのネットワークデバイス内のアドレスと、読み取り操作を用いて読み取られるべきデータの長さとを含むか、或いは
読み取り操作情報は、読み取り操作を用いて読み取られるべきデータのネットワークデバイス内のノードアドレス及びオフセットアドレスと、読み取り操作を用いて読み取られるべきデータの長さとを含む。
【０００９】
本発明の実施例の第１の態様の第１の可能な実現又は第２の可能な実現を参照して、本発明の実施例の第１の態様の第３の可能な実現では、
CPUは、読み取り制御コマンドをコマンド送信キューモジュールに書き込んだ後に、ポーリング方式で、ネットワークデバイスにより送信された読み取り応答メッセージが応答コマンドキューモジュールに存在するか否かを問い合わせ、ネットワークデバイスにより送信された読み取り応答メッセージが応答コマンドキューモジュールに存在するとCPUが決定し、読み取り応答メッセージが読み取り成功応答メッセージであるときに、データ受信キューモジュールから、読み取り操作を用いて読み取られるべきデータを読み取るように更に構成される。
【００１０】
本発明の実施例の第１の態様の第１の可能な実現又は第２の可能な実現を参照して、本発明の実施例の第１の態様の第４の可能な実現では、
クラウドコントローラは、ネットワークデバイスにより送信された読み取り応答メッセージが応答コマンドキューモジュールに存在するか否かを決定し、ネットワークデバイスにより送信された読み取り応答メッセージが応答コマンドキューモジュールに存在するときに、中断を用いてCPUに通知するように更に構成され、
CPUは、クラウドコントローラにより送信された中断メッセージを受信し、中断メッセージに従って応答コマンドキューモジュールから読み取り応答メッセージを取得し、取得された読み取り応答メッセージが読み取り成功を示すときに、データ受信キューモジュールから、読み取り操作を用いて読み取られるべきデータを読み取るように更に構成される。
【００１１】
本発明の実施例の第１の態様を参照して、本発明の実施例の第１の態様の第５の可能な実現では、
読み取り／書き込み操作要求は、書き込み操作要求であり、
送信キューモジュールは、コマンド送信キューモジュールと、データ送信キューモジュールとを含み、
応答キューモジュールは、応答コマンドキューモジュールと、データ受信キューモジュールとを含み、
CPUは、書き込み操作要求を書き込み制御コマンドに変換し、書き込み制御コマンドをコマンド送信キューモジュールに書き込み、書き込み操作を用いて書き込まれるべきデータをデータ送信キューモジュールに書き込むように具体的に構成され、書き込み制御コマンドは、書き込み操作情報を搬送し、クラウドコントローラに対して書き込み操作を用いて書き込まれるべきデータを、書き込み操作情報に従ってネットワークデバイスに書き込むように命令するために使用され、
クラウドコントローラは、コマンド送信キューモジュール内の書き込み制御コマンドがトリガーされたときに、書き込み操作を用いて書き込まれるべきデータを、書き込み制御コマンド内の書き込み操作情報に従ってデータ送信キューモジュールから抽出し、書き込み操作を用いて書き込まれるべきデータをネットワークデバイスに書き込み、ネットワークデバイスにより送信された書き込み応答メッセージを受信したときに、ネットワークデバイスにより送信された書き込み応答メッセージを応答コマンドキューモジュールに書き込むように具体的に構成される。
【００１２】
本発明の実施例の第１の態様の第５の可能な実現を参照して、本発明の実施例の第１の態様の第６の可能な実現では、
書き込み操作情報は、ネットワークデバイスのアドレスと、書き込み操作を用いて書き込まれるべきデータの長さと、書き込み操作を用いて書き込まれるべきデータのデータ送信キューモジュール内のアドレスとを含むか、或いは
書き込み操作情報は、ネットワークデバイスのノードアドレス及びオフセットアドレスと、書き込み操作を用いて書き込まれるべきデータの長さと、書き込み操作を用いて書き込まれるべきデータのデータ送信キューモジュール内のアドレスとを含む。
【００１３】
本発明の実施例の第１の態様の第５の可能な実現又は第６の可能な実現を参照して、本発明の実施例の第１の態様の第７の可能な実現では、
CPUは、書き込み制御コマンドをコマンド送信キューモジュールに書き込んだ後に、ポーリング方式で、ネットワークデバイスにより送信された書き込み応答メッセージが応答コマンドキューモジュールに存在するか否かを問い合わせ、ネットワークデバイスにより送信された書き込み応答メッセージが応答コマンドキューモジュールに存在するとCPUが決定したときに、書き込み応答メッセージを取得するように更に構成される。
【００１４】
本発明の実施例の第１の態様の第５の可能な実現又は第６の可能な実現を参照して、本発明の実施例の第１の態様の第８の可能な実現では、
クラウドコントローラは、ネットワークデバイスにより送信された書き込み応答メッセージが応答コマンドキューモジュールに存在するか否かを決定し、ネットワークデバイスにより送信された書き込み応答メッセージが応答コマンドキューモジュールに存在するときに、中断を用いてCPUに通知するように更に構成され、
CPUは、クラウドコントローラにより送信された中断メッセージを受信し、中断メッセージに従って応答コマンドキューモジュールから書き込み応答メッセージを取得するように更に構成される。
【００１５】
本発明の実施例の第２の態様は、コンピュータデバイスによりデータを読み取る／書き込むための方法を更に提供し、コンピュータデバイスは、中央処理装置CPUと、クラウドコントローラと、ネットワークインタフェースとを含み、CPUは、ダブルデータレートDDRインタフェースを使用することによりクラウドコントローラに接続され、ネットワークインタフェースは、クラウドコントローラをネットワークデバイスに接続するように構成され、この方法は、
CPUにより、ネットワークデバイス上で読み取り／書き込み操作を実行するための要求を制御コマンドに変換し、制御コマンドをクラウドコントローラの送信キューモジュールに書き込むステップであり、制御コマンドは、クラウドコントローラに対してネットワークデバイス上で読み取り操作又は書き込み操作を実行するように命令するために使用され、制御コマンドは、読み取り操作又は書き込み操作の操作情報を搬送するステップと、
クラウドコントローラにより、送信キューモジュール内の制御コマンドがトリガーされたときに、制御コマンド内の操作情報に従ってネットワークデバイス上で読み取り操作又は書き込み操作を実行し、ネットワークデバイスにより送信された応答メッセージを受信したときに、ネットワークデバイスにより送信された応答メッセージをクラウドコントローラの応答キューモジュールに書き込むステップとを含む。
【００１６】
第２の態様を参照して、本発明の実施例の第２の態様の第１の可能な実現では、
読み取り／書き込み操作要求は、読み取り操作要求であり、
対応して、CPUにより、ネットワークデバイス上で読み取り／書き込み操作を実行するための要求を制御コマンドに変換し、制御コマンドをクラウドコントローラの送信キューモジュールに書き込むステップは、
CPUにより、読み取り操作要求を読み取り制御コマンドに変換し、読み取り制御コマンドを送信キューモジュールのコマンド送信キューモジュールに書き込むステップであり、読み取り制御コマンドは、読み取り操作情報を搬送し、クラウドコントローラに対して読み取り操作情報に従ってネットワークデバイス上で読み取り操作を実行するように命令するために使用されるステップを含み、
クラウドコントローラにより、制御コマンド内の操作情報に従ってネットワークデバイス上で読み取り操作又は書き込み操作を実行し、ネットワークデバイスにより送信された応答メッセージを受信したときに、ネットワークデバイスにより送信された応答メッセージをクラウドコントローラの応答キューモジュールに書き込むステップは、
クラウドコントローラにより、コマンド送信キューモジュール内の読み取り制御コマンドがトリガーされたときに、読み取り制御コマンド内の読み取り操作情報に従ってネットワークデバイス上で読み取り操作を実行し、ネットワークデバイスにより送信された読み取り応答メッセージを受信し、ネットワークデバイスにより送信された読み取り応答メッセージを応答キューモジュールの応答コマンドキューモジュールに書き込み、ネットワークデバイスにより返信され且つ読み取り操作を用いて読み取られるべきデータを応答キューモジュールのデータ受信キューモジュールに書き込むステップを含む。
【００１７】
本発明の実施例の第２の態様の第１の可能な実現を参照して、本発明の実施例の第２の態様の第２の可能な実現では、
読み取り操作情報は、読み取り操作を用いて読み取られるべきデータのネットワークデバイス内のアドレスと、読み取り操作を用いて読み取られるべきデータの長さとを含むか、或いは
読み取り操作情報は、読み取り操作を用いて読み取られるべきデータのネットワークデバイス内のノードアドレス及びオフセットアドレスと、読み取り操作を用いて読み取られるべきデータの長さとを含む。
【００１８】
本発明の実施例の第２の態様の第１の可能な実現又は第２の可能な実現を参照して、本発明の実施例の第２の態様の第３の可能な実現では、
読み取り制御コマンドをコマンド送信キューモジュールに書き込んだ後に、CPUにより、ポーリング方式で、ネットワークデバイスにより送信された読み取り応答メッセージが応答コマンドキューモジュールに存在するか否かを問い合わせ、ネットワークデバイスにより送信された読み取り応答メッセージが応答コマンドキューモジュールに存在するとCPUが決定し、読み取り応答メッセージが読み取り成功応答メッセージであるときに、データ受信キューモジュールから、読み取り操作を用いて読み取られるべきデータを読み取る。
【００１９】
本発明の実施例の第２の態様の第１の可能な実現又は第２の可能な実現を参照して、本発明の実施例の第２の態様の第４の可能な実現では、
クラウドコントローラにより、ネットワークデバイスにより送信された読み取り応答メッセージが応答コマンドキューモジュールに存在するか否かを決定し、ネットワークデバイスにより送信された読み取り応答メッセージが応答コマンドキューモジュールに存在するときに、中断を用いてCPUに通知し、
CPUにより、クラウドコントローラにより送信された中断メッセージを受信し、中断メッセージに従って応答コマンドキューモジュールから読み取り応答メッセージを取得し、取得された読み取り応答メッセージが読み取り成功を示すときに、データ受信キューモジュールから、読み取り操作を用いて読み取られるべきデータを読み取る。
【００２０】
本発明の実施例の第２の態様を参照して、本発明の実施例の第２の態様の第５の可能な実現では、
読み取り／書き込み操作要求は、書き込み操作要求であり、
対応して、CPUにより、ネットワークデバイス上で読み取り／書き込み操作を実行するための要求を制御コマンドに変換し、制御コマンドをクラウドコントローラの送信キューモジュールに書き込むステップは、
CPUにより、書き込み操作要求を書き込み制御コマンドに変換し、書き込み制御コマンドを送信キューモジュールのコマンド送信キューモジュールに書き込み、書き込み操作を用いて書き込まれるべきデータを送信キューモジュールのデータ送信キューモジュールに書き込むステップであり、書き込み制御コマンドは、書き込み操作情報を搬送し、クラウドコントローラに対して書き込み操作を用いて書き込まれるべきデータを、書き込み操作情報に従ってネットワークデバイスに書き込むように命令するために使用されるステップを含み、
クラウドコントローラにより、制御コマンド内の操作情報に従ってネットワークデバイス上で読み取り操作又は書き込み操作を実行し、ネットワークデバイスにより送信された応答メッセージを受信したときに、ネットワークデバイスにより送信された応答メッセージをクラウドコントローラの応答キューモジュールに書き込むステップは、
コマンド送信キューモジュール内の書き込み制御コマンドがトリガーされたときに、クラウドコントローラにより、書き込み操作を用いて書き込まれるべきデータを、書き込み制御コマンド内の書き込み操作情報に従ってデータ送信キューモジュールから抽出し、書き込み操作を用いて書き込まれるべきデータをネットワークデバイスに書き込み、ネットワークデバイスにより送信された書き込み応答メッセージを受信したときに、ネットワークデバイスにより送信された書き込み応答メッセージを応答キューモジュールの応答コマンドキューモジュールに書き込むステップを含む。
【００２１】
本発明の実施例の第２の態様の第５の可能な実現を参照して、本発明の実施例の第２の態様の第６の可能な実現では、
書き込み操作情報は、ネットワークデバイスのアドレスと、書き込み操作を用いて書き込まれるべきデータの長さと、書き込み操作を用いて書き込まれるべきデータのデータ送信キューモジュール内のアドレスとを含むか、或いは
書き込み操作情報は、ネットワークデバイスのノードアドレス及びオフセットアドレスと、書き込み操作を用いて書き込まれるべきデータの長さと、書き込み操作を用いて書き込まれるべきデータのデータ送信キューモジュール内のアドレスとを含む。
【００２２】
本発明の実施例の第２の態様の第５の可能な実現又は第６の可能な実現を参照して、本発明の実施例の第２の態様の第７の可能な実現では、この方法は、
書き込み制御コマンドをコマンド送信キューモジュールに書き込んだ後に、CPUにより、ポーリング方式で、ネットワークデバイスにより送信された書き込み応答メッセージが応答コマンドキューモジュールに存在するか否かを問い合わせ、ネットワークデバイスにより送信された書き込み応答メッセージが応答コマンドキューモジュールに存在するとCPUが決定したときに、書き込み応答メッセージを取得するステップを更に含む。
【００２３】
本発明の実施例の第２の態様の第５の可能な実現又は第６の可能な実現を参照して、本発明の実施例の第２の態様の第８の可能な実現では、この方法は、
クラウドコントローラにより、ネットワークデバイスにより送信された書き込み応答メッセージが応答コマンドキューモジュールに存在するか否かを決定し、ネットワークデバイスにより送信された書き込み応答メッセージが応答コマンドキューモジュールに存在するときに、中断を用いてCPUに通知するステップと、
CPUにより、クラウドコントローラにより送信された中断メッセージを受信し、中断メッセージに従って応答コマンドキューモジュールから書き込み応答メッセージを取得するステップとを更に含む。
【００２４】
本発明の実施例において提供されるコンピュータデバイス及びコンピュータデバイスによりデータを読み取る／書き込むための方法によれば、コンピュータデバイスのCPUは、DDRインタフェースを使用することによりクラウドコントローラに接続され、DDRインタフェースが高いデータ送信レートを有するため、中断が回避される。さらに、CPUは、読み取り／書き込み操作要求を制御コマンドに変換し、制御コマンドをクラウドコントローラの送信キューモジュールに書き込む。クラウドコントローラは、制御コマンド内の操作情報に従ってネットワークデバイス上で読み取り操作又は書き込み操作を実行するため、制御コマンドを送信キューモジュールに書き込んだ後に、CPUは、クラウドコントローラにより実行される操作を待機する必要はなく、他のサービス処理を実行し続けることができ、例えば、他の制御コマンドを書き込み続けることができる。これは、CPUリソースの浪費を回避し、CPU利用率及びシステムの全体性能を改善する。
【図面の簡単な説明】
【００２５】
以下に、本発明の実施例における添付図面を参照して、本発明の実施例における技術的解決策について明確且つ完全に説明する。明らかに、説明する実施例は、本発明の実施例の単なる一部であり、全部ではない。創造的取り組みなしに本発明の実施例に基づいて当業者により取得される全ての他の実施例は、本発明の保護範囲内に入るものとする。
【図１】従来技術における高スループットのコンピュータデータセンタの具体的な実現の概略アーキテクチャ図である。
【図２】本発明の実施例によるコンピュータデバイスの概略構成図である。
【図３】本発明の実施例によるコンピュータデバイスの具体的な実現の概略構成図である。
【図４】本発明の実施例によるコンピュータデバイスによりリモートデータを読み取る／書き込む概略構成図である。
【図５】本発明の実施例によるコンピュータデバイスによりデータを読み取る／書き込むための方法の概略フローチャートである。
【発明を実施するための形態】
【００２６】
以下に、本発明の実施例における添付図面を参照して、本発明の実施例における技術的解決策について明確且つ完全に説明する。明らかに、説明する実施例は、本発明の実施例の全部ではなく、一部である。創造的取り組みなしに本発明の実施例に基づいて当業者により取得される全ての他の実施例は、本発明の保護範囲内に入るものとする。
【００２７】
図１は、従来技術における高スループットのコンピュータデータセンタの具体的な実現の概略アーキテクチャ図である。コンピュータデバイスは、中央処理装置と、メモリと、クラウドコントローラとを含む。クラウドコントローラは、ネットワークを使用することによりリモートリソースプールに接続される。リモートリソースプールは、記憶リソース、入力／出力リソース等を含む。記憶リソース、例えば、ダイナミックランダムアクセスメモリ（DRAM、Dynamic  Random  Access  Memory）及び不揮発性メモリ（NVM、Non-Volatile  Memory）は、記憶リソースプールを形成する。入力／出力リソース、例えば、ネットワークアダプタ及びペリフェラル・コンポーネント・インターコネクト・エクスプレスPCIeインタフェースは、入力／出力リソースプールを形成する。図１は、高スループットのコンピュータデータセンタの構成図の例を単に示しているに過ぎない点に留意すべきである。具体的な実現の間に、他のハードウェアリソース（例えば、バス）、他のリソースプール（例えば、コンピューティングリソースプール）等が更に含まれてもよい。さらに、コンピュータデバイスにおいて、複数の中央処理装置及び複数のメモリがコンピューティングリソースプール等を形成してもよい。さらに、図１に示すリソースプール内のリソースの数量は一例として使用される。具体的な実現の間に、少なくとも２つのリソースが含まれてもよく、例えば、メモリリソースプールは、少なくとも２つのメモリを含んでもよい。
【００２８】
図１に示す例では、ローカルメモリ（例えば、DDRインタフェースを使用したダイナミックランダムアクセスメモリDRAM）に加えて、コンピュータデバイス内のCPUもまた、システムにより割り当てられたリモート記憶空間を有する。各物理記憶空間は、グローバルアドレス空間にマッピングされる。アドレス空間のマッピング関係は、各CPUに対応するクラウドコントローラのドライバに記憶される。例えば、CPU1は、合計で10GBのローカルメモリと、100GBのリモート記憶リソース（すなわち、ネットワークを使用することにより接続され且つアクセスできる記憶リソースプール内の記憶空間）とを有する。CPU1が記憶空間A及び記憶空間Bを含むリモート記憶リソースプールにアクセスすることができ、記憶空間A及び記憶空間Bがそれぞれ50GBの容量を有する記憶リソースであると仮定すると、CPU1は、合計で110GBの記憶空間、すなわち、ローカルメモリ内の0〜10GBの記憶空間及びリモート記憶リソースプール内の10GB〜110GBの記憶空間にアクセスすることができる。
【００２９】
CPU1がローカルメモリにアクセスするときに、ネットワーク送信が必要ないため、データは、指定の時間内にアクセスされることができる。しかし、データがローカルメモリにないが、リモート記憶リソースプール、例えば、記憶空間A又は記憶空間Bにあるときに、クラウドコントローラ1は、ネットワークを使用することにより、リモート記憶リソースプールにアクセスすることによってのみ、データを読み取ることができる。ネットワーク送信が必要であるため、クラウドコントローラ1は、指定の時間内に要求されたデータをDDRインタフェースにおいてCPU1に返信することができない。したがって、CPU1により配信されたデータ読み取り要求を受信した後に、クラウドコントローラ1は、要求をパックし、データを取得するために、ネットワークを使用することにより要求を記憶リソースプールに送信し、ECCエラー又はPAGEエラーをCPU1に返信する。クラウドコントローラ1により送信されたエラー情報を受信したときに、CPU1は、現在のメモリアクセスを中断し、対応するアクセススレッドを一時停止する。記憶リソースプールから送信されたデータを受信した後に、クラウドコントローラ1は、CPU1に通知するための中断信号を生成する。CPU1は、受信した中断信号に従って且つメモリ読み取り要求を再送信することによってのみ、読み取られる必要のあるデータを取得することができる。データは、この時点でクラウドコントローラ1の記憶空間に書き込まれているため、CPU1は、指定の時間内にDDRインタフェースにおいてデータを取得することができる。したがって、CPU1によりアクセスされる必要のあるデータがクラウドコントローラ1内にないときに、CPU1は、１つの中断操作及び２つの読み取り操作を実行する必要がある。その結果、高いアクセス遅延が引き起こされ、CPU1が中断の間に他の操作を実行することができないため、システムの全体性能が影響を受ける。
【００３０】
前述の高スループットのコンピュータデータセンタ内のCPUがローカルリソースにないデータにアクセスするときにネットワーク遅延により引き起こされる過度に高いアクセス遅延及び低いシステム性能の問題を解決するために、本発明の実施例は、コンピュータデバイス10を提供する。図２に示すように、コンピュータデバイス10は、中央処理装置CPU100と、クラウドコントローラ200とを含む。クラウドコントローラ200は、送信キューモジュール201と、応答キューモジュール202と、ダブルデータレートDDRインタフェース203と、ネットワークインタフェース204とを含む。DDRインタフェース203は、CPU100をクラウドコントローラ200に接続するように構成され、ネットワークインタフェース204は、クラウドコントローラ200をネットワークデバイスに接続するように構成される。
【００３１】
CPU100は、ネットワークデバイス上で読み取り／書き込み操作を実行するための要求を生成した後に、読み取り／書き込み操作要求を制御コマンドに変換し、制御コマンドを送信キューモジュール201に書き込むように構成される。制御コマンドは、クラウドコントローラ200に対してネットワークデバイス上で読み取り操作又は書き込み操作を実行するように命令するために使用され、制御コマンドは、読み取り操作又は書き込み操作の操作情報を搬送する。
【００３２】
クラウドコントローラ200は、送信キューモジュール201内の制御コマンドがトリガーされたときに、制御コマンド内の操作情報に従ってネットワークデバイス上で読み取り操作又は書き込み操作を実行し、ネットワークデバイスにより送信された応答メッセージを受信し、ネットワークデバイスにより送信された応答メッセージを応答キューモジュール202に書き込むように構成される。
【００３３】
本発明のこの実施例では、ネットワークインタフェース204を使用することによりコンピュータデバイス10に接続されたネットワークデバイスは、ネットワークを使用することによりコンピュータデバイス10に接続されたデバイスである。CPU100がネットワークデバイス内のデータにアクセスする必要があるときに、クラウドコントローラ200は、ネットワークを使用することにより、データ読み取り／書き込みメッセージをネットワークデバイスに送信する必要があり、ネットワークを使用することにより、ネットワークデバイスにより返信された応答メッセージ又はデータを受信する。CPU100は、DDRインタフェース203を使用することによりクラウドコントローラ200に接続され、DDRインタフェース203が高いデータ送信レートを有するため、中断が回避される。さらに、CPU100は、読み取り／書き込み操作要求を制御コマンドに変換し、制御コマンドをクラウドコントローラ200の送信キューモジュール201に書き込む。クラウドコントローラ200は、制御コマンド内の操作情報に従ってネットワークデバイス上で読み取り操作又は書き込み操作を実行するため、制御コマンドを送信キューモジュール201に書き込んだ後に、CPU100は、クラウドコントローラ200により実行される操作を待機する必要はなく、他のサービス処理を実行し続けることができ、例えば、他の制御コマンドを書き込み続けることができる。これは、CPU100リソースの浪費を回避し、CPU100利用率及びコンピュータデバイスの全体性能を改善する。
【００３４】
具体的な実現の間に、クラウドコントローラ200の送信キューモジュール201及び応答キューモジュール202は、レジスタ又はメモリのようなハードウェアにより実現されてもよく、ハードウェアインタフェースを使用することによりDDRインタフェース等に接続される。例えば、送信キューモジュール201は、レジスタのようなハードウェアを使用することにより、CPU100により書き込まれた制御コマンドを記憶し、応答キューモジュール202は、レジスタのようなハードウェアを使用することにより、応答メッセージを記憶する。さらに、送信キューモジュール201及び応答キューモジュール202は、キュー形式のような順序付き配列方式で関係するコマンド又はメッセージを記憶し、これにより、クラウドコントローラ200は、キュー形式でコマンドを読み取り、或いは応答メッセージを書き込むことができる。本発明のこの実施例では、送信キューモジュール201内の制御コマンドがトリガーされることは、制御コマンドが送信キューモジュール201に書き込まれたときに、クラウドコントローラ200が送信キューモジュール201から制御コマンドを抽出して制御コマンドを実行するようにトリガーされることでもよい。具体的には、クラウドコントローラ200の制御ユニット又は制御モジュールは、送信キューモジュール201から制御コマンドを抽出して制御コマンドを実行してもよい。クラウドコントローラ200の制御ユニット又は制御モジュールもまた、ハードウェア制御コンポーネントであり、インタフェースを使用することにより送信キューモジュール201、応答キューモジュール202又はネットワークインタフェース204に接続される。
【００３５】
図３に示すように、読み取り／書き込み操作要求が読み取り操作要求であるときに、
送信キューモジュール201は、コマンド送信キューモジュール2011と、データ送信キューモジュール2012とを含み、
応答キューモジュール202は、応答コマンドキューモジュール2021と、データ受信キューモジュール2022とを含み、
CPU100は、読み取り操作要求を読み取り制御コマンドに変換し、読み取り制御コマンドをコマンド送信キューモジュール2011に書き込むように具体的に構成され、読み取り制御コマンドは、読み取り操作情報を搬送し、クラウドコントローラ200に対して読み取り操作情報に従ってネットワークデバイス上で読み取り操作を実行するように命令するために使用され、
クラウドコントローラ200は、コマンド送信キューモジュール2011内の読み取り制御コマンドがトリガーされたときに、読み取り制御コマンド内の読み取り操作情報に従ってネットワークデバイス上で読み取り操作を実行し、ネットワークデバイスにより送信された読み取り応答メッセージを受信し、ネットワークデバイスにより送信された読み取り応答メッセージを応答コマンドキューモジュール2021に書き込み、ネットワークデバイスにより返信され且つ読み取り操作を用いて読み取られるべきデータをデータ受信キューモジュール2022に書き込むように具体的に構成される。
【００３６】
具体的には、読み取り操作要求を読み取り制御コマンドに変換し、読み取り制御コマンドをコマンド送信キューモジュール2011に書き込むことは、CPU100内で実行するドライバにより実現される。
【００３７】
コマンド送信キューモジュール2011内の読み取り制御コマンドがトリガーされることは、読み取り制御コマンドがコマンド送信キューモジュール2011に書き込まれたときに、クラウドコントローラがコマンド送信キューモジュール2011から読み取り制御コマンドを抽出するようにトリガーされることでもよい。具体的な実現の間に、クラウドコントローラの制御ユニット又は制御モジュールは、読み取り制御コマンドがコマンド送信キューモジュール2011に書き込まれたときにコマンド送信キューモジュール2011から読み取り制御コマンドを抽出し、読み取り制御コマンドを実行してもよい。
【００３８】
読み取り操作情報は、読み取り操作を用いて読み取られるべきデータのネットワークデバイス内のアドレスと、読み取り操作を用いて読み取られるべきデータの長さとを含んでもよく、或いは
読み取り操作情報は、読み取り操作を用いて読み取られるべきデータのネットワークデバイス内のノードアドレス及びオフセットアドレスと、読み取り操作を用いて読み取られるべきデータの長さとを含む。
【００３９】
任意選択で、クラウドコントローラ200により、読み取り制御コマンド内の読み取り操作情報に従ってネットワークデバイス上で読み取り操作を実行することは、読み取り操作を用いて読み取られるべきデータのネットワークデバイス内のアドレスと、読み取り操作を用いて読み取られるべきデータの長さとを使用することにより、通信パケットを生成し、ネットワークを使用することにより通信パケットをネットワークデバイスに送信すること、又はクラウドコントローラ200により、読み取り操作を用いて読み取られるべきデータのネットワークデバイス内のノードアドレス及びオフセットアドレスと、読み取り操作を用いて読み取られるべきデータの長さとを使用することにより、通信パケットを生成し、ネットワークを使用することにより通信パケットをネットワークデバイスに送信することを含んでもよい。具体的には、通信パケットは、PRAPデータパケットでもよい。
【００４０】
読み取り操作要求を読み取り制御コマンドに変換し、読み取り制御コマンドをコマンド送信キューモジュール2011に書き込んだ後に、CPU100は、他の操作を実行してもよく、例えば、他の読み取り制御コマンド又は書き込み制御コマンドを書き続けてもよい。クラウドコントローラ200は、読み取り制御コマンドがコマンド送信キューモジュール2011に書き込まれたときに、コマンド送信キューモジュール2011から読み取り制御コマンドを抽出し、読み取り制御コマンドを実行し、読み取り制御コマンドを実行した結果を応答コマンドキューモジュール2021に書き込み、読み取られたデータを取得したときに、読み取られたデータをデータ受信キューモジュール2022に書き込んでもよい。このように、読み取り操作要求は、CPU100により読み取り制御コマンドを書き込み、クラウドコントローラ200により読み取り制御コマンドを実行する２つの処理に変換される。CPU100は、クラウドコントローラ200により読み取り操作を実行した結果を待機する必要なく、他のタスクを実行することができ、読み取り操作応答コマンドが応答コマンドキューモジュール2021に書き込まれたときに読み取り操作結果を取得する必要があるのみである。これは、CPU100が過度に長い時間読み取り操作結果を待機するために引き起こされる中断を回避し、CPU100のリソース利用率及びシステムの全体性能を改善する。
【００４１】
本発明のこの実施例では、CPU100は、ポーリング方式で問い合わせることにより、或いは中断を用いて通知されることにより、読み取り操作結果を取得してもよい。例えば、読み取り制御コマンドをコマンド送信キューモジュールに書き込んだ後に、CPU100は、ポーリング方式で、ネットワークデバイスにより送信された読み取り応答メッセージが応答コマンドキューモジュール2021に存在するか否かを問い合わせ、すなわち、予め設定された時間間隔に従って、ネットワークデバイスにより送信された読み取り応答メッセージが応答コマンドキューモジュール2021に存在するか否かを繰り返し問い合わせる。ネットワークデバイスにより送信された読み取り応答メッセージが応答コマンドキューモジュール2021に存在すると決定したときに、CPU100は、応答コマンドキューモジュール2021内の応答メッセージを取得する。読み取り応答メッセージが読み取り成功応答メッセージであるときに、CPU100は、データ受信キューモジュール2022から、読み取り操作を用いて読み取られるべきデータを読み取る。
【００４２】
中断を用いて通知されることにより、読み取り操作結果を取得することは、クラウドコントローラ200により、ネットワークデバイスにより送信された読み取り応答メッセージが応答コマンドキューモジュール2021に存在するか否かを決定し、ネットワークデバイスにより送信された読み取り応答メッセージが応答コマンドキューモジュール2021に存在するときに、中断を用いてCPU100に通知することを含む。具体的には、応答コマンドキューモジュール2021は、読み取り応答メッセージが応答コマンドキューモジュール2021に書き込まれたときに、中断を用いてCPU100に通知してもよい。
【００４３】
CPU100は、クラウドコントローラ200により送信された中断メッセージを受信し、中断メッセージに従って応答コマンドキューモジュール2021から読み取り応答メッセージを取得し、取得された読み取り応答メッセージが読み取り成功を示すときに、データ受信キューモジュール2022から、読み取り操作を用いて読み取られるべきデータを読み取る。
【００４４】
具体的な実現の間に、CPU100は、ポーリングに基づく問い合わせ方式又は中断に基づく通知方式をクラウドコントローラ200のレジスタに書き込んでもよい。クラウドコントローラ200は、レジスタから、CPU100により書き込まれた情報を取得する。ポーリングに基づく問い合わせ方式がレジスタに書き込まれた場合、CPU100は、ポーリング方式で、応答コマンドキューモジュール2021に積極的に問い合わせ、中断に基づく通知方式がレジスタに書き込まれた場合、クラウドコントローラ200は、読み取り応答メッセージが応答コマンドキューモジュール2021に書き込まれたときに、中断を用いてCPU100に通知する。
【００４５】
図３に示すように、読み取り／書き込み操作要求が書き込み操作要求であるときに、
送信キューモジュール201は、コマンド送信キューモジュール2011と、データ送信キューモジュール2012とを含み、
応答キューモジュール202は、応答コマンドキューモジュール2021と、データ受信キューモジュール2022とを含み、
CPU100は、書き込み操作要求を書き込み制御コマンドに変換し、書き込み制御コマンドをコマンド送信キューモジュール2011に書き込み、書き込み操作を用いて書き込まれるべきデータをデータ送信キューモジュール2012に書き込むように具体的に構成され、書き込み制御コマンドは、書き込み操作情報を搬送し、クラウドコントローラ200に対して書き込み操作を用いて書き込まれるべきデータを、書き込み操作情報に従ってネットワークデバイスに書き込むように命令するために使用され、
クラウドコントローラ200は、コマンド送信キューモジュール2011内の書き込み制御コマンドがトリガーされたときに、書き込み操作を用いて書き込まれるべきデータを、書き込み制御コマンド内の書き込み操作情報に従ってデータ送信キューモジュール2012から抽出し、書き込み操作を用いて書き込まれるべきデータをネットワークデバイスに書き込み、ネットワークデバイスにより送信された書き込み応答メッセージを受信したときに、ネットワークデバイスにより送信された書き込み応答メッセージを応答コマンドキューモジュール2021に書き込むように具体的に構成される。
【００４６】
具体的には、書き込み操作要求を書き込み制御コマンドに変換し、書き込み制御コマンドをコマンド送信キューモジュール2011に書き込むことは、CPU100内で実行するドライバにより実現される。
【００４７】
コマンド送信キューモジュール2011内の書き込み制御コマンドがトリガーされることは、書き込み制御コマンドがコマンド送信キューモジュール2011に書き込まれたときに、クラウドコントローラがコマンド送信キューモジュール2011から書き込み制御コマンドを抽出するようにトリガーされることでもよい。具体的な実現の間に、クラウドコントローラの制御ユニット又は制御モジュールは、書き込み制御コマンドがコマンド送信キューモジュール2011に書き込まれたときにコマンド送信キューモジュール2011から書き込み制御コマンドを抽出し、書き込み制御コマンドを実行してもよい。
【００４８】
具体的な実現では、書き込み操作情報は、ネットワークデバイスのアドレスと、書き込み操作を用いて書き込まれるべきデータの長さと、書き込み操作を用いて書き込まれるべきデータのデータ送信キューモジュール内のアドレスとを含むか、或いは
書き込み操作情報は、ネットワークデバイスのノードアドレス及びオフセットアドレスと、書き込み操作を用いて書き込まれるべきデータの長さと、書き込み操作を用いて書き込まれるべきデータのデータ送信キューモジュール内のアドレスとを含む。
【００４９】
任意選択で、クラウドコントローラ200により、書き込み操作を用いて書き込まれるべきデータを、書き込み制御コマンド内の書き込み操作情報に従ってデータ送信キューモジュール2012から抽出し、書き込み操作を用いて書き込まれるべきデータをネットワークデバイスに書き込むことは、書き込み操作を用いて書き込まれるべきデータと、ネットワークデバイスのアドレスと、書き込み操作を用いて書き込まれるべきデータの長さとを使用することにより、通信パケットを生成し、ネットワークを使用することにより通信パケットをネットワークデバイスに送信すること、又はクラウドコントローラ200により、書き込み操作を用いて書き込まれるべきデータと、ネットワークデバイスのノードアドレス及びオフセットアドレスと、書き込み操作を用いて書き込まれるべきデータの長さとを使用することにより、通信パケットを生成し、ネットワークを使用することにより通信パケットをネットワークデバイスに送信することを含んでもよい。具体的には、通信パケットは、PRAPデータパケットでもよい。
【００５０】
書き込み操作要求を書き込み制御コマンドに変換し、書き込み制御コマンドをコマンド送信キューモジュール2011に書き込んだ後に、CPU100は、他の操作を実行してもよく、例えば、他の読み取り制御コマンド又は書き込み制御コマンドを書き続けてもよい。クラウドコントローラ200は、書き込み制御コマンドがコマンド送信キューモジュール2011に書き込まれたときに、コマンド送信キューモジュール2011から書き込み制御コマンドを抽出し、書き込み制御コマンドを実行し、書き込み制御コマンドを実行した結果を応答コマンドキューモジュール2021に書き込んでもよい。このように、書き込み操作要求は、書き込み制御コマンドをクラウドコントローラのコマンド送信キューモジュール2011に書き込み、クラウドコントローラ200により書き込み制御コマンドを実行する２つの処理に変換される。CPU100は、クラウドコントローラ200により書き込み操作を実行した結果を待機する必要なく、他のタスクを実行することができ、書き込み操作応答コマンドが応答コマンドキューモジュール2021に書き込まれたときに書き込み操作結果を取得する必要があるのみである。これは、CPU100が過度に長い時間書き込み操作結果を待機するために引き起こされる中断を回避し、CPU100のリソース利用率及びコンピュータデバイスの全体性能を改善する。
【００５１】
本発明のこの実施例では、CPU100は、ポーリング方式で問い合わせることにより、或いは中断を用いて通知されることにより、書き込み操作結果を更に取得してもよい。例えば、書き込み制御コマンドをコマンド送信キューモジュールに書き込んだ後に、CPU100は、ポーリング方式で、ネットワークデバイスにより送信された書き込み応答メッセージが応答コマンドキューモジュール2021に存在するか否かを問い合わせ、すなわち、予め設定された時間間隔に従って、ネットワークデバイスにより送信された書き込み応答メッセージが応答コマンドキューモジュール2021に存在するか否かを繰り返し問い合わせる。ネットワークデバイスにより送信された書き込み応答メッセージが応答コマンドキューモジュール2021に存在すると決定したときに、CPU100は、書き込み応答メッセージを取得する。
【００５２】
中断を用いて通知されることにより書き込み操作結果を取得することは、クラウドコントローラ200により、ネットワークデバイスにより送信された書き込み応答メッセージが応答コマンドキューモジュール2021に存在するか否かを決定し、ネットワークデバイスにより送信された書き込み応答メッセージが応答コマンドキューモジュール2021に存在するときに、中断を用いてCPU100に通知することを含む。具体的には、クラウドコントローラ200は、書き込み応答メッセージが応答コマンドキューモジュール2021に書き込まれたときに、中断を用いてCPU100に通知してもよい。CPU100は、クラウドコントローラ200により送信された中断メッセージを受信し、中断メッセージに従って応答コマンドキューモジュール2021から書き込み応答メッセージを取得するように更に構成される。
【００５３】
前述の実施例では、コマンド送信キューモジュール2011、データ送信キューモジュール2012、応答コマンドキューモジュール2021及びデータ受信キューモジュール2022は、レジスタ又はメモリのようなハードウェアにより実現されてもよく、ハードウェアインタフェースを使用することによりDDRインタフェース等に接続される。さらに、コマンド送信キューモジュール2011及び応答コマンドキューモジュール2021は、キュー形式のような順序付き配列方式で関係するコマンド又はメッセージを記憶し、データ送信キューモジュール2012及びデータ受信キューモジュール2022は、キュー形式のような順序付き配列方式で関係するデータを記憶し、これにより、クラウドコントローラ200は、キュー形式で読み取り又は書き込みを実行することができる。具体的には、クラウドコントローラ200の制御ユニット又は制御モジュールは、コマンド送信キューモジュール2011又は応答コマンドキューモジュール2021から制御コマンドを抽出し、制御コマンドを実行し、データ送信キューモジュール2012からデータを読み取るか或いはデータをデータ受信キューモジュール2022に書き込んでもよい。クラウドコントローラ200の制御ユニット又は制御モジュールもまた、ハードウェア制御コンポーネントであり、インタフェースを使用することによりコマンド送信キューモジュール2011、データ送信キューモジュール2012、応答コマンドキューモジュール2021、データ受信キューモジュール2022及びネットワークインタフェース204に接続される。
【００５４】
任意選択の実現では、コンピュータデバイス10は、メモリを更に含み、CPU100は、データ受信キューモジュール2022から読み取り対象のデータを取得し、読み取り対象のデータをメモリに書き込む。例えば、読み取り対象のデータは、ダイレクトメモリアクセス（DMA、Direct  Memory  Access）方式でメモリに書き込まれてもよい。CPU100により、書き込み操作を用いて書き込まれるべきデータをデータ送信キューモジュール2012に書き込むことは、メモリコントローラ（MC、Memory  Controller）のDMAコントローラを構成することにより、書き込み操作を用いて書き込まれるべきメモリ内のデータをデータ送信キューモジュール2012に書き込むことである。
【００５５】
本発明のこの実施例では、ネットワークデバイスは、ネットワークを使用することによりコンピュータデバイスに接続されたデバイスであり、記憶リソースを提供するデバイス又は入力／出力リソースを提供するデバイスを含む。任意選択で、記憶リソースを提供するデバイスは、メモリリソースを提供するデバイスを含む。
【００５６】
前述の実施例におけるコンピュータデバイス10は、高スループットのコンピュータデータセンタに適用されてもよく、データ処理のための高スループットのコンピュータとして使用される。コンピュータデバイス10がデータ処理のための高スループットのコンピュータとして使用されるときに、コンピュータデバイス10は、少なくとも２つのCPUと、少なくとも２つのメモリとを含んでもよい。少なくとも２つのCPUは、CPUリソースプールを形成し、高スループットのコンピュータデータセンタ内のデータを別々に処理する。
【００５７】
前述の実施例のDDRインタフェースは、現在、CPUとメモリとの間でデータを読み取る／書き込むための高速インタフェースである点に留意すべきである。データを高速に読み取る／書き込むために、DDRは、CPU100とクラウドコントローラ200との間で使用され、これにより、CPUによりデータを高速に取得する要件を満たす。しかし、本発明のこの実施例では、CPUとクラウドコントローラとの間で使用されるインタフェースの具体的な形式に限定は課されない。データを高速に読み取る／書き込むために使用されることができ且つCPUによりデータを高速に読み取る／書き込む要件を満たすことができる他のインタフェース、例えば、読み取り／書き込みレートがCPUとメモリとの間の読み取り／書き込みレートと等しいか、或いは同様であるインタフェースが、CPUとクラウドコントローラとの間のインタフェースとして使用されることができる。
【００５８】
以下は、本発明の実施例によるコンピュータデバイスによるリモートデータを読み取る／書き込む方式の概略構成図を説明するための具体的な例を使用する。図４に示すように、ローカルメモリ（例えば、DDRインタフェースを使用したDRAM）に加えて、CPUリソースプール内のCPU1はまた、システムにより割り当てられたリモート記憶空間（記憶空間A及び記憶空間B）を有する。各物理記憶空間は、グローバルアドレス空間にマッピングされる。アドレス空間のマッピング関係は、各CPUに対応するクラウドコントローラのドライバに記憶される。この実施例では、リモート記憶空間が記憶空間A及び記憶空間Bのみを含む例を使用することにより、説明が提供される。具体的な実現の間に、２つ以上の記憶空間が含まれてもよい。例えば、CPU1は、合計で10GBのローカルメモリと、100GBのリモート記憶リソースとを有し、CPU1は、記憶空間A及び記憶空間Bを含むリモート記憶リソースプールにアクセスすることができ、記憶空間A及び記憶空間Bは、それぞれ50GBの容量を有する記憶空間である。この場合、CPU1は、合計で110GBの記憶空間、すなわち、ローカルメモリ内の0〜10GBの記憶空間及びリモート記憶リソースプール内の10GB〜110GBの記憶空間にアクセスすることができる。
【００５９】
CPU1がローカルメモリにアクセスするときに、0GB〜10GBのアドレス空間がアクセスされる場合、アドレス空間は、ローカルメモリにマッピングされ、ローカルメモリは、DDRインタフェースを使用することによりアクセスされる。
【００６０】
CPU1が10GB〜110GBのアドレス空間にアクセスし、例えば、1MBのデータが10GB〜110GBのアドレス空間に書き込まれる必要があるときに、以下のステップが含まれる。
【００６１】
ステップ1.CPU1のドライバは、まず、書き込まれる必要のある1MBのデータをクラウドコントローラ1のデータ送信キューモジュールに書き込む。データがデータ送信キューモジュール内の5KBのアドレスに記憶されていることが仮定される。
【００６２】
ステップ2.CPU1のドライバは、記憶リソースプール内で、1MBのデータが書き込まれるアドレスを取得する。アドレスが第100GBのアドレスであると仮定すると、アドレスは、記憶空間B内の40GBのアドレスにマッピングされる。記憶空間Aにマッピングされるアドレス範囲は10GB〜60GBであるため、記憶空間Bにマッピングされるアドレス範囲は、60GB〜110GBである。
【００６３】
ステップ3.CPU1のドライバは、リモート記憶空間Bのアドレス情報と、記憶空間Bの40GBのオフセットアドレスと、データ送信キュー内の5KBのアドレスと、1MBのデータ長の情報と、現在のコマンドの識別子ID（例えば、0x01）と、他の情報とをクラウドコントローラ1のコマンド送信キューモジュールに書き込む。CPU1のドライバは、コマンドを特定のレジスタに書き込むことにより、コマンドをクラウドコントローラ1のコマンド送信キューモジュールに書き込んでもよい。
【００６４】
ステップ4.クラウドコントローラ1は、コマンド送信キューモジュールが空でないことを見出した後に、コマンド送信キューモジュールから新たなコマンド（すなわち、1MBのデータを書き込むコマンド）を取得し、リモート記憶空間Bのアドレスと、記憶空間Bのオフセットアドレスと、コマンド識別子IDと、データ長と、他の情報とを取得するために、コマンドを解析し、通信パケットを生成するために、コマンド送信キューモジュール内の1MBのデータのデータ送信キューモジュール内のアドレスに従ってデータ送信キューモジュールから対応するデータを取得し、ネットワークを使用することにより通信パケットを記憶空間Bに送信する。この場合、CPU1が他の書き込み操作を更に実行する必要がある場合、CPU1のドライバは、前述のステップを繰り返し実行し、対応するデータ及び対応するコマンドをクラウドコントローラ1に書き込み続けてもよい。
【００６５】
ステップ5.1MBのデータが記憶空間Bに書き込まれた後に、データ書き込みが完了したことを示すパケット（対応するコマンド識別子ID:0x01を搬送する）を返信する。CPU1のクラウドコントローラ1が返信されたパケットを受信した後に、CPU1のクラウドコントローラ1は、書き込みコマンドが完了したという情報を応答コマンドキューモジュールに書き込む。CPU1のドライバは、応答コマンドキューモジュールに問い合わせることにより、識別子が0x01である書き込み完了操作を取得するか、或いは応答コマンドキューモジュールは、中断を用いて、識別子が0x01である書き込み完了操作が受信されたことをCPU1に通知し、CPU1は、第100GBのアドレス内の1MBのデータを書き込む書き込み操作が完了したことを習得する。
【００６６】
CPU1が10GB〜110GBのアドレス空間にアクセスし、例えば、1MBのデータが10GB〜110GBのアドレス空間から読み取られる必要があるときに、以下のステップが含まれる。
【００６７】
ステップ1.CPU1のドライバは、記憶リソースプール内の読み取り対象のデータのアドレスを取得する。アドレスが100GBのアドレスであると仮定すると、アドレスは、ノードB上の40GBのアドレスにマッピングされる。
【００６８】
ステップ2.CPU1のドライバは、記憶空間Bのアドレス情報と、記憶空間B内の読み取り対象のデータの40GBのオフセットアドレスと、1MBのデータ長の情報と、現在のコマンドの識別子ID（例えば、0x02）と、他の情報とをクラウドコントローラ1のコマンド送信キューモジュールに書き込む。CPU1のドライバは、1MBのデータを読み取るコマンドを特定のレジスタに書き込むことにより、1MBのデータを読み取るコマンドをクラウドコントローラ1のコマンド送信キューモジュールに書き込んでもよい。
【００６９】
ステップ3.コマンド送信キューが空でないことを見出した後に、クラウドコントローラ1は、コマンド送信キューモジュールから1MBのデータを読み取るコマンドを取得し、リモート記憶空間Bのアドレス情報と、記憶空間B内の1MBのデータのオフセットアドレスと、コマンド識別子IDと、データ長と、他の情報とを取得して通信パケットを生成するために、コマンドを解析し、ネットワークを使用することにより通信パケットを記憶空間Bに送信する。CPU1が他の読み取り又は書き込み操作を更に実行する必要がある場合、CPU1は、前述のステップを繰り返し実行してもよいが、異なるコマンド識別子が異なるコマンドを表すために使用される必要がある。
【００７０】
ステップ4.リモート記憶空間Bから対応するデータを読み取った後に、クラウドコントローラ1は、返信されたデータをデータ受信キューモジュールに記憶し、コマンド識別子ID0x02と、データ受信キュー内のアドレス情報（10KB）と、1MBのデータ長と、他の情報とを応答コマンドキューモジュールに書き込む。
【００７１】
ステップ5.CPU1のドライバは、ポーリング方式で、応答コマンドキューモジュールの状態を問い合わせてもよく、或いは応答コマンドキューモジュールは、中断を用いてCPU1に通知し、CPU1のドライバは、応答コマンドキューモジュールを読み取ることにより、1MBのデータを読み取った応答メッセージを習得する。応答メッセージが読み取り成功を示すときに、1MBのデータは、ローカルメモリに書き込まれ且つ読み取りデータについてのデータ受信キューモジュール内にある情報に従ってデータ受信キューモジュールから読み取られるか、或いはCPUのDMAコントローラを構成することによりDMAを用いて読み取られる。
【００７２】
具体的な実現は、一例としてリソースを記憶するネットワークデバイスを使用することにより記載される。本発明のこの実施例において提供されるコンピュータデバイスは、入力／出力リソースを提供するデバイスからデータを読み取ってもよく、或いはデータを入力／出力リソースを提供するデバイスに書き込んでもよい。この場合、ネットワークデバイスは、入力／出力リソースを提供するデバイスである。
【００７３】
本発明の実施例は、コンピュータデバイスによりデータを読み取る／書き込むための方法を更に提供する。コンピュータデバイスは、中央処理装置CPUと、クラウドコントローラと、ネットワークインタフェースとを含む。CPUは、ダブルデータレートDDRインタフェースを使用することによりクラウドコントローラに接続され、ネットワークインタフェースは、クラウドコントローラをネットワークデバイスに接続するように構成される。図５を参照すると、図５は、本発明の実施例によるコンピュータデバイスによりデータを読み取る／書き込むための方法の概略フローチャートである。この方法は以下のステップを含む。
【００７４】
ステップ500.CPUは、ネットワークデバイス上で読み取り／書き込み操作を実行するための要求を制御コマンドに変換し、制御コマンドをクラウドコントローラの送信キューモジュールに書き込み、制御コマンドは、クラウドコントローラに対してネットワークデバイス上で読み取り操作又は書き込み操作を実行するように命令するために使用され、制御コマンドは、読み取り操作又は書き込み操作の操作情報を搬送する。
【００７５】
ステップ502.クラウドコントローラは、送信キューモジュール内の制御コマンドがトリガーされたときに、制御コマンド内の操作情報に従ってネットワークデバイス上で読み取り操作又は書き込み操作を実行し、ネットワークデバイスにより送信された応答メッセージを受信したときに、ネットワークデバイスにより送信された応答メッセージをクラウドコントローラの応答キューモジュールに書き込む。
【００７６】
前述の方法の実施例によれば、CPUは、DDRインタフェースを使用することにより、クラウドコントローラに接続され、DDRインタフェースが高いデータ送信レートを有するため、中断が回避される。さらに、CPUは、読み取り／書き込み操作要求を制御コマンドに変換し、制御コマンドをクラウドコントローラの送信キューモジュールに書き込む。クラウドコントローラは、制御コマンド内の操作情報に従ってネットワークデバイス上で読み取り操作又は書き込み操作を実行するため、制御コマンドを送信キューモジュールに書き込んだ後に、CPUは、クラウドコントローラにより実行される操作を待機する必要はなく、他のサービス処理を実行し続けることができ、例えば、他の制御コマンドを書き込み続けることができる。これは、CPUリソースの浪費を回避し、CPU利用率を改善する。
【００７７】
具体的な実現の間に、読み取り／書き込み操作要求が読み取り操作要求である場合、CPUにより、ネットワークデバイス上で読み取り／書き込み操作を実行するための要求を制御コマンドに変換し、制御コマンドをクラウドコントローラの送信キューモジュールに書き込むことは、
CPUにより、読み取り操作要求を読み取り制御コマンドに変換し、読み取り制御コマンドを送信キューモジュールのコマンド送信キューモジュールに書き込み、読み取り制御コマンドは、読み取り操作情報を搬送し、クラウドコントローラに対して読み取り操作情報に従ってネットワークデバイス上で読み取り操作を実行するように命令するために使用されることを含み、
クラウドコントローラにより、制御コマンド内の操作情報に従ってネットワークデバイス上で読み取り操作又は書き込み操作を実行し、ネットワークデバイスにより送信された応答メッセージを受信したときに、ネットワークデバイスにより送信された応答メッセージをクラウドコントローラの応答キューモジュールに書き込むことは、
クラウドコントローラにより、コマンド送信キューモジュール内の読み取り制御コマンドがトリガーされたときに、読み取り制御コマンド内の読み取り操作情報に従ってネットワークデバイス上で読み取り操作を実行し、ネットワークデバイスにより送信された読み取り応答メッセージを受信し、ネットワークデバイスにより送信された読み取り応答メッセージを応答キューモジュールの応答コマンドキューモジュールに書き込み、ネットワークデバイスにより返信され且つ読み取り操作を用いて読み取られるべきデータを応答キューモジュールのデータ受信キューモジュールに書き込むことを含む。
【００７８】
読み取り操作情報は、読み取り操作を用いて読み取られるべきデータのネットワークデバイス内のアドレスと、読み取り操作を用いて読み取られるべきデータの長さとを含んでもよく、或いは読み取り操作情報は、読み取り操作を用いて読み取られるべきデータのネットワークデバイス内のノードアドレス及びオフセットアドレスと、読み取り操作を用いて読み取られるべきデータの長さとを含む。
【００７９】
読み取り操作要求を読み取り制御コマンドに変換し、読み取り制御コマンドをコマンド送信キューモジュールに書き込んだ後に、CPUは、他の操作を実行してもよく、例えば、他の読み取り制御コマンド又は書き込み制御コマンドを書き続けてもよい。クラウドコントローラは、読み取り制御コマンドがコマンド送信キューモジュールに書き込まれたときに、コマンド送信キューモジュールから読み取り制御コマンドを抽出し、読み取り制御コマンドを実行し、読み取り制御コマンドを実行した結果を応答コマンドキューモジュールに書き込み、読み取られたデータを取得したときに、読み取られたデータをデータ受信キューモジュールに書き込んでもよい。このように、読み取り操作要求は、CPUにより読み取り制御コマンドを書き込み、クラウドコントローラにより読み取り制御コマンドを実行する２つの処理に変換される。CPUは、クラウドコントローラにより読み取り操作を実行した結果を待機する必要なく、他のタスクを実行することができ、読み取り操作応答コマンドが応答コマンドキューモジュールに書き込まれたときに読み取り操作結果を取得する必要があるのみである。これは、CPUが過度に長い時間読み取り操作結果を待機するために引き起こされる中断を回避し、CPUのリソース利用率を改善する。
【００８０】
さらに、本発明のこの実施例では、CPUは、ポーリング方式で問い合わせることにより、或いは中断を用いて通知されることにより、読み取り操作結果を取得してもよい。
【００８１】
ポーリング方式で問い合わせることにより、読み取り操作結果を取得するときに、CPUは、読み取り制御コマンドをコマンド送信キューモジュールに書き込んだ後に、ポーリング方式で、ネットワークデバイスにより送信された読み取り応答メッセージが応答コマンドキューモジュールに存在するか否かを問い合わせ、すなわち、予め設定された時間間隔に従って、ネットワークデバイスにより送信された読み取り応答メッセージが応答コマンドキューモジュールに存在するか否かを繰り返し問い合わせる。ネットワークデバイスにより送信された読み取り応答メッセージが応答コマンドキューモジュールに存在すると決定し、読み取り応答メッセージが読み取り成功応答メッセージであるときに、CPUは、データ受信キューモジュールから、読み取り操作を用いて読み取られるべきデータを読み取る。
【００８２】
中断を用いて通知されることにより、読み取り操作結果を取得するときに、クラウドコントローラは、ネットワークデバイスにより送信された読み取り応答メッセージが応答コマンドキューモジュールに存在するか否かを決定し、ネットワークデバイスにより送信された読み取り応答メッセージが応答コマンドキューモジュールに存在するときに、中断を用いてCPUに通知する。CPUは、クラウドコントローラにより送信された中断メッセージを受信し、中断メッセージに従って応答コマンドキューモジュールから読み取り応答メッセージを取得し、取得された読み取り応答メッセージが読み取り成功を示すときに、データ受信キューモジュールから、読み取り操作を用いて読み取られるべきデータを読み取る。
【００８３】
読み取り／書き込み操作要求が書き込み操作要求であるときに、CPUにより、ネットワークデバイス上で読み取り／書き込み操作を実行するための要求を制御コマンドに変換し、制御コマンドをクラウドコントローラの送信キューモジュールに書き込むことは、
CPUにより、書き込み操作要求を書き込み制御コマンドに変換し、書き込み制御コマンドを送信キューモジュールのコマンド送信キューモジュールに書き込み、書き込み操作を用いて書き込まれるべきデータを送信キューモジュールのデータ送信キューモジュールに書き込み、書き込み制御コマンドは、書き込み操作情報を搬送し、クラウドコントローラに対して書き込み操作を用いて書き込まれるべきデータを、書き込み操作情報に従ってネットワークデバイスに書き込むように命令するために使用されることを含み、
クラウドコントローラにより、制御コマンド内の操作情報に従ってネットワークデバイス上で読み取り操作又は書き込み操作を実行し、ネットワークデバイスにより送信された応答メッセージを受信したときに、ネットワークデバイスにより送信された応答メッセージをクラウドコントローラの応答キューモジュールに書き込むことは、
コマンド送信キューモジュール内の書き込み制御コマンドがトリガーされたときに、クラウドコントローラにより、書き込み操作を用いて書き込まれるべきデータを、書き込み制御コマンド内の書き込み操作情報に従ってデータ送信キューモジュールから抽出し、書き込み操作を用いて書き込まれるべきデータをネットワークデバイスに書き込み、ネットワークデバイスにより送信された書き込み応答メッセージを受信したときに、ネットワークデバイスにより送信された書き込み応答メッセージを応答キューモジュールの応答コマンドキューモジュールに書き込むことを含む。
【００８４】
書き込み操作情報は、ネットワークデバイスのアドレスと、書き込み操作を用いて書き込まれるべきデータの長さと、書き込み操作を用いて書き込まれるべきデータのデータ送信キューモジュール内のアドレスとを含んでもよく、或いは書き込み操作情報は、ネットワークデバイスのノードアドレス及びオフセットアドレスと、書き込み操作を用いて書き込まれるべきデータの長さと、書き込み操作を用いて書き込まれるべきデータのデータ送信キューモジュール内のアドレスとを含む。
【００８５】
書き込み操作要求を書き込み制御コマンドに変換し、書き込み制御コマンドをコマンド送信キューモジュールに書き込んだ後に、CPUは、他の操作を実行してもよく、例えば、他の読み取り制御コマンド又は書き込み制御コマンドを書き続けてもよい。クラウドコントローラは、書き込み制御コマンドがコマンド送信キューモジュールに書き込まれたときに、コマンド送信キューモジュールから書き込み制御コマンドを抽出し、書き込み制御コマンドを実行し、書き込み制御コマンドを実行した結果を応答コマンドキューモジュールに書き込んでもよい。このように、書き込み操作要求は、書き込み制御コマンドをクラウドコントローラのコマンド送信キューモジュールに書き込み、クラウドコントローラにより書き込み制御コマンドを実行する２つの処理に変換される。CPUは、クラウドコントローラにより書き込み操作を実行した結果を待機する必要なく、他のタスクを実行することができ、書き込み操作応答コマンドが応答コマンドキューモジュールに書き込まれたときに書き込み操作結果を取得する必要があるのみである。これは、CPUが過度に長い時間書き込み操作結果を待機するために引き起こされる中断を回避し、CPUのリソース利用率を改善する。
【００８６】
さらに、本発明のこの実施例では、CPUは、ポーリング方式で問い合わせることにより、或いは中断を用いて通知されることにより、書き込み操作結果を取得してもよい。
【００８７】
ポーリング方式で問い合わせることにより、書き込み操作結果を取得するときに、CPUは、書き込み制御コマンドをコマンド送信キューモジュールに書き込んだ後に、ポーリング方式で、ネットワークデバイスにより送信された書き込み応答メッセージが応答コマンドキューモジュールに存在するか否かを問い合わせ、CPUは、ネットワークデバイスにより送信された書き込み応答メッセージが応答コマンドキューモジュールに存在すると決定したときに、書き込み応答メッセージを取得する。
【００８８】
中断を用いて通知されることにより、書き込み操作結果を取得するときに、クラウドコントローラは、ネットワークデバイスにより送信された書き込み応答メッセージが応答コマンドキューモジュールに存在するか否かを決定し、ネットワークデバイスにより送信された書き込み応答メッセージが応答コマンドキューモジュールに存在するときに、中断を用いてCPUに通知する。CPUは、クラウドコントローラにより送信された中断メッセージを受信し、中断メッセージに従って応答コマンドキューモジュールから書き込み応答メッセージを取得する。
【００８９】
前述の方法の実施例の実現はまた、コンピュータデバイス10の実現を参照して実現されてもよく、詳細は繰り返されない。
【００９０】
当業者は、この明細書に開示された実施例に記載の例と組み合わせて、ユニット及びアルゴリズムのステップが、電子ハードウェア、コンピュータソフトウェア又はこれらの組み合わせにより実現されてもよいことを認識し得る。ハードウェアとソフトウェアとの間の互換性を明確に記載するために、前述では、機能に従って各例の構成及びステップを一般的に説明している。機能がハードウェアにより実行されるかソフトウェアにより実行されるかは、技術的解決策の特定の用途及び設計上の制約条件に依存する。当業者は、特定の用途毎に記載の機能を実現するために異なる方法を使用してもよいが、この実現が本発明の範囲を超えると考えられるべきではない。
【００９１】
便宜上且つ簡潔な説明の目的で、前述のシステム、装置及びユニットの詳細な動作処理について、前述の方法の実施例における対応する処理に参照が行われてもよく、詳細はここでは再び説明しないことが当業者により明確に理解され得る。
【００９２】
この出願において提供されるいくつかの実施例において、開示のシステム、装置及び方法は、他の方式で実現されてもよいことが理解されるべきである。例えば、記載の装置の実施例は、単なる例である。例えば、ユニットの分割は、単に論理的な機能分割であり、実際の実現では他の分割でもよい。例えば、複数のユニット又はコンポーネントは結合されてもよく、或いは他のシステムに統合されてもよく、或いはいくつかの特徴が無視されてもよく或いは実行されなくてもよい。さらに、表示又は説明した相互結合若しくは直接結合又は通信接続は、いくつかのインタフェース、装置若しくはユニットの間の間接結合若しくは通信接続、電気接続、機械接続又は他の形式の接続を通じて実現されてもよい。
【００９３】
別々の部分として記載したユニットは、物理的に別々でもよく或いは別々でなくてもよく、ユニットとして表示された部分は、物理的なユニットでもよく或いは物理的なユニットでなくてもよく、１つの場所に位置してもよく、或いは複数のネットワークユニットに分散されてもよい。ユニットの一部又は全部は、本発明の実施例の解決策の目的を達成するために、実際のニーズに従って選択されてもよい。
【００９４】
さらに、本発明の実施例における機能ユニットは、１つの処理ユニットに統合されてもよく、或いはユニットのそれぞれが物理的に単独で存在してもよく、或いは２つ以上のユニットが１つのユニットに統合される。統合されたユニットは、ハードウェアの形式で実現されてもよく、或いはソフトウェア機能ユニットの形式で実現されてもよい。
【００９５】
統合されたユニットがソフトウェア機能ユニットの形式で実現され、独立したプロダクトとして販売又は使用されるときに、統合されたユニットは、コンピュータ読み取り可能記憶媒体に記憶されてもよい。このような理解に基づいて、本発明の技術的解決策は、本質的に、或いは、従来技術に寄与する部分又は技術的解決策の全部若しくは一部は、ソフトウェアプロダクトの形式で実現されてもよい。ソフトウェアプロダクトは、記憶媒体に記憶され、コンピュータデバイス（パーソナルコンピュータ、サーバ又はネットワークデバイスでもよい）に対して本発明の実施例に記載の方法のステップの全部又は一部を実行するように命令するためのいくつかの命令を含む。前述の記憶媒体は、USBフラッシュドライブ、取り外し可能ハードディスク、読み取り専用メモリ（ROM、Read-Only  Memory）、ランダムアクセスメモリ（RAM、Random  Access  Memory）、磁気ディスク又は光ディスクのようなプログラムコードを記憶することができるいずれかの媒体を含む。
【００９６】
前述の説明は、本発明の単に具体的な実施例に過ぎず、本発明の保護範囲を限定することを意図するものではない。本発明に開示された技術範囲内で当業者により容易に理解される如何なる変更又は置換も本発明の保護範囲内に入るものとする。したがって、本発明の保護範囲は、特許請求の範囲の保護範囲に従うものとする。
【図１】
0006498844.tif 000002
【図２】
0006498844.tif 000003
【図３】
0006498844.tif 000004
【図４】
0006498844.tif 000005
【図５】
0006498844.tif 000006