JP4192154B2 - エラー訂正のためのデータの分割 - Google Patents

エラー訂正のためのデータの分割 Download PDF

Info

Publication number
JP4192154B2
JP4192154B2 JP2005003560A JP2005003560A JP4192154B2 JP 4192154 B2 JP4192154 B2 JP 4192154B2 JP 2005003560 A JP2005003560 A JP 2005003560A JP 2005003560 A JP2005003560 A JP 2005003560A JP 4192154 B2 JP4192154 B2 JP 4192154B2
Authority
JP
Japan
Prior art keywords
nibbles
codeword
nibble
memory devices
chunk
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005003560A
Other languages
English (en)
Other versions
JP2005202957A (ja
Inventor
セオドル・カーター・ブリッグス
ジェイ・ツァオ
クリス・マイケル・ブルーゲン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of JP2005202957A publication Critical patent/JP2005202957A/ja
Application granted granted Critical
Publication of JP4192154B2 publication Critical patent/JP4192154B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/1028Adjacent errors, e.g. error in n-bit (n>1) wide storage units, i.e. package error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents

Description

本発明は、エラー訂正、特にエラー訂正のためにデータを分割することに関する。
電子システムにおいて、送信エラーまたは記憶エラー等のデータエラーを検出しかつ/または訂正するために、一般に誤り符号が使用される。
誤り符号の1つの一般的な使用法は、コンピュータシステムのメモリに格納されたデータに対しエラーを検出し訂正するというものである。
たとえば、データを1つまたは複数のメモリデバイスに格納する前に、誤り訂正ビットまたは検査ビットをデータに対して生成することができる。
この誤り訂正ビットをデータに付加することにより、メモリに格納されるデータ構造を提供する。
このデータを1つまたは複数のメモリデバイスから読み出す時、検査ビットを使用してデータ内のエラーを検出しまたは訂正することができる。
エラーは、たとえば、コンピュータシステムにおける不良コンポーネントまたはノイズによってもたらされる可能性がある。
不良コンポーネントには、不良ピン等、不良メモリデバイスまたはコンピュータシステム内のデバイス間の不良データ経路があり得る。
これらのエラーに関連する労力を軽減するエラー管理技法が開発された。
パーソナルコンピュータで使用される1つの簡単な技法は、パリティチェックとして知られている。
パリティチェックは、1つのデータに関連する単一ビットを利用して、データにシングルビットエラーがあるか否かを判断する。
パリティチェックでは、多ビットエラーを検出することはできず、エラーを訂正する手段は提供されない。
サーバ等のより高精度なシステムでは、いくつかのエラーを検出して訂正するために誤り訂正符号(ECC)を使用する。
誤り訂正符号(ECC)は、1つのデータに関連するビット群または符号から構成される。
一般的なECCシステムは、64ビットのデータに対し8つのECCビット(検査ビット、訂正ビット)を使用する場合がある。
ECCビットは、シングルビットエラーを検出し訂正するためかまたはダブルビットエラーを検出するために、十分な情報をECCアルゴリズムに提供する。
サーバが採用する1つのエラー訂正機能を、当業界ではチップキルと呼ぶ。
チップキルという用語は、メモリにおける多ビットエラーを訂正することができることを指し、この場合、多ビットエラーはメモリデバイスの幅に基づく。
たとえば、4ビット幅の32メガビットダイナミックランダムアクセスメモリ(DRAM)デバイスの場合、チップキル機能をサポートするシステムは、メモリデバイスにおいて4ビット幅エラーを訂正することができる。
このため、チップキルをサポートする4ビット幅構成に編成されたDRAMサイクル(たとえば、読出し動作、書込み動作)中のDRAMチップ全体の障害により、システムが障害を起こさない。
任意の1つのメモリデバイスにおいて多ビットエラーが発生した場合に、チップキルによって、システムは動作することができる。
以下は、本発明のいくつかの態様が基本的に理解されるために本発明の簡単な概要を提示する。
この概要は、本発明の広範囲にわたる概観ではない。
本発明の重要なまたは重大な要素を特定することも本発明の範囲を詳述することも意図されていない。
その唯一の目的は、後に提示するより詳細な説明に対する序文として簡単な形態で本発明の何らかの全般的な概念を提示することである。
一実施形態では、本発明は、メモリシステムの複数のメモリデバイスに書込みを行う方法を含む。
メモリシステムに格納されるコードワードを受け取り、複数のニブルに分割する。
それらニブルは、複数のメモリデバイスの幅に対応するビット幅を有する。
データのブロックの複数の連続したニブルを複数のメモリデバイスのそれぞれに格納することにより、分割されたコードワードを複数のメモリデバイスに格納する。
別の実施形態では、本発明は、メモリシステムの複数のメモリデバイスから読出しを行う方法を含む。
複数のメモリデバイスからデータの複数のチャンクを読み出す。
ここで、各チャンクは、複数のメモリデバイスのそれぞれからのニブルを含み、それらニブルは、1つまたは複数の対応するメモリデバイスの幅に対応する幅を有する。
複数のチャンクからのニブルを結合することにより、コードワードを生成する。
そこで、複数のメモリデバイスのそれぞれからのニブルは、コードワードにおいて隣接している。
さらに別の実施形態では、本発明はメモリシステムを含む。
データバッファが、複数のメモリデバイスからビットのチャンクを読み出し、かかる複数のメモリデバイスにビットのチャンクを書き込む。
データコンバイナが、バッファによって読み出されたビットのチャンクを受け取り、それらチャンクをメモリデバイスのうちの少なくとも1つに対応する幅を有する複数のニブルに分離し、それぞれのチャンクにおける相対位置が同じであるニブルをコードワードにおいて互いに隣接するように配置することにより、コードワードを形成する。
データセパレータが、コードワードを受け取り、そのコードワードを、バッファによってメモリデバイスに格納されるように複数のチャンクに分離する。
データセパレータは、コードワードを、複数のメモリデバイスのうちの少なくとも1つの幅に対応する幅を有する、複数の連続したニブルに分割し、それらニブルを隣接するニブルのグループに分割し、各グループのニブルがそれらのそれぞれのチャンクにおいて同じ相対位置にあるようにニブルの各グループから1つのみのニブルを有するビットのチャンクを生成する。
本発明を例示する目的で、図面に、目下好ましい形態を示す。
しかしながら、この発明は、示される正確な構成および手段に限定されない、ということが理解される。
本発明は、包括的には、コードワードにおけるエラーを検出し訂正するシステムおよび方法に関する。
複数のエラー検出・訂正ビットとデータビットとを有するコードワードを、ニブルに分割する。
コードワードにおいて互いに隣接するニブルを、共通する物理伝送媒体で送信しかつ/または共通する物理記憶媒体に格納する。
共通する物理媒体の障害の場合、コードワードがその物理媒体から復元される時、障害により隣接するニブルにエラーが生じる。
言い換えれば、共通する物理媒体の障害により誤りがあるコードワードのビットが、コードワードに連続したストリングを形成する。
誤り訂正符号を、ビットがコードワードを通して分散されている(隣接していない)場合より互いに隣接している場合の方がより多くの誤ったビットを訂正するように構成してもよい。
本発明の一実施形態によりデータを分割することによって、より低いエラー検出・訂正ビットのオーバーヘッドで、共通する物理媒体の障害からもたらされる誤ったビットを訂正することを可能にすることができる。
同様の参照数字が同様の要素を示す図面に関して、本発明の実施形態により複数のメモリデバイスに書込みを行う方法を、図1のフローチャート100と図2に示すメモリシステム200とを参照して説明する。
ステップ102において、エラー検出・訂正モジュール210がデータブロックを受け取る。
エラー検出・訂正モジュール210は、ステップ104においてデータブロックからエラー検出・訂正ビットを生成し、ステップ106において、データブロックとエラー検出・訂正ビットとを結合することによりコードワードを形成する。
ステップ108において、データセパレータ208が、コードワードを受け取り、それをメモリデバイス202のビット幅に対応するビット幅を有するニブルに分割し、それらニブルを隣接するニブルのグループに分割する。
グループにおけるニブルの数は、コードワードのビット幅をメモリデバイスにわたるアドレスラインのビット幅で割った数に等しい。
ステップ110において、データセパレータ208は、ニブルの各グループから1つのニブルを有するニブルのチャンクを生成する。
ステップ112において、バッファ204がそれらニブルのチャンクを受け取り、メモリデバイス202に格納することにより、各グループのニブルが同じメモリデバイス202に格納される。
図1に関して上述した方法を、図3に示すコードワードおよびメモリデバイスを参照して一例において説明する。
図3に示すコードワードは、12のニブルA〜Lを有し、3つのメモリデバイス0〜2があり、そこでは各メモリデバイスのビット幅はニブルのビット幅に等しい。
ニブルを、図3に示すようにグループ毎に4つの隣接するニブルのグループになるように形成する。
図3に示すように、0〜3とラベル付けされた4つのチャンクが形成されており、そこでは、各チャンクは各グループから1つのニブルを有し、メモリデバイス202のアドレスラインに書き込まれる。
図3に示すようにコードワードを分割することにより、メモリデバイス1に障害が発生した場合に、メモリデバイスから読み出される結果としてのコードワードは、[A,B,C,D,X,X,X,X,I,J,K,L](Xは誤ったニブル(すなわち、メモリデバイス1の障害によりエラーを有するニブル)を示す)となる。
誤ったニブルは、復元されたコードワードにおいて互いに隣接し、したがって、隣接していない4つの誤ったニブルを訂正するために必要である可能性のある訂正ビットより少ない訂正ビットを使用する誤り符号を用いて訂正可能であり得る。
本発明の一実施形態による複数のメモリデバイスからのコードワードを読み出す方法について、図4のフローチャート400と図2に示すメモリシステム200とを参照して説明する。
ステップ402において、バッファ204がメモリデバイス202から複数のチャンクを読み出す。
ここで、各チャンクは、複数のメモリデバイス202のそれぞれからのニブルを含み、ニブルのビット幅は、対応するメモリデバイス202の幅に対応する。
ステップ404において、データコンバイナ206が、バッファ204から複数のチャンクを受け取り、それら複数のチャンクにおけるニブルからコードワードを生成する。
これらニブルは、コードワードにおける順序で配置されているため、複数のメモリデバイスのそれぞれからのニブルは、コードワードにおいて隣接している。
エラー検出・訂正モジュール210がコードワードを受け取り、そのコードワードに対してエラー検出・訂正アルゴリズムを実行することによりコードワードのエラーを検出しかつ/または訂正する。
そして、エラー検出・訂正モジュール210は、コードワードからデータビットを抽出し、対応するデータブロックを出力する。
図3の例示的なコードワードとメモリデバイスとを参照すると、コードワードは以下のようにメモリデバイスから読み出される。
この例では、コードワードはニブルの4つのチャンク(0〜3とラベル付け)から形成される。
バッファ204は、チャンクとそれらの対応するニブルとが以下のように識別されるメモリデバイスから4つのチャンクを読み出す。
チャンク ニブル
チャンク0 [A,E,I]
チャンク1 [B,F,J]
チャンク2 [C,G,K]
チャンク3 [D,H,L]
データコンバイナ206は、バッファ204からニブルの4つのチャンクを受け取り、それらニブルをA〜Lの順序に再構成することによりコードワードを形成する。
そして、上述したように、ステップ406および408において、コードワードをエラー検出・訂正モジュール210によってさらに処理する。
図3に関して説明した例は、単に例示の目的のためのものであり、本発明は、概して、コードワード、ニブル、チャンクおよびメモリデバイスの他の構成にも適用可能である。
別の例を、図5を参照して例示する。
ここでは、コードワードはCW個のビットを有し、メモリシステムは、それぞれの幅がWビットであるK個のメモリデバイスを有する。
この複数のK個のメモリデバイスわたるアドレスラインは、MD個のビット、この場合はK個のメモリデバイスすべてが同じビット幅Wを有するためMD=K×Wビットを有する。
コードワードにおけるビットの数CWは、アドレスラインのサイズMDの倍数である。
メモリデバイスに書き込まれるコードワードを、データセパレータ208によりそれぞれがWビットを有するN個のニブルに分割する。
ここで、N=(CW/W)であり、ニブルは0からN−1まで連続して番号が付される。
ニブルはM個のチャンク(M=(CW/MD))に分割され、各チャンクは、以下のように定義されるK個のニブルを含む。
C=0,1,…M−1の場合、
チャンク[C]={ニブル[C+(K−1)×M]、ニブル[C+(K−2)×M]、…
…、ニブル[C+(1)×M]、ニブル[C+(0)×M]}
メモリから読み出されるコードワードを、K個のメモリデバイスからM=CW/MDチャンクを読み出すことによって形成する。
ここで、各チャンクは、メモリデバイスのそれぞれからの幅Wを有する1つのニブルを含む。
データコンバイナ206は、コードワードを形成するようにニブルを配置する。
ここで、各メモリデバイスからのニブルは以下のように隣接する。
コードワード=[ニブル(M−1,K−1),ニブル(M−2,K−1),…,ニブル(0,K−1),
ニブル(M−1,K−2),ニブル(M−2,K−2),…,ニブル(0,K−2),…
ニブル(M−1,0),ニブル(M−2,0),…,ニブル(0,0)]
ここで、各ニブルをニブル(x,y)として示し、xはそのチャンク識別子でありyはチャンク内の連続した位置である。
一実施形態では、システム200は、それぞれ4ビットの幅Wを有する36個のメモリデバイス202を有し、コードワードの幅CWは288ビットである。
メモリデバイス202に書き込む時、データセパレータ208は、コードワードを4ビットの72個の連続して番号が付されたニブルに分割する。
データセパレータ208は、ニブルを2つのニブルに分割する。
1つは、偶数が付されたニブルからなり、他方は、奇数が付されたニブルからなる。
バッファ204は、第1および第2のチャンクを36個のメモリデバイスのそれぞれのアドレスラインに格納する。
そのため、コードワードからの隣接するニブルの各対が36個のメモリデバイスの異なるものに格納される。
36個のメモリデバイスから読み出す時、バッファ204は、メモリデバイスからそれぞれ144ビットの2つのチャンクを読み出す。
第1のチャンクは、メモリデバイスのそれぞれから1つの、36個の4ビットの「第1の」ニブルを有する。
第2のチャンクは、メモリデバイスのそれぞれから1つの、36個の4ビットの「第2の」ニブルを有する。
データコンバイナ206は、第1および第2のチャンクからのニブルを結合して、互いに隣接する各メモリデバイスから第1および第2のニブルを有するコードワードを生成する。
エラー検出・訂正モジュール210は、データコンバイナ206からコードワードを受け取り、そのコードワードに対してエラー検出・訂正アルゴリズムを実行することにより、コードワードのエラーを検出しかつ/または訂正する。
そして、エラー検出・訂正モジュール210は、コードワードからデータビットを抽出し、対応するデータブロックを出力する。
288ビットを有するコードワードを用いる一実施形態では、コードワードは、24個のデータ検出および訂正ビットと264個のデータ(またはペイロード)ビットを含み、8つの隣接する誤ったビットのストリングを訂正することができる。
各メモリデバイスは、コードワードにおいて隣接する2つの4ビットニブルを各コードワードに提供し、本システムは、36個のメモリデバイスのうちの任意の1つの障害を訂正することができ、それによりチップキルを達成する。
例示的な実施形態を、メモリデバイス202の幅が同じであるシステムに関して上述したが、本発明の実施形態は、上述した方法に、システムにおいて幅が異なるニブルおよび/またはメモリデバイスが適用される場合も包含する。
本発明の実施形態はまた、複数のメモリデバイスにわたるビット幅を有し複数のメモリデバイスの単一アドレスラインに格納されるニブルも包含する。
たとえば、ビット幅が8であるニブルを2つの4ビットメモリデバイスに格納してもよい。
図2に示すシステム200のコンポーネントは単に例示的なものであり、本発明は、本発明の方法を実行する別個のモジュールに限定されない。
本発明の機能を、単一モジュールで実行してもよく、あるいは複数のモジュールによって実行してもよい。
たとえば、データセパレータ208とデータコンバイナとの機能を、1つのモジュールによって実行してもよく、あるいは、バッファ204、データセパレータ208、データコンバイナ206およびエラー検出・訂正モジュール210を結合してそれら機能を実行する単一モジュールにしてもよい。
メモリデバイス202は、たとえば、限定されないが、シングルインラインメモリモジュール(SIMM)、デュアルインラインメモリモジュール(DIMM)およびダイナミックランダムアクセスメモリ(DRAM)モジュールまたは他のタイプのメモリデバイスであってもよい。
本明細書で使用する「ニブル」という用語は、いかなる特定の数のビットにも限定されない。
本明細書では、ニブルを、複数の隣接するビットを特定するために使用し、その数は、本発明が包含する方法およびシステムによって異なってもよい。
上記では、本発明の実施形態を、メモリからチャンクを読み出しかつメモリにチャンクを書き込むことに関して説明したが、複数のチャンクの読出しおよび書込みは、必ずしも別々の動作ではない。
別々のチャンクを、ブロック読出しおよび書込み動作でメモリデバイスから読み出しまたはメモリデバイスに書き込んでもよい。
本発明の一実施形態では、コードワードに対応するチャンクは、すべて単一ブロック読出しで読み出され、またはすべてメモリデバイスに単一ブロック書込みで書き込まれる。
上述したことは、本発明を、実施可能な程度の説明が可能である、本発明者が予見する実施形態に関して説明しているが、目下予見されない本発明の産業上の変更形態がそれらに対する等価形態を表す場合がある。
本発明の一実施形態によるメモリシステムにデータブロックを書き込む方法を示すフローチャートである。 本発明の一実施形態によるメモリシステムの部分ブロック図である。 本発明の一実施形態によるメモリシステムへのニブルの格納を示すブロック図である。 本発明の一実施形態によるメモリシステムからデータブロックを読み出す方法を示すフローチャートである。 本発明の実施形態によるメモリシステムへのニブルの格納を示すブロック図である。
符号の説明
202・・・メモリデバイス、
210・・・エラー検出・訂正モジュール、
204・・・バッファ、
206・・・データコンバイナ、
208・・・データセパレータ、

Claims (10)

  1. メモリシステム(200)の複数のメモリデバイス(202)に書込みを行う方法であって、
    前記メモリシステム(200)に格納するコードワードを受け取ることと、
    前記コードワードを、前記複数のメモリデバイス(202)の幅に対応し、連続した番号が付された複数のニブルに分割すること(108)と、
    前記分割により得られた複数のニブルの内、奇数番号が付されたニブルを含む第1のチャンクを形成すること(110)と、
    前記分割により得られた複数のニブルの内、偶数番号が付されたニブルを含む第2のチャンクを形成すること(110)と、
    コードワードの複数の連続したニブルを前記複数のメモリデバイス(202)の各々に格納することにより、前記コードワードを前記複数のメモリデバイス(202)に格納すること(112)であって、前記複数のメモリデバイス(202)に前記第1のチャンクおよび第2のチャンクを格納することにより、前記コードワードからの隣接するニブルの各対を、前記複数のメモリデバイス(202)の異なるものに格納することと
    を含む方法。
  2. データブロックを受け取ること(102)、
    前記データブロックに対応するエラー検出・訂正ビットを生成すること(104)と、
    前記エラー検出・訂正ビットと前記データブロックとを結合すること(106)であって、それにより前記コードワードを形成することと
    をさらに含む請求項1に記載の方法。
  3. 前記メモリシステム(200)は、
    それぞれが幅Wを有するK個のメモリデバイス(202)を備え、前記コードワードは、(K×W)の倍数である幅CW
    を有し、
    前記コードワードを、0からN−1まで連続して番号が付された、それぞれWビットのN=(CW/W)ニブルに分割すること(108)と、
    前記コードワードをM個のチャンクに分割すること(110)であって、M=(CW/(K×W))であり、
    各チャンクは、
    C=0,1,…M−1の場合
    チャンク[C]={ニブル[C+(K−1)×M]、ニブル[C+(K−2)×M]、

    …、ニブル[C+(1)×M]、ニブル[C+(0)×M]}
    として定義されるK個のニブル
    を含むことと、
    各チャンクを前記メモリデバイス(202)に書き込むこと(112)と
    を含む請求項1に記載の方法。
  4. 前記メモリシステム(200)は、
    それぞれが4ビットの幅を有する36個のメモリデバイス(202)
    を備え、
    前記コードワードは、
    288ビット
    を備え、
    前記複数のニブルに分割すること(108)は、前記コードワードをそれぞれ4ビットの72個の連続して番号が付されたニブルに分割する
    請求項1に記載の方法。
  5. メモリシステム(200)の複数のメモリデバイス(202)から読出しを行う方法であって、前記メモリシステム(200)に格納されるコードワードは、前記複数のメモリデバイス(202)の幅に対応し連続した番号が付された複数のニブルに分割され(108)、前記分割により得られた複数のニブルの内、奇数番号が付されたニブルを含む第1のチャンクが形成され(110)、前記分割により得られた複数のニブルの内、偶数番号が付されたニブルを含む第2のチャンクが形成され(110)、前記複数のメモリデバイス(202)に前記第1のチャンクおよび第2のチャンクが格納されることにより、前記コードワードからの隣接するニブルの各対が、前記複数のメモリデバイス(202)の異なるものに格納され、
    前記方法は、
    a.前記複数のメモリデバイス(202)からデータの複数のチャンクを読み出すこと(402)であって、各チャンクは、前記複数のメモリデバイス(202)のそれぞれからの、前記対応するメモリデバイス(202)の幅に対応する幅を有するニブルを備えることと、
    b.前記複数のチャンクからの前記ニブルを結合すること(404)であって、それによりコードワードを生成し、前記複数のメモリデバイス(202)のそれぞれからの前記ニブルは前記コードワードにおいて隣接していることと
    を含む方法。
  6. 前記コードワードは、
    データビット
    を備え、
    前記コードワードから前記データビットと前記エラー検出・訂正ビットとを抽出すること(408)
    を含む請求項5に記載の方法。
  7. 前記メモリシステム(200)は、
    それぞれが幅Wを有するK個のメモリデバイス(202)
    を備え、
    前記コードワードは、
    (K×W)の倍数である幅CW
    を有し、
    前記K個のメモリデバイス(202)からM=CW/(K×W)個のチャンクを読み出すこと(402)であって、各チャンクは、前記メモリデバイス(202)のそれぞれからの幅Wを有する1つのニブルを備えることと、
    前記ニブルを、コードワードを形成するように配置すること(404)であって、各メモリデバイス(202)からの前記ニブルは、
    コードワード=[ニブル(M−1,K−1),ニブル(M−2,K−1),…,ニブル(0,K−1),
    ニブル(M−1,K−2),ニブル(M−2,K−2),…,ニブル(0,K−2),

    ニブル(M−1,0),ニブル(M−2,0),…,ニブル(0,0)]
    のように隣接し、ここで各ニブルをニブル(x,y)として示し、xはそのチャンク識別子でありyはチャンク内の連続した位置であること
    を含む請求項5に記載の方法。
  8. 前記メモリシステム(200)は、
    それぞれが4ビットの幅を有する36個のメモリデバイス(202)
    を備え、
    前記コードワードは、
    それぞれが144ビットの2つのチャンク
    を備え、
    前記メモリデバイス(202)から36個の4ビットの第1のニブルを有する第1のチャンクを読み出すこと(402)であって、各ニブルは前記メモリデバイス(202)のうちの1つからであることと、
    前記メモリデバイス(202)から36個の4ビットの第2のニブルを有する第2のチャンクを読み出すこと(402)であって、各ニブルが前記メモリデバイス(202)のうちの1つからであることと、
    前記第1および第2のチャンクを結合すること(404)であって、それにより各メモリデバイス(202)からの、互いに隣接する前記第1および第2のニブルを有するコードワードを生成することと
    を含む請求項5に記載の方法。
  9. メモリシステム(200)であって、
    a.MDビットの幅を有する複数のメモリデバイス(202)と、
    b.前記メモリデバイス(202)からMDビットのチャンクを読み出し(402)、かつ前記メモリデバイスにMDビットのチャンクを書き込む(112)データバッファ(204)と、
    c.CWビットのコードワードを受け取り、前記コードワードを、前記複数のメモリデバイスのうちの少なくとも1つの幅に対応する幅を有する複数の連続したニブルに分離し、前記ニブルをM個の隣接するニブルのグループ(MはCWをMDで割った値に等しい値)に分割し(108)、ビットのM個のチャンクを生成し(110)、各チャンクがM個のニブルの各グループから1つのみのニブルを有し、そこでは各グループのニブルがそれらのそれぞれのチャンクにおいて同じ相対位置にある、データセパレータ(208)と、
    d.前記M個のチャンクを前記メモリデバイス(202)のうちの少なくとも1つに対応する幅を有する複数のニブルに分離し、それぞれのチャンクにおいて同じ相対位置を有するM個のニブルを、前記コードワードにおいて互いに隣接するように配置することによって、前記データバッファ(204)から受け取ったM個のチャンクからコードワードを生成する(404)データコンバイナ(206)と
    を具備するメモリシステム。
  10. メモリシステム(200)であって、
    前記コードワードは、
    データビットと、
    エラー検出・訂正ビットと
    を備え、
    前記データコンバイナからコードワードを受け取り、コードワードにおけるエラーを検出し訂正し(406)、前記コードワードからデータを抽出する(406)エラー検出・訂正コンポーネント(210)
    を具備する請求項9に記載のメモリシステム。
JP2005003560A 2004-01-12 2005-01-11 エラー訂正のためのデータの分割 Expired - Fee Related JP4192154B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/756,447 US7237176B2 (en) 2004-01-12 2004-01-12 Partitioning data for error correction

Publications (2)

Publication Number Publication Date
JP2005202957A JP2005202957A (ja) 2005-07-28
JP4192154B2 true JP4192154B2 (ja) 2008-12-03

Family

ID=34749372

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005003560A Expired - Fee Related JP4192154B2 (ja) 2004-01-12 2005-01-11 エラー訂正のためのデータの分割

Country Status (3)

Country Link
US (1) US7237176B2 (ja)
JP (1) JP4192154B2 (ja)
ES (1) ES2297963B2 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8024544B2 (en) * 2004-05-13 2011-09-20 International Business Machines Corporation Free resource error/event log for autonomic data processing system
JP2006268524A (ja) * 2005-03-24 2006-10-05 Fujitsu Ltd 記憶装置、その制御方法及びプログラム
US7307902B2 (en) * 2005-08-30 2007-12-11 Hewlett-Packard Development Company, L.P. Memory correction system and method
US7227797B2 (en) * 2005-08-30 2007-06-05 Hewlett-Packard Development Company, L.P. Hierarchical memory correction system and method
KR100746225B1 (ko) * 2006-02-13 2007-08-03 삼성전자주식회사 반도체 메모리 장치 및 이를 구비한 메모리 시스템
US20110316716A1 (en) 2008-12-23 2011-12-29 George Allan Mackay Low power wireless parking meter and parking meter network
US20100262755A1 (en) * 2009-04-10 2010-10-14 Honeywell International Inc. Memory systems for computing devices and systems
US8612831B2 (en) * 2010-06-22 2013-12-17 Cleversafe, Inc. Accessing data stored in a dispersed storage memory
CA3178279A1 (en) 2011-03-03 2012-09-03 J.J. Mackay Canada Limited Parking meter with contactless payment
WO2012154913A2 (en) 2011-05-10 2012-11-15 Duncan Solutions, Inc. Parking meter system and method
USD659557S1 (en) 2011-05-10 2012-05-15 Duncan Solutions, Inc. Parking meter mechanism
JP2013205853A (ja) * 2012-03-27 2013-10-07 Nec Corp フラッシュメモリディスク装置、フラッシュメモリディスク装置におけるデータ記憶制御方法およびプログラム
WO2014014494A1 (en) 2012-07-20 2014-01-23 Duncan Solutions, Inc. Electronic parking meter mechanism with wireless communication antenna
USD716671S1 (en) 2012-07-20 2014-11-04 Duncan Solutions, Inc. Parking meter mechanism
US9086438B2 (en) * 2013-04-10 2015-07-21 Test Equipment Plus, Inc. Method and apparatus for a SuperSpeed USB bus powered real-time spectrum analyzer
US10043337B2 (en) 2013-10-15 2018-08-07 Duncan Parking Technologies, Inc. Single space electronic parking meter with meter housing mounted vehicle sensor
US9405480B2 (en) * 2014-01-13 2016-08-02 Seagate Technology Llc Interleaving codewords over multiple flash planes
USD714165S1 (en) 2014-01-14 2014-09-30 Duncan Solutions, Inc. Parking meter housing
US9804925B1 (en) * 2014-02-25 2017-10-31 Google Inc. Data reconstruction in distributed storage systems
KR102296738B1 (ko) 2015-06-01 2021-09-01 삼성전자 주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 에러 정정 방법
CA2894350C (en) 2015-06-16 2023-03-28 J.J. Mackay Canada Limited Coin chute with anti-fishing assembly
USRE48566E1 (en) 2015-07-15 2021-05-25 J.J. Mackay Canada Limited Parking meter
CA2900177C (en) 2015-08-11 2024-02-13 J.J. Mackay Canada Limited Single space parking meter retrofit
USD813059S1 (en) 2016-02-24 2018-03-20 J.J. Mackay Canada Limited Parking meter
US20170185328A1 (en) * 2015-12-29 2017-06-29 Alibaba Group Holding Limited Nand flash storage error mitigation systems and methods
US10725857B2 (en) 2018-02-27 2020-07-28 Western Digital Technologies, Inc. Data storage system for improving data throughput and decode capabilities
CA3031936A1 (en) 2019-01-30 2020-07-30 J.J. Mackay Canada Limited Spi keyboard module for a parking meter and a parking meter having an spi keyboard module
US11922756B2 (en) 2019-01-30 2024-03-05 J.J. Mackay Canada Limited Parking meter having touchscreen display

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5734664A (en) * 1995-06-23 1998-03-31 Fujitsu Limited Method and apparatus to efficiently store error codes
US6751769B2 (en) * 2000-06-06 2004-06-15 International Business Machines Corporation (146,130) error correction code utilizing address information

Also Published As

Publication number Publication date
US7237176B2 (en) 2007-06-26
ES2297963A1 (es) 2008-05-01
US20050160329A1 (en) 2005-07-21
ES2297963B2 (es) 2008-11-16
JP2005202957A (ja) 2005-07-28

Similar Documents

Publication Publication Date Title
JP4192154B2 (ja) エラー訂正のためのデータの分割
US6018817A (en) Error correcting code retrofit method and apparatus for multiple memory configurations
US6044483A (en) Error propagation operating mode for error correcting code retrofit apparatus
JP4071940B2 (ja) メモリ設計のための共有式誤り訂正
US8086783B2 (en) High availability memory system
US9195551B2 (en) Enhanced storage of metadata utilizing improved error detection and correction in computer memory
US7076723B2 (en) Error correction codes
US8234539B2 (en) Correction of errors in a memory array
US6981196B2 (en) Data storage method for use in a magnetoresistive solid-state storage device
JP2004282737A (ja) 記憶媒体から検索されたデータを検証する方法およびシステム、ならびにコンピュータ可読記憶媒体
US5666371A (en) Method and apparatus for detecting errors in a system that employs multi-bit wide memory elements
US20040225944A1 (en) Systems and methods for processing an error correction code word for storage in memory components
JPS6349245B2 (ja)
US7065697B2 (en) Systems and methods of partitioning data to facilitate error correction
US5761221A (en) Memory implemented error detection and correction code using memory modules
US20160139988A1 (en) Memory unit
US11265022B2 (en) Memory system and operating method thereof
KR100566162B1 (ko) 버스트 동작에 의해 데이터 및 패리티 데이터를입출력하는 반도체 기억 장치
US10901842B2 (en) Memory system and operating method thereof
US10915398B2 (en) Memory system and operating method thereof
US20080052598A1 (en) Memory multi-bit error correction and hot replace without mirroring
US7051265B2 (en) Systems and methods of routing data to facilitate error correction
US20070256002A1 (en) Error correction and error detection method for reading of stored information data and a storage control unit for the same
JP4921216B2 (ja) メモリ制御回路、記憶システム、情報処理装置、および、メモリ制御方法
US11928027B1 (en) System and method for error checking and correction with metadata storage in a memory controller

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070926

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071001

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080513

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080806

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080826

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080919

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110926

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110926

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120926

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130926

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees