JP2020017263A - Memory system - Google Patents

Memory system Download PDF

Info

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
Application number
JP2019093313A
Other languages
Japanese (ja)
Inventor
ソンウン キム,
Sun Woong Kim
ソンウン キム,
ウィチョル イム,
Eui Cheol Lim
ウィチョル イム,
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.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
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
Priority claimed from KR1020180155681A external-priority patent/KR102551726B1/en
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of JP2020017263A publication Critical patent/JP2020017263A/en
Pending legal-status Critical Current

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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • 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/0614Improving the reliability of storage systems
    • 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/0629Configuration or reconfiguration of storage systems
    • 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]
    • 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)
  • Memory System (AREA)
  • Advance Control (AREA)

Abstract

To provide a memory system capable of reduce energy consumption of the system and increase performance at the same time.SOLUTION: A memory system 10 includes processors 20, a fabric network 30, and pooled memories 100. The pooled memories include multiple memories 120 configured to store data, and a pooled memory controller 110 configured to perform map computation by reading data stored in the multiple memories and store resultant data from the map computation in the multiple memories.SELECTED DRAWING: Figure 2

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.

本発明の実施形態に係るメモリーシステムの概念を説明するための図面である。1 is a diagram illustrating a concept of a memory system according to an embodiment of the present invention. 本発明の実施形態に係るメモリーシステムの構成を示す図面である。1 is a diagram illustrating a configuration of a memory system according to an embodiment of the present invention. 図2のプールメモリーコントローラーに関する詳細構成を示す図面である。3 is a diagram illustrating a detailed configuration of a pool memory controller of FIG. 2. 本発明の実施形態に係るメモリーシステムの動作を説明するための図面である。5 is a diagram illustrating an operation of the memory system according to the embodiment of the present invention. 本発明の実施形態に係るメモリーシステムの動作を説明するための図面である。5 is a diagram illustrating an operation of the memory system according to the embodiment of the present invention. 本発明の実施形態に係るメモリーシステムの動作を説明するための図面である。5 is a diagram illustrating an operation of the memory system according to the embodiment of the present invention. 本発明の実施形態に係るメモリーシステムの性能改善を示す図面。4 is a diagram illustrating performance improvement of the memory system according to the embodiment of the present invention.

以下、添付の図面を参照し本発明の実施形態に対して詳しく説明する。本発明の実施形態を説明することにおいて、ある部分が他の部分と『連結』されているという時、これは、『直接的に連結』されている場合だけでなく、その中間に他の素子を間に置いて『電気的に連結』されている場合も含む。また、ある部分がある構成要素を『含む』又は『具備』するという時、これは、特別に反対される記載がない限り、他の構成要素を除外するのではなく、他の構成要素をさらに含むか具備できることを意味する。また、明細書全体の記載において、一部構成要素を単数形で記載したからといって、本発明がそれに限られるものではなく、当該構成要素が複数でなり得ることが分かる。   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 memory system 10 according to an embodiment of the present invention is based on the memory-driven computing structure described above. Such a memory system 10 includes a plurality of processors (for example, a central processing unit, a CPU) 20, a fabric network 30, a plurality of channels 40, and a plurality of pool memories 100.

ここで、複数のプロセッサ20は、ノードCNDを介してファブリックネットワーク30と連結される。そして、複数のプロセッサ20は、ファブリックネットワーク30を介して複数のプールメモリー100と連結される。また、プールメモリー100は、複数のチャンネル40を介してファブリックネットワーク30に連結される。すなわち、複数のプールメモリー100のそれぞれは、N個のチャンネル40を介してファブリックネットワーク30に連結されてもよい。   Here, the plurality of processors 20 are connected to the fabric network 30 via the node CND. The plurality of processors 20 are connected to the plurality of pool memories 100 via the fabric network 30. Further, the pool memory 100 is connected to the fabric network 30 via a plurality of channels 40. That is, each of the plurality of pool memories 100 may be connected to the fabric network 30 via the N channels 40.

複数のプールメモリー100のそれぞれは、複数のメモリー120と、複数のメモリー120(又はメモリー装置)を制御するためのプールメモリーコントローラー(PMC;Pooled Memory Controller)110を備える。プールメモリーコントローラー110は、バス(BUS)を介して各メモリー120と連結される。   Each of the plurality of pool memories 100 includes a plurality of memories 120 and a pooled memory controller (PMC) 110 for controlling the plurality of memories 120 (or memory devices). The pool memory controller 110 is connected to each memory 120 via a bus (BUS).

それぞれのメモリー120は、ファブリックネットワーク30に直ぐ連結されてもよい。しかし、多数のメモリー120が一つの統合されたプールメモリー100に含まれ、プールメモリー100がファブリックネットワーク30に連結されてもよい。   Each memory 120 may be directly connected to the fabric network 30. However, a plurality of memories 120 may be included in one integrated pool memory 100, and the pool memory 100 may be connected to the fabric network 30.

プールメモリー100が多数のメモリー120を備える場合、プールメモリーコントローラー110は、ファブリックネットワーク30と多数のメモリー120の間で各メモリー120を管理する。   When the pool memory 100 includes a plurality of memories 120, the pool memory controller 110 manages each memory 120 between the fabric network 30 and the plurality of memories 120.

ここで、プールメモリーコントローラー110は、処理率(Throughput)を高めるためにメモリーインターリビング(Memory Interleaving)を行うか、信頼性(Reliability)、可用性(Availability)及び耐久性(Serviceability)等を高めるためにアドレスリマッピング(Address Remapping)を支援する。   Here, the pool memory controller 110 performs memory interleaving in order to increase the processing rate (Throughput), or increases reliability (Reliability), availability (Availability), durability (Serviceability), and the like. Supports Address Remapping.

イン−メモリーデータベース(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 pool memory 100 can be advantageously used in an in-memory database to provide a large capacity and a high bandwidth.

図3は、図2のプールメモリーコントローラー110に関する詳細構成を示す図面である。
プールメモリーコントローラー110は、インターフェース111と加速器112を備える。ここで、インターフェース111は、ファブリックネットワーク30と加速器112及びメモリー120の間でパケットを中継する。インターフェース111は、複数のチャンネルCNを介して加速器112と連結される。
FIG. 3 is a diagram illustrating a detailed configuration of the pool memory controller 110 of FIG.
The pool memory controller 110 includes an interface 111 and an accelerator 112. Here, the interface 111 relays a packet between the fabric network 30 and the accelerator 112 and the memory 120. The interface 111 is connected to the accelerator 112 via a plurality of channels CN.

本発明の実施形態において、インターフェース111は、ファブリックネットワーク30と加速器112及びメモリー120の間でパケットを中継するためのスイッチを備えてもよい。本発明の実施形態では、インターフェース111がスイッチを含むことを一例として説明したが、パケットを中継するための手段はこれに限定されない。   In an embodiment of the present invention, the interface 111 may include a switch for relaying a packet between the fabric network 30 and the accelerator 112 and the memory 120. In the embodiment of the present invention, an example has been described in which the interface 111 includes a switch, but the means for relaying a packet is not limited to this.

そして、加速器112は、インターフェース111を介して印加されるデータの演算処理を行う。例えば、加速器112は、インターフェース111を介してメモリー120から印加されるデータのマップ演算を行い、マップ演算結果に対するデータを、インターフェース111を介してメモリー120に格納する。   Then, the accelerator 112 performs an arithmetic process on data applied via the interface 111. For example, the accelerator 112 performs a map operation on the data applied from the memory 120 via the interface 111, and stores data corresponding to the map operation result in the memory 120 via the interface 111.

本発明の実施形態では、プールメモリーコントローラー110に一つの加速器112が含まれることを一例として説明する。しかし、本発明の実施形態はこれに限定されるものではなく、プールメモリーコントローラー110に多数の加速器112が備えられてもよい。   In the embodiment of the present invention, an example in which the pool memory controller 110 includes one accelerator 112 will be described. However, embodiments of the present invention are not limited thereto, and the pool memory controller 110 may include a plurality of accelerators 112.

マップ−リデュース(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 accelerator 112 in the pool memory controller 110 in off-loading (Off). -Loading). Here, the off-loading refers to a series of processes of receiving and interpreting a request from the processor 20, performing an operation, and outputting a result of the operation. If data is processed in the pool memory 100, energy for transmitting data to the node CND of the processor 20 can be saved, and performance can be further improved.

本発明の実施形態に係る加速器112は、プールメモリーコントローラー110の内に具備されるか、メモリー120内に位置してよい。近接データ処理の観点では、データを各メモリー120内で処理することがプールメモリーコントローラー110の内部で処理することよりさらに効率的である。   The accelerator 112 according to an embodiment of the present invention may be included in the pool memory controller 110 or may be located in the memory 120. In terms of proximity data processing, processing data within each memory 120 is more efficient than processing data within the pool memory controller 110.

プールメモリーコントローラー110は、高い帯域幅(Bandwidth)を提供するためにメモリーインターリビング(Memory Interleaving)を行う。このような場合、データが複数のメモリー120に分かれて格納される。このようになれば、加速器112が必要とするデータもまた複数のメモリー120に分かれ得るため、本発明の実施形態では、加速器112の物理的な位置がプールメモリーコントローラー110内に配置されることを一例として説明する。   The pool memory controller 110 performs memory interleaving in order to provide a high bandwidth. In such a case, the data is separately stored in the plurality of memories 120. In such a case, the data required by the accelerator 112 may also be divided into a plurality of memories 120. Therefore, in the embodiment of the present invention, it is required that the physical location of the accelerator 112 be located in the pool memory controller 110. This will be described as an example.

ここからは、マップ−リデュースアプリケーションのマップ演算を加速器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 accelerator 112 is gain in the memory system 10 as a whole in terms of performance (Performance) and energy (Energy).

マップ−リデュースアプリケーションのマップ演算のように加速器112が処理する演算が単純であれば、加速器112における演算時間は、データをメモリーから読み取る帯域幅によって左右される。したがって、加速器112の帯域幅を高めることで加速器112の演算時間を減らすことができる。   If the operation performed by the accelerator 112 is simple, such as the map operation of the map-reduce application, the operation time in the accelerator 112 depends on the bandwidth for reading data from the memory. Therefore, the operation time of the accelerator 112 can be reduced by increasing the bandwidth of the accelerator 112.

図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 processors 20 are connected to the pool memory 100 via the fabric network 30. It is assumed that each node CND has one link L1 for each processor 20 and that the accelerator 112 inside the pool memory controller 110 has four links L2. That is, a wider bandwidth is allocated to the link L2 of the accelerator 112 than to the link L1 of the processor 20. Then, when the map calculation is off-loaded to the accelerator 112, the calculation can be performed four times faster than the processing performed by the processor 20.

マップ演算及びリデュース演算をプロセッサ20が全て行う場合、マップ演算に所要される時間が全体実行時間の99%であると仮定する。また、一つのプロセッサ20で複数のアプリケーションが実行されるが、そのうちマップ−リデュースアプリケーションの実行時間が全体アプリケーションの実行時間の10%を占めると仮定する。マップ演算を加速器112にオフ−ローディングする場合、マップ演算時間が1/4に減っていくのにつれ、全体システム性能は81%向上され得る。   When the processor 20 performs all the map operations and the reduce operations, it is assumed that the time required for the map operations is 99% of the total execution time. Also, it is assumed that a plurality of applications are executed by one processor 20, and that the execution time of the map-reduce application accounts for 10% of the execution time of the entire application. When off-loading the map operation to the accelerator 112, the overall system performance can be improved by 81% as the map operation time is reduced to 1/4.

図4乃至図6は、本発明の実施形態によるメモリーシステム10の動作を説明するための図面である。
まず、図4の経路1によって示されるように、プロセッサ20は、プールメモリー100側にマップ演算要請パケットを伝達する。すなわち、プロセッサ20から送信されたマップ演算要請パケットは、ファブリックネットワーク30を介してプールメモリーコントローラー110のインターフェース111を経て加速器112に伝達される。ここで、マップ演算要請パケットは、マップ演算に使用されるデータが格納されたアドレス、データの大きさ及びマップ演算結果データを格納する住所等に対する情報が含まれてよい。
4 to 6 are views for explaining the operation of the memory system 10 according to the embodiment of the present invention.
First, as indicated by a path 1 in FIG. 4, the processor 20 transmits a map operation request packet to the pool memory 100 side. That is, the map operation request packet transmitted from the processor 20 is transmitted to the accelerator 112 via the interface 111 of the pool memory controller 110 via the fabric network 30. Here, the map operation request packet may include information on an address at which data used for the map operation is stored, data size, an address at which the map operation result data is stored, and the like.

次に、プールメモリーコントローラー110は、図4の経路2によって示されるように、マップ演算応答パケットをファブリックネットワーク30を介してプロセッサ20に伝達する。すなわち、プールメモリーコントローラー110は、加速器112がマップ演算要請パケットをよく受信したことを知らせる信号をプロセッサ20に伝達する。   Next, the pool memory controller 110 transmits the map operation response packet to the processor 20 via the fabric network 30, as indicated by the path 2 in FIG. That is, the pool memory controller 110 transmits a signal indicating that the accelerator 112 has received the map operation request packet to the processor 20.

その後、図5の経路3によって示されるように、プールメモリーコントローラー110は、各メモリー120でマップ演算に必要なデータを読み取り加速器112に伝達する。ここで、加速器112で必要とするデータが複数のメモリー120に分かれてよく、このような場合、加速器112は、多数のメモリー120からデータを読み取る。そうすれば、加速器112は、メモリー120から読み取られたデータに基づいてマップ演算を行う。   Thereafter, as indicated by the path 3 in FIG. 5, the pool memory controller 110 reads the data required for the map calculation in each memory 120 and transmits the data to the accelerator 112. Here, data required by the accelerator 112 may be divided into a plurality of memories 120, and in such a case, the accelerator 112 reads data from a number of memories 120. Then, the accelerator 112 performs a map operation based on the data read from the memory 120.

次いで、プールメモリーコントローラー110は、図5の4経路でのように、加速器112によって演算されたマップ演算結果データを読み取り、各メモリー120に伝達して格納する。加速器112によって演算されたデータは多数のメモリー120に分かれて格納されてよい。   Next, the pool memory controller 110 reads the map operation result data calculated by the accelerator 112 as in the four paths in FIG. The data calculated by the accelerator 112 may be separately stored in a number of memories 120.

次に、図6の5経路でのように、プールメモリーコントローラー110は、プロセッサ20側にインターラプトパケットを伝達する。すなわち、プールメモリーコントローラー110は、加速器112のマップ演算が終了したことを示すインターラプトパケットを、ファブリックネットワーク30を介してプロセッサ20に伝達する。   Next, the pool memory controller 110 transmits an interrupt packet to the processor 20 as in the five paths in FIG. That is, the pool memory controller 110 transmits an interrupt packet indicating that the map calculation of the accelerator 112 has been completed to the processor 20 via the fabric network 30.

その後、プールメモリーコントローラー110は、図6の6経路でのように、メモリー120に格納されたマップ演算結果データを読み取り、インターフェース111、ファブリックネットワーク30を介してプロセッサ20に伝達する。   Thereafter, the pool memory controller 110 reads the map operation result data stored in the memory 120 and transmits the read data to the processor 20 via the interface 111 and the fabric network 30, as indicated by the six paths in FIG.

図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 accelerator 112 when performing a map operation in the accelerator 112.

加速器112のチャンネル(Channel)CN数を増加させることによって性能も共に増加することが分かる。しかし、チャンネルCN数を増加させる費用に比べ性能増加量は益々小くなるため、本発明の実施形態では加速器112のチャンネルCNを2個乃至4個に設定することを一例として説明する。   It can be seen that the performance increases as the number of channels CN of the accelerator 112 increases. However, since the amount of performance increase becomes smaller than the cost of increasing the number of channels CN, in the embodiment of the present invention, setting the number of channels CN of the accelerator 112 to two to four will be described as an example.

プロセッサ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 processor 20. In order for the processor 20 to process data, the bus BUS of the memory 120, the channel 40 of the fabric network 30 and the node CND of the processor 20 in FIG. 3, that is, 3 pJ / bit must be passed. Is consumed. However, when the map operation is off-loaded by the accelerator 112, the data passes through only the bus BUS of the memory 120, and the energy consumed for moving the data is reduced to 1 pJ / bit, which is 1/3. Can be reduced to In order to calculate how much energy is saved in the overall system, all the static power of each hardware must be considered.

以上のように、本発明の実施形態によるプールメモリー100は、多い容量と高い帯域幅を提供でき、イン−メモリーデータベース等で有用に使用できる。プールメモリーコントローラー110内部に加速器112を追加し、加速器112でマップ−リデュースアプリケーションのマップ演算をオフ−ローディングすることで、全体システムの性能を高めるとともにエネルギーを節約できる。   As described above, the pool memory 100 according to the embodiment of the present invention can provide a large capacity and a high bandwidth, and can be effectively used for an in-memory database or the like. By adding an accelerator 112 inside the pool memory controller 110 and off-loading the map operation of the map-reduce application by the accelerator 112, it is possible to improve the performance of the entire system and save energy.

本発明が属する技術分野の当業者は、本発明がその技術的思想や必須的特徴を変更せずに他の具体的な形態で実施され得るため、以上で記述した実施形態は全ての面において例示的なものであり、限定的ではないものとして理解しなければならない。本発明の範囲は、詳細な説明よりは後述する特許請求の範囲によって表れるようになり、特許請求の範囲の意味及び範囲、そしてその等価概念から導出される全ての変更又は変形された形態が、本発明の範囲に含まれるものとして解釈されなければならない。   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.
前記複数のチャンネルのリンク数は、前記プロセッサのリンク数より多い請求項3に記載のメモリーシステム。   The memory system according to claim 3, wherein the number of links of the plurality of channels is greater than the number of links of the processor. 前記プールメモリーコントローラーが、
前記プロセッサから前記インターフェースを介してマップ演算要請パケットを受信する請求項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.
JP2019093313A 2018-07-23 2019-05-17 Memory system Pending JP2020017263A (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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