(57)【特許請求の範囲】
【請求項１】
１２８ビット以上のビットからなるデータワードを記憶する装置であって、
記憶すべきデータワードを受容し、かつ記憶されたデータワードを読み出すための、第１の個数の第１の組の装置入力／出力と第４の個数の第２の組の装置入力／出力とからなる装置入力／出力と、
データワードを記憶するメモリ素子群と、
データワードのエラーコードを生成、記憶及び検出するエラーコード生成検出器と、
を有し、
メモリ素子群の各メモリ素子は、第１の組の装置入力／出力に結合され、第２の個数のビットの幅を有し、データワードの内の第３の個数のビットを記憶し、ここで第３の個数が第２の個数よりも小さいものであり、
さらにメモリ素子群の各メモリ素子は、第２の組の装置入力／出力に結合され、データワードの内の他の第５の個数のビットを記憶し、ここで第５の個数が第２の個数よりも小さいものであり、
エラーコード生成検出器は、少なくとも第１の組の装置入力／出力に関連するデータワードに関し、第３の個数のビットの幅を有するメモリ素子の素子完全障害の検出を可能にするエラーコードを生成検出するものである、
ことを特徴とする装置。
【請求項２】
該第２の個数が８に等しく、該第３の個数が４に等しい、請求項１に記載の装置。
【請求項３】
該エラーコードがＳＥＣ−ＤＥＤ−Ｓ４ＥＤコードである、請求項２に記載の装置。
【請求項４】
該第３の個数が該第５の個数に等しい、請求項１に記載の装置。
【請求項５】
該第３の個数及び該第５の個数が４に等しい、請求項４に記載の装置。
【請求項６】
該第３の個数及び該第５の個数が８に等しい、請求項４に記載の装置。
【請求項７】
該第３の個数及び該第５の個数が１６に等しい、請求項４に記載の装置。
【請求項８】
記憶すべきデータワードを受容し、かつ記憶されたデータワードを読み出すための、第１の個数の第１の組の装置入力／出力と第４の個数の第２の組の装置入力／出力とからなる装置入力／出力と、
データワードを記憶するメモリ素子群であって、各メモリ素子が第２の個数のビットの幅を有するメモリ素子群と、
データワードのエラーコードを生成、記憶及び検出するエラーコード生成検出器と、
を有するメモリ装置において、１２８ビット以上のビットからなるデータワードを記憶する方法であって、
メモリ素子群の各メモリ素子が、第１の組の装置入力／出力から、データワードの内の第３の個数のビットを記憶するステップであって、第３の個数が第２の個数よりも小さいものであるステップと、
メモリ素子群の各メモリ素子が、第３の個数のビットを記憶する前記ステップと同時に、第２の組の装置入力／出力から、データワードの内の他の第５の個数のビットを記憶するステップであって、第５の個数が第２の個数よりも小さいものであるステップと、
エラーコード生成検出器が、少なくとも第１の組の装置入力／出力に関連するデータワードに関し、第３の個数のビットの幅を有するメモリ素子の素子完全障害の検出を可能にするエラーコードを生成検出するステップと、
を具備することを特徴とする方法。
【請求項９】
該第２の個数が８に等しく、該第３の個数が４に等しい、請求項８に記載の方法。
【請求項１０】
該エラーコードがＳＥＣ−ＤＥＤ−Ｓ４ＥＤコードである、請求項９に記載の方法。
【請求項１１】
該第３の個数が該第５の個数に等しい、請求項８に記載の方法。
【請求項１２】
該第３の個数及び該第５の個数が４に等しい、請求項１１に記載の方法。
【請求項１３】
該第３の個数及び該第５の個数が８に等しい、請求項１１に記載の方法。
【請求項１４】
該第３の個数及び該第５の個数が１６に等しい、請求項１１に記載の方法。
【発明の詳細な説明】
関連出願
この出願の主題は、下記に掲げる出願と関連している。
出願番号＿＿＿＿＿、「ルックアップテーブルにおける複製エントリを検出する方法および装置」の名称で、Nirmal R. Saxenaによって1995年６月９日に出願、
出願番号＿＿＿＿＿、「記憶装置テスト用２進数を効率的に生成する方法、システムおよび装置」の名称で、Nirmal R. Saxenaによって1995年６月９日に出願、
出願番号＿＿＿＿＿、「メモリアドレッシングエラーを検出する方法および装置」の名称で、Nirmal R. Saxenaによって1995年６月９日に出願、
出願番号＿＿＿＿＿、「並列データプロセッサにおけるアクティブ命令を回転させる方法および装置」の名称で、Sunil Savkar、Michael C. Shebanow、Gene W. ShenおよびFarnad Sajjadianによって1995年６月１日に出願、
出願番号＿＿＿＿＿、「プログラマブル命令トラップシステムおよび方法」の名称で、Sunil Savkar、Gene W. Shen、Farnad SajjadianおよびMichael C. Shebanowによって1995年６月１日に出願、
出願番号08/388,602、「スーパースケーラ  マイクロプロセッサ用命令フロー制御回路」の名称で、Takeshi Kitaharaによって1995年２月14日に出願、
出願番号08/388,389、「格納命令に関して負荷命令を順不同に実行するアドレッシング方法」の名称で、Michael A. SimoneおよびMichael C. Shebanowによって1995年２月14日に出願、
出願番号08/388,606、「名前を付け替えられたレジスタに結果を効率的に書き込む方法および装置」の名称で、DeForest W. Tovey、Michael C. ShebanowおよびJohn Gmuenderによって1995年２月14日に出願、
出願番号08/388,364、「マイクロプロセッサにおける物理レジスタの利用を調整する方法および装置」の名称で、DeForest W. Tovey、Michael C. ShebanowおよびJohn Gmuenderによって1995年２月14日に出願、
出願番号08/390,885「精密な状態を保持するため命令状態をトラッキングするプロセッサ構造および方法」の名称で、Gene W. Shen、John Szeto、Niteen A. PatkarおよびMichael C. Shebanowによって1995年２月14日に出願、
出願番号08/397,810「アドレス変換の高速化のための並列アクセス  マイクロ−ＴＬＢ」の名称で、Chih-Wei David Chang、Kioumars Dawallu、Joel F. Boney、Ming-Ying LiおよびJen-Hong Charles Chenによって1995年３月３日に出願、
出願番号08/397,809「コンピュータシステムにおけるアドレス変換用ルックアサイドバッファ」の名称で、Leon Kuo-Liang Peng、Yolin LinおよびChih-Wei David Changによって1995年３月３日に出願、
出願番号08/397,893、「データプロセッサにおけるプロセッサ資源の再生利用」の名称で、Michael C. Shebanow、Gene W. Shen、Ravi Swami、Niteen A. Patkarによって1995年３月３日に出願、
出願番号08/397,891、「実行準備ができたものから命令を選択する方法および装置」の名称で、Michael C. Shebanow、John Gmuender、Michael A. Simone、John R. F. S. Szeto、Takumi MaruyamaおよびDeForest W. Toveyによって1995年３月３日に出願、
出願番号08/397,911、「不履行命令の高速ソフトウェア  エミュレーション用ハードウェアサポート」の名称で、Shalesh Thusoo、Farnad Sajjadian、Jaspal KohliおよびNiteen A. Patkarによって1995年３月３日に出願、
出願番号08/398,284、「制御転送リターンを加速する方法および装置」の名称で、Akiro Katsuno、Sunil SavkarおよびMichael C. Shebanowによって1995年３月３日に出願、
出願番号08/398,066、「フェッチプログラムカウンタの更新方法」の名称で、Akira Katsuno、Niteen A. Patkar、Sunil SavkarおよびMichael C. Shebanowによって1995年３月３日に出願、
出願番号08/397,910、「コンピュータシステムにおけるエラーの優先化および処理方法および装置」の名称で、Chih-Wei David Chang、Joel Fredrick BoneyおよびJaspal Kohliによって1995年３月３日に出願、
出願番号08/398,151、「制御転送命令の迅速な実行方法および装置」の名称で、Sunil W. Savkarによって1995年３月３日に出願、
出願番号08/397,800、「マイクロプロセッサにおけるゼロビット状態フラッグの生成方法および装置」の名称で、Michael Simoneによって1995年３月３日に出願、
出願番号08/397,912、「パイプライン化読取り−修正−書込みアクセスを備えたＥＣＣ保護メモリ編成」の名称で、Chien ChenおよびYuzhi Luによって1995年３月３日に出願および、
出願番号08/398,299、「精密な状態を保持するため命令状態をトラッキングするプロセッサ構造および方法」の名称で、Chien Chen、John R. F. S. Szeto、Niteen A. Patkar、Michael C. Shebanow、Hideki Osone、Takumi MaruyamaおよびMichael A. Simoneによって1995年３月３日に出願、
上記出願の各々が、全体にわたって、引用により本明細書に取り込まれる。
発明の分野
本発明は、ディジタル記憶システムに係わり、より詳細には、アドレス指定可能ディジタルメモリシステムにおけるエラー訂正及び検出機能に係わる。
発明の背景
メモリシステムのようなディジタル記憶システムは、単一ビットエラー又は多重ビットエラーを検出して訂正するためにハミングコードのようなエラー訂正及び検出コードを使用する。しかし、完全チップ障害が一般的であり、１つ以上のビット障害の検出と訂正に加えて、チップ障害を検出するためのコードが開発されている。ＳＥＣ−ＤＥＤ−ＳｎＥＤコードは二重ビットエラーを訂正し、単一ビットエラーを検出し、ｎビットのビット幅を有するアドレス指定可能メモリ素子の完全障害を検出する。
例えば、ＳＥＣ−ＤＥＤ−Ｓ４ＥＤコードは、後述するように、単一ビットエラーの訂正と、二重ビットエラーの検出と、複数の素子の各々がアドレス指定可能記憶場所の各々に４ビットを記憶する場合の完全な単一素子障害の検出を可能にする。ＳＥＣ−ＤＥＤ−Ｓ８ＥＤコードは、単一ビットエラーの訂正と、二重ビットエラーの検出と、複数の素子の各々が各々のアドレス指定可能記憶場所の各々に８ビットを記憶する場合の完全なチップ障害の検出を可能にする。データのビット幅（即ち、データのビット数）がメモリ素子の各々のアドレス指定可能記憶場所のビット幅（即ち、ビット数）を越える素子が、使用されることもある。
ＳＥＣ−ＤＥＤ−Ｓ４ＥＤコードは、エラー訂正及び検出コードを含む８つのチェックビットだけを追加することによって、データの６４ビットに対してその機能を実行する。ＳＥＣ−ＤＥＤ−Ｓ８ＥＤコードは、完全素子障害を検出するためにより多くのビットを検査しなければならないので、同じ６４データビットに対してその機能を実行するために１０個のチェックビットを必要とする。従って、より小さいビット幅を有する素子に記憶される同一サイズのデータの場合、チェックビットの個数は、より大きいビット幅を有する素子の場合に比べて少ない。より大きなメモリ素子では、より多くのチェックビットが必要とされるという問題点は、こうしたより多くの個数のチェックビットがメモリ素子内に収まらず、従って追加の記憶空間が必要となる可能性があることによって更に悪化せしめられる。例えば、メモリチップの多くは８ビット幅でデータを記憶するので、ＳＥＣ−ＤＥＤ−Ｓ８ＥＤコードの１０個のチェックビットを追加するためには、この１０個のチェックビットの記憶に追加の１６ビットの記憶容量が必要となり、従って、ＳＥＣ−ＤＥＤ−Ｓ４ＥＤコードの８ビットの２倍のチェックビット記憶オーバーヘッドが必要となるだろう。
発明の要約
従来のコンピュータシステムで使用する方法及び装置は、ビット幅がｍより大きいアドレス指定可能メモリ素子（例えば、ＲＡＭ）の各々にｍビットだけのデータを記憶する。この構成は、ｍビットより大きいビット幅のアドレス指定可能メモリ素子を使用する記憶システムにおいてエラー訂正及び検出機能を実行するために、ＳＥＣ−ＤＥＤ−ＳｍＥＤエラーコードを使用することを可能にする。結果として得られるエラーコードは、アドレス指定可能メモリ素子のビット幅にｍが等しい場合に必要であると想定されるエラーコードよりも小さく、従って、エラーコードに関する記憶上の必要条件を軽減する。アドレス指定可能メモリ素子の不使用ビットを、他のデータを記憶するために使用することも可能である。こうした他のデータは、１つのデータがメモリ素子のビット幅全体を占めてしまった場合に必要となる、より大きいエラーコードの使用を必要とせずに、エラーコードを使用することも可能である。
【図面の簡単な説明】
図１は、２つの６４ビットデータワードと本発明の実施態様の１つによる各データワードに関連付けたエラーコードとを記憶する装置の具体例の１つを示すブロック略図である。
図２は、１つ以上のデータワードと本発明の実施態様の１つによる各データワードに関連付けたエラーコードとを記憶するための方法を示す流れ図である。
図３は、１つ以上のデータワードと本発明の実施態様の１つによる各データワードに関連付けたエラーコードとを検索するための方法を示す流れ図である。
好ましい実施態様の説明
本発明では、従来のコンピュータシステムで使用するためのデータを、１つ以上のアドレス指定可能メモリ素子のビット幅全体を使用することなしに、アドレス指定可能メモリ素子内に記憶し、使用するアドレス指定可能メモリ素子のビット幅に等しい素子ビット幅に対応するエラーコードを使用する。本発明では、多重データワードを各々のメモリ素子内に記憶することは必ずしも必要ではないが、このように記憶することによって、下記の通りにメモリ素子全体を使用することが可能となる。
さて、図１を参照すると、この図には本発明による記憶装置が示されている。１６個の８ビット幅、４メガビット、アドレス指定可能メモリ素子（例えば、８ビット幅４メガＲＡＭ）１１２、１１５、１１８、１２１、１２４，１２７、１３０、１３３、１５３、１５６、１５９、１６２、１６５、１６８、１７１、１７４の各々が、記憶場所１つ当たり１２８ビットの合計記憶を得るために、各々の半分１１０、１１１、１１３、１１４、１１６、１１７、１１９、１２０、１２２、１２３、１２５、１２６、１２８、１２９、１３１、１３２、１５１、１５２、１５４、１５５、１５７、１５８、１６０、１６１、１６３、１６４、１６６、１６７、１６９、１７０、１７２、１７３の中に、２つの４ビット幅ニブルを保持するように使用される。ニブル１１０、１１３、１１６、１１９、１２２、１２５、１２８、１３１、１５１、１５４、１５７、１６０、１６３、１６６、１６９、１７２は、記憶場所１つ当たり１つの６４ビットデータワード１９２を保持し、ニブル１１１、１１４、１１７、１２０、１２３、１２６、１２９、１３２、１５２、１５５、１５８、１６１、１６４、１６７、１７０、１７３は、記憶場所１つ当たり１つの第２の６４ビットデータワード１９４を保持する。各々のメモリ素子１１２、１１５、１１８、１２１、１２４，１２７、１３０、１３３、１５３、１５６、１５９、１６２、１６５、１６８、１７１、１７４は、アドレスバス１９５に結合されたアドレス入力１９６を有する。この構成は、バス１９５上の各々のアドレスにおける２つの６４ビットデータワード１９２、１９４の同時記憶及び検索を可能にする。実施態様の１つでは、各々のアドレス指定可能メモリ素子１１２、１１５、１１８、１２１、１２４，１２７、１３０、１３３、１５３、１５６、１５９、１６２、１６５、１６８、１７１、１７４が、４の倍数（例えば、４、８、１２、又は、１６）に等しいサイズを有するビットのグループとして、データワード１９２からのデータを記憶する。
下記で説明するように、各々のアドレス指定可能メモリ素子１１２、１１５、１１８、１２１、１２４，１２７、１３０、１３３、１５３、１５６、１５９、１６２、１６５、１６８、１７１、１７４上に記憶されている単一データワード１９２又は１９４からのビットの個数に等しいビット幅を有するチップの完全チップ障害を検出するエラーコードを生成する。従って、図１では、各々のアドレス指定可能メモリ素子１１２、１１５、１１８、１２１、１２４，１２７、１３０、１３３、１５３、１５６、１５９、１６２、１６５、１６８、１７１、１７４が、データワード１９２からの４ビットを記憶するので、８ビット幅アドレス指定可能メモリ素子１１２、１１５、１１８、１２１、１２４，１２７、１３０、１３３、１５３、１５６、１５９、１６２、１６５、１６８、１７１、１７４の１つ以上に記憶されているデータワード１９２のビットの全ての完全障害を検出するために、ＳＥＣ−ＤＥＤ−Ｓ４ＥＤコードを使用することも可能である。
エラーコード生成器１４２、１４４は、各々のメモリ素子１１２、１１５、１１８、１２１、１２４，１２７、１３０、１３３、１５３、１５６、１５９、１６２、１６５、１６８、１７１、１７４内に単一データワードを記憶するために使用するビットの個数に等しい素子サイズに対応する、各データワードに関するエラーコードを生成する。図１に示す実施態様では、各々のメモリ素子１１２、１１５、１１８、１２１、１２４，１２７、１３０、１３３、１５３、１５６、１５９、１６２、１６５、１６８、１７１、１７４が、各々のデータワードの４ビットを記憶し、従って、ＳＥＣ−ＤＥＤ−Ｓ４ＥＤコードがエラーコード生成器１４２、１４４によって生成される。データｄ０−ｄ６３の６４ビットに関するＳＥＣ−ＤＥＤ−Ｓ４ＥＤコードは８つのチェックビットｃ０−ｃ７を使用する。次の等式１から等式８は、６４ビットのデータに関するＳＥＣ−ＤＥＤ−Ｓ４ＥＤコードを生成するためのチェックビット生成演算を示す。
ｃ０＝ｄ０∧ｄ３∧ｄ５∧ｄ８∧ｄ１１∧ｄ１２∧ｄ１６∧ｄ２１∧ｄ２５∧ｄ２８∧ｄ３３∧ｄ３５∧ｄ３７∧ｄ３９∧ｄ４０∧ｄ４２∧ｄ４３∧ｄ４４∧ｄ４６∧ｄ４７∧ｄ４９∧ｄ５０∧ｄ５１∧ｄ５２∧ｄ５４∧ｄ５５∧ｄ５７∧ｄ５８∧ｄ６０∧ｄ６１    （等式１）
ｃ１＝ｄ１∧ｄ４∧ｄ７∧ｄ９∧ｄ１３∧ｄ１７∧ｄ２０∧ｄ２３∧ｄ２４∧ｄ２７∧ｄ２９∧ｄ３２∧ｄ３４∧ｄ３５∧ｄ３６∧ｄ３８∧ｄ３９∧ｄ４１∧ｄ４３∧ｄ４５∧ｄ４７∧ｄ４９∧ｄ５０∧ｄ５１∧ｄ５２∧ｄ５４∧ｄ５５∧ｄ５６∧ｄ６０∧ｄ６１    （等式２）
ｃ２＝ｄｌ∧ｄ２∧ｄ７∧ｄ９∧ｄ１０∧ｄ１４∧ｄ１８∧ｄ２３∧ｄ２７∧ｄ３０∧ｄ３３∧ｄ３５∧ｄ３７∧ｄ３９∧ｄ４０∧ｄ４１∧ｄ４２∧ｄ４４∧ｄ４５∧ｄ４６∧ｄ４８∧ｄ４９∧ｄ５１∧ｄ５２∧ｄ５３∧ｄ５４∧ｄ５６∧ｄ５９∧ｄ６２∧ｄ６３    （等式３）
ｃ３＝ｄ３∧ｄ５∧ｄ６∧ｄ１１∧ｄ１５∧ｄ１９∧ｄ２１∧ｄ２２∧ｄ２５∧ｄ２６∧ｄ３１∧ｄ３２∧ｄ３３∧ｄ３４∧ｄ３６∧ｄ３７∧ｄ３８∧ｄ４１∧ｄ４３∧ｄ４５∧ｄ４７∧ｄ４８∧ｄ４９∧ｄ５１∧ｄ５２∧ｄ５３∧ｄ５４∧ｄ５８∧ｄ６２∧ｄ６３    （等式４）
ｃ４＝ｄ１∧ｄ３∧ｄ５∧ｄ７∧ｄ８∧ｄ１０∧ｄ１１∧ｄ１３∧ｄ１４∧ｄ１５∧ｄ１６∧ｄ１８∧ｄ１９∧ｄ２１∧ｄ２２∧ｄ２４∧ｄ２６∧ｄ２７∧ｄ２８∧ｄ２９∧ｄ３２∧ｄ３５∧ｄ３７∧ｄ４０∧ｄ４３∧ｄ４５∧ｄ４８∧ｄ５２∧ｄ５７∧ｄ６０    （等式５）
ｃ５＝ｄ０∧ｄ２∧ｄ３∧ｄ４∧ｄ６∧ｄ７∧ｄ９∧ｄ１１∧ｄ１３∧ｄ１４∧ｄ１５∧ｄ１６∧ｄ１８∧ｄ１９∧ｄ２０∧ｄ２５∧ｄ２７∧ｄ２８∧ｄ２９∧ｄ３３∧ｄ３６∧ｄ３９∧ｄ４１∧ｄ４４∧ｄ４７∧ｄ４９∧ｄ５３∧ｄ５６∧ｄ５９∧ｄ６１    （等式６）
ｃ６＝ｄ１∧ｄ３∧ｄ５∧ｄ７∧ｄ８∧ｄ９∧ｄ１０∧ｄ１２∧ｄ１３∧ｄ１５∧ｄ１６∧ｄ１７∧ｄ１８∧ｄ２０∧ｄ２３∧ｄ２４∧ｄ２５∧ｄ２６∧ｄ３０∧ｄ３１∧ｄ３３∧ｄ３４∧ｄ３９∧ｄ４１∧ｄ４２∧ｄ４７∧ｄ５０∧ｄ５４∧ｄ５９∧ｄ６２    （等式７）
ｃ７＝ｄ０∧ｄ１∧ｄ２∧ｄ４∧ｄ５∧ｄ６∧ｄ９∧ｄ１１∧ｄ１２∧ｄ１３∧ｄ１５∧ｄ１６∧ｄ１７∧ｄ１８∧ｄ２２∧ｄ２５∧ｄ２７∧ｄ３０∧ｄ３１∧ｄ３５∧ｄ３７∧ｄ３８∧ｄ４３∧ｄ４５∧ｄ４６∧ｄ５１∧ｄ５５∧ｄ５７∧ｄ５８∧ｄ６３    （等式８）
上記等式では、「∧」は排他的論理和演算である。
実施態様の１つでは、２つの８ビット幅４メガＲＡＭ１８７、１９０を、６４ビットのデータのためのＳＥＣ−ＤＥＤ−Ｓ４ＥＤコードを記憶するために使用する。実施態様の１つでは、コードとしても知られている、コードのためのチェックビットを、データワード１９２、１９４の各々に対応するＳＥＣ−ＤＥＤ−Ｓ４ＥＤコード１９１、１９３に８ビットの記憶及び検索容量を与えるメモリ１８７、１９０の各ニブル１８５、１８６、１８８、１８９内に記憶する。メモリ１８７、１９０は、メモリ１１２、１１５、１１８、１２１、１２４，１２７、１３０、１３３、１５３、１５６、１５９、１６２、１６５、１６８、１７１、１７４によって使用されるアドレスバス１９５に結合したアドレス入力１９６を有する。
データの検索時には、データ中にエラーが存在しない場合には各々がゼロである、等式９から等式１６に示される通りに生成される８つの検証ビットｓ０−ｓ７を生じさせるために、データビットｄ０−ｄ６３とチェックビットｃ０−ｃ７とが検証器１４６、１４８によって使用される。
ｓ０＝ｃ０∧ｄ０∧ｄ３∧ｄ５∧ｄ８∧ｄ１１∧ｄ１２∧ｄ１６∧ｄ２１∧ｄ２５∧ｄ２８∧ｄ３３∧ｄ３５∧ｄ３７∧ｄ３９∧ｄ４０∧ｄ４２∧ｄ４３∧ｄ４４∧ｄ４６∧ｄ４７∧ｄ４９∧ｄ５０∧ｄ５１∧ｄ５２∧ｄ５４∧ｄ５５∧ｄ５７∧ｄ５８∧ｄ６０∧ｄ６１    （等式９）
ｓ１＝ｃ１∧ｄ１∧ｄ４∧ｄ７∧ｄ９∧ｄ１３∧ｄ１７∧ｄ２０∧ｄ２３∧ｄ２４∧ｄ２７∧ｄ２９∧ｄ３２∧ｄ３４∧ｄ３５∧ｄ３６∧ｄ３８∧ｄ３９∧ｄ４１∧ｄ４３∧ｄ４５∧ｄ４７∧ｄ４９∧ｄ５０∧ｄ５１∧ｄ５２∧ｄ５４∧ｄ５５∧ｄ５６∧ｄ６０∧ｄ６１    （等式１０）
ｓ２＝ｃ２∧ｄ１∧ｄ２∧ｄ７∧ｄ９∧ｄ１０∧ｄ１４∧ｄ１８∧ｄ２３∧ｄ２７∧ｄ３０∧ｄ３３∧ｄ３５∧ｄ３７∧ｄ３９∧ｄ４０∧ｄ４１∧ｄ４２∧ｄ４４∧ｄ４５∧ｄ４６∧ｄ４８∧ｄ４９∧ｄ５１∧ｄ５２∧ｄ５３∧ｄ５４∧ｄ５６∧ｄ５９∧ｄ６２∧ｄ６３    （等式１１）
ｓ３＝ｃ３∧ｄ３∧ｄ５∧ｄ６∧ｄ１１∧ｄ１５∧ｄ１９∧ｄ２１∧ｄ２２∧ｄ２５∧ｄ２６∧ｄ３１∧ｄ３２∧ｄ３３∧ｄ３４∧ｄ３６∧ｄ３７∧ｄ３８∧ｄ４１∧ｄ４３∧ｄ４５∧ｄ４７∧ｄ４８∧ｄ４９∧ｄ５１∧ｄ５２∧ｄ５３∧ｄ５４∧ｄ５８∧ｄ６２∧ｄ６３    （等式１２）
ｓ４＝ｃ４∧ｄｌ∧ｄ３∧ｄ５∧ｄ７∧ｄ８∧ｄ１０∧ｄ１１∧ｄ１３∧ｄ１４∧ｄ１５∧ｄ１６∧ｄ１８∧ｄ１９∧ｄ２１∧ｄ２２∧ｄ２４∧ｄ２６∧ｄ２７∧ｄ２８∧ｄ２９∧ｄ３２∧ｄ３５∧ｄ３７∧ｄ４０∧ｄ４３∧ｄ４５∧ｄ４８∧ｄ５２∧ｄ５７∧ｄ６０    （等式１３）
ｓ５＝ｃ５∧ｄ０∧ｄ２∧ｄ３∧ｄ４∧ｄ６∧ｄ７∧ｄ９∧ｄ１１∧ｄ１３∧ｄ１４∧ｄ１５∧ｄ１６∧ｄ１８∧ｄ１９∧ｄ２０∧ｄ２５∧ｄ２７∧ｄ２８∧ｄ２９∧ｄ３３∧ｄ３６∧ｄ３９∧ｄ４１∧ｄ４４∧ｄ４７∧ｄ４９∧ｄ５３∧ｄ５６∧ｄ５９∧ｄ６１    （等式１４）
ｓ６＝ｃ６∧ｄ１∧ｄ３∧ｄ５∧ｄ７∧ｄ８∧ｄ９∧ｄ１０∧ｄ１２∧ｄ１３∧ｄ１５∧ｄ１６∧ｄ１７∧ｄ１８∧ｄ２０∧ｄ２３∧ｄ２４∧ｄ２５∧ｄ２６∧ｄ３０∧ｄ３１∧ｄ３３∧ｄ３４∧ｄ３９∧ｄ４１∧ｄ４２∧ｄ４７∧ｄ５０∧ｄ５４∧ｄ５９∧ｄ６２    （等式１５）
ｓ７＝ｃ７∧ｄ０∧ｄ１∧ｄ２∧ｄ４∧ｄ５∧ｄ６∧ｄ９∧ｄ１１∧ｄ１２∧ｄ１３∧ｄ１５∧ｄ１６∧ｄ１７∧ｄ１８∧ｄ２２∧ｄ２５∧ｄ２７∧ｄ３０∧ｄ３１∧ｄ３５∧ｄ３７∧ｄ３８∧ｄ４３∧ｄ４５∧ｄ４６∧ｄ５１∧ｄ５５∧ｄ５７∧ｄ５８∧ｄ６３    （等式１６）
上記等式では、「∧」が排他的論理和演算を示す。エラー検出及び訂正コードはＷ．Ｗ．Ｐｅｔｅｒｓｏｎ及びＥ．Ｊ．Ｗｅｌｄｏｎ，Ｊｒ．，Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅｓ，（第２版  Ｍ．Ｉ．Ｔ．Ｐｒｅｓｓ，１９８４）に説明されている。検証器１４６、１４８は、エラーを表示する又はエラーを訂正するために出力１４７、１４９を生成することが可能である。実施態様の１つでは、出力１４７、１４９は、入力／出力１９２、１９４からの訂正データワード全体を示す。
次に図２を参照すると、この図には、本発明によるアドレス指定可能メモリ素子内にデータワードとエラーコードを記憶するための方法の実施態様の１つが示されている。データを記憶しなければならないメモリ素子よりも小さいアドレス指定可能メモリ素子の完全障害を検出するエラーコードを、データワードから生成する（ステップ２１０）。実施態様の１つでは、このアドレス指定可能メモリ素子は８ビットの幅を有し、生成されるエラーコードは上記ＳＥＣ−ＤＥＤ−Ｓ４ＥＤである。別の実施態様では、アドレス指定可能メモリ素子は４の倍数に等しいビット幅を有し、生成されるエラーコードは、上記の通りのＳＥＣ−ＤＥＤ−Ｓ４ＥＤである。
実施態様の１つでは、データワードの各ビットをビットのグループの形に配列し（ステップ２１２）、アドレス指定可能メモリ素子内に記憶する（ステップ２１６）。ステップ２１２とステップ２１０を任意の順序で行うことが可能である。実施態様の１つでは、ステップ２１０とステップ２１２を２つ以上のデータワードに対して実行し、２つ以上のデータワードの各々からの少なくとも１つのグループを単一のグループの形に組み合わせ（ステップ２１４）、その後でこのグループを単一のアドレス指定可能メモリ素子内に記憶する（ステップ２１６）。様々なデータワードからのビットのグループを組み合わせること（ステップ２１４）はアドレス指定可能メモリ素子の更に効率の高い使用を可能にするであろうが、この組み合せを行うことは必ずしも必要ではない。生成したエラーコードの各々を記憶することも可能である（ステップ２１６）。各々のエラーコードを単独で各々の単一の素子に記憶することも可能であり、又は、２つのエラーコードのビットをグループの形に配列して、各エラーコードからの少なくとも１つのグループを単一のアドレス指定可能メモリ素子内に記憶することも可能である。
さて、図３を参照すると、この図には、本発明によるアドレス指定可能メモリ素子から２つのデータワードを読み出すための方法の実施態様の１つが示されている。アドレス指定可能メモリ素子のビット幅より小さい第１の個数のビットを、複数のメモリ素子の各々から検索し、第１のデータワードを形成するように配列する（ステップ３１０、３１２）。第１の個数に等しい幅を有する素子の障害を検出する第１のエラーコードを検索し、１つ以上のメモリ素子に障害があるかどうかを判定するために第１のデータワードと共に使用する（ステップ３１４、３１６）。ステップ３１０、３１２、３１４、３１６を、メモリ素子内の同一のアドレス指定可能場所を使用する追加のデータワードに対して行うことが可能である。実際のメモリ素子のビット幅よりも小さいビット幅を有するアドレス指定可能メモリ素子の障害を検出するためにエラーコードを使用することは、よりコンパクトなエラーコードの使用を可能にする。
【図１】
0003869006.tif 000002
【図２】
0003869006.tif 000003
【図３】
0003869006.tif 000004