JP6800904B2 - モデル生成装置、情報処理装置、モデル生成方法およびプログラム - Google Patents

モデル生成装置、情報処理装置、モデル生成方法およびプログラム Download PDF

Info

Publication number
JP6800904B2
JP6800904B2 JP2018052533A JP2018052533A JP6800904B2 JP 6800904 B2 JP6800904 B2 JP 6800904B2 JP 2018052533 A JP2018052533 A JP 2018052533A JP 2018052533 A JP2018052533 A JP 2018052533A JP 6800904 B2 JP6800904 B2 JP 6800904B2
Authority
JP
Japan
Prior art keywords
segments
unit
memory control
model
information processing
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.)
Active
Application number
JP2018052533A
Other languages
English (en)
Other versions
JP2019164629A (ja
Inventor
真由子 肥塚
真由子 肥塚
祐介 城田
祐介 城田
金井 達徳
達徳 金井
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2018052533A priority Critical patent/JP6800904B2/ja
Priority to US16/117,339 priority patent/US11263101B2/en
Publication of JP2019164629A publication Critical patent/JP2019164629A/ja
Application granted granted Critical
Publication of JP6800904B2 publication Critical patent/JP6800904B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3447Performance evaluation by modeling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/205Hybrid memory, e.g. using both volatile and non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Medical Informatics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Memory System (AREA)
  • Debugging And Monitoring (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明の実施形態は、モデル生成装置、情報処理装置、モデル生成方法およびプログラムに関する。
近年、ストレージクラスメモリと呼ばれる高速な不揮発メモリが開発されている。ストレージクラスメモリは、ページ単位でのデータの書き換えに加えて、ページよりも小さい例えばバイト単位でのデータの書き込みが可能である。このようにバイト単位でデータの書き込み可能となった不揮発メモリは、CPU(Central Processing Unit)の作業領域として機能する主記憶装置として用いることができる。
また、近年、コンピュータシステムは、オンラインリアルタイム処理、ビッグデータ処理、ディープラーニング処理、AI(人工知能)処理等の大規模データ処理を実行する。このような処理を実行する場合、コンピュータシステムは、巨大な容量の主記憶装置を用いなければならない。
また、データセンタ、ロボット、ドローン、または、エッジサーバ等のエッジシステム等では、高速なデータ処理を実現するために、二次記憶装置に代えて主記憶装置上でデータを記憶するインメモリデータ処理を実行する。このような、インメモリデータ処理を実行するコンピュータシステムは、巨大容量の主記憶装置を用いなければならない。
このような巨大容量の主記憶装置を全てDRAM(Dynamic Random Acces Memory)で実現した場合、待機電力の大きさが課題となる。このため、高速かつ省電力なコンピュータシステムを実現するためには、低待機電力で高速なストレージクラスメモリを活用するのが望ましい。
もっとも、ストレージクラスメモリは、DRAMよりも高集積化が可能であるものの、一般にはDRAMよりもアクセス速度が遅い。従って、全てのDRAMをストレージクラスメモリに置き換えたコンピュータシステムは、処理速度が低下する。また、一般に、ストレージクラスメモリは、待機電力は低いが、アクセス時の動的電力は高い。従って、巨大容量の主記憶装置を用いるコンピュータシステムでは、DRAM等の高速な記憶装置と、ストレージクラスメモリ等の待機電力が低く高集積化が可能な不揮発記憶装置とを組み合わせ、状況に応じて適切なメモリ制御方式で主記憶装置にアクセスすることが好ましい。
しかしながら、コンピュータシステムでは、状況に応じて適切なメモリ制御方式を選択することは非常に困難であった。
特開2009−211310号公報
R. F. Freitas and W. W. Wilcke, "Storage-class Memory: The Next Storage System Technology", IBM Journal of Research and Development Vol.52 No.4, pp.439-447, 2008.
本発明が解決しようとする課題は、適切なメモリ制御方式で異なる複数の種類の主記憶メモリにアクセスさせることにある。
実施形態に係るモデル生成装置は、異なる複数の種類の主記憶メモリにアクセスする情報処理装置によるメモリ制御方式を決定するための決定モデルを生成する。前記モデル生成装置は、取得部と、分割部と、割当部と、推定部と、選択部と、生成部と、を備える。前記取得部は、前記情報処理装置を動作させた場合における、前記情報処理装置の前記主記憶メモリに対するアクセス動作の頻度または時間を表す動作情報の時系列データを取得する。前記分割部は、前記動作情報の時系列データを時間方向に分割することにより複数のセグメントを生成する。前記割当部は、前記複数のセグメントのそれぞれに対して、複数のメモリ制御方式のうちの何れか1つのメモリ制御方式を割り当てる。前記推定部は、前記複数のセグメントのそれぞれについて、対応するセグメントの処理を、割り当てられたメモリ制御方式により前記情報処理装置が実行した場合におけるメモリアクセスの実行性能を推定する。前記選択部は、前記複数のセグメントの中から、推定された前記実行性能が予め定められた条件を満たす複数の教師セグメントを選択する。前記生成部は、前記複数の教師セグメントと前記複数の教師セグメントのそれぞれに割り当てられたメモリ制御方式とに基づき、前記動作情報に基づきメモリ制御方式を決定するための前記決定モデルを生成する。
第1実施形態に係る情報処理システムの構成を示す図。 変換テーブルの一例を示す図。 第1アクセス処理および第2アクセス処理の内容を示す図。 動作情報の時系列データの一例を示す図。 メモリ制御方式の内容の第1例を示す図。 メモリ制御方式の内容の第2例を示す図。 第1実施形態に係る方式決定部の構成を示す図。 動作情報の波形図および選択されたメモリ制御方式の一例を示す図。 方式決定部による処理の流れを示すフローチャート。 モデル生成装置の構成を示す図。 実行時間の算出処理例を説明するための図。 モデル生成装置による処理の流れを示すフローチャート。 S21で取得された動作情報の時系列データの一例を示す図。 S23で分割された複数のセグメントの第1例を示す図。 S23で分割された複数のセグメントの第2例を示す図。 S23で分割された複数のセグメントの第3例を示す図。 S24で割り当てられたメモリ制御方式の一例を示す図。 S25で推定された実行性能の一例を示す図。 S27で選択される複数のセグメントの一例を示す図。 S29で生成される決定モデルの一例を示す図。 第1変形例において割り当てられたメモリ制御方式の一例を示す図。 第1変形例のモデル生成装置による処理の流れを示すフローチャート。 第2変形例に係る方式決定部の構成を決定モデル記憶部とともに示す図。 教師セグメントが追加された決定モデルの一例を示す図。 第2実施形態に係る情報処理システムの構成を示す図。 情報処理装置のハードウェアブロック図。
以下、図面を参照しながら実施形態に係る情報処理システム10について詳細に説明する。なお、以下、複数の実施形態および変形例について説明をするが、略同一の機能および構成を有するブロックに同一の符号を付け、変形例および第2実施形態以降においては重複する内容の説明を省略する。
(第1実施形態)
第1実施形態について説明する。
図1は、第1実施形態に係る情報処理システム10の構成の一例を示す図である。情報処理システム10は、第1記憶部14と、不揮発記憶部16と、情報処理装置18と、モデル生成装置40とを備える。
第1記憶部14は、情報処理装置18による作業領域として用いられる主記憶装置(メインメモリ)である。第1記憶部14は、例えば、電源の供給を停止すると記憶しているデータが消える揮発記憶部である。第1記憶部14は、例えば、DRAMである。なお、第1記憶部14は、DRAMと同様に高速アクセスが可能な、MRAM(Magnetoresistive Random Acces Memory)等の不揮発メモリであってもよい。
また、第1記憶部14は、不揮発記憶部16よりも書き込み可能回数が多い。例えば、第1記憶部14は、書き込み可能回数を考慮した設計をしなくてよい程度(例えば、書き込み回数に制限が無いとして設計をすることが可能な程度)、書き込み可能回数が多い。
不揮発記憶部16は、電源の供給を停止してもデータを記憶し続けるメモリである。不揮発記憶部16は、第1記憶部14とともに情報処理装置18の主記憶装置として機能する。
不揮発記憶部16は、例えば、DRAMより大容量な大容量高速不揮発メモリ(Non−volatile Memory)を含む。不揮発記憶部16は、例えば、MRAM、PCM(Phase Change Memory)、PRAM(Phase Random Access Memory)、PCRAM(Phase Change Random Access Memory)、ReRAM(Resistance Change Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)、3DXPointまたはMemristor等である。不揮発記憶部16は、いわゆるストレージクラスメモリ(SCM)と呼ばれるメモリであってもよい。また、不揮発記憶部16は、複数の半導体装置を1つの基板または筐体等に設けたモジュールであってもよい。
不揮発記憶部16は、第1記憶部14と比較して容量が大きい。不揮発記憶部16の容量は、第1記憶部14と同じであってもよい。また、不揮発記憶部16は、第1記憶部14のアクセス速度と同等または少し遅い程度である。また、不揮発記憶部16は、待機電力がゼロか、または、第1記憶部14と比較して待機電力が非常に少ない。不揮発記憶部16は、一例として、アクセスレイテンシが10n秒から数μ秒程度の間のメモリである。
不揮発記憶部16は、バイト単位等の小領域単位でデータを書き込みおよび読み出し可能である。従って、情報処理装置18は、ロード命令またはストア命令により不揮発記憶部16に対して直接アクセスが可能である。情報処理装置18は、例えばキャッシュライン単位等で不揮発記憶部16に直接アクセスする。
不揮発記憶部16は、複数のページを含む。ページは、情報処理装置18が管理するデータ単位に対応する。ページは、例えば、オペレーティングシステムが管理する仮想記憶装置のページに対応する。ページは、例えば、4Kバイトであってよい。情報処理装置18は、ページ単位でもデータの書き込みおよび読み出しが可能である。
情報処理装置18は、異なる複数の種類の主記憶メモリにアクセスする。本実施形態においては、情報処理装置18は、第1記憶部14および不揮発記憶部16にアクセスする。情報処理装置18は、第1記憶部14および不揮発記憶部16とは異なる種類の他のメインメモリにさらにアクセスしてもよい。
情報処理装置18は、処理回路20と、管理装置22と、動作情報検出部24と、決定モデル記憶部28とを有する。
処理回路20は、1または複数のプロセッサを有する。プロセッサは、例えば、CPU(Central Processing Unit)である。プロセッサは、1または複数のCPUコアを含んでいてもよい。処理回路20は、プログラムを実行して、データを処理する。処理回路20は、プログラムの実行に応じて、第1記憶部14または不揮発記憶部16からデータを読み出したり、第1記憶部14または不揮発記憶部16にデータを書き込んだりする。
また、処理回路20は、L1データキャッシュ、L1命令キャッシュ、L2キャッシュおよびL3キャッシュ等の階層的なキャッシュメモリを有する。処理回路20は、このようなキャッシュメモリを用いて、第1記憶部14または不揮発記憶部16に記憶されているデータを一時的に記憶する。処理回路20は、例えば、階層的なキャッシュにおける最下層のキャッシュ(ラストレベルキャッシュ)でキャッシュミスをした場合、キャッシュライン単位で第1記憶部14または不揮発記憶部16に対してアクセスして必要なデータを読み出したり書き込んだりする。
なお、処理回路20は、データ処理を実行できれば、どのような回路であってもよい。例えば、処理回路20は、GPGPU(General−purpose computing on Graphics Processing Unit)で利用されるGPU(Graphics Processing Unit)であってもよい。また、処理回路20は、FPGA(Field Programmable Gate Array)等のアクセラレータであってもよい。
管理装置22は、第1記憶部14および不揮発記憶部16に対する、処理回路20によるデータの読み出しおよび書き込みを制御する。管理装置22は、処理回路20からの第1記憶部14および不揮発記憶部16に対するアクセス要求を処理する。すなわち、管理装置22は、処理回路20からの書込命令に応じて、データを第1記憶部14または不揮発記憶部16に書き込む。また、管理装置22は、処理回路20からの読出命令に応じて、データを第1記憶部14または不揮発記憶部16から読み出し、読み出したデータを処理回路20に与える。
また、管理装置22は、不揮発記憶部16に対するウェアレベリング制御を実行する。より具体的には、管理装置22は、不揮発記憶部16における領域毎のデータの書き換え回数を管理する。そして、管理装置22は、領域毎の書き換え回数に基づき、不揮発記憶部16における全体の領域に平均的にデータが書き込まれるように、データの書き込み位置を制御する。
なお、管理装置22は、処理回路20と同一の半導体基板に形成された回路である。また、管理装置22は、処理回路20とは別体のハードウェアで構成されたメモリコントローラであってもよい。また、管理装置22は、処理回路20の一部のハードウェアとメモリコントローラとの組み合わせにより実現されてもよい。また、管理装置22は、処理回路20が実行するオペレーティングシステムの一部の機能により実現されてもよい。また、管理装置22は、処理回路20が実行するオペレーティングシステムの一部の機能により実現されてもよいし、オペレーティングシステムの一部の機能とメモリコントローラとの組み合わせにより実現されてもよい。
また、管理装置22は、例えば、処理回路20とは別体のハードウェアで構成されたメモリ管理ユニット(MMU)であってもよい。また、管理装置22は、処理回路20の一部のハードウェアとメモリ管理ユニットとの組み合わせにより実現されてもよい。また、管理装置22は、処理回路20が実行するオペレーティングシステムの一部の機能とメモリ管理ユニットとの組み合わせにより実現されてもよい。
また、管理装置22は、メモリコントローラと、MMUとの組み合わせにより実現されてもよい。また、管理装置22は、処理回路20の一部のハードウェアと、メモリコントローラと、メモリ管理ユニットとの組み合わせにより実現されてもよい。また、管理装置22は、処理回路20が実行するオペレーティングシステムの一部の機能と、メモリコントローラと、メモリ管理ユニットとの組み合わせにより実現されてもよい。
動作情報検出部24は、処理回路20および管理装置22の少なくとも一方における動作情報を検出する。動作情報検出部24は、処理回路20内のハードウェア回路として実現されてもよい。また、動作情報検出部24は、管理装置22内の一部のハードウェア回路または一部の機能として実現されてもよい。また、動作情報検出部24は、処理回路20が実行するオペレーティングシステムの一部の機能として実現されてもよい。動作情報検出部24は、いわゆるパフォーマンスカウンタと呼ばれる回路であってもよい。なお、動作情報については、図4を参照してさらに説明する。
決定モデル記憶部28は、動作情報から、メモリ制御方式を決定するための決定モデルを記憶する。決定モデルは、モデル生成装置40により生成されて、決定モデル記憶部28に書き込まれる。決定モデルおよびモデル生成装置40については、図10以降においてさらに説明する。
処理回路20は、データ処理部32と、アクセス管理部34と、方式決定部36とを含む。データ処理部32は、例えば、処理回路20がアプリケーションプログラムを実行することにより実現される。また、方式決定部36およびアクセス管理部34は、例えば、処理回路20がオペレーティングシステムの一部の機能を実行することにより実現される。
データ処理部32は、アプリケーションプログラムに従った情報処理を実行する。さらに、データ処理部32は、管理装置22に対して、第1記憶部14および不揮発記憶部16に対するアクセス要求を与える。すなわち、データ処理部32は、データを第1記憶部14または不揮発記憶部16に書き込む書込命令を管理装置22に与える。また、データ処理部32は、データを第1記憶部14または不揮発記憶部16から読み出す読出命令を管理装置22に与える。
アクセス管理部34は、管理装置22が第1記憶部14および不揮発記憶部16に対してアクセスするためのメモリ制御方式を管理する。管理装置22は、第1記憶部14および不揮発記憶部16に対して、複数のメモリ制御方式によりアクセスすることが可能である。アクセス管理部34は、管理装置22が複数のメモリ制御方式のうち何れのメモリ制御方式によりアクセスするかを管理する。
また、アクセス管理部34は、変換テーブルを記憶する。変換テーブルは、アクセス要求をするそれぞれのページについて、要求アドレスと、第1記憶部14または不揮発記憶部16における対応するページ番号(物理アドレス)との対応関係を記憶する。さらに、変換テーブルは、処理回路20がアクセス要求をするそれぞれのページについて、第1アクセス処理または第2アクセス処理の何れを実行するか示すアクセス方法を記憶する。
第1アクセス処理は、不揮発記憶部16から第1記憶部14に転送したデータに対して、書き込みおよび読み出しをする方法である。第2アクセス処理は、不揮発記憶部16に記憶されるデータに対して直接書き込みおよび読み出しをする方法である。
そして、管理装置22は、データ処理部32がアクセス要求をしたページについて、変換テーブルに記憶されたアクセス方法により第1記憶部14および不揮発記憶部16にアクセスする。つまり、管理装置22は、第1アクセス処理に設定されているページに対して書き込みまたは読み出しの要求を受けた場合、第1アクセス処理を実行する。また、管理装置22は、第2アクセス処理に設定されているページに対して書き込みまたは読み出しの要求を受けた場合、第2アクセス処理を実行する。なお、変換テーブルの詳細については、図2を参照してさらに説明する。また、アクセス方法については、図3を参照してさらに説明する。
方式決定部36は、動作情報検出部24により検出された動作情報、および、決定モデル記憶部28に記憶された決定モデルに基づき、複数のメモリ制御方式のうちの何れか1つのメモリ制御方式を決定する。そして、方式決定部36は、管理装置22が、決定したメモリ制御方式により第1記憶部14および不揮発記憶部16に対してアクセスするように、アクセス管理部34等に対して設定処理をする。メモリ制御方式については、図5および図6を参照してさらに説明する。
図2は、変換テーブルの一例を示す図である。変換テーブルは、処理回路20がアクセス要求をするそれぞれのページについて、要求アドレスと、第1記憶部14または不揮発記憶部16における対応するページ番号(物理アドレス)との対応関係を記憶する。すなわち、変換テーブルは、処理回路20による要求アドレスに対応するデータが、第1記憶部14または不揮発記憶部16における何れのページに記憶されているのかを示すマッピング情報を記憶する。
例えば、図2の例では、変換テーブルにおけるページ番号の列に“Sxxxx”と記述されたページは、不揮発記憶部16におけるページ番号が“xxxx”のページを示す。例えば、図2の例では、ページ番号の列に“Dxxxx”と記述されたページは、第1記憶部14におけるページ番号が“xxxx”のページを示す。なお、ここでのxは、任意の値である。
さらに、変換テーブルは、処理回路20がアクセス要求をするそれぞれのページについて、第1アクセス処理または第2アクセス処理の何れを実行するか示すアクセス方法を記憶する。なお、変換テーブルは、図2に示すような構成に限らず、他の構成であってもよい。
図3は、第1アクセス処理および第2アクセス処理の内容を示す図である。管理装置22は、第1アクセス処理に設定されている第1ページに対して書き込みまたは読み出しの要求を受けた場合、不揮発記憶部16に対して、第1アクセス処理を実行する。
例えば、図3に示すように、第1アクセス処理において、管理装置22は、不揮発記憶部16における第1ページに記憶された全てのデータを転送して、第1記憶部14に記憶させる。これにより、第1記憶部14は、不揮発記憶部16における第1ページに記憶されたデータのコピーを記憶することができる。続いて、第1アクセス処理において、管理装置22は、第1記憶部14に記憶されている、不揮発記憶部16から転送されたデータに対して、読み出しおよび書き込みをする。例えば、管理装置22は、不揮発記憶部16から第1記憶部14に転送されたデータに対して、ページより小さいサイズ(例えばプロセッサのキャッシュラインサイズ)でデータの読み出しおよび書き込みをする。そして、第1アクセス処理において、管理装置22は、第1記憶部14の空き容量が無くなり不揮発記憶部16から第1記憶部14にデータを転送できなくなった場合、および、第1記憶部14に記憶させておくことが不要と判断された場合等において、第1記憶部14に転送されたデータを、不揮発記憶部16における第1ページに書き戻す。
なお、管理装置22は、第1記憶部14に転送されたデータを、第1ページ(同じ場所)以外に書き戻してもよい。例えば、管理装置22は、第1アクセス処理において、不揮発記憶部16から第1記憶部14に転送されたデータを、何れの要求アドレスも対応付けられていない未使用ページに書き戻してよい。これにより、管理装置22は、ページ毎の書き換え回数の隔たりを小さくし、特定のページの品質劣化を抑制することができる。
また、管理装置22は、第2アクセス処理に設定されている第2ページに対して書き込みまたは読み出しの要求を受けた場合、不揮発記憶部16に対して、第2アクセス処理を実行する。
例えば、図3に示すように、第2アクセス処理において、管理装置22は、不揮発記憶部16における第2ページに対して、直接読み出しおよび書き込みをする。例えば、管理装置22は、ページより小さいサイズでデータの読み出しおよび書き込みをする。
このように、管理装置22は、2種類のアクセス方法により不揮発記憶部16に対してアクセスする。例えば、メモリアクセスに局所性が高いアプリケーションを実行した場合、管理装置22は、第1アクセス処理により不揮発記憶部16に記憶されたページをアクセスする。これにより、管理装置22は、メモリアクセスに局所性が高いアプリケーションを実行した場合、同一のページに対してより高速に処理をすることができる。
また、例えば、ランダムアクセスのようにメモリアクセスに局所性が低い処理を実行する場合、管理装置22は、第2アクセス処理により不揮発記憶部16に記憶されたページをアクセスする。これにより、管理装置22は、局所性が低い処理を実行する場合、不揮発記憶部16から第1記憶部14への転送処理のオーバヘッドを無くして、効率良く処理をすることができる。このように、管理装置22は、第1アクセス処理および第2アクセス処理の2種類のアクセス方法を用いることにより、処理の効率化を図ることができる。
図4は、動作情報の時系列データの一例を示す図である。動作情報検出部24は、一定時間毎に、処理回路20および管理装置22の少なくとも一方における動作情報を検出する。
動作情報は、例えば、処理回路20による主記憶装置に対する書き込み回数、処理回路20による主記憶装置に対する読み出し回数、処理回路20のプリフェッチ成功率、処理回路20のキャッシュヒット数、処理回路20のキャッシュミス数等である。また、これらに限らず、動作情報は、例えば、処理回路20または管理装置22内での所定のイベントの回数、リタイアした命令数、コアクロック数およびキャッシュメモリにおける階層毎(L1キャッシュ、L2キャッシュ、L3キャッシュおよびラストレベルキャッシュ)のキャッシュヒット数/キャッシュミス数、ストール時間等であってもよい。
動作情報検出部24は、このような動作情報を検出した時刻に対応付けて出力する。方式決定部36は、動作情報検出部24により検出された動作情報を時刻に対応付けた時系列データとして取得する。
図5は、メモリ制御方式の内容の第1例を示す図である。管理装置22は、複数のメモリ制御方式のうちの何れか1つのメモリ制御方式により第1記憶部14および不揮発記憶部16にアクセスする。
例えば、複数のメモリ制御方式のそれぞれは、複数のページのうちの第1アクセス処理に設定されるページの数と第2アクセス処理に設定されるページの数との比率により区別されてもよい。例えば、図5の例では、管理装置22は、比率が異なる第1から第4の方式の何れかにより、第1記憶部14および不揮発記憶部16にアクセスする。
例えば、図5の第1方式は、100%のページが第2アクセス処理に設定された方式である。また、図5の第2方式は、10%のページが第1アクセス処理に設定され、90%のページが第2アクセス処理に設定された方式である。また、図5の第3方式は、20%のページが第1アクセス処理に設定され、80%のページが第2アクセス処理に設定された方式である。また、図6の第4方式は、30%のページが第1アクセス処理に設定され、70%のページが第2アクセス処理に設定された方式である。なお、複数のメモリ制御方式は、図5よりもさらに細かい比率により区別されてもよい。
図6は、メモリ制御方式の内容の第2例を示す図である。また、複数のメモリ制御方式のそれぞれは、さらに、第1記憶部14のメモリ使用量の上限値で区別されてもよい。例えば、図5の例では、管理装置22は、比率およびメモリ使用量が異なる8つの方式の何れかにより、第1記憶部14および不揮発記憶部16にアクセスする。
例えば、図6の第1方式は、100%のページが第2アクセス処理に設定され、第1記憶部14のメモリ使用量に制限がない方式である。図6の第2方式は、10%のページが第1アクセス処理に設定され、第1記憶部14のメモリ使用量の上限値が不揮発記憶部16の5%に設定された方式である。図6の第3方式は、10%のページが第1アクセス処理に設定され、メモリ使用量の上限値が10%に設定された方式である。
図6の第4方式は、20%のページが第1アクセス処理に設定され、メモリ使用量の上限値が10%に設定された方式である。図6の第5方式は、20%のページが第1アクセス処理に設定され、メモリ使用量の上限値が20%に設定された方式である。
図6の第6方式は、30%のページが第1アクセス処理に設定され、メモリ使用量の上限値が15%に設定された方式である。図6の第7方式は、30%のページが第1アクセス処理に設定され、メモリ使用量の上限値が30%に設定された方式である。なお、複数のメモリ制御方式は、比率および上限値がさらに細かく区別されていてもよい。
処理回路20は、図5および図6に示したようなメモリ制御方式に限らず、他の方式を設定してもよい。また、例えば、情報処理システム10は、主記憶装置として、第1記憶部14および不揮発記憶部16とは特性が異なる、第2記憶部を備えてもよい。このような場合、管理装置22は、例えば、アクセス方法として、不揮発記憶部16から第2記憶部にデータをコピーしてからアクセスさせるような第3アクセス処理をさらに実行してもよい。そして、管理装置22は、複数のメモリ制御方式の中に、第1アクセス処理、第2アクセス処理および第3アクセス処理に設定されるページ数の比率等を設定する方式を含めてもよい。
図7は、第1実施形態に係る方式決定部36の構成を決定モデル記憶部28とともに示す図である。方式決定部36は、タイミング発生部52と、抽出部54と、決定部56と、設定部58とを有する。
タイミング発生部52は、情報処理装置18が動作を開始したタイミング、および、動作を開始した後の一定時間毎に、検出期間を開始する指示を抽出部54および設定部58に与える。なお、タイミング発生部52は、不定な時間毎に検出期間を開始する指示を抽出部54および設定部58に与えてもよい。
抽出部54は、タイミング発生部52から開始指示を受け取る。抽出部54は、開始指示を受け取ってから一定の期間(検出期間)における、処理回路20および管理装置22の少なくとも一方における動作情報を、動作情報検出部24から取得する。
決定部56は、抽出部54が取得した動作情報および決定モデル記憶部28に記憶された決定モデルに基づき、メモリ制御方式を決定する。例えば、決定部56は、図5または図6に示したような複数のメモリ制御方式の中から、適切な1つのメモリ制御方式を決定する。
決定モデルは、動作情報から、複数のメモリ制御方式の何れか最適な1つのメモリ制御方式を決定するための、例えば演算式である。決定モデルは、例えば、決定木、線形回帰、ニューラルネットワークおよびサポートベクタマシン等であってもよい。なお、決定モデルについては、図10以降においてさらに説明する。
設定部58は、タイミング発生部52から開始指示を受け取る。設定部58は、開始指示を受け取ってから一定の期間(検出期間)において、管理装置22が基準のメモリ制御方式により第1記憶部14および不揮発記憶部16にアクセスするようにアクセス管理部34に対して設定処理をする。これにより、管理装置22は、検出期間において、管理装置22が基準のメモリ制御方式により第1記憶部14および不揮発記憶部16にアクセスすることができる。
例えば、設定部58は、検出期間において、アクセスするページの全てのアクセス方法を第2アクセス処理に設定する。これにより、管理装置22は、検出期間において、第2アクセス処理により第1記憶部14および不揮発記憶部16にアクセスすることができる。なお、設定部58は、検出期間において、決定モデルによりメモリ制御方式が決定可能であれば、どのようなメモリ制御方式に設定してもよい。もし、抽出部54が取得する動作情報が、メモリ制御方式の違いによる影響を受けない場合には、設定部58は、検出期間において、何れのメモリ制御方式を設定してもよい。
検出期間を経過した後の期間において、設定部58は、選択された最適なメモリ制御方式により管理装置22が第1記憶部14および不揮発記憶部16にアクセスするように、アクセス管理部34に対して設定処理をする。これにより、管理装置22は、検出期間が経過した後において、選択されたメモリ制御方式により第1記憶部14および不揮発記憶部16にアクセスすることができる。
例えば、設定部58は、変換テーブルにおける複数のページのそれぞれのアクセス方法を、選択されたメモリ制御方式に応じて第1アクセス処理または第2アクセス処理に設定する。例えば、複数のメモリ制御方式が、第1アクセス処理に設定されるページの数と第2アクセス処理に設定されるページの数との比率で区別される場合、設定部58は、変換テーブルにおける複数のページのそれぞれのアクセス方法を、選択されたメモリ制御方式に示された比率に応じて第1アクセス処理または第2アクセス処理に設定する。
なお、設定部58は、変換テーブルに管理されている全てのページのアクセス方法を変更するのではなく、直近(例えば、所定期間前まで)にアクセスしたページおよび検出期間後に新たにアクセスするページについてのアクセス方法を変更してもよい。また、設定部58は、検出期間後に新たにアクセスするページに対してアクセス方法を変更してもよい。
また、設定部58は、処理回路20により管理されるTLB(Translation Lookaside Buffer)と呼ばれる仮想管理機構により管理されるページのアクセス方法を変更してもよい。TLBは、仮想アドレスから物理アドレスへアドレス変換を行うために、ページにおける要求アドレス(論理アドレス)と物理アドレスとの対応を示す対応関係情報を記憶する。しかし、TLBは、保有しているエントリが限られているので、対応関係情報を必要に応じて入れ替える。TLBは、例えば、直近において高い頻度でアクセスされるページについての対応関係情報を優先して記憶する。
さらに、複数のメモリ制御方式が、第1記憶部14のメモリ使用量の上限値で区別される場合、設定部58は、選択されたメモリ制御方式に示された上限値を、第1記憶部14のメモリ使用量として設定する。第1記憶部14のメモリ使用量の上限値が設定された場合、管理装置22は、第1記憶部14にコピーしたデータ量が上限値を超えないように、第1記憶部14および不揮発記憶部16に対してアクセス制御をする。具体的には、管理装置22は、第1アクセス処理に設定された第1ページにアクセスするために第1ページのデータを不揮発記憶部16から第1記憶部14に転送すると、第1記憶部14のメモリ使用量が上限値を超えてしまう場合には、第1記憶部14に記憶された何れかのページのデータを不揮発記憶部16に書き戻した後に、第1ページのデータを不揮発記憶部16から第1記憶部14に転送する。
図8は、動作情報の波形図および選択されたメモリ制御方式の一例を示す図である。図8に示すように、方式決定部36は、例えば一定期間毎に、メモリ制御方式の選択および切り替えを行う。方式決定部36は、メモリ制御方式の切り替えタイミングの直前に検出期間を設定し、検出期間において動作情報を取得する。そして、方式決定部36は、取得した動作情報に基づきメモリ制御方式を決定し、新たなメモリ制御方式に切り替える。
なお、図8の例では、方式決定部36は、検出期間において、基準のメモリ制御方式に設定している。しかし、方式決定部36は、メモリ制御方式の違いが、取得する動作情報に影響を与えない場合には、検出期間において、直前のメモリ制御方式を継続させてもよい。
図9は、方式決定部36による処理の流れを示すフローチャートである。第1実施形態に係る方式決定部36は、図9に示すフローチャートに従って処理を実行する。
まず、S11において、方式決定部36は、動作情報の取得タイミングとなったか否かを判断する。取得タイミングとなっていない場合(S11のNo)、方式決定部36は、処理をS11で待機する。取得タイミングとなった場合(S11のYes)、方式決定部36は、処理をS12に進める。
S12において、方式決定部36は、管理装置22が基準のメモリ制御方式により第1記憶部14および不揮発記憶部16にアクセスするように、アクセス管理部34に対して設定処理をする。なお、方式決定部36は、メモリ制御方式の違いが、取得する動作情報に影響を与えない場合には、検出期間において、直前のメモリ制御方式を継続させてもよい。
続いて、S13において、方式決定部36は、動作情報検出部24から動作情報を取得する。続いて、S14において、方式決定部36は、検出期間が経過したか否かを判断する。検出期間が経過していない場合(S14のNo)、方式決定部36は、処理をS13に戻して、検出期間が経過するまで、動作情報の取得を継続する。検出期間が経過した場合(S14のYes)、方式決定部36は、処理をS15に進める。
S15において、方式決定部36は、取得した動作情報および決定モデル記憶部28に記憶された決定モデルに基づき、最適なメモリ制御方式を決定する。例えば、方式決定部36は、複数のメモリ制御方式の中から、適切な1つのメモリ制御方式を決定する。
める。
続いて、S16において、方式決定部36は、管理装置22が、決定した最適なメモリ制御方式により第1記憶部14および不揮発記憶部16にアクセスするように、アクセス管理部34に対して設定処理をする。方式決定部36は、S16の処理を終了すると本フローを終了する。
このような構成の情報処理装置18は、方式決定部36が、動作情報に基づき適切なメモリ制御方式を選択し、選択したメモリ制御方式により管理装置22に第1記憶部14および不揮発記憶部16にアクセスさせる。これにより、情報処理装置18によれば、例えば、実行するアプリケーションプログラム毎に適切な実行性能が得られるように、管理装置22を動作させることができる。
図10は、モデル生成装置40の構成を示す図である。モデル生成装置40は、取得部62と、動作情報記憶部64と、分割部66と、割当部68と、推定モデル記憶部70と、推定部72と、選択部74と、教師セグメント記憶部76と、生成部78とを備える。
取得部62は、情報処理装置18を動作させた場合における動作情報の時系列データを、情報処理装置18の動作情報検出部24から取得する。例えば、取得部62は、アプリケーションプログラムを実行した情報処理装置18の動作情報の時系列データを取得する。例えば、取得部62は、アプリケーションプログラムの全実行期間の動作情報の時系列データを取得する。取得部62は、取得した動作情報の時系列データを動作情報記憶部64に書き込む。動作情報記憶部64は、取得部62により取得された動作情報の時系列データを記憶する。
分割部66は、動作情報記憶部64に記憶された動作情報の時系列データを時間方向に分割することにより複数のセグメントを生成する。また、分割部66は、互いに異なる複数の分割パターンのそれぞれ毎に、対応する分割パターンに従って動作情報の時系列データを分割して複数のセグメントを生成する。分割部66は、動作情報の時系列データを一定時間毎や一定命令数毎に区切って複数のセグメントを生成してもよい。また、分割部66は、動作情報の時系列データを不均等な間隔毎に区切って複数のセグメントを生成してもよい。
割当部68は、分割部66により分割された複数のセグメントのそれぞれに対して、複数のメモリ制御方式のうちの何れか1つのメモリ制御方式を割り当てる。また、複数の分割パターンのそれぞれ毎に、複数のセグメントが生成された場合、割当部68は、複数の分割パターンのそれぞれおよび複数のセグメントのそれぞれ毎に、メモリ制御方式を割り当てる。割当部68は、割り当て可能な複数のメモリ制御方式の中からランダムに1つのメモリ制御方式を選択し、選択したメモリ制御方式をセグメントに割り当ててもよい。また、割当部68は、割り当て可能な複数のメモリ制御方式の中から所定の規則に基づき1つのメモリ制御方式を選択し、選択したメモリ制御方式をセグメントに割り当ててもよい。
推定モデル記憶部70は、動作情報から、第1記憶部14および不揮発記憶部16に対するメモリアクセスの実行性能を推定するための推定モデルを記憶する。推定モデルは、動作情報から、複数のメモリ制御方式のそれぞれについての実行性能(例えば、実行時間、消費電力または寿命減少量)を算出するための、例えば演算式である。推定モデルは、例えば、決定木、線形回帰、ニューラルネットワークおよびサポートベクタマシン等であってもよい。
推定部72は、複数の分割パターンのそれぞれおよび複数のセグメントのそれぞれについて、対応するセグメントの処理を、割り当てられたメモリ制御方式により情報処理装置18が実行した場合における、第1記憶部14および不揮発記憶部16に対するメモリアクセスの実行性能を推定する。この場合において、推定部72は、対応するセグメントおよび推定モデル記憶部70に記憶された推定モデルに基づき、割り当てられたメモリ制御方式についての実行性能を推定する。
例えば、推定部72は、実行性能として、対応するセグメントの処理を、割り当てられたメモリ制御方式で情報処理装置18が実行した場合における実行時間を推定してもよい。また、例えば、推定部72は、実行性能として、対応するセグメントの処理を、割り当てられたメモリ制御方式で情報処理装置18が実行した場合における消費電力を推定してもよい。また、例えば、推定部72は、実行性能として、対応するセグメントの処理を、割り当てられたメモリ制御方式で情報処理装置18が実行した場合における寿命減少量(摩耗度)を推定してもよい。
選択部74は、複数の分割パターンに含まれる複数のセグメントの中から、推定された実行性能が予め定められた条件を満たす複数の教師セグメントを選択する。例えば、選択部74は、実行性能が基準値より良い複数のセグメントの中から、複数の教師セグメントを選択する。また、例えば、選択部74は、含まれる複数のセグメントについて推定された実行性能の合計値が基準値より良い分割パターンを選択し、選択した分割パターンに含まれる複数のセグメントから教師セグメントを選択してもよい。
基準値は、設計者が予め設定してもよい。また、基準値は、複数のセグメントについて推定された実行性能から得られた統計情報に基づき設定されてもよい。例えば、基準値は、実行性能の平均値であってもよいし、平均値から所定倍した値であってもよいし、実行性能の上位10%のセグメントと下位90%のセグメントを区切る値であってもよい。
選択部74は、選択した教師セグメントと、教師セグメントに割り当てられたメモリ制御方式との組を教師セグメント記憶部76に書き込む。教師セグメント記憶部76は、複数の教師セグメントと、複数の教師セグメントのそれぞれに割り当てられたメモリ制御方式とを対応付けて記憶する。
生成部78は、教師セグメント記憶部76に記憶された複数の教師セグメントと複数の教師セグメントのそれぞれに割り当てられたメモリ制御方式とに基づき、動作情報に基づきメモリ制御方式を決定するための決定モデルを生成する。
決定モデルは、教師セグメントと割り当てられたメモリ制御方式との組の集合を含む。この場合、例えば、情報処理装置18における方式決定部36は、検出期間において抽出した動作情報と最も近似した教師セグメントを、決定モデルに含まれる集合の中から検出し、検出した教師セグメントに割り当てられたメモリ制御方式を出力する。
また、生成部78は、教師セグメントに含まれる動作情報の1または複数のパラメータに対して演算処理をすることにより、教師セグメントを、複数の特徴パラメータで表されたベクトル情報に変換してもよい。この場合、決定モデルは、教師セグメントを表すベクトル情報と、割り当てられたメモリ制御方式との組の集合を含む。そして、例えば、情報処理装置18における方式決定部36は、検出期間において抽出した動作情報をベクトル情報に変換して、決定モデルに含まれる集合の中から最も近似した教師セグメントのベクトル情報を検出し、検出した教師セグメントのベクトル情報に割り当てられたメモリ制御方式を出力する。
また、さらに、生成部78は、複数の教師セグメントのベクトル情報をクラスタリングして、決定木、線形回帰、ニューラルネットワークおよびサポートベクタマシン等で表された決定モデルを生成してもよい。この場合、方式決定部36は、検出期間において抽出した動作情報または動作情報のベクトル情報を決定モデルに与え、決定モデルから得られたメモリ制御方式を出力する。
生成部78は、このような決定モデルを情報処理装置18の決定モデル記憶部28に登録する。
図11は、実行時間の算出処理例を説明するための図である。実行性能として、実行時間を推定する場合、取得部62は、メモリアクセス回数、アクセスしたページ数、および、実行時間の実測値を取得する。そして、推定部72は、予め定められた推定モデル(例えば演算式)に、メモリアクセス回数、ページ数および実行時間の実測値を代入して、割り当てられたメモリ制御方式についての実行時間の推定値を算出する。
例えば、100%のページを第2アクセス処理に設定するメモリ制御方式により管理装置22を動作させ、100%のページを第1アクセス処理に設定するメモリ制御方式により管理装置22を動作させた場合における実行時間を推定する場合、推定部72は、下記の式(1)および式(2)に表される式を演算して、実行時間を算出する。
T1=T2−Δt…(1)
Δt=(N×(L−L))−(N×T)…(2)
式(1)において、T1は、100%のページを第1アクセス処理に設定するメモリ制御方式により管理装置22を動作させた場合における実行時間の推定値である。T2は、100%のページを第2アクセス処理に設定するメモリ制御方式により管理装置22を動作させた場合における実行時間の実測値である。
また、式(2)において、Nは、メモリアクセス回数である。Nは、アクセスしたページ数である。
また、式(2)において、Lは、第1記憶部14に対するメモリアクセスのレイテンシである。Lは、不揮発記憶部16に対するメモリアクセスのレイテンシである。また、Tは、1ページ分のデータを不揮発記憶部16から第1記憶部14に転送する転送時間である。L、LおよびTは、予め測定済みの値であり、推定モデルに定数として組み込まれる。
従って、例えば、推定モデル記憶部70は、上述の式(1)および式(2)により表される演算式を推定モデルとして記憶する。推定部72は、100%のページを第2アクセス処理に設定するメモリ制御方式により管理装置22を動作させた場合における、メモリアクセス回数、ページ数および実行時間の実測値を取得する。そして、推定部72は、上述の式(1)および式(2)により表される演算式と、メモリアクセス回数、ページ数および実行時間の実測値とに基づき、100%のページを第1アクセス処理に設定するメモリ制御方式により管理装置22を動作させた場合の実行時間を推定する。
また、X%のページ(Xは、0より大きく100より小さい値)を第1アクセス処理に設定するメモリ制御方式により管理装置22を動作させた場合の実行時間を推定する場合、推定部72は、次のような処理を行う。
まず、推定部72は、100%のページを第2アクセス処理に設定するメモリ制御方式により管理装置22を動作させた場合における、メモリアクセス回数、ページ数および実行時間の実測値を取得する。続いて、推定部72は、アクセスしたページの中から、アクセス数の多い上位のX%のページを選択する。推定部72は、選択したX%のページのページ数を、式(2)におけるNに代入する。
さらに、推定部72は、選択したX%のページに対するメモリアクセス回数を算出する。推定部72は、算出したX%のページに対するメモリアクセス回数を、式(2)におけるNに代入する。そして、推定部72は、上記の式(1)および式(2)に表される式を演算して、実行時間を算出する。これにより、推定部72は、X%のページを第1アクセス処理に設定するメモリ制御方式により管理装置22を動作させた場合の実行時間を推定することができる。
図12は、モデル生成装置40による処理の流れを示すフローチャートである。第1実施形態に係るモデル生成装置40は、図12に示すフローチャートに従って処理を実行する。以下、図12のフローチャートにおける各ステップの処理を、図13〜図20を参照しながら説明する。
まず、S21において、モデル生成装置40は、情報処理装置18にアプリケーションプログラムを実行させ、情報処理装置18から動作情報の時系列データを取得する。例えば、モデル生成装置40は、アプリケーションプログラムの全実行期間の動作情報の時系列データを取得する。
この場合、モデル生成装置40は、情報処理装置18の管理装置22が基準のメモリ制御方式により第1記憶部14および不揮発記憶部16にアクセスするように、情報処理装置18に対して設定処理をする。例えば、モデル生成装置40は、情報処理装置18に、アクセスするページの全てのアクセス方法を第2アクセス処理に設定させる。なお、モデル生成装置40は、推定モデルにより実行性能を推定可能な動作情報が得られるメモリ制御方式であれば、どのようなメモリ制御方式に設定してもよい。もし、S21で取得する動作情報が、メモリ制御方式の違いによる影響を受けない場合には、モデル生成装置40は、何れのメモリ制御方式を設定してもよい。
図13は、S21で取得された動作情報の時系列データの一例を示す図である。例えば、S21において、モデル生成装置40は、図13に示すような動作情報を取得する。図13のAは、L3キャッシュのキャッシュミスを表すパラメータの時系列データである。また、図13のBは、L2キャッシュのストール時間を表すパラメータの時系列データである。モデル生成装置40は、他のパラメータをさらに動作情報として取得してもよいし、図13に示したパラメータ以外のパラメータを動作情報として取得してもよい。
続いて、S22において、モデル生成装置40は、取得した動作情報の時系列データを保存する。これにより、モデル生成装置40は、例えば、アプリケーションプログラムの全実行期間の動作情報の時系列データを記憶することができる。
続いて、S23において、モデル生成装置40は、動作情報の時系列データを時間方向に分割することにより複数のセグメントを生成する。また、モデル生成装置40は、後述のS26において分割を終了すると判断されるまで、繰り返して動作情報の時系列データを時間方向に分割する。この場合、モデル生成装置40は、互いに異なる複数の分割パターンにより動作情報の時系列データを分割して、複数のセグメントを生成する。
図14は、S23で分割された複数のセグメントの第1例を示す図である。図15は、S23で分割された複数のセグメントの第2例を示す図である。図16は、S23で分割された複数のセグメントの第3例を示す図である。
例えば、モデル生成装置40は、図14および図15に示すように、動作情報の時系列データを一定時間毎に区切って複数のセグメントを生成してもよい。また、モデル生成装置40は、図16に示すように、動作情報の時系列データを不均等な間隔毎に区切って複数のセグメントを生成してもよい。例えば、モデル生成装置40は、予め準備された複数の分割パターンの中からランダムに分割パターンを選択してもよいし、毎回ランダムに分割パターンを生成してもよい。
また、モデル生成装置40は、S27のセグメントの選択処理において教師セグメントが選択される確率を高くするように、過去の分割パターンに基づき分割位置を探索してもよい。例えば、モデル生成装置40は、動的計画法等を用いて、分割位置を探索してもよい。なお、S27のセグメントの選択処理において教師セグメントが選択される確率を高くするように分割パターンを生成する場合、モデル生成装置40は、後述のS26の処理を、S28の後に実行する。
続いて、S24において、モデル生成装置40は、分割された複数のセグメントのそれぞれに対して、複数のメモリ制御方式のうちの何れか1つのメモリ制御方式を割り当てる。モデル生成装置40は、例えば、分割された複数のセグメントのそれぞれに対して、割り当て可能な複数のメモリ制御方式の中からランダムに1つのメモリ制御方式を選択して割り当ててもよい。また、モデル生成装置40は、分割された複数のセグメントのそれぞれに対して、割り当て可能な複数のメモリ制御方式の中から所定の規則に基づき1つのメモリ制御方式を選択して割り当ててもよい。また、モデル生成装置40は、割された複数のセグメントのそれぞれに対して、対応するセグメントに含まれるパラメータの値を参照して、適切であると推定されるメモリ制御方式を選択して、割り当ててもよい。
図17は、S24で割り当てられたメモリ制御方式の一例を示す図である。例えば、モデル生成装置40は、図17に示すように、割り当て可能な2つのメモリ制御方式(第1方式および第2方式)の中から選択した1つのメモリ制御方式を、複数のセグメントのそれぞれに対して割り当てる。
続いて、S25において、モデル生成装置40は、複数の分割パターンのそれぞれについて、対応するセグメントの処理を、割り当てられたメモリ制御方式により情報処理装置18が実行した場合における、第1記憶部14および不揮発記憶部16に対するメモリアクセスの実行性能を推定する。この場合において、モデル生成装置40は、対応するセグメントおよび推定モデル記憶部70に記憶された推定モデルに基づき、割り当てられたメモリ制御方式についての実行性能を推定する。
図18は、S25で推定された実行性能の一例を示す図である。例えば、S25において、モデル生成装置40は、実行性能として、図18に示すような、割り当てられたメモリ制御方式で情報処理装置18がセグメントの処理を実行した場合における消費電力を推定する。また、例えば、モデル生成装置40は、実行性能として、割り当てられたメモリ制御方式で情報処理装置18がセグメントの処理を実行した場合における実行時間または寿命減少量(摩耗度)を推定してもよい。なお、図18は、実行性能の時系列データを示しているが、情報処理装置18は、セグメント毎に実行性能の合計値を算出してもよい。
続いて、S26において、モデル生成装置40は、セグメントの分割処理が終了したか否かを判断する。例えば、モデル生成装置40は、S23からS26までのループ処理を、予め定められた回数実行した場合には、セグメントの分割処理が終了したと判定する。また、例えば、モデル生成装置40は、S23からS26までのループ処理を、予め定められた時間実行した場合に、セグメントの分割処理が終了したと判定してもよい。また、モデル生成装置40は、生成した合計のセグメントの個数が、予め定められた個数を超えた場合に、セグメントの分割処理が終了したと判定してもよい。また、例えば、モデル生成装置40は、S27で選択された教師セグメントの合計数が予め定められた個数を超えた場合に、セグメントの分割処理が終了したと判定してもよい。なお、S27で選択された教師セグメントの合計数が予め定められた個数を超えたか否かを判断する場合には、モデル生成装置40は、S26の処理を、S28の後に実行する。
モデル生成装置40は、セグメントの分割処理が終了していない場合(S26のNo)、処理をS23に戻して、S23から処理を繰り返す。モデル生成装置40は、セグメントの分割処理が終了した場合(S26のYes)、処理をS27に進める。
S27において、モデル生成装置40は、複数の分割パターンに含まれる複数のセグメントの中から、推定された実行性能が予め定められた条件を満たす複数の教師セグメントを選択する。例えば、モデル生成装置40は、実行性能が基準値より良い複数のセグメントの中から、複数の教師セグメントを選択する。
図19は、S27で選択される複数のセグメントの一例を示す図である。例えば、S27において、モデル生成装置40は、図19に示すように、消費電力が基準値を下回るセグメントを教師セグメントとして選択してもよい。
続いて、S28において、モデル生成装置40は、選択した教師セグメントと、教師セグメントに割り当てられたメモリ制御方式との組を保存する。これにより、モデル生成装置40は、複数の教師セグメントと、複数の教師セグメントのそれぞれに割り当てられたメモリ制御方式とを対応付けて記憶することができる。
続いて、S29において、モデル生成装置40は、保存された複数の教師セグメントと複数の教師セグメントのそれぞれに割り当てられたメモリ制御方式とに基づき、決定モデルを生成する。決定モデルは、教師セグメントとメモリ制御方式との組の集合を含んでもよい。
図20は、S29で生成される決定モデルの一例を示す図である。モデル生成装置40は、図20に示すように、教師セグメントに含まれる動作情報の各パラメータに対して演算処理をして、教師セグメントを、複数の特徴パラメータで表されたベクトル情報に変換してもよい。そして、モデル生成装置40は、このようなベクトル情報で表された教師セグメントとメモリ制御方式との組の集合を含む決定モデルを生成してもよい。
また、モデル生成装置40は、複数の教師セグメントのベクトル情報をクラスタリングして、決定木、線形回帰、ニューラルネットワークおよびサポートベクタマシン等で表された決定モデルを生成してもよい。このような決定モデルを生成することにより、情報処理装置18は、取得した動作情報から、最適なメモリ制御方式を決定することができる。
続いて、S30において、モデル生成装置40は、生成した決定モデルを情報処理装置18の決定モデル記憶部28に登録する。モデル生成装置40は、S30の処理を終えると、本フローを終了する。
以上のように、モデル生成装置40は、多数のセグメントの中から複数の教師セグメントを選択し、選択した複数の教師セグメントに基づき動作情報からメモリ制御方式を決定するための決定モデルを生成する。そして、モデル生成装置40は、生成した決定モデルを情報処理装置18に登録する。これにより、モデル生成装置40は、情報処理装置18に、適切なメモリ制御方式により第1記憶部14および不揮発記憶部16にアクセスさせることができる。
(第1変形例)
つぎに、第1変形例に係るモデル生成装置40について説明する。
図21は、第1変形例において割り当てられたメモリ制御方式の一例を示す図である。第1変形例において、モデル生成装置40の割当部68は、図21に示すように、同一の分割パターンで分割された複数のセグメントのそれぞれに対して、異なる複数の割当パターンによりメモリ制御方式を割り当てる。そして、第1変形例において、モデル生成装置40の推定部72は、複数の分割パターンのそれぞれ毎および複数の割当パターンのそれぞれ毎に、対応する複数のセグメントのそれぞれについての実行性能を推定する。
図22は、第1変形例に係るモデル生成装置40による処理の流れを示すフローチャートである。第1変形例に係るモデル生成装置40は、S25とS26との間において、S40の処理をさらに実行する。
S40において、モデル生成装置40は、割り当て処理が終了したか否かを判断する。例えば、モデル生成装置40は、S24からS40までのループ処理を、予め定められた回数実行した場合には、割り当て処理が終了したと判定する。また、例えば、モデル生成装置40は、S24からS40までのループ処理を、予め定められた時間実行した場合に、割り当て処理が終了したと判定してもよい。
モデル生成装置40は、割り当て処理が終了していない場合(S40のNo)、処理をS24に戻して、S24から処理を繰り返す。S24に処理が戻された場合、モデル生成装置40は、同一の分割パターンに対してこれまでに割り当てたパターンとは異なるパターンで、分割された複数のセグメントのそれぞれに対してメモリ制御方式を割り当てる。そして、モデル生成装置40は、割り当て処理が終了した場合(S40のYes)、処理をS26に進める。
第1変形例に係るモデル生成装置40は、1つのセグメントに対して複数のメモリ制御方式を割り当てる。従って、モデル生成装置40は、教師セグメントを選択できる確率を高くすることができる。これにより、モデル生成装置40は、より精度の良い決定モデルを生成することができる。
(第2変形例)
つぎに、第2変形例に係る情報処理装置18について説明する。
図23は、第2変形例に係る方式決定部36の構成を決定モデル記憶部28とともに示す図である。第2変形例に係る方式決定部36は、モデル修正部90をさらに有する。モデル修正部90は、抽出部54が取得した動作情報、および、取得した動作情報に基づき決定されたメモリ制御方式により、決定モデル記憶部28に記憶されている決定モデルを修正する。
図24は、第2変形例において教師セグメントが追加された決定モデルの一例を示す図である。例えば、決定モデルが、教師セグメントと割り当てられたメモリ制御方式との組の集合である場合、モデル修正部90は、図24に示すように、取得した動作情報を教師セグメントとする。そして、モデル修正部90は、教師セグメントと、決定したメモリ制御方式と組にして決定モデルに追加する。これにより、決定モデルは、同一のメモリ制御方式として決定される範囲が、新たなに追加した教師モデルにより修正される。
また、決定モデルが、教師セグメントのベクトル情報とメモリ制御方式との組の集合である場合、モデル修正部90は、動作情報をベクトル情報に変換して、変換後のベクトル情報とメモリ制御方式との組を決定モデルに追加する。また、決定モデルが、決定木、線形回帰、ニューラルネットワークまたはサポートベクタマシン等である場合には、モデル修正部90は、動作情報およびメモリ制御方式に基づき、決定モデルに含まれる分岐判断のための閾値または重み係数等のパラメータを修正する。
なお、モデル修正部90は、抽出した全ての動作情報により決定モデルを修正するのではなく、例えば、管理装置22が特定のメモリ制御方式により第1記憶部14および不揮発記憶部16にアクセスしている場合に取得された動作情報に基づき、決定モデルを修正してもよい。
第2変形例に係る情報処理装置18は、生成された決定モデルに基づき動作を開始した後にも、決定モデルを修正することができる。これにより、情報処理装置18は、決定モデルによる決定精度を向上させることができる。
(第2実施形態)
第2実施形態について説明する。
図25は、第2実施形態に係る情報処理システム100の構成を示す図である。第2実施形態に係る情報処理システム100は、第1記憶部14と、不揮発記憶部16と、第1情報処理装置18−1と、第2情報処理装置18−2と、モデル生成装置40とを備える。
第1情報処理装置18−1および第2情報処理装置18−2は、第1実施形態に係る情報処理装置18と同一の構成である。第1情報処理装置18−1および第2情報処理装置18−2は、共に第1記憶部14および不揮発記憶部16にアクセスする。すなわち、第1情報処理装置18−1および第2情報処理装置18−2は、共通の主記憶メモリにアクセスする。
モデル生成装置40は、第1情報処理装置18−1および第2情報処理装置18−2を同時に動作させる。そして、モデル生成装置40は、第1情報処理装置18−1および第2情報処理装置18−2から、共に動作した結果得られた動作情報の時系列データを取得する。
モデル生成装置40は、第1情報処理装置18−1から取得した動作情報の時系列データに基づき、第1情報処理装置18−1が用いる決定モデルを生成する。そして、モデル生成装置40は、生成した決定モデルを第1情報処理装置18−1が備える決定モデル記憶部28に記憶させる。
また、モデル生成装置40は、第2情報処理装置18−2から取得した動作情報の時系列データに基づき、第2情報処理装置18−2が用いる決定モデルを生成する。そして、モデル生成装置40は、生成した決定モデルを第2情報処理装置18−2が備える決定モデル記憶部28に記憶させる。
情報処理システム100において、第1情報処理装置18−1および第2情報処理装置18−2は、主記憶メモリを共通に用いるので、メモリアクセスの実行性能が互いの動作情報に影響する。第2実施形態に係るモデル生成装置40は、第2情報処理装置18−2の動作による影響を反映した動作情報に基づき、第1情報処理装置18−1が用いる決定モデルを生成することができる。また、第2実施形態に係るモデル生成装置40は、第1情報処理装置18−1の動作による影響を反映した動作情報に基づき、第2情報処理装置18−2が用いる決定モデルを生成することができる。
(情報処理装置200のハードウェア構成)
図26は、情報処理装置200のハードウェアブロック図である。情報処理装置200は、一例として、一般のコンピュータと同様のハードウェア構成により実現される。情報処理装置200は、所定プログラムを実行することにより、モデル生成装置40として機能することができる。
情報処理装置200は、CPU202と、ROM(Read Only MemoryRead Only Memory)204と、RAM(Random Acces Memory)206と、操作部208と、表示部210と、通信装置212と、記憶装置214とを備える。各部は、バスにより接続される。
CPU202は、情報処理を実行するプロセッサであって、記憶装置214に記憶されたプログラムをRAM206に展開して実行し、各部を制御して入出力を行ったり、データの加工を行ったりする。CPU202は、1または複数のプロセッサにより構成されていてもよい。また、情報処理装置200は、プログラムを実行することが可能であれば、CPU202に限らず他のプロセッサを備えてもよい。ROM204には、起動用プログラムを記憶装置214からRAM206に読み出すスタートプログラムが記憶されている。RAM206は、CPU202の作業領域としてデータを記憶する。
操作部208は、マウスまたはキーボード等の入力デバイスであって、ユーザから操作入力された情報を指示信号として受け付け、その指示信号をCPU202に出力する。表示部210は、例えばLCD(Liquid Crystal Display)等の表示装置である。表示部210は、CPU202からの表示信号に基づいて、各種情報を表示する。通信装置212は、ネットワーク等を介して、外部機器と情報をやり取りする。記憶装置214は、例えば、ハードディスクドライブまたはフラッシュメモリ等である。記憶装置214は、情報処理装置200で実行されるプログラム、および、オペレーティングシステムを記憶している。
本実施形態の情報処理装置200で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD等のコンピュータで読み取り可能な記録媒体に記録されて提供される。また、本実施形態の情報処理装置200で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態の情報処理装置200で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、本実施形態のプログラムを、ROM204等に予め組み込んで提供するように構成してもよい。
情報処理装置200をモデル生成装置40として機能させるためのプログラムは、取得モジュールと、分割モジュールと、割当モジュール、推定モジュールと、選択モジュールと、生成モジュールとを有する。情報処理装置200は、プロセッサ(CPU202)が記憶媒体(記憶装置214等)からプログラムを読み出して実行することにより各モジュールが主記憶装置(RAM206)上にロードされ、プロセッサ(CPU202)が、取得部62、分割部66、割当部68、推定部72、選択部74および生成部78として機能する。また、RAM206または記憶装置214等が、動作情報記憶部64、推定モデル記憶部70および教師セグメント記憶部76として機能する。なお、これらの一部または全部がプロセッサ以外のハードウェアにより実現されてもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
10 情報処理システム
14 第1記憶部
16 不揮発記憶部
18 情報処理装置
18−1 第1情報処理装置
18−2 第2情報処理装置
20 処理回路
22 管理装置
24 動作情報検出部
28 決定モデル記憶部
32 データ処理部
34 アクセス管理部
36 方式決定部
40 モデル生成装置
52 タイミング発生部
54 抽出部
56 決定部
58 設定部
62 取得部
64 動作情報記憶部
66 分割部
68 割当部
70 推定モデル記憶部
72 推定部
74 選択部
76 教師セグメント記憶部
78 生成部
90 モデル修正部
100 情報処理システム

Claims (15)

  1. 異なる複数の種類の主記憶メモリにアクセスする情報処理装置によるメモリ制御方式を決定するための決定モデルを生成するモデル生成装置であって、
    前記情報処理装置を動作させた場合における、前記情報処理装置の前記主記憶メモリに対するアクセス動作の頻度または時間を表す動作情報の時系列データを取得する取得部と、
    前記動作情報の時系列データを時間方向に分割することにより複数のセグメントを生成する分割部と、
    前記複数のセグメントのそれぞれに対して、複数のメモリ制御方式のうちの何れか1つのメモリ制御方式を割り当てる割当部と、
    前記複数のセグメントのそれぞれについて、対応するセグメントの処理を、割り当てられたメモリ制御方式により前記情報処理装置が実行した場合におけるメモリアクセスの実行性能を推定する推定部と、
    前記複数のセグメントの中から、推定された前記実行性能が予め定められた条件を満たす複数の教師セグメントを選択する選択部と、
    前記複数の教師セグメントと前記複数の教師セグメントのそれぞれに割り当てられたメモリ制御方式とに基づき、前記動作情報に基づきメモリ制御方式を決定するための前記決定モデルを生成する生成部と、
    を備えるモデル生成装置。
  2. 前記分割部は、互いに異なる複数の分割パターンのそれぞれ毎に、対応する分割パターンに従って前記動作情報の時系列データを分割して前記複数のセグメントを生成し、
    前記割当部は、前記複数の分割パターンのそれぞれ毎に、前記複数のセグメントのそれぞれに対してメモリ制御方式を割り当て、
    前記推定部は、前記複数の分割パターンのそれぞれ毎に、前記複数のセグメントのそれぞれについての前記実行性能を推定し、
    前記選択部は、前記複数の分割パターンに含まれる複数のセグメントの中から、前記複数の教師セグメントを選択する
    請求項1に記載のモデル生成装置。
  3. 前記割当部は、同一の分割パターンで分割された前記複数のセグメントのそれぞれに対して、異なる複数の割当パターンによりメモリ制御方式を割り当て、
    前記推定部は、前記複数の分割パターンのそれぞれ毎および前記複数の割当パターンのそれぞれ毎に、対応する前記複数のセグメントのそれぞれについての前記実行性能を推定する
    請求項2に記載のモデル生成装置。
  4. 前記選択部は、前記実行性能が基準値より良い複数のセグメントの中から、前記複数の教師セグメントを選択する
    請求項1から3の何れか1項に記載のモデル生成装置。
  5. 前記選択部は、含まれる前記複数のセグメントについて推定された前記実行性能の合計値が基準値より良い分割パターンを選択し、選択した分割パターンに含まれる前記複数のセグメントから教師セグメントを選択する
    請求項1から3の何れか1項に記載のモデル生成装置。
  6. 前記動作情報に基づき前記実行性能を算出するための推定モデルを記憶する推定モデル記憶部をさらに備え、
    前記推定部は、対応するセグメントに含まれる前記動作情報および前記推定モデルに基づき、前記実行性能を推定する
    請求項1から5の何れか1項に記載のモデル生成装置。
  7. 前記推定部は、前記実行性能として、対応するセグメントの処理を、割り当てられたメモリ制御方式により前記情報処理装置が実行した場合における消費電力を推定する
    請求項1から6の何れか1項に記載のモデル生成装置。
  8. 前記推定部は、前記実行性能として、対応するセグメントの処理を、割り当てられたメモリ制御方式により前記情報処理装置が実行した場合における実行時間を推定する
    請求項1から6の何れか1項に記載のモデル生成装置。
  9. 前記推定部は、前記実行性能として、対応するセグメントの処理を、割り当てられたメモリ制御方式により前記情報処理装置が実行した場合における寿命減少量を推定する
    請求項1から6の何れか1項に記載のモデル生成装置。
  10. 前記情報処理装置は、第2情報処理装置と共通に用いる主記憶メモリにアクセスし、
    前記取得部は、前記情報処理装置および前記第2情報処理装置をともに動作させた場合における、前記動作情報の時系列データを取得する
    請求項1から9の何れか1項に記載のモデル生成装置。
  11. 前記動作情報は、前記情報処理装置の前記主記憶メモリに対する書き込み回数、読み出し回数、プリフェッチ成功率、キャッシュヒット数、キャッシュミス数およびストール時間の少なくとも1つを表す
    請求項1から10の何れか1項に記載のモデル生成装置。
  12. 請求項1から9の何れか1項に記載のモデル生成装置により生成された前記決定モデルを記憶する決定モデル記憶部と、
    処理回路と、
    第1記憶部と、
    不揮発記憶部と、
    前記処理回路から書き込みまたは読み出しの要求を受けたことに応じて、前記第1記憶部および前記不揮発記憶部にアクセスする管理装置と、
    を備え、
    前記処理回路は、
    前記処理回路および前記管理装置の少なくとも一方における前記動作情報を取得する抽出部と、
    取得した前記動作情報および前記決定モデルに基づきメモリ制御方式を決定する決定部と、
    決定されたメモリ制御方式により前記管理装置が前記第1記憶部および前記不揮発記憶部にアクセスするように設定処理をする設定部と、
    を有する情報処理装置。
  13. 前記処理回路は、取得した前記動作情報および決定された前記メモリ制御方式により前記決定モデルを修正するモデル修正部をさらに有する
    請求項12に記載の情報処理装置。
  14. 異なる複数の種類の主記憶メモリにアクセスする情報処理装置によるメモリ制御方式を決定するための決定モデルを生成するモデル生成方法であって、
    前記情報処理装置を動作させた場合における、前記情報処理装置の前記主記憶メモリに対するアクセス動作の頻度または時間を表す動作情報の時系列データを取得する取得ステップと、
    前記動作情報の時系列データを時間方向に分割することにより複数のセグメントを生成する分割ステップと、
    前記複数のセグメントのそれぞれに対して、複数のメモリ制御方式のうちの何れか1つのメモリ制御方式を割り当てる割当ステップと、
    前記複数のセグメントのそれぞれについて、対応するセグメントの処理を、割り当てられたメモリ制御方式により前記情報処理装置が実行した場合におけるメモリアクセスの実行性能を推定する推定ステップと、
    前記複数のセグメントの中から、推定された前記実行性能が予め定められた条件を満たす複数の教師セグメントを選択する選択ステップと、
    前記複数の教師セグメントと前記複数の教師セグメントのそれぞれに割り当てられたメモリ制御方式とに基づき、前記動作情報に基づきメモリ制御方式を決定するための前記決定モデルを生成する生成ステップと、
    を実行するモデル生成方法。
  15. 情報処理装置に、異なる複数の種類の主記憶メモリにアクセスする情報処理装置によるメモリ制御方式を決定するための決定モデルを生成させるためのプログラムであって、
    前記情報処理装置に、
    前記情報処理装置を動作させた場合における、前記情報処理装置の前記主記憶メモリに対するアクセス動作の頻度または時間を表す動作情報の時系列データを取得する取得ステップと、
    前記動作情報の時系列データを時間方向に分割することにより複数のセグメントを生成する分割ステップと、
    前記複数のセグメントのそれぞれに対して、複数のメモリ制御方式のうちの何れか1つのメモリ制御方式を割り当てる割当ステップと、
    前記複数のセグメントのそれぞれについて、対応するセグメントの処理を、割り当てられたメモリ制御方式により前記情報処理装置が実行した場合におけるメモリアクセスの実行性能を推定する推定ステップと、
    前記複数のセグメントの中から、推定された前記実行性能が予め定められた条件を満たす複数の教師セグメントを選択する選択ステップと、
    前記複数の教師セグメントと前記複数の教師セグメントのそれぞれに割り当てられたメモリ制御方式とに基づき、前記動作情報に基づきメモリ制御方式を決定するための前記決定モデルを生成する生成ステップと、
    を実行させるプログラム。
JP2018052533A 2018-03-20 2018-03-20 モデル生成装置、情報処理装置、モデル生成方法およびプログラム Active JP6800904B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018052533A JP6800904B2 (ja) 2018-03-20 2018-03-20 モデル生成装置、情報処理装置、モデル生成方法およびプログラム
US16/117,339 US11263101B2 (en) 2018-03-20 2018-08-30 Decision model generation for allocating memory control methods

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018052533A JP6800904B2 (ja) 2018-03-20 2018-03-20 モデル生成装置、情報処理装置、モデル生成方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2019164629A JP2019164629A (ja) 2019-09-26
JP6800904B2 true JP6800904B2 (ja) 2020-12-16

Family

ID=67985171

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018052533A Active JP6800904B2 (ja) 2018-03-20 2018-03-20 モデル生成装置、情報処理装置、モデル生成方法およびプログラム

Country Status (2)

Country Link
US (1) US11263101B2 (ja)
JP (1) JP6800904B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6800904B2 (ja) 2018-03-20 2020-12-16 株式会社東芝 モデル生成装置、情報処理装置、モデル生成方法およびプログラム
US10719247B2 (en) 2018-03-20 2020-07-21 Kabushiki Kaisha Toshiba Information processing device, information processing method, estimation device, estimation method, and computer program product
JP7249580B2 (ja) * 2019-02-28 2023-03-31 富士通株式会社 付与方法、付与プログラム及び付与装置

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4149762B2 (ja) * 2002-08-09 2008-09-17 富士通株式会社 メモリ資源最適化支援方法、プログラム及び装置
WO2005088468A2 (en) * 2004-03-10 2005-09-22 Koninklijke Philips Electronics N.V. Integrated circuit and method for memory access control
US7962657B1 (en) 2007-12-28 2011-06-14 Emc Corporation Selection of a data path based on operation type
JP5209993B2 (ja) 2008-03-03 2013-06-12 キヤノン株式会社 情報処理装置及びその制御方法
JP5527324B2 (ja) 2009-10-08 2014-06-18 日本電気株式会社 運用監視装置、運用監視方法及びプログラム記憶媒体
US8863139B2 (en) 2011-04-12 2014-10-14 Hitachi, Ltd. Management system and management method for managing a plurality of storage subsystems
KR101467941B1 (ko) * 2011-04-26 2014-12-02 엘에스아이 코포레이션 비휘발성 저장부에 대한 가변 오버­프로비저닝
US8549519B2 (en) 2011-08-19 2013-10-01 Hitachi, Ltd. Method and apparatus to improve efficiency in the use of resources in data center
JP5844473B2 (ja) * 2012-02-08 2016-01-20 株式会社日立製作所 複数の不揮発性の半導体記憶媒体を有し、ホットデータを長寿命記憶媒体に配置しコールドデータを短寿命記憶媒体に配置するストレージ装置、及び、記憶制御方法
US9026719B2 (en) * 2012-11-15 2015-05-05 Elwha, Llc Intelligent monitoring for computation in memory
US20140189203A1 (en) * 2012-12-28 2014-07-03 Hitachi, Ltd. Storage apparatus and storage control method
US11061814B1 (en) * 2013-03-15 2021-07-13 EMC IP Holding Company LLC Managing data storage caching and tiering
US9935865B2 (en) 2014-06-23 2018-04-03 Infosys Limited System and method for detecting and preventing service level agreement violation in a virtualized environment
US9946471B1 (en) 2015-03-31 2018-04-17 EMC IP Holding Company LLC RAID groups based on endurance sets
GB2539189B (en) 2015-06-05 2019-03-13 Advanced Risc Mach Ltd Determining a predicted behaviour for processing of instructions
US10599349B2 (en) * 2015-09-11 2020-03-24 Samsung Electronics Co., Ltd. Method and apparatus of dynamic parallelism for controlling power consumption of SSDs
US9977487B2 (en) * 2015-09-22 2018-05-22 Samsung Electronics Co., Ltd. Dynamic non-volatile memory operation scheduling for controlling power consumption of solid-state drives
US9927983B2 (en) * 2015-09-28 2018-03-27 Sandisk Technologies Llc Methods, systems and computer readable media for intelligent fetching of data storage device commands from submission queues
US10222984B1 (en) * 2015-12-31 2019-03-05 EMC IP Holding Company LLC Managing multi-granularity flash translation layers in solid state drives
JP2017138852A (ja) * 2016-02-04 2017-08-10 株式会社東芝 情報処理装置、記憶装置およびプログラム
US10417141B2 (en) * 2017-05-22 2019-09-17 Arm Limited Method and apparatus for hardware management of multiple memory pools
US10545793B2 (en) * 2017-09-29 2020-01-28 Intel Corporation Thread scheduling using processing engine information
US10593380B1 (en) * 2017-12-13 2020-03-17 Amazon Technologies, Inc. Performance monitoring for storage-class memory
US10579494B2 (en) * 2018-01-05 2020-03-03 Nec Corporation Methods and systems for machine-learning-based resource prediction for resource allocation and anomaly detection
US10782908B2 (en) * 2018-02-05 2020-09-22 Micron Technology, Inc. Predictive data orchestration in multi-tier memory systems
JP6877381B2 (ja) 2018-03-20 2021-05-26 株式会社東芝 情報処理装置、情報処理方法およびプログラム
JP6873942B2 (ja) 2018-03-20 2021-05-19 株式会社東芝 推定装置、推定方法およびプログラム
JP6800904B2 (ja) 2018-03-20 2020-12-16 株式会社東芝 モデル生成装置、情報処理装置、モデル生成方法およびプログラム
US10719247B2 (en) 2018-03-20 2020-07-21 Kabushiki Kaisha Toshiba Information processing device, information processing method, estimation device, estimation method, and computer program product

Also Published As

Publication number Publication date
JP2019164629A (ja) 2019-09-26
US11263101B2 (en) 2022-03-01
US20190294989A1 (en) 2019-09-26

Similar Documents

Publication Publication Date Title
JP4209906B2 (ja) 低消費電力メモリ管理方法及びその方法を用いた計算機
US9223719B2 (en) Integrating data from symmetric and asymmetric memory
JP5528554B2 (ja) ブロックベースの非透過的キャッシュ
KR102423713B1 (ko) 가상 어드레스를 물리적 어드레스로 번역을 수행하기 위해 입력-출력 메모리 관리 유닛내 다수의 메모리 소자들 사용
JP2017138852A (ja) 情報処理装置、記憶装置およびプログラム
US10719247B2 (en) Information processing device, information processing method, estimation device, estimation method, and computer program product
JP6800904B2 (ja) モデル生成装置、情報処理装置、モデル生成方法およびプログラム
KR102568051B1 (ko) 메모리 관리
US20180113815A1 (en) Cache entry replacement based on penalty of memory access
US20220066940A1 (en) Limited propagation of unnecessary memory updates
US10606517B2 (en) Management device and information processing device
JP6877381B2 (ja) 情報処理装置、情報処理方法およびプログラム
JP6873942B2 (ja) 推定装置、推定方法およびプログラム
JP2020046761A (ja) 管理装置、情報処理装置およびメモリ制御方法
EP3724774B1 (en) Rinsing cache lines from a common memory page to memory
US20200143275A1 (en) Information processing device, information processing method, and computer program product
JP2019020965A (ja) 情報処理装置、プログラム及び情報処理方法
US10725675B2 (en) Management apparatus, information processing apparatus, management method, and computer program product
JP7118827B2 (ja) 情報処理装置、メモリ制御方法およびプログラム
Titos-Gil et al. Way-combining directory: an adaptive and scalable low-cost coherence directory
JP6878341B2 (ja) 管理装置、情報処理装置およびメモリ制御方法
KR20220103574A (ko) 이종 메모리로 구성된 메인 메모리 장치를 포함하는 컴퓨터 시스템 및 그것의 데이터 관리 방법
Plattner et al. Changes in hardware
JP2019164497A (ja) 管理装置、情報処理装置、管理方法、およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190820

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200804

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201001

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: 20201027

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201125

R151 Written notification of patent or utility model registration

Ref document number: 6800904

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151