1つ又は複数の実施例についてはそれに対応する図面中の図によって例示的に説明するが、これらの例示的説明は実施例を限定するものではなく、図面において同じ参照用数字符号を付けた素子(要素)は類似的な素子であることを示し、特に断らない限り、図面中の図は比例を制限するものではない。
本願の実施例は比較システムを提供する。排他的論理和を実現するように構成される第1論理ユニットと、否定排他的論理和を実現するように構成される第2論理ユニットは、同一の共有モジュールを共有している。これは、回路面積の減少に寄与すると共に、第1論理ユニットと第2論理ユニットの面積を大きくし、第1論理ユニットと第2論理ユニットの駆動能力、排他的論理和演算及び否定排他的論理和演算の演算速度をさらに向上させることができ、記憶システムが誤り検出と誤り訂正を行う速度の向上に寄与する。
本願の実施例の目的、技術的解決手段及び利点をより明らかにするために、以下に図面を参照しながら本願の各実施例を詳細に説明する。ただし、本願の各実施例では、本願を読者(当業者)により明瞭に理解させるために多くの技術詳細を示したが、これらの技術詳細と下記の各実施例に基づく種々の変化と修正がなくても、本願が保護を主張する技術的解決手段を実現できることが当業者に理解される。
図1は本願の実施例で提供される比較システム内の比較回路の機能ブロック図であり、図2は本願の実施例で提供される比較システム内の比較回路の回路構造模式図であり、図3は本願の実施例で提供される比較システムの回路構造模式図である。
図1を参照し、本願の実施例において、比較システムは少なくとも1つの比較回路1を備え、該比較回路1は、電源信号Vcc及びグランド信号Vssに接続され、互いに逆相である第1信号Bと第2信号BNに基づいて電源信号Vcc又はグランド信号Vssを出力するように制御する共有モジュール10と、共有モジュール10に接続され、互いに逆相である第3信号Aと第4信号ANを受信し、第1信号Bと第3信号Aの排他的論理和である第1演算信号Yを出力するように構成される第1論理ユニット11と、共有モジュール10に接続され、第3信号Aと第4信号ANを受信し、第1信号Bと第3信号Aの否定排他的論理和である第2演算信号YNを出力するように構成されると第2論理ユニット12と、を備える。
説明すべきこととして、共有モジュール10と第1論理ユニット11、第2論理ユニット12との間の接続線はこれらの間の信号伝送関係を示すものであり、1つの信号線しかないわけではなく、信号線は1つであってもよいし、複数であってもよい。
以下において、図面を参照しながら本願の実施例で提供される比較システムを詳細に説明する。
本願の実施例において、図2を参照し、共有モジュール10(図1を参照)は、電源信号Vccに接続され、第1信号Bと第2信号BNに基づいて電源信号Vccを出力するように制御する第1共有ユニット21と、グランド信号Vssに接続され、第1信号Bと第2信号BNに基づいてグランド信号Vssを出力するように制御する第2共有ユニット22と、を備える。第1論理ユニット11(図1を参照)は第1共有ユニット21と第2共有ユニット22の間に接続され、第2論理ユニット12(図1を参照)は第1共有ユニット21と第2共有ユニット22の間に接続される。
本願の実施例において、図2を参照し、第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が遮断される。
第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が導通される。
本願の実施例において、第1論理ユニット11は、ゲートが第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と、を備える。
第2論理ユニット12は、ゲートが第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と、を備える。
また、第1PMOSトランジスタMP1のドレインが第4PMOSトランジスタMP4のドレインに接続され、第1演算信号Yを出力し、第2PMOSトランジスタMP2のドレインが第5PMOSトランジスタMP5のドレインに接続され、第2演算信号YNを出力する。
また、図3に示すように、比較システムは複数の比較回路1を含んでもよく、一部の比較回路1の出力は別の比較回路1の入力としてもよい。該比較システムは記憶システムに適用することが可能であり、例えば、記憶システムに対する誤り訂正符号化の技術に適用することが可能である。
本願の実施例で提供される比較システムにおいて、排他的論理和論理を実現するように構成される第1論理ユニット11と否定排他的論理和論理を実現するように構成される第2論理ユニット12は、同一の共有モジュール10に接続されており、したがって、共有モジュール10の回路構造の占める面積を減少させることができ、さらに、第1論理ユニット11及び第2論理ユニット12に対応する回路面積を大きくして、第1論理ユニット11及び第2論理ユニット12の駆動能力を高めることで、比較システムが否定排他的論理和演算及び排他的論理和演算を行う演算速度を高めることができる。
本願のいくつかの実施例において、前述の実施例とほぼ同じである比較システムをさらに提供し、該比較システムが記憶システムにも適用することが可能である点で相違している。以下において、図面を参照しながら該比較システムを詳細に説明する。説明すべきことは、上記実施例と同一又は相当する部分は、前述した実施例の詳細な説明を参照すればよく、以下では詳しく述べない。
図4は、本願の実施例で提供される比較システムと記憶システムの模式図である。
本願のいくつかの実施例において、比較システム20は、共有モジュール、第1論理ユニット及び第2論理ユニットを備える少なくとも1つの比較回路を備える。比較回路の具体的な構造についての説明は、前述した実施例の詳細な説明を参照すればよい。
本願の実施例において、図4に示すように、比較システム20は、読み書き動作中において複数のデータを書き込み又は読み取る記憶システム101に適用され、複数のデータはMバイトに分割され、各バイトはN個のデータを有し、MとNはいずれも正の自然数である。
比較システム20は、複数のデータを受信し、各データが第1信号又は第3信号として使用され、各バイト内のいくつかのデータに基づいて第1符号化演算を行ってX個の第1チェックコードを生成し、同一の第1チェックコードに対応するいくつかのデータは異なるバイトにおけるビットが同じであり、いくつかのバイト内の全てのデータに基づいて第2符号化演算を行ってY個の第2チェックコードを生成するように構成され、X個の第1チェックコードは各バイト内のN個のデータに対して誤り検出及び/又は誤り訂正するためのものであり、Y個の第2チェックコードはMバイトに対して誤り検出及び/又は誤り訂正するためのものであり、XとYはいずれも正の自然数である。
本願の実施例において、記憶システム101はDRAMであってもよく、例えばDDR4、LPDDR4、DDR5又はLPDDR5であってもよい。記憶システム101は他のタイプの記憶システムであってもよく、例えばNAND、NOR、FeRAM、PcRAM等の不揮発性メモリであってもよい。該記憶システム101では、データが異なるバイトに分割され、第1チェックコードが各バイト内のN個のデータに対して誤り検出及び/又は誤り訂正するためのものであり、第2チェックコードがMバイトに対して誤り検出及び/又は誤り訂正するためのものであり、このような誤り検出及び誤り訂正による符号化方式はECCを実現することができるだけでなく、より少ないハードウェア回路でECCを実現することもでき、記憶システムの消費電力低減及びECCの速度と結果の最適化に寄与する。
注意すべきこととして、本願の実施例で記載された第1チェックコードは各バイト内のN個のデータに対して誤り検出及び/又は誤り訂正するためのものであり、第2チェックコードはMバイトに対して誤り検出及び/又は誤り訂正するためのものである。理解すべきこととして、全ての第1チェックコード及び第2チェックコードは共にMバイトの全てのデータに対して誤り検出及び/又は誤り訂正を行うために用いられ、第2チェックコードは誤ったデータがMバイトのうちのどのバイトにあるかを特定するために用いられ、第1チェックコードは誤ったデータが該バイトにおけるどのビットにあるかを特定するために用いられる。
通常、バイトはデータ処理の基本単位である。情報がバイト単位で記憶及び解釈され、1バイトが8個の二進ビットからなるとの規定があり、即ち、1バイトが8ビットに等しく、8ビットのうちの各ビットは対応するビットを有し、即ち1Byte=8bitである。これを基に、本願の実施例において、Nは8であり、それによって、各バイトにおけるビットを最大化し、比較システム20に必要な回路の利用率の向上に寄与する。理解可能なこととして、他の実施例において、Nは他の適切な正整数としてもよい。
記憶システム101が1回の読み書き動作で伝送するデータが128ビット(即ち128 bits)であることを例にすると、Mは16、Nは8となる。説明すべきことは、他の実施例において、記憶システムが読み書き動作中において伝送するデータのビット数に応じて、Mは他の適切な正整数としてもよく、M*Nが読み書き動作中において伝送されるデータのビット数に等しくなればよい。
図5は本願の実施例で提供される複数データの分類模式図、及び第1チェックコード及び第2チェックコードとの間の関係模式図である。N個のデータの各々のビットは異なる。本願の実施例において、図5に示すように、各バイトについて、N個のデータは自然数で増加するように第0から第7のビットを有する。全てのバイトについて、Mバイトは第0から自然数で第15に増加する16バイトに分割される。また、異なるバイトについて、バイト内に有するN個のデータはいずれも第0から第7に増加する8ビットを有する。
説明すべきこととして、位置の制限により、図5において実際に同一行であるはずのテーブルは3つのテーブルに分解されるが、実際には1つの完全なテーブルである。図示の便宜上、図6はバイト0に対応する第1チェックコードの拡大図を模式的に示す。
図7は本願の実施例で提供される比較システムの機能ブロック図である。図7に示すように、比較システム20(図4を参照)は、複数の前記比較回路からなる第1比較モジュール102を備え、第1比較モジュール102は、記憶システム101(図4を参照)の書き込み動作の間で、複数のデータを受信して比較処理を行い、X個の第1チェックコード及びY個の第2チェックコードを生成するように構成される。
第1比較モジュール102は複数の比較回路を備えるため、複数のデータのうちのいくつかのデータに対して否定排他的論理和演算又は排他的論理和演算を行って、第1チェックコード及び第2チェックコードを生成することができる。
本願の実施例において、図7に示すように、第1比較モジュール102は、複数の第1比較ユニット112と複数の第2比較ユニット122とを備え、各第1比較ユニット112は、記憶システム101の書き込み動作の間で、各バイト内のいくつかのデータを受信して比較処理を行い、1つの第1チェックコードを出力するように構成され、各第1比較ユニット112はバイトにおける異なるビットで組み合わせたいくつかのデータを対応的に受信し、各第2比較ユニット122は、記憶システム101の書き込み動作の間で、いくつかのバイト内の全てのデータを受信して比較処理を行い、1つの第2チェックコードを出力するように構成され、各第2比較ユニット122は異なるバイトで組み合わせた全てのデータを対応的に受信する。
第1比較ユニット112はいくつかの前記比較回路からなり、第2比較ユニット122はいくつかの前記比較回路からなる。以下において、第1比較ユニット112及び第2比較ユニット122を詳細に説明する。
2X≧Nであり、且つ各第1チェックコードは全てのバイト内のいくつかのデータで第1符号化演算を行うことで得られ、且つ各第1チェックコードに対応するいくつかのデータはバイトにおける異なるビット組み合わせに対応する。つまり、各第1チェックコードは、各バイト内の複数ビットのデータを選択して第1符号化演算を行うことで得られ、且つ同一の第1チェックコードについて、全てのバイトにおいて選択されたビット組み合わせは同じであり、異なる第1チェックコードについて、N個のデータにおいて選択されたビット組み合わせは異なる。
本願の実施例において、異なる第1チェックコードは全てのバイト内の異なる的データに基づいて第1符号化演算を行うことで得られ、それによって、異なる第1チェックコードについて、第1チェックコードの結果に影響するビットは異なる。また、2X≧Nのため、各ビットが第1符号化演算に選択されることで得られた第1チェックコードは完全に同じでないようになり、それによって、分析によってどのビットに対応するデータが誤ったかを取得することができる。第1符号化演算は第1比較ユニット112により行われ、即ち、第1比較ユニット112が排他的論理和演算又は否定排他的論理和演算を行う。
本願の実施例において、Mは16、Nは8、Xは3である。第1比較ユニット112の数は3であり、第2比較ユニット122の数は5である。Xは3であれば、異なるビットのデータの誤りがいずれも摘出可能である要件を満たすとともに、第1比較ユニット112のハードウェア回路の複雑性を低下させることができる。
本願のいくつかの実施例において、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チェックコードは完全に同じでないことを満たせばよい。
第1符号化演算は排他的論理和であることを例にすると、3つの第1比較ユニット112はそれぞれ以下のように構成される。1つの第1比較ユニット112は、全てのバイト内の第1、第3、第5及び第7ビットのデータに対して排他的論理和演算を行い、最下位ビットにある第1チェックコードを生成するように構成される。別の第1比較ユニット112は、全てのバイト内の第4、第5、第6及び第7ビットのデータに対して排他的論理和演算を行い、最上位ビットにある第1チェックコードを生成するように構成される。さらに別の第1比較ユニット112は、全てのバイト内の第2、第3、第6及び第7ビットのデータに対して排他的論理和演算を行い、中位ビットにある第1チェックコードを生成するように構成される。
説明すべきこととして、他の実施例において、第1符号化演算は否定排他的論理和であってもよく、それに応じて、1つの第1比較ユニットは、全てのバイト内の第1、第3、第5及び第7ビットのデータに対して否定排他的論理和演算を行い、1つの第1チェックコードを生成するように構成され、別の第1比較ユニットは、全てのバイト内の第4、第5、第6及び第7ビットのデータに対して否定排他的論理和演算を行い、別の第1チェックコードを生成するように構成され、さらに別の第1比較ユニットは、全てのバイト内の第2、第3、第6及び第7ビットのデータに対して否定排他的論理和演算を行い、さらに別の第1チェックコードを生成するように構成される。
各第2比較ユニット122は、1つの第2チェックコードを生成するように構成され、Y個の第2チェックコードはYビットの第2二進数を構成する。2Y≧Mであり、且つ各第2チェックコードはいくつかのバイトで第2符号化演算を行うことで得られる。本願の実施例において、第2符号化演算は、第2比較ユニット122によって実現され、否定排他的論理和演算又は排他的論理和演算であってもよい。
2Y≧Mのため、各バイトが第2符号化演算に関与することで得られた第2チェックコードは完全に同じではない。本願の実施例において、異なる第2チェックコードは、いくつかの異なるバイトに基づいて第2符号化演算を行うことで得られ、それによって、異なる第2チェックコードについて、第2チェックコードの結果に影響するバイトが異なるようになり、さらに、どのバイト内のデータが誤ったかを総合的に分析して取得することができる。さらにバイトにおけるどのビットが誤ったかに基づき、最終的に、どのバイト内のどのビットのデータが誤ったかを判定する。注意すべきこととしては、ここで記載された第2チェックコードの結果に影響することは、特定のバイト内のデータが誤ったら、改めて第2符号化演算を行って得られる該特定の第2チェックコードは、データが誤る前に形成された該第2チェックコードと異なるという意味である。本願の実施例において、Yは5であり、異なるバイトのデータの誤りがいずれも摘出可能であることを満たすとともに、第2比較ユニット122のハードウェア回路の複雑性を低下させることができる。
本願の実施例において、Mバイトは自然数で増加するように第0から第15のバイトに分割され、Y個の第2チェックコードは自然数で増加するように第3から第7の第2チェックコードに分割され、5つの第2チェックコードの取得方法はそれぞれ以下のとおりである。
第3の第2チェックコード(図5中のp13に対応する)は、第0、第2、第3、第4、第5、第6及び第8のバイトの全てのデータの排他的論理和又は否定排他的論理和であり、第4の第2チェックコード(図5中のp14に対応する)は、第0、第1、第4、第5、第7、第9、第10及び第12のバイトの全てのデータの排他的論理和又は否定排他的論理和であり、第5の第2チェックコード(図5中のp15に対応する)は、第1、第2、第4、第6、第9、第11、第13及び第14个バイトの全てのデータの排他的論理和又は否定排他的論理和であり、第6の第2チェックコード(図5中のp16に対応する)は、第3、第5、第6、第7、第10、第11、第14及び第15のバイトの全てのデータの排他的論理和又は否定排他的論理和であり、第7の第2チェックコード(図5中のp17に対応する)は、第8、第9、第10、第11、第12、第13及び第15のバイトの全てのデータの排他的論理和又は否定排他的論理和である。
説明すべきこととして、各第2チェックコードはいずれも排他的論理和演算によって得られるか、又は各第2チェックコードはいずれも否定排他的論理和演算によって得られる。
それに応じて、第2比較ユニット122に対応する回路は以下のように設計される。
バイト0及びバイト4の排他的論理和結果に対して排他的論理和を行い、結果0_4を得、バイト2及びバイト6の結果に対して排他的論理和を行い、結果2_6を得、バイト3及びバイト5の結果に対して排他的論理和を行い、結果3_5を得、バイト1及びバイト5の結果に対して排他的論理和を行い、結果1_5を得、バイト1及びバイト4の結果に対して排他的論理和を行い、結果1_4を得る。
図8に示すように、図8は全てのバイトに対して第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を得る必要もある。
pc3からpc7の演算式要求に応じて排他的論理和を行う。例えば、演算式pc3によって、結果0_4、結果2_6、結果3_5及びバイト8の排他的論理和結果に対して排他的論理和を行い、第2チェックコードp13を得(図5を参照)、演算式pc4によって、結果0_4、結果1_5、結果7_9及び結果10_12に対して排他的論理和を行い、第2チェックコードp14を得る(図5を参照)。第2チェックコードp15、p16及びp17(図5を参照)の取得方法については、具体的に説明しない。理解可能なこととして、結果0_4、結果2_6等はいずれも繰り返し使用可能であり、それによって回路資源が節約される。
また、本願の実施例において、第2比較ユニット122はさらに、各バイトが第2符号化演算に関与する回数がaであり、aが(Y-1)/2≦a≦(Y+1)/2を満たし、且つaが正整数であるように構成されてもよい。このような設定によって、後続の復号段階に必要な復号回路において、回路の配線及び面積が減少可能になり、且つ復号速度の向上に寄与する。
以下において、図5及び図6を参照しながら第1チェックコードの生成原理を説明する。
図5及び図6に示すように、「×」は、現在、この行の符号化演算に関与していることを表し、即ち、否定排他的論理和又は排他的論理和を行うことを表し、且つ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に対応する。
符号化段階の第1符号化演算又は第2符号化演算時、pc0からpc7の8つの演算式により第1符号化演算又は第2符号化演算を行い、演算の結果はそれぞれp10からp17に保存され、且つp10からp17は第1符号化演算又は第2符号化演算に関与しない。復号段階で、各行に対応する演算式は変更せず、且つ記憶されたp10からp17は演算に関与する必要があるため、図5のテーブルにおけるp10からp17はそれに応じて「×」が付けられ、この点については、後述で詳細に説明する。
本願の実施例において、符号化段階では、各バイトについて、このバイト内の第1、3、5、7ビットのデータに対して排他的論理和又は否定排他的論理和を行い、さらに16バイトの全ての排他的論理和結果又は否定排他的論理和結果に対して排他的論理和又は否定排他的論理和を行い、即ちpc0の演算式を採用し、演算の結果をp10に与える。各バイトについて、このバイト内の第2、3、6、7ビットのデータに対して排他的論理和又は否定排他的論理和を行い、さらに16バイトの全ての排他的論理和結果又は否定排他的論理和結果に対して排他的論理和又は否定排他的論理和を行い、pc1演算式を採用し、演算の結果をp11に与える。各バイトについて、このバイト内の第4、5、6、7ビットのデータに対して排他的論理和又は否定排他的論理和を行い、さらに16バイトの全ての排他的論理和結果又は否定排他的論理和結果に対して排他的論理和又は否定排他的論理和を行い、即ちpc2演算式を採用して、演算の結果をp12に与える。
p10、p11及びp12は第1二進数を構成し、且つp10が最下位ビットでp12が最上位ビットである。記憶システム101(図4を参照)の複数のデータのうち1ビットのデータのみが誤った場合、以下のことが明らかである。
第0ビットのデータが誤ったら、第0ビットがpc0、pc3及びpc3の3つの演算式に関与していないため、第1チェックコードp10、p11及びp12はいずれも影響されていない。
第1ビットのデータが誤ったら、第1ビットがpc1及びpc2の2つの演算式に関与せずpc0の演算式に関与しているため、第1チェックコードp10は影響され、第1チェックコードp11及びp12は影響されていない。
第2ビットのデータが誤ったら、第2ビットがpc1の演算式に関与しているため、第1チェックコードp10及びp12は影響されず、第1チェックコードp11は影響されている。
第3ビットのデータが誤ったら、第3ビットがpc0及びpc1の2つの演算式に関与しているため、第1チェックコードp10及びp11はいずれも影響され、第1チェックコードp12は影響されていない。
以降同様、第7ビットのデータが誤ったら、第7ビットがpc0、pc1及びpc2の3つの演算式に関与しているため、第1チェックコードp10、p11及びp12はいずれも影響されている。
注意すべきこととして、ここでいう特定のデータが誤ったら特定の第1チェックコードが影響されることは、特定のデータが誤ったら、改めて第1符号化演算を行って得られる該特定の第1チェックコードは、データが誤った前に形成された該第1チェックコードと異なるという意味である。
理解可能なこととして、各演算式について、異なるバイトにおいて第1符号化演算に関与するビットは同じであるため、第1チェックコードによってどのビットのデータが誤ったかを取得することができるが、どのバイト内の対応するビットのデータが誤ったかを検出できない。したがって、さらに第2チェックコードによってどのバイト内の対応するビットのデータが誤ったかを取得する必要がある。
上記分析から明らかなように、第1チェックコードの取得及び第2チェックコードの取得には、いずれも否定排他的論理和演算又は排他的論理和演算が用いられ、したがって、本願の実施例による比較システムは、第1チェックコード及び第2チェックコードを取得するように記憶システムに適用することが可能である。
また、本願の実施例において、比較システム20は、複数の比較回路からなる第2比較モジュール202(図7を参照)を含んでもよく、記憶システム101の読み取り動作の間で、複数のデータ、X個の第1チェックコード及びY個の第2チェックコードを受信するように構成され、第1チェックコード、第2チェックコード又はデータは第1信号又は第3信号として使用される。第2比較モジュール202は、各バイト内のいくつかのデータ及びX個の第1チェックコードに対して第3符号化演算を行って、それぞれ1つの第1チェックコードに対応するX個の第1演算コードを生成し、いくつかのバイト内の全てのデータ及びY個の第2チェックコードに対して第4符号化演算を行って、それぞれ1つの第2チェックコードに対応するY個の第2演算コードを生成するように構成され、第3符号化演算は否定排他的論理和又は排他的論理和であり、第4符号化演算は否定排他的論理和又は排他的論理和である。
本願の実施例において、第3符号化演算及び第1符号化演算は演算に関与するデータのビットが同じであり、第3符号化演算において第1チェックコードも演算に関与する点で相違しており、第4符号化演算及び第2符号化演算は演算に関与するバイトが同じであり、第4符号化演算において第2チェックコードも演算に関与する点で相違している。
一般的には、復号段階は、読み取り動作時のデータ読み取りプロセスに行われる。本願の実施例において、図5及び第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演算コードは図5においてPBに対応する。
同様に、第2チェックコード及び第2演算コードについて、復号段階での符号化演算は、前述の符号化段階の符号化演算の基に、それぞれ第2チェックコードp13、p14、p15、p16又はp17に対して排他的論理和を行う必要があり、対応的に、第2演算コードp23、p24、p25、p26又はp27を得る。
p20、p21及びp22は第2二進数を構成し、且つp20が最下位ビットでp22が最上位ビットである。メモリの複数のデータのうち1ビットのデータのみが誤った場合、第3符号化演算が排他的論理和であれば(他の実施例では否定排他的論理和であってもよい)、以下のことが明らかである。
第0ビットのデータが誤ったら、第0ビットがpc0、pc1及びpc2の3つの演算式に関与していないため、第1演算コードp20、p21及びp22はいずれも0であり、第0ビットのデータが誤ったことを検出するように、第2二進数は000であり、対応する十進数は0となる。
第1ビットのデータが誤ったら、第1ビットがpc1及びpc2の2つの演算式に関与せず、pc0の演算式に関与しているため、第1演算コードp20は1であり、第1演算コードp21及びp22は0であり、第1ビットのデータが誤ったことを検出するように、第2二進数は001であり、対応する十進数は1となる。
第2ビットのデータが誤ったら、第2ビットがpc1の演算式に関与しているため、第1演算コードp20は0であり、第1演算コードp21は1であり、p12は0であり、第2ビットのデータが誤ったことを検出するように、第2二進数は010であり、対応する十進数は2となる。
第3ビットのデータが誤ったら、第3ビットがpc0及びpc1の2つの演算式に関与しているため、第1演算コードp20及びp21はいずれも1であり、p12は0であり、第3ビットのデータが誤ったことを検出するように、第2二進数は011であり、対応する十進数は3となる。
以降同様、第7ビットのデータが誤ったら、第7ビットがpc0、pc1及びpc2の3つの演算式に関与しているため、第1演算コードp20、p21及びp22はいずれも1であり、第7ビットのデータが誤ったことを検出するように、第2二進数は111であり、対応する十進数は7となる。
図7を参照し、上記第1演算式及び第2演算式の取得原理から分かるように、第2比較モジュール202は、1つ以上の第3比較ユニット212と、1つ以上の第4比較ユニット222と、1つ以上の第5比較ユニット232と、1つ以上の第6比較ユニット242とを備える。
第3比較ユニット212は前記少なくとも1つの比較回路を備え、各第3比較ユニットは、記憶システムの読み取り動作の間で、各バイト内のいくつかのデータを受信して比較処理を行い、1つの第1更新チェックコードを出力するように構成され、各第3比較ユニット212はバイトにおける異なるビットで組み合わせたいくつかのデータを対応的に受信する。
第4比較ユニット222は前記少なくとも1つの比較回路を備え、各第4比較ユニット222は、記憶システムの読み取り動作の間で、いくつかのバイト内の全てのデータを受信して比較処理を行い、1つの第2更新チェックコードを出力するように構成され、各第4比較ユニット222は異なるバイトで組み合わせた全てのデータを対応的に受信する。
第5比較ユニット232は、前記少なくとも1つの比較回路を備え、各第1チェックコードと1つの第1更新チェックコードは、1つの第5比較ユニット232に対応する第1信号と第3信号として使用され、各第5比較ユニット232は、1つの第1演算コードを出力する。
第6比較ユニット242は、前記少なくとも1つの比較回路を備え、各第2チェックコードと第2更新チェックコードは、1つの第6比較ユニット242に対応する第1信号と第3信号として使用され、各第6比較ユニット242は1つの第2演算コードを出力する。
本願の実施例において、第3比較ユニット212の数は第1比較ユニット112の数相同と同じであってもよく、第4比較ユニット222の数は第2比較ユニット122の数と同じであってもよい。理解可能なこととして、本願の実施例において、第3比較ユニット212と前記第1比較ユニット112は比較回路を共有してもよく、第4比較ユニット222と前記第2比較ユニット122は比較回路を共有してもよい。
本願の実施例において、図7及び図9によれば、記憶システム20は、X個の第1演算コード及びY個の第2演算コードを受信し、誤ったデータ位置を特定するように構成される復号モジュール203をさらに備えてもよい。本願の実施例において、X個の第1演算コードは誤ったビットを特定するために用いられ、Y個の第2演算コードは誤ったバイトを特定するために用いられる。第1演算コード及び第2演算コードは誤ったデータを特定するために用いられる具体的な原理及び説明については、第1チェックコード及び第2チェックコードについての前記関連説明を参照すればよく、ここでは詳しく述べない。
図9は本願の実施例で提供される記憶システムにおける復号モジュールの具体的な構成図である。図9を参照し、復号モジュール203は、個々が1バイトに対応するM個の復号ユニット31であって、X個の第1演算コード及びY個の第2演算コードを復号処理し、バイト内に誤ったデータがあるか否かを取得し、誤ったデータのビットを特定するように構成される復号ユニット31を備える。図9ではp20、p21及びp22で第1演算コードを示し、p23、p24、p25、p26及びp27で第2演算コードを示す。本願の実施例において、各復号ユニット31は該バイトに対応するX個の第1演算コード及びY個の第2演算コードを復号処理する。
つまり、復号ユニット31の数はバイトの数と同じである。
図10は本願の実施例で提供される復号モジュールにおけるバイト5に対応する復号ユニットの拡大構成図である。
図10を参照し、本願の実施例において、復号ユニット31(図9を参照)は、X個の第1演算コードを受信し、N個の第1復号信号を出力するように構成されるデコーダ301であって、各第1復号信号はN個のデータの1ビットに対応するデコーダと、少なくとも2つの選択された演算コードを受信し、論理積演算を行うように構成される第1アンドゲートユニット302であって、選択された演算コードは、Y個の第2チェックコードのうち、対応するバイトに対応する第2チェックコードに対して符号化演算を行った後に得られた第2演算コードである第1アンドゲートユニットと、少なくとも2つの未選択演算コードを受信し、否定論理和演算を行うように構成されるノアゲートユニット303であって、未選択演算コードは、Y個の第2演算コードのうち、選択された演算コードを除いた第2演算コードであるノアゲートユニットと、それぞれの入力端が第1アンドゲートユニット302の出力端、ノアゲートユニット303の出力端及び1つの第1復号信号に接続されるN個の第2アンドゲートユニット304であって、その出力に基づき、誤ったデータ位置が取得される第2アンドゲートユニットと、を備える。説明すべきことは、ここでいう対応するバイトに対応する第2チェックコードとは、バイトが選択されて第2符号化演算に関与することで形成された第2チェックコードという意味である点であり、例えば、図5から分かるように、第0バイトに対応する第2チェックコードはp13及びp14である。
説明すべきこととして、図10は1つの第1復号信号と1つの第2アンドゲートユニット304の接続関係のみを示す。
本願の実施例において、デコーダ301は3‐8デコーダであり、3つの入力端が3つの第1演算コードをそれぞれ受信し、8つの出力端が8つの第1復号信号を出力し、且つ各第1復号信号が同一のバイト内の8ビットのデータの状況をそれぞれ表す。
本願の実施例において、第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である。
説明すべきこととして、他の実施例において、第1チェックコード及び各バイトにおけるビットの数によって、デコーダの入力端の数及び出力端の数を合理的に設定することもできる。
第1アンドゲートユニット302は、入力端がいずれも1であれば出力端が1となり、入力端のうち1つ又は複数が0であれば出力端が0となるという特性を有する。本願の実施例において、第1アンドゲートユニット302は3つの入力端を有し、第1アンドゲートユニット302はさらに、選択された演算コードの数が2の場合、第1アンドゲートユニット302の1つの入力端が電源VDDに接続されるように構成される。
ノアゲートユニット303は、入力端がいずれも0であれば出力が1となり、入力端のうち1つ又は複数が1であれば出力端が0となるという特性を有する。本願の実施例において、ノアゲートユニットは3つの入力端を有し、ノアゲートユニット303はさらに、未選択演算コードの数が2の場合、ノアゲートユニット303の1つの入力端がグランド信号Vssに接続されるように構成される。
それに応じて、本願の実施例において、選択された演算コードは、このバイトについて、それに対応する第2チェックコードに対して第4符号化演算を行った後に得られた第2演算コードであり、未選択演算コードは、このバイトについて、それに対応する第2チェックコードを除いた他の第2チェックコードに対して第4符号化演算を行った後に得られた第2演算コードである。
例えば、バイト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の入力端に入力される。他のバイトについては、特に列挙しない。
第2アンドゲートユニット304の数は同一のバイトにおけるビットの数と同じである。本願の実施例において、Nが8であれば、それに応じて8つの第2アンドゲートユニット304を有し、且つ8つの第2アンドゲートユニット304の出力に基づいて該バイトに誤ったデータがあるか否か及びどのビットが誤ったかを判定する。
明らかなように、本願の実施例において、各バイトについて復号ユニット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演算コード又は1つの第2演算コードを伝送し、それにより配線路及び面積が減少するとともに、復号速度の向上に寄与する。
復号回路を容易に理解するために、バイト5に対応する復号ユニットを例にし、以下において復号回路の作動原理に基づいて復号回路をより詳細に説明する。
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復号信号に対応するビットのデータは誤る。
理解可能なこととして、本願の実施例において、第1復号信号が1であれば対応するビットのデータが誤ったことを例にし、第1復号信号が0であれば対応するビットのデータが誤っていない。他の実施例において、第1復号信号が0であれば対応するビットのデータが誤っており、且つ第1復号信号が1であれば対応するビットのデータが誤っていないように設定してもよく、それに応じて、当業者は、例えば、第1復号信号をノアゲート回路に接続して出力する等のように、必要に応じて他の部分を自ら設計することができる。
注意すべきこととして、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バイト内の全てのデータはいずれも誤っていないことが示される。
理解可能なこととして、本願の実施例において、第1チェックコードに基づいて第1演算コードを生成し、第1チェックコードに基づいて生成された第1演算コードによりバイトにおいて誤ったデータの位置を特定するため、第1チェックコードは各バイト内のN個のデータに対して誤り検出及び/又は誤り訂正するためのものである。第2チェックコードに基づいて第2演算コードを生成し、第2チェックコードに基づいて生成された第2演算コードにより誤ったバイトの位置を特定するため、第2チェックコードはMバイトに対して誤り検出及び/又は誤り訂正するためのものである。
本願の実施例は記憶システムに適用される優れた構造性能を有する比較システムを提供し、1ビットの誤りを検出及び訂正できるとともに、ハードウェア回路を減少し、さらに記憶システムの消費電力を低減し、符号化速度及び復号速度を高め、記憶システムが誤り検出及び誤り訂正を行う速度を高めることができる。また、第1チェックコード及び第2チェックコードの特殊設計によって、全てのデータ組み合わせの符号化時間の差を小さくし、且つ全てのデータ組み合わせの復号時間の差も小さくし、それにより比較システムに対する要求が低下する。
上記の各実施形態が本願を実現する具体的な実施例であり、実際の応用で、本願の趣旨と範囲から逸脱することなく形式や細部に各種の変化を実施できることが当業者に理解される。当業者であれば、本願の趣旨と範囲から逸脱することなく、各種の変更や修正を実施できるので、本願の保護範囲は請求項によって限定される範囲に準ずるべきである。