JP2015011421A - 記憶制御装置、記憶装置、および、その記憶制御方法 - Google Patents

記憶制御装置、記憶装置、および、その記憶制御方法 Download PDF

Info

Publication number
JP2015011421A
JP2015011421A JP2013134509A JP2013134509A JP2015011421A JP 2015011421 A JP2015011421 A JP 2015011421A JP 2013134509 A JP2013134509 A JP 2013134509A JP 2013134509 A JP2013134509 A JP 2013134509A JP 2015011421 A JP2015011421 A JP 2015011421A
Authority
JP
Japan
Prior art keywords
memory
area
save
processing
data
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
JP2013134509A
Other languages
English (en)
Inventor
晴彦 寺田
Haruhiko Terada
晴彦 寺田
敬一 筒井
Keiichi Tsutsui
敬一 筒井
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.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2013134509A priority Critical patent/JP2015011421A/ja
Priority to CN201410281541.6A priority patent/CN104252418B/zh
Priority to US14/310,205 priority patent/US9836312B2/en
Publication of JP2015011421A publication Critical patent/JP2015011421A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • 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/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Abstract

【課題】メモリ間でデータ退避を行う際の処理時間を短縮する。
【解決手段】検出部は、2値以上の値のデータを記憶する第1および第2のメモリにおいて、第1のメモリに記憶されるデータを第2のメモリの対応する退避領域へ退避させる事前処理の必要性を検出する。事前処理部は、事前処理の必要性が検出されたデータの第2のメモリにおける退避領域に対して、2値以上の値の何れか1値を事前処理として書き込む。退避処理部は、事前処理によって書き込まれた退避領域に対して、データに応じて事前処理として書き込まれた1値とは異なる値を書き込む。
【選択図】図1

Description

本技術は、記憶制御装置に関する。詳しくは、メモリ間の退避処理を制御する記憶制御装置、記憶装置、および、その記憶制御方法ならびに当該方法をコンピュータに実行させるプログラムに関する。
揮発性のメインメモリに加えて不揮発性のストレージメモリを備える情報処理システムにおいては、作業中のデータを保持したまま情報処理システムの電源を遮断するために、以下に示すような休止手続および復帰手続を用いられる。すなわち、休止手続として、ホストコンピュータは、メインメモリ上で使用中の全てのデータをストレージメモリに確保された領域に退避した後に情報処理システムの電源を遮断する。また、復帰手続として、ホストコンピュータは、ストレージメモリに退避されたデータをメインメモリに復元する。従来、このようなデータ退避はシャットダウン時に実行されていた。例えば、DRAM上のデータがフラッシュメモリ上のデータと同期しているか否かを示すフラグデータを備え、シャットダウン時にフラグデータに基づいて同期の必要なデータのみをフラッシュメモリに転送する装置が提案されている(例えば、特許文献1参照。)。
特開2011−186558号公報
上述の従来技術では、システムのシャットダウン時にデータ退避を実行していた。しかしながら、データ退避に必要な全ての処理をシャットダウン時に実行した場合、シャットダウンに要する時間が長くなってしまうという問題がある。
本技術はこのような状況に鑑みて生み出されたものであり、メモリ間でデータ退避を行う際の処理時間を短縮することを目的とする。
本技術は、上述の問題点を解消するためになされたものであり、その第1の側面は、2値以上の値のデータを記憶する第1および第2のメモリにおいて上記第1のメモリに記憶されるデータを上記第2のメモリの対応する退避領域へ退避させる事前処理の必要性を検出する検出部と、上記事前処理の必要性が検出されたデータの上記第2のメモリにおける上記退避領域に対して上記2値以上の値の何れか1値を上記事前処理として書き込む事前処理部と、上記1値が書き込まれた上記退避領域に対して上記データに応じて上記2値以上の値のうち上記1値とは異なる値を書き込む退避処理部とを具備する記憶制御装置およびその記憶制御方法である。これにより、退避の必要性が検出されたデータについて事前処理を行うことにより退避の際の処理を軽減させるという作用をもたらす。
また、この第1の側面において、上記検出部は、上記第1のメモリの所定の領域に対してデータの書込みが生じるたびに上記事前処理の必要性を検出するようにしてもよい。これにより、事前処理の有無を管理することなく退避の際の処理を軽減させるという作用をもたらす。
また、この第1の側面において、上記第1のメモリの所定の領域に対してデータの書込みが生じた後に上記事前処理が行われたか否かを示す事前処理フラグをさらに具備し、上記検出部は、上記事前処理が行われていない旨を上記事前処理フラグが示している領域について上記事前処理の必要性を検出するようにしてもよい。これにより、記憶制御装置の状態に合わせて事前処理を行うという作用をもたらす。この場合において、上記退避処理部は、上記事前処理が行われていない旨を上記事前処理フラグが示している領域に対応する上記退避領域に対しては、上記1値を書き込んだ後に、上記データに応じて上記2値以上の値のうち上記1値とは異なる値を書き込むようにしてもよい。
また、この第1の側面において、復元処理要求に応じて上記退避領域に退避されているデータを上記第1のメモリへ復元させる復元処理部をさらに具備してもよい。これにより、退避したデータを第1のメモリに復元させるという作用をもたらす。
また、この第1の側面において、上記第1のメモリの所定の領域に対してデータの書込みが生じたか否かを示すダーティフラグをさらに具備し、上記退避処理部は、上記ダーティフラグがデータの書込みが生じた旨を示す領域のみについて上記2値以上の値のうち上記1値とは異なる値を書き込むようにしてもよい。これにより、データの書込みが生じた領域を選択的に退避させるという作用をもたらす。
また、この第1の側面において、上記事前処理部は、上記退避領域に対して上記1値を書き込む際には上記第2のメモリの上記退避領域以外の領域に対するパルスの発生回数よりも少ない回数のパルスを用い、上記退避処理部は、上記退避領域に対して上記2値以上の値のうち上記1値とは異なる値を書き込む際には上記第2のメモリの上記退避領域以外の領域に対するパルスの発生回数よりも少ない回数のパルスを用いるようにしてもよい。これにより、長期の記憶を要しない退避領域についてはパルス印加数を減らして退避処理を高速化させるという作用をもたらす。
また、この第1の側面において、上記事前処理部は、上記退避領域に対して上記1値を書き込む際には上記第2のメモリの上記退避領域以外の領域に対するパルス幅よりも狭いパルスを用い、上記退避処理部は、上記退避領域に対して上記2値以上の値のうち上記1値とは異なる値を書き込む際には上記第2のメモリの上記退避領域以外の領域に対するパルス幅よりも狭いパルスを用いるようにしてもよい。これにより、長期の記憶を要しない退避領域についてはパルス幅を狭くして退避処理を高速化させるという作用をもたらす。
また、この第1の側面において、上記事前処理部は、上記退避領域に対して上記1値を書き込む際には上記第2のメモリの上記退避領域以外の領域に対する書込みパルスの印加電圧よりも低い電圧を用い、上記退避処理部は、上記退避領域に対して上記2値以上の値のうち上記1値とは異なる値を書き込む際には上記第2のメモリの上記退避領域以外の領域に対する印加電圧よりも低い電圧を用いるようにしてもよい。これにより、長期の記憶を要しない退避領域については印加電圧を低くして退避処理を高速化させるという作用をもたらす。
また、この第1の側面において、上記事前処理部は、上記退避領域に対して上記1値を書き込む際には上記第2のメモリの上記退避領域以外の領域に対する書込みパルスの電流よりも小さい電流を用い、上記退避処理部は、上記退避領域に対して上記2値以上の値のうち上記1値とは異なる値を書き込む際には上記第2のメモリの上記退避領域以外の領域に対する書込みパルスの電流よりも小さい電流を用いるようにしてもよい。これにより、長期の記憶を要しない退避領域については電流を小さくして退避処理を高速化させるという作用をもたらす。
また、本技術の第2の側面は、2値以上の値のデータを記憶する第1のメモリと、上記第1のメモリに記憶されるデータを退避するための第2のメモリと、上記第1のメモリに記憶されるデータを上記第2のメモリの対応する退避領域へ退避させる事前処理の必要性を検出する検出部と、上記事前処理の必要性が検出されたデータの上記第2のメモリにおける上記退避領域に対して上記2値以上の値の何れか1値を上記事前処理として書き込む事前処理部と、上記1値が書き込まれた上記退避領域に対して上記データに応じて上記2値以上の値のうち上記1値とは異なる値を書き込む退避処理部とを具備する記憶装置である。これにより、第1のメモリから第2のメモリへ退避の必要性が検出されたデータについて事前処理を行うことにより、記憶装置における退避の際の処理を軽減させるという作用をもたらす。
本技術によれば、メモリ間でデータ退避を行う際の処理時間を短縮することができるという優れた効果を奏し得る。
本技術の第1の実施の形態における情報処理システムの構成例を示す図である。 本技術の実施の形態における情報処理システムの機能構成例を示す図である。 抵抗変化型メモリの抵抗状態を示す図である。 本技術の実施の形態におけるストレージメモリ30のメモリセルに印加する電圧パルスの一例を示す図である。 本技術の実施の形態におけるダーティフラグ211の一例を示す図である。 本技術の実施の形態における事前処理フラグ212の一例を示す図である。 本技術の第1の実施の形態における復元処理の処理手順例を示す流れ図である。 本技術の第1の実施の形態におけるメインメモリ200への書込み処理の処理手順例を示す流れ図である。 本技術の第1の実施の形態におけるストレージメモリ320への書込み処理の処理手順例を示す流れ図である。 本技術の第1の実施の形態におけるストレージメモリ320への事前処理の処理手順例を示す流れ図である。 本技術の第1の実施の形態におけるストレージメモリ320への退避処理の処理手順例を示す流れ図である。 本技術の第2の実施の形態における情報処理システムの構成例を示す図である。 本技術の第2の実施の形態におけるメインメモリ200への書込み処理の処理手順例を示す流れ図である。 本技術の第2の実施の形態におけるストレージメモリ320への退避処理の処理手順例を示す流れ図である。 本技術の第1の変形例における情報処理システムの構成例を示す図である。 本技術の第2の変形例における情報処理システムの構成例を示す図である。 本技術の第3の変形例における情報処理システムの構成例を示す図である。 本技術の第4の変形例におけるダーティフラグ211および事前処理フラグ212の一例を示す図である。 本技術の第5の変形例におけるダーティフラグ211と退避領域との関係例を示す図である。 本技術の第6の変形例におけるストレージメモリのメモリセルに印加する電圧パルスの一例を示す図である。 本技術の第11の変形例におけるストレージメモリ30のメモリセルに印加する電圧パルスの一例を示す図である。 本技術の第12の変形例におけるストレージメモリ30の退避領域のメモリセルに印加する電圧パルスの一例を示す図である。 本技術の第12の変形例におけるストレージメモリ320への書込み処理の処理手順例を示す流れ図である。 本技術の第12の変形例におけるストレージメモリ320への退避処理の処理手順例を示す流れ図である。 本技術の第13の変形例におけるストレージメモリ30の退避領域のメモリセルに印加する電圧パルスの一例を示す図である。 本技術の第15の変形例における情報処理システムの構成例を示す図である。 本技術の第15の変形例におけるメインメモリ管理テーブル213の構成例を示す図である。 本技術の第15の変形例におけるアプリケーション状態フラグ214の構成例を示す図である。 本技術の第15の変形例におけるメインメモリ200への書込み処理の処理手順例を示す流れ図である。 本技術の第15の変形例におけるメインメモリ200の割当て変更処理の処理手順例を示す流れ図である。 本技術の第15の変形例におけるアプリケーション状態フラグ214の監視処理の処理手順例を示す流れ図である。 本技術の第16の変形例における復元処理の処理手順例を示す流れ図である。 本技術の第16の変形例におけるストレージメモリ320への退避処理の処理手順例を示す流れ図である。 本技術の第16の変形例における抵抗変化型メモリの抵抗状態を示す図である。
以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.第1の実施の形態(事前処理フラグに基づいて事前処理を行う例)
2.第2の実施の形態(メインメモリ書込み時に事前処理を行う例)
3.変形例
<1.第1の実施の形態>
[情報処理システムの構成]
図1は、本技術の第1の実施の形態における情報処理システムの構成例を示す図である。この情報処理システムは、ホストコンピュータ100と、メインメモリ200と、ストレージモジュール300とを備える。メインメモリ200に記憶されているデータをストレージモジュール300に退避する処理を退避処理と称する。また、ストレージモジュール300に退避されているデータをメインメモリ200に復元する処理を復元処理と称する。なお、メインメモリ200およびストレージモジュール300はメモリシステムを構成する。
ホストコンピュータ100は、情報処理システムにおける各処理を指示または実行するものである。ホストコンピュータ100は、メインメモリ200と接続するためのメインメモリインターフェース120、および、ストレージモジュール300と接続するためのストレージインターフェース130を備える。
メインメモリ200は、ホストコンピュータ100が各処理を実行するために使用するメモリである。このメインメモリ200は、例えばDRAMなどの揮発性メモリにより構成されることを想定する。このメインメモリ200は、信号線209を介してホストコンピュータ100と接続する。なお、メインメモリ200は、特許請求の範囲に記載の第1のメモリの一例である。
ストレージモジュール300は、ホストコンピュータ100が補助記憶として使用する記憶モジュールである。ストレージモジュール300は、信号線309を介してホストコンピュータ100と接続する。このストレージモジュール300は、データを記憶するストレージメモリ320と、ストレージメモリ320を制御するストレージコントローラ310とを備える。
ストレージメモリ320は、例えば抵抗変化型メモリ(ReRAM)などの不揮発性メモリにより構成されることを想定する。ストレージメモリ320は、システムの休止時にメインメモリ200のデータを記憶しておくための退避領域(サスペンド領域)321と、通常のデータ保存を行うための通常領域とに区分される。なお、ストレージメモリ320は、特許請求の範囲に記載の第2のメモリの一例である。
ストレージコントローラ310は、ストレージメモリ320のエラーを訂正するECC(Error Check and Correction)処理部311を備える。なお、この例ではECC処理部311をストレージコントローラ310に設けているが、ホストコンピュータ100やストレージメモリ320に設けるようにしてもよい。
メインメモリ200は、所定の領域毎にダーティフラグ211および事前処理フラグ212を備えている。ダーティフラグ211は、前回の復元処理が行われた後に、その領域に対してデータの書込みが行われたか否かを保持するフラグである。事前処理フラグ212は、その領域に対して必要な事前処理が行われたか否かを保持するフラグである。これらダーティフラグ211および事前処理フラグ212の具体例については後述する。
図2は、本技術の実施の形態における情報処理システムの機能構成例を示す図である。ここでは、メインメモリ20と、ストレージメモリ30と、復元処理部11と、事前処理部12と、退避処理部13と、検出部14とが示されている。メインメモリ20は、上述のメインメモリ200に相当するものである。ストレージメモリ30は、上述のストレージメモリ320に相当するものである。メインメモリ20およびストレージメモリ30の各セルは、それぞれ「0」または「1」の2値のうち何れか一方の値をビットデータとして記憶する。
復元処理部11は、ストレージメモリ30の退避領域に退避されているデータをメインメモリ20へ復元する復元処理を行うものである。
検出部14は、メインメモリ20に記憶されるデータをストレージメモリ30の対応する退避領域へ退避させる際の事前処理の必要性を検出するものである。この第1の実施の形態では、検出部14は、事前処理フラグ212に基づいて事前処理の必要性を検出する。
事前処理部12は、検出部14によって事前処理の必要性が検出されたデータのストレージメモリ30における退避領域に対して、2値の一方の値を書き込む事前処理を行うものである。この事前処理は、退避処理を高速化するために退避処理の前に行われる処理である。
退避処理部13は、2値の一方の値が書き込まれたストレージメモリ30における退避領域に対して、退避すべきデータに応じた値を書き込むものである。事前処理がされている退避領域については、退避すべきデータに応じて2値の他方の値が書き込まれる。一方、事前処理が行われていない退避領域については、退避すべきデータに応じて2値の一方の値と他方の値の何れかが書き込まれる。
[抵抗変化型メモリの抵抗状態]
図3は、抵抗変化型メモリの抵抗状態を示す図である。抵抗変化型メモリのメモリセルは、セット動作によりLRS(低抵抗状態)に遷移し、リセット動作によりHRS(高抵抗状態)に遷移する。低抵抗状態と高抵抗状態との間で抵抗状態を可逆的に変化させることにより、1つのメモリセルによって1ビットを記憶することが可能な不揮発性メモリが実現される。
本技術の実施の形態のストレージメモリ30(320)として抵抗変化型メモリを用いた場合、リード閾値で示したリファレンス抵抗値を基準として抵抗状態を判断する。以下では、低抵抗状態のセルから読み出されるデータを「1」とし、高抵抗状態から読み出されるデータを「0」とした例について説明するが、これらは何れに対応付けても構わない。
図4は、本技術の実施の形態におけるストレージメモリ30のメモリセルに印加する電圧パルスの一例を示す図である。同図におけるaは通常書込の場合の電圧パルスの態様を示している。通常の書込動作は、プレリード処理、リセット処理およびセット処理の3つの工程に分類される。なお、ここでは、先にリセット処理を行った後にセット処理を行う例について説明するが、先にセット処理を行った後にリセット処理を行うようにしてもよい。
プレリード処理は、書込み先アドレスの現在の値を読み出して、これから書き込もうとするデータと比較する処理である。リセット処理は、プレリード処理による比較結果に基づいてそのアドレスの各ビットセルのうち「1」から「0」に反転させるべきビットセルを選択して、「0」を書き込む処理である。セット処理は、プレリード処理による比較結果に基づいてそのアドレスの各ビットセルのうち「0」から「1」に反転させるべきビットセルを選択して、「1」を書き込む処理である。リセット処理およびセット処理においては、リセットおよびセットのための電圧パルスを加えた後に、正しく書込みが行われたか否かを確認するために検証(ベリファイ)が行われる。
通常書込においては、例えば、プレリード結果が「0011」であり、書込データが「1010」である場合、最下位ビットのみを選択してリセット処理を行い、次に最上位ビットのみを選択してセット処理を行う。2ビット目および3ビット目には何の処理も行われず、既存の値が維持される。ここで、一例として、ストレージメモリ30へのアクセス単位を2KB、プレリード処理、リセット処理およびセット処理に要する時間を合計2μ秒とすると、転送レートは1GB/秒になる。
本技術の実施の形態では、退避処理を高速化するために、通常書込におけるセット処理以外の動作を事前に行っておくという手法を採用する。すなわち、同図におけるbに示すように、メインメモリ20に書込みが発生した際には、ストレージメモリ30の退避領域に対して事前処理としてプレリード処理およびリセット処理を済ませておく。これにより、退避処理を行う際には、同図におけるcに示すように、セット処理のみを行えばよいため、退避処理を高速化することができる。このセット処理のみによる書込みを高速書込と称する。
例えば、ストレージメモリ30へのアクセス単位を2KB、セット処理にかかる時間を1μ秒とすると、本技術の実施の形態による高速書込時の転送レートは2GB/秒になる。
ただし、メインメモリ20に書込みが発生した後に、何らかの理由により事前処理が間に合わず、退避処理が行われる場合がある。そのような場合には、通常書込によりプレリード処理、リセット処理およびセット処理を行う必要がある。
[ダーティフラグ]
図5は、本技術の実施の形態におけるダーティフラグ211の一例を示す図である。上述のように、ダーティフラグ211は、前回の復元処理が行われた後に、その領域に対してデータの書込みが行われたか否かを保持するフラグである。ダーティフラグ211は、メインメモリ200上に格納され、ホストコンピュータ100がメインメモリインターフェース120を用いてこれを参照し、更新する。
この例では、ダーティフラグ211はメインメモリ200のワード毎に対応して設けられ、それぞれ1ビットずつのフラグを保持する。このダーティフラグ211は、メインメモリ200の対応するワードに書込みが発生すると「1」に設定され、退避処理が行われると「0」に設定される。
ダーティフラグ211が「1」を示している場合には、前回の復元処理が行われた後に、そのワードに対してデータの書込みが行われていることを意味する。一方、ダーティフラグ211が「0」を示している場合には、前回の復元処理が行われた後に、そのワードに対してデータの書込みが行われていないことを意味する。
[事前処理フラグ]
図6は、本技術の実施の形態における事前処理フラグ212の一例を示す図である。上述のように、事前処理フラグ212は、その領域に対して必要な事前処理が行われたか否かを保持するフラグである。事前処理フラグ212は、メインメモリ200上に格納され、ホストコンピュータ100がメインメモリインターフェース120を用いてこれを参照し、更新する。
この例では、事前処理フラグ212はメインメモリ200のワード毎に対応して設けられ、それぞれ1ビットずつのフラグを保持する。この事前処理フラグ212は、メインメモリ200の対応するワードに書込みが発生すると「1」に設定され、事前処理が完了すると「0」に設定される。
事前処理フラグ212が「1」を示している場合には、そのワードについて実行すべき事前処理が存在することを意味する。すなわち、ダーティフラグ211が「1」で、かつ、事前処理フラグ212が「1」を示している場合には、必要な事前処理が実行されていないことを意味する。ダーティフラグ211が「1」で、かつ、事前処理フラグ212が「0」を示している場合には、必要な事前処理が実行されたことを意味する。
また、ダーティフラグ211が「0」の場合には、事前処理フラグ212も「0」になる。この場合、そのワードについて実行すべき事前処理が存在しないことを意味する。
[情報処理システムの動作]
図7は、本技術の第1の実施の形態における復元処理の処理手順例を示す流れ図である。ホストコンピュータ100は、ホストコンピュータ100の電源がオンになったことを検出した場合、ユーザから復元指示入力がされた場合、または、ホストコンピュータ100が自律的に復元処理の必要性を判断した場合、復元処理を開始する。これにより、ストレージメモリ320の退避領域321のデータ全てがメインメモリ200にコピーされる(ステップS912)。ただし、システムの初回起動時など、復元すべきデータが存在しない場合がある。この場合には(ステップS911:No)、退避領域321からメインメモリ200へのコピーは行わず、代わりにダーティフラグ211を全て「1」にする(ステップS913)。
図8は、本技術の第1の実施の形態におけるメインメモリ200への書込み処理の処理手順例を示す流れ図である。ホストコンピュータ100は、各種処理を実行する過程においてメインメモリ200にデータを書き込む(ステップS921)。ここでデータの書込みが行われたアドレスをアドレスPとする。ホストコンピュータ100は、メインメモリ200のアドレスPに書込みを行うたびに、そのアドレスPに対応するダーティフラグ211および事前処理フラグ212を「1」にセットする(ステップS922)。
図9は、本技術の第1の実施の形態におけるストレージメモリ320への書込み処理の処理手順例を示す流れ図である。ホストコンピュータ100は、各種処理を実行する過程においてストレージメモリ320にデータを書き込む場合がある(ステップS931)。上述のように、ストレージメモリ320には退避領域321の他に通常の書込みのための通常領域が存在する。この通常領域に対してデータを書き込む際には、高速書込ではなく通常書込が用いられる。
図10は、本技術の第1の実施の形態におけるストレージメモリ320への事前処理の処理手順例を示す流れ図である。ホストコンピュータ100は、一定時間ごとに、メインメモリ200の各アドレスについて事前処理の必要性をチェックする。ここで、事前処理の対象となるアドレスをアドレスRとする。Rには初期値として「0」が設定される(ステップS941)。
ホストコンピュータ100は、アドレスRに対応する事前処理フラグ212を参照する(ステップS942)。そして、事前処理フラグ212が「1」を示している場合には(ステップS943:Yes)、アドレスRに対応するストレージメモリ320の退避領域に対してプレリード処理およびリセット処理を行う(ステップS944)。これにより、ストレージメモリ320のアドレスRに対応する退避領域の全ビットに「0」が書き込まれる。プレリード処理およびリセット処理が完了すると、事前処理フラグ212を「0」にする(ステップS945)。一方、事前処理フラグ212が「0」を示している場合には(ステップS943:No)、これらの処理を行わない。
以上の処理を、Rの値を1つずつ加算しながら(ステップS947)、末尾アドレスになるまで繰り返す(ステップS946)。
ここで、ホストコンピュータ100は、プレリード処理を行うコマンドと、全ビット「0」のデータと、リセット処理を行うコマンドとを、ストレージモジュール300に対して逐次に送信してもよい。また、ストレージモジュール300において、事前処理を行う専用のコマンドを用意しておいて、データ「0」を送信することなくそのコマンドのみを送信するようにしてもよい。
図11は、本技術の第1の実施の形態におけるストレージメモリ320への退避処理の処理手順例を示す流れ図である。ホストコンピュータ100は、ユーザから退避指示入力がされた場合、または、ホストコンピュータ100が自律的に退避処理の必要性を判断した場合、退避処理を開始する。ここで、退避処理の対象となるアドレスをアドレスQとする。Qには初期値として「0」が設定される(ステップS951)。
ホストコンピュータ100は、アドレスQに対応するダーティフラグ211を参照する(ステップS952)。そして、ダーティフラグ211が「1」を示している場合には(ステップS953:Yes)、以下に示すアドレスQに関するステップS961までの処理を実行する。一方、ダーティフラグ211が「0」を示している場合には(ステップS953:No)、そのアドレスQに関する処理は実行しない。
ホストコンピュータ100は、アドレスQに対応する事前処理フラグ212を参照する(ステップS954)。そして、事前処理フラグ212が「0」を示している場合には(ステップS955:Yes)、メインメモリ200のアドレスQからデータを読み出して(ステップS956)アドレスQの退避領域321に高速書込を行う(ステップS957)。すなわち、この場合には、ストレージメモリ320に対してセット処理のみによる書込みを行う。
一方、事前処理フラグ212が「1」を示している場合には(ステップS955:No)、メインメモリ200のアドレスQからデータを読み出して(ステップS958)、アドレスQの退避領域321に通常書込を行う(ステップS959)。すなわち、この場合には、ストレージメモリ320に対してプレリード処理、リセット処理およびセット処理による書込みを行う。
ステップS957またはS959が完了した後に、アドレスQに対応するダーティフラグ211が「0」にクリアされる(ステップS961)。
以上の処理を、Qの値を1つずつ加算しながら(ステップS963)、末尾アドレスになるまで繰り返す(ステップS962)。
このように、本技術の第1の実施の形態では、事前処理フラグ212を用いて退避の必要性を検出し、これに基づいて事前処理を行うことにより、退避処理を高速化することができる。
<2.第2の実施の形態>
[情報処理システムの構成]
図12は、本技術の第2の実施の形態における情報処理システムの構成例を示す図である。この第2の実施の形態における情報処理システムは、全体の構成としては第1の実施の形態の場合と同様であるため、ここでは説明を省略する。ただし、この第2の実施の形態では、事前処理フラグ212を設けていない点において第1の実施の形態と異なっている。この第2の実施の形態では、ホストコンピュータ100がメインメモリ200に書込みを行うたびに、速やかに事前処理を実行する。すなわち、この第2の実施の形態では、検出部14は、メインメモリ200への書込みによって退避の必要性を検出する。これにより、事前処理フラグ212を用いることなく、退避処理が実行される前に事前処理を済ませることができる。
[情報処理システムの動作]
この第2の実施の形態における情報処理システムでは、復元処理およびストレージメモリ320への書込み処理については、第1の実施の形態の場合と同様であるため、ここでは説明を省略する。
図13は、本技術の第2の実施の形態におけるメインメモリ200への書込み処理の処理手順例を示す流れ図である。ホストコンピュータ100は、各種処理を実行する過程においてメインメモリ200にデータを書き込む(ステップS921)。ここでデータの書込みが行われたアドレスをアドレスPとする。ホストコンピュータ100は、メインメモリ200のアドレスPに書込みを行うたびに、そのアドレスPに対応するダーティフラグ211を「1」にセットする(ステップS923)。そして、アドレスPに対応するストレージメモリ320の退避領域に対してプレリード処理およびリセット処理を行う(ステップS924)。
図14は、本技術の第2の実施の形態におけるストレージメモリ320への退避処理の処理手順例を示す流れ図である。ホストコンピュータ100は、ユーザから退避指示入力がされた場合、または、ホストコンピュータ100が自律的に退避処理の必要性を判断した場合、退避処理を開始する。ここで、退避処理の対象となるアドレスをアドレスQとする。Qには初期値として「0」が設定される(ステップS951)。
ホストコンピュータ100は、アドレスQに対応するダーティフラグ211を参照する(ステップS952)。そして、ダーティフラグ211が「1」を示している場合には(ステップS953:Yes)、以下に示すアドレスQに関するステップS961までの処理を実行する。一方、ダーティフラグ211が「0」を示している場合には(ステップS953:No)、そのアドレスQに関する処理は実行しない。
ホストコンピュータ100は、メインメモリ200のアドレスQからデータを読み出して(ステップS956)アドレスQの退避領域321に高速書込を行う(ステップS957)。すなわち、ストレージメモリ320に対してセット処理のみによる書込みを行う。なお、この第2の実施の形態ではメインメモリ200への書込みの際に事前処理を行っているため、通常書込による退避処理は行われない。
ステップS957が完了した後に、アドレスQに対応するダーティフラグ211が「0」にクリアされる(ステップS961)。
以上の処理を、Qの値を1つずつ加算しながら(ステップS963)、末尾アドレスになるまで繰り返す(ステップS962)。末尾アドレスになるまで処理を行った後(ステップS962:Yes)、データ退避が完了した旨がホストコンピュータ100に通知される(ステップS964)。
このように、本技術の第2の実施の形態では、メインメモリ200への書込みによって退避の必要性を検出し、これに基づいて事前処理を行うことにより、退避処理を高速化することができる。
<3.変形例>
以下では、上述の第1の実施の形態を前提とした変形例について説明するが、これら変形例は第2の実施の形態に対して同様に適用することができる。
[第1の変形例]
図15は、本技術の第1の変形例における情報処理システムの構成例を示す図である。上述の第1の実施の形態では、ホストコンピュータ100からの指示に従ってメインメモリ200とストレージモジュール300との間のデータ転送を行っていたが、この第1の変形例ではホストコンピュータ100を介することなくデータ転送が行われる。具体的には、メインメモリ200とストレージモジュール300との間は信号線208により接続されており、これを介して直接データ転送を行う機構を備えている。この機構を利用することにより、ホストコンピュータ100は、事前処理が完了している領域を退避する際にメインメモリ200からデータの読出しを行うことなく、ストレージコントローラ310に退避コマンドを送信するだけで済むようになる。
退避コマンドを受信したストレージコントローラ310は、図11に示した退避処理を自ら実行する。すなわち、ストレージコントローラ310は、メインメモリ200上のダーティフラグ211と事前処理フラグ212を参照し、その参照値に応じてメインメモリ200からストレージメモリ320へデータの退避を行う。退避処理が完了すると、ストレージコントローラ310からホストコンピュータ100へ「退避完了」を通知する。
通常の場合、退避処理はシステムを休止する際に行われるため、ホストコンピュータ100が退避コマンドを発行してから「退避完了」を受信するまでの間には、メインメモリ200の退避対象となる領域に対して書込みは行われない。ただし、例えばユーザがキーボード操作を行った等のために、メインメモリ200の退避対象となる領域への書込みが必要になる場合も生じ得る。この場合、ホストコンピュータ100は「退避中止」を意味するコマンドをストレージコントローラ310に送信した後に、メインメモリ200への書込みを続行する。ストレージコントローラ310は「退避中止」を受信すると、そのとき退避処理中のアドレスのダーティフラグ211を「1」に設定して退避処理を終了する。この場合には、ストレージコントローラ310からホストコンピュータ100への完了通知は行わない。
また、ストレージコントローラ310は、復元コマンドを受信すると、図7に示した復元処理を自ら実行して、その後でホストコンピュータ100に「復元完了」を通知する。ホストコンピュータ100は、復元コマンドの発行後「復元完了」を受信するまでは、復元されるべき領域のメインメモリ200へのアクセスは行わない。
同様に、ストレージコントローラ310は、図10に示した事前処理をホストコンピュータ100からの指示なしに自律的に行う。なお、この第1の変形例において、事前処理は、第1の実施の形態と同様にホストコンピュータ100が行うようにしてもよい。
[第2の変形例]
図16は、本技術の第2の変形例における情報処理システムの構成例を示す図である。上述の第1の実施の形態では、ホストコンピュータ100からメインメモリ200およびストレージメモリ320に対して個別に指示を与えていたが、この第2の変形例では、それらを統合して取り扱う。すなわち、メインメモリ200およびストレージメモリ320は統合メモリモジュール400に統合される。そして、統合メモリモジュール400の統合メモリコントローラ410により制御される。
ホストコンピュータ100は、統合メモリモジュール400と接続するためのメモリインターフェース140を備える。統合メモリコントローラ410は、信号線409を介してメモリインターフェース140に接続する。統合メモリコントローラ410は、ストレージメモリ320のエラーを訂正するECC処理部411を備える。なお、この例ではECC処理部411を統合メモリコントローラ410に設けているが、ホストコンピュータ100やストレージメモリ320に設けるようにしてもよい。
変形例1と同様に、退避処理または復元処理において、ホストコンピュータ100は統合メモリコントローラ410に退避の開始または復元の開始のコマンドを送るだけで済み、退避処理または復元処理の実行は統合メモリコントローラ410が行う。事前処理も同様に統合メモリコントローラ410が自律的に行う。さらに、この第2の変形例では、ホストコンピュータ100からメインメモリ200への書込みがあった際に、当該アドレスのダーティフラグ211および事前処理フラグ212を「1」にセットする操作も、統合メモリコントローラ410によって行われる。
この第2の変形例では、メインメモリ200とストレージメモリ320との間のデータ転送制御を、ホストコンピュータ100を介することなく、統合メモリモジュール400において独立して行うことができる。
[第3の変形例]
図17は、本技術の第3の変形例における情報処理システムの構成例を示す図である。上述の第1の実施の形態では、ダーティフラグ211および事前処理フラグ212をメインメモリ200に保持していたが、この第3の変形例では専用のフラグメモリ330をストレージモジュール300に設ける。フラグメモリ330は、それらのフラグをダーティフラグ331および事前処理フラグ332として保持する。
ホストコンピュータ100は、ストレージインターフェース130を用いてダーティフラグ331および事前処理フラグ332を参照し、更新する。第1の実施の形態では、フラグの書込みのためにメインメモリ200の帯域の一部が使用されるが、この第3の変形例ではメインメモリ200は使用されない。また、フラグへのアクセスはビット単位の読み書きであるため、メインメモリ200よりもアクセス単位の小さい専用のメモリをもつことで、アクセス遅延や消費電力を低減することができる。
[第4の変形例]
上述の第1の実施の形態では、ダーティフラグ211および事前処理フラグ212はメインメモリ200のアドレスごとに記録するものと想定したが、メインメモリ200の特定のアドレス範囲ごとに1ビットのフラグを設けてもよい。図18は、本技術の第4の変形例におけるダーティフラグ211および事前処理フラグ212の一例を示す図である。
例えば、メインメモリ200の最小アクセス単位を64ビット、ストレージメモリ320の最小アクセス単位を1Kバイトとしたとき、同図のように、メインメモリ200の連続する16アドレスに対して両フラグを1ビットずつ備える。このとき、ホストコンピュータ100は、例えば0x0000乃至0x000Fの範囲において、いずれか1ビットでもメインメモリ200に書込みが発生した場合には、対応するダーティフラグ211を「1」にする。
この第4の変形例では、特定のアドレス範囲ごとにダーティフラグ211および事前処理フラグ212を設けることにより、両フラグに要する記憶領域を減らすことができる。
[第5の変形例]
上述の第1の実施の形態では、ダーティフラグ211に対応する退避領域を1つ設けることを想定していたが、これは複数設けるようにしてもよい。図19は、本技術の第5の変形例におけるダーティフラグ211と退避領域との関係例を示す図である。メインメモリ200のアドレス空間を任意の大きさに分割し(例えば221および222)、それぞれを仮想的なアドレス空間としてダーティフラグ231および232を設ける。
また、ダーティフラグの各々に対応する退避領域を、1つのダーティフラグに対して1つ以上設ける。例えば、ダーティフラグ231に対して退避領域322および323を、ダーティフラグ232に対して退避領域324および325をそれぞれ設ける。そして、それぞれのダーティフラグが、どの退避領域に対応しているのかを識別するため、ダーティフラグ毎に、退避領域の位置を示すポインタを備える。ここで、ポインタとは、例えば、当該ダーティフラグに対応する退避領域の、ストレージメモリ320全体のアドレス空間における先頭アドレスを意味する。
例えば、メインメモリ200が複数のメモリチップからなるとき、メモリチップ毎にダーティフラグを設けておけば、あるメモリチップのみについてのみデータ退避を行い、当該メモリチップへの電源供給を遮断または制限してシステムの省電力化を行うことができる。
また、複数のアプリケーションを同時実行することのできるシステムにおいて、実行中のアプリケーション毎に、当該アプリケーションに割当てられているメモリ空間のダーティフラグを作成してもよい。ユーザからの入力待ち、または、バックグラウンドジョブとなっているアプリケーションに対して退避処理を行うことで、メインメモリの一部を開放または電源遮断することができる。
[第6の変形例]
上述の第1の実施の形態では、通常の書込動作が、プレリード処理、リセット処理およびセット処理の3つの工程に分類されることを想定していた。これに対し、ストレージメモリ320の特性によっては、プレリード処理を省略しても動作可能な場合がある。図20は、本技術の第6の変形例におけるストレージメモリのメモリセルに印加する電圧パルスの一例を示す図である。
この場合、リセット処理およびセット処理において、書込み前のビットセルの現在の状態が「1」であるか「0」であるかによらず、書き込むデータの当該ビットが「1」ならばセットパルスを、「0」ならばリセットパルスを全ビットに印加する。したがって、事前処理においてはプレリード処理を行うことなくリセット処理を、高速書込においてはセット処理を、それぞれ書込みデータに従って実行することになる。
この第6の変形例では、第1の実施の形態よりもプレリード処理に要する時間を省くことができるため、全体の書込み時間を高速化することができる。一方、プレリード処理を行わないことによって、ビットセルに連続して同じ値を書き込む可能性が生じるため、セルの書換寿命の消耗は早まる可能性がある。したがって、ストレージメモリ320の特性に応じて書込動作の内容を選択することが必要になる。
[第7の変形例]
上述の第1の実施の形態では、リセット処理を実行した後にセット処理を実行することを想定していた。これに対し、セット処理を実行した後にリセット処理を実行するようにしてもよい。すなわち、アドレスRの事前処理フラグを参照して、その値が「1」だったときには、プレリード処理とセット処理により当該アドレスの全ビットに「1」を書き込む。また、退避処理において、アドレスQの事前処理フラグを参照して、その値が「0」だったときには、事前にセット処理が行われているため、メインメモリ200のアドレスQのデータを、リセット処理のみにより退避領域に書き込むことができる。
[第8の変形例]
上述の第1の実施の形態では、メインメモリ200に書込みが発生した際、ホストコンピュータ100がダーティフラグ211および事前処理フラグ212を更新していたが、その操作はホストコンピュータ100以外が行うようにしてもよい。
例えば、第1の変形例1(図15)や第3の変形例 (図17)において、ホストコンピュータ100はメインメモリ200への書込みの際、メインメモリ200の書込先アドレスのみをストレージコントローラ310に送信する。これにより、ストレージコントローラ310がホストコンピュータ100に代わってダーティフラグ211および事前処理フラグ212を更新することができる。
また、第2の変形例(図16)では、ホストコンピュータ100からメインメモリ200への書込みアドレスを統合メモリコントローラ410が常に受け取る。そのため、統合メモリコントローラ410がホストコンピュータ100に代わってダーティフラグ211および事前処理フラグ212を更新することができる。
[第9の変形例]
上述の第1の実施の形態では、ホストコンピュータ100が一定時間ごとに事前処理フラグ212を参照して事前処理を行っていたが、その操作はホストコンピュータ100以外が行うようにしてもよい。
例えば、第1の変形例1(図15)や第3の変形例 (図17)において、ストレージコントローラ310は、ホストコンピュータ100を介さずにダーティフラグ211や事前処理フラグ212にアクセスすることができる。同様に、第2の変形例(図16)の統合メモリコントローラ410は、ホストコンピュータ100を介さずにダーティフラグ211や事前処理フラグ212にアクセスすることができる。これにより、ホストコンピュータ100からの指示なしに、一定時間ごとに事前処理を実行することができる。
[第10の変形例]
上述の第1の実施の形態では、退避処理および復元処理をホストコンピュータ100が行っていたが、これらの処理はホストコンピュータ100以外が行うようにしてもよい。
例えば、第1の変形例1(図15)や第3の変形例 (図17)において、ストレージコントローラ310は、ホストコンピュータ100からの開始の指示を受けて、退避処理または復元処理を実行してもよい。同様に、第2の変形例(図16)の統合メモリコントローラ410は、ホストコンピュータ100からの開始の指示を受けて、退避処理または復元処理を実行してもよい。
このとき、ホストコンピュータ100からストレージコントローラ310または統合メモリコントローラ410に対しては、「退避の開始」または「復元の開始」を示すコマンドを送るだけでよい。ダーティフラグ211や事前処理フラグ212の参照、および、メインメモリ200とストレージメモリ320の間のデータ転送は、ストレージコントローラ310または統合メモリコントローラ410によって行われる。また、ストレージコントローラ310または統合メモリコントローラ410は、退避や復元の完了をホストコンピュータ100に通知する。ホストコンピュータ100は、データ退避完了通知を受信した後、メインメモリ200、ストレージメモリ320、ストレージコントローラ310または統合メモリコントローラ410等の電源をオフにする。この場合、電源をオフにすることなく、システム全体を省電力状態に移行させるようにしてもよい。
[第11の変形例]
上述の第1の実施の形態では、図4に示したように、リセット処理およびセット処理のためのパルス印加はそれぞれ1回を想定していた。これに対し、ストレージメモリ320の特性によっては、リセット処理およびセット処理の際にそれぞれ複数回のパルス印加を行う方がより適切な場合がある。例えば、セルの書込み特性にばらつきがあるため、ほとんどのセルは2回のパルスで正常に書き込むことが可能である一方、残りの極少数のセルに正常に書き込むためには4回のパルスが必要な場合がある。
図21は、本技術の第11の変形例におけるストレージメモリ30のメモリセルに印加する電圧パルスの一例を示す図である。リセット処理は、1回以上のリセットパルスと、0回以上の検証リードからなる。リセットパルスによって、ビットセルに「0」を書き込むための電圧を一定時間印加し、その後、検証リードによってビットセルの状態を読み取って、正しく「0」が書き込まれているか否かを検査する。次に、1回目のパルスで正しく書き込めなかったビットセルに対して再びリセットパルスを印加し、検証リードを行う。これをN回繰り返してリセット処理を完了する。同様に、セット処理では、セットパルスによってビットセルに「1」を書き込むための電圧を一定時間印加した後に検証リードするという処理を、M回繰り返す。
この第11の変形例においては、上述の第1の実施の形態と同様に、事前処理の際にはプレリード処理およびリセット処理を行い、その後の退避処理ではセット処理を行う。ただし、上述の第7の変形例のように、事前処理の際にはプレリード処理およびセット処理を行い、その後の退避処理ではリセット処理を行うようにしてもよい。また、上述の第6の変形例のように、ストレージメモリ320の特性によっては、プレリード処理を省略してもよい。
[第12の変形例]
上述の第11の変形例では、N回のリセットパルス印加とM回のセットパルス印加とを想定したが、退避処理についてはパルス印加の数を削減することが可能である。通常書込におけるパルス印加数は、長期間(例えば、10年)電源を遮断した状態で保存されても、十分な信頼性が保たれるよう設定される。これに対し、パルス印加数を減らすと、通常書込の場合に比べてエラーが増加するが、ECCの使用を前提とすることにより、短期間(例えば、1週間)であればデータの保持を保証可能である。すなわち、データ退避の後、ほとんどの場合に短期間で復元されるような使用環境においては、パルス印加数を減らした書込みにより、データ退避に要する時間を短縮できることになる。そこで、この第12の変形例では、通常領域に対する書込みには第11の変形例により示した回数によるパルス印加を行う一方で、退避領域に対する書込みにはパルス印加数を削減することとする。
図22は、本技術の第12の変形例におけるストレージメモリ30の退避領域のメモリセルに印加する電圧パルスの一例を示す図である。この第12の変形例では、退避領域に対する書込みには、通常領域に対する書込みと比べてリセット処理およびセット処理におけるパルス印加数を半減させる。すなわち、リセット処理においてはN/2回のリセットパルス印加とN/2回の検証を行い、セット処理においてはN/2回のセットパルス印加とN/2回の検証を行うこととする。
この第12の変形例においては、上述の第1の実施の形態と同様に、事前処理の際にはプレリード処理およびリセット処理を行い、その後の退避処理ではセット処理を行う。ただし、上述の第7の変形例のように、事前処理の際にはプレリード処理およびセット処理を行い、その後の退避処理ではリセット処理を行うようにしてもよい。また、上述の第6の変形例のように、ストレージメモリ320の特性によっては、プレリード処理を省略してもよい。
図23は、本技術の第12の変形例におけるストレージメモリ320への書込み処理の処理手順例を示す流れ図である。この第12の変形例では、退避領域に対する書込みにはパルス印加数を半減させるが、通常領域に対してデータを書き込む際には、半減しない通常のパルス印加数により書込みを行う(ステップS932)。
図24は、本技術の第12の変形例におけるストレージメモリ320への退避処理の処理手順例を示す流れ図である。この第12の変形例における処理手順例は、図11に示した第1の実施の形態における退避処理と基本的には同様である。ただし、退避領域に書込みを行う際、パルス印加数を半減させる点において第1の実施の形態とは異なっている(ステップS967)。
この第12の変形例では、退避領域に書込みを行う際のパルス印加数を、通常領域の場合と比べて削減することにより、退避処理を高速化することができる。
[第13の変形例]
上述の第12の変形例では、退避領域に書込みを行う際のパルス印加数を削減したが、パルス幅を狭くしても同様の効果を得ることができる。
図25は、本技術の第13の変形例におけるストレージメモリ30の退避領域のメモリセルに印加する電圧パルスの一例を示す図である。この第13の変形例では、退避領域に対する書込みには、通常領域に対する書込みと比べてリセット処理およびセット処理におけるパルス幅を半減させる。
この第13の変形例では、退避領域に書込みを行う際のパルス幅を、通常領域の場合と比べて狭くすることにより、退避処理を高速化することができる。なお、この例では、書込みパルスのパルス幅を狭くしたが、書込みパルスについて電圧や電流を弱くしてもよい。すなわち、退避領域に対する書込みには、通常領域に対する書込みと比べてリセット処理およびセット処理におけるパルスの印加電圧を低くしてもよい。また、退避領域に対する書込みには、通常領域に対する書込みと比べてリセット処理およびセット処理におけるパルスの電流を小さくしてもよい。
[第14の変形例]
上述の第12および13の変形例では、退避領域に対する書込みにはパルス印加数やパルス幅を削減しているため、退避領域のデータは短期間のデータ保持しか保証されなくなってしまう。そのため、システムが長期間休止する場合や、退避領域の一部が長期間更新されない場合にもデータ保持を保証するために、ホストコンピュータ100は一定期間(例えば1週間)毎に、退避領域全体に対してデータの読出しと再書込みを行ってもよい。また、ホストコンピュータ100が一定期間毎に、ストレージコントローラ310にリフレッシュコマンドを送り、これに応答してストレージコントローラ310が退避領域全体に対してデータ読出しと再書込みを行うようにしてもよい。
[第15の変形例]
上述の第1の実施の形態では、ホストコンピュータ100からメインメモリ200に書込みが行われるたびにダーティフラグ211を「1」にしていたが(ステップS922)、これとは異なるタイミングで「1」にしてもよい。この第15の変形例では、将来書込を行うであろうアドレスを予測して、そのアドレスに対応するダーティフラグ211を「1」にする。すなわち、アプリケーション毎に割り当てられた仮想アドレスを管理して、その割当に変更がある度にそのアドレスに対応するダーティフラグ211および事前処理フラグ212を「1」にする。また、アプリケーション毎に直前の復元処理の後にデータ更新が行われたか否かを管理して、データ更新が行われたアプリケーションが使用する全てのアドレスについて、対応するダーティフラグ211および事前処理フラグ212を「1」にする。
図26は、本技術の第15の変形例における情報処理システムの構成例を示す図である。この第15の変形例では、メインメモリ200において、メインメモリ管理テーブル213およびアプリケーション状態フラグ214を備える点において第1の実施の形態と異なっているが、その他の点は第1の実施の形態と同様である。
メインメモリ管理テーブル213は、ホストコンピュータ100上で複数のアプリケーションが動作するとき、各アプリケーションが認識する仮想アドレスがメインメモリの各物理アドレスにどのように対応しているかを示すテーブルである。
アプリケーション状態フラグ214は、動作中のアプリケーションのリストと、そのアプリケーションそれぞれについて、前回の復元処理の後、データ更新が行われた否かを示すフラグである。例えば、このフラグが「0」の場合には前回の復元処理から更新がされていない旨を示し、このフラグが「1」の場合には前回の復元処理から更新がされている旨を示す。
図27は、本技術の第15の変形例におけるメインメモリ管理テーブル213の構成例を示す図である。このメインメモリ管理テーブル213は、メインメモリ200の各アドレスに対応して、割当て先のアプリケーションとその仮想アドレスとを管理する。何れのアプリケーションにも割り当てられていないアドレスについては、「空き」である旨が示されている。
ホストコンピュータ100は、新たなアプリケーションを起動するとき、または、起動中のアプリケーションに占有させるメモリ領域を追加するとき、当該アプリケーションが必要とする数だけ、メインメモリ200の空き領域を割当てる。このとき、メインメモリ管理テーブル213の該当するアドレスの項目に、新たな割当て先(アプリケーション)と仮想アドレスとの対を記録する。また、アプリケーションを終了するとき、または、起動中のアプリケーションが占有するメモリ領域の一部を開放するとき、メインメモリ管理テーブル213の該当するアドレスの項目を「空き」に書き換える。
図28は、本技術の第15の変形例におけるアプリケーション状態フラグ214の構成例を示す図である。このアプリケーション状態フラグ214は、メインメモリ200にロードされているアプリケーションの各々に対応して、前回の復元処理からデータ更新が行われた否かを保持する。
このアプリケーション状態フラグ214は、一定時間毎に、または、退避処理が行われる前にチェックされる。その結果、前回の復元処理からデータ更新が行われている場合には、そのアプリケーションが使用する全てのアドレスについて、対応するダーティフラグ211および事前処理フラグ212を「1」にする。
図29は、本技術の第15の変形例におけるメインメモリ200への書込み処理の処理手順例を示す流れ図である。この第15の変形例では、第1の実施の形態とは異なり、メインメモリに書込みを行う際には(ステップS921)、ダーティフラグ211の操作を行う必要はない。それに代えて、以下に示すように、メインメモリ200の割当てが変更される際にダーティフラグ211の操作を行う。
図30は、本技術の第15の変形例におけるメインメモリ200の割当て変更処理の処理手順例を示す流れ図である。上述のように、ホストコンピュータ100は、新たなアプリケーションを起動するとき、または、起動中のアプリケーションに占有させるメモリ領域を追加するとき、メインメモリ管理テーブル213の該当するアドレスの項目を変更する。また、アプリケーションを終了するとき、または、起動中のアプリケーションが占有するメモリ領域の一部を開放するときも、メインメモリ管理テーブル213の該当するアドレスの項目を変更する。このようなメインメモリ管理テーブル213の更新が生じた際(ステップS971)、更新したアドレスに対応するダーティフラグ211および事前処理フラグ212を全て「1」にする(ステップS973)。但し、更新後の状態が「空き」の場合は(ステップS972:Yes)、退避処理は必要ないため、ダーティフラグ211および事前処理フラグ212の変更は行われない。
図31は、本技術の第15の変形例におけるアプリケーション状態フラグ214の監視処理の処理手順例を示す流れ図である。この第15の変形例では、アプリケーション状態フラグ214が一定時間毎にチェックされる。また、退避処理を行う前にもアプリケーション状態フラグ214がチェックされる。すなわち、前回の復元処理からデータ更新が行われている旨(ここでは「1」)をアプリケーション状態フラグ214が示すか否かがチェックされる(ステップS981)。そして、アプリケーション状態フラグ214が「1」を示す場合には(同:Yes)、そのアプリケーションが使用する全てのメインメモリ200のアドレスに対応するダーティフラグ211および事前処理フラグ212を全て「1」にする(ステップS973)。
[第16の変形例]
上述の各実施の形態では、ダーティフラグ211を利用していたが、これを利用することなく復元処理および退避処理を行うことも可能である。
図32は、本技術の第16の変形例における復元処理の処理手順例を示す流れ図である。ホストコンピュータ100は、第1の実施の形態と同様の場合に、復元処理を開始する。このとき、ストレージメモリ320の退避領域321に復元すべきデータが存在する場合に(ステップS911:Yes)、退避領域321のデータ全てがメインメモリ200にコピーされる(ステップS912)。そして、この復元処理を終了する際に、事前処理フラグ212を全て「1」にする(ステップS914)。
図33は、本技術の第16の変形例におけるストレージメモリ320への退避処理の処理手順例を示す流れ図である。この図は、上述の第1の実施の形態における図11からダーティフラグ211に関する処理を除いたものとなっている。したがって、詳細な説明は省略する。
この第16の変形例では、復元処理を行った後、任意のタイミングで事前処理を開始することができる。この事前処理は、上述の第1の実施の形態における図10と同様であるため、詳細な説明は省略する。
[第17の変形例]
上述の各実施の形態では、ストレージメモリ320として2値の値を示す記憶素子を想定していたが、多値の記憶素子に適用してもよい。
図34は、本技術の第16の変形例における抵抗変化型メモリの抵抗状態を示す図である。この第16の変形例の抵抗変化型メモリのメモリセルは、LRS(低抵抗状態)およびHRS(高抵抗状態)に加えて、MRS(中抵抗状態)の計3状態の何れかを示すことを想定している。
この第16の変形例では、LRSにある場合、弱リセット動作によりMRSに遷移し、強リセット動作によりHRSに遷移する。HRSにある場合、弱セット動作によりMRSに遷移し、強セット動作によりLRSに遷移する。すなわち、同じリセット処理でもその強さ(パルス幅、パルス数、パルス電圧、パルス電流のいずれか)を変えて書き込むことにより、中間的な抵抗値を作り出すことができる。
この第16の変形例では、事前処理の際には、2値の場合と同様に、処理するアドレスの全ビットがLRS(または、HRS)になるように書き込んでおく。
事前処理がされていない場合には、弱リセット、弱セット、強リセット、強セットの4種類の書込み操作を行わなければいけないが、事前処理により全てLRSになっていれば、そのうち2つのみを行うことにより書き込みを行うことができる。
[第18の変形例]
上述の第1の実施の形態では、ホストコンピュータ100からメインメモリ200にアクセスが行われるたびにダーティフラグ211を更新していたが(ステップS922)、そのようなアクセスの有無にかかわらず、外部の装置が更新するようにしてもよい。また、事前処理フラグ212についても同様に、外部の装置が更新するようにしてもよい。
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disc)、メモリカード、ブルーレイディスク(Blu-ray(登録商標)Disc)等を用いることができる。
なお、本技術は以下のような構成もとることができる。
(1)2値以上の値のデータを記憶する第1および第2のメモリにおいて前記第1のメモリに記憶されるデータを前記第2のメモリの対応する退避領域へ退避させる事前処理の必要性を検出する検出部と、
前記事前処理の必要性が検出されたデータの前記第2のメモリにおける前記退避領域に対して前記2値以上の値の何れか1値を前記事前処理として書き込む事前処理部と、
前記1値が書き込まれた前記退避領域に対して前記データに応じて前記2値以上の値のうち前記1値とは異なる値を書き込む退避処理部と
を具備する記憶制御装置。
(2)前記検出部は、前記第1のメモリの所定の領域に対してデータの書込みが生じるたびに前記事前処理の必要性を検出する前記(1)に記載の記憶制御装置。
(3)前記第1のメモリの所定の領域に対してデータの書込みが生じた後に前記事前処理が行われたか否かを示す事前処理フラグをさらに具備し、
前記検出部は、前記事前処理が行われていない旨を前記事前処理フラグが示している領域について前記事前処理の必要性を検出する
前記(1)または(2)に記載の記憶制御装置。
(4)前記退避処理部は、前記事前処理が行われていない旨を前記事前処理フラグが示している領域に対応する前記退避領域に対しては、前記1値を書き込んだ後に、前記データに応じて前記2値以上の値のうち前記1値とは異なる値を書き込む
前記(3)に記載の記憶制御装置。
(5)復元処理要求に応じて前記退避領域に退避されているデータを前記第1のメモリへ復元させる復元処理部をさらに具備する前記(1)から(4)のいずれかに記載の記憶制御装置。
(6)前記第1のメモリの所定の領域に対してデータの書込みが生じたか否かを示すダーティフラグをさらに具備し、
前記退避処理部は、前記ダーティフラグがデータの書込みが生じた旨を示す領域のみについて前記2値以上の値のうち前記1値とは異なる値を書き込む
前記(1)から(5)のいずれかに記載の記憶制御装置。
(7)前記事前処理部は、前記退避領域に対して前記1値を書き込む際には前記第2のメモリの前記退避領域以外の領域に対するパルスの発生回数よりも少ない回数のパルスを用い、
前記退避処理部は、前記退避領域に対して前記2値以上の値のうち前記1値とは異なる値を書き込む際には前記第2のメモリの前記退避領域以外の領域に対するパルスの発生回数よりも少ない回数のパルスを用いる
前記(1)から(6)のいずれかに記載の記憶制御装置。
(8)前記事前処理部は、前記退避領域に対して前記1値を書き込む際には前記第2のメモリの前記退避領域以外の領域に対するパルス幅よりも狭いパルスを用い、
前記退避処理部は、前記退避領域に対して前記2値以上の値のうち前記1値とは異なる値を書き込む際には前記第2のメモリの前記退避領域以外の領域に対するパルス幅よりも狭いパルスを用いる
前記(1)から(7)のいずれかに記載の記憶制御装置。
(9)前記事前処理部は、前記退避領域に対して前記1値を書き込む際には前記第2のメモリの前記退避領域以外の領域に対する書込みパルスの印加電圧よりも低い電圧を用い、
前記退避処理部は、前記退避領域に対して前記2値以上の値のうち前記1値とは異なる値を書き込む際には前記第2のメモリの前記退避領域以外の領域に対する印加電圧よりも低い電圧を用いる
前記(1)から(8)のいずれかに記載の記憶制御装置。
(10)前記事前処理部は、前記退避領域に対して前記1値を書き込む際には前記第2のメモリの前記退避領域以外の領域に対する書込みパルスの電流よりも小さい電流を用い、
前記退避処理部は、前記退避領域に対して前記2値以上の値のうち前記1値とは異なる値を書き込む際には前記第2のメモリの前記退避領域以外の領域に対する書込みパルスの電流よりも小さい電流を用いる
前記(1)から(9)のいずれかに記載の記憶制御装置。
(11)2値以上の値のデータを記憶する第1のメモリと、
前記第1のメモリに記憶されるデータを退避するための第2のメモリと、
前記第1のメモリに記憶されるデータを前記第2のメモリの対応する退避領域へ退避させる事前処理の必要性を検出する検出部と、
前記事前処理の必要性が検出されたデータの前記第2のメモリにおける前記退避領域に対して前記2値以上の値の何れか1値を前記事前処理として書き込む事前処理部と、
前記1値が書き込まれた前記退避領域に対して前記データに応じて前記2値以上の値のうち前記1値とは異なる値を書き込む退避処理部と
を具備する記憶装置。
(12)2値以上の値のデータを記憶する第1および第2のメモリにおいて前記第1のメモリに記憶されるデータを前記第2のメモリの対応する退避領域へ退避させる事前処理の必要性を検出する検出手順と、
前記事前処理の必要性が検出されたデータの前記第2のメモリにおける前記退避領域に対して前記2値以上の値の何れか1値を前記事前処理として書き込む事前処理手順と、
前記1値が書き込まれた前記退避領域に対して前記データに応じて前記2値以上の値のうち前記1値とは異なる値を書き込む退避処理手順と
を具備する記憶制御方法。
11 復元処理部
12 事前処理部
13 退避処理部
14 検出部
20、200 メインメモリ
30、320 ストレージメモリ
100 ホストコンピュータ
120 メインメモリインターフェース
130 ストレージインターフェース
140 メモリインターフェース
211、231、232、331 ダーティフラグ
212、332 事前処理フラグ
300 ストレージモジュール
310 ストレージコントローラ
311、411 ECC処理部
330 フラグメモリ
400 統合メモリモジュール
410 統合メモリコントローラ

Claims (12)

  1. 2値以上の値のデータを記憶する第1および第2のメモリにおいて前記第1のメモリに記憶されるデータを前記第2のメモリの対応する退避領域へ退避させる事前処理の必要性を検出する検出部と、
    前記事前処理の必要性が検出されたデータの前記第2のメモリにおける前記退避領域に対して前記2値以上の値の何れか1値を前記事前処理として書き込む事前処理部と、
    前記1値が書き込まれた前記退避領域に対して前記データに応じて前記2値以上の値のうち前記1値とは異なる値を書き込む退避処理部と
    を具備する記憶制御装置。
  2. 前記検出部は、前記第1のメモリの所定の領域に対してデータの書込みが生じるたびに前記事前処理の必要性を検出する請求項1記載の記憶制御装置。
  3. 前記第1のメモリの所定の領域に対してデータの書込みが生じた後に前記事前処理が行われたか否かを示す事前処理フラグをさらに具備し、
    前記検出部は、前記事前処理が行われていない旨を前記事前処理フラグが示している領域について前記事前処理の必要性を検出する
    請求項1記載の記憶制御装置。
  4. 前記退避処理部は、前記事前処理が行われていない旨を前記事前処理フラグが示している領域に対応する前記退避領域に対しては、前記1値を書き込んだ後に、前記データに応じて前記2値以上の値のうち前記1値とは異なる値を書き込む
    請求項3記載の記憶制御装置。
  5. 復元処理要求に応じて前記退避領域に退避されているデータを前記第1のメモリへ復元させる復元処理部をさらに具備する請求項1記載の記憶制御装置。
  6. 前記第1のメモリの所定の領域に対してデータの書込みが生じたか否かを示すダーティフラグをさらに具備し、
    前記退避処理部は、前記ダーティフラグがデータの書込みが生じた旨を示す領域のみについて前記2値以上の値のうち前記1値とは異なる値を書き込む
    請求項1記載の記憶制御装置。
  7. 前記事前処理部は、前記退避領域に対して前記1値を書き込む際には前記第2のメモリの前記退避領域以外の領域に対するパルスの発生回数よりも少ない回数のパルスを用い、
    前記退避処理部は、前記退避領域に対して前記2値以上の値のうち前記1値とは異なる値を書き込む際には前記第2のメモリの前記退避領域以外の領域に対するパルスの発生回数よりも少ない回数のパルスを用いる
    請求項1記載の記憶制御装置。
  8. 前記事前処理部は、前記退避領域に対して前記1値を書き込む際には前記第2のメモリの前記退避領域以外の領域に対するパルス幅よりも狭いパルスを用い、
    前記退避処理部は、前記退避領域に対して前記2値以上の値のうち前記1値とは異なる値を書き込む際には前記第2のメモリの前記退避領域以外の領域に対するパルス幅よりも狭いパルスを用いる
    請求項1記載の記憶制御装置。
  9. 前記事前処理部は、前記退避領域に対して前記1値を書き込む際には前記第2のメモリの前記退避領域以外の領域に対する書込みパルスの印加電圧よりも低い電圧を用い、
    前記退避処理部は、前記退避領域に対して前記2値以上の値のうち前記1値とは異なる値を書き込む際には前記第2のメモリの前記退避領域以外の領域に対する印加電圧よりも低い電圧を用いる
    請求項1記載の記憶制御装置。
  10. 前記事前処理部は、前記退避領域に対して前記1値を書き込む際には前記第2のメモリの前記退避領域以外の領域に対する書込みパルスの電流よりも小さい電流を用い、
    前記退避処理部は、前記退避領域に対して前記2値以上の値のうち前記1値とは異なる値を書き込む際には前記第2のメモリの前記退避領域以外の領域に対する書込みパルスの電流よりも小さい電流を用いる
    請求項1記載の記憶制御装置。
  11. 2値以上の値のデータを記憶する第1のメモリと、
    前記第1のメモリに記憶されるデータを退避するための第2のメモリと、
    前記第1のメモリに記憶されるデータを前記第2のメモリの対応する退避領域へ退避させる事前処理の必要性を検出する検出部と、
    前記事前処理の必要性が検出されたデータの前記第2のメモリにおける前記退避領域に対して前記2値以上の値の何れか1値を前記事前処理として書き込む事前処理部と、
    前記1値が書き込まれた前記退避領域に対して前記データに応じて前記2値以上の値のうち前記1値とは異なる値を書き込む退避処理部と
    を具備する記憶装置。
  12. 2値以上の値のデータを記憶する第1および第2のメモリにおいて前記第1のメモリに記憶されるデータを前記第2のメモリの対応する退避領域へ退避させる事前処理の必要性を検出する検出手順と、
    前記事前処理の必要性が検出されたデータの前記第2のメモリにおける前記退避領域に対して前記2値以上の値の何れか1値を前記事前処理として書き込む事前処理手順と、
    前記1値が書き込まれた前記退避領域に対して前記データに応じて前記2値以上の値のうち前記1値とは異なる値を書き込む退避処理手順と
    を具備する記憶制御方法。
JP2013134509A 2013-06-27 2013-06-27 記憶制御装置、記憶装置、および、その記憶制御方法 Pending JP2015011421A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013134509A JP2015011421A (ja) 2013-06-27 2013-06-27 記憶制御装置、記憶装置、および、その記憶制御方法
CN201410281541.6A CN104252418B (zh) 2013-06-27 2014-06-20 储存控制装置、储存装置及其储存控制方法
US14/310,205 US9836312B2 (en) 2013-06-27 2014-06-20 Storage control device, storage device, and storage control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013134509A JP2015011421A (ja) 2013-06-27 2013-06-27 記憶制御装置、記憶装置、および、その記憶制御方法

Publications (1)

Publication Number Publication Date
JP2015011421A true JP2015011421A (ja) 2015-01-19

Family

ID=52116839

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013134509A Pending JP2015011421A (ja) 2013-06-27 2013-06-27 記憶制御装置、記憶装置、および、その記憶制御方法

Country Status (3)

Country Link
US (1) US9836312B2 (ja)
JP (1) JP2015011421A (ja)
CN (1) CN104252418B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102477051B1 (ko) * 2022-07-01 2022-12-13 삼성전자주식회사 네트워크를 이용한 스토리지 장치의 데이터 복구 방법 및 이를 수행하는 스토리지 장치

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102179275B1 (ko) * 2014-02-21 2020-11-16 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 리셋 방법
US10331573B2 (en) * 2016-11-04 2019-06-25 Oracle International Corporation Detection of avoidable cache thrashing for OLTP and DW workloads
TWI635038B (zh) * 2016-11-07 2018-09-11 鴻安國際興業有限公司 Mast head with anti-slip effect
KR20200109973A (ko) * 2019-03-15 2020-09-23 에스케이하이닉스 주식회사 메모리 공유를 위한 메모리 시스템 및 그것을 포함하는 데이터 처리 시스템
KR20210114639A (ko) * 2020-03-11 2021-09-24 에스케이하이닉스 주식회사 메모리, 메모리 시스템 및 메모리의 동작 방법

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7194568B2 (en) * 2003-03-21 2007-03-20 Cisco Technology, Inc. System and method for dynamic mirror-bank addressing
US7536506B2 (en) * 2004-06-21 2009-05-19 Dot Hill Systems Corporation RAID controller using capacitor energy source to flush volatile cache data to non-volatile memory during main power outage
KR100591371B1 (ko) * 2005-03-23 2006-06-20 엠텍비젼 주식회사 공유 메모리의 분할 영역 크기 가변 방법 및 공유 메모리를가지는 휴대형 단말기
US7661002B2 (en) * 2005-08-04 2010-02-09 Dot Hill Systems Corporation Storage controller super capacitor dynamic voltage throttling
US7451348B2 (en) * 2005-08-04 2008-11-11 Dot Hill Systems Corporation Dynamic write cache size adjustment in raid controller with capacitor backup energy source
US7734853B2 (en) * 2006-02-28 2010-06-08 Arm Limited Latency dependent data bus transmission
KR20090059838A (ko) * 2007-12-07 2009-06-11 삼성전자주식회사 반도체 장치에서 데이터를 전송하는 방법, 장치 및 시스템
JP2009176180A (ja) * 2008-01-28 2009-08-06 Ricoh Co Ltd 制御装置、画像処理装置、メモリ情報保存制御方法、メモリ情報保存制御プログラム及び記憶媒体
US20100205367A1 (en) * 2009-02-09 2010-08-12 Ehrlich Richard M Method And System For Maintaining Cache Data Integrity With Flush-Cache Commands
JP2011186558A (ja) 2010-03-04 2011-09-22 Toshiba Corp メモリ管理装置及び方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102477051B1 (ko) * 2022-07-01 2022-12-13 삼성전자주식회사 네트워크를 이용한 스토리지 장치의 데이터 복구 방법 및 이를 수행하는 스토리지 장치

Also Published As

Publication number Publication date
US9836312B2 (en) 2017-12-05
US20150006836A1 (en) 2015-01-01
CN104252418B (zh) 2019-03-08
CN104252418A (zh) 2014-12-31

Similar Documents

Publication Publication Date Title
JP2015011421A (ja) 記憶制御装置、記憶装置、および、その記憶制御方法
JP6149598B2 (ja) 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法
EP2800097B1 (en) Storage control device, storage device, information processing system, and processing methods therefor
JP5929456B2 (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
JP6447629B2 (ja) 記憶制御装置、記憶装置、および、その記憶制御方法
US8331151B2 (en) Semiconductor memory including control unit responsive to erase command to determine selection of redundant memory block
WO2015145552A1 (ja) 不揮発メモリデバイス、及び、不揮発メモリデバイスを有するストレージ装置
JP2014041573A (ja) 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法
JP2016118815A (ja) 不揮発性メモリ装置
JP2014086062A (ja) 記憶制御装置、記憶装置、情報処理システム、および、記憶制御方法
US11036493B2 (en) Memory system and operating method thereof
JP5867264B2 (ja) 記憶制御装置、メモリシステム、情報処理システム、および、記憶制御方法
US10191533B2 (en) Method of enabling sleep mode, memory control circuit unit and storage apparatus
JP6107625B2 (ja) 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法
JP6493062B2 (ja) メモリコントローラ、メモリシステムおよび情報処理システム
JP6497395B2 (ja) メモリコントローラ、メモリシステム、および、メモリコントローラの制御方法
US9064605B2 (en) Semiconductor system and method for reparing the same
WO2017073127A1 (ja) メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法
WO2017010147A1 (ja) 不揮発メモリ、メモリコントローラ、記憶装置、情報処理システムおよび不揮発メモリの制御方法
US20210257024A1 (en) Storage control device, storage device, and storage control method
JP2014013635A (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
US20170109099A1 (en) Storage device, storage system, and method of controlling storage device
WO2020031435A1 (ja) 記憶制御装置、記憶装置および記憶制御方法
WO2022158120A1 (ja) コントローラ、不揮発性記憶装置、および、制御方法
JP2011192137A (ja) メモリカード制御システム、メモリカード制御装置及びメモリカード制御方法