JP7246989B2 - Ndpサーバー―データセンターのストレージサーバーベースのデータ中心のコンピューティングアーキテクチャ― - Google Patents

Ndpサーバー―データセンターのストレージサーバーベースのデータ中心のコンピューティングアーキテクチャ― Download PDF

Info

Publication number
JP7246989B2
JP7246989B2 JP2019058271A JP2019058271A JP7246989B2 JP 7246989 B2 JP7246989 B2 JP 7246989B2 JP 2019058271 A JP2019058271 A JP 2019058271A JP 2019058271 A JP2019058271 A JP 2019058271A JP 7246989 B2 JP7246989 B2 JP 7246989B2
Authority
JP
Japan
Prior art keywords
ndp
engine
server system
mass storage
ndp engine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019058271A
Other languages
English (en)
Other versions
JP2019185764A5 (ja
JP2019185764A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2019185764A publication Critical patent/JP2019185764A/ja
Publication of JP2019185764A5 publication Critical patent/JP2019185764A5/ja
Application granted granted Critical
Publication of JP7246989B2 publication Critical patent/JP7246989B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/0658Controller construction arrangements
    • 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]
    • 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/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multi Processors (AREA)
  • Eye Examination Apparatus (AREA)
  • Iron Core Of Rotating Electric Machines (AREA)
  • Centrifugal Separators (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

ここに記載された主題は、概して、サーバーシステムにおける性能不均衡を減らすシステム及び方法に関し、より詳細には、データが貯蔵されることのできる所の近くでデータプロセシングを提供して、サーバーシステムにおける性能不均衡を減らすサーバーシステムのアーキテクチャ及び方法に関する。
現代のデータセンターは、データセンターの性能及びエネルギー効率の双方を阻害する、データプロセシングとデータの移動と間の不均衡の問題に困っている。不均衡は、一般的にサーバーシステムの構成要素と関連するレイテンシ(latency)又はボトルネック(bottleneck)に基づく。例えば、データ集約型(data-intensive)アプリケーションは、メモリを介したデータの移動により誘発される性能ボトルネックをもたらし得る。計算集約型(computation-intensive)アプリケーションに対し、ボトルネックは、プロセッサの負荷により誘発され得る。不均衡はまた、サーバーシステムの構成要素の十分でない利用、例えば、データ又は命令を待つ遊休状態に有り得るが、現状維持のために、相変わらずエネルギーを消費するメモリ及び/又はプロセッサに主に起因する、追加的なエネルギーの消費をもたらしてしまい得る。
ビッグデータ(big data)の分析を採用するトレンドは、サーバーシステムにおいて発生し得る不均衡をより悪化させてしまい得る。例えば、ビッグデータの分析は、隠されたパターン、知られていない相関関係、市場のトレンド、消費者の嗜好及び/又は他の有用な情報を探り出すために、大きな且つ多様なデータセットでオペレート(operate)できる。このようなビッグデータの分析のために、性能ボトルネックを誘発しやすい可能性のある大量のデータ移動が伴い得る。同様に、ビッグデータの分析のための強力なツール(tool)を提供するマシンラーニング(machine learning)は、トレーニング(training)のためのデータの大きいセットを伴いながらも、著しく計算集約的である。処理されるデータの量及びワークロード(workload)のデータプロセシングの分析複雑度が上がるほど、データセンターの性能及びエネルギー効率は、より低下されてしまい得る。
米国特許出願公開第2017/0285968A1号公報 中国特許出願公開第106933510A号公報
HANDLEY,Mark et al.,"Re-architecting datacenter networks and stacks for low latency and high performance",SIGCOMM ’17,August 21-25,2017,Los Angeles,CA,USA YOSHIMI,Masato et al.,"Accelerating OLAP workload on interconnected FPGAs with Flash storage",Conference Publishing Services,2014 Second International Symposium on Computing and Networking,December 10,2014
本発明の目的は、データ集約型又は計算集約型のアプリケーションにより誘発されるシステム不均衡を減らすサーバーシステムを提供することにある。
例示的な実施形態は、複数の第1大容量ストレージデバイス(mass-storage devices)、少なとも一つの中央処理部(CPU)、及び少なくとも一つのニアデータプロセシング(NDP)エンジンを含む、サーバーシステムを提供する。少なくとも1つのCPUは、複数の第1大容量ストレージデバイスに結合される。各NDPエンジンは、複数の第2大容量ストレージデバイスと関連付けられ、そしてCPUと少なくとも一つのNDPエンジンに関連付けられた複数の第2大容量ストレージデバイスとの間に配置される。複数の第2大容量ストレージデバイスの数量は、複数の第1大容量ストレージデバイスの数量と同じか又は少ないかである。大容量ストレージデバイスは、少なくとも一つのソリッドステートドライブ(SSD)デバイスと、を有する。サーバーシステムをネットワークを介して、少なくとも一つの遠隔システムと通信可能に結合するネットワークインターフェースと、そしてCPUと少なくとも一つのNDPエンジンとの間に配置された通信ファブリックと、をさらに有し、少なくとも一つの遠隔システムは、サーバーシステムの外部にある。一実施形態において、NDPエンジンの数は、CPUに関連する帯域幅、ネットワークに関連する帯域幅、通信ファブリックに関連する帯域幅、及び全てのNDPエンジンに関連する帯域幅、のうちの最小帯域幅を、単一のNDPエンジンに関連する帯域幅で割ったものに、少なくとも部分的に基づく。他の実施形態において、少なくとも一つのNDPエンジン及び複数の第1大容量ストレージデバイスの間に配置されたスイッチ階層をさらに有し、スイッチ階層は、少なくとも一つのNDPエンジンを、少なくとも一つのNDPエンジンと関連付けられた複数の第2大容量ストレージデバイスに通信可能に結合する。もう一つの実施形態において、スイッチ階層は、第2NDPエンジン及び複数の第1大容量ストレージデバイスの間に配置され、スイッチ階層は、第2NDPエンジンを第2NDPエンジンと関連付けられた複数の第2大容量ストレージデバイスと通信可能に結合する。
他の例示的な実施形態は、ネットワークインターフェース、複数の第1SSDデバイス、少なくとも一つのCPU、及び少なくとも一つのNDPを含む、サーバーシステムを提供する。ネットワークインターフェースは、サーバーシステムを、ネットワークを介して少なくとも一つの遠隔システムと通信可能に結合し、少なくとも一つの遠隔システムは、サーバーシステムの外部にある。少なくとも一つのCPUは、ネットワークインターフェース及び複数の第1SSDデバイスに結合される。各NDPエンジンは、複数の第2SSDデバイスと関連付けられ、そしてCPUと少なくとも一つのNDPエンジンに関連付けられた複数の第2SSDデバイスとの間に配置され、複数の第2SSDデバイスの数量は、複数の第1SSDデバイスの数量と同じか又は少ないかである。通信ファブリックは、CPUと少なくとも一つのNDPエンジンとの間に配置され、NDPエンジンの数は、CPUに関連する帯域幅、ネットワークに関連する帯域幅、通信ファブリックに関連する帯域幅、及び全てのNDPエンジンに関連する帯域幅、のうちの最小帯域幅を、単一のNDPエンジンに関連する帯域幅で割ったものに基づく。
もう一つの例示的な実施形態は、複数の第1大容量ストレージデバイス、少なくとも一つのCPU、少なくとも一つのNDPエンジン及びスイッチ階層を含む、サーバーシステムを提供する。少なくとも一つのCPUは、複数の第1大容量ストレージデバイスに結合される。各NDPエンジンは、複数の第2大容量ストレージデバイスと関連付けられ、そしてCPUと少なくとも一つのNDPエンジンに関連付けられた複数の第2大容量ストレージデバイスとの間に配置される。複数の第2大容量ストレージデバイスの数量は、複数の第1大容量ストレージデバイスの数量と同じか又は少ないかである。スイッチ階層は、各NDPエンジンを、少なくとも一つのNDPエンジンと関連付けられた複数の第2大容量ストレージデバイスのそれぞれに通信可能に結合する。ネットワークインターフェースは、サーバーシステムを、ネットワークを介して少なくとも一つの遠隔システムと通信可能に結合し、通信ファブリックは、CPU及び少なくとも一つのNDPエンジンの間に配置される。スイッチ階層は、第2NDPエンジンと複数の第1大容量ストレージデバイスとの間に配置され、スイッチ階層は、第2NDPエンジンを第2NDPエンジンと関連付けられた複数の第2大容量ストレージデバイスに通信可能に結合する。
本発明によると、ニアデータプロセシングエンジンがサーバーシステムに配置される。従って、システムの不均衡を減らすサーバーシステムが提供される。
次のセクション(section)において、ここに記載された主題の側面が、図面に図示された模範的な実施形態を参照して説明される。
図1aは、ここに記載された主題による、サーバーシステムのアーキテクチャの第1の例示的な実施形態のブロック図を示す。 図1bは、ここに記載された主題による、サーバーシステムのアーキテクチャの第2の例示的な実施形態のブロック図を示す。 図2は、ここに記載された主題による、サーバーシステムのアーキテクチャ及びNDPエンジンのブロック図を示す。 図3a及び図3bは、ここに記載された主題による、NDPを有するサーバーシステム中でデータがたどる例示的な経路をそれぞれ示す。 図3a及び図3bは、ここに記載された主題による、NDPを有するサーバーシステム中でデータがたどる例示的な経路をそれぞれ示す。 図4aは、ローデータが、ホスト側DRAMを介してNDPEへ通過する通常の例示的なデータの流れを示す。 図4bは、ここに記載された主題による、ローデータがホスト側DRAMを介してNDPEへ通過する必要のない代案的かつ例示的なデータの流れを示す。 図5aは、ここに記載された主題による、サーバーシステムのアーキテクチャの例示的な実施形態のブロック図を示す。 図5bは、ここに記載された主題による、2つのSSDがマルチプレクサー(multiplexers)を利用して2つのNDPEに適応的に接続される、スイッチ階層の例示的な実施形態のブロック図を示す。 図5cは、ここに記載された主題による、4つのSSDが4つのNDPEに適応的に接続される、スイッチ階層の例示的な実施形態のブロック図を示す。 図5dは、ここに記載された主題による、n個のSSDがマルチプレクサーを利用してn個のNDPEに適応的に接続される、スイッチ階層の例示的な実施形態のブロック図を示す。 図6aは、ここに記載された主題による、N=4である例示的なサーバーシステムにおいて選択的に活性化されるNDPEを示す。 図6bは、ここに記載された主題による、N=5である例示的なサーバーシステムにおいて選択的に活性化されるNDPEを示す。 図6cは、ここに記載された主題による、N=6である例示的なサーバーシステムにおいて選択的に活性化されるNDPEを示す。 図6dは、ここに記載された主題による、N=7である例示的なサーバーシステムにおいて選択的に活性化されるNDPEを示す。 図6eは、ここに記載された主題による、N=8である例示的なサーバーシステムにおいて選択的に活性化されるNDPEを示す。 図7は、ここに記載された主題による、8つのNDPEを備えた例示的なサーバーシステムについて、どのNDPEが選択的に活性化され、そしてどのSSDが活性化されたNDPEに接続されるかを判定するための例示的な擬似コードを利用する、例示的な方法についての順序図を示す。
以下の詳細な説明において、本開示の完全な理解を提供するために、多数の具体的な詳細が提供される。しかしながら、記載された側面は、このような具体的な詳細なしに実施されうることが、この分野における熟練された者に理解されるはずである。他の例において、よく知られた方法、手順、構成要素及び回路は、ここに記載された主題を曖昧にしないために詳細に記述されない。
この明細書の全体にわたって、「一実施形態」又は「実施形態」についての参照は、その実施形態と関連して説明された特定の特色、構造、又は特徴が、ここに記載された少なくとも一つの実施形態に包含されることができることを意味する。従って、この明細書にわたって多様な所での「一実施形態において」又は「実施形態において」又は「一実施形態による」というフレーズ(又は類似の意味を有する他のフレーズ)の登場は、必ずしも全てが同じ実施形態を参照しているわけではない。なお、特定の特色、構造又は特徴は、一つ又はそれより多い実施形態において任意の適切な方法で組み合わせられる。この点において、ここで使用されるとき、「模範的な」という用語は、例、例示又は事例を提供する。「模範的な」としてここで記述される如何なる実施形態も、必然的に他の実施形態より選好されるべきであったり、有益なものと見なされたりしない。なお、ここで議論される文脈に依存して、単数の形態は、対応する複数の形態を包含し、そして複数の形態は、対応する単数の形態を包含する。ここで示される、そして議論される多様な図(構成要素図を含めて)は、説明的な目的だけのためのものであり、縮尺通りに描かれていないことに留意すべきである。同様に、多様な波形及びタイミング図は、説明的な目的だけのために示される。例えば、要素の一部の寸法は、明確性のために他の要素より相対的に強調され得る。なお、適切であると考えられる場合、参照番号が複数の図において反復されて対応する及び/又は同じ要素を示す。
ここで使用される用語は、特定の模範的な実施形態を説明する目的だけのためのものであり、請求された主題の限定として意図されない。ここで使用されるように、単数の形態は、文脈が明らかにそうでないことを示さない限り、複数の形態もまた包含するものと意図される。この明細書において使用されるとき、「有する(comprises)」及び/又は「有している(comprising)」との用語は、言及された特色、整数、ステップ、動作、要素、及び/又は構成要素の存在を明示し、1つ又はそれより多い別の特色、整数、ステップ、動作、要素、構成要素、及び/又はこれらのグループの存在又は追加を排除しない。ここで使用されるとき、「第1」、「第2」などの用語は、それらが先行する名詞についてのラベルとして使用され、そのように明白に定義されていない限り、どの形態の順序(例えば、空間的、時間的、論理的など)も暗示しない。なお、同じ参照番号は、2つ又はそれより多い図において使用されて、同じ又は類似の機能を有する部分、構成要素、ブロック、回路、ユニット、又はモジュールを参照できる。しかしながら、このような使用は、説明の単純化及び議論の容易さだけのためものであり、このような構成要素又はユニットの構造的又は構成的詳細が全ての実施形態にわたって同一であったり、又はこのような共通に参照される部分/モジュールがここで議論される、特定の実施形態の教示を具現したりする唯一の方法であることを暗示しない。
別に定義されていない限り、ここで使用される全ての用語(技術的、そして科学的用語を含めて)は、本主題が属する分野における通常の技術を有した者により共通的に理解されるものと同じ意味を有する。共通的に使用される辞書で定義されたような用語は、関連された分野の脈絡からそれらの意味と一致する意味を有するものと解釈されるべきであり、ここで、そのように明白に定義されていない限り、理想的に又は過度に形式的に解釈されない。
ニアデータプロセシング(NDP)(Near-data processing)は、データセンターサーバーの構成を最適化して、データプロセシング及びデータの移動により誘発される不均衡の問題を減らすのに使用され得る。NDPエンジンの代案的な形態として内蔵型プロセッサ(例えば、CPU,ARM,RISC Vなど)及び/又はフィールドプログラマブルゲートアレイ(FPGA)を組み込むNDPサーバーアーキテクチャが使用されることがあり、それぞれ、PNDPサーバー(プロセッサベースのNDPサーバー)アーキテクチャ又はFNDPサーバー(FPGAベースのNDPサーバー)アーキテクチャが形成され得る。例えば、NDPエンジンとしてFPGAを利用するFNDPサーバーアーキテクチャは、性能の向上及びエネルギー効率の面だけでなく、システムのコストの面においてもまた重大な長所を提供する。
NDPは、データの位置及びデータから抽出されるべき情報に基づいて、サーバーシステムアーキテクチャ内の最も適切な位置でデータを処理することにより、データの移動を最小化できる。従って、NDPにおいて演算は、キャッシュ、メインメモリ、及び/又は永続性ストレージ(persistent storage)のようなデータが位置した、直ぐそこで遂行されることができる。これは、データを貯蔵できる位置と関係なしにデータをCPUへ移動させるものと対照的である。NDPプロセシングは、NDPエンジンが置かれ得るメモリ階層内の異なる位置に基づいて3つのグループ、即ち、(1)ストレージデバイス(例えば、SSD、HDD)内のNDP、(2)ストレージデバイスに隣接した(通常、SSD、HDDとホストとの間に割り込む)NDP、(3)ダイナミックランダムアクセスメモリ(DRAM)(プロセッサに隣接した)内のNDPに分類されることができる。
一実施形態において、サーバーシステムのプロセッサと大容量ストレージデバイス(mass storage devices)(ソリッドステートドライブ(SSD)デバイスのような)との間に、1つ又はそれより多いNDPエンジンが割り込むことができる。NDPエンジンは、サーバーシステムのプロセッサ位置よりもサーバーシステム内のより適切な位置で演算及び/又はデータプロセシングを提供することにより、データの移動を最小化するように構成され得る。他の実施形態において、1つ又はそれより多いNDPエンジンは、データの移動を最小化するだけでなく、計算集約型アプリケーションにより誘発され得るプロセッサ上の負荷もまた減らせる。一実施形態において、NDPエンジンを1つ又はそれより多いSSDとペアリングする(pairing)ことは、スケーラブルなシステム構成を提供できる。
一実施形態において、ここに記載された主題は、SSD及びホストCPUの間の経路に挿入されたNDP(即ち、HDDに隣接したNDP)を提供する。他の実施形態において、NDPは、データの移動を減らし、そしてSSD間の並列性をより完全に利用する目的を有してストレージサーバーのSSD内に配置されることができる。もう一つの実施形態において、1つ又はそれより多いNDPエンジンは、DRAMに集積されることができる。
全てのタイプのコンピューティングユニット(例えば、高エネルギー効率内蔵型プロセッサ、FPGA、ストリーミング(streaming)プロセッサなど)が、NDPエンジンとして使用され得る。例えば、一実施形態において、SSDデバイス内のコントローラーは、SSDデバイスの物理的ストレージ媒体からアクセスされたデータを処理できる。即ち、NDPエンジンは、データプロセシングアプリケーションのためにホストとSSDデバイスとの間の経路に配置されることができる。他の実施形態において、1つ又はそれより多いNDPエンジンはDRAMに集積されることができる。
図1aは、ここに記載された主題による、サーバーシステム100の構成の第1の例示的な実施形態のブロック図を示す。サーバーシステム100は、1つ又はそれより多い通信ネットワーク103(1つの通信ネットワークのみが示される)を介して1つ又はそれより多いクライアントデバイス102(1つのクライアントデバイスのみが示される)に接続されることができる。
サーバーシステム100は、プロセッサ階層104、通信ファブリック階層105、NDPエンジン(NDPE)階層106、及びストレージ階層107を含み得る。大容量ストレージ階層107は、NDPE階層106を介して通信ファブリック階層105に接続され、通信ファブリック階層105は、NDPE階層106及びストレージ階層107をプロセッサ階層104に接続できる。SSDの完全なデータの伝送帯域幅は、通信ファブリック階層105とSSD階層107との間に接続されるNDPE階層106を有するシステムに伝達されることができ、データ集約型又は計算集約型アプリケーションにより誘発される、任意の不均衡もまた減らせる。
プロセッサ階層104は、1つ又はそれより多いプロセッサ140及びシステムメモリ141を含み得る。一実施形態において、システムメモリ141は、DRAMを含み得る。他の実施形態において、システムメモリ141は、任意のタイプの揮発性メモリ及び/又は任意のタイプの不揮発性メモリを含み得る。通信ファブリック階層105は、1つ又はそれより多い通信スイッチ150及び通信リンクを含み得る。一実施形態において、通信ファブリック階層105は限定されないが、通信ファブリック階層105は、PCIe(Peripheral Component Interconnect Express)ベースの通信ファブリックであり得る。
NDPE階層106は、1つ又はそれより多いNDPエンジンを含み得る。NDPE階層106は、n個のNDPエンジン(NDPE#0~NDPE#n-1)を含み、nは整数である。NDPE階層106のNDPエンジンは、プロセッサベースのNDPエンジン、FPGAベースのNDPエンジン、又はこれらの組み合わせであり得る。他のタイプのNDPエンジンもまた可能であり、使用され得る。ストレージ階層107は、1つ又はそれより多い大容量ストレージデバイスを含み得る。一実施形態において、1つ又はそれより多い大容量ストレージデバイスは、SSDデバイスを含み得る。他の実施形態において、1つ又はそれより多い大容量ストレージデバイスは、HDDデバイスを含み得る。大容量ストレージ階層107は、n個のSSD(SSD#0~SSD#n-1)を含み得る。図1aに図示された例示的な実施形態では、各NDPエンジンは、各SSDデバイスに対応する。
図1bは、ここに記載された主題による、サーバーシステム100′の構成の第2の例示的な実施形態のブロック図を示す。サーバーシステム100′は、1つ又はそれより多い通信ネットワーク103(1つの通信ネットワークのみが示される)を介して、1つ又はそれより多いクライアントデバイス102(1つのクライアントデバイスのみが示される)に接続されることができる。
サーバーシステム100′は、プロセッサ階層104、通信ファブリック階層105、NDPE階層106′、及びストレージ階層107′を含み得る。大容量ストレージ階層107′は、通信ファブリック階層105を介してNDPE階層106′に接続されることができ、通信ファブリック階層105は、NDPE階層106′及びストレージ階層107′をプロセッサ階層104に接続できる。
図1aに図示されたサーバーシステム100と同様に、サーバーシステム100′のプロセッサ階層104は、1つ又はそれより多いプロセッサ140及びシステムメモリ141を含み得る。一実施形態において、システムメモリ141は、DRAMを含み得る。他の実施形態において、システムメモリ141は、任意のタイプの揮発性メモリ及び/又は任意のタイプの不揮発性メモリを含み得る。通信ファブリック階層105は、1つ又はそれより多い通信スイッチ150及び通信リンクを含み得る。一実施形態において、通信ファブリック階層105は、そのように限定されないが、通信ファブリック階層105は、PCIeベースの通信ファブリックであり得る。
NDPE階層106′は、1つ又はそれより多いNDPエンジンを含み得る。NDPE階層106は、n-m個のNDPエンジン(NDPE#m~NDPE#n-1)を含み、n及びmは整数であり、m<nである。NDPE階層106′のNDPエンジンは、プロセッサベースのNDPエンジン、FPGAベースのNDPエンジン、又はこれらの組み合わせであり得る。他のタイプのNDPエンジンも、また可能であり、使用され得る。ストレージ階層107は、1つ又はそれより多い大容量ストレージデバイスを含み得る。一実施形態において、1つ又はそれより多い大容量ストレージデバイスは、SSDデバイスを含み得る。他の実施形態において、1つ又はそれより多い大容量ストレージデバイスは、HDDデバイスを含み得る。大容量ストレージ階層107は、m個のSSD(SSD#0~SSD#m-1)を含み得る。
図2は、ここに記載された主題による、サーバーシステム100の構成及びNDPエンジンのブロック図を示す。NDPエンジンは、データプロセシングデバイス201、メモリ202、及びインターフェース203,204を含み得る。インターフェース203及び204は、それぞれ、ストレージ階層107の1つ又はそれより多いSSD(1つのSSD#iにより示される)及び通信ファブリック105に接続できる。一実施形態において、データプロセシングデバイス201は、クアッドコア(quad-core)ARMコーテックス(Cortex)-A53デバイスのような、しかし、これに限定されないプロセッサ内蔵型コアであり得る。他の実施形態において、データプロセシングデバイス201は、FPGAデバイスであってもよく、この場合、FPGAベースのNDPEに接続されたSSDはFPGAチップ内のハードウェア資源(即ち、DSPスライス、LUT、RAMなど)を分割(パーティション)できる。システム100は、分割された資源を利用して、NDPEに接続されることができる各SSDに対するカーネル(kernel)をインスタンス化(instantiate)できる。プロセッサベースのNDPE及びFPGAベースのNDPEが、相異なるアプリケーションの具現を有し得るが、各SSDに対するデータを別途に処理するためのプロセシング要素(例えば、クアッドコアARMコーテックス-A53、又はFPGA資源によりインスタンス化されたアプリケーションカーネル)があるはずである。
NDPエンジン内のメモリ202は、DRAMであり得るし、メタデータストア(metadata store)のために使用され得る。DRAMはまた、SSDとNDPエンジンとの間に、NDPエンジンとホストCPUとの間に、及び/又はNDPエンジンにより実行されるアプリケーションに中間データストア(intermediate data store)として、データの移動のためのバッファ(buffer)を提供できる。インターフェース203,204は、NDPEからSSD及びホストCPUへの接続を提供できる。一実施形態において、インターフェース203,204は、PCIeベースのインターフェースであり得る。
図2に図示されたサーバーシステム100の構成は、2つのタイプのプロセシングユニット、即ち、1つ又はそれより多いホストCPU及び1つ又はそれより多いNDPエンジンを含み得る。ニアデータプロセシング、即ち、SSDからのデータリード(read)及びNDPエンジンにおけるデータプロセシングの実行を、サーバーシステム内のNDPエンジンの全てが自動的に提供するのでなくてもよい。データプロセシングは、ホストCPUから始めることができる。ホストCPUは、(1)サーバーのオペレーティングシステムを管理すること、(2)サーバーシステム内の全てのNDPエンジンの状態をモニタリングすること、(3)1つ又はそれより多いホスト側のアプリケーションプログラムを実行すること、(4)NDPE側のアプリケーションプログラムをNDPE階層にオフロード(offload)すること、及び(5)アーギュメント(arguments)をNDPE側のアプリケーションプログラムに記入し、そしてNDPE階層をローチング(launching)して対応するSSDからのデータをリードして処理することを、担うように構成され得る。
なお、図2に図示されたように、システムに2つのタイプのDRAM、即ち、ホストDRAM及びNDPE DRAMが有り得る。NDPE DRAMは、一種の「グローバル(global)」メモリとして見なされることができ、ホストCPU及びデータバッファから渡されたNDPE側のアプリケーションパラメータのために、ホストCPU及びNDP内のプロセシングデバイスによりアクセス可能になれる。特定のNDPエンジン内の「グローバルメモリ」は、他のNDPエンジンにより直接アクセスできないこともあるので、「グローバルメモリ」という用語は、ここで使用されるとき、図2に図示された全体のサーバーシステムのためのグローバルメモリではないのが理解されるべきである。
図2に図示されたサーバーシステム100内におけるNDPエンジンは、サーバーシステム100を単純化するために、互いに直接的に接続されなくてもよい。図2に図示されたように、ホストDRAMは、相異なるNDPエンジン間のデータ伝送経路の一部として使用されることができ、従って、2つのNDPエンジン間での通信/データの伝送があるとき、データは、ホストDRAMを介して対応するNDPへ伝送されることができる。例えば、図3aのNDPE#n-2が、NDPE#0からデータを受信しようとするとき、データは、ホストDRAMを介したNDPE#0からNDPE#n-2への経路301をたどる。他の例として、データプロセシングが、各NDPEにおいて遂行されるとき、結果データは、図3bにおいて経路302により示されるように、CPUにおける追加のプロセシングのためにホストDRAMで集約されることができる。NDPエンジンは、相互に接続されてもよく、これは複雑なハードウェアの接続ルーティング(routing)を提供し、一部のケースでアプリケーションが相異なるNDPE間でデータ又はメッセージを頻繁に交換する必要がある場合に、システムに通信負荷を追加し得る。一実施形態において、NDPEは、PCIeスイッチのような、しかしながら、これに限定されない、スイッチを介してホストメモリをバイパス(bypass)して相互に通信できる。
図4aは、ロー(未加工)データがホスト側DRAMを介してNDPEへ伝達される、通常の例示的なデータの流れ400を示す。例えば、FPGAベースのエンジン内のカーネル(即ち、アプリケーションの一部)を加速する必要がある場合に、図4aにおいて、401に図示されたように、サーバーシステム100のCPU140は、まず、SSDからホスト側DRAM141にデータをリード(read)する。CPU140は、次いで402においてデータをFPGA側DRAMに記入し、そして403においてカーネルを始めてFPGAでデータを処理できる。結果データは、404においてホスト側DRAMにリードされることができる。
図4bは、ここに記載された主題による、ローデータがホスト側DRAMを介してNDPEへ渡る必要がない代案的かつ例示的なデータの流れ410を示す。ローデータは411においてDMA(Direct Memory Access)タイププロセスを利用して、SSDからCPU/FPGA側DRAMに直接リードされることができる。カーネルは、412において始まってCPU/FPGAでデータを処理できる。結果データは、413において、ホスト側DRAMにリードされることができる。従って、図4bに図示されたデータの流れを利用して、各SSDの前にあるNDPEは完全に並列的な方式で動作できる。
サーバーシステムは、NDPE階層内にスイッチ階層を含めてサーバーシステムの設計に柔軟性を提供するように構成され得る。図5aは、ここに記載された主題による、サーバーシステム500の例示的な実施形態のアーキテクチャの例示的な実施形態のブロック図を示す。サーバーシステム500は、図1aに図示されたサーバーシステム100と同じ構成要素を含み得る。サーバーシステム500は、NDPE階層106a及びスイッチ階層106bを含むことにより、サーバーシステム100と異なる。NDPE階層106a及びスイッチ階層106bは、NDPEの数、そしてNDPE及びSSDの間の接続を適応的に変更することにより、サーバーシステム内で発生し得るシステム不均衡を減らすように適応的に構成され得る。一例において、スイッチ階層106bは、2つのSSDが、2つのNDPEと適応的に接続されることができるように構成され得る。他の例において、スイッチ階層106bは、各SSDが、全てのNDPEに適応的に接続されることができるように構成され得る。
図5bは、SSDの各ペア(pair)がマルチプレクサー(multiplexer)511を利用して、2つのNDPE中のいずれか1つに適応的に接続されることができる、スイッチ階層106bの例示的な実施形態のブロック図を示す。図5cは、4つのSSDの各グループが、4つのNDPE中のいずれかに適応的に接続されることができる、スイッチ階層106bの例示的な実施形態のブロック図を示す。マルチプレクサー511は、4つのSSDと4つのNDPEとの間に適応的に接続を提供する。図5dは、n個のSSDがマルチプレクサー511を利用してn個のNDPEに適応的に接続されることができる、スイッチ階層106bの例示的な実施形態のブロック図を示す。
例えば、サーバーシステム100が、CPU140において帯域幅ベースのボトルネックを経験している場合、図5bに図示されたマルチプレクサー511は、選択的に活性化されて次の技術を利用して該当するボトルネックを緩和できる。偶数ID番号 iを有するSSDは、同じID iを有するNDPEに接続され、奇数ID番号 jを有するSSDは、ID j-1又はjを有するNDPEに接続される。
図5a及び図5bを参照すると、理論的に活性化されることができるNDPエンジンの数(n′)は、下記の数学式(1)のように決定されることができる。
Figure 0007246989000001
ここで、PBWはCPUとNDPエンジンとの間のファブリックの相互接続の帯域幅であり、NBWはネットワーク103の帯域幅であり、CPUBWはCPU140の帯域幅であり、nは利用可能なNDPEの整数であり、NDPBWはNDPエンジンの帯域幅(全てのNDPEが同じ帯域幅を有する)である。
活性化されることができるNDPEの実際の数(N)は、次の数学式(2)により与えられる。
Figure 0007246989000002
下記の表1は、8つのNDPE(即ち、n=8)を備えたサーバーシステムについて活性化されることができる、NDPEの例示的な数を提供する。
Figure 0007246989000003
図6a乃至図6eに図示された灰色のNDPEは選択的に活性化されない。図6aは、N=4である例示的なサーバーシステム500において選択的に活性化されるNDPEを示す。図6bは、N=5である例示的なサーバーシステム500において選択的に活性化されるNDPEを示す。図6cは、N=6である例示的なサーバーシステム500において選択的に活性化されるNDPEを示す。図6dは、N=7である例示的なサーバーシステム500において選択的に活性化されるNDPEを示す。図6eは、N=8である例示的なサーバーシステム500において選択的に活性化されるNDPEを示す。
次の例示的な擬似(pseudo)コードは、どのNDPEが選択的に活性化されるのか、及びどのSSDが活性化されたNDPEに接続されるべきなのかを判定するのに使用され得る。
Figure 0007246989000004
図7は、ここに記載された主題による、8つのNDPE(即ち、n=8)を有する例示的なサーバーシステムに対し、どのNDPEが選択的に活性化されるのか、及びどのSSDが活性化されたNDPEに接続されるのかを判定するために、前記の例示的な擬似コードを使用する例示的な方法700についての順序図を示す。例示的なサーバーシステム500のCPUがボトルネックを経験することを考える。プロセスは、701から始める。702において、数学式1のパラメータが判定される。理論的に活性化されることができる、NDPエンジンの数(n′)が数学式1から判定されることができる。703において、数学式2からBが判定される。704において、前記で提示された、例示的な擬似コードが実行されることができる。705において、カーネルが活性化されたNDPEに配置されることができる。706において、サーバーシステム500のCPUは、結果をリードし、そして任意の追加のプロセシングを遂行できる。707において、サーバーシステム500のCPUは、減少されたシステム不均衡で結果を完了し、そして結果をネットワークを介してユーザに伝送する。708において、プロセスが終了する。
この分野における熟練された者に理解されるように、ここに記述された革新的な思想は、アプリケーションの広い範囲にわたって修正して変更されることができる。従って、請求された主題の範囲は、前記で議論された模範的な教示中のいずれかに限定されず、代わりに以下の請求項により定義される。
本発明は、ニアデータプロセシングエンジンによりシステム性能の不均衡を減らすサーバーシステムの具現に有用である。
100、100′、500:サーバーシステム
104:プロセッサ階層
105、105′:通信ファブリック階層
106、106′、106a:NDPE階層
106b:スイッチ階層
107、107′:ストレージ階層
140:プロセッサ
141:システムメモリ
150:通信スイッチ
201:データプロセシングデバイス
202:メモリ
203、204:インターフェース
511:マルチプレクサー

Claims (20)

  1. サーバーシステムであって、
    第1大容量ストレージデバイスと、
    前記第1大容量ストレージデバイスに結合された少なくとも1つの中央処理部(CPU)と、
    第1ニアデータプロセシング(NDP)エンジンであり、当該第1NDPエンジンは、第2大容量ストレージデバイスと関連付けられ、そして前記CPUと当該第1NDPエンジンに関連付けられた前記第2大容量ストレージデバイスとの間に配置される、第1NDPエンジンと、
    前記CPUと前記第1大容量ストレージデバイスとの間に配置された第2NDPエンジンと、
    を有し、
    前記第1NDPエンジンは、前記第2大容量ストレージデバイス内のデータに対する計算を実行するように構成された第1プロセシングデバイスを有し、前記第2NDPエンジンは、前記第1大容量ストレージデバイス内のデータに対する計算を実行するように構成された第2プロセシングデバイスを有し、
    当該サーバーシステムは、前記第1NDPエンジンを選択的にアクティブにするように構成され、前記第1NDPエンジンがアクティブにされないとき、前記第2大容量ストレージデバイスは前記第2NDPエンジンに接続される、サーバーシステム。
  2. 前記大容量ストレージデバイスは、少なくとも1つのソリッドステートドライブ(SSD)デバイスを有する、請求項1に記載のサーバーシステム。
  3. 当該サーバーシステムを、ネットワークを通じて、当該サーバーシステムの外部にある少なくとも1つの遠隔システムと通信可能に結合する、ネットワークインターフェースと、
    前記CPUと前記第1及び第2NDPエンジンとの間に配置された通信ファブリックと、をさらに有する、請求項2に記載のサーバーシステム。
  4. アクティブにされるNDPエンジンの数は、前記CPUに関連する帯域幅、前記ネットワークに関連する帯域幅、前記通信ファブリックに関連する帯域幅、並びに前記第1及び第2NDPエンジンに関連する帯域幅、のうちの最小帯域幅を、単一のNDPエンジンに関連する帯域幅で割ったものに少なくとも部分的に基づく、請求項3に記載のサーバーシステム。
  5. 前記第1及び第2NDPエンジンと前記第1及び第2大容量ストレージデバイスとの間に配置されたスイッチ階層、をさらに有し、
    前記スイッチ階層は、前記第1NDPエンジンを前記第1NDPエンジンに関連付けられた前記第2大容量ストレージデバイスと適応的に接続するように構成されている、請求項1に記載のサーバーシステム。
  6. 記スイッチ階層は、前記第2NDPエンジンを前記第1NDPエンジンと関連付けられた前記第2大容量ストレージデバイスと適応的に接続するように構成されている、請求項5に記載のサーバーシステム。
  7. 前記スイッチ階層は、ネットワークファブリックを有する、請求項6に記載のサーバーシステム。
  8. 前記ネットワークファブリックは、PCIeネットワークを有し、
    少なくとも1つのNDPエンジンは、プロセッサベースのNDPエンジン又はフィールドプログラマブルゲートアレイ(FPGA)ベースのNDPエンジンを有する、請求項7に記載のサーバーシステム。
  9. サーバーシステムであって、
    当該サーバーシステムを、ネットワークを通じて、当該サーバーシステムの外部にある少なくとも1つの遠隔システムと通信可能に結合するネットワークインターフェースと、
    第1ソリッドステートドライブ(SSD)デバイスと、
    前記ネットワークインターフェース及び前記第1SSDデバイスに結合された少なくとも1つの中央処理部(CPU)と、
    第1ニアデータプロセシング(NDP)エンジンであり、当該第1NDPエンジンは、第2SSDデバイスと関連付けられ、そして前記CPUと当該第1NDPエンジンと関連付けられた前記第2SSDデバイスとの間に配置される、第1NDPエンジンと、
    前記CPUと前記第1SSDデバイスとの間に配置された第2NDPエンジンと、
    を有し、
    前記第1NDPエンジンは、前記第2SSDデバイス内のデータに対する計算を実行するように構成されたプロセシングデバイスを有し、前記第2NDPエンジンは、前記第1SSDデバイス内のデータに対する計算を実行するように構成されたプロセシングデバイスを有し、
    当該サーバーシステムは、前記第1NDPエンジンを選択的にアクティブにするように構成され、前記第1NDPエンジンがアクティブにされないとき、前記第2SSDは前記第2NDPエンジンに接続される、サーバーシステム。
  10. 前記CPUと前記第1及び第2NDPエンジンとの間に配置される、通信ファブリック、をさらに有する、請求項9に記載のサーバーシステム。
  11. アクティブにされるNDPエンジンの数は、前記CPUに関連する帯域幅、前記ネットワークに関連する帯域幅、前記通信ファブリックに関連する帯域幅、及び前記第1及び第2NDPエンジンに関連する帯域幅、のうちの最小帯域幅を、単一のNDPエンジンに関連する帯域幅で割ったものに基づく、請求項10に記載のサーバーシステム。
  12. 前記第1及び第2NDPエンジンと前記第1及び第2SSDデバイスとの間に配置されるスイッチ階層、をさらに有し、
    前記スイッチ階層は、前記第1NDPエンジンを前記第1NDPエンジンと関連付けられた前記第2SSDデバイスと適応的に接続するように構成されている、請求項9に記載のサーバーシステム。
  13. 前記スイッチ階層は、ネットワークファブリックを有する、請求項12に記載のサーバーシステム。
  14. 前記ネットワークファブリックは、PCIeネットワークを有し、
    少なくとも1つのNDPエンジンは、プロセッサベースのNDPエンジン又はフィールドプログラマブルゲートアレイ(FPGA)ベースのNDPエンジンを有する、請求項13に記載のサーバーシステム。
  15. サーバーシステムであって、
    第1大容量ストレージデバイスと、
    前記第1大容量ストレージデバイスに結合された少なくとも1つの中央処理部(CPU)と、
    第1ニアデータプロセシング(NDP)エンジンであり、当該第1NDPエンジンは、第2大容量ストレージデバイスと関連付けられ、そして前記CPUと当該第1NDPエンジンに関連付けられた前記第2大容量ストレージデバイスとの間に配置され、当該第1NDPエンジンは、前記第2大容量ストレージデバイス内のデータに対する計算を実行するように構成されたプロセシングデバイスを有する、第1NDPエンジンと、
    前記CPUと前記第1大容量ストレージデバイスとの間に配置された第2NDPエンジンであり、当該第2NDPエンジンは、前記第1大容量ストレージデバイス内のデータに対する計算を実行するように構成されたプロセシングデバイスを有する、第2NDPエンジンと、
    前記第1及び第2NDPエンジンと前記第1及び第2大容量ストレージデバイスとの間に配置されたスイッチ階層であり、前記第1NDPエンジンを前記第1NDPエンジンに関連付けられた前記第2大容量ストレージデバイスと適応的に接続するように構成されたスイッチ階層と、を有し、
    当該サーバーシステムは、前記第1NDPエンジンを選択的にアクティブにするように構成されている、サーバーシステム。
  16. 当該サーバーシステムを、ネットワークを介して、当該サーバーシステムの外部にある少なくとも1つの遠隔システムと通信可能に結合するネットワークインターフェースと、
    前記CPUと前記第1及び第2NDPエンジンとの間に配置された通信ファブリックと、をさらに有する、請求項15に記載のサーバーシステム。
  17. 記スイッチ階層は、前記第2NDPエンジンを前記第1NDPエンジンと関連付けられた前記第2大容量ストレージデバイスと適応的に接続するように構成されている、請求項15に記載のサーバーシステム。
  18. アクティブにされるNDPエンジンの数は、前記CPUに関連する帯域幅、前記ネットワークに関連する帯域幅、前記通信ファブリックに関連する帯域幅、並びに前記第1及び第2NDPエンジンに関連する帯域幅、のうちの最小帯域幅を、単一のNDPエンジンに関連する帯域幅で割ったものに基づく、請求項16に記載のサーバーシステム。
  19. 前記スイッチ階層は、ネットワークファブリックの一部である、請求項18に記載のサーバーシステム。
  20. 前記ネットワークファブリックは、PCIeネットワークを有し、
    少なくとも1つのNDPエンジンは、プロセッサベースのNDPエンジン又はフィールドプログラマブルゲートアレイ(FPGA)ベースのNDPエンジンを有する、請求項19に記載のサーバーシステム。
JP2019058271A 2018-04-02 2019-03-26 Ndpサーバー―データセンターのストレージサーバーベースのデータ中心のコンピューティングアーキテクチャ― Active JP7246989B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862651707P 2018-04-02 2018-04-02
US62/651,707 2018-04-02
US16/028,281 2018-07-05
US16/028,281 US10884672B2 (en) 2018-04-02 2018-07-05 NDP-server: a data-centric computing architecture based on storage server in data center

Publications (3)

Publication Number Publication Date
JP2019185764A JP2019185764A (ja) 2019-10-24
JP2019185764A5 JP2019185764A5 (ja) 2022-03-24
JP7246989B2 true JP7246989B2 (ja) 2023-03-28

Family

ID=68056143

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019058271A Active JP7246989B2 (ja) 2018-04-02 2019-03-26 Ndpサーバー―データセンターのストレージサーバーベースのデータ中心のコンピューティングアーキテクチャ―

Country Status (5)

Country Link
US (3) US10884672B2 (ja)
JP (1) JP7246989B2 (ja)
KR (1) KR102407573B1 (ja)
CN (1) CN110347626B (ja)
TW (1) TWI767111B (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6749030B1 (ja) * 2019-11-08 2020-09-02 日本テクノロジーソリューション株式会社 加工装置及び方法
KR20220087297A (ko) * 2020-12-17 2022-06-24 삼성전자주식회사 처리 코드를 실행하는 스토리지 장치 및 이의 동작 방법
KR20220145656A (ko) 2021-04-22 2022-10-31 에스케이하이닉스 주식회사 호스트 및 이를 포함하는 컴퓨팅 시스템
US20230099831A1 (en) * 2021-09-24 2023-03-30 Samsung Electronics Co., Ltd. Systems and methods for near-storage processing in solid state drives

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010231598A (ja) 2009-03-27 2010-10-14 Nec Corp ディスクアレイ装置、ディスク制御装置、ディスクアレイ装置における負荷分散方法
US20160378401A1 (en) 2015-06-26 2016-12-29 Emc Corporation Data storage system having segregated control plane and/or segregated data plane architecture
US20170192718A1 (en) 2014-04-28 2017-07-06 Hitachi, Ltd. Storage apparatus and data processing method thereof, and storage system
JP2017534942A (ja) 2014-09-26 2017-11-24 インテル・コーポレーション ソリッドステートドライブを使用して計算集約的な動作を加速するための技術

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8008081B1 (en) 2000-09-23 2011-08-30 Demont & Breyer, Llc Data processing system for providing an efficient market for specialty chemicals
JP2007148982A (ja) * 2005-11-30 2007-06-14 Hitachi Ltd ストレージシステム及びその管理方法
CN103336745B (zh) * 2013-07-01 2017-02-01 无锡北方数据计算股份有限公司 一种基于ssd缓存的fc hba及其设计方法
CN104125292A (zh) * 2014-08-06 2014-10-29 曙光信息产业(北京)有限公司 一种数据处理装置、云服务器及其使用方法
US10447534B1 (en) * 2015-03-31 2019-10-15 EMC IP Holding Company LLC Converged infrastructure
US10067708B2 (en) 2015-12-22 2018-09-04 Arm Limited Memory synchronization filter
CN105573959B (zh) 2016-02-03 2018-10-19 清华大学 一种计算存储一体的分布式计算机
KR101923661B1 (ko) 2016-04-04 2018-11-29 주식회사 맴레이 플래시 기반 가속기 및 이를 포함하는 컴퓨팅 디바이스
US10082957B2 (en) * 2016-07-20 2018-09-25 Western Digital Technologies, Inc. Dual-ported PCI express-based storage cartridge including single-ported storage controllers
US9965356B2 (en) * 2016-09-02 2018-05-08 Alibaba Group Holding Limited Method and system of high-availability PCIE SSD with software-hardware jointly assisted implementation to enhance immunity on multi-cell upset
CN106933510B (zh) 2017-02-27 2020-01-21 华中科技大学 一种存储控制器
CN107341130B (zh) * 2017-06-29 2020-11-17 上海兆芯集成电路有限公司 具有近端数据处理引擎的芯片组

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010231598A (ja) 2009-03-27 2010-10-14 Nec Corp ディスクアレイ装置、ディスク制御装置、ディスクアレイ装置における負荷分散方法
US20170192718A1 (en) 2014-04-28 2017-07-06 Hitachi, Ltd. Storage apparatus and data processing method thereof, and storage system
JP2017534942A (ja) 2014-09-26 2017-11-24 インテル・コーポレーション ソリッドステートドライブを使用して計算集約的な動作を加速するための技術
US20160378401A1 (en) 2015-06-26 2016-12-29 Emc Corporation Data storage system having segregated control plane and/or segregated data plane architecture

Also Published As

Publication number Publication date
US20210096747A1 (en) 2021-04-01
TWI767111B (zh) 2022-06-11
US11803337B2 (en) 2023-10-31
US20190303014A1 (en) 2019-10-03
US10884672B2 (en) 2021-01-05
US20240045621A1 (en) 2024-02-08
KR20190115402A (ko) 2019-10-11
TW201942761A (zh) 2019-11-01
CN110347626A (zh) 2019-10-18
CN110347626B (zh) 2021-10-22
JP2019185764A (ja) 2019-10-24
KR102407573B1 (ko) 2022-06-10

Similar Documents

Publication Publication Date Title
JP7246989B2 (ja) Ndpサーバー―データセンターのストレージサーバーベースのデータ中心のコンピューティングアーキテクチャ―
EP3400688B1 (en) Massively parallel computer, accelerated computing clusters, and two dimensional router and interconnection network for field programmable gate arrays, and applications
Das et al. Performance and power optimization through data compression in network-on-chip architectures
US9606797B2 (en) Compressing execution cycles for divergent execution in a single instruction multiple data (SIMD) processor
Kim et al. In-storage processing of database scans and joins
US8095782B1 (en) Multiple simultaneous context architecture for rebalancing contexts on multithreaded processing cores upon a context change
US8572407B1 (en) GPU assist for storage systems
US20160352598A1 (en) Message aggregation, combining and compression for efficient data communications in gpu-based clusters
Tipparaju et al. Host-assisted zero-copy remote memory access communication on infiniband
US20160224379A1 (en) Mapping Processes to Processors in a Network on a Chip Computing System
KR20220068910A (ko) 스토리지 셔플 가속을 위한 시스템, 방법 및 장치
KR20230041593A (ko) 프로그래밍가능한 인터리브 입도를 갖는 cxl 타입-2 디바이스들을 위한 확장가능한 주소 디코딩 체계
US9164903B2 (en) Memory manager
Zhang et al. A distributed in-memory key-value store system on heterogeneous CPU–GPU cluster
WO2023134735A1 (zh) 计算设备、数据处理方法、系统及相关设备
Jain-Mendon et al. A hardware–software co-design approach for implementing sparse matrix vector multiplication on FPGAs
Gao et al. Impact of reconfigurable hardware on accelerating mpi_reduce
Fukuhara et al. FPGA context-based live migration maintaining network consistency
US11119787B1 (en) Non-intrusive hardware profiling
Hauser et al. Performance of a LU decomposition on a multi-FPGA system compared to a low power commodity microprocessor system
US20240070107A1 (en) Memory device with embedded deep learning accelerator in multi-client environment
US11550718B2 (en) Method and system for condensed cache and acceleration layer integrated in servers
Li et al. Iconn: A communication infrastructure for heterogeneous computing architectures
US20220164122A1 (en) Systems, methods, and devices for shuffle acceleration
US20230070536A1 (en) Streaming matrix transpose hardware

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220315

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220315

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20220315

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220729

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220809

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221109

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230315

R150 Certificate of patent or registration of utility model

Ref document number: 7246989

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150