JP5674700B2 - 符号化装置および符号化装置の制御方法、ならびに、記憶装置 - Google Patents

符号化装置および符号化装置の制御方法、ならびに、記憶装置 Download PDF

Info

Publication number
JP5674700B2
JP5674700B2 JP2012066197A JP2012066197A JP5674700B2 JP 5674700 B2 JP5674700 B2 JP 5674700B2 JP 2012066197 A JP2012066197 A JP 2012066197A JP 2012066197 A JP2012066197 A JP 2012066197A JP 5674700 B2 JP5674700 B2 JP 5674700B2
Authority
JP
Japan
Prior art keywords
unit
error
parameter
encoding
error detection
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.)
Expired - Fee Related
Application number
JP2012066197A
Other languages
English (en)
Other versions
JP2013198112A (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 JP2012066197A priority Critical patent/JP5674700B2/ja
Priority to US13/600,929 priority patent/US9331713B2/en
Publication of JP2013198112A publication Critical patent/JP2013198112A/ja
Application granted granted Critical
Publication of JP5674700B2 publication Critical patent/JP5674700B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6516Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Description

本発明の実施形態は、符号化装置および符号化装置の制御方法、ならびに、記憶装置
に関する。
メモリ、無線通信、衛星放送、光ディスクなど情報処理に関する様々な分野では、システム全体の信頼性を向上させるために、誤り検出や誤り訂正が可能な符号化技術が採用されている。このような符号化技術としては、リード・ソロモン符号、BCH(Bose-Chaudhuri-Hocquenghem)符号、畳み込み符号、LDPC(Low-Density Parity-Check)符号などが知られている。例えば半導体メモリを用いたメモリシステムにおいては、半導体プロセスの微細化や積層技術の採用に伴い、誤り発生率が顕著になってきており、上述したような符号化技術を適用することにより、メモリシステム全体の信頼性向上を図っている。
このような符号化処理を行う符号化装置において、誤り訂正能力など装置の特性を決定するパラメータを保持するレジスタを設けることで、要求される特性に応じた符号化装置を容易に提供することができ、有用である。
特許3953397号公報
しかしながら、符号化装置の特性を決定するパラメータをレジスタなどに保持する場合、レジスタにソフトエラーが発生して保持されているパラメータの値が変化してしまうと、符号化処理に誤りが生じ、システムが正常に動作しなくなるという問題点があった。
本発明が解決しようとする課題は、装置の特性を決定するパラメータを保持する場合において、保持されるパラメータが意図せず変化した場合の誤動作を防ぐことが可能な符号化装置および符号化方法を提供することにある。
実施形態の符号化装置は、パラメータ保持部に保持されるパラメータから生成され誤り検出符号保持部に保持される誤り検出符号を用いて該パラメータ保持部に保持されるパラメータの誤りを検出し、検出された誤りを訂正する。符号化部が、誤りを訂正されたパラメータを用いてデータを符号化する。
既知の構成の符号化装置例を示すブロック図。 既知の構成の符号化装置の動作例のフローチャート。 第1の実施形態に係る符号化装置の構成例を示すブロック図。 第1の実施形態による符号化装置の動作例のフローチャート。 第1の実施形態の第1変形例の符号化装置の動作例のフローチャート。 第1の実施形態の第2変形例の符号化装置の動作例のフローチャート。 第2の実施形態に係る符号化装置の構成例を示すブロック図。 第2の実施形態による符号化装置の動作例のフローチャート。 第3の実施形態に係る符号化装置の構成例を示すブロック図。 第3の実施形態による符号化装置の動作例のフローチャート。 第4の実施形態に係る符号化装置の構成例を示すブロック図。 第4の実施形態による符号化装置の動作例のフローチャート。 組み合わせ回路を用いた誤り検出部および誤り訂正部の例を示す図。 第5の実施形態に係る符号化装置の構成例を示すブロック図。 第5の実施形態による符号化装置の動作例のフローチャート。 第5の実施形態の変形例の符号化装置の構成例を示すブロック図。 第5の実施形態の変形例の符号化装置の動作例のフローチャート。 第6の実施形態によるメモリシステムの構成例を示すブロック図。 第6の実施形態によるメモリシステムの動作例のフローチャート。 生成多項式を適用した符号化装置を原理的を示す略線図。 第7の実施形態による符号化装置の構成例を示すブロック図。
以下に、各実施形態に係る符号化装置について説明する。理解を容易とするために、先ず、各実施形態の前提となる符号化装置について説明する。図1は、各実施形態の前提となる、既知の構成による符号化装置1の例を示す。符号化装置1は、符号化部10、出力選択部11およびパラメータ保持部12を有する。
符号化装置1において、符号化部10は、パラメータ保持部12に保持されるパラメータを用いて符号化対象データである入力データを所定単位毎に符号化して出力する。ここで、このパラメータは、符号化部10における符号化処理の特性を決定するための値である。符号化処理の特性は、符号化処理の動作を含む。符号化部10で入力データが符号化された符号化データは、出力データとして符号化装置1から出力される。
符号化部10は、例えば生成多項式を用い入力データを符号化する。この場合、パラメータは、生成多項式を表現する値となる。一例として、生成多項式における各次元の係数を、パラメータとして用いることができる。符号化部10が用いるパラメータを変更することで、符号化能力などの符号化部10の特性を変更することができる。
より詳細には、例えば、符号化部10が符号化処理に用いるパラメータが外部から供給され、例えばレジスタからなるパラメータ保持部12に保持される。符号化対象の入力データが符号化部10に入力されると共に、出力選択部11の一方の選択入力端に入力される。出力選択部11の他方の選択入力端には、符号化部10の出力が入力される。出力選択部11は、一方および他方の選択入力端を、符号化部10から供給される符号化処理完了信号に応じて切り替える。
図2は、符号化装置1の動作を示す一例のフローチャートである。符号化装置1が起動されると、例えば外部から供給されたパラメータがパラメータ保持部12に保持される(ステップS100)。次のステップS101で、入力データとしての符号化対象データが待機される。符号化対象データが符号化装置1に受信されると、次のステップS102で、符号化装置1は、受信した符号化対象データを符号化部10に供給すると共に、出力選択部11の一方の選択入力端に入力する。
符号化部10は、符号化対象データが供給されると、パラメータ保持部12に保持されるパラメータを用いて符号化対象データの符号化を行う(ステップS103)。一方、この段階では、出力選択部11では一方の選択入力端が選択されており、符号化対象データがそのまま出力データとして出力される(ステップS104)。
次のステップS105で、符号化装置1は、符号化対象データがまだ残っているか否か、すなわち、符号化部10において所定量の符号化対象データに対して符号化処理を行ったか否かを判定する。若し、所定量の符号化対象データに対する符号化処理が完了しておらず、符号化対象データがまだ残っていると判定した場合は、処理がステップS102に戻され、残りの符号化対象データに対する処理が繰り返される。
一方、ステップS105で、所定量の符号化対象データに対する符号化処理が完了し、符号化対象データが残っていないと判定した場合、処理がステップS106に移行される。ステップS106では、符号化部10は、所定量の符号化対象に対する符号化処理が完了したことを示す符号化処理完了信号を出力選択部11に対して出力する。出力選択部11は、この符号化処理完了信号に応じて入力端を一方の選択入力端から他方の選択入力端に切り替える。符号化部10で符号化対象データを符号化した符号化データは、出力データとして出力選択部11から出力される。その後、処理がステップS101に戻される。
このようにして、符号化装置1では、符号化処理に際して、符号化対象データに対して符号化処理を施した符号化データと、符号化対象データとを出力する。
このような構成において、パラメータ保持部12がパラメータを保持している間に、例えば2次宇宙線などの影響によりパラメータ保持部12においてソフトエラーが発生した場合、符号化部10に適用されるパラメータが所期のものとは異なってしまう。この場合、符号化部10は、期待される符号化処理とは異なった処理を行うことになり、正しい符号化データを得ることができなくなる。
そこで、各実施形態においては、パラメータ保持部12に保持されるパラメータに対して誤り検出および誤り訂正処理を施し、ソフトエラーによる符号化部10の誤動作を防ぐ。
(第1の実施形態)
次に、第1の実施形態について説明する。図3は、本第1の実施形態に係る符号化装置2の一例の構成を示す。なお、図3において、上述した図1と共通する部分には同一の符号を付して、詳細な説明を省略する。符号化装置2は、図1の符号化装置1と同様に符号化部10、出力選択部11およびパラメータ保持部12を有し、加えて、誤り符号生成部20と、誤り検出符号保持部21と、誤り検出部22と、誤り訂正部23と、パラメータ選択部24とを有する。
符号化部10における符号化処理の特性を決定するためのパラメータが、パラメータ保持部12に供給され保持されると共に、誤り検出符号生成部20に供給される。誤り検出符号生成部20は、供給されたパラメータに基づき、当該パラメータの誤りを少なくとも検出可能な誤り検出符号を生成する。このとき、誤り検出符号生成部20は、当該パラメータの誤りを検出すると共に、当該誤りを訂正する能力を持つ誤り検出・訂正符号を生成してもよい。
誤り検出符号生成部20で生成する誤り検出符号としては、例えばパリティビットやCRC(cyclic redundancy check)符号などが適用可能である。また、誤り訂正能力を持った誤り検出・訂正符号としては、例えばリード・ソロモン符号、BCH(Bose-Chaudhuri-Hocquenghem)符号、ハミング符号などを適用可能である。ここでは、誤り検出符号生成部20では、BCH符号を生成するものとする。また、以下では、特に記載のない限り、誤り検出符号と、誤り検出・訂正符号とを纏めて誤り検出符号と呼ぶ。
誤り検出符号生成部20で生成された誤り検出符号は、例えばレジスタからなる誤り検出符号保持部21に保持される。
誤り検出部22は、パラメータ保持部12に保持されるパラメータと、誤り検出符号保持部21に保持される誤り検出符号とを用いて、パラメータの誤りを検出する。誤り検出符号としてBCH符号を用いたこの例では、誤り検出部22は、誤り検出符号保持部21に保持される誤り検出符号と、パラメータ保持部12に保持されるパラメータとを用いてシンドロームを計算する。そして、計算されたシンドロームの値が全て「0」であれば、パラメータおよび誤り検出符号に誤りが無いと判定する。一方、求めたシンドロームの値のうち1つでも「0」ではない値が存在する場合、パラメータおよび誤り検出符号のうち少なくとも一方に誤りが有ると判定する。誤り検出部22は、誤り検出結果を、誤り検出信号として出力し、パラメータ選択部24に供給する。
誤り訂正部23は、パラメータ保持部12に保持されるパラメータと、誤り検出符号保持部21に保持される誤り検出符号とを用いて、パラメータの誤りを訂正する。誤り検出符号としてBCH符号を用いたこの例では、誤り訂正部23は、誤り検出符号保持部21に保持される誤り検出符号と、パラメータ保持部12に保持されるパラメータとを用いてシンドロームを計算する。誤り訂正部23は、誤り検出部22から、上述したシンドローム計算の結果を受け取ってもよい。そして、計算されたシンドロームの値に基づきパラメータ中の誤り位置を求め、誤り位置のビット値を反転させて誤り訂正を行う。
パラメータ選択部24は、一方の選択入力端に対してパラメータ保持部12の出力が入力され、他方の選択入力端に対して誤り訂正部23の誤り訂正出力が入力される。パラメータ選択部24は、誤り検出部22から供給される誤り検出信号に応じて、これら一方および他方の選択入力端のうち一方を選択する。パラメータ選択部24の出力が、符号化部10に供給される。
なお、符号化部10は、例えば生成多項式G(x)を用いた符号化を行う構成を適用できる。一例として、符号化部10は、生成多項式G(x)の最大次数の個数分のレジスタを有し、生成多項式G(x)の各次元において係数が「1」となっている次元のレジスタの入力にXOR(排他的論理和)回路を配してなる。各XOR回路の一方および他方の入力に対し、それぞれレジスタの出力と、入力データとが供給される。入力データと、次元数が「1」のレジスタの直前のレジスタの出力とのXOR演算の結果が、当該次元数が「1」のレジスタに入力されて、入力データが例えばクロックに従い各レジスタおよびXOR回路を巡回する。各レジスタから、符号化出力が取り出される。
このような構成の場合、生成多項式G(x)の各次元の係数が、符号化部10の特性を決定するパラメータとなる。例えば、符号化部10が有する全てのレジスタの入力に対してXOR回路をそれぞれ配し、各XOR回路の有効/無効をパラメータに基づき設定する。これにより、符号化部10をパラメータに応じて構成できる。
図4−1は、本第1の実施形態による符号化装置2の動作を示す一例のフローチャートである。符号化装置2が起動されると、例えば外部からパラメータが供給され(ステップS110)、次のステップS111で、供給されたパラメータがパラメータ保持部12に保持される。このとき、パラメータ保持部12に保持したパラメータを、さらに符号化部10に供給してもよい。また、パラメータは、誤り検出符号生成部20にも供給される。誤り検出符号生成部20は、供給されたパラメータから誤り検出符号を生成し、生成した誤り検出符号を誤り検出符号保持部21に供給し、保持させる(ステップS112)。
次のステップS113で、符号化装置2は、符号化対象データが入力データとして入力されるのを待機し、符号化対象データが受信されると、次のステップS114で、受信した符号化対象データを符号化部10に供給すると共に、出力選択部11の一方の選択入力端に入力する。
次のステップS115で、誤り検出部22が、誤り検出符号保持部21に保持される誤り検出符号を用いて、パラメータ保持部12に保持されるパラメータの誤り検出を行う。誤り検出部22は、誤り検出の結果に基づき、ステップS116で、パラメータに誤りがあるか否かを判定する。
若し、パラメータに誤りが無いと判定した場合、誤り検出部22は、パラメータに誤りが無い旨を示す誤り検出信号をパラメータ選択部24に対して出力し、処理をステップS117に移行させる。パラメータ選択部24では、誤り検出部22から供給された誤り検出信号に応じて、パラメータ保持部12が接続される一方の選択入力端が選択される。ステップS117では、パラメータ保持部12に保持されたパラメータが、パラメータ選択部24を介して符号化部10に供給される。
一方、ステップS116で、パラメータに誤りが有ると判定した場合、誤り検出部22は、パラメータに誤りが有る旨を示す誤り検出信号をパラメータ選択部24に対して出力し、処理がステップS118に移行させる。パラメータ選択部24では、誤り検出部22から供給された誤り検出信号に応じて、誤り訂正部23の出力が接続される他方の選択入力端が選択される。ステップS118では、誤り訂正部23により、誤り検出符号保持部21に保持される誤り検出符号を用いて、パラメータ保持部12に保持されるパラメータの誤りが訂正される。誤りが訂正された訂正済みパラメータは、パラメータ選択部24を介して符号化部10に供給される。
ステップS117またはステップS118の処理が終了すると、処理がステップS119に移行される。ステップS119では、符号化部10により、パラメータ選択部24から供給されたパラメータを用いて、ステップS114で供給された符号化対象データの符号化処理が行われる。この段階では、出力選択部11では一方の選択入力端が選択されており、符号化対象データがそのまま出力データとして出力される(ステップS120)。
次のステップS121で、符号化装置2は、符号化対象データがまだ残っているか否か、すなわち、所定量の符号化対象データに対して符号化処理を行ったか否かを判定する。若し、所定量の符号化対象データに対する符号化処理が完了しておらず、符号化対象データがまだ残っていると判定した場合は、処理がステップS114に戻され、残りの符号化対象データに対して繰り返して処理を行う。
一方、ステップS121で、所定量の符号化対象データに対する符号化処理が完了し、符号化対象データが残っていないと判定した場合、処理がステップS122に移行される。ステップS122では、符号化部10は、所定量の符号化対象に対する符号化処理が完了したことを示す符号化処理完了信号を出力選択部11に対して出力する。出力選択部11は、この符号化処理完了信号に応じて入力端を一方の選択入力端から、符号化部10の出力が接続される他方の選択入力端に切り替える。符号化部10で符号化対象データを符号化した符号化データは、出力データとして出力選択部11から出力される。その後、処理がステップS113に戻される。
このようにして、符号化装置2では、符号化処理に際して、符号化対象データに対して符号化処理を施した符号化データと、符号化対象データとを出力することができる。このとき、符号化部10が符号化処理に用いるパラメータの誤り検出を行い、誤りが有る場合には当該パラメータに対して誤り訂正を行って、符号化部10に供給している。そのため、パラメータ保持部12に保持されるパラメータにソフトエラーなどにより誤りが発生していても、正しく符号化を行うことができる。
(第1の実施形態の第1の変形例)
次に、第1の実施形態の第1の変形例について説明する。上述の図4−1のフローチャートでは、ステップS114〜ステップS121の処理が順次に実行されるように示されているが、これはこの例に限定されない。一例として、符号化部10に上述した生成多項式G(x)を用いた場合について考える。この場合、ステップS114の符号化対象データの入力と、ステップS119の符号化処理とが並行して行われる。すなわち、クロック毎に1ビットずつ入力された符号化対象データが(ステップS114)、生成多項式G(x)の最大次元に対応する個数の各レジスタに対して、順次シフトされて格納される。また、各レジスタに格納されるデータは、クロック毎に、符号化された出力データとして取り出される(ステップS119)。さらに、ステップS115、ステップS116およびステップS118の、パラメータの誤り検出および誤り訂正処理を、符号化対象データの入力および符号化処理と並行して実行することができる。
このように、各処理が並行して実行される構成においては、ステップS116でパラメータに誤りが検出された場合に、符号化部10において誤ったパラメータのまま、意図しない動作で符号化処理が行われてしまうことになる。本第1の実施形態の第1の変形例では、ステップS116でパラメータに誤りが検出された場合に符号化部10における符号化処理を一時的に停止させる。
図4−2は、本第1の実施形態の第1の変形例による符号化装置2の動作を示す一例のフローチャートである。なお、図4−2のフローチャートにおいて、上述した図4−1のフローチャートと共通する処理には同一の符号を付し、詳細な説明を省略する。図4−2のフローチャートでは、上述の図4−1のフローチャートに対して、ステップS118の前後に、符号化処理を中断させるステップS118aと、中断した符号化処理を再開させるステップS118bとが追加されている。
より具体的に説明する。ステップS116でパラメータに誤りが有ると判定した場合、誤り検出部22は、パラメータに誤りが有る旨を示す検出信号をパラメータ選択部24に対して出力し、処理をステップS118aに移行させる。ステップS118aで、例えば誤り検出部22は、符号化部10に対して符号化処理の一時的な停止を指示する。より具体的には、誤り検出部22は、例えば符号化部10に対してイネーブル信号などの制御信号を出力し(図示しない)、符号化部10における符号化処理を一時的に停止させる。これに限らず、符号化部10に対するクロックを停止させるなど、他の方法を用いて符号化部10における符号化処理を停止させてもよい。
ステップS118aで符号化部10における符号化処理が停止されると、処理がステップS118に移行される。ステップS118では、上述と同様にして、誤り訂正部23により、誤り検出符号保持部21に保持される誤り検出符号を用いて、パラメータ保持部12に保持されるパラメータの誤りが訂正され、訂正済みパラメータがパラメータ選択部24を介して符号化部10に供給される。
ステップS118で誤り訂正された訂正済みパラメータが符号化部10に供給されると、処理がステップS118bに移行される。ステップS118bでは、例えば誤り検出部22により、符号化部10に対して符号化処理の再開が指示される。例えば、誤り検出部22は、符号化部10に対して、符号化処理を再開させるための制御信号を出力する。符号化部10に対する誤り訂正処理の再開が指示されると、処理がステップS119に移行され、符号化部10における符号化処理が再開される。
(第1の実施形態の第2の変形例)
次に、第1の実施形態の第2の変形例について説明する。例えば、所定量の符号化データが連続して出力される必要がある場合に、上述した第1の実施形態の第1の変形例では、符号化処理の一時停止および再開により符号化データが一時的に途切れ、不具合が生じる可能性がある。そこで、本第2の変形例では、ステップS116においてパラメータに誤りが検出されたと判定した場合に、符号化部10における符号化処理をやり直す。
図4−3は、本第1の実施形態の第2の変形例による符号化装置2の動作を示す一例のフローチャートである。なお、図4−3のフローチャートにおいて、上述した図4−1のフローチャートと共通する処理には同一の符号を付し、詳細な説明を省略する。図4−3のフローチャートでは、上述の図4−1のフローチャートに対して、ステップS118の後に、符号化対象データの再供給を要求するステップS118cを設け、その後、処理をステップS113に戻している。
より具体的に説明する。ステップS116でパラメータに誤りが有ると判定した場合、誤り検出部22は、パラメータに誤りが有る旨を示す検出信号をパラメータ選択部24に対して出力し、処理をステップS118に移行させる。ステップS118では、上述と同様にして、誤り訂正部23により、誤り検出符号保持部21に保持される誤り検出符号を用いて、パラメータ保持部12に保持されるパラメータの誤りが訂正され、訂正済みパラメータがパラメータ選択部24を介して符号化部10に供給される。
ステップS118でのパラメータに対する誤り訂正処理が完了すると、処理がステップS118cに移行される。ステップS118cでは、例えば誤り訂正部23から符号化対象データの供給元(ホスト装置)に対して、符号化対象データの再供給が要求される。例えば、符号化処理が所定サイズのデータブロック単位で行われる場合において、この符号化対象データブロックの符号化の途中で、ステップS116によりパラメータに誤りが検出された際には、当該符号化対象データブロックを再供給するように、誤り訂正部23からホスト装置に対してこの要求がなされる。
ステップS118cで符号化対象データの再供給が要求されると、処理がステップS113に戻されて、要求した符号化対象データの入力が待機される。
このように、第1の実施形態の第2の変形例では、符号化部10で用いるパラメータに誤りが検出された場合に、パラメータの誤りを訂正すると共に、誤りが検出された時点で符号化処理が行われている符号化対象データの再供給を要求している。そのため、所定サイズの符号化対象データブロック単位で符号化データが必要な場合に、不具合が発生するのを防ぐことができる。
一例として、符号化部10で符号化され、出力選択部11から出力された符号化データがNANDフラッシュメモリに書き込まれる場合について考える。周知のように、NANDフラッシュメモリは、所定サイズのブロック単位でデータの書き込みを行う必要がある。そのため、少なくとも符号化対象データブロック分の符号化データは、出力選択部11から連続して、すなわち、間を空けずに出力されなければならない。
この第1の実施形態の第2の変形例によれば、パラメータに誤りが検出された場合に、誤りが検出された時点での符号化対象データブロックに対する符号化処理をやり直すため、ブロック単位での連続した符号化データの出力が可能である。したがって、この第1の実施形態の第2の変形例による符号化装置2は、全体をNANDフラッシュメモリのコントローラの一部として使用するような場合に用いて好適である。
(第2の実施形態)
次に、第2の実施形態について説明する。図5は、本第2の実施形態に係る符号化装置3の一例の構成を示す。なお、図5において、上述した図3と共通する部分には同一の符号を付して、詳細な説明を省略する。符号化装置3は、構成要素に関しては、図3を用いて説明した符号化装置2と共通である。
本第2の実施形態の符号化装置3は、誤り訂正部23でパラメータの誤りを訂正した訂正済みパラメータをパラメータ保持部12に供給し、既にパラメータ保持部12に保持されているパラメータに対して上書きして保持する。同様に、符号化装置3は、誤り訂正部23で誤り検出符号の誤りを検出した訂正済み検出符号を誤り検出符号保持部21に供給し、既に誤り検出符号保持部21に保持されている誤り検出符号に対して上書きして保持する。
図6は、本第2の実施形態による符号化装置3の動作を示す一例のフローチャートである。符号化装置3が起動されると、例えば外部からパラメータが供給され(ステップS130)、次のステップS131で、供給されたパラメータがパラメータ保持部12に保持されると共に、誤り検出符号生成部20に供給される。誤り検出符号生成部20は、供給されたパラメータから誤り検出符号を生成し、生成した誤り検出符号を誤り検出符号保持部21に保持させる(ステップS132)。
次のステップS133で、符号化部10は、入力データとしての符号化対象データを待機し、符号化対象データが受信されると、次のステップS134で、受信した符号化対象データが符号化部10に供給されると共に、出力選択部11の一方の選択入力端に入力される。
次のステップS135で、誤り検出部22が、誤り検出符号保持部21に保持される誤り検出符号を用いて、パラメータ保持部12に保持されるパラメータについて誤り検出を行う。誤り検出部22は、誤り検出の結果に基づき、ステップS136で、誤りが検出されたか否かを判定する。
若し、誤りが検出されなかったと判定した場合、誤り検出部22は、誤りが無い旨を示す誤り検出信号をパラメータ選択部24に対して出力し、処理をステップS137に移行させる。パラメータ選択部24では、誤り検出部22から供給された誤り検出信号に応じて、パラメータ保持部12の出力が接続される一方の選択入力端が選択される。ステップS137では、パラメータ保持部12に保持されたパラメータが、パラメータ選択部24を介して符号化部10に供給される。
一方、ステップS136で、誤りが検出されたと判定した場合、誤り検出部22は、処理をステップS138に移行させると共に、誤りが有る旨を示す誤り検出信号をパラメータ選択部24に対して出力する。パラメータ選択部24では、誤り検出部22から供給された誤り検出信号に応じて、誤り訂正部23の出力が接続される他方の選択入力端が選択される。
ステップS138では、誤り訂正部23により、誤り検出符号保持部21に保持される誤り検出符号を用いて、パラメータ保持部12に保持されるパラメータおよび誤り検出符号保持部21に保持される誤り検出符号に対して誤り訂正処理が行われる。誤り訂正処理された訂正済みパラメータは、パラメータ選択部24を介して符号化部10に供給されると共に、パラメータ保持部12に供給され、パラメータ保持部12に既に保持されているパラメータに対して上書きして保持される。また、誤り訂正処理された訂正済み検出符号は、誤り検出符号保持部21に供給され、誤り検出符号保持部21に既に保持されている誤り検出符号に対して上書きして保持される。
ステップS137またはステップS138の処理が終了すると、処理がステップS139に移行される。ステップS139では、符号化部10により、パラメータ選択部24から供給されたパラメータを用いて、ステップS134で供給された符号化対象データの符号化処理が行われる。この段階では、出力選択部11では一方の選択入力端が選択されており、符号化対象データがそのまま出力データとして出力される(ステップS140)。
次のステップS141で、符号化装置3は、符号化対象データがまだ残っているか否か、すなわち、所定量の符号化対象データに対して符号化処理を行ったか否かを判定する。若し、所定量の符号化対象データに対する符号化処理が完了しておらず、符号化対象データがまだ残っていると判定した場合は、処理がステップS134に戻され、残りの符号化対象データに対して繰り返して処理を行う。
一方、ステップS141で、所定量の符号化対象データに対する符号化処理が完了し、符号化対象データが残っていないと判定した場合、処理がステップS142に移行される。ステップS142では、符号化部10は、所定量の符号化対象に対する符号化処理が完了したことを示す符号化処理完了信号を出力選択部11に対して出力する。出力選択部11は、この符号化処理完了信号に応じて入力端を一方の選択入力端から他方の選択入力端に切り替える。符号化部10で符号化対象データを符号化した符号化データは、出力データとして出力選択部11から出力される。その後、処理がステップS133に戻される。
このようにして、符号化装置3では、符号化部10が符号化処理に用いるパラメータの誤り検出を行い、誤りが有る場合には当該パラメータに対して誤り訂正を行って符号化部10に供給している。それと共に、符号化装置3では、パラメータ保持部12に保持されるパラメータに誤りが検出される毎に当該パラメータの誤り訂正を行い、誤りが訂正されたパラメータでパラメータ保持部12に保持されるパラメータを上書きするようにしている。そのため、パラメータ保持部12に保持されるパラメータにソフトエラーが発生していても、正しく符号化を行うことができると共に、より高い信頼性を実現することができる。
なお、本第2の実施形態においても、ステップS136でパラメータに誤りが検出された場合に、上述の第1の実施形態の第1の変形例で説明したように、ステップS138のパラメータの誤り訂正の前後に符号化処理の停止および再開を行う処理を適用することができる。同様に、ステップS136でパラメータに誤りが検出された場合に、上述の第1の実施形態の第2の変形例で説明したように、ステップS138のパラメータに誤り訂正の後、符号化対象データを供給する供給元に対して符号化対象データの再供給を要求し、その後、ステップS133で符号化対象データの入力を待機する処理を適用することができる。
(第3の実施形態)
次に、第3の実施形態について説明する。図7は、本第3の実施形態に係る符号化装置4の一例の構成を示す。なお、図7において、上述した図5と共通する部分には同一の符号を付して、詳細な説明を省略する。符号化装置4は、構成要素に関しては、図5を用いて説明した符号化装置3とほぼ共通である。
符号化装置4は、符号化装置3に対して、誤り訂正部23から誤り訂正不能通知を出力する機能が追加されている。すなわち、符号化装置4において、誤り訂正部23のパラメータおよび誤り検出符号に対する誤り訂正処理において、当該パラメータおよび誤り検出符号に、誤り検出符号(誤り検出・訂正符号)が持つ誤り訂正能力を超える誤りが存在する場合に、当該パラメータおよび誤り検出符号の誤り訂正が不能であるとして、その旨示す誤り訂正不能通知を外部に出力する。
図8は、本第3の実施形態による符号化装置4の動作を示す一例のフローチャートである。この図8のフローチャートにおけるステップS158およびステップS160の処理以外は、図6のフローチャートによる各処理と同等である。すなわち、符号化装置4が起動されると、外部から供給されたパラメータ(ステップS150)がパラメータ保持部12に保持されると共に、誤り検出符号生成部20に供給される(ステップS151)。誤り検出符号生成部20は、供給されたパラメータから誤り検出符号を生成し、生成した誤り検出符号を誤り検出符号保持部21に保持させる(ステップS152)。
次のステップS153で、符号化装置4は、入力データとしての符号化対象データを待機し、符号化対象データが受信されると、次のステップS154で、受信した符号化対象データを符号化部10に供給すると共に、出力選択部11の一方の選択入力端に入力する。
次のステップS155で、誤り検出部22が、誤り検出符号保持部21に保持される誤り検出符号を用いて、パラメータ保持部12に保持されるパラメータについて誤り検出を行い、誤り検出の結果に基づき、誤りが検出されたか否かを判定する(ステップS156)。
若し、誤りが検出されなかったと判定した場合、誤り検出部22は、誤りが無い旨を示す誤り検出信号をパラメータ選択部24に対して出力し、処理をステップS157に移行させる。パラメータ選択部24では、誤り検出部22から供給された誤り検出信号に応じて、パラメータ保持部12が接続される一方の選択入力端が選択される。ステップS157では、パラメータ保持部12に保持されたパラメータが、パラメータ選択部24を介して符号化部10に供給される。
一方、ステップS156で、誤りが検出されたと判定した場合、誤り検出部22は、処理をステップS158に移行させると共に、誤りが有る旨を示す誤り検出信号をパラメータ選択部24に対して出力する。パラメータ選択部24では、誤り検出部22から供給された誤り検出信号に応じて、誤り訂正部23が接続される他方の選択入力端が選択される。
ステップS158で、誤り訂正部23は、ステップS155の誤り検出部22による誤り検出結果に基づき、検出された誤りが誤り検出符号(誤り検出・訂正符号)の持つ誤り訂正能力で誤り訂正可能であるか否かを判定する。
若し、検出された誤りが誤り検出符号の持つ誤り訂正能力で訂正可能であると判定した場合、処理がステップS159に移行される。ステップS159では、誤り訂正部23により、誤り検出符号保持部21に保持される誤り検出符号を用いて、パラメータ保持部12に保持されるパラメータと、当該誤り検出符号とに対して誤り訂正処理が行われる。誤り訂正処理された訂正済みパラメータは、パラメータ選択部24を介して符号化部10に供給されると共に、パラメータ保持部12に供給され、パラメータ保持部12に既に保持されているパラメータに対して上書きして保持される。また、誤り訂正処理された訂正済み検出符号は、誤り検出符号保持部21に供給され、誤り検出符号保持部21に既に保持されている誤り検出符号に対して上書きして保持される。
ステップS157またはステップS159の処理が終了すると、処理がステップS161に移行される、符号化部10により、パラメータ選択部24から供給されたパラメータを用いて、ステップS154で供給された符号化対象データの符号化処理が行われる。このとき、出力選択部11では一方の選択入力端が選択されているため、符号化対象データがそのまま出力データとして出力される(ステップS162)。
次のステップS163で、符号化装置4は、符号化対象データがまだ残っているか否かを判定する。若し、符号化対象データがまだ残っていると判定した場合は、処理がステップS154に戻され、残りの符号化対象データに対して繰り返して処理を行う。
一方、ステップS163で、符号化対象データが残っていないと判定した場合、処理がステップS164に移行され、符号化部10により、所定量の符号化対象に対する符号化処理が完了したことを示す符号化処理完了信号が出力選択部11に対して出力される。出力選択部11は、この符号化処理完了信号に応じて入力端を一方の選択入力端から他方の選択入力端に切り替える。符号化部10で符号化対象データを符号化した符号化データは、出力データとして出力選択部11から出力される。その後、処理がステップS153に戻される。
一方、上述のステップS158において、検出された誤りが誤り検出符号の持つ誤り訂正能力で訂正不能であると判定した場合、処理がステップS160に移行される。ステップS160で、誤り訂正部23は、誤り訂正が不能であることを示す誤り訂正不能通知を外部に出力する。そして、この図8のフローチャートによる一連の処理を終了させる。例えば、ステップS160で誤り訂正不能通知が出力された時点で符号化部10における符号化処理を終了させ、符号化データを符号化装置4から出力しないようにする。
このようにして、符号化装置4では、符号化部10が符号化処理に用いるパラメータの誤り検出および誤り訂正を行って符号化部10に供給すると共に、パラメータに誤りが検出される毎に当該パラメータの誤り訂正を行い、誤りが訂正されたパラメータでパラメータ保持部12に保持されるパラメータを上書きするようにしている。そのため、ソフトエラーに対処できると共に、より高い信頼性を実現することができる。
さらに、パラメータ保持部12に保持されるパラメータに対する誤り検出の結果、誤り検出符号の持つ誤り訂正能力を超えて誤りが検出された場合に、外部にその旨を通知するようにしているため、誤った符号化処理を回避することができる。
なお、本第3の実施形態においても、ステップS156でパラメータに誤りが検出された場合に、上述の第1の実施形態の第1の変形例で説明したように、ステップS159のパラメータの誤り訂正の前後に符号化処理の停止および再開を行う処理を適用することができる。同様に、ステップS156でパラメータに誤りが検出された場合に、上述の第1の実施形態の第2の変形例で説明したように、ステップS159のパラメータに誤り訂正の後、符号化対象データを供給する供給元に対して符号化対象データの再供給を要求し、その後、ステップS153で符号化対象データの入力を待機する処理を適用することができる。
(第4の実施形態)
次に、第4の実施形態について説明する。図9は、本第4の実施形態に係る符号化装置5の一例の構成を示す。なお、図9において、上述した図7と共通する部分には同一の符号を付して、詳細な説明を省略する。符号化装置5は、上述の符号化装置4において、誤り検出符号としてハミング符号を用いた例である。すなわち、符号化装置5は、図7の符号化装置4の誤り検出符号生成部20および誤り検出符号保持部21をそれぞれハミング符号生成部30およびハミング符号保持部31に置き換えている。また、誤り検出部22は、ハミング符号を用いた誤り検出を行う誤り検出部32と置き換え、同様に、誤り訂正部23は、ハミング符号を用いた誤り訂正を行う誤り訂正部33と置き換えている。
図9において、符号化部10が符号化処理に用いるパラメータがパラメータ保持部12に供給され保持されると共に、ハミング符号生成部30に供給される。ハミング符号生成部30は、供給されたパラメータからハミング符号による符号を生成する。生成された符号は、例えばレジスタからなるハミング符号保持部31に供給され、保持される。この符号とパラメータとにより、ハミング符号が構成される。
誤り検出部32は、パラメータ保持部12に保持されるパラメータと、ハミング符号保持部31に保持される符号とを用いて、誤り検出を行う。誤り検出部32は、ハミング符号保持部31に保持される符号と、パラメータ保持部12に保持されるパラメータとを用いてシンドロームを計算する。そして、計算されたシンドロームの値が全て「0」であれば、パラメータおよび符号に誤りが無いと判定する。一方、求めたシンドロームの値のうち1つでも「0」ではない値が存在する場合、パラメータまたは符号のうち少なくとも一方に誤りが有ると判定する。誤り検出部32は、誤り検出結果を、誤り検出信号として出力し、パラメータ選択部24に供給する。
誤り訂正部33は、パラメータ保持部12に保持されるパラメータと、ハミング符号保持部31に保持される符号とを用いて、誤り訂正を行う。誤り訂正部33は、ハミング符号保持部31に保持される符号と、パラメータ保持部12に保持されるパラメータとを用いて、シンドロームを計算する。誤り訂正部33は、誤り検出部32から、上述したシンドローム計算の結果を受け取ってもよい。そして、計算されたシンドロームの値に基づき誤りが1ビットであれば、誤り位置を特定して誤り位置のビット値を反転させて誤り訂正を行う。
一方、誤りが2ビット以上である場合には、ハミング符号の誤り訂正能力を超えているため、誤り訂正を行うことができない。この場合、誤り訂正部33は、誤り訂正が不能であることを示す誤り訂正不能通知を出力する。
図10は、本第4の実施形態による符号化装置5の動作を示す一例のフローチャートである。この図10のフローチャートは、誤り検出をハミング符号を用いて行っている点以外は、図8のフローチャートによる各処理と同等である。すなわち、符号化装置5が起動されると、外部から供給されたパラメータ(ステップS170)がパラメータ保持部12に保持されると共に、ハミング符号生成部30に供給される(ステップS171)。ハミング符号生成部30は、供給されたパラメータからハミング符号による符号を生成し、生成した符号をハミング符号保持部31に保持させる(ステップS172)。
次のステップS173で、符号化部10は、入力データとしての符号化対象データを待機し、符号化対象データが受信されると、次のステップS174で、受信した符号化対象データが符号化部10に供給されると共に、出力選択部11の一方の選択入力端に入力される。
次のステップS175で、誤り検出部32が、ハミング符号保持部21に保持される符号と、パラメータ保持部12に保持されるパラメータとを用いて誤り検出を行い、誤り検出の結果に基づき、誤りが検出されたか否かを判定する(ステップS176)。
若し、誤りが検出されなかったと判定した場合、誤り検出部32は、誤りが無い旨を示す誤り検出信号をパラメータ選択部24に対して出力し、処理をステップS177に移行させる。パラメータ選択部24では、誤り検出部32から供給された誤り検出信号に応じて、一方の選択入力端が選択される。ステップS177では、パラメータ保持部12に保持されたパラメータが、パラメータ選択部24を介して符号化部10に供給される。
一方、ステップS176で、誤りが検出されたと判定した場合、誤り検出部32は、処理をステップS178に移行させると共に、誤りが有る旨を示す誤り検出信号をパラメータ選択部24に対して出力する。パラメータ選択部24では、誤り検出部32から供給された誤り検出信号に応じて、他方の選択入力端が選択される。
ステップS178で、誤り訂正部33は、ステップS175の誤り検出部32による誤り検出結果に基づき、検出された誤りが、ハミング符号の持つ誤り訂正能力で誤り訂正可能であるか否かを判定する。より具体的には、誤り訂正部33は、検出された誤りが1ビットの誤りであるか否かを判定する。
若し、検出された誤りが1ビットの誤りであれば、誤りを訂正可能であるので、誤り訂正部33は、処理をステップS179に移行させる。ステップS179では、誤り訂正部33は、シンドロームの値に基づき誤りビットを特定して、特定されたビットの値を反転させて誤りを訂正する。誤りが訂正された訂正済みパラメータは、パラメータ選択部24を介して符号化部10に供給されると共に、パラメータ保持部12に供給され、パラメータ保持部12に既に保持されているパラメータに対して上書きして保持される。また、誤りが訂正された訂正済み符号をハミング符号保持部31に供給し、ハミング符号保持部31に既に保持されている符号に対して上書きして保持する。
ステップS177またはステップS179の処理が終了すると、処理がステップS181に移行される、符号化部10により、パラメータ選択部24から供給されたパラメータを用いて、ステップS174で供給された符号化対象データの符号化処理が行われる。このとき、出力選択部11において一方の選択入力端が選択されているので、符号化対象データがそのまま出力データとして出力される(ステップS182)。
次のステップS183で、符号化部10は、符号化対象データがまだ残っているか否かを判定する。若し、符号化対象データがまだ残っていると判定した場合は、処理がステップS174に戻され、残りの符号化対象データに対して繰り返して処理を行う。
一方、ステップS183で、符号化対象データが残っていないと判定した場合、処理がステップS184に移行され、符号化部10により、所定量の符号化対象に対する符号化処理が完了したことを示す符号化処理完了信号が出力選択部11に対して出力される。出力選択部11は、この符号化処理完了信号に応じて入力端を一方の選択入力端から他方の選択入力端に切り替える。符号化部10で符号化対象データを符号化した符号化データは、出力データとして出力選択部11から出力される。その後、処理がステップS173に戻される。
一方、上述のステップS178において、検出された誤りが2ビット以上の誤りであって、ハミング符号の持つ誤り訂正能力で訂正不能であると判定した場合、処理がステップS180に移行される。ステップS180で、誤り訂正部33は、誤り訂正が不能であることを示す誤り訂正不能通知を外部に出力する。そして、この図10のフローチャートによる一連の処理を終了させる。例えば、ステップS180で誤り訂正不能通知が出力された時点で符号化部10における符号化処理を終了させ、符号化データを符号化装置5から出力しないようにする。
このようにして、符号化装置5では、符号化部10が符号化処理に用いるパラメータの誤り検出および誤り訂正をハミング符号を用いて行っている。ハミング符号による誤り検出部32および誤り訂正部33は、それぞれ組み合わせ回路のみで構成可能である。そのため、誤りが検出され、検出された誤りが誤り訂正可能な場合、誤りが検出されたサイクルと同一サイクルで誤り訂正が行われ、符号化部10における符号化処理を一時停止させることなく継続させることができる。
図11は、組み合わせ回路を用いて誤り検出部32および誤り訂正部33を構成した例を示す。図11において、図9の各部と対応する部分には、同一の符号を付して示している。図11は、データが4ビット、ハミング符号による符号、すなわち、誤り訂正用の冗長ビットが3ビット、全体の符号長が7ビットになるハミング(7,4)符号に対応した構成例を示している。
パラメータ保持部12は、それぞれ1ビットを格納する4のレジスタを有し、4ビットのパラメータの各ビットが各レジスタに格納される。ハミング符号保持部31も同様に、それぞれ1ビットを格納する3のレジスタを有し、3ビットの冗長ビットの各ビットが各レジスタに格納される。
誤り検出部32は、それぞれ4入力の3のXOR回路2001〜2003と、各XOR回路2001〜2003の出力が反転されてそれぞれ入力される3入力のOR回路203とを有する。各XOR回路2001〜2003は、4の入力がそれぞれパラメータ保持部12および誤り検出符号保持部31の各ビットに所定に接続され、シンドロームビットS0、S1およびS2を出力する。
また、OR回路203の出力が誤り検出信号として取り出される。すなわち、シンドロームビットS0、S1およびS2が全て値「0」のときに、OR回路203の出力が値「0」となり、誤りが検出されなかったことが示される。一方、シンドロームビットS0、S1およびS2のうち少なくとも1が値「1」のときにOR回路203の出力が値「1」となり、誤りが検出されたことが示される。
誤り訂正部33は、それぞれ2入力の7のXOR回路2021〜2027と、それぞれ3入力の7のAND回路2011〜2017とを有する。AND回路2011〜2017は、2以下の各組み合わせで反転される3の入力が、各XOR回路2001〜2003の出力にそれぞれ接続される。各AND回路2011〜2017の出力e0、e1、…、e6において、誤りが1ビットの場合の誤り位置に対応する出力が値「1」となる。
各XOR回路2021〜2027は、パラメータ保持部12の各ビット、ならびに、ハミング符号保持部31の各ビットと、AND回路2011〜2017の各出力とのXOR演算を行う。各XOR回路2021〜2027において、パラメータ保持部12の各ビット、ならびに、ハミング符号保持部31の各ビットのうち、各AND回路2011〜2017のうち出力が値「1」のビットが反転されて誤り訂正される。
各XOR回路2021〜2027から、誤りが訂正されたパラメータおよび誤り符号が出力される。訂正済みパラメータは、符号化部10に供給される。また、各XOR回路2021〜2027の出力が、それぞれパラメータ保持部12およびハミング符号保持部31の各ビットに格納され、パラメータ保持部12およびハミング符号保持部31の保持内容に対する誤り訂正も行われる。
このように、誤り検出および誤り訂正をハミング符号を用いて行う場合、誤り検出部32および誤り訂正部33を、AND回路、インバータ、XOR回路といった組み合わせ回路のみで構成することができる。周知のように、組み合わせ回路では、入力の状態に応じて出力が決まるので、誤り検出および誤り訂正、ならびに、誤り検出信号の出力をほぼ同時に実行することができる。
(第5の実施形態)
次に、第5の実施形態について説明する。図12は、本第5の実施形態に係る符号化装置6の一例の構成を示す。なお、図12において、上述した図7と共通する部分には同一の符号を付して、詳細な説明を省略する。符号化装置6は、構成要素に関しては、図7を用いて説明した符号化装置4と略共通である。
符号化装置6は、誤り訂正部23から出力される誤り訂正不能通知を、パラメータ保持部12にパラメータを供給するパラメータ供給元40に対して送信する。すなわち、図12に例示されるように、パラメータ供給元40は、誤り訂正不能通知受信部41を有し、誤り訂正部23から出力された誤り訂正不能通知は、この誤り訂正不能通知受信部41に受信される。
パラメータ供給元40は、誤り訂正不能通知受信部41に誤り訂正不能通知が受信されると、符号化装置6に対して、符号化部10が符号化処理を行う際に用いるパラメータを送信する。このパラメータは、パラメータ保持部12に供給され、既に保持されているパラメータに対して上書きされて保持される。換言すれば、パラメータ保持部12に保持されるパラメータが、パラメータ供給元40から送信されるパラメータによって初期化される。
同様に、パラメータ供給元40から符号化装置6に送信されたパラメータは、誤り検出符号生成部20にも供給される。誤り検出符号生成部20は、パラメータ供給元40から送信されたパラメータに基づき誤り検出符号を生成する。生成されたこの誤り検出符号は、誤り検出符号保持部21に供給され、既に誤り検出符号保持部21に保持される誤り検出符号に対して上書きして保持される。換言すれば、誤り検出符号保持部21に保持される誤り検出符号が、パラメータ供給元40から送信されるパラメータに基づき初期化される。
また、パラメータ供給元40は、誤り訂正不能通知受信部41に誤り訂正不能通知が受信されると、符号化装置6に対して、符号化制御信号を送信する。この符号化制御信号は、符号化部10に供給される。符号化部10は、この符号化制御信号が供給されると、符号化処理を停止させる。
図13は、本第5の実施形態による符号化装置6の動作を示す一例のフローチャートである。符号化装置6が起動されると、パラメータ供給元40から、符号化部10が符号化処理を行う際に用いるパラメータが符号化装置6に供給される(ステップS200)。パラメータ供給元40から供給されたこのパラメータは、パラメータ保持部12に保持されると共に、誤り検出符号生成部20に供給される(ステップS201)。誤り検出符号生成部20は、供給されたパラメータから誤り検出符号を生成し、生成した誤り検出符号を誤り検出符号保持部21に保持させる(ステップS202)。
次のステップS203で、符号化装置6は、入力データとしての符号化対象データを待機し、符号化対象データが受信されると、次のステップS204で、受信した符号化対象データを符号化部10に供給すると共に、出力選択部11の一方の選択入力端に入力する。
次のステップS205で、誤り検出部22が、誤り検出符号保持部21に保持される誤り検出符号を用いて、パラメータ保持部12に保持されるパラメータについて誤り検出を行い、誤り検出の結果に基づき、誤りが検出されたか否かを判定する(ステップS206)。
若し、誤りが検出されなかったと判定した場合、誤り検出部22は、誤りが無い旨を示す誤り検出信号をパラメータ選択部24に対して出力し、処理をステップS207に移行させる。パラメータ選択部24では、誤り検出部22から供給された誤り検出信号に応じて、一方の選択入力端が選択される。ステップS207では、パラメータ保持部12に保持されたパラメータが、パラメータ選択部24を介して符号化部10に供給される。
一方、ステップS206で、誤りが検出されたと判定した場合、誤り検出部22は、処理をステップS208に移行させると共に、誤りが有る旨を示す誤り検出信号をパラメータ選択部24に対して出力する。パラメータ選択部24では、誤り検出部22から供給された誤り検出信号に応じて、他方の選択入力端が選択される。
ステップS208で、誤り訂正部23は、ステップS205の誤り検出部22による誤り検出結果に基づき、検出された誤りが誤り検出符号(誤り検出・訂正符号)の持つ誤り訂正能力で誤り訂正可能であるか否かを判定する。
若し、上述のステップS208において、検出された誤りが誤り検出符号の持つ誤り訂正能力で訂正不能であると判定した場合、処理がステップS209に移行される。ステップS209で、誤り訂正部23は、誤り訂正が不能であることを示す誤り訂正不能通知を出力する。
誤り訂正部23から出力された誤り訂正不能通知は、パラメータ供給元40の誤り訂正不能通知受信部41に受信される(ステップS210)。パラメータ供給元40は、誤り訂正不能通知受信部41に誤り訂正不能通知が受信されると、符号化部10による符号化処理を一時的に停止させる符号化制御信号を出力する。この符号化制御信号は、符号化装置6に受信され、符号化部10に入力される。符号化部10は、符号化制御信号が入力されると、符号化処理を一時的に停止する。
次のステップS211で、パラメータ供給元40から符号化装置6対して、符号化部10が符号化処理に用いるためのパラメータが送信される。このパラメータは、パラメータ保持部12に保持されると共に、誤り検出符号生成部20に供給される(ステップS212)。誤り検出符号生成部20は、供給されたパラメータから誤り検出符号を生成し、生成した誤り検出符号を誤り検出符号保持部21に保持させる(ステップS213)。
パラメータ供給元40は、符号化装置6に対してパラメータを送信した後、符号化部10による符号化処理の再開を指示する符号化制御信号を出力する(ステップS214)。パラメータ供給元40は、パラメータ保持部12や誤り検出符号生成部20から、パラメータの受信を示す通知を受け取ってから、この符号化制御信号を出力するようにしてもよい。符号化部10は、この符号化制御信号を受信すると、符号化処理を再開させる。符号化処理が再開されると、処理が上述したステップS207に移行される。
一方、検出された誤りが誤り検出符号の持つ誤り訂正能力で訂正可能であると判定した場合、処理がステップS215に移行される。ステップS215では、誤り訂正部23により、誤り検出符号保持部21に保持される誤り検出符号を用いて、パラメータ保持部12に保持されるパラメータと、当該誤り検出符号とに対する誤り訂正が行われる。誤り訂正処理された訂正済みパラメータは、パラメータ選択部24を介して符号化部10に供給されると共に、パラメータ保持部12に供給され、パラメータ保持部12に既に保持されているパラメータに対して上書きして保持される。また、誤り訂正処理された訂正済み検出符号は、誤り検出符号保持部21に供給され、誤り検出符号保持部21に既に保持されている誤り検出符号に対して上書きして保持される。
ステップS214またはステップS215の処理が終了すると、処理がステップS216に移行される、符号化部10により、パラメータ選択部24から供給されたパラメータを用いて、ステップS204で供給された符号化対象データの符号化処理が行われる。このとき、出力選択部11において一方の選択入力端が選択されているため、符号化対象データがそのまま出力データとして出力される(ステップS217)。
次のステップS218で、符号化装置6は、符号化対象データがまだ残っているか否かを判定する。若し、符号化対象データがまだ残っていると判定した場合は、処理がステップS204に戻され、残りの符号化対象データに対して繰り返して処理を行う。
一方、ステップS218で、符号化対象データが残っていないと判定した場合、処理がステップS219に移行され、符号化部10により、所定量の符号化対象に対する符号化処理が完了したことを示す符号化処理完了信号が出力選択部11に対して出力される。出力選択部11は、この符号化処理完了信号に応じて入力端を一方の選択入力端から他方の選択入力端に切り替える。符号化部10で符号化対象データを符号化した符号化データは、出力データとして出力選択部11から出力される。その後、処理がステップS203に戻される。
このように、符号化装置6は、誤り検出され誤り訂正不能な場合であっても、パラメータ保持部12に保持されるパラメータを初期化できるため、より信頼性が向上される。
なお、本第5の実施形態においても、ステップS206でパラメータに誤りが検出された場合に、上述の第1の実施形態の第1の変形例で説明したように、ステップS215のパラメータの誤り訂正の前後に符号化処理の停止および再開を行う処理を適用することができる。同様に、ステップS206でパラメータに誤りが検出された場合に、上述の第1の実施形態の第2の変形例で説明したように、ステップS215のパラメータに誤り訂正の後、符号化対象データを供給する供給元に対して符号化対象データの再供給を要求し、その後、ステップS203で符号化対象データの入力を待機する処理を適用することができる。
(第5の実施形態の変形例)
なお、ここでは、誤り訂正能力を持つ誤り検出符号を用いた例について説明したが、これはこの例に限定されない。本第5の実施形態の変形例は、パリティビットやCRC符号といった、誤り訂正能力を持たない誤り検出符号を用いた場合の例である。この場合、誤り検出符号を用いてパラメータの誤り検出を行った結果、誤りが検出された場合、符号化処理を一時的に停止させると共にパラメータ供給元からパラメータを供給させ、パラメータ保持部12に保持されるパラメータを初期化して符号化処理を再開させる。
図14は、本第5の実施形態の変形例による符号化装置6’の一例の構成を示す。なお、図14において、上述の図12と共通する部分については同一の符号を付して、詳細な説明を省略する。符号化装置6’は、誤り訂正を行わないため、上述の符号化装置6における誤り訂正に関連する部分である、誤り訂正部23およびパラメータ選択部24が省略されている。また、図14では、上述した図12における誤り訂正不能通知部41が、誤り検出通知受信部41’に変更されている。
すなわち、符号化装置6’において、パラメータ保持部12に保持されるパラメータは、直接的に符号化部10に供給される。また、誤り検出部22は、パラメータ保持部12に保持されるパラメータに対して、誤り検出符号保持部21に保持される誤り検出符号を用いて誤り検出を行い、誤りが検出された場合は、誤り検出通知をパラメータ供給元40に送信する。
パラメータ供給元40は、誤り検出通知が誤り検出通知受信部41’に受信されると、符号化部10における符号化処理を一時的に停止させるための符号化制御信号と、パラメータとを符号化装置6’に送信する。
図15は、本第5の実施形態の変形例による符号化装置6’の動作を示す一例のフローチャートである。符号化装置6’が起動されると、パラメータ供給元40から、符号化部10が符号化処理を行う際に用いるパラメータが符号化装置6に供給され(ステップS300)、パラメータ保持部12に保持されると共に、誤り検出符号生成部20に供給される(ステップS301)。誤り検出符号生成部20は、供給されたパラメータから誤り検出符号を生成して誤り検出符号保持部21に保持させる(ステップS302)。
次のステップS303で、符号化部10は、入力データとしての符号化対象データを待機し、符号化対象データが受信されると、次のステップS304で、受信した符号化対象データが符号化部10に供給されると共に、出力選択部11の一方の選択入力端に入力される。
次のステップS305で、誤り検出部22が、誤り検出符号保持部21に保持される誤り検出符号を用いて、パラメータ保持部12に保持されるパラメータについて誤り検出を行い、誤り検出の結果に基づき、パラメータに誤りがあるか否かを判定する(ステップS306)。若し、パラメータに誤りが無いと判定した場合、処理がステップS307に移行され、パラメータ保持部12に保持されたパラメータが符号化部10に供給される。
一方、ステップS306で、パラメータに誤りが有ると判定した場合、誤り検出部22は、処理をステップS320に移行させ、誤りが検出されたことを示す誤り検出通知を出力する。誤り検出部22から出力されたこの誤り検出通知は、パラメータ供給元40の誤り検出通知受信部41’に受信される。
パラメータ供給元40は、誤り検出通知受信部41’に誤り検出通知が受信されると、符号化部10による符号化処理を一時的に停止させる符号化制御信号を出力する。この符号化制御信号は、符号化装置6に入力され、符号化部10に供給される。符号化部10は、符号化制御信号を受信すると、符号化処理を一時的に停止する(ステップS321)。
次のステップS322で、パラメータ供給元40から符号化装置6’に対して、符号化部10が符号化処理に用いるためのパラメータが送信される。このパラメータは、パラメータ保持部12に保持されると共に、誤り検出符号生成部20に供給される(ステップS323)。若し、パラメータ保持部12に保持されているパラメータに誤りが存在していた場合、この誤りは、パラメータ供給元40から供給されたパラメータで、パラメータ保持部12に保持されるパラメータを上書きすることで訂正されることになる。
また、誤り検出符号生成部20は、供給されたパラメータから誤り検出符号を生成し、生成した誤り検出符号を誤り検出符号保持部21に保持させる(ステップS324)。若し、誤り検出符号保持部21に保持されている検出符号に誤りが存在していた場合、この誤りは、パラメータ供給元40から供給されたパラメータから生成した検出符号で、誤り検出符号保持部21に保持される検出符号を上書きすることで訂正されることになる。
パラメータ供給元40は、符号化装置6’に対してパラメータを送信した後、符号化部10による符号化処理の再開を指示する符号化制御信号を出力する(ステップS325)。パラメータ供給元40は、パラメータ保持部12や誤り検出符号生成部20から、パラメータの受信を示す通知を受け取ってから、この符号化制御信号を出力するようにしてもよい。符号化部10は、この符号化制御信号を受信すると、符号化処理を再開させる。
符号化処理が再開されると、処理が上述したステップS307に移行され、パラメータ保持部12に保持されたパラメータが符号化部10に供給される。
ステップS307でパラメータが符号化部10に供給されると、処理がステップS308に移行される。ステップS308では、符号化部10により、パラメータ保持部12から供給されたパラメータを用いて、ステップS304で供給された符号化対象データの符号化処理が行われる。このとき、符号化対象データがそのまま出力データとして出力される(ステップS309)。
次のステップS310で、符号化装置6’は、符号化対象データがまだ残っているか否かを判定する。若し、符号化対象データがまだ残っていると判定した場合は、処理がステップS304に戻され、残りの符号化対象データに対して繰り返して処理を行う。
一方、ステップS310で、符号化対象データが残っていないと判定した場合、処理がステップS311に移行され、符号化部10により、所定量の符号化対象に対する符号化処理が完了したことを示す符号化処理完了信号が出力選択部11に対して出力される。出力選択部11は、この符号化処理完了信号に応じて入力端を一方の選択入力端から他方の選択入力端に切り替える。符号化部10で符号化対象データを符号化した符号化データは、出力データとして出力選択部11から出力される。その後、処理がステップS303に戻される。
このように、符号化装置6’は、誤り検出の結果、誤りが検出された場合にパラメータ保持部12に保持されるパラメータを初期化できるため、簡易な構成で高い信頼性が得られる。
(第6の実施形態)
次に、第6の実施形態について説明する。本第6の実施形態は、上述した第1〜第5の実施形態による各符号化装置2〜6のうち何れか1の出力選択部11の出力に対して記憶素子を接続し、出力選択部11から出力された符号化対象データおよび符号化データを、この記憶素子に記憶させるようにしたメモリシステムの例である。
図16は、第6の実施形態によるメモリシステムの一例の構成を示す。この図16は、図7を用いて説明した符号化装置4に対して記憶素子50を接続して構成したメモリシステムの例が示されている。このメモリシステムは、例えば、情報処理装置などの外部機器から供給されたデータを記憶素子50に記憶させると共に、当該データに対して符号化処理を行い、この符号化処理により生成された符号化データを当該データと対応付けて記憶素子50に記憶させる。なお、図16において、図7と共通する部分には同一の符号を付して、詳細な説明を省略する。
出力選択部11の出力に、記憶素子50が接続される。出力選択部11から出力された符号化対象データおよび符号化データが記憶素子50に記憶される。出力選択部11の出力に接続される記憶素子50の種類は、データの書き込みが可能な素子であれば、特に限定されない。例えば、DRAM(Dynamic Random Access Memory)やNAND型フラッシュメモリといった半導体メモリを記憶素子50として用いることができる。
図17は、本第6の実施形態によるメモリシステムの動作を示す一例のフローチャートである。この図17のフローチャートに示す各処理は、ステップS243およびステップS244の、出力選択部11から出力される符号化データまたは符号化対象データを記憶素子50に記憶させる処理以外は、図8のフローチャートを用いて説明した、符号化装置4の動作における各処理と略同一である。
図17において、メモリシステムが起動されると、外部から供給されたパラメータ(ステップS230)がパラメータ保持部12に保持されると共に、誤り検出符号生成部20に供給される(ステップS231)。誤り検出符号生成部20は、供給されたパラメータから誤り検出符号を生成し、生成した誤り検出符号を誤り検出符号保持部21に保持させる(ステップS232)。
次のステップS233で、符号化装置4は、例えば外部の情報処理装置から入力データとして供給される符号化対象データを待機し、符号化対象データが受信されると、次のステップS234で、受信した符号化対象データが符号化部10に供給されると共に、出力選択部11の一方の選択入力端に入力される。
次のステップS235で、誤り検出部22が、誤り検出符号保持部21に保持される誤り検出符号を用いて、パラメータ保持部12に保持されるパラメータについて誤り検出を行い、誤り検出の結果に基づき、誤りが検出されたか否かを判定する(ステップS236)。
若し、誤りが検出されなかったと判定した場合、誤り検出部22は、誤りが無い旨を示す誤り検出信号をパラメータ選択部24に対して出力し、処理をステップS237に移行させる。パラメータ選択部24では、誤り検出部22から供給された誤り検出信号に応じて、一方の選択入力端が選択される。ステップS237では、パラメータ保持部12に保持されたパラメータが、パラメータ選択部24を介して符号化部10に供給される。
一方、ステップS236で、誤りが検出されたと判定した場合、誤り検出部22は、処理をステップS238に移行させると共に、誤りが有る旨を示す誤り検出信号をパラメータ選択部24に対して出力する。パラメータ選択部24では、誤り検出部22から供給された誤り検出信号に応じて、他方の選択入力端が選択される。
ステップS238で、誤り訂正部23は、ステップS235の誤り検出部22による誤り検出結果に基づき、検出された誤りが誤り検出符号(誤り検出・訂正符号)の持つ誤り訂正能力で誤り訂正可能であるか否かを判定する。
若し、検出された誤りが誤り検出符号の持つ誤り訂正能力で訂正可能であると判定した場合、処理がステップS239に移行される。ステップS239では、誤り訂正部23により、誤り検出符号保持部21に保持される誤り検出符号と、パラメータ保持部12に保持されるパラメータとを用いて誤り訂正が行われる。誤り訂正処理された訂正済みパラメータは、パラメータ選択部24を介して符号化部10に供給されると共に、パラメータ保持部12に供給され、パラメータ保持部12に既に保持されているパラメータに対して上書きして保持される。また、誤り訂正処理された訂正済み検出符号は、誤り検出符号保持部21に供給され、誤り検出符号保持部21に既に保持されているパラメータに対して上書きして保持される。
ステップS237またはステップS239の処理が終了すると、処理がステップS241に移行される、符号化部10により、パラメータ選択部24から供給されたパラメータを用いて、ステップS234で供給された符号化対象データの符号化処理が行われる。このとき、出力選択部11では一方の選択入力端が選択されており、出力選択部11から、符号化対象データがそのまま出力データとして出力される(ステップS242)。この出力選択部11から出力された符号化対象データは、記憶素子50に供給され、記憶される。
次のステップS244で、符号化装置4は、符号化対象データがまだ残っているか否かを判定する。若し、符号化対象データがまだ残っていると判定した場合は、処理がステップS234に戻され、残りの符号化対象データに対して繰り返して処理を行う。
一方、ステップS244で、符号化対象データが残っていないと判定した場合、処理がステップS245に移行され、符号化部10により、所定量の符号化対象に対する符号化処理が完了したことを示す符号化処理完了信号が出力選択部11に対して出力される。出力選択部11は、この符号化処理完了信号に応じて入力端を一方の選択入力端から他方の選択入力端に切り替える。符号化部10で符号化対象データを符号化した符号化データは、出力データとして出力選択部11から出力される。出力選択部11から出力された符号化データは、記憶素子50に供給され、記憶される。その後、処理がステップS233に戻される。
一方、上述のステップS238において、検出された誤りが誤り検出符号の持つ誤り訂正能力で訂正不能であると判定した場合、処理がステップS240に移行される。ステップS240で、誤り訂正部23は、誤り訂正が不能であることを示す誤り訂正不能通知を外部、例えば符号化対象データの供給元の情報処理装置に対して出力する。そして、この図17のフローチャートによる一連の処理を終了させる。例えば、ステップS240で誤り訂正不能通知が出力された時点で符号化部10における符号化処理を終了させ、符号化データを符号化装置4から出力しないようにする。
このように、本第6の実施形態によるメモリシステムでは、符号化部10が符号化処理に用いるパラメータの誤り検出および誤り訂正を行って符号化部10に供給すると共に、パラメータに誤りが検出される毎に当該パラメータの誤り訂正を行い、誤りが訂正されたパラメータでパラメータ保持部12に保持されるパラメータを上書きするようにしている。そのため、符号化データの信頼性が高まり、記憶素子50に記憶されるデータの信頼性も向上できる。
なお、本第6の実施形態においても、ステップS236でパラメータに誤りが検出された場合に、上述の第1の実施形態の第1の変形例で説明したように、ステップS239のパラメータの誤り訂正の前後に符号化処理の停止および再開を行う処理を適用することができる。
同様に、ステップS236でパラメータに誤りが検出された場合に、上述の第1の実施形態の第2の変形例で説明したように、ステップS239のパラメータに誤り訂正の後、符号化対象データを供給する供給元に対して符号化対象データの再供給を要求し、その後、ステップS233で符号化対象データの入力を待機する処理を適用することができる。これは、記憶素子50が例えばNANDフラッシュメモリである場合に、特に好ましい。
(第7の実施形態)
次に、第7の実施形態について説明する。本第7の実施形態は、符号化部10に生成多項式を適用した場合のより具体的な符号化装置の例である。先ず、図18を用いて、生成多項式を適用した符号化装置100について原理的に説明する。図18は、生成多項式G(x)をx8+x7+x6+x4+1とした場合の符号化装置100の一例の構成を示す。
符号化装置100は、生成多項式G(x)の最大次数(この例では8次)の個数分のレジスタ1101、1102、…、1108と、生成多項式G(x)の各次元において、係数が「1」となっている次元のレジスタの入力に配置されるXOR回路1111、1112、1113および1114とを有し、循環構造を持ったシフトレジスタを構成する。符号化対象データは、ビット毎にXOR回路112に入力されてレジスタ1108の出力とでXOR演算されて、XOR回路1114、1113、1112および1111にそれぞれ入力され、各レジスタ1101、1102、…、1108を循環される。
各レジスタ1101、1102、…、1108には、符号化途中結果の値が格納される。所定量の符号化対象データが入力されることで、各レジスタ1101、1102、…、1108から符号化出力が取り出される。
この符号化装置100は、各レジスタ1101、1102、…、1108と、各XOR回路1111、1112、1113および1114との関係が、生成多項式G(x)に従い固定され、生成多項式G(x)=x8+x7+x6+x4+1に専用の構成となっている。したがって、他の生成多項式G(x)に対応する符号化装置が必要な場合には、別途、回路を用意する必要がある。
図19は、本第7の実施形態による符号化装置120の一例の構成を示す。この符号化装置120は、パラメータの設定により異なる生成多項式G(x)を実現することができると共に、パラメータに対する誤り検出および誤り訂正を行うことができる。なお、ここでは、符号化装置120は、BCH符号の符号化を行う最大次数が「8」の符号化装置であるものとする。
図19において、符号化装置120は、レジスタ設定回路130と、誤り検出・訂正回路131と、符号化部300と、パラメータ保持部301と、パラメータ選択部302と、誤り検出符号保持部303とを有する。これらのうち、誤り検出・訂正回路131は、例えば図3の誤り検出部22の機能と誤り訂正部23の機能とを併せ持つ。符号化部300、パラメータ保持部301、パラメータ選択部302および誤り検出符号保持部303は、それぞれ、例えば図3の符号化部10、パラメータ保持部12、パラメータ選択部24および誤り検出符号保持部21に対応する。
符号化部300は、それぞれ対応可能な最大次数の個数分(この例では8個)のレジスタ1360、1361、…、1367と、これら各レジスタ1360、1361、…、1367の間にそれぞれ配置されるXOR回路1371、1372、…、1378と、XOR回路1378を除く各XOR回路1371、1372、…、1377の有効/無効を設定するAND回路1351、1352、…、1357とを有し、循環構造を持ったシフトレジスタを構成する。
符号化対象データは、XOR回路1378に入力されてレジスタ1367の出力とでXOR演算されて各AND回路1351、1352、…、1357の一方の入力端にそれぞれ供給される。各AND回路1351、1352、…、1357の出力が各XOR回路1371、1372、…、1377に供給される。このとき、各AND回路1351、1352、…、1357のうち、他方の入力端に値「0」が入力されたAND回路の出力が入力されるXOR回路は、無効とされ、入力値がそのまま出力に現れる。符号化対象データは、XOR回路1378、ならびに、XOR回路1371、1372、…、1377のうち有効とされているXOR回路で、直前のレジスタの出力とXOR演算がなされ、各レジスタ1360、1361、…、1367を循環される。
各レジスタ1360、1361、…、1367には、符号化途中結果の値が格納される。所定量の符号化対象データが入力されることで、各レジスタ1360、1361、…、1367から符号化データが取り出される。
パラメータ保持部301は、それぞれ次数に対応する最大次数の個数分より1少ない(最大次数が8のこの例では7個になる)のレジスタ1331、1332、…、133を有する。また、誤り検出符号保持部303は、誤り検出符号の各ビットを格納する複数のレジスタ1321、1322、…、1325を有する。
レジスタ設定回路130は、パラメータ保持部301の各レジスタ1331、1332、…、133に格納する各パラメータを生成する。また、レジスタ設定回路130は、誤り検出符号生成部を有し、この各パラメータから誤り検出符号を生成する。レジスタ設定回路130で生成された各パラメータは、各レジスタ1331、1332、…、1337に格納される。また、レジスタ設定回路130で生成された各誤り検出符号は、各レジスタ1321、1322、…、1325に格納される。
パラメータ選択部302は、最大次数の個数分より1少ない数のセレクタ1341、1342、…、1347を有する。各セレクタ1341、1342、…、1347は、一方の選択入力端に対して各レジスタ1331、1332、…、1337の出力がそれぞれ接続される。また、他方の選択入力端に対して、誤り検出・訂正部131から出力された、各次数に対応する訂正済みパラメータがそれぞれ入力される。
符号化部300において、各XOR回路1371、1372、…、1377の一方の入力端には各AND回路1351、1352、…、1357の出力が接続される。なお、最大次数に対応するXOR回路1378は、常に有効である必要があるため、AND回路は接続されない。さらに、各AND回路1351、1352、…、1357の一方の入力端には、XOR回路1378の出力が接続されて符号化対象データが入力され、他方の入力端にはそれぞれセレクタ1341、1342、…、1347の出力が接続される。各セレクタ1341、1342、…、1347は、レジスタ1331、1332、…、1337に格納されたパラメータと、誤り検出・訂正回路131からそれぞれ供給された訂正済みパラメータとのうち何れを用いるかを選択する。
この構成によれば、各セレクタ1341、1342、…、1347の出力に応じて、各XOR回路1371、1372、…、1377の有効/無効を切り替えることができ、生成多項式G(x)の構成を変更することが可能となる。したがって、各レジスタ1331、1332、…、1337に格納された値をパラメータとして、生成多項式G(x)の構成を決定できる。例えば、各レジスタ1331、1332、…、1337には値「0」または値「1」が格納され、値「1」が格納されるレジスタに対応する次元の項からなる生成多項式が構成される。
一方、誤り検出・訂正回路131は、パラメータ保持部301の各レジスタ1331、1332、…、1337に格納された各パラメータと、各レジスタ1321、1322、…、1325に格納された各誤り検出符号とを用いて誤り検出および誤り訂正を行う。誤り訂正された訂正済みパラメータおよび訂正済み検出符号は、レジスタ設定回路130を介して、各レジスタ1331、1332、…、1337、ならびに、各レジスタ1321、1322、…、1325に供給され、上書き保持される。
なお、本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
1,2,3,4,5,6,100,120 符号化装置
10,300 符号化部
11 出力選択部
12,301 パラメータ保持部
20 誤り検出符号生成部
21,303 誤り検出符号保持部
22,32 誤り検出部
23,33 誤り訂正部
24,302 パラメータ選択部
30 ハミング符号生成部
31 ハミング符号保持部
40 パラメータ供給元
41 誤り訂正不能通知受信部
41’ 誤り検出通知受信部
50 記憶素子

Claims (10)

  1. パラメータを保持するパラメータ保持部と、
    前記パラメーから生成した誤り検出符号を保持する誤り検出符号保持部と、
    前記誤り検出符号保持部に保持される前記誤り検出符号を用いて前記パラメータ保持部に保持されるパラメータの誤りを検出する誤り検出部と、
    前記誤り検出部で検出された前記誤りを訂正する誤り訂正部と、
    前記誤り訂正部で誤りを訂正されたパラメータを用いてデータを符号化する符号化部と
    を有する
    ことを特徴とする符号化装置。
  2. 前記誤り検出部は、
    前記誤り検出符号を用いてシンドロームを計算して前記誤りを検出し、
    前記誤り訂正部は、
    前記誤り検出部で計算された前記シンドロームを用いて誤り位置を特定し、特定された該誤り位置に対応する値を反転させることで誤りを訂正する
    ことを特徴とする請求項1に記載の符号化装置。
  3. 前記パラメータは、パラメータ供給部から供給されて前記パラメータ保持部に保持され、
    前記誤り訂正部は、
    前記誤り検出部で前記誤りが検出された場合に、前記パラメータ供給部にパラメータを要求し、要求に応じて得られたパラメータを前記パラメータ保持部に保持させることで前記パラメータの誤りを訂正する
    ことを特徴とする請求項1に記載の符号化装置。
  4. 前記誤り訂正部は、
    前記誤りを訂正したパラメータを前記パラメータ保持部に保持させる
    ことを特徴とする請求項1に記載の符号化装置。
  5. 前記誤り訂正部の誤り訂正能力を超える前記誤りが存在する場合に、誤り訂正不能である旨を通知する通知部をさらに有する
    ことを特徴とする請求項1に記載の符号化装置。
  6. 前記パラメータは、パラメータ供給部から供給されて前記パラメータ保持部に保持され、
    前記通知部は、
    前記パラメータ供給部に対して前記誤り訂正不能である旨を通知する
    ことを特徴とする請求項5に記載の符号化装置。
  7. 前記誤り訂正部は、組み合わせ回路により構成され、
    前記誤り検出部で前記誤りが検出された場合に、前記符号化部による符号化処理を一時停止することなく継続させる
    ことを特徴とする請求項1に記載の符号化装置。
  8. 前記請求項1乃至請求項7の何れか1項に記載の符号化装置と、
    前記符号化部により符号化された前記データを記憶する記憶素子と
    を有する
    ことを特徴とする記憶装置。
  9. 誤り検出部が、パラメータ保持部に保持されるパラメータから生成され誤り検出符号保持部に保持される誤り検出符号を用いて該パラメータ保持部に保持されるパラメータの誤りを検出する誤り検出ステップと、
    誤り訂正部が、前記誤り検出ステップにより検出された前記誤りを訂正する誤り訂正ステップと
    号化部が、前記誤り訂正ステップにより誤りを訂正されたパラメータを用いてデータを符号化する符号化ステップと
    を有する
    ことを特徴とする符号化装置の制御方法。
  10. パラメータを保持するパラメータ保持部と、
    前記パラメータから生成した誤り検出符号を保持する誤り検出符号保持部と、
    前記誤り検出符号保持部に保持される前記誤り検出符号を用いて前記パラメータ保持部に保持されるパラメータの誤りを検出する誤り検出部と、
    前記誤り検出部で前記誤りが検出された場合に、前記誤りを訂正する誤り訂正部と、
    前記誤り検出部で前記誤りが検出された場合には、前記誤り訂正部で誤りを訂正されたパラメータを選択し、前記誤り検出部で前記誤りが検出されない場合に、前記パラメータ保持部が保持するパラメータを選択する選択部と、
    前記選択部で選択されたパラメータを用いてデータを符号化する符号化部と
    を有する
    ことを特徴とする符号化装置。
JP2012066197A 2012-03-22 2012-03-22 符号化装置および符号化装置の制御方法、ならびに、記憶装置 Expired - Fee Related JP5674700B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012066197A JP5674700B2 (ja) 2012-03-22 2012-03-22 符号化装置および符号化装置の制御方法、ならびに、記憶装置
US13/600,929 US9331713B2 (en) 2012-03-22 2012-08-31 Encoding apparatus, control method of encoding apparatus, and memory device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012066197A JP5674700B2 (ja) 2012-03-22 2012-03-22 符号化装置および符号化装置の制御方法、ならびに、記憶装置

Publications (2)

Publication Number Publication Date
JP2013198112A JP2013198112A (ja) 2013-09-30
JP5674700B2 true JP5674700B2 (ja) 2015-02-25

Family

ID=49213502

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012066197A Expired - Fee Related JP5674700B2 (ja) 2012-03-22 2012-03-22 符号化装置および符号化装置の制御方法、ならびに、記憶装置

Country Status (2)

Country Link
US (1) US9331713B2 (ja)
JP (1) JP5674700B2 (ja)

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9031A (en) * 1852-06-15 Improvement in harvesters
JPS5720042A (en) * 1980-07-09 1982-02-02 Matsushita Electric Ind Co Ltd Binary code decoding circuit
JPS6426240A (en) * 1987-07-22 1989-01-27 Fujitsu Ltd Data processor
DE4105860C2 (de) * 1991-02-25 1995-04-20 Broadcast Television Syst Schaltungsanordnung zum Erkennen und Korrigieren von Fehlern in Datenworten
GB2318954B (en) * 1996-10-29 2001-05-23 Daewoo Electronics Co Ltd Reed-solomon decoder for use in advanced television
US6260169B1 (en) * 1998-03-31 2001-07-10 Stmicroelectronics N.V. Device and method for real time correction of row data from DVD media
JP3661089B2 (ja) * 2000-07-11 2005-06-15 株式会社ケンウッド 誤り訂正装置、誤り訂正方法及び記録媒体
US6684363B1 (en) * 2000-10-25 2004-01-27 Sun Microsystems, Inc. Method for detecting errors on parallel links
JP3953397B2 (ja) 2002-09-26 2007-08-08 沖電気工業株式会社 リードソロモン符号化回路およびリードソロモン復号化回路
JP3898682B2 (ja) * 2003-10-03 2007-03-28 株式会社東芝 半導体集積回路
US7822100B2 (en) * 2005-07-28 2010-10-26 Itt Manufacturing Enterprises, Inc. Phase mapping for QPSK/QBL-MSK waveform
JP4791831B2 (ja) * 2006-01-20 2011-10-12 株式会社東芝 半導体記憶装置
JP2008134736A (ja) * 2006-11-27 2008-06-12 Fujifilm Corp 電子機器
JP4621715B2 (ja) * 2007-08-13 2011-01-26 株式会社東芝 メモリ装置
JP4564520B2 (ja) 2007-08-31 2010-10-20 株式会社東芝 半導体記憶装置およびその制御方法
JP4538034B2 (ja) 2007-09-26 2010-09-08 株式会社東芝 半導体記憶装置、及びその制御方法
KR101489827B1 (ko) * 2008-03-25 2015-02-04 삼성전자주식회사 낸드 플래시 메모리와 컨트롤러 간의 효율적인 프로토콜을사용하는 반도체 메모리 장치
US8627169B2 (en) 2008-06-20 2014-01-07 Cadence Design Systems, Inc. Method and apparatus for dynamically configurable multi level error correction
JP5353655B2 (ja) * 2009-11-18 2013-11-27 富士通株式会社 エラー検出・訂正符号生成回路及びその制御方法
JP5017407B2 (ja) 2010-03-24 2012-09-05 株式会社東芝 半導体記憶装置
JP2012128660A (ja) 2010-12-15 2012-07-05 Toshiba Corp 半導体記憶装置
JP5651457B2 (ja) 2010-12-15 2015-01-14 株式会社東芝 半導体記憶装置
JP2013029882A (ja) 2011-07-26 2013-02-07 Toshiba Corp メモリコントローラ、半導体記憶装置および復号方法
TW201346922A (zh) 2012-05-14 2013-11-16 Toshiba Kk 記憶體控制器、記憶裝置及錯誤修正方法

Also Published As

Publication number Publication date
JP2013198112A (ja) 2013-09-30
US20130254637A1 (en) 2013-09-26
US9331713B2 (en) 2016-05-03

Similar Documents

Publication Publication Date Title
TWI465897B (zh) 記憶體模組之錯誤檢查與校正系統以及方法
US11314587B2 (en) Detection and correction of data bit errors using error correction codes
JP4651990B2 (ja) 有限幾何学コードの受信ワードを復号化する方法
US20080052564A1 (en) Error correction circuit and method, and semiconductor memory device including the circuit
TW201722090A (zh) 用於nand快閃記憶體的渦輪乘積碼
TW201319800A (zh) 使用置換子矩陣之總和的總和檢查碼
US8806295B2 (en) Mis-correction and no-correction rates for error control
JP2008165808A (ja) 誤り訂正確率を減らすエラー訂正回路、その方法及び前記回路を備える半導体メモリ装置
US9654147B2 (en) Concatenated error correction device
US8694872B2 (en) Extended bidirectional hamming code for double-error correction and triple-error detection
TW201730765A (zh) 錯誤校正電路和錯誤校正方法
US10291258B2 (en) Error correcting code for correcting single symbol errors and detecting double bit errors
US9960788B2 (en) Memory controller, semiconductor memory device, and control method for semiconductor memory device
US9454426B2 (en) Codes of length tn invariant under rotations of order n
US9836350B2 (en) Joint decoding of rewriting NVM error sectors
US9164831B2 (en) Memory controller, semiconductor storage device, and decoding method
US20190012230A1 (en) Memory device, memory system including the same, and operating method of memory system
US10860415B2 (en) Memory architecture including response manager for error correction circuit
US8694850B1 (en) Fast erasure decoding for product code columns
TWI664637B (zh) 編碼方法和使用此方法的記憶體儲存裝置
US20210083690A1 (en) Memory system and operating method thereof
CN112346903B (zh) 用于执行内建式自我测试的独立磁盘冗余数组译码系统
JP5674700B2 (ja) 符号化装置および符号化装置の制御方法、ならびに、記憶装置
Rohith et al. FPGA Implementation of (15, 7) BCH encoder and decoder for text message
TWI785918B (zh) 記憶體系統

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140129

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140409

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140422

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140611

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141222

R151 Written notification of patent or utility model registration

Ref document number: 5674700

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

LAPS Cancellation because of no payment of annual fees