JP2017146895A - オペレーティングシステム、プログラミングシステム及びメモリ割り当て方法 - Google Patents
オペレーティングシステム、プログラミングシステム及びメモリ割り当て方法 Download PDFInfo
- Publication number
- JP2017146895A JP2017146895A JP2016029795A JP2016029795A JP2017146895A JP 2017146895 A JP2017146895 A JP 2017146895A JP 2016029795 A JP2016029795 A JP 2016029795A JP 2016029795 A JP2016029795 A JP 2016029795A JP 2017146895 A JP2017146895 A JP 2017146895A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- memory area
- core
- area
- allocation
- 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
Landscapes
- Stored Programmes (AREA)
Abstract
【解決手段】実メモリIDが指定されてメモリ獲得用APIが呼び出されたときには、指定された実メモリIDに関連付けられたメモリ領域20からメモリ割り当てを実行させる。また、仮想コアIDが指定されてメモリ獲得用APIが呼び出されたときには、メモリ獲得用APIを呼び出したアプリケーションプログラム40が実行されているプロセッサコアのローカルメモリに係るコアメモリ領域からメモリ割り当てを実行させる。
【選択図】図10
Description
次に、コンフィギュレーションファイル41の記述例について説明する。なお、図7がコンフィギュレーションファイル41の具体的な記述例である。この図7に示すコンフィギュレーションファイル41では、DEF_MEM(メモリの定義)と、DEF_MEMOBJ(メモリ領域20の定義)と、DEF_HEAP(ヒープIDの定義)と、の3つの定義を記述することができる。
このように、メモリ領域20が定義されることで、図8に示すようなツリー構造が作成される。
memobjidには「予め決められた仮想属性」または「ヒープIDに関連付けるメモリ領域20の名前」を指定する。
次に、メモリ獲得用APIの仕様について説明する。本実施形態に係るオペレーティングシステム10は、例えば図9に示すようなメモリ獲得用APIを備えており、このメモリ獲得用APIをアプリケーションプログラム40から呼び出し可能となっている。このメモリ獲得用APIには、引数として「heapid」「size」「addr」を指定可能である。
sizeには「獲得したいメモリのサイズ」を指定する。
次に、上記したメモリ獲得用APIが呼び出されたときのオペレーティングシステム10の処理について説明する。図10は、メモリ割り当て処理のメインフロー図である。
グローバルメモリ割り当て処理について、図11を参照しつつ説明する。
まず、図11に示すステップS200において、マイクロカーネル16は、メモリ獲得用APIの呼び出し元のプロセッサコアの番号(本実施形態においてはマイクロカーネル16が実行されているプロセッサコアの番号)を取得する。そして、ステップS201に進む。
ステップS209へ進んだ場合、エラーコードをアプリケーションプログラム40に返却する。そして処理が終了する。
クラスタメモリ割り当て処理について、図12を参照しつつ説明する。
まず、図12に示すステップS300において、マイクロカーネル16は、メモリ獲得用APIの呼び出し元のプロセッサコアの番号(本実施形態においてはマイクロカーネル16が実行されているプロセッサコアの番号)を取得する。そして、ステップS301に進む。
コアメモリ割り当て処理について、図13を参照しつつ説明する。
まず、図13に示すステップS400において、マイクロカーネル16は、メモリ獲得用APIの呼び出し元のプロセッサコアの番号(本実施形態においてはマイクロカーネル16が実行されているプロセッサコアの番号)を取得する。そして、ステップS401に進む。
実メモリ割り当て処理について、図14を参照しつつ説明する。
まず、図14に示すステップS500において、マイクロカーネル16は、メモリ獲得用APIの引数で指定されたヒープID(実メモリID)を基に、そのヒープIDに関連付けられたメモリ領域20をメモリ割り当ての対象として選択する。例えば、図7の(9)で定義された「HEAP_CORE4」というヒープIDがメモリ獲得用APIの引数で指定されている場合、このヒープIDに関連付けられた「MEMOBJ_CORE4」という名前のメモリ領域20をメモリ割り当ての対象として選択する。そして、ステップS501に進む。
以上説明したように、本実施形態によれば、実メモリIDが指定されてメモリ獲得用APIが呼び出されたときには、指定された実メモリIDに関連付けられたメモリ領域20からメモリ割り当てを実行させるようにしている。このため、アプリケーションプログラム40が指定した特定のメモリからのメモリ割り当てを実行したい場合には、実メモリIDを指定してメモリ獲得用APIを呼び出せばよい。
12 メモリ領域作成部
14 メモリ割り当て部
15 ヒープマネージャ
16 マイクロカーネル
20 メモリ領域
21a 第1のコアメモリ領域
21b 第2のコアメモリ領域
21c 第3のコアメモリ領域
21d 第4のコアメモリ領域
22a 第1のクラスタメモリ領域
22b 第2のクラスタメモリ領域
23 グローバルメモリ領域
30a 第1のプロセッサコア
30b 第2のプロセッサコア
30c 第3のプロセッサコア
30d 第4のプロセッサコア
31a 第1のプロセッサコアのローカルメモリ
31b 第2のプロセッサコアのローカルメモリ
31c 第3のプロセッサコアのローカルメモリ
31d 第4のプロセッサコアのローカルメモリ
32a 第1のクラスタ
32b 第2のクラスタ
33a 第1のクラスタメモリ
33b 第2のクラスタメモリ
34 グローバルメモリ
40 アプリケーションプログラム
41 コンフィギュレーションファイル
42 情報生成手段
43 内部データ
44 ヘッダファイル
45 アプリケーションプログラムのソースコード
46 コンパイラ
47 オブジェクトファイル
Claims (9)
- それぞれローカルメモリを備えた複数のプロセッサコアを相互に接続したマルチコア環境において実行され、アプリケーションプログラムから呼び出し可能なメモリ獲得用APIを実装したオペレーティングシステムであって、
予め設定された内部データに従って複数のメモリ領域を作成するメモリ領域作成部と、
前記メモリ獲得用APIの引数として指定されたヒープIDを参照し、前記ヒープIDに関連付けられた前記メモリ領域からメモリ割り当てを実行させるメモリ割り当て部と、
を備え、
前記メモリ領域として、前記複数のプロセッサコアのローカルメモリに係るコアメモリ領域を含み、
前記ヒープIDとして、前記メモリ領域を直接指定してメモリを割り当てるための実メモリIDと、前記コアメモリ領域を動的に選択してメモリを割り当てるための仮想コアIDと、を含み、
前記メモリ割り当て部は、
前記実メモリIDが指定されて前記メモリ獲得用APIが呼び出されたときには、指定された実メモリIDに関連付けられた前記メモリ領域からメモリ割り当てを実行させ、
前記仮想コアIDが指定されて前記メモリ獲得用APIが呼び出されたときには、前記メモリ獲得用APIを呼び出したアプリケーションプログラムが実行されているプロセッサコアのローカルメモリに係る前記コアメモリ領域からメモリ割り当てを実行させることを特徴とする、オペレーティングシステム。 - 前記メモリ領域として、1以上の前記コアメモリ領域に紐付けられたクラスタメモリ領域を含み、
前記ヒープIDとして、前記クラスタメモリ領域を動的に選択してメモリを割り当てるための仮想クラスタIDを含み、
前記メモリ割り当て部は、
前記仮想クラスタIDが指定されて前記メモリ獲得用APIが呼び出されたときには、前記メモリ獲得用APIを呼び出したアプリケーションプログラムが実行されているプロセッサコアのローカルメモリに係る前記コアメモリ領域を特定し、当該コアメモリ領域に紐付けられた前記クラスタメモリ領域からメモリ割り当てを実行させることを特徴とする、請求項1記載のオペレーティングシステム。 - 前記メモリ領域として、1以上の前記クラスタメモリ領域に紐付けられたグローバルメモリ領域を含み、
前記ヒープIDとして、前記グローバルメモリ領域を動的に選択してメモリを割り当てるための仮想グローバルIDを含み、
前記メモリ割り当て部は、
前記仮想グローバルIDが指定されて前記メモリ獲得用APIが呼び出されたときには、前記メモリ獲得用APIを呼び出したアプリケーションプログラムが実行されているプロセッサコアのローカルメモリに係る前記メモリ領域を特定し、当該メモリ領域に紐付けられた前記メモリ領域を再帰的に辿って発見した前記グローバルメモリ領域からメモリ割り当てを実行させることを特徴とする、請求項2記載のオペレーティングシステム。 - 前記メモリ領域作成部は、前記メモリ領域でツリー構造を作成し、
前記メモリ割り当て部は、
前記ヒープIDで指定されたメモリ領域からのメモリ割り当てに失敗したときには、当該メモリ領域の上位のメモリ領域からメモリ割り当てを実行させることを特徴とする、請求項1〜3のいずれか1項に記載のオペレーティングシステム。 - 請求項1〜4のいずれか1項に記載のオペレーティングシステムと、
前記ヒープIDと前記メモリ領域との関係を記述したコンフィギュレーションファイルと、
前記コンフィギュレーションファイルを読み込んで、前記アプリケーションプログラム用のヘッダファイルと前記オペレーティングシステム用の内部データとを生成する情報生成手段と、
前記ヘッダファイルを使用して前記アプリケーションプログラムのソースコードをコンパイルするコンパイラと、
を備えることを特徴とする、プログラミングシステム。 - それぞれローカルメモリを備えた複数のプロセッサコアを相互に接続したマルチコア環境において、アプリケーションプログラムからメモリ獲得用APIが呼び出されたときに、メモリ割り当てを実行させるためのメモリ割り当て方法であって、
予め設定された内部データに従って複数のメモリ領域を作成するステップと、
前記メモリ獲得用APIの引数として指定されたヒープIDを参照し、前記ヒープIDに関連付けられた前記メモリ領域からメモリ割り当てを実行させるステップと、
を備え、
前記メモリ領域として、前記複数のプロセッサコアのローカルメモリに係るコアメモリ領域を含み、
前記ヒープIDとして、前記メモリ領域を直接指定してメモリを割り当てるための実メモリIDと、前記コアメモリ領域を動的に選択してメモリを割り当てるための仮想コアIDと、を含み、
前記実メモリIDが指定されて前記メモリ獲得用APIが呼び出されたときには、指定された実メモリIDに関連付けられた前記メモリ領域からメモリ割り当てを実行させ、
前記仮想コアIDが指定されて前記メモリ獲得用APIが呼び出されたときには、前記メモリ獲得用APIを呼び出したアプリケーションプログラムが実行されているプロセッサコアのローカルメモリに係る前記コアメモリ領域からメモリ割り当てを実行させることを特徴とする、メモリ割り当て方法。 - 前記メモリ領域として、1以上の前記コアメモリ領域に紐付けられたクラスタメモリ領域を含み、
前記ヒープIDとして、前記クラスタメモリ領域を動的に選択してメモリを割り当てるための仮想クラスタIDを含み、
前記仮想クラスタIDが指定されて前記メモリ獲得用APIが呼び出されたときには、前記メモリ獲得用APIを呼び出したアプリケーションプログラムが実行されているプロセッサコアのローカルメモリに係る前記コアメモリ領域を特定し、当該コアメモリ領域に紐付けられた前記クラスタメモリ領域からメモリ割り当てを実行させることを特徴とする、請求項6記載のメモリ割り当て方法。 - 前記メモリ領域として、1以上の前記クラスタメモリ領域に紐付けられたグローバルメモリ領域を含み、
前記ヒープIDとして、前記グローバルメモリ領域を動的に選択してメモリを割り当てるための仮想グローバルIDを含み、
前記仮想グローバルIDが指定されて前記メモリ獲得用APIが呼び出されたときには、前記メモリ獲得用APIを呼び出したアプリケーションプログラムが実行されているプロセッサコアのローカルメモリに係る前記メモリ領域を特定し、当該メモリ領域に紐付けられた前記メモリ領域を再帰的に辿って発見した前記グローバルメモリ領域からメモリ割り当てを実行させることを特徴とする、請求項7記載のメモリ割り当て方法。 - 前記メモリ領域でツリー構造を作成し、
前記ヒープIDで指定されたメモリ領域からのメモリ割り当てに失敗したときには、当該メモリ領域の上位のメモリ領域からメモリ割り当てを実行させることを特徴とする、請求項6〜8のいずれか1項に記載のメモリ割り当て方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016029795A JP6423809B2 (ja) | 2016-02-19 | 2016-02-19 | オペレーティングシステム、プログラミングシステム及びメモリ割り当て方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016029795A JP6423809B2 (ja) | 2016-02-19 | 2016-02-19 | オペレーティングシステム、プログラミングシステム及びメモリ割り当て方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018197732A Division JP6682599B2 (ja) | 2018-10-19 | 2018-10-19 | オペレーティングシステム及びメモリ割り当て方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017146895A true JP2017146895A (ja) | 2017-08-24 |
JP6423809B2 JP6423809B2 (ja) | 2018-11-14 |
Family
ID=59681644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016029795A Active JP6423809B2 (ja) | 2016-02-19 | 2016-02-19 | オペレーティングシステム、プログラミングシステム及びメモリ割り当て方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6423809B2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022548887A (ja) * | 2019-09-17 | 2022-11-22 | マイクロン テクノロジー,インク. | メモリタイプへのページテーブルフック |
US11650742B2 (en) | 2019-09-17 | 2023-05-16 | Micron Technology, Inc. | Accessing stored metadata to identify memory devices in which data is stored |
US11868268B2 (en) | 2019-09-17 | 2024-01-09 | Micron Technology, Inc. | Mapping non-typed memory access to typed memory access |
US11934319B2 (en) | 2019-09-17 | 2024-03-19 | Micron Technology, Inc. | Memory system for binding data to a memory namespace |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04245344A (ja) * | 1991-01-31 | 1992-09-01 | Hitachi Ltd | マルチプロセッサシステムのメモリ管理方法 |
JPH09237215A (ja) * | 1995-06-23 | 1997-09-09 | Data General Corp | 非一様メモリ・アクセス・マルチプロセッサ・システム用オペレーティング・システム |
US20130024667A1 (en) * | 2011-07-20 | 2013-01-24 | Renesas Electronics Corporation | Arithmetic and control unit, arithmethic and control method, program and parallel processor |
US20150324131A1 (en) * | 2014-05-09 | 2015-11-12 | Advanced Micro Devices, Inc. | System and method for memory allocation in a multiclass memory system |
JP2017076396A (ja) * | 2015-10-14 | 2017-04-20 | 三星電子株式会社Samsung Electronics Co.,Ltd. | コンピューティングシステムとその動作方法 |
-
2016
- 2016-02-19 JP JP2016029795A patent/JP6423809B2/ja active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04245344A (ja) * | 1991-01-31 | 1992-09-01 | Hitachi Ltd | マルチプロセッサシステムのメモリ管理方法 |
JPH09237215A (ja) * | 1995-06-23 | 1997-09-09 | Data General Corp | 非一様メモリ・アクセス・マルチプロセッサ・システム用オペレーティング・システム |
US20130024667A1 (en) * | 2011-07-20 | 2013-01-24 | Renesas Electronics Corporation | Arithmetic and control unit, arithmethic and control method, program and parallel processor |
JP2013025547A (ja) * | 2011-07-20 | 2013-02-04 | Renesas Electronics Corp | 演算制御装置及び演算制御方法並びにプログラム、並列プロセッサ |
US20150324131A1 (en) * | 2014-05-09 | 2015-11-12 | Advanced Micro Devices, Inc. | System and method for memory allocation in a multiclass memory system |
JP2017076396A (ja) * | 2015-10-14 | 2017-04-20 | 三星電子株式会社Samsung Electronics Co.,Ltd. | コンピューティングシステムとその動作方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022548887A (ja) * | 2019-09-17 | 2022-11-22 | マイクロン テクノロジー,インク. | メモリタイプへのページテーブルフック |
US11650742B2 (en) | 2019-09-17 | 2023-05-16 | Micron Technology, Inc. | Accessing stored metadata to identify memory devices in which data is stored |
US11868268B2 (en) | 2019-09-17 | 2024-01-09 | Micron Technology, Inc. | Mapping non-typed memory access to typed memory access |
US11934319B2 (en) | 2019-09-17 | 2024-03-19 | Micron Technology, Inc. | Memory system for binding data to a memory namespace |
Also Published As
Publication number | Publication date |
---|---|
JP6423809B2 (ja) | 2018-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210397551A1 (en) | Numa-aware garbage collection | |
US9965324B2 (en) | Process grouping for improved cache and memory affinity | |
JP6423809B2 (ja) | オペレーティングシステム、プログラミングシステム及びメモリ割り当て方法 | |
US8726257B2 (en) | File attributes for flexible linking | |
RU2569805C2 (ru) | Виртуальная архитектура неоднородной памяти для виртуальных машин | |
US6505286B1 (en) | User specifiable allocation of memory for processes in a multiprocessor computer having a non-uniform memory architecture | |
US20120254267A1 (en) | Numa-aware garbage collection | |
JP2007026094A (ja) | 実行装置およびアプリケーションプログラム | |
KR20130011961A (ko) | 연산 제어 장치, 연산 제어 방법, 프로그램, 및 병렬 프로세서 | |
CN1140500A (zh) | 分布式数据库系统 | |
Virouleau et al. | Using data dependencies to improve task-based scheduling strategies on NUMA architectures | |
Eichenberger et al. | The design of openmp thread affinity | |
CN114942796A (zh) | 插件编译及调用方法、装置、设备及存储介质 | |
JP5678133B2 (ja) | 複数のタスクにわたる複数のオペレーティングシステム・サブプロセスの共有 | |
JP2007188523A (ja) | タスク実行方法およびマルチプロセッサシステム | |
EP2757475A2 (en) | Method and system for dynamically changing page allocator | |
US20140289739A1 (en) | Allocating and sharing a data object among program instances | |
US7386702B2 (en) | Systems and methods for accessing thread private data | |
JP6932755B2 (ja) | オペレーティングシステム及びメモリ割り当て方法 | |
JP6682599B2 (ja) | オペレーティングシステム及びメモリ割り当て方法 | |
WO2017142525A1 (en) | Allocating a zone of a shared memory region | |
KR101140522B1 (ko) | 객체 관리 시스템 및 방법 | |
JP3019317B2 (ja) | プロセススケジューリング方法 | |
US8082553B2 (en) | Client management of java management extensions (JMX) Mbean state | |
CA2387200A1 (en) | Implementation of thread-static data in multi-threaded computer systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180214 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180313 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180423 |
|
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: 20180925 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20181019 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6423809 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 |