(57)【要約】【課題】半導体記憶素子における記憶内容の断片化の進行の度合いを高精度に把握することができる情報処理装置及びプログラムを提供する。【解決手段】第１の検出部１４が、半導体記憶素子２６に記憶された記憶内容を第１の記憶内容に書き換える際の記憶装置１２に対する第１の書換量を検出する。第２の検出部１６が、半導体記憶素子２６に記憶された記憶内容を制御部２４により第１の記憶内容に書き換える際の第２の書換量を検出する。出力部１８が、第２の検出部１６で検出された第２の書換量が第１の検出部１４で検出された第１の書換量を上回る度合いを示す度合い情報を出力する。【選択図】図１
2014021925.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性の半導体記憶素子及び制御手段を備えた記憶装置の前記半導体記憶素子に記憶された記憶内容を第１の記憶内容に書き換える際の前記記憶装置に対する第１の書換量を検出する第１の検出手段と、
前記半導体記憶素子に記憶された記憶内容を前記制御手段により前記第１の記憶内容に書き換える際の第２の書換量を検出する第２の検出手段と、
前記第２の検出手段で検出された前記第２の書換量が前記第１の検出手段で検出された前記第１の書換量を上回る度合いを示す度合い情報を出力する出力手段と、
を含む情報処理装置。
【請求項２】
不揮発性の半導体記憶素子及び制御手段を備えた記憶装置の前記半導体記憶素子に記憶された記憶内容を特定期間に書き換える際の前記記憶装置に対する第１の書換量を検出する第１の検出手段と、
前記半導体記憶素子に記憶された記憶内容を前記制御手段により前記特定期間に書き換える際の第２の書換量を検出する第２の検出手段と、
前記第２の検出手段で検出された前記第２の書換量が前記第１の検出手段で検出された前記第１の書換量を上回る度合いを示す度合い情報を出力する出力手段と、
を含む情報処理装置。
【請求項３】
前記度合いを、前記第１の書換量と前記第２の書換量とで定まる書換量増加率とした請求項１又は請求項２に記載の情報処理装置。
【請求項４】
前記書換量増加率を、前記第１の書換量に対する前記第２の書換量の比とした請求項３に記載の情報処理装置。
【請求項５】
前記書換量増加率を、前記第１の書換量に対する前記第１の書換量と前記第２の書換量との差の比とした請求項３に記載の情報処理装置。
【請求項６】
前記出力手段により出力された前記度合い情報により示される度合いが閾値を超えた場合、前記半導体記憶素子に対して最適化処理を実施する最適化手段を更に含む請求項１〜請求項５の何れか１項に記載の情報処理装置。
【請求項７】
前記出力手段により出力された前記度合い情報により示される度合いが前記閾値を超えたか否かを定期的に判定する判定手段を更に含み、
前記最適化手段は、前記判定手段によって前記度合いが前記閾値を超えたと判定された場合、前記半導体記憶素子に対して最適化処理を実施する請求項６に記載の情報処理装置。
【請求項８】
前記最適化手段は、前記記憶内容に対する最適化の累積実施回数が予め定められた回数に達していない状態で、前記出力手段により出力された前記度合い情報により示される度合いが前記閾値を超えた場合、前記半導体記憶素子に対して最適化処理を実施する請求項６又は請求項７に記載の情報処理装置。
【請求項９】
前記最適化手段は、前記半導体記憶素子に記憶された記憶内容を他の記憶領域にミラーリングし、ミラーリング先の情報を最適化し、最適化した情報を前記半導体記憶素子に上書きすることにより最適化処理を実施する請求項６〜請求項８の何れか１項に記載の情報処理装置。
【請求項１０】
前記最適化処理の累積実施回数の増加に従って前記閾値を引き上げる請求項６〜請求項９の何れか１項に記載の情報処理装置。
【請求項１１】
前記最適化処理の累積実施回数が事前に指定された回数に到達した場合に前記閾値を引き上げる請求項６〜請求項１０の何れか１項に記載の情報処理装置。
【請求項１２】
予め定められた期間内に前記累積実施回数が前記事前に指定された回数に到達した場合に前記閾値を引き上げる請求項１１に記載の情報処理装置。
【請求項１３】
前記出力手段は、更に、前記出力手段により出力された前記度合い情報により示される度合いが予め定められた閾値を超えた場合、警報を出力する請求項１〜請求項１２の何れか１項に記載の情報処理装置。
【請求項１４】
前記記憶装置はソリッド・ステート・ドライブであり、
前記第２の検出手段は、前記ソリッド・ステート・ドライブのＳ．Ｍ．Ａ．Ｒ．Ｔ機能を利用して前記第２の書換量を検出する請求項１〜請求項１３の何れか１項に記載の情報処理装置。
【請求項１５】
前記第１の検出手段は、ＡＰＩを利用して前記第１の書換量を検出する請求項１〜請求項１４の何れか１項に記載の情報処理装置。
【請求項１６】
コンピュータを、
請求項１〜請求項１５の何れか１項に記載の情報処理装置における前記第１の検出手段、前記第２の検出手段及び前記出力手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
近年、補助記憶装置としてソリッド・ステート・ドライブ（Solid State Drive：以下、「ＳＳＤ」という）が注目されている。補助記憶装置としてはハードディスク・ドライブ（Hard Disk Drive：以下、「ＨＤＤ」という）も広く知られている。しかし、ＳＳＤの読み出し性能はＨＤＤの読み出し性能よりも優れているため、ＳＳＤは、ＨＤＤに比べ、ソフトウェアの早期立ち上げや各種データへのアクセスのスループット向上を図ることができる。その他にも、ＳＳＤは、ＨＤＤに比べ、消費電力が低く、発熱が少なく、耐衝撃性に優れ、動作音が小さい等の優れた面を有している。そのため、サーバ装置や携帯型通信端末装置（例えばスマートフォン）などの情報処理装置に対してはＳＳＤの導入がＨＤＤよりも優先的に検討される傾向にある。
【０００３】
ＳＳＤには、ＮＡＮＤ型フラッシュメモリ（以下、「ＮＡＮＤメモリ」という）が搭載されている。また、ＳＳＤには、コントローラが搭載されており、コントローラは、ＳＳＤに接続されたコンピュータがＳＳＤに対して行う書換に従ってＮＡＮＤメモリを書き換える。ＳＳＤでは、一例として図８に示すように、ＮＡＮＤメモリに記憶されている情報が断片化されている場合、新たに記憶すべき情報は、断片化部分から離れた空き領域に分散して断続的に書き込まれる。情報がＮＡＮＤメモリに断続的に記憶されると、情報を連続的に記憶する場合に比べ、コントローラによる情報の書換量が増加するため、ＮＡＮＤメモリの寿命低下の原因となり、さらに情報を記憶する速度が低下する。そのため、コンピュータは、ＮＡＮＤメモリにおける情報の断片化が所定の度合い以上に進行した場合に、情報が断片化されて生じた空き領域に他の情報を書き込むことで情報を連続化させ、情報の書換量の増加抑制を図ることができる。例えば図８に示すように情報が連続化されて断片化が解消されると、コントローラによる情報を記憶する速度が回復する。このようにＮＡＮＤメモリにおいて断片化されている情報を連続化させることは、一般的に最適化（デフラグメンテーション）と呼ばれている。
【０００４】
しかし、最適化の頻繁な実施は、ＮＡＮＤメモリの寿命を縮める要因になる。その反面、最適化の実施を過度に控えたり、最適化の実施を長期間怠ったりすると、情報の書換量が加速的に増加する（情報の書き込み速度及び読み出し速度が著しく低下する）要因にもなる。そのため、情報の断片化の進行の度合いを高精度に検出することが重要となる。
【０００５】
情報の断片化の進行の度合いを検出する技術としては、１秒あたりの入出力回数に対するＳＳＤのシーケンシャル書換速度の割合を算出し、算出した割合から情報の断片化の度合いを把握する技術が知られている（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２０１０−５４１１０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、シーケンシャル書換速度は、情報の断片化以外の要因（例えば、ＳＳＤに含まれるコントローラの性能低下やキャッシュメモリの使用可能な容量など）で低下する。従って、情報の断片化以外の要因が含まれているシーケンシャル書換速度を利用して、ＮＡＮＤメモリにおける情報の断片化の進行の度合いを把握する場合、適切な時期に最適化が行われなくなる虞がある。
【０００８】
開示の技術は、半導体記憶素子における記憶内容の断片化の進行の度合いを高精度に把握することができる情報処理装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、請求項１に記載の情報処理装置を、不揮発性の半導体記憶素子及び制御手段を備えた記憶装置の前記半導体記憶素子に記憶された記憶内容を第１の記憶内容に書き換える際の前記記憶装置に対する第１の書換量を検出する第１の検出手段と、前記半導体記憶素子に記憶された記憶内容を前記制御手段により前記第１の記憶内容に書き換える際の第２の書換量を検出する第２の検出手段と、前記第２の検出手段で検出された前記第２の書換量が前記第１の検出手段で検出された前記第１の書換量を上回る度合いを示す度合い情報を出力する出力手段と、を含んで構成した。
【００１０】
上記目的を達成するために、請求項２に記載の情報処理装置を、不揮発性の半導体記憶素子及び制御手段を備えた記憶装置の前記半導体記憶素子に記憶された記憶内容を特定期間に書き換える際の前記記憶装置に対する第１の書換量を検出する第１の検出手段と、前記半導体記憶素子に記憶された記憶内容を前記制御手段により前記特定期間に書き換える際の第２の書換量を検出する第２の検出手段と、前記第２の検出手段で検出された前記第２の書換量が前記第１の検出手段で検出された前記第１の書換量を上回る度合いを示す度合い情報を出力する出力手段と、を含んで構成した。
【００１１】
上記目的を達成するために、請求項１６のプログラムを、請求項１〜請求項１５の何れか１項に記載の情報処理装置における前記第１の検出手段、前記第２の検出手段及び前記出力手段としてコンピュータを機能させるためのものとした。
【発明の効果】
【００１２】
請求項１、請求項２及び請求項１６に係る発明によれば、本構成を有しない場合に比べ、半導体記憶素子における記憶内容の断片化の進行の度合いを高精度に把握することができる、という効果が得られる。
【００１３】
請求項３に係る発明によれば、本構成を有しない場合に比べ、第２の書換量が第１の書換量を上回る度合いを簡素な構成で高精度に把握することができる、という効果が得られる。
【００１４】
請求項４に係る発明によれば、書換量増加率を第１の書換量に対する第２の書換量の比とした構成を有しない場合に比べ、信頼度の高い書換量増加率を簡易な構成で得ることができる、という効果が得られる。
【００１５】
請求項５に係る発明によれば、書換量増加率を第１の書換量に対する第１の書換量と第２の書換量との差の比とした構成を有しない場合に比べ、信頼度の高い書換量増加率を簡易な構成で得ることができる、という効果が得られる。
【００１６】
請求項６に係る発明によれば、本構成を有しない場合に比べ、半導体記憶素子における記憶内容の断片化の進行を適切な時期に抑制することができる、という効果が得られる。
【００１７】
請求項７に係る発明によれば、本構成を有しない場合に比べ、最適化が実施されないことによる書換量の増加を抑制することができる、という効果が得られる。
【００１８】
請求項８に係る発明によれば、本構成を有しない場合に比べ、半導体記憶素子における記憶内容の断片化の進行を適切な時期に抑制することができる、という効果が得られる。
【００１９】
請求項９に係る発明によれば、本構成を有しない場合に比べ、簡素な構成で半導体記憶素子における記憶内容の断片化の進行を抑制することができる、という効果が得られる。
【００２０】
請求項１０に係る発明によれば、最適化処理の累積実施回数の増加に従って閾値を引き上げる構成を有しない場合に比べ、最適化の過度な実施を抑制することができる、という効果が得られる。
【００２１】
請求項１１に係る発明によれば、最適化処理の累積実施回数が事前に指定された回数に到達した場合に閾値を引き上げる構成を有しない場合に比べ、最適化の過度な実施を抑制することができる、という効果が得られる。
【００２２】
請求項１２に係る発明によれば、予め定められた期間内に累積実施回数が事前に指定された回数に到達した場合に閾値を引き上げる構成を有しない場合に比べ、最適化の過度な実施を抑制することができる、という効果が得られる。
【００２３】
請求項１３に係る発明によれば、本構成を有しない場合に比べ、半導体記憶素子における記憶内容の断片化が進行していることを容易に把握することができる、という効果が得られる。
【００２４】
請求項１４に係る発明によれば、本構成を有しない場合に比べ、簡素な構成で第２の書換量を検出することができる、という効果が得られる。
【００２５】
請求項１５に係る発明によれば、本構成を有しない場合に比べ、簡素な構成で第１の書換量を検出することができる、という効果が得られる。
【図面の簡単な説明】
【００２６】
【図１】実施形態に係るＡＴＭの要部機能の一例を示す機能ブロック図である。
【図２】実施形態に係るＡＴＭの電気系の要部構成の一例を示すブロック図である。
【図３】実施形態に係るＡＴＭに含まれるＳＳＤの電気系の要部構成の一例を示すブロック図である。
【図４】実施形態に係るＮＡＮＤメモリにおける記憶領域の構成の一例を示す模式図である。
【図５】実施形態に係る最適化支援処理の流れの一例を示すフローチャートである。
【図６】実施形態に係る増加率出力処理の流れの一例を示すフローチャートである。
【図７】実施形態に係る最適化処理の流れの一例を示すフローチャートである。
【図８】断片化の解消方法の一例を示す模式図である。
【発明を実施するための形態】
【００２７】
次に図面を参照して開示の技術の実施形態の一例を詳細に説明する。なお、以下の説明では、開示の技術に係る情報処理装置の一例として現金自動預け払い機（Automatic teller machine：以下、「ＡＴＭ」という）を挙げて説明する。但し、開示の技術はこれに限定されるものではない。開示の技術は、例えば、パーソナル・コンピュータやサーバ装置、スマートフォンなどに対しても適用可能である。
【００２８】
図１には、本実施形態に係るＡＴＭ１０の要部構成の一例を示すブロック図が示されている。図１に示すようにＡＴＭ１０は、記憶装置１２、ミラー用記憶装置１３、第１の検出部１４、第２の検出部１６、出力部１８、判定部２０及び最適化部２２を含んで構成されている。
【００２９】
記憶装置１２は、制御部２４及び不揮発性の半導体記憶素子２６を有する。なお、ミラー用記憶装置１３も記憶装置１２と同様に構成されている。ここでは便宜上、記憶装置１２とミラー用記憶装置１３とを別名で表しているが、互いに記憶内容を同時に複製しているので、記憶装置１２をミラー用記憶装置として用い、ミラー用記憶装置１３を記憶装置として用いてもよい。
【００３０】
第１の検出部１４は、半導体記憶素子２６に記憶された記憶内容を第１の記憶内容に書き換える際の記憶装置１２に対する第１の書換量を検出する。第２の検出部１６は、半導体記憶素子２６に記憶された記憶内容を制御部２４により第１の記憶内容に書き換える際の第２の書換量を検出する。なお、ここで言う「第１の記憶内容」としては、例えば半導体記憶素子２６に記憶された記憶内容に対して書換を開始してから特定期間経過した後の半導体記憶素子２６に記憶されている記憶内容（結果的に得られた記憶内容）を想定している。但し、開示の技術はこれに限定されるものではなく、例えば半導体記憶素子２６に記憶されるべき記憶内容として事前に定められた記憶内容を第１の記憶内容として扱ってもよい。
【００３１】
出力部１８は、第２の検出部１６で検出された第２の書換量が第１の検出部１４で検出された第１の書換量を上回る度合いを示す度合い情報を出力する。また、出力部１８は、出力部１８により出力された度合い情報により示される度合いが閾値を超えた場合、警報を出力する。
【００３２】
最適化部２２は、出力部１８により出力された度合い情報により示される度合いが閾値を超えた場合、半導体記憶素子２６に対して最適化処理を実施する。判定部２０は、出力部１８により出力された度合い情報により示される度合いが閾値を超えたか否かを定期的に判定する。最適化部２２は、判定部２０によって度合いが閾値を超えたと判定された場合、半導体記憶素子２６に対して最適化処理を実施する。
【００３３】
最適化部２２は、記憶内容に対する最適化の累積実施回数が予め定められた回数に達していない状態で、出力部１８により出力された度合い情報により示される度合いが閾値を超えた場合、半導体記憶素子２６に対して最適化処理を実施する。また、最適化部２２は、例えば、半導体記憶素子２６に記憶された記憶内容を他の記憶領域の一例であるミラー用記憶装置１３にミラーリングする。そして、ミラーリング先の情報を最適化し、最適化した情報を半導体記憶素子２６に上書きすることにより半導体記憶素子２６に対する最適化処理を実施する。なお、上記の最適化部２２の構成はあくまでも一例であり、開示の技術はこれに限定されない。例えば、最適化部２２は、半導体記憶装置２６に記憶された内容がミラーリングされているミラー用記憶装置１３の情報を最適化する。この最適化した情報を半導体記憶素子２６に上書きすることにより半導体記憶装置２６に対する最適化処理を実施できる。
【００３４】
図１に示す第１の検出部１４、第２の検出部１６、出力部１８、判定部２０及び最適化部２２は、例えばＡＴＭ１０に内蔵された図２に示すコンピュータ３０によって実現される。図２には、ＡＴＭ１０の電気系の要部構成の一例が示されている。図２に示すように、コンピュータ３０は、ＣＰＵ（Central Processing Unit：中央処理装置）３２、メモリ３４、記憶装置１２の一例である不揮発性のＳＳＤ３６、及びミラー用記憶装置１３の一例であるミラー用ＳＳＤ３７を備えている。なお、ここでは、ＳＳＤ３６及びミラー用ＳＳＤ３７を例示しているが、開示の技術はこれに限定されるものではなく、ハイブリッドＨＨＤ（Hybrid Hard Disk：磁気ディスクとフラッシュメモリを含む記憶装置）又はフラッシュメモリを有するＣＦカードやＳＤカード（登録商標）等であってもよい。ＣＰＵ３２、メモリ３４、ＳＳＤ３６、及びミラー用ＳＳＤ３７はアドレスバス、制御バス、及びシステムバスなどを含んで構成されたバス３８を介して互いに接続されている。メモリ３４は、ＣＰＵ３２による各種処理プログラムの実行時のワークエリア等として用いられる。ＳＳＤ３６には、基本ソフトウェア４０が記憶されている。本実施形態では、基本ソフトウェア４０としてＷｉｎｄｏｗｓ（登録商標）シリーズのＯＳ（Operating System）を適用しているが、これに限らず、ＵＮＩＸ（登録商標）系ＯＳやＭａｃ（登録商標）ＯＳであっても良い。
【００３５】
ＳＳＤ３６には、アプリケーションプログラムである最適化支援処理プログラム４２が記憶されている。ＣＰＵ３２は、ＳＳＤ３６から最適化支援処理プログラム４２を読み出してメモリ３４に展開し、最適化支援処理プログラム４２が有するプロセスを順次実行する。最適化支援処理プログラム４２は、第１の検出プロセス４４、第２の検出プロセス４６、出力プロセス４８、判定プロセス５０及び最適化プロセス５２を有する。ＣＰＵ３２は、第１の検出プロセス４４を実行することで、図１に示す第１の検出部１４として動作する。ＣＰＵ３２は、第２の検出プロセス４６を実行することで、図１に示す第２の検出部１６として動作する。ＣＰＵ３２は、出力プロセス４８を実行することで、図１に示す出力部１８として動作する。ＣＰＵ３２は、判定プロセス５０を実行することで、図１に示す判定部２０として動作する。ＣＰＵ３２は、最適化プロセス５２を実行することで、図１に示す最適化部２２として動作する。
【００３６】
なお、ここでは最適化支援処理プログラム４２をＳＳＤ３６から読み出す場合を例示したが、必ずしも最初からＳＳＤ３６に記憶させておく必要はない。例えば、コンピュータ３０に接続されて使用されるフレキシブルディスク、いわゆるＦＤ、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの任意の「可搬型の記憶媒体」に先ずは最適化支援処理プログラム４２を記憶させておいてもよい。そして、コンピュータ３０がこれらの可搬型の記憶媒体から最適化支援処理プログラム４２を取得して実行するようにしてもよい。また、通信網（例えばＬＡＮ）を介してコンピュータ３０に接続される他のコンピュータ又はサーバ装置などに最適化支援処理プログラム４２を記憶させておき、コンピュータ３０がこれらから最適化支援処理プログラム４２を取得して実行するようにしてもよい。
【００３７】
ＡＴＭ１０は、コンピュータ３０と各種の入出力デバイスとを電気的に接続してコンピュータ３０と各種の入出力デバイスとの間の各種情報の送受信を司るインプット・アウトプット・インターフェース（Ｉ／Ｏ）５０を備えている。また、ＡＴＭ１０は、Ｉ／Ｏ５０に接続されることにより、バス３８を介してコンピュータ３０と電気的に接続される入出力デバイスを備えている。ここでは、入出力デバイスとして、受付装置５２、現金預け払い部５４及び通信インタフェース（Ｉ／Ｆ）５６を適用している。
【００３８】
受付装置５２は、読取部５２Ａ、ハードキー５２Ｂ及びタッチパネル・ディスプレイ５２Ｃを有する。読取部５２Ａは、顧客から提供された記録媒体に含まれる情報を読み取る。読取部５２Ａとしては、通帳の記帳内容を読み取る通帳読取装置やキャッシュカードに付与された情報を読み取るカードリーダが例示できる。ハードキー５２Ｂは、ＡＴＭ１０に対して取引内容（例えば残高照会、記帳、現金の引出、現金の預入、現金の振込など）に関する指示を与える際に操作される。タッチパネル・ディスプレイ５２Ｃは、外部から触れられることによって各種情報を受け付けるために用いられるタッチパネルに各種情報を表示するために用いられるディスプレイが重ねられて形成されたものである。タッチパネル・ディスプレイ５２Ｃは、例えば、各種処理を行う上で必要な情報を表示すると共に各種指示（例えば上記の取引内容に係る指示）をソフトキーを介して受け付ける。
【００３９】
現金預け払い部５４は、現金を受け入れると共に現金を払い出す受入・支払口（図示省略）を備えており、受付装置５２を介して顧客から指示された取引内容に応じて受入・支払口を介して現金の受け入れ及び現金の払い出しを行う。また、現金の受け入れ及び現金の払い出しに付随する処理（例えば現金の計数や受け入れた現金の額を示す信号の出力など）も行う。通信Ｉ／Ｆ５６は、通信回線５８を介してサーバ装置（図示省略）に接続され、サーバ装置との間の各種情報の授受を司る。
【００４０】
図３には、ＳＳＤ３６の電気系の要部構成の一例が示されている。ＳＳＤ３６は、制御部２４の一例であるコントローラ６０、半導体記憶素子２６の一例であるＮＡＮＤメモリ６２、及びキャッシュメモリ６４を含んで構成されている。コントローラ６０は、バス３８に接続されており、コンピュータ３０からの指示に従ってＳＳＤ３６の全体の動作を制御する。ＮＡＮＤメモリ６２は、複数個のメモリチップを含んで構成されている。ＮＡＮＤメモリ６２は、一例として図４に示すように記憶領域６２Ａを有する。記憶領域６２Ａでは記憶内容がブロック単位で管理されている。ここで言う「ブロック」とは、予め定められた情報量（例えば１〜８ＭＢ程度）の情報を保持することが可能な領域のことを指す。ブロックは、一例として複数のページ（情報の書換の最小単位）で区分けされている。また、ページ単位で情報の書換が行われるため、１つのブロックにおいて図４に示すように書換に使用されたページ（書換済みページ）と未使用のページとが併存する場合がある。また、記憶領域６２Ａに記憶されている情報の消去は、コントローラ６０によってブロック単位で行われる。
【００４１】
キャッシュメモリ６４は、コントローラ６０に接続されており、本実施形態ではＤＲＡＭ（Dynamic Random Access Memory）を採用している。キャッシュメモリ６４は、各種処理プログラムの実行時や記憶領域６２Ａに対する記憶内容の書換を行う際に用いられる。例えば、コントローラ６０により記憶領域６２Ａに対する記憶内容の書換が行われる場合、キャッシュメモリ６４は、記憶領域６２Ａに対する書き込みの対象ブロック全体の記憶内容を一時的に保持するワークエリアとして用いられる。また、記憶領域６２Ａに新たに書き込む情報を一時的に保持するワークエリアとしても用いられる。
【００４２】
なお、ＳＳＤ３６及びミラー用ＳＳＤ３７におけるコントローラ６０による記憶領域６２Ａに対する記憶内容の書換とは、例えば情報の移し替え、消去、併合（マージ）及び移植という一連の処理を指す。この一連の処理によって、ＳＳＤ３６及びミラー用ＳＳＤ３７内部の記憶領域６２Ａへの電子の注入・放出によるビット値の変更が発生する。このときの１回のビット値の変更が１回の書換に相当し、この書換量が、本発明に係る第２の書換量の一例として挙げられる。また、ここで言う「情報の移し替え」とは、記憶領域６２Ａからキャッシュメモリ６４又は未使用ブロックへの情報の移し替えを指す。また、ここで言う「消去」とは、記憶領域６２Ａのブロック単位での消去を指す。また、ここで言う「併合」とは、キャッシュメモリ６４又は未使用ブロックでの情報の併合を指す。また、ここで言う「移植」とは、キャッシュメモリ６４又は未使用ブロックから記憶領域６２Ａへの情報の移植を指す。
なお、ＳＳＤ３６及びミラー用ＳＳＤ３７に対する基本ソフトウェア（ＯＳ）４０による書換とは、例えば情報の移し替え、消去、併合（マージ）及び移植という一連の処理を指す。この一連の処理によって基本ソフトウェア４０又はバスで観測可能な書換量が、本発明に係る第１の書換量の一例として挙げられる。
【００４３】
なお、本実施形態に係るＡＴＭ１０は、強制最適化モード及び指示待ち最適化モードを有している。強制最適化モードでは、最適化部２２が予め定められた条件を満足した場合に最適化を実施する。指示待ち最適化モードでは、最適化部２２が予め定められた条件を満足しているか否かに拘らず受付装置５２を介して与えられる指示に従って最適化を実施する。強制最適化モード及び指示待ち最適化モードは、受付装置５２を介して与えられる指示に従って選択的に設定される。また、本実施形態に係るＡＴＭ１０は、最適化の累積実施回数に応じて閾値を引き上げる閾値第１引き上げモード及び最適化が実施される毎に閾値を引き上げる閾値第２引き上げモードを有している。閾値第１引き上げモード及び閾値第２引き上げモードは、受付装置５２を介して与えられる指示に従って選択的に設定される。
【００４４】
次に本実施形態の作用として、ＣＰＵ３２が最適化支援処理プログラム４２を実行することによりＡＴＭ１０で行われる最適化支援処理について、図５を参照して説明する。なお、ここでは、錯綜を回避するために、強制最適化モード又は指示待ち最適化モードが設定されている場合について説明する。また、ここでは、錯綜を回避するために、閾値第１引き上げモード又は閾値第２引き上げモードが設定されている場合について説明する。また、ここでは、錯綜を回避するために、記憶領域６２Ａに記憶された記憶内容の書換指示がＣＰＵ３２に対して与えられ、与えられた書換指示に応じてＣＰＵ３２がＳＳＤ３６に対して書換を実施する場合について説明する。
【００４５】
図５に示す最適化支援処理では、先ず、ステップ１００において、第１の検出部１４により、記憶領域６２Ａに対する記憶内容の書換が必要か否かが判定される。本ステップ１００において、書換が必要である場合は判定が肯定されてステップ１０２へ移行する。本ステップ１００において、書換が必要でない場合は判定が否定されてステップ１１２へ移行する。ステップ１０２では、第１の検出部１４により、ＳＳＤ３６に対する書換が行われる。ＳＳＤ３６に対する書換とは、例えばＳＳＤ３６に対する情報の書き込み及び読み出しを指す。
【００４６】
コントローラ６０は、上記のステップ１０２でＳＳＤ３６に対する書換が行われると、この書換に応じて記憶領域６２Ａの記憶内容を書き換える。そして、ＳＳＤ３６のＳ．Ｍ．Ａ．Ｒ．Ｔ（Self-Monitoring, Analysis and Reporting Technology）機能を働かせることによって、記憶領域６２Ａに対する書換量を取得してコンピュータ３０へ提供する。つまり、Ｓ．Ｍ．Ａ．Ｒ．Ｔ機能を働かせることによって取得される所謂“Erase Count”値又は同等の機能を持つ値を利用して記憶領域６２Ａに対する書換量を取得し、取得した書換量を示す書換量情報をコンピュータ３０へ送信する。なお、Ｓ．Ｍ．Ａ．Ｒ．Ｔ機能を働かせることによって把握できる値の一例としては、書換回数の最大値、最小値及び平均値などが挙げられる。この書換回数を書換量（Byte）に変換して得た書換量が本発明に係る第２の書換量に相当する。
【００４７】
次のステップ１０４では、第１の検出部１４により、ＳＳＤ３６に対する書換量が検出され、検出された書換量がＳＳＤ３６に累積され、ＳＳＤ３６により第１累積書換量（第１の書換量の一例）として保持される。なお、第１の検出部１４は、基本ソフトウェア４０により提供されるＰＤＨ（Performance Data Helper）・ＡＰＩ（Application Programming Interface）を利用して、ＳＳＤ３６に対する書換量を検出する。
【００４８】
次のステップ１０６では、第２の検出部１６により、コントローラ６０から送信される書換量情報が受信されたか否かが判定される。本ステップ１０６において、書換量情報が受信された場合は判定が肯定されてステップ１０８へ移行する。本ステップ１０６において、書換量情報が受信されない場合は判定が否定されてステップ１１０へ移行する。
【００４９】
ステップ１１０では、第２の検出部１６により、書換量情報の受信待ちを終了する条件（受信待ち終了条件）を満足したか否かが判定される。本ステップ１１０において、受信待ち終了条件を満足した場合は判定が肯定されてステップ１１２へ移行する。本ステップ１１０において、受信待ち終了条件を満足しない場合は判定が否定されてステップ１０６へ戻る。なお、受信待ち終了条件としては、上記のステップ１０４が実行されてから予め定められた時間（例えば５秒）経過したとの条件や、コントローラ６０から送信された何らかのエラーを通知する信号が第２の検出部１６により受信されたとの条件が例示できる。
【００５０】
ステップ１０８では、第２の検出部１６により、上記ステップ１０６で受信された書換量情報により示される書換量がＳＳＤ３６に累積され、ＳＳＤ３６により第２累積書換量（第２の書換量の一例）として保持される。
【００５１】
ステップ１１２では、判定部２０により、記憶領域６２Ａに対する最適化が実施された累積回数（累積実施回数）を判定する時期（実施回数判定時期）が到来したか否かが判定される。実施回数判定時期としては、ＳＳＤ３６の使用が開示されてから又は前回に最適化を実施した時期から予め定められた時間（例えば１ヶ月）経過した時期や、ユーザが受付装置５２を介して指示した時期が例示できる。
【００５２】
次のステップ１１４では、判定部２０により、後述するステップ１２０Ｇが実行されることでＳＳＤ３６に記憶される累積実施回数が予め定められた回数を下回っているか否かが判定される。本ステップ１１４において、累積実施回数が予め定められた回数を下回っている場合は判定が肯定されてステップ１１６へ移行する。本ステップ１１４において、累積実施回数が予め定められた回数を下回っていない場合は判定が否定されてステップ１１８へ移行する。
【００５３】
ステップ１１８では、最適化部２２により、最適化を実施しない旨を報知し、その後、本最適化支援処理を終了する。なお、最適化を実施しない旨を報知する態様としては、最適化を実施しない旨を示す文字情報をタッチパネル・ディスプレイ５２Ｃに表示することで報知する態様や、最適化を実施しない旨を音声として出力する態様が例示できる。
【００５４】
ステップ１１６では、第２の検出部１６により、増加率出力処理の実行が開始される。図６には、増加率出力処理の流れの一例がフローチャートとして示されている。図６に示す増加率出力処理では、先ず、ステップ１１６Ａにおいて、ＳＳＤ３６により保持されている第１累積書換量及び第２累積書換量が出力部１８により取得される。なお、ここで出力部１８により取得された第１累積書換量としては、実施回数判定時期が到来するまでに行われた書換量（例えば上記ステップ１０４で検出された書換量）と前回に最適化を実施した際までに得られた書換量との差分が例示できる。同様に、出力部１８により取得された第２累積書換量としては、実施回数判定時期が到来するまでに行われた書換量（例えば上記ステップ１０６で受信された書換量情報により示される書換量）と前回に最適化を実施した際までに得られた書換量との差分が例示できる。
【００５５】
続いて、ステップ１１６Ｂでは、出力部１８により、書換量増加率（度合いの一例）が導出される。書換量増加率とは、例えば第１累積書換量と第２累積書換量とで定まる比であり、ここでは、上記のステップ１１６Ａで取得された第２累積書換量を上記のステップ１１６Ａで取得された第１累積書換量で除した値を採用している。但し、開示の技術はこれに限定されるものではなく、例えば第１累積書換量に対する第１累積書換量と第２累積書換量との差の比としてもよい。
【００５６】
ステップ１１６Ｃでは、出力部１８により、上記のステップ１１６Ｂで導出された書換量増加率がタッチパネル・ディスプレイ５２Ｃに表示され、その後、本増加率出力処理を終了して図５に示すステップ１２０へ移行する。このようにタッチパネル・ディスプレイ５２Ｃに書換量増加率が表示されると、ユーザ（例えばＡＴＭ１０の保守作業を行う者）は、書換量増加率を参照することで、断片化がどの程度進行しているのかを把握することが可能となる。すなわち、書換量増加率が大きい程、断片化が進行している（記憶領域６２Ａに対する書換回数制限を圧迫している）と判断することができる。
【００５７】
図５に示すステップ１２０では、判定部２０により、最適化処理の実行が開始され、最適化処理が実行された後、本最適化支援処理を終了する。図７には、最適化処理の流れの一例がフローチャートとして示されている。図７に示す最適化処理では、先ず、ステップ１２０Ａにおいて、判定部２０により、強制最適化モードが設定されているか否か判定される。本ステップ１２０Ａにおいて、強制最適化モードが設定されている場合は判定が肯定されてステップ１２０Ｂへ移行する。本ステップ１２０Ａにおいて、強制最適化モードが設定されていない場合（指示待ち最適化モードが設定されている場合）は判定が否定されてステップ１２０Ｃへ移行する。
【００５８】
ステップ１２０Ｃでは、判定部２０により、最適化を実施する指示（最適化指示）が受付装置５２を介して受け付けられたか否かが判定される。本ステップ１２０Ｃにおいて、最適化指示が受け付けられた場合は判定が肯定されてステップ１２０Ｄへ移行する。本ステップ１２０Ｃにおいて、最適化指示が受け付けられていない場合は判定が否定されてステップ１２０Ｅへ移行する。ステップ１２０Ｅでは、判定部２０により、最適化指示の受付待ちを終了する条件（受付待ち終了条件）を満足したか否かを判定する。本ステップ１２０Ｅにおいて、受付待ち終了条件を満足した場合は判定が肯定されてステップ１２０Ｆへ移行する。本ステップ１２０Ｅにおいて、受付待ち終了条件を満足しない場合は判定が否定されてステップ１２０Ｃへ戻る。
【００５９】
ステップ１２０Ｂでは、判定部２０により、上記のステップ１１６Ｂで導出された書換量増加率が閾値を上回っているか否かが判定される。本ステップ１２０Ｂにおいて、書換量増加率が閾値を上回っている場合は判定が肯定されてステップ１２０Ｄへ移行する。本ステップ１２０Ｂにおいて、書換量増加率が閾値を上回っていない場合は判定が否定されてステップ１２０Ｆへ移行する。
【００６０】
ステップ１２０Ｄでは、最適化部２２により、記憶領域６２Ａが最適化される。ここでは、最適化部２２が、例えばミラー用ＳＳＤ３７にミラーリングされている記憶領域６２Ａの記憶内容を用いて、ミラーリング先の情報を最適化し、最適化した情報を記憶領域６２Ａ（ミラー元である記憶領域６２Ａ）に上書きすることで記憶領域６２Ａを最適化する。また、ステップ１２０Ｄでは、出力部１８により、書換量増加率が閾値を上回ったことを示す警報が出力される。この警報は、例えば、文字情報としてタッチパネル・ディスプレイ５２Ｃに表示されることで出力される。これにより、ユーザは、情報の断片化があるレベルにまで進行していたことを把握することができ、更に、強制最適化モードが設定されている事実を知っている者であれば、強制最適化モードが作用して記憶領域６２Ａが最適化されたことを把握することができる。
【００６１】
続いて、ステップ１２０Ｆでは、出力部１８により、タッチパネル・ディスプレイ５２Ｃの書換量増加率が非表示され（書換量増加率が画面上から消去され）、警報が表示されている場合は警報も非表示される（警報が画面上から消去される）。次のステップ１２０Ｇでは、最適化部２２により、累積実施回数に１が加算され、ＳＳＤ３６に記憶される。
【００６２】
次のステップ１２０Ｈでは、最適化部２２により、閾値第１引き上げモードが設定されているか否かが判定される。本ステップ１２０Ｈにおいて、閾値第１引き上げモードが設定されている場合は判定が肯定されてステップ１２０Ｉへ移行する。本ステップ１２０Ｈにおいて、閾値第１引き上げモードが設定されていない場合（閾値第２引き上げモードが設定されている場合）は判定が否定されてステップ１２０Ｊへ移行する。
【００６３】
ステップ１２０Ｉでは、最適化部２２により、ＳＳＤ３６に記憶されている累積実施回数が事前に指定された閾値引き上げ回数以上であるか否かが判定される。本ステップ１２０Ｉにおいて、累積実施回数が閾値引き上げ回数以上である場合は判定が肯定されてステップ１２０Ｊへ移行する。本ステップ１２０Ｉにおいて、累積実施回数が閾値引き上げ回数以上でない場合は判定が否定されて本最適化処理を終了する。なお、閾値引き上げ回数としては、これ以上最適化を実施するとＳＳＤ３６の寿命に達する虞又は寿命に達する時期が早まる虞がある回数を採用することが好ましい。閾値引き上げ回数は、受付装置５２を介して事前に指示してもよいし、デフォルトで不変値として設定されていてもよい。
【００６４】
ステップ１２０Ｊでは、最適化部２２により、上記のステップ１２０Ｂで用いられる閾値が引き上げられた後、本最適化処理を終了する。なお、上記のステップ１２０Ｊにおいて閾値をどの程度引き上げるかは、受付装置５２を介して事前に指示してもよいし、デフォルトで不変値として設定されていてもよい。また、閾値第１引き上げモードと閾値第２引き上げモードとで閾値の引き上げる幅を異ならせてもよい。引き上げ幅をどの程度異ならせるかは、受付装置５２を介して事前に指示してもよいし、デフォルトで不変値として設定されていてもよい。このように閾値を引き上げることにより最適化が過度に実施され難くなり、最適化に起因するＳＳＤ３６の寿命の低下を抑制することができる。
【００６５】
以上詳細に説明したように、本実施形態に係るＡＴＭ１０では、特定期間に第２の検出部１６で検出された第２累積書換量が特定期間に第１の検出部１４によって検出された第１累積書換量を上回る度合いを示す度合い情報が出力される。従って、本構成を有しない場合に比べ、記憶領域６２Ａにおける記憶内容の断片化の進行の度合いを高精度に把握することができる。
【００６６】
また、本実施形態に係るＡＴＭ１０では、最適化部２２により、度合い情報により示される度合いが閾値を超えた場合、記憶領域６２Ａの記憶内容が最適化される。従って、本構成を有しない場合に比べ、記憶領域６２Ａにおける記憶内容の断片化の進行を適切な時期に抑制することができる。
【００６７】
また、本実施形態では、度合い情報により示される度合いが閾値を超えたか否かが判定部２０により定期的に判定され、判定部２０によって度合いが閾値を超えたと判定された場合、記憶領域６２Ａの記憶内容が最適化部２２により最適化される。従って、本構成を有しない場合に比べ、最適化が実施されないことによる書換量の増加を抑制することができる。
【００６８】
また、本実施形態では、最適化部２２により、記憶領域６２Ａの記憶内容に対する最適化の累積実施回数が予め定められた回数に達していない状態で、度合い情報により示される度合いが閾値を超えた場合、記憶領域６２Ａの記憶内容が最適化される。従って、本構成を有しない場合に比べ、記憶領域６２Ａにおける記憶内容の断片化の進行を適切な時期に抑制することができる。
【００６９】
また、本実施形態では、最適化部２２により、記憶領域６２Ａの記憶内容がミラーリングされたミラー用ＳＳＤ３７を用いてにミラーリングされ、ミラーリング先の情報を最適化し、最適化された情報が記憶領域６２Ａに上書きされることで記憶領域６２Ａの記憶内容が最適化される。従って、本構成を有しない場合に比べ、簡易な構成で記憶領域６２Ａにおける記憶内容の断片化の進行を抑制することができる。
【００７０】
また、本実施形態では、記憶領域６２Ａの記憶内容に対する最適化の累積実施回数の増加に従って閾値を引き上げている。従って、本構成を有しない場合に比べ、最適化の過度な実施を抑制することができる。
【００７１】
また、本実施形態では、記憶領域６２Ａに対する最適化の累積実施回数が事前に指定された回数に到達した場合に閾値を引き上げている。従って、本構成を有しない場合に比べ、最適化の過度な実施を抑制することができる。
【００７２】
また、本実施形態では、第２の検出部１６により、コントローラ６０による記憶領域６２Ａに対する書換量がＳ．Ｍ．Ａ．Ｒ．Ｔ機能を利用して検出される。従って、本構成を有しない場合に比べ、簡素な構成でコントローラ６０による記憶領域６２Ａに対する書換量を検出することができる。
【００７３】
また、本実施形態では、第１の検出部１４により、ＡＰＩを利用してＳＳＤ３６に対する書換量が検出される。従って、本構成を有しない場合に比べ、簡素な構成でＳＳＤ３６に対する書換量を検出することができる。
【００７４】
なお、上記実施形態では、書換量増加率の一例として第２累積書換量を第１累積書換量で除した値を挙げたが、これに限らず、例えば、第２累積書換量から第１累積書換量を減じた値であってもよい。このように、書換量増加率は、第２累積書換量が第１累積書換量を上回る度合いを示す値であればよい。
【００７５】
また、上記実施形態では、ＳＳＤ３６の使用が開始された後の予め定められた期間（ユーザが受付装置５２を介して事前に指定したり、予め定められた期間を規定するための何らかの条件を設定すればよい）における第１累積書換量及び第２累積書換量を用いて導出したが、開示の技術はこれに限定されない。例えばＳＳＤ３６の使用が開始されてから現時点までの第１累積書換量及び第２累積書換量を用いて書換量増加率を導出してもよい。
【００７６】
また、上記実施形態では、書換量増加率が閾値を超えた場合に記憶内容を最適化すると共に書換量増加率が閾値を超えた旨を示す警報を出力する態様を示したが、必ずしも警報の出力を要するわけではない。すなわち、書換量増加率が閾値を超えた場合に最適化を強制的に実施するのではなく、書換量増加率が閾値を超えた場合に書換量増加率が閾値を超えた旨をタッチパネル・ディスプレイ５２Ｃに表示することで、ユーザに最適化指示の入力を促すようにしてもよい。この場合、コンピュータ３０は、指示待ち最適化モードが設定されているときと同様に、ユーザからの受付装置５２を介した最適化指示の入力を待つことになる。
【００７７】
また、上記実施形態では、ＡＰＩを利用してＳＳＤ３６に対する書換量を検出する態様を示したが、開示の技術はこれに限定されるものではない。例えば、基本ソフトウェア４０に依存することなく、バス・アナライザ等のハードウェアを用いて書き込みコマンドを抽出してもよいし、Ｍａｃ（登録商標）・ＯＳのアクティビティ・モニタを用いてもよい。
【００７８】
また、上記実施形態では、ミラー用記憶装置１３を用いて最適化を実施する形態例を挙げて説明したが、これはあくまでも開示の技術を実施するための好ましい形態の一例である。つまり、ミラー用記憶装置１３を用いなくても最適化を実施することはできるし、断片化を検出することができることも言うまでもない。
【符号の説明】
【００７９】
１０  ＡＴＭ
１２  記憶装置
１３  ミラー用記憶装置
１４  第１の検出部
１６  第２の検出部
１８  出力部
２０  判定部
２２  最適化部
２４  制御部
２６  半導体記憶素子
【図１】
2014021925.tif 000003
【図２】
2014021925.tif 000004
【図３】
2014021925.tif 000005
【図４】
2014021925.tif 000006
【図５】
2014021925.tif 000007
【図６】
2014021925.tif 000008
【図７】
2014021925.tif 000009
【図８】
2014021925.tif 000010