JP2018524751A - コンピュータデバイス及びコンピュータデバイスによりデータを読み取る/書き込むための方法 - Google Patents

コンピュータデバイス及びコンピュータデバイスによりデータを読み取る/書き込むための方法 Download PDF

Info

Publication number
JP2018524751A
JP2018524751A JP2018518763A JP2018518763A JP2018524751A JP 2018524751 A JP2018524751 A JP 2018524751A JP 2018518763 A JP2018518763 A JP 2018518763A JP 2018518763 A JP2018518763 A JP 2018518763A JP 2018524751 A JP2018524751 A JP 2018524751A
Authority
JP
Japan
Prior art keywords
read
queue module
write
network device
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018518763A
Other languages
English (en)
Other versions
JP6498844B2 (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 JP2018524751A publication Critical patent/JP2018524751A/ja
Application granted granted Critical
Publication of JP6498844B2 publication Critical patent/JP6498844B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/10Streamlined, light-weight or high-speed protocols, e.g. express transfer protocol [XTP] or byte stream
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/02Protocol performance

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

コンピュータデバイスのCPUがリモートデータを読み取る/書き込むときに高い遅延が引き起こされるため、システム性能が影響を受けるという従来技術の問題を解決するための、コンピュータデバイス及びコンピュータデバイスによりデータを読み取る/書き込むための方法が提供される。コンピュータデバイスのCPUは、DDRインタフェースを使用することによりクラウドコントローラに接続され、DDRインタフェースが高いデータ送信レートを有するため、中断が回避される。さらに、CPUは、読み取り/書き込み操作要求を制御コマンドに変換し、制御コマンドをクラウドコントローラの送信キューモジュールに書き込む。クラウドコントローラは、制御コマンド内の操作情報に従ってネットワークデバイス上で読み取り操作又は書き込み操作を実行するため、制御コマンドを送信キューモジュールに書き込んだ後に、CPUは、クラウドコントローラにより実行される操作を待機する必要はなく、他のサービス処理を実行し続けることができ、例えば、他の制御コマンドを書き込み続けることができる。これは、CPUリソースの浪費を回避し、CPU利用率を改善する。

Description

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

Claims (18)

  1. 中央処理装置CPUと、クラウドコントローラとを含むコンピュータデバイスであり、前記クラウドコントローラは、送信キューモジュールと、応答キューモジュールと、ダブルデータレートDDRインタフェースと、ネットワークインタフェースとを含み、前記DDRインタフェースは、前記CPUを前記クラウドコントローラに接続するように構成され、前記ネットワークインタフェースは、前記クラウドコントローラをネットワークデバイスに接続するように構成されるコンピュータデバイスであって、
    前記CPUは、前記ネットワークデバイス上で読み取り/書き込み操作を実行するための要求を生成した後に、前記読み取り/書き込み操作要求を制御コマンドに変換し、前記制御コマンドを前記送信キューモジュールに書き込むように構成され、前記制御コマンドは、前記クラウドコントローラに対して前記ネットワークデバイス上で読み取り操作又は書き込み操作を実行するように命令するために使用され、前記制御コマンドは、前記読み取り操作又は前記書き込み操作の操作情報を搬送し、
    前記クラウドコントローラは、前記送信キューモジュール内の前記制御コマンドがトリガーされたときに、前記制御コマンド内の前記操作情報に従って前記ネットワークデバイス上で前記読み取り操作又は前記書き込み操作を実行し、前記ネットワークデバイスにより送信された応答メッセージを受信し、前記ネットワークデバイスにより送信された前記応答メッセージを前記応答キューモジュールに書き込むように構成されるコンピュータデバイス。
  2. 前記読み取り/書き込み操作要求は、読み取り操作要求であり、
    前記送信キューモジュールは、コマンド送信キューモジュールと、データ送信キューモジュールとを含み、
    前記応答キューモジュールは、応答コマンドキューモジュールと、データ受信キューモジュールとを含み、
    前記CPUは、前記読み取り操作要求を読み取り制御コマンドに変換し、前記読み取り制御コマンドを前記コマンド送信キューモジュールに書き込むように具体的に構成され、前記読み取り制御コマンドは、読み取り操作情報を搬送し、前記クラウドコントローラに対して前記読み取り操作情報に従って前記ネットワークデバイス上で読み取り操作を実行するように命令するために使用され、
    前記クラウドコントローラは、前記コマンド送信キューモジュール内の前記読み取り制御コマンドがトリガーされたときに、前記読み取り制御コマンド内の前記読み取り操作情報に従って前記ネットワークデバイス上で前記読み取り操作を実行し、前記ネットワークデバイスにより送信された読み取り応答メッセージを受信し、前記ネットワークデバイスにより送信された前記読み取り応答メッセージを前記応答コマンドキューモジュールに書き込み、前記ネットワークデバイスにより返信され且つ前記読み取り操作を用いて読み取られるべきデータを前記データ受信キューモジュールに書き込むように具体的に構成される、請求項1に記載のコンピュータデバイス。
  3. 前記読み取り操作情報は、前記読み取り操作を用いて読み取られるべき前記データの前記ネットワークデバイス内のアドレスと、前記読み取り操作を用いて読み取られるべき前記データの長さとを含むか、或いは
    前記読み取り操作情報は、前記読み取り操作を用いて読み取られるべき前記データの前記ネットワークデバイス内のノードアドレス及びオフセットアドレスと、前記読み取り操作を用いて読み取られるべき前記データの長さとを含む、請求項2に記載のコンピュータデバイス。
  4. 前記CPUは、前記読み取り制御コマンドを前記コマンド送信キューモジュールに書き込んだ後に、ポーリング方式で、前記ネットワークデバイスにより送信された前記読み取り応答メッセージが前記応答コマンドキューモジュールに存在するか否かを問い合わせ、前記ネットワークデバイスにより送信された前記読み取り応答メッセージが前記応答コマンドキューモジュールに存在すると前記CPUが決定し、前記読み取り応答メッセージが読み取り成功応答メッセージであるときに、前記データ受信キューモジュールから、前記読み取り操作を用いて読み取られるべき前記データを読み取るように更に構成される、請求項2又は3に記載のコンピュータデバイス。
  5. 前記クラウドコントローラは、前記ネットワークデバイスにより送信された前記読み取り応答メッセージが前記応答コマンドキューモジュールに存在するか否かを決定し、前記ネットワークデバイスにより送信された前記読み取り応答メッセージが前記応答コマンドキューモジュールに存在するときに、中断を用いて前記CPUに通知するように更に構成され、
    前記CPUは、前記クラウドコントローラにより送信された中断メッセージを受信し、前記中断メッセージに従って前記応答コマンドキューモジュールから前記読み取り応答メッセージを取得し、前記取得された読み取り応答メッセージが読み取り成功を示すときに、前記データ受信キューモジュールから、前記読み取り操作を用いて読み取られるべき前記データを読み取るように更に構成される、請求項2又は3に記載のコンピュータデバイス。
  6. 前記読み取り/書き込み操作要求は、書き込み操作要求であり、
    前記送信キューモジュールは、コマンド送信キューモジュールと、データ送信キューモジュールとを含み、
    前記応答キューモジュールは、応答コマンドキューモジュールと、データ受信キューモジュールとを含み、
    前記CPUは、前記書き込み操作要求を書き込み制御コマンドに変換し、前記書き込み制御コマンドを前記コマンド送信キューモジュールに書き込み、前記書き込み操作を用いて書き込まれるべきデータを前記データ送信キューモジュールに書き込むように具体的に構成され、前記書き込み制御コマンドは、書き込み操作情報を搬送し、前記クラウドコントローラに対して前記書き込み操作を用いて書き込まれるべき前記データを、前記書き込み操作情報に従って前記ネットワークデバイスに書き込むように命令するために使用され、
    前記クラウドコントローラは、前記コマンド送信キューモジュール内の前記書き込み制御コマンドがトリガーされたときに、前記書き込み操作を用いて書き込まれるべき前記データを、前記書き込み制御コマンド内の前記書き込み操作情報に従って前記データ送信キューモジュールから抽出し、前記書き込み操作を用いて書き込まれるべき前記データを前記ネットワークデバイスに書き込み、前記ネットワークデバイスにより送信された書き込み応答メッセージを受信したときに、前記ネットワークデバイスにより送信された前記書き込み応答メッセージを前記応答コマンドキューモジュールに書き込むように具体的に構成される、請求項1に記載のコンピュータデバイス。
  7. 前記書き込み操作情報は、前記ネットワークデバイスのアドレスと、前記書き込み操作を用いて書き込まれるべき前記データの長さと、前記書き込み操作を用いて書き込まれるべき前記データの前記データ送信キュー内のアドレスとを含むか、或いは
    前記書き込み操作情報は、前記ネットワークデバイスのノードアドレス及びオフセットアドレスと、前記書き込み操作を用いて書き込まれるべき前記データの長さと、前記書き込み操作を用いて書き込まれるべき前記データの前記データ送信キュー内のアドレスとを含む、請求項6に記載のコンピュータデバイス。
  8. 前記CPUは、前記書き込み制御コマンドを前記コマンド送信キューモジュールに書き込んだ後に、ポーリング方式で、前記ネットワークデバイスにより送信された前記書き込み応答メッセージが前記応答コマンドキューモジュールに存在するか否かを問い合わせ、前記ネットワークデバイスにより送信された前記書き込み応答メッセージが前記応答コマンドキュー記憶モジュールに存在すると前記CPUが決定したときに、前記書き込み応答メッセージを取得するように更に構成される、請求項6又は7に記載のコンピュータデバイス。
  9. 前記クラウドコントローラは、前記ネットワークデバイスにより送信された前記書き込み応答メッセージが前記応答コマンドキューモジュールに存在するか否かを決定し、前記ネットワークデバイスにより送信された前記書き込み応答メッセージが前記応答コマンドキューモジュールに存在するときに、中断を用いて前記CPUに通知するように更に構成され、
    前記CPUは、前記クラウドコントローラにより送信された中断メッセージを受信し、前記中断メッセージに従って前記応答コマンドキューモジュールから前記書き込み応答メッセージを取得するように更に構成される、請求項6又は7に記載のコンピュータデバイス。
  10. コンピュータデバイスによりデータを読み取る/書き込むための方法であり、前記コンピュータデバイスは、中央処理装置CPUと、クラウドコントローラと、ネットワークインタフェースとを含み、前記CPUは、ダブルデータレートDDRインタフェースを使用することにより前記クラウドコントローラに接続され、前記ネットワークインタフェースは、前記クラウドコントローラをネットワークデバイスに接続するように構成される方法であって、
    前記CPUにより、前記ネットワークデバイス上で読み取り/書き込み操作を実行するための要求を制御コマンドに変換し、前記制御コマンドを前記クラウドコントローラの送信キューモジュールに書き込むステップであり、前記制御コマンドは、前記クラウドコントローラに対して前記ネットワークデバイス上で読み取り操作又は書き込み操作を実行するように命令するために使用され、前記制御コマンドは、前記読み取り操作又は前記書き込み操作の操作情報を搬送するステップと、
    前記クラウドコントローラにより、前記送信キューモジュール内の前記制御コマンドがトリガーされたときに、前記制御コマンド内の前記操作情報に従って前記ネットワークデバイス上で前記読み取り操作又は前記書き込み操作を実行し、前記ネットワークデバイスにより送信された応答メッセージを受信したときに、前記ネットワークデバイスにより送信された前記応答メッセージを前記クラウドコントローラの応答キューモジュールに書き込むステップと
    を含む方法。
  11. 前記読み取り/書き込み操作要求は、読み取り操作要求であり、
    対応して、前記CPUにより、前記ネットワークデバイス上で読み取り/書き込み操作を実行するための要求を制御コマンドに変換し、前記制御コマンドを前記クラウドコントローラの送信キューモジュールに書き込むステップは、
    前記CPUにより、前記読み取り操作要求を読み取り制御コマンドに変換し、前記読み取り制御コマンドを前記送信キューモジュールのコマンド送信キューモジュールに書き込むステップであり、前記読み取り制御コマンドは、読み取り操作情報を搬送し、前記クラウドコントローラに対して前記読み取り操作情報に従って前記ネットワークデバイス上で読み取り操作を実行するように命令するために使用されるステップを含み、
    前記クラウドコントローラにより、前記制御コマンド内の前記操作情報に従って前記ネットワークデバイス上で前記読み取り操作又は前記書き込み操作を実行し、前記ネットワークデバイスにより送信された応答メッセージを受信したときに、前記ネットワークデバイスにより送信された前記応答メッセージを前記クラウドコントローラの応答キューモジュールに書き込むステップは、
    前記クラウドコントローラにより、前記コマンド送信キューモジュール内の前記読み取り制御コマンドがトリガーされたときに、前記読み取り制御コマンド内の前記読み取り操作情報に従って前記ネットワークデバイス上で前記読み取り操作を実行し、前記ネットワークデバイスにより送信された読み取り応答メッセージを受信し、前記ネットワークデバイスにより送信された前記読み取り応答メッセージを前記応答キューモジュールの応答コマンドキューモジュールに書き込み、前記ネットワークデバイスにより返信され且つ前記読み取り操作を用いて読み取られるべきデータを前記応答キューモジュールのデータ受信キューモジュールに書き込むステップを含む、請求項10に記載の方法。
  12. 前記読み取り操作情報は、前記読み取り操作を用いて読み取られるべき前記データの前記ネットワークデバイス内のアドレスと、前記読み取り操作を用いて読み取られるべき前記データの長さとを含むか、或いは
    前記読み取り操作情報は、前記読み取り操作を用いて読み取られるべき前記データの前記ネットワークデバイス内のノードアドレス及びオフセットアドレスと、前記読み取り操作を用いて読み取られるべき前記データの長さとを含む、請求項11に記載の方法。
  13. 前記読み取り制御コマンドを前記コマンド送信キューモジュールに書き込んだ後に、前記CPUにより、ポーリング方式で、前記ネットワークデバイスにより送信された前記読み取り応答メッセージが前記応答コマンドキューモジュールに存在するか否かを問い合わせ、前記ネットワークデバイスにより送信された前記読み取り応答メッセージが前記応答コマンドキューモジュールに存在すると前記CPUが決定し、前記読み取り応答メッセージが読み取り成功応答メッセージであるときに、前記データ受信キューモジュールから、前記読み取り操作を用いて読み取られるべき前記データを読み取るステップを更に含む、請求項11又は12に記載の方法。
  14. 前記クラウドコントローラにより、前記ネットワークデバイスにより送信された前記読み取り応答メッセージが前記応答コマンドキューモジュールに存在するか否かを決定し、前記ネットワークデバイスにより送信された前記読み取り応答メッセージが前記応答コマンドキューモジュールに存在するときに、中断を用いて前記CPUに通知するステップと、
    前記CPUにより、前記クラウドコントローラにより送信された中断メッセージを受信し、前記中断メッセージに従って前記応答コマンドキューモジュールから前記読み取り応答メッセージを取得し、前記取得された読み取り応答メッセージが読み取り成功を示すときに、前記データ受信キューモジュールから、前記読み取り操作を用いて読み取られるべき前記データを読み取るステップと
    を更に含む、請求項11又は12に記載の方法。
  15. 前記読み取り/書き込み操作要求は、書き込み操作要求であり、
    対応して、前記CPUにより、前記ネットワークデバイス上で読み取り/書き込み操作を実行するための要求を制御コマンドに変換し、前記制御コマンドを前記クラウドコントローラの送信キューモジュールに書き込むステップは、
    前記CPUにより、前記書き込み操作要求を書き込み制御コマンドに変換し、前記書き込み制御コマンドを前記送信キューモジュールのコマンド送信キューモジュールに書き込み、前記書き込み操作を用いて書き込まれるべきデータを前記送信キューモジュールのデータ送信キューモジュールに書き込むステップであり、前記書き込み制御コマンドは、書き込み操作情報を搬送し、前記クラウドコントローラに対して前記書き込み操作を用いて書き込まれるべき前記データを、前記書き込み操作情報に従って前記ネットワークデバイスに書き込むように命令するために使用されるステップを含み、
    前記クラウドコントローラにより、前記制御コマンド内の前記操作情報に従って前記ネットワークデバイス上で前記読み取り操作又は前記書き込み操作を実行し、前記ネットワークデバイスにより送信された応答メッセージを受信したときに、前記ネットワークデバイスにより送信された前記応答メッセージを前記クラウドコントローラの応答キューモジュールに書き込むステップは、
    前記コマンド送信キューモジュール内の前記書き込み制御コマンドがトリガーされたときに、前記クラウドコントローラにより、前記書き込み操作を用いて書き込まれるべき前記データを、前記書き込み制御コマンド内の前記書き込み操作情報に従って前記データ送信キューモジュールから抽出し、前記書き込み操作を用いて書き込まれるべき前記データを前記ネットワークデバイスに書き込み、前記ネットワークデバイスにより送信された書き込み応答メッセージを受信したときに、前記ネットワークデバイスにより送信された前記書き込み応答メッセージを前記応答キューモジュールの応答コマンドキューモジュールに書き込むステップを含む、請求項10に記載の方法。
  16. 前記書き込み操作情報は、前記ネットワークデバイスのアドレスと、前記書き込み操作を用いて書き込まれるべき前記データの長さと、前記書き込み操作を用いて書き込まれるべき前記データの前記データ送信キュー内のアドレスとを含むか、或いは
    前記書き込み操作情報は、前記ネットワークデバイスのノードアドレス及びオフセットアドレスと、前記書き込み操作を用いて書き込まれるべき前記データの長さと、前記書き込み操作を用いて書き込まれるべき前記データの前記データ送信キュー内のアドレスとを含む、請求項15に記載の方法。
  17. 前記書き込み制御コマンドを前記コマンド送信キューモジュールに書き込んだ後に、前記CPUにより、ポーリング方式で、前記ネットワークデバイスにより送信された前記書き込み応答メッセージが前記応答コマンドキューモジュールに存在するか否かを問い合わせ、前記ネットワークデバイスにより送信された前記書き込み応答メッセージが前記応答コマンドキュー記憶モジュールに存在すると前記CPUが決定したときに、前記書き込み応答メッセージを取得するステップを更に含む、請求項15又は16に記載の方法。
  18. 前記クラウドコントローラにより、前記ネットワークデバイスにより送信された前記書き込み応答メッセージが前記応答コマンドキューモジュールに存在するか否かを決定し、前記ネットワークデバイスにより送信された前記書き込み応答メッセージが前記応答コマンドキューモジュールに存在するときに、中断を用いて前記CPUに通知するステップと、
    前記CPUにより、前記クラウドコントローラにより送信された中断メッセージを受信し、前記中断メッセージに従って前記応答コマンドキューモジュールから前記書き込み応答メッセージを取得するステップと
    を更に含む、請求項15又は16に記載の方法。
JP2018518763A 2015-07-22 2015-07-22 コンピュータデバイス及びコンピュータデバイスによりデータを読み取る/書き込むための方法 Active JP6498844B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/084816 WO2017012096A1 (zh) 2015-07-22 2015-07-22 计算机设备和计算机设备数据读写的方法

Publications (2)

Publication Number Publication Date
JP2018524751A true JP2018524751A (ja) 2018-08-30
JP6498844B2 JP6498844B2 (ja) 2019-04-10

Family

ID=57833686

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018518763A Active JP6498844B2 (ja) 2015-07-22 2015-07-22 コンピュータデバイス及びコンピュータデバイスによりデータを読み取る/書き込むための方法

Country Status (9)

Country Link
US (1) US10951741B2 (ja)
EP (1) EP3296836B1 (ja)
JP (1) JP6498844B2 (ja)
CN (1) CN106662895B (ja)
AU (1) AU2015402888B2 (ja)
CA (1) CA2987807C (ja)
ES (1) ES2757673T3 (ja)
SG (1) SG11201709668SA (ja)
WO (1) WO2017012096A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11798599B2 (en) 2019-10-16 2023-10-24 Hewlett-Packard Development Company, L.P. Efficient placement of memory

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10552271B2 (en) * 2017-07-31 2020-02-04 International Business Machines Corporation Switching servers without interrupting a client command-response queue
CN111061430B (zh) * 2019-11-27 2021-02-19 东南大学 一种多云环境下异构i/o细粒度感知的数据放置方法
CN111858447A (zh) * 2020-07-13 2020-10-30 深圳市集贤科技有限公司 一种从串口接收数据、处理数据帧的方法
CN112925481B (zh) 2021-03-09 2024-04-05 合肥兆芯电子有限公司 存储器管理方法、存储器存储装置及存储器控制电路单元
CN114296640B (zh) * 2021-12-13 2023-08-15 苏州浪潮智能科技有限公司 用于加速计算的数据驱动方法、装置、设备和存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001325158A (ja) * 2000-03-31 2001-11-22 Emc Corp 別個のデータ転送部およびメッセージ・ネットワークを有するデータ記憶システム
JP2004220216A (ja) * 2003-01-14 2004-08-05 Hitachi Ltd San/nas統合型ストレージ装置
JP2005165439A (ja) * 2003-11-28 2005-06-23 Hitachi Ltd データ転送装置、記憶デバイス制御装置、記憶デバイス制御装置の制御方法
JP2005539305A (ja) * 2002-09-16 2005-12-22 レベル、ファイブ、ネットワークス、リミテッド ネットワーク・インターフェースおよびプロトコル
JP2007027951A (ja) * 2005-07-13 2007-02-01 Matsushita Electric Ind Co Ltd Dmaコントローラおよび通信処理装置
JP2008226040A (ja) * 2007-03-14 2008-09-25 Hitachi Ltd 情報処理装置及びコマンド多重度制御方法
JP2009238098A (ja) * 2008-03-28 2009-10-15 Hitachi Ltd セッション管理方法、ストレージ装置、及び、計算機システム
JP2014154155A (ja) * 2013-02-04 2014-08-25 Lsi Corp コマンド・プッシュ・モデルの使用によりデータ・ストレージ・システムにおける書込みレイテンシを低減させるための方法およびシステム

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8832130B2 (en) * 2010-08-19 2014-09-09 Infosys Limited System and method for implementing on demand cloud database
US8589625B2 (en) * 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of reconstructive I/O read operations in a storage environment
US8751714B2 (en) 2010-09-24 2014-06-10 Intel Corporation Implementing quickpath interconnect protocol over a PCIe interface
CN202178776U (zh) * 2011-08-23 2012-03-28 杭州朗杰测控技术开发有限公司 一种基于can总线的高速通讯系统
US10445121B2 (en) * 2012-02-23 2019-10-15 Red Hat Inc. Building virtual machine disk images for different cloud configurations from a single generic virtual machine disk image
WO2014029076A1 (en) * 2012-08-21 2014-02-27 Intel Corporation Widi cloud mode
US9286130B2 (en) * 2012-08-27 2016-03-15 International Business Machines Corporation Optimizing virtual machine deployment time by temporarily allocating more processing resources during the initial deployment time of the virtual machine
US9712402B2 (en) * 2012-10-10 2017-07-18 Alcatel Lucent Method and apparatus for automated deployment of geographically distributed applications within a cloud
US8831000B2 (en) * 2012-10-10 2014-09-09 Telefonaktiebolaget L M Ericsson (Publ) IP multicast service join process for MPLS-based virtual private cloud networking
US9344521B2 (en) * 2012-12-13 2016-05-17 Red Hat, Inc. Pluggable infrastructure for cloud provider selection
US20140172783A1 (en) * 2012-12-17 2014-06-19 Prowess Consulting, Llc System and method for providing computing environment delivery service with offline operations
US9087007B2 (en) * 2013-03-14 2015-07-21 International Business Machines Corporation Generating fault tolerant connectivity API
US8769644B1 (en) * 2013-03-15 2014-07-01 Rightscale, Inc. Systems and methods for establishing cloud-based instances with independent permissions
CN103414764A (zh) * 2013-07-24 2013-11-27 广东电子工业研究院有限公司 一种云平台弹性存储系统及其弹性存储实现方法
US9934194B2 (en) * 2013-12-20 2018-04-03 Rambus Inc. Memory packet, data structure and hierarchy within a memory appliance for accessing memory
US8874836B1 (en) * 2014-07-03 2014-10-28 Pure Storage, Inc. Scheduling policy for queues in a non-volatile solid-state storage

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001325158A (ja) * 2000-03-31 2001-11-22 Emc Corp 別個のデータ転送部およびメッセージ・ネットワークを有するデータ記憶システム
JP2005539305A (ja) * 2002-09-16 2005-12-22 レベル、ファイブ、ネットワークス、リミテッド ネットワーク・インターフェースおよびプロトコル
JP2004220216A (ja) * 2003-01-14 2004-08-05 Hitachi Ltd San/nas統合型ストレージ装置
JP2005165439A (ja) * 2003-11-28 2005-06-23 Hitachi Ltd データ転送装置、記憶デバイス制御装置、記憶デバイス制御装置の制御方法
JP2007027951A (ja) * 2005-07-13 2007-02-01 Matsushita Electric Ind Co Ltd Dmaコントローラおよび通信処理装置
JP2008226040A (ja) * 2007-03-14 2008-09-25 Hitachi Ltd 情報処理装置及びコマンド多重度制御方法
JP2009238098A (ja) * 2008-03-28 2009-10-15 Hitachi Ltd セッション管理方法、ストレージ装置、及び、計算機システム
JP2014154155A (ja) * 2013-02-04 2014-08-25 Lsi Corp コマンド・プッシュ・モデルの使用によりデータ・ストレージ・システムにおける書込みレイテンシを低減させるための方法およびシステム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11798599B2 (en) 2019-10-16 2023-10-24 Hewlett-Packard Development Company, L.P. Efficient placement of memory

Also Published As

Publication number Publication date
SG11201709668SA (en) 2017-12-28
CA2987807A1 (en) 2017-01-26
AU2015402888A1 (en) 2017-12-21
EP3296836A1 (en) 2018-03-21
CN106662895A (zh) 2017-05-10
ES2757673T3 (es) 2020-04-29
AU2015402888B2 (en) 2018-09-27
US20180159963A1 (en) 2018-06-07
JP6498844B2 (ja) 2019-04-10
WO2017012096A1 (zh) 2017-01-26
CN106662895B (zh) 2019-10-18
US10951741B2 (en) 2021-03-16
CA2987807C (en) 2019-12-31
EP3296836B1 (en) 2019-09-11
EP3296836A4 (en) 2018-06-20

Similar Documents

Publication Publication Date Title
JP6498844B2 (ja) コンピュータデバイス及びコンピュータデバイスによりデータを読み取る/書き込むための方法
US9678918B2 (en) Data processing system and data processing method
CN110888827B (zh) 数据传输方法、装置、设备及存储介质
CN109471833B (zh) 用于最大化PCIe对等连接的带宽的系统和方法
US9395921B2 (en) Writing data using DMA by specifying a buffer address and a flash memory address
US9734085B2 (en) DMA transmission method and system thereof
US20180239728A1 (en) Management controller including virtual usb host controller
US20220222016A1 (en) Method for accessing solid state disk and storage device
CN114201268B (zh) 一种数据处理方法、装置、设备及可读存储介质
US20160234311A1 (en) Memory access method, device, and system
CN113821309A (zh) 一种微内核虚拟机间的通信方法、装置、设备及存储介质
CN116383127B (zh) 节点间通信方法、装置、电子设备及存储介质
CN117369734B (zh) 一种存储资源管理系统、方法及存储虚拟化系统
CN113076138B (zh) 一种NVMe命令处理方法、设备及介质
WO2022141250A1 (zh) 数据传输方法和相关装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180911

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190313

R150 Certificate of patent or registration of utility model

Ref document number: 6498844

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