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

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

▶ チャンシン メモリー テクノロジーズ インコーポレイテッドの特許一覧

<>
  • 特許-誤り訂正システム 図1
  • 特許-誤り訂正システム 図2
  • 特許-誤り訂正システム 図3
  • 特許-誤り訂正システム 図4
  • 特許-誤り訂正システム 図5
  • 特許-誤り訂正システム 図6
  • 特許-誤り訂正システム 図7
  • 特許-誤り訂正システム 図8
  • 特許-誤り訂正システム 図9
  • 特許-誤り訂正システム 図10
  • 特許-誤り訂正システム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-04
(45)【発行日】2023-09-12
(54)【発明の名称】誤り訂正システム
(51)【国際特許分類】
   G06F 11/10 20060101AFI20230905BHJP
【FI】
G06F11/10 648
【請求項の数】 15
(21)【出願番号】P 2022538835
(86)(22)【出願日】2021-08-09
(65)【公表番号】
(43)【公表日】2023-03-30
(86)【国際出願番号】 CN2021111492
(87)【国際公開番号】W WO2022151724
(87)【国際公開日】2022-07-21
【審査請求日】2022-06-22
(31)【優先権主張番号】202110049134.2
(32)【優先日】2021-01-14
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】522246670
【氏名又は名称】チャンシン メモリー テクノロジーズ インコーポレイテッド
【氏名又は名称原語表記】CHANGXIN MEMORY TECHNOLOGIES,INC.
(74)【代理人】
【識別番号】100205659
【弁理士】
【氏名又は名称】齋藤 拓也
(74)【代理人】
【識別番号】100185269
【弁理士】
【氏名又は名称】小菅 一弘
(72)【発明者】
【氏名】ジー カンリン
【審査官】田中 幸雄
(56)【参考文献】
【文献】特開2012-22422(JP,A)
【文献】特開2010-79485(JP,A)
【文献】米国特許出願公開第2011/0239082(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/10
(57)【特許請求の範囲】
【請求項1】
誤り訂正システムであって、前記誤り訂正システムは、記憶システムに適用され、前記記憶システムは、読み書き操作中において複数のデータを書き込み又は読み取り、前記複数のデータはMバイトに分割され、各前記バイトはN個の異なるビットのデータを有し、前記記憶システムは、符号化段階及び復号段階があり、前記復号段階で、前記誤り訂正システムは前記記憶システムに基づいてX個の第1演算コード及びY個の第2演算コードを生成し、前記第1演算コードはN個のデータに対して誤り検出及び/又は誤り訂正を行うために用いられ、前記第2演算コードはMバイトに対して誤り検出及び/又は誤り訂正を行うために用いられ、前記誤り訂正システムは、M個の復号ユニットを含み、
各前記復号ユニットは1つの前記バイトに対応し、X個の前記第1演算コード及びY個の前記第2演算コードを復号処理することで、前記バイトに誤りデータがあるか否かを確認して誤りデータのビットを特定するように構成され、前記復号ユニットは、デコーダ、第1アンドゲートユニット、ノアゲートユニット、及びN個の第2アンドゲートユニットを含み、
前記デコーダは、X個の前記第1演算コードを受信してN個の第1復号信号を出力するように構成され、各前記第1復号信号はN個のデータの1ビットに対応し、NはXよりも大きく、
前記第1アンドゲートユニットは、Z個の選択された演算コードを受信し、論理積演算を行うように構成され、前記選択された演算コードは、Y個の前記第2演算コード内の前記バイトに対応する前記第2演算コードであり、
前記ノアゲートユニットは、(Y-Z)個の選択されていない演算コードを受信し、否定論理和演算を行うように構成され、前記選択されていない演算コードは、前記選択された演算コード以外の前記第2演算コードであり、
各前記第2アンドゲートユニットの入力端は、前記第1アンドゲートユニットの出力端、前記ノアゲートユニットの出力端及び1つの前記第1復号信号に接続され、前記N個の第2アンドゲートユニットの出力に基づいて前記記憶システムに対して誤り検出及び/又は誤り訂正を行い、
前記X、前記Y及び前記Nはいずれも正の自然数であり、前記Zは(Y-1)/2以上であり、且つ(Y+1)/2以下の整数である、誤り訂正システム。
【請求項2】
前記Xは3であり、前記Nは8であり、前記デコーダは3つの入力端及び8つの出力端を有し、前記第2アンドゲートユニットの数は8である
請求項1に記載の誤り訂正システム。
【請求項3】
前記Yは5であり、前記第1アンドゲートユニットは3つの入力端を有し、前記第1アンドゲートユニットはさらに、前記選択された演算コードの数が2である場合、前記第1アンドゲートユニットの1つの入力端が電源に接続されるように構成される
請求項1に記載の誤り訂正システム。
【請求項4】
前記Yは5であり、前記ノアゲートユニットは3つの入力端を有し、前記ノアゲートユニットはさらに、前記選択されていない演算コードの数が2である場合、前記ノアゲートユニットの1つの入力端がグランドするように構成される
請求項1又は3に記載の誤り訂正システム。
【請求項5】
誤り訂正システムは、符号化モジュールを更に含み、前記符号化モジュールは、
読み取り操作及び書き込み操作の中の前記符号化段階で、各前記バイト内の1つ以上のデータに基づいてX個の第1チェックコードを生成し、同一の前記第1チェックコードに対応する前記1つ以上のデータは異なる前記バイト内のビットが同じであり、1つ以上の前記バイト内の全てのデータに基づいてY個の第2チェックコードを生成するように構成され、X個の前記第1チェックコードは、各前記バイト内の前記N個のデータに対して誤り検出及び/又は誤り訂正を行うために用いられ、Y個の前記第2チェックコードは前記Mバイトに対して誤り検出及び/又は誤り訂正を行うために用いられ、前記X及び前記Yはいずれも正の自然数である
請求項1に記載の誤り訂正システム。
【請求項6】
前記符号化モジュールは、
書き込み操作中において、書き込む複数のデータに基づいてX個の前記第1チェックコード及びY個の前記第2チェックコードを取得するように構成される第1符号化ユニットと、
読み取り操作中において、読み取り待ちの複数のデータに基づいてX個の第1更新チェックコード及びY個の第2更新チェックコードを取得ように構成される第2符号化ユニットであって、前記第1更新チェックコードの取得方法は前記第1チェックコードの取得方法と同じであり、前記第2更新チェックコードの取得方法は前記第2チェックコードの取得方法と同じである第2符号化ユニットと、を含み、
前記第1演算コードは前記第1チェックコード及び前記第1更新チェックコードに基づいて取得され、前記第2演算コードは前記第2チェックコード及び前記第2更新チェックコードに基づいて取得される
請求項5に記載の誤り訂正システム。
【請求項7】
前記第1符号化ユニットと前記第2符号化ユニットは同一の符号化ユニットである
請求項6に記載の誤り訂正システム。
【請求項8】
前記誤り訂正システムは、
前記第1チェックコード及び前記第1更新チェックコードに対して排他的論理和又は否定排他的論理和の演算を行い、X個の前記第1演算コードを取得し、前記第2チェックコード及び前記第2更新チェックコードに対して排他的論理和又は否定排他的論理和の演算を行い、Y個の前記第2演算コードを取得するように構成される比較モジュールをさらに含む
請求項6に記載の誤り訂正システム。
【請求項9】
前記比較モジュールは、X個の第1比較回路とY個の第2比較回路と、を含み、
各前記X個の第1比較回路は、1つの前記第1チェックコード及び対応する前記第1更新チェックコードを受信して、排他的論理和又は否定排他的論理和の演算を行い、1つの前記第1演算コードを取得するように構成され、
各前記Y個の第2比較回路は、1つの前記第2チェックコード及び対応する前記第2更新チェックコードを受信し、排他的論理和又は否定排他的論理和の演算を行い、1つの前記第2演算コードを取得するように構成される
請求項8に記載の誤り訂正システム。
【請求項10】
前記第1比較回路又は前記第2比較回路は、
電源信号及びグランド信号に接続され、互いに逆相である第1信号及び第2信号に基づいて前記電源信号又は前記グランド信号を出力するように制御する共有モジュールと、
前記共有モジュールに接続され、互いに逆相である第3信号及び第4信号を受信し、前記第1信号と前記第3信号の排他的論理和である第1演算信号を出力するように構成される第1論理ユニットと、
前記共有モジュールに接続され、前記第3信号及び前記第4信号を受信し、前記第1信号と前記第3信号の否定排他的論理和である第2演算信号を出力するように構成される第2論理ユニットと、を含み、
前記第1比較回路において、前記第1チェックコードは前記第1信号として使用され、前記第1更新チェックコードは前記第3信号として使用され、前記第2比較回路において、前記第2チェックコードは前記第1信号として使用され、前記第2更新チェックコードは前記第3信号として使用される、
請求項9に記載の誤り訂正システム。
【請求項11】
前記共有モジュールは、
前記電源信号に接続され、前記第1信号及び前記第2信号に基づいて前記電源信号の出力を制御する第1共通ユニットと、
前記グランド信号に接続され、前記第1信号及び前記第2信号に基づいて前記グランド信号の出力を制御する第2共通ユニットと、を含み、
前記第1論理ユニットは前記第1共通ユニットと前記第2共通ユニットとの間に接続され、前記第2論理ユニットは前記第1共通ユニットと前記第2共通ユニットとの間に接続される
請求項10に記載の誤り訂正システム。
【請求項12】
前記第1共通ユニットは、
ゲートが前記第1信号を受信し、ソースが前記電源信号に接続される第0のPMOSトランジスタと、
ゲートが前記第2信号を受信し、ソースが前記電源信号に接続される第7のPMOSトランジスタと、を含み、
前記第2共通ユニットは、
ゲートが前記第1信号を受信し、ソースが前記グランド信号に接続される第0のNMOSトランジスタと、
ゲートが前記第2信号を受信し、ソースが前記グランド信号に接続される第7のNMOSトランジスタと、を含む
請求項11に記載の誤り訂正システム。
【請求項13】
前記第1論理ユニットは、
ゲートが前記第4信号を受信し、ソースが前記第0のPMOSトランジスタのドレインに接続される第1のPMOSトランジスタと、
ゲートが前記第3信号を受信し、ドレインが前記第1のPMOSトランジスタのドレインに接続され、ソースが前記第0のNMOSトランジスタのドレインに接続される第1のNMOSトランジスタと、
ゲートが前記第3信号を受信し、ソースが前記第7のPMOSトランジスタのドレインに接続される第4のPMOSトランジスタと、
ゲートが前記第4信号を受信し、ドレインが前記第4のPMOSトランジスタのドレインに接続され、ソースが前記第7のNMOSトランジスタのドレインに接続される第4のNMOSトランジスタと、を含む
請求項12に記載の誤り訂正システム。
【請求項14】
前記第2論理ユニットは、
ゲートが前記第3信号を受信し、ソースが前記第0のPMOSトランジスタのドレインに接続される第2PMOSトランジスタと、
ゲートが前記第4信号を受信し、ドレインが前記第2PMOSトランジスタのドレインに接続され、ソースが前記第0のNMOSトランジスタのドレインに接続される第2NMOSトランジスタと、
ゲートが前記第4信号を受信し、ソースが前記第7のPMOSトランジスタのドレインに接続される第5PMOSトランジスタと、
ゲートが前記第3信号を受信し、ドレインが前記第5PMOSトランジスタのドレインに接続され、ソースが前記第7のNMOSトランジスタのドレインに接続される第5NMOSトランジスタと、を含む
請求項12に記載の誤り訂正システム。
【請求項15】
前記記憶システムは記憶チップを含み、M個の前記復号ユニットは前記記憶チップ内に集積される
請求項1に記載の誤り訂正システム。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本願は、出願番号が202110049134.2であり、出願日が2021年1月14日である中国特許出願に基づいて提出され、該中国特許出願の優先権を主張し、該中国特許出願の全てが参照によって本願に組み込まれる。
【0002】
本願の実施例は誤り訂正システムに関するが、これに限定されない。
【背景技術】
【0003】
半導体メモリは揮発性メモリと不揮発性メモリに分けることができる。ダイナミックランダムアクセスメモリ(DRAM:Dynamic Random Access Memory)は揮発性メモリとして、記録密度が高く、読み書きの速度が速いなどのメリットを有し、様々な電子システムにおいて広く適用されている。
【0004】
DRAMの製造プロセスが進歩し、記録密度が高くなるにつれて、DRAMにおける記憶データに誤りが発生し得、DRAMの性能に深刻な影響を与える可能性がある。したがって、DRAMでは、通常、誤り訂正コード(ECC:Error Checking and Correction or Error correction Coding)技術によって記憶データの誤りを検出又は訂正する。
【発明の概要】
【0005】
本願の実施例は誤り訂正システムを提供する。前記誤り訂正システムは記憶システムに適用され、前記記憶システムは読み書き操作中において複数のデータを書き込み又は読み取り、前記複数のデータはMバイトに分割され、各前記バイトはN個の異なるビットのデータを有し、前記記憶システムは、符号化段階及び復号段階があり、前記復号段階で、前記誤り訂正システムは前記記憶システムに基づいてX個の第1演算コード及びY個の第2演算コードを生成し、前記第1演算コードはN個のデータに対して誤り検出及び/又は誤り訂正を行うために用いられ、前記第2演算コードはMバイトに対して誤り検出及び/又は誤り訂正を行うために用いられる。その特徴は以下のとおりであり、前記誤り訂正システムは、各々が1つの前記バイトに対応するM個の復号ユニットであって、X個の前記第1演算コード及びY個の前記第2演算コードを復号処理することで、前記バイトに誤りデータがあるか否かを確認して誤りデータのビットを特定するように構成される復号ユニットを含み、前記復号ユニットは、
X個の前記第1演算コードを受信してN個の第1復号信号を出力するように構成されるデコーダであって、各前記第1復号信号はN個のデータの1ビットに対応し、NはXよりも大きいデコーダと、Z個の選択された演算コードを受信し、論理積演算を行うように構成される第1アンドゲートユニットであって、前記選択された演算コードは、前記Y個の第2演算コードのうち前記バイトに対応する前記第2演算コードである第1アンドゲートユニットと、(Y-Z)個の選択されていない演算コードを受信し、否定論理和演算を行うように構成されるノアゲートユニットであって、前記選択されていない演算コードは、前記選択された演算コード以外の前記第2演算コードであるノアゲートユニットと、N個の第2アンドゲートユニットであって、各前記第2アンドゲートユニットの入力端は、前記第1アンドゲートユニットの出力端、前記ノアゲートユニットの出力端及び1つの前記第1復号信号に接続され、前記N個の第2アンドゲートユニットの出力に基づいて前記記憶システムに対して誤り検出及び/又は誤り訂正を行う第2アンドゲートユニットと、を含み、前記X、前記Y及び前記Nはいずれも正の自然数であり、前記Zは(Y-1)/2以上であり、且つ(Y+1)/2以下の整数である。
【図面の簡単な説明】
【0006】
図1】本願の実施例により提供される誤り訂正システムと記憶システムの機能ブロック図である。
図2】本願の実施例により提供される誤り訂正システムの構成図1である。
図3図2に示される各バイトに対応する復号ユニットの拡大構成図である。
図4】本願の実施例により提供される複数のデータの分類模式図、及び第1チェックコードと第2チェックコードとの関係模式図である。
図5】バイト0に対応する第1チェックコードの拡大模式図である。
図6】本願の実施例により提供される誤り訂正システムの構成図2である。
図7】全てのバイトに対して第2符号化演算を行う原理模式図である。
図8】本願の実施例により提供される誤り訂正システムにおける第1比較回路又は第2比較回路の機能ブロック図である。
図9】本願の実施例により提供される誤り訂正システムにおける第1比較回路又は第2比較回路の回路構成図である。
図10】本願の実施例により提供される復号ユニットがバイトに対応する構成図である。
図11図10のバイト5に対応する復号ユニットの拡大構成図である。
【発明を実施するための形態】
【0007】
1つ又は複数の実施例は、その対応する図面の図によって例示的に説明しているが、これらの例示的な説明は実施例を限定するものとはならず、図面において同一の参照番号を備えた要素は同様の要素を表し、特に説明しない限り、図面は縮尺を限定するものではない。
【0008】
本願の実施例は誤り訂正システムを提供する。前記誤り訂正システムは記憶システムに適用され、記憶システムは読み書き操作中において複数のデータを書き込み又は読み取り、該複数のデータはMバイトに分割され、各バイトはN個の異なるビットのデータを有し、復号段階で、記憶システムはX個の第1演算コード及びY個の第2演算コードを生成し、第1演算コードはN個のデータに対して誤り検出及び/又は誤り訂正を行うために用いられ、第2演算コードはMバイトに対して誤り検出及び/又は誤り訂正を行うために用いられる。誤り訂正システムは、各々が1つのバイトに対応するM個の復号ユニットを含む。復号ユニットは、X個の前記第1演算コードを受信してN個の第1復号信号を出力するように構成されるデコーダであって、誤りデータのビットを特定するように構成されるデコーダと、誤りの発生したバイトを特定するように構成される第1アンドゲートユニット及びノアゲートユニットと、各々の入力端が対応する第1アンドゲートユニットの出力端及びノアゲートユニットの出力端に接続され、該バイトに誤りが発生したか否か及び誤りデータのビットを特定するように構成されるN個の第2アンドゲートユニットと、を含む。本願の実施例では、各バイトに対応する復号ユニットの回路は、異なる復号ユニットの各入力端に接続される第1演算コード及び第2演算コートが異なることを除いて、同じ回路に設定してもよく、これにより、誤り訂正システムにおける全ての復号ユニットの配線及び面積の節減に寄与すると共に、全てのバイトを同時に復号処理して誤り検出及び/又は誤り訂正を行うことができるため、誤り訂正システムの誤り検出及び訂正の速度を向上させることができる。
【0009】
本願の実施例の目的、技術的解決手段及び利点をより明らかにするために、以下に図面を参照しながら本願の各実施例を詳細に説明する。ただし、本願の各実施例では、本願を読者により明瞭に理解させるために多くの技術詳細を示したが、これらの技術詳細と下記の各実施例に基づく種々の変化と修正がなくても、本願が保護を主張する技術的解決手段を実現できることが当業者に理解される。
【0010】
図1は本願の実施例により提供される誤り訂正システムと記憶システムの機能ブロック図であり、図2は本願の実施例により提供される誤り訂正システムの構成図1であり、図3図2に示される各バイトに対応する復号ユニットの拡大構成図である。
【0011】
図1図3を参照すると、本願の実施例では、誤り訂正システム1は記憶システム101に適用され、該記憶システム101は読み書き操作中において複数のデータを書き込み又は読み取り、該複数のデータはMバイトに分割され、各バイトはN個の異なるビットのデータを有し、記憶システム101は符号化段階及び復号段階があり、復号段階で、該誤り訂正システムは記憶システム101に基づいてX個の第1演算コード及びY個の第2演算コードを生成し、第1演算コードはN個のデータに対して誤り検出及び/又は誤り訂正を行うために用いられ、第2演算コードはMバイトに対して誤り検出及び/又は誤り訂正を行うために用いられ、誤り訂正システム1は、各々が1つのバイトに対応するM個の復号ユニット31であって、X個の第1演算コード及びY個の第2演算コードを復号処理することで、バイトに誤りデータがあるか否かを確認して誤りデータのビットを特定するように構成される復号ユニット31をさらに含む。
【0012】
ここで、復号ユニット31は、X個の前記第1演算コードを受信してN個の第1復号信号を出力するように構成されるデコーダ301であって、各第1復号信号はN個のデータの1ビットに対応し、NはXよりも大きいデコーダ301と、Z個の選択された演算コードを受信し、論理積演算を行うように構成される第1アンドゲートユニット302であって、選択された演算コードはY個の第2演算コード内のバイトに対応する第2演算コードである第1アンドゲートユニット302と、(Y-Z)個の選択されていない演算コードを受信し、否定論理和演算を行うように構成されるノアゲートユニット303であって、選択されていない演算コードは選択された演算コード以外の第2演算コードであるノアゲートユニット303と、N個の第2アンドゲートユニット304であって、各第2アンドゲートユニット304の入力端は、第1アンドゲートユニット302の出力端、ノアゲートユニット303の出力端及び1つの第1復号信号に接続され、N個の第2アンドゲートユニット304の出力に基づいて記憶システム101に対して誤り検出及び/又は誤り訂正を行うN個の第2アンドゲートユニット304と、を含み、X、Y及びNはいずれも正の自然数であり、Zは(Y-1)/2以上であり、且つ(Y+1)/2以下の整数である。
【0013】
本願の実施例に記載される第1演算コードは、各バイト内のN個のデータに対して誤り検出及び/又は誤り訂正を行うために用いられ、第2演算コードは、バイトに対して誤り検出及び/又は誤り訂正を行うために用いられることに注意されたい。全ての第1演算コード及び第2演算コードは共にMバイトの全てのデータに対して誤り検出及び/又は誤り訂正を行うために用いられ、第2演算コードは、誤りデータがMバイトのどのバイトにあるかを特定するために用いられ、第1演算コードは、誤りデータが該バイトのどのビットにあるかを特定するために用いられると理解すべきである。
【0014】
図2は2つのバイトに対応する復号ユニットの構成図を示し、以下において図面を参照しながら、本願の実施例により提供される誤り訂正システムを詳細に説明する。
【0015】
本願の実施例では、Xは4であり、Nは8であり、対応するデコーダ301は3-8デコーダであり、該デコーダ301は3つの入力端及び8つの出力端を有し、且つ第2アンドゲートユニット304の数は8であり、即ちNは8である。
【0016】
Zが(Y-1)/2以上であり、且つ(Y+1)/2以下の整数であるため、第1アンドゲートユニット302の入力端の数とノアゲートユニット303の入力端の数との和が最も小さくなり、第1アンドゲートユニット302の入力端及びノアゲートユニット303の入力端はいずれも効果的に利用可能である。
【0017】
本願のいくつかの実施例では、Yが5であり、その場合、2≦Z≦3であり、第1アンドゲートユニット302が2つの選択された演算コードを受信するとした場合、即ち第1アンドゲートユニット302が2つの入力端が必要である場合、ノアゲートユニット303は3つの選択されていない演算コードを受信し、即ちノアゲートユニット303は3つの入力端が必要である。第1アンドゲートユニット302が3つの選択された演算コードを受信するとした場合、即ち第1アンドゲートユニット302が3つの入力端が必要である場合、ノアゲートユニット303は2つの選択されていない演算コードを受信し、即ちノアゲートユニット303は2つの入力端が必要である。
【0018】
本願のいくつかの実施例では、第1アンドゲートユニット302は3つの入力端を有し、第1アンドゲートユニット302はさらに、選択された演算コードの数が2である場合、第1アンドゲートユニット302の1つの入力端が電源VDDに接続されるように構成される。対応的に、ノアゲートユニット303は3つの入力端を有し、ノアゲートユニット303はさらに、選択されていない演算コードの数が2である場合、ノアゲートユニット303の1つの入力端がグランドVssに接続されるように構成される。
【0019】
第1演算コードがN個のデータに対して誤り検出及び/又は誤り訂正を行うために用いられるため、記憶システムが誤りデータを1ビット有する場合、デコーダ301から出力されたN個の第1復号信号によって、N個の異なるビットのデータのうちの、どのビットのデータに誤りが発生したかを確認することができるが、N個の第1復号信号によっては、どのバイトのこのビットのデータに誤りが発生したかを確認することができない。
【0020】
選択された演算コードはY個の第2演算コード内のバイトに対応する第2演算コードであり、ここで記載される対応とは、該バイトのデータが該第2演算コードの符号化演算に関与していることを意味する。本願の実施例では、Y個の第2演算コード内の各第2演算コードは異なるバイト内の全てのデータに対して符号化演算を行うことによって得られるものである。理解されることとして、1バイトについて、該バイト内の全てのデータが符号化演算に関与して得られた第2演算コードは、該バイトに対応する第2演算コードとして定義される。明らかながら、異なるバイトが符号化演算に関与して得られた第2演算コードが完全に同じではないため、Y個の第2演算コードはMバイトに対して誤り検出及び/又は誤り訂正を行うために用いることができる。
【0021】
第2演算コードがMバイトに対して誤り検出及び/又は誤り訂正を行うために用いられるため、第1アンドゲートユニット302について、該バイトに対応する第2演算コード、即ち選択された演算コードは第1アンドゲートユニット302の入力とされる。記憶システムが1ビットの誤りデータを有し、且つ該バイト内のデータに誤りが発生した場合、選択された演算コードに影響を及ぼし、第1アンドゲートユニット302の出力結果は影響を受ける。ノアゲートユニット303について、全ての第2演算コードのうちの選択された演算コード以外の第2演算コードは選択されていない演算コードであり、該選択されていない演算コードはノアゲートユニット303の入力とされる。記憶システムが1ビットの誤りデータを有し、且つ該バイト内のデータに誤りが発生した場合、選択されていない演算コードに影響を及ぼさず、ノアゲートユニット303の出力結果は影響を受けず、同様に、記憶システムが1ビットの誤りデータを有するが、該バイト内のデータに誤りが発生しない場合、選択されていない演算コードに影響を及ぼし、ノアゲートユニット303の出力結果は影響を受ける。
【0022】
各第2アンドゲートユニット304が第1復号信号、第1アンドゲートユニット302の出力端、及びノアゲートユニット303の出力端に接続されるため、各第2アンドゲートユニット304の出力端は、該バイト内の各ビットのデータの影響を受け、即ち第2アンドゲートユニット304の出力端によって、該バイトに対応する各ビットのデータに誤りが発生したか否かを確認することができる。
【0023】
例として、該バイトに1ビットの誤りデータがあり、且つ誤りデータが第1ビットに位置する場合、第1ビットに対応する第1復号信号をマーク復号信号として定義し、そうすると、該マーク復号信号を受信した第2アンドゲートユニット304の出力結果は、予期通りにならず、しかも他の第2アンドゲートユニット304の出力結果とは異なり、これにより、第1ビットのデータが誤りデータであると導き出される。該バイト内のデータがいずれも正確なデータである場合、全ての第2アンドゲートユニット304の出力結果はいずれも同じで、しかも予期通りになり、これにより、該バイトに誤りデータがないと導き出される。
【0024】
理解されることとして、本願のいくつかの実施例では、記憶システム101は記憶チップを含み、M個の復号ユニット31は記憶チップ内に集積されてもよい。
【0025】
本願の実施例により提供される誤り訂正システム1では、各バイトに対応する復号ユニット31の回路は、同じ回路に設定してもよく、異なる復号ユニット31の各入力端に接続される第1演算コードと第2演算コードが異なるだけであり、これにより、誤り訂正システムにおける全ての復号ユニットの配線及び面積の節減に寄与すると共に、全てのバイトに対して同時に復号処理して誤り検出及び/又は誤り訂正を行うことができるため、誤り訂正システムの誤り検出及び訂正の速度を向上させることができる。
【0026】
以下において、記憶システムの動作原理を参照しながら、誤り訂正システムをさらに説明する。
【0027】
本願の実施例では、記憶システム101はDDR4、LPDDR4、DDR5又はLPDDR5などのDRAMであってもよく、記憶システム101は他のタイプの記憶システムであってもよく、例えばNAND、NOR、FeRAM、PcRAMなどの不揮発性メモリである。
【0028】
該記憶システム101について、データは異なるバイトに分割され、一般的に、バイトはデータ処理の基本単位である。バイト単位で情報を記憶及び解釈する場合、1バイトは8つのバイナリビットからなるものと規定され、即ち、1バイトは8ビットに等しく、8ビットのそれぞれは対応するビットを有し、即ち1Byte=8bitである。これに基づき、本願の実施例では、Nが8であることにより、各バイト内のビットを最も大きくするため、比較システム20に必要な回路の利用率の向上に寄与する。理解されることとして、他の実施例では、Nは他の適切な正の整数であってもよい。
【0029】
記憶システム101によって1回の読み書き操作で転送されるデータが128ビット(即ち128bits)であることを例とすると、Mは16であり、Nは8である。なお、他の実施例では、記憶システムによって読み書き操作中において転送されるデータのビット数により、Mは他の適切な正の整数であってもよく、M*Nが読み書き操作で転送されるデータのビット数に等しいことを満たせばよい。
【0030】
図4は本願の実施例により提供される複数のデータの分類模式図、及び第1チェックコードと第2チェックコードとの関係模式図であり、N個のデータそれぞれのビットは異なる。本願の実施例では、図4に示すように、各バイトについて、N個のデータは、自然数で逓増する第0~第7ビットを有し、全てのバイトについて、Mバイトは第0から第15まで自然数で逓増する16バイトに分割されている。また、異なるバイトについて、バイトが有するN個のデータはいずれも第0から第7まで逓増する8ビットを有する。なお、記載場所の制限により、図4は同一行の表から分割された3つの表となっているが、実際に1つの完全な表である。図示の便宜上、図5はバイト0に対応する第1チェックコードの拡大模式図を示している。
【0031】
図6は本願の実施例により提供される誤り訂正システムの構成図2である。
【0032】
図6を参照すると、誤り訂正システム1は、符号化モジュール102を更に含み、読み取り操作中及び書き込み操作中の符号化段階で、各バイト内のいくつかのデータに基づいてX個の第1チェックコードを生成し、同一の第1チェックコードに対応するいくつかのデータは異なるバイト内のビットが同じであり、いくつかのバイト内の全てのデータに基づいてY個の第2チェックコードを生成するように構成され、X個の第1チェックコードは、各バイト内のN個のデータに対して誤り検出及び/又は誤り訂正を行うために用いられ、Y個の第2チェックコードは、Mバイトに対して誤り検出及び/又は誤り訂正を行うために用いられ、X及びYがいずれも正の自然数である。
【0033】
第1チェックコードは各バイト内のN個のデータに対して誤り検出及び/又は誤り訂正を行うために用いられ、第2チェックコードはMバイトに対して誤り検出及び/又は誤り訂正を行うために用いられ、このような誤り検出及び訂正の符号化方式はECCを実現することが可能であるのみならず、より少ないハードウェア回路を用いてECCを実現することができ、記憶システムの消費電力低減及びECCの速度と結果の最適化に寄与する。
【0034】
本願の実施例に記載される第1チェックコードは各バイト内のN個のデータに対して誤り検出及び/又は誤り訂正を行うために用いられ、第2チェックコードはMバイトに対して誤り検出及び/又は誤り訂正を行うために用いられる。全ての第1チェックコード及び第2チェックコードは共にMバイトの全てのデータに対して誤り検出及び/又は誤り訂正を行うために用いられ、第2チェックコードは誤りデータがMバイトのどのバイトにあるかを特定するために用いられ、第1チェックコードは誤りデータが該バイトのどのビットにあるかを特定するために用いられると理解すべきである。
【0035】
本願の実施例では、符号化モジュール102はパリティチェック(Parity Check)原理によって第1チェックコード及び第2チェックコードを生成し、対応的に、第1チェックコード及び第2チェックコードはいずれもパリティチェックコードである。
【0036】
本願の実施例では、符号化モジュール102は、書き込み操作中において、書き込む複数のデータに基づいてX個の第1チェックコード及びY個の第2チェックコードを取得するように構成される第1符号化ユニット112と、読み取り操作中において、読み取り待ちの複数のデータに基づいてX個の第1更新チェックコード及びY個の第2更新チェックコードを取得するように構成される第2符号化ユニット122であって、第1更新チェックコードの取得方法が第1チェックコードの取得方法と同じであり、第2更新チェックコードの取得方法が第2チェックコードの取得方法と同じである第2符号化ユニット122と、を含み、第1演算コードは第1チェックコード及び第1更新チェックコードに基づいて取得され、第2演算コードは第2チェックコード及び第2更新チェックコードに基づいて取得される。
【0037】
X個の第1チェックコードはXビットの第1二進数を構成し、ここで、2≧Nであり、各第1チェックコードはバイト内の全てのいくつかのデータに対して第1符号化演算を行うことによって得られ、各第1チェックコードに対応するいくつかのデータはバイト内の異なるビットの組み合わせに対応する。即ち、各第1チェックコードは、各バイト内の複数のビットのデータを選択して第1符号化演算を行うことによって得られ、しかも、同一の第1チェックコードについて、全てのバイトの選択されたビットの組み合わせが同じであり、異なる第1チェックコードについて、N個のデータの選択されたビットの組み合わせが異なる。
【0038】
本願の実施例では、異なる第1チェックコードが全てのバイト内の異なるデータに基づいて第1符号化演算を行うことによって得られ、それによって、異なる第1チェックコードについて、第1チェックコードの結果に影響を及ぼすビットが異なる。また、2≧Nであるため、各ビットは、選択されて第1符号化演算を行うことによって得られる第1チェックコードを完全に同じでないようにしてもよく、それにより、分析によってどのビットに対応するデータに誤りが発生したかを確認することができる。
【0039】
本願の実施例では、Xを3にすることによって、異なるビットのデータの誤りがいずれも摘出されることが可能であるのみならず、第1符号化ユニット112のハードウェア回路の複雑さを軽減することもできる。
【0040】
本願のいくつかの実施例では、3つの第1チェックコードは下位ビットの方から上位ビットの順で、第0ビットの第1チェックコード、第1ビットの第1チェックコード及び第2ビットの第1チェックコードを含み、N個のデータは第0から第N-1まで自然数で逓増するビットを有し、例として、第0ビットについて、第1チェックコードに対応するいずれかの第1符号化演算にも関与していない。第1ビットについて、第0ビットの第1チェックコードに対応する第1符号化演算に関与している。第2ビットについて、第1ビットの第1チェックコードに対応する第1符号化演算に関与している。第3ビットについて、第0ビット及び第1ビットの第1チェックコードに対応する第1符号化演算に関与している。第4ビットについて、第2ビットの第1チェックコードに対応する第1符号化演算に関与している。第5ビットについて、第0ビット及び第2ビットの第1チェックコードに対応する第1符号化演算に関与している。第6ビットについて、第1ビット及び第2ビットの第1チェックコードに対応する第1符号化演算に関与している。第7ビットについて、第0、第1及び第2ビットの第1チェックコードに対応する第1符号化演算に関与している。理解すべきこととして、当業者であれば、必要に応じて第1チェックコードの数及び他の符号化演算の関係を設定してもよく、選択された各ビットで第1符号化演算を行うことによって得られた第1チェックコードが完全に同じでなければよい。
【0041】
本願の実施例では、第1符号化演算は排他的論理和演算であり、対応的に、第1符号化ユニット112は、Xビットの第1二進数のうち、最下位ビットの第1チェックコードがバイト内の第1、第3、第5及び第7ビットのデータの排他的論理和であり、最上位ビットの第1チェックコードがバイト内の第4、第5、第6及び第7ビットのデータの排他的論理和であり、中間ビットの第1チェックコードがバイト内の第2、第3、第6及び第7ビットのデータの排他的論理和であるように構成される。
【0042】
なお、他の実施例では、第1符号化演算は否定排他的論理和演算であってもよく、対応的に、第1符号化ユニットは、Xビットの二進数のうち、最下位ビットの第1チェックコードがバイト内の第1、第3、第5及び第7ビットのデータの否定排他的論理和であり、最上位ビットの第1チェックコードがバイト内の第4、第5、第6及び第7ビットのデータの否定排他的論理和であり、中間ビットの第1チェックコードがバイト内の第2、第3、第6及び第7ビットのデータの否定排他的論理和であるように構成される。
【0043】
以下において、図4及び図5を参照しながら、第1チェックコードの生成原理を説明する。
【0044】
図4及び図5に示すように、「×」は該行の符号化演算に関与していること、即ち、否定排他的論理和又は排他的論理和演算を行うことを意味し、128ビットのデータは第0~第15の計16バイトに分割され、各バイトは8ビットを有する。p10、p11及びp12は3つの第1チェックコードを表し、p13、p14、p15、p16及びp17は5つの第2チェックコードを表し、pc0~pc7は符号化演算時、p10~p17が対応的に採用する8つの演算式を表す。各行において、全ての「×」が付いた箇所は、該列に対応するデータが該演算式で排他的論理和又は否定排他的論理和演算に関与する必要があることを示す。第1チェックコード及び第2チェックコードはpbに対応する。
【0045】
書き込み操作中の符号化段階の第1符号化演算又は第2符号化演算の時、pc0~pc7の8つを用いて第1符号化演算又は第2符号化演算を行い、演算の結果はそれぞれ、p10~p17に記憶され、p10~p17は第1符号化演算又は第2符号化演算に関与せず、復号段階で、各行に対応する演算式が変更されず、記憶されたp10~p17は演算に関与する必要があり、そのため、図2の表においてp10~p17に対応的に「×」が付いており、この点について、以下において詳細に説明する。
【0046】
本願の実施例では、書き込み操作中の符号化段階で、各バイトについて、該バイト内の第1、3、5、7ビットのデータに対して排他的論理和又は否定排他的論理和の演算を行い、さらに16バイトの全ての排他的論理和又は否定排他的論理和の演算結果に対して排他的論理和又は否定排他的論理和の演算を行い、即ち、pc0演算式であり、演算結果をp10に与える。各バイトについて、該バイト内の第2、3、6、7ビットのデータに対して排他的論理和又は否定排他的論理和の演算を行い、さらに16バイトの全ての排他的論理和又は否定排他的論理和の演算結果に対して排他的論理和又は否定排他的論理和の演算を行い、即ち、pc1演算式であり、演算結果をp11に与える。各バイトについて、該バイト内の第4、5、6、7ビットのデータに対して排他的論理和又は否定排他的論理和の演算を行い、さらに16バイトの全ての排他的論理和又は否定排他的論理和の演算結果に対して排他的論理和又は否定排他的論理和の演算を行い、即ち、pc2演算式であり、演算結果をp12に与える。
【0047】
p10、p11及びp12は第1二進数を構成し、p10は最下位であり、p12は最上位である。メモリの複数のデータのうち、誤りデータが1ビットしかない場合、下記の結果にあり、即ち、第0ビットのデータに誤りが発生した場合、第0ビットがpc0、pc1及びpc2の3つの演算式に関与していないため、第1チェックコードp10、p11及びp12はいずれも影響を受けない。
【0048】
第1ビットのデータに誤りが発生した場合、第1ビットがpc0の演算式に関与しているが、pc1及びpc2の2つの演算式に関与していないため、第1チェックコードp10は影響を受けるが、第1チェックコードp11及びp12は影響を受けない。
【0049】
第2ビットのデータに誤りが発生した場合、第2ビットがpc1の演算式に関与しているため、第1チェックコードp10及びp12は影響を受けないが、第1チェックコードp11は影響を受ける。
【0050】
第3ビットのデータに誤りが発生した場合、第3ビットがpc0及びpc1の2つの演算式に関与しているため、第1チェックコードp10及びp11は影響を受けるが、第1チェックコードp12は影響を受けない。
【0051】
類推すると、第7ビットのデータに誤りが発生した場合、第7ビットがpc0、pc1及びpc2の3つの演算式に関与しているため、第1チェックコードp10、p11及びp11はいずれも影響を受ける。
【0052】
ここに記載される、特定のデータに誤りが発生することによって特定の第1チェックコードが影響を受けるというのは、特定のデータに誤りが発生した後、第1符号化演算を再度行うことで得られた該特定の第1チェックコードは、データに誤りが発生する前に形成された該第1チェックコートとは異なることを意味する。
【0053】
理解されることとして、各演算式について、異なるバイト内の、第1符号化演算に関与するビットが同じであるため、第1チェックコードによって、どのビットのデータに誤りが発生したかを確認することができるが、どのバイト内の対応するビットのデータに誤りが発生したかを検出することができない。したがって、第2チェックコードによって、どのバイト内の対応するビットのデータに誤りが発生したかを確認する必要がある。
【0054】
Y個の第2チェックコードはYビットの第2二進数を構成し、ここで、2≧Mであり、各第2チェックコードは幾つかのバイトに対して第2符号化演算を行うことによって得られる。
【0055】
≧Mであるため、各バイトが第2符号化演算に関与して得られた第2チェックコードは完全に同じではないことを保証することができる。本願の実施例では、異なる第2チェックコードは異なるいくつかのバイトに基づいて第2符号化演算を行うことによって得られるため、異なる第2チェックコードについて、第2チェックコードの結果に影響を及ぼすバイトが異なり、それにより、どのバイト内のデータに誤りが発生したかを総合的に分析して確認することを容易にする。さらにバイトのどのビットに誤りが発生したかを判断することによって、最終的に、どのバイトのどのビットのデータに誤りが発生したかを判断する。ここで、第2チェックコードの結果に影響を及ぼすということにおける「影響」は上述した「影響」と同じ意味を持っていることに注意されたい。
【0056】
本願の実施例では、Yは5であり、異なるバイトのデータの誤りがいずれも摘出することを可能にするのみならず、第1符号化ユニット112のハードウェア回路の複雑さを軽減することもできる。第2符号化演算は排他的論理和演算であってもよく、対応的に、第1符号化ユニット112は、選択された2つのバイトの全てのデータに対して排他的論理和演算を行い、いくつかの第1演算結果を記憶するように構成される第1段演算ユニットであって、各第1演算結果が選択された2つのバイトの排他的論理和の演算結果である第1段演算ユニットと、少なくとも2つの第1演算結果に対して排他的論理演算を行い、第2チェックコードを生成し、異なる符号化ニーズに応じてY個の第2チェックコードを生成するように構成される第2段演算ユニットと、を含む。第1符号化ユニット112に対する特別な設計によって、第2段演算ユニットは第1段演算ユニットの第1演算結果を繰り返して用いることができ、これにより、第1符号化ユニット112はより少ないハードウェア回路によって実現することができるため、記憶システムの消費電力を低減する。
【0057】
他の実施例では、第1符号化演算は否定排他的論理和演算であってもよく、対応的に、第1符号化ユニットは、選択された2つのバイトの全てのデータに対して否定排他的論理和演算を行い、いくつかの第1演算結果を記憶するように構成される第1段演算ユニットであって、各第1演算結果が選択された2つのバイトの否定排他的論理和の演算結果である第1段演算ユニットと、少なくとも2つの第1演算結果に対して否定排他的論理和演算を行い、第2チェックコードを生成し、異なる符号化ニーズに応じてY個の第2チェックコードを生成するように構成される第2段演算ユニットと、を含む。
【0058】
本願の実施例では、図4に示すように、書き込み操作中の符号化段階で、各バイトについて、該バイトの全ての8ビットのデータに対して排他的論理和の演算を行い、該バイトの排他的論理和の演算結果を得て、続いて、計16バイトの16個の排他的論理和の演算結果に対して、pc3からpc7の7つの演算式に基づいて第2符号化演算を行い、即ち各行の表において「×」が付いたデータはいずれも演算に関与し、対応的に第2チェックコードpc13からpc17を得る。理解されることとして、符号化段階で、第2チェックコードpc13~pc17は符号化演算に関与せず、後続のデコード段階(復号段階ともいう)では、第2チェックコードpc13~pc17も演算に関与する必要があるため、図4において第2チェックコードpc13からpc17も対応的に「×」が付けられており、この点について以下において説明するので、ここで説明を省略する。
【0059】
本願の実施例では、Mバイトは自然数で逓増するように第0~第15のバイトに分割され、Y個の第2チェックコードは自然数で逓増するように第3~第7の第2チェックコードに分割され、5つの第2チェックコードの取得方法はそれぞれ以下のとおりである。
【0060】
第3の第2チェックコード(図4におけるp13に対応)は、第0、第2、第3、第4、第5、第6及び第8バイトの全てのデータの排他的論理和又は否定排他的論理和であり、第4の第2チェックコード(図4におけるp14に対応)は、第0、第1、第4、第5、第7、第9、第10及び第12バイトの全てのデータの排他的論理和又は否定排他的論理和であり、第5の第2チェックコード(図4におけるp15に対応)は、第1、第2、第4、第6、第9、第11、第13及び第14バイトの全てのデータの排他的論理和又は否定排他的論理和であり、第6の第2チェックコード(図4におけるp16に対応)は、第3、第5、第6、第7、第10、第11、第14及び第15バイトの全てのデータの排他的論理和又は否定排他的論理和であり、第7の第2チェックコード(図4におけるp17に対応)は、第8、第9、第10、第11、第12、第13及び第15バイトの全てのデータの排他的論理和又は否定排他的論理和である。
【0061】
なお、各第2チェックコードはいずれも排他的論理和演算によって得られ、又は各第2チェックコードはいずれも否定排他的論理和演算によって得られる。
【0062】
図6を参照すると、第1符号化ユニット112において、第2チェックコードを取得するための対応する回路は、下記のように設計され、即ち、バイト0及びバイト4の排他的論理和の演算結果に対して排他的論理和演算を行い、結果0_4を得て、バイト2及びバイト6の結果に対して排他的論理和演算を行い、結果2_6を得て、バイト3及びバイト5の結果に対して排他的論理和演算を行い、結果3_5を得て、バイト1及びバイト5の結果に対して排他的論理和演算を行い、結果1_5を得て、バイト1及びバイト4の結果に対して排他的論理和演算を行い、結果1_4を得るように設計される。
【0063】
図7に示すように、図7は全てのバイトに対して第2符号化演算を行う原理模式図を示し、バイト0から7と同様の1つの回路を用いてバイト8から15の演算を遂行してもよく、即ち、入力を変更するだけで、バイト8から15に対して同様の演算を行い、結果9_13、結果10_12、結果11_15、結果10_14、結果11_14を得ることができる。また、これらの同様の回路を用いた演算以外に、バイト6及びバイト7に対して排他的論理和演算を行って結果6_7を得て、バイト7及びバイト9の結果に対して排他的論理和演算を行って結果7_9を得る必要がある。
【0064】
pc3からpc7の演算式の要件に従って排他的論理和演算を行い、例えば、演算式pc3に基づき、結果0_4、結果2_6、結果3_5及びバイト8の排他的論理和の演算結果に対して排他的論理和演算を行い、第2チェックコードp13を得て、演算式pc4に基づき、結果0_4、結果1_5、結果7_9及び結果10_12に対して排他的論理和演算を行い、第2チェックコードp14を得て、第2チェックコードp15、p16及びp17の取得方法についてそれぞれ具体的に説明しない。理解されることとして、結果0_4、結果2_6などは、いずれも回路リソースを節約するために繰り返して用いることができる。
【0065】
また、本願の実施例では、第1符号化ユニット112はさらに、各バイトは、第2符号化演算に関与する回数がaであり、aが(Y-1)/2≦a≦(Y+1)/2を満たし、aが正の整数であるように構成されてもよい。このような設定によって、後続の復号段階の実行に必要な復号回路において、回路の線路及び面積が低減可能であると共に、復号速度の向上に寄与する。
【0066】
上述したことから分かるように、書き込み操作中において、第1符号化ユニット112(図6を参照)によって第1符号化演算を行って第1チェックコードを取得し、第1符号化ユニット112によって第2符号化演算を行って第2チェックコードを取得する。第1更新チェックコードの取得方法は第1チェックコードの取得方法と同じであり、第2更新チェックコードの取得方法は第2チェックコードの取得方法と同じであるため、ここで、第2符号化ユニット122について説明を省略する。
【0067】
本願の実施例では、読み取り操作中において、第2符号化ユニット122(図6を参照)によって第1符号化演算を行って第1更新チェックコードを取得し、第2符号化ユニット122によって第2符号化演算を行って第2更新チェックコードを取得する。対応的に、第1符号化ユニット112と第2符号化ユニット122は同一の符号化ユニットであってもよい。
【0068】
第1演算コードは第1チェックコード及び第1更新チェックコードに基づいて取得され、第2演算コードは第2チェックコード及び第2更新チェックコードに基づいて取得される。本願の実施例では、第1チェックコード及び第1更新チェックコードに基づいて比較して第1演算コードを生成し、第2チェックコード及び第2更新チェックコードに基づいて比較して第2演算コードを生成する。
【0069】
対応的に、誤り訂正システムは比較モジュール103(図6を参照)をさらに含み、比較モジュール103は、第1チェックコード及び第1更新チェックコードに対して排他的論理和又は否定排他的論理和の演算を行い、X個の第1演算コードを取得し、第2チェックコード及び第2更新チェックコードに対して排他的論理和又は否定排他的論理和の演算を行い、Y個の第2演算コードを取得するように構成される。
【0070】
本願の実施例では、図4及び第1チェックコード及び第2チェックコードの生成原理についての上記説明を合わせて参照されたい。第1演算コードp20について、pc0演算式によって、受信された各バイト内の異なるビットのデータ、及び第1チェックコードp10に対して排他的論理和又は否定排他的論理和の演算を行い、第1演算コードp20を得て、pc1演算式によって、受信された各バイト内の異なるビットのデータ、及び第1チェックコードp11に対して排他的論理和又は否定排他的論理和の演算を行い、第1演算コードp21を得て、pc2演算式によって、受信された各バイト内の異なるビットのデータ、及び第1チェックコードp12に対して排他的論理和又は否定排他的論理和の演算を行い、第1演算コードp22を得る。第1演算コード及び第2演算コードは図2においてPBに対応する。
【0071】
同様に、第2チェックコード及び第2演算コードについて、復号段階の符号化演算では、上述した符号化段階での符号化演算をもとに、さらに第2チェックコードp13、p14、p15、p16又はp17の排他的論理和演算をそれぞれ行い、対応的に第2演算コードp23、p24、p25、p26又はp27を得る必要がある。
【0072】
p20、p21及びp22は第3二進数を構成し、p20は最下位でp22は最上位である。メモリの複数のデータのうち、誤りデータが1ビットしかない場合、第3符号化演算が排他的論理和演算であれば(他の実施例では否定排他的論理和演算であってもよい)、下記の結果になり、即ち、第0ビットのデータに誤りが発生した場合、第0ビットがpc0、pc1及びpc2の3つの演算式に関与していないため、第1演算コードp20、p21及びp22はいずれも影響を受けず、3つの第1演算コードはいずれも0であり、その場合、第3二進数000に対応する十進数は0であり、それによって第0ビットのデータに誤りが発生したことを検出する。
【0073】
第1ビットのデータに誤りが発生した場合、第1ビットがpc0の演算式に関与しているが、pc1及びpc2の2つの演算式に関与していないため、第1演算コードp20は影響を受けて1であるが、第1演算コードp21及びp22は影響を受けておらず、0であり、その場合、第3二進数が001で、対応する十進数は1であり、それによって第1ビットのデータに誤りが発生したことを検出する。
【0074】
第2ビットのデータに誤りが発生した場合、第2ビットがpc1の演算式に関与しているため、第1演算コードp20は0であり、第1演算コードp21は1であり、p12は0であり、その場合、第3二進数が010で、対応する十進数は2であり、それによって第2ビットのデータに誤りが発生したことを検出する。
【0075】
第3ビットのデータに誤りが発生した場合、第3ビットがpc0及びpc1の2つの演算式に関与しているため、第1演算コードp20及びp21はいずれも1であり、p12は0であり、その場合、第3二進数が011で、対応する十進数は3であり、それによって第3ビットのデータに誤りが発生したことを検出する。
【0076】
類推すると、第7ビットのデータに誤りが発生した場合、第7ビットがpc0、pc1及びpc2の3つの演算式に関与しているため、第1演算コードp20、p21及びp22はいずれも1であり、その場合、第3二進数が111で、対応する十進数は7であり、それによって第7ビットのデータに誤りが発生したことを検出する。
【0077】
本願の実施例では、比較モジュール103(図6を参照)は、各々が1つの第1チェックコード及び対応する第1更新チェックコードを受信して、排他的論理和又は否定排他的論理和の演算を行い、1つの第1演算コードを取得するように構成されるX個の第1比較回路(図示せず)と、各々が1つの第2チェックコード及び対応する第2更新チェックコードを受信して、排他的論理和又は否定排他的論理和の演算を行い、1つの第2演算コードを取得するように構成されるY個の第2比較回路(図示せず)と、を含む。
【0078】
図8は本願の実施例により提供される誤り訂正システムにおける第1比較回路又は第2比較回路の機能ブロック図であり、図9は本願の実施例により提供される誤り訂正システムにおける第1比較回路又は第2比較回路の回路構成図である。
【0079】
本願の実施例では、図8を参照すると、第1比較回路又は第2比較回路は、電源信号Vcc及びグランド信号Vssに接続され、互いに逆相である第1信号B及び第2信号BNに基づいて電源信号Vcc又はグランド信号Vssを出力するように制御する共有モジュールと、共有モジュールに接続され、互いに逆相である第3信号A及び第4信号ANを受信し、第1信号Bと第3信号Aとの排他的論理和である第1演算信号Yを出力するように構成される第1論理ユニット23と、共有モジュールに接続され、第3信号A及び第4信号ANを受信し、第1信号Bと第3信号Aとの否定排他的論理和である第2演算信号YNを出力するように構成される第2論理ユニット24と、を含み、第1比較回路において、第1チェックコードは第1信号とし、第1更新チェックコードは第3信号とし、第2比較回路において、第2チェックコードは第1信号とし、第2更新チェックコードは第3信号とする。
【0080】
本願の実施例では、図8を参照すると、共有モジュールは、電源信号Vccに接続され、第1信号B及び第2信号BNに基づいて電源信号Vccを出力するように制御する第1共通ユニット21と、グランド信号Vssに接続され、第1信号B及び第2信号BNに基づいてグランド信号Vssを出力するように制御する第2共通ユニット22と、を含み、第1論理ユニット23は第1共通ユニット21と第2共通ユニット22との間に接続され、第2論理ユニット24は第1共通ユニット21と第2共通ユニット22との間に接続される。
【0081】
本願の実施例では、図9を参照すると、第1共通ユニット21(図8を参照)は、ゲートが第1信号Bを受信し、ソースが電源信号Vccに接続される第0のPMOSトランジスタMP0と、ゲートが第2信号BNを受信し、ソースが電源信号Vccに接続される第7のPMOSトランジスタMP7と、を含む。第1信号Bがハイレベルであり、第2信号BNがローレベルである場合、第0のPMOSトランジスタMP0はオフになり、第7のPMOSトランジスタMP7はオンになり、第1信号Bがローレベルで、第2信号BNがハイレベルである場合、第0のPMOSトランジスタMP0はオンになり、第7のPMOSトランジスタMP7はオフとなる。
【0082】
第2共通ユニット22(図8を参照)は、ゲートが第1信号Bを受信し、ソースがグランド信号Vssに接続される第0のNMOSトランジスタMN0と、ゲートが第2信号BNを受信し、ソースがグランド信号Vssに接続される第7のNMOSトランジスタMN7と、を含む。第1信号Bがハイレベルで、第2信号BNがローレベルである場合、第0のNMOSトランジスタMN0はオンになり、第7のNMOSトランジスタMN7はオフになり、第1信号Bがローレベルで、第2信号BNがハイレベルである場合、第0のNMOSトランジスタMN0はオフになり、第7のNMOSトランジスタMN7はオンになる。
【0083】
本願の実施例では、第1論理ユニット23(図8を参照)は、ゲートが第4信号ANを受信し、ソースが第0のPMOSトランジスタMP0のドレインに接続される第1のPMOSトランジスタMP1と、ゲートが第3信号Aを受信し、ドレインが第1のPMOSトランジスタMP1のドレインに接続され、ソースが第0のNMOSトランジスタMN0のドレインに接続される第1のNMOSトランジスタMN1と、ゲートが第3信号Aを受信し、ソースが第7のPMOSトランジスタMP7のドレインに接続される第4のPMOSトランジスタMP4と、ゲートが第4信号ANを受信し、ドレインが第4のPMOSトランジスタMP4のドレインに接続され、ソースが第7のNMOSトランジスタMN7のドレインに接続される第4のNMOSトランジスタMN4と、を含む。
【0084】
第2論理ユニット24(図8を参照)は、ゲートが第3信号Aを受信し、ソースが第0のPMOSトランジスタMP0のドレインに接続される第2のPMOSトランジスタMP2と、ゲートが第4信号ANを受信し、ドレインが第2のPMOSトランジスタMP2のドレインに接続され、ソースが第0のNMOSトランジスタMN0のドレインに接続される第2のNMOSトランジスタMN2と、ゲートが第4信号ANを受信し、ソースが第7のPMOSトランジスタMP7のドレインに接続される第5のPMOSトランジスタMP5と、ゲートが第3信号Aを受信し、ドレインが第5のPMOSトランジスタMP5のドレインに接続され、ソースが第7のNMOSトランジスタMN7のドレインに接続される第5のNMOSトランジスタMN5と、を含む。
【0085】
また、第1のPMOSトランジスタMP1のドレインは第4のPMOSトランジスタMP4のドレインに接続され、第1演算信号Yを出力し、第2PMOSトランジスタMP2のドレインは第5PMOSトランジスタMP5のドレインに接続され、第2演算信号YNを出力する。
【0086】
排他的論理和を求めるように構成される第1論理ユニット23及び否定排他的論理和を求めるように構成される第2論理ユニット24が同一の共有モジュールに接続されるため、共有モジュールの回路構造の占有面積を小さくして、第1論理ユニット23及び第2論理ユニット24に対応する回路面積をより大きくすることができ、それにより、第1論理ユニット23及び第2論理ユニット24が有する駆動能力を向上させ、さらに、比較回路の否定排他的論理和演算又は排他的論理和演算の演算速度を向上させ、誤り訂正システムの誤り検出及び/又は誤り訂正速度の向上に寄与する。
【0087】
以下において、上述した誤り訂正システムで生成された第1チェックコード、第2チェックコード、第1演算コード及び第2演算コードに基づいて復号ユニット31をさらに説明する。図10は本願の実施例により提供される復号ユニットがバイトに対応する構成図であり、図11図10のバイト5に対応する復号ユニットの拡大構成図である。
【0088】
図10及び図11を参照すると、本願の実施例では、Xは3であり、Nは8であり、対応的に、デコーダ301は3つの入力端及び8つの出力端を有し、第2アンドゲートユニット304の数は8である。本願の実施例では、デコーダ301は3-8デコーダであり、3つの入力端はそれぞれ3つの第1演算コードを受信し、8つの出力端は8つの第1復号信号を出力し、各第1復号信号はそれぞれ同一のバイト内の8ビットのデータの状況を示す。
【0089】
図10において、p20、p21及びp22で第1演算コードを表し、p23、p25、p26及びp27で第2演算コードを表す。本願の実施例では、各復号ユニット31はX個の第1演算コード及びY個の第2演算コードを復号処理する。即ち、復号ユニット31の数はバイトの数と同じである。
【0090】
なお、図11は1つの第1復号信号と1つの第2アンドゲートユニット304との接続関係のみを示している。
【0091】
本願の実施例では、Xは3であり、Nは8であり、デコーダ301は3-8デコーダであり、該デコーダ301は3つの入力端及び8つの出力端を有し、3つの入力端はそれぞれ3つの第1演算コードを受信し、8つの出力端は8つの第1復号信号を出力し、各第1復号信号はそれぞれ同一のバイト内の8ビットのデータの状況を示す。
【0092】
本願の実施例では、第1演算コードp20、p21及びp22は0又は1であり、出力端は0から7で表され、第0ビットに誤りが発生した場合、第0ビットが第1演算コードの符号化演算に関与していないため、p20、p21及びp22はいずれも0であり、対応的に「0」の出力端は1であり、他の出力端はいずれも0であり、第1ビットに誤りが発生した場合、p20は1であり、p21及びp22は0であり、対応的に「1」の出力端は1であり、他の出力端はいずれも0であり、類推すると、第7ビットに誤りが発生した場合、p20、p21及びp22はいずれも1であり、対応的に「7」の出力端は1であり、他の出力端はいずれも0である。
【0093】
なお、他の実施例では、第1チェックコード及び各バイトのビットの数に応じて、デコーダの入力端の数及び出力端の数を合理的に設定してもよい。
【0094】
第1アンドゲートユニット302が有する特性として、入力端がいずれも1であれば、出力端が1であり、入力端のうちの1つ以上が0であれば、出力端が0である。本願の実施例では、第1アンドゲートユニット302は3つの入力端を有し、第1アンドゲートユニット302はさらに、選択された演算コードの数が2である場合、第1アンドゲートユニット302の1つの入力端が電源VDDに接続されるように構成される。
【0095】
ノアゲートユニット303が有する特性として、入力端がいずれも0であれば、出力端が1であり、1つ以上の入力端が1であれば、出力端が0であることである。本願の実施例では、ノアゲートユニット303は3つの入力端を有し、ノアゲートユニット303はさらに、選択されていない演算コードの数が2である場合、ノアゲートユニット303の1つの入力端がグランドVssに接続されるように構成される。
【0096】
本願の実施例では、選択された演算コードは、該バイトに対応する前記第2チェックコードを比較することによって得られた第2演算コードに対応し、選択されていない演算コードは、該バイトに対応する第2チェックコード以外の第2チェックコードを比較することによって得られた第2演算コードである。
【0097】
例えば、バイト0の場合、第2演算コードp23及びp24は、バイト0に対応する第2チェックコードp13及びp14を比較することによって得られた第2演算コードであり、第2演算コードp23及びp24は第1アンドゲートユニット302の入力端に入力され、他の第2演算コードp25、p26及びp27はノアゲートユニット303の入力端に出力される。バイト1の場合、第2演算コードp24及びp25は、バイト1に対応する第2チェックコードp14及びp15を比較することによって得られた第2演算コードであり、第2演算コードp24及びp25は第1アンドゲートユニット302の入力端に入力され、他の第2演算コードp23、p26及びp27はノアゲートユニット303の入力端に出力される。バイト4の場合、第2演算コードp23、p24及びp25は第1アンドゲートユニット302の入力端に入力され、他の第2演算コードp26及びp27はノアゲートユニット303の入力端に出力される。他のバイトの場合について、1つずつ列挙しない。
【0098】
第2アンドゲートユニット304の数は同一のバイト内のビットの数と同じである。本願の実施例では、Nは8であり、対応的に8つの第2アンドゲートユニット304を有し、8つの第2アンドゲートユニット304の出力に基づき、該バイトに誤りデータがあるか否か、及びどのビットに誤りが発生したかを判断する。
【0099】
本願の実施例では、各バイトに対して、復号ユニット31の回路は、いずれも同じであり、入力端の配線が異なるだけであり、各バイトに対応する第1アンドゲートユニット302及びノアゲートユニット303の入力端の配線は図4におけるpc3~pc7の5つの演算式によって決定され、各バイトについて、それに対応する第2チェックコードを比較することによって得られた第2演算コードは第1アンドゲートユニット302の入力端に接続され、それに対応する第2チェックコード以外の第2チェックコードを比較することによって得られた第2演算コードは、ノアゲートユニット303の入力端に接続され、また、未使用の第1アンドゲートユニット302の入力端は電源に接続され、未使用のノアゲートユニット303の入力端はグランドし、第1演算コードはデコーダ301の入力端に接続される。したがって、復号ユニット301は8本の配線のみを用いて入力端を接続し、各配線は1つの第1演算コード又は1つの第2演算コードを伝送し、配線及び面積を節減すると共に、復号速度の向上に寄与する。
【0100】
復号ユニット31を理解しやすくするために、バイト5に対応する復号ユニットを例とし、以下において復号ユニット31の動作原理を参照しながら、復号ユニット31をより詳細に説明する。
【0101】
8つの第2アンドゲートユニット304の出力がいずれも0であれば、該バイト内の全てのデータのいずれにも誤りが発生しないことが示される。
【0102】
8つの第2アンドゲートユニット304の出力のうち1つが1であれば、該バイトの1ビットのデータに誤りが発生したことが示される。本願の実施例では、該バイトのデータに誤りが発生した場合、第2演算コードp23、p24及びp26は影響を受けていずれも1になり、しかも第1アンドゲートユニット302の出力は1であり、選択されていない演算コードp25及びp27は影響を受けず、いずれも0であり、しかも、ノアゲートユニット303の出力は1であり、この場合、N個の第2アンドゲートユニット304のうちのどの第1復号信号に対応する第2アンドゲートユニット304の出力が1であれば、該第1復号信号に対応するビットのデータに誤りが発生したということである。
【0103】
理解されることとして、本願の実施例では、第1復号信号が1であり、その場合、対応するビットのデータに誤りが発生することを例とし、第1復号信号が0であれば、対応するビットのデータに誤りが発生しない。他の実施例では、第1復号信号が0であれば、対応するビットのデータに誤りが発生し、第1復号信号が1であれば、対応するビットのデータに誤りが発生しないように設定してもよく、対応的に、他の部分は当業者が必要に応じて自ら設計してもよく、例えば、第1復号信号がノアゲート回路に接続されて出力される。
【0104】
注意しておくと、Mバイト内の全てのデータのいずれにも誤りが発生せず、X個の第1チェックコードの1ビットのみに誤りが発生した場合、第1演算コードのうちの1つは1であり、さらにデコーダ301のうちの1つの出力は1であるが、Y個の第2チェックコードに誤りが発生しないため、全ての第2演算コードはいずれも0であり、さらに第1アンドゲートユニット302の出力は0であり、第2アンドゲートユニット304の出力もいずれも0であり、Mバイト内の全てのデータのいずれにも誤りが発生しないことが示される。Mバイト内の全てのデータのいずれにも誤りが発生せず、Y個の第2チェックコードの1ビットのみに誤りが発生した場合、第1演算コードはいずれも0であり、さらにデコーダ301の0出力端は1であるが、他のY-1個の第2チェックコードのいずれにも誤りが発生しないため、それに対応するY-1個の第2演算コードは0であり、第1アンドゲートユニット302の出力は0であり、さらに第2アンドゲートユニット304の出力もいずれも0であり、Mバイト内の全てのデータのいずれにも誤りが発生しないことが示される。
【0105】
本願の実施例は、構造及び性能に優れた誤り訂正システムを提供し、誤り訂正システムの特別な設計によってECCを実現し、1ビットの誤りを検出して訂正することを可能にすると共に、ハードウェア回路を低減して、誤り訂正システムの消費電力を低減し、符号化速度及び復号速度を向上させることもできる。また、第1チェックコード及び第2チェックコードの特別な設計によって、全てのデータ組み合わせに対する符号化時間の差が小さく、全てのデータ組み合わせに対する復号時間の差も非常に小さく、制御回路への要件を低減する。
【0106】
上記の各実施形態が本願を実現する具体的な実施例であり、実際の応用で、本願の趣旨と範囲を逸脱することなく形式や細部に各種の変化を実施できることが当業者に理解される。当業者であれば、本願の趣旨と範囲を逸脱することなく、各種の変更や修正を実施できるので、本願の保護範囲は請求項によって規定される範囲に準ずるべきである。
【産業上の利用可能性】
【0107】
本願の実施例は誤り訂正システムを提供し、記憶システムに適用され、記憶システムは読み書き操作中において複数のデータを書き込み又は読み取り、該複数のデータはMバイトに分割され、各バイトはN個の異なるビットのデータを有し、復号段階で、記憶システムはX個の第1演算コード及びY個の第2演算コードを生成し、第1演算コードはN個のデータに対して誤り検出及び/又は誤り訂正を行うように構成され、第2演算コードはMバイトに対して誤り検出及び/又は誤り訂正を行うように構成される。誤り訂正システムは、各々が1つのバイトに対応するM個の復号ユニットを含む。復号ユニットは、X個の前記第1演算コードを受信してN個の第1復号信号を出力するように構成されるデコーダであって、誤りデータのビットを特定するように構成されるデコーダと、誤りの発生したバイトを特定するように構成される第1アンドゲートユニット及びノアゲートユニットと、各々の入力端が対応する第1アンドゲートユニットの出力端及びノアゲートユニットの出力端に接続され、該バイトに誤りが発生したか否か及び誤りデータのビットを特定するように構成されるN個の第2アンドゲートユニットと、を含む。
【0108】
本願の実施例では、各バイトに対応する復号ユニットの回路は、同じ回路に設定してもよく、異なる復号ユニットの各入力端に接続される第1演算コード及び第2演算コートが異なるだけであり、これにより、誤り訂正システムにおける全ての復号ユニットの配線及び面積の節減に寄与すると共に、全てのバイトを同時に復号処理して誤り検出及び/又は誤り訂正を行うことができるため、誤り訂正システムの誤り検出及び訂正の速度を向上させることができる。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11