JP5221699B2 - 半導体記憶装置 - Google Patents

半導体記憶装置 Download PDF

Info

Publication number
JP5221699B2
JP5221699B2 JP2011064831A JP2011064831A JP5221699B2 JP 5221699 B2 JP5221699 B2 JP 5221699B2 JP 2011064831 A JP2011064831 A JP 2011064831A JP 2011064831 A JP2011064831 A JP 2011064831A JP 5221699 B2 JP5221699 B2 JP 5221699B2
Authority
JP
Japan
Prior art keywords
address
conversion table
error
unit
address information
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.)
Active
Application number
JP2011064831A
Other languages
English (en)
Other versions
JP2012203925A (ja
Inventor
伸一 菅野
修 鳥井
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2011064831A priority Critical patent/JP5221699B2/ja
Priority to US13/218,743 priority patent/US8438454B2/en
Publication of JP2012203925A publication Critical patent/JP2012203925A/ja
Application granted granted Critical
Publication of JP5221699B2 publication Critical patent/JP5221699B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/1016Error in accessing a memory location, i.e. addressing error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Description

本発明の実施形態は、半導体記憶装置に関する。
NAND型フラッシュメモリ等の不揮発性メモリを用いた半導体記憶装置では、ウエアレベリング(Wear Leveling)等の必要性から、記憶装置内部で個別のアドレス体系が管理される。外部からある論理アドレスへの書込み要求があった際には、記憶装置内部のアドレス体系に従って、要求された論理アドレスが現実の記録位置を示す物理アドレスに変換される。書込み対象のデータは、この物理アドレスが指しているフラッシュメモリ中の記録位置に記録される。
アドレス体系の管理には、通常、テーブルが用いられる。このアドレス体系を管理するテーブルを、以下、アドレス変換テーブルという。アドレス変換テーブルは、たとえば半導体記憶装置が備えるSRAM(Static Random Access Memory)やDRAM(Dynamic Random Access Memory)等の揮発性メモリに格納される。
特開2005−346887号公報 再表97/032253号公報
ところで近年では、半導体製造プロセスの微細化に伴い、SRAMやDRAM等にソフトエラーなどの誤りが生じることが増加している。この結果、アドレス変換テーブル自体に誤りが生じてしまう場合がある。そこで本発明の実施形態では、アドレス変換テーブル自体の誤りに対応可能な半導体記憶装置を開示する。
実施の形態による半導体記憶装置は、不揮発性メモリを使用した半導体記憶装置であって、前記不揮発性メモリ内に記憶されたユーザデータを読み出す際に外部から当該ユーザデータの記録位置を指定する第1アドレス情報を受け付けるインタフェース部と、前記第1アドレス情報と前記不揮発性メモリ内での実際の記録位置を示す第2アドレス情報と対応づけるアドレス変換テーブルと、前記アドレス変換テーブルに従って前記第1アドレス情報を前記第2アドレス情報に変換する変換部と、前記ユーザデータと前記第1アドレス情報とを1つのデータとして当該データに誤りがあるか否かを検査するための冗長データを生成する検査符号生成部と、前記不揮発性メモリに対するデータの入出力を制御し、前記ユーザデータと前記第1アドレス情報と前記冗長データとを1つのデータセットとして前記不揮発性メモリにおける前記第2アドレス情報で示される記録位置に記録する入出力制御部と、前記第1アドレス情報が指定する記録位置に記録された前記ユーザデータの読み出しを前記インタフェース部が受け付けた際、前記不揮発性メモリ内に記録されていた前記冗長データを用いて、前記不揮発性メモリ内に記録されていた前記ユーザデータと前記インタフェース部が受け付けた前記第1アドレス情報とに誤りがあるか否かを検査する検査部と、を備える。前記入出力制御部は、前記不揮発性メモリ内に記録されていた前記ユーザデータと前記インタフェース部が受け付けた前記第1アドレス情報とに誤りが無いことが前記検査部によって検出された場合、前記ユーザデータを前記インタフェース部を介して出力する。
図1は、第1の実施形態による半導体記憶装置の模式図。 図2は、第1の実施形態による書込制御の流れを示す図。 図3は、図2に示すフローチャートを模式化した図。 図4は、第1の実施形態における正常時の読出し動作を示す図。 図5は、第1の実施形態における誤り時の読出し動作を示す図。 図6は、第1の実施形態による読出制御の流れを示す図。 図7は、図6に示すフローチャートを模式化した図。 図8は、第2の実施形態による半導体記憶装置の模式図。 図9は、第2の実施形態によるアドレス変換テーブルの一例の図。 図10は、第2の実施形態による読出制御の一部の流れを示す図。 図11は、第2の実施形態によるパリティ生成動作を示す図。 図12は、第3の実施形態による半導体記憶装置の模式図。 図13は、第3の実施形態による転記動作を示す図。 図14は、第3の実施形態によるDRAM修復処理を示す図。
(第1の実施形態)
以下、第1の実施形態にかかる半導体記憶装置について、図面を参照して詳細に説明する。図1に示すように、第1の実施形態による半導体記憶装置1は、コントローラ100と、インタフェース部20と、NAND型フラッシュメモリ(以下、単にフラッシュメモリという)160とを備える。ホストコンピュータ(以下、単にホストという)10は、仮想メモリ空間に基づいて、半導体記憶装置1に対するデータの書き込みや読み出しを行う。フラッシュメモリ160は、実メモリ空間にデータを格納する。コントローラ100は、仮想メモリ空間と実メモリ空間との対応関係を示すアドレス体系を管理する。
ホスト10から出力されたデータの書込要求および読出要求は、インタフェース部20で受け付けられる。書込要求には、書込対象のユーザデータMと、ユーザデータMの仮想メモリ空間上の書込位置を指定する論理アドレスLとが含まれる。読出要求には、読出対象のユーザデータMが格納された仮想メモリ空間上の位置を示す論理アドレスLが含まれる。受け付けられた書込要求および読出要求は、内部バス30を介してコントローラ100に入力される。
コントローラ100は、ホスト10からのデータの書込要求および読出要求等に応じて、フラッシュメモリ160へのユーザデータの書き込みや、フラッシュメモリ160からのユーザデータの読み出し等を制御する。このコントローラ100は、入出力制御部110と、変換部120と、DRAM(Dynamic Random Access Memory)130と、検査符号生成部140と、検査部150と、訂正符号生成部170と、訂正部180とを備える。なお、DRAM130は、SRAM(Static RAM)などの他の揮発性メモリに置き換えてもよい。
検査符号生成部140は、たとえば入出力制御部110からユーザデータMおよび論理アドレスL(以下、検査対象データMLという)を入力し、このユーザデータMおよび論理アドレスLに対する誤り検査符号A1を生成する。また、検査符号生成部140は、生成した誤り検査符号A1をたとえば入出力制御部110に出力する。
検査部150は、たとえば入力制御部110から検査対象データMLとこれの誤り検査符号A1とを入力し、誤り訂正符号A1を用いて検査対象データMLに誤りがあるか否かを検査する。また、検査部150は、この検査結果をたとえば入力制御部110に出力する。
訂正符号生成部170は、たとえば入出力制御部110からユーザデータM、論理アドレスLおよび誤り検査符号A1(以下、訂正対象データMLA1という)を入力し、このユーザデータM、論理アドレスLおよび誤り検査符号A1、すなわち訂正対象データMLA1に対する誤り訂正符号A2を生成する。また、訂正符号生成部170は、生成した誤り訂正符号A2をたとえば入出力制御部110に出力する。
訂正部180は、たとえば入力制御部110から訂正対象データMLA1とこれの誤り訂正符号A2とを入力し、誤り訂正符号A2を用いて訂正対象データMLA1の誤りを訂正する。また、訂正部180は、この訂正結果をたとえば入力制御部110に出力する。
変換部120は、入出力制御部110を介して入力されたホスト10からの要求に含まれる論理アドレスLを、実メモリ空間上の物理アドレスPに変換する。このアドレス変換には、DRAM130に格納されたアドレス変換テーブル131が用いられる。すなわち、アドレス変換テーブル131には、仮想メモリ空間上の論理アドレスLと実メモリ空間上の物理アドレスPとの対応関係が登録されている。この変換部120は、論理アドレスLを用いてアドレス変換テーブル131を参照することで、この論理アドレスLに対応づけられた物理アドレスPを取得する。また、変換部120は、取得した物理アドレスPを入出力制御部110に出力する。
フラッシュメモリ160は、入出力制御部110からデータの書き込みが命令されると、書込対象のデータセット161(たとえば図3参照)と実メモリ空間上の書込位置を示す物理アドレスPとを入出力制御部110から受け付ける。つづいて、フラッシュメモリ160は、この受け付けたデータセット161を、物理アドレスPの記録位置に書き込む。
また、フラッシュメモリ160は、入出力制御部110からデータの読み出しが命令されると、読出対象のデータが記録された実メモリ空間上の位置を示す物理アドレスPを入出力制御部110から受け付ける。つづいて、フラッシュメモリ160は、この受け付けた物理アドレスPの記録位置に記憶されているデータセット161を読み出し、この読み出したデータセット161を入出力制御部110に出力する。
入出力制御部110は、ホスト10から書込要求または読出要求があった際に、各部に対するデータの入出力を制御する。また、入出力制御部110は、フラッシュメモリ160に対するデータの書込および読出も制御する。ここで、第1の実施形態による書込制御および読出制御について、図面を参照して説明する。
まず、書込制御について説明する。図2は、第1の実施形態による書込制御の流れを示すフローチャートである。図3は、図2に示すフローチャートを模式化した図である。
図2および図3に示すように、入出力制御部110は、ホスト10からの書込要求を待機する(ステップS101;NO)。入出力制御部110は、ホスト10からの書込要求をインタフェース部20を介して受け付けると(ステップS101;YES)、書込要求に含まれるユーザデータMと論理アドレスLとを特定する(ステップS102)。つづいて、入出力制御部110は、特定した論理アドレスLを変換部120に入力する。変換部120は、DRAM130内のアドレス変換テーブル131を参照することで、入力された論理アドレスLに対応する物理アドレスPを読み出す(ステップS103)。読み出された物理アドレスPは、入出力制御部110に入力される。
また、入出力制御部110は、ステップS102で特定したユーザデータMおよび論理アドレスLを検査符号生成部140に入力する。検査符号生成部140は、入力されたユーザデータMおよび論理アドレスLを1つのデータとして、これに対する誤り検査用の誤り検査符号A1を生成する。
また、入出力制御部110は、ステップS102で特定したユーザデータM、論理アドレスLおよび誤り検査符号A1を訂正符号生成部170に入力する。訂正符号生成部170は、入力されたユーザデータM、論理アドレスLおよび誤り検査符号A1を1つのデータ(訂正対象データMLA1)として、これに対する誤り訂正用の誤り訂正符号A2を生成する。さらに、訂正符号生成部170は、誤り検査符号A1および誤り訂正符号A2をひとまとめにした冗長データAを生成する(ステップS104)。この生成された冗長データAは、入出力制御部110に入力される。
以上のようにして物理アドレスPと冗長データAとを取得すると、入出力制御部110は、図3に示すように、ユーザデータMと論理アドレスLと冗長データAとを1つのデータセット161として、フラッシュメモリ160内の物理アドレスPが指している記録位置に記録する(ステップS105)。その後、ステップS101に帰還して、次の書込要求を待機する。なお、この書込動作は、たとえば外部からの割込み終了によって終了する。
つぎに、読出制御について説明するにあたり、近年生じ得る読み出し時の不具合について説明する。近年では、半導体製造プロセスの微細化に伴い、DRAMやSRAMなどにソフトエラー等の誤りが生じることが増加してきている。このため、アドレス変換テーブル自体に誤りが生じることがある。たとえば図4に示すように、アドレス変換テーブル131において論理アドレスL2が正しく物理アドレスP2に対応付けられている場合、論理アドレスL2を指定した読出要求に対しては、フラッシュメモリ160内の物理アドレスP2で示される記録位置からデータが読み出される。一方で、たとえば図5に示すように、アドレス変換テーブル131に誤りが生じた結果、論理アドレスL2に誤った物理アドレスP4が対応付けられている場合、論理アドレスL2を指定した読出要求に対しては、フラッシュメモリ160内の物理アドレスP4で示される記録位置からデータが読み出されてしまう。
アドレス変換テーブルに生じた誤りの検査や訂正には、ECC(Error Correcting Code)やCRC(Cyclic Redundancy Code)等のEDC(Error Detecting Code)を付与することも考えられる。ただし、アドレス変換テーブルは、小さな単位でアクセスされる。このため、十分な検査能力や訂正能力を得るためには、たとえば32bitのデータに対して6bitの冗長符号が必要になる。一方で、NAND型フラッシュメモリを使用したSSD(Solid State Drive)等の半導体記憶装置は、アドレス変換テーブルで管理する単位記憶領域を小さくすることでその性能が増加する。なお、1つの単位記憶領域には、1つの物理アドレスが割り当てられるものとする。ここで、単位記憶領域を小さくすると管理すべきアドレスの数も増加する。このため、各アドレスに冗長符号を付与すると、管理するデータ量が大幅に増加してしまう。このようなことから、アドレス変換テーブルで管理する単位記憶領域を小さくすることが困難な場合がある。
そこで第1の実施形態では、以下のような読出制御を実行する。図6は、第1の実施形態による読出制御の流れを示すフローチャートである。図7は、図6に示すフローチャートを模式化した図である。
図6および図7に示すように、入出力制御部110は、ホスト10からの読出要求を待機する(ステップS111;NO)。入出力制御部110は、ホスト10からの読出要求をインタフェース部20を介して受け付けると(ステップS111;YES)、読出要求に含まれる論理アドレスLrを特定する(ステップS112)。つづいて、入出力制御部110は、特定した論理アドレスLrを変換部120に入力する。変換部120は、DRAM130内の変換テーブル131を参照することで、入力された論理アドレスLrに対応する物理アドレスPを読み出す(ステップS113)。読み出された物理アドレスPは、入出力制御部110に入力される。
つぎに、入出力制御部110は、フラッシュメモリ160中の物理アドレスPで示される記録位置に記憶されているデータセット161(ユーザデータM、論理アドレスLsおよび冗長データA)を読み出す(ステップS114)。つづいて、入出力制御部110は、読み出したユーザデータMおよび冗長データAと、読出要求に含まれていた論理アドレスLrとを検査部150に入力する。検査部150は、ユーザデータMと論理アドレスLrとを1つのデータとして、これに誤りがあるか否かを冗長データAを用いて検査する(ステップS115)。この検査結果は、入出力制御部110に入力される。
ステップS115の結果、誤りが検出されなかった場合(ステップS116;NO)、入出力制御部110は、読み出したユーザデータMを、インタフェース部20を介してホスト10に出力する(ステップS117)。その後、コントローラ100は、ステップS111に帰還する。なお、この読出動作は、たとえば外部からの割込み終了によって終了する。
一方、ステップS115の結果、誤りが検出された場合(ステップS116;YES)、入出力制御部110は、今度は、読み出したデータセット161(ユーザデータM、論理アドレスLsおよび冗長データA)を検査部150に入力する。検査部150は、ユーザデータMと論理アドレスLsとを1つのデータとして、これに誤りがあるか否かを冗長データAを用いて検査する(ステップS118)。この検査結果は、入出力制御部110に入力される。
ステップS118の結果、誤りが検出された場合(ステップS119;YES)、コントローラ100は、読み出したユーザデータM、論理アドレスLsまたは冗長データAに誤りがあると判断し(ステップS120)、所定のエラー処理を実行する(ステップS121)。なお、所定のエラー処理とは、たとえばフラッシュメモリ160上のデータを誤り訂正符号A2を用いて訂正することをであってもよい。
その後、コントローラ100は、ステップS124において、エラー処理後の論理アドレスLsと論理アドレスLrとを比較する。論理アドレスLsと論理アドレスLrとが異なる場合(ステップS125;NO)、コントローラ100は、ステップS122へ移行する。一方、論理アドレスLsと論理アドレスLrとが等しい場合(ステップS125;YES)、コントローラ100は、ステップS111に帰還する。
また、ステップS118の結果、誤りが検出されなかった場合(ステップS119;NO)、コントローラ100は、アドレス変換テーブル131から取得した物理アドレスP、すなわちアドレス変換テーブル131自体に誤りがあると判断し(ステップS122)、アドレス変換テーブル131を格納しているDRAM130を修復する処理を実行する(ステップS123)。その後、コントローラ100は、ステップS113へ帰還し、修復後のアドレス変換テーブル131に基づいて、以降の動作を実行する。
なお、DRAM修復処理では、たとえばフラッシュメモリ160に記憶されている論理アドレスLsが、これを格納している記録位置の物理アドレスPとともに読み出される。その後、アドレス変換テーブル131において、読み出された論理アドレスLsに対応する物理アドレスPの値が更新される。これにより、アドレス変換テーブル131が修復される。もしくは、たとえばフラッシュメモリ160に、アドレス変換テーブル160のコピーを格納しておいてもよい。この場合、このコピーされたアドレス変換テーブルを参照することで、容易にDRAMの修復が可能となるため、修復処理に要する時間を短縮することが可能となる。ただし、この方法は一例にすぎない。DRAMを修復することが可能な方法であれば如何様にも変形することが可能であることは言うまでもない。
以上のように、第1の実施形態では、ユーザデータMおよび論理アドレスLを1つのデータとして冗長データAを生成し、この冗長データAをユーザデータMおよび論理アドレスLとともに1つのデータセット161としてフラッシュメモリ160内に格納しておく。これにより、アドレス変換テーブル131自体に誤りが生じた場合でも、これを特定することが可能となる。この結果、アドレス変換テーブル131自体の誤りに対しても対応が可能となる。
(第2の実施形態)
つぎに、第2の実施形態にかかる半導体記憶装置について、図面を参照して詳細に説明する。ただし、以下の説明において、第1の実施形態と同様の構成については、同一の符号を付し、重複する説明を省略する。第2の実施形態では、アドレス変換テーブルを直接的に誤り訂正可能にする。これにより、アドレス変換テーブル自体の誤りに対して簡素な構成で対処することができる。また、アドレス変換テーブル自体に誤りが生じたときの処理を高速にすることができる。
図8に示すように、第2の実施形態による半導体記憶装置2は、図1に示す半導体記憶装置1と同様の構成において、コントローラ100がコントローラ200に置き換えられている。
コントローラ200は、入出力制御部210と、変換部220と、DRAM130に格納されたアドレス変換テーブル231と、検査符号生成部140と、検査部150と、訂正符号生成部170と、訂正部180とを備える。また、コントローラ200は、アドレス変換テーブル231の誤りを訂正するための構成として、パリティ符号生成部240と、パリティ処理部250とを備える。
ここで図9に、第2の実施形態によるアドレス変換テーブル231の一例を示す。図9に示すように、本実施の形態によるアドレス変換テーブル231は、アドレス変換テーブル231中の誤りを訂正するための水平パリティ符号E1および垂直パリティ符号E2を備える。水平パリティ符号E1は、たとえばDRAM130におけるビット線方向のビット列に生じた誤りを検査する際に用いられる。垂直パリティ符号E2は、たとえばDRAM130におけるワード線方向のビット列に生じた誤りを検査する際に用いられる。アドレス変換テーブル231は、たとえば物理アドレスPをワード線方向に配列したデータ構造である。したがって、水平パリティ符号E1は、物理アドレスP毎に生じた誤りを検査する際に用いられる。なお、図9では、1ビットの水平パリティ符号E1および垂直パリティ符号E2を例示するが、これに限るものではない。
変換部220は、第1の実施形態における変換部120と同様の機能を備える。加えて、変換部220は、たとえば論理アドレスLと物理アドレスPとの対応関係を追加または更新する際に、DRAM130の値をワード線毎またはビット線毎に読み出し、この読み出したビット列をパリティ符号生成部240に入力する。パリティ符号生成部240は、入力されたビット列に対する水平パリティ符号E1または垂直パリティ符号E2を生成し、これを変換部220に返す。このように生成された水平パリティ符号E1および垂直パリティ符号E2は、変換部220によってDRAM130中のアドレス変換テーブル231に付与される。
また、変換部220は、DRAM130中のビット値をワード線毎またはビット線毎に読み出し、この読み出したビット列をパリティ処理部250に入力する。パリティ処理部250は、入力されたビット列における水平パリティ符号E1または垂直パリティ符号E2を特定し、この水平パリティ符号E1または垂直パリティ符号E2を用いてビット列中の誤りを訂正する。このように訂正されたビット列は、変換部220によってDRAM130中のアドレス変換テーブル231に格納される。
つづいて、第2の実施形態による動作について、図面を参照して説明する。第2の実施形態による書込動作は、第1の実施形態による書込動作と同様である。第2の実施形態による読出動作は、図6に示す読出動作において、ステップS112とステップS113との間に、図10に示す動作が挿入される。
図6のステップS111〜S112に示すように、ホスト10からの読出要求に含まれる論理アドレスLrを特定すると(ステップS112)、入出力制御部210は、特定した論理アドレスLrを変換部220に入力する。図10に示すように、変換部220は、入力された論理アドレスLrに対応付けられた物理アドレスPに対するパリティチェックを実行する(ステップS211)。具体的には、たとえば、変換部220は、入力された論理アドレスLrに対応する物理アドレスPを読み出し、この読み出した物理アドレスPを水平パリティ符号E1を用いてチェックする。このチェック結果は、変換部220に入力される。
ステップS211のパリティチェックの結果、誤りがない場合(ステップS212;NO)、変換部220は、そのまま図6のステップS113へ移行する。
一方、ステップS211のパリティチェックの結果、誤りがある場合(ステップS212;YES)、変換部220は、誤りを訂正することが可能か否かを判断し(ステップS213)、可能である場合(ステップS213;YES)、水平パリティ符号E1および垂直パリティ符号E2を用いてDRAM130中のビット列の誤りを訂正する(ステップS214)。具体的には、たとえばDRAM130中のマトリクス状のビット配列のうち、水平パリティ符号E1および垂直パリティ符号E2の両方で誤りが検出された位置のビットの値を反転する。これにより、アドレス変換テーブル231に登録された物理アドレスPが修復される。なお、誤りの訂正が可能か否かの判断は、たとえば誤りビット数が1であるかどうかによって判定することができる。また、DRAM130を修復後、変換部220は、図6のステップS112へ帰還して、再度、修復後のアドレス変換テーブル231から論理アドレスLrに対応づけられた物理アドレスPを取得する。
一方、ステップS213の結果、誤りを訂正することができないと判断された場合(ステップS213;NO)、コントローラ200は、図6のステップS123と同様のDRAM修復処理を実行し(ステップS215)、その後、図6のステップS112へ帰還して、再度、修復後のアドレス変換テーブル231から論理アドレスLrに対応づけられた物理アドレスPを取得する。
また、第2の実施形態では、たとえば論理アドレスLと物理アドレスPとの対応関係を追加または更新する際に、アドレス変換テーブル231に付与する水平パリティ符号E1および垂直パリティ符号E2を生成するパリティ生成動作を実行する。図11は、第2の実施形態によるパリティ生成動作を示すフローチャートである。
図11に示すように、変換部220は、DRAM130中のアドレス変換テーブル231の変更があるか否かを判断する(ステップS221)。アドレス変換テーブル231の変更がなければ(ステップS221;NO)、変換部220は、ステップS222へ移行しない。一方、アドレス変換テーブル231の変更がある場合(ステップS221;YES)、変換部220は、DRAM130から変更対象のビットに対応する垂直パリティ符号E2を読み出し(ステップS222)、読み出した垂直パリティ符号E2と変更対象の物理アドレスPとをパリティ符号生成部240に入力する。パリティ符号生成部240は、入力された物理アドレスPに対する水平パリティ符号E1と、該当する垂直パリティ行の垂直パリティ符号E2とを生成する(ステップS223)。生成された水平パリティ符号E1および垂直パリティ符号E2とは、変換部220に入力される。変換部220は、入力された水平パリティ符号E1および垂直パリティ符号E2でDRAM130中のアドレス変換テーブル231を更新する(ステップS224)。その後、変換部220は、ステップS221へ帰還する。なお、このパリティ生成動作は、たとえば外部からの割込み終了によって終了する。
以上のように、第2の実施形態では、第1の実施の形態と同様の構成に加えて、アドレス変換テーブル231の誤りを訂正するための構成(水平パリティ符号E1、垂直パリティ符号E2、パリティ符号生成部240およびパリティ処理部250)を備える。その結果、アドレス変換テーブル231自体に生じた誤りを迅速に修正することが可能となる。その他の構成および動作は、第1の実施形態と同様であるため、ここでは重複する説明を省略する。
なお、第2の実施形態では、アドレス変換テーブル231自体の誤りを検査または訂正するための冗長データとしてパリティ符号を用いた。ただし、これに限るものではなく、種々の冗長データを用いることができる。なお、第2の実施形態のように、第1の実施形態による誤り検査(訂正)機能のような比較的大きな誤り検査(訂正)能力を備えている場合には、アドレス変換テーブル231自体の誤りを検査(訂正)するための構成には、パリティ符号のような比較的軽微な誤り検査(訂正)能力を用いるとよい。これにより、書込時や読出時の動作にかかる負荷を低減できる。
(第3の実施形態)
つぎに、第3の実施形態にかかる半導体記憶装置について、図面を参照して詳細に説明する。ただし、以下の説明において、第1または第2の実施形態と同様の構成については、同一の符号を付し、重複する説明を省略する。第3の実施形態では、コントローラ内のDRAMに格納されたアドレス変換テーブルの一部または全部を、フラッシュメモリ内に保存しておく。これにより、アドレス変換テーブル自体の誤りに対処する構成を簡素な構成とすることができる。また、アドレス変換テーブル自体に誤りが生じたときの処理を高速にすることができる。以下の説明では、第2の実施形態を引用して説明する。ただし、これに限らず、第1の実施形態に第3の実施形態を適用することも可能である。
図12に示すように、第3の実施形態による半導体記憶装置3は、図8に示す半導体記憶装置2と同様の構成において、コントローラ200がコントローラ300に置き換えられている。コントローラ300は、図8に示すコントローラ200と同様の構成を備える。ただし、変換部220が変換部320に、それぞれ置き換えられている。また、第3の実施形態では、フラッシュメモリ160に、DRAM130に格納されているアドレス変換テーブル231の一部または全部のコピーであるアドレス変換テーブル361が格納されている。
DRAM130のアドレス変換テーブル231は、定期的または必要に応じて、フラッシュメモリ160内に転記される。ここで、フラッシュメモリ160へアドレス変換テーブル231の転記動作について、図面を参照して詳細に説明する。
図13は、第3の実施形態による転記動作を示すフローチャートである。図13に示すように、変換部320は、DRAM130中のアドレス変換テーブル231の変更を常時または定期的に監視する(ステップS321;NO)。アドレス変換テーブル231に変更があると(ステップS321;YES)、変換部320は、DRAM130からアドレス変換テーブル231を読み出す(ステップS322)。つづいて、変換部320は、読み出したアドレス変換テーブル361に対するパリティチェックを実行する(ステップS323)。具体的には、たとえば、変換部320は、アドレス変換テーブル231を構成するマトリクス状のビット配列における、ビット線方向のビット列およびワード線方向のビット列をそれぞれ読み出し、この読み出したビット列を水平パリティ符号E1または垂直パリティ符号E2を用いてチェックする。このチェック結果は、変換部320に入力される。
ステップS323のパリティチェックの結果、誤りがない場合(ステップS324;NO)、変換部320は、読み出したアドレス変換テーブル231をフラッシュメモリ160内の所定の記憶領域に転記する(ステップS328)。
一方、ステップS323のパリティチェックの結果、誤りがある場合(ステップS324;YES)、変換部320は、誤りを訂正することが可能か否かを判断し(ステップS325)、可能である場合(ステップS325;YES)、水平パリティ符号E1または垂直パリティ符号E2を用いてビット列中の誤りを訂正する(ステップS326)。具体的には、たとえばDRAM130中のマトリクス状のビット配列のうち、水平パリティ符号E1および垂直パリティ符号E2の両方で誤りが検出された位置のビットの値を反転する。これにより、アドレス変換テーブル231に登録された物理アドレスPが修復される。また、DRAM130を修復後、変換部320は、ステップS328に進む。
一方、ステップS325の結果、誤りを訂正することができないと判断された場合(ステップS325;NO)、コントローラ300は、図6のステップS123と同様のDRAM修復処理を実行し(ステップS327)、その後、ステップS328に進む。以降の動作を実行する。なお、この転記動作は、たとえば外部からの割込み終了によって終了する。
つづいて、第3の実施形態による動作について、図面を参照して説明する。第3の実施形態による書込動作は、第1の実施形態による書込動作と同様である。第3の実施形態による読出動作は、図6に示す読出動作において、ステップS123に示すDRAM修復処理が、図14に示す動作となる。
図14に示すように、第3の実施形態によるDRAM修復処理では、変換部320は、図6のステップS118の結果として、ステップS113で読み出した物理アドレスP、すなわちDRAM130中のアドレス変換テーブル131に誤りがあると判断する(ステップS311)。すると、変換部320は、読出要求の論理アドレスLrに対応する物理アドレスPfをフラッシュメモリ160に保存されたアドレス変換テーブル361から取得する(ステップS312)。この際、変換部320は、読み出す物理アドレスPfに対応づけられた誤り訂正符号A2も読み出す。
つづいて、変換部320は、読み出した物理アドレスPfおよび誤り訂正符号A2をテーブル誤り訂正部350に入力して誤り訂正を実行する(ステップS313)。なお、ステップS313では、誤り訂正の必要がなければ、物理アドレスPfは、誤り訂正されない。
つぎに、変換部320は、誤り訂正された物理アドレスPfで、DRAM130中のアドレス変換テーブル131における物理アドレスPを修正する(ステップS314)。これにより、DRAM130中のアドレス変換テーブル131が修正される。その後、動作が図6に示す読出動作へリターンされる。
以上のように、第3の実施形態では、第1の実施の形態と同様の構成に加えて、DRAM130中のアドレス変換テーブル131をフラッシュメモリ160中にバックアップしておく構成を備える。この結果、アドレス変換テーブル231自体に生じた誤りを迅速に修正することが可能となる。その他の構成および動作は、第1または第2の実施形態と同様であるため、ここでは重複する説明を省略する。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1,2,3 半導体記憶装置、 10 ホスト、 20 インタフェース部、 30 内部バス、 100,200,300 コントローラ、 110,210 入出力制御部、 130 DRAM、 131,231,361 アドレス変換テーブル、 120,220,320 変換部、 140 検査符号生成部、 150 検査部、 160 フラッシュメモリ、 161 データセット、 240 パリティ符号生成部、 250 パリティ処理部、 A 冗長データ、 A1 誤り検査符号、 A2 誤り訂正符号 E1 水平パリティ符号、 E2 垂直パリティ符号、 L,Lr,Ls 論理アドレス、 M ユーザデータ、 P 物理アドレス

Claims (7)

  1. 不揮発性メモリを使用した半導体記憶装置であって、
    前記不揮発性メモリ内に記憶されたユーザデータを読み出す際に外部から当該ユーザデータの記録位置を指定する第1アドレス情報を受け付けるインタフェース部と、
    前記第1アドレス情報と前記不揮発性メモリ内での実際の記録位置を示す第2アドレス情報と対応づけるアドレス変換テーブルと、
    前記アドレス変換テーブルに従って前記第1アドレス情報を前記第2アドレス情報に変換する変換部と、
    前記ユーザデータと前記第1アドレス情報とを1つのデータとして当該データに誤りがあるか否かを検査するための冗長データを生成する検査符号生成部と、
    前記不揮発性メモリに対するデータの入出力を制御し、前記ユーザデータと前記第1アドレス情報と前記冗長データとを1つのデータセットとして前記不揮発性メモリにおける前記第2アドレス情報で示される記録位置に記録する入出力制御部と、
    前記第1アドレス情報が指定する記録位置に記録された前記ユーザデータの読み出しを前記インタフェース部が受け付けた際、前記不揮発性メモリ内に記録されていた前記冗長データを用いて、前記不揮発性メモリ内に記録されていた前記ユーザデータと前記インタフェース部が受け付けた前記第1アドレス情報とに誤りがあるか否かを検査する検査部と、
    を備え、
    前記入出力制御部は、前記不揮発性メモリ内に記録されていた前記ユーザデータと前記インタフェース部が受け付けた前記第1アドレス情報とに誤りが無いことが前記検査部によって検出された場合、前記ユーザデータを前記インタフェース部を介して出力することを特徴とする半導体記憶装置。
  2. 前記アドレス変換テーブルを格納する揮発性メモリをさらに備え、
    前記アドレス変換テーブルは、複数の第2アドレス情報によって構成されるマトリクス状のビット配列における、ビット線方向のビット列に対して付与された第1パリティ符号と、ワード線方向のビット列に対して付与された第2パリティ符号とを備えることを特徴とする請求項1に記載の半導体記憶装置。
  3. 前記揮発性メモリ内の前記アドレス変換テーブルを構成する前記ビット列を前記第1パリティ符号または前記第2パリティ符号を用いて訂正するパリティ処理部をさらに備え、
    前記変換部は、前記揮発性メモリ内の前記アドレス変換テーブルの一部または全部を前記不揮発性メモリ内に転記し、
    前記パリティ処理部は、前記変換部が前記揮発性メモリ内の前記アドレス変換テーブルの一部または全部を前記不揮発性メモリ内に転記する際、前記アドレス変換テーブルを構成する前記ビット列を前記第1パリティ符号または前記第2パリティ符号を用いて検査し、
    前記変換部は、前記パリティ処理部によって誤りが検出された前記ビット列を前記第1および第2パリティ符号を用いて訂正することで前記揮発性メモリ内の前記アドレス変換テーブルを修復することを特徴とする請求項2に記載の半導体記憶装置。
  4. 前記揮発性メモリ内の前記アドレス変換テーブルを構成する前記ビット列を前記第1パリティ符号または前記第2パリティ符号を用いて訂正するパリティ処理部をさらに備え、
    前記パリティ処理部は、前記第1アドレス情報が指定する記録位置に記録された前記ユーザデータの読み出しを前記インタフェース部が受け付けた際、前記第1アドレス情報に対応づけられた前記第2アドレス情報を含むビット線方向のビット列を当該ビット列に付与された前記第1パリティ符号を用いて検査し、
    前記変換部は、前記パリティ処理部によって誤りが検出された前記ビット列を前記第1および第2パリティ符号を用いて訂正することで前記揮発性メモリ内の前記第2アドレス情報を修復することを特徴とする請求項2に記載の半導体記憶装置。
  5. 前記変換部は、前記パリティ処理部によって前記第1パリティ符号と前記第2パリティ符号との両方で誤りが検出された前記揮発性メモリ中のビットの値を反転することで、前記アドレス変換テーブルを修復することを特徴とする請求項3または4に記載の半導体記憶装置。
  6. 前記検査部は、前記不揮発性メモリ内に記録されていた前記ユーザデータと前記インタフェース部が受け付けた前記第1アドレス情報とに誤りがあると検出した場合、前記不揮発性メモリ内に記録されていた前記ユーザデータおよび前記第1アドレス情報に誤りがあるか否かを再度検査し、前記不揮発性メモリ内に記録されていた前記ユーザデータおよび前記第1アドレス情報に誤りがあると判断した場合、前記アドレス変換テーブルに誤りがあると判断することを特徴とする請求項に記載の半導体記憶装置。
  7. 前記アドレス変換テーブルを格納する揮発性メモリをさらに備え、
    前記変換部は、前記揮発性メモリに格納された前記アドレス変換テーブルを前記不揮発性メモリ内に転記し、前記揮発性メモリ内の前記アドレス変換テーブルに誤りがある場合、前記不揮発性メモリ内の前記アドレス変換テーブルを用いて前記揮発性メモリ内の前記アドレス変換テーブルを修復することを特徴とする請求項に記載の半導体記憶装置。
JP2011064831A 2011-03-23 2011-03-23 半導体記憶装置 Active JP5221699B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011064831A JP5221699B2 (ja) 2011-03-23 2011-03-23 半導体記憶装置
US13/218,743 US8438454B2 (en) 2011-03-23 2011-08-26 Semiconductor memory device and controlling method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011064831A JP5221699B2 (ja) 2011-03-23 2011-03-23 半導体記憶装置

Publications (2)

Publication Number Publication Date
JP2012203925A JP2012203925A (ja) 2012-10-22
JP5221699B2 true JP5221699B2 (ja) 2013-06-26

Family

ID=46878293

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011064831A Active JP5221699B2 (ja) 2011-03-23 2011-03-23 半導体記憶装置

Country Status (2)

Country Link
US (1) US8438454B2 (ja)
JP (1) JP5221699B2 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5017407B2 (ja) 2010-03-24 2012-09-05 株式会社東芝 半導体記憶装置
US8923030B2 (en) * 2013-03-07 2014-12-30 Intel Corporation On-die programmable fuses
US9292379B2 (en) * 2013-09-28 2016-03-22 Intel Corporation Apparatus and method to manage high capacity storage devices
JP5950286B2 (ja) 2014-05-29 2016-07-13 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation アドレス変換テーブルを書き込む装置及び方法
US9653184B2 (en) * 2014-06-16 2017-05-16 Sandisk Technologies Llc Non-volatile memory module with physical-to-physical address remapping
US9633155B1 (en) * 2015-11-10 2017-04-25 International Business Machines Corporation Circuit modification
US10241924B2 (en) * 2016-07-18 2019-03-26 International Business Machines Corporation Reducing over-purging of structures associated with address translation using an array of tags
US10168902B2 (en) 2016-07-18 2019-01-01 International Business Machines Corporation Reducing purging of structures associated with address translation
US10282305B2 (en) 2016-07-18 2019-05-07 International Business Machines Corporation Selective purging of entries of structures associated with address translation in a virtualized environment
US10180909B2 (en) 2016-07-18 2019-01-15 International Business Machines Corporation Host-based resetting of active use of guest page table indicators
US10176111B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Host page management using active guest page table indicators
US10223281B2 (en) 2016-07-18 2019-03-05 International Business Machines Corporation Increasing the scope of local purges of structures associated with address translation
US10176110B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Marking storage keys to indicate memory used to back address translation structures
US10802986B2 (en) 2016-07-18 2020-10-13 International Business Machines Corporation Marking to indicate memory used to back address translation structures
US10248573B2 (en) 2016-07-18 2019-04-02 International Business Machines Corporation Managing memory used to back address translation structures
US10176006B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Delaying purging of structures associated with address translation
JP2018181202A (ja) * 2017-04-20 2018-11-15 富士通株式会社 ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム
JP2019008730A (ja) * 2017-06-28 2019-01-17 東芝メモリ株式会社 メモリシステム
KR102417980B1 (ko) * 2017-11-07 2022-07-07 에스케이하이닉스 주식회사 범용 비동기 송수신 부 및 이를 포함하는 메모리 컨트롤러 및 메모리 시스템
US11010241B2 (en) * 2019-01-09 2021-05-18 Arm Limited Translation protection in a data processing apparatus
CN111143111B (zh) * 2019-12-27 2023-06-06 深圳忆联信息系统有限公司 Ssd映射表保护机制验证方法、装置、计算机设备及存储介质
JP7438859B2 (ja) 2020-06-17 2024-02-27 キオクシア株式会社 メモリシステムおよび方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU3832297A (en) 1996-02-29 1997-09-16 Hitachi Limited Semiconductor memory device having faulty cells
JP4079506B2 (ja) * 1997-08-08 2008-04-23 株式会社東芝 不揮発性半導体メモリシステムの制御方法
GB9903490D0 (en) * 1999-02-17 1999-04-07 Memory Corp Plc Memory system
JP4233213B2 (ja) * 2000-12-27 2009-03-04 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
KR100449708B1 (ko) * 2001-11-16 2004-09-22 삼성전자주식회사 플래시 메모리 관리방법
JP4300462B2 (ja) * 2003-04-23 2009-07-22 富士フイルム株式会社 情報記録再生方法及び装置
JP4492218B2 (ja) 2004-06-07 2010-06-30 ソニー株式会社 半導体記憶装置
US8122193B2 (en) * 2004-12-21 2012-02-21 Samsung Electronics Co., Ltd. Storage device and user device including the same
US7916421B1 (en) * 2005-05-05 2011-03-29 Seagate Technology Llc Methods and structure for recovery of write fault errors in a dynamically mapped mass storage device
JP2009003571A (ja) * 2007-06-19 2009-01-08 Toshiba Corp 半導体記憶装置
JP5032371B2 (ja) * 2008-03-01 2012-09-26 株式会社東芝 メモリシステム
JP2009211234A (ja) * 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
JP4498426B2 (ja) * 2008-03-01 2010-07-07 株式会社東芝 メモリシステム
JP4643667B2 (ja) * 2008-03-01 2011-03-02 株式会社東芝 メモリシステム

Also Published As

Publication number Publication date
JP2012203925A (ja) 2012-10-22
US8438454B2 (en) 2013-05-07
US20120246387A1 (en) 2012-09-27

Similar Documents

Publication Publication Date Title
JP5221699B2 (ja) 半導体記憶装置
TWI500039B (zh) 輸出經錯誤校正碼校正之位元之資訊
US8397107B1 (en) Data storage device employing data path protection using both LBA and PBA
KR101374455B1 (ko) 메모리 에러와 리던던시
US8869007B2 (en) Three dimensional (3D) memory device sparing
US10468118B2 (en) DRAM row sparing
US8205136B2 (en) Fault tolerant encoding of directory states for stuck bits
CN103137215B (zh) 向存储器提供低延时错误纠正码能力
US8756398B2 (en) Partitioning pages of an electronic memory
CN112667445B (zh) 封装后的内存修复方法及装置、存储介质、电子设备
TWI689930B (zh) 快閃記憶體裝置及快閃記憶體儲存管理方法
US20160110250A1 (en) Cache memory with fault tolerance
JP2009301194A (ja) 半導体記憶装置の制御システム
EP3029570B1 (en) Bad track repairing method and apparatus
US9690649B2 (en) Memory device error history bit
JP2001249911A (ja) データ転送方法及びデータ処理システム
US20070079210A1 (en) Method and system for handling stuck bits in cache directories
TWI744049B (zh) 記憶體控制器與資料處理方法
US20120210067A1 (en) Mirroring device and mirroring recovery method
KR20160050961A (ko) 에러를 보정하는 메모리 장치 및 그의 에러 보정 방법
JPWO2014061161A1 (ja) 記録再生装置、誤り訂正方法および制御装置
TWI692767B (zh) 具有錯誤更正功能的記憶體及相關記憶體系統
JP2008158724A (ja) ディスクアレイ装置のステージング方法
CN106776100B (zh) 一种存储器数据分层校验方法
JP2015121944A (ja) メモリアクセス制御装置、メモリアクセス制御システム、メモリアクセス制御方法、及び、メモリアクセス制御プログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130107

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: 20130212

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130307

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160315

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 5221699

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160315

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350