(57)【特許請求の範囲】
【請求項１】
データの消去可能な単位であるブロックを有する記憶装置であって、前記ブロックはデータの読み出し・書き込みの可能な単位であるページを有し、前記ページはデータ領域と冗長領域を有しており、前記冗長領域には前記ページの前記データ領域に書き込まれたデータの順番情報が書き込まれている記憶装置からデータを読み出す電子機器であって、
前記ブロック内のデータが書き込まれている前記ページのうち、最後のページから先頭のページに向けて順にデータを読み出す読み出し手段であって、ページのデータを読み出すとき、前記冗長領域を前記データ領域より先に読み出す読み出し手段と、
前記読み出し手段が、前記冗長領域の順番情報を読み出したとき、既に読み出されているページのデータの順番情報と一致するか否かを判別する判別手段と、
前記判別手段が一致すると判別したとき、一致すると判別されたページのデータ領域よりデータの読み出しを行わないように読み出し手段を制御する読み出し制御手段と、
を具備する電子機器。
【請求項２】
前記読み出し手段は、所定のページからの読み出しに失敗したとき、前記所定のページの読み出しを行なわない請求項１記載の電子機器。
【請求項３】
データの読み出し先の前記記憶装置は冗長領域に同じ順番情報を有する複数のページを有することを特徴とする請求項１記載の電子機器。
【請求項４】
前記記憶装置より読み出したデータを格納する、ランダムな読み出しが可能な記憶媒体を更に具備する請求項１記載の電子機器。
【請求項５】
データの消去可能な単位であるブロックを有する記憶装置であって、前記ブロックはデータの読み出し・書き込みの可能な単位であるページを有し、前記ページはデータ領域と冗長領域を有しており、前記冗長領域には前記ページの前記データ領域に書き込まれたデータの順番情報が書き込まれている記憶装置からデータを読み出す読み出し方法であって、
前記ブロック内のデータが書き込まれている前記ページのうち、最後のページから先頭のページに向けて順にデータを読み出し、
それぞれのページからデータを読み出すとき、前記冗長領域を前記データ領域より先に読み出し、
前記冗長領域の順番情報を読み出したとき、既に読み出されているページのデータの順番情報と一致するか否かを判別し、
一致すると判別したとき、一致すると判別されたページのデータ領域よりデータの読み出しを行わない読み出し方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は電子機器およびデータ読み出し方法に関する。
【背景技術】
【０００２】
近年、技術開発によって半導体記憶装置の大容量化、長寿命化が進んでいる。例えばＮＡＮＤフラッシュメモリのような半導体記憶装置内には、データの消去可能な単位であるブロックという単位が存在する。このブロックにおけるデータの消去回数には上限があり、所定回数以上データを消去するとこのブロックは劣化によって、不良ブロックになってしまう場合がある。つまりデータの書き換えを繰り返すことによって、ブロックの残りの消去可能回数が少なくなってしまう（寿命が短くなる）。
【０００３】
半導体記憶装置の長寿命化技術として、既にデータが格納されているブロックに、格納されているデータと一部異なるデータを書き込む際に書き込み方に工夫を施し、ブロックにおけるデータの消去回数を削減しようとする技術が存在する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−２８０１０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述のようにデータ書き込みを行ったデータを読み出す際における、効率的な読み出し処理の実現が望まれている。
【０００６】
本発明は上記に鑑みてなされたものであって、半導体記憶装置に記憶されたデータを好適に読み出すことの可能な電子機器及びデータ読み出し方法を提供することを課題とする。
【課題を解決するための手段】
【０００７】
実施形態における電子機器は、データの消去可能な単位であるブロックを有する記憶装置であって、前記ブロックはデータの読み出し・書き込みの可能な単位であるページを有し、前記ページはデータ領域と冗長領域を有しており、前記冗長領域には前記ページの前記データ領域に書き込まれたデータの順番情報が書き込まれている記憶装置からデータを読み出す電子機器であって、前記ブロック内のデータが書き込まれている前記ページのうち、最後のページから先頭のページに向けて順にデータを読み出す読み出し手段であって、ページのデータを読み出すとき、前記冗長領域を前記データ領域より先に読み出す読み出し手段と、前記読み出し手段が、前記冗長領域の順番情報を読み出したとき、既に読み出されているページのデータの順番情報と一致するか否かを判別する判別手段と、前記判別手段が一致すると判別したとき、一致すると判別されたページのデータ領域よりデータの読み出しを行わないように読み出し手段を制御する読み出し制御手段と、を具備する。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態における電子機器の内部構成の一例を示すブロック図。
【図２】本発明の実施形態におけるフラッシュメモリの内部構成の一部を示す概念図。
【図３】本発明の実施形態におけるデータ書き込み処理の一例を示す概念図。
【図４】本発明の実施形態におけるフラッシュメモリへの書き込み処理の一例を示すフロー図。
【図５】本発明の実施形態における特徴的な書き込み処理を行った後のブロックに対するデータ読み出し処理の一例を示す概念図。
【図６】本発明の実施形態における読み出し処理の一例を示すフロー図。
【発明を実施するための形態】
【０００９】
本発明の実施の形態を図面を参照しながら説明する。
【００１０】
図１は本実施形態における電子機器１の内部構成の一例を示すブロック図である。図１には電子機器１、制御部１１、フラッシュメモリ１２、ＲＡＭ１３、およびバス１４が示されている。
【００１１】
電子機器１は、例えばパーソナルコンピュータ（Personal Computer）であり、各種計算処理を行う機能を有している。本実施形態において、電子機器の一例としてパーソナルコンピュータを示すがこれに限定されず、例えばデジタルテレビ、携帯電話、さらにはマイコン（Microcomputer）を搭載した家電等の電子機器において本発明を適用するとしてもよい。
【００１２】
制御部１１は電子機器１全体を制御する中央演算処理装置（ＣＰＵ：Central Processing Unit）である。プログラムを実行し、そのプログラムに応じた所定の処理を実行する機能を有している。また、各種記憶媒体からの情報の読み出し、および各種記憶媒体への情報の書き込みを行うことができる。
【００１３】
フラッシュメモリ１２は、例えばＮＡＮＤフラッシュメモリ等の半導体メモリによって構成される不揮発性半導体記憶装置である。本実施形態においてフラッシュメモリ１２はＣＰＵ１１が電子機器１のブート時や各種プログラム実行時等に使用するデータを格納している。また、このフラッシュメモリ１２はデータの書き込みも可能である。このフラッシュメモリ１２の詳細構成は図２を用いて後述にて説明を行う。
【００１４】
ＲＡＭ１３は例えばＳＤＲＡＭ（Synchronous DRAM）等の、半導体メモリによって構成されるアドレス指定を用いたランダムな読み出しが可能な揮発性の記憶媒体（Random Access Memory）である。ＲＡＭ１３はＣＰＵ１１が各種情報処理を行う際のデータの展開領域等に使用される。
【００１５】
バス１４はバス１４に接続される各モジュールをそれぞれ通信可能に接続する機能を有している。
【００１６】
図２は本実施形態におけるフラッシュメモリ１２の内部構成の一部を示す概念図である。
【００１７】
フラッシュメモリ１２は、書き込まれているデータを消去可能な単位である複数のブロック２１によって構成されている。
【００１８】
ブロック２１は更に複数のページ２２によって構成されている。ページ２２はフラッシュメモリ１２におけるデータの読み出し／書き込み可能な単位である。
【００１９】
ページ２２はデータ領域２３と冗長領域２４によって構成されている。データ領域２３は、電子機器がフラッシュメモリ１２に保存しようとするデータを書き込む領域である。また、冗長領域２４はデータ領域２３に関するメタデータ等のデータを書き込むための領域である。
【００２０】
本実施形態では、フラッシュメモリ１２は１つのページ２２の容量が５２８バイトであり、１つのブロック２１は３２ページによって構成されているものと例示する。しかし、これに限定されずページ２２の容量やブロック２１を構成するページ２２の数は他の値であってよい。
【００２１】
例えば、ＮＡＮＤフラッシュメモリのような半導体記憶装置は、既にデータが書き込まれているページに対して、そのままデータの上書きを行うことができない。このため、ブロック２１中の、あるページ２２に対してのみデータの上書きを行いたい場合であっても、このブロック２１のデータ全てに消去処理を行ってから、上書きをしたいデータを書き込む必要がある。また、ＮＡＮＤフラッシュメモリのような半導体記憶装置はデータの消去や書き込み処理によって劣化が発生してしまうため、消去可能回数及び上書き可能回数には上限が存在する（寿命が存在する）。ブロック２１内のあるページ２２のみに対してデータを書き込みたい場合、ブロック２１内のすべてのデータを消した後にデータの書き込み行うと、データ消去及び書き込み回数が多くなってしまい、フラッシュメモリ１２の寿命低下を招くこととなる。
【００２２】
そこで、本実施形態では上述の書き込み処理とは一部異なる方法によってフラッシュメモリ１２中へのデータを書き込む。次に、本実施形態におけるデータ書き込みの処理について説明する。
【００２３】
図３は本実施形態におけるデータ書き込み処理の一例を示す概念図である。
【００２４】
まず、図３（Ａ）に示されるようにフラッシュメモリ１２の所定のブロックにデータ３２が格納されており、ここにデータ３２と一部異なるデータである書き換えデータ３１を書き込む場合を考える。
【００２５】
まず、図３（Ａ）右図に示されるデータの書き換え対象のブロック３３に関する説明を行う。
【００２６】
データ３２は書き換え対象のブロック３３に格納されており、本実施形態においては４つのページ２２にまたがって書き込まれる連続したデータである。ここではデータ３２の先頭ページに書き込まれたデータをＡ、次のページに書き込まれたデータをＢ、さらに次のページに書き込まれたデータをＣ、最後のページに書き込まれたデータをＤと呼ぶこととする。データ領域２３にデータＡ乃至データＤが書き込まれた、ページ２２の冗長領域２４には所定の場所にデータ３２中でのデータの順番情報が書き込まれている。すなわち、データ領域２３にデータＡを格納しているページ２２の冗長領域２４には１番という順番情報が書き込まれており、次のページ２２からは昇順に番号情報が書き込まれている。
【００２７】
ここで、データ３２が書き込まれているブロック３３は、データＤが書き込まれているページの次のページにデータが書き込まれていない未使用ページ３４を有する。この未使用ページ３４に対しては、ブロック３３ごとのデータの消去を行う必要なく、データの書き込みを行うことが可能である。
【００２８】
図３（Ａ）左図に示される書き換えデータ３１はデータ３２と一部異なるデータである。書き換えデータ３１とデータ３２はデータＢにあたる個所のデータ（データＢ´）が一部異なっており、データＡ、データＣ及びデータＤに関しては同じ値である。
【００２９】
このとき、本実施形態の特徴的な書き込み方法を用いずにデータ３２を書き換えデータ３１に書き込もうとすると、データ３２が格納されているブロック３３のデータを全て消去した後にデータ３１を書き込む必要があり、これによってブロック３３の寿命が短くなってしまう。
【００３０】
本実施形態における特徴的なデータの書き込み方法の概念図を図３（Ｂ）に示す。
【００３１】
書き換えデータ３１のうちデータＡ、データＣ及びデータＤに関しては同じ値であるためデータの書き換えを行う必要がなく、データの読み出しの際に既にデータ３２としてブロック３３に格納されているデータを利用すればよい。しかしデータＢ´は書き換え前にはブロック３３にデータが格納されていないため、書き込みを行う必要がある。そこで、制御部１１（またはフラッシュメモリ１３のコントローラでもよい）は、書き換えデータ３１のデータＢ´をブロック３３中のデータＤが書き込まれているページに続く未使用ページ３４に対して書き込む。さらにこのとき、制御部１１は冗長領域２４にデータＢ及びデータＢ´に対応する順番情報を書き込む。これによって書き換えデータ３１を構成するためのデータはすべてブロック３３内に格納されたこととなる。また、データ３２は全てブロック３３に残っており読み出すことは可能である。
【００３２】
次に書き込み処理の流れについて説明を行う。
【００３３】
図４は本実施形態におけるフラッシュメモリ１２への書き込み処理の一例を示すフロー図である。
【００３４】
制御部１１はフラッシュメモリ１２に格納されているデータの書き換えを行う場合に、書き換え対象のブロック３３の中で、書き込まれているデータが書き換えデータと異なるデータとなっており、データの書き換えを行う必要のあるページ数を検出する。そして、このページ数が書き換え対象のブロック３３内の未使用ページ３４数より多いか否かの判別を行う（ステップＳ４１）。
【００３５】
ステップＳ４１で書き換え要のページ数が書き換え対象のブロック３３内の未使用ページ３４数より多くなると判別したとき（ステップＳ４１：Ｙｅｓ）、制御部１１はまず書き換え対象のブロック３３に書き込まれているデータを消去し（ステップＳ４２）、後に書き換え対象のブロック３３に書き換えデータ３１を書き込む（ステップＳ４３）。
【００３６】
ステップＳ４１で書き換え要のページ数が書き換え対象のブロック３３内の未使用ページ３４数と同じ、または少ないと判別したとき（ステップＳ４１：Ｎｏ）、制御部１１は未使用ページに対して、書き換え対象のブロック３３に書き込まれているデータと異なるデータの書き込みを行い（ステップＳ４４）、書き込んだページの冗長領域２４に書き込んだデータに対応する順番情報を書き込む（ステップＳ４５）。
【００３７】
ステップＳ４３及びステップＳ４５が終了すると一連の書き込み処理フローは終了となる。
【００３８】
次に本実施形態における読み出し処理について説明を行う。
【００３９】
図５は本実施形態における特徴的な書き込み処理を行った後のブロックに対するデータ読み出し処理の一例を示す概念図である。
【００４０】
本実施形態において読み出し対象のブロック５１からデータを読み出すとき、制御部１１は読み出し対象のブロック５１にデータの書き込まれている最終ページからページの降順のデータを読み出す。その際、ページ２２の内、データ領域２３と冗長領域２４の内冗長領域２４を先に読み出し、次にデータ領域２３を読み出す。
【００４１】
データ読み出し時、制御部１１はまず最終ページの冗長領域２４を読み出して、ページ２２の順番情報を取得する。次に制御部１１はデータ領域２３に書き込まれているデータを読み出し、読み出したデータを取得した順番情報に基づいて並べる作業を行う。
【００４２】
あるページのデータの読み出しが完了すると、１つ番号の低いページを読み出していき、この読み出し動作を、先頭ページを読み出すまで行う。この時、あるページの冗長領域２４に書き込まれている順番情報が、これまでに読み出したページの順番情報と同じであった場合にはこのデータ領域２３のデータの読み出しは行わない。これによって、書き換え前のデータの読み出し動作を行うことなく、書き換えた後のデータを生成することができる。
【００４３】
次に本実施形態における読み出し処理の例を示す。
【００４４】
図６は本実施形態における読み出し処理の一例を示すフロー図である。
【００４５】
本実施形態において制御部１１は読み出し手段としてフラッシュメモリ１２よりデータを読み出す。フラッシュメモリ１２からデータの読み出し処理を実行するとき、まず制御部１１は読み出したデータを格納する先としてＲＡＭ１３の領域を確保する（ステップＳ６０１）。
【００４６】
次に、制御部１１は読み出し対象のブロック中のデータが書き込まれているページのうち、最終のページを読み出し対象に設定する（ステップＳ６０２）。
【００４７】
読み出し対象を設定すると、制御部１１はそのページがブロックのうちの先頭ページ出あるか否かを判別する（ステップＳ６０３）。
【００４８】
読み出し対象のページが先頭ページでないとき（ステップＳ６０３：Ｎｏ）、制御部１１は読み出し対象のページの冗長領域のデータを読み出す（ステップＳ６０４）。
【００４９】
次に制御部１１は、ステップＳ６０４で読み出した冗長領域のデータの中からこのページのデータ領域に書き込まれたデータの順番情報を検出し、判別手段としてこの順番情報が既に読み出したデータ（読み出してＲＡＭに格納されているデータ）の順番情報と一致するか否かの判別を行う（ステップＳ６０５）。
【００５０】
既に読み出したデータと順番情報が一致するとき（ステップＳ６０５：Ｙｅｓ）、制御部１１は読み出し制御手段として読み出しを制御して、このデータ領域のデータの読み出しを行わない（ステップＳ６０６）。これにより、制御部１１はデータを読み出す際に、書き換え後のデータのうち最新のデータ以外のデータを読み出すことがなくなり、読み出し処理量の低減、読み出し処理の高速化を図ることができる。さらに制御部１１は読み出し処理の際に別途作成したテーブル等を参照することなく、高速に少ない処理量で処理を行うことができる。また、テーブルの作成、利用等にリソースを奪われることもない。
【００５１】
ステップＳ６０５において、既に読み出したデータと順番情報が一致しないとき（ステップＳ６０５：Ｎｏ）、制御部１１はこのページのデータ領域に書き込まれたデータを読み出す（ステップＳ６０７）。
【００５２】
ステップＳ６０７でデータを読み出す時、制御部１１は読み出すデータが正しく読み出されたか否かを判別する（ステップＳ６０８）。
【００５３】
ステップＳ６０８でデータが正しく読み出されたと判別するとき（ステップＳ６０８：Ｙｅｓ）、制御部１１は読み出したデータをＲＡＭ１３にコピーする（ステップＳ６０９）。この時、制御部１１はページの冗長領域に格納された順序情報に基づいて読み出されたデータを並べる。
【００５４】
ステップＳ６０６終了後、ステップＳ６０８においてデータが正しく読み出せなかった場合（ステップＳ６０８：Ｎｏ）、およびステップＳ６０９終了後に処理ステップはステップＳ６１０に進む。ステップＳ６０１では、制御部１１は読み出し対象として設定しているページのページ番号に−１を行い、ひとつ若いページ番号のページを読み出し対象のページとして設定する（ステップＳ６１０）。
【００５５】
ステップＳ６０８においてデータが正しく読み出せなかった場合（ステップＳ６０８：Ｎｏ）としては、例えば書き込み処理中に何らかのエラーが発生し正しく書き込まれなかった場合や、書き込んでいたデータ自体に欠陥があり正しく読み出せない場合が考えられる。例えばこのデータが書き換えによって未使用ページに追加されたデータ（図５：データＢ´）であるときは、書き換え前のデータ（図５：データＢ）は従来の状態で残っているため、こちらが読み出されることとなる。このように本実施形態では書き換え前のデータ（図５：データＢ）を無効としたり、消去したりしないため書き換えによって未使用ページに追加されたデータ（図５：データＢ´）に欠陥が生じている場合には書き換え前のデータを読み出しの際に自動的に復元することが可能となる。本実施形態においては、ステップＳ６０７によるデータ領域の読み出し処理時にデータが正しく読み出せたか否かを判別するが、これに限定されず、例えばステップＳ６０４による冗長領域の読み出し時についても判別を行うとしてもよい。データの書き込み処理の際に失敗が生じている場合には冗長領域のデータが正しく書き込まれていない場合や、順番情報自体が書き込まれていない場合も考えられる。ステップＳ６０４でデータが正しく書き込まれていないと判別される場合にも、処理はステップＳ６０６に進む。
【００５６】
ステップＳ６１０が完了すると処理フローはステップＳ６０３に戻る。読み出し対象のページが先頭ページであると判別されるとき（ステップＳ６０３：Ｙｅｓ）、制御部１１はデータの読み出し処理を終了する。
【００５７】
上記の処理によって書き換えられたデータを正しく読み出すことができる。
【００５８】
本実施形態における電子機器１はフラッシュメモリ１２のような不揮発性記憶装置に記憶されたデータを効率的に読み出すことができる。
【００５９】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具現化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【００６０】
１…電子機器１…制御部、１２…フラッシュメモリ、１３…ＲＡＭ、２１…ブロック、２２…ページ、２３…データ領域、２４…冗長領域、３１…書き換えデータ、３２…データ、３３…書き換え対象ブロック、３４…未使用ページ。
【要約】
【課題】半導体記憶装置に記憶されたデータを好適に読み出すことの可能な電子機器及びデータ読み出し方法を提供することを課題とする。
【解決手段】電子機器（１）は、記憶装置（１２）からデータを読み出す電子機器（１１）であって、ブロック（２１）内のデータが書き込まれているページ（２２）のうち、最後のページから先頭のページに向けて順にデータを読み出す読み出し手段であって、ページのデータを読み出すとき、冗長領域（２４）をデータ領域（２３）より先に読み出す読み出し手段と、前記読み出し手段が、前記冗長領域の順番情報を読み出したとき、既に読み出されているページのデータの順番情報と一致するか否かを判別する判別手段と、前記判別手段が一致すると判別したとき、一致すると判別されたページのデータ領域よりデータの読み出しを行わないように読み出し手段を制御する読み出し制御手段と、を具備する。
【選択図】図６【図１】
0004818453.tif 000002
【図２】
0004818453.tif 000003
【図３】
0004818453.tif 000004
【図４】
0004818453.tif 000005
【図５】
0004818453.tif 000006
【図６】
0004818453.tif 000007