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

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

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

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