JP6069031B2 - 計算機及びメモリ管理方法 - Google Patents

計算機及びメモリ管理方法 Download PDF

Info

Publication number
JP6069031B2
JP6069031B2 JP2013041601A JP2013041601A JP6069031B2 JP 6069031 B2 JP6069031 B2 JP 6069031B2 JP 2013041601 A JP2013041601 A JP 2013041601A JP 2013041601 A JP2013041601 A JP 2013041601A JP 6069031 B2 JP6069031 B2 JP 6069031B2
Authority
JP
Japan
Prior art keywords
data
memory
access
area
computer
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.)
Expired - Fee Related
Application number
JP2013041601A
Other languages
English (en)
Other versions
JP2014170360A (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2013041601A priority Critical patent/JP6069031B2/ja
Priority to US14/190,149 priority patent/US9317312B2/en
Publication of JP2014170360A publication Critical patent/JP2014170360A/ja
Application granted granted Critical
Publication of JP6069031B2 publication Critical patent/JP6069031B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、計算機の主記憶装置に関する。
従来の計算機システムは、特許文献1等に示されている。計算機システムの処理性能を向上させるために、メインメモリのワーキングセットに全てのデータが格納されていることが望ましい。しかし、メインメモリには容量に制限があるため、ワーキングセットに格納すべき全てのデータをメインメモリに格納できない。そのため、計算機は、一部のデータをストレージ装置に格納し、必要に応じてストレージ装置からデータを読み出す。したがって、ストレージ装置へのアクセス性能が計算機システムの処理性能のボトルネックとなっている。
これに対し、前述したボトルネックを改善するために方法が知られている。例えば、ストレージ装置の内部にDRAM又はFlashメモリを搭載し、キャッシング又はティアリングを行う方法がある(例えば、特許文献2の段落(0019)を参照)。また、近年登場してきたPCIeバスに接続可能なFlashメモリデバイスを用いて、性能を向上させる方法がある(例えば、特許文献3の段落(0029)を参照)。
特開平11−272605号公報 特開2008−27383号公報 米国特許出願公開第2010/0252931号明細書
しかし、PCIeバスに接続可能なFlashメモリデバイスにも容量の制限があるため、ワーキングセットに全てのデータを格納できない。そのため、高速なメインメモリを増設等して、ワーキングセットをメインメモリに常駐させる必要がある。また、PCIeバスの転送速度がボトルネックとなるという問題もある。
一方、ハードディスク装置の内部に搭載されるDRAM又はFlashメモリに、全てのワーキングセットを常駐させた場合、計算機とハードディスク装置とを接続するインタフェースであるFiber Channelのバンド幅がボトルネックになる。したがって、計算機の処理性能一定以上向上できないという問題がある。
これに対して、メインメモリの増設することによって、メインメモリに全てのワーキングセットを常駐させる方法が考えられる。しかし、メインメモリは、ハードディスク及びFlashメモリに比べて高価であるため、高コストなシステムになるという課題がある。また、メインメモリを増設すると消費電力も増大するという課題がある。
本発明の目的は、コスト及び消費電力を考慮して計算機システムの処理性能を向上させることである。
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、プロセッサ、前記プロセッサに接続されるメモリ、及び前記プロセッサに接続されるI/Oデバイスを備える計算機であって、前記計算機は、当該計算機の計算機リソースが割り当てられた仮想計算機を管理する仮想化管理部を備え、前記メモリは、第1のメモリ素子及び前記第1のメモリ素子とは特性の異なる第2のメモリ素子を有し、前記仮想化管理部を実行するプロセッサから出力されるメモリアクセスを制御するコントローラを有し、前記第2のメモリ素子によって提供されるメモリ領域は、データ格納領域及びデータ圧縮領域を含み、前記仮想化管理部は、前記仮想計算機の生成時に、前記仮想計算機が実行する処理に必要なデータを格納するワーキングセットを前記データ格納領域に設定し、前記ワーキングセットに格納されたデータのアクセス状況に基づいて、前記ワーキングセットに格納されるデータの一部を、前記データ圧縮領域に格納するように制御し、前記データ格納領域の空き容量が所定のしきい値より大きい場合に、前記データ圧縮領域の中から読み出す圧縮データを選択し、前記選択された圧縮データの前記データ格納領域への読み出しを要求するメモリアクセスを出力し、前記コントローラは、前記メモリアクセスに基づいて、前記データ圧縮領域から前記選択された圧縮データを読み出し、前記読み出された圧縮データを伸長し、前記伸長されたデータを前記データ格納領域に書き込むことを特徴とする。
本発明によれば、ワーキングセットを高速な帯域を有するメモリ領域に常駐させることによって、処理性能を向上させることができる。また、データのアクセス状況に応じてデータを圧縮領域に格納することによって、メモリ領域の容量を有効に活用できる。
本発明の実施例の計算機の構成例を示すブロック図である。 本発明の実施例における混載DIMMの構成例を示すブロック図である。 本発明の実施例におけるアドレス空間の一例を示す説明図である。 本発明の実施例におけるアドレス空間の一例を示す説明図である。 本発明の実施例におけるメモリ空間におけるソフトウェアの管理方法の一例を示す説明図である。 本発明の実施例における仮想的なアドレス空間と物理的なアドレス空間との対応関係を示す説明図である。 本発明の実施例におけるハイパバイザが仮想計算機を生成時に実行する処理を説明するフローチャートである。 本発明の実施例における監視記憶領域の監視処理を説明するフローチャートである。 本発明の実施例におけるハイパバイザがメモリアクセスを受け付けた場合に実行する処理を説明するフローチャートである。 本発明の実施例における混載DIMMが実行するアクセス処理を説明するフローチャートである。 本発明の実施例における混載DIMMが実行するアクセス処理を説明するフローチャートである。 本発明の実施例におけるメモリアクセス及びI/Oアクセスを示すスタック図である。
以下、図面を用いて本発明の実施例について説明する。なお、同一の構成及び情報には同一の符号を付すものとする。
図1は、本発明の実施例の計算機の構成例を示すブロック図である。図1では、一つの計算機のみを図示しているが、本発明は複数の計算機から構成される計算機システムにおいても同様の効果を奏する。
計算機100は、プロセッサ110、DIMM120、混載DIMM130、I/Oスイッチ140、NIC150、及びHBA160を備える。
プロセッサ110は、DIMM120又は混載DIMM130に格納されるプログラムを実行する。プロセッサ110がプログラムを実行することによって所定の機能が実現される。プロセッサ110は、プロセッサコア111、メモリインタフェース112、及びI/Oインタフェース113を備える。
プロセッサコア111は、演算処理を実行する。メモリインタフェース112は、メモリへのアクセスを制御する。I/Oインタフェース113は、I/Oデバイスへのアクセスを制御する。
DIMM120及び混載DIMM130は、プロセッサ110が実行するプログラム及び当該プログラムの実行時に必要な情報を格納するメモリである。プロセッサ110は、メモリインタフェースバス125を介して、DIMM120及び混載DIMM130と接続する。具体的には、メモリインタフェース112が、メモリインタフェースバス125を介して、DIMM120及び混載DIMM130に対するデータの読出処理、及び、書込処理を制御する。
本発明では、メモリとして混載DIMM130を含む点に特徴がある。混載DIMM130は、DRAMチップ260(図2参照)及びFlashメモリチップ280(図2参照)を備えるメモリである。混載DIMM130の詳細については、図2を用いて後述する。
I/Oスイッチ140は、I/Oデバイスを接続するためのスイッチである。本実施例の計算機100は、I/OデバイスとしてNIC150、及びHBA160を備える。NIC150は、IPネットワーク170を介して外部の装置と接続するためのインタフェースである。HBA160は、SAN175を介して外部の装置と接続するためのインタフェースである。
図2は、本発明の実施例における混載DIMM130の構成例を示すブロック図である。
混載DIMM130は、コントローラ200、DRAM実装部250、及びFlashメモリ実装部270を備える。
DRAM実装部250は、複数のDRAMチップ260を有する。Flashメモリ実装部270は、複数のFlashメモリチップ280を有する。
コントローラ200は、メモリインタフェースバス125を介して、混載DIMM130に対するアクセスを制御する。コントローラ200は、DRAMインタフェース210、制御部220、DRAMチップインタフェース230、及びFlashメモリチップインタフェース240を含む。なお、コントローラ200には、図示しないバッファも含まれる。
DRAMインタフェース210、制御部220、及びDRAMチップインタフェース230は、内部バス235を介して互いに接続される。また、DRAMインタフェース210、制御部220、及びFlashメモリチップインタフェース240は、内部バス245を介して互いに接続される。
DRAMインタフェース210は、メモリインタフェースバス125を介したアクセスを受け付けるインタフェースであり、アドレスレジスタ211を含む。アドレスレジスタ211は、メモリアドレスをラッチするためのレジスタである。なお、アドレスレジスタ211は、DRAMインタフェース210の外部にあってもよい。
制御部220は、混載DIMM130に対するアクセスを制御する。制御部220は、DMAコントローラ221、圧縮/伸長部222、インテリジェント制御部223、及び管理テーブル224を含む。
DMAコントローラ221は、DMA転送を制御する。圧縮/伸長部222は、データの圧縮し、又は、伸長する。インテリジェント制御部223は、DRAM実装部250及びFlashメモリ実装部270に対するデータの読出処理、及びデータの書込処理を制御する。
管理テーブル224は、インテリジェント制御部223が実行する制御処理に必要な情報を格納する。管理テーブル224には、例えば、後述する物理アドレス空間300におけるDRAM実装領域350及びFlashメモリ実装領域360のアドレスを管理するテーブルが含まれる。
DRAMチップインタフェース230は、DRAM実装部250の各DRAMチップ260へのアクセスを制御する。DRAMチップインタフェース230は、DRAMバス261を介して、各DRAMチップ260と接続する。
DRAMチップインタフェース230は、アドレスデコード231及びアクセス制御部232を含む。アドレスデコード231は、アドレスからアクセス対象のDRAMチップ260を特定し、特定されたDRAMチップ260にチップセレクト信号262を出力する。アクセス制御部232は、DRAMチップ260に対するアクセスを制御する。
Flashメモリチップインタフェース240は、Flashメモリ実装部270の各Flashメモリチップ280へのアクセスを制御する。Flashメモリチップインタフェース240は、Flashメモリバス281を介して、各Flashメモリチップ280と接続する。
Flashメモリチップインタフェース240は、アドレスデコード241及びアクセス制御部242を含む。アドレスデコード241は、アドレスからアクセス対象のFlashメモリチップ280を特定し、特定されたFlashメモリチップ280にチップセレクト信号282を出力する。アクセス制御部242は、Flashメモリチップ280に対するアクセスを制御する。
なお、混載DIMM130は、図示しないSPD(Serial Presence Detect)も備える。SPDには、混載DIMM130の種類、容量、及び動作周波数等の情報が格納される。本実施例では、SPDには、DRAM実装部250における記憶容量と、Flashメモリ実装部270における記憶容量に関する情報が格納される。
図3A及び図3Bは、本発明の実施例におけるアドレス空間の一例を示す説明図である。
物理アドレス空間300は、メモリ空間310及びI/O空間320を含む。メモリ空間310は、メモリへのアクセス時に用いられるアドレス空間である。メモリ空間310は、DIMM120のDIMM実装領域330、及び混載DIMM130のDIMM実装領域340を含む。DIMM実装領域340は、さらに、DRAM実装領域350及びFlashメモリ実装領域360を含む。
なお、メモリ空間310には、計算機100に追加されるDIMMに割り当てるためのDIMM未実装領域も含まれる。
I/O空間320は、I/Oデバイスへのアクセス時に用いられるアドレス空間である。I/O空間320には、I/Oデバイス実装領域及びI/Oデバイス未実装領域を含む。I/Oデバイス実装領域は、計算機100が備えるI/Oデバイスを操作するためのレジスタ等の情報が格納される領域である。I/Oデバイス未実装領域は、計算機100に追加されるI/Oデバイスに割り当てられる領域である。
後述するようにFlashメモリ実装領域360は、仮想アドレス空間500(図5参照)では、I/O空間520にマップされる。この場合、I/O空間520がFlashメモリ実装領域360より大きいため、一対一にマップすることができない。したがって、図3Bに示すようにFlashメモリ実装領域360はバンクアクセス方式で管理することが望ましい。
本実施例のFlashメモリ実装領域360は、バンクセレクトレジスタ、情報レジスタ、及び複数のバンクから構成される。
バンクセレクトレジスタは、バンクの識別情報を格納する領域である。情報レジスタは、各バンクにおける制御情報を格納する領域である。例えば、ページ毎のアクセス時間等が格納される。
バンクは、Flashメモリ実装部270の管理単位であり、例えば、一つのFlashメモリチップ280に対して一つのバンクが対応づけられる。本実施例では、通常のデータを格納するバンクと、圧縮されたデータを格納するバンクとを含む。図3Bに示す例では、バンクkには、バンク0からバンク2に格納されるデータを圧縮したデータが格納される。
以下の説明では、通常のデータを格納するバンクをFlashメモリ使用領域と記載し、圧縮データを格納するバンクをFlashメモリ圧縮領域と記載する。
図4は、本発明の実施例におけるメモリ空間310におけるソフトウェアの管理方法の一例を示す説明図である。
本実施例では、ハイパバイザ400によってメモリ空間におけるアドレスの割当が管理される。
図4に示す例では、ハイパバイザ400は、自分自身の記憶領域として、一つのDIMM実装領域330を割り当て、一つの仮想計算機410に一つのDIMM実装領域340を割り当てる。なお、ハイパバイザ400は、仮想計算機410に仮想アドレス空間500(図5参照)を割り当てる。
なお、図4に示すメモリ空間の割当方法は一例であって、複数のDIMM実装領域330、又は複数のDIMM実装領域340を一つの仮想計算機410に割り当てられてもよい。また、一つ以上のDIMM実装領域330及び一つ以上のDIMM実装領域340を一つの仮想計算機410に割り当ててもよい。
ハイパバイザ400に割り当てられたDIMM実装領域330には、アドレス変換部401を実現するプログラム及びアドレス変換テーブル402が格納される。アドレス変換部401は、仮想アドレス空間と物理アドレス空間との間のアドレスを変換する。アドレス変換テーブル402は、仮想アドレス空間と物理アドレス空間との対応関係を格納する。
仮想計算機410に割り当てられたDIMM実装領域340には、OS411及びアプリケーション412を実現するためのプログラムが格納される。また、DIMM実装領域340には、アプリケーション412が使用するワーキングセットが含まれる。
図5は、本発明の実施例における仮想的なアドレス空間と物理的なアドレス空間との対応関係を示す説明図である。
本実施例では、DIMM実装領域340のDRAM実装領域350は、仮想アドレス空間500のメモリ空間510にマップされ、Flashメモリ実装領域360は、仮想アドレス空間500のI/O空間520にマップされる。具体的には、Flashメモリ実装領域360は、高速I/Oデバイス実装領域530にマップされる。
すなわち、ハイパバイザ400は、仮想的なストレージ装置として混載DIMM130のFlashメモリ実装部270を割り当てる。
これによって、仮想計算機410上で稼働するOS411は、仮想的なストレージ装置によって提供される記憶領域としてFlashメモリ実装領域360を利用することができる。すなわち、既存のOS411に対して混載DIMM130の構成を隠蔽できるため、既存のOS411の設定を変更することなく混載DIMM130を導入することができる。
アドレス変換部401は、アドレス変換テーブル402に基づいて、メモリ空間510の所定のアドレスに対するアクセスを、DRAM実装領域350の所定のアドレスに対するアクセスに変換する。また、アドレス変換部401は、アドレス変換テーブル402に基づいて、高速I/Oデバイス実装領域530の所定のアドレスに対するアクセスを、Flashメモリ実装領域360の所定のアドレスに対するアクセスに変換する。さらに、アドレス変換部401は、アドレス変換テーブル402に基づいて、高速I/Oデバイス実装領域530以外のI/Oデバイス実装領域の所定のアドレスに対するアクセスを、I/O空間320の所定のアドレスに対するアクセスに変換する。
図6は、本発明の実施例におけるハイパバイザ400が仮想計算機を生成時に実行する処理を説明するフローチャートである。
ハイパバイザ400は、仮想計算機410の生成要求を受信した場合に処理を開始する。
ハイパバイザ400は、仮想計算機410を起動する(ステップS601)。具体的には以下のような処理が実行される。
ハイパバイザ400は、プロセッサ110、DIMM120、混載DIMM130、及びI/Oデバイス等の計算機リソースを仮想計算機410に割り当てることによって、仮想計算機410を生成する。本実施例では、仮想計算機410に、少なくとも一つ以上の混載DIMM130が割り当てられる。
このとき、ハイパバイザ400は、混載DIMM130のDRAM実装領域350を仮想メモリとして割り当て、混載DIMM130のFlashメモリ実装領域360を仮想ディスクとして割り当てる。前述した処理によって、図5に示すような仮想アドレス空間500が割り当てられる。
ハイパバイザ400は、高速I/Oデバイス実装領域530とFlashメモリ実装領域360との対応関係をアドレス変換テーブル402に登録する。また、ハイパバイザ400は、Flashメモリ実装領域360に仮想計算機410のワーキングセットに割り当てる記憶領域を設定する。
ハイパバイザ400は、DRAM実装領域350及びFlashメモリ使用領域を監視する。また、ハイパバイザ400は、当該対象の記憶領域における空き容量の上限値及び下限値を設定する。以下の説明では、DRAM実装領域350及びFlashメモリ使用領域を監視記憶領域とも記載する。
ハイパバイザ400は、後述するようにワーキングセットへのアクセス時にメモリインタフェースバス125を介してFlashメモリ実装領域360にアクセスするため、ワーキングセットへの高速なアクセスが可能となる。これによって、仮想計算機410上で稼働するアプリケーション412のスループットを向上させることができる。
また、Flashメモリ実装領域360は、大容量化が可能であるため、外部ストレージ等へのワーキングセットのスワップを回避することができる。
その他の計算機リソースの割当方法は公知の技術を用いればよいため説明を省略する。
以上がステップS601の処理である。
ステップS601の処理完了後、生成された仮想計算機410上では、OS411及びアプリケーション412が稼働する。なお、アプリケーション412が仮想メモリ又は仮想ディスクにアクセスする場合に実行される処理については、図8、図9A、及び図9Bを用いて後述する。
次に、ハイパバイザ400は、監視記憶領域の監視処理を実行する(ステップS602)。監視記憶領域の監視処理の詳細については、図7を用いて後述する。
監視処理の開始タイミングとしては、周期的、又は、仮想メモリ又は仮想ディスクへのアクセスが検知された時に実行する方法が考えられる。
ハイパバイザ400は、アプリケーション412の終了、又は、仮想計算機410が削除されるまで繰り返し監視処理を実行する。
図7は、本発明の実施例における監視記憶領域の監視処理を説明するフローチャートである。
ハイパバイザ400は、監視記憶領域の空き容量が不足しているか否かを判定する(ステップS701)。
具体的には、ハイパバイザ400は、監視記憶領域の空き容量が下限値より小さいか否かを判定する。監視記憶領域の空き容量が下限値より小さい場合、ハイパバイザ400は、監視記憶領域の空き容量が不足していると判定する。
監視記憶領域の空き容量に関する情報は、公知の技術を用いることによって取得すればよい。例えば、ハイパバイザ400が保持する計算機リソースの割当管理情報等から取得することができる。なお、本発明は、前述した方法に限定されない。
監視記憶領域の空き容量が不足していないと判定された場合、ハイパバイザ400は、監視記憶領域の空き容量に余裕があるか否かを判定する(ステップS702)。
具体的には、ハイパバイザ400は、監視記憶領域の空き容量が上限値より大きいか否かを判定する。監視記憶領域の空き容量が上限値より大きい場合、ハイパバイザ400は、監視記憶領域の空き容量に余裕があると判定する。
監視記憶領域の空き容量に余裕がない、すなわち、圧縮データを伸長するための容量が確保できないと判定された場合、ハイパバイザ400は、ステップS701に戻り同様の処理を実行する。
監視記憶領域の空き容量に余裕があると判定された場合、ハイパバイザ400は、Flashメモリ圧縮領域に圧縮データが格納されているか否かを判定する(ステップS703)。
具体的には、ハイパバイザ400は、仮想計算機に割り当てられたFlashメモリ実装領域360のFlashメモリ圧縮領域を参照することによって、圧縮データが格納されているか否かを判定する。
Flashメモリ圧縮領域に圧縮データが格納されていないと判定された場合、ハイパバイザ400は、ステップS701に戻り同様の処理を実行する。
Flashメモリ圧縮領域に圧縮データが格納されていると判定された場合、ハイパバイザ400は、Flashメモリ圧縮領域からFlashメモリ使用領域への圧縮データの読み出しを要求するメモリアクセスを出力する(ステップS704)。その後、ハイパバイザ400は、ステップS702に戻り同様の処理を実行する。以下の説明では、ステップS704において出力されるメモリアクセスを第1の特殊メモリアクセスとも記載する。
ステップS704では、以下のような処理が実行される。
ハイパバイザ400は、Flashメモリ圧縮領域から圧縮データを読み出すバンクを選択する。例えば、アクセス日時が新しい圧縮データが格納されるバンク、又は、アクセス頻度が高い圧縮データが格納されるバンクを選択する方法が考えられる。
ハイパバイザ400は、圧縮データを格納するFlashメモリ使用領域のバンクを選択する。例えば、圧縮データを読み出すバンクのアドレスと近いアドレスのバンクを選択する方法が考えられる。
ハイパバイザ400は、圧縮データを読み出すバンクのアドレス、及び格納先のバンクのアドレスを含む第1の特殊メモリアクセスを出力する。
以上がステップS704の処理である。
なお、第1の特殊メモリアクセスを受け付けた混載DIMM130が実行する処理については、図9A及び図9Bを用いて後述する。
ステップS701において、監視記憶領域の空き容量が不足していると判定された場合、ハイパバイザ400は、Flashメモリ圧縮領域に圧縮データを格納できるか否かを判定する(ステップS705)。
具体的には、ハイパバイザ400は、Flashメモリ圧縮領域の空き容量を確認し、圧縮データを保存するための容量を確保できるか否かを判定する。
Flashメモリ圧縮領域に圧縮データを格納できると判定された場合、ハイパバイザ400は、Flashメモリ使用領域からFlashメモリ圧縮領域へのデータの書き込みを要求するメモリアクセスを出力する(ステップS706)。その後、ハイパバイザ400は、ステップS707に進む。以下の説明では、ステップS706において出力されるメモリアクセスを第2の特殊メモリアクセスとも記載する。
ステップS706では、以下のような処理が実行される。
ハイパバイザ400は、Flashメモリ使用領域の情報レジスタを参照し、各バンクにおけるアクセス時間を確認する。ハイパバイザ400は、アクセス時間が古い順にバンクを選択する。なお、本発明は選択されるバンクの数に限定されない。例えば、予め、選択するバンクの数を設定してもよいし、下限値以上となるようにバンクの数を選択してもよい。
ハイパバイザ400は、Flashメモリ圧縮領域におけるバンクを選択する。例えば、圧縮対象のデータが格納されるバンクのアドレスと近いアドレスのバンクを選択する方法が考えられる。
ハイパバイザ400は、圧縮対象のデータを格納するバンクのアドレス、及び格納先のバンクのアドレスを含む第2の特殊メモリアクセスを出力する。
以上がステップS706の処理である。
なお、第2の特殊メモリアクセスを受け付けた混載DIMM130が実行する処理については、図9A及び図9Bを用いて後述する。
次に、ハイパバイザ400は、仮想計算機410における処理が完了したか否かを判定する(ステップS707)。例えば、ハイパバイザ400は、アプリケーション412の処理が完了したか否かを判定する。
仮想計算機410における処理が完了したと判定された場合、ハイパバイザ400は、処理を終了する。
仮想計算機410における処理が完了していないと判定された場合、ハイパバイザ400は、ステップS701に戻り同様の処理を実行する。
ステップS705において、Flashメモリ圧縮領域に圧縮データを格納できないと判定された場合、ハイパバイザ400は、I/Oスイッチ140を介して接続されるストレージ装置に、Flashメモリ使用領域に格納されるデータ、すなわち、ワーキングセットに格納されるデータの一部を退避する(ステップS708)。その後、ハイパバイザ400は、ステップS701に戻り同様の処理を実行する。
本実施例では、ハイパバイザ400は、以下のような処理を実行することによって退避対象のデータを選択する。ハイパバイザ400は、Flashメモリ使用領域の情報レジスタを参照し、各バンクにおけるアクセス時間を確認する。ハイパバイザ400は、アクセス時間が古い順にバンクを選択する。なお、本発明は選択されるバンクの数に限定されない。例えば、予め、選択するバンクの数を設定してもよいし、下限値以上となるようにバンクの数を選択してもよい。
選択されたデータをストレージ装置に退避する処理は公知の技術を用いればよいため詳細な説明を省略する。
次に、メモリアクセスの処理について説明する。
図8は、本発明の実施例におけるハイパバイザ400がメモリアクセスを受け付けた場合に実行する処理を説明するフローチャートである。
ハイパバイザ400は、仮想計算機410上のOS411からメモリアクセスを受け付けると処理を開始する(ステップS801)。
ハイパバイザ400は、メモリアクセスのアクセス対象が仮想アドレス空間500のメモリ空間510であるか否かを判定する(ステップS802)。
具体的には、ハイパバイザ400は、アクセス先のアドレスがメモリ空間510に割り当てられたアドレス範囲に含まれるか否かを判定する。
アクセス対象がメモリ空間510であると判定された場合、ハイパバイザ400は、ハイパバイザ400は、アドレス変換テーブル402を用いて物理アドレス空間300のDRAM実装領域350のアドレスに変換する(ステップS803)。さらに、ハイパバイザ400は、混載DIMM130のDRAM実装部250へのメモリアクセスを実行し(ステップS804)、処理を終了する。
ステップS802においてアクセス対象がメモリ空間510でないと判定された場合、ハイパバイザ400は、メモリアクセスのアクセス対象が高速I/Oデバイス実装領域530であるか否かを判定する(ステップS805)。
具体的には、ハイパバイザ400は、アクセス先のアドレスが高速I/Oデバイス実装領域530に割り当てられたアドレス範囲に含まれるか否かを判定する。
アクセス対象が高速I/Oデバイス実装領域530であると判定された場合、ハイパバイザ400は、アドレス変換テーブル402を用いて物理アドレス空間300のFlashメモリ実装領域360のアドレスに変換する(ステップS806)。さらに、ハイパバイザ400は、混載DIMM130のFlashメモリ実装部270へのメモリアクセスを実行し(ステップS807)、処理を終了する。
ステップS805においてアクセス対象が高速I/Oデバイス実装領域530でないと判定された場合、ハイパバイザ400は、アドレス変換テーブル402を用いて物理アドレス空間300のI/Oデバイス実装領域のアドレスに変換する(ステップS808)。さらに、ハイパバイザ400は、I/Oデバイスへのアクセスを実行し(ステップS809)、処理を終了する。
図9A及び図9Bは、本発明の実施例における混載DIMM130が実行するアクセス処理を説明するフローチャートである。
混載DIMM130は、メモリアクセスを受け付けると処理を開始する(ステップ901)。具体的には、DRAMインタフェース210がメモリアクセスを受け付ける。
混載DIMM130は、受け付けたメモリアクセスが通常のメモリアクセスであるか否かを判定する(ステップS902)。
ここで、通常のメモリアクセスとは、Flashメモリ使用領域への圧縮データの読み出し要求するメモリアクセス、又はFlashメモリ圧縮領域へのデータの書き込みを要求するメモリアクセス以外のアクセスを示す。
具体的には、制御部220がメモリアクセスに二つのアドレスが含まれるか否かを判定する。本実施例では、前述した二つのメモリアクセスには二つのアドレスが含まれるためである。なお、本発明はこれに限定されず、例えば、メモリアクセスに通常のメモリアクセスであることを識別できるフラグ等を含める方法等であってもよい。
通常のメモリアクセスであると判定された場合、混載DIMM130は、アクセス先がDRAM実装領域350であるか否かを判定する(ステップS903)。
具体的には、制御部220が、管理テーブル224及び受け付けたメモリアクセスに含まれるアドレスに基づいて、アクセス先のアドレスがDRAM実装領域350のアドレス範囲に含まれるか否かを判定する。
アクセス先がDRAM実装領域350であると判定された場合、混載DIMM130は、DRAMバス261を介して所定のDRAMチップ260にアクセスし、プロセッサ110にアクセス結果を応答し、処理を終了する(ステップS904)。
具体的には、DRAMチップインタフェース230がメモリアクセスに含まれるアドレスに基づいて、所定のDRAMチップ260にアクセスする。DRAMチップ260へのアクセス制御は公知の技術を用いればよいため説明を省略する。
アクセス先がDRAM実装領域350でない、すなわち、アクセス先がFlashメモリ実装領域360であると判定された場合、混載DIMM130は、Flashメモリバス281を介してFlashメモリチップにアクセスし、プロセッサ110にアクセス結果を応答し、処理を終了する(ステップS905)。例えば、以下のような処理が実行される。
メモリアクセスがFlashメモリ実装領域360へのデータ書込要求である場合、制御部220のインテリジェント制御部223が、コントローラ200内部のバッファにデータを書き込み、プロセッサ110に書き込みの終了を応答する。その後、インテリジェント制御部223がFlashメモリチップインタフェース240に、バッファに書き込まれたデータの書き込み命令を発行する。Flashメモリチップインタフェース240は、当該命令に基づいてFlashメモリチップ280を特定し、特定されたFlashメモリチップ280にバッファに格納されたデータを書き込む。
メモリアクセスがFlashメモリ実装領域360からのデータ読出要求である場合、制御部220のインテリジェント制御部223が、Flashメモリチップインタフェース240のデータの読み出し命令を発効する。Flashメモリチップインタフェース240は、当該命令に基づいてFlashメモリチップ280を特定し、特定されたFlashメモリチップ280からデータを読み出す。インテリジェント制御部223は、読み出されたデータをバッファに格納し、所定のデータサイズになった場合にバッファに格納されたデータをプロセッサ110に応答する。
本実施例では、データの書き込み単位、及びデータの読み出し単位は、ページ単位であるものとする。ただし、本発明はこれに限定されない。
以上がステップS905における処理の一例である。
ステップS902において、通常のメモリアクセスでないと判定された場合、混載DIMM130は、受け付けたメモリアクセスが第1の特殊メモリアクセスであるか否かを判定する(ステップS906)。
受け付けたメモリアクセスが第1の特殊メモリアクセスであると判定された場合、混載DIMM130は、Flashメモリ圧縮領域に格納される圧縮データを伸長し(ステップS907)、Flashメモリ使用領域に伸長されたデータを書き込む(ステップS908)。その後、混載DIMM130は処理を終了する。
ステップS907及びステップS908では、例えば、以下のような処理が実行される。
制御部220は、第1の特殊メモリアクセスに基づいて、Flashメモリチップインタフェース240に、指定されたFlashメモリ圧縮領域に格納される圧縮データの読み出し命令を発行する。Flashメモリチップインタフェース240は、当該命令に基づいて、Flashメモリ圧縮領域に対応するFlashメモリチップ280を特定し、特定されたFlashメモリチップ280から圧縮データを読み出す。
制御部220は、読み出された圧縮データをバッファに格納し、制御部220の圧縮/伸長部222が、バッファに格納される圧縮データを伸長し、伸長されたデータをバッファに格納する。
制御部220は、第1の特殊メモリアクセスに基づいて、Flashメモリチップインタフェース240に伸長されたデータの書き込み命令を発効する。Flashメモリチップインタフェース240は、当該命令に基づいてFlashメモリ使用領域に対応するFlashメモリチップ280を特定し、特定されたFlashメモリチップ280に伸長されたデータを書き込む。
本実施例では、制御部220は、Flashメモリ圧縮領域からページ単位に圧縮データを読み出し、ページ単位に圧縮データを伸長するものとする。ただし、本発明はこれに限定されない。
以上がステップS907及びステップS908における処理の一例である。
ステップS906において、受け付けたメモリアクセスが第1の特殊メモリアクセスでない、すなわち、第2の特殊メモリアクセスであると判定された場合、混載DIMM130は、指定されたFlashメモリ使用領域に格納されるデータを圧縮し(ステップS909)、Flashメモリ圧縮領域に圧縮されたデータを書き込む(ステップS910)。その後、混載DIMM130は処理を終了する。
ステップS909及びステップS910では、例えば、以下のような処理が実行される。
制御部220は、第2の特殊メモリアクセスに基づいて、Flashメモリチップインタフェース240に、指定されたFlashメモリ使用領域に格納されるデータの読み出し命令を発効する。Flashメモリチップインタフェース240は、当該命令に基づいて、Flashメモリ使用領域に対応するFlashメモリチップ280を特定し、特定されたFlashメモリチップ280からデータを読み出す。
制御部220は、読み出されたデータをバッファに格納し、制御部220の圧縮/伸長部222が、バッファに格納されるデータを圧縮し、圧縮データをバッファに格納する。なお、本発明は、データの圧縮方法に限定されない。
制御部220は、第2の特殊メモリアクセスに基づいて、Flashメモリチップインタフェース240に圧縮データの書き込み命令を発効する。Flashメモリチップインタフェース240は、当該命令に基づいてFlashメモリ圧縮領域に対応するFlashメモリチップ280を特定し、特定されたFlashメモリチップ280に圧縮されたデータを書き込む。
本実施例では、制御部220は、Flashメモリ使用領域からページ単位にデータを読み出し、ページ単位にデータを圧縮するものとする。ただし、本発明はこれに限定されない。
図10は、本発明の実施例におけるメモリアクセス及びI/Oアクセスを示すスタック図である。
本実施例におけるメモリアクセス及びI/Oアクセスの経路は、図10に示すような経路となる。
OS411とDRAM実装領域350との間のメモリアクセスの経路1001は、従来の経路と同一である。すなわち、アプリケーション412がメモリへのアクセスを要求した場合、OS411、ハイパバイザ400を介して、メモリインタフェース112が起動され、混載DIMM130のDRAM実装部250にアクセスされる。
また、OS411とI/Oデバイスとの間のI/Oアクセスの経路1003は、従来の経路と同一である。すなわち、アプリケーション412がI/Oデバイスへのアクセスを要求した場合、OS411、ハイパバイザ400を介して、I/Oインタフェース113が起動され、I/Oスイッチ140を介してNIC150等のI/Oデバイスが操作される。
本実施例では、経路1002に特徴がある。
OS411は、図5に示すように、Flashメモリ実装領域360を高速I/Oデバイス実装領域530として認識している。したがって、アプリケーション412は、高速I/Oデバイス実装領域530へのアクセスする場合、I/O空間520へのアクセスが出力される。当該アクセスは、OS411を経由してハイパバイザ400が受け付ける。
ハイパバイザ400は、当該アクセスをメモリ空間310へのアクセスに変換することによって、メモリインタフェース112が起動され、混載DIMM130のFlashメモリ実装部270にアクセスされる。
本発明によれば、Flashメモリを搭載する混載DIMMを用いることによって、高速アクセスが可能なメモリ領域にワーキングセットを常駐させることができる。また、ハイパバイザ400がI/O空間としてFlashメモリの記憶領域を提供することによって、特殊なハードウェア構成を隠蔽できる。これによって、以下のような効果が奏される。
混載DIMM130は、Flashメモリを有するためワーキングセットに全てのデータを格納することができる。このため、大量のメモリを増設する必要がないため計算機システムのコストを削減することができ、また、消費電力を削減することができる。
メインメモリとストレージ装置との間のアクセスについては、特許文献2に記載された発明ではFiber Channelのバンド幅がボトルネックとなっており、特許文献3に記載の発明ではPCIeバスの転送速度がボトルネックとなっていた。しかし、本発明では、高速なメモリインタフェースを用いてFlashメモリにアクセスするため、計算機システムの処理性能を向上させることができる。
本発明の構成によって、既存のOS、及びアプリケーション等の改変をすることなく混載DIMM130を利用することができる。
Flashメモリの記憶領域は、データのアクセス状況に応じて、データを圧縮又は伸長することによってワーキングセットが常駐可能なメモリ領域を確保することができる。これによって、計算機システムの処理性能の低下を抑止することができる。さらに、Flashメモリの記憶領域を有効に活用できるため、不要なDIMMの追加等を削減することができる。
さらに、Flashメモリのワーキングセットに全てのデータを格納できるため、ページフォールトの発生を抑止できる。これによって、計算機システム全体としての消費電力を低減することができる。また、ワーキングセットに格納できないデータを退避するための外部ストレージを必要としないため、計算機システムの規模を小さくできる。したがって、低コストかつ低消費電力の計算機システムを実現することができる。
また、Flashメモリ使用領域及びFlashメモリ圧縮領域は、同一の混載DIMM130内にあるため、ハイパバイザ400の処理を実行するプロセッサ110は、一回のメモリアクセスを出力することによって、仮想計算機410の記憶容量を操作することができる。これによって、プロセッサ110の処理負荷を低減することができるため、計算機100の消費電力を低減することができる。
また、メモリインタフェースを用いたメモリアクセスによって、計算機システムの処理性能が向上するため、データの読み出し、又はデータの書き込み時の待ち時間を低減することができる。これによって、仮想計算機に割り当てられた計算機リソースを有効に活用できるため、計算機システム全体として消費電力を低減することができる。
以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。
100 計算機
110 プロセッサ
111 プロセッサコア
112 メモリインタフェース
113 I/Oインタフェース
120 DIMM
125 メモリインタフェースバス
130 混載DIMM
140 I/Oスイッチ
150 NIC
160 HBA
170 IPネットワーク
175 SAN
200 コントローラ
210 DRAMインタフェース
211 アドレスレジスタ
220 制御部
221 DMAコントローラ
222 圧縮/伸長部
223 インテリジェント制御部
224 管理テーブル
230 DRAMチップインタフェース
231 アドレスデコード
232 アクセス制御部
235 内部バス
240 Flashメモリチップインタフェース
241 アドレスデコード
242 アクセス制御部
245 内部バス
250 DRAM実装部
260 DRAMチップ
261 DRAMバス
262 チップセレクト信号
270 Flashメモリ実装部
280 Flashメモリチップ
281 Flashメモリバス
282 チップセレクト信号
300 物理アドレス空間
310 メモリ空間
320 I/O空間
330 DIMM実装領域
340 DIMM実装領域
350 DRAM実装領域
360 Flashメモリ実装領域
400 ハイパバイザ
401 アドレス変換部
402 アドレス変換テーブル
410 仮想計算機
411 OS
412 アプリケーション
500 仮想アドレス空間
510 メモリ空間
520 I/O空間
530 高速I/Oデバイス実装領域

Claims (6)

  1. プロセッサ、前記プロセッサに接続されるメモリ、及び前記プロセッサに接続されるI/Oデバイスを備える計算機であって、
    前記計算機は、当該計算機の計算機リソースが割り当てられた仮想計算機を管理する仮想化管理部を備え、
    前記メモリは
    第1のメモリ素子及び前記第1のメモリ素子とは特性の異なる第2のメモリ素子を有し、
    前記仮想化管理部を実行するプロセッサから出力されるメモリアクセスを制御するコントローラを有し、
    前記第2のメモリ素子によって提供されるメモリ領域は、データ格納領域及びデータ圧縮領域を含み、
    前記仮想化管理部は、
    前記仮想計算機の生成時に、前記仮想計算機が実行する処理に必要なデータを格納するワーキングセットを前記データ格納領域に設定し、
    前記ワーキングセットに格納されたデータのアクセス状況に基づいて、前記ワーキングセットに格納されるデータの一部を、前記データ圧縮領域に格納するように制御し、
    前記データ格納領域の空き容量が所定のしきい値より大きい場合に、前記データ圧縮領域の中から読み出す圧縮データを選択し、
    前記選択された圧縮データの前記データ格納領域への読み出しを要求するメモリアクセスを出力し、
    前記コントローラは、
    前記メモリアクセスに基づいて、前記データ圧縮領域から前記選択された圧縮データを読み出し、
    前記読み出された圧縮データを伸長し、
    前記伸長されたデータを前記データ格納領域に書き込むことを特徴とする計算機。
  2. 請求項1に記載の計算機であって、
    前記第1のメモリ素子は揮発メモリ素子であり、前記第2のメモリ素子は不揮発性メモリ素子であり
    前記仮想化管理部は、
    前記データ格納領域の使用量を監視し、
    前記データ格納領域の使用量が所定のしきい値より大きい場合に、前記ワーキングセットに格納されるデータのうち、アクセスされた時間が最も古いデータ又はアクセス頻度が最も低いデータを選択し、
    前記選択されたデータの前記データ圧縮領域への書き込みを要求するメモリアクセスを出力し、
    前記コントローラは、
    前記メモリアクセスに基づいて、前記データ格納領域から前記選択されたデータを読み出し、
    前記選択されたデータを圧縮し、
    前記圧縮されたデータを圧縮データとして前記データ圧縮領域に書き込むことを特徴とする計算機。
  3. 請求項2に記載の計算機であって、
    前記仮想計算機上では、オペレーティングシステムが稼働し、
    前記仮想化管理部は、
    前記第2のメモリ素子を、仮想的なストレージ装置として割り当て、
    前記仮想的なストレージ装置へのI/Oアクセスを、前記第2のメモリ素子へのメモリアクセスに変換するための変換情報を生成し、
    前記オペレーティングシステムから前記仮想的なストレージ装置へのI/Oアクセスを受け付けた場合に、前記変換情報に基づいて前記第2のメモリ素子へのメモリアクセスに変換し、
    前記メモリに対して前記変換されたメモリアクセスを出力することを特徴とする計算機。
  4. プロセッサ、前記プロセッサに接続されるメモリ、及び前記プロセッサに接続されるI/Oデバイスを備える計算機におけるメモリ管理方法であって、
    前記計算機は、当該計算機の計算機リソースが割り当てられた仮想計算機を管理する仮想化管理部を備え、
    前記メモリは、
    第1のメモリ素子及び前記第1のメモリ素子とは特性の異なる第2のメモリ素子を有し、
    前記仮想化管理部を実行するプロセッサから出力されるメモリアクセスを制御するコントローラを有し、
    前記第2のメモリ素子によって提供されるメモリ領域は、データ格納領域及びデータ圧縮領域を含み、
    前記方法は、
    前記仮想化管理部が、前記仮想計算機の生成時に、前記仮想計算機が実行する処理に必要なデータを格納するワーキングセットを前記データ格納領域に設定する第1のステップと、
    前記仮想化管理部が、前記ワーキングセットに格納されたデータのアクセス状況に基づいて、前記ワーキングセットに格納されるデータの一部を、前記データ圧縮領域に格納するように制御する第2のステップと、
    前記仮想化管理部が、前記データ格納領域の空き容量が所定のしきい値より大きい場合に、前記データ圧縮領域の中から読み出す圧縮データを選択する第3のステップと、
    前記仮想化管理部が、前記選択された圧縮データの前記データ格納領域への読み出しを要求するメモリアクセスを出力する第4のステップと、
    前記コントローラが、前記メモリアクセスに基づいて、前記データ圧縮領域から前記選択された圧縮データを読み出す第5のステップと、
    前記コントローラが、前記読み出された圧縮データを伸長する第6のステップと、
    前記コントローラが、前記伸長されたデータを前記データ格納領域に書き込む第7のステップと、を含むことを特徴とするメモリ管理方法。
  5. 請求項4に記載のメモリ管理方法であって、
    前記第1のメモリ素子は揮発メモリ素子であり、前記第2のメモリ素子は不揮発性メモリ素子であり、
    前記第2のステップは、
    前記仮想化管理部が、前記データ格納領域の使用量を監視するステップと、
    前記仮想化管理部が、前記データ格納領域の使用量が所定のしきい値より大きい場合に、前記ワーキングセットに格納されるデータのうち、アクセスされた時間が最も古いデータ又はアクセス頻度が最も低いデータを選択するステップと、
    前記仮想化管理部が、前記選択されたデータの前記データ圧縮領域への書き込みを要求するメモリアクセスを出力するステップと、
    前記コントローラが、前記メモリアクセスに基づいて、前記データ格納領域から前記選択されたデータを読み出すステップと、
    前記コントローラが、前記選択されたデータを圧縮するステップと、
    前記コントローラが、前記圧縮されたデータを圧縮データとして前記データ圧縮領域に書き込むステップと、を含むことを特徴とするメモリ管理方法。
  6. 請求項5に記載のメモリ管理方法であって、
    前記仮想計算機上では、オペレーティングシステムが稼働し、
    前記第1のステップは、
    前記第2のメモリ素子を、仮想的なストレージ装置として割り当てるステップと、
    前記仮想的なストレージ装置へのI/Oアクセスを、前記第2のメモリ素子へのメモリアクセスに変換するための変換情報を生成するステップと、
    前記オペレーティングシステムから前記仮想的なストレージ装置へのI/Oアクセスを受け付けた場合に、前記変換情報に基づいて前記第2のメモリ素子へのメモリアクセスに変換するステップと、
    前記メモリに対して前記変換されたメモリアクセスを出力するステップと、を含むことを特徴とするメモリ管理方法。
JP2013041601A 2013-03-04 2013-03-04 計算機及びメモリ管理方法 Expired - Fee Related JP6069031B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013041601A JP6069031B2 (ja) 2013-03-04 2013-03-04 計算機及びメモリ管理方法
US14/190,149 US9317312B2 (en) 2013-03-04 2014-02-26 Computer and memory management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013041601A JP6069031B2 (ja) 2013-03-04 2013-03-04 計算機及びメモリ管理方法

Publications (2)

Publication Number Publication Date
JP2014170360A JP2014170360A (ja) 2014-09-18
JP6069031B2 true JP6069031B2 (ja) 2017-01-25

Family

ID=51421627

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013041601A Expired - Fee Related JP6069031B2 (ja) 2013-03-04 2013-03-04 計算機及びメモリ管理方法

Country Status (2)

Country Link
US (1) US9317312B2 (ja)
JP (1) JP6069031B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10782989B2 (en) * 2016-02-03 2020-09-22 Surcloud Corp. Method and device for virtual machine to access storage device in cloud computing management platform
CN106796509B (zh) * 2014-09-26 2020-10-16 宇龙计算机通信科技(深圳)有限公司 操作系统分区的保护方法、保护装置和终端
JP6380084B2 (ja) * 2014-12-19 2018-08-29 富士ゼロックス株式会社 情報処理装置及び情報処理プログラム
US10491667B1 (en) 2015-03-16 2019-11-26 Amazon Technologies, Inc. Customized memory modules in multi-tenant service provider systems
US9886194B2 (en) * 2015-07-13 2018-02-06 Samsung Electronics Co., Ltd. NVDIMM adaptive access mode and smart partition mechanism
US9886376B2 (en) * 2015-07-29 2018-02-06 Red Hat Israel, Ltd. Host virtual address reservation for guest memory hot-plugging
US10935512B2 (en) 2015-09-24 2021-03-02 Roche Sequencing Solutions, Inc. Encoding state change of nanopore to reduce data size
US10102338B2 (en) * 2015-09-24 2018-10-16 Genia Technologies, Inc. Adaptive compression and modification of nanopore measurement data
CN105786507B (zh) * 2016-02-26 2022-06-03 北京小米移动软件有限公司 显示界面切换的方法及装置
US11204702B2 (en) 2017-08-15 2021-12-21 Red Hat Israel, Ltd. Storage domain growth management
CN117687770B (zh) * 2023-06-21 2024-09-13 荣耀终端有限公司 内存申请方法及相关装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3411300B2 (ja) 1992-02-18 2003-05-26 株式会社日立製作所 情報処理装置
JP3704483B2 (ja) * 1992-10-22 2005-10-12 日本電気株式会社 ファイル圧縮処理装置
US5696926A (en) * 1993-07-30 1997-12-09 Apple Computer, Inc. Method and apparatus for transparently compressing data in a primary storage device
JP3411520B2 (ja) 1999-02-18 2003-06-03 株式会社日立製作所 情報処理装置
JP2002132546A (ja) * 2000-10-24 2002-05-10 Xaxon R & D Corp 記憶装置
JP2008027383A (ja) 2006-07-25 2008-02-07 Toshiba Corp 情報記録装置及びその制御方法
US8560760B2 (en) 2007-01-31 2013-10-15 Microsoft Corporation Extending flash drive lifespan
JP2009230513A (ja) * 2008-03-24 2009-10-08 Nec Corp メモリの空き容量拡大装置、方法、プログラム及び携帯端末装置
TWI406370B (zh) 2009-04-06 2013-08-21 Phison Electronics Corp 微型快閃記憶體儲存裝置
JP2011128792A (ja) * 2009-12-16 2011-06-30 Toshiba Corp メモリ管理装置
JP5626561B2 (ja) * 2010-03-04 2014-11-19 日本電気株式会社 情報処理システム及びそのデータ管理方法
US9128845B2 (en) * 2012-07-30 2015-09-08 Hewlett-Packard Development Company, L.P. Dynamically partition a volatile memory for a cache and a memory partition

Also Published As

Publication number Publication date
JP2014170360A (ja) 2014-09-18
US20140250286A1 (en) 2014-09-04
US9317312B2 (en) 2016-04-19

Similar Documents

Publication Publication Date Title
JP6069031B2 (ja) 計算機及びメモリ管理方法
JP6744768B2 (ja) 複数のアクセスモードを支援する不揮発性メモリを含むシステム及びそのアクセス方法
CN106326140B (zh) 数据拷贝方法、直接内存访问控制器及计算机系统
US11960749B2 (en) Data migration method, host, and solid state disk
WO2017112357A1 (en) Compressed caching of a logical-to-physical address table for nand-type flash memory
US11010056B2 (en) Data operating method, device, and system
CN104461735B (zh) 一种虚拟化场景下分配cpu资源的方法和装置
KR20120066198A (ko) 휘발성 메모리를 포함하는 저장 장치의 데이터 저장 방법
KR20150132432A (ko) 네트워크를 통한 메모리 공유
CN108604211B (zh) 用于片上系统中的多区块数据事务的系统和方法
TWI777491B (zh) 虛擬化暫存器裝置和存取該裝置的方法和電腦程式產品
TW201945920A (zh) 儲存備份記憶體封裝中之狀態管理
CN112445423A (zh) 存储器系统、计算机系统及其数据管理方法
CN107250995B (zh) 存储器管理设备
JP7438246B2 (ja) ハードウェアベースのメモリ圧縮
US20130073779A1 (en) Dynamic memory reconfiguration to delay performance overhead
WO2014100954A1 (zh) 数据控制方法及系统
EP4315082A1 (en) Methods and apparatus for offloading tiered memories management
US20230401060A1 (en) Processing unit, computing device and instruction processing method
CN104424124A (zh) 内存装置、电子设备和用于控制内存装置的方法
JP6701650B2 (ja) 情報処理装置および画像形成装置
JP5958195B2 (ja) 仮想記憶管理システム、仮想記憶管理装置、仮想記憶初期化方法および仮想記憶初期化プログラム
KR102254101B1 (ko) 데이터 처리 시스템 및 이의 동작 방법
US20240345774A1 (en) Information processing system
EP3462322B1 (en) Semiconductor device and memory access method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150908

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160531

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160725

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161226

R150 Certificate of patent or registration of utility model

Ref document number: 6069031

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees