IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 東芝メモリ株式会社の特許一覧

特開2024-123586演算回路、メモリシステムおよび制御方法
<>
  • 特開-演算回路、メモリシステムおよび制御方法 図1
  • 特開-演算回路、メモリシステムおよび制御方法 図2
  • 特開-演算回路、メモリシステムおよび制御方法 図3
  • 特開-演算回路、メモリシステムおよび制御方法 図4
  • 特開-演算回路、メモリシステムおよび制御方法 図5
  • 特開-演算回路、メモリシステムおよび制御方法 図6
  • 特開-演算回路、メモリシステムおよび制御方法 図7
  • 特開-演算回路、メモリシステムおよび制御方法 図8
  • 特開-演算回路、メモリシステムおよび制御方法 図9
  • 特開-演算回路、メモリシステムおよび制御方法 図10
  • 特開-演算回路、メモリシステムおよび制御方法 図11
  • 特開-演算回路、メモリシステムおよび制御方法 図12
  • 特開-演算回路、メモリシステムおよび制御方法 図13
  • 特開-演算回路、メモリシステムおよび制御方法 図14
  • 特開-演算回路、メモリシステムおよび制御方法 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024123586
(43)【公開日】2024-09-12
(54)【発明の名称】演算回路、メモリシステムおよび制御方法
(51)【国際特許分類】
   H03M 13/15 20060101AFI20240905BHJP
   G06F 11/10 20060101ALI20240905BHJP
   G06F 17/10 20060101ALN20240905BHJP
【FI】
H03M13/15
G06F11/10 648
G06F17/10 M
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023031129
(22)【出願日】2023-03-01
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】國分 直明
(72)【発明者】
【氏名】久保田 貴大
(72)【発明者】
【氏名】近藤 裕樹
【テーマコード(参考)】
5B056
5J065
【Fターム(参考)】
5B056BB74
5J065AC03
5J065AD03
5J065AD11
5J065AG01
5J065AG02
5J065AG04
(57)【要約】
【課題】復号処理などの演算の消費電力を抑制する。
【解決手段】演算回路は、符号長がnビット(nは2以上の整数)である誤り訂正符号に対する誤り位置多項式にp個(pは、1≦p<nを満たす整数)の入力値を代入することにより、誤り位置であるか否かを示すp個の誤り位置情報を計算する代入処理を実行し、誤り位置情報に基づいて、誤り位置多項式の根に基づく1つまたは複数の変数を抽出し、抽出された変数の第1完全対称式を計算し、誤り位置多項式に第1完全対称式を乗じることにより誤り位置多項式を更新し、更新された誤り位置多項式を用いて、代入処理を再度実行する。
【選択図】図2
【特許請求の範囲】
【請求項1】
符号長がnビット(nは2以上の整数)である誤り訂正符号に対する誤り位置多項式にp個(pは、1≦p<nを満たす整数)の入力値を代入することにより、誤り位置であるか否かを示すp個の誤り位置情報を計算する代入処理を実行し、
前記誤り位置情報に基づいて、前記誤り位置多項式の根に基づく1つまたは複数の変数を抽出し、
抽出された前記変数の第1完全対称式を計算し、
前記誤り位置多項式に前記第1完全対称式を乗じることにより前記誤り位置多項式を更新し、
更新された前記誤り位置多項式を用いて、前記代入処理を再度実行する、
演算回路。
【請求項2】
前記演算回路は、前記誤り位置多項式に前記第1完全対称式を乗じることにより、抽出された前記変数と同じ個数分の次数が削減された前記誤り位置多項式を、更新後の前記誤り位置多項式として求める、
請求項1に記載の演算回路。
【請求項3】
前記演算回路は、さらに、
前記誤り位置情報に基づいて、前記変数の逆元を計算し、
前記逆元の第2完全対称式を計算し、
前記誤り位置多項式に前記第2完全対称式を乗じることにより前記誤り位置多項式を更新する、
請求項1に記載の演算回路。
【請求項4】
前記第1完全対称式は、前記誤り位置多項式の1次からt次(tは2以上の整数)の係数のうち、1次からk次(kは、2≦k<tを満たす整数)の係数の更新に用いられる完全対称式であり、
前記第2完全対称式は、前記誤り位置多項式の1次からt次(tは2以上の整数)の係数のうち、(k+1)次からt次の係数の更新に用いられる完全対称式である、
請求項3に記載の演算回路。
【請求項5】
前記演算回路は、
nをpで割った値以上の最小の整数であるCと同じサイクル数分、前記代入処理を繰り返し実行し、
C回のサイクルの前記代入処理のうち、前記誤り位置多項式を更新した後のサイクルに対応する前記代入処理を、更新された前記誤り位置多項式を用いて実行する、
請求項1に記載の演算回路。
【請求項6】
前記演算回路は、p個の前記入力値にそれぞれ対応するp個の論理回路であって、対応する前記入力値を他の前記論理回路と並列に前記誤り位置多項式に入力して前記誤り位置情報を出力するp個の前記論理回路を含む、
請求項1に記載の演算回路。
【請求項7】
誤り訂正符号で符号化されたデータを記憶する不揮発性メモリと、
請求項1に記載の演算回路を備えるメモリコントローラと、を備え、
前記メモリコントローラは、
前記不揮発性メモリから読み出された受信語を用いて、ガロア体の元である複数のシンドロームを計算し、
複数の前記シンドロームに基づく係数を含む前記誤り位置多項式に対して、前記演算回路により前記入力値を代入して前記誤り位置情報を計算し、
計算された前記誤り位置情報が示す誤り位置の誤りを訂正する、
メモリシステム。
【請求項8】
請求項1に記載の演算回路を備えるメモリコントローラで実行される、不揮発性メモリを制御する制御方法であって、
誤り訂正符号で符号化されたデータを前記不揮発性メモリへ記憶し、
前記不揮発性メモリから前記データを受信語として読み出し、
前記不揮発性メモリから読み出された受信語を用いて、ガロア体の元である複数のシンドロームを計算し、
複数の前記シンドロームに基づく係数を含む前記誤り位置多項式に対して、前記演算回路により前記入力値を代入して前記誤り位置情報を計算し、
計算された前記誤り位置情報が示す誤り位置の誤りを訂正する、
ことを含む制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、演算回路、メモリシステムおよび制御方法に関する。
【背景技術】
【0002】
メモリシステムでは、NAND型フラッシュメモリ等のメモリに記憶するデータを保護するために、誤り訂正符号化されたデータがメモリに記憶される。このため、メモリに記憶されたデータを読み出す際には、メモリから読み出された誤り訂正符号化されたデータ(受信語とも称される。)を復号して誤り訂正符号化される前のデータを復元する。
【0003】
誤り訂正符号については、誤り位置多項式を用いた復号技術が知られている。例えば、誤り位置多項式を用いて誤り位置を計算する手法として、チェンサーチが知られている。チェンサーチは、誤り位置多項式に順次値を代入し、誤り位置多項式の出力値が0となる値に基づいて誤り位置を探索する手法である。復号処理の中では、チェンサーチのような誤り位置多項式の根を探索する処理の消費電力の占める割合が大きくなる傾向がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】米国特許第4,868,828号明細書
【特許文献2】米国特許第6,209,115号明細書
【特許文献3】米国特許第4,099,160号明細書
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明の実施形態は、復号処理などの演算の消費電力を抑制することができる演算回路を提供することを目的とする。
【課題を解決するための手段】
【0006】
実施形態の演算回路は、符号長がnビット(nは2以上の整数)である誤り訂正符号に対する誤り位置多項式にp個(pは、1≦p<nを満たす整数)の入力値を代入することにより、誤り位置であるか否かを示すp個の誤り位置情報を計算する代入処理を実行し、誤り位置情報に基づいて、誤り位置多項式の根に基づく1つまたは複数の変数を抽出し、抽出された変数の第1完全対称式を計算し、誤り位置多項式に第1完全対称式を乗じることにより誤り位置多項式を更新し、更新された誤り位置多項式を用いて、代入処理を再度実行する。
【図面の簡単な説明】
【0007】
図1】実施形態に係るメモリシステムのブロック図。
図2】第1の実施形態の復号部のブロック図。
図3】多項式代入部の構成例を示す図。
図4】多項式代入部の構成例を示す図。
図5】電力削減の例を説明するための図。
図6】第1の実施形態の抽出部のブロック図。
図7】第1の実施形態の完全対称式計算部のブロック図。
図8】復号処理のフローチャート。
図9】第2の実施形態の復号部のブロック図。
図10】誤り位置多項式の係数と、残りの誤り数との関係を示す図。
図11】第2の実施形態の抽出部のブロック図。
図12】第2の実施形態の完全対称式計算部のブロック図。
図13】昇順の畳み込みの例を示す図。
図14】降順の畳み込みの例を示す図。
図15】変形例による電力削減の例を説明するための図。
【発明を実施するための形態】
【0008】
以下に添付図面を参照して、この発明にかかる演算回路の好適な実施形態を詳細に説明する。以下では、誤り訂正符号の復号時に誤り位置多項式の根の探索を行う演算回路を含むメモリシステムを例に説明する。演算回路を用いる構成はこの例に限られず、どのようなシステム(装置、機器)であってもよい。
【0009】
(第1の実施形態)
まず、本実施形態に係るメモリシステムについて、図面を参照して詳細に説明する。図1は、本実施形態に係るメモリシステムの概略構成例を示すブロック図である。図1に示すように、メモリシステム1は、メモリコントローラ10と不揮発性メモリ20とを備える。メモリシステム1は、ホスト30と接続可能であり、図1ではホスト30と接続された状態が示されている。ホスト30は、例えば、パーソナルコンピュータ、携帯端末などの電子機器であってよい。
【0010】
不揮発性メモリ20は、データを不揮発に記憶する不揮発性メモリであり、例えば、NAND型フラッシュメモリ(以下、単にNANDメモリという)である。以下の説明では、不揮発性メモリ20としてNANDメモリが用いられた場合を例示するが、不揮発性メモリ20として3次元構造フラッシュメモリ、ReRAM(Resistive Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)等のNANDメモリ以外の記憶装置を用いることも可能である。また、不揮発性メモリ20が半導体メモリであることは必須ではなく、半導体メモリ以外の種々の記憶媒体に対して本実施形態を適用することも可能である。
【0011】
メモリシステム1は、いわゆるSSD(Solid State Drive)や、メモリコントローラ10と不揮発性メモリ20とが1つのパッケージとして構成されるメモリカード等、不揮発性メモリ20を備える種々のメモリシステムであってよい。
【0012】
メモリコントローラ10は、ホスト30からの書込み要求に従って不揮発性メモリ20への書込みを制御する。また、メモリコントローラ10は、ホスト30からの読出し要求に従って不揮発性メモリ20からの読み出しを制御する。メモリコントローラ10は、例えばSoC(System On a Chip)として構成される半導体集積回路である。メモリコントローラ10は、ホストI/F(ホストインタフェース)15、メモリI/F(メモリインタフェース)13、制御部11、符号化/復号部(コーデック)14およびデータバッファ12を備える。ホストI/F15、メモリI/F13、制御部11、符号化/復号部14およびデータバッファ12は、内部バス16で相互に接続されている。以下で説明するメモリコントローラ10の各構成要素の動作の一部または全部は、CPU(Central Processing Unit)がファームウエアを実行することによって実現されてもよいし、ハードウエアで実現されてもよい。
【0013】
ホストI/F15は、ホスト30との間のインタフェース規格に従った処理を実施し、ホスト30から受信した命令、書込み対象のユーザデータなどを内部バス16に出力する。また、ホストI/F15は、不揮発性メモリ20から読み出されて復元されたユーザデータ、制御部11からの応答などをホスト30へ送信する。
【0014】
メモリI/F13は、制御部11の指示に基づいて、不揮発性メモリ20への書込み処理を行う。また、メモリI/F13は、制御部11の指示に基づいて、不揮発性メモリ20からの読み出し処理を行う。
【0015】
制御部11は、メモリシステム1の各構成要素を統括的に制御する。制御部11は、ホスト30からホストI/F15経由で命令を受けた場合に、その命令に従った制御を行う。例えば、制御部11は、ホスト30からの命令に従って、不揮発性メモリ20へのユーザデータおよびパリティの書き込みをメモリI/F13へ指示する。また、制御部11は、ホスト30からの命令に従って、不揮発性メモリ20からのユーザデータおよびパリティの読み出しをメモリI/F13へ指示する。
【0016】
また、制御部11は、ホスト30から書込み要求を受信した場合、データバッファ12に蓄積されるユーザデータに対して、不揮発性メモリ20上の記憶領域(メモリ領域)を決定する。すなわち、制御部11は、ユーザデータの書込み先を管理する。ホスト30から受信したユーザデータの論理アドレスと該ユーザデータが記憶された不揮発性メモリ20上の記憶領域を示す物理アドレスとの対応はアドレス変換テーブルとして記憶される。
【0017】
また、制御部11は、ホスト30から読出し要求を受信した場合、読出し要求により指定された論理アドレスを上述のアドレス変換テーブルを用いて物理アドレスに変換し、該物理アドレスからの読み出しをメモリI/F13へ指示する。
【0018】
NANDメモリでは、一般に、ページと呼ばれるデータ単位で、書き込みおよび読み出しが行われ、ブロックと呼ばれるデータ単位で消去が行われる。本実施形態では、この同一のワード線に接続される複数のメモリセルをメモリセルグループと呼ぶ。メモリセルがシングルレベルセル(SLC:Single Level Cell)である場合は、1つのメモリセルグループが1ページに対応する。メモリセルがマルチレベルセル(MLC:Multiple Level Cell)である場合は、1つのメモリセルグループが複数ページに対応する。なお、本説明において、MLCには、TLC(Triple Level Cell)やQLC(Quad Level Cell)等が含まれる。また、各メモリセルはワード線に接続するとともにビット線にも接続される。従って、各メモリセルは、ワード線を識別するアドレスとビット線を識別するアドレスとで識別することが可能である。
【0019】
データバッファ12は、メモリコントローラ10がホスト30から受信したユーザデータを不揮発性メモリ20へ記憶するまでに一時記憶する。また、データバッファ12は、不揮発性メモリ20から読み出したユーザデータをホスト30へ送信するまでに一時記憶する。データバッファ12には、例えば、SRAM(Static Random Access Memory)やDRAM(Dynamic Random Access Memory)などの汎用メモリを用いることができる。なお、データバッファ12は、メモリコントローラ10に内蔵されずに、メモリコントローラ10の外部に搭載されてもよい。
【0020】
ホスト30から送信されるユーザデータは、内部バス16に転送されてデータバッファ12に一旦記憶される。符号化/復号部14は、不揮発性メモリ20に記憶されるユーザデータを符号化して符号語を生成する。また、符号化/復号部14は、不揮発性メモリ20から読み出された受信語を復号してユーザデータを復元する。そこで符号化/復号部14は、符号化部(Encoder)17と復号部(Decoder)18を備える。なお、符号化/復号部14により符号化されるデータには、ユーザデータ以外にも、メモリコントローラ10内部で用いる制御データ等が含まれてもよい。
【0021】
次に、本実施形態の書込み処理について説明する。制御部11は、不揮発性メモリ20への書込み時に、ユーザデータの符号化を符号化部17に指示する。その際、制御部11は、不揮発性メモリ20における符号語の記憶場所(記憶アドレス)を決定し、決定した記憶場所もメモリI/F13へ指示する。
【0022】
符号化部17は、制御部11からの指示に基づいて、データバッファ12上のユーザデータを符号化して符号語を生成する。符号化方式としては、例えば、BCH(Bose-Chaudhuri-Hocquenghem)符号、および、RS(Reed-Solomon)符号のような代数的符号を用いた符号化方式、並びに、これらの符号を行方向および列方向の成分符号として用いた符号化方式(積符号など)を採用することができる。メモリI/F13は、制御部11から指示された不揮発性メモリ20上の記憶場所へ符号語を記憶する制御を行う。以下では、tビット(tは2以上の整数)以下の誤りを訂正するBCH符号を用いる場合を例に説明する。
【0023】
次に、本実施形態の不揮発性メモリ20からの読出し時の処理について説明する。制御部11は、不揮発性メモリ20からの読出し時に、不揮発性メモリ20上のアドレスを指定してメモリI/F13へ読み出しを指示する。また、制御部11は、復号部18へ復号の開始を指示する。メモリI/F13は、制御部11の指示に従って、不揮発性メモリ20の指定されたアドレスから受信語を読み出し、読み出した受信語を復号部18に入力する。復号部18は、この不揮発性メモリ20から読み出された受信語を復号する。
【0024】
復号部18は、不揮発性メモリ20から読み出された受信語を復号する。復号部18は、例えばPGZ(Peterson Gorenstein Zierler)法、BM(Berlekamp Massey)法、および、ユークリッド法などを用いて誤り位置多項式の計算を実行する。
【0025】
図2は、本実施形態に係る復号部18の構成例を示すブロック図である。図2に示すように、復号部18は、シンドローム計算部101と、誤り位置多項式計算部102と、演算回路としての誤り位置計算部110と、訂正部103と、を備えている。
【0026】
シンドローム計算部101は、不揮発性メモリ20から読み出された受信語(読み出し系列)を用いてシンドロームを計算する。シンドローム計算部101は、従来から用いられているどのような手法によりシンドロームを計算してもよい。すべてのシンドロームの値が0である場合、受信語に誤りがないと判断できるため、復号部18は以降の処理を実行せず、復号処理を終了することができる。
【0027】
誤り位置多項式計算部102は、シンドロームを用いてPGZ法、BM法、および、ユークリッド法などにより誤り位置多項式を計算する。誤り位置多項式の係数の一部は、シンドロームの加算および乗算により計算される。
【0028】
なお、シンドローム、および、シンドロームを用いて計算される係数σは、ガロア体の元である。ガロア体は、2個(mは1以上の整数)の要素を持ち、次数mの原始多項式で特徴づけられる四則演算が定義された集合である。
【0029】
誤り位置計算部110は、誤り位置多項式計算部102により計算された誤り位置多項式を用いて、誤り位置を計算する。誤り位置を計算する処理(探索処理)はどのような手法で実現されてもよいが、例えばチェンサーチを用いることができる。チェンサーチは、誤り位置多項式に順次値を代入し、誤り位置多項式の出力値が0となる値に基づいて誤り位置を探索する手法である。
【0030】
訂正部103は、探索処理により計算された誤り位置のビットを反転(ビットフリップ)させることにより誤り訂正を実行する。
【0031】
次に、誤り位置計算部110の機能の詳細について説明する。チェンサーチによる探索処理では、誤り位置多項式に多数の入力値が順次代入され、誤り位置多項式の出力値が0となる値に基づいて誤り位置が探索されるため、消費電力が大きくなる。本実施形態の誤り位置計算部110は、探索処理の中で、誤り位置多項式の次数を低下させる機能を備える。これにより、探索処理の消費電力を抑制することができる。
【0032】
図2に示すように、誤り位置計算部110は、多項式取得部111と、多項式代入部112と、抽出部113と、完全対称式計算部114と、更新部115と、を備えている。
【0033】
多項式取得部111は、誤り位置多項式計算部102により計算された誤り位置多項式(以下、σ(x)とする)を取得する。
【0034】
多項式代入部112は、誤り位置多項式に入力値を代入し、誤り位置であるか否かを示す誤り位置情報を計算する代入処理を実行する。代入処理は、複数のサイクルに分けて実行される。各サイクルでは、複数の入力値が並列に入力され、誤り位置情報の要素となる複数の出力値が並列に出力される。
【0035】
例えば、入力値の個数をp個(pは、1≦p<nを満たす整数)、誤り訂正符号の符号長をnビット(nは2以上の整数)とすると、と総サイクル数CはC=ceil(n/p)となる。なおceil(x)は、x以上の最小の整数を出力する天井関数である。入力値の個数pは、代入処理の並列度と解釈することができる。
【0036】
代入処理を並列に実行するのは、例えば、復号処理全体のレイテンシを低減させるためである。レイテンシをより低減させるためには、pの値をより大きくし、総サイクル数Cの値をより小さくすることが望ましい。
【0037】
次に、代入処理を並列化した多項式代入部112の構成例について説明する。図3は、多項式代入部112の構成例を示す図である。また、図3は、代入処理の消費電力への影響を模式的に示している。図3の左部は、最大訂正ビット数がtである誤り位置多項式の係数を記憶するレジスタ351の例を示す。
【0038】
誤り位置多項式は、受信語に含まれる誤りの個数(誤り数)に応じた次数の多項式となる。例えば、誤り数が1個~t個の場合、1次~t次の誤り位置多項式がそれぞれ用いられる。t次の誤り位置多項式の係数をσ,σ,・・・,σt-1,σとする。s次(sは、0≦s<tを満たす整数)の誤り位置多項式が用いられる場合は、s次より大きい次数の係数であるσs+1からσの値は0となる。
【0039】
レジスタ351は、係数σ,σ,・・・,σt-1,σの値を順に記憶するものとする。この場合、レジスタ351では、誤り数に応じた次数までの係数の値が0以外(非ゼロ)となり、誤り数より大きい次数の係数の値が0(ゼロ)となる。例えば、図3のレジスタに含まれる領域352は、値が0となる係数を記憶する領域に相当する。
【0040】
図3の中央部に示すように、多項式代入部112は、レジスタ351に記憶された係数を用いて、誤り位置多項式に対する代入処理を並列に実行するように構成される。すなわち、多項式代入部112は、p個の入力値のうちいずれか1つを誤り位置多項式に並列に入力して誤り位置情報を出力するp個の論理回路301-1~301-pを含む。
【0041】
論理回路301-1~301-pは、入力値が異なる以外は同様の機能を備えるため、区別する必要がない場合は単に論理回路301という。論理回路301は、例えば、値が0以外である係数に対する演算では電力を消費し、値が0である係数に対する演算では電力の消費が抑制されるように構成される。図3では、論理回路301のうち電力を消費する領域が「活性」と表され、電力の消費が抑制される領域が「不活性」と表されている。このように、誤り数が少ないほど、すなわち、誤り位置多項式の次数が少ないほど、論理回路301の不活性領域が大きくなり、この結果、消費電力が抑制される。
【0042】
本実施形態のメモリシステム1は、誤り数(誤り位置多項式の次数)が少なくなるほど不活性領域が増加することに着目し、不活性領域を増加させるように誤り位置多項式の次数を減少させる機能を備える。
【0043】
図3の右部は、多項式代入部112により出力される誤り位置情報の例を示す。図3では、4サイクル分の誤り位置情報が出力される例が示されている。点線で囲んだ情報が、各サイクルで出力される誤り位置情報に相当する。誤り位置情報の要素のうち値が1となる位置が誤り位置に相当する。例えば、1サイクル目では、p個の入力値のうち、1番目の入力値に相当する位置が誤り位置として出力される。
【0044】
ここで、並列化された代入処理の具体例について説明する。図4は、代入処理を並列化した多項式代入部400の構成例を示す図である。多項式代入部400は、多項式代入部112と同様の機能を備えるが、入力される誤り位置多項式の更新方法が、多項式代入部112と異なる。すなわち、図4では、本実施形態の更新部115とは異なる方法で、誤り位置多項式が更新される。
【0045】
レジスタ451-0~451-t、および、乗算器452-1~452-tは、このような誤り位置多項式の更新のために用いられる要素である。
【0046】
レジスタ451-0~451-tは、誤り位置多項式の各係数σ,σ,・・・,σt-1,σに基づくmビット表現のガロア体の元をそれぞれ記憶するレジスタである。
【0047】
多項式代入部400の論理回路301-1~301-pは、誤り位置多項式σ(x)に、x=α(qは1≦q≦pを満たす整数)を代入するための回路である。αが入力値に相当する。αは、ガロア体の原始多項式の根である原始元を表す。これらp個の代入する値は代表例であり、符号長などの設定に応じて変更してもよい。
【0048】
乗算器402-1~402-tは、レジスタ451-1~451-tからそれぞれ入力された値に、α~αを乗算する。なおレジスタ451-0から入力された値に対する乗算は不要のため、入力された値がそのまま加算器403に出力される。
【0049】
加算器403は、レジスタ451-0から入力された値、および、乗算器402-1~402-tそれぞれの出力を加算する。演算器404は、加算器403の出力が0である場合に1を出力し、1である場合に0を出力する。
【0050】
論理回路301-2~論理回路301-pは、論理回路301-1のαをそれぞれα~αに置き換えた値を用いる点が、論理回路301-1と異なっている。
【0051】
乗算器452-1~452-tは、次のサイクルで用いられる係数であって、pに相当する分シフトさせた係数を求めるための乗算を行う。例えば乗算器452-1は、レジスタ451-1に記憶された値にαを乗算する。乗算結果は、次のサイクルで用いる係数の値としてレジスタ451-1に記憶される。
【0052】
本実施形態の多項式代入部112の論理回路301-1~301-pは、図4の論理回路301-1~301-pと同様の構成とすることができる。
【0053】
なお、図2で多項式代入部112に入力されるσ[c](x)は、cサイクル目(cは、1≦c≦Cを満たす整数)に入力される誤り位置多項式を意味する。誤り位置多項式は、(t+1)個の係数σ,σ,・・・,σt-1,σで表される。また、各係数は、上記のように、2個の要素を持つガロア体の元であり、m次ベクトルで表される。図2の「(t+1)×m」は、多項式代入部112に入力されるデータのサイズを表す。
【0054】
多項式代入部112は、図3に示すように、p個の要素を含むベクトルで表される誤り位置情報を各サイクルで出力する。
【0055】
図2に戻り、抽出部113は、多項式代入部112から出力された誤り位置情報に基づいて、誤り位置多項式の根に基づく1つまたは複数の変数を抽出する。以下では、抽出部113が1つまたは2つの変数を抽出する構成例を説明する。3つ以上の変数を抽出する構成も可能であるが、誤り位置多項式の更新までの処理が1サイクル内で完了しない場合がある。この場合は、後述する変形例が適用されてもよい。抽出部113の詳細は後述する。
【0056】
完全対称式計算部114は、抽出された変数の完全対称式(第1完全対称式)を計算する。更新部115は、誤り位置多項式に完全対称式を乗じることにより誤り位置多項式を更新する。誤り位置多項式に完全対称式を乗じることで、誤り位置多項式の次数が低減される。完全対称式の計算方法、および、完全対称式による誤り位置多項式の更新処理の詳細については後述する。
【0057】
図5は、誤り位置多項式の次数が低減されることによる電力削減の例を説明するための図である。図5は、誤り訂正符号の符号長nが4×p(4サイクルの代入処理、並列度はp)、最大訂正ビット数tが8、誤り数が8である場合の例を示す。変数X~Xは、代入処理により得られる8個の根に基づく変数を表す。後述するように、根に基づく変数は、例えば根の逆元であり、誤りロケータとも称される。また、図5は、各サイクルでそれぞれ根に基づく変数が2つずつ得られる例を示す。
【0058】
図5の左部は、次数を低減しない比較例による処理を示す。例えば、左部は、次数を低減せずに誤り位置多項式が更新される図4のような方法を適用した場合の例に相当する。比較例では、各サイクルで8次の誤り位置多項式が用いられる。このため、いずれのサイクルでも図3で説明したような不活性領域は生じず、消費電力は抑制されない。
【0059】
図5の右部は、本実施形態により次数を低減するように構成する場合の処理を示す。例えば1サイクル目では、8次の誤り位置多項式に対する代入処理により、2つの変数X、Xが得られる。後述するように、本実施形態では、2つの根が得られた場合、これらの2つの根に基づく変数を用いて計算される完全対称式により、誤り位置多項式の次数が2低減される。このため、次の2サイクル目では、6次の誤り位置多項式が用いられる。従って、低減された7次および8次の係数の値は0となり、不活性領域501が生じる。同様にして、3サイクル目および4サイクル目では、それぞれ不活性領域502および503が生じる。
【0060】
このように、本実施形態では、複数サイクルに分けて代入処理を実行するときに、あるサイクルで求められた根を用いて、その後のサイクルで用いる誤り位置多項式の次数を低減させることができる。これにより、復号処理などに用いる演算回路の消費電力を抑制することが可能となる。
【0061】
なお、抽出部113が1つまたは2つの変数を抽出する構成では、1つのサイクル内に3つ以上の根が存在する場合であっても、2つまでの変数が抽出される。また、1つのサイクル内に根が存在しない場合には、変数は抽出されない。
【0062】
次に、抽出部113の機能の詳細について説明する。図6は、抽出部113の構成例を示すブロック図である。図6に示すように、抽出部113は、順序反転部601と、プライオリティエンコーダ(Priority Encoder)602a、602bと、ルックアップテーブル(LUT)603a、603bと、を備えている。
【0063】
順序反転部601は、多項式代入部112から入力される誤り位置情報の各要素の順序を反転させる。誤り位置情報は、例えば図3に示すように、0または1の値をとる要素をp個含むベクトル(p次ベクトル)である。順序反転部601は、このベクトルの各要素の順序を反転させたベクトルを生成して出力する。
【0064】
プライオリティエンコーダ602aは、p次ベクトルを入力し、q次ベクトルであるaminと、p次ベクトルに1が含まれるか否かを示す情報νと、を出力する。qは、例えば、q=ceil(logp)により求められる。プライオリティエンコーダ602bは、p次ベクトルを入力し、q次ベクトルであるamaxと、p次ベクトルに1が含まれるか否かを示す情報νと、を出力する。
【0065】
一般にプライオリティエンコーダは、入力されるベクトル(以下、入力ベクトル)の要素のうち、要素値が特定値(例えば1)である要素のアドレスの最小値を出力する機能であると解釈することができる。アドレスは、例えば最初の要素を0とし1ずつ加算される。16ビットの要素を含む入力ベクトルIn=(0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0)が入力され、特定値が1である場合を考える。この場合、要素値が1であるアドレスは、{3,6,7,11}の4つである。これらのアドレスのうち最小値は3である。プライオリティエンコーダは、この値3を示す4(=ceil(log16))ビットのベクトル(0,0,1,1)を出力する。入力ベクトルを反転させてプライオリティエンコーダに入力すれば、要素値が特定値である要素のアドレスの最大値を得ることができる。
【0066】
プライオリティエンコーダ602aを用いることで、p次ベクトルに含まれる値が1である要素のうち、最初に出現する要素のアドレスaminが抽出される。また、反転させたp次ベクトルと、プライオリティエンコーダ602bとを用いることで、p次ベクトルに含まれる値が1である要素のうち、最後に出現する要素のアドレスamaxが抽出される。
【0067】
LUT603aは、aminに対応する変数(誤りロケータ)を記述する対応情報である。LUT603bは、amaxに対応する変数を記述する対応情報である。抽出部113は、LUT603aを用いて、aminに対応する変数Xを求めて出力する。また抽出部113は、LUT603bを用いて、amaxに対応する変数Xを求めて出力する。なお、根が1つの場合、変数Xと変数Xとは同じ値となる。根が2つの場合、変数Xと変数Xとは異なる値となる。
【0068】
なお、図6に示す抽出部113の構成は一例であり、これに限られない。誤り位置情報を用いて、誤り位置多項式の根に基づく変数(誤りロケータ)を求める方法であれば、どのような方法が用いられてもよい。
【0069】
次に、完全対称式計算部114の機能の詳細について説明する。まず、完全対称式と、誤り位置多項式の次数と、の関係について説明する。
【0070】
誤り数がs(ここでは、sは1≦s≦tを満たす整数)の場合の誤り位置多項式は、以下の(1)式のように定義される。
【数1】
【0071】
(1)式のX~Xsは、誤りロケータ(根に基づく変数)に相当する。(1)式に示すように、誤り位置多項式の根は、誤りロケータの逆元となる。誤り位置多項式の根のうち、2つの根X -1およびX -1が得られたとする。この場合、(1)式は、以下の(2)式のように書き換えられる。(2)式の右辺はX~Xを含む次数が2つ低減された誤り位置多項式σ<s-2>(x)と、既知の誤りロケータXとXによる基本対称式の母関数e<2>(x)との積である。
【数2】
【0072】
(2)式の両辺に、誤りロケータX、Xの完全対称式の母関数を表す以下の(3)式を乗じると、以下の(4)式が得られる。
【数3】
【数4】
【0073】
(4)式に示すように、誤り位置多項式σ<s>(x)に、2つの根に基づく変数(誤りロケータX、X)の完全対称式の母関数を乗じることで、次数が2つ低減された誤り位置多項式σ<s-2>(x)が得られる。
【0074】
なお、(4)式の両辺のxの係数を抜き出すことにより、以下の(5)式に示す関係式が得られる。h<2> i-jは、(i-j)次の完全対称式を表す。以下では、h<s> は、根がs個の場合のi次の完全対称式を表す。
【数5】
【0075】
(5)式は、(4)式に示される多項式の乗算が多項式の係数の畳み込みに相当することを示す、と解釈することができる。
【0076】
図7は、完全対称式計算部114の構成例を示すブロック図である。完全対称式計算部114は、情報ν、ν、および、変数X、Xを入力し、変数X、Xの完全対称式を計算して出力する。
【0077】
セレクタ701は、情報ν、νが共に0であるか否かに応じて、計算式711の出力、および、セレクタ702の出力のいずれかを選択して出力する。セレクタ702は、変数XとXとが等しいか否かに応じて、計算式712の出力、および、計算式713の出力のいずれかを選択して出力する。
【0078】
例えば、情報ν、νが共に0の場合、根が存在しない場合に相当するため、セレクタ701は、計算式711に示す計算の結果を、1次~3次の完全対称式h~hとして出力する。
【0079】
情報ν、νが共に0でなく、変数XとXとが等しい場合、1つの根が存在する場合に相当するため、セレクタ701およびセレクタ702は、計算式712に示す計算の結果を、1次~3次の完全対称式h~hとして出力する。
【0080】
情報ν、νが共に0でなく、変数XとXとが等しくない場合、2つの根が存在する場合に相当するため、セレクタ701およびセレクタ702は、計算式713に示す計算の結果を、1次~3次の完全対称式h~hとして出力する。
【0081】
なお図7では、3次までの完全対称式の例が示されているが、4次から(t-1)次の完全対称式h~ht-1も同様の手順で計算される。
【0082】
次に、更新部115による誤り位置多項式の更新処理の詳細について説明する。例えば、更新部115は、完全対称式計算部114により計算された完全対称式を用いて、以下の(6)式で表されるcサイクル目の誤り位置多項式σ[c](x)を、以下の(7)式で表される誤り位置多項式σ[c+1](x)に更新する。
【数6】
【数7】
【0083】
このように、誤り位置多項式に完全対称式を乗じることにより、誤り位置多項式の根(誤りロケータ)と同じ個数分の次数が削減された誤り位置多項式を、更新後の誤り位置多項式として求めることができる。
【0084】
この後、多項式代入部112は、更新された誤り位置多項式を用いて、次のサイクルの代入処理として、上記の代入処理を再度実行する。誤り位置計算部110は、最後のサイクルの処理が完了するまで、多項式代入部112、抽出部113、完全対称式計算部114、および、更新部115による処理を繰り返し実行する。
【0085】
訂正部103は、誤り位置計算部110の各サイクルの代入処理で得られた誤り位置情報を用いて、誤り位置情報が示す誤り位置のビットを反転させることにより誤り訂正を実行する。
【0086】
次に、メモリシステム1による復号処理の流れについて説明する。図8は、本実施形態における復号処理の一例を示すフローチャートである。
【0087】
制御部11は、不揮発性メモリ20から、誤り訂正符号を読み出し、受信語を得る(ステップS101)。また、制御部11は、復号部18へ復号の開始を指示する。
【0088】
復号部18のシンドローム計算部101は、受信語からシンドロームを計算する(ステップS102)。復号部18は、計算されたすべてのシンドロームの値が0であるか否かを判定する(ステップS103)。
【0089】
すべてのシンドロームが0である場合(ステップS103:Yes)、受信語に誤りがないと判断できるため、復号部18は、復号処理を終了する。すべてのシンドロームが0でない場合(ステップS103:No)、誤り位置多項式計算部102は、シンドロームを用いて誤り位置多項式を計算する(ステップS104)。
【0090】
誤り位置計算部110は、計算された誤り位置多項式により、誤り位置を探索する(ステップS105)。訂正部103は、探索により求められた誤り位置のビットを反転(ビットフリップ)することにより誤りを訂正し(ステップS106)、復号処理を終了する。
【0091】
以上のように、本実施形態は、チェンサーチなどによる誤り位置多項式の根の探索処理の中で、誤り位置多項式の次数を低下させる。これにより、次数の低下に応じて回路の不活性領域を発生させることができ、この結果、探索処理の消費電力を抑制することができる。
【0092】
なお、本実施形態は、例えば、レイテンシの低減のために並列度が大きく設定され、かつ、最大訂正ビット数が中程度(例えば5~12ビット)である場合に適している。
【0093】
(第2の実施形態)
第2の実施形態は、誤り位置多項式の更新をより効率的に実行する。なお、第2の実施形態では、復号部の機能が第1の実施形態と異なっている。以下では、第2の実施形態の復号部18-2の詳細について説明する。
【0094】
図9は、本実施形態に係る復号部18-2の構成例を示すブロック図である。図9に示すように、復号部18-2は、シンドローム計算部101と、誤り位置多項式計算部102と、誤り位置計算部110-2と、訂正部103と、を備えている。誤り位置計算部110-2以外の各部の機能は、第1の実施形態と同様であるため同一の符号を付し説明を省略する。
【0095】
誤り位置計算部110-2は、多項式取得部111と、多項式代入部112と、抽出部113-2と、完全対称式計算部114-2と、更新部115-2と、を備えている。多項式取得部111および多項式代入部112の機能は、第1の実施形態と同様であるため同一の符号を付し説明を省略する。
【0096】
抽出部113-2は、1つまたは複数の変数の逆元をさらに抽出する点が、第1の実施形態の抽出部113と異なる。図9では、2つの変数X、Xに対応する2つの逆元X -1、X -1が示されている。
【0097】
完全対称式計算部114-2は、抽出された逆元の完全対称式(第2完全対称式)をさらに計算する点が、第1の実施形態の完全対称式計算部114と異なる。以下では、変数の完全対称式を完全対称式SP-Aと称し、変数の逆元の完全対称式を完全対称式SP-Bと称する場合がある。
【0098】
完全対称式計算部114-2は、完全対称式SP-Aを、1次からk次(kは、2≦k<tを満たす整数)の係数の更新に用いられる完全対称式として計算し、完全対称式SP-Bを、(k+1)次からt次の係数の更新に用いられる完全対称式として計算する。
【0099】
例えば完全対称式計算部114-2は、以下の(8)式により完全対称式SP-Aを計算し、以下の(9)式により完全対称式SP-Bを計算する。この例では、kは「(t-1)/2以下の最大の整数」により計算される。例えばt=8の場合、kは3である。
【数8】
【数9】
【0100】
tが偶数の場合、(8)式は、1からkまで昇順に増加する次数の完全対称式を計算する式に相当する。一方、(9)式は、tから(k+1)まで降順に減少する次数の完全対称式を計算する式に相当する。tが奇数の場合、k未満は(8)式で昇順に、kより大きい場合は(9)式で降順に計算する。kについては(8)式で昇順に計算しても、(9)式で降順に計算しても、どちらも同じ結果が得られる。
【0101】
更新部115-2は、完全対称式SP-Aおよび完全対称式SP-Bを用いて、誤り位置多項式を更新する。以下では、完全対称式SP-Aを用いた誤り位置多項式の更新を、昇順の畳み込みといい、完全対称式SP-Bを用いた誤り位置多項式の更新を、降順の畳み込みという場合がある。
【0102】
なお、第1の実施形態は、1からtまでの昇順の畳み込みにより更新を行う例と解釈することができる。これに対して本実施形態は、昇順および降順の両方向の畳み込みにより更新を行う例に相当する。以下に、降順の畳み込みについて説明する。
【0103】
上記の(2)式の両辺にxを乗じ、かつ、xをx-1に置き換える変換を行う。これにより、左辺は、以下の(10)式に書き換えられ、右辺は、以下の(11)式に書き換えられる。
【数10】
【数11】
【0104】
(10)式および(11)式それぞれに、誤りロケータX、Xの逆元X -1、X -1の完全対称式の母関数を表す以下の(12)式を乗じ、さらに、(-1) -1 -1乗じると、以下の(13)式が得られる。
【数12】
【数13】
【0105】
(13)式に示すように、誤り位置多項式σ<s>(x-1)に、誤りロケータX、Xの逆元の完全対称式を乗じることで、次数が2つ低減された誤り位置多項式σ<s-2>(x-1)が得られる。
【0106】
(13)式の左辺および右辺は、それぞれ以下の(14)式および(15)式のように書き換えられる。なお、(14)式内のhの上部にバーが付された値は、以下の(16)式により定義される。
【数14】
【数15】
【数16】
【0107】
(13)式の両辺、すなわち、(14)式および(15)式のxの係数を抜き出すことにより、降順の畳み込みを示す式として以下の(17)式が得られる。
【数17】
【0108】
次に、両方向の畳み込みによる計算量の削減について説明する。図10は、誤り位置多項式の係数と、残りの誤り数との関係を示す図である。この図は基本対称式が従う漸化式を図示したものに相当する。
【0109】
例えば1行目のσ <0>は、誤り数が0である誤り位置多項式(0次の誤り位置多項式)の係数に相当する。2行目のσ <1>およびσ <1>は、誤り数が1(誤りロケータはX)である1次の誤り位置多項式の0次および1次の係数にそれぞれ相当する。矢印は、矢の起点にある値から矢の先端にある値へ加算の寄与があることを表す。例えばσ <2>は、σ <1>とσ <1>で構成される。σ <1>が起点となる右下に向かう矢印では、矢の起点にある値は、誤りロケータXが乗算された上で加算に参加する。σ1 <1>が起点となる左下に向かう矢印では、矢の起点にある値は、1が乗算された上で加算に参加する。従って、σ <2>は、Xσ <1>とσ <1>の加算であることを示す。
【0110】
図10の最下行(4行目)は、残りの誤り数が4である場合の係数に相当する。誤り数が4である状態は、σ <4>、σ <4>、σ <4>、σ <4>、σ <4>、の5つの係数の値(ガロア体の値)が存在する状態に相当する。畳み込みは、これらの係数を用いて実行される。
【0111】
本実施形態で実行される畳み込みは、ある行の誤り位置多項式から、抽出された誤りロケータに対応する次数の多項式を取り除いて、当該行より上の行の、次数の少ない誤り位置多項式を得ることに相当する。例えば図10の最下行の状態から、誤りロケータX、Xに対応する次数の多項式が取り除かれて、2行目の誤り位置多項式が得られる。
【0112】
昇順の畳み込みで2行目の誤り位置多項式の係数σ <2>を求める場合は、例えば以下の(18)式を用いることができる。この場合、3つの完全対称式h <2>、h <2>、および、h <2>の計算が必要となる。
【数18】
【0113】
一方、降順の畳み込みで係数σ <2>を求める場合は、例えば以下の(19)式を用いることができる。この場合、1つの完全対称式(h <2>のhの上部にバーが付された値)のみの計算が必要となる。2行目の(2次の)誤り位置多項式の次数のうち大きい次数の係数σ <2>は、4行目の(4次の)誤り位置多項式の次数うち小さい次数ではなく、大きい次数の係数を元に更新する方が、必要な完全対称式の個数を少なくすることができる。
【0114】
そこで本実施形態では、例えば次数の小さい係数は昇順の畳み込みを行い、次数の大きい係数は降順の畳み込みを行う。このように、昇順のみでなく、昇順および降順の畳み込みを組み合わせることにより、全体としての計算量を抑制することができる。
【数19】
【0115】
なお、降順の畳み込みでは、誤りロケータの逆元(X -1、X -1など)の計算が必要となる。逆元は例えばルックアップテーブル(LUT)により求められるが、後述するように、このLUTのサイズは符号長nではなく、並列度pとすることができる。従って、LUTのサイズが過大となることを抑制できる。
【0116】
次に、抽出部113-2の詳細について説明する。図11は、抽出部113-2の構成例を示すブロック図である。図11に示すように、抽出部113-2は、順序反転部601と、プライオリティエンコーダ602a、602bと、LUT603a、603b、603-2c、603-2dと、を備えている。
【0117】
本実施形態の抽出部113-2は、LUT603-2c、603-2dをさらに備える点が、第1の実施形態の抽出部113と異なっている。その他の構成は抽出部113と同様であるため同一の符号を付し説明を省略する。
【0118】
LUT603-2cは、aminに対応する変数の逆元を記述する対応情報である。LUT603-2dは、amaxに対応する変数の逆元を記述する対応情報である。抽出部113-2は、LUT603-2cを用いて、aminに対応する逆元X -1を求めて出力する。また抽出部113-2は、LUT603-2dを用いて、amaxに対応する逆元X -1を求めて出力する。
【0119】
各LUTのサイズは、符号長nではなく、p次ベクトルの要素数(=p)分のサイズとなる。従って、本実施形態では、逆元のためのLUT603-2c、603-2dが必要となるが、全体として必要となるLUTのサイズが過大となることを回避できる。
【0120】
次に、完全対称式計算部114-2の詳細について説明する。図12は、完全対称式計算部114-2の構成例を示すブロック図である。完全対称式計算部114-2は、情報ν、ν、変数X、X、および、逆元X -1、X -1を入力し、変数X、Xの完全対称式SP-Aと、逆元X -1、X -1の完全対称式SP-Bと、を計算して出力する。
【0121】
完全対称式SP-Aを計算するために用いられる計算式711~713、および、セレクタ701、702は第1の実施形態(図7)と同様であるため説明を省略する。
【0122】
セレクタ1201は、情報ν、νが共に0であるか否かに応じて、計算式1211の出力、および、セレクタ1202の出力のいずれかを選択して出力する。セレクタ1202は、逆元X -1とX -1とが等しいか否かに応じて、計算式1212の出力、および、計算式1213の出力のいずれかを選択して出力する。
【0123】
例えば、情報ν、νが共に0の場合、根が存在しない場合に相当するため、セレクタ1201は、計算式1211に示す計算の結果を完全対称式SP-Bとして出力する。
【0124】
情報ν、νが共に0でなく、逆元X -1とX -1とが等しい場合、1つの根が存在する場合に相当するため、セレクタ1201およびセレクタ1202は、計算式1212に示す計算の結果を、完全対称式SP-Bとして出力する。
【0125】
情報ν、νが共に0でなく、逆元X -1とX -1とが等しくない場合、2つの根が存在する場合に相当するため、セレクタ1201およびセレクタ1202は、計算式1213に示す計算の結果を、完全対称式SP-Bとして出力する。
【0126】
次に、更新部115-2による誤り位置多項式の更新処理の詳細について説明する。以下では、最大訂正ビット数tが8である場合を例に説明する。この場合の誤り位置多項式は、以下の(20)式により表される。
【数20】
【0127】
更新部115-2は、例えば、0次から3次までの係数σ~σを、昇順の畳み込みで計算し、4次から8次までの係数σ~σを、降順の畳み込みで計算する。
【0128】
図13は、昇順の畳み込みの例を示す図である。昇順の畳み込みでは、更新部115-2は、図13に示される行列演算により、0次から3次までの係数を更新する。また、更新部115-2は、並列度pを用いた固定の乗算により、次のサイクルで用いられる係数を計算する。
【0129】
図14は、降順の畳み込みの例を示す図である。sは、更新部115-2に入力された誤り位置多項式の次数を表す。eは現在のサイクルでの完全対称式が含む根の個数を表す。
【0130】
降順の畳み込みでは、更新部115-2は、行列演算の前後で、図14に示す係数の反転とシフトを実行する。図14では、4次から8次までの係数を反転およびシフトした係数はσ´~σ´と表されている。更新部115-2は、図14に示される行列演算により、係数σ´~σ´を更新する。更新部115-2は、並列度pを用いた固定の乗算により、次のサイクルで用いられる係数を計算するとともに、誤り位置多項式の次数sを更新する。
【0131】
(変形例)
これまでは、次のサイクルを開始するまでに、当該サイクルで用いる誤り位置多項式の更新が完了していることを前提としていた。例えば図5は、4サイクルのうち1サイクルから3サイクルで、それぞれ完全対称式を計算して誤り位置多項式を更新する例を示している。
【0132】
一方、次のサイクルまでに誤り位置多項式の更新が完了しない場合も考えられる。変形例の誤り位置計算部は、このような計算の遅延を考慮し、誤り位置多項式の更新が完了した後のサイクルで、更新された誤り位置多項式を用いた代入処理を実行する。
【0133】
図15は、変形例による電力削減の例を説明するための図である。図15は、1サイクル目で得られた2つの誤りロケータを用いた誤り位置多項式の更新が、2サイクル目で完了する例を示す。この結果、3サイクル目で次数を2つ低減した6次の誤り位置多項式を用いた代入処理が実行される。同様に、2サイクル目で得られた2つの誤りロケータを用いた誤り位置多項式の更新は、3サイクル目で完了し、4サイクル目で次数をさらに2つ低減した4次の誤り位置多項式を用いた代入処理が実行される。この結果、変形例では、2つの不活性領域1501、1502を生じさせることができる。
【0134】
以上説明したとおり、本実施形態によれば、復号処理などの演算の消費電力を抑制することができる。
【0135】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0136】
1 メモリシステム
10 メモリコントローラ
11 制御部
12 データバッファ
13 メモリI/F
14 符号化/復号部
15 ホストI/F
16 内部バス
17 符号化部
18 復号部
20 不揮発性メモリ
30 ホスト
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15