JP2018063505A - メモリ管理制御装置、メモリ管理制御方法、及びメモリ管理制御プログラム - Google Patents

メモリ管理制御装置、メモリ管理制御方法、及びメモリ管理制御プログラム Download PDF

Info

Publication number
JP2018063505A
JP2018063505A JP2016200550A JP2016200550A JP2018063505A JP 2018063505 A JP2018063505 A JP 2018063505A JP 2016200550 A JP2016200550 A JP 2016200550A JP 2016200550 A JP2016200550 A JP 2016200550A JP 2018063505 A JP2018063505 A JP 2018063505A
Authority
JP
Japan
Prior art keywords
swap
data
memory management
management control
processor
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
JP2016200550A
Other languages
English (en)
Inventor
安蒜 康仁
Yasuhito Abiru
康仁 安蒜
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016200550A priority Critical patent/JP2018063505A/ja
Publication of JP2018063505A publication Critical patent/JP2018063505A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Abstract

【課題】一実施形態は、スワップアウトの際のメモリ管理制御装置のレスポンスを向上させることができる。【解決手段】一実施形態に係るメモリ管理制御装置は、データ領域とスワップ領域とを含むメモリと、プロセッサとを含む。プロセッサは、データ領域に記憶されているデータをスワップ領域にスワップアウトする際に、所定の条件が満たされればデータを第1の圧縮率で圧縮する。プロセッサは、データ領域に記憶されているデータをスワップ領域にスワップアウトする際に、所定の条件が満たされなければデータを第1の圧縮率よりも圧縮率の低い第2の圧縮率で圧縮する。【選択図】図5

Description

