JP2020017263A - Memory system - Google Patents
Memory system 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
Description
本発明は、メモリーシステムに関するものであり、大容量メモリー装置の加速器(Accelerator)に関する技術である。 The present invention relates to a memory system, and more particularly, to a technique related to an accelerator of a large capacity memory device.
最近、スマートフォン、タブレットPCのような移動通信端末機の普及が大衆化している。そして、ソーシャルネットワークサービス(SNS、Social Network Service)、モノ(機械)のネットワーク(M2M、Machine to Machine)、センサネットワーク(Sensor Network)の使用が増加している。これにより、データの量、生成速度及びその多様性が幾何級数的に増加している。ビッグデータの処理のためには、メモリーの速度も重要であるが、格納容量が大きいメモリー装置及びメモリーモジュールが要求される。 Recently, mobile communication terminals such as smartphones and tablet PCs have become popular. In addition, the use of social network services (SNS, Social Network Service), networks of objects (machines) (M2M, Machine to Machine), and sensor networks (Sensor Network) is increasing. As a result, the amount of data, the generation speed, and the variety thereof are geometrically increased. For processing big data, the speed of the memory is also important, but a memory device and a memory module having a large storage capacity are required.
このため、メモリーシステムは、メモリーの物理的限界を克服しつつデータの格納容量を増やすために複数の統合されたメモリーを具備する。一例として、クラウドデータセンター(Cloud Data Center)のサーバー構造(Server Architecture)がビッグデータアプリケーション(Big−Data Application)を効率的に実行させるための構造に変わっている。
ビッグデータを効率的に処理するために、複数のメモリーが統合されたプールメモリー(Pooled Memory)を使用する。プールメモリーは、多い容量と高い帯域幅(Bandwidth)を提供でき、インメモリデータベース(In−memory Database)等で有用に使用できる。
To this end, the memory system includes a plurality of integrated memories to increase the data storage capacity while overcoming the physical limitations of the memory. For example, a server structure (Server Architecture) of a cloud data center (Cloud Data Center) has been changed to a structure for efficiently executing a big data application (Big-Data Application).
In order to process big data efficiently, a pooled memory (Pooled Memory) in which a plurality of memories are integrated is used. The pool memory can provide a large capacity and a high bandwidth, and can be usefully used in an in-memory database (In-memory Database) or the like.
本発明の実施形態は、プールメモリー内部に加速器を備え、システムのエネルギー消耗を減らし、同時に性能を向上させることができるようにするメモリーシステムを提供する。 Embodiments of the present invention provide a memory system that includes an accelerator inside a pool memory to reduce energy consumption of the system and at the same time improve performance.
本発明の実施形態に係るメモリーシステムは、データを格納する複数のメモリーと、複数のメモリーに格納されたデータを読み取ってマップ演算を行い、マップ演算の結果データを複数のメモリーに格納するプールメモリーコントローラーと、を備える。 A memory system according to an embodiment of the present invention includes a plurality of memories that store data, a pool memory that reads data stored in the plurality of memories, performs a map operation, and stores result data of the map operation in the plurality of memories. And a controller.
また、本発明の他の実施形態によるメモリーシステムは、プロセッサと連結されたファブリックネットワークと、ファブリックネットワークを介してプロセッサとパケットを中継し、プロセッサの要請時メモリーに格納されたデータをプロセッサに伝達するプールメモリーと、を備え、プールメモリーが、メモリーに格納されたデータを読み取ってマップ演算をオフ−ローディングし、マップ演算の結果データをメモリーに格納するプールメモリーコントローラーを備える。 Also, a memory system according to another embodiment of the present invention relays a packet to and from a processor via a fabric network connected to a processor, and transmits data stored in a memory to the processor when requested by the processor. A pool memory, wherein the pool memory comprises a pool memory controller for reading data stored in the memory, off-loading the map operation, and storing the result of the map operation in the memory.
本発明の実施形態は、システムの性能を向上させ、データ演算のために必要なエネルギーを節約できるようにする効果を提供する。 Embodiments of the present invention provide the advantage of improving system performance and saving energy required for data operations.
以下、添付の図面を参照し本発明の実施形態に対して詳しく説明する。本発明の実施形態を説明することにおいて、ある部分が他の部分と『連結』されているという時、これは、『直接的に連結』されている場合だけでなく、その中間に他の素子を間に置いて『電気的に連結』されている場合も含む。また、ある部分がある構成要素を『含む』又は『具備』するという時、これは、特別に反対される記載がない限り、他の構成要素を除外するのではなく、他の構成要素をさらに含むか具備できることを意味する。また、明細書全体の記載において、一部構成要素を単数形で記載したからといって、本発明がそれに限られるものではなく、当該構成要素が複数でなり得ることが分かる。 Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. In describing the embodiments of the present invention, when one part is “coupled” to another part, it means not only that the part is “directly connected” but also other elements in between. Also includes the case where they are electrically connected with each other. Also, when an element is referred to as "including" or "comprising" an element, that element does not exclude the other element, but does not exclude the other element, unless specifically stated to the contrary. Include or include. Further, in the description of the entire specification, it is understood that the present invention is not limited to the case where some components are described in singular form, and the components may be plural.
データセンターアプリケーションは、データの大きさが益々大きくなるにつれ、さらに多いハードウェア資源を必要とする。サーバーアーキテクチャ(Server Architecture)は、ハードウェア資源をより効率的に使用しようとする方向に進化している。 Data center applications require more hardware resources as data sizes increase. The server architecture has evolved to use hardware resources more efficiently.
一例として、クラウドデータセンター(Cloud Data Center)では、ディープラーニング(Deep Learning)をはじめとする多くのマシンラーニング(Machine Learning)アプリケーションが実行されている。前記のようなディープラーニング、マシンラーニング等のアプリケーションは、大部分時間的地域性(Temporal Locality)が低いため、中央処理装置(CPU;Central Processing Unit)よりはグラフィック処理装置(GPU;Graphic Processing Unit)やFPGA(Field Programmable Gate Array)等のハードウェア加速器(Hardware Accelerator)を介して演算を行うのが一般的である。 As an example, in a cloud data center (Cloud Data Center), many machine learning (Machine Learning) applications including deep learning (Deep Learning) are executed. Applications such as deep learning and machine learning are mostly low in temporal locality, so that a central processing unit (CPU) is more likely to be a graphic processing unit (GPU) than a central processing unit (GPU). Generally, the calculation is performed via a hardware accelerator (Hardware Accelerator) such as an FPGA or a Field Programmable Gate Array (FPGA).
ここで、時間的地域性(temporal locality)は、一度接近したデータに比較的近い時間内に再び接近することを意味する。すなわち、前記のアプリケーションは、頻繁に接近されるホット(hot)データよりしばらく接近のないコールド(cold)データを使用する。 Here, temporal locality means that the data approaches again within a relatively close time to the data once approached. That is, the application uses cold data that has not been accessed for a while than hot data that is frequently accessed.
プロセッサ(例えば、中央処理装置)が加速器(Accelerator)にジョブ(Job)をオフ−ローディング(Off−loading)する過程を検討してみれば、次の通りである。まず、プロセッサのローカルメモリー(Local Memory)から加速器のローカルメモリーにデータを移す。以後に、加速器が演算を終了すれば、その結果データをプロセッサの方に再び移さなければならない。 A process in which a processor (e.g., a central processing unit) off-loads a job to an accelerator (Accelerator) will be described as follows. First, data is transferred from the local memory of the processor (Local Memory) to the local memory of the accelerator. Thereafter, when the accelerator finishes the operation, the result data must be transferred to the processor again.
もし、データを移す費用がデータを演算する費用より高ければ、データをできるだけ少なく移すようにアーキテクチャを具現するのが全体費用を節減できる。このために、最近、メモリー駆動コンピューティングコンセプト(Memory−Driven Computing Concept)が提案された。 If the cost of moving the data is higher than the cost of operating the data, implementing the architecture to move the data as little as possible can reduce the overall cost. To this end, recently, a Memory-Driven Computing Concept has been proposed.
図1は、本発明の実施形態によるメモリーシステムの概念を説明するための図面である。
図1の実施形態は、システムオンチップ(SoC;System On Chip)、すなわち、プロセッサ中心のコンピューティング(演算装置)構造からメモリー中心のコンピューティング構造にアーキテクチャが変化されることを示す。プロセッサ中心のコンピューティング構造では、一つのシステムオンチップが一つのメモリーと一対一方式で連結される。
FIG. 1 is a diagram illustrating a concept of a memory system according to an embodiment of the present invention.
The embodiment of FIG. 1 illustrates that the architecture is changed from a system-on-chip (SoC), i.e., a processor-centric computing structure to a memory-centric computing structure. In a processor-based computing structure, one system-on-a-chip is connected to one memory in a one-to-one manner.
メモリー駆動コンピューティング(Memory−Driven Computing)とは、複数のシステムオンチップがファブリックネットワーク(Fabric Network)を介して連結された統合メモリー(Unified Memory)を使用する。システムオンチップ(SoC)間にデータを取り交わす時には、メモリー帯域幅(Memory Bandwidth)でデータを取り交わすようになる。 Memory-driven computing uses a unified memory in which a plurality of system-on-chips are connected via a fabric network. When data is exchanged between system-on-chips (SoCs), data is exchanged with a memory bandwidth.
また、ファブリックネットワークで連結された一つの統合メモリーは、データを取り交わすために既存のようにメモリーコピー(Memory Copy)をしなくてもよい。前記のようなメモリー駆動コンピューティング(Memory−Driven Computing)が常用化されるためには、メモリー意味的相互連結(Memory Semantic Interconnect)の高い帯域幅(Bandwidth)、低いレイテンシ(Latency)、一貫性(Coherency)等を支援しなければならない。 In addition, one integrated memory connected by the fabric network does not have to perform a memory copy as in the related art in order to exchange data. In order for the above-mentioned memory-driven computing to be commonly used, a high bandwidth (Bandwidth), a low latency (Latency), and a consistency (Low) of a memory semantic interconnect are required. Coherency) must be supported.
本発明の実施形態が属する技術分野では、これに関連してトランザクション基盤(Transaction−based)メモリーシステムの相互連結(Interconnect)に対する研究が活発に進行中である。 In this regard, in the technical field to which the embodiments of the present invention pertain, research on the interconnection of a transaction-based memory system is actively underway.
加速器に関連しては、近接データ処理(Near Data Processing;NDP)或いはプロセッシングインメモリー(Processing In Memory;PIM)のようにワークロード(Workload)の特性による加速器の位置に対する研究も広く進行されている。ここで、プロセッシングインメモリーは、データ処理速度及びデータ転送速度を増加させるために、プロセッサロジックがメモリーセルに密接に結合されたメモリーを意味する。 In connection with the accelerator, research on the position of the accelerator based on the characteristics of a workload such as near data processing (NDP) or processing in memory (PIM) has been widely performed. . Here, the processing-in-memory refers to a memory in which processor logic is closely coupled to a memory cell in order to increase a data processing speed and a data transfer speed.
本発明の実施形態は、多数のメモリーが統合されたプールメモリー構造(Pooled Memory Architecture)及びそれに適合するイン−メモリーデータベース運用(In−memory Database Usage)に関する技術である。以下では、本発明の実施形態に係るマップ−リデュースアプリケーション(Map−Reduce Application)の特徴を説明し、マップ(Map)演算をプールメモリー(Pooled Memory)内の加速器(後述する)で処理する過程を説明する。 Embodiments of the present invention relate to a technology related to a pooled memory architecture in which a large number of memories are integrated and an in-memory database operation adapted to the pooled memory architecture. Hereinafter, features of the Map-Reduce Application according to the embodiment of the present invention will be described, and a process of processing a Map operation by an accelerator (described later) in a pooled memory (Pooled Memory) will be described. explain.
図2は、本発明の実施形態によるメモリーシステムの構成を示す図面である。
本発明の実施形態によるメモリーシステム10は、前記で説明したメモリー駆動コンピューティング(Memory−Driven Computing)構造を基盤とする。このようなメモリーシステム10は、複数のプロセッサ(例えば、中央処理装置、CPU)20、ファブリックネットワーク30、複数のチャンネル40及び複数のプールメモリー100を備える。
FIG. 2 is a diagram illustrating a configuration of a memory system according to an embodiment of the present invention.
The
ここで、複数のプロセッサ20は、ノードCNDを介してファブリックネットワーク30と連結される。そして、複数のプロセッサ20は、ファブリックネットワーク30を介して複数のプールメモリー100と連結される。また、プールメモリー100は、複数のチャンネル40を介してファブリックネットワーク30に連結される。すなわち、複数のプールメモリー100のそれぞれは、N個のチャンネル40を介してファブリックネットワーク30に連結されてもよい。
Here, the plurality of
複数のプールメモリー100のそれぞれは、複数のメモリー120と、複数のメモリー120(又はメモリー装置)を制御するためのプールメモリーコントローラー(PMC;Pooled Memory Controller)110を備える。プールメモリーコントローラー110は、バス(BUS)を介して各メモリー120と連結される。
Each of the plurality of
それぞれのメモリー120は、ファブリックネットワーク30に直ぐ連結されてもよい。しかし、多数のメモリー120が一つの統合されたプールメモリー100に含まれ、プールメモリー100がファブリックネットワーク30に連結されてもよい。
Each
プールメモリー100が多数のメモリー120を備える場合、プールメモリーコントローラー110は、ファブリックネットワーク30と多数のメモリー120の間で各メモリー120を管理する。
When the
ここで、プールメモリーコントローラー110は、処理率(Throughput)を高めるためにメモリーインターリビング(Memory Interleaving)を行うか、信頼性(Reliability)、可用性(Availability)及び耐久性(Serviceability)等を高めるためにアドレスリマッピング(Address Remapping)を支援する。
Here, the
イン−メモリーデータベース(In−memory Database)とは、早い接近のためにデータベース(DB)をストレージ(Storage)ではないメインメモリー(Main Memory)に格納するデータベース管理システムである。 An in-memory database is a database management system that stores a database (DB) in a main memory (Main Memory) that is not a storage (Storage) for quick access.
現在のサーバーシステム(Server System)は、メモリー(Memory)の容量を増加させることに物理的な限界がある。これによって、アプリケーション(Application)がデータベースの大きさを各サーバー(Server)が有しているメモリー容量以上に大きくできない。データベースの大きさが大きくなれば、仕方なく複数のサーバーに分けてデータベースを格納するようになり、複数のサーバーを組み合わせる過程で性能が低下される部分がある。プールメモリー100は、多い容量と高い帯域幅(Bandwidth)を提供するため、イン−メモリーデータベース(In−memory Database)で有用に使用され得る。
Current server systems have a physical limitation in increasing the capacity of a memory. As a result, the application cannot increase the size of the database beyond the memory capacity of each server. As the size of the database increases, the database is inevitably divided into a plurality of servers and the database is stored, and there is a part where the performance is reduced in the process of combining the plurality of servers. The
図3は、図2のプールメモリーコントローラー110に関する詳細構成を示す図面である。
プールメモリーコントローラー110は、インターフェース111と加速器112を備える。ここで、インターフェース111は、ファブリックネットワーク30と加速器112及びメモリー120の間でパケットを中継する。インターフェース111は、複数のチャンネルCNを介して加速器112と連結される。
FIG. 3 is a diagram illustrating a detailed configuration of the
The
本発明の実施形態において、インターフェース111は、ファブリックネットワーク30と加速器112及びメモリー120の間でパケットを中継するためのスイッチを備えてもよい。本発明の実施形態では、インターフェース111がスイッチを含むことを一例として説明したが、パケットを中継するための手段はこれに限定されない。
In an embodiment of the present invention, the
そして、加速器112は、インターフェース111を介して印加されるデータの演算処理を行う。例えば、加速器112は、インターフェース111を介してメモリー120から印加されるデータのマップ演算を行い、マップ演算結果に対するデータを、インターフェース111を介してメモリー120に格納する。
Then, the
本発明の実施形態では、プールメモリーコントローラー110に一つの加速器112が含まれることを一例として説明する。しかし、本発明の実施形態はこれに限定されるものではなく、プールメモリーコントローラー110に多数の加速器112が備えられてもよい。
In the embodiment of the present invention, an example in which the
マップ−リデュース(Map−Reduce)アプリケーションは、大容量データ処理を分散並列コンピューティングで処理するための目的で制作したソフトウェアフレームワーク(Software Framework)である。多様なアプリケーションでこのマップ−リデュースライブラリを使用している。マップ−リデュースアプリケーションにおいて、マップ演算は、(key、value)形態で中間情報を抽出すれば、リデュース演算がこれを集めて望む最終結果を出力する。 The Map-Reduce application is a software framework (Software Framework) created for the purpose of processing large-capacity data processing by distributed parallel computing. Various applications use this map-reduce library. In the map-reduce application, if the map operation extracts intermediate information in a (key, value) form, the reduce operation collects the intermediate information and outputs a desired final result.
例えば、マップ−リデュースアプリケーションを介して『毎年の最も高かった地球気温』を検索すると仮定すれば、マップ演算は、テキストファイルを読んで年度及び気温に対する情報を抽出し(年度、気温)形態のリストを出力する。そして、リデュース演算は、この結果を収集して温度順に整列し望む最終結果を出力する。ここで、注目すべき点は、マップ演算に使用されるデータは大体大容量である一方、マップ演算の結果データは比較的大きさが小さいということである。 For example, assuming that the "highest global temperature of each year" is retrieved via the map-reduce application, the map operation reads the text file and extracts information on the year and temperature, and lists the (year, temperature) form. Is output. Then, the reduce operation collects the results, arranges them in order of temperature, and outputs a desired final result. Here, it should be noted that while the data used for the map calculation has a large capacity, the result data of the map calculation has a relatively small size.
本発明の実施形態は、マップ−リデュースアプリケーションのマップ演算のように大容量データを処理するが、データ再使用(Data Reuse)の少ない演算をプールメモリーコントローラー110内の加速器112でオフ−ローディング(Off−loading)できる。ここで、オフ−ローディングとは、プロセッサ20からの要請を受信して解釈し演算を行った後、その演算結果を出力する一連の過程を示す。データをプールメモリー100内で処理するようになれば、プロセッサ20のノードCNDまでデータを伝達するためのエネルギーを節約でき、性能もさらに高めることができる。
Although the embodiment of the present invention processes a large amount of data like the map operation of the map-reduce application, the operation with less data reuse is performed by the
本発明の実施形態に係る加速器112は、プールメモリーコントローラー110の内に具備されるか、メモリー120内に位置してよい。近接データ処理の観点では、データを各メモリー120内で処理することがプールメモリーコントローラー110の内部で処理することよりさらに効率的である。
The
プールメモリーコントローラー110は、高い帯域幅(Bandwidth)を提供するためにメモリーインターリビング(Memory Interleaving)を行う。このような場合、データが複数のメモリー120に分かれて格納される。このようになれば、加速器112が必要とするデータもまた複数のメモリー120に分かれ得るため、本発明の実施形態では、加速器112の物理的な位置がプールメモリーコントローラー110内に配置されることを一例として説明する。
The
ここからは、マップ−リデュースアプリケーションのマップ演算を加速器112でオフ−ローディングすることが性能(Performance)とエネルギー(Energy)の観点でメモリーシステム10全体的にどの程度利得であるかを検討する。
From now on, it will be examined how much the off-loading of the map operation of the map-reduce application by the
マップ−リデュースアプリケーションのマップ演算のように加速器112が処理する演算が単純であれば、加速器112における演算時間は、データをメモリーから読み取る帯域幅によって左右される。したがって、加速器112の帯域幅を高めることで加速器112の演算時間を減らすことができる。
If the operation performed by the
図3に示された通り、一連のプロセッサ20のノードCNDは、ファブリックネットワーク30を経てプールメモリー100と連結される。各ノードCNDは、各プロセッサ20別に1個のリンク(Link)L1を有しており、プールメモリーコントローラー110内部の加速器112が4個のリンクL2を有すると仮定する。すなわち、プロセッサ20のリンクL1より加速器112のリンクL2に対する帯域幅をさらに広く割り当てる。そうすれば、マップ演算を加速器112にオフ−ローディングする場合、プロセッサ20で処理することより4倍早く演算できる。
As shown in FIG. 3, the nodes CND of the series of
マップ演算及びリデュース演算をプロセッサ20が全て行う場合、マップ演算に所要される時間が全体実行時間の99%であると仮定する。また、一つのプロセッサ20で複数のアプリケーションが実行されるが、そのうちマップ−リデュースアプリケーションの実行時間が全体アプリケーションの実行時間の10%を占めると仮定する。マップ演算を加速器112にオフ−ローディングする場合、マップ演算時間が1/4に減っていくのにつれ、全体システム性能は81%向上され得る。
When the
図4乃至図6は、本発明の実施形態によるメモリーシステム10の動作を説明するための図面である。
まず、図4の経路1によって示されるように、プロセッサ20は、プールメモリー100側にマップ演算要請パケットを伝達する。すなわち、プロセッサ20から送信されたマップ演算要請パケットは、ファブリックネットワーク30を介してプールメモリーコントローラー110のインターフェース111を経て加速器112に伝達される。ここで、マップ演算要請パケットは、マップ演算に使用されるデータが格納されたアドレス、データの大きさ及びマップ演算結果データを格納する住所等に対する情報が含まれてよい。
4 to 6 are views for explaining the operation of the
First, as indicated by a
次に、プールメモリーコントローラー110は、図4の経路2によって示されるように、マップ演算応答パケットをファブリックネットワーク30を介してプロセッサ20に伝達する。すなわち、プールメモリーコントローラー110は、加速器112がマップ演算要請パケットをよく受信したことを知らせる信号をプロセッサ20に伝達する。
Next, the
その後、図5の経路3によって示されるように、プールメモリーコントローラー110は、各メモリー120でマップ演算に必要なデータを読み取り加速器112に伝達する。ここで、加速器112で必要とするデータが複数のメモリー120に分かれてよく、このような場合、加速器112は、多数のメモリー120からデータを読み取る。そうすれば、加速器112は、メモリー120から読み取られたデータに基づいてマップ演算を行う。
Thereafter, as indicated by the path 3 in FIG. 5, the
次いで、プールメモリーコントローラー110は、図5の4経路でのように、加速器112によって演算されたマップ演算結果データを読み取り、各メモリー120に伝達して格納する。加速器112によって演算されたデータは多数のメモリー120に分かれて格納されてよい。
Next, the
次に、図6の5経路でのように、プールメモリーコントローラー110は、プロセッサ20側にインターラプトパケットを伝達する。すなわち、プールメモリーコントローラー110は、加速器112のマップ演算が終了したことを示すインターラプトパケットを、ファブリックネットワーク30を介してプロセッサ20に伝達する。
Next, the
その後、プールメモリーコントローラー110は、図6の6経路でのように、メモリー120に格納されたマップ演算結果データを読み取り、インターフェース111、ファブリックネットワーク30を介してプロセッサ20に伝達する。
Thereafter, the
図7は、本発明の実施形態によるメモリーシステムの性能改善を示す図面である。図7は、加速器112でマップ演算を行う場合、加速器112のチャンネルCN数を増加させることによって全体システムの性能(Performance)がどの程度増加するかを示す結果グラフである。
FIG. 7 is a diagram illustrating a performance improvement of a memory system according to an embodiment of the present invention. FIG. 7 is a result graph showing how the performance of the entire system is increased by increasing the number of channels CN of the
加速器112のチャンネル(Channel)CN数を増加させることによって性能も共に増加することが分かる。しかし、チャンネルCN数を増加させる費用に比べ性能増加量は益々小くなるため、本発明の実施形態では加速器112のチャンネルCNを2個乃至4個に設定することを一例として説明する。
It can be seen that the performance increases as the number of channels CN of the
プロセッサ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)に対し全て考慮しなければならない。
Assume that 1 pJ (energy consumption) / beat (bit) is consumed per link L1 to move data through the node CND of the
以上のように、本発明の実施形態によるプールメモリー100は、多い容量と高い帯域幅を提供でき、イン−メモリーデータベース等で有用に使用できる。プールメモリーコントローラー110内部に加速器112を追加し、加速器112でマップ−リデュースアプリケーションのマップ演算をオフ−ローディングすることで、全体システムの性能を高めるとともにエネルギーを節約できる。
As described above, the
本発明が属する技術分野の当業者は、本発明がその技術的思想や必須的特徴を変更せずに他の具体的な形態で実施され得るため、以上で記述した実施形態は全ての面において例示的なものであり、限定的ではないものとして理解しなければならない。本発明の範囲は、詳細な説明よりは後述する特許請求の範囲によって表れるようになり、特許請求の範囲の意味及び範囲、そしてその等価概念から導出される全ての変更又は変形された形態が、本発明の範囲に含まれるものとして解釈されなければならない。 Those skilled in the art to which the present invention pertains will appreciate that the embodiments described above may be embodied in other specific forms without altering the technical spirit and essential characteristics thereof, and thus the embodiments described above may be modified in all respects. It should be understood as exemplary and not limiting. The scope of the present invention will be expressed by the claims described below rather than the detailed description, and the meaning and scope of the claims, and all modified or modified forms derived from the equivalents thereof, It should be construed as falling within the scope of the invention.
10: メモリーシステム
20: 複数のプロセッサ
30: ファブリックネットワーク
40: 複数のチャンネル
100: 複数のプールメモリー
10: Memory system 20: Multiple processors 30: Fabric network 40: Multiple channels 100: Multiple pool memories
Claims (20)
前記複数のメモリーに格納された前記データを読み取ってマップ演算を行い、前記マップ演算の結果データを前記複数のメモリーに格納するプールメモリーコントローラーと、
を備えるメモリーシステム。 Multiple memories for storing data,
A pool memory controller that performs the map operation by reading the data stored in the plurality of memories and stores the result data of the map operation in the plurality of memories;
Memory system with
ファブリックネットワークを介してプロセッサと前記プールメモリーコントローラーの間でパケットを中継するインターフェースと、
該インターフェースを介して伝達された前記データに対し前記マップ演算を行い、前記マップ演算の結果データを、前記インターフェースを介して前記複数のメモリーに格納する加速器と、
を備える請求項1に記載のメモリーシステム。 The pool memory controller,
An interface for relaying packets between a processor and the pool memory controller via a fabric network;
An accelerator that performs the map operation on the data transmitted through the interface, and stores the result data of the map operation in the plurality of memories via the interface;
The memory system according to claim 1, comprising:
複数のチャンネルを介して前記加速器と連結される請求項2に記載のメモリーシステム。 The interface is
The memory system according to claim 2, wherein the memory system is connected to the accelerator through a plurality of channels.
前記プロセッサから前記インターフェースを介してマップ演算要請パケットを受信する請求項2に記載のメモリーシステム。 The pool memory controller,
The memory system according to claim 2, wherein a map operation request packet is received from the processor via the interface.
前記マップ演算に使用されるデータが格納されたアドレス、前記データの大きさ及び前記マップ演算の結果データを格納する住所のうち少なくとも何れか一つ以上の情報を含む請求項5に記載のメモリーシステム。 The map operation request packet is
6. The memory system according to claim 5, wherein the memory system includes at least one of an address at which data used for the map operation is stored, a size of the data, and an address at which result data of the map operation are stored. .
前記インターフェースを介してマップ演算応答パケットを前記プロセッサに送信する請求項2に記載のメモリーシステム。 The pool memory controller,
The memory system according to claim 2, wherein a map operation response packet is transmitted to the processor via the interface.
前記複数のメモリーから前記マップ演算に必要なデータを読み取って前記加速器に伝達する請求項2に記載のメモリーシステム。 The pool memory controller,
The memory system according to claim 2, wherein data required for the map operation is read from the plurality of memories and transmitted to the accelerator.
前記加速器によって演算された前記マップ演算の結果データを読み取り、前記複数のメモリーに格納する請求項2に記載のメモリーシステム。 The pool memory controller,
3. The memory system according to claim 2, wherein the result data of the map operation calculated by the accelerator is read and stored in the plurality of memories.
前記マップ演算の終了時に前記インターフェースを介して前記プロセッサにインターラプトパケットを伝達する請求項2に記載のメモリーシステム。 The pool memory controller,
3. The memory system according to claim 2, wherein an interrupt packet is transmitted to the processor via the interface at the end of the map operation.
前記複数のメモリーに格納された前記マップ演算の結果データを読み取り、前記インターフェースを介して前記プロセッサに伝達する請求項2に記載のメモリーシステム。 The pool memory controller,
3. The memory system according to claim 2, wherein the result data of the map operation stored in the plurality of memories is read and transmitted to the processor via the interface.
前記複数のメモリーに対してインターリビングを行う請求項1に記載のメモリーシステム。 The pool memory controller,
The memory system according to claim 1, wherein interleaving is performed on the plurality of memories.
前記複数のメモリーに対してアドレスリマッピングを行う請求項1に記載のメモリーシステム。 The pool memory controller,
2. The memory system according to claim 1, wherein address remapping is performed on the plurality of memories.
前記マップ演算時にマップ−リデュースアプリケーションを利用する請求項1に記載のメモリーシステム。 The pool memory controller,
The memory system according to claim 1, wherein a map-reduce application is used during the map calculation.
前記ファブリックネットワークを介して前記プロセッサとパケットを中継し、前記プロセッサの要請時メモリーに格納されたデータを前記プロセッサに伝達するプールメモリーと、
を備え、
前記プールメモリーが、
前記メモリーに格納されたデータを読み取ってマップ演算をオフ−ローディングし、前記マップ演算の結果データを前記メモリーに格納するプールメモリーコントローラーを備えるメモリーシステム。 A fabric network connected to the processor,
A pool memory for relaying packets to and from the processor through the fabric network and transmitting data stored in the memory to the processor when requested by the processor;
With
Said pool memory,
A memory system comprising: a pool memory controller for reading data stored in the memory, off-loading a map operation, and storing result data of the map operation in the memory.
前記ファブリックネットワークを介して前記プロセッサと前記プールメモリーコントローラーの間でパケットを中継するインターフェースと、
前記インターフェースを介して伝達された前記データに対し前記マップ演算をオフ−ローディングし、前記マップ演算の結果データを、前記インターフェースを介して前記メモリーに格納する加速器と、
を備える請求項15に記載のメモリーシステム。 The pool memory controller,
An interface for relaying packets between the processor and the pool memory controller via the fabric network;
An accelerator for off-loading the map operation with respect to the data transmitted through the interface, and storing result data of the map operation in the memory via the interface;
The memory system according to claim 15, comprising:
前記プロセッサから前記インターフェースを介してマップ演算要請パケットを受信し、前記インターフェースを介してマップ演算応答パケットを前記プロセッサに送信する請求項16に記載のメモリーシステム。 The pool memory controller,
17. The memory system of claim 16, receiving a map operation request packet from the processor via the interface, and transmitting a map operation response packet to the processor via the interface.
前記メモリーから前記マップ演算に必要なデータを読み取って前記加速器に伝達し、前記加速器によって演算された前記マップ演算の結果データを前記メモリーに格納する請求項16に記載のメモリーシステム。 The pool memory controller,
17. The memory system according to claim 16, wherein data necessary for the map operation is read from the memory and transmitted to the accelerator, and the result data of the map operation calculated by the accelerator is stored in the memory.
前記マップ演算の終了時に前記インターフェースを介して前記プロセッサにインターラプトパケットを伝達し、前記メモリーに格納された前記マップ演算の結果データを読み取り、前記インターフェースを介して前記プロセッサに伝達する請求項16に記載のメモリーシステム。 The pool memory controller,
17. The method according to claim 16, wherein at the end of the map operation, an interrupt packet is transmitted to the processor via the interface, the result data of the map operation stored in the memory is read, and transmitted to the processor via the interface. The described memory system.
前記メモリーに対してインターリビング及びアドレスリマッピング動作のうち少なくとも何れか一つを行う請求項15に記載のメモリーシステム。 The pool memory controller,
The memory system according to claim 15, wherein at least one of an interleaving operation and an address remapping operation is performed on the memory.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20180085506 | 2018-07-23 | ||
KR10-2018-0085506 | 2018-07-23 | ||
KR1020180155681A KR102551726B1 (en) | 2018-07-23 | 2018-12-06 | Memory system |
KR10-2018-0155681 | 2018-12-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020017263A true JP2020017263A (en) | 2020-01-30 |
Family
ID=69163035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019093313A Pending JP2020017263A (en) | 2018-07-23 | 2019-05-17 | Memory system |
Country Status (3)
Country | Link |
---|---|
US (1) | US10915470B2 (en) |
JP (1) | JP2020017263A (en) |
CN (1) | CN110750210B (en) |
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 (en) * | 2021-03-29 | 2023-05-26 | 上海西井信息科技有限公司 | On-chip architecture, pooled computing accelerator array, unit and control method |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0464848B1 (en) | 1990-07-06 | 1996-05-01 | Nec Corporation | Structure for enabling direct memory-to-memory transfer |
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 |
EP3198806B1 (en) * | 2014-09-25 | 2019-09-25 | Intel Corporation | Network communications using pooled memory in rack-scale architecture |
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 (en) * | 2015-08-21 | 2017-03-02 | 에스케이하이닉스 주식회사 | Memory system |
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 (en) * | 2018-07-20 | 2023-09-01 | 伊姆西Ip控股有限责任公司 | Method, apparatus and computer program product for coordinating access operations |
-
2019
- 2019-03-28 US US16/367,700 patent/US10915470B2/en active Active
- 2019-04-18 CN CN201910312218.3A patent/CN110750210B/en active Active
- 2019-05-17 JP JP2019093313A patent/JP2020017263A/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US10915470B2 (en) | 2021-02-09 |
CN110750210B (en) | 2023-06-13 |
US20200026669A1 (en) | 2020-01-23 |
CN110750210A (en) | 2020-02-04 |
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 | |
CN104657308A (en) | Method for realizing server hardware acceleration by using FPGA (field programmable gate array) | |
US20090307408A1 (en) | Peer-to-Peer Embedded System Communication Method and Apparatus | |
JP6514329B2 (en) | Memory access method, switch, and multiprocessor system | |
US11966330B2 (en) | Link affinitization to reduce transfer latency | |
JP2020017263A (en) | Memory system | |
CN106250348A (en) | A kind of heterogeneous polynuclear framework buffer memory management method based on GPU memory access characteristic | |
KR102551726B1 (en) | Memory system | |
US20210224213A1 (en) | Techniques for near data acceleration for a multi-core architecture | |
JP2021509240A (en) | Low power management for the entire system | |
US20190042240A1 (en) | System, Apparatus And Method For Providing A Fabric For An Accelerator | |
EP3543846B1 (en) | Computer system and memory access technology | |
WO2023124304A1 (en) | Chip cache system, data processing method, device, storage medium, and chip | |
US20210149683A1 (en) | Techniques for acceleration of a prefix-scan operation | |
US11016666B2 (en) | Memory system and operating method thereof | |
Zhang et al. | A homogeneous many-core x86 processor full system framework based on NoC | |
US20170337084A1 (en) | Compute unit including thread dispatcher and event register and method of operating same to enable communication | |
US20230222018A1 (en) | Data Transmission Method and System | |
CN104199685A (en) | I/O device and computer system with same | |
Bukkapatnam et al. | Implementation of Data Management Engine-based Network on Chip with Parallel Memory Allocation | |
Klenk et al. | GPU-centric communication for improved efficiency |