JPS59197940A - 誤り検出・補正メモリ - Google Patents

誤り検出・補正メモリ

Info

Publication number
JPS59197940A
JPS59197940A JP59037407A JP3740784A JPS59197940A JP S59197940 A JPS59197940 A JP S59197940A JP 59037407 A JP59037407 A JP 59037407A JP 3740784 A JP3740784 A JP 3740784A JP S59197940 A JPS59197940 A JP S59197940A
Authority
JP
Japan
Prior art keywords
bit
parity
bits
row
memory
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.)
Pending
Application number
JP59037407A
Other languages
English (en)
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.)
Leland Stanford Junior University
Original Assignee
Leland Stanford Junior University
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 Leland Stanford Junior University filed Critical Leland Stanford Junior University
Publication of JPS59197940A publication Critical patent/JPS59197940A/ja
Pending legal-status Critical Current

Links

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
    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Error Detection And Correction (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 本発明はデジタルメモリ用の誤り検出・補正方式及び方
法に関するものである。
高密度メモリシステムがハード及びソフト上のエラー即
ち誤りに対して影響を受は易くなるに連れ、システムの
信頼性を向上させる為に誤り補正コードを使用すること
が一層注目を浴びて来ている。例えば、この事に関して
インテル コーポレーションのメモリ設計ハンドブック
、 1981年1月。
4−13乃至4−33頁が参照される。現在16ビツト
ワードの装置に於いて一般的に使用されてイル方法は、
l−1siao、 M、 Y、著のパ一種の最適最小奇
数−重み一層5EC−DEDコード(AC1ass  
of  Optimal  M inimum  Od
d −Weight −Column  5EC−DE
D  Codes> ” 、  IBMジャーナル オ
ブ リサーチ アンド デベロップソフト、、 197
0年7月、  395−401頁に開示されている如く
、(22,16,4>単−誤り補正−二重誤り検出修正
ハミングコード(single −error −CO
rreCtin(1(S E C) double−e
rror −datecNnQ(D E D ) mo
dified  Hamming  code)を使用
してワードをコード化即ちエンコードすることである。
コーディング技術に於ける当業者にとって、括弧で括っ
た表現(22,i6.4)内に於ける最初の数字22は
コードワード内のビットの総数を表わしており、数字1
6はコードワード内の情報ビットの数を表わしており、
3番目の数字4はコードの最小距離を表わしている。こ
こで、゛°最小距離″とは、任意の2個のコードワード
が異なった値をとらねばならない位置の最小数のことを
意味している。
修正ハミングコードチップは市場に於いて入手可能であ
る(例えば、テキサス インストルメンツ 5N54/
74S 630) 。Elkind及び3iewior
ekは、パ誤り補正メモリ及びレジスタアレイの信頼性
及び性能(Rel 1abi l ity  and 
 P erf。
rmance  of  E rror −Corre
cting  M emoryand  Regist
er  Arrays ) ” 、  I E E E
  Trans、 Comp、、 Vo’1. C−2
9NO,10,1980年10月、  920−927
頁、において同様な方法でブロックコードを使用するこ
とを提案している。Bossen及びH8taoは一層
強力なマイクロコード及びハードウェア補正アルゴリズ
ムに関連して同一のタイプの一層長いコードを使用する
ことを提案シテイル。コノことは、Bossen、  
D 、 C、及U・@ 5iao、 M 、 Y 、共
著の“メモリのソフトエラー問題に対するシステム解法
(A  S ystem  S ofution  t
o  The  Memory  5oft  Err
orproblem) ” 、  I 8Mジャーナル
 オブ リサーチ アンド デベロップソフト、 VO
l、 24. No、3.1980年5月、  390
−397頁が参照される。
1981年7月1日に発行されたRobert 、ノ、
Hancock等の米国特許第3,949,208号は
、ハミング(Hamming)コードと循環冗長コード
の組合せを使用した誤り検出・補正方法を開示している
Q sman著の″ランダムアクセスメモリ川原り補正
技術(E rror −Correction  T 
echnique  f。
r  Random −Access  Memori
es ) ” 、  I EEEジャーナル オブ ソ
リッドステイト サーキッツ、 Vol、 5C−17
,No、5.1982年10月、  877−881頁
に於いては、bをメモリ幅としてブロック数がb+1に
制限されているメインメモリ内のブロックへプロダクト
コードを適用することを基礎にした誤り補正方法を提案
している。
Bartonのカリフォルニア工科大学のコンピュータ
サイエンス部に於ける博士論文の゛欠陥により影響を受
けない集積回路メモリ(A  FaultTolera
nt I ntegrated C1rcuit  M
emory ) ”1980年4月、に於いては、多数
の欠陥によって悪影響を受けることのない多層の誤り補
正コーティングに基づいた序列的メモリの構成を提案し
ている。3 artonの設計思想は、′誤り無しコー
ディング(E rror−free  CoclinQ
) ” 、  I RF ’t−ランズアクションズ 
オブ インフォメーションセオリー、Vo1.PGIT
−4,29−37頁。
1964年9月、に記載されているEliasのプロダ
クトコードの構造的実現化を構成している。
プロダクトコードは矩形アレイであり、アレイ内の各行
は何等かの誤り訂正コードでのコードワードを形成して
おり、各列は何等かの誤り訂正コードでのコードワード
を形成している。両方のコードは通常リニアである。
これら全ての方法は、Qsmanのものを除いて、物理
的なメモリのかなりの部分を冗長なパリティチェックの
貯蔵用に使用されるので、比較的高いコーディングオー
バーヘッドを有している。このことは、エンコード時間
及びデコード時間が最終的なメモリアクセス時間のかな
りの部分を占めるので、これらのエンコード時間及びデ
コード時間を短くする為に比較的短いコーディングブロ
ックを使用することが原因となっている。
メモリを保護する為に誤り訂正コードを使用するという
ことは、一方に於いて、コーディング効率、他方に於い
て演算及び通信との間の兼合いを考慮せねばならない。
コーディング理論に於いて周知の如く、一定数の誤りを
極めて少ないコーディングオーバーヘッドで訂正しよう
とする場合には、コードのブロック長が長くなければな
らず、可能化従属性が多くのビットに亘って分布される
こととなる。しかしながら、これと対応して、コードワ
ードの任意のビットの正しい値の演算はコードワードの
多数のビットを巻込まねばならず、そのことはビットへ
アクセスする為の通信線が必要であり且つそれらを相互
に関係付ける演算に於いて遅れを発生することを意味す
る。
本発明は以上の点に鑑みなされたものであって、全てで
はないにしても多数のストアされているビットが大きな
ブロック長のコードに於いて単一のコードワードを形成
する様にデジタルメモリを組立てることにより高いコー
ディング効率を得ることを可能とした構成を有する方式
及び方法を提供することを目的とする。以下の記載から
理解される如く、本発明の基本となる原理は、基本のメ
モリユニットの性質く即ち、その基本メモリユニットが
バイナリ−ビットであるか又はバイナリ−ビット列であ
るか)に応じて、メモリ構成の異なったレベルに適応す
ることが可能なものである。
本発明の2つの実施例に於いては、1個のビットを基本
メモリユニットとする256にメモリの単一チップを多
数の副アレイへのアクセスを調整することによって構成
されている。その意味に於いて、誤り訂正の為に必要と
される通信線が通常のVLSI回路構成に於いて自然的
に得られる様にコードが構成されている。
本発明によれば、誤り検出及び誤り訂正グラフコードを
メモリ内に組込むことによってメモリを構成している。
グラフコードとは、エツジによって接続されている1組
のノードで構成されるグラフによって定義付けられるコ
ードであり、コードワードとはこのグラフに於けるサイ
クル又はサイクルのリニアな和である。特に、プロダク
トコ−ドグラフに基づくと共に修正プロダクトコードグ
ラフに基づ<5EC−DEDコード及び投影面から派生
されるグラフに基づく二重誤り補正三重検出コードがメ
モリ内に組込まれている。
本明細書に開示されているメモリ方式及び方法は従来の
ものとは概念を異にするものである。本発明に於いては
、誤り訂正・誤り検出メモリが最小サイクル長が6又は
それ以上のツリーグラフ(tree  graph )
を実施することによって構成されている。
1好適実施例に於いては、メモリ全体が単一のコードワ
ードに構成されており、それはコーディング効率が高く
、全ての単−誤りを訂正し、多数の誤りを検出する。通
信コストは行及び列のイネーブル及び出力がどれだけ利
用できるかということに依存している。
第2の好適実施例に於いては、情報ビットが正方形アレ
イ内に収納されているメモリが、ツリーグラフ及び修正
プロダクトコードによって単一のコードワードに構成さ
れている。この実施例は第1実施例のコーディング効率
が高いということを有すると共に、出力線を時間多重さ
せることによって占有面積を減少させている。これは全
ての単−誤りを訂正すると共に、多数の誤りを検出する
本発明の別の実施例(これも全ての単−誤りを訂正する
と共に多数の誤りを検出するものである)に於いては、
一連の独立したメモリ副アレイを統合しており、その際
に各副アレイは複数個の行を有しており、且つこれら副
アレイは一体となって相互依存的な方法で1個のメモリ
を構成しており、従ってメモリ内の全てのビットが幾つ
かの長いコードワードとして配列されており、独立的な
副アレイの各々に於けるコードワードの一部が副アレイ
内の単一の行を占有する様な特性を有している。
256にメモリを構成する場合に、そのコーディング効
率は矩形アレイの行及び列の両方に於けるパリティチェ
ックコードから組立てられる64×64のプロダクトコ
ードのものであり、メモリ全体の約1/33がパリティ
用に使用される。
メモリが誤り訂正コードに於ける単一のコードワードを
形成する様にメモリを構成することにより、更に別の本
発明の実施例に於いては、全ての二重誤りを訂正し、多
くの三重誤りを訂正し、且つ種々のその他の欠陥を訂正
する能力を有すると共に、256にメモリの約3%のみ
を冗長なパリティチェックビット用に使用することが必
要とされるに過ぎない。
この実施例に於いては、メモリの相互接続は投影面グラ
フに基づいてなされている。ビットが読出される場合に
は多少の遅れが発生する。アドレスは、副アレイアドレ
スコンピュータに於ける1個又はそれ以上のレベルの排
他的ORを通過せねばならない。アクセスされたビット
は65人力排他的ORツリー内へ供給され、次いで3人
力多数決論理回路へ供給される。単一チップで実現され
る場合には、アクセス時間に於ける増加はメモリから情
報を読取り且つそれを別のチップ上の誤り訂正回路を介
して通過させるのに必要とされる時間よりも短い。ビッ
トをメモリ内に書込むには、誤り訂正コードの最小距離
である6個のビットを読取、修正し且つ再書込を行なう
必要がある。面積及び時間遅れの両方のオーバーヘッド
ば、一連のプロダクトコードを使用する5EC−DED
実施例に於けるものと同等である。
この最後の実施例はQ=64(Q’はメモリ内にストア
されている情報ビットの数である)である256にチッ
プに関して記載しであるが、同一の発明を任意の指数の
qに対して適用することが可能であり、指数が2のもの
がコンピュータシステムにとって最も関すのあるもので
ある。この場合の写指数はpkの形であり、p及びkは
夫々正の整数である。
これら全ての実施例に於いて、ここに開示されている方
式及び方法は基本ユニットとしてビットを使用している
。しかしながら、同一の発明を、例えば、ワード等の様
な一層大きな基本ユニットを有する高次のレベルに使用
することも可能であり、又付加的なアドレス機能を有す
るメモリチップに使用することも可能である。
従って、本発明の目的としては以下の様なものを包含す
る。
a)メモリをコーディングする為の効率の増加b)誤り
を検出し訂正する為の通信時間の減少C)製造上の欠陥
を有するチップがあたかも完全な非冗長メモリとして機
能することを可能とすることによる歩留の上昇 d〉欠陥を有することのないチップがフィールドに於い
て一軸大きな信頼性を有する様にすること e)デジタルメモリ内にストアされているデータに於け
る二重誤りを検出し且つ訂正する方法を提供すること f)メモリハードウェア内の成る種の回路上の欠陥を検
出すること 以下、添付の図面を参考に、本発明の具体的実施の態様
について詳細に説明する。
本発明によれば、全てではないにしても多数のストアさ
れているビットを大きなブロック長コードに於ける単一
のコードワードを形成する様にメモリを構成することに
よってコーディング効率を向上させた幾つかの方式及び
方法を提供するものである。以下の本発明の説明に於い
て、1個のビットを基本メモリユニットとして説明する
。しかしながら、nを選択した整数とし、例えばn個の
ビットからなるビット列で構成されるその他の基本メモ
リユニットを本発明に於いて使用することも可能である
本発明の1実施例は、[:l1as、 P、著の゛誤り
無しコーディング(E rror −free  Co
ding) ” 。
IRE  TranS、   inform、  T、
heory、  Vol。
PGIT−4,29−37頁、 1954年9月の文献
に記載されているプロダクトコードに基づくものであっ
て、コード自身の精緻性に惑わされることなく構成を明
確に理解することが可能である。本実施例に於いては、
効率が極めて高く、例えば、256K  RA Mに対
するメモリの約1/256のみが冗長パリティチェック
であるに過ぎないが、現在の製造技術によれば通信条件
は大きな面積を必要とする。その他の実施例はこのコー
ドの幾つかの変形例を提供しており、それらはコーディ
ング効率と、読取遅れと、通信及び演算の複雑性との間
の種々の兼合いを有している。これら実施例の全ては単
−誤り訂正二重誤り検出コードである。
最後に、二重誤り訂正三重誤り検出グラフコード及びア
ルゴリズムが開示されており、それは一層複雑、なアド
レス機能を犠牲にして高いコーディング効率を得ている
。尚、R,M、 Tanner著の“低複雑性コードへ
の帰納的アプローチ(A  Recursive  A
 pproach  to  L OW −COmpl
eXityCodes)”、  I E E E  T
rans、  I nform、  Theory、 
 Vol、  27. No、4.1981年9月、 
 533−547頁の文献を参照されたい。
第1実施例に於いては、プロダクトコード構成を使用し
てパリティチェックから単−誤り訂正コードが形成され
ている。1組のバイナリ−情報ビットを使用してqXl
矩形アレイを形成している。
パリティチェックビットが各行に付加されており、それ
がその行に於ける情報ビットのパリティ和である。次い
で、パリティチェックビットが各列に付加されており、
それがその列に於けるビットのパリティ和である。く第
1図参照)従って、このアレイは(Q+1)X(ρ+1
)であり、(q+β+1)のパリティビットが元の情報
ビットに付加されている。全てのパリティ方程式を維持
する為に単一の情報ビットを変えることは3個のパリテ
ィビットを変えることを必要とするので、この得られた
コードは最小距離4を有している。
アレイ内の何れかに於いて単一の誤りを訂正する為には
、全ての行のパリティを計算しく即ち、各行に対しては
、その行に於ける全てのビットのモジュロ−2和を計算
する)、全ての列のパリティを計算する。単に1個の行
に於けるパリティ違反と単に1個の列に於けるパリティ
違反がある場合には、その行及び列に於けるビット(即
ち、その行とその列との交点に於けるビット)に誤りが
あることを示し、一方2個以上の行又は2個以上の列に
パリティ違反がある場合には、複数個の誤りが存在する
ことを表わす。注意すべきことであるが、このことは任
意の二重誤りを検出することが可能であるということで
ある。
アレイ内のビットが、例えば、RAM内にス!−アされ
ているビットであり、アレイ内のアドレスがRAM内の
物理的位置にそのまま対応する場合について考慮する。
情報ビットをb(i、j)、  i−〇、・・・、q−
1,j=o、・・・、ρ−1とした場合に、行パリティ
チェックビットはb(1,ρ)で表わされ、それは以下
の如く定義される。
ρ−1 b (+、β)= Σb(i、t)、 i=○、・・・
、(1−1(A)1=0 一方、列パリティチェックビットは以下の如く定義され
る。
−1 b(q、j)  −Σb(t、j >、 j=o、・・
・、!2(B)1=0 チェックビット b(1,ρ)は4番目の列に於ける1
番目行の終りに於ける位置を占有しており、その列は行
パリティチェックビットのみを有しており、チェックビ
ット b(q、j)は列パリティチェックビットのみを
有するq番目の行に於ける3番目の列の端部の位置を占
有しており、一方ビット(b、q、J2)はメモリ内の
全ての情報ビットの和を表わしている。(注意すべきこ
とであるが、b(Q、ρ)は、行パリティの和として計
算されるか又は列パリティの和として計算されるかによ
らず、全ての情報ビットのパリティ和である。)メモリ
内にストアされている値がプロダクトコード内のコード
ワードを形成するか又は高々1個の誤りがある為にコー
ドワードを形成しないものと仮定する。ビットb(i、
j)に対し誤り訂正を行なう為の読取をなす為には、3
個の値が必要である。
Σb(t、j )十b(Lj )、      (1,
1)1=0 ρ Σb(i、t )十b(i、j )、       (
1,2)1=0 及びb(i、j)自身であり1.全ての和はモジュロ−
2であり、tはインデックス用に使用されているダミー
変数である。第1のものはビットそれ自身を除いた列内
に於ける全てのビットの和であり、第2のものはビット
それ自身を除いた行内に於ける全てのピントの和である
。注意すべきことであるが、値(Ll>は、ビットf)
(i、j>を2度有している。しかしながら、加算はモ
ジュロ−2であるから、このビットの和に与える影響は
排除されている。このことは、ビットb(i、j)がO
又は1の何れかでなければならないということを考慮す
ると明らかである。そのビットがバイナリ−〇であると
、2個のバイナリ−〇の和は尚且つバイナリ−Oである
。ビットがバイナリ−1である場合には、2個のバイナ
リ−1の和もバイナリ−O(モジュロ−2)である。同
様に、値(1,2)によって与えられる和に対しても同
一の効果が適用する。パリティチェック条件により、誤
りが発生しなかった場合には、3つの値全ては同一であ
り、即ちb(i、j>である。これら3個の組のビット
は共通光を有することがなくばらばらであり(即ち、各
組に於けるビットは他の組に於けるアドレスとオーバー
ラツプすることの無い固有のアドレスからのものである
)、単一の誤りが高々これら3つの内の1つに影響を与
えるに過ぎない、従って、メモリからの出力値がこれら
3個の内の多数決である場合には、それは正しいもので
あり、従ってこの値をメモリ内に書込むことが可能であ
る。多数決手順によってビットbに対して読出された値
はbの配達値(delivered  value )
と呼ばれる。復数個の誤りが存在するということは、2
個又はそれ以上の行又は2個又はそれ以上の列のパリテ
ィ違反を探し出すパリティの組を組織的に計算すること
によって検出される。
メモリ内にビットを書込む場合に、その目的とするとこ
ろは、プロダクトコードに於い゛てメモリが尚且つコー
ドワード(それは多分新しいコードワードかもしれない
が)を確保することである。
その手順は、新しい値がエンターされるとコードワード
をアップデートすることである。初期的には、最初にメ
モリをターンオンさせ情報をその中にストアする前に、
メモリ内の金工のビットは0とされ、定義上コードワー
ドを形成する。b(i。
J)をメモリ内に書込む為には、(i、j)番目の位置
に於ける値を読取り単−誤り訂正読取手順を使用して訂
正する。ビット b(i、2 > 、  b(q、j 
>及びb(q、ρ)も読取られる。b(i、j)の新し
い値が訂正されたく配達)値と一致する場合には、訂正
した値及びb(1,β)、b(q、j)及びb(Q、β
)を不変のままメモリ内に再度書込む。新しい値が訂正
した値と異なる場合には、訂正した値及びb(i、、I
2)、b(q、j)、及びb(q、*)をコンブリメン
トさせ且つメモリ内に書込む。元の値がコードワードを
形成していた場合には新しいメモリ値がコードワードを
形成し、且っb(i。
j)に対し現在ストアされた値が正確に読出される限り
この手順によって誤りが発生されることがないというこ
とを証明することは容易である。
自動SEC読取手順用に必要な全ての値をアクセスする
為の手段は、公知の構成を有しておりアレイのiM目の
行内にストアされている全てのビットをラインに沿って
全相パリティツリー(parity  tree)へ並
列して転送することの可能な行アドレスデコーダと、ア
レイの3番目の列内にストアされている全てのビットを
ラインに治って層相パリティツリーへ並列して転送する
ことの可能な列アドレスデコーダとを有しており、書込
み手順の為に必要な4個のビットをアクセスする為の手
段は、公知の構成を有しており、i番目の行に於ける最
後のピッl”b(i、ρ)及び3番目の列に於ける最後
のビット tl(Q、j)及びアレイ内の角のビット 
b(β、Q)を読取り、b(i、j>のストアされてい
る値がb(i、j)の書込まれるべき値と異なる場合に
は、コンブリメントさせ、且つアレイ内に再度ストアさ
せることを可能とする回路を有している。この構成を第
2図に示しである。
所要の全ての計算を行なう為の手段は、i番目の行にお
けるビットのモジュロ−2の和を計算しb(i、j)の
値を加算してそれを和からキャンセルさせる排他的OR
ゲートのパリティツリーと、3番目の列内のビットのモ
ジュロ−2の和を計算し且つb(i、j)の値を加算し
てそれを和からキャンセルさせる排他的ORゲートのパ
リティツリーと、入力ライン上に最も頻繁に現われる値
O又は1を出力する多数決論理ゲートとで構成されてお
り、この構成を第2図に示しである。
複数個のデータ誤り及び回路欠陥検出手順に於ては、最
初に、全ての行のパリティ和及び列パリティ和を計算し
、パリティ違反の数をカウントし、複数個の誤り条件が
次の何れであるかを検知し、(a)パリティ違反の数が
偶数であるがO又は2でばないか、又は (1))違反の数が2であるが、1個を超えて行パリテ
ィ違反があるか又は1個を 超えて列パリティ違反がある、 且つ、パリティ違反の数が奇数である場合には、回路欠
陥を検出する。
欠陥によって影響を受けないメモリとしてのこのコード
の実施例は極めて高効率である。例えば、256にメモ
リに於いて、2 (512) +1個のパリティチェッ
クピッ]・が必要とされるに過ぎず、メモリの約1/2
57が冗長の為に使用されるに過ぎない。上述したコー
ドアレイ(即ち、メモリアレイ)は従来のRAMとして
直接的に実現化されたものであり、アレイ内のアドレス
はRAM1内の物理的な位置にそのまま対応している。
式(7,1)又は(1,2)によって表わされる和の一
方は、実際のメモリに於いて公知の並列読取ラインを利
用することによって容易に計算される。例えば、行アド
レスが全ての行をイネーブルさせる場合、式(1,1)
によって必要とされるその行のパリティ和はアレイの下
部にパリティツリーを置くことによって計算することが
可能である。所望のビットがイネーブルされた行から選
択され、且つその行のパリティ和へ加算される。行及び
列に関してRAMを対称とさせることにより、式(1,
2)によって要求される如く、列全体を列パリティツリ
ーに対して並列に読取ることが可能である。所望のビッ
ト及び行パリティツリー及び列パリティツリーの出力を
ゲートへ供給して訂正したビット値を形成する。しかし
ながら、この実施例は現在の半導体製造技術によった場
合その通信コストは高いものである。使用される特定の
半導体技術に依存して、行及び列の両方に対して並列イ
ネーブル及び出力を供給することは基本のメモリセル寸
法を2倍以上のものとする。
ビットb(i、j)をこのメモリ内に書込む為には、訂
正回路を使用してストアされているビットを読取らねば
ならず、且つb(i、ρ)、b(q、j>及びb(q、
ρ)を読取り、必要に応じコンブリメントさせ、且つ再
度書込まねばならない。例えば、第1図に於いてアレイ
として示したメモリが初期的に全てOであり且つb(2
,1>を1として書込むべき場合には、b(2,1)の
現在の値、即ちOが訂正読取によって決定される。書込
むべき値がストアされているものと異なっているので、
b(2,1>、b(2,4>、b(4,1>及びb(4
,4)のストアされている値は全てコンブリメントされ
ると共に再度書込まれ、第1図に示した様にメモリの値
・をさせる。任意のビットが書込まれる場合にb(q、
ρ)が検査されるので、半導体メモリ技術に於いて周知
の方法によりそれに対する別のアクセスが与えられる。
その他の3個のビットに対する並列アクセスは、第2図
に示した対称なRAMアーキテクチャによって容易に与
えられる。このメモリの基本的なレイアウトをq=ρ=
4の場合の1例に対し第2図に示しであるが、上述した
構成は任意のq及びρに対して適用可能であることは明
らかである。注意すべきことであるが、第2図の構成に
於いて、i及びjの両方はOから4の間を変化する。
このプロダクトコードの表示法をグラフコードとして導
入することが有用である。この表示法は、上述した゛低
複雑性コードへの帰納的アプローチ< A  Recu
rsive  A pproach  to  L o
w −Complexity  Codes) ”の文
献に詳細に記載されており、特定のアーキテクチャ構成
とは独立して実際のコード構成を明確に理解することを
可能とする。それは又プロダクトコード及び修正プロダ
クトコードの両方のみならず更に精緻な後述する実施例
として説明する投影面コードに関し統一的な外観を与え
るのに役立つ。第3図に於いて、アレイプロダクトコー
ドが2部構成のグラフに変換されている。このコードに
於けるビットは中実ノードで表わされており、1組のビ
ットに作用するパリティチェックは特定のパリティ方程
式によってチェックされる1組のビットに接続されてい
る中空ノードで表わされている。プロダクトコードに於
いては、各ビットは行パリティチェック及び列パリティ
チェックによってチェックされ、従って各ビットのノー
ドは次数2を有しており、各ピッ (トが2つのパリテ
ィ方程式に於いて使用されるという事実を反映している
。各行パリティノードは次数ρを有しており、且つ各列
パリティノードは次数qを有しており、列パリティ方程
式は与えられた列に於けるqビットの和をとるという事
実を反映しており、又各行パリティノードは次数ρを有
しており、各行パリティ方程式は与えられた行に於いて
ρビットの和をとるという事実を反映している。このア
レイによって形成されるグラフは2部構成グラフ(tr
ipartite )として認識することが可能であり
、第3b図に示した如く、行及び列ノードは2つのクラ
スに別れている。第3C図に於いて、このグラフは任意
のビットを根として使用しツリー形態に描き直したもの
である。後に理解される如く、本発明は、情報ビットで
あろうがパリティチェックビットであろうが根としてど
のビットを使用しようが、ツリーは同一の形態を有して
いるという事実を利用するものである。ツリーの頂部に
於けるビットを実際のメモリから読取る場合には、3個
の値が必要である。即ち、ビットそれ自身と、その行の
パリティ和と、その列のパリティ和である。第2図に於
けるブロック線図で示した如く、RAMアーキテクチャ
のアクセス路及びアドレス信号は2個の実際のパリティ
ツリーが任意の所望のビットに対し演算を実行すること
を可能とする。従って、ビット b(1,0)をメモリ
から読取るものと仮定する。RAMメモリアドレス回路
がこのビットのアドレスを読取る。
次いで、公知の構成を有するセンスアンプを使用してこ
のビットの値が読取られる。次いで、本発明によれば、
2個のパリティ和が計算される。最初のパリティ和は、
b(1,0>が位置している列に於けるビットの和であ
る。第3a図及び第3b図に示した如く、この和はビッ
ト b(0,0)。
b(1,0)、b(2,0)、b(3,0)及びb(4
,O)を加算することによって計算される。
注意すべきであるが、第1列ビット(b(0,0>乃至
ビットb(3,’O))内の情報が最初にメモリ内にス
l〜アされている場合には、b(4,O)が以前に計算
されたパリティビットである。従って、方程式(i、i
)によって上述した如く必要とされる計算が成されたこ
とになる。この計算は、第3b図の2部構成グラフに於
いて、ノードCOからビット b(0,0>乃至b(4
,O)を介して延在するラインによって表わされている
。更に、ビット b(1,0)を有する行に於けるビッ
トもその和がとられる。これらのビットは、ビットb(
1,0)、b(1,1)、   b(1,2)、   
b(1゜3)及びb(1,4)を有している。ビットb
<1.4)は、ビットb(1,0>乃至b(1゜3)が
この行内にストアされていた場合に以前に計算された行
パリティピットである。この計算は、第3b図の2部構
成グラフに於いて、行ノードR1からb(1,O)を有
する行に於ける適宜のビットを介して延在するラインに
よって表わされている。
この動作を実行する構成を第2図に概略ブロック線図で
示しである。第2図に示したブロックの各々は半導体技
術に於いて公知のタイプのものであり、従ってその詳細
は割愛する。
第2図の構成に於いて、イネーブル回路21及び22は
行イネーブル回路及び列イネーブル回路を夫々有してお
り、これらの両方のタイプは半導体メモリ技術に於いて
公知のものである。例えば、イネーブル回路21はアド
レス回路によって選択された任意の行をイネーブル状態
とさせ、一方イネーブル回路22はアドレス回路によっ
て選択された任意の列を同時的にイネーブル状態とさせ
る。
典型的なメモリセルに於ける行イネーブルライン及び行
読取ライン及び同一のメモリセルに於ける列読取ライン
及び列イネーブルラインの概略構成を更に詳細に第2b
図に示しである。第2b図に於いて、メモリセル29は
列イネーブルライン29aと列読取ライン29bと行イ
ネーブルライン29cと行読取ライン29dを有してい
る。列イネーブルライン29aは、更に、メモリセル2
9を有する列内に配列されているその他のメモリセル(
第2b図には示していない)の各々をイネーブルさせる
一方、行イネーブルライン29Gはメモリセル29を有
する行内に配列されているその他のメモリセル(不図示
)の各々をイネーブルさせる。
列読取ライン29bからの出力信号がとられて回路23
を選択する。選択回路23は同時的に到着する列ビット
の中からアクセスされている特定の列ビットを選択する
。選択回路23はアクセスされているビットに関し2つ
のことの内の何れか一方のことをする。それは、このビ
ットが方程式<  i、i)によって必要とされる和を
与える為にビットを加算するパリティツリー24内に於
いて加算されることを防止するか、又はそれはパリティ
ツリー24がその列内の全てのビットを加算させ次いで
このアクセスされているビットをその和から減算して方
程式(1,1)によって必要とされる結果を与える。同
様に、選択回路25は第2b図に於いて行読取ライン2
9dに対応する行読取ライン上を同時的に伝送される行
ピッ1〜の中からアクセスされているビットを選択し、
パリティツリー26が読出されたビットを包含すること
なしに方程式(1,2)によって必要とされる計算を行
なわせるか、又はそれがその行に於ける全てのビットの
総和からアクセスされているビットを減算することによ
って方程式(1,2)によって必要とされる結果を与え
る。
パリティツリーからの出力信号はアクセスされているビ
ットb(i、j)と共に多数決ゲート28へ伝送され、
そこでビット b(i、j>に対する値として、多数決
ゲート28へ伝送された3個の信号の内生なくとも2つ
によって表わされる値を選択する。従って、ビット b
(i、j)が誤りであると、多数決ゲート28から読取
られた値はパリティツリー24及び26からの出力信号
によって決定されるビット値であり、これらパリティツ
リーからの出力信号は同一であり且つビットb(i、j
)に対して最初にストアされた値を表わしている。
第2図に示した構造を実施する為の半導体回路及び製造
技術はデジタルメモリ設計及び製造技術に於いて全て公
知であり、従ってその詳細な説明は割愛する。
ここで、第3b図の2部構成(bipartite )
グラフについて説明すると、コードの最小距離はグラフ
のガース(girth >即ち最小サイクル長の半分で
ある。最小サイクル長はグラフ理論に於いて周知の概念
である。従って、最小サイクル長はあるノードから開始
してその開始したノードへ1回を超えて同一のラインを
超えることなしに戻る為に通り過ぎねばならないノード
数として定義される。全てのパリティ方程式を満足させ
る為に、最小重みワードがグラフ内に於いてサイクルを
形成せねばならない。プロダクトコードグラフはガース
8を有しており、最小サイクルとして8/2−4ビツト
を通過する。全てのコード方程式を維持しながらコード
内の任意の1個のビット(即ち第3a図のメモリ内にス
トアされている任意のビット)を変化させる為には、少
なくとも4個のビット(変化されるビットと、行パリテ
ィピットと、列パリティビットと、b(q、β))を変
化させねばならない。本発明に基づいて提案されている
書込み手順は最小の組(即ち、4個のビットを超えて変
化させることがない)で動作する。
第3C図のツリーは根に任意のビットを有するグラフを
表わすことが可能である一方、ツリーの下部に於けるビ
ット(即ち、第3図のグラフの下部に於けるビット)を
情報ビットとし且つ根をビットb(Q、J2)として考
えることによりコード構成に関し付加的な洞察を得るこ
とが可能である。
情報ビットが変化されると、ツリーの左側情報径路に於
けるビットでそのビットから根まで変化されねばならず
、右側の径路上のビットも変化されねばならず、且つ根
ビットも変化されねばならない。しかしながら、明らか
なことであるが、ツリーの下部に於けるビットは任意の
値を与える事が可能であり、次のレベルに於けるビット
及び根を適切に選択することによって全てのパリティ方
程式を満足させることが可能である。どの様に根にアプ
ローチしようとそれは同一の値を有している。
本発明の第2実施例は、第2a図及び第2b図に関連し
て上述した様に行及び列を同時的に読取ることに関連す
る面積上の不利益を減少させており、且つ出力ラインを
時間多重することによってコーディング効率を維持し、
その際に読取遅れを増加させている。この第2実施例は
、1実施例として、上述したグラフをRAMに於ける修
正プロダクトコードのグラフとして読替えている。
q=βとして、(Q+1)2のビットを前と同様に正方
形の(Q+1)X ((1+1)アレイに構成し、任意
の行に於けるビットのモジュロ−2和が0でなければな
らないという条件を課している。
注意すべきことであるが、このことが可能であるのは、
各行が情報ビットと1個のパリティビットとを有するか
らである。次いで、各列の和がOのモジュロ−2となる
ということを要求する代りに、任意の循環的な対角線(
各循環的な対角線が5個の個別的に引かれた線の1つと
して定義されている第4図を参照)に沿っての和がOで
あることを必要とし、全ての 1に対して次式が成立す
る。
Σ b(i−に、k)  = O(C)k=0 尚、この和はモジュロ−2であり、そのインデックス演
算(1ndex  arithmetic)はモジュロ
−q+1である。1番目の対角線の和及び3番目の行は
正確に1個のビットを共用し、従ってそのコードは元の
コードに対して同形写像(isomorphic)であ
る。ここに於いても、ビットb(t、j ) 、 i。
j =O,・・・、q−1を情報ビットとしてとること
が可能である。ビット b(i、q ) 、 i =O
,・・・。
Q−1は行の和で決定され、従ってビットb(a。
j)、j=0.・・・、qは対角線の和によって決定さ
れ前の様にストアされる。メモリを単一のコードワード
としてH持したままビット b(t、j)をメモリ内に
書込む為には、ビットb(Q、i)、b(i、Q>及び
b(q、i +j +1 )をアクセスせねばならない
1個のビットを読む為には、そのビットは対応する行の
和及び対角線の和に沿ってアクセスされねばならない。
前の様に行をイネーブルし、例えば、RAMのメモリの
下部にパリティツリーを設けた場合、そのビット及び行
の和牛b(i、j)が第1サイクルに於いて得られる。
i番目の行に於けるビットはラインに沿ってその行の下
部に於けるパリティツリーへ並列して転送される。1番
目の行がパリティツリーに入ると、列アドレスデコーダ
がそれからビット b(i、j)を選択することが可能
であり、且つ上の方程式(1,2)によって必要とされ
る。行の和パリティチェックビット(+、Q)が書込み
手順を行なう為に得られる。対角線の和を得る為には、
当該技術に於いて周知の技術を使用して、対角線アドレ
ス(i+j+1)モジュロq+1が計算される。例えば
、第4図に示した如く、行の和及び対角線の和を使用し
て、行パリティチェックピット及び列パリティチェック
ビットの両方を計算する為には1個のパリティツリー4
4のみが必要である。従って、対角線イネーブル回路4
1が第4図に於ける個別的なラインによって表わされて
いる様に選択された対角線に於けるメモリセルをイネー
ブルさせ、特定の識別された対角線上のセルの各々にス
トアされているビットが選択回路43に読込まれる。選
択回路43はアクセスされているビット b(i、j)
を選択し、列パリティピットに対して方程式(1,1)
に従って使用されるのと同様の方法でパリティツリー4
4によって対角線の和を計算させる。しかしながら、注
意すべきことであるが、対角線パリティを計算するのに
使用されるビットはアクセスされている特定のビットb
(i、j)を有する対角線から選択される。パリティツ
リーはどット b(i、j)なしでパリティを計算する
が、又はこのビットを包含してパリティを計算し次いで
このビットを総和から減算する。この計算に続いて、行
イネーブル回路42がごット b(i、j)を有する行
をイネーブルさせる。次いで、この行が選択回路43へ
送られ、選択回路43はアクセスされているビット b
(i、j>を非選択状態としてビットb(i、j>なし
でパリティツリー44が選択された行に於けるビットの
和を計算することを可能とするか又はビット b(i、
j)を保持し選択された行に於ける全てのビットからパ
リティツリー44によって計算された和へ後に加算した
り減算したりする。その結果パリティツリーから得られ
る和が以前に計算されメモリ45(通常バイナリ−1又
はOの何れかを保持する為に単にノリツブフロップの組
を有している)に保持されている行の和と共に、選択回
路43からのビット b(i、j)と同時的に多数決ゲ
ーl〜46へ送られる。次いで、多数決ゲート46は、
再び、それへ送られた3個の入力信号の肉受なくとも2
個のものを表わす出力ビットを発生する。b(i、、j
>が誤りである場合には、多数決ゲート46は行の和及
び対角線の和の夫々の操作からの入力であり同一の値を
有する入力の値を表わす信号を発生し出力する。従って
、本回路はビット b(i、j)に於ける単一の誤りを
形成する。第4図の回路は2個のパリティ和を計算する
為に1個の選択回路43と1個のパリティツリー回路4
4とを必要とするものであって、第2a図に示したこの
様な構成を2個必要とするものと比べて著しく経済性が
高い。従って、第4図の回路は2のサイクルで動作する
。第1サイクルに於いては、行の和が計算されメモリ4
5内にストアされる。第2のサイクルに於いては、この
対角線アドレスが対角線アドレスデコーダへ転送され、
それが循環的に継続される対角線全体を動作させる。同
一の並列出力ラインが対角線からの値をアレイの下部に
於ける排他的ORゲーI〜のパリティツリーへ転送し、
その時点に於いて対角線パリティ和十b(i、j)を計
算する。この対角線アドレスは又書込手順を行う為に、
b(i、j)を通過する対角線がq番目の行を通過する
位置にある対角線チェックビットb(q、(i+j+1
)モジュロq+1)をその対角線から選択する。(同様
に、書込み手順を行なう為に、アドレス 1がアレイの
下部行から対角線パリティビット b(q、i)を選択
する。)第1サイクル期間中に計算され一時的にストア
された行パリティ和及び第2サイクルの期間中に計算さ
れたビット値及び対角線パリティ和が多数決ゲートへ転
送され、そのゲートは訂正された値、即ちそのゲートの
入力ライン上に最も屡々現われる○又は1の値を発生す
る。
複数個のデータ誤り回路欠陥を検知する方法に於いては
、最初に、全ての行パリティ和及び対角線パリティ和を
計算し、パリティ違反の数をカウントし、次の何れかの
条件が満足される場合に複数個の誤りが発生したことを
検出する。
(a>パリティ違反の数が偶数であるがO又は2ではな
い場合か、 (b ’)パリティ違反の数が2であるが、1個を超え
た行パリティ違反か、又は1 個を超えた対角線パリティ違反が存在 する場合。
そして、パリティ違反の数が奇数である場合に回路欠陥
が検出される。このアーキテクチャを第4図に示しであ
る。
このアーキテクチャの主要な利点は、各行の値を読取り
且つ各対角線にストアされている信号の値を読取る為に
行イネーブルライン及び行読取ラインが必要とされるに
過ぎないということである。
与えられた対角線に於けるメモリセルの各々が同時的に
イネーブルさせることを可能とする為にはチップ上に対
角線イネーブルが形成されねばならない。しかしながら
、対角線セルの各々にストアされているビットの読取は
そのセルに関連する行読取ラインを使用して行なわれる
任意の1個のビットに対して単一の誤り訂正を行なう為
に多数の組のビットをアクセスせねばならなかったので
出力ラインの多重操作を行なう必要性が生じた。この通
信上の障害はコーディング効率を減少させることによっ
て緩和させることが可能である。明らかに、通常のRA
M半導体アーキテクチャに於いては、与えられた行に於
ける全てのビットが容易にアクセスされる。このことは
、あるビットをデコードする為に必要とされる全てのビ
ットが単一の行内に存在するというコード化技術を使用
することを意味している。任意の誤り訂正コードを使用
することが可能ではあるが、パリティチェックコードの
プロダクトをエンコード及びデコードする為の計算が簡
単であるということが望まれる。各々が(q+1)x 
(q”+1)のマトリクス次元であり各々がプロダクト
コードとして組立てられている4個のマトリクスの各々
を各プロダクトコードの連続する行を連結させることに
よって単一のRAM行へ変換する場合について考察する
。q及びq−が大きい場合にはコーディング効率が最大
であり、従って、コーディング効率の点からは、高次に
矩形状のρx(qq′+ q+ q−+1 >RAMと
することが望ましい。 一本発明の第3実施例に於ける
RAMの縦横比を保持する為に、各々がβx(q−+1
)の次元を有するQ+1個の副アレイを連結させる。ビ
ットはb(u、v、v )によってインデックスされて
おり、Uは副アレイを与え、■は副アレイに於ける行を
与え、Wは副アレイに於ける列を与え、一定の■を有す
る1組のビットはUがプロダクトコードの行をインデッ
クスしWがプロダクトコードの列をインデックスするプ
ロダクトコードを形成する。
この構成をq−4,ρ=5.q==4の場合に対し第5
図に示しである。
特定のビット b(u、v、w )に対してプロダクト
コード付和を計算する為には、U副アレイの1行の付和
がアクセスされねばならない。このことは、パリティツ
リー52−0乃至52−4を各副アレイと関連付けるこ
とによって達成され、Uアドレスu=Q乃至u=4が使
用されるべき適宜のパリティツリー出力を選択する。プ
ロダクトコード死相は同一のV及びWアドレスを有する
全ての副アレイに於けるビットのUに関する和である。
副アレイの各々から単一の列ビットを選択する為にアド
レスV及びWが使用され、これらは所要の和を発生させ
る副アレイに股がる加算器53−O乃至53−4からな
るパリティツリーへ供給される。
更に詳細に説明すると、このメモリは通常のアドレス機
能を有する一連のQ+1個の矩形状のアレイの形態をな
しており、q番目のアレイに於ける(v、w )位置は
u=o、−、q−1,v=0.1゜・・・、(k=1)
、  W=0.1.・・・、  Q−−1に対する情報
ビット b (u、v、w )によって占有されている
。(注意すべきことであるが、プロダクトコードは正方
形である必要がない。) このコードは次式のパリティチェック方程式によりu=
q副アレイ5及びw= q−列内にチェックビットを定
義することによって発生される一連の独立的なプロダク
トコードで構成されている。
一 (A)   Σ b(u、V、k)  = 0k=0 但し、u=0.・・・、q、及びv−0,・・・、k=
1従って、副アレイのq番目の列に於けるビットは同一
の行及び副アレイに於けるその他のビットのモジュロ−
2和である。
(B)   Σb(k、v、w)  = Qk==0 但し、V=O,・・・、k=1.及びw=0.・・・、
q−従って、Uがqと等しくない場合には、ビットb(
q、v、w )は全てのU副アレイに於ける同一の行及
び列に於ける全てのビットのモジュロ−2和であり、■
=0.・・・、k=1.w=o、・・・、 q−−1に
対して定義されたチェックビットb (Q、V、W )
はu=q副アレイ内にストアされ且つチェックビットb
(u、v、 Q−)はq番目の副アレイのq′番目の列
内にストアされる。この状態を第5図に示しである。
ビットb(u、v、w )に対する自動的なSEC読取
手順に対して必要とされるストアされた値は以下の如く
である。
(A)  ビットb(u、v、w) (B)、− Σb (u、v、k )  +  b (u、v、w 
)      (3,1)k=0 即ち同一の副アレイ及び行に於けるその信金てのビット
のモジュロ−2和、 k=0 その他の副アレイに於ける同一の行及び列に於けるその
他の全てのビットのモジュロ−2和。
書込み手順を行なう為に必要なストアされている値は以
下の如くである。
(A)   b(u、v、w ) (B)   b(u、v、 q−) (C)   b(q、v、w ) (D)   1)(Q、V、Q′) SEC読取手順を行なう為に必要とされる全ての値をア
クセスする為の手段は、q番目の副アレイからのビット
 b(u、v、w )とq番目の副アレイと関連するパ
リティツリーからの出力及び各副アレイから1個の入力
を有するパリティツリー内へ各kに対しに番目の副アレ
イから供給すべきビットb(k、v、w )を選択する
為のアドレスラインを有している。書込手順を行なう為
に必要とされる全ての値をアクセスする為の手段は、訂
正されストアされた値b(u、v、w )が書込まれる
べき値と異なる場合にコンブリメントされ夫々の位置に
書込まれるべきq番目の副アレイのV番目の行からのビ
ットb(u、v、w )及びビットb(u、v、 Q′
)とu=q副アレイのV番目の行からのビットb(q、
v、w )とビットb(q、v、 q−)を選択するア
ドレスラインで構成されている。
所要の全ての計算を行なう手段は、各u=Q。
1、・・・、qに対しq番目の副アレイと関連する排他
的ORゲートのツリー52−uの様なパリティツリーで
あってその副アレイの行及びb(u、v、w)に於ける
ビットのモジュロ−2和を計算するパリティツリーと、
q個の副アレイの各々から1個の入力を受は副アレイの
各々から選択されたb(u。
v、w )を有するプロダクトコード及びb (u、v
、w )に於ける列に於ける単一ビットのモジュロ−2
和を計算す−る加算器53−0乃至53−4からなるパ
リティツリーと、入力ライン上に最も屡々発生するO又
は1の値を出力する多数法論理ゲート54とを有してあ
り、その構成を第5図に示しである。
第3図に示した実施例に関連して前述した如く、複数個
のデータ誤り及び回路欠陥を検出する方法を本発明の構
成を使用して実施することが可能である。この方法によ
れば、メモリ回路が故障したか否かを決定することが可
能であると共に、回路内の何れかのビットが誤りである
かを検出し、且つ誤りである場合には、そのビットを訂
正することを可能とする。
この複数個のデータ誤り・回路欠陥検出方法によれば、
最初に、q個の副アレイの各々の1番目の行に対する行
パリティ和及び全ての副アレイの1番目の行及びW番目
の列に於ける全てのビットのパリティ用、即ち各Wに対
し1個の和、を計算し、パリティ違反の数をカウントし
、以下の条件が満足される場合には複数個の誤りが存在
することを検出し、 ′(a)パリティ違反の数が偶数であるがO又は2でな
い場合か、又は (b )パリティ違反の数が2であるが、1を超えた行
パリティ違反又は1を超え た列パリティ違反がある場合、 且つ、パリティ違反の数が奇数である場合には回路欠陥
を検出する。何故ならば、読取られた任意の1個のビッ
トに誤りがある場合には2個のパリティエラーを発生し
、従って1個のパリティのみでは回路欠陥を表わすこと
ができるに過ぎない。
この手順を各Vに対して繰返し行なうことが可能である
一定のメモリ寸法に対しては、この複数個の独立したプ
ロダクトコードブロックへ構成することはコーディング
効率を減少させることとなる。この方法を256にメモ
リへ実施すると、Q==Q=ρ−64及び64 (2(
64) +1 )個のパリティとなる。この場合のコー
ディング効率は64×64プロダクトコードの効率であ
り、メモリの約1/33がパリティ用に占有される。し
かしながら、この場合の最大の面積上の問題はパリティ
用の貯蔵面積ではなく、寧ろ別々の副アレイ及びパリテ
ィツリーに対して別々のセンスアンプを設けるというこ
とである。何れの列も高々1ビツトを出力和に対して貢
献するので、その他の誤りが存在しないと仮定した場合
に、メモリに故障が発生しなくとも副アレイの1個の列
全体が故障する。
次の実施例に於いては、別々の行アドレス機能及びアド
レスコンピュータを各々の副アレイに使用しており、メ
モリが組直されて投影的幾何学形状から得られるグラフ
コードに於ける単一のコードワードを形成する。第5図
に示した実施例と比較して、パリティチェックビットに
よって占有されるメモリの部分は事実上不変である。類
似したパリティツリーが、1個のビットが読出された時
点に於いて、単一の誤り訂正を行なうことを可能とする
。このコードは最小路111f6を有してあり、二重誤
り訂正を行なうことが可能である。
前掲の゛″低複雑性コードへの帰納的アプローチ(A 
  Recursive  A pproach   
to  L OW −COmp+ex+ty  Cod
es) ”に記載されている如く、又Qameron、
 P 、 J 、及びVan  Runt、  J、 
l−1゜共著の“グラフ理論、コーディング理論及びブ
ロック設計(G raph  T heory、  C
oding  T heory、  and  31o
ck  D esigns) ” 、ケンブリッジ。
ケンブリッジ大学出版、 1975年、に記載されてい
る如く、投影幾何学形状PG (2,Q ’)を使用し
て任意の写9に対しフィールド面六辺形コードを構成す
ることが可能である。点及び線でパリティチェックを表
わし且つ全ての点−線の対に対しビットノードを形成す
ることにより、ガース即ち最小サイクルが12である2
部構成グフフが形成される。この様なグラフに於いて、
任意のビットノードは、深さ6を超えてサイクルが形成
されていない第3C図のものと類似したツリーの形態で
グラフの根として使用することが可能である。q=2に
対するこのタイプのグラフを第6A図に示しである。今
度の場合には、グラフを形成する場合に実際のツリーか
ら開始し、ツリーの一側部の下部に於ける葉の端部を他
側部に於ける葉の端部へ接続させ、そうすることにより
形成されるグラフの最小サイクルが12となることを確
保する。
1度この様にしてグラフが構成されると、その実施、例
えば、RAMとして使用することはプロダクトコード技
術の拡張である。注意すべきことであるが、例えば、ツ
リー形態に於けるグラフの下部にはq3のビットノード
(即ち、q=2の場合は8個のビットノードがある。)
これらの下部ノードを実際のデータビットとしてとるこ
とが可能であり、グラフの上の方にあるノードはパリテ
ィチェックである。ツリー形態に於けるグラフの下部に
於けるq3 ビットに対し任意の値が与えられると、残
りのビットの値を適切に選択することによって全てのパ
リティ方程式を満足させることが可能である。従って、
コードは(((1+1>(q2+ (1+1)、  q
3,6)コードである。このことは、第6A図のツリー
形態に於けるグラフを考慮することによって理解するこ
とが可能であり、そのグラフに於いて、典型的な値が深
さ6に於ける情報ビットへ与えられている。第6A図に
示した如く、深さ5に於けるノードによって表わされる
パリティ方程式は、深さ4に於ける各ビットを深さ5に
於けるパリティノードの下側に接続され且つ深さ4に於
けるビットに接続されている深さ6に於けるビットの全
てのモジュロ−2和とすることによって満足させること
が可能である。
同様に、深さ3に於けるノードによって表わされるパリ
ティ方程式は、深さ2に於ける各ビットを深ざ3に於け
るノードに接続され深さ2に於けるビットに接続されて
いる深さ4に於けるビットの和と等しくすることによっ
て満足させることが可能である。最後に、深さ1に於け
る両方のパリティ方程式は深ざ0に於ける頂部ビットを
、同じ値でなければならない左側の組及び右側の組のパ
リティ、即ちツリーの下部に於ける深さ6に於ける8個
のビットのモジュロ−2の和とすることによって満足さ
れる。
このコードは、驚くべきことに、回路コードである。抽
象回路コードは、Peterson、  W、 W。
及びWeldon、  E 、 A 、共著の゛誤り訂
正コード(Error−CorrectingCode
s)”、ケンブリッジ、 マサチューセッツ MIT出
版、 1972年、及びHuffman、 o、 A、
  ”グラフコード(G raphCodes) ” 
、未出版、 1966年の文献に記載されている。この
ツリーはスパニングツリ−(5pann i ngt 
ree )を形成しており、従って、パリティチェック
を確立するのに十分である。本発明者の知見したところ
によれば、投影面に基づくグラフコードをメモリアーキ
テクチャに適用することにより著しい効果が得られるこ
とが分った。特に、この様なメモリは二重誤り補正及び
三重誤り検出を行なうことが可能となる。
任意の基数qに対し投影面グラフを構成する為には、Q
=2の場合に対し第6B図に示した如く、2つに分岐、
した両側型ツリーから開始する。左側の頂部には線ノー
ド(中空の四角で示しである)が設けられており、右側
の頂部には点ノード(中空の円で示しである)が設けら
れており、これら2つのノードはエツジによって接続さ
れている。
左側の線ノードから、q個のエツジを下側に加算し、各
々新しい点ノードで終了し且つ各々がガロイス(Gal
oiS )フィールドGF (Q )の要素によってイ
ンデックスされる。(q=2の場合には、これらフィー
ルド要素はO及び1である。)右側の点ノードから、q
個のエツジを下側に加算し、その場合に各々新しい線ノ
ードによって終了され且つ各々フィールドGF (Q 
)の要素によってインデックスされる。同様に、左側に
今構成された各点ノードから、線ノードによって終了さ
れ且つフィールド要素によってインデックスされて1組
のq個の新しいエツジが付加される。これと対応して、
右側に今構成された各線ノードから、点ノードによって
終了され且つフィールド要素によってインデックスされ
て1組の新しいq個のエツジが付加される。この時点で
、両側型のツリーは夫々の側部に於いて異なったタイプ
、点及び線、のノードからなる3個のレベルを有してい
る。左側の下部線ノードの各々から、q個の新たなエツ
ジが下側に付加され、その場合にその各々がフイールド
要素によってインデックスされるが、これらのエツジは
新しいノードで終了されることはない。
注意すべきことであるが、これらの新しいエツジはGF
 (Q )からの要素の3個の集合によってインデック
スされるものと見ることが可能であり、特定のエツジに
対するこの3個の集合はそのエツジに到達する為にツリ
ーの左側を下側へ下降せねばならないエツジの連続する
インデックスによって定義される。左側の下部に於ける
エツジに対するこの3個の集合は(U、V、W )によ
って与えられる。同様に、ツリーの右側の下部に於ける
各ノードにq個の新たなエツジを付加し、これらのエツ
ジはツリーの右側を下部エツジへ向かって下降する径路
に沿うエツジインデックスによって定義されるCX、V
、Z )によってインデックスされる。
このツリーは、左側のツリーの下部に於ける各エツジを
右側に於けるツリーの下部に於ける1個のエツジへ接続
させることによってグラフの形態に変形される。この様
な接続が1度なされると、そのグラフはグラフ内のエツ
ジの各々の中間にビットノードを差込み且つグラフの点
ノード及び線ノードの両方をパリティノードとして使用
することによりコードグラフに変換される。これらの接
続は、下部左側のエツジのアドレス及び下部右側のエツ
ジのアドレスをマツピングする関数Xを与えることによ
って定義される。これらの新しく接続されたエッジヘビ
ットノードを導入した後に、エツジアドレスは実効的に
これらのビットに対し2個の異なったアドレスを提供す
る。ツリー形態に於けるグラフの下部に於けるピッ1へ
に対し2個の異なったアドレスを関係付ける関数fを与
える事によってこれらの接続をなす事につき説明する。
ツリーの左側は、下部ビットの自然にqに関するアドレ
ス動作を与え、且つ右側は異なったqに関するアドレス
機能を与える。(q+1)番目の記号φを使用すること
により、(q+1)に関するアルファベットで3個の集
合の形態でツリーに於ける全てのビットに対するアドレ
スを与えることが可能である。左側半分を介してアドレ
スする場合には、これら3個の集合は括弧で括られる。
右側半分を介してアドレスする場合には、これらの3個
の集合は大括弧で括られる。頂部に於けるビットは(φ
、φ、φ)−〔φ、φ、φ〕である。
左側の深さ2に於けるビットは(U、φ、φ)である。
深さ4に於けるものは(U、V、φ)であり、左側のツ
リーを介してアドレスされる下部ビットは(U、V、W
 )である。右側に関しても同様に、深さ2に於けるビ
ットは(X、φ、φ〕であり、深さ4に於いては(x、
y、φ〕であり、下部に於けるものは(x、y、z )
である。これらのアドレス要素U、V。
w、x、y及びZは全てGF((1)の要素どして解釈
することが可能である。
下部に於けるデータビットによって形成されるツリーの
左側半分及び右側半分の間のリンクは、アドレスマツピ
ングf : (u、v、w )→(X、V、Z )によ
って表わすことが可能であり、従って左側半分を介して
のビットのアドレスは(U、V、W )であり右側半分
を介してのアドレスは(f (u、v’、w ) )で
ある。この場合に、このコードは、グラフ内に12より
少ないサイクルが存在することがない様にマツピングf
を選択することにより、最小距離6を有している。この
ことは常に行なうことが可能である。例えば、アドレス
マツピングがf(u。
v、W) = (x、y、z ’) = (w、 v−
uw、 u )によって与えられ且つGF (Q )で
演算される場合、このグラフは12より短いサイクルを
有することはない。このことは以下の記載から理解する
ことが可能である。
マツピングfは明らかに全単写(即ち、1対1のマツピ
ング)である。又、このグラフは二重に2部構成(bi
parNte )であり、線ノードはごットノードを介
してのみ点ノードへ接続し、他の線ノードを介してでは
なく、又その逆も真であるので、任意のサイクルは長ざ
4,8又は12を有するものでなければならないという
ことを理解するのは容易である。4又は8の短いサイク
ルが根ノードを通過することができず、深さ1に於ける
パリティノードを通過することもできない。右側の深さ
3に於けるパリティノードを通過する短いサイクルがあ
る場合には、それは左側の深さ5に於ける1個のパリテ
ィノードを通過せねばならない。
しかしながら、アドレス(uo、  Vo、  Wo 
)及び(llo 、  VO、Wl ) 、 W O’
F Wlを有する任意の対のビットは右側に於いて異な
ったXアドレスを有しており、従ってこの様なサイクル
は右側の深さ1に於けるパリティノードを通過せねばな
らない。このことは、それが長さ12又はそれ以上の長
さを有することを示している。同様に、短いサイクルは
右側の深さ5に於ける1個のパリティノードを通過する
ことができない。唯一の残された可能性は、深さ5及び
6に於けるノードに制限された短いサイクルである。そ
の場合には、この短いサイクルはこの形態の左側及び右
側のアドレスを有する4個のビットを通過せねばならな
い。
左側アドレス      右側アドレス(uo、  V
Q、  wo)    (xo、  yo、  z+)
(lJo、、Vo、  L)    (XI、  Vl
、  Z2)(ul   l   Vl   *   
 W2   )        (XI   、   
Vl   l   Z3   )(lJ+、  Vl、
  W3)    (XO,Ilo、  ZO)fの定
義により、このことはWl = W2 = xl 。
wo = W3’= xo 、  Z1= Z2 = 
uo及び20 =Z3 = LI+である事を示す。従
って、yl = VO−tlOWl=%J−uIWl及
びVO=VQ’−1lOwo”’ Vl −UI  W
Qである。従って、vO−Vl = L  (Uo −
ul ) = Wo  (Uo −U+ )である。こ
れらはフィールドの要素であり且つゼロでない要素は逆
数を有しているので、このことはIJQ = Lll又
はWo = Wlの何れかであることを示しており、こ
れは矛盾である。従って、この様なサイクルが存在する
ことはなく、且つこのグラフはガース12を有している
このマツピングの(1=2に対するものを第6C図に示
しである。勿論、任意の均等な関数、即ち関連するグラ
フに於ける最小サイクル長が12である特性を有するも
のはグラフを形成する為に使用することが可能である。
このコードの場合にメモリ内に書込みを行なう手順の目
的は、ストアされている値をアップデー     −ト
してメモリが常にコードワードを形成する様にさせると
いうことである。電源が投入されてメモリをセットして
その全てのビットを○とするか又はメモリがリセットさ
れてその全てのビットを○とする場合には、それは明ら
かに正しいコードワードを形成する。データビットを書
込む為には、ストアされているビットが、頂部に於ける
ビットも含めて、そのビットからの2個の径路上のその
他の5個のビットと共にメモリからツリーの頂部へ読取
られる(第6C図に於いては、これらのビットは中実円
形黒点として示しである)。書込むべき値が読出された
ものと同じである場合には、6個のビット全てが不変の
まま書込まれる。新しい値が異なる場合には、6個の値
全てがコンブリメントされ、次いで書込まれる。メモリ
のアドレス機能配列(後に説明する)により、これら6
個のビット全てをアクセスし並列に書込むことが可能で
ある。この書込手順が適切に機能する為には、読出され
た値が正しいものでなければならない。
そうでないと、コンブリメント動作によりパリティビッ
ト内に誤りを発生し、それが後の読取誤りを発生させる
可能性がある。従って、読出された値は誤り訂正読取手
順によって与えられるものでなければならなず、それは
単−誤り訂正か、又は付加的な保護の為の後述するソフ
トウエア二重誤り訂正手順である。
単−誤り訂正を伴う読取動作は、プロダクトコードに対
する手順と類似している。第6A図を参照すると、誤り
が発生しなかった場合には、ツリーの左側半分に於ける
深さ2に於けるビットのパリティ和及び右側半分に於け
る深さ2に於けるビットのパリティ和の両方がツリーの
頂部に於けるビットの値と同じである。高々1個の誤り
が発生する場合には、これら3個の多数決により正しい
値が与えられる。本発明に基づ<RAM構成により、こ
れら3個の値が任意のビットの読出しに対して使用する
ことが可能な状態とされる。
その場合に使用されるコードは最小距離6を有しており
、従って二重誤りを補正し且つ3個以上の誤りを検出す
ることが可能である。この目的の為に、Tanner、
  R,M、  ”低複雑性コードへの帰納的アプロー
チ(A  Recursive  A pproach
to  L OW−Complexity   Cod
es)”  、  I  E E ETrans、  
  Inform、   Theory、   Vol
、  27゜No、4. 1981年9月、  533
−547頁に記載されているツリーアルゴリズムを使用
することが可能であり、次にそれをどのようにしてメモ
リの内容に適応することが可能であるかということを説
明する。ビットが読取られるごとにハードウェア内の二
重誤り訂正手順を完全に実行しようとすると、アクセス
遅れを増加させ且つかなりの付加的な回路を必要とする
。従って、メモリ及びそのアクセス回路とともにシステ
ムマネージメントプログラム内に設けられるソフトウェ
アで実行するようにすることが一層適切である。例えば
、このソフトウェアはダイナミックメモリ用のリフレッ
シュプログラム内に自然に組込むことが可能である。
このグラフはガース12を有しており、このグラフに於
ける任意のビットは第6A図に示したツリー形態に於け
るグラフの根として使用することが可能であると仮定す
る。ツリーの頂部に於けるビットの値は、二段手順を使
用する2個の誤りが存在するにも拘わらず、正確に取返
すことが可能である。第1段に於いては、深さ3に於け
るパリティノードの各々に接続されている全てのビット
のモジュロ−2の和が計算される。これらの何れかがO
でない場合にはパリティ違反が存在することを表わして
おり、不確かな値であることを表わす“X″がそのパリ
ティノードに隣接する深さ2に於けるビットノード上に
位置される。第2段に於いては、深さ2に於けるビット
の値(0,1か又は’X”)を使用してツリーの頂部に
於けるビットの値に対する2個の予測値を形成する。ツ
リーの左側半分に於ける深さ2に於ける全てのビットの
モジュロ−2の和を計算する。これらのビットの何れか
が値゛X ITを有している場合には、その和も又“X
″であると考えられる。この和はツリーの頂部に於ける
ビットの値に対する一方の予測値である。同様に、ツリ
ーの右側半分に於ける深さ2に於ける全てのビットのモ
ジュロ−2の和が計算される。これらのビットの何れか
1つが値″′X′′を有している場合には、その和も又
rr X uを有しているものと考えられる。この和は
ツリーの頂部に於けるビットの値に対するもう1つの予
測値である。次いで、3個の値が頂部ノードに与えられ
る。即ち、左側からの予測値と、右側からの予測値と、
ビットそれ自身のストアされた値である。頂部ビットの
値に関し最終的な決定をする為に、O又は1の予測値2
の重みが与えられる。
一方、r(X ++の予測値には重みが与えられない。
そのビットに対しストアされているO又は1の値には1
の重みが与えられる。全体として最大の重みを有する値
が答である。従って、対立するO及び1の予測値はスト
アされた値によって決定される。11 XI ++の1
個の予測値とストアされた値と他方の予測値との間の対
立は予測値の方が優ることとなる。2個の(L X +
+とストアされた値の場合はストアされた値が与えられ
る等々である。
上述した説明に於いては値II X ++の概念を使用
しているが、ハードウェアは実際的に非バイナリ−値を
与える必要はない。グラフ内の深さ3に於けるパリティ
ノードの1つに於いてパリティ違反が発見された場合に
は、そちらの側のツリーから来る予測値は常に“X″で
あり、それには何等重みが与えられていない。ソフトウ
ェア二重誤り訂正手順は、単−誤り訂正読取手順を使用
して深さ2に於ける全てのビットを読取ることによりこ
の様なパリティ違反の存在を決定することが可能である
。多数決論理ゲートへのラインは、パリティ違反がある
か否かを表わす。これらはソフトウエア二重誤り訂正手
順によって使用する為に外部的に使用可能な状態とされ
る。
誤りが存在しない場合には、正しい値に対して最終的な
決定は全部で5の重みを有している。左側から2、右側
から2及び頂部に於けるビットから1、且つツリー内の
何れかに於ける単一の誤りが最終的な重みに高々2の変
化を起こさせるということをチェックすることは簡単明
瞭である。従って、最終的なビット値は、2個又はそれ
以下の誤りが発生している限り、正しいものである。メ
モリの訂正が望まれる場合には、このR柊的なビット値
がメモリ内に書込まれる。
この手順を実行する際の詳細について検討する前に、投
影面を形成する為に使用されたツリーをどの様にしてR
AM等の様な半導体メモリに実現することが可能である
かということを示した実際のハードウェアについて説明
する。
このメモリの物理的な組立における開始点は、ツリーの
左側によって与えられるアドレス機能である。データビ
ットはq個の副アレイ内にストアされ、その各々はq個
の行及びq個の列を有している。これらの副アレイはり
によってインデックスされ、又副アレイ内の行はVによ
ってインデックスされ又その列はWによってインデック
スされる。左側の深さ4に於けるパリティビットは各1
副アレイ内にエキストラな列としてストアすることが可
能である。これが第7図に示した形態であり、そこに於
いては、各々が4個の情報ビット含有しているu=Q及
びu=1の2個の主要な副アレイがエキス1〜うな3番
目の列を有している。左側の深さ2に於けるパリティピ
ットは各U副アレイに関連した付加的なビット、即ち(
U、φ、φ)ビットである。
アドレス(LIO,VO,WO)を有しており b(U
o、  Vo、  Wo )によって表わされるビット
が読取られると、前に述べた訂正手順がビットそれ自身
及び2個のパリティ和を必ばとする。即ち、(1−1 b(uo、Vo、φ)十Σb(uo、vo、w)+b(
uo、vo、wo)W=0 (4,1> 及び −1 1)(Xo、Vo、φ〕十Σb (Xo 、  Vo 
、 Z ) 十b (Xo 、  Vo 、  Zo 
)−0 (4,2) 尚、f(uo、  、vo、  WO>=〔XQ、  
yo。
Zo )であり、これらの和はモジュロ−2である。
最初の和は簡単明瞭である。即ち、それは、ビット値そ
れ自身で排他的OR動作されたエキストラな([0,V
O,φ)ビットを有するuO副アレイの全VQ行の排他
的ORの和である。ビット値それ自身を加算するのは、
行の和尚にそれが存在することを相殺させる為である。
2s目の和はそれ程自明なものではないが、次式が成立
することに注意すべきである。
−1q1 尚、%”0=(Vo −uOWo )である。どットb
(Xo、yo、φ)は要素が×0及びyOか又は等価的
にv″o及びWOによってインデックスされるツリーの
右側に対する別の特別の副アレイ内に於けるビットとし
て考えることが可能である。
このことは、第7図に於いてU−φのアレイとして示し
た(φ、v′、w)副アレイとして言及される。同様に
、〔×、φ、φ〕のアドレスを有するビットを、U−φ
副アレイに付随している(φ。
φ、W)列内にストアさせることが可能である。
上部の(φ、φ、φ)ビットはその副アレイに対するエ
キストラなビットである。上式の和(4,2)は各主要
な副アレイからの1個のビット、即ち(φ、m、w)副
アレイからの1個のビット、の排他的ORの和及びビッ
トそれ自身である。前と同様に、ビット値それ自身が加
算されて最後の和から消去される。ガロイス(Galo
is )フィールド上のメモリアドレスの計算は本発明
の新規な特徴事項である。従って、並列パリティ計算と
共にこの特徴事項について以下詳細に説明する。
第8図に於いて、q=4に対するメモリの概略図が与え
られている。ビットが読取られると、入力アドレスが3
個の部分U、 V−及びWに分割される。アドレス計算
を簡単化する為に、内部アドレス(U、V、W )を有
するビットに対する外部アドレスは(u、 v−−v−
uw、 w )である。勿論、このことはユーザに対し
て何等差異をもたらすものではない。q個の異なった副
アレイの各々は行アドレスコンピュータを有しており、
それは入力としてV′及びWを受取り、それ自身のUの
独特な値を使用して、UVと、その副アレイに対する行
アドレスと、V′+LIQWを計算する。乗算は単に定
数をフィールドに掛けるだけであり、3erlekam
p、 E、 R,著の゛′代数的コーディング理論(A
Igebraic  Coding  TheOry 
)”、マクグローヒル出版社、 1968年、44−5
1頁、に記載されているベースフィールドに亘るマトリ
クス乗算と等しい。
例えば、GF (22)は、原始的で簡単化が不可能な
多項式α2+α+1=Oによって発生される。GF (
22>の要素はα:0,1.α、1十αに於ける多項式
によって表現するか、又は係数ベクトル(0,’O)、
(1,0)、(0,1)及び(1,1)によって表現す
ることが可能である。
アレイUQに対する行アドレスコンピュータは入力され
るV′及びWラインからシー+UQWを計算せねばなら
ない。これらのラインは又多項式V′及びvtの係数で
ある。uO= IJQQ + UO1α−(uco、u
ot)及びW=(WO、Wi )= WO+W1αであ
る場合には、通常、00−  w= (uooWo )
十(U(KI  Wl + LIOI  wQ )α十
(uoIW+ )α2である。従って、α2=α+1で
あるから、IJO−W= (uQOWQ +uot W
i ) +(U[XI W++ 1101 WO+ u
olWl )αである。一定のuOに対しては、これは
リニアであり、従ってマトリクスによって以下の如く表
わすことが可能である。
4個の異なったUOに対する実施形態を第9図に示しで
ある。第9図に示した如く、V′及びyの加算は2個の
2ビツトベクトルのビット的排他的ORである。uQ 
=φ副アレイは、単に、Wを行デコーダへ与えV′を列
デコーダへ与える。q=64の場合の実施例に対しては
、加算は2個の6ビツトベクトルのビット的な排他的O
Rである。
1個の副アレイに対する計算全体は6個の多数入力排他
的ORゲートで実施することが可能である。
副アレイの各々は(Q+1)入力排他的ORからなるツ
リーを有しており、それは計算された行アドレスによっ
て特定される行に於けるビットのモジュロ−2の和を計
算する。Wアドレスはその行からビットを選択する。そ
の行に於ける最後のビットはそのuOに対して(U、V
=、φ)ビットである。
q=64に対しては、例えば、原始的な簡単化する事が
不可能な多項式α6+α+1−0を使用することが可能
である。この場合のフィールド要素は6個の集合からな
り、次式の如く表わさ1する。
w=  (Wo、 WI+ W2. W3. wa、 
W5)=WQ+W、α+W2α2+W3α1+w4α4
+W5α564個のuOに対する全てのマトリクスは、
第10A図に示した如く、uo = 1 、  uo 
=’a。
uo−α3.uO−α4 、  uo =α5に対する
マトリクスの和である。
これらのマトリクスが排他的OR接続を決定する。例え
ば、LIO=α2副アレイに対して(よ、その行アドレ
スコンピュータを第10B図に示しである。
ここで注意すべきは、第1 ’O8図に於ける排他的O
R接続A*、B*、・・・、H*がどの様にマトリクス
入力A、B、・・・、Hの像となっているかということ
である。
別のtlOに対するマトリクスを得る為に、存在するα
の箒に対するマトリクスが付加される。例えば、U= 
(1,0,0,1,0,1,l=1+α3+α5の場合
には1.α3及びα5に対するマトリクスが付加される
。尚この状態を第11A図に示しである。
これに対応する行アドレスコンピュータを第・11B図
に示しである。第11B図に於いて、排他的OR要素は
例えば要素111の様な構成によって示しである。
これは゛典型的な″複雑性を有する行アドレスコンピュ
ータである。即ち、例えば、定数の乗算を行なう為に約
12個の排他的ORを使用しており、ベクトル加算を行
なう為に加算器112の様な6個の加算器を使用してい
る。図示した構成は(65x64)+1ビツトを有する
アレイに役立つ。
その他の原始的で簡単化することの不可能な多項式を使
用してフィールドを発生させることが可能であり、その
場合には機能的には等価であるが異なった行アドレスコ
ンピュータが与えられる。
Uアドレスで特定の副アレイを選択することによって和
(4,1)が発生される。その副アレイのW選択された
ビットは所望のデータビットであり出力ライン上に与え
られる。その副アレイに対する排他的ORツリーの出力
は式(4,1)の最初の2つの項であり、それは゛′W
和出力″へ通ずるライン上へ与えられる。実際の゛W和
出力″1式(4,1)は選択されたビットを有するもの
の排他的ORである。
和(4,2)は9個の副アレイの各々からのW選択され
たビットと(φ、v′、w)の付加的な副アレイのW行
及びV−列からのビットを結合させル別の(Q+1>入
力排他的ORツリーによって形成される。実際の(へ)
、V、W )ビットはこれと排他的OR操作されて和(
4,2)を与える。
書込動作を行なう為には、前に述べた6個のビット(5
個のパリティビット+1個の情報ビット)がアクセスさ
れねばならない。これらのビットの最初のものは所望の
ビットそれ自身である。2番目のものはU選択された副
アレイのエキストラな列と同一の行に於けるビットであ
る。3番目のものはその副アレイに対するエキストラな
ビットである。(φ、v−、w)ビット及び(φ、φ、
w)ビットはU=φ副アレイの同一の行内に存在する。
第7図に示した如く、6番目のものはその副アレイに対
するエキストラな(φ、φ、φ)ビットである。第8図
にブロック線図の形態で概略水したハードウェアはこれ
らを並列で書込むことを可能とする。何故ならば、任意
の副アレイからの2個のビットは常に同一の行からとら
れるからである。
独立的なプロダクトコードに対するメモリ構成を表わす
第5図と投影面コードに対する第8図と比較検討すると
、それらは互いに良く似ていることに気が付く。主要な
相違点としては、投影面によって副アレイの各々からと
られる単一のビットは全て異なった行に存在することが
可能であるということである。このことは、第5図の独
立的なプロダクトコード構成に於いて存在していない行
の間の相互依存性を形成し、投影面コードによって二重
誤りを訂正することを可能とする。それに対応する犠牲
としては、副アレイの各々に対して個々の行アドレスが
計算されねばならず、且つ各副アレイがそれ自身の行ア
ドレスデコーダを持たねばならないということである。
これらの行アドレスデコーダは第8図に於いてデコーダ
84として示しである。q=64(即ち、256にメモ
リ)の場合の副アレイtl= (1,O,0,1,0,
1)に対し第118図に示した行アドレスコンピュータ
は、−一層複雑なものではあるが、第8図の構造に使用
した行アドレスコンピュータのタイプのものよりも代表
的なものである。勿論、第8図はq=4の場合の状態を
表わしており、又行アドレスコンピュータは、第118
図に示した如く、6ライン×6ラインではなく、第9図
に示した如く、2ライン×2ラインを有している。
ノ ランダムに発生された二重誤りは比較的部であると仮定
した場合には、ハードウェアによって自動的な二重誤り
訂正を入れ込む為にアクセス遅れを増加させ且つ回路複
雑性を増加させることは得策ではない。寧ろ、リフレッ
シュ手順の1部としてグラフ内の全てのパリティチェッ
クノードを系統的に調査することによりメモリマネージ
メントシステムが複数個の誤りを検出すべきである。
2個を超えてパリティチェック違反が存在する場合又は
パリティチェック違反を有する2個のノードが共通ビッ
トと照合しない場合には複数個の誤りが検出される。複
数個の誤りが検出された場合、それが二重誤りである場
合にそれを取除く為の慎重なアルゴリズムは、違反のあ
ったパリティによってチェックされた全てのビットに対
して、第6C図に関連して上述した二重誤り訂正ツリー
アルゴリズムを使用することである。
特定のビットに対して二重誤り訂正ツリーアルゴリズム
を実行する為には、問題のビットから距離2に於ける全
てのビットに対して単−誤り訂正回路によって自動的に
3個の出力を発生させることで十分である。訂正される
べきビットを第6A図の様なツリーに於ける頂部ビット
として見た場合に、そのツリーアルゴリズムは深さ3に
於けるパリティノードによって与えられる深さ2に於け
るビットに対する予測値から開始する。深さ2に於ける
ビットが読まれる場合、深さ2に於けるビットに対する
予測値は、実際上、多数決論理ゲー]・への3個の入力
の1個である。従って、多数決論理ゲートへの3個の入
力が外部的に使用可能な状態とされ、深さ2に於ける2
q個のビットを読取ることによってソフトウェア訂正を
開始し、深さ3に於けるパリティ違反に関する情報を得
る。
この情報は、頂部ビットを読取って得られる3個の多数
決ゲート入力と共に、このツリーアルゴリズムに必要と
される全てのものである。パ頂部ビットを読取る7′と
いうことは、手続によってメモリから頂部ピッ1〜が読
取られるプロセスのことを意味する。この様な手続に関
しては単−誤り訂正手順に関する説明に於いて既に説明
済みであり、ビット及びそのビットに関連する少なくと
も2個のパリティ和の読取が含まれる。
本解析を完全なものとする為に、パリティビットを包含
したメモリ内の全てのビットに対して多数決論理ゲート
への3個の入力が与えられるということを証明する。等
何泊には、グラフ内の各パリティノードに対するパリテ
ィ和を計算する事が可能である。第8図に示した様なア
ルキテクチャに於いては、全ての副アレイの全ての行の
パリティが偶数でなければならない。これらは、第8図
に示したツリー82の様な各副アレイと関連したハード
ウェアの排他的ORツリーによって計算される。ビット
(φ、φ、φ)を頂部に有する第6A図のツリーの場合
には、このことは、左側の深さ5に於けるパリティノー
ドと右側の深さ3に於けるパリティノードの全てのもの
を包含する。加算器83−1乃至83−4を有しており
各副アレイから1個のビットを取出す排他的ORツリー
は、右側の深さ5に於けるパリティノード及び左側の深
ざ1に於けるパリティノードに対する全ての和を計算す
ることが可能である。残りのパリティ和は、エキストラ
な列に於けるビット及び各副アレイに於ける離隔された
ビットの和である。これらを計算する為の1方法は、各
副アレイのエキストラな列に関して動作する別のパリテ
ィツリーを設けることである。別法であって好適な方法
としては、エキストラな列に於けるピッj・の現在のパ
リティ和を当然のことどして各リフレッシュサイクル毎
に容易に計算し、その際に1個の排他的ORとリフレッ
シュザイクルが引続いて行を読む毎に計算されるパリテ
ィ和を保持する為の1個の付加的な貯蔵ビットとを使用
するものである。
二重誤りの訂正にはアドレス関数fの計算が必要であり
、成るビットから距離2に於けるビットを見付けねばな
らない場合にこの必要性が発生する。この計算の最も困
難な部分はGF (q )に関するU及びWの乗算であ
る。これを行なう為の方法はB erlekamp、 
E 、 R−著の“代数的コーディング理論(Alge
braic  Coding  Theory)”。
マクグローヒル出版社、 1968年、47−48頁の
文献に記載されている。一方、256にメモリに対して
は、4K  ROMを使用して実施することが可能であ
る。
この最後の実施例の誤り訂正能力により、離隔されたビ
ット以上のものに影響を与えることのある回路欠陥が存
在するにも拘わらずメモリを正しく動作させることを可
能とする。メモリはアクセス用のライン及び排他的OR
ツリー内に於けるある程度の数の欠陥を許容することが
可能であり、副アレイの内で1個の副アレイのある列全
体が欠陥性のものであっても許容することが可能である
最終出力段である3人力多数決論理回路に於ける誤りに
は不可避的に弱いものであるが、アドレスコンピュータ
やデコーダの欠陥の場合はそれほどでもない。
単−誤り訂正手順は多数決論理回路の入力の1個のみに
影響を与える全ての誤りを訂正する。ビット内に誤りが
ない場合には、排他的ORツリーの1つが欠落し、3個
の入力の1つのみが誤りとなる。同様に、最終出力回路
へ通ずるアクセスラインの1つが欠落しても出力の誤り
を発生することがない。任意のビットが読取られると、
与えられた副アレイに於ける任意の与えられた列から高
々1個のビットがとられる。従って、それ以外のビット
誤りが存在しない限り、この様な列欠陥があったとして
も、メモリは正確に動作することが可能である。
アドレスコンピュータ及びデコーダの欠陥は明らかにも
っと破壊的なものである。1個の副アレイに欠陥が封じ
込められている場合にはその副アレイからのビットが実
際上外部的に使用されることがない場合には許容するこ
とが可能である。その副アレイが全体的な排他的ORツ
リーに対し1個のビットのみを供給する場合には、明ら
かに直接的に出力に悪影響を与えるものではない。しか
しながら、その副アレイからビットを読取ろうとする場
合に2個の不正確な値を発生させる可能性がある。
グラフ内のパリティノードの1つは冗長であるので、こ
の回路も又部分的に自己検査型である。
ビット誤りのパターンがどの様なものであろうと、満足
されることのないパリティチェックの数は偶数でなけれ
ばならない。各々のピッ1〜誤りは2個のパリティチェ
ック違反を発生させ、その違反の数は常にOモジュロ−
2(即ち、偶数)でなければならない。従って、メモリ
をリフレッシュする際に、マネージメントシステムが奇
数個の不満足なパリティノードを見付は出した場合には
、それは単にデータ誤りだけではなく回路の1゛つに於
ける欠陥が存在するということを表わしている。
本発明の方式及び方法は多数の損益分岐上の兼合いを実
施化するものである。実際のランダムなソフトエラーの
発生率は通常極めて低いという仮定の下に、誤り訂正回
路に於ける並列性は小さくされており、内部的な訂正は
読取又は書込の時又はメモリマネージメントシステムの
制御下に於いてのみ行なわれる。ランダムな誤り発生率
が増加した場合には、与えられた時間間隔で行なわれる
誤り訂正計算の数をそれに対応して増加させねばならず
、その場合にはマネージメントシステムによる監視の度
合を−H頻繁にさせるか又は内部的な並列訂正の度合を
増加さゼる。本発明は、特に、読取及び書込の間の期間
中に於げるメモリ内の自動的なビット誤り訂正として(
合成することが可能であり、そうすることにより前記メ
モリ内にストアされているデータの完全性を維持するこ
とが可能である。
本発明は基本的なメモリユニットの性質によって、種々
の寸法のメモリやメモリ構成の異なったレベルに於いて
適用することが可能である。より高度のレベルに於いて
は、それを−膜化すると、加算操作<X−0Rとして示
されている排他的OR)を有する1佃のピッ1−とじて
上述した実施例に記載しであるものをベクトル加算(コ
ンポーネント毎のX−0R)を有するビットのベクトル
によって置換づることが可能である。
例えば、8ビットバイト装置く即ち、各バイトが8ビツ
トを有する装置)用の221バイトメモリを組立てる場
合について検討する。このことは、本発明に基づくメモ
リの1実施例の2”−,1=129副アレイの各々を8
ビン1〜即ち1バイトをメモリユニットとして有する1
個のチップ上に設けることによって行なうことが可能で
ある。従って、1個の副アレイは8ビツト修正されたメ
モリにより2”=16にである。例えば、この様なメモ
リをランダムアクセスメモリ(RA M >とすること
が可能である。R,AMは行のベクトル和の為にエキス
トラに8個の列を必要とすると共に8個のパリティツリ
ーを必要とし、8ビツトを並列で出力する。しかしなが
ら、1バイトに於ける8ビツトの全ては同一のアドレス
を有しているので、RAMは1個の行アドレスコンピュ
ータと1組の行アドレスデコーダと列アドレスデコータ
とを必要とするに過ぎない。
1ビツトのものを8回繰返すことによって、アドレス用
のハードウェアも不必要に繰返される。
以上、本発明の具体的実施の態様について詳細に説明し
たが、本発明はこれら具体例にのみ限定されるべきもの
ではなく、本発明の技術的範囲を逸脱することなしに種
々の変形が可能であることは勿論である。
【図面の簡単な説明】
第1図は全てのパリティ方程式を満足する典型的な1組
のビット値を示したプロダクトコードアレイの説明図、
第2A図及び第2B図は行及び列のビットの両方を同時
的にアクセスすることが可能な対称的なランダムアクセ
スメモリのアーキテクチャを示した各説明図、第3A図
乃至第3C図はアレイ内の全てのビットに対してごット
ノードを形成すると共に全てのパリティチェック方程式
に対してパリティチェックノードを形成することにより
プロダクトコードアレイをツリー形態の2部構成グラフ
へ変換させる技術を示した各説明図、第4図は1行のビ
ット又は循環的に継続した対角線を同時的にアクセスす
ることを可能とした対角線上のイネーブルライン及び行
イネーブルラインを具備したランダムアクセスメモリを
示した説明図、第5図は全ての副アレイ内の特定のアド
レスを有する1組の行がプロダクトコードを形成してい
る複数個の副アレイからなるメモリを示した説明図、第
6A図はグラフの点ノード及び線ノードによって定義さ
れる全てのパリティ方程式を満足する典型的な1組のビ
ット値を示したツリー形態の投影面グラフを示した説明
図、第6B図はエツジアドレスを示すと共にパラメータ
Q=2を有する投影面グラフを構成する為に使用される
両側型ツリーを示した説明図、’460図はグラフ内の
全てのビットのアドレスを示したパラメータ q=2を
有する投影面グラフを示した説明図、第7図はグラフ内
の全てのビットに対する貯蔵位置を与える一連の副アレ
イに対するツリー形態の投影面グラフのマツピングを示
した説明図、第8図はパラメータQ=4の場合の投影面
グラフにおける任意のパリティノードに隣接した複数組
のビットに同時的にアクセスすることを可能とするアド
レスコンピュータを有する複数個の副アレイからなるメ
モリアーキテクチャを示した説明図、第9図はパラメー
タ q−4の場合の投影面メモリに対する行アドレスコ
ンピュータを示した説明図、第10A図はガロイス(G
 alois )フィールドGF (64>に対する基
本的な1組の要素に対するバイナリ−マトリクスを示し
た説明図、第10B図はパラメータq=64の場合の投
影面アーキテクチャに於けるuo = (0,0,1,
0,0,O)副アレイに対する行アドレスコンピュータ
を示した説明図、第11A図は基本要素LI= (1,
O,O,O,0゜0)、u= (0,0,0,1,O,
O)及びU=(0,0,0,0,0,1>に対しバイナ
リ−マトリクスを付加することによってGF(64)上
のu= <1.0,0,1.0.1)に対するバイナリ
−マトリクスを形成する状態を示した説明図、第11B
図はパラメータがq−64の場合の投影面アーキテクチ
ャに於けるアレイU−(1,0゜0.1,0.1)に対
する行アドレスコンピュータを示した説明図、である。 (符号の説明) 21.22 :  イネーブル回路 23.25:  選択回路 24.26 :  パリティツリー 28: 多数決ゲート 29: メモリセル 29a:  列イネーブルライン 29b:  列読取りライン 29C二  行イネーブルライン 29d:  行読取ライン 特許出願人   ザ ボード オブ トラスティーズ オブ ザ リーランド スタンフォード ジュニア ユニバーシティー 図面の浄書(内容に変更なし) FIG、 2A FIG、  3八 FIG、  3B FIG、 3 C 41つ、ビ、−θ (q=4) U♂(0,O)    uOw ・O剖イトレスつンe
′L−/3 S’(FIG、lO八 手続補正拡 昭和59年4月26日 特許庁長官  若 杉 和 夫 殿 1、事件の表示  昭和59年  特 許 願  第3
7407号26発明の名称 誤り検出・補正メモリ3、
補正をする者 事件との関係   特許出願人 4、代理人 6、補正により増加する発明の数   な  し7、補
正の対象   図面 及び 非営利法人証明書(訳文付
)8、補正の内容   別紙の通り

Claims (1)

  1. 【特許請求の範囲】 1、バイナリ−データビット内の誤りを検出し訂正する
    方式に於いて、情報ビットによって占有される第1組の
    アドレス可能な貯蔵位置を有すると共に冗長チェックビ
    ットによって占有される第2組の付加的なアドレス可能
    な貯蔵位置を有するデジタルメモリが設けられており、
    前記メモリは2部構成グラフによって特性付けられるコ
    ードによって定義されるアーキテクチャを有しており、
    前記グラフは6以上の最小サイクル長を有しており、前
    記メモリは前記第1組のアドレス可能な貯蔵位置内にス
    トアされている情報から前記冗長なチェックビットを発
    生させる手段を有しており、前記冗長チェックビットは
    チェック方程式を満足する様に選択されており、発生さ
    れたチェックビットを前記第2組の付加的な貯蔵位置に
    ストアさせる手段が設けられており、情報ビット又は冗
    長チェックビットを有する任意のビットbに対して次の
    3個の独立した値の多数決としてbを読取ることにより
    配達値と呼ばれる値を配達する手段が設けられている方
    式。 ビットbそれ自身。 ツリーの頂部にビットbを有するコードのツリー形態に
    於けるグラフの深さ2に於けるビットで前記ツリーグラ
    フの左側の深さ1に於けるノードによってチェックされ
    るビン1〜のモジュロ−2和。 ツリーの頂部に於けるビットbを有するコードのツリー
    グラフの深さ2に於けるビットでツリー形態に於ける前
    記グラフの左側の深さ1に於けるノードによってチェッ
    クされるビットのモジュロ−2の和。 2、特許請求の範囲第1項に於いて、ビットbの配達値
    をビットbが取られた前記メモリ内の位置へ戻す為の手
    段が設けられている方式。 3、特許請求の範囲第1項に於いて、与えられたビット
    bに対する新しい値をbのメモリ位置へ書込む為の手段
    が、2前記ビツトbに関連する・選択された数のパリテ
    ィ−チェックビットの値を決定する手段と、bの新しい
    値がbの配達値と一致するか否かを決定する、手段と、
    bの新しい値が前記配・連鎖と一致する場合には前記メ
    モリ内にbの配達値を再書、込し且つbの新しい値がか
    の配達値と異なる場合にばbの配達値のコンブリメント
    と前記選択した数のパリティ−チェックピットをメモリ
    内に読取らせる手段とを有する方式。 4、特許請求の範囲第3項に於いて、選択されたビット
    の前記読取及び書込に於いて必要とされる全ての値をア
    クセスする手段であって特に選択された組の情報及びチ
    ェックビットを読取及び書込回路ヘラrンに沿って並列
    的に伝送させることを可能とし且つ貯蔵位置へ再書込さ
    れるべきビットの修正値に対するアドレス回路を有する
    アクセスする為の手段が設けられており、前記読取及び
    書込手順に於いて必要とされる全ての計算をなす手段が
    設けられており、前記計算を成す手段が、選択された1
    組のビット値のモジュロ−2の和を計算する為の排他的
    ORゲートからなる1個又はそれ以上のパリティ−ツリ
    ーと、その入力ラインに於いて最も屡々発生するO又は
    1の値を出力する多数決論理ゲートと、選択したビット
    に対する配達値がそのビットに対して書込まれるべき値
    と同じであるか否かを判別する為の比較回路と、前記比
    較回路が前記2者が異なることを表わす場合に特定の組
    のチェックピットの値をコンブリメントする手段とを有
    する方式。 5、特許請求の範囲第4項に於いて、前記メモリアーキ
    テクチャに対応するコードグラフ内のパリティ−チェッ
    クノードに対応する全てのパリティ−チェック和を計算
    する手段を具備しており複数個のデータ誤り及び回路欠
    陥を検出する為の手段が設けられており、パリティ−違
    反の数をカウントする手段が設けられており、パリティ
    −違反の数が偶数であるかO又は2ではないか又は違反
    の数が2であるが違反のパリティ−チェックはコードグ
    ラフ内の単一ビットによって接続されているノードでな
    い場合に複数個の誤り状態を検出する手段が設けられて
    おり、パリティ−違反の数が奇数である場合に回路欠陥
    を検出する手段が設けられている方式。 6、特許請求の範囲第1項に於いて、前記メモリがメモ
    リセルからなる矩形アレイを有しており且つ前記アレイ
    内の(i 、 j )番目の位置がi−〇、・・・、 
    a −1,j =O,・・・、β−1に対し情報ビット
    b(t、j)によって占有されるアドレス機能を有して
    おり、前記メモリが最小サイクル長8を有するツリーグ
    ラフのプロダクトコードによって定義されるアーキテク
    チャを有しており、そのフードは <A)  J2 Σ b(i 、 t )=O但し、1=O2・・・、q
    1=0 従って 2−1 b(i 、I>=  Σ b(i、t)  但し、 i
    =o、・・・、q−11=0 及び、 B)   a Σ b(t、j)=O但し、j=o、・・・、j2−0 従って、 −1 b(q、j)=  Σ b(t、j>  但し、j=0
    .・・・、β1=0 上に記載したパリティ−チェック方程式によるチェック
    ピットを定義することによって発生され、且つチェック
    ビットb(i、ρ)但し、i =O。 ・・・、q及びb(q、j)但し、j =O,・・・、
    βが前記メモリ内の加算された列及び加算された行内に
    ストアされる方式。 7、特許請求の範囲第6項に於いて、チェックビットb
    (i、β)はβ番目の列内の1番目の行の終わりの位置
    を占有し、その列は行パリティーチェックのみを有して
    おり、チェックビットb(q 、 i )は列パリティ
    ーチェックピットのみを包含するq番目の行内の1番目
    の列の終わりの位置を占有しており、ビットb(q、I
    2)が前記メモリ内の全ての情報ビットの和を表わす方
    式。 8、特許請求の範囲第7項に於いて、bの配達値を決定
    する為の読取手順に於いて必要とされる前記メモリから
    の全てのビットの値をアクセスする為の手段が、付和パ
    リティーツリーヘラインに沿って並列して転送されるべ
    き前記アレイの1番目の行内にストアされている全ての
    ビットをイネーブルさせる為の行アドレスデコーダ手段
    及び死相パリティーツリーヘラインに沿って並列して転
    送されるべき前記アレイの3番目の列内にストアされて
    いる全てのビットをイネーブルさせる為の列アドレスデ
    コーダ手段と、情報ビットb (1゜J)と1番目の行
    に於ける最後のビットとb(i。 ρ)と3番目の列内の最後のビットとb(q、j)と前
    記アレイ内の角のビットb (ρ、Q)とを有する前記
    メモリ内の4個のビットを読取る為の手段と、b(i、
    j)の配達値が書込まれるべきb(i 、 j )の新
    しい値と異なる場合に4個のビットb(i、j)とb(
    i、I2>とb(a、j)とb(I2.Q)をコンプリ
    、・メントする為の手段と、前記新しい値がb(i、j
    )の配達値と同じである場合にb(i、j)に対する新
    しい値をそのメモリ位置に書込且つ前記新しい値がb(
    i、j)の配達値と異なる場合には前記4個の値のコン
    ブリメントをそれらのメモリ位置へ書込む為の手段とを
    有する方式。 9、特許請求の範囲第8項に於いて、ビットb (i、
    j)に対する配達値を決定する為の手順に於いて必要と
    される前記3個の値が、(A>  ビットb(i、j) (B)  a Σ b(t、j)+b(i、j) −0 即ち、ビットb(i、j>それ自身を除いた3番目の列
    内の全てのビットの和(C)12 Σ b(i 、 t )+b(i 、j )1=0 即ち、ビットb(i、j)それ自身を除いたi番目の行
    内の全てのビットの和且つ、書込手順の為に必要とされ
    るストアされている値がb(i、j)とb(i、I2>
    とb  (q。 j)と1)(Q、β)である方式。 10、特許請求の範囲第9項に於いて、i番目の行に於
    けるビット及びビットb(i、J)のモジュロ−2和を
    計算すると共にそれを表わす第1信号を発生する排他的
    ORゲートからなる第1パリティ−ツリーが設けられて
    おり、3番目の行に於けるビットとビットb(i、j>
    のモジュロ−2和を計算すると共にそれを表わす第2信
    号を発生する排他的ORゲートからなる第2パリティ−
    ツリーが設けられており、前記第1信号と前記第2信号
    と読取られるべき情報ビットであるb(i。 j)を表わす信号を受取る為の3個の入力リードを有す
    ると共にその入力ラインに於いて最も頻繁に発生するO
    又は1の値を有する出力信号を発生する多数決論理ゲー
    トが設けられている方式。 71、特許請求の範囲第10項に於いて、複数個のデー
    タ誤りと回路欠陥とを検出する手段が、全ての行パリテ
    ィー和と列パリティー和とを計算する手段と、(a )
    パリティ−違反の数が偶数であるがO又は2でない場合
    か又は(b)違反の数が2であるが1個を越えた行パリ
    ティー違反があるか又は1個を越えた列パリティー違反
    がある場合に複数個の誤り状態を検出する手段と、パリ
    ティ−違反の数が奇数である場合に回路欠陥を検出する
    手段とを有する方式。 12、特許請求の範囲第1項に於いて、前記メモリがア
    ドレス機能を有する正方形アレイを有しており、前記ア
    レイ内の(i 、 j )番目の位置が情報ビットb(
    i、j)但し、i =O,・・・、Q−1、j =O,
    ・・・、q−1によって占有されており、前記コードが
    修正されたプロダクトコードであって、そのツリーグラ
    フが最小サイクル長8を有しておりそのチェックビット
    は次式のパリティ−チェック方程式を課することによっ
    て定義され、従って、 k=1                      
                             
    (Ab(t 、x)−Σ  bo、t)   但し、 
    i=O+−、Q−’?i=o            
           (B即ち、ビットb(1,β)は1番目
    の行に於ける情報ビットの和であり、従って、b(Q、
    j)但しj =O,・・・、βは位置(i 、 j )
    を通過する循環的に継続した対角線上のその他のビット
    の和であり、且つチェックビットb  (i 、6)(
    FILi =O,−,q−1及びb(Q 、 j >但
    しj−0,・・・、ρはメモリ内の加算した列及び加算
    した行内にストアされ、且っb(i、J2>はi番目の
    列内のi番目行の終わりの位置を占有し、b(Q、j)
    はq番目の行内の1番目の列の底部の位置を占有する方
    式。 13、特許請求の範囲第12項に於いてビットb(i、
    j>に対する自動的な単−誤り訂正読取手順に於いて必
    要とされるストアされた値は、) ビットb(i、j> )  q Σ bl、t)+b(i、j) k=Q 即ち、その行と前記ビット自身のパリティ−和Σ b(
    i−に、k)十b(i、j)   (i−にはモジュロ
    q+1)k=0 即ち、その循環的対角線と前記ビット自身のパリティ−
    和である方式。 14、特許請求の範囲第13項に於いて、ビットb(i
    、j)に対する書込手順に於いて必要とされるストアさ
    れた値は、 (A)  b(i、j) (B)  b(Q、1) (C)  b(i、qン (D)  b(q、i+j+1モジュロ(q+1)) である方式。 15、特許請求の範囲第14項に於いて、前記自動的な
    単−誤り訂正多数決読取手順に於いて必要とされる全て
    の値をアクセスする為の手段が、前記アレイに隣接する
    パリティ−加算回路に伝達されるべき前記アレイの前記
    i番目の行内にストアされている全てのビットをイネー
    ブルさせる為の行アドレスデコーダ手段と、前記パリテ
    ィ−加算回路へ伝達されるべき前記アレイの循環的に継
    続した対角線に沿ってストアされている全てのビットを
    イネーブルする為の対角線アドレスデコーダ手段と、b
    (i、j)を通過する前記対角線が前記q番目の行を通
    過する場所に位置しているビットb(i、ρ)と前記q
    番目の行に於けるi番目のビットとb (q、i)とご
    ットb  (q、  (i十j十β)モジュロq+1)
    とをアクセスする手段と、b(i、j)の配達値が書込
    まれるべきb(i 、 j )の値と異なる場合に前記
    アクセスする手段によって配達される前記4個のビット
    のコンブリメントを供給し且つ前記ビット又はコンブリ
    メントを前記アレイ内のそれらの元の位置へ書込む手段
    とを有する方式。 16、特許請求の範囲第15項に於いて、第1及び第2
    出力信号を発生させる為に選択された対角線及び選択さ
    れた行内に於ける前記ビットのモジュロ−2和を計算す
    る為の複数個の排他的ORゲートが設けられており、前
    記第1及び第2信号を受取ると共にb(i、j)の配達
    値を表わす信号を受取る為の入力リードを有してありそ
    の入力リードに於いて最も頻繁に発生するO又は1の値
    を発生させる多数決論理ゲートが設けられている方式。 17、特許請求の範囲第16項に於いて、複数個のデー
    タ誤り及び回路欠陥を検知する回路が、全ての行パリテ
    ィー和及び対角線パリティ−和を計算する為の手段と、
    パリティ−違反の数をカウントする手段と、(a)パリ
    ティ−違反の数が偶数であるがO又は2ではない場合か
    又は(b)違反の数が2であるが1個を越えた行パリテ
    ィー違反又は1個を越えた対角線パリティ−違反がある
    場合に複数個の誤り状態を検出する手段と、パリティ−
    違反の数が奇数である場合に回路欠陥を検出する手段と
    を有する方式。 18.特lFf請求の範囲81項に於いて、前記メモリ
    が通常のアドレスm能を有する一連のQ+1個の矩形ア
    レイの形態であり、U番目のアレイ内に於ける(V 、
     W )位置が情報ビットb(u、vW)但しu =o
    、−、q−1,v =o、i、 ・・=。 (β−1)、W=0.1.・・・、(Q−−1)によっ
    て占有されており、前記コードが以下のパリティ−チェ
    ック方程式によるu=q副アレイ及びW=Q ′列に於
    けるチェックビットを定義することによって発生される
    一連の独立したプロダクトコードで構成されており、 (A)  a− Σ b(u、v、k)=O但し、u=Q、−、q  及
    びに=o          v=Q、・・・、β−1
    従って、副アレイのq番目の列に於けるビットは同一の
    行及び副アレイ内のその他のビットのモジュロ−2和で
    あり、舷=Ow=o、・・・、(+− 且つ、上に定義した如くチェックビットb(q。 v、wン但しシー〇、・・・、J2−1及びw =O,
    ・・・。 、   Q−−1はu=Q副アレイ内にストアされ又チ
    ェックビットb(u、v、q−ンはU番目の副アレイの
    q′番目の列内にストアされる方式。 19、特許請求の範囲第18項に於いて、ビットb(u
    、v、W)に対する読取手順によりビットb(u、v、
    w)の配達値を決定する為に必要とされるストアされた
    値が、 (A)  ビットb(u4.v) 一 (B)  Σ b(u、v、k)+b(u、v、w)k
    =0 即ち、同一の副アレイ及び行内のその他の全てのビット
    のモジュロ−2和(C)   Σ b(k、v、w)+
    b(u、v、w)k=0 即ち、前記副アレイ内の同一の行及び列内のその信金て
    のビットのモジュロ−2和である方式。 2、特許請求の範囲第19項に於いて、前記書込手順の
    為の必要とされる前記ストアされた値が、 (A)  b(u、v、w) (B)  b  (Ll、V、Q −)(C)  b(
    q、v、w) (D)  b(q、v、q−) 2、特許請求の範囲第20項に於いて、ビットの配達値
    を決定する手順に於いて必要とされる全ての値をアクセ
    スする為の手段が、各副アレイから1個の入力リードを
    有するパリティ−加算回路内へ供給されOからqへ変化
    する各kに対しに番目の副アレイからのビットb(k、
    v、w)及びU番目の副アレイからビットb(u、v、
    w)を選択する為に前記メモリをアドレス手段と、前記
    U番目の副アレイのv番目の行からビットb(u 、 
    v 、 W )及びビット1)(u、v、q−)及び前
    記u=q副アレイのV番目の行からビットb(Q 、 
    v 、 w )とビットb(q、v、q−)をアクセス
    すると共に読取る為の手段と、b(u、v。 W)の配達値が書込むべき値と異なる場合に前記アクセ
    ス手段によって選択される前記ビットをコンブリメント
    させると共に夫々の位置へ再書込を行なう手段とを有す
    る方式。 2、特許請求の範囲第21項に於いて、各U=0.1.
    ・・・、qに対しU番目の副アレイに関連した排他的O
    Rゲートからなりその副アレイの行に於けるビットのモ
    ジュロ−2和を計算するパリティ−ツリーが設けられて
    おり、Q+1副アレイの各々から1個の入力を受【ブ前
    記副アレイの各々から選択された単一ビットのモジュロ
    −2和を計算するパリティ−ツリーが設けられており、
    行に於けるビットのモジュロ−2和及び前記副アレイの
    各々から選択された単一ビットのモジュロ−2和を表わ
    す信号とビットb(u、v、w)の値を受取る為の入力
    ラインを具備した多数決論理ゲートが設けられており、
    前記多数決論理ゲートがその入力ライン上に最も頻繁に
    現れる0又は1の値を発生する方式。 2、特許請求の範囲第22項に於いて、複数個のデータ
    誤りと回路欠陥を検出する手段が、最初にq+1副アレ
    イの各々のv番目の行に対する行パリティー和及び各W
    に対し7個の和である全ての副アレイのv番目の行及び
    W番目の列に於ける全てのビットのパリティ−和を計算
    する手段と、パリティ−違反の数をカウントする手段と
    、(a >パリティ−違反の数が偶数であるがO又は2
    でない場合又は(b)違反の数が2であるが1個を越(
    A)えた行パリティー違反又は1個を越えた列パリティ
    ー違反がある場合に複数個の誤り状態を検出す (B)
    る手段と、パリティ−違反の数が奇数である場合に回路
    欠陥を検出する手段とを有する方式。 2、特許請求の範囲第1項に於いて、qを素数の暮とし
    て、前記メモリが各々がQ(q+1)十1ビットをスト
    アする一連のq+1副アレイの形態であり、前記コード
    が最小サイクル長12を有する投影面グラフに基づいて
    いる方式。 2、特許請求の範囲第24項に於いて、前記コードが関
    数f  (u、v、w)=(x、y、z)を使用したツ
    リーから構成される投影面に基づいており、尚x=u 
    、 y、=v−uw及びz=uであり、従ってq3ビッ
    トbの各々は1)(u、v、v)を通常のインデックス
    として有すると共にb(x。 y、z)を別のインデックスとして有し、前記メモリが
    212+20 +1個のチェックビットを有する方式。 2、特許請求の範囲第25項に於いて、D(uo 、 
    Vo 、 Wo ) −1 b(Uo、Vo、φ)+Σ b(LIo、Vo、 w)
    +b(uo、 vQ、 wo)^r−〇 即ち、ビット値それ自身と排他的OR処理されたエキス
    トラな(UO,VO,φ)ビットを包含するuQ副アレ
    イのvO行全体の排他的OR和であり・ q−1 (C)   b(φ、Vo−、Wo>+ Σ b (U
    、  Vo −+UWo 、  WO)u=Q +b(uo、  Vo、  Wo ) Av=  vo −= (VO−Llo  WQ )尚
    、b (φ、VO−、WO)はVO′およびWOによっ
    てインデックスされる要素を有するツリー形態にに於け
    るコードグラフの右側に対する(φ、V−、W)副アレ
    イとして言及される特別の副アレイ内のチェックビット
    であり、又、和(C)は各主要な副アレイからの1個の
    情報ビットと(φ、v−、w)副アレイからの1個のチ
    ェックビットと該ビットそれ自身の排他的OR和であり
    、 前記ビットの多数決により情報ビットb  (LIQ 
    。 Va、Wo)の配達値を決定する手段が設けられている
    方式。 2、特許請求の範囲第26項に於いて、b(uo、  
    VQ、  WQ )に対する書込手順に於いて使用され
    るビットは、 (A)  b  (uo、  Vo、  wo)(B)
    l)(υo、vo、φ)、ビットb(uo、Vo、Wo
    )上方ツリー形態に於けるコードグラフの左側に於ける
    深さ4に於けるチェックビット (C)b(uo、φ、φ)、チェックビットb(uO,
    vo、φ)上方の前記ツリーの左側に於ける深さ2に於
    けるチェックビット(D)b(φ、  Vo =、  
    Wo )、ビットb  (IJo、  Vo、  wo
    )上方の前記ツリーの右側に於ける深ざ4に於けるチェ
    ックビット(’E)b(φ、φ1wo ) 、チェック
    ビットb(Uo、Vo、φ)上方の前記ツリーの右側に
    於ける深さ2に於けるチェックビット(F)b(φ、φ
    、φ)、前記ツリーの根に於けるチェックビット によって与えられる方式。 28、デジタルメモリ内に2個の誤りが存在するにも拘
    わらずピントbの正確な値を決定する方法に於いて、ビ
    ットbを根とするツリー形態に於けるコードグラフの深
    さ3に於けるバリティーノードの各々に接続されている
    全てのビットのモジュロ−2和を形成し、成るノードに
    接続されている全てのヒツトのモジュロ−2和が0でな
    い場合に前記パリティ−ノードに隣接する前記ツリーの
    深さ2に於けるビットノード上にXを附することによっ
    て前記任意のパリティ−ノードに於けるパリティ−違反
    を表示し、前記ツリーの左側に於ける深さ2に於けるビ
    ットのモジュロ−2加算することにより前記ツリーの頂
    部に於けるビットの値に対する予測値を発生し、前記和
    に於けるビットの何れかが値Xを有する場合にその和を
    “x″で識別し、前記ツリーの右側半分に於ける深さ2
    に於ける全てのビットのモジュロ−2和を計算すること
    により前記ツリーの頂部に於けるビットの値に対する予
    測値を発生し、前記和に於けるビットの何れかが値“X
     I+を有する場合にはその和を11 XIIで識別し
    、前記左側からの予測値と前記右側からの予測値と前記
    ビット自身のストアされている値から前記頂部ノードの
    値を予測する、上記各工程を有する方法。 2、特許請求の範囲第28項に於いて、O又は1の予測
    値に対し重み2を与え、11 X 11の予測値に対し
    重みを与えず、該ビットに対しストアされているO又は
    1の値に対し重み1を与え、最大の合計重みを有する値
    を正しい値として選択する方法。 30、特許請求の範囲第29項に於いて、前記正しい値
    を前記メモリ内に書込む工程を有する方法。 31゜複数個の副アレイとその中にストアされているビ
    ット内の誤りを検出し且つ訂正する手段を有するメモリ
    方式に於いて、前記ビット内の単−誤りを訂正する為に
    前記メモリ内にストアされている全てのビットをアクセ
    スする手段が設けられており、前記アクセスする手段が
    、前記副アレイの各々に対する行アドレスコンピュータ
    と、パリティ−加算回路へラインに沿って並列的に伝達
    されるべき特定の副アレイの行アドレスコンピュータに
    より選択される行内にストアされている全てのビットを
    イネーブルさせる行アドレスデコーダと、選択された行
    からのビットの何れが1つ又は前記副アレイの各々から
    の1個の入力を有するパリティ−ツリーへの入力として
    使用される前記副アレイからのエキストラなビットを選
    択する為のアドレスデコーダとを有する方式。 32、特許請求の範囲第31項に於いて、前記方式が投
    影面から派生されたコードに基づいており、前記方式が
    メモリ内にビットを書込む為に必要とされる6個のピッ
    1〜をアクセスする為の手段を有しており、前記アクセ
    スする為の手段が、前記メモリ内に、ビットb(u、v
    、w)と□して同一の行及び副アレイ内の最後のビット
    と、その副アレイのエキストラなビットと、U=φ副ア
    レイ内の同一のW及び計算したv′を有するビットと、
    U−φ副アレイの同一のW行に於ける最後のビットと、
    読取られるべきU−φ副アレイのエキストラなビットと
    を書込む為の手段を有してあり、これら全てのビットは
    、b(u、v、w)のストアされている値がb(u、v
    、w)の値と異なる場合にはコンブリメントされ且つ再
    び前記アレイ内にストアされる方式。 33、特許請求の範囲第32項に於いて、前記副アレイ
    の各々の選択した行に於けるビットのモジュロ−2和を
    計算する為の排他的ORゲートのパリティ−ツリーが設
    けられており、前記副アレイの各々から1個の選択した
    ビットを入力信号として有する排他的ORゲートからな
    るパリティ−ツリーが設けられており、最後の列に於け
    るビットと各副アレイに於けるエキストラなビットのモ
    ジュロ−2和を計算する為の手段が設けられており、前
    記パリティ−ツリー及び前記計算する為の手段からの信
    号を受取る為の入力リードを有しておりその入力ライン
    上に最も頻繁に発生するO又は1の値を出力する多数決
    論理ゲートが設けられているメモリ方式。 34、特許請求の範囲第33項に於いて、複数個のデー
    タ誤り及び回路欠陥を検出する手段が、投影面グフラ内
    の全てのパリティ−ノードに対するパリティ−和を計算
    する手段と、パリティ−違反の数をカウントする手段と
    、(a )パリティ−違反の数が偶数であるが0又は2
    ではない場合か、又は(b)33反の数が2であるがこ
    れらの違反に対応する2個のパリティ−ノードが投影面
    グラフ内の単一ビットによって接続されていない場合に
    複数個の誤り状態を検出する手段と、パリティ−違反の
    数が奇数である場合に回路欠陥を検出する手段とを有す
    るメモリ方式。 35、メモリ方式内の回路部品の欠陥を検出する方式に
    於いて、前記メモリ内にストアされている各ビットに対
    する2個のパリティ−チェックの和を求める手段と、前
    記メモリに関連するパリティ−チェックの欠陥の奇数を
    検出する手段とを有しており、前記奇数の欠陥がビット
    誤りではなく前記メモリの回路部品又はその他の構造に
    於ける欠陥を表わすものであることを特徴とする方式。 36、特許請求の範囲第35項に於いて、前記訂正を行
    なう手段が、読取及び書込の間の時間中にメモリ内にス
    トアされている各ビットを有する2個のパリティ−和を
    計算し且つ各パリティー和が偶数か奇数かを決定すると
    共に奇数である場合に奇数のパリティ−和が奇数である
    か否かを検出し前記メモリ内のビット誤り以外のタイプ
    の欠陥の表示を与える手段を有する方式。 37、特許請求の範囲第36項に於いて、前記メモリ内
    の各ビットをテストする手段が、前記メモリ内にストア
    されている各ビットを順番にアドレスする手段と、各ビ
    ットを有する2個のパリティ−和を順番に形成する手段
    と、前記各パリティ−和が偶数か奇数かを決定する手段
    と、奇数であるパリティ−和の数が偶数であるか奇数で
    あるかを決定し且つ奇数である場合には前記メモリ方式
    がビット誤り以外の誤りに遭遇したということを表わす
    信号を供給する手段とを有する方式。
JP59037407A 1983-03-01 1984-03-01 誤り検出・補正メモリ Pending JPS59197940A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US470910 1983-03-01
US06/470,910 US4547882A (en) 1983-03-01 1983-03-01 Error detecting and correcting memories

Publications (1)

Publication Number Publication Date
JPS59197940A true JPS59197940A (ja) 1984-11-09

Family

ID=23869552

Family Applications (1)

Application Number Title Priority Date Filing Date
JP59037407A Pending JPS59197940A (ja) 1983-03-01 1984-03-01 誤り検出・補正メモリ

Country Status (2)

Country Link
US (1) US4547882A (ja)
JP (1) JPS59197940A (ja)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4651321A (en) * 1983-08-29 1987-03-17 Amdahl Corporation Apparatus for reducing storage necessary for error correction and detection in data processing machines
US4713816A (en) * 1986-02-25 1987-12-15 U.S. Philips Corporation Three module memory system constructed with symbol-wide memory chips and having an error protection feature, each symbol consisting of 2I+1 bits
US4882733A (en) * 1987-03-13 1989-11-21 Ford Aerospace Corporation Method and apparatus for combining encoding and modulation
CA2012938A1 (en) * 1989-04-19 1990-10-19 Patrick F. Castelaz Clustering and association processor
CN1158668A (zh) * 1994-08-10 1997-09-03 摩托罗拉公司 存储器件中存储数据的方法和系统
US5652580A (en) * 1995-06-09 1997-07-29 Hal Computer Systems, Inc. Method and apparatus for detecting duplicate entries in a look-up table
US6154872A (en) * 1997-11-20 2000-11-28 Cypress Semiconductor Corporation Method, circuit and apparatus for preserving and/or correcting product engineering information
US6052319A (en) 1997-12-04 2000-04-18 Cypress Semiconductor Corp. Apparatus and method for controlling experimental inventory
US6182239B1 (en) * 1998-02-06 2001-01-30 Stmicroelectronics, Inc. Fault-tolerant codes for multi-level memories
USH1915H (en) * 1998-12-18 2000-11-07 Cardiac Pacemakers, Inc. Hybrid static RAM circuit
US6785413B1 (en) * 1999-08-24 2004-08-31 International Business Machines Corporation Rapid defect analysis by placement of tester fail data
US6606393B1 (en) * 1999-12-02 2003-08-12 Verizon Laboratories Inc. Message authentication code using image histograms
FR2816773B1 (fr) * 2000-11-10 2004-11-26 France Telecom Module, dispositif et procede de decodage a haut debit, d'un code concatene
US6948109B2 (en) * 2001-10-24 2005-09-20 Vitesse Semiconductor Corporation Low-density parity check forward error correction
US6851082B1 (en) 2001-11-13 2005-02-01 Network Appliance, Inc. Concentrated parity technique for handling double failures and enabling storage of more than one parity block per stripe on a storage device of a storage array
US6993701B2 (en) * 2001-12-28 2006-01-31 Network Appliance, Inc. Row-diagonal parity technique for enabling efficient recovery from double failures in a storage array
US7073115B2 (en) * 2001-12-28 2006-07-04 Network Appliance, Inc. Correcting multiple block data loss in a storage array using a combination of a single diagonal parity group and multiple row parity groups
US7640484B2 (en) * 2001-12-28 2009-12-29 Netapp, Inc. Triple parity technique for enabling efficient recovery from triple failures in a storage array
US8402346B2 (en) * 2001-12-28 2013-03-19 Netapp, Inc. N-way parity technique for enabling recovery from up to N storage device failures
US7613984B2 (en) * 2001-12-28 2009-11-03 Netapp, Inc. System and method for symmetric triple parity for failing storage devices
FR2838581B1 (fr) * 2002-04-16 2005-07-08 Universit De Bretagne Sud Procede de codage et/ou de decodage de codes correcteurs d'erreurs, dispositifs et signal correspondants
US7058873B2 (en) * 2002-11-07 2006-06-06 Carnegie Mellon University Encoding method using a low density parity check code with a column weight of two
US7424637B1 (en) 2003-03-21 2008-09-09 Networks Appliance, Inc. Technique for managing addition of disks to a volume of a storage system
US7664913B2 (en) * 2003-03-21 2010-02-16 Netapp, Inc. Query-based spares management technique
US7842926B2 (en) * 2003-11-12 2010-11-30 Micronic Laser Systems Ab Method and device for correcting SLM stamp image imperfections
US7647451B1 (en) 2003-11-24 2010-01-12 Netapp, Inc. Data placement technique for striping data containers across volumes of a storage system cluster
WO2005065066A2 (en) * 2004-01-08 2005-07-21 Micronic Laser Systems Ab Method and device for data integrity checking in a spatial light modulator
US7389465B2 (en) * 2004-01-30 2008-06-17 Micron Technology, Inc. Error detection and correction scheme for a memory device
JP4413091B2 (ja) * 2004-06-29 2010-02-10 株式会社ルネサステクノロジ 半導体装置
US7228521B1 (en) * 2005-02-01 2007-06-05 Xilinx Inc. System for operating a programmable logic device having a defective region
FR2883121B1 (fr) * 2005-03-11 2007-04-27 France Telecom Procede et dispositif de decodage de codes a roulettes
US7430701B2 (en) * 2005-06-16 2008-09-30 Mediatek Incorporation Methods and systems for generating error correction codes
US7774676B2 (en) * 2005-06-16 2010-08-10 Mediatek Inc. Methods and apparatuses for generating error correction codes
US7434138B2 (en) * 2005-06-27 2008-10-07 Agere Systems Inc. Structured interleaving/de-interleaving scheme for product code encoders/decorders
US7577866B1 (en) * 2005-06-27 2009-08-18 Emc Corporation Techniques for fault tolerant data storage
US20070067702A1 (en) * 2005-09-05 2007-03-22 Kuo-Lung Chien Method and apparatus for syndrome generation
US8560503B1 (en) 2006-01-26 2013-10-15 Netapp, Inc. Content addressable storage system
US7822921B2 (en) 2006-10-31 2010-10-26 Netapp, Inc. System and method for optimizing write operations in storage systems
US7613947B1 (en) 2006-11-30 2009-11-03 Netapp, Inc. System and method for storage takeover
US7647526B1 (en) 2006-12-06 2010-01-12 Netapp, Inc. Reducing reconstruct input/output operations in storage systems
US8209587B1 (en) 2007-04-12 2012-06-26 Netapp, Inc. System and method for eliminating zeroing of disk drives in RAID arrays
CN101329665A (zh) * 2007-06-18 2008-12-24 国际商业机器公司 解析标记语言文档的方法和解析器
US7975102B1 (en) 2007-08-06 2011-07-05 Netapp, Inc. Technique to avoid cascaded hot spotting
US20100169742A1 (en) * 2008-12-29 2010-07-01 Texas Instruments Incorporated Flash memory soft error recovery
US8495417B2 (en) * 2009-01-09 2013-07-23 Netapp, Inc. System and method for redundancy-protected aggregates
US8543863B2 (en) * 2009-11-18 2013-09-24 Microsoft Corporation Efficiency of hardware memory access using dynamically replicated memory
US8255742B2 (en) * 2009-11-18 2012-08-28 Microsoft Corporation Dynamically replicated memory
US8539395B2 (en) 2010-03-05 2013-09-17 Micronic Laser Systems Ab Method and apparatus for merging multiple geometrical pixel images and generating a single modulator pixel image
US8516339B1 (en) * 2011-04-01 2013-08-20 Xilinx, Inc. Method of and circuit for correcting adjacent bit errors in a memory
US8972835B1 (en) 2012-06-06 2015-03-03 Xilinx, Inc. Encoding and decoding of information using a block code matrix
US8972833B1 (en) 2012-06-06 2015-03-03 Xilinx, Inc. Encoding and decoding of information using a block code matrix
US9032244B2 (en) 2012-11-16 2015-05-12 Microsoft Technology Licensing, Llc Memory segment remapping to address fragmentation
US9268660B2 (en) * 2014-03-12 2016-02-23 International Business Machines Corporation Matrix and compression-based error detection
GB2525430B (en) * 2014-04-25 2016-07-13 Ibm Error-correction encoding and decoding
JP6614145B2 (ja) 2014-07-18 2019-12-04 ソニー株式会社 受信装置、受信方法およびコンピュータプログラム
US20160179611A1 (en) * 2014-12-23 2016-06-23 Thuyen Le Low overhead error checking and correction apparatus and method
US11016848B2 (en) 2017-11-02 2021-05-25 Seagate Technology Llc Distributed data storage system with initialization-less parity
US10725841B1 (en) * 2017-12-18 2020-07-28 Xilinx, Inc. Method and apparatus for error detection and correction

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5381036A (en) * 1976-12-27 1978-07-18 Hitachi Ltd Error correction-detection system
US4209846A (en) * 1977-12-02 1980-06-24 Sperry Corporation Memory error logger which sorts transient errors from solid errors
US4205324A (en) * 1977-12-23 1980-05-27 International Business Machines Corporation Methods and means for simultaneously correcting several channels in error in a parallel multi channel data system using continuously modifiable syndromes and selective generation of internal channel pointers
US4201976A (en) * 1977-12-23 1980-05-06 International Business Machines Corporation Plural channel error correcting methods and means using adaptive reallocation of redundant channels among groups of channels
JPS5857781B2 (ja) * 1978-01-17 1983-12-21 三菱電機株式会社 符号化復号化方式
US4295218A (en) * 1979-06-25 1981-10-13 Regents Of The University Of California Error-correcting coding system
US4319356A (en) * 1979-12-19 1982-03-09 Ncr Corporation Self-correcting memory system

Also Published As

Publication number Publication date
US4547882A (en) 1985-10-15

Similar Documents

Publication Publication Date Title
JPS59197940A (ja) 誤り検出・補正メモリ
US7398449B1 (en) Encoding 64-bit data nibble error correct and cyclic-redundancy code (CRC) address error detect for use on a 76-bit memory module
US4402045A (en) Multi-processor computer system
US5099484A (en) Multiple bit error detection and correction system employing a modified Reed-Solomon code incorporating address parity and catastrophic failure detection
US7370264B2 (en) H-matrix for error correcting circuitry
US4335458A (en) Memory incorporating error detection and correction
JP4621715B2 (ja) メモリ装置
EP0026516B1 (en) Apparatus for the processing of an information stream with the aid of an error-correcting convolutional code and for the detection of an error still irremediable in this processing
US5600659A (en) Low cost symbol error correction coding and decoding
US4359772A (en) Dual function error correcting system
US6604222B1 (en) Block code to efficiently correct adjacent data and/or check bit errors
JP5259343B2 (ja) メモリ装置
US5856987A (en) Encoder and decoder for an SEC-DED-S4ED rotational code
US7028248B2 (en) Multi-cycle symbol level error correction and memory system
US5537427A (en) Modular multiple error correcting code system
JPH0449139B2 (ja)
NL8104342A (nl) Rekenmachinesysteem, gebaseerd op een symboolkorrigerende kode met twee werkmodes.
US4631725A (en) Error correcting and detecting system
KR970005393B1 (ko) 온-칩 에러 정정 장치 구비 반도체 메모리 및 집적 회로
GB2194850A (en) Data processing with error protection
US8661319B2 (en) Memory system
US7093183B2 (en) Symbol level error correction codes which protect against memory chip and bus line failures
JP2506936B2 (ja) メモリの誤り検査方式
US6536009B1 (en) Technique for generating single-bit error-correcting, two-bit burst error-detecting codes
Tanner Fault-tolerant 256k memory designs