JP2013130899A - 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法 - Google Patents

記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法 Download PDF

Info

Publication number
JP2013130899A
JP2013130899A JP2011277777A JP2011277777A JP2013130899A JP 2013130899 A JP2013130899 A JP 2013130899A JP 2011277777 A JP2011277777 A JP 2011277777A JP 2011277777 A JP2011277777 A JP 2011277777A JP 2013130899 A JP2013130899 A JP 2013130899A
Authority
JP
Japan
Prior art keywords
data
storage area
error correction
correction code
ecc
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.)
Granted
Application number
JP2011277777A
Other languages
English (en)
Other versions
JP5845876B2 (ja
Inventor
Naohiro Adachi
直大 足立
Hideaki Okubo
英明 大久保
Yasushi Fujinami
靖 藤波
Kenichi Nakanishi
健一 中西
Keiichi Tsutsui
敬一 筒井
Makiko Yamamoto
真紀子 山本
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 JP2011277777A priority Critical patent/JP5845876B2/ja
Priority to US13/675,768 priority patent/US8898541B2/en
Priority to CN201210484725.3A priority patent/CN103136067B/zh
Publication of JP2013130899A publication Critical patent/JP2013130899A/ja
Application granted granted Critical
Publication of JP5845876B2 publication Critical patent/JP5845876B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】エラー訂正コードの対象となるデータの一部分に変更が生じた際に、エラー訂正コードの再計算を抑制する。
【解決手段】複数のデータを第1記憶領域に記憶し、複数のデータの所定数毎にエラー訂正コードを第2記憶領域に記憶し、追記データを第3記憶領域に記憶する。制御部は、第1記憶領域にライト要求が生じた場合にはライトデータを第3記憶領域に追記する。エラー訂正処理部は、追記したライトデータにリード要求が生じた場合には第3記憶領域の追記データと当該追記データに対するエラー訂正コードとによって第3記憶領域の追記データにおけるエラー訂正を行い、それ以外の場合には第1記憶領域のデータと第2記憶領域のエラー訂正コードとによって第1記憶領域のデータにおけるエラー訂正を行う。
【選択図】図2

Description

本技術は、記憶制御装置に関する。詳しくは、エラー訂正コードに基づくエラー訂正を行う記憶制御装置、記憶装置、情報処理システム、および、これらにおける処理方法ならびに当該方法をコンピュータに実行させるプログラムに関する。
情報処理システムにおいては、ワークメモリとしてDRAM(Dynamic Random Access Memory)等が用いられる。このDRAMは、通常、揮発性メモリであり、電源の供給が停止するとその記憶内容は消失する。一方、近年、不揮発性メモリ(NVM:Non-Volatile Memory)が用いられるようになっている。この不揮発性メモリとしては、大きなサイズを単位としたデータアクセスに対応したフラッシュメモリと、小さな単位での高速なランダムアクセスが可能な不揮発性ランダムアクセスメモリ(NVRAM:Non-Volatile RAM)とに大別される。ここで、フラッシュメモリの代表例としては、NAND型フラッシュメモリが挙げられる。一方、不揮発性ランダムアクセスメモリの例としては、PCRAM(Phase-Change RAM)、MRAM(Magnetoresistive RAM)、ReRAM(Resistance RAM)などが挙げられる。
このような不揮発性メモリでは、データ保持特性を改善するために、エラー訂正コード(ECC:Error Correcting Code)によるエラー検出訂正処理を行うことが一般的となっている。すなわち、書込み時にエラー訂正コードを計算してそのエラー訂正コードをデータとともに不揮発性メモリ上に記録しておいて、読出し時にはデータとエラー訂正コードとを同時に読み出してビットエラーの検出および訂正処理が行われる。近年では、複数種類のエラー訂正コードを組み合わせてエラー訂正能力を強化することも行われている。例えば、標準ECCと拡張ECCの2種類のエラー訂正コードを備えたメモリシステムが提案されている(例えば、特許文献1参照。)。
特開2011−081776号公報
上述の従来技術では、2種類のエラー訂正コードを用いることにより、長期保存特性を改善するとともに、エラー訂正コードの増大による影響を抑えている。このような従来技術においては、エラー訂正コードの対象となるデータの一部分にのみ変更が生じた際、エラー訂正コードの対象となるデータ全体を読み出した上でエラー訂正コードを再計算する必要が生じる。特に、エラー訂正コードを複数種類設けた場合には、エラー訂正コードの対象となるデータが大きくなるため、データの読み出しおよびエラー訂正コードの再計算に要する時間が長くなる。したがって、一部のデータを更新するたびにエラー訂正コードの再計算を繰り返すことは著しい性能低下をもたらす要因になり現実的ではない。
本技術はこのような状況に鑑みて生み出されたものであり、エラー訂正コードの対象となるデータの一部分に変更が生じた際に、エラー訂正コードの再計算を抑制することを目的とする。
本技術は、上述の問題点を解消するためになされたものであり、その第1の側面は、複数のデータおよび当該複数のデータの各々に対するエラー訂正コードをメモリの第1記憶領域に記憶し、上記複数のデータの所定数毎に対応してそのエラー訂正コードを上記メモリの第2記憶領域に記憶し、上記複数のデータの何れかに対する追記データおよび当該追記データに対するエラー訂正コードを上記メモリの第3記憶領域に記憶する場合において、上記複数のデータの各々について論理アドレスと上記第1または第3記憶領域における物理アドレスとの対応関係を管理するアドレス管理部と、ライト要求に係る論理アドレスに対応する物理アドレスが第1記憶領域に該当する場合には上記第1記憶領域および上記第2記憶領域を書き換えることなく上記ライト要求に係るデータを上記追記データとして当該追記データおよび当該追記データに対するエラー訂正コードを上記第3記憶領域に追記して当該追記された上記第3記憶領域における物理アドレスを上記アドレス管理部に登録する制御部と、リード要求に係る論理アドレスに対応する物理アドレスが上記第3記憶領域に該当する場合には上記第3記憶領域の追記データと当該追記データに対するエラー訂正コードとによって上記第3記憶領域の追記データにおけるエラー訂正を行い、リード要求に係る論理アドレスに対応する物理アドレスが上記第3記憶領域に該当しない場合には上記第1記憶領域におけるデータを含む上記複数のデータの所定数と上記第2記憶領域のエラー訂正コードとによって上記第1記憶領域におけるエラー訂正を行うエラー訂正処理部とを具備する記憶制御装置およびその制御方法である。これにより、エラー訂正コード対象となるデータの一部分が更新される際、エラー訂正コードの再計算を不要にするという作用をもたらす。
また、この第1の側面において、上記制御部は、所定のタイミングにおいて上記追記データの各々について追記前の上記第1記憶領域に当該追記データを上書きし、上記エラー訂正処理部は、上記所定のタイミングにおいて上記上書きされたデータを含む上記複数のデータの所定数からエラー訂正コードを生成して当該エラー訂正コードを上記第2記憶領域に記憶するようにしてもよい。これにより、追記データを集約させるという作用をもたらす。
また、本技術の第2の側面は、複数のデータおよび当該複数のデータの各々に対するエラー訂正コードを第1記憶領域に記憶し、上記複数のデータの所定数毎に対応してそのエラー訂正コードを第2記憶領域に記憶し、上記複数のデータの何れかに対する追記データおよび当該追記データに対するエラー訂正コードを第3記憶領域に記憶するメモリと、上記複数のデータの各々について論理アドレスと上記第1または第3記憶領域における物理アドレスとの対応関係を管理するアドレス管理部と、ライト要求に係る論理アドレスに対応する物理アドレスが第1記憶領域に該当する場合には上記第1記憶領域および上記第2記憶領域を書き換えることなく上記ライト要求に係るデータを上記追記データとして当該追記データおよび当該追記データに対するエラー訂正コードを上記第3記憶領域に追記して当該追記された上記第3記憶領域における物理アドレスを上記アドレス管理部に登録する制御部と、リード要求に係る論理アドレスに対応する物理アドレスが上記第3記憶領域に該当する場合には上記第3記憶領域の追記データと当該追記データに対するエラー訂正コードとによって上記第3記憶領域の追記データにおけるエラー訂正を行い、リード要求に係る論理アドレスに対応する物理アドレスが上記第3記憶領域に該当しない場合には上記第1記憶領域におけるデータを含む上記複数のデータの所定数と上記第2記憶領域のエラー訂正コードとによって上記第1記憶領域におけるエラー訂正を行うエラー訂正処理部とを具備する記憶装置およびその制御方法である。これにより、メモリにおいてエラー訂正コード対象となるデータの一部分が更新される際、エラー訂正コードの再計算を不要にするという作用をもたらす。
また、この第2の側面において、上記メモリは、上記第1記憶領域をフラッシュメモリに記憶し、上記第3記憶領域を不揮発性RAMに記憶するようにしてもよい。これにより、メモリアクセスを高速化するという作用をもたらす。
また、本技術の第3の側面は、複数のデータおよび当該複数のデータの各々に対するエラー訂正コードを第1記憶領域に記憶し、上記複数のデータの所定数毎に対応してそのエラー訂正コードを第2記憶領域に記憶し、上記複数のデータの何れかに対する追記データおよび当該追記データに対するエラー訂正コードを第3記憶領域に記憶するメモリと、上記複数のデータの各々について論理アドレスと上記第1または第3記憶領域における物理アドレスとの対応関係を管理するアドレス管理部と、ライト要求に係る論理アドレスに対応する物理アドレスが第1記憶領域に該当する場合には上記第1記憶領域および上記第2記憶領域を書き換えることなく上記ライト要求に係るデータを上記追記データとして当該追記データおよび当該追記データに対するエラー訂正コードを上記第3記憶領域に追記して当該追記された上記第3記憶領域における物理アドレスを上記アドレス管理部に登録する制御部と、リード要求に係る論理アドレスに対応する物理アドレスが上記第3記憶領域に該当する場合には上記第3記憶領域の追記データと当該追記データに対するエラー訂正コードとによって上記第3記憶領域の追記データにおけるエラー訂正を行い、リード要求に係る論理アドレスに対応する物理アドレスが上記第3記憶領域に該当しない場合には上記第1記憶領域におけるデータを含む上記複数のデータの所定数と上記第2記憶領域のエラー訂正コードとによって上記第1記憶領域におけるエラー訂正を行うエラー訂正処理部と、上記メモリに対して上記リード要求または上記ライト要求を発行するホストコンピュータとを具備する情報処理システムおよびその制御方法である。これにより、ホストコンピュータの指示によりメモリにおいてエラー訂正コード対象となるデータの一部分が更新される際、エラー訂正コードの再計算を不要にするという作用をもたらす。
本技術によれば、エラー訂正コードの対象となるデータの一部分に変更が生じた際に、エラー訂正コードの再計算を抑制することができるという優れた効果を奏し得る。
本技術の実施の形態における情報処理システムの一構成例を示す図である。 本技術の実施の形態における機能構成例を示す図である。 本技術の第1の実施の形態におけるメモリ300内の記憶領域のパーティション例を示す図である。 本技術の第1の実施の形態における通常アクセス領域310のデータと第2ECC格納領域330における第2ECCの格納位置との関係例を示す図である。 本技術の第1の実施の形態におけるアドレス管理部221のアドレス変換テーブル構成例を示す図である。 本技術の第1の実施の形態におけるライト処理の処理手順の一例を示す図である。 本技術の第1の実施の形態におけるリード処理の処理手順の一例を示す図である。 本技術の第1の実施の形態における集約処理の処理手順の一例を示す図である。 本技術の第2の実施の形態におけるメモリ300の管理態様の一例を示す図である。 本技術の第2の実施の形態におけるアドレス変換テーブル222の一構成例を示す図である。 本技術の第2の実施の形態における第2ECC管理テーブル223の一構成例を示す図である。 本技術の第2の実施の形態におけるライト処理の処理手順の一例を示す図である。 本技術の第2の実施の形態におけるリード処理の処理手順の一例を示す図である。 本技術の第2の実施の形態における集約処理の処理手順の一例を示す図である。
以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.第1の実施の形態(第2ECC格納領域位置を固定した例)
2.第2の実施の形態(第2ECC格納領域位置を可変にした例)
3.変形例
<1.第1の実施の形態>
[情報処理システムの構成]
図1は、本技術の実施の形態における情報処理システムの一構成例を示す図である。この情報処理システムは、ホストコンピュータ100と、メモリ300と、メモリ制御部200とを備える。メモリ制御部200およびメモリ300は、メモリシステム400を構成する。ホストコンピュータ100は、メモリシステム400に対してデータのリードまたはライトを要求するリクエストを発行するものである。
メモリ300は、通常の揮発性メモリ303以外に、不揮発性メモリを含む。不揮発性メモリとしては、大きなサイズを単位としたデータアクセスに対応したフラッシュメモリ302と、小さな単位での高速なランダムアクセスが可能な不揮発性ランダムアクセスメモリ(NVRAM)301とに大別される。ここで、フラッシュメモリ302の代表例としては、NAND型フラッシュメモリが挙げられる。一方、NVRAM301の例としては、PCRAM、MRAM、ReRAMなどが挙げられる。揮発性メモリ303は、作業領域として用いられ、また、管理用のデータを格納するためにも用いられる。さらに、揮発性メモリ303は、キャッシュとして用いることも可能である。揮発性メモリ303は、DRAM、SRAMなどにより実現することができる。揮発性メモリ303に格納されるデータは、電源断に備えて、必要に応じてNVRAM301またはフラッシュメモリ302に保持しておいて、次に電源投入された際に再利用されるようにしてもよい。
メモリ制御部200は、プロセッサ210と、内蔵メモリ220と、第1ECC処理部230と、第2ECC処理部240と、周辺回路250と、ホストインターフェース201と、メモリインターフェース291乃至293とを備える。これらはバス280により相互に接続される。
プロセッサ210は、ホストコンピュータ100からの制御コマンドを解釈して実行する処理装置である。このプロセッサ210は、内蔵メモリ220における記憶領域をプログラム格納領域およびワーク領域としてプログラムを実行する。
内蔵メモリ220は、図示しない内蔵ROMおよび内蔵RAMを含むメモリである。ログラムは内蔵ROMに格納しておいてもよく、また、メモリ300から起動時に内蔵RAMに転送するようにしてもよい。この内蔵RAMは、ワーク領域や管理用データなどの一時格納など様々な用途に用いられる。
第1ECC処理部230は、データの各々に対応して付加されるエラー訂正コード(ECC:Error Correcting Code)である第1ECCの生成およびその第1ECCを用いたエラー訂正を行うものである。第2ECC処理部240は、データおよび第1ECCの組を複数組まとめたデータ群に対応して付加される第2ECCの生成およびその第1ECCを用いたエラー訂正を行うものである。これら第1ECC処理部230および第2ECC処理部240は、ハードウェアとして実現してもよく、また、プロセッサ210においてプログラムを実行することによりソフトウェアとして実現してもよい。
周辺回路250は、プロセッサ210の周辺回路であり、例えば内蔵タイマーや汎用入出力(GPIO:General Purpose Input/Output)等を含む。
ホストインターフェース201は、ホストコンピュータ100とのやりとりを行うインターフェースである。メモリシステム400はホストインターフェース201を介して接続され、ホストコンピュータ100から、メモリ300を制御するための制御コマンドを受信し、この制御コマンドによって制御されてメモリシステムとして動作する。このホストインターフェース201としては、例えば、SATA、PCI Express、eMMC、USBなどを利用することができる。
メモリインターフェース291は、NVRAM301とのやりとりを行うインターフェースである。メモリインターフェース292は、フラッシュメモリ302とのやりとりを行うインターフェースである。メモリインターフェース293は、揮発性メモリ303とのやりとりを行うインターフェースである。
メモリシステム400は、ライトコマンドによりメモリ300へのデータの書込みを行い、リードコマンドによりメモリ300からのデータの読出しを行う。ライトコマンドおよびリードコマンドは、対象データの存在する先頭論理アドレスおよびデータサイズをパラメータとして指定する。メモリシステム400がライトコマンドのデータを受信すると、このデータに対して第1ECCが付加され、不揮発性メモリ(NVRAM301またはフラッシュメモリ302)に書き込まれる。
第2ECCの生成および書込みは、書き込まれたデータが一定のサイズに達するか、または、周辺回路250における内蔵タイマーを用いて一定時間にアクセスがないデータを検出することにより、ホストコンピュータ100からの指示とは独立に行ってもよい。または、データ保持特性強化コマンドなどのホストコンピュータ100からの指示に従って第2ECCを生成し、不揮発性メモリに書込みを行うようにしてもよい。
第2ECCを適用するデータは、物理アドレスの連続した複数のデータでもよく、物理アドレスが連続していない複数のデータであってもよい。以下において、第1の実施の形態では物理アドレスの連続したケースを想定し、第2の実施の形態では物理アドレスが連続していないケースを想定する。
図2は、本技術の実施の形態における機能構成例を示す図である。ここでは、上述の通り、ホストコンピュータ100とメモリ300とをメモリ制御部200が接続する様子を示している。そして、メモリ制御部200の機能として、制御部211と、アドレス管理部221と、エラー訂正処理部234とが示されている。
アドレス管理部221は、ホストコンピュータ100において使用されるメモリ300の論理アドレスと、メモリ300における物理アドレスとの対応関係を管理するものである。また、このアドレス管理部221は、その論理アドレスに含まれるデータについて第2ECCが生成されているか否かを示す第2ECCフラグをさらに管理する。また、このアドレス管理部221は、その論理アドレスに含まれるデータについて追記が行われた場合の追記前の物理アドレスをさらに管理する。このアドレス管理部221は、例えば内蔵メモリ220にアドレス変換テーブルとして保持される。
エラー訂正処理部234は、メモリ300に記憶されるデータについて、エラー訂正コードを生成し、または、エラー訂正コードに基づいてエラー訂正を行うものである。すなわち、エラー訂正処理部234は、ライト時にはライトデータの第1ECCを生成するとともに、そのライトデータを含む複数のデータについて第2ECCを生成する。また、エラー訂正処理部234は、リード時にはリードデータとその第1ECCとによってエラー訂正を行い、訂正に失敗した場合にはそのリードデータを含む複数のデータとその第2ECCとによってエラー訂正を行う。ただし、追記を伴う際には後述するように例外的な処理内容になる。このエラー訂正処理部234は、第1ECC処理部230および第2ECC処理部240に相当する。
制御部211は、ホストコンピュータ100とメモリ300とのやりとりを制御するものである。すなわち、制御部211は、ホストコンピュータ100からのリード要求に従ってメモリ300からデータを読み出して、ホストコンピュータ100に返送する。また、制御部211は、ホストコンピュータ100からのライト要求に従ってメモリ300にホストコンピュータ100からのライトデータを書き込む。この制御部211は、リードまたはライト動作の際に、アドレス管理部221のアドレス変換テーブルを参照して論理アドレスから物理アドレスへの変換処理を行う。この制御部211は、プロセッサ210の機能として実現することを想定するが、これに限定されるものではなくハードウェア回路により実現してもよい。
[メモリ300内の記憶領域]
図3は、本技術の第1の実施の形態におけるメモリ300内の記憶領域のパーティション例を示す図である。メモリ300内の記憶領域は、通常アクセス領域310と、追記領域320と、第2ECC格納領域330の3つの領域に大別される。
通常アクセス領域310は、ホストコンピュータ100から直接アクセス対象となる通常のデータ領域である。この通常アクセス領域310では、例えば32バイトのデータに対して、2バイトの第1ECCが付加される。データと第1ECCは物理的に隣接して記憶してもよく、また、それぞれ離れた位置に記憶してもよい。この例では、1つのデータとその第1ECCをまとめたものをNバイトの単位データとしており、単位データを4つまとめた4Nバイトデータを第2ECCの生成単位としている。ただし、これに限定されず、第2ECCの生成単位は単位データの整数倍であればよい。なお、通常アクセス領域310は、特許請求の範囲に記載の第1記憶領域の一例である。
追記領域320は、通常アクセス領域310のデータに対して上書きを行わずに、追記データとして別途記憶しておくための領域である。この追記領域320においてもデータと第1ECCは物理的に隣接して記憶してもよく、また、それぞれ離れた位置に記憶してもよい。この例では、1つの追記データに対して第1ECCが付加され、Nバイトデータとして記憶されるものとしている。この追記領域320に追記が行われると、アドレス管理部221の物理アドレスはこの追記領域320のアドレスを示すようになる。なお、追記領域320は、特許請求の範囲に記載の第3記憶領域の一例である。
第2ECC格納領域330は、通常アクセス領域310に記憶されるデータに対応する第2ECCを格納する記憶領域である。この例では、通常アクセス領域310の4Nバイトデータに対してNバイトの第2ECCが生成されて、この第2ECC格納領域330に格納されるものとしている。なお、第2ECC格納領域330は、特許請求の範囲に記載の第2記憶領域の一例である。
追記領域320および第2ECC格納領域330は、通常アクセス領域310と同一種類のメモリに格納してもよいが、後述する集約処理をより高速に行うため、別のタイプのメモリに格納してもよい。組合せとしては、例えば、通常アクセス領域310をフラッシュメモリ302へ、追記領域320および第2ECC格納領域330はより高速なNVRAM301へ格納することが考えられる。
図4は、本技術の第1の実施の形態における通常アクセス領域310のデータと第2ECC格納領域330における第2ECCの格納位置との関係例を示す図である。NVRAM301またはフラッシュメモリ302の通常アクセス領域310は、上述のように、例えば34バイトを単位データとしてデータのリードおよびライトが可能であり、34バイト毎に物理アドレスが割り当てられているものとする。
34バイトの単位データは、例えば32バイトのデータ311と、そのデータの第1ECC312とからなる。すなわち、通常アクセス領域310における32バイトのデータに対して2バイトの第1ECCが付加される。なお、一般的には、通常アクセス領域310の単位データ幅をNバイト、データサイズをAバイト、付与される第1ECCのサイズをBバイトとすると、次式が成り立つ。
A+B ≦ N
さらに、例えば4つの単位データに対して34バイトの第2ECC331を付与することを想定する。この第2ECCは第2ECC格納領域330に記憶される。なお、一般的には、付与される第2ECCのサイズをCバイトとすると、次式が成り立つ。
C ≦ N
この第1の実施の形態では、第2ECC格納領域330における第2ECC331の格納位置は、通常アクセス領域310のデータの物理アドレスから一意に固定されることを想定する。例えば、物理アドレスの2進数表記による末尾2ビットが「00」、「01」、「10」、「11」であり、他の物理アドレス部分が一致する4つの単位データ同士が1つの第2ECCに対応する。そして、物理アドレスの末尾2ビットを除いた部分をオフセットとして、第2ECC格納領域330の先頭からオフセットを加算した位置がその第2ECC331の格納位置になる。すなわち、通常アクセス領域310のデータの物理アドレスから、第2ECC格納領域330における第2ECC331の格納位置が、一意に固定される。
[アドレス変換テーブル]
図5は、本技術の第1の実施の形態におけるアドレス管理部221のアドレス変換テーブル構成例を示す図である。
アドレス管理部221は、単位データの各々について、論理アドレスと、物理アドレスと、第2ECCフラグと、旧物理アドレスとを対応付けて記憶している。論理アドレスは、ホストコンピュータ100において使用される論理アドレスである。物理アドレスは、メモリ300における単位データの物理アドレスである。
第2ECCフラグは、単位データに対応する第2ECCが第2ECC格納領域330に格納されているか否かを示すフラグである。例えば、第2ECCが格納されている場合には「true」を、格納されていない場合には「false」を示す。第2ECCが格納される場合、第2ECC格納領域330における第2ECC331の格納位置は、上述のように通常アクセス領域310のデータの物理アドレスから一意に固定される
旧物理アドレスは、論理アドレスに対応するデータが追記領域320に追記されている場合に、追記前のデータの通常アクセス領域310における物理アドレスを示すものである。これにより、追記前の単位データの記憶位置を特定して、第2ECCの再生成に利用することができる。
[ライト処理の処理手順]
図6は、本技術の第1の実施の形態におけるライト処理の処理手順の一例を示す図である。ホストコンピュータ100からライトコマンドを受け取ると、メモリ制御部200はライト処理を開始する。ライトコマンドはライト対象の論理アドレスを含む。また、このライトコマンドはライトデータを伴う。エラー訂正処理部234は、ライトデータに対する第1ECCを生成する(ステップS911)。
制御部211は、ライトコマンドの論理アドレスに基づいてアドレス管理部221のアドレス変換テーブルを参照し、アドレス変換情報を取得する(ステップS912)。このアドレス変換情報は、図5により説明した、論理アドレス、物理アドレス、第2ECCフラグおよび旧物理アドレスからなる情報である。ここで、第2ECCフラグが「false」(すなわち、第2ECCが付与されていない)を示す場合(ステップS913:No)、通常アクセス領域310にライトデータおよび第1ECCを書き込む(ステップS914)。このとき、通常アクセス領域310が、例えばReRAM、PCRAM、MRAMのように上書きが可能な不揮発性メモリであれば、更新前のデータの領域に対して上書きを行うことができる。一方、通常アクセス領域310が、NANDフラッシュのように上書きができないタイプの不揮発性メモリであれば、追記領域320に追記してもよい。追記を行った場合には、アドレス管理部221に追記先の物理アドレスを登録して更新する(ステップS919)。
第2ECCフラグが「true」(すなわち、第2ECCが付与されている)を示す場合(ステップS913:Yes)、ライト処理後に第2ECCが利用できなくなることを防ぐために、追記領域320に追記を行う。その際、アドレス変換情報において物理アドレスが追記領域320を示している場合には(ステップS915:Yes)、既に追記が行われていることになるため、その追記領域320の物理アドレスに上書きする(ステップS916)。ただし、このとき追記領域320の他の領域にさらに追記を行うようにしてもよく、その場合にはアドレス管理部221に追記先の物理アドレスを登録して更新する(ステップS919)。
アドレス変換情報において物理アドレスが追記領域320を示していない場合には(ステップS915:No)、追記領域320に新たに追記を行う(ステップS917)。そして、アドレス管理部221に追記先の物理アドレスを登録して更新する(ステップS919)。
このように、第2ECC格納領域330における第2ECCを引き続き使用するために、通常アクセス領域310に古いデータを残すとともに、新しいデータを追記領域320に追記する。追記部分は第1ECCしか適用されず、第2ECCは付与されないが、それ以外の部分は消去せず残したデータととともに第2ECCが適用可能である。追記部分は他の部分に較べて比較的新しく書き加えられた部分であり、データ保持特性は比較的良好であるため、問題が生じる可能性は低いと考えられる。
[リード処理の処理手順]
図7は、本技術の第1の実施の形態におけるリード処理の処理手順の一例を示す図である。ホストコンピュータ100からリードコマンドを受け取ると、メモリ制御部200はリード処理を開始する。リードコマンドはリード対象の論理アドレスを含む。
制御部211は、リードコマンドの論理アドレスに基づいてアドレス管理部221のアドレス変換テーブルを参照し、アドレス変換情報を取得する(ステップS921)。このアドレス変換情報は、図5により説明した、論理アドレス、物理アドレス、第2ECCフラグおよび旧物理アドレスからなる情報である。
そして、制御部211は、アドレス変換情報の物理アドレスによってメモリ300から単位データを読み出す(ステップS922)。この単位データにはリード対象のデータおよびその第1ECCが含まれる。
読み出されたデータおよび第1ECCによってエラー検出および訂正が行われ、エラーが検出されない、または、検出されたエラーの訂正に成功した場合(ステップS923:Yes)、このリード処理を正常終了する。一方、第1ECCによって検出されたエラーの訂正に失敗した場合には(ステップS923:No)、第2ECCによるエラー訂正が試みられる。このとき、アドレス変換情報の第2ECCフラグが「false」を示している場合(ステップS924:No)、第2ECCによるエラー訂正を行うことができないため、このリード処理をエラー終了する。また、第2ECCフラグが「true」を示している場合でも(ステップS924:Yes)、アドレス変換情報の物理アドレスが追記領域320に該当すれば(ステップS925:Yes)、第2ECCを利用することができないため、リード処理をエラー終了する。エラー終了の際には、ホストコンピュータ100にリードエラーの発生を通知して、処理を中止する。
第2ECCを利用できる場合、アドレス変換情報の旧物理アドレスから第2ECCの対象となるデータ群(例えば、上述の4Nバイトデータ)および第2ECCの格納領域が特定される(ステップS926)。これにより、第2ECCの対象となるデータ群が通常アクセス領域310から読み出され、対応する第2ECCが第2ECC格納領域330から読み出される(ステップS927)。読み出された第2ECCによってデータ群のエラー訂正が行われ、エラー訂正に成功した場合には(ステップS928:Yes)、訂正後のデータ群からリード対象データが選択される(ステップS929)。一方、エラー訂正に失敗した場合には(ステップS928:No)、リード処理をエラー終了する。
[集約処理の処理手順]
これまでの説明により、追記によるデータの一部更新により、第2ECCを毎回計算することなく書込みおよび読出しが実現できることを示した。しかし、データの一部更新を繰り返していくと、追記されたデータや第2ECCを計算するために残したデータ、管理のための情報が蓄積していくことになる。これにより、記憶容量を必要以上に消費することになる。これを抑制するために、あるタイミングで古いデータを破棄し、第2ECCを再計算し、管理情報を更新するという集約処理を行う必要性が生じる。この集約処理を開始するタイミングについては、以下のように様々なタイミングが考えられる。
まず、ホストコンピュータ100から、第2ECCを追加するように明示的な指示があった時が考えられる。これは、ホストコンピュータ100からの制御コマンドにより実現される。また、追記されたデータの総和が所定のサイズに達した時が考えられる。ここで、所定のサイズとは、メモリシステム400における固定サイズでもよく、また、ホストコンピュータ100からパラメータとして指示されたサイズでもよい。また、その他要因も含めて使用しているメモリの総使用量から所定のサイズを動的に変更してもよい。
他のタイミングとしては、追記が行われてから一定時間が経過した時が考えられる。この一定時間は、周辺回路250の内蔵タイマー等により検知することができる。また、読出しの際に第1ECCで訂正不可能となって第2ECCを用いた訂正を行う必要が生じた時に集約処理を行ってもよい。このように集約処理は様々なタイミングで行うことが考えられる。
図8は、本技術の第1の実施の形態における集約処理の処理手順の一例を示す図である。上述のようなタイミングにおいて集約処理が開始すると、制御部211は、アドレス管理部221のアドレス変換テーブルを参照して、追記が行われている領域を検索する(ステップS931)。アドレス管理部221において旧物理アドレスが有効な値を示していれば、追記が行われていることを示している。そして、その検索された領域を含む第2ECCの対象となるデータ群(例えば、上述の4Nバイトデータ)とその第2ECCの格納位置が特定できる。
そして、このようにして特定されたデータ群のうち、追記が行われていない単位データを通常アクセス領域310から読み出し、追記された単位データを追記領域320から読み出す(ステップS932)。このとき、単位データについて第1ECCによるデータのエラー検出が行われ、エラーが検出されない場合またはエラーが検出されても第1ECCによるエラー訂正に成功した場合には(ステップS933:Yes)、次のステップS941に進む。
一方、エラー訂正に失敗した場合には(ステップS933:No)、第2ECCによるエラー訂正が試みられる。このとき、アドレス変換情報の第2ECCフラグが「false」を示している場合(ステップS934:No)、第2ECCによるエラー訂正を行うことができないため、この集約処理をエラー終了する。また、第2ECCフラグが「true」を示している場合でも(ステップS934:Yes)、アドレス変換情報の物理アドレスが追記領域320に該当すれば(ステップS935:Yes)、第2ECCを利用することができないため、集約処理をエラー終了する。エラー終了の際には、ホストコンピュータ100に集約処理エラーの発生を通知して、処理を中止する。
第2ECCを利用できる場合、アドレス変換情報の旧物理アドレスから第2ECCの対象となるデータ群(例えば、上述の4Nバイトデータ)および第2ECCの格納領域が特定される(ステップS936)。これにより、第2ECCの対象となるデータ群が通常アクセス領域310から読み出され、対応する第2ECCが第2ECC格納領域330から読み出される(ステップS937)。読み出された第2ECCによってデータ群のエラー訂正が行われ、エラー訂正に成功した場合には(ステップS938:Yes)、次のステップS941に進む。一方、エラー訂正に失敗した場合には(ステップS938:No)、集約処理をエラー終了する。
第1ECCまたは第2ECCによるエラー訂正が成功した場合(ステップS933またはS938:Yes)、通常アクセス領域310の旧データ領域を追記領域320の追記データによって上書きする(ステップS941)。そして、追記領域320の追記データは消去または無効化されて、追記領域320の使用領域が解放される。また、通常アクセス領域310に記憶された新たな第2ECCの対象となるデータ群により、第2ECCが再計算されて、第2ECC格納領域330に上書きされる(ステップS942)。また、これに伴い、アドレス管理部221のアドレス変換テーブルが更新される(ステップS943)。
このように、本技術の第1の実施の形態によれば、第2ECCの対象となる通常アクセス領域310に記憶されたデータの一部に更新が生じた際に、第2ECC格納領域330の固定位置に第2ECCを維持しながら追記領域320に追記を行うことができる。これにより、第2ECCの再計算を不要とし、更新前のデータによりエラー訂正をすることができる。また、追記領域320の追記データについては第1ECCのみを用いることになるが、比較的新しく書き込まれたデータであるため、第2ECCが必要となるケースは少ないものと考えられる。
<2.第2の実施の形態>
[情報処理システムの構成]
図9は、本技術の第2の実施の形態におけるメモリ300の管理態様の一例を示す図である。第1の実施の形態では第2ECCの対象となるデータ群と第2ECCの格納位置とが固定された関係にあることを想定したが、この第2の実施の形態では両者の関係は適宜設定できることを想定する。なお、前提とするメモリシステムの構成については、図1および図2により説明した第1の実施の形態のものと同様である。
この例においても、第1の実施の形態と同様に、データ311にそのデータの第1ECC312を付加したものを単位データとして扱う。通常アクセス領域310における単位データの物理アドレスおよび第2ECC格納領域330における第2ECCの物理アドレスは、アドレス変換テーブル222および第2ECC管理テーブル223によって管理される。これらアドレス変換テーブル222および第2ECC管理テーブル223は、アドレス管理部221に記憶される。
アドレス変換テーブル222は、論理アドレスと物理アドレスの対応関係を管理するためのテーブルである。この例では、論理アドレスに対応する第2ECC管理テーブル223のインデックスを保持している。
第2ECC管理テーブル223は、第2ECCを管理するテーブルである。この例では、第2ECCの物理アドレスと、その第2ECCに対応する単位データの物理アドレスとをエントリ毎に保持しており、各エントリにはインデックス(第2ECCインデックス)が付与されている。
[アドレス変換テーブルの構成]
図10は、本技術の第2の実施の形態におけるアドレス変換テーブル222の一構成例を示す図である。このアドレス変換テーブル222は、論理アドレスと、物理アドレスと、データフラグと、第2ECCフラグと、第2ECCインデックスとを関連付けて保持している。
論理アドレスは、ホストコンピュータ100において指定されるメモリ300のアドレスである。物理アドレスは、メモリ300における物理アドレスである。なお、ここでは、論理アドレスおよび物理アドレスを"0x"で始まる16進数の記述方法によって示している。
データフラグは、対応する物理アドレスにデータおよび第1ECCが記憶されているか否を示すフラグである。データフラグが「True」であればデータおよび第1ECCが書き込まれていることを示し、「False」であればデータおよび第1ECCが書き込まれていないことを示す。データフラグが「False」を示す物理アドレスから読み出されるデータは、メモリの初期値となる。なお、NANDフラッシュの場合、初期値は全てのビットが「1」となる
第2ECCフラグは、対応する物理アドレスに記憶されているデータに対して第2ECCが付与されているか否かを示すフラグである。第2ECCフラグが「True」であれば第2ECCが付与されてデータ保持特性が強化されていることを示し、「False」であれば第2ECCが付与されていないことを示す。
第2ECCインデックスは、第2ECCフラグが「True」を示すときに有効な値であり、第2ECC管理テーブル223の各エントリに付与されている第2ECCインデックスを保持するものである。この図10の例では、アドレス変換テーブル222のエントリ710、711、712および713において、第2ECCインデックスとして「Zi」が保持されている。
[第2ECC管理テーブルの構成]
図11は、本技術の第2の実施の形態における第2ECC管理テーブル223の一構成例を示す図である。この第2ECC管理テーブル223は、各エントリにおいて、第2ECCインデックスと、データ数と、第2ECC物理アドレスと、第0乃至第3番目データの物理アドレスが保持されている。
第2ECCインデックスは、第2ECC管理テーブル223のエントリを識別するためのインデックスを保持するものである。この第2ECCインデックスの値はアドレス変換テーブル222の対応するエントリに保持され、これによりアドレス変換テーブル222と第2ECC管理テーブル223とが関連付けられる。
データ数は、このエントリに含まれるデータの数を示すものである。
第2ECC物理アドレスは、このエントリに含まれるデータの第2ECCが記憶されている物理アドレスを保持するものである。
第0乃至第3番目データの物理アドレスは、このエントリに含まれるデータの物理アドレスを順番に保持するものである。第0乃至第3番目データの物理アドレスのうち、上述のデータ数によって示される数のデータに対応するもののみが有効である。この例では、第2ECCインデックスが「001」のエントリにおいては、データ数が「2」を示しているため、第0および第1番目データの物理アドレスの2つのみが有効である。また、第2ECCインデックスが「000」のエントリにおいては、データ数が「0」を示しているため、第0乃至第3番目データの物理アドレスの全てが無効である。
[ライト処理の処理手順]
図12は、本技術の第2の実施の形態におけるライト処理の処理手順の一例を示す図である。ホストコンピュータ100からライトコマンドを受け取ると、メモリ制御部200はライト処理を開始する。ライトコマンドはライト対象の論理アドレスを含む。また、このライトコマンドはライトデータを伴う。エラー訂正処理部234は、ライトデータに対する第1ECCを生成する(ステップS951)。
制御部211は、ライトコマンドの論理アドレスに基づいてアドレス管理部221のアドレス変換テーブル222を参照し、アドレス変換情報を取得する(ステップS952)。このアドレス変換情報は、図10により説明した、論理アドレス、物理アドレス、データフラグ、第2ECCフラグおよび第2ECCインデックスからなる情報である。ここで、第2ECCフラグが「False」(すなわち、第2ECCが付与されていない)を示す場合(ステップS953:No)、通常アクセス領域310にライトデータおよび第1ECCを書き込む(ステップS954)。このとき、通常アクセス領域310が、例えばReRAM、PCRAM、MRAMのように上書きが可能な不揮発性メモリであれば、更新前のデータの領域に対して上書きを行うことができる。一方、通常アクセス領域310が、NANDフラッシュのように上書きができないタイプの不揮発性メモリであれば、追記領域320に追記してもよい。追記を行った場合には、アドレス変換テーブル222に追記先の物理アドレスを登録して更新する(ステップS959)。
第2ECCフラグが「True」(すなわち、第2ECCが付与されている)を示す場合(ステップS953:Yes)、新しいデータをその第1ECCとともにメモリに書き込む(ステップS957)。その際、上書きが可能な不揮発性メモリに対しても、別の空き領域に追記書込みを行う点が前述の動作とは異なる。NANDフラッシュのように上書きができないタイプの不揮発性メモリに対しては、同様に、既に消去済みの空き領域に対して追記を行う。これは、第2ECCフラグが付与されている領域は、第2ECCで訂正を行うため、更新前のデータが必要になるからである。そのため、更新前の古いデータおよびその第1ECCと第2ECCは、消去または上書き等を行わずとっておく。
そして、アドレス変換テーブル222の物理アドレスを、必要に応じて、新たにデータが追記された物理アドレスに更新する。また、それと同時に、この新しく書き込まれたデータに対する第2ECCフラグは「False」に設定される(ステップS958)。これは、追記されたデータに対しては第2ECCが適用されないからである。ただし、第2ECCインデックスは削除せずにそのまま残す。アドレス変換テーブル222は常に最新の物理アドレスを保持するように維持される(ステップS959)。これにより、第2ECCフラグが「False」であり、かつ、第2ECCインデックスが存在する、という2つの情報から、後述するような第2ECC管理テーブル223との矛盾を検出することができるようになる。
これまでの説明で、第2ECC管理テーブル223には特殊な項目を加えていない。これにより、第2ECCが適用された通常アクセス領域310で更新されなかった残りのデータを読み出す際に第1ECCでエラー訂正に失敗した場合、この第2ECC管理テーブル223の情報に基づいてエラー訂正が可能となる。第2ECCが適用されたデータに対して変更を加えても、この変更により第2ECCを再計算する必要がない。
後から変更されて追記されたデータに対しては第2ECCが付与されていないが、このデータは更新されなかった残りのデータより比較的新しく書き込まれたデータであり、第1ECCのみでも信頼性が十分に担保されるものと考えられる。
なお、例えば、第2ECCが適用されたデータがNANDフラッシュに格納されている場合、追記データをより高速なReRAMに格納すると、集約処理の高速化を図ることができる。
[リード処理の処理手順]
図13は、本技術の第2の実施の形態におけるリード処理の処理手順の一例を示す図である。ホストコンピュータ100からリードコマンドを受け取ると、メモリ制御部200はリード処理を開始する。リードコマンドはリード対象の論理アドレスを含む。
制御部211は、リードコマンドの論理アドレスに基づいてアドレス変換テーブル222を参照し、アドレス変換情報を取得する(ステップS961)。このアドレス変換情報は、図10により説明した、論理アドレス、物理アドレス、データフラグ、第2ECCフラグおよび第2ECCインデックスからなる情報である。
そして、制御部211は、アドレス変換情報の物理アドレスによってメモリ300から単位データを読み出す(ステップS962)。この単位データにはリード対象のデータおよびその第1ECCが含まれる。
読み出されたデータおよび第1ECCによってエラー検出および訂正が行われ、エラーが検出されない、または、検出されたエラーの訂正に成功した場合(ステップS963:Yes)、このリード処理を正常終了する。一方、第1ECCによって検出されたエラーの訂正に失敗した場合には(ステップS963:No)、第2ECCによるエラー訂正が試みられる。このとき、アドレス変換情報の第2ECCフラグが「False」を示している場合(ステップS964:No)、第2ECCによるエラー訂正を行うことができないため、このリード処理をエラー終了する。エラー終了の際には、ホストコンピュータ100にリードエラーの発生を通知して、処理を中止する。
一方、第2ECCフラグが「True」を示している場合(ステップS964:Yes)、第2ECCインデックスにより指定される第2ECC管理テーブル223の該当エントリは変更されていない。その変更されていないエントリから管理情報を取得する(ステップS966)。ここでいう管理情報は、図11により説明した、データ数と、第2ECC物理アドレスと、第0乃至第3番目データの物理アドレスである。この管理情報から第2ECCの対象となるデータ群(例えば、上述の4Nバイトデータ)および第2ECCの格納領域が特定される。これにより、第2ECCの対象となるデータ群が通常アクセス領域310から読み出され、対応する第2ECCが第2ECC格納領域330から読み出される(ステップS967)。
読み出された第2ECCによってデータ群のエラー訂正が行われ、エラー訂正に成功した場合には(ステップS968:Yes)、訂正後のデータ群からリード対象データが選択される(ステップS969)。一方、エラー訂正に失敗した場合には(ステップS968:No)、リード処理をエラー終了する。
[集約処理の処理手順]
これまでの説明により、追記によるデータの一部更新により、第2ECCをその度に計算せずに、書込みおよび読出しが実現できることを示した。しかも、第2ECC管理テーブル223には特殊な項目を加える必要がなく、使い方を工夫することで効率的な実装が可能となっている。しかし、データの一部更新を繰り返した際に集約処理を行う必要性が生じる点は第1の実施の形態と同様である。また、集約処理を開始するタイミングについても第1の実施の形態と同様である。
図14は、本技術の第2の実施の形態における集約処理の処理手順の一例を示す図である。集約処理が開始すると、制御部211は、アドレス変換テーブル222を参照して、追記が行われている領域を検索する(ステップS971)。アドレス変換テーブル222において第2ECCフラグが「False」であり、かつ、第2ECCインデックスが存在する、というエントリが、追記が行われている領域を示しており、それが検索対象となる。そして、検索されたエントリの示す第2ECCインデックスと同じ第2ECCインデックスを有するエントリの物理アドレスを集めて、第2ECCの対象となるデータ群(例えば、上述の4Nバイトデータ)の物理アドレスリストが取得される。
このようにして取得された第2ECCの対象となるデータ群の物理アドレスに基づいて、第2ECCの対象となるデータ群が読み出される(ステップS972)。このとき、単位データについて第1ECCによるデータのエラー検出が行われ、エラーが検出されない場合またはエラーが検出されても第1ECCによるエラー訂正に成功した場合には(ステップS973:Yes)、次のステップS981に進む。
一方、エラー訂正に失敗した場合には(ステップS973:No)、第2ECCによるエラー訂正が試みられる。このとき、アドレス変換情報の第2ECCフラグが「False」を示している場合(ステップS974:No)、第2ECCによるエラー訂正を行うことができないため、この集約処理をエラー終了する。エラー終了の際には、ホストコンピュータ100に集約処理エラーの発生を通知して、処理を中止する。
また、第2ECCフラグが「True」を示している場合(ステップS974:Yes)、そのエントリの第2ECCインデックスが示す第2ECC管理テーブル223の管理情報が取得される(ステップS976)。そして、この管理情報に基づいて、第2ECCの対象となるデータ群およびそれに対応する第2ECCが読み出される(ステップS977)。読み出された第2ECCによってデータ群のエラー訂正が行われ、エラー訂正に成功した場合には(ステップS978:Yes)、次のステップS981に進む。一方、エラー訂正に失敗した場合には(ステップS978:No)、集約処理をエラー終了する。
第1ECCまたは第2ECCによるエラー訂正が成功した場合(ステップS973またはS978:Yes)、ステップS971において取得された物理アドレスリストに基づいて第2ECCが計算される(ステップS981)。計算された第2ECCは、管理情報の第2ECC物理アドレスの示す領域に格納される。そして、アドレス変換テーブル222において追記データの第2ECCフラグを「True」に設定する(ステップS982)。
次に、古いデータを消去し、または、そのメモリ領域を解放して再利用可能にする(ステップS983)。これは、新たに生成した第2ECC管理テーブル223と以前の第2ECC管理テーブル223にある物理アドレスを比較して、新たに生成した第2ECC管理テーブル223にない物理アドレスが対象になる。
最後に、ステップS971において取得された物理アドレスリストと新しい第2ECCが書き込まれた物理アドレスとを第2ECC管理テーブル223の新しいエントリとして登録し、古いエントリを削除する(ステップS984)。このとき、古い第2ECCインデックスを再利用してもよい。新しい第2ECCインデックスを付与する場合は、アドレス変換テーブル222の第2ECCインデックスも更新する必要がある
なお、第2ECCが適用されたデータがNANDフラッシュに格納されている場合、追記部分は、NANDフラッシュと較べて高速に読み書きが可能であるNVRAMに格納しておけば、より高速に集約処理が可能になる。
このように、本技術の第2の実施の形態によれば、第2ECCの対象となる通常アクセス領域310に記憶されたデータの一部に更新が生じた際に、第2ECC格納領域330の可変位置に第2ECCを維持しながら追記領域320に追記を行うことができる。
<3.変形例>
[第2ECC対象データのキャッシュ]
データの読出しの際、第1ECCではエラー訂正することができず、第2ECCを用いてエラー訂正を行わなければならない場合、第2ECCの対象となるデータは、空間的局所性または時間的局所性の観点から、再びアクセスされる可能性が高い。そこで、第2ECCによるエラー訂正後、対象データをより高速な内蔵メモリ220や揮発性メモリ303にキャッシュしておくことが有効である。これにより、全体として高速なメモリアクセスを実現することができる。
[予防的書直し]
データの読出しの際、第1ECCではエラー訂正することができず、第2ECCを用いてエラー訂正を行わなければならない場合、第2ECCの対象となるデータの保持特性が低下している兆候を示していると考えられる。そこで、第2ECCによってエラー訂正が可能であるうちに、データを予防的に書き直しておくことが有効である。この書直しの際には、同じ記憶領域に上書きしてもよく、また、他の空き領域に書き直すようにしてもよい。なお、この手法は、リードリクレーム(Read Reclaim)またはリードリフレッシュ(Read Refresh)と呼ばれる手法と同様の考え方に基づくものである。
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disk)、メモリカード、ブルーレイディスク(Blu-ray Disc(登録商標))等を用いることができる。
なお、本技術は以下のような構成もとることができる。
(1)複数のデータおよび当該複数のデータの各々に対するエラー訂正コードをメモリの第1記憶領域に記憶し、前記複数のデータの所定数毎に対応してそのエラー訂正コードを前記メモリの第2記憶領域に記憶し、前記複数のデータの何れかに対する追記データおよび当該追記データに対するエラー訂正コードを前記メモリの第3記憶領域に記憶する場合において、前記複数のデータの各々について論理アドレスと前記第1または第3記憶領域における物理アドレスとの対応関係を管理するアドレス管理部と、
ライト要求に係る論理アドレスに対応する物理アドレスが第1記憶領域に該当する場合には前記第1記憶領域および前記第2記憶領域を書き換えることなく前記ライト要求に係るデータを前記追記データとして当該追記データおよび当該追記データに対するエラー訂正コードを前記第3記憶領域に追記して当該追記された前記第3記憶領域における物理アドレスを前記アドレス管理部に登録する制御部と、
リード要求に係る論理アドレスに対応する物理アドレスが前記第3記憶領域に該当する場合には前記第3記憶領域の追記データと当該追記データに対するエラー訂正コードとによって前記第3記憶領域の追記データにおけるエラー訂正を行い、リード要求に係る論理アドレスに対応する物理アドレスが前記第3記憶領域に該当しない場合には前記第1記憶領域におけるデータを含む前記複数のデータの所定数と前記第2記憶領域のエラー訂正コードとによって前記第1記憶領域におけるエラー訂正を行うエラー訂正処理部と
を具備する記憶制御装置。
(2)前記制御部は、所定のタイミングにおいて前記追記データの各々について追記前の前記第1記憶領域に当該追記データを上書きし、
前記エラー訂正処理部は、前記所定のタイミングにおいて前記上書きされたデータを含む前記複数のデータの所定数からエラー訂正コードを生成して当該エラー訂正コードを前記第2記憶領域に記憶する
前記(1)に記載の記憶制御装置。
(3)複数のデータおよび当該複数のデータの各々に対するエラー訂正コードを第1記憶領域に記憶し、前記複数のデータの所定数毎に対応してそのエラー訂正コードを第2記憶領域に記憶し、前記複数のデータの何れかに対する追記データおよび当該追記データに対するエラー訂正コードを第3記憶領域に記憶するメモリと、
前記複数のデータの各々について論理アドレスと前記第1または第3記憶領域における物理アドレスとの対応関係を管理するアドレス管理部と、
ライト要求に係る論理アドレスに対応する物理アドレスが第1記憶領域に該当する場合には前記第1記憶領域および前記第2記憶領域を書き換えることなく前記ライト要求に係るデータを前記追記データとして当該追記データおよび当該追記データに対するエラー訂正コードを前記第3記憶領域に追記して当該追記された前記第3記憶領域における物理アドレスを前記アドレス管理部に登録する制御部と、
リード要求に係る論理アドレスに対応する物理アドレスが前記第3記憶領域に該当する場合には前記第3記憶領域の追記データと当該追記データに対するエラー訂正コードとによって前記第3記憶領域の追記データにおけるエラー訂正を行い、リード要求に係る論理アドレスに対応する物理アドレスが前記第3記憶領域に該当しない場合には前記第1記憶領域におけるデータを含む前記複数のデータの所定数と前記第2記憶領域のエラー訂正コードとによって前記第1記憶領域におけるエラー訂正を行うエラー訂正処理部と
を具備する記憶装置。
(4)前記メモリは、前記第1記憶領域をフラッシュメモリに記憶し、前記第3記憶領域を不揮発性RAMに記憶する前記(3)に記載の記憶装置。
(5)複数のデータおよび当該複数のデータの各々に対するエラー訂正コードを第1記憶領域に記憶し、前記複数のデータの所定数毎に対応してそのエラー訂正コードを第2記憶領域に記憶し、前記複数のデータの何れかに対する追記データおよび当該追記データに対するエラー訂正コードを第3記憶領域に記憶するメモリと、
前記複数のデータの各々について論理アドレスと前記第1または第3記憶領域における物理アドレスとの対応関係を管理するアドレス管理部と、
ライト要求に係る論理アドレスに対応する物理アドレスが第1記憶領域に該当する場合には前記第1記憶領域および前記第2記憶領域を書き換えることなく前記ライト要求に係るデータを前記追記データとして当該追記データおよび当該追記データに対するエラー訂正コードを前記第3記憶領域に追記して当該追記された前記第3記憶領域における物理アドレスを前記アドレス管理部に登録する制御部と、
リード要求に係る論理アドレスに対応する物理アドレスが前記第3記憶領域に該当する場合には前記第3記憶領域の追記データと当該追記データに対するエラー訂正コードとによって前記第3記憶領域の追記データにおけるエラー訂正を行い、リード要求に係る論理アドレスに対応する物理アドレスが前記第3記憶領域に該当しない場合には前記第1記憶領域におけるデータを含む前記複数のデータの所定数と前記第2記憶領域のエラー訂正コードとによって前記第1記憶領域におけるエラー訂正を行うエラー訂正処理部と、
前記メモリに対して前記リード要求または前記ライト要求を発行するホストコンピュータと
を具備する情報処理システム。
(6)複数のデータおよび当該複数のデータの各々に対するエラー訂正コードをメモリの第1記憶領域に記憶し、前記複数のデータの所定数毎に対応してそのエラー訂正コードを前記メモリの第2記憶領域に記憶し、前記複数のデータの何れかに対する追記データおよび当該追記データに対するエラー訂正コードを前記メモリの第3記憶領域に記憶する場合において、ライト要求に係る論理アドレスに対応する物理アドレスが第1記憶領域に該当するときには前記第1記憶領域および前記第2記憶領域を書き換えることなく前記ライト要求に係るデータを前記追記データとして当該追記データおよび当該追記データに対するエラー訂正コードを前記第3記憶領域に追記して当該追記された前記第3記憶領域における物理アドレスを前記アドレス管理部に登録する第1の手順と、
リード要求に係る論理アドレスに対応する物理アドレスが前記第3記憶領域に該当する場合には前記第3記憶領域の追記データと当該追記データに対するエラー訂正コードとによって前記第3記憶領域の追記データにおけるエラー訂正を行い、リード要求に係る論理アドレスに対応する物理アドレスが前記第3記憶領域に該当しない場合には前記第1記憶領域におけるデータを含む前記複数のデータの所定数と前記第2記憶領域のエラー訂正コードとによって前記第1記憶領域におけるエラー訂正を行う第2の手順と
を具備する記憶制御方法。
100 ホストコンピュータ
200 メモリ制御部
201 ホストインターフェース
210 プロセッサ
211 制御部
220 内蔵メモリ
221 アドレス管理部
222 アドレス変換テーブル
223 第2ECC管理テーブル
230 第1ECC処理部
234 エラー訂正処理部
240 第2ECC処理部
250 周辺回路
280 バス
291、292、293 メモリインターフェース
300 メモリ
301 不揮発性ランダムアクセスメモリ(NVRAM)
302 フラッシュメモリ
303 揮発性メモリ
310 通常アクセス領域
320 追記領域
330 第2ECC格納領域
400 メモリシステム
本技術は、上述の問題点を解消するためになされたものであり、その第1の側面は、複数のデータおよび当該複数のデータの各々に対する第1のエラー訂正コードをメモリの第1記憶領域に記憶し、上記複数のデータおよび当該複数のデータの各々に対する上記第1のエラー訂正コードの所定数毎に対応してその第2のエラー訂正コードを上記メモリの第2記憶領域に記憶し、上記複数のデータの何れかに対する追記データおよび当該追記データに対する上記第1のエラー訂正コードを上記メモリの第3記憶領域に記憶する場合において、上記複数のデータの各々について論理アドレスと上記第1または第3記憶領域における物理アドレスとの対応関係を管理するアドレス管理部と、ライト要求に係る論理アドレスに対応する物理アドレスが第1記憶領域に該当する場合には上記第1記憶領域および上記第2記憶領域を書き換えることなく上記ライト要求に係るデータを上記追記データとして当該追記データおよび当該追記データに対する上記第1のエラー訂正コードを上記第3記憶領域に追記して当該追記された上記第3記憶領域における物理アドレスを上記アドレス管理部に登録する制御部と、リード要求に係る論理アドレスに対応する物理アドレスが上記第3記憶領域に該当する場合には上記第3記憶領域の追記データと当該追記データに対する上記第1のエラー訂正コードとによって上記第3記憶領域の追記データにおけるエラー訂正を行い、リード要求に係る論理アドレスに対応する物理アドレスが上記第3記憶領域に該当しない場合には上記第1記憶領域におけるデータを含む上記複数のデータおよび当該複数のデータの各々に対する上記第1のエラー訂正コードの所定数と上記第2記憶領域の上記第2のエラー訂正コードとによって上記第1記憶領域におけるエラー訂正を行うエラー訂正処理部とを具備する記憶制御装置およびその制御方法である。これにより、第2のエラー訂正コード対象となるデータの一部分が更新される際、第2のエラー訂正コードの再計算を不要にするという作用をもたらす。
また、この第1の側面において、上記制御部は、所定のタイミングにおいて上記追記データの各々について追記前の上記第1記憶領域に当該追記データおよび当該追記データの上記第1のエラー訂正コードを上書きし、上記エラー訂正処理部は、上記所定のタイミングにおいて上記上書きされたデータを含む上記複数のデータおよび当該複数のデータの各々に対する上記第1のエラー訂正コードの所定数から上記第2のエラー訂正コードを生成して当該第2のエラー訂正コードを上記第2記憶領域に記憶するようにしてもよい。これにより、追記データを集約させるという作用をもたらす。
また、本技術の第2の側面は、複数のデータおよび当該複数のデータの各々に対する第1のエラー訂正コードを第1記憶領域に記憶し、上記複数のデータおよび当該複数のデータの各々に対する上記第1のエラー訂正コードの所定数毎に対応してその第2のエラー訂正コードを第2記憶領域に記憶し、上記複数のデータの何れかに対する追記データおよび当該追記データに対する上記第1のエラー訂正コードを第3記憶領域に記憶するメモリと、上記複数のデータの各々について論理アドレスと上記第1または第3記憶領域における物理アドレスとの対応関係を管理するアドレス管理部と、ライト要求に係る論理アドレスに対応する物理アドレスが第1記憶領域に該当する場合には上記第1記憶領域および上記第2記憶領域を書き換えることなく上記ライト要求に係るデータを上記追記データとして当該追記データおよび当該追記データに対する上記第1のエラー訂正コードを上記第3記憶領域に追記して当該追記された上記第3記憶領域における物理アドレスを上記アドレス管理部に登録する制御部と、リード要求に係る論理アドレスに対応する物理アドレスが上記第3記憶領域に該当する場合には上記第3記憶領域の追記データと当該追記データに対する上記第1のエラー訂正コードとによって上記第3記憶領域の追記データにおけるエラー訂正を行い、リード要求に係る論理アドレスに対応する物理アドレスが上記第3記憶領域に該当しない場合には上記第1記憶領域におけるデータを含む上記複数のデータおよび当該複数のデータの各々に対する上記第1のエラー訂正コードの所定数と上記第2記憶領域の上記第2のエラー訂正コードとによって上記第1記憶領域におけるエラー訂正を行うエラー訂正処理部とを具備する記憶装置およびその制御方法である。これにより、メモリにおいて第2のエラー訂正コード対象となるデータの一部分が更新される際、第2のエラー訂正コードの再計算を不要にするという作用をもたらす。
また、本技術の第3の側面は、複数のデータおよび当該複数のデータの各々に対する第1のエラー訂正コードを第1記憶領域に記憶し、上記複数のデータおよび当該複数のデータの各々に対する上記第1のエラー訂正コードの所定数毎に対応してその第2のエラー訂正コードを第2記憶領域に記憶し、上記複数のデータの何れかに対する追記データおよび当該追記データに対する上記第1のエラー訂正コードを第3記憶領域に記憶するメモリと、上記複数のデータの各々について論理アドレスと上記第1または第3記憶領域における物理アドレスとの対応関係を管理するアドレス管理部と、ライト要求に係る論理アドレスに対応する物理アドレスが第1記憶領域に該当する場合には上記第1記憶領域および上記第2記憶領域を書き換えることなく上記ライト要求に係るデータを上記追記データとして当該追記データおよび当該追記データに対する上記第1のエラー訂正コードを上記第3記憶領域に追記して当該追記された上記第3記憶領域における物理アドレスを上記アドレス管理部に登録する制御部と、リード要求に係る論理アドレスに対応する物理アドレスが上記第3記憶領域に該当する場合には上記第3記憶領域の追記データと当該追記データに対する上記第1のエラー訂正コードとによって上記第3記憶領域の追記データにおけるエラー訂正を行い、リード要求に係る論理アドレスに対応する物理アドレスが上記第3記憶領域に該当しない場合には上記第1記憶領域におけるデータを含む上記複数のデータおよび当該複数のデータの各々に対する上記第1のエラー訂正コードの所定数と上記第2記憶領域の上記第2のエラー訂正コードとによって上記第1記憶領域におけるエラー訂正を行うエラー訂正処理部と、上記メモリに対して上記リード要求または上記ライト要求を発行するホストコンピュータとを具備する情報処理システムおよびその制御方法である。これにより、ホストコンピュータの指示によりメモリにおいて第2のエラー訂正コード対象となるデータの一部分が更新される際、第2のエラー訂正コードの再計算を不要にするという作用をもたらす。
なお、本技術は以下のような構成もとることができる。
(1)複数のデータおよび当該複数のデータの各々に対する第1のエラー訂正コードをメモリの第1記憶領域に記憶し、前記複数のデータおよび当該複数のデータの各々に対する前記第1のエラー訂正コードの所定数毎に対応してその第2のエラー訂正コードを前記メモリの第2記憶領域に記憶し、前記複数のデータの何れかに対する追記データおよび当該追記データに対する前記第1のエラー訂正コードを前記メモリの第3記憶領域に記憶する場合において、前記複数のデータの各々について論理アドレスと前記第1または第3記憶領域における物理アドレスとの対応関係を管理するアドレス管理部と、
ライト要求に係る論理アドレスに対応する物理アドレスが第1記憶領域に該当する場合には前記第1記憶領域および前記第2記憶領域を書き換えることなく前記ライト要求に係るデータを前記追記データとして当該追記データおよび当該追記データに対する前記第1のエラー訂正コードを前記第3記憶領域に追記して当該追記された前記第3記憶領域における物理アドレスを前記アドレス管理部に登録する制御部と、
リード要求に係る論理アドレスに対応する物理アドレスが前記第3記憶領域に該当する場合には前記第3記憶領域の追記データと当該追記データに対する前記第1のエラー訂正コードとによって前記第3記憶領域の追記データにおけるエラー訂正を行い、リード要求に係る論理アドレスに対応する物理アドレスが前記第3記憶領域に該当しない場合には前記第1記憶領域におけるデータを含む前記複数のデータおよび当該複数のデータの各々に対する前記第1のエラー訂正コードの所定数と前記第2記憶領域の前記第2のエラー訂正コードとによって前記第1記憶領域におけるエラー訂正を行うエラー訂正処理部と
を具備する記憶制御装置。
(2)前記制御部は、所定のタイミングにおいて前記追記データの各々について追記前の前記第1記憶領域に当該追記データおよび当該追記データの前記第1のエラー訂正コードを上書きし、
前記エラー訂正処理部は、前記所定のタイミングにおいて前記上書きされたデータを含む前記複数のデータおよび当該複数のデータの各々に対する前記第1のエラー訂正コードの所定数から前記第2のエラー訂正コードを生成して当該第2のエラー訂正コードを前記第2記憶領域に記憶する
前記(1)に記載の記憶制御装置。
(3)複数のデータおよび当該複数のデータの各々に対する第1のエラー訂正コードを第1記憶領域に記憶し、前記複数のデータおよび当該複数のデータの各々に対する前記第1のエラー訂正コードの所定数毎に対応してその第2のエラー訂正コードを第2記憶領域に記憶し、前記複数のデータの何れかに対する追記データおよび当該追記データに対する前記第1のエラー訂正コードを第3記憶領域に記憶するメモリと、
前記複数のデータの各々について論理アドレスと前記第1または第3記憶領域における物理アドレスとの対応関係を管理するアドレス管理部と、
ライト要求に係る論理アドレスに対応する物理アドレスが第1記憶領域に該当する場合には前記第1記憶領域および前記第2記憶領域を書き換えることなく前記ライト要求に係るデータを前記追記データとして当該追記データおよび当該追記データに対する前記第1のエラー訂正コードを前記第3記憶領域に追記して当該追記された前記第3記憶領域における物理アドレスを前記アドレス管理部に登録する制御部と、
リード要求に係る論理アドレスに対応する物理アドレスが前記第3記憶領域に該当する場合には前記第3記憶領域の追記データと当該追記データに対する前記第1のエラー訂正コードとによって前記第3記憶領域の追記データにおけるエラー訂正を行い、リード要求に係る論理アドレスに対応する物理アドレスが前記第3記憶領域に該当しない場合には前記第1記憶領域におけるデータを含む前記複数のデータおよび当該複数のデータの各々に対する前記第1のエラー訂正コードの所定数と前記第2記憶領域の前記第2のエラー訂正コードとによって前記第1記憶領域におけるエラー訂正を行うエラー訂正処理部と
を具備する記憶装置。
(4)前記メモリは、前記第1記憶領域をフラッシュメモリに記憶し、前記第3記憶領域を不揮発性RAMに記憶する前記(3)に記載の記憶装置。
(5)複数のデータおよび当該複数のデータの各々に対する第1のエラー訂正コードを第1記憶領域に記憶し、前記複数のデータおよび当該複数のデータの各々に対する前記第1のエラー訂正コードの所定数毎に対応してその第2のエラー訂正コードを第2記憶領域に記憶し、前記複数のデータの何れかに対する追記データおよび当該追記データに対する前記第1のエラー訂正コードを第3記憶領域に記憶するメモリと、
前記複数のデータの各々について論理アドレスと前記第1または第3記憶領域における物理アドレスとの対応関係を管理するアドレス管理部と、
ライト要求に係る論理アドレスに対応する物理アドレスが第1記憶領域に該当する場合には前記第1記憶領域および前記第2記憶領域を書き換えることなく前記ライト要求に係るデータを前記追記データとして当該追記データおよび当該追記データに対する前記第1のエラー訂正コードを前記第3記憶領域に追記して当該追記された前記第3記憶領域における物理アドレスを前記アドレス管理部に登録する制御部と、
リード要求に係る論理アドレスに対応する物理アドレスが前記第3記憶領域に該当する場合には前記第3記憶領域の追記データと当該追記データに対する前記第1のエラー訂正コードとによって前記第3記憶領域の追記データにおけるエラー訂正を行い、リード要求に係る論理アドレスに対応する物理アドレスが前記第3記憶領域に該当しない場合には前記第1記憶領域におけるデータを含む前記複数のデータおよび当該複数のデータの各々に対する前記第1のエラー訂正コードの所定数と前記第2記憶領域の前記第2のエラー訂正コードとによって前記第1記憶領域におけるエラー訂正を行うエラー訂正処理部と、
前記メモリに対して前記リード要求または前記ライト要求を発行するホストコンピュータと
を具備する情報処理システム。
(6)複数のデータおよび当該複数のデータの各々に対する第1のエラー訂正コードをメモリの第1記憶領域に記憶し、前記複数のデータおよび当該複数のデータの各々に対する前記第1のエラー訂正コードの所定数毎に対応してその第2のエラー訂正コードを前記メモリの第2記憶領域に記憶し、前記複数のデータの何れかに対する追記データおよび当該追記データに対する前記第1のエラー訂正コードを前記メモリの第3記憶領域に記憶する場合において、ライト要求に係る論理アドレスに対応する物理アドレスが第1記憶領域に該当するときには前記第1記憶領域および前記第2記憶領域を書き換えることなく前記ライト要求に係るデータを前記追記データとして当該追記データおよび当該追記データに対する前記第1のエラー訂正コードを前記第3記憶領域に追記して当該追記された前記第3記憶領域における物理アドレスを前記アドレス管理部に登録する第1の手順と、
リード要求に係る論理アドレスに対応する物理アドレスが前記第3記憶領域に該当する場合には前記第3記憶領域の追記データと当該追記データに対する前記第1のエラー訂正コードとによって前記第3記憶領域の追記データにおけるエラー訂正を行い、リード要求に係る論理アドレスに対応する物理アドレスが前記第3記憶領域に該当しない場合には前記第1記憶領域におけるデータを含む前記複数のデータおよび当該複数のデータの各々に対する前記第1のエラー訂正コードの所定数と前記第2記憶領域の前記第2のエラー訂正コードとによって前記第1記憶領域におけるエラー訂正を行う第2の手順と
を具備する記憶制御方法。


Claims (6)

  1. 複数のデータおよび当該複数のデータの各々に対するエラー訂正コードをメモリの第1記憶領域に記憶し、前記複数のデータの所定数毎に対応してそのエラー訂正コードを前記メモリの第2記憶領域に記憶し、前記複数のデータの何れかに対する追記データおよび当該追記データに対するエラー訂正コードを前記メモリの第3記憶領域に記憶する場合において、前記複数のデータの各々について論理アドレスと前記第1または第3記憶領域における物理アドレスとの対応関係を管理するアドレス管理部と、
    ライト要求に係る論理アドレスに対応する物理アドレスが第1記憶領域に該当する場合には前記第1記憶領域および前記第2記憶領域を書き換えることなく前記ライト要求に係るデータを前記追記データとして当該追記データおよび当該追記データに対するエラー訂正コードを前記第3記憶領域に追記して当該追記された前記第3記憶領域における物理アドレスを前記アドレス管理部に登録する制御部と、
    リード要求に係る論理アドレスに対応する物理アドレスが前記第3記憶領域に該当する場合には前記第3記憶領域の追記データと当該追記データに対するエラー訂正コードとによって前記第3記憶領域の追記データにおけるエラー訂正を行い、リード要求に係る論理アドレスに対応する物理アドレスが前記第3記憶領域に該当しない場合には前記第1記憶領域におけるデータを含む前記複数のデータの所定数と前記第2記憶領域のエラー訂正コードとによって前記第1記憶領域におけるエラー訂正を行うエラー訂正処理部と
    を具備する記憶制御装置。
  2. 前記制御部は、所定のタイミングにおいて前記追記データの各々について追記前の前記第1記憶領域に当該追記データを上書きし、
    前記エラー訂正処理部は、前記所定のタイミングにおいて前記上書きされたデータを含む前記複数のデータの所定数からエラー訂正コードを生成して当該エラー訂正コードを前記第2記憶領域に記憶する
    請求項1記載の記憶制御装置。
  3. 複数のデータおよび当該複数のデータの各々に対するエラー訂正コードを第1記憶領域に記憶し、前記複数のデータの所定数毎に対応してそのエラー訂正コードを第2記憶領域に記憶し、前記複数のデータの何れかに対する追記データおよび当該追記データに対するエラー訂正コードを第3記憶領域に記憶するメモリと、
    前記複数のデータの各々について論理アドレスと前記第1または第3記憶領域における物理アドレスとの対応関係を管理するアドレス管理部と、
    ライト要求に係る論理アドレスに対応する物理アドレスが第1記憶領域に該当する場合には前記第1記憶領域および前記第2記憶領域を書き換えることなく前記ライト要求に係るデータを前記追記データとして当該追記データおよび当該追記データに対するエラー訂正コードを前記第3記憶領域に追記して当該追記された前記第3記憶領域における物理アドレスを前記アドレス管理部に登録する制御部と、
    リード要求に係る論理アドレスに対応する物理アドレスが前記第3記憶領域に該当する場合には前記第3記憶領域の追記データと当該追記データに対するエラー訂正コードとによって前記第3記憶領域の追記データにおけるエラー訂正を行い、リード要求に係る論理アドレスに対応する物理アドレスが前記第3記憶領域に該当しない場合には前記第1記憶領域におけるデータを含む前記複数のデータの所定数と前記第2記憶領域のエラー訂正コードとによって前記第1記憶領域におけるエラー訂正を行うエラー訂正処理部と
    を具備する記憶装置。
  4. 前記メモリは、前記第1記憶領域をフラッシュメモリに記憶し、前記第3記憶領域を不揮発性RAMに記憶する請求項3記載の記憶装置。
  5. 複数のデータおよび当該複数のデータの各々に対するエラー訂正コードを第1記憶領域に記憶し、前記複数のデータの所定数毎に対応してそのエラー訂正コードを第2記憶領域に記憶し、前記複数のデータの何れかに対する追記データおよび当該追記データに対するエラー訂正コードを第3記憶領域に記憶するメモリと、
    前記複数のデータの各々について論理アドレスと前記第1または第3記憶領域における物理アドレスとの対応関係を管理するアドレス管理部と、
    ライト要求に係る論理アドレスに対応する物理アドレスが第1記憶領域に該当する場合には前記第1記憶領域および前記第2記憶領域を書き換えることなく前記ライト要求に係るデータを前記追記データとして当該追記データおよび当該追記データに対するエラー訂正コードを前記第3記憶領域に追記して当該追記された前記第3記憶領域における物理アドレスを前記アドレス管理部に登録する制御部と、
    リード要求に係る論理アドレスに対応する物理アドレスが前記第3記憶領域に該当する場合には前記第3記憶領域の追記データと当該追記データに対するエラー訂正コードとによって前記第3記憶領域の追記データにおけるエラー訂正を行い、リード要求に係る論理アドレスに対応する物理アドレスが前記第3記憶領域に該当しない場合には前記第1記憶領域におけるデータを含む前記複数のデータの所定数と前記第2記憶領域のエラー訂正コードとによって前記第1記憶領域におけるエラー訂正を行うエラー訂正処理部と、
    前記メモリに対して前記リード要求または前記ライト要求を発行するホストコンピュータと
    を具備する情報処理システム。
  6. 複数のデータおよび当該複数のデータの各々に対するエラー訂正コードをメモリの第1記憶領域に記憶し、前記複数のデータの所定数毎に対応してそのエラー訂正コードを前記メモリの第2記憶領域に記憶し、前記複数のデータの何れかに対する追記データおよび当該追記データに対するエラー訂正コードを前記メモリの第3記憶領域に記憶する場合において、ライト要求に係る論理アドレスに対応する物理アドレスが第1記憶領域に該当するときには前記第1記憶領域および前記第2記憶領域を書き換えることなく前記ライト要求に係るデータを前記追記データとして当該追記データおよび当該追記データに対するエラー訂正コードを前記第3記憶領域に追記して当該追記された前記第3記憶領域における物理アドレスを前記アドレス管理部に登録する第1の手順と、
    リード要求に係る論理アドレスに対応する物理アドレスが前記第3記憶領域に該当する場合には前記第3記憶領域の追記データと当該追記データに対するエラー訂正コードとによって前記第3記憶領域の追記データにおけるエラー訂正を行い、リード要求に係る論理アドレスに対応する物理アドレスが前記第3記憶領域に該当しない場合には前記第1記憶領域におけるデータを含む前記複数のデータの所定数と前記第2記憶領域のエラー訂正コードとによって前記第1記憶領域におけるエラー訂正を行う第2の手順と
    を具備する記憶制御方法。
JP2011277777A 2011-11-30 2011-12-20 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法 Expired - Fee Related JP5845876B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2011277777A JP5845876B2 (ja) 2011-12-20 2011-12-20 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
US13/675,768 US8898541B2 (en) 2011-11-30 2012-11-13 Storage controller, storage device, information processing system, and storage controlling method
CN201210484725.3A CN103136067B (zh) 2011-11-30 2012-11-23 存储控制器、存储设备、信息处理系统以及存储控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011277777A JP5845876B2 (ja) 2011-12-20 2011-12-20 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法

Publications (2)

Publication Number Publication Date
JP2013130899A true JP2013130899A (ja) 2013-07-04
JP5845876B2 JP5845876B2 (ja) 2016-01-20

Family

ID=48908431

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011277777A Expired - Fee Related JP5845876B2 (ja) 2011-11-30 2011-12-20 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法

Country Status (1)

Country Link
JP (1) JP5845876B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015052833A1 (ja) * 2013-10-11 2015-04-16 株式会社日立製作所 ストレージ装置、ストレージシステム、及びストレージ装置制御方法
JP2015079402A (ja) * 2013-10-18 2015-04-23 ソニー株式会社 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法
JP2017079050A (ja) * 2015-08-11 2017-04-27 エイチジーエスティーネザーランドビーブイ 保護されたデータとは別個のパリティデータの記憶

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63275225A (ja) * 1987-05-06 1988-11-11 Seiko Epson Corp 誤り訂正装置
WO1999032977A1 (fr) * 1997-12-22 1999-07-01 Tdk Corporation Systeme de memoire flash
JP2011081776A (ja) * 2009-09-11 2011-04-21 Sony Corp 不揮発性メモリ装置、メモリコントローラ、およびメモリシステム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63275225A (ja) * 1987-05-06 1988-11-11 Seiko Epson Corp 誤り訂正装置
WO1999032977A1 (fr) * 1997-12-22 1999-07-01 Tdk Corporation Systeme de memoire flash
JP2011081776A (ja) * 2009-09-11 2011-04-21 Sony Corp 不揮発性メモリ装置、メモリコントローラ、およびメモリシステム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015052833A1 (ja) * 2013-10-11 2015-04-16 株式会社日立製作所 ストレージ装置、ストレージシステム、及びストレージ装置制御方法
JP6062060B2 (ja) * 2013-10-11 2017-01-18 株式会社日立製作所 ストレージ装置、ストレージシステム、及びストレージ装置制御方法
JP2015079402A (ja) * 2013-10-18 2015-04-23 ソニー株式会社 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法
JP2017079050A (ja) * 2015-08-11 2017-04-27 エイチジーエスティーネザーランドビーブイ 保護されたデータとは別個のパリティデータの記憶
US10133625B2 (en) 2015-08-11 2018-11-20 Western Digital Technologies, Inc. Storing parity data separate from protected data

Also Published As

Publication number Publication date
JP5845876B2 (ja) 2016-01-20

Similar Documents

Publication Publication Date Title
US9189325B2 (en) Memory system and operation method thereof
US8478796B2 (en) Uncorrectable error handling schemes for non-volatile memories
CN103136067B (zh) 存储控制器、存储设备、信息处理系统以及存储控制方法
US8996791B2 (en) Flash memory device, memory control device, memory control method, and storage system
JP5929456B2 (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
US9817712B2 (en) Storage control apparatus, storage apparatus, information processing system, and storage control method
JP6102632B2 (ja) 記憶制御装置、ホストコンピュータ、情報処理システムおよび記憶制御装置の制御方法
TWI587135B (zh) 資料儲存方法、記憶體儲存裝置及記憶體控制電路單元
JP2004303238A (ja) フラッシュメモリアクセス装置及び方法
TWI556103B (zh) 記憶體裝置及其資料存取方法
CN103793335B (zh) 存储控制设备、存储设备、信息处理系统及存储控制方法
US10289546B2 (en) Memory management method, memory control circuit unit and memory storage device
JP5845876B2 (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
TW202318204A (zh) 映射資訊記錄方法、記憶體控制電路單元與記憶體儲存裝置
US9778862B2 (en) Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus
JP6107625B2 (ja) 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法
US10289334B2 (en) Valid data merging method, memory controller and memory storage apparatus
JP2012068765A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US20200210093A1 (en) Memory management method, memory storage device and memory control circuit unit
US8832358B2 (en) Data writing method, memory controller and memory storage apparatus
TWI766526B (zh) 資料處理方法及對應之資料儲存裝置
WO2017168905A1 (ja) メモリ制御装置、記憶装置および情報処理システム
WO2017158997A1 (ja) メモリコントローラ、メモリシステム、情報処理システム、メモリ制御方法およびプログラム
JP2013114521A (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
US10922021B2 (en) Data storage method based on data type identification, memory storage apparatus and memory control circuit unit

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141125

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150729

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150804

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150915

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151027

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151109

R151 Written notification of patent or utility model registration

Ref document number: 5845876

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees