JP2013003934A - メモリ管理方法、計算機及びメモリ管理プログラム - Google Patents
メモリ管理方法、計算機及びメモリ管理プログラム Download PDFInfo
- Publication number
- JP2013003934A JP2013003934A JP2011135930A JP2011135930A JP2013003934A JP 2013003934 A JP2013003934 A JP 2013003934A JP 2011135930 A JP2011135930 A JP 2011135930A JP 2011135930 A JP2011135930 A JP 2011135930A JP 2013003934 A JP2013003934 A JP 2013003934A
- Authority
- JP
- Japan
- Prior art keywords
- program
- memory
- history
- program counter
- optimization
- 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
Abstract
【解決手段】プログラムを格納するメモリと、メモリに格納されたプログラムを実行するプロセッサと、メモリに格納されたプログラムを一時的に格納するキャッシュと、を備えた計算機におけるメモリ管理方法であって、プロセッサが、所定のタイミング毎にプログラムカウンタが示す値を取得する手順と、取得されたプログラムカウンタが示す値の履歴を、メモリ上のプログラムカウンタ履歴領域に記録する手順と、記録されたプログラムカウンタが示す値の履歴に基づいて、プログラムの実行状況に関する統計情報を生成する手順と、生成された統計情報に基づいて、メモリ上におけるプログラムの命令の配置を最適化する手順と、最適化に基づいて配置されたプログラムの命令をキャッシュに格納する手順とを含む。
【選択図】図6
Description
本発明の第1の実施形態では、コンテキストスイッチ時にPC(Program Counter)が示す値(以下、「PC値」という。)を取得し、取得されたPC値に基づいてプロファイル情報を作成し、作成されたプロファイル情報に基づいてメモリ上の命令の配置を最適化する方法について説明する。なお、PCとは、次に実行すべき命令のメモリ上のアドレスを格納しているCPUのレジスタ(カウンタ)である。
図1は、本発明の第1の実施形態の計算機1のハードウェア構成の一例を示す図である。図1に示すように、本発明の第1の実施形態の最適化可能なソフトウェアが稼働できる計算機1は、少なくともCPU100、キャッシュ110及びメモリ120を備える。なお、計算機1は、CPU100、キャッシュ110及びメモリ120以外の構成要素を備えてよい。
図2は、本発明の第1の実施形態の計算機1で実行されるコンテキストスイッチの概要を示す図である。
ここで、PC取得フラグ310の切替え方法について説明する。
次に、PC履歴ポインタ320について説明する。
複数の標的プロセス400がある場合に、各標的プロセス400によってPC履歴330を共有する方法について説明する。
複数の標的プロセス400がPC履歴330を共有している場合に、PC履歴330の領域の誤解放を防ぐための方法について説明する。
マルチタスクOS(CPU100)が、PC履歴330を統計処理することによって、プロファイル情報610を生成するステップについて説明する。プロファイル情報610とは、プログラムの過去及び現在の実行状況に関する統計情報であって、PC履歴330に基づいて生成される。
最適化スレッド600(CPU100)が、プロファイル情報610に最適化アルゴリズムを適用することによって、最適化情報620を生成するステップについて説明する。なお、最適化アルゴリズムとは、メモリ120上の関数の配置を最適化するための処理手順である。また、最適化情報620とは、メモリ120上の関数の配置を最適化するために利用される情報である。
最適化スレッド600(CPU100)が、最適化情報620に基づいて、命令格納メモリ420において関数をコピーするステップについて説明する。具体的には、最適化情報620に含まれる各関数を、命令格納メモリ420上の別アドレスに連続した状態でコピーすることによって、命令格納メモリ420における各関数の配置を最適化する。
最適化スレッド600(CPU100)が、最適化情報710(図7C参照)に基づいて、関数アドレステーブル640を更新するステップについて説明する。
第1の実施形態では、関数毎にメモリ120上の配置を最適化する形態について説明した。第2の実施形態では、関数同士の依存関係を利用して、関数の組み合わせ毎にメモリ120上の配置を最適化する形態について説明する。なお、以下では、前述の第1の実施形態と同様である部分の説明を適宜省略する。
110 キャッシュ
111 i−cache
120 メモリ
300 タスク構造体
310 PC取得フラグ
330 PC履歴(PC履歴領域)
400 標的プロセス
410 PC
420 命令格納メモリ
600 最適化スレッド
610 プロファイル情報
620 最適化情報
640 関数アドレステーブル
700 関数マッピング情報
1000 依存関係
Claims (8)
- プログラムを格納するメモリと、前記メモリに格納されたプログラムを実行するプロセッサと、前記メモリに格納されたプログラムを一時的に格納するキャッシュと、を備えた計算機におけるメモリ管理方法であって、
前記メモリは、前記プロセッサのプログラムカウンタが示す値の履歴を記録するプログラムカウンタ履歴領域を備え、
前記方法は、
前記プロセッサが、
所定のタイミング毎に、前記プログラムカウンタが示す値を取得する手順と、
取得された前記プログラムカウンタが示す値の履歴を、前記プログラムカウンタ履歴領域に記録する手順と、
記録された前記プログラムカウンタが示す値の履歴に基づいて、前記プログラムの実行状況に関する統計情報を生成する手順と、
生成された前記統計情報に基づいて、前記メモリ上における前記プログラムの命令の配置を最適化する手順と、
最適化に基づいて配置された前記プログラムの命令を、前記キャッシュに格納する手順と、
を含むことを特徴とするメモリ管理方法。 - 前記プロセッサ上では、複数のタスクを並列処理するマルチタスク方式のオペレーティングシステムが動作し、
前記取得する手順では、前記オペレーティングシステムが、コンテキストスイッチ処理を実行する毎に、前記プログラムカウンタが示す値を取得し、
前記記録する手順では、前記オペレーティングシステムが、取得された前記プログラムカウンタが示す値の履歴を、前記プログラムカウンタ履歴領域に記録することを特徴とする請求項1に記載のメモリ管理方法。 - 前記マルチタスク方式のオペレーティングシステム上では、複数のタスクが動作し、
前記各タスクは、前記メモリ上に、前記プログラムカウンタが示す値を取得するか否かを示すプログラムカウンタ取得フラグを含むタスク構造体を有し、
前記取得する手順では、前記オペレーティングシステムは、コンテキストスイッチ処理を実行時に、切替え後のタスクが有するタスク構造体中のプログラムカウンタ取得フラグがオンの場合に、前記プログラムカウンタが示す値を取得することを特徴とする請求項2に記載のメモリ管理方法。 - 前記プロセッサ上では、複数のタスクを並列処理するマルチタスク方式のオペレーティングシステムが動作し、
前記オペレーティングシステム上で複数の同種のタスクが動作している場合、
前記複数の同種のタスクの各々は、前記プログラムカウンタ履歴領域を共有することを特徴とする請求項1に記載のメモリ管理方法。 - 前記プログラムカウンタが示す値の取得を実行するか否かを切替え可能であることを特徴とする請求項1に記載のメモリ管理方法。
- 前記最適化する手順において、前記プロセッサは、前記プログラムの実行状況に関する統計情報と、前記プログラムの命令間の依存情報とに基づいて、前記メモリ上における前記プログラムの命令の配置を最適化することを特徴とする請求項1に記載のメモリ管理方法。
- プログラムを格納するメモリと、前記メモリに格納されたプログラムを実行するプロセッサと、前記メモリに格納されたプログラムを一時的に格納するキャッシュと、を備えた計算機であって、
前記メモリは、前記プロセッサのプログラムカウンタが示す値の履歴を記録するプログラムカウンタ履歴領域を備え、
前記プロセッサは、
所定のタイミング毎に、前記プログラムカウンタが示す値を取得し、
取得された前記プログラムカウンタが示す値の履歴を、前記プログラムカウンタ履歴領域に記録し、
記録された前記プログラムカウンタが示す値の履歴に基づいて、前記プログラムの実行状況に関する統計情報を生成し、
生成された前記統計情報に基づいて、前記メモリ上における前記プログラムの命令の配置を最適化し、
最適化に基づいて配置された前記プログラムの命令を、前記キャッシュに格納することを特徴とする計算機。 - プログラムを格納するメモリと、前記メモリに格納されたプログラムを実行するプロセッサと、前記メモリに格納されたプログラムを一時的に格納するキャッシュと、を備えた計算機において実行されるメモリ管理プログラムであって、
前記メモリは、前記プロセッサのプログラムカウンタが示す値の履歴を記録するプログラムカウンタ履歴領域を備え、
前記メモリ管理プログラムは、
所定のタイミング毎に、前記プログラムカウンタが示す値を取得する手順と、
取得された前記プログラムカウンタが示す値の履歴を、前記プログラムカウンタ履歴領域に記録する手順と、
記録された前記プログラムカウンタが示す値の履歴に基づいて、前記プログラムの実行状況に関する統計情報を生成する手順と、
生成された前記統計情報に基づいて、前記メモリ上における前記プログラムの命令の配置を最適化する手順と、
最適化に基づいて配置された前記プログラムの命令を、前記キャッシュに格納する手順と、
を前記プロセッサに実行させることを特徴とするメモリ管理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011135930A JP5577518B2 (ja) | 2011-06-20 | 2011-06-20 | メモリ管理方法、計算機及びメモリ管理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011135930A JP5577518B2 (ja) | 2011-06-20 | 2011-06-20 | メモリ管理方法、計算機及びメモリ管理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013003934A true JP2013003934A (ja) | 2013-01-07 |
JP5577518B2 JP5577518B2 (ja) | 2014-08-27 |
Family
ID=47672424
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011135930A Expired - Fee Related JP5577518B2 (ja) | 2011-06-20 | 2011-06-20 | メモリ管理方法、計算機及びメモリ管理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5577518B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9983798B2 (en) | 2015-06-16 | 2018-05-29 | Fujitsu Limited | Information processing apparatus and data accessing method |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH086813A (ja) * | 1994-06-23 | 1996-01-12 | Hitachi Ltd | トレース制御方式 |
JPH10289097A (ja) * | 1997-04-11 | 1998-10-27 | Nec Corp | カーネル構築システム |
JPH11212798A (ja) * | 1998-01-26 | 1999-08-06 | Nec Corp | 言語処理方法、言語処理装置及び言語処理プログラムを記録した記憶媒体 |
JP2001216140A (ja) * | 2000-01-31 | 2001-08-10 | Nec Microsystems Ltd | 命令キャッシュ関数割付装置、割付最適化方法および割付最適化手順を記録した記録媒体 |
JP2008197980A (ja) * | 2007-02-14 | 2008-08-28 | Nec Corp | 分散並列プログラムの障害解析ファイル軽量化装置、その方法及びそのプログラム |
JP2009217385A (ja) * | 2008-03-07 | 2009-09-24 | Toshiba Corp | プロセッサ及びマルチプロセッサ |
-
2011
- 2011-06-20 JP JP2011135930A patent/JP5577518B2/ja not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH086813A (ja) * | 1994-06-23 | 1996-01-12 | Hitachi Ltd | トレース制御方式 |
JPH10289097A (ja) * | 1997-04-11 | 1998-10-27 | Nec Corp | カーネル構築システム |
JPH11212798A (ja) * | 1998-01-26 | 1999-08-06 | Nec Corp | 言語処理方法、言語処理装置及び言語処理プログラムを記録した記憶媒体 |
JP2001216140A (ja) * | 2000-01-31 | 2001-08-10 | Nec Microsystems Ltd | 命令キャッシュ関数割付装置、割付最適化方法および割付最適化手順を記録した記録媒体 |
JP2008197980A (ja) * | 2007-02-14 | 2008-08-28 | Nec Corp | 分散並列プログラムの障害解析ファイル軽量化装置、その方法及びそのプログラム |
JP2009217385A (ja) * | 2008-03-07 | 2009-09-24 | Toshiba Corp | プロセッサ及びマルチプロセッサ |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9983798B2 (en) | 2015-06-16 | 2018-05-29 | Fujitsu Limited | Information processing apparatus and data accessing method |
Also Published As
Publication number | Publication date |
---|---|
JP5577518B2 (ja) | 2014-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4209906B2 (ja) | 低消費電力メモリ管理方法及びその方法を用いた計算機 | |
JP4837456B2 (ja) | 情報処理装置 | |
JP4151977B2 (ja) | 先読み装置、先読み方法、および先読みプログラム | |
KR100734823B1 (ko) | 메모리 압축된 머신을 모핑하는 방법 및 장치 | |
US9015203B2 (en) | Balloon object feedback for Java Virtual Machines | |
US10558569B2 (en) | Cache controller for non-volatile memory | |
US20080235477A1 (en) | Coherent data mover | |
JP5989908B2 (ja) | 不揮発性メモリにコードをキャッシュする方法、システムおよび装置 | |
US9047221B2 (en) | Virtual machines failover | |
KR101651204B1 (ko) | 스냅샷 이미지의 동기화 장치 및 방법 | |
Laga et al. | Lynx: A learning linux prefetching mechanism for ssd performance model | |
JP2017527887A (ja) | ファイルシステムにおけるフラッシング | |
JP5226010B2 (ja) | 共有キャッシュ制御装置、共有キャッシュ制御方法及び集積回路 | |
US20130311751A1 (en) | System and data loading method | |
CN109997118A (zh) | 在永久存储器系统中以超高速一致地存储大量数据的方法 | |
US8954969B2 (en) | File system object node management | |
US8966212B2 (en) | Memory management method, computer system and computer readable medium | |
JP5045163B2 (ja) | 演算処理装置および演算処理装置の制御方法 | |
JP3973129B2 (ja) | キャッシュメモリ装置及びそれを用いた中央演算処理装置 | |
US9003127B2 (en) | Storing data in a system memory for a subsequent cache flush | |
US20120221821A1 (en) | Method of managing memory in computer system, computer system and memory managing program | |
JP5577518B2 (ja) | メモリ管理方法、計算機及びメモリ管理プログラム | |
US10719441B1 (en) | Using predictions of outcomes of cache memory access requests for controlling whether a request generator sends memory access requests to a memory in parallel with cache memory access requests | |
JP2004192403A (ja) | キャッシュメモリのデータ管理方法、及び情報処理装置 | |
JP2006163596A (ja) | 情報処理システム、制御方法、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130502 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131213 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140107 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140228 |
|
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: 20140610 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140613 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5577518 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |