JP2012033001A - 情報処理装置および情報処理方法 - Google Patents

情報処理装置および情報処理方法 Download PDF

Info

Publication number
JP2012033001A
JP2012033001A JP2010172048A JP2010172048A JP2012033001A JP 2012033001 A JP2012033001 A JP 2012033001A JP 2010172048 A JP2010172048 A JP 2010172048A JP 2010172048 A JP2010172048 A JP 2010172048A JP 2012033001 A JP2012033001 A JP 2012033001A
Authority
JP
Japan
Prior art keywords
semiconductor memory
memory
data
virtual machine
cache
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
JP2010172048A
Other languages
English (en)
Inventor
Atsushi Kunimatsu
敦 国松
Takeshi Kamimura
剛 上村
Tsutomu Owa
勤 大輪
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 JP2010172048A priority Critical patent/JP2012033001A/ja
Priority to KR1020110023766A priority patent/KR20120012377A/ko
Priority to CN2011100668584A priority patent/CN102346682A/zh
Priority to US13/076,952 priority patent/US8645612B2/en
Publication of JP2012033001A publication Critical patent/JP2012033001A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE
    • 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
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash 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
    • 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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • 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/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • 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/202Non-volatile memory
    • G06F2212/2022Flash 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/60Details of cache memory
    • G06F2212/6032Way prediction in set-associative cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

Abstract

【課題】メインメモリとして用いられる不揮発性半導体メモリに対して効率的に書き込みまたは読み出しを行う。
【解決手段】ホストOS11は、メインメモリとして用いられる不揮発性半導体メモリ7とキャッシュメモリとして用いられる半導体メモリ6とをアクセスする。キャッシュミス検出部10bは、第1・第2の仮想マシン131,132の処理において半導体メモリ6に対するキャッシュミスの検出を行う。キャッシュ制御部10aは、第1の仮想マシン131の処理においてキャッシュミスが発生した場合、不揮発性半導体メモリ7から半導体メモリ6に当該キャッシュミスの原因となったデータをキャッシュ処理する。切替部11bは、第1の仮想マシン131の処理においてキャッシュミスが発生した場合、キャッシュ処理が実行される間、実行仮想マシンを第1の仮想マシン131から第2の仮想マシン132に切り替える。
【選択図】図2

Description

本発明の実施形態は、仮想化を用いる情報処理装置および情報処理方法に関する。
一般的な情報処理装置においては、プロセッサの主記憶装置(メインメモリ)として、例えばDRAM(Dynamic Random Access Memory)などの揮発性半導体メモリが使用されている。さらに、従来の情報処理装置では、揮発性半導体メモリと組み合わせて、不揮発性半導体メモリが2次記憶装置として使用される。また、仮想化技術を適用した情報処理装置が提案されている。
特開2008−242944号公報 特開平7−146820号公報 特開2001−266580号公報
本発明の実施形態は、揮発性半導体メモリまたは不揮発性半導体メモリに対して効率的に書き込みまたは読み出しを行う情報処理装置および情報処理方法を提供することを目的とする。
実施形態によれば、情報処理装置は、オペレーティングシステムと、第1および第2の仮想マシンと、キャッシュミス検出部と、キャッシュ制御部と、仮想マシン制御部とを備える。前記オペレーティングシステムは、メインメモリとして用いられる不揮発性半導体メモリと、前記不揮発性半導体メモリのキャッシュメモリとして用いられる半導体メモリとを含むハードウェア資源をアクセスする。前記第1および第2の仮想マシンは、前記オペレーティングシステムによって実現される。キャッシュミス検出部は、前記第1および第2の仮想マシンで実行される処理において前記半導体メモリに対するキャッシュミスが発生したことを検出する。キャッシュ制御部は、前記キャッシュミス検出部が前記第1の仮想マシンで実行される処理においてキャッシュミスが発生したことを検出した場合、前記不揮発性半導体メモリから前記半導体メモリに当該キャッシュミスの原因となったデータをキャッシュ処理する。仮想マシン切替部は、前記キャッシュミス検出部が前記第1の仮想マシンで実行される処理においてキャッシュミスが発生したことを検出した場合、前記キャッシュ制御部がキャッシュ処理をする間、実行仮想マシンを前記第1の仮想マシンから前記第2の仮想マシンに切り替える。
第1の実施形態に係る情報処理装置の構成の一例を示すブロック図。 第1の実施形態に係る情報処理装置のハードウェア資源と、ハードウェア資源上で実行されるソフトウェア構成の一例を示すブロック図。 第1の実施形態に係る情報処理装置のキャッシュミス隠蔽処理の一例を示すフローチャート 第1の実施形態に係るホストOSのスケジューラで用いられるテーブルの一例を示す図。 第2の実施形態に係る情報処理装置のハードウェア資源と、ハードウェア資源上で実行されるソフトウェア構成の一例を示すブロック図。 第2の実施形態に係るゲストOSとホストOSとの間におけるカラーリング情報の送受信の一例を示すブロック図。 第2の実施形態に係るメモリ管理装置およびメモリ管理ソフトウェアと、記憶装置に記憶される各種データとの関係の一例を示すブロック図。 第2の実施形態に係るメモリ管理装置およびメモリ管理ソフトウェアによって実現される各種処理部の一例を示すブロック図。 第2の実施形態に係るカラーリング情報とカラーリングテーブルの一例を示す図。
以下、図面を参照しながら本発明の各実施の形態について説明する。なお、以下の説明において、略または実質的に同一の機能および構成要素については、同一符号を付し、必要に応じて説明を行う。
(第1の実施形態)
図1は、本実施形態に係る情報処理装置の構成の一例を示すブロック図である。
情報処理装置1は、プロセッサ2、バス3、メモリ管理装置4、揮発性半導体メモリ6、不揮発性半導体メモリ7を具備する。
本実施形態では、情報処理装置1に一つのプロセッサ2が備えられている場合を例として説明するが、情報処理装置1は複数のプロセッサ2を備えるマルチプロセッサ構造を持つとしてもよい。
プロセッサ2とメモリ管理装置4とは、バス3によってデータを送受信可能に接続されている。例えば、プロセッサ2とメモリ管理装置4とは、非同期に動作可能であり、プロセッサ2で処理実行中に、メモリ管理装置4が不揮発性半導体メモリ7に対してウェアレベリング、ガーベージコレクション、コンパクションを実行することができる。
揮発性半導体メモリ6および不揮発性半導体メモリ7(以下において、総称して「記憶装置5」と称する)は、プロセッサ2から主記憶装置(メインメモリ)として使用される。さらに、不揮発性半導体メモリ7は、ファイル装置(2次記憶装置)としても使用される。揮発性半導体メモリ6は、不揮発性半導体メモリ7のキャッシュメモリとして用いられる。
本実施形態において、揮発性半導体メモリ6としては、例えば、DRAM(Dynamic Random Access Memory)、FPM−DRAM(Fast Page Mode)、EDO−DRAM(Extended Data Out DRAM)、SDRAM(Synchronous DRAM)などのような、コンピュータにおいてメインメモリとして利用されるメモリが用いられる。なお、DRAM程度の高速ランダムアクセスが可能であり、アクセス可能上限回数に実質的な制限がないのであれば、揮発性半導体メモリ6に代えて、MRAM(Magnetoresistive Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)などの不揮発性ランダムアクセスメモリを採用してもよい。
本実施形態において、不揮発性半導体メモリ7は、第1のメモリ、第2のメモリを備えている。第1のメモリは、第2のメモリよりもアクセス可能上限回数が多い。ここでアクセス可能上限回数とは、統計的に予想される期待値であって、常にこの関係が保証されることを意味してはいないことに注意すべきである。
不揮発性半導体メモリ7に含まれている第1のメモリは、例えば、SLC(Single Level Cell)のNAND型フラッシュメモリ7Sであるとする。不揮発性半導体メモリ7に含まれている第2のメモリは、例えば、MLC(Multi Level Cell)のNAND型フラッシュメモリ7Mであるとする。
SLCは、MLCと比較して、読み出しおよび書き込みが高速であり、信頼性が高く、耐久性が高い。しかしながら、SLCは、MLCと比較して、ビットコストが高く、大容量化には向いていない。一方、MLCは、SLCと比較して、読み出しおよび書き込みが低速であり、信頼性が低く、耐久性が低い。しかしながら、MLCは、SLCと比較して、ビットコストが低く、大容量化に向いている。
なお、信頼性とは、記憶装置5からデータを読み出す場合におけるデータの欠損の起こりにくさの程度を意味する。また、耐久性が高いとは、アクセス可能上限回数が多く、耐久性が低いとは、アクセス可能上限回数が少ないことを意味する。
なお、本実施形態では、不揮発性半導体メモリ7は、NAND型フラッシュメモリであるとして説明するが、不揮発性半導体メモリ7はこれに限定されず、例えば、NOR型フラッシュメモリなどのような他の種類のフラッシュメモリ、PRAM(Phase change memory)、ReRAM(Resistive Random access memory)であるとしてもよい。
なお、本実施形態では、不揮発性半導体メモリ7がSLCのNAND型フラッシュメモリ7Sと、MLCのNAND型フラッシュメモリ7Mとを含むが、例えば、不揮発性半導体メモリ7が2bit/CellのMLCのNAND型フラッシュメモリと、3bit/CellのMLCのNAND型フラッシュメモリとを含むとしてもよい。
また、第2のメモリとしてMLCを採用し、第1のメモリとして、MLCの下位ページのみを使用してデータ書き込みを行う擬似SLCモードが利用可能なMLCを採用してもよい。この場合、第1のメモリと第2のメモリとを共通のチップのみで構成することが可能であり、製造コスト面で有利となる。
本実施形態では、不揮発性半導体メモリ7をメインメモリとして用いる。メインメモリとして不揮発性半導体メモリ7を利用する場合、従来の2次記憶装置として不揮発性半導体メモリ7を利用する場合(例えば、SSD(Solid State Drive)等)と比べ、不揮発性半導体メモリ7へのアクセス頻度が高くなり、不揮発性半導体メモリ7の寿命が短くなるという課題がある。本実施形態において、不揮発性半導体メモリ7、揮発性半導体メモリ6に対するデータの配置を管理することにより、上記課題を解決することが可能である。
メモリ管理装置4は、例えばプロセッサ2からの揮発性半導体メモリ6と不揮発性半導体メモリ7とに対する読み出し、書き込み、消去を制御する。
なお、メモリ管理装置4は、プロセッサ2に備えられ、プロセッサ2からの揮発性半導体メモリ6と不揮発性半導体メモリ7とに対する読み出し、書き込み、消去を制御する構成としてもよい。本実施形態において、揮発性半導体メモリ6、不揮発性半導体メモリ7に対する書き込みデータ、読み出しデータのデータサイズは、例えば、ページサイズであり、消去サイズはブロックサイズである。
プロセッサ2は、MMU(Memory Management Unit)34、1次キャッシュメモリL1、2次キャッシュメモリL2を備えている。プロセッサ2は、例えば、CPU(Central Processing Unit)、MPU(Micro Processor Unit)またはGPU(Graphic Processor Unit)などのような、各種の処理装置である。
MMU34は、仮想アドレスと物理アドレスの間のアドレス変換機能などの各種機能を具備する。また、MMU34は、プロセッサ2で処理するデータ(処理対象データ)を1次キャッシュメモリL1または2次キャッシュメモリL2に一時記憶するキャッシュ制御を行う。
上記のメモリ管理装置4の各種処理は、後述するメモリ管理ソフトウェア10が実行することも可能である。この場合、メモリ管理装置4は、ハードウェアで構成しなくてもよい。また、メモリ管理装置4のこれらの処理を、メモリ管理装置4とメモリ管理ソフトウェア10で分担して行ってもよい。
図2は、本実施形態に係る情報処理装置1のハードウェア資源と、ハードウェア資源上で実行されるソフトウェア構成の一例を示すブロック図である。
情報処理装置1は、前述のプロセッサ2(図2には図示せず)、揮発性半導体メモリ6、不揮発性半導体メモリ7などのハードウェア資源を備える。前述のように、揮発性半導体メモリ6は、不揮発性半導体メモリ7のキャッシュメモリとして用いられる。不揮発性半導体メモリ6には、ソフトウェアSSD9、メモリ管理ソフトウェア10が格納されている。ソフトウェアSSD9、メモリ管理ソフトウェア10についての詳細は後述する。
ハードウェア資源上では、ホストOS(Operating System)11が実行される。ホストOS11は、仮想化環境を提供する機能を有する。また、ホストOS11は、スケジューラ11a、仮想マシン切替部11bを備える。
ホストOS11は、仮想化環境を提供する。ホストOS11が提供する仮想化環境により、ホストOS11上には複数の仮想マシン131〜13mが実現される。仮想マシン131上では、ゲストOS12が実行される。仮想マシン132〜13m上でも、同様にゲストOSが実行される。ゲストOS12上では、1以上のプロセスP1〜Pnが処理される。仮想マシン132〜13m上のゲストOS上でも、同様に1以上のプロセスが処理される。スケジューラ11aは、ホストOS11上の複数の仮想マシン131〜13mの実行順番を管理する。言い換えると、スケジューラ11aは、ホストOS11上の複数のゲストOSの実行順番を管理する。仮想マシン切替部11bは、ホストOS11上のスケジューラ11aに基づき、実行する仮想マシン(実行仮想マシン)を切り替える。また、仮想マシン切替部11bは、後述するキャッシュミス検出部10bの要求に応じて、実行仮想マシンを切り替える。
プロセスP1〜Pnは、1次キャッシュメモリL1、2次キャッシュメモリL2にアクセスしながらデータの処理を実行する。処理対象データが1次キャッシュL1、2次キャッシュL2に存在しない場合(1次キャッシュL1、2次キャッシュL2におけるキャッシュミス)、揮発性半導体メモリ6または不揮発性半導体メモリ7から処理対象データを読み出す。処理データが揮発性半導体メモリ6に存在しない場合(揮発性半導体メモリ6におけるキャッシュミス)、キャッシュミスが発生する。後述のように、揮発性半導体メモリ6におけるキャッシュミスは、キャッシュミス検出部10bにより検出される。
仮想マシン131〜13mは、それぞれ仮想アドレス空間141〜14mおよび物理アドレス空間151〜15mを用いる。
仮想マシン131上では、ゲストOS12、プロセスP1〜Pnが実行され、仮想アドレス空間161〜16nが用いられている。
メモリ管理ソフトウェア10は、揮発性半導体メモリ6から読み出され、プロセッサ2により実行されることにより、キャッシュ制御部10a、キャッシュミス検出部10b、データ配置領域決定部10cを含むメモリ管理機能を実現する。
キャッシュ制御部10aは、不揮発性半導体メモリ7から揮発性半導体メモリ6へのデータキャッシュを制御する。例えば、プロセスP1〜Pnによりアクセスされるデータを不揮発性半導体メモリ7から揮発性半導体メモリ6へキャッシュする。これにより、プロセスP1〜Pnは、不揮発性半導体メモリ7より高速にアクセス可能な揮発性半導体メモリ6からデータの読み出しが可能となり、データへのアクセスの高速化が図れる。
キャッシュミス検出部10bは、揮発性半導体メモリ6におけるキャッシュミスを検出する。前述のように、キャッシュ制御部10bは、プロセスP1〜Pnからアクセスされるデータを揮発性半導体メモリ6へキャッシュするが、プロセスP1〜Pnからアクセスされるデータが揮発性半導体メモリ6にキャッシュされていない場合には、キャッシュミスが発生する。
データ配置領域決定部10cは、プロセスP1〜Pnにおいて、新たにデータが生成された場合等に、当該データの配置領域(書き込み領域)を決定する。データ配置領域決定部10cは、当該データのアクセス頻度に応じて、不揮発性半導体メモリ6、不揮発性半導体メモリ7のSLCのNAND型フラッシュメモリ7S、MLCのNAND型フラッシュメモリ7Mから配置領域を決定する。
ソフトウェアSSD9は、不揮発性半導体メモリ7を補助記憶装置として制御するためのソフトウェアである。
以上のように、本実施形態では、揮発性半導体メモリ6および不揮発性半導体メモリ7がメインメモリとして用いられる。このため、プロセスP1〜Pnにおいて、揮発性半導体メモリ6にアクセスした場合に、揮発性半導体メモリ6においてキャッシュミスが発生すると、不揮発性半導体メモリ7からアクセス対象データを読み出さなければならない。この場合、揮発性半導体メモリ6に比べ、不揮発性半導体メモリ7に対するアクセスはアクセスが低速であるため、レイテンシが長くなる可能性がある。本実施形態では、キャッシュミス検出部10b、仮想マシン切替部11b等を用いて、以下の処理を行うことで、揮発性半導体メモリ6におけるキャッシュミスペナルティを隠蔽することを可能とする。
以下において、図3を参照してキャッシュミスペナルティを隠蔽する動作について説明する。
まず、揮発性半導体メモリ6においてキャッシュミスが発生すると、キャッシュミス検出部10bは、揮発性半導体メモリ6におけるキャッシュミスを検出する(ステップS1)。
次に、キャッシュミス検出部10bは、ホストOS11に対して例外通知を行うとともに、キャッシュ制御部10aは、キャッシュミスの原因となったデータを、不揮発性半導体メモリ7から揮発性半導体メモリ6に書き込む処理を行う(ステップS2)。
次に、ホストOS11は、ステップS2における書き込み処理にかかる時間を考慮し、プロセス切替または仮想マシン切替を選択する(ステップS3)。
キャッシュ処理にかかる時間が短く、プロセス切替を選択した場合には、ホストOS11は、ゲストOS12にプロセス切替を通知する。これにより、ゲストOS12は、キャッシュミスが発生したプロセスP1〜Pnを切り替え、キャッシュミスの発生していないプロセスを実行する(ステップS4)。なお、プロセスP1〜Pnを切り替える代わりに、プロセス中のキャッシュミスが発生したスレッドを切り替え、キャッシュミスの発生していないスレッドを実行してもよい。
キャッシュ処理にかかる時間が長く、仮想マシン切替を選択した場合には、ホストOS11は、キャッシュミスが発生した仮想マシン131を切り替え、キャッシュミスの発生していない仮想マシン132に実行仮想マシンを切り替える(ステップS5)。
上記、ステップS4、S5のように、揮発性半導体メモリ6においてキャッシュミスが発生した場合に、プロセス(またはスレッド)または仮想マシンを切り替えることにより、キャッシュミスペナルティを隠蔽する。
ホストOS11は、例えば、切り替え前の仮想マシンにおいてキャッシュミスが発生しても実行可能な処理を、切り替え後の仮想マシンに引き継がせる。
また、ホストOS11は、揮発性半導体メモリ6に対するキャッシュミス時のみではなく、メモリ管理装置4(またはメモリ管理ソフトウェア10)が不揮発性半導体メモリ7に対してガーベージコレクション、コンパクションを実行している場合にも、仮想マシンの切り替えを行い、ガーベージコレクション、コンパクションのペナルティの隠蔽を行う。そのため、本実施形態において、メモリ管理装置4(またはメモリ管理ソフトウェア10)は、不揮発性半導体メモリ7に対して、部分的にガーベージコレクション、コンパクションを実行可能である。
図4は、本実施形態に係るホストOS11のスケジューラ11aで用いられるテーブルの一例を示す図である。
ホストOS11は、例えば、揮発性半導体メモリ6または不揮発性半導体メモリ7を用いて、テーブル18を管理する。
テーブル18は、例えば、項目として、仮想マシン131〜13mの識別情報、仮想マシン131〜13mの状態を表すステータス、このステータスの終了時間、仮想マシン131〜13mの優先度を持つ。
ホストOS11は、仮想マシン131〜13mの識別情報をテーブル18に登録する。
ホストOS11は、仮想マシン131〜13mに対する優先度を、テーブル18に登録する。優先度は、仮想マシン131〜13mごとに予め設定されている値が用いられるとしてもよい。また、優先度は、ユーザの使用度、実行している処理の種別に応じてホストOS11によって設定されるとしてもよい。例えば、ユーザの使用度の高い仮想マシンほど優先度を高くし、ユーザの使用度の低い仮想マシンほど優先度を低くする。
ホストOS11は、仮想マシン131〜13mが、例えば、プロセスを実行している状態(実行中)、プロセスを実行していない待ち状態(実行可能状態)、キャッシュミスに基づくデータ入れ替え中(キャッシュミス中)、ガーベージコレクション中、コンパクション中などのうち、いずれの状態であるかを検出し、この検出結果を示すステータスをテーブル18に登録する。
ホストOS11は、仮想マシン131〜13mがキャッシュミス中、ガーベージコレクション中、コンパクション中のいずれかになった場合に、そのステータスが終了するステータス終了時間を予測し、テーブル18に登録する。なお、ステータス終了時間は、例えば、キャッシュミス、ガーベージコレクション、コンパクションに基づくデータ入れ替えの終了時間である。このステータス終了時間に代えて、残り時間が管理されるとしてもよい。ホストOS11は、データが揮発性半導体メモリ6、SLCのNAND型フラッシュメモリ7S、MLCのNAND型フラッシュメモリ7Mのどのメモリ領域に配置されているか、データの大きさ、データの配置されているメモリ領域からデータが再配置されるメモリ領域にデータを転送する場合の予測データ転送速度を持つことで、このステータス終了時間を算出可能である。予測データ転送速度は、予め測定された転送速度の平均値などを用いる。
ホストOS11のスケジューラ11aは、テーブル18の内容を確認し、キャッシュミス、ガーベージコレクション、コンパクションの発生した仮想マシン131を、他の仮想マシン132〜13mのうちどの仮想マシンに切り替えるか決定する。例えば、優先度が「高」であり、ステータスが「実行可能」の仮想マシンが選択される。
本実施形態では、ステータス終了時間の算出により、効果的なスケジューリングが可能である。例えば、ステータスが「実行可能」であり、優先度が「低」の仮想マシンよりも、ステータスが「キャッシュミス中」であり、優先度が「高」であり、現時点とステータス終了時間との差が閾値以下の仮想マシンを優先して選択することができる。これにより、間もなくキャッシュミスによるデータ入れ替えが終了する優先度の高い仮想マシンを使用することができる。すなわち、選択される仮想マシンとしては、ページフォルトが発生していない仮想マシンが好ましいが、ページフォルトが発生していても、ステータス終了時間まで短い仮想マシンを選択することができる。
以上に説明した本実施形態においては、仮想マシンの切り替えにより、キャッシュミスによるデータ入れ替え中であっても実行可能な処理が他の仮想マシンで実行される。これにより、揮発性半導体メモリ6に対するキャッシュミスペナルティを隠蔽することができ、情報処理装置1による処理の効率化および高速化を実現させることができる。
本実施形態においては、揮発性半導体メモリ6に対するキャッシュミスのみではなく、メモリ管理装置4およびソフトウェアメモリ管理10によって、部分的なガーベージコレクション、コンパクションが実行される場合においても、仮想マシンを切り替えて、部分的なガーベージコレクション、コンパクションによるペナルティを隠蔽できる。
本実施形態では、プロセスまたはスレッドの切り替えで、揮発性半導体メモリ6に対するキャッシュミスペナルティを隠蔽できない場合に、仮想マシンの切り替えを行う。このため、仮想マシンの切り替えが頻発することを防止することができる。
本実施形態では、ハードウェアであるメモリ管理装置4と、ソフトウェアであるソフトウェアSSD9とメモリ管理ソフトウェア10とによって記憶装置5に対する書き込み、読み出し、消去などのアクセス処理が管理される。このように、アクセス処理の一部をソフトウェアによって実現させることで、ハードウェア構成を簡素化することができ、高度な処理を実現させることができる。
(第2の実施形態)
本実施形態では、上記第1の実施形態の変形例について説明する。本実施の形態においては、各データについての読み出し回数、書き込み回数、読み出し頻度、書き込み頻度などを含むカラーリング情報を用いてウェアレベリングを行う。
図5は、本実施形態に係る情報処理装置のハードウェア資源と、ハードウェア資源上で実行されるソフトウェア構成の一例を示すブロック図である。
ゲストOS19は、各データのカラーリング情報を生成するカラーリング情報生成機能19aを具備する。そして、ゲストOS19は、生成されたカラーリング情報をホストOS20に送信する。ゲストOS19とホストOS20とは、カラーリング情報通信用のインタフェースにしたがって、カラーリング情報を送受信する。
本実施形態に係るメモリ管理ソフトウェア21は、揮発性半導体メモリ6から読み出され、プロセッサ2により実行されることにより、キャッシュ制御部10a、キャッシュミス検出部10b、データ配置領域決定部21cを含むメモリ管理機能を実現する。
データ配置領域決定部21cは、プロセスP1〜Pnにおいて、新たにデータが生成された場合等に、当該データの配置領域(書き込み領域)を決定する。データ配置領域決定部21cは、カラーリング情報に基づいて、不揮発性半導体メモリ6、不揮発性半導体メモリ7のSLCのNAND型フラッシュメモリ7S、MLCのNAND型フラッシュメモリ7Mから配置領域を決定する。
メモリ管理ソフトウェア21およびメモリ管理装置4は、カラーリング情報に基づいて、ウェアレベリングを行う。例えば、メモリ管理ソフトウェア21およびメモリ管理装置4は、書き込み頻度の高いデータを、揮発性半導体メモリ6と不揮発性半導体メモリ7のうち、揮発性半導体メモリ6に配置する。また、例えば、メモリ管理ソフトウェア21およびメモリ管理装置4は、書き込み頻度の高いデータを、不揮発性半導体メモリ7のSLCのNAND型フラッシュメモリ7SとMLCのNAND型フラッシュメモリ7Mとのうち、SLCのNAND型フラッシュメモリ7Sに記憶する。
なお、本実施形態のホストOS20は、不揮発性半導体メモリ7のSLCのNAND型フラッシュメモリ7Sのメモリ領域をMLCのNAND型フラッシュメモリ7Mに変更する制御、不揮発性半導体メモリ7のMLCのNAND型フラッシュメモリ7Mのメモリ領域をSLCのNAND型フラッシュメモリ7Sに変更する制御を実行するとしてもよい。
図6は、本実施形態に係るゲストOS19とホストOS20との間におけるカラーリング情報の送受信の一例を示すブロック図である。
ホストOS20は、記憶装置5のいずれかの領域に、メモリマップでカラーリングテーブル22を生成する。
ゲストOS19のカラーリング情報生成機能19aは、各データのカラーリング情報を生成し、カラーリングテーブル22にカラーリング情報を書き込む。
図7は、本実施形態に係るメモリ管理装置4およびメモリ管理ソフトウェア21と、記憶装置5に記憶される各種データとの関係の一例を示すブロック図である。
メモリ管理装置4およびメモリ管理ソフトウェア21は、メモリ使用情報23と、メモリ固有情報24と、アドレス変換情報25と、カラーリングテーブル22とを記憶装置5に格納する。
揮発性半導体メモリ6には、不揮発性半導体メモリ7S,7Mに格納されているカラーリングテーブル22の一部が格納されるとしてもよい。例えば、不揮発性半導体メモリ7S,7Mに格納されているカラーリングテーブル22のうち、頻繁に用いられるカラーリング情報を、揮発性半導体メモリ6に格納するとしてもよい。メモリ管理装置4およびメモリ管理ソフトウェア21は、カラーリングテーブル22等を参照し、記憶装置5に対するアクセスを管理する。
メインメモリとして不揮発性半導体メモリ7S,7Mを利用する場合、不揮発性半導体メモリ7S,7Mへのアクセス頻度は、2次記憶装置として不揮発性半導体メモリ7S,7Mを利用する場合よりも高くなり、不揮発性半導体メモリ7S,7Mの寿命は短期化する。本実施形態においては、揮発性半導体メモリ6とSLCの不揮発性半導体メモリ7SとMLCの不揮発性半導体メモリ7Mとを混成してメインメモリとする記憶装置5を備えた情報処理装置を実現している。記憶装置5は、異機種混在型の主記憶装置であり、メモリ管理装置4およびメモリ管理ソフトウェア21によってデータの配置が管理される。
メモリ使用情報23は、不揮発性半導体メモリ7S,7Mの各ページ領域の書き込み発生回数および読み出し発生回数と、各ブロック領域の消去回数と、使用中領域サイズを含む。
メモリ固有情報24は、揮発性半導体メモリ6のメモリサイズと、不揮発性半導体メモリ7S,7Mのメモリサイズと、不揮発性半導体メモリ7S,7Mのページサイズおよびブロックサイズと、各メモリ領域のアクセス可能上限回数(書き込み可能上限回数、読み出し可能上限回数、消去可能上限回数)と、を含む。ここで、ページサイズとは、不揮発性半導体メモリ7S,7Mの書き込み、読み出しのデータサイズの単位である。ブロックサイズとは、不揮発性半導体メモリ7のデータ消去サイズの単位である。不揮発性半導体メモリ7において、ブロックサイズはページサイズよりも大きい。
アドレス変換情報25は、プロセッサ2から与えられる論理アドレスを、論理アドレスに対応する物理アドレスに変換する情報である。
カラーリングテーブル22は、データ毎のカラーリング情報が保持されるテーブルである。カラーリング情報は、静的カラー情報と動的カラー情報を含む。
図8は、本実施形態に係るメモリ管理装置4およびメモリ管理ソフトウェア21によって実現される各種処理部の一例を示すブロック図である。
メモリ管理装置4およびメモリ管理ソフトウェア21は、アドレス管理部26、読み出し管理部27、書き込み管理部28、カラーリング情報管理部29、メモリ使用情報管理部30、再配置部31を備える。さらに、カラーリング情報管理部29は、アクセス頻度算出部32、動的カラー情報管理部33を備える。
アドレス管理部26は、論理アドレスに対して物理アドレスを割り当て、アドレス変換情報25に記憶する。これにより、メモリ管理装置4およびメモリ管理ソフトウェア21は、アドレス変換情報25を参照することにより、論理アドレスに対応する物理アドレスを取得することができる。
読み出し管理部27は、プロセッサ2が読み出し要求を発生した場合に、記憶装置5に対して読み出し対象データの読み出し処理を管理する。
書き込み管理部28は、プロセッサ2が書き込み要求を発生した場合に、記憶装置5に対して書き込み対象データを書き込む処理を管理する。
カラーリング情報管理部29は、カラーリングテーブル22を管理する。
メモリ使用情報管理部30は、記憶装置5のメモリ使用情報23を管理する。
再配置部31は、プロセッサ2の動作と非同期に、カラーリングテーブル22に含まれているカラーリング情報に基づき、任意の論理アドレスに対応する物理アドレスに配置されているデータの再配置を行う。再配置部31は、例えば、動的カラー情報に基づき、不揮発性半導体メモリ7Mに含まれるデータのうち、読み出し頻度、書き込み頻度が高いデータを、定期的に、不揮発性半導体メモリ7Sに再配置する。また、再配置部は、例えば、動的カラー情報に基づき、不揮発性半導体メモリ7Sに含まれるデータのうち、読み出し頻度、書き込み頻度が低いデータを、定期的に、不揮発性半導体メモリ7Mに再配置する。同様に、再配置部31は、揮発性半導体メモリ6、不揮発性半導体メモリ7S,7Mの間でもデータの再配置を行うことが可能である。書き込み管理部28による書き込み処理は、データの更新が発生するたびに、書き込み先メモリ領域の判断処理と書き込み先ブロック領域の判断処理を行うことで再配置を行う。
アクセス頻度算出部32は、カラーリングテーブル22に含まれているカラーリング情報に基づき、データのアクセス頻度情報(動的書き込み頻度DW_color、動的読み出し頻度DR_color)を算出する。
動的カラー情報管理部33は、カラーリングテーブル22に含まれている動的カラー情報を管理する。
図9は、本実施形態に係るカラーリング情報とカラーリングテーブル22の一例を示す図である。
本実施形態では、データ毎にカラーリング情報が付与される。カラーリング情報が付与されるデータのデータサイズ単位は、例えば、読み出し、書き込みの最小の単位である。例えば、読み出し、書き込みの最小の単位は、NAND型フラッシュメモリのページサイズである。以下において、カラーリングテーブル22によりカラーリング情報が対応付けられるデータのデータサイズはページサイズであるとして説明するが、これに限定されるものではない。
カラーリングテーブル22は、データ毎にカラーリング情報を対応付け、エントリ単位でカラーリング情報を格納する。カラーリングテーブル22の各エントリには、インデックスが付されている。インデックスとは、論理アドレスを基に生成される値である。上記の読み出し管理部27、書き込み管理部28、カラーリング情報管理部29、再配置部31などは、データを指定する論理アドレスが与えられると、論理アドレスに対応するインデックスにより管理されているエントリを参照し、データのカラーリング情報を取得する。
カラーリング情報は、各データの配置領域を決定する基準として用いられる情報であり、静的カラー情報と、動的カラー情報とを含む。静的カラー情報は、カラーリング情報が付与される当該データの特性に基づいて生成される情報であり、当該データの記憶装置5上の配置(書き込み)領域を決定するヒントとなる情報である。動的カラー情報は、データの読み出しと書き込みの回数と頻度の少なくとも一方を含む情報である。
静的カラー情報は、当該データの重要度、静的書き込み頻度を示す値SW_color、静的読み出し頻度を示すSR_color、データ寿命SL_color、データの生成された時刻ST_colorを含む。
重要度とは、データの種類等に基づいて、当該データの重要性を推測して設定される値である。重要度は、例えば、ファイルシステムに保持されるファイルの特性、またはプログラムに一次的に使用される領域の特性により推測される。
静的書き込み頻度SW_colorとは、データの種類等に基づいて、当該データが書き込まれる頻度を推測して設定される値である。静的読み出し頻度SR_colorとは、データの種類等に基づいて、当該データが読み出される頻度を推測して設定される値である。例えば、静的書き込み頻度SW_colorは、書き込み頻度が高いと推測されるデータほど、高い値が設定される。例えば、静的読み出し頻度SR_colorは、読み出し頻度が高いと推測されるデータほど、高い値が設定される。
データ寿命SL_colorとは、データの種類等に基づいて、当該データが消去されずにデータとして使用される期間(データの寿命)を推測して設定される値である。
静的カラー情報は、データを生成するプログラム(プロセス)により、静的に、予め決められた値である。また、ゲストOS12が、データのファイル拡張子またはファイルヘッダ等に基づいて、静的カラー情報を予測してもよい。
動的カラー情報は、データの書き込み回数DWC_color、データの読み出し回数DRC_colorを含む。ここで、データの書き込み回数DWC_colorとは、当該データが記憶装置5に書き込まれた回数である。データの読み出し回数DRC_colorとは、当該データが記憶装置5から読み出された回数である。動的カラー情報管理部33は、データの書き込み回数DWC_colorにより、データ毎に、当該データが記憶装置5に書き込まれた回数を管理する。動的カラー情報管理部33は、データ読み出し回数DRC_colorにより、データ毎に、当該データが記憶装置5から読み出された回数を管理する。前述のように、記憶装置5は、メインメモリとして用いられる。このため、プロセッサ2で処理されるデータは、記憶装置5に書き込まれ、記憶装置5から読み出される。動的カラー情報管理部33は、データが書き込まれる度に、当該データの書き込み回数DWC_colorをインクリメントする。また、動的カラー情報管理部33は、データが読み出される度に、当該データの読み出し回数DRC_colorをインクリメントする。
アクセス頻度算出部32は、データの書き込み回数DWC_colorから、動的書き込み頻度DW_colorを算出する。アクセス頻度算出部32は、データの読み出し回数DRC_colorから、動的読み出し頻度DR_colorを算出する。
動的書き込み頻度DW_colorとは、当該データが記憶装置5に書き込まれた頻度を示す値である。動的読み出し頻度DR_colorとは、当該データが記憶装置5から読み出された頻度を示す値である。
ここで、動的カラー情報と静的カラー情報に基づいて動的書き込み頻度DW_colorと動的読み出し頻度DR_colorを算出する方法について説明する。
新たなデータがデータ生成時刻において生成されると、新たに生成されたデータに対してカラーリング情報(データ生成時刻を含む)が生成され、カラーリングテーブル22の新たなエントリに登録された上で、データは記憶装置5に書き込まれる。データ生成時刻以降、このデータに対するアクセス(読み出し、書き込み)が発生することにより、時間の経過とともに、アクセス回数(書き込み回数DWC_color、読み出し回数DRC_color)が増加する。このアクセス回数の増加は、動的カラー情報管理部33によって行われる。メモリ管理装置4およびメモリ管理ソフトウェア21の少なくとも一方によって実現されるアクセス頻度算出部32は、アクセス回数から動的書き込み頻度DW_color、動的読み出し頻度DR_colorを算出する。
現在時刻における、当該データの書き込み回数DWC_color、データの読み出し回数DRC_colorは、カラーリングテーブル22を参照することにより求めることができる。例えば、現在時刻における当該動的書き込み頻度DW_colorは、データ生成時刻ST_colorから現在時刻までの書き込み回数DWC_colorの時間平均により求める。また、例えば、現在時刻における当該動的読み出し頻度DR_colorは、データ生成時刻ST_colorから現在時刻までの読み出し回数DRC_colorの時間平均により求める。これにより、動的カラー情報(書き込み回数DWC_color、読み出し回数DRC_color)から、当該データの動的書き込み頻度DW_colorと、動的読み出し頻度DR_colorとが算出される。
書き込み管理部28は、メモリ使用情報23、メモリ固有情報24、カラーリングテーブル22に基づいて、記憶装置5に対して書き込み対象データを書き込むメモリ領域を決定し、この決定されたメモリ領域に書き込み対象データを書き込む。
例えば、書き込み管理部28は、記憶装置5の各メモリ領域に対して、消耗度(=書き込み回数/書き込み可能上限回数)を算出し、消耗度の高いメモリ領域に動的書き込み頻度の低いデータを書き込む。
例えば、書き込み管理部28は、消耗度の低いメモリ領域に動的書き込み頻度の高いデータを書き込む。
例えば、書き込み管理部28は、動的読み出し頻度または動的書き込み頻度が「高」のデータを揮発性半導体メモリ6のメモリ領域に書き込み、動的読み出し頻度または動的書き込み頻度が「中」のデータをSLCのNAND型フラッシュメモリ7Sのメモリ領域に書き込み、動的読み出し頻度または動的書き込み頻度が「低」のデータをMLCのNAND型フラッシュメモリ7Mのメモリ領域に書き込む。
上記の処理により書き込み対象のメモリ領域が決定された場合、書き込み管理部28は、書き込み先の物理アドレスを決定する。この場合、書き込み管理部28は、カラーリングテーブル22を参照し、書き込み先の物理アドレスを適切に選択することでウェアレベリングの発生を抑え、不要な消去処理を低減する。
ここでウェアレベリングとは、例えば、消去回数が最大のブロックと、消去回数が最小のブロックとの消去回数の差が、所定の閾値以内に収まるように、ブロック間でデータの入れ替え(交換)を行うことを意味する。例えば、NAND型フラッシュメモリは消去処理なしでのデータ上書きができないため、データ移動先は未使用のブロックである必要があり、元々データを記憶していたブロックの消去処理が発生することになる。
なお、本実施の形態においては、算出された各メモリの消耗度に応じて、SLCのメモリ領域をMLCのメモリ領域に切り替えてもよく、MLCのメモリ領域をSLCのメモリ領域に切り替えてもよい。
以上に説明した本実施形態では、ハードウェアであるメモリ管理装置4とともに、ソフトウェアであるメモリ管理ソフトウェア21によって、記憶装置5に対する書き込み、読み出し、消去の処理が制御される。
このように、記憶装置5に対する書き込み、読み出し、消去の処理の一部をソフトウェアで実行させることにより、自由度の高い、高度なウェアレベリングを実行させることができ、記憶装置5の一部のメモリ領域だけが劣化することを防止することができ、記憶装置5の長寿命化を実現させることができる。
本実施形態では、ゲストOS19から、メモリ管理ソフトウェア21に、カラーリング情報が送信され、このカラーリング情報に基づいて効率的かつ高度なウェアレベリングが実施される。
なお、本実施の形態において、メモリ管理ソフトウェア21は、ホストOS20の一部であるとしてもよい。
(第3の実施形態)
本実施形態では、上記第1および第2の実施形態に係るソフトウェアSSD9について説明する。
ソフトウェアSSD9は、不揮発性半導体メモリ7をSSDとして制御するためのソフトウェアである。
補助記憶装置として用いられるSSDは、通常、プロセッサに、チップセット(サウスブリッジ、ノースブリッジ)を介して接続される。例えば、SSDは、SATA(Serial Advanced Technology Attachment)インタフェースによりサウスブリッジに接続される。
本実施形態では、不揮発性半導体メモリ7は、プロセッサ2に、メモリ管理装置4を介して接続される。不揮発性半導体メモリ7は、例えば、PCIexpressにより、メモリ管理装置4に接続され、補助記憶装置として用いられる。
ソフトウェアSSD9は、不揮発性半導体メモリ7をSSD(補助記憶装置)として用いる場合、カラーリング情報を用いて高度なウェアレベリングを実現させることができる。
一方、例えば、ゲストOSがカラーリング生成機能19aを持たない汎用的なゲストOS12であり、ゲストOS12からカラーリング情報が送信されない場合であっても、ソフトウェアSSD9は、FAT(File Allocation Table)を参照することでデータの属するファイルの種類、識別子などを識別できる。したがって、ソフトウェアSSD9は、このFATの情報に基づいて、データに対して、カラーリング情報(例えば静的カラー情報など)と同等な情報を生成し、高度なウェアレベリングを実現することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…情報処理装置、2…プロセッサ、3…バス、4…メモリ管理装置、5…記憶装置、6…揮発性半導体メモリ、7…不揮発性半導体メモリ、7S…SLCタイプのNAND型フラッシュメモリ、7M…MLCタイプのNAND型フラッシュメモリ、L1…1次キャッシュメモリ、L2…2次キャッシュメモリ、9…ソフトウェアSSD、10,21…メモリ管理ソフトウェア、10a…キャッシュ制御部、10b…キャッシュミス検出部、10c,21c…データ配置領域決定部、11,20…ホストOS、12,19…ゲストOS、131〜13n…仮想マシン、141〜14m…仮想アドレス空間、151〜15m…物理アドレス空間、161〜16n…仮想アドレス空間、P1〜Pn…プロセス、18…テーブル、19…ゲストOS、19a…カラーリング情報生成機能、11a…スケジューラ、11b…仮想マシン切替部、22…カラーリングテーブル、23…メモリ使用情報、24…メモリ固有情報、25…アドレス変換情報、26…アドレス管理部、27…読み出し管理部、28…書き込み管理部、29…カラーリング情報管理部、30…メモリ使用情報管理部、31…再配置部、32…アクセス頻度算出部、33…動的カラー情報管理部、34…MMU。

Claims (5)

  1. メインメモリとして用いられる不揮発性半導体メモリと、前記不揮発性半導体メモリのキャッシュメモリとして用いられる半導体メモリとを含むハードウェア資源をアクセスするオペレーティングシステムと、
    前記オペレーティングシステムによって実現される第1および第2の仮想マシンと、
    前記第1および第2の仮想マシンで実行される処理において前記半導体メモリに対するキャッシュミスが発生したことを検出するキャッシュミス検出部と、
    前記キャッシュミス検出部が前記第1の仮想マシンで実行される処理においてキャッシュミスが発生したことを検出した場合、前記不揮発性半導体メモリから前記半導体メモリに当該キャッシュミスの原因となったデータをキャッシュ処理するキャッシュ制御部と、
    前記キャッシュミス検出部が前記第1の仮想マシンで実行される処理においてキャッシュミスが発生したことを検出した場合、前記キャッシュ制御部がキャッシュ処理をする間、実行仮想マシンを前記第1の仮想マシンから前記第2の仮想マシンに切り替える仮想マシン切替部と、
    を備えることを特徴とする情報処理装置。
  2. 前記第1および前記第2の仮想マシンのそれぞれで実行されるゲスト・オペレーティングシステムと、
    前記不揮発性半導体メモリおよび前記半導体メモリにデータを書き込む場合に、前記不揮発性半導体メモリおよび前記半導体メモリに対するデータの配置領域を決定する配置決定部と
    をさらに備え、
    前記ゲスト・オペレーティングシステムは、前記オペレーティングシステム上で実行される処理に関するデータのアクセス頻度情報を生成し、
    前記配置決定部は、前記アクセス頻度情報に基づいて、当該データの配置領域を決定する
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記プロセッサによって実行され、前記不揮発性半導体メモリを補助記憶装置とする制御を実行するためのソフトウェアであり、前記不揮発性半導体メモリについてのファイルアロケーションテーブルまたは前記アクセス頻度情報に基づいて、各データの配置領域を決定する制御ソフトウェア、をさらに具備することを特徴とする請求項1または請求項2記載の情報処理装置。
  4. 前記仮想マシン切替部は、前記第1および第2の仮想マシンの実行状態、実行可能になるまでの時間、実行の優先度を管理する管理テーブルを備え、前記管理テーブルに基づいて、前記仮想マシンの切り替えを実行する
    ことを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
  5. プロセッサにより、メインメモリとして用いられる不揮発性半導体メモリと、前記不揮発性半導体メモリのキャッシュメモリとして用いられる半導体メモリとを含むハードウェア資源をアクセスするオペレーティングシステムを実行することにより、第1および第2の仮想マシンを実現させること、
    前記プロセッサとメモリ管理装置とのうちの少なくとも一方により、前記第1および第2の仮想マシンで実行される処理において前記半導体メモリに対するキャッシュミスが発生したことの検出を行い、前記第1の仮想マシンで実行される処理においてキャッシュミスが発生したことが検出された場合、前記不揮発性半導体メモリから前記半導体メモリに当該キャッシュミスの原因となったデータをキャッシュ処理すること、
    前記プロセッサと前記メモリ管理装置とのうちの少なくとも一方により、前記キャッシュ処理が実行される間、実行仮想マシンを前記第1の仮想マシンから前記第2の仮想マシンに切り替えること
    を含む情報処理方法。
JP2010172048A 2010-07-30 2010-07-30 情報処理装置および情報処理方法 Pending JP2012033001A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2010172048A JP2012033001A (ja) 2010-07-30 2010-07-30 情報処理装置および情報処理方法
KR1020110023766A KR20120012377A (ko) 2010-07-30 2011-03-17 정보 처리 장치 및 정보 처리 방법
CN2011100668584A CN102346682A (zh) 2010-07-30 2011-03-18 信息处理装置及信息处理方法
US13/076,952 US8645612B2 (en) 2010-07-30 2011-03-31 Information processing device and information processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010172048A JP2012033001A (ja) 2010-07-30 2010-07-30 情報処理装置および情報処理方法

Publications (1)

Publication Number Publication Date
JP2012033001A true JP2012033001A (ja) 2012-02-16

Family

ID=45527875

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010172048A Pending JP2012033001A (ja) 2010-07-30 2010-07-30 情報処理装置および情報処理方法

Country Status (4)

Country Link
US (1) US8645612B2 (ja)
JP (1) JP2012033001A (ja)
KR (1) KR20120012377A (ja)
CN (1) CN102346682A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017068806A (ja) * 2015-10-02 2017-04-06 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置および情報処理方法
JP2017107410A (ja) * 2015-12-10 2017-06-15 ルネサスエレクトロニクス株式会社 半導体装置及びメモリアクセス制御方法
CN112214279A (zh) * 2020-09-14 2021-01-12 苏州浪潮智能科技有限公司 一种基于磁盘镜像创建虚拟机的方法及系统

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011007599A1 (ja) 2009-07-17 2011-01-20 株式会社 東芝 メモリ管理装置
JP2011128792A (ja) 2009-12-16 2011-06-30 Toshiba Corp メモリ管理装置
JP2011145838A (ja) 2010-01-13 2011-07-28 Toshiba Corp 記憶装置管理装置および記憶装置の管理方法
JP6224255B2 (ja) 2013-12-24 2017-11-01 インテル コーポレイション ヒューリスティック競合モデルを使用したクラウド計算スケジューリング
CN105843748B (zh) 2015-01-15 2019-06-11 华为技术有限公司 一种对内存中内存页的处理方法及装置
US10255182B2 (en) 2015-02-11 2019-04-09 Samsung Electronics Co., Ltd. Computing apparatus and method for cache management
US20170351452A1 (en) * 2016-06-01 2017-12-07 Intel Corporation Dynamic host memory buffer allocation
DE102020123220A1 (de) * 2020-09-04 2022-03-10 Harman Becker Automotive Systems Gmbh Speichersystem, Verfahren zum Betrieb desselben

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05250263A (ja) * 1992-03-05 1993-09-28 Hitachi Ltd 仮想プロセッサ方式及び不揮発化記憶方式
JP2000347883A (ja) * 1999-06-03 2000-12-15 Matsushita Electric Ind Co Ltd 仮想計算機装置
JP2006040141A (ja) * 2004-07-29 2006-02-09 Fujitsu Ltd マルチスレッドプロセッサ
JP2007011491A (ja) * 2005-06-28 2007-01-18 Xanavi Informatics Corp 情報端末、計算機資源管理方法、および仮想マシンの実行切り替え方法
JP2008090554A (ja) * 2006-09-29 2008-04-17 Toshiba Corp 情報処理装置、制御装置およびメモリ管理方法
JP2010066914A (ja) * 2008-09-09 2010-03-25 Toshiba Corp 統合メモリ管理装置及びメモリ管理方法
JP2010170210A (ja) * 2009-01-20 2010-08-05 Toshiba Corp 仮想計算機管理機構、同管理機構を有する仮想計算機システム及び同システムにおけるページング処理方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07146820A (ja) 1993-04-08 1995-06-06 Hitachi Ltd フラッシュメモリの制御方法及び、それを用いた情報処理装置
US6088788A (en) 1996-12-27 2000-07-11 International Business Machines Corporation Background completion of instruction and associated fetch request in a multithread processor
US6567839B1 (en) * 1997-10-23 2003-05-20 International Business Machines Corporation Thread switch control in a multithreaded processor system
US8452912B2 (en) * 2007-10-11 2013-05-28 Super Talent Electronics, Inc. Flash-memory system with enhanced smart-storage switch and packed meta-data cache for mitigating write amplification by delaying and merging writes until a host read
KR100383774B1 (ko) 2000-01-26 2003-05-12 삼성전자주식회사 공통 인터페이스 방식의 메모리 장치들을 구비한 시스템
US6587937B1 (en) * 2000-03-31 2003-07-01 Rockwell Collins, Inc. Multiple virtual machine system with efficient cache memory design
DE60223555T2 (de) * 2001-08-29 2009-06-10 Mediatek Inc. Verfahren und apparat zur takt- und leistungssteuerung in drahtlosen systemen
US20050132363A1 (en) * 2003-12-16 2005-06-16 Vijay Tewari Method, apparatus and system for optimizing context switching between virtual machines
JP5007485B2 (ja) 2004-08-26 2012-08-22 ソニー株式会社 半導体記憶装置およびそのアクセス方法、並びにメモリ制御システム
US8166473B2 (en) * 2005-04-21 2012-04-24 Microsoft Corporation Method and system for a resource negotiation between virtual machines
US8516211B2 (en) * 2005-06-17 2013-08-20 Flexera Software Llc Secure storage management system and method
JP2007305210A (ja) * 2006-05-10 2007-11-22 Toshiba Corp 半導体記憶装置
KR100850515B1 (ko) * 2007-01-24 2008-08-05 삼성전자주식회사 멀티레벨 셀 플래시 메모리를 갖는 메모리 시스템 및그것의 프로그램 방법
US8135900B2 (en) 2007-03-28 2012-03-13 Kabushiki Kaisha Toshiba Integrated memory management and memory management method
JP5032172B2 (ja) 2007-03-28 2012-09-26 株式会社東芝 統合メモリ管理装置及び方法並びにデータ処理システム
KR101496325B1 (ko) 2008-01-16 2015-03-04 삼성전자주식회사 가상 머신의 상태를 저장, 복원하는 방법 및 장치
CN101673245B (zh) 2008-09-09 2016-02-03 株式会社东芝 包括存储器管理装置的信息处理装置和存储器管理方法
JP2010165251A (ja) 2009-01-16 2010-07-29 Toshiba Corp 情報処理装置及びプロセッサ並びに情報処理方法
WO2011007599A1 (ja) 2009-07-17 2011-01-20 株式会社 東芝 メモリ管理装置
JP2011145838A (ja) 2010-01-13 2011-07-28 Toshiba Corp 記憶装置管理装置および記憶装置の管理方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05250263A (ja) * 1992-03-05 1993-09-28 Hitachi Ltd 仮想プロセッサ方式及び不揮発化記憶方式
JP2000347883A (ja) * 1999-06-03 2000-12-15 Matsushita Electric Ind Co Ltd 仮想計算機装置
JP2006040141A (ja) * 2004-07-29 2006-02-09 Fujitsu Ltd マルチスレッドプロセッサ
JP2007011491A (ja) * 2005-06-28 2007-01-18 Xanavi Informatics Corp 情報端末、計算機資源管理方法、および仮想マシンの実行切り替え方法
JP2008090554A (ja) * 2006-09-29 2008-04-17 Toshiba Corp 情報処理装置、制御装置およびメモリ管理方法
JP2010066914A (ja) * 2008-09-09 2010-03-25 Toshiba Corp 統合メモリ管理装置及びメモリ管理方法
JP2010170210A (ja) * 2009-01-20 2010-08-05 Toshiba Corp 仮想計算機管理機構、同管理機構を有する仮想計算機システム及び同システムにおけるページング処理方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017068806A (ja) * 2015-10-02 2017-04-06 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置および情報処理方法
JP2017107410A (ja) * 2015-12-10 2017-06-15 ルネサスエレクトロニクス株式会社 半導体装置及びメモリアクセス制御方法
CN112214279A (zh) * 2020-09-14 2021-01-12 苏州浪潮智能科技有限公司 一种基于磁盘镜像创建虚拟机的方法及系统

Also Published As

Publication number Publication date
CN102346682A (zh) 2012-02-08
US20120030405A1 (en) 2012-02-02
KR20120012377A (ko) 2012-02-09
US8645612B2 (en) 2014-02-04

Similar Documents

Publication Publication Date Title
JP2012033001A (ja) 情報処理装置および情報処理方法
US10552337B2 (en) Memory management and device
US9672158B2 (en) Asymmetric memory migration in hybrid main memory
KR102371916B1 (ko) 가상 머신을 지원하는 스토리지 장치, 그것을 포함하는 스토리지 시스템 및 그것의 동작 방법
KR100823171B1 (ko) 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법
TWI475561B (zh) Memory system
KR101612922B1 (ko) 메모리 시스템 및 메모리 시스템 관리 방법
US8612692B2 (en) Variable write back timing to nonvolatile semiconductor memory
US7653799B2 (en) Method and apparatus for managing memory for dynamic promotion of virtual memory page sizes
JP2021128582A (ja) メモリシステムおよび制御方法
CN113508368A (zh) 用于存储器子系统中的单独的只读高速缓存和写入-读取高速缓存的未完成命令队列的使用
KR20160022248A (ko) 데이터 액세스 장치 및 그것의 동작 방법
US8825946B2 (en) Memory system and data writing method
TW201627865A (zh) 用於記憶體陣列中之平均抹寫之方法及設備
US20140019738A1 (en) Multicore processor system and branch predicting method
US11663133B2 (en) Memory tiering using PCIe connected far memory
US20140281264A1 (en) Migration counters for hybrid memories in a unified virtual memory system
JP2015088121A (ja) メモリシステムおよび方法
JP2011186563A (ja) メモリ管理装置およびメモリ管理方法
JP2011186558A (ja) メモリ管理装置及び方法
US20190286347A1 (en) Management apparatus, information processing apparatus, management method, and computer program product
JP5382471B2 (ja) 電力制御方法、計算機システム、及びプログラム
Wu et al. NVSwap: Latency-Aware Paging using Non-Volatile Main Memory
서영덕 An Access-Pattern-Aware Page Placement Algorithm for the Hybrid Memory Architecture
KR20130033046A (ko) 비휘발성 메모리 저장장치에서 워크로드와 데이터 재사용 시간을 고려한 선택적 트림 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120809

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130912

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130917

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131205

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131212

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131219

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131226

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140109

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140116

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140204