JP2023128642A - 情報処理装置、情報処理装置の制御方法、及びプログラム - Google Patents

情報処理装置、情報処理装置の制御方法、及びプログラム Download PDF

Info

Publication number
JP2023128642A
JP2023128642A JP2022033143A JP2022033143A JP2023128642A JP 2023128642 A JP2023128642 A JP 2023128642A JP 2022033143 A JP2022033143 A JP 2022033143A JP 2022033143 A JP2022033143 A JP 2022033143A JP 2023128642 A JP2023128642 A JP 2023128642A
Authority
JP
Japan
Prior art keywords
area
swap
information processing
trim
program
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
JP2022033143A
Other languages
English (en)
Inventor
曜子 徳元
Yoko Tokumoto
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2022033143A priority Critical patent/JP2023128642A/ja
Priority to US18/176,181 priority patent/US20230280934A1/en
Publication of JP2023128642A publication Critical patent/JP2023128642A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Memory System (AREA)

Abstract

【課題】半導体記憶装置のパフォーマンスの劣化を抑止しながらスワップ領域の使用状況に応じて起動時間を短縮して、ユーザの利便性を向上すること。【解決手段】情報処理装置100では、シャットダウン時に、eMMC219に設けられるスワップ領域307の使用状況を確認して不揮発性の記憶領域に保存する(スワップ領域使用状況情報414、S508)。情報処理装置100の起動時に、マウント・スワップ有効化処理プログラム408が、前記不揮発性の記憶領域に保存されている前記スワップ領域の使用状況に基づいて、前記スワップ領域の不要になった記憶領域を前記半導体記憶装置に通知するトリム処理を実行するか否かを制御する(S607、S608、S609)。【選択図】図5

Description

本発明は、デジタル複合機をはじめとした情報処理装置におけるトリム実行制御に関する。
近年、SSD(Solid State Drive)やeMMC(embedded MultiMedia Card)のようなフラッシュメモリを用いた不揮発性の半導体記憶装置を備える情報処理装置が増えている。このような半導体記憶装置は、アクセス速度や静音性等の観点でHDD(Hard Disk Drive)よりも優れている一方で、書き換え回数に制限がある。そのため、半導体記憶装置では、内蔵するフラッシュメモリの寿命を延ばすために、半導体記憶装置が備えるコントローラによってウェアレベリングと呼ばれる分散書き込みが行われている。
ウェアレベリングでは、書き込み回数の少ないブロックをなるべく使用するように、ブロックを置き換えて書き込みが行われていく。そのため、情報処理装置にてウェアレベリング処理を実行している間は、ブロック置き換え時にブロック消去やデータコピーなどが発生し、半導体記憶装置のパフォーマンス(読み書き性能)が低下する場合がある。
不揮発性半導体記憶装置では、パフォーマンスの低下を改善する方法として、トリム(TRIM)と呼ばれる処理を行うのが一般的である。トリムとは、OS(オペレーティングシステム)のファイルシステムにとって不要になった記憶領域を、記憶装置に対して通知するコマンドである。具体的には、トリムというコマンドによって使用しなくなった領域を半導体記憶装置のコントローラに対して通知する。この通知を受けた半導体記憶装置のコントローラは、未使用領域を認識することにより、使用領域だけ集めて(ガーベージコレクション)ウェアレベリングすればよい。そのため、ウェアレベリングの際にコピーするデータ量が小さくなり、使用ブロック数も減少し、全体の書き替え回数も減少する。このように、半導体記憶装置にトリムコマンドで不要になった記憶領域を通知することにより、不必要な領域までウェアレベリング処理をする必要がなくなり、半導体記憶装置のパフォーマンス低下を抑制することが可能となる。
トリムコマンドの実行方法としては、半導体記憶装置のパーティションをマウントして使用するときに“discard”と呼ばれるマウントオプションを指定する。そして、OSのファイルシステムの仕組みの中で、半導体記憶装置に対して書き込みが発生するたびに逐次トリムコマンドを発行する方法がある(逐次トリム機能)。なお、逐次トリム機能は、トリムコマンドをアプリケーションが任意のタイミングで発行する必要がない代わりに、全体的な動作速度が遅くなる可能性がある。また、OSやファイルシステムの種類によっては逐次トリム機能に対応していない場合もある。
上述の逐次トリム機能以外でトリムコマンドを実行する方法として、アプリケーションが半導体記憶装置へのトリム発行を行う外製コマンド“fstrim”を任意のタイミングで実行する方法がある。アプリケーションがOSの提供するfstrimコマンドを半導体記憶装置の領域を指定して実行すると、OSは指定された領域のファイルシステム上の未使用領域を調べ、半導体記憶装置へトリムコマンドを発行する。この場合、アプリケーションがfstrimコマンドをアイドル時やスタンバイ時に実行したり、ユーザの指示に応じて実行したり、指定された時刻に実行したりすることになる。特許文献1では、アプリケーションが情報処理装置の使用状況を確認し、少なくとも1種類のデータの値を数え、数えられたデータが閾値に対して条件を満たすことに従ってトリム処理の実行を促す技術が提案されている。
特開2021-99642号公報
しかし、半導体記憶装置上には、ファイルシステム領域が存在してアプリケーションから明示的にfstrimコマンドを発行できる領域だけではない。例えば、スワップ領域にはファイルシステムが存在せずfstrimコマンドを発行できない領域であるが、スワップ領域に対してもトリム処理を行う必要がある。スワップ領域に対しては、OSが提供するスワップ有効化コマンドがあり、OSの機能によって、スワップ領域の使用状況に関わらずスワップ有効化時にスワップ領域に全面的にトリム処理が行われる場合がある。その場合、情報処理装置が起動する度にスワップ有効化処理を実施していると、アプリケーションが起動完了して情報処理装置が使用可能になるまでの起動時間が長くなるなどの影響があり、ユーザの利便性が低下する可能性があった。
本発明は、上記の課題を解決するためになされたものである。本発明の目的は、半導体記憶装置のパフォーマンスの劣化を抑止しながらスワップ領域の使用状況に応じて起動時間を短縮して、ユーザの利便性を向上する仕組みを提供することである。
本発明は、半導体記憶装置を備える情報処理装置であって、前記情報処理装置の起動時に、前記半導体記憶装置に設けられるスワップ領域を有効化するスワップ有効化手段と、前記スワップ領域の不要になった記憶領域を前記半導体記憶装置に通知する第1トリム処理を実行可能な第1トリム処理手段と、前記情報処理装置のシャットダウン時に、前記スワップ領域の使用状況を確認して不揮発性の記憶領域に保存する確認手段と、前記情報処理装置の起動時に、前記不揮発性の記憶領域に保存されている前記スワップ領域の使用状況に基づいて、前記第1トリム処理を実行するか否かを制御する第1制御手段と、を有することを特徴とする。
本発明によれば、半導体記憶装置のパフォーマンスの劣化を抑止しながらスワップ領域の使用状況に応じて起動時間を短縮することができ、ユーザの利便性を向上することができる。
本実施形態を示す情報処理装置のハードウェア構成の一例を示す図。 半導体記憶装置内のシステム領域のパーティション構成の一例を示す図。 情報処理装置のファームウェアモジュールの構成の一例を示す図。 第1,2実施形態におけるシャットダウン処理を説明するフローチャート。 第1実施形態におけるスワップ領域のトリム処理を説明するフローチャート。 第2実施形態におけるスワップ領域のトリム処理を説明するフローチャート。 第3実施形態におけるシャットダウン処理を説明するフローチャート。
以下、添付図面を参照して本発明の実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また、本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、実施形態に係る情報処理装置として複合機(デジタル複合機/MFP;Multi Function Peripheral/画像処理装置)を例に説明する。しかし、本発明の適用範囲は複合機に限定されるものではなく、半導体記憶装置を備える情報処理装置であれば適用可能である。
〔第1実施形態〕
<装置の説明>
図1は、本発明の一実施形態を示す情報処理装置100のハードウェア構成の一例を示す図である。
CPU210を含む制御部200は、情報処理装置100全体の動作を制御する。CPU210は、半導体記憶装置219に記憶された制御プログラムを読み出して読取制御や印刷制御、ファームアップデート制御などの各種制御処理を実行する。本実施形態では、半導体記憶装置の一例としてeMMCを用いて説明し、以下「半導体記憶装置219」を「eMMC219」と記載する。eMMC219は、フラッシュメモリ(Flash ROM)を利用した半導体記憶装置の一例である。なお、半導体記憶装置219は、MMCに限定されるものではなく、SSD等の他の半導体記憶装置であってもよい。eMMC219は、ワークエリア、またユーザデータ領域等としても用いられる。
ROM291はリードオンリーメモリであり、情報処理装置100のBIOS(Basic Input Output System)、固定パラメータ等を格納している。RAM212は、CPU210の主メモリ、ワークエリア等の一時記憶領域として用いられる。SRAM213は不揮発メモリであり、情報処理装置100で必要となる設定値や画像調整値などを記憶しており、電源を再投入してもデータが消えないようになっている。
HDD218は、ファームアップデート用のファイル格納領域を備え、画像データやユーザデータ等も記憶する。HDD218は搭載されない場合もあり、その場合は、ファームアップデート用のファイル格納領域や画像データ、ユーザデータ等はすべてeMMC219に格納される。
操作部I/F215は、操作部220と制御部200とを接続する。操作部220には、タッチパネル機能を有する液晶表示部やキーボードなどが備えられている。
プリンタI/F216は、プリンタエンジン221と制御部200とを接続する。プリンタエンジン221内に含まれる図示しないROMには、プリンタエンジンファーム231が格納されている。プリンタエンジン221で印刷すべき画像データは、プリンタI/F216を介して制御部200からプリンタエンジン221に転送され、プリンタエンジン221において記録媒体上に印刷される。
スキャナI/F217は、スキャナエンジン222と制御部200とを接続する。スキャナエンジン222内に含まれる図示しないROMには、スキャナエンジンファーム232が格納されている。スキャナエンジン222は、原稿上の画像を読み取って画像データを生成し、スキャナI/F217を介して制御部200に入力する。
ネットワークI/Fカード(NIC)214は、制御部200(情報処理装置100)をLAN110に接続する。NIC214は、LAN110上の外部装置(例えば、外部サーバ250やPC260)に画像データや情報を送信したり、逆にアップデートファームや各種情報を受信したりする。外部サーバ250は、インターネット上に存在するケースもある。PC260上に存在する図示しないWebブラウザから情報処理装置100の操作を行うこともある。なお、情報処理装置100とPC260との接続はLANに限定されるものではなく、パラレルケーブル、シリアルケーブル、USBケーブル、Bluetooth等、その他の接続方法で接続される構成でもよい。
Chipset211は、ある一連の関連のある複数の集積回路を示す。
RTC270はReal Time Clock(リアルタイムクロック)であり、計時専用のチップである。
外部電源240は、eMMC219に格納される制御プログラムからの指示により電源の供給を断つが、外部電源240が接続されていなくとも、図示しない内蔵電池から電源供給を受けるため、スリープ時も動作することができる。これにより、Chipset211に対して一部の電源供給が行われる状態に置いては、スリープからの復帰が実現できる。逆に、Chipset211に電源供給がまったく行われないシャットダウン状態の場合には、RTC270は動作することができない。
Embedded Controller280は、CPU281、RAM282を有する。CPU281は、Embedded Controller280のソフトウェアプログラムを実行し、情報処理装置100の中で一部の制御を行う。RAM282はランダムアクセスメモリで、CPU281が情報処理装置100を制御する際に、プログラムや一時的なデータの格納などに使用される。
LED290は、必要に応じて点灯し、ソフトウェアやハードウェアの異常を外部に伝えるために利用される。
<パーティション構成>
図2は、情報処理装置100が有する半導体記憶装置eMMC219内のシステム領域300のパーティション構成の一例を示す図である。
不揮発データ領域301は、不揮発で保持すべき機器の設定値などを格納する領域である。ファームウェア格納領域302は、情報処理装置100の機能を実現するファームウェアを格納する領域である。
ユーザデータ格納領域a303,ユーザデータ格納領域b304は、各種ユーザデータを格納する。ワーク領域a305,ワーク領域b306は、ジョブ実行等のワークエリアとして使用される。スワップ領域307は、情報処理装置100の動作時に使用するスワップ用の領域である。
<ファームウェア構成>
図3は、情報処理装置100が有するファームウェアモジュールの構成の一例を示す図である。
通信管理部401は、ネットワーク110に接続されるNIC214を制御して、ネットワーク110を介して外部とデータの送受信を行う。
UI制御部402は、操作部I/F215を介して操作部220への入力を受け取り、入力に応じた処理や画面出力を行う。
ブートプログラム403は、情報処理装置100の電源を入れるとEmbedded Controller280のCPU281で実行されるプログラムで、起動に関わる処理を行う。
BIOS404は、ブートプログラム403実行後にCPU210で実行されるプログラムで、起動に関わる処理を行う。
ローダー405は、BIOS404の処理が終わった後にCPU210で実行されるプログラムで、カーネル406のロード等の起動に関わる処理を行う。
カーネル406は、ローダー405の処理が終わった後にCPU210で実行されるプログラムで、OS(オペレーティングシステム)に相当するプログラムであり、起動に関わる処理を行う。
ファームウェア格納領域302は、前述の図2でも説明したeMMC219内に構成されるパーティションを示す。ファームウェア格納領域302は、起動ファームウェア407を格納する。起動ファームウェア407は、情報処理装置100が動作し機能を提供するための各プログラムを含む。
起動ファームウェア407は、CPU210で実行されるプログラムであり、情報処理装置100で各機能を提供する複数のプログラムからなる。例えば、スキャナI/F217やプリンタI/F216を制御するプログラムや起動プログラムなどである。
起動時には、起動ファームウェア407の中からマウント・スワップ有効化処理プログラム408が呼び出される。マウント・スワップ有効化処理プログラム408は、起動中に使用するeMMC219やHDD218の各領域をマウントし、スワップ領域を有効化する起動処理を行う。その後、順次前述の例で挙げた情報処理装置100の各機能を提供する複数のプログラムが起動される。本実施形態では、それらを説明上、アプリケーションプログラムa409、アプリケーションプログラムb410、アプリケーションプログラムc411とする。
情報処理装置100がシャットダウン指示を受けると、シャットダウン用プログラム412がシャットダウン処理を開始し、各アプリケーションプログラム409、410、411に終了通知を行う。シャットダウン用プログラム412は、各アプリケーションの終了を確認したところで外部電源240に電源をOFFする要求を行い、最終的に情報処理装置100の電源の供給が断たれシャットダウンが完了する。なお、上述のシャットダウン指示には、シーソースイッチ(不図示)のOFFによるシャットダウン指示、PC260または外部サーバ250からのネットワーク経由でのシャットダウン指示、操作部220からのシャットダウン指示等がある。
また、起動ファームウェア407には、アプリケーションから任意のタイミングで実施することが可能なトリム発行を行うfstrim実行プログラム413が含まれる。fstrim実行プログラム413は、アプリケーションから指定された読み書き可能な領域に対して実行され、OSのファイルシステムファイルシステムにとって不要になった記憶領域をeMMC219へ通知する。トリム処理(不要になった記憶領域をeMMC219にトリムコマンドで通知すること)により、不必要な領域までウェアレベリング処理をする必要がなくなり、eMMC219のパフォーマンス低下を抑制することができる。
シャットダウン用プログラム412は、シャットダウン処理時に、スワップ領域307の使用状況情報を取得し、スワップ領域使用状況情報414としてeMMC219内(すなわち不揮発性の記憶領域)に保存する。
HDD218は、eMMC219内には格納しきれない各種データを格納することができる。
<シャットダウン処理>
図4は、本実施形態のシャットダウン処理を説明するフローチャートである。図4に示すフローチャートの処理は、図1に示したeMMC219に格納されたプログラムにしたがって、CPU210によって実行される。なお、シャットダウン処理を開始すると、情報処理装置100はユーザ操作を受け付けない状態となり、新規の印刷ジョブ、スキャンジョブ、FAXジョブ等のジョブも受け付けない。
ファームウェア格納領域302の起動ファームウェア407が起動している状態で、CPU210は、S501において、シャットダウン指示を受信する。例えば、シーソースイッチのOFFによるシャットダウン指示、PC260または外部サーバ250からのネットワーク経由でのシャットダウン指示、操作部220からのシャットダウン指示等を受信する。このとき、CPU210がeMMC219内の起動ファームウェア407に含まれるシャットダウン用プログラム412に対してシャットダウン指示を通知する。
シャットダウン用プログラム412は、上記シャットダウン指示の通知を受けると、S502において、操作部220にシャットダウン中画面を表示する。シャットダウン用画面を表示することによって、ユーザが操作部220から情報処理装置100の操作ができない状態になる。ユーザからの操作部220からの操作を遮断した状態で、シャットダウン用プログラム412は、S503に処理を進める。
S503において、シャットダウン用プログラム412は、起動中の各アプリケーションプログラムa409、アプリケーションプログラムb410、アプリケーションプログラムc411に対してシャットダウンを指示する。シャットダウン指示を受けた各アプリケーションプログラムは、実行中のジョブキャンセル、使用していたリソースの適切な保存、解放などの終了処理を行い、終了でき次第、シャットダウン用プログラム412に通知する。
シャットダウン用プログラム412は、各アプリケーションの終了の通知を待ちながら、S504において、fstrim実行プログラム413によって、各ユーザデータ領域、ワーク領域に対してfstrim実行を指示する。
また、シャットダウン用プログラム412は、S505において、全てのアプリケーションプログラムが終了していれば、S506に進み、終了していなければ、S505でアプリケーションの終了を待つ。
上記S505で各アプリケーションの終了が確認できると、S506において、シャットダウン用プログラム412は、上記S504で実行を指示した、fstrim処理実行が終了したか確認する。具体的には、fstrim実行開始時に、シャットダウン用プログラム412がfstrim実行中を示すフラグを立てておく。fstrim実行プログラム413による処理が終了したところで該フラグを落とすことで、fstrimが終了したことを確認し、シャットダウン処理を先に進めてよいか判定する。fstrim処理実行の終了が確認でき次第、シャットダウン用プログラム412は、S507に処理を進める。
S507において、シャットダウン用プログラム412は、起動中にマウントしていた領域のアンマウントを行う。
その後S508において、シャットダウン用プログラム412は、スワップ領域307の使用状況(例えば不要データ量等)を取得し、スワップ領域使用状況情報414として、eMMC219内に保存する。具体的には、OSの提供する、領域の使用状況取得コマンドを実行し取得できた値をスワップ領域使用状況情報414として保存する。
続いてS509において、シャットダウン用プログラム412は、外部電源240に電源をOFFする要求を行い、最終的に情報処理装置100の電源の供給が断たれシャットダウンが完了する。
<起動時のマウント・スワップ有効化処理プログラムによるトリム処理>
図5は、第1実施形態における起動時のマウント・スワップ有効化処理プログラム408によるスワップ領域のトリム処理を説明するフローチャートである。図5に示すフローチャートの処理は、図1に示したeMMC219に格納されたプログラムにしたがって、CPU210によって実行される。なお、OSが提供するコマンドに、スワップ有効化コマンドがあり、スワップ有効化コマンドのオプションに、スワップを有効にする際にスワップ領域をトリムするオプションであるdiscardオプションが存在する。マウント・スワップ有効化処理プログラム408は、このdiscardオプションを設定した上でスワップ有効化コマンドを実施することで、スワップ領域のトリム処理と、スワップを有効にする処理を実行可能である。
情報処理装置100の起動処理では、ブートプログラム403、BIOS404、ローダー405、カーネル406と起動ファームウェア407が、順次起動する。
情報処理装置100の電源を入れると、ROM291からRAM212にブートプログラム403が読み込まれ、CPU210によって実行される。
CPU210は、S601においてブートプログラム403を起動し、S602においてBIOS404、S603においてローダー405、S604においてカーネル406を順次起動する。
カーネル406の起動が完了すると、S605において、CPU210は、起動ファームウェア407のうち、マウント・スワップ有効化処理プログラム408を起動する。
マウント・スワップ有効化処理プログラム408は起動されると、S606において、eMMC219内の各パーティションのマウント処理をおこなう。具体的には、このあとに起動する各アプリケーションプログラムが使用する、ユーザデータ格納領域a303、ユーザデータ格納領域b304、ワーク領域a305,ワーク領域b306をマウントする。
続いてS607において、マウント・スワップ有効化処理プログラム408は、スワップ領域使用状況情報414を参照しスワップ領域の使用状況が設定した閾値T1以上かどうかを確認する。閾値以上であれば(S607でYesの場合)、マウント・スワップ有効化処理プログラム408は、S608においてスワップ領域307のトリム処理を行い、S609においてスワップを有効にする。ここでS608及びS609を詳細に説明する。OSが提供するコマンドに、スワップ有効化コマンドがあり、スワップ有効化コマンドのオプションに、スワップを有効にする際にスワップ領域をトリムするオプションであるdiscardオプションが存在する。マウント・スワップ有効化処理プログラム408は、このdiscardオプションを設定した上でスワップ有効化コマンドを実施することで、S608のスワップ領域のトリム処理と、S609のスワップを有効にする処理を行う。
一方、スワップ領域使用状況情報414の値が閾値未満であれば(S607でNoの場合)、マウント・スワップ有効化処理プログラム408は、S609においてスワップを有効にする。この場合、マウント・スワップ有効化処理プログラム408は、discardオプションを設定せずにスワップ有効化コマンドを実施し、S608のスワップ領域のトリム処理は行わずに、S609のスワップを有効にする処理のみを行う。
その後、マウント・スワップ有効化処理プログラム408の処理終了後、CPU210は、S610において、各アプリケーションプログラムa409、アプリケーションプログラムb410、アプリケーションプログラムc411を起動する。
以上のように、マウント・スワップ有効化処理プログラム408がスワップ領域を有効化する際に、スワップ領域の使用状況に応じて、スワップ領域のトリム処理を実施の可否を判断し制御する。これによって、必要性が高いときのみスワップ領域のトリム処理を行うことが可能になる。この結果、半導体記憶装置eMMC219のパフォーマンス劣化を防ぎつつ、情報処理装置の起動時間が長くなることを抑え、ユーザの利便性を向上することが可能になる。
〔第2実施形態〕
上述の第1実施形態では、起動時のマウント・スワップ有効化処理プログラム408によりトリム処理を行う構成について説明した。第2実施形態では、起動時のローダー405によりトリム処理を行う構成について説明する。
<起動時のローダーによるトリム処理>
図6は、第2実施形態における起動時のローダー405によるスワップ領域のトリム処理を説明するフローチャートである。図6に示すフローチャートの処理は、図1に示したeMMC219に格納されたプログラムにしたがって、CPU210によって実行される。
情報処理装置100の電源を入れると、ROM291からRAM212にブートプログラム403が読み込まれ、CPU210によって実行される。S701において、ブートプログラム403を起動し、S702においてBIOS404、S703においてローダー405を順次起動する。
ローダー405は、S704において、スワップ領域使用状況情報414を参照しスワップ領域の使用状況が設定した閾値T1以上かどうかを確認する。閾値以上であれば(S704でYesの場合)、S705において、ローダー405は、スワップ領域307のトリム処理を行う。
一方、閾値未満であれば(S704でNoの場合)、ローダー405は、スワップ領域307のトリム処理を行わない。
ここでローダー405によるトリム処理については説明する。ローダー405によるトリム処理のタイミングは、まだOSにあたるカーネル406の起動前となる。そのため、ローダー405によるトリム処理は、OSを介さずに、eMMC219に搭載されているeMMC219内のコントローラソフトウェアへ、スワップ領域307への直接トリム処理を指示することで行われる。
ローダー405の処理終了後、S706において、CPU210は、カーネル406を起動する。
カーネル406の起動が完了すると、S707において、CPU210は、起動ファームウェア407のうち、マウント・スワップ有効化処理プログラム408を起動する。
マウント・スワップ有効化処理プログラム408は、S708において、第1実施形態で説明した図6のS606と同様に、eMMC219内の各パーティションのマウント処理を行う。
続いて、マウント・スワップ有効化処理プログラム408は、S709において、前述のdiscardオプションを設定せずにスワップ有効化コマンドを実行することで、トリム処理せずにスワップ領域307を有効にする。第2実施形態では、スワップ領域へのトリム処理が必要な場合、ローダー405によって、カーネル406の起動前にトリム処理を実施している。そのため、第2実施形態では、マウント・スワップ有効化処理プログラム408によるスワップ領域307へのトリム処理は行わない。
その後、マウント・スワップ有効化処理プログラム408の処理終了後、CPU210は、S710において、各アプリケーションプログラムa409、アプリケーションプログラムb410、アプリケーションプログラムc411を起動する。この処理は、図6のS606と同様である。
以上のように、起動時のローダー405が、スワップ領域の使用状況に応じて、スワップ領域のトリム処理を実施の可否を判断し制御する。これによって、必要性が高いときのみスワップ領域のトリム処理を行うことが可能になる。この結果、半導体記憶装置eMMC219のパフォーマンス劣化を防ぎつつ、情報処理装置の起動時間が長くなることを抑え、ユーザの利便性を向上することが可能になる。
〔第3実施形態〕
上述の第1、2実施形態では、起動時にスワップ領域へのトリム処理を行う構成について説明したが、起動時にスワップ領域へのトリム処理をシャットダウン時に行ってもよい。例えば、シャットダウン時にスワップ領域と合わせて、他のアプリのワーク領域の使用状況を確認する。そして、他のアプリのワーク領域の使用状況が一定の値以下であれば、シャットダウン処理中にスワップ領域へのトリム処理を行い、起動時のスワップ有効化時のTRIM処理をスキップする。以下、この処理について図7を用いて説明する。
図7は、第3実施形態におけるシャットダウン処理を説明するフローチャートである。図7に示すフローチャートの処理は、図1に示したeMMC219に格納されたプログラムにしたがって、CPU210によって実行される。なお、図7では、図4と同一のステップには同一のステップ番号を付し、説明を省略する。
第3実施形態では、S503の処理の後、シャットダウン用プログラム412は、S801に処理を進める。S801において、シャットダウン用プログラム412は、各ユーザデータ領域、ワーク領域の使用状況を確認し、S504に処理を進める。
またS507の処理の後、シャットダウン用プログラム412は、S802に処理を進める。S802において、シャットダウン用プログラム412は、上記S801で確認した各領域の使用状況が所定の閾値T2以上かどうかを確認する。閾値未満であれば(S802でNoの場合)、シャットダウン用プログラム412は、S803においてスワップ領域307のトリム処理を行う。例えば、スワップ無効化して再度スワップ有効化を実行することでスワップ領域にトリム処理を実施する。さらにS804において、シャットダウン用プログラム412は、スワップ領域使用状況情報414として閾値(図5のS607、図6のS704で示した閾値T1)未満の値を保存し、S509に処理を進める。
一方、各領域の使用状況が所定の閾値以上であれば(S802でYesの場合)、シャットダウン用プログラム412は、S508に処理を進める。
以上のように、本実施形態では、スワップ領域と合わせて、他のアプリのワーク領域の使用状況を確認することによって、スワップ領域のトリム処理をシャットダウン時、起動時のどちらで行うか制御する。他のアプリのワーク領域のトリム処理は、他のアプリのワーク領域の使用量が多ければその分不要データが多くなり長くなるが、使用量が少ない場合は短くなる。そのため、他のアプリのワーク領域の使用量が少ない場合は、シャットダウン処理時間にスワップ領域のトリム処理時間をあて、起動時のトリム処理をスキップして起動時間を短縮できる。この結果、半導体記憶装置eMMC219のパフォーマンス劣化を防ぎつつ、情報処理装置の起動時間が長くなることを抑え、ユーザの利便性を向上することが可能になる。
情報処理装置が起動する度にスワップ領域のトリムを実行する従来の構成では、アプリケーションが起動完了して情報処理装置が使用可能になるまでの起動時間が長くなるなどの影響があり、ユーザの利便性が低下してしまう。これに対して、上述した各実施形態では、スワップ領域の使用状況等に応じてスワップ領域のトリム処理を実施の可否を制御する。これにより、半導体記憶装置のパフォーマンスの低下を抑止しながら、スワップ領域の使用状況に応じて起動時間を短縮することができ、ユーザの利便性を向上することができる。
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施形態を組み合わせた構成も全て本発明に含まれるものである。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施形態の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施形態及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
100 情報処理装置
219 半導体記憶装置
405 ローダー
408 マウント・スワップ有効化処理プログラム
412 シャットダウン用プログラム
413 fstrim実行プログラム
414 スワップ領域使用状況情報

Claims (8)

  1. 半導体記憶装置を備える情報処理装置であって、
    前記情報処理装置の起動時に、前記半導体記憶装置に設けられるスワップ領域を有効化するスワップ有効化手段と、
    前記スワップ領域の不要になった記憶領域を前記半導体記憶装置に通知する第1トリム処理を実行可能な第1トリム処理手段と、
    前記情報処理装置のシャットダウン時に、前記スワップ領域の使用状況を確認して不揮発性の記憶領域に保存する確認手段と、
    前記情報処理装置の起動時に、前記不揮発性の記憶領域に保存されている前記スワップ領域の使用状況に基づいて、前記第1トリム処理を実行するか否かを制御する第1制御手段と、
    を有することを特徴とする情報処理装置。
  2. 前記第1トリム処理手段は、前記スワップ有効化手段に設けられ、前記スワップ領域を有効化する際に前記第1トリム処理を実行可能なことを特徴とする請求項1に記載の情報処理装置。
  3. 前記第1トリム処理手段は、オペレーティングシステムをロードするローダーに設けられることを特徴とする請求項1に記載の情報処理装置。
  4. 前記シャットダウン時に、前記半導体記憶装置に設けられるアプリケーションプログラムのワーク領域の不要になった記憶領域を前記半導体記憶装置に通知する第2トリム処理を実行する第2トリム処理手段と、
    前記シャットダウン時に、前記半導体記憶装置に設けられるアプリケーションプログラムのワーク領域の使用状況を確認し、該ワーク領域の使用状況に基づいて、前記第1トリム処理を実行するか否かを制御する第2制御手段と、
    を有することを特徴とする請求項1~3のいずれか1項に記載の情報処理装置。
  5. 前記第1制御手段は、前記情報処理装置の起動時に前記不揮発性の記憶領域に保存されている前記スワップ領域の使用状況が閾値を超えている場合に前記スワップ領域のトリム処理を実行するように制御し、
    前記第2制御手段は、前記スワップ領域のトリム処理を実行する場合、前記不揮発性の記憶領域に、前記閾値よりも小さい値を保存する、ことを特徴とする請求項4に記載の情報処理装置。
  6. 画像処理装置であることを特徴とする請求項1~5のいずれか1項に記載の情報処理装置。
  7. 半導体記憶装置を備える情報処理装置の制御方法であって、
    前記情報処理装置のシャットダウン時に、前記半導体記憶装置に設けられるスワップ領域の使用状況を確認して不揮発性の記憶領域に保存する確認ステップと、
    前記情報処理装置の起動時に、前記不揮発性の記憶領域に保存されている前記スワップ領域の使用状況に基づいて、前記スワップ領域の不要になった記憶領域を前記半導体記憶装置に通知するトリム処理を実行するか否かを制御する制御ステップと、
    を有することを特徴とする情報処理装置の制御方法。
  8. コンピュータを、請求項1~6のいずれか1項に記載の手段として機能させるためのプログラム。
JP2022033143A 2022-03-04 2022-03-04 情報処理装置、情報処理装置の制御方法、及びプログラム Pending JP2023128642A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2022033143A JP2023128642A (ja) 2022-03-04 2022-03-04 情報処理装置、情報処理装置の制御方法、及びプログラム
US18/176,181 US20230280934A1 (en) 2022-03-04 2023-02-28 Information processing apparatus, control method of information processing apparatus, and non-transitory storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022033143A JP2023128642A (ja) 2022-03-04 2022-03-04 情報処理装置、情報処理装置の制御方法、及びプログラム

Publications (1)

Publication Number Publication Date
JP2023128642A true JP2023128642A (ja) 2023-09-14

Family

ID=87850450

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022033143A Pending JP2023128642A (ja) 2022-03-04 2022-03-04 情報処理装置、情報処理装置の制御方法、及びプログラム

Country Status (2)

Country Link
US (1) US20230280934A1 (ja)
JP (1) JP2023128642A (ja)

Also Published As

Publication number Publication date
US20230280934A1 (en) 2023-09-07

Similar Documents

Publication Publication Date Title
US8176344B2 (en) Information processing apparatus and control method thereof
JP5460167B2 (ja) 情報処理装置、情報処理装置の制御方法及び制御プログラム
JP5917163B2 (ja) 情報処理装置、その制御方法及びプログラム並びに記憶媒体
JP2012155533A (ja) 情報処理装置、その制御方法、および制御プログラム
JP2017027244A (ja) 情報処理装置と、前記情報処理装置による不揮発記憶装置の初期化方法、及びプログラム
JP2011095916A (ja) 電子機器
KR20130029995A (ko) 화상형성장치 및 펌웨어 업그레이드 방법
JP2017228010A (ja) ストレージ制御手段、ストレージ制御手段を有する情報処理装置、ストレージ制御方法及びそのプログラム
US9442843B2 (en) Information processing apparatus, method of controlling the same, and storage medium
US9948809B2 (en) Image forming apparatus, memory management method for image forming apparatus, and program, using discretely arranged blocks in prioritizing information
US8775768B2 (en) Information processing apparatus and method of controlling the same
JP6703790B2 (ja) 情報処理装置及びその制御方法、並びにプログラム
JP2017130071A (ja) 画像処理装置及びメモリ制御プログラム並びにメモリ制御方法
JP6768425B2 (ja) 情報処理装置及びその制御方法、並びにプログラム
US11797292B2 (en) Information processing apparatus using swap file, control method therefor, and storage medium
JP5970867B2 (ja) 情報処理装置、画像形成装置およびプログラム
JP2023128642A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
US11599303B2 (en) Information processing apparatus using nonvolatile semiconductor memory device and control method therefor
JP6842641B2 (ja) 画像形成装置
JP5800861B2 (ja) 情報処理装置、情報処理装置の制御方法及び制御プログラム
US20230185710A1 (en) Information processing apparatus and method of controlling information processing apparatus
JP2021179786A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
JP7467088B2 (ja) 情報処理装置、情報処理装置の処理方法およびプログラム
US11372603B2 (en) Image forming apparatus and non-transitory computer readable medium
JP6459570B2 (ja) 画像形成装置及び起動制御方法並びに起動制御プログラム