本発明は、メモリ管理制御装置、メモリ管理制御方法、及びメモリ管理制御プログラムに関する。
近年、メモリ管理制御装置において、オペレーティングシステム(OS)が使用する物理メモリのサイズが増加している。なお、メモリ管理制御装置は、例えば、携帯電話機、スマートフォン、タブレット端末、車載器(例えば、カーナビゲーションシステム)、及びユビキタス製品などのメモリの管理や制御を行う装置を含む。OSが使用する物理メモリのサイズの増加に対処するために、例えば、物理メモリを効率よく利用するための技術が知られている(例えば、特許文献1及び特許文献2)。
特開2014−116017号公報 特開2002−24082号公報
メモリを効率的に利用するために、メモリに記憶されているデータをスワップ領域にスワップアウトすることがあり、スワップアウトする際に、データを圧縮が行われることがある。この場合、スワップアウトには、スワップする対象のメモリ領域の探索、スワップ対象のメモリ領域の圧縮、スワップアウトのためのメモリコピーなどのオーバーヘッドがある。そして、例えば、これらの処理を行うプロセッサの処理能力やメモリの読み書きのスピードに十分なパフォーマンスがない場合、或いは、他の処理によってそれらのリソースが使用されている場合、メモリ管理制御装置のレスポンスが遅くなってしまうことがある。
1つの側面では、本発明は、スワップアウトの際のメモリ管理制御装置のレスポンスを向上させることを目的とする。
本発明の一つの態様のメモリ管理制御装置は、データ領域とスワップ領域とを含むメモリと、プロセッサとを含む。プロセッサは、データ領域に記憶されているデータをスワップ領域にスワップアウトする際に、所定の条件が満たされればデータを第1の圧縮率で圧縮する。プロセッサは、データ領域に記憶されているデータをスワップ領域にスワップアウトする際に、所定の条件が満たされなければデータを第1の圧縮率よりも圧縮率の低い第2の圧縮率で圧縮する。
スワップアウトの際のメモリ管理制御装置のレスポンスを向上させることができる。
例示的なメモリ管理制御装置のハードウェア構成を示す図である。 物理メモリの領域を例示する図である。 例示的なメモリの領域確保処理を示す図である。 第1の実施形態に係るメモリの領域確保処理を示す図である。 第1の実施形態に係るスワップアウト処理を例示する図である。 実施形態に係る履歴情報を例示する図である。 第1の実施形態に係るスワップ情報を例示する図である。 第2の実施形態に係るスワップアウト処理を例示する図である。 第2の実施形態に係るスワップ情報を例示する図である。 第2の実施形態に係るスワップイン処理の動作フローを例示する図である。
以下、図面を参照しながら、本発明のいくつかの実施形態について詳細に説明する。なお、複数の図面において対応する要素には同一の符号を付す。
図1は、例示的なメモリ管理制御装置100のハードウェア構成示す図である。なお、メモリ管理制御装置100は、例えば、携帯電話機、スマートフォン、タブレット端末、車載器(例えば、カーナビゲーションシステム)、及びユビキタス製品などであってよい。メモリ管理制御装置100は、例えば、プロセッサ101、メモリ102、記憶装置103、入力装置104、及び表示装置105を含んでよい。なお、プロセッサ101、メモリ102、記憶装置103、入力装置104、及び表示装置105は、例えば、バス110を介して互いに接続されている。
プロセッサ101は、メモリ管理制御装置100の各部を制御する。また、プロセッサ101は、例えば、メモリ102に記憶されているメモリ管理制御プログラムを読み出して実行することにより、後述する動作フローの手順を実行する。なお、プロセッサ101は、例えば、シングルプロセッサであっても、マルチプロセッサ及びマルチコアを備えるプロセッサであってもよい。
メモリ102は、例えば半導体メモリであり、RAM領域及びROM領域を含んでいてよい。なお、メモリ102は、メモリ管理制御装置100に実際に搭載されているメモリであり、以下の説明では、メモリ102を物理メモリ102と呼ぶことがある。記憶装置103は、例えばeMMCなどのフラッシュメモリ等の半導体メモリ、ハードディスク、又は外部記憶装置である。なお、RAM(ラム)は、Random Access Memoryの略称である。また、ROM(ロム)は、Read Only Memoryの略称である。eMMC(イーエムエムシー)は、Embedded Multi Media Cardの略称である。
入力装置104は、例えば、ボタンやキーなどの入力を受け付けるデバイスである。また、表示装置105は、例えばディスプレーなどであってよい。入力装置104と表示装置105は合わせて、タッチパネルとして実装されてもよい。また、メモリ管理制御装置100は、更に、プロセッサ101の指示に従って外部とデータを送受信する通信インタフェースを備えていてもよい。また、メモリ管理制御装置100は、音声出力装置や音声入力装置などのその他の入出力装置を備えていてもよい。
上述のように、例えば、メモリ管理制御装置100において、オペレーティングシステムが使用する物理メモリのサイズが増加している。これに対応するために、例えば、容量の大きい物理メモリを搭載するとメモリ管理制御装置100のコストが高くなる。そのため、限られた容量で効率よくメモリを利用するための省メモリ制御技術が望まれている。
省メモリ制御の一例において、物理メモリ102内にスワップ領域を設けて、物理メモリ102上のスワップ対象のデータをスワップ領域に圧縮してスワップアウトすることがある。図2は、物理メモリ102内にスワップ領域を設ける場合の物理メモリ102の領域を例示する図である。この場合、物理メモリ102の一部にスワップ領域201が確保される。また、物理メモリ102上のスワップ領域201以外の通常のメモリとして用いる領域を、以下ではデータ領域202と呼ぶ。データ領域202には、例えば、オペレーティングシステムや、アプリケーションなどが参照するデータが記憶されている。そして、メモリ不足時には、物理メモリ102に確保したスワップ領域201に、スワップ対象のデータが圧縮されてスワップアウトされる。スワップ領域201にスワップアウトされたデータは圧縮されているため、メモリを効率的に使用することができる。なお、データ領域202には、メモリの管理に用いられる情報などが記憶されている管理領域203が含まれていてよい。管理領域203は、例えば、後述する履歴情報600、及びスワップ情報700,900などの情報を記憶していてよい。また、この様に物理メモリ102内にスワップ領域201を設けるメモリ管理方式の一例に、Linux(登録商標)のZRAMと呼ばれる方式がある。
図3は、例示的なメモリ102の領域確保処理を示す図である。例えば、他のアプリケーションなどからデータ領域202においてメモリ領域を確保するように要求する領域確保要求が入力されると、プロセッサ101は、図3の例示的な領域確保処理を開始してよい。
ステップ301(以降、ステップを“S”と記載し、例えば、S301と表記する)においてプロセッサ101は、要求されたメモリ領域を確保するのに十分な空き容量がメモリ102にあるか否かを判定する。空き容量がメモリ102にある場合(S301があり)、フローはS306に進む。この場合、S306においてプロセッサ101は、メモリ確保要求で要求された領域を空き領域に確保し、本動作フローは終了する。一方、空き容量がメモリ102にない場合(S301がなし)、フローはS302に進む。
S302においてプロセッサ101は、データ領域202においてスワップ対象のメモリ領域を探索する。例えば、プロセッサ101は、LRU(Least Recently Used)でスワップ対象のメモリ領域を探索してよい。LRUでは、例えば、メモリ102のデータ領域202に保存されているデータの中で最後に参照されてから最も時間が経過しているデータが保存されているメモリ領域が探し出される。なお、メモリ領域は、例えば、ページ単位の領域であってよい。
S303においてプロセッサ101は、探索されたメモリ領域をスワップ対象にする。S304においてプロセッサ101は、スワップ対象のメモリ領域に保存されているデータを、所定の圧縮率で圧縮する。そして、S305でプロセッサ101は、圧縮した圧縮データを、スワップ領域201にスワップアウトする。S306においてプロセッサ101は、データをスワップアウトした後のメモリ領域を解放し、メモリ確保要求で要求された領域を確保して、本動作フローは終了する。
例えば、以上で述べた様に、メモリ102にスワップ領域201を設けて、メモリ102の空き容量が不足した際に所定の圧縮率でデータを圧縮してスワップアウトを行ったとする。この場合、スワップアウトには、スワップする対象のメモリ領域の探索、スワップ対象のメモリ領域の圧縮、スワップアウトのためのメモリコピーなどのオーバーヘッドがある。そして、例えば、これらの処理を行うプロセッサの処理能力やメモリの読み書きのスピードに十分なパフォーマンスがない場合、或いは、他の処理によってそれらのリソースが使用されている場合、メモリ管理制御装置のレスポンスが遅くなってしまうことがある。そのため、例えば、装置のレスポンスを向上させることのできる技術が望まれている。
そこで、実施形態では、スワップ対象となったデータの圧縮の際の圧縮率を動的に変更し、それにより、メモリ管理制御装置100のレスポンスを向上させて、メモリ管理制御装置100のパフォーマンスを改善する。実施形態では、スワップ領域201へのデータのスワップアウトの際の圧縮率を動的に変更するために、以下の情報をスワップアウトの圧縮率を決定する判定に用いる。
(1)メモリ管理制御装置100の操作状況
(2)プロセッサの使用率
(3)スワップ領域201へのスワップアウトからスワップインまでの時間間隔
(1)について、例えば、圧縮の処理負荷が高く、メモリ管理制御装置100のレスポンスが遅くなったとしても、ユーザがメモリ管理制御装置100を利用していない場合、レスポンスの低下を感じることはない。そのため、例えば、メモリ管理制御装置100の操作状況が操作中でなければ、圧縮率を高い圧縮率に設定し、圧縮を実行してもよい。
(2)について、例えば、プロセッサの使用率が既に高い場合、圧縮率を高くすると更なる負荷をプロセッサ101にかけてしまう。そのため、例えば、圧縮率を低くしてプロセッサ101への負荷を抑えることが好ましい。
(3)について、例えば、スワップ領域201へのスワップアウトからスワップインまでの時間間隔が短い場合、スワップアウトしてもすぐにスワップインを行うことになる可能性が高い。そして、スワップ領域201に長期間保存されるデータではない場合には、高圧縮率で圧縮を施すよりも、低圧縮率で圧縮を施した方が圧縮にかかる時間や処理負荷を低減でき、好ましい。一方、スワップ領域201に長期間保存されるデータであれば、高圧縮率でデータを圧縮してメモリ102を占有する領域を抑えることで、メモリを効率的に利用することができる。
そして、プロセッサ101は、例えば、以上のような情報を考慮して、スワップアウト時の圧縮率を決定することで、プロセッサ101に過剰な負荷がかかることを抑制することができる。また、一方で、プロセッサ101の処理能力に余裕がある状況や、メモリ管理制御装置100の操作状況に基づいてメモリ管理制御装置100が利用されていないと判定される場合には、高い圧縮率を選択し、メモリ102の利用効率を高めることができる。以下、第1の実施形態を説明する。
<第1の実施形態>
図4は、第1の実施形態に係るメモリ102の領域確保処理を示す図である。例えば、他のアプリケーションなどからデータ領域202においてメモリ領域を確保するように要求する領域確保要求が入力されると、プロセッサ101は、図4の第1の実施形態に係る領域確保処理を開始してよい。
S401においてプロセッサ101は、メモリに空き容量があるか否かを判定する。メモリに空き容量がある場合(S401があり)、本動作フローは終了する。一方、メモリに空き容量がない場合(S401がなし)、フローはS402に進む。
S402においてプロセッサ101は、データ領域202においてスワップ対象のメモリ領域を探索する。例えば、プロセッサ101は、LRUでスワップ対象のメモリ領域を探索してよい。S403においてプロセッサ101は、探索されたメモリ領域をスワップ対象にする。S404においてプロセッサ101は、スワップアウト処理を実行する。スワップアウト処理の詳細は、図5を参照して後述するが、スワップアウト処理では、圧縮率を動的に変更してデータを圧縮し、スワップアウトが実行される。そして、S405でプロセッサ101は、データをスワップアウトした後のメモリ領域を解放し、領域確保要求で要求されたメモリ領域を確保して、本動作フローは終了する。
図5は、第1の実施形態に係るスワップアウト処理を例示する図である。プロセッサ101は、例えば、図4のS404に進むと、図5のスワップアウト処理を開始してよい。
S501においてプロセッサ101は、メモリ管理制御装置100の操作状況を示す操作情報を取得する。そして、S502においてプロセッサ101は、取得した操作状況を示す操作情報に基づいて、メモリ管理制御装置100が使用中であるか否かを判定してよい。例えば、プロセッサ101は、メモリ管理制御装置100の表示装置105の表示画面が消灯しているか否かの情報を、操作状況を示す操作情報として用いてよい。この場合、表示装置105の表示画面が消灯していれば、プロセッサ101は、ユーザがメモリ管理制御装置100を使用していないと判定してよい。一方、表示装置105の表示画面が点灯している場合に、プロセッサ101は、ユーザがメモリ管理制御装置100を使用していると判定してよい。なお、別の実施形態では、ユーザがメモリ管理制御装置100へのログイン状況を、操作状況を示す操作情報として用いてもよい。そして、S502においてメモリ管理制御装置100が未使用中であれば(S502が未使用中)、フローはS509に進み、プロセッサ101は圧縮率に第1の圧縮率に設定する。なお、第1の圧縮率は、後述する第2の圧縮率よりも高い圧縮率である。この様に、メモリ管理制御装置100が使用中ではないことが推定される状況では、たとえレスポンスが低下したとしてもユーザが体感する可能性が低く、プロセッサ101は、高圧縮率を用いて圧縮を行い、メモリを節約してよい。一方、S502においてメモリ管理制御装置100が使用中であれば(S502が使用中)、フローはS503に進む。
S503においてプロセッサ101は、プロセッサ101の使用率の情報を取得する。S504においてプロセッサ101は、プロセッサ101の使用率が高いか否かを判定する。なお、プロセッサ101の使用率には、例えば、プロセッサのロードアベレージが使用されてよい。例えば、プロセッサ101は、ロードアベレージが所定の閾値を超えているかどうかでプロセッサの使用率が高いか否かを判定してよい。例えば、プロセッサ101は、プロセッサ101の使用率が所定の閾値以上である場合に、使用率が高いと判定してよい。一方、プロセッサ101は、プロセッサ101の使用率が所定の閾値よりも低ければ、使用率が低いと判定してよい。所定の閾値は、例えば、その閾値を超えた状態で、スワップ対象のデータを高圧縮率で圧縮した場合に、メモリ管理制御装置100のレスポンスに影響が出る可能性が高いと判定できる値に設定されてよい。S504においてプロセッサ101の使用率が高い場合(S504がYES)、フローはS507に進む。一方、プロセッサ101の使用率が高くない場合(S504がNO)、フローはS505に進む。
S505においてプロセッサ101は、過去に実行されたスワップアウトとスワップインの履歴を格納する履歴情報600に基づいて、スワップ対象のデータのスワップアウトとスワップインの時間間隔を取得する。
図6は、実施形態に係る履歴情報600を例示する図である。履歴情報600には、過去に実行されたスワップアウト及びスワップインと対応するエントリが登録されている。エントリには、例えば、仮想アドレス、種別、及び日時の情報が対応付けられて含まれていてよい。仮想アドレスは、例えば、エントリと対応するスワップアウト又はスワップインで処理対象であったデータの仮想アドレスが登録されている。また、種別は、エントリがスワップインの情報を含むか、スワップアウトの情報を含むかを示す情報である。日時は、エントリと対応するスワップイン又はスワップアウトが実行された日時を表す情報である。
プロセッサ101は、例えば、スワップ対象のデータの仮想アドレスを有するエントリを履歴情報600から特定し、過去に行われたスワップアウトからスワップインまでの時間間隔を取得してよい。なお、時間間隔は、例えば、スワップ対象のデータに前回実行されスワップアウトからスワップインまでの時間間隔など1つの時間間隔に基づいていてもよい。或いは別の実施形態では、時間間隔は、例えば、スワップ対象のデータに過去に実行された複数のスワップアウトからスワップインまでの時間間隔を代表する代表値であってよい。代表値は、例えば、スワップ対象のデータに対する過去の複数のスワップアウトからスワップインまでの時間間隔の平均値であってよく、或いは、最大値や最小値などその他の値であってもよい。
そして、S506においてプロセッサ101は、スワップ対象のデータのスワップアウトからスワップインまでの時間間隔が短いか否かを判定する。スワップ対象のデータのスワップアウトからスワップインまでの時間間隔が所定時間よりも長い場合、プロセッサ101は、時間間隔が長いと判定し(S506が長)、フローはS509に進む。S509においてプロセッサ101は、圧縮率を高い第1の圧縮率に設定する。
一方、S506において、例えば、スワップ対象のデータのスワップアウトからスワップインまでの時間間隔が所定時間以下である場合、プロセッサ101は、時間間隔が短いと判定し(S506が短)、フローはS507に進む。なお、履歴情報600に履歴がなく、スワップ対象のデータの初回のスワップアウトである場合には、時間間隔が短いと判定してよい。S507においてプロセッサ101は、圧縮率を第1の圧縮率よりも低い第2の圧縮率に設定する。なお、スワップ対象となったデータをスワップアウトしてからスワップインするまでの時間間隔が長い場合、データが長時間スワップアウトされていることになる。その場合、高圧縮率で圧縮することでメモリを効率的に利用することが可能になる。一方、スワップ対象となったメモリ領域をスワップアウトしてからスワップインするまでの時間間隔が短い場合、すぐにまたスワップインが行われる可能性があるため、低圧縮率で圧縮することでプロセッサ101にかかる負荷を抑えることができる。
S508においてプロセッサ101は、スワップアウトに関する情報を記録する。例えば、プロセッサ101は、管理領域203に記憶された履歴情報600に、スワップアウトの実行時刻に関するエントリを登録してよい。プロセッサ101は、例えば、履歴情報600のエントリの仮想アドレスとして、スワップ対象のデータの仮想アドレスを登録し、種別にスワップアウトと登録し、日時にスワップアウトの実行時刻として、現在の時刻を記録してする。なお、後述する第2の実施形態で例示するように、スワップインの際にもスワップインの実行時刻が履歴情報600に登録されるものとする。
また、プロセッサは、管理領域203に記憶されたスワップ情報700にスワップアウトに関する情報を含むエントリを記録してよい。図7は、実施形態に係るスワップ情報700を例示する図である。スワップ情報700は、例えば、仮想アドレス、スワップアウト先アドレス、及びサイズを含む。仮想アドレスは、例えば、スワップ対象のデータに割り当てられている仮想アドレス空間上のアドレスである。スワップアウト先アドレスは、スワップ対象のデータを保存するスワップ領域201内でのアドレスである。また、サイズは、スワップ対象のデータのサイズである。
S510においてプロセッサ101は、スワップ情報700に登録したスワップアウト先のアドレスと対応するスワップ領域201内のメモリ領域に、圧縮したスワップ対象のデータをスワップアウトし、本動作フローは終了し、フローはS405の処理へと続く。
以上で述べた様に、実施形態によればプロセッサ101は、例えば、レスポンスに影響が出たとしてもユーザが体感する可能性の低いメモリ管理制御装置100が未使用と推定される状況で、スワップアウトに圧縮率の高い第1の圧縮率を利用する。それにより、メモリを節約することができる。
また、実施形態によればプロセッサ101は、スワップアウトを実行する際に、プロセッサ101の使用率が高い場合、第1の圧縮率よりも圧縮率の低い第2の圧縮率を利用する。プロセッサ101の負荷が高い状態では圧縮率の低い第2の圧縮率を利用することで、スワップアウトの処理がプロセッサ101に与える影響を抑え、それにより、メモリ管理制御装置100のレスポンスが低下するのを抑制することができる。
また、実施形態によればプロセッサ101は、スワップアウトを実行する際に、スワップ対象のデータのスワップアウトとスワップインの時間間隔が短い場合、第1の圧縮率よりも圧縮率の低い第2の圧縮率を利用する。一方、スワップ対象のデータのスワップアウトとスワップインの時間間隔が長い場合、第1の圧縮率を利用する。このように、スワップインが再度実行されるまでの時間が短いデータには、圧縮率の低い第2の圧縮率を利用して圧縮と復号の負荷を抑制することができる。一方、スワップインが再度実行されるまでの時間が長いデータには、圧縮率の高い第1の圧縮率を利用することで、メモリの利用効率を高めることができる。
従って、実施形態によれば、スワップアウトの処理がプロセッサ101に与える影響を抑え、それにより、メモリ管理制御装置100のレスポンスが低下するのを抑制することができる。
なお、別の実施形態では、例えば、上述の(1)〜(3)の情報うちのいずれか1つを用いて圧縮率を設定してもよい。例えば、図5のS502において使用中と判定された場合に、フローをS507に進めて、操作状況により圧縮率を設定する動作フローとしてもよい。また、同様に、S501の処理の後、フローをS503に進め、次のS504でNOと判定した場合に、フローをS509に進め、プロセッサの使用率により圧縮率を設定する動作フローとしてもよい。更に、S501の処理の後、フローをS505に進めて、スワップ対象のデータのスワップアウトからスワップインまでの時間間隔により圧縮率を設定する動作フローとしてもよい。或いは、更に別の実施形態では、上述の(1)〜(3)の情報のうちの2つを用いて圧縮率を設定してもよい。
また、例えば、別の実施形態では、図5のS506において時間間隔が短いと判定した場合に、更に、スワップ対象のデータを参照するタスクの処理の時間間隔に基づいて、圧縮率を第1の圧縮率と第2の圧縮率のいずれかに振り分ける処理が含まれていてもよい。この場合、例えば、プロセッサ101は、タスクの処理の時間間隔が長い場合、圧縮率をS509の第1の圧縮率に振り分けてよい。また、プロセッサ101は、タスクの処理の時間間隔が短い場合、圧縮率をS507の第2の圧縮率に振り分けてよい。この様に、更なるパラメータを用いて圧縮率を振り分けることで、メモリの使用効率等を更に改善することが可能である。
<第2の実施形態>
第1の実施形態では、圧縮の際の圧縮率を設定するパラメータを変更することで圧縮率を変更する場合を例示したが、実施形態はこれに限定されるものではない。第2の実施形態では、圧縮アルゴリズムを変更することで圧縮率を変更する場合を例示する。
図8は、第2の実施形態に係るスワップアウト処理を例示する図である。プロセッサ101は、例えば、図4のS404に進むと、図8のスワップアウト処理を開始してよい。
なお、図8においてS801〜S806までの処理までは、図5のS501〜S506までの処理と対応しており、プロセッサ101は、例えば、S501〜S506の処理と同様に処理を実行してよい。S809においてプロセッサ101は、圧縮率の高い第1のアルゴリズムでスワップ対象のデータを圧縮する。また、S807ではプロセッサ101は、第1のアルゴリズムよりも低い圧縮率でデータを圧縮する第2の圧縮アルゴリズムで、スワップ対象のデータを圧縮する。一例として、第1のアルゴリズムは、7‐ZIPであってよく、第2のアルゴリズムはZIPであってよい。また、RARなどのその他の圧縮アルゴリズムが用いられてもよい。
S808においてプロセッサ101は、スワップアウトに関する情報を記録する。例えば、プロセッサ101は、履歴情報600にスワップアウトの実行時刻に関するエントリを登録してよい。また、プロセッサ101は、例えば、メモリ102の管理領域203に記憶されている第2の実施形態に係るスワップ情報900にスワップアウトに関する情報を記録してよい。
図9は、第2の実施形態に係るスワップ情報900を例示する図である。スワップ情報900は、例えば、仮想アドレス、スワップアウト先アドレス、サイズ、及び圧縮方式を含む。なお、仮想アドレス、スワップアウト先アドレス、及びサイズについては、スワップ情報700の仮想アドレス、スワップアウト先アドレス、及びサイズとそれぞれ対応する情報であってよい。そして、圧縮方式には、S807又はS809の処理でスワップ対象のデータの圧縮に用いた圧縮アルゴリズムを識別するための情報が登録される。
そして、S810でプロセッサ101は、スワップ情報900に登録したスワップアウト先のアドレスと対応するスワップ領域201内のメモリ領域に、圧縮したスワップ対象のデータをスワップアウトし、本動作フローは終了し、フローはS405の処理に続く。
以上の第2の実施形態で例示するように、実施形態は、圧縮の際のパラメータ以外にも、圧縮アルゴリズムを変更するなどその他の方法で圧縮率を変更して、実施されてもよい。また、例えば、圧縮アルゴリズムを適切に選択することで、圧縮率の更なる向上や、プロセッサに与える負荷の低減を図ることが可能である。
図10は、第2の実施形態に係るスワップイン処理の動作フローを例示する図である。例えば、スワップ領域201に退避したデータの呼び出し指示が入力されるなどした場合、プロセッサ101は、図10のスワップイン処理を開始してよい。
S1001においてプロセッサ101は、呼び出されたデータをスワップ領域201において探索する。S1002において呼び出されたデータの探索に成功したか否かを判定する。探索に失敗した場合(S1002が失敗)、フローはS1003に進み、プロセッサ101はエラーを出力して、本動作フローは終了する。また、探索に成功した場合(S1002が成功)、フローは、S1004に進む。
S1004においてプロセッサ101は、スワップ情報900を参照し、呼び出し対象のデータと対応するエントリの圧縮方式を特定する。S1005においてプロセッサ101は、スワップ情報900において呼び出し対象のデータと対応するエントリのスワップアウト先アドレスから、データサイズに規定されるサイズのデータを読み出し、特定した圧縮方式を用いて復号する。そして、S1006においてプロセッサ101は、復号したデータをエントリの仮想アドレスと紐付けてメモリに確保した空き領域にスワップインする。
S1006においてプロセッサ101は、スワップインに関する情報を更新する。例えばプロセッサ101は、スワップ情報900からスワップインしたデータと対応するエントリを削除する。また、プロセッサ101は、履歴情報600にスワップインの実行時刻に関するエントリを登録する。S1006において情報の更新が完了すると、本動作フローは終了する。
以上で述べた様に、第2の実施形態では、プロセッサ101は、スワップアウトの際にスワップ情報900に圧縮形式も保存している。そのため、プロセッサ101は、スワップインの際に適切な圧縮形式を選択してデータを復号することができる。
なお、図10では、第2の実施形態に係る圧縮形式を変更する場合のスワップインの処理を例示している。しかしながら、例えば、圧縮アルゴリズムではなく圧縮のパラメータを変更する場合には、S1004の処理を省略し、S1005で所定の圧縮アルゴリズムを用いて復号を行うことで、第1の実施形態と対応するスワップインの処理を実行することができる。
以上で述べたように、上述の実施形態によれば、スワップアウトの際のメモリ管理制御装置100のレスポンスを向上させることができる。
なお、メモリ管理制御装置100の機種などによりプロセッサ101の処理の能力、タスクの数、各タスクの処理量が異なる。そのため、高圧縮率及び低圧縮率のそれぞれの圧縮で実際に用いるパラメータの値や圧縮アルゴリズムは、予め調査を行って最適解が決定されてよい。
以上において、実施形態を例示したが、実施形態はこれに限定されるものではない。例えば、上述の実施形態ではメモリ102にスワップ領域201が設けられている場合において実施形態を適用する例を述べた。しかしながら、実施形態はこれに限定されるものではない。例えば、ハードディスクなどの他の記憶装置103にスワップ領域201が設けられている場合にも実施形態は適用することができる。その場合にも、例えば、スワップアウトの際のメモリ管理制御装置100のレスポンスの影響を考慮して圧縮率を変更することができる。また、例えば、メモリ管理制御装置100のレスポンスへの影響が軽微な状況では、高圧縮率を用いることで、スワップアウトでデータを保存する記憶領域を削減することができる。また、更に、例えば、記憶装置103への読み書きの速度が遅い場合などには、高圧縮率を用いて圧縮したデータを書き込んだり読み込んだりすることで、スワップアウトの際の書き込み、スワップインの際の読み込みにかかる時間を短縮することができる。従って、実施形態は、例えば、パーソナルコンピュータ(PC)や、ノートPCなどのメモリ管理制御装置100にも適用することができる。
また、例えば、上述の動作フローは例示であり、実施形態はこれに限定されるものではない。可能な場合には、動作フローは、処理の順番を変更して実行されてもよく、別に更なる処理を含んでもよく、又は、一部の処理が省略されてもよい。
以上において、いくつかの実施形態が説明される。しかしながら、実施形態は上記の実施形態に限定されるものではなく、上述の実施形態の各種変形形態及び代替形態を包含するものとして理解されるべきである。例えば、各種実施形態は、その趣旨及び範囲を逸脱しない範囲で構成要素を変形して具体化できることが理解されよう。また、前述した実施形態に開示されている複数の構成要素を適宜組み合わせることにより、種々の実施形態が実施され得ることが理解されよう。更には、実施形態に示される全構成要素からいくつかの構成要素を削除して又は置換して、或いは実施形態に示される構成要素にいくつかの構成要素を追加して種々の実施形態が実施され得ることが当業者には理解されよう。
100 メモリ管理制御装置
101 プロセッサ
102 メモリ
103 記憶装置
104 入力装置
105 表示装置
110 バス
201 スワップ領域
202 データ領域
203 管理領域

Claims (8)

  1. データ領域とスワップ領域とを含むメモリと、
    前記データ領域に記憶されているデータを前記スワップ領域にスワップアウトする際に、所定の条件が満たされれば前記データを前記第1の圧縮率で圧縮し、前記所定の条件が満たされなければ前記データを前記第1の圧縮率よりも圧縮率の低い第2の圧縮率で圧縮するプロセッサと、
    を含む、メモリ管理制御装置。
  2. 前記第1の圧縮率での前記データの圧縮は、第1の圧縮アルゴリズムで実行され、
    前記第2の圧縮率での前記データの圧縮は、前記第1の圧縮アルゴリズムよりも圧縮率の低い第2の圧縮アルゴリズムで実行されることを特徴とする、
    請求項1に記載のメモリ管理制御装置。
  3. 前記所定の条件は、前記プロセッサが前記メモリ管理制御装置の操作状況を示す操作情報に基づいて、前記メモリ管理制御装置が未使用中と判定することであり、
    前記プロセッサは、前記メモリ管理制御装置が未使用中と判定した場合に、前記データを前記第1の圧縮率で圧縮する、
    ことを特徴とする請求項1又は2に記載のメモリ管理制御装置。
  4. 前記所定の条件は、前記プロセッサの使用率が所定の閾値よりも低いことを含み、
    前記プロセッサは、前記プロセッサの使用率が所定の閾値以上である場合、前記データを前記第2の圧縮率で圧縮する、
    ことを特徴とする請求項1又は2に記載のメモリ管理制御装置。
  5. 前記所定の条件は、前記データに過去に実行されたスワップアウトとスワップインの履歴に基づく前記データのスワップアウトからスワップインまでの時間間隔が、所定時間よりも長いことであり、
    前記プロセッサは、前記時間間隔が所定時間よりも長いと判定した場合に、前記データを前記第1の圧縮率で圧縮する、
    ことを特徴とする請求項1又は2に記載のメモリ管理制御装置。
  6. 前記所定の条件は、前記メモリ管理制御装置の操作状況を示す操作情報と、前記プロセッサの使用率と、前記データに過去に実行されたスワップアウトとスワップインの履歴に基づく前記データのスワップアウトからスワップインまでの時間間隔とのうちの複数の情報を用いる複数の判定条件を含み、
    前記プロセッサは、前記第1の圧縮率及び前記第2の圧縮率のうちから、前記複数の判定条件に基づいて決定した圧縮率を用いて前記データを圧縮する、
    ことを特徴とする請求項1又は2に記載のメモリ管理制御装置。
  7. メモリのデータ領域に記憶されているデータを、前記メモリのスワップ領域にスワップアウトする際に、所定の条件が満たされれば前記データを前記第1の圧縮率で圧縮し、前記所定の条件が満たされなければ前記データを前記第1の圧縮率よりも圧縮率の低い第2の圧縮率で圧縮する、
    ことを含む、メモリ管理制御装置が実行するメモリ管理制御方法。
  8. メモリのデータ領域に記憶されているデータを、前記メモリのスワップ領域にスワップアウトする際に、所定の条件が満たされれば前記データを前記第1の圧縮率で圧縮し、前記所定の条件が満たされなければ前記データを前記第1の圧縮率よりも圧縮率の低い第2の圧縮率で圧縮する、
    処理を、メモリ管理制御装置に実行させるメモリ管理制御プログラム。
JP2016200550A 2016-10-12 2016-10-12 メモリ管理制御装置、メモリ管理制御方法、及びメモリ管理制御プログラム Pending JP2018063505A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016200550A JP2018063505A (ja) 2016-10-12 2016-10-12 メモリ管理制御装置、メモリ管理制御方法、及びメモリ管理制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016200550A JP2018063505A (ja) 2016-10-12 2016-10-12 メモリ管理制御装置、メモリ管理制御方法、及びメモリ管理制御プログラム

Publications (1)

Publication Number Publication Date
JP2018063505A true JP2018063505A (ja) 2018-04-19

Family

ID=61967846

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016200550A Pending JP2018063505A (ja) 2016-10-12 2016-10-12 メモリ管理制御装置、メモリ管理制御方法、及びメモリ管理制御プログラム

Country Status (1)

Country Link
JP (1) JP2018063505A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110929478A (zh) * 2018-09-03 2020-03-27 珠海全志科技股份有限公司 一种匿名网页压缩的方法、装置及***
WO2021066308A1 (ko) * 2019-10-02 2021-04-08 삼성전자(주) 전자장치 및 그 제어방법
JP2021111320A (ja) * 2019-12-31 2021-08-02 北京百度網訊科技有限公司 データ出力方法、データ取得方法、装置および電子機器
CN113885787A (zh) * 2021-06-08 2022-01-04 荣耀终端有限公司 一种存储器管理方法及电子设备
CN114207571A (zh) * 2019-10-25 2022-03-18 三星电子株式会社 计算装置及其操作方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110929478A (zh) * 2018-09-03 2020-03-27 珠海全志科技股份有限公司 一种匿名网页压缩的方法、装置及***
WO2021066308A1 (ko) * 2019-10-02 2021-04-08 삼성전자(주) 전자장치 및 그 제어방법
CN114207571A (zh) * 2019-10-25 2022-03-18 三星电子株式会社 计算装置及其操作方法
CN114207571B (zh) * 2019-10-25 2024-04-05 三星电子株式会社 计算装置及其操作方法
JP2021111320A (ja) * 2019-12-31 2021-08-02 北京百度網訊科技有限公司 データ出力方法、データ取得方法、装置および電子機器
JP7083004B2 (ja) 2019-12-31 2022-06-09 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド データ出力方法、データ取得方法、装置および電子機器
US11562241B2 (en) 2019-12-31 2023-01-24 Beijing Baidu Netcom Science and Technology Co., Ltd Data output method, data acquisition method, device, and electronic apparatus
CN113885787A (zh) * 2021-06-08 2022-01-04 荣耀终端有限公司 一种存储器管理方法及电子设备
CN116243850A (zh) * 2021-06-08 2023-06-09 荣耀终端有限公司 一种存储器管理方法及电子设备
CN116243850B (zh) * 2021-06-08 2024-05-28 荣耀终端有限公司 一种存储器管理方法及电子设备

Similar Documents

Publication Publication Date Title
JP2018063505A (ja) メモリ管理制御装置、メモリ管理制御方法、及びメモリ管理制御プログラム
EP3514689B1 (en) Memory management method and apparatus
JP6509895B2 (ja) デバイス固有又はユーザー固有のリソース使用プロファイルに基づくリソース管理
KR102114388B1 (ko) 전자 장치의 메모리 압축 방법 및 장치
JP6069031B2 (ja) 計算機及びメモリ管理方法
US9043806B2 (en) Information processing device and task switching method
CN111338988B (zh) 内存访问方法、装置、计算机设备和存储介质
CN110187832B (zh) 一种数据操作的方法、设备和***
WO2012159394A1 (zh) 一种移动设备内存管理方法及装置
WO2017006675A1 (ja) 情報処理システム、記憶制御装置、記憶制御方法および記憶制御プログラム
WO2017222739A1 (en) Selective flash memory compression/decompression using a storage usage collar
KR102116984B1 (ko) 메모리 스왑 오퍼레이션 제어 방법 및 이를 적용하는 데이터 처리 시스템
JP2010108253A (ja) 不揮発性メモリを主記憶に用いた装置
JP2009020555A (ja) スワップ処理装置
US9858204B2 (en) Cache device, cache system, and cache method
JP6217008B2 (ja) 電子機器、制御方法、及び、プログラム
JP2011076497A (ja) 情報処理装置、半導体記憶装置、及びプログラム
US9354812B1 (en) Dynamic memory utilization in a system on a chip
JP6541930B2 (ja) メモリ管理システム、情報処理装置およびメモリの管理方法
JP4727480B2 (ja) 情報処理方法、情報処理システム、情報処理装置、マルチプロセッサ、情報処理プログラム及び情報処理プログラムを記憶したコンピュータ読み取り可能な記憶媒体
JP5505195B2 (ja) メモリの制御装置、及び制御方法
CN109101188B (zh) 一种数据处理方法和装置
JP6358330B2 (ja) 情報処理装置、情報処理システム、メモリ管理方法およびメモリ管理プログラム
JP4715723B2 (ja) メモリ管理装置
JP6323155B2 (ja) データ処理装置及びデータ処理装置の制御方法

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20180405

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20180409

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20180409

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20180725

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181019