JP2017517792A - マルチクラスメモリシステムにおけるメモリ割り当てのシステム及び方法 - Google Patents
マルチクラスメモリシステムにおけるメモリ割り当てのシステム及び方法 Download PDFInfo
- Publication number
- JP2017517792A JP2017517792A JP2016558775A JP2016558775A JP2017517792A JP 2017517792 A JP2017517792 A JP 2017517792A JP 2016558775 A JP2016558775 A JP 2016558775A JP 2016558775 A JP2016558775 A JP 2016558775A JP 2017517792 A JP2017517792 A JP 2017517792A
- Authority
- JP
- Japan
- Prior art keywords
- memories
- data structure
- memory
- assigning
- library
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- 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
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- 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/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- 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/0608—Saving storage space on 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/205—Hybrid memory, e.g. using both volatile and non-volatile memory
-
- 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
Abstract
Description
Claims (16)
- マルチクラスメモリシステム(101)において、データ構造(128)をメモリに割り当てるための、ライブラリ(120,620)へのメモリ割り当て関数呼び出し(126,602,604)に応じて、
前記マルチクラスメモリシステムのプロセッサ(102)において、前記データ構造のタイプを識別することと、
前記マルチクラスメモリシステムの前記プロセッサにおいて、前記ライブラリを用いて、前記データ構造の前記タイプに基づいて、前記データ構造の各部分を前記マルチクラスメモリシステムの複数のメモリ(106,107,108,109)に割り当てることと、を含む、
方法。 - 前記データ構造の各部分を複数のメモリに割り当てることは、
前記データ構造のメタデータ(402,403,404,405,406,407,408,409,410,411,412)を、前記複数のメモリのうち第1のセットの1つ以上のメモリに割り当てることと、
前記データ構造のデータ(422、423、424、425、426、427、428、429、430、431、432)を、前記複数のメモリのうち第2のセットの1つ以上のメモリに割り当てることと、をさらに含む、
請求項1に記載の方法。 - 前記データ構造は、順序付けされたデータ構造(200,400)を含み、
前記順序付けされたデータ構造の各部分を割り当てることは、
前記順序付けされたデータ構造の最初の部分(250)を、前記複数のメモリのうち第1のセットの1つ以上のメモリに割り当てることと、
前記順序付けされたデータ構造の最後の部分(252)を、前記複数のメモリのうち第2のセットの1つ以上のメモリに割り当てることと、を含む、
請求項1に記載の方法。 - 前記順序付けされたデータ構造は、木構造(400)を含み、
前記順序付けされたデータ構造の前記最初の部分は、前記木構造の最初のレベルのノード(402,403,404,405,406,407,408)を含み、
前記順序付けされたデータ構造の前記最後の部分は、前記木構造の最後のレベルのノード(409,410,411,412)を含む、
請求項3に記載の方法。 - 前記メモリ割り当て関数呼び出しは、複数のパラメータ(136)をさらに含み、
前記データ構造の各部分を前記マルチクラスメモリシステムの複数のメモリに割り当てることは、
前記複数のパラメータに基づいて、前記データ構造の各部分を、前記マルチクラスメモリシステムの複数のメモリに割り当てることをさらに含む、
請求項1に記載の方法。 - 前記データ構造は、リンクリスト(200)を含み、
前記データ構造の各部分を前記マルチクラスメモリシステムの複数のメモリに割り当てることは、
前記リンクリストの最初のセグメント(250)を、前記複数のメモリのうち第1のセットの1つ以上のメモリに割り当てることと、
前記リンクリストの最後のセグメント(252)を、前記複数のメモリのうち第2のセットの1つ以上のメモリに割り当てることと、をさらに含み、
前記第1のセットの1つ以上のメモリは、前記第2のセットの1つ以上のメモリよりも速いアクセスを提供する、
請求項1に記載の方法。 - 前記データ構造は、マップ構造(300)を含み、
前記データ構造の各部分を前記マルチクラスメモリシステムの複数のメモリに割り当てることは、
前記マップ構造のキー部分(350)を、前記複数のメモリのうち第1のセットの1つ以上のメモリに割り当てることと、
前記マップ構造の値部分(352)を、前記複数のメモリのうち第2のセットの1つ以上のメモリに割り当てることと、をさらに含み、
前記第1のセットの1つ以上のメモリは、前記第2のセットの1つ以上のメモリよりも速いアクセスを提供する、
請求項1に記載の方法。 - 前記データ構造は、グラフ構造(400)を含み、
前記データ構造の各部分を前記マルチクラスメモリシステムの複数のメモリに割り当てることは、
グラフ構造のノードメタデータ(402,403,404,405,406,407,408,409,410,411,412)を、前記複数のメモリのうち第1のセットの1つ以上のメモリに割り当てることと、
前記グラフ構造のノードデータ部分(422,423,424,425,426,427,428,429,430,431,432)を、前記複数のメモリのうち第2のセットの1つ以上のメモリに割り当てることと、を含み、
前記第1のセットの1つ以上のメモリは、前記第2のセットの1つ以上のメモリよりも速いアクセスを提供する、
請求項1に記載の方法。 - マルチクラスメモリシステム(101)のプロセッサ(102)において、前記マルチクラスメモリシステムの複数のメモリレベルのうち指定されたメモリレベルのインジケータを有するメモリ割り当て関数呼び出し(602,604)を実行することと、
前記メモリ割り当て関数呼び出しの実行に応じて、前記指定されたメモリレベルにおいて、データ構造(128)をメモリに割り当てることと、を含む、
方法。 - 前記インジケータは、前記関数呼び出しのタイプ、前記関数呼び出しを介して渡されたパラメータ(136)、及び、前記関数呼び出しとは別のシンタックスインデックス、のうち少なくとも1つを含む、
請求項9に記載の方法。 - ライブラリを記憶するライブラリ(120,620)ストアと、
統合メモリアドレス空間を共有する複数のメモリ(106,107,108,109)に結合可能なプロセッサ(102)と、を備え、
前記プロセッサは、
データ構造をメモリに割り当てるための、前記ライブラリへのメモリ割り当て関数呼び出し(126,602,604)に応じて、
前記データ構造のタイプを識別し、
前記ライブラリを用いて、前記データ構造の各部分を、前記データ構造の前記タイプに基づいて、前記複数のメモリのうち複数のメモリ間で割り当てる、
システム(100)。 - 前記プロセッサは、
前記データ構造のメタデータ(402,403,404,405,406,407,408,409,410,411,412)を、前記複数のメモリのうち第1のセットの1つ以上のメモリに割り当てることと、
前記データ構造のデータ(422,423,424,425,426,427,428,429,430,431,432)を、前記複数のメモリのうち第2のセットの1つ以上のメモリに割り当てることと、
によって、前記データ構造の各部分を複数のメモリ間で割り当てる、
請求項11に記載のシステム。 - 前記メモリ割り当て関数呼び出しは、複数のパラメータ(136)をさらに含み、
前記プロセッサは、前記データ構造の各部分を、前記複数のパラメータに基づいて、前記複数のメモリのうち複数のメモリに割り当てることによって、前記データ構造の各部分を、前記複数のメモリのうち複数のメモリに割り当てる、
請求項11に記載のシステム。 - 前記データ構造は、リンクリスト(200)を含み、
前記プロセッサは、
前記リンクリストの最初のセグメント(250)を、前記複数のメモリのうち第1のセットの1つ以上のメモリに割り当てることと、
前記リンクリストの最後のセグメント(252)を、前記複数のメモリのうち第2のセットの1つ以上のメモリに割り当てることと、
によって、前記データ構造の各部分を、前記複数のメモリのうち複数のメモリに割り当て、
前記第1のセットの1つ以上のメモリは、前記第2のセットの1つ以上のメモリよりも速いアクセスを提供する、
請求項11に記載のシステム。 - 前記データ構造は、マップ構造(300)を含み、
前記プロセッサは、
前記マップ構造のキー部分(350)を、前記複数のメモリのうち第1のセットの1つ以上のメモリに割り当てることと、
前記マップ構造の値部分(352)を、前記複数のメモリのうち第2のセットの1つ以上のメモリに割り当てることと、
によって、前記データ構造の各部分を、前記複数のメモリのうち複数のメモリに割り当て、
前記第1のセットの1つ以上のメモリは、前記第2のセットの1つ以上のメモリよりも速いアクセスを提供する、
請求項11に記載のシステム。 - 前記データ構造は、グラフ構造(400)を含み、
前記プロセッサは、
前記グラフ構造のノードメタデータ(402,403,404,405,406,407,408,409,410,411,412)を、前記複数のメモリのうち第1のセットのメモリに割り当てることと、
前記グラフ構造のノードデータ部分(422,423,424,425,426,427,428,429,430,431,432)を、前記複数のメモリのうち第2のセットのメモリに割り当てることと、
によって、前記データ構造の各部分を、前記複数のメモリのうち複数のメモリに割り当て、
前記第1のセットの1つ以上のメモリは、前記第2のセットの1つ以上のメモリよりも速いアクセスを提供する、
請求項11に記載のシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/273,751 | 2014-05-09 | ||
US14/273,751 US9377954B2 (en) | 2014-05-09 | 2014-05-09 | System and method for memory allocation in a multiclass memory system |
PCT/US2015/029369 WO2015171695A1 (en) | 2014-05-09 | 2015-05-06 | System and method for memory allocation in a multiclass memory system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017517792A true JP2017517792A (ja) | 2017-06-29 |
JP6205506B2 JP6205506B2 (ja) | 2017-09-27 |
Family
ID=54367891
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016558775A Active JP6205506B2 (ja) | 2014-05-09 | 2015-05-06 | マルチクラスメモリシステムにおけるメモリ割り当てのシステム及び方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9377954B2 (ja) |
EP (1) | EP3140746A4 (ja) |
JP (1) | JP6205506B2 (ja) |
KR (1) | KR101779994B1 (ja) |
CN (1) | CN106133706A (ja) |
WO (1) | WO2015171695A1 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9977730B2 (en) * | 2015-05-08 | 2018-05-22 | Dell Products, Lp | System and method for optimizing system memory and input/output operations memory |
US10515430B2 (en) * | 2015-11-03 | 2019-12-24 | International Business Machines Corporation | Allocating device buffer on GPGPU for an object with metadata using access boundary alignment |
US9847105B2 (en) * | 2016-02-01 | 2017-12-19 | Samsung Electric Co., Ltd. | Memory package, memory module including the same, and operation method of memory package |
JP6423809B2 (ja) * | 2016-02-19 | 2018-11-14 | イーソル株式会社 | オペレーティングシステム、プログラミングシステム及びメモリ割り当て方法 |
US20180314945A1 (en) * | 2017-04-27 | 2018-11-01 | Advanced Micro Devices, Inc. | Graph matching for optimized deep network processing |
JP6682599B2 (ja) * | 2018-10-19 | 2020-04-15 | イーソル株式会社 | オペレーティングシステム及びメモリ割り当て方法 |
US11150962B2 (en) * | 2019-07-17 | 2021-10-19 | Memverge, Inc. | Applying an allocation policy to capture memory calls using a memory allocation capture library |
US11580019B2 (en) * | 2020-04-17 | 2023-02-14 | Microsoft Technology Licensing, Llc | Computer memory management in computing devices |
US11093169B1 (en) * | 2020-04-29 | 2021-08-17 | EMC IP Holding Company LLC | Lockless metadata binary tree access |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08194643A (ja) * | 1995-01-19 | 1996-07-30 | Fanuc Ltd | メモリ制御方式 |
JP2002351741A (ja) * | 2001-05-30 | 2002-12-06 | Matsushita Electric Ind Co Ltd | 半導体集積回路装置 |
JP2006174265A (ja) * | 2004-12-17 | 2006-06-29 | Matsushita Electric Ind Co Ltd | ストリームパケット受信装置 |
JP2009020684A (ja) * | 2007-07-11 | 2009-01-29 | Kawasaki Microelectronics Kk | 端末装置 |
US20120246403A1 (en) * | 2011-03-25 | 2012-09-27 | Dell Products, L.P. | Write spike performance enhancement in hybrid storage systems |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1537275A (zh) * | 2001-02-24 | 2004-10-13 | �Ҵ���˾ | 低等待时间存储器系统访问 |
US7177985B1 (en) * | 2003-05-30 | 2007-02-13 | Mips Technologies, Inc. | Microprocessor with improved data stream prefetching |
US7293051B1 (en) * | 2004-07-01 | 2007-11-06 | Sun Microsystems, Inc. | Collection-set selection using a small priority queue |
US7926043B2 (en) | 2006-06-20 | 2011-04-12 | Microsoft Corporation | Data structure path profiling |
US8060719B2 (en) * | 2008-05-28 | 2011-11-15 | Micron Technology, Inc. | Hybrid memory management |
US20110107042A1 (en) | 2009-11-03 | 2011-05-05 | Andrew Herron | Formatting data storage according to data classification |
US8615636B2 (en) * | 2011-03-03 | 2013-12-24 | International Business Machines Corporation | Multiple-class priority-based replacement policy for cache memory |
US9009392B2 (en) * | 2012-04-25 | 2015-04-14 | International Business Machines Corporation | Leveraging a hybrid infrastructure for dynamic memory allocation and persistent file storage |
US9652289B2 (en) * | 2012-04-27 | 2017-05-16 | Microsoft Technology Licensing, Llc | Systems and methods for S-list partitioning |
-
2014
- 2014-05-09 US US14/273,751 patent/US9377954B2/en active Active
-
2015
- 2015-05-06 KR KR1020167027124A patent/KR101779994B1/ko active IP Right Grant
- 2015-05-06 EP EP15789829.7A patent/EP3140746A4/en not_active Withdrawn
- 2015-05-06 WO PCT/US2015/029369 patent/WO2015171695A1/en active Application Filing
- 2015-05-06 CN CN201580015368.8A patent/CN106133706A/zh active Pending
- 2015-05-06 JP JP2016558775A patent/JP6205506B2/ja active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08194643A (ja) * | 1995-01-19 | 1996-07-30 | Fanuc Ltd | メモリ制御方式 |
JP2002351741A (ja) * | 2001-05-30 | 2002-12-06 | Matsushita Electric Ind Co Ltd | 半導体集積回路装置 |
JP2006174265A (ja) * | 2004-12-17 | 2006-06-29 | Matsushita Electric Ind Co Ltd | ストリームパケット受信装置 |
JP2009020684A (ja) * | 2007-07-11 | 2009-01-29 | Kawasaki Microelectronics Kk | 端末装置 |
US20120246403A1 (en) * | 2011-03-25 | 2012-09-27 | Dell Products, L.P. | Write spike performance enhancement in hybrid storage systems |
Also Published As
Publication number | Publication date |
---|---|
EP3140746A4 (en) | 2018-03-07 |
EP3140746A1 (en) | 2017-03-15 |
KR101779994B1 (ko) | 2017-09-19 |
US20150324131A1 (en) | 2015-11-12 |
US9377954B2 (en) | 2016-06-28 |
JP6205506B2 (ja) | 2017-09-27 |
KR20160122851A (ko) | 2016-10-24 |
WO2015171695A1 (en) | 2015-11-12 |
CN106133706A (zh) | 2016-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6205506B2 (ja) | マルチクラスメモリシステムにおけるメモリ割り当てのシステム及び方法 | |
US10956331B2 (en) | Cache partitioning in a multicore processor | |
CN107636625B (zh) | 用于共享系统高速缓存的虚拟化控制的方法和装置 | |
JP6378417B2 (ja) | 動的パーティショニングを用いる共有されるキャッシュのための方法および装置 | |
JP6214815B2 (ja) | セットおよびウェイによるコンポーネントキャッシュへの柔軟なキャッシュパーティショニングのための方法および装置 | |
EP2645259B1 (en) | Method, device and system for caching data in multi-node system | |
US10255190B2 (en) | Hybrid cache | |
KR20130018597A (ko) | 키값 스토어를 포함하는 메모리 시스템 | |
KR20120123127A (ko) | 이종 플랫폼에서 포인터를 공유시키는 방법 및 장치 | |
US20210173574A1 (en) | Allocating variable media types of memory devices in a memory system | |
JP5591969B1 (ja) | マルチコアプロセッサおよび制御方法 | |
US20190042415A1 (en) | Storage model for a computer system having persistent system memory | |
CN109791510B (zh) | 在异构计算中管理数据流 | |
JP2017076396A (ja) | コンピューティングシステムとその動作方法 | |
US20180046474A1 (en) | Method for executing child kernels invoked on device side utilizing dynamic kernel consolidation and related non-transitory computer readable medium | |
Kaczmarski | Experimental B+-tree for GPU | |
US8914779B2 (en) | Data placement for execution of an executable | |
CN105612505B (zh) | Cpu调度的方法和装置 | |
JPH0844577A (ja) | データ分割方法及びマルチプロセッサシステム | |
CN106940682B (zh) | 一种基于片上可编程存储器的嵌入式系统优化方法 | |
US20110179038A1 (en) | Per-thread, per-instance data storage | |
US20240111672A1 (en) | Data co-location using address hashing for high-performance processing in memory | |
Lee et al. | Analyzethat: a programmable shared-memory system for an array of processing-in-memory devices | |
Butcher et al. | Exploring Strategies to Improve Locality Across Many-Core Affinities | |
EP4214610A1 (en) | Weights layout transformation assisted nested loops optimization for ai inference |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170328 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20170815 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170904 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6205506 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |