JP2020017263A - メモリーシステム - Google Patents
メモリーシステム Download PDFInfo
- Publication number
- JP2020017263A JP2020017263A JP2019093313A JP2019093313A JP2020017263A JP 2020017263 A JP2020017263 A JP 2020017263A JP 2019093313 A JP2019093313 A JP 2019093313A JP 2019093313 A JP2019093313 A JP 2019093313A JP 2020017263 A JP2020017263 A JP 2020017263A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- pool
- data
- map operation
- memory system
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Memory System (AREA)
- Advance Control (AREA)
Abstract
【課題】システムのエネルギー消耗を減らし、同時に性能を向上させることが可能なメモリーシステムを提供する。【解決手段】メモリーシステム10は、プロセッサ20と、ファブリックネットワーク30と、プールメモリー100を備える。プールメモリーは、データを格納する複数のメモリー120と、複数のメモリーに格納されたデータを読み取ってマップ演算を行い、マップ演算の結果データを複数のメモリーに格納するプールメモリーコントローラー110を備える。【選択図】図2
Description
本発明は、メモリーシステムに関するものであり、大容量メモリー装置の加速器(Accelerator)に関する技術である。
最近、スマートフォン、タブレットPCのような移動通信端末機の普及が大衆化している。そして、ソーシャルネットワークサービス(SNS、Social Network Service)、モノ(機械)のネットワーク(M2M、Machine to Machine)、センサネットワーク(Sensor Network)の使用が増加している。これにより、データの量、生成速度及びその多様性が幾何級数的に増加している。ビッグデータの処理のためには、メモリーの速度も重要であるが、格納容量が大きいメモリー装置及びメモリーモジュールが要求される。
このため、メモリーシステムは、メモリーの物理的限界を克服しつつデータの格納容量を増やすために複数の統合されたメモリーを具備する。一例として、クラウドデータセンター(Cloud Data Center)のサーバー構造(Server Architecture)がビッグデータアプリケーション(Big−Data Application)を効率的に実行させるための構造に変わっている。
ビッグデータを効率的に処理するために、複数のメモリーが統合されたプールメモリー(Pooled Memory)を使用する。プールメモリーは、多い容量と高い帯域幅(Bandwidth)を提供でき、インメモリデータベース(In−memory Database)等で有用に使用できる。
ビッグデータを効率的に処理するために、複数のメモリーが統合されたプールメモリー(Pooled Memory)を使用する。プールメモリーは、多い容量と高い帯域幅(Bandwidth)を提供でき、インメモリデータベース(In−memory Database)等で有用に使用できる。
本発明の実施形態は、プールメモリー内部に加速器を備え、システムのエネルギー消耗を減らし、同時に性能を向上させることができるようにするメモリーシステムを提供する。
本発明の実施形態に係るメモリーシステムは、データを格納する複数のメモリーと、複数のメモリーに格納されたデータを読み取ってマップ演算を行い、マップ演算の結果データを複数のメモリーに格納するプールメモリーコントローラーと、を備える。
また、本発明の他の実施形態によるメモリーシステムは、プロセッサと連結されたファブリックネットワークと、ファブリックネットワークを介してプロセッサとパケットを中継し、プロセッサの要請時メモリーに格納されたデータをプロセッサに伝達するプールメモリーと、を備え、プールメモリーが、メモリーに格納されたデータを読み取ってマップ演算をオフ−ローディングし、マップ演算の結果データをメモリーに格納するプールメモリーコントローラーを備える。
本発明の実施形態は、システムの性能を向上させ、データ演算のために必要なエネルギーを節約できるようにする効果を提供する。
以下、添付の図面を参照し本発明の実施形態に対して詳しく説明する。本発明の実施形態を説明することにおいて、ある部分が他の部分と『連結』されているという時、これは、『直接的に連結』されている場合だけでなく、その中間に他の素子を間に置いて『電気的に連結』されている場合も含む。また、ある部分がある構成要素を『含む』又は『具備』するという時、これは、特別に反対される記載がない限り、他の構成要素を除外するのではなく、他の構成要素をさらに含むか具備できることを意味する。また、明細書全体の記載において、一部構成要素を単数形で記載したからといって、本発明がそれに限られるものではなく、当該構成要素が複数でなり得ることが分かる。
データセンターアプリケーションは、データの大きさが益々大きくなるにつれ、さらに多いハードウェア資源を必要とする。サーバーアーキテクチャ(Server Architecture)は、ハードウェア資源をより効率的に使用しようとする方向に進化している。
一例として、クラウドデータセンター(Cloud Data Center)では、ディープラーニング(Deep Learning)をはじめとする多くのマシンラーニング(Machine Learning)アプリケーションが実行されている。前記のようなディープラーニング、マシンラーニング等のアプリケーションは、大部分時間的地域性(Temporal Locality)が低いため、中央処理装置(CPU;Central Processing Unit)よりはグラフィック処理装置(GPU;Graphic Processing Unit)やFPGA(Field Programmable Gate Array)等のハードウェア加速器(Hardware Accelerator)を介して演算を行うのが一般的である。
ここで、時間的地域性(temporal locality)は、一度接近したデータに比較的近い時間内に再び接近することを意味する。すなわち、前記のアプリケーションは、頻繁に接近されるホット(hot)データよりしばらく接近のないコールド(cold)データを使用する。
プロセッサ(例えば、中央処理装置)が加速器(Accelerator)にジョブ(Job)をオフ−ローディング(Off−loading)する過程を検討してみれば、次の通りである。まず、プロセッサのローカルメモリー(Local Memory)から加速器のローカルメモリーにデータを移す。以後に、加速器が演算を終了すれば、その結果データをプロセッサの方に再び移さなければならない。
もし、データを移す費用がデータを演算する費用より高ければ、データをできるだけ少なく移すようにアーキテクチャを具現するのが全体費用を節減できる。このために、最近、メモリー駆動コンピューティングコンセプト(Memory−Driven Computing Concept)が提案された。
図1は、本発明の実施形態によるメモリーシステムの概念を説明するための図面である。
図1の実施形態は、システムオンチップ(SoC;System On Chip)、すなわち、プロセッサ中心のコンピューティング(演算装置)構造からメモリー中心のコンピューティング構造にアーキテクチャが変化されることを示す。プロセッサ中心のコンピューティング構造では、一つのシステムオンチップが一つのメモリーと一対一方式で連結される。
図1の実施形態は、システムオンチップ(SoC;System On Chip)、すなわち、プロセッサ中心のコンピューティング(演算装置)構造からメモリー中心のコンピューティング構造にアーキテクチャが変化されることを示す。プロセッサ中心のコンピューティング構造では、一つのシステムオンチップが一つのメモリーと一対一方式で連結される。
メモリー駆動コンピューティング(Memory−Driven Computing)とは、複数のシステムオンチップがファブリックネットワーク(Fabric Network)を介して連結された統合メモリー(Unified Memory)を使用する。システムオンチップ(SoC)間にデータを取り交わす時には、メモリー帯域幅(Memory Bandwidth)でデータを取り交わすようになる。
また、ファブリックネットワークで連結された一つの統合メモリーは、データを取り交わすために既存のようにメモリーコピー(Memory Copy)をしなくてもよい。前記のようなメモリー駆動コンピューティング(Memory−Driven Computing)が常用化されるためには、メモリー意味的相互連結(Memory Semantic Interconnect)の高い帯域幅(Bandwidth)、低いレイテンシ(Latency)、一貫性(Coherency)等を支援しなければならない。
本発明の実施形態が属する技術分野では、これに関連してトランザクション基盤(Transaction−based)メモリーシステムの相互連結(Interconnect)に対する研究が活発に進行中である。
加速器に関連しては、近接データ処理(Near Data Processing;NDP)或いはプロセッシングインメモリー(Processing In Memory;PIM)のようにワークロード(Workload)の特性による加速器の位置に対する研究も広く進行されている。ここで、プロセッシングインメモリーは、データ処理速度及びデータ転送速度を増加させるために、プロセッサロジックがメモリーセルに密接に結合されたメモリーを意味する。
本発明の実施形態は、多数のメモリーが統合されたプールメモリー構造(Pooled Memory Architecture)及びそれに適合するイン−メモリーデータベース運用(In−memory Database Usage)に関する技術である。以下では、本発明の実施形態に係るマップ−リデュースアプリケーション(Map−Reduce Application)の特徴を説明し、マップ(Map)演算をプールメモリー(Pooled Memory)内の加速器(後述する)で処理する過程を説明する。
図2は、本発明の実施形態によるメモリーシステムの構成を示す図面である。
本発明の実施形態によるメモリーシステム10は、前記で説明したメモリー駆動コンピューティング(Memory−Driven Computing)構造を基盤とする。このようなメモリーシステム10は、複数のプロセッサ(例えば、中央処理装置、CPU)20、ファブリックネットワーク30、複数のチャンネル40及び複数のプールメモリー100を備える。
本発明の実施形態によるメモリーシステム10は、前記で説明したメモリー駆動コンピューティング(Memory−Driven Computing)構造を基盤とする。このようなメモリーシステム10は、複数のプロセッサ(例えば、中央処理装置、CPU)20、ファブリックネットワーク30、複数のチャンネル40及び複数のプールメモリー100を備える。
ここで、複数のプロセッサ20は、ノードCNDを介してファブリックネットワーク30と連結される。そして、複数のプロセッサ20は、ファブリックネットワーク30を介して複数のプールメモリー100と連結される。また、プールメモリー100は、複数のチャンネル40を介してファブリックネットワーク30に連結される。すなわち、複数のプールメモリー100のそれぞれは、N個のチャンネル40を介してファブリックネットワーク30に連結されてもよい。
複数のプールメモリー100のそれぞれは、複数のメモリー120と、複数のメモリー120(又はメモリー装置)を制御するためのプールメモリーコントローラー(PMC;Pooled Memory Controller)110を備える。プールメモリーコントローラー110は、バス(BUS)を介して各メモリー120と連結される。
それぞれのメモリー120は、ファブリックネットワーク30に直ぐ連結されてもよい。しかし、多数のメモリー120が一つの統合されたプールメモリー100に含まれ、プールメモリー100がファブリックネットワーク30に連結されてもよい。
プールメモリー100が多数のメモリー120を備える場合、プールメモリーコントローラー110は、ファブリックネットワーク30と多数のメモリー120の間で各メモリー120を管理する。
ここで、プールメモリーコントローラー110は、処理率(Throughput)を高めるためにメモリーインターリビング(Memory Interleaving)を行うか、信頼性(Reliability)、可用性(Availability)及び耐久性(Serviceability)等を高めるためにアドレスリマッピング(Address Remapping)を支援する。
イン−メモリーデータベース(In−memory Database)とは、早い接近のためにデータベース(DB)をストレージ(Storage)ではないメインメモリー(Main Memory)に格納するデータベース管理システムである。
現在のサーバーシステム(Server System)は、メモリー(Memory)の容量を増加させることに物理的な限界がある。これによって、アプリケーション(Application)がデータベースの大きさを各サーバー(Server)が有しているメモリー容量以上に大きくできない。データベースの大きさが大きくなれば、仕方なく複数のサーバーに分けてデータベースを格納するようになり、複数のサーバーを組み合わせる過程で性能が低下される部分がある。プールメモリー100は、多い容量と高い帯域幅(Bandwidth)を提供するため、イン−メモリーデータベース(In−memory Database)で有用に使用され得る。
図3は、図2のプールメモリーコントローラー110に関する詳細構成を示す図面である。
プールメモリーコントローラー110は、インターフェース111と加速器112を備える。ここで、インターフェース111は、ファブリックネットワーク30と加速器112及びメモリー120の間でパケットを中継する。インターフェース111は、複数のチャンネルCNを介して加速器112と連結される。
プールメモリーコントローラー110は、インターフェース111と加速器112を備える。ここで、インターフェース111は、ファブリックネットワーク30と加速器112及びメモリー120の間でパケットを中継する。インターフェース111は、複数のチャンネルCNを介して加速器112と連結される。
本発明の実施形態において、インターフェース111は、ファブリックネットワーク30と加速器112及びメモリー120の間でパケットを中継するためのスイッチを備えてもよい。本発明の実施形態では、インターフェース111がスイッチを含むことを一例として説明したが、パケットを中継するための手段はこれに限定されない。
そして、加速器112は、インターフェース111を介して印加されるデータの演算処理を行う。例えば、加速器112は、インターフェース111を介してメモリー120から印加されるデータのマップ演算を行い、マップ演算結果に対するデータを、インターフェース111を介してメモリー120に格納する。
本発明の実施形態では、プールメモリーコントローラー110に一つの加速器112が含まれることを一例として説明する。しかし、本発明の実施形態はこれに限定されるものではなく、プールメモリーコントローラー110に多数の加速器112が備えられてもよい。
マップ−リデュース(Map−Reduce)アプリケーションは、大容量データ処理を分散並列コンピューティングで処理するための目的で制作したソフトウェアフレームワーク(Software Framework)である。多様なアプリケーションでこのマップ−リデュースライブラリを使用している。マップ−リデュースアプリケーションにおいて、マップ演算は、(key、value)形態で中間情報を抽出すれば、リデュース演算がこれを集めて望む最終結果を出力する。
例えば、マップ−リデュースアプリケーションを介して『毎年の最も高かった地球気温』を検索すると仮定すれば、マップ演算は、テキストファイルを読んで年度及び気温に対する情報を抽出し(年度、気温)形態のリストを出力する。そして、リデュース演算は、この結果を収集して温度順に整列し望む最終結果を出力する。ここで、注目すべき点は、マップ演算に使用されるデータは大体大容量である一方、マップ演算の結果データは比較的大きさが小さいということである。
本発明の実施形態は、マップ−リデュースアプリケーションのマップ演算のように大容量データを処理するが、データ再使用(Data Reuse)の少ない演算をプールメモリーコントローラー110内の加速器112でオフ−ローディング(Off−loading)できる。ここで、オフ−ローディングとは、プロセッサ20からの要請を受信して解釈し演算を行った後、その演算結果を出力する一連の過程を示す。データをプールメモリー100内で処理するようになれば、プロセッサ20のノードCNDまでデータを伝達するためのエネルギーを節約でき、性能もさらに高めることができる。
本発明の実施形態に係る加速器112は、プールメモリーコントローラー110の内に具備されるか、メモリー120内に位置してよい。近接データ処理の観点では、データを各メモリー120内で処理することがプールメモリーコントローラー110の内部で処理することよりさらに効率的である。
プールメモリーコントローラー110は、高い帯域幅(Bandwidth)を提供するためにメモリーインターリビング(Memory Interleaving)を行う。このような場合、データが複数のメモリー120に分かれて格納される。このようになれば、加速器112が必要とするデータもまた複数のメモリー120に分かれ得るため、本発明の実施形態では、加速器112の物理的な位置がプールメモリーコントローラー110内に配置されることを一例として説明する。
ここからは、マップ−リデュースアプリケーションのマップ演算を加速器112でオフ−ローディングすることが性能(Performance)とエネルギー(Energy)の観点でメモリーシステム10全体的にどの程度利得であるかを検討する。
マップ−リデュースアプリケーションのマップ演算のように加速器112が処理する演算が単純であれば、加速器112における演算時間は、データをメモリーから読み取る帯域幅によって左右される。したがって、加速器112の帯域幅を高めることで加速器112の演算時間を減らすことができる。
図3に示された通り、一連のプロセッサ20のノードCNDは、ファブリックネットワーク30を経てプールメモリー100と連結される。各ノードCNDは、各プロセッサ20別に1個のリンク(Link)L1を有しており、プールメモリーコントローラー110内部の加速器112が4個のリンクL2を有すると仮定する。すなわち、プロセッサ20のリンクL1より加速器112のリンクL2に対する帯域幅をさらに広く割り当てる。そうすれば、マップ演算を加速器112にオフ−ローディングする場合、プロセッサ20で処理することより4倍早く演算できる。
マップ演算及びリデュース演算をプロセッサ20が全て行う場合、マップ演算に所要される時間が全体実行時間の99%であると仮定する。また、一つのプロセッサ20で複数のアプリケーションが実行されるが、そのうちマップ−リデュースアプリケーションの実行時間が全体アプリケーションの実行時間の10%を占めると仮定する。マップ演算を加速器112にオフ−ローディングする場合、マップ演算時間が1/4に減っていくのにつれ、全体システム性能は81%向上され得る。
図4乃至図6は、本発明の実施形態によるメモリーシステム10の動作を説明するための図面である。
まず、図4の経路1によって示されるように、プロセッサ20は、プールメモリー100側にマップ演算要請パケットを伝達する。すなわち、プロセッサ20から送信されたマップ演算要請パケットは、ファブリックネットワーク30を介してプールメモリーコントローラー110のインターフェース111を経て加速器112に伝達される。ここで、マップ演算要請パケットは、マップ演算に使用されるデータが格納されたアドレス、データの大きさ及びマップ演算結果データを格納する住所等に対する情報が含まれてよい。
まず、図4の経路1によって示されるように、プロセッサ20は、プールメモリー100側にマップ演算要請パケットを伝達する。すなわち、プロセッサ20から送信されたマップ演算要請パケットは、ファブリックネットワーク30を介してプールメモリーコントローラー110のインターフェース111を経て加速器112に伝達される。ここで、マップ演算要請パケットは、マップ演算に使用されるデータが格納されたアドレス、データの大きさ及びマップ演算結果データを格納する住所等に対する情報が含まれてよい。
次に、プールメモリーコントローラー110は、図4の経路2によって示されるように、マップ演算応答パケットをファブリックネットワーク30を介してプロセッサ20に伝達する。すなわち、プールメモリーコントローラー110は、加速器112がマップ演算要請パケットをよく受信したことを知らせる信号をプロセッサ20に伝達する。
その後、図5の経路3によって示されるように、プールメモリーコントローラー110は、各メモリー120でマップ演算に必要なデータを読み取り加速器112に伝達する。ここで、加速器112で必要とするデータが複数のメモリー120に分かれてよく、このような場合、加速器112は、多数のメモリー120からデータを読み取る。そうすれば、加速器112は、メモリー120から読み取られたデータに基づいてマップ演算を行う。
次いで、プールメモリーコントローラー110は、図5の4経路でのように、加速器112によって演算されたマップ演算結果データを読み取り、各メモリー120に伝達して格納する。加速器112によって演算されたデータは多数のメモリー120に分かれて格納されてよい。
次に、図6の5経路でのように、プールメモリーコントローラー110は、プロセッサ20側にインターラプトパケットを伝達する。すなわち、プールメモリーコントローラー110は、加速器112のマップ演算が終了したことを示すインターラプトパケットを、ファブリックネットワーク30を介してプロセッサ20に伝達する。
その後、プールメモリーコントローラー110は、図6の6経路でのように、メモリー120に格納されたマップ演算結果データを読み取り、インターフェース111、ファブリックネットワーク30を介してプロセッサ20に伝達する。
図7は、本発明の実施形態によるメモリーシステムの性能改善を示す図面である。図7は、加速器112でマップ演算を行う場合、加速器112のチャンネルCN数を増加させることによって全体システムの性能(Performance)がどの程度増加するかを示す結果グラフである。
加速器112のチャンネル(Channel)CN数を増加させることによって性能も共に増加することが分かる。しかし、チャンネルCN数を増加させる費用に比べ性能増加量は益々小くなるため、本発明の実施形態では加速器112のチャンネルCNを2個乃至4個に設定することを一例として説明する。
プロセッサ20のノードCNDを介してデータを移動させるのに1リンクL1当たり1pJ(エネルギー消耗量)/ビート(bit)を消耗すると仮定する。プロセッサ20でデータを処理するためには、図3でメモリー120のバスBUS、ファブリックネットワーク30のチャンネル40及びプロセッサ20のノードCND、すなわち、総3個のリンクを経なければならないため3pJ/bitが消耗される。しかし、マップ演算を加速器112でオフ−ローディングするようになれば、データがメモリー120のバスBUSのみ経るようになるため、データを移動するのに消耗されるエネルギーを1/3である1pJ/bitに減らすことができる。全体システムでどれ程のエネルギーが節約されるかを計算するためには、各ハードウェアのスタティックパワー(Static Power)に対し全て考慮しなければならない。
以上のように、本発明の実施形態によるプールメモリー100は、多い容量と高い帯域幅を提供でき、イン−メモリーデータベース等で有用に使用できる。プールメモリーコントローラー110内部に加速器112を追加し、加速器112でマップ−リデュースアプリケーションのマップ演算をオフ−ローディングすることで、全体システムの性能を高めるとともにエネルギーを節約できる。
本発明が属する技術分野の当業者は、本発明がその技術的思想や必須的特徴を変更せずに他の具体的な形態で実施され得るため、以上で記述した実施形態は全ての面において例示的なものであり、限定的ではないものとして理解しなければならない。本発明の範囲は、詳細な説明よりは後述する特許請求の範囲によって表れるようになり、特許請求の範囲の意味及び範囲、そしてその等価概念から導出される全ての変更又は変形された形態が、本発明の範囲に含まれるものとして解釈されなければならない。
10: メモリーシステム
20: 複数のプロセッサ
30: ファブリックネットワーク
40: 複数のチャンネル
100: 複数のプールメモリー
20: 複数のプロセッサ
30: ファブリックネットワーク
40: 複数のチャンネル
100: 複数のプールメモリー
Claims (20)
- データを格納する複数のメモリーと、
前記複数のメモリーに格納された前記データを読み取ってマップ演算を行い、前記マップ演算の結果データを前記複数のメモリーに格納するプールメモリーコントローラーと、
を備えるメモリーシステム。 - 前記プールメモリーコントローラーが、
ファブリックネットワークを介してプロセッサと前記プールメモリーコントローラーの間でパケットを中継するインターフェースと、
該インターフェースを介して伝達された前記データに対し前記マップ演算を行い、前記マップ演算の結果データを、前記インターフェースを介して前記複数のメモリーに格納する加速器と、
を備える請求項1に記載のメモリーシステム。 - 前記インターフェースが、
複数のチャンネルを介して前記加速器と連結される請求項2に記載のメモリーシステム。 - 前記複数のチャンネルのリンク数は、前記プロセッサのリンク数より多い請求項3に記載のメモリーシステム。
- 前記プールメモリーコントローラーが、
前記プロセッサから前記インターフェースを介してマップ演算要請パケットを受信する請求項2に記載のメモリーシステム。 - 前記マップ演算要請パケットが、
前記マップ演算に使用されるデータが格納されたアドレス、前記データの大きさ及び前記マップ演算の結果データを格納する住所のうち少なくとも何れか一つ以上の情報を含む請求項5に記載のメモリーシステム。 - 前記プールメモリーコントローラーが、
前記インターフェースを介してマップ演算応答パケットを前記プロセッサに送信する請求項2に記載のメモリーシステム。 - 前記プールメモリーコントローラーが、
前記複数のメモリーから前記マップ演算に必要なデータを読み取って前記加速器に伝達する請求項2に記載のメモリーシステム。 - 前記プールメモリーコントローラーが、
前記加速器によって演算された前記マップ演算の結果データを読み取り、前記複数のメモリーに格納する請求項2に記載のメモリーシステム。 - 前記プールメモリーコントローラーが、
前記マップ演算の終了時に前記インターフェースを介して前記プロセッサにインターラプトパケットを伝達する請求項2に記載のメモリーシステム。 - 前記プールメモリーコントローラーが、
前記複数のメモリーに格納された前記マップ演算の結果データを読み取り、前記インターフェースを介して前記プロセッサに伝達する請求項2に記載のメモリーシステム。 - 前記プールメモリーコントローラーが、
前記複数のメモリーに対してインターリビングを行う請求項1に記載のメモリーシステム。 - 前記プールメモリーコントローラーが、
前記複数のメモリーに対してアドレスリマッピングを行う請求項1に記載のメモリーシステム。 - 前記プールメモリーコントローラーが、
前記マップ演算時にマップ−リデュースアプリケーションを利用する請求項1に記載のメモリーシステム。 - プロセッサと連結されたファブリックネットワークと、
前記ファブリックネットワークを介して前記プロセッサとパケットを中継し、前記プロセッサの要請時メモリーに格納されたデータを前記プロセッサに伝達するプールメモリーと、
を備え、
前記プールメモリーが、
前記メモリーに格納されたデータを読み取ってマップ演算をオフ−ローディングし、前記マップ演算の結果データを前記メモリーに格納するプールメモリーコントローラーを備えるメモリーシステム。 - 前記プールメモリーコントローラーが、
前記ファブリックネットワークを介して前記プロセッサと前記プールメモリーコントローラーの間でパケットを中継するインターフェースと、
前記インターフェースを介して伝達された前記データに対し前記マップ演算をオフ−ローディングし、前記マップ演算の結果データを、前記インターフェースを介して前記メモリーに格納する加速器と、
を備える請求項15に記載のメモリーシステム。 - 前記プールメモリーコントローラーが、
前記プロセッサから前記インターフェースを介してマップ演算要請パケットを受信し、前記インターフェースを介してマップ演算応答パケットを前記プロセッサに送信する請求項16に記載のメモリーシステム。 - 前記プールメモリーコントローラーが、
前記メモリーから前記マップ演算に必要なデータを読み取って前記加速器に伝達し、前記加速器によって演算された前記マップ演算の結果データを前記メモリーに格納する請求項16に記載のメモリーシステム。 - 前記プールメモリーコントローラーが、
前記マップ演算の終了時に前記インターフェースを介して前記プロセッサにインターラプトパケットを伝達し、前記メモリーに格納された前記マップ演算の結果データを読み取り、前記インターフェースを介して前記プロセッサに伝達する請求項16に記載のメモリーシステム。 - 前記プールメモリーコントローラーが、
前記メモリーに対してインターリビング及びアドレスリマッピング動作のうち少なくとも何れか一つを行う請求項15に記載のメモリーシステム。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0085506 | 2018-07-23 | ||
KR20180085506 | 2018-07-23 | ||
KR10-2018-0155681 | 2018-12-06 | ||
KR1020180155681A KR102551726B1 (ko) | 2018-07-23 | 2018-12-06 | 메모리 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020017263A true JP2020017263A (ja) | 2020-01-30 |
Family
ID=69163035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019093313A Pending JP2020017263A (ja) | 2018-07-23 | 2019-05-17 | メモリーシステム |
Country Status (3)
Country | Link |
---|---|
US (1) | US10915470B2 (ja) |
JP (1) | JP2020017263A (ja) |
CN (1) | CN110750210B (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11467834B2 (en) * | 2020-04-01 | 2022-10-11 | Samsung Electronics Co., Ltd. | In-memory computing with cache coherent protocol |
CN112905530B (zh) * | 2021-03-29 | 2023-05-26 | 上海西井信息科技有限公司 | 片上架构、池化计算加速器阵列、单元以及控制方法 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69119149T2 (de) | 1990-07-06 | 1997-01-16 | Nippon Electric Co | Struktur zur direkten Speicher-zu-Speicher-Übertragung |
US5923654A (en) | 1996-04-25 | 1999-07-13 | Compaq Computer Corp. | Network switch that includes a plurality of shared packet buffers |
US7899052B1 (en) | 1999-01-27 | 2011-03-01 | Broadcom Corporation | Memory structure for resolving addresses in a packet-based network switch |
US8429143B2 (en) | 2008-04-25 | 2013-04-23 | International Business Machines Corporation | Methods and systems for improving hash table performance |
US9473373B2 (en) | 2012-04-04 | 2016-10-18 | Viavi Solutions, Inc. | Method and system for storing packet flows |
US20140115579A1 (en) * | 2012-10-19 | 2014-04-24 | Jonathan Kong | Datacenter storage system |
US9495246B2 (en) * | 2013-01-21 | 2016-11-15 | Kaminario Technologies Ltd. | Raid erasure code applied to partitioned stripe |
US9195621B2 (en) * | 2013-03-15 | 2015-11-24 | Freescale Semiconductor, Inc. | System and method for assigning memory access transfers between communication channels |
US9515951B2 (en) * | 2013-11-15 | 2016-12-06 | Microsoft Technology Licensing, Llc | Computing system architecture that facilitates forming of customized virtual disks |
CN106688208B (zh) * | 2014-09-25 | 2020-06-30 | 英特尔公司 | 利用机架规模架构中的池化存储器进行的网络通信 |
US20160283303A1 (en) * | 2015-03-27 | 2016-09-29 | Intel Corporation | Reliability, availability, and serviceability in multi-node systems with disaggregated memory |
US9575689B2 (en) * | 2015-06-26 | 2017-02-21 | EMC IP Holding Company LLC | Data storage system having segregated control plane and/or segregated data plane architecture |
KR20170022633A (ko) * | 2015-08-21 | 2017-03-02 | 에스케이하이닉스 주식회사 | 메모리 시스템 |
US9665415B2 (en) * | 2015-09-26 | 2017-05-30 | Intel Corporation | Low-latency internode communication |
US9952925B2 (en) | 2016-01-06 | 2018-04-24 | Micron Technology, Inc. | Error code calculation on sensing circuitry |
US9983821B2 (en) | 2016-03-29 | 2018-05-29 | Samsung Electronics Co., Ltd. | Optimized hopscotch multiple hash tables for efficient memory in-line deduplication application |
US10083722B2 (en) | 2016-06-08 | 2018-09-25 | Samsung Electronics Co., Ltd. | Memory device for performing internal process and operating method thereof |
US9996440B2 (en) * | 2016-06-20 | 2018-06-12 | Vmware, Inc. | Fault tolerance using shared memory architecture |
US10275272B2 (en) * | 2016-06-20 | 2019-04-30 | Vmware, Inc. | Virtual machine recovery in shared memory architecture |
US10732866B2 (en) * | 2016-10-27 | 2020-08-04 | Samsung Electronics Co., Ltd. | Scaling out architecture for DRAM-based processing unit (DPU) |
CN110737398B (zh) * | 2018-07-20 | 2023-09-01 | 伊姆西Ip控股有限责任公司 | 协调访问操作的方法、设备和计算机程序产品 |
-
2019
- 2019-03-28 US US16/367,700 patent/US10915470B2/en active Active
- 2019-04-18 CN CN201910312218.3A patent/CN110750210B/zh active Active
- 2019-05-17 JP JP2019093313A patent/JP2020017263A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
US10915470B2 (en) | 2021-02-09 |
CN110750210A (zh) | 2020-02-04 |
US20200026669A1 (en) | 2020-01-23 |
CN110750210B (zh) | 2023-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10355966B2 (en) | Managing variations among nodes in parallel system frameworks | |
US11061742B2 (en) | System, apparatus and method for barrier synchronization in a multi-threaded processor | |
US7802025B2 (en) | DMA engine for repeating communication patterns | |
US9582463B2 (en) | Heterogeneous input/output (I/O) using remote direct memory access (RDMA) and active message | |
US10431573B2 (en) | Method for stacking core and uncore dies having landing slots | |
US20090307408A1 (en) | Peer-to-Peer Embedded System Communication Method and Apparatus | |
CN104657308A (zh) | 一种用fpga实现的服务器硬件加速的方法 | |
JP6514329B2 (ja) | メモリアクセス方法、スイッチ、およびマルチプロセッサシステム | |
CN106250348A (zh) | 一种基于gpu访存特性的异构多核架构缓存管理方法 | |
US11966330B2 (en) | Link affinitization to reduce transfer latency | |
JP2020017263A (ja) | メモリーシステム | |
KR102551726B1 (ko) | 메모리 시스템 | |
US20210224213A1 (en) | Techniques for near data acceleration for a multi-core architecture | |
JP2021509240A (ja) | システム全体の低電力管理 | |
WO2023124304A1 (zh) | 芯片的缓存系统、数据处理方法、设备、存储介质及芯片 | |
CN102982001B (zh) | 众核处理器及其空间访问的方法、主核 | |
US20210149683A1 (en) | Techniques for acceleration of a prefix-scan operation | |
Zhang et al. | A homogeneous many-core x86 processor full system framework based on NoC | |
CN116783585A (zh) | 一种互联系统、数据传输方法以及芯片 | |
US20170337084A1 (en) | Compute unit including thread dispatcher and event register and method of operating same to enable communication | |
WO2023151216A1 (zh) | 图数据处理的方法和芯片 | |
EP4195060A1 (en) | Data transmission method and system | |
CN104199685A (zh) | 一种i/o设备及具有该i/o设备的计算机系统 | |
Bukkapatnam et al. | Implementation of Data Management Engine-based Network on Chip with Parallel Memory Allocation | |
CN113703835A (zh) | 一种基于多核处理器的高速数据流处理方法和系统 |