JP2512666B2 - 誤り検査/訂正機能を有するコンピュ―タ・システム - Google Patents
誤り検査/訂正機能を有するコンピュ―タ・システムInfo
- Publication number
- JP2512666B2 JP2512666B2 JP4243293A JP24329392A JP2512666B2 JP 2512666 B2 JP2512666 B2 JP 2512666B2 JP 4243293 A JP4243293 A JP 4243293A JP 24329392 A JP24329392 A JP 24329392A JP 2512666 B2 JP2512666 B2 JP 2512666B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- bits
- ecc
- bit
- parity
- 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 - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1048—Adding 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 arrangements adapted for a specific error detection or correction feature
- G06F11/1056—Updating check bits on partial write, i.e. read/modify/write
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)
- Debugging And Monitoring (AREA)
- Bus Control (AREA)
Description
【0001】
【産業上の利用分野】本発明は、全般的には、デジタル
・コンピュータ用の誤り検出/訂正方式に関し、具体的
には、パーソナル・コンピュータ(PC)のメモリ・シ
ステムに特に有用な誤り訂正コード(ECC)機能と、
ECCとパリティ・プロトコルの間の変換能力をもたら
すパリティ・インターフェース方式とに関する。
・コンピュータ用の誤り検出/訂正方式に関し、具体的
には、パーソナル・コンピュータ(PC)のメモリ・シ
ステムに特に有用な誤り訂正コード(ECC)機能と、
ECCとパリティ・プロトコルの間の変換能力をもたら
すパリティ・インターフェース方式とに関する。
【0002】
【従来の技術】データ保全性とシステム信頼性は、すべ
てのコンピュータ・システムにとって重要な問題であ
る。その結果、許容可能な水準のデータの誤り検出また
は誤り訂正またはその両方を確実に行うための様々な方
式が開発されてきた。たとえば、パリティ・ビットを使
用して、有限の数のデータ・ビット中に発生する単一ビ
ットの誤りを検出することができる。様々なデータ保全
性方式は、コンピュータ・システム内の特定の分野に特
に適している。たとえば、誤り訂正コード(ECC)方
式は、ECCの訂正能力が半導体メモリに関連する誤り
の確率の高さと結合されているために、メモリとのイン
ターフェースに非常に有用である。ECC方式は、しば
らくの間メインフレーム・コンピュータ・システムで使
用されてきた。
てのコンピュータ・システムにとって重要な問題であ
る。その結果、許容可能な水準のデータの誤り検出また
は誤り訂正またはその両方を確実に行うための様々な方
式が開発されてきた。たとえば、パリティ・ビットを使
用して、有限の数のデータ・ビット中に発生する単一ビ
ットの誤りを検出することができる。様々なデータ保全
性方式は、コンピュータ・システム内の特定の分野に特
に適している。たとえば、誤り訂正コード(ECC)方
式は、ECCの訂正能力が半導体メモリに関連する誤り
の確率の高さと結合されているために、メモリとのイン
ターフェースに非常に有用である。ECC方式は、しば
らくの間メインフレーム・コンピュータ・システムで使
用されてきた。
【0003】データ保全性を高める必要が生じるにつれ
て、パーソナル・コンピュータ(PC)などの小型シス
テムが、データを記憶しメモリから検索する際のパリテ
ィ方式に代わって、独立型誤り訂正コード(ECC)機
能を使用するようになってきた。ECCは、データをメ
モリに記憶する前に複数の検査ビットをデータに追加す
ることによって、単一(または複数)の誤り訂正と、複
数の誤りの検出という追加の保護を与える。これらの検
査ビットは、データ・ビットと共に、メモリから読取り
の後に復号されて、データ保全性を高める。
て、パーソナル・コンピュータ(PC)などの小型シス
テムが、データを記憶しメモリから検索する際のパリテ
ィ方式に代わって、独立型誤り訂正コード(ECC)機
能を使用するようになってきた。ECCは、データをメ
モリに記憶する前に複数の検査ビットをデータに追加す
ることによって、単一(または複数)の誤り訂正と、複
数の誤りの検出という追加の保護を与える。これらの検
査ビットは、データ・ビットと共に、メモリから読取り
の後に復号されて、データ保全性を高める。
【0004】メモリに対するECCバッファの既存の方
法では、通常は32ビットである大きなデータ・ワード
に対する検査ビットの生成と検査を行う。ところが、P
Cの多くの構成要素は、8ビットまたは16ビット単位
のデータしか送受できず、32ビットのマイクロプロセ
ッサでも、通常はメモリと32ビット・セグメントで通
信することはしない。したがって、関連する検査ビット
の保全性を維持しながら、可変8ビット(バイト)長の
ワードを書き込むことが必要である。
法では、通常は32ビットである大きなデータ・ワード
に対する検査ビットの生成と検査を行う。ところが、P
Cの多くの構成要素は、8ビットまたは16ビット単位
のデータしか送受できず、32ビットのマイクロプロセ
ッサでも、通常はメモリと32ビット・セグメントで通
信することはしない。したがって、関連する検査ビット
の保全性を維持しながら、可変8ビット(バイト)長の
ワードを書き込むことが必要である。
【0005】32ビットECC方式では、データと共に
記憶される検査ビットは、32ビット全体に基づいて生
成される。このため、データ・ビットが1ビットだけ変
更された場合でも、検査ビットのすべてを再生成する必
要がある。したがって、1バイトのデータをメモリに書
き込む必要がある場合には、まず4バイトのダブル・ワ
ード全体を読み取り、検査し、訂正しなければならず、
新規の8ビットを置換した後に、4バイトをすべて、適
当な新規検査ビットと共にメモリに再書込みしなければ
ならない。2バイトまたは3バイトのデータをメモリに
書き込む必要がある場合も同様である。これを、部分書
込みまたは読取/修正/書込動作と称する。
記憶される検査ビットは、32ビット全体に基づいて生
成される。このため、データ・ビットが1ビットだけ変
更された場合でも、検査ビットのすべてを再生成する必
要がある。したがって、1バイトのデータをメモリに書
き込む必要がある場合には、まず4バイトのダブル・ワ
ード全体を読み取り、検査し、訂正しなければならず、
新規の8ビットを置換した後に、4バイトをすべて、適
当な新規検査ビットと共にメモリに再書込みしなければ
ならない。2バイトまたは3バイトのデータをメモリに
書き込む必要がある場合も同様である。これを、部分書
込みまたは読取/修正/書込動作と称する。
【0006】米国特許第4884271号明細書には、
誤り発生時訂正方式を使用した、読取/修正/書込の問
題を処理する方法が記載されている。この方法では、未
訂正のデータに基づいて検査ビットを生成した後に、そ
のデータが誤っていることが判った場合には検査ビット
を再生成する。これには、誤りのあるデータを処理する
ために"長"、誤りのないデータを処理するために"短"の
読取/修正/書込サイクル、ならびに2種類の読取りサ
イクルが必要である。この手法には、動作が比較的複雑
であるという問題がある。さらに、誤り発生時訂正方式
を用いると、誤りが存在するか否かをECC論理回路が
判断している間に、データ処理が開始できる。これに
は、誤りが発生した時には、プロセッサがバックアップ
して、破壊されたデータを捨てなければならないという
欠点がある。
誤り発生時訂正方式を使用した、読取/修正/書込の問
題を処理する方法が記載されている。この方法では、未
訂正のデータに基づいて検査ビットを生成した後に、そ
のデータが誤っていることが判った場合には検査ビット
を再生成する。これには、誤りのあるデータを処理する
ために"長"、誤りのないデータを処理するために"短"の
読取/修正/書込サイクル、ならびに2種類の読取りサ
イクルが必要である。この手法には、動作が比較的複雑
であるという問題がある。さらに、誤り発生時訂正方式
を用いると、誤りが存在するか否かをECC論理回路が
判断している間に、データ処理が開始できる。これに
は、誤りが発生した時には、プロセッサがバックアップ
して、破壊されたデータを捨てなければならないという
欠点がある。
【0007】米国特許第4319356号明細書には、
周期的に検査を行い、それ自体から誤りを除去するメモ
リが記載されている。この発明は、異なる数のバイトか
らなるワードで通信する可能性のある様々な他の構成要
素とメモリのインターフェースという問題に対処してい
ない。
周期的に検査を行い、それ自体から誤りを除去するメモ
リが記載されている。この発明は、異なる数のバイトか
らなるワードで通信する可能性のある様々な他の構成要
素とメモリのインターフェースという問題に対処してい
ない。
【0008】米国特許第4852100号明細書には、
米国特許第4884271号明細書と同様に、誤り発生
時訂正方式に多重ECCサブブロックを組み込んだ、誤
り訂正/検出方法が記載されている。米国特許第485
2100号明細書は、米国特許第4319356号明細
書と同様に、異なる数のバイトからなるワードで通信す
る可能性のある様々な他の構成要素とメモリのインター
フェースという問題には対処していない。さらに、米国
特許第4852100号明細書は、単一のECCユニッ
トを使用して、様々な数のバイトからなるデータを処理
する。米国特許第4852100号明細書の第5欄に
は、様々な理由から、1つのECCユニットをデータの
各サブブロック専用にすることが記載されている。米国
特許第4852100号明細書の手法は、バイト数の変
化するワードを記憶するという問題に対処するのに使用
できるはずではあるが、ビット経路の数に関する過度の
オーバーヘッド、したがってコストと空間の故に、通常
は実行不可能である。
米国特許第4884271号明細書と同様に、誤り発生
時訂正方式に多重ECCサブブロックを組み込んだ、誤
り訂正/検出方法が記載されている。米国特許第485
2100号明細書は、米国特許第4319356号明細
書と同様に、異なる数のバイトからなるワードで通信す
る可能性のある様々な他の構成要素とメモリのインター
フェースという問題には対処していない。さらに、米国
特許第4852100号明細書は、単一のECCユニッ
トを使用して、様々な数のバイトからなるデータを処理
する。米国特許第4852100号明細書の第5欄に
は、様々な理由から、1つのECCユニットをデータの
各サブブロック専用にすることが記載されている。米国
特許第4852100号明細書の手法は、バイト数の変
化するワードを記憶するという問題に対処するのに使用
できるはずではあるが、ビット経路の数に関する過度の
オーバーヘッド、したがってコストと空間の故に、通常
は実行不可能である。
【0009】ECC機能は、メモリへの読み書きのため
に実施することができるが、多くのコンピュータ・シス
テム、特にPCでは、他の用途(システム・バスが特に
顕著)にパリティ検査を使用する。1つのシステム内で
複数の保全性プロトコルを使用する時には、インターフ
ェースが、異なるプロトコル間の変換能力を提供しなけ
ればならない。通常、このようなインターフェースに
は、別々のパリティとECC排他的論理和(XOR)ツ
リーが必要であり、その結果、信号遅延がもたらされ、
高価なシリコン表面積を消費することになる。
に実施することができるが、多くのコンピュータ・シス
テム、特にPCでは、他の用途(システム・バスが特に
顕著)にパリティ検査を使用する。1つのシステム内で
複数の保全性プロトコルを使用する時には、インターフ
ェースが、異なるプロトコル間の変換能力を提供しなけ
ればならない。通常、このようなインターフェースに
は、別々のパリティとECC排他的論理和(XOR)ツ
リーが必要であり、その結果、信号遅延がもたらされ、
高価なシリコン表面積を消費することになる。
【0010】
【発明が解決しようとする課題】本発明の目的は、余分
な構成要素なしに、高速で、システム・バスを最小限し
か使用しない部分書込み機能を、ECCモジュール内で
実現することである。
な構成要素なしに、高速で、システム・バスを最小限し
か使用しない部分書込み機能を、ECCモジュール内で
実現することである。
【0011】本発明の他の目的は、改良されたパリティ
/ECCプロトコル・インターフェースを提供すること
である。
/ECCプロトコル・インターフェースを提供すること
である。
【0012】
【課題を解決するための手段】本発明の1態様によれ
ば、従来技術の解決策のオーバーヘッドなしに、システ
ム・バスを最小限しか使用しないで、バイト長の変化す
るデータをメモリに書込めるようにする、改良されたE
CCシステムが提供される。
ば、従来技術の解決策のオーバーヘッドなしに、システ
ム・バスを最小限しか使用しないで、バイト長の変化す
るデータをメモリに書込めるようにする、改良されたE
CCシステムが提供される。
【0013】部分書込み機能は、無修正データの処理が
最小限になるように内部多重化を使用することによって
達成される。これは、ECC論理回路内で、メモリから
読み取られたデータのうちの選択されたバイトを新規バ
イトで直接にオーバーレイすることによって行われる。
最小限になるように内部多重化を使用することによって
達成される。これは、ECC論理回路内で、メモリから
読み取られたデータのうちの選択されたバイトを新規バ
イトで直接にオーバーレイすることによって行われる。
【0014】本発明の別の態様によれば、パリティの生
成と検査を簡単にするのに適したECCコードが選択さ
れる。これは、所望のパリティ方式に対応するデータ・
ビットのグループ化を含むコードを選択することによっ
て行われる。ECC XORツリーを、パリティ検査と
誤り訂正復号を同時に行えるように修正し、これによっ
て、インターフェース内に2組のXORツリーが必要で
はないようにする。
成と検査を簡単にするのに適したECCコードが選択さ
れる。これは、所望のパリティ方式に対応するデータ・
ビットのグループ化を含むコードを選択することによっ
て行われる。ECC XORツリーを、パリティ検査と
誤り訂正復号を同時に行えるように修正し、これによっ
て、インターフェース内に2組のXORツリーが必要で
はないようにする。
【0015】
【実施例】ここで図面、具体的には図1を参照すると、
パリティ・プロトコルがシステム・バス上で実施され、
ECCプロトコルがメモリ・バス上で実施される、コン
ピュータ・システムが示されている。具体的に言うと、
Intel 80386、80486またはMotorola 68030、68040など
の32ビットのマイクロプロセッサ10が、32ビット
・システム・バス12に接続される。たとえばフロッピ
・ディスク制御ボードなどの8ビット構成要素14は、
システム・バス12に接続され、たとえばビデオ・ディ
スプレイ・アダプタなどの16ビット構成要素16は、
やはりシステム・バス12に接続される。また、ファク
シミリ/モデム複合アダプタやハード・ドライブ制御装
置など、8ビットまたは16ビットの他の構成要素(図
示せず)も、システム・バス12に接続できる。
パリティ・プロトコルがシステム・バス上で実施され、
ECCプロトコルがメモリ・バス上で実施される、コン
ピュータ・システムが示されている。具体的に言うと、
Intel 80386、80486またはMotorola 68030、68040など
の32ビットのマイクロプロセッサ10が、32ビット
・システム・バス12に接続される。たとえばフロッピ
・ディスク制御ボードなどの8ビット構成要素14は、
システム・バス12に接続され、たとえばビデオ・ディ
スプレイ・アダプタなどの16ビット構成要素16は、
やはりシステム・バス12に接続される。また、ファク
シミリ/モデム複合アダプタやハード・ドライブ制御装
置など、8ビットまたは16ビットの他の構成要素(図
示せず)も、システム・バス12に接続できる。
【0016】システム・バス12は、専用の32ビット
・メモリ・バス18に接続され、これによって、ランダ
ム・アクセス・メモリ(RAM)20へのデータの読み
書きが行われる。これら2本のバスの間の接続は、パリ
ティ・インターフェース22と32ビットECC論理回
路24を介する。以下の説明から明らかになるように、
本発明は、パリティ・インターフェース22の機能とE
CC論理回路24の機能を単一のユニット内で組み合わ
せ、冗長な論理回路とオーバーヘッドを取り除き、これ
によって、高価なシリコン表面積を節約し、動作速度を
向上させる。
・メモリ・バス18に接続され、これによって、ランダ
ム・アクセス・メモリ(RAM)20へのデータの読み
書きが行われる。これら2本のバスの間の接続は、パリ
ティ・インターフェース22と32ビットECC論理回
路24を介する。以下の説明から明らかになるように、
本発明は、パリティ・インターフェース22の機能とE
CC論理回路24の機能を単一のユニット内で組み合わ
せ、冗長な論理回路とオーバーヘッドを取り除き、これ
によって、高価なシリコン表面積を節約し、動作速度を
向上させる。
【0017】メモリ・バス18用のECCプロトコル
は、32ビットのデータ・ビットと7ビットの検査ビッ
トであり、一方、システム・バス12用のパリティ・プ
ロトコルは、32ビットのデータ・ビットと4ビットの
パリティ・ビットである。このシステムでは、システム
・バス12に接続された各構成要素は、パリティ・イン
ターフェース22を含めて、システム・バス12にデー
タを送る時にパリティを生成し、システム・バス12か
らデータを受け取る時にパリティを検査しなければなら
ない。
は、32ビットのデータ・ビットと7ビットの検査ビッ
トであり、一方、システム・バス12用のパリティ・プ
ロトコルは、32ビットのデータ・ビットと4ビットの
パリティ・ビットである。このシステムでは、システム
・バス12に接続された各構成要素は、パリティ・イン
ターフェース22を含めて、システム・バス12にデー
タを送る時にパリティを生成し、システム・バス12か
らデータを受け取る時にパリティを検査しなければなら
ない。
【0018】32ビット・バスの場合、通常は、4つの
3段排他的論理和(XOR)ツリーを使用して、データ
の1バイト毎に1ビットずつ計4ビットのパリティ・ビ
ットを生成し、検査する。このようなツリーの1つを図
2に示す。このツリーは、7つのXORゲートと、いく
つかの追加の制御論理回路(図示せず)を含む。このよ
うなパリティ回路は、当業者には周知であり、したがっ
て、詳細に説明する必要はない。ここでは、データ・ビ
ットのグループに対するパリティのオーバーヘッドが、
追加の論理回路に必要なシリコン面積と、XORゲート
・ツリーによるパリティ・ビットの生成および検査の際
の遅延であることだけを指摘しておく。
3段排他的論理和(XOR)ツリーを使用して、データ
の1バイト毎に1ビットずつ計4ビットのパリティ・ビ
ットを生成し、検査する。このようなツリーの1つを図
2に示す。このツリーは、7つのXORゲートと、いく
つかの追加の制御論理回路(図示せず)を含む。このよ
うなパリティ回路は、当業者には周知であり、したがっ
て、詳細に説明する必要はない。ここでは、データ・ビ
ットのグループに対するパリティのオーバーヘッドが、
追加の論理回路に必要なシリコン面積と、XORゲート
・ツリーによるパリティ・ビットの生成および検査の際
の遅延であることだけを指摘しておく。
【0019】図3は、32ビットのデータ・ビットと7
ビットの検査ビットからなるECCコードの実施態様を
示す図である。このコードは、すべての単一ビット誤り
を訂正する能力と、すべての2ビット誤りを検出する能
力を有する。これを達成するため、7つの4段XORツ
リー26を使用して、7ビットの検査ビットを生成す
る。各XORツリーは、32ビットのデータ・ビットの
重なり合うサブセットからの入力を有する。このサブセ
ットは、各ビットごとに独自の包含パターンをもたら
す。メモリからの読取り中に、7つのXORゲート27
内で、7ビットの受け取った検査ビットを7つの4段X
ORツリー26の出力と比較して、誤りが存在するか否
かを判定する。XORゲート27は、図を簡単にするた
めそのうちの1つだけを図示してある。その後、シンド
ロームと称するこの結果と、インバータ群28(やは
り、そのうちの1つだけを図示)からのその補数を、3
9個の7入力ANDゲート300〜3038によって復号
して、正確なビット誤りを突きとめる。誤りのあるデー
タ・ビットは、復号中の1つのANDゲート30i(0
≦i≦31)の出力の論理"1"で識別され、当該の訂正
用XORゲート320〜3231によってビット反転され
る。訂正用XORゲート320〜3231の出力は、訂正
済みのデータである。
ビットの検査ビットからなるECCコードの実施態様を
示す図である。このコードは、すべての単一ビット誤り
を訂正する能力と、すべての2ビット誤りを検出する能
力を有する。これを達成するため、7つの4段XORツ
リー26を使用して、7ビットの検査ビットを生成す
る。各XORツリーは、32ビットのデータ・ビットの
重なり合うサブセットからの入力を有する。このサブセ
ットは、各ビットごとに独自の包含パターンをもたら
す。メモリからの読取り中に、7つのXORゲート27
内で、7ビットの受け取った検査ビットを7つの4段X
ORツリー26の出力と比較して、誤りが存在するか否
かを判定する。XORゲート27は、図を簡単にするた
めそのうちの1つだけを図示してある。その後、シンド
ロームと称するこの結果と、インバータ群28(やは
り、そのうちの1つだけを図示)からのその補数を、3
9個の7入力ANDゲート300〜3038によって復号
して、正確なビット誤りを突きとめる。誤りのあるデー
タ・ビットは、復号中の1つのANDゲート30i(0
≦i≦31)の出力の論理"1"で識別され、当該の訂正
用XORゲート320〜3231によってビット反転され
る。訂正用XORゲート320〜3231の出力は、訂正
済みのデータである。
【0020】7つのXORゲート27の出力は、7入力
のORゲート33に入力される。このORゲート33
は、訂正可能であるか否かにかかわらず、誤りが検出さ
れたことをシステムに知らせる出力を供給する。したが
って、全ビット0のシンドロームは、誤りがないことを
示す。
のORゲート33に入力される。このORゲート33
は、訂正可能であるか否かにかかわらず、誤りが検出さ
れたことをシステムに知らせる出力を供給する。したが
って、全ビット0のシンドロームは、誤りがないことを
示す。
【0021】ANDゲート300〜3038の出力は、3
9ビット(32ビットのデータ・ビットと7ビットの検
査ビット)のNORゲート34に入力される。NORゲ
ート34からの論理"1"出力は、一致する訂正可能な誤
り復号パターンが検出されなかった(すなわち、AND
ゲート30i(0≦i≦38)のどれも、論理"1"を出
力しなかった)ことを反映する。NORゲート34から
の論理"1"出力は、ANDゲート36をイネーブルす
る。その後、誤りが検出されたことがORゲート33の
論理"1"出力によって示された場合、ANDゲート36
は、論理"1"を出力して、訂正不能誤りをシステムに報
告する。メモリへの書込み中は、検査ビットが、7つの
4段XORツリー26によって生成され、データと組み
合わされるだけである。
9ビット(32ビットのデータ・ビットと7ビットの検
査ビット)のNORゲート34に入力される。NORゲ
ート34からの論理"1"出力は、一致する訂正可能な誤
り復号パターンが検出されなかった(すなわち、AND
ゲート30i(0≦i≦38)のどれも、論理"1"を出
力しなかった)ことを反映する。NORゲート34から
の論理"1"出力は、ANDゲート36をイネーブルす
る。その後、誤りが検出されたことがORゲート33の
論理"1"出力によって示された場合、ANDゲート36
は、論理"1"を出力して、訂正不能誤りをシステムに報
告する。メモリへの書込み中は、検査ビットが、7つの
4段XORツリー26によって生成され、データと組み
合わされるだけである。
【0022】図4は、パリティを使用するシステム・バ
スと、ECCを実施したメモリ・バスの間でインターフ
ェースを行う従来の方法を示す図である。システム・バ
ス12(図4ではバス"1"と記す)とメモリ・バス18
(図4ではバス"2"と記す)の間に、2組のXORツリ
ーがある。パリティ論理回路40は、図2に示した種類
の4つのXORツリーと、関連する論理回路とを備え
る。32ビットがデータ、4ビットがパリティの36ビ
ットが、システム・バス12とパリティ論理回路40の
間で転送される。ECC論理回路42は、7つのXOR
ツリーと、図3に示した種類の関連する論理回路とを備
える。32ビットがデータ、7ビットが検査ビットの3
9ビットが、メモリ・バス18とECC論理回路42の
間で転送される。
スと、ECCを実施したメモリ・バスの間でインターフ
ェースを行う従来の方法を示す図である。システム・バ
ス12(図4ではバス"1"と記す)とメモリ・バス18
(図4ではバス"2"と記す)の間に、2組のXORツリ
ーがある。パリティ論理回路40は、図2に示した種類
の4つのXORツリーと、関連する論理回路とを備え
る。32ビットがデータ、4ビットがパリティの36ビ
ットが、システム・バス12とパリティ論理回路40の
間で転送される。ECC論理回路42は、7つのXOR
ツリーと、図3に示した種類の関連する論理回路とを備
える。32ビットがデータ、7ビットが検査ビットの3
9ビットが、メモリ・バス18とECC論理回路42の
間で転送される。
【0023】バス"2"(すなわちメモリ・バス18)か
らバス"1"(すなわちシステム・バス12)への転送中
に、下記のことが行われる。
らバス"1"(すなわちシステム・バス12)への転送中
に、下記のことが行われる。
【0024】1)32ビットのデータ・ビットと7ビッ
トの検査ビットを、バス"2"から取り、ECC論理回路
42を構成するXORツリーのグループおよび論理回路
に送る。XORツリー群は、検出可能な誤りがそのデー
タ内に存在するか否かを判定する。
トの検査ビットを、バス"2"から取り、ECC論理回路
42を構成するXORツリーのグループおよび論理回路
に送る。XORツリー群は、検出可能な誤りがそのデー
タ内に存在するか否かを判定する。
【0025】2)単一ビット誤りを訂正する。誤りフラ
グを用いて、バス"2"からのデータに含まれる、単一ビ
ット誤りと2ビット誤りのすべてならびに検出可能な多
重ビット誤りについて、システムに知らせる。
グを用いて、バス"2"からのデータに含まれる、単一ビ
ット誤りと2ビット誤りのすべてならびに検出可能な多
重ビット誤りについて、システムに知らせる。
【0026】3)32ビットの訂正済みデータ・ビット
を、パリティ論理回路40を構成するXORツリーの第
2の組に経路指定する。その後、データの8ビット(1
バイト)毎に、1ビットのパリティ・ビットを生成す
る。
を、パリティ論理回路40を構成するXORツリーの第
2の組に経路指定する。その後、データの8ビット(1
バイト)毎に、1ビットのパリティ・ビットを生成す
る。
【0027】4)32ビットのデータ・ビットと4ビッ
トのパリティ・ビットを、バス"1"に送る。
トのパリティ・ビットを、バス"1"に送る。
【0028】バス"1"からバス"2"への転送に、同様の
手順が必要である。ただし、この場合は、パリティ誤り
フラグを用いて、検出されたパリティ誤りについてシス
テムに知らせる。図4に示すように、この従来の手法で
は、2組のXORツリーが必要であり、各XORツリー
に関連して有限の遅延が生じる。
手順が必要である。ただし、この場合は、パリティ誤り
フラグを用いて、検出されたパリティ誤りについてシス
テムに知らせる。図4に示すように、この従来の手法で
は、2組のXORツリーが必要であり、各XORツリー
に関連して有限の遅延が生じる。
【0029】本発明には、基本的に2つの態様がある。
第1の態様は、図1に示したコンピュータ・システムで
の部分書込み機能または読取/修正/書込機能の問題で
ある。図5は、部分書込み機能を実施する従来技術の方
法の例を示す。システム・バス12とメモリ・バス18
の間のインターフェースは、4つの8ビット両方向(B
IDI)バッファ44、46、48、50を備える。さ
らに、32ビットのECC論理回路24は、前述したよ
うにメモリ・バス18に接続される。ECC論理回路2
4は、たとえば、メモリから4バイトを読み取り、誤り
を訂正または指示し、変更中でないデータだけを専用の
メモリ・バス18に送り返す。1バイトのデータを書き
込もうとする8ビット構成要素14は、このデータをシ
ステム・バス12の適当な線上に置く。4つの8ビット
BIDIバッファ44、46、48、50は、その後、
活動モードに置かれ、あるいはトライステート・モード
に保持され、その結果、データの新規バイトが、無変更
の3バイトと共に、ECC論理回路24の入出力(I/
O)ポートに現れる。ECC論理回路は、その後、その
データを読み込み、新規の検査ビットを生成し、その組
合せをRAM20に書き込む。マイクロプロセッサ10
から、またはたとえばシステム・バス12に接続された
16ビット構成要素によって、変更中の2バイトまたは
3バイトのデータについてにも、同じことが行える。
第1の態様は、図1に示したコンピュータ・システムで
の部分書込み機能または読取/修正/書込機能の問題で
ある。図5は、部分書込み機能を実施する従来技術の方
法の例を示す。システム・バス12とメモリ・バス18
の間のインターフェースは、4つの8ビット両方向(B
IDI)バッファ44、46、48、50を備える。さ
らに、32ビットのECC論理回路24は、前述したよ
うにメモリ・バス18に接続される。ECC論理回路2
4は、たとえば、メモリから4バイトを読み取り、誤り
を訂正または指示し、変更中でないデータだけを専用の
メモリ・バス18に送り返す。1バイトのデータを書き
込もうとする8ビット構成要素14は、このデータをシ
ステム・バス12の適当な線上に置く。4つの8ビット
BIDIバッファ44、46、48、50は、その後、
活動モードに置かれ、あるいはトライステート・モード
に保持され、その結果、データの新規バイトが、無変更
の3バイトと共に、ECC論理回路24の入出力(I/
O)ポートに現れる。ECC論理回路は、その後、その
データを読み込み、新規の検査ビットを生成し、その組
合せをRAM20に書き込む。マイクロプロセッサ10
から、またはたとえばシステム・バス12に接続された
16ビット構成要素によって、変更中の2バイトまたは
3バイトのデータについてにも、同じことが行える。
【0030】この従来技術の欠点の1つは、4つの8ビ
ットBIDIバッファ44、46、48、50によるコ
ストと遅延の増加である。これらは不要であると主張す
ることもできるが、この例でこれらの構成要素がない
と、どのメモリ・アクセスの間にも、システム・バス1
2の長時間の停止が発生するはずである。また、この方
式には、訂正済みのデータ・バイトをECC論理回路2
4に読み込めるようにするため、専用のメモリ・バス1
8まで移動する際に追加の遅延が生じる。
ットBIDIバッファ44、46、48、50によるコ
ストと遅延の増加である。これらは不要であると主張す
ることもできるが、この例でこれらの構成要素がない
と、どのメモリ・アクセスの間にも、システム・バス1
2の長時間の停止が発生するはずである。また、この方
式には、訂正済みのデータ・バイトをECC論理回路2
4に読み込めるようにするため、専用のメモリ・バス1
8まで移動する際に追加の遅延が生じる。
【0031】図6は、本発明の第1の態様による改良さ
れたECC論理回路の好ましい実施例を詳細に示す。両
方向性メモリ・バス18の32本のデータ・ビット線
が、レシーバ・ブロック52とドライバ・ブロック54
に接続される。レシーバ・ブロック52からの32本の
データ・ビット線は、1組のXORツリー58と復号訂
正論理回路60に接続される。以下で詳細に説明するよ
うに、XORツリー58は、7つのツリーを備え、その
うち4つはパリティ・ビットと検査ビットの両方を生成
し、残りの3つは検査ビットだけを生成する。
れたECC論理回路の好ましい実施例を詳細に示す。両
方向性メモリ・バス18の32本のデータ・ビット線
が、レシーバ・ブロック52とドライバ・ブロック54
に接続される。レシーバ・ブロック52からの32本の
データ・ビット線は、1組のXORツリー58と復号訂
正論理回路60に接続される。以下で詳細に説明するよ
うに、XORツリー58は、7つのツリーを備え、その
うち4つはパリティ・ビットと検査ビットの両方を生成
し、残りの3つは検査ビットだけを生成する。
【0032】メモリ・バス18の7本の検査ビット線
も、同様に、レシーバ・ブロック62とドライバ・ブロ
ック64の両方に接続される。レシーバ・ブロック62
の出力は、XORツリー58に供給され、XORツリー
58の出力は、復号訂正論理回路60に供給される。復
号訂正論理回路60は、5つの出力を有する。1本の出
力は、トライステート・レシーバ・ブロック66への3
2本のデータ・ビット線を含む。第2の出力は、ドライ
バ・ブロック64への7本の検査ビット線を含む。さら
に、単一誤りドライバ70への誤り出力と、多重誤りド
ライバ72への誤り出力の、2つの誤り出力がある。ま
た、パリティ生成検査論理回路75からの出力に応答し
てシステム・バス12にパリティ誤りフラグを出力す
る、パリティ誤りドライバ74がある。パリティ生成検
査論理回路75については、以下で図10を参照して詳
細に説明する。パリティ生成検査論理回路75は、復号
訂正論理回路60からの4つのパリティ訂正出力と、X
ORツリー58からの4つのパリティ出力を受け取り、
レシーバ・ブロック76およびドライバ・ブロック77
を介して、システム・バス12上の4本のパリティ線と
通信する。
も、同様に、レシーバ・ブロック62とドライバ・ブロ
ック64の両方に接続される。レシーバ・ブロック62
の出力は、XORツリー58に供給され、XORツリー
58の出力は、復号訂正論理回路60に供給される。復
号訂正論理回路60は、5つの出力を有する。1本の出
力は、トライステート・レシーバ・ブロック66への3
2本のデータ・ビット線を含む。第2の出力は、ドライ
バ・ブロック64への7本の検査ビット線を含む。さら
に、単一誤りドライバ70への誤り出力と、多重誤りド
ライバ72への誤り出力の、2つの誤り出力がある。ま
た、パリティ生成検査論理回路75からの出力に応答し
てシステム・バス12にパリティ誤りフラグを出力す
る、パリティ誤りドライバ74がある。パリティ生成検
査論理回路75については、以下で図10を参照して詳
細に説明する。パリティ生成検査論理回路75は、復号
訂正論理回路60からの4つのパリティ訂正出力と、X
ORツリー58からの4つのパリティ出力を受け取り、
レシーバ・ブロック76およびドライバ・ブロック77
を介して、システム・バス12上の4本のパリティ線と
通信する。
【0033】 システム・バス12側では、両方向性シ
ステム・バス12の32本のデータ・ビット線がトライ
ステート・レシーバ・ブロック78の入力およびトライ
ステート・ドライバ・ブロック79の出力に、各々、接
続される。このドライバ・ブロック79の入力は、前記
レシーバ・ブロック66(内部レシーバとも呼ぶ)の出
力に接続される。システム・バス12に接続されたレシ
ーバ・ブロック78の出力からの32本のデータ・ビッ
ト線は、メモリ・バス18に接続されたレシーバ・ブロ
ック52からの32本のデータ・ビット線と並列にXO
Rツリー58に接続される。さらに、レシーバ・ブロッ
ク78の出力は、メモリ・バス18に接続されたドライ
バ・ブロック54の入力にも接続される。
ステム・バス12の32本のデータ・ビット線がトライ
ステート・レシーバ・ブロック78の入力およびトライ
ステート・ドライバ・ブロック79の出力に、各々、接
続される。このドライバ・ブロック79の入力は、前記
レシーバ・ブロック66(内部レシーバとも呼ぶ)の出
力に接続される。システム・バス12に接続されたレシ
ーバ・ブロック78の出力からの32本のデータ・ビッ
ト線は、メモリ・バス18に接続されたレシーバ・ブロ
ック52からの32本のデータ・ビット線と並列にXO
Rツリー58に接続される。さらに、レシーバ・ブロッ
ク78の出力は、メモリ・バス18に接続されたドライ
バ・ブロック54の入力にも接続される。
【0034】部分書込み機能は、下記に従って、メモリ
から読み取ったデータのうちの選択されたバイトを新規
バイトで直接にオーバーレイすることにより内部多重化
を用いて行われる。
から読み取ったデータのうちの選択されたバイトを新規
バイトで直接にオーバーレイすることにより内部多重化
を用いて行われる。
【0035】 1)32ビット幅のデータは、メモリ・
バス18からレシーバ・ブロック52を介してXORツ
リー58および復号訂正論理回路60に読み込まれ、そ
こで、システム・バス上に転送されるべきデータ・ビッ
トに対して1バイト当り1ビットの割合でi(実施例で
は4)ビットのパリティ・ビット(IBP)を発生する
と同時にエラー検出/訂正処理を行なって32ビット幅
の訂正済データを内部レシーバ・ブロック66の入力端
に供給する。システム・バス12に接続されたレシーバ
・ブロック78および内部レシーバ・ブロック66の各
出力に接続された32ビット幅の内部バス80が設けら
れ、この内部バス上に到来するデータは8ビット(すな
わちバイト)幅のグループでレシーバ・ブロック78ま
たは66により排他的に制御される。すなわち、これら
の各レシーバ・ブロック78および66は、バイト幅単
位での活動状態に制御するための制御信号の下に、動作
する。したがって、部分書込み動作の間、内部レシーバ
・ブロック66が、その入力端に到来した訂正済のメモ
リ読み取りデータのうち変更(すなわち更新)を必要と
しないバイト位置に対して、活動状態に制御されゲート
する一方、他のレシーバ・ブロック78が、前記データ
のうち変更を必要とするバイト位置(すなわち、システ
ム・バス12から書込むべきバイト)に対して、活動状
態に制御されゲートする。
バス18からレシーバ・ブロック52を介してXORツ
リー58および復号訂正論理回路60に読み込まれ、そ
こで、システム・バス上に転送されるべきデータ・ビッ
トに対して1バイト当り1ビットの割合でi(実施例で
は4)ビットのパリティ・ビット(IBP)を発生する
と同時にエラー検出/訂正処理を行なって32ビット幅
の訂正済データを内部レシーバ・ブロック66の入力端
に供給する。システム・バス12に接続されたレシーバ
・ブロック78および内部レシーバ・ブロック66の各
出力に接続された32ビット幅の内部バス80が設けら
れ、この内部バス上に到来するデータは8ビット(すな
わちバイト)幅のグループでレシーバ・ブロック78ま
たは66により排他的に制御される。すなわち、これら
の各レシーバ・ブロック78および66は、バイト幅単
位での活動状態に制御するための制御信号の下に、動作
する。したがって、部分書込み動作の間、内部レシーバ
・ブロック66が、その入力端に到来した訂正済のメモ
リ読み取りデータのうち変更(すなわち更新)を必要と
しないバイト位置に対して、活動状態に制御されゲート
する一方、他のレシーバ・ブロック78が、前記データ
のうち変更を必要とするバイト位置(すなわち、システ
ム・バス12から書込むべきバイト)に対して、活動状
態に制御されゲートする。
【0036】 この結果、更新された32ビット・デー
タがXORツリー58および復号訂正論理回路60へ転
送され、そこでメモリ・バス18から到来したメモリ読
取りデータの場合と同様に、iビット(たとえば4ビッ
ト)のパリティ・ビット(IBP)およびnビット(た
とえば7ビット)のECC検査ビットが生成される。こ
の生成されたパリティ・ビット(IBP)は、パリティ
・ビット・レシーバ・ブロック76により受信されたシ
ステム・バス12からの受信パリティ・ビットに対し
て、パリティ生成検査論理回路75において比較され、
不一致のときパリティ誤りドライバ74を介してシステ
ムに対して誤り信号を供給する。他方、比較結果、一致
信号が生成されると、前記生成されたECC検査ビット
が検査ビット・ドライバ・ブロック64を介してメモリ
・バス18上に出力され、同時に、内部バス80上の更
新データ・ビットがデータ・ドライバ・ブロックを介し
てメモリ・バス18上に出力される。
タがXORツリー58および復号訂正論理回路60へ転
送され、そこでメモリ・バス18から到来したメモリ読
取りデータの場合と同様に、iビット(たとえば4ビッ
ト)のパリティ・ビット(IBP)およびnビット(た
とえば7ビット)のECC検査ビットが生成される。こ
の生成されたパリティ・ビット(IBP)は、パリティ
・ビット・レシーバ・ブロック76により受信されたシ
ステム・バス12からの受信パリティ・ビットに対し
て、パリティ生成検査論理回路75において比較され、
不一致のときパリティ誤りドライバ74を介してシステ
ムに対して誤り信号を供給する。他方、比較結果、一致
信号が生成されると、前記生成されたECC検査ビット
が検査ビット・ドライバ・ブロック64を介してメモリ
・バス18上に出力され、同時に、内部バス80上の更
新データ・ビットがデータ・ドライバ・ブロックを介し
てメモリ・バス18上に出力される。
【0037】この機能のもう1つの改善点は、レシーバ
・ブロック52、62、76およびトライステート・レ
シーバ・ブロック78がそれぞれ、非常に短い時間の間
に外部のシステム・バスとメモリ・バスを解放するのに
使用できる透過伝送ラッチを含むことである。したがっ
て、本発明の第1の態様は、通常のECC読み書きの性
能に全く影響を及ぼさずに、外部の構成要素と遅延の節
約をもたらす。
・ブロック52、62、76およびトライステート・レ
シーバ・ブロック78がそれぞれ、非常に短い時間の間
に外部のシステム・バスとメモリ・バスを解放するのに
使用できる透過伝送ラッチを含むことである。したがっ
て、本発明の第1の態様は、通常のECC読み書きの性
能に全く影響を及ぼさずに、外部の構成要素と遅延の節
約をもたらす。
【0038】本発明の第2の態様は、パリティ検査プロ
トコルを実施するシステム・バスと、ECCプロトコル
を実施するメモリ・バスの間のインターフェースに関す
る。32ビット・データ・バスの場合、通常は、4つの
3段XORツリーを使用して、データの1バイト毎に1
ビットずつ計4つのパリティ・ビットを生成し、検査す
る。誤り訂正コード用に7ビットの検査ビットを使用す
ると、図4に示した従来技術の手法では、さらに7つの
4段XORツリーを使用しなければならない。したがっ
て、1グループのデータ・ビットに対するパリティとE
CCのオーバーヘッドは、追加の論理回路に必要なシリ
コン面積と、XORゲート・ツリーによるパリティ・ビ
ットの生成および検査の際の遅延である。この理由か
ら、本発明の第2の態様は、パリティの生成と検査用の
1組と検査ビットの生成と検査用の1組の計2組のXO
Rツリーという固有の冗長性を取り除くことを意図した
ものである。
トコルを実施するシステム・バスと、ECCプロトコル
を実施するメモリ・バスの間のインターフェースに関す
る。32ビット・データ・バスの場合、通常は、4つの
3段XORツリーを使用して、データの1バイト毎に1
ビットずつ計4つのパリティ・ビットを生成し、検査す
る。誤り訂正コード用に7ビットの検査ビットを使用す
ると、図4に示した従来技術の手法では、さらに7つの
4段XORツリーを使用しなければならない。したがっ
て、1グループのデータ・ビットに対するパリティとE
CCのオーバーヘッドは、追加の論理回路に必要なシリ
コン面積と、XORゲート・ツリーによるパリティ・ビ
ットの生成および検査の際の遅延である。この理由か
ら、本発明の第2の態様は、パリティの生成と検査用の
1組と検査ビットの生成と検査用の1組の計2組のXO
Rツリーという固有の冗長性を取り除くことを意図した
ものである。
【0039】 本発明の第2の態様によれば、ECC検
査ビットの生成に必要な7つのXORツリーのうち、4
つの各XORツリーを共用して、4つのパリティ・ビッ
トと4つの検査ビットをそれぞれ生成し、残りの3つの
XORツリーを使用して、検査ビットの残り3ビットを
生成する。4つの組合せECC検査ビットのうちの1つ
とパリティ・ビットを生成するXORツリーの例を、図
7に示す。第1段は、8つのXORゲート821〜828
を含む。これらのXORゲートへの入力を、文字Aない
しPで示す。第2段は、4つのXORゲート841〜8
44を含み、XORゲート821〜828の各対が、XO
Rゲート841〜844に入力を供給する。第3段は、2
つのXORゲート861および862を含み、やはり、X
ORゲート841〜844の各対が、XORゲート861
および862に入力を供給する。この一方のXORゲー
ト861の出力は、4バイトのデータのうちの1バイト
に対するパリティ・ビットIBP(i)(0≦i≦3)
である。したがって、データ入力AないしHがその生成
に関与するパリティ・ビットは、このXORツリーから
生成されるものだけである。このXORツリーの第4段
には、1つのXORゲート88だけを含む。このXOR
ゲート88は、入力としてXORゲート861と862の
出力を受け取る。XORゲート88の出力は、データ入
力AないしPに対するECC検査ビットTn(0≦n≦
6)である。
査ビットの生成に必要な7つのXORツリーのうち、4
つの各XORツリーを共用して、4つのパリティ・ビッ
トと4つの検査ビットをそれぞれ生成し、残りの3つの
XORツリーを使用して、検査ビットの残り3ビットを
生成する。4つの組合せECC検査ビットのうちの1つ
とパリティ・ビットを生成するXORツリーの例を、図
7に示す。第1段は、8つのXORゲート821〜828
を含む。これらのXORゲートへの入力を、文字Aない
しPで示す。第2段は、4つのXORゲート841〜8
44を含み、XORゲート821〜828の各対が、XO
Rゲート841〜844に入力を供給する。第3段は、2
つのXORゲート861および862を含み、やはり、X
ORゲート841〜844の各対が、XORゲート861
および862に入力を供給する。この一方のXORゲー
ト861の出力は、4バイトのデータのうちの1バイト
に対するパリティ・ビットIBP(i)(0≦i≦3)
である。したがって、データ入力AないしHがその生成
に関与するパリティ・ビットは、このXORツリーから
生成されるものだけである。このXORツリーの第4段
には、1つのXORゲート88だけを含む。このXOR
ゲート88は、入力としてXORゲート861と862の
出力を受け取る。XORゲート88の出力は、データ入
力AないしPに対するECC検査ビットTn(0≦n≦
6)である。
【0040】両方の組のXORツリーの必要をなくすた
め、パリティの生成と検査の作業を簡単にすることがで
きる適当なECCの組を選択する。これは、所望のパリ
ティ方式に対応する、XORツリー内のデータ・ビット
のグループ化を含むコードを選択することによって行わ
れる。図8は、インターナショナル・ビジネス・マシー
ンズ・コーポレーションのチェン(C. L. Chen)および
シャオ(M.Y. Hsiao)によって開発された、そのような
コードの例を示す。
め、パリティの生成と検査の作業を簡単にすることがで
きる適当なECCの組を選択する。これは、所望のパリ
ティ方式に対応する、XORツリー内のデータ・ビット
のグループ化を含むコードを選択することによって行わ
れる。図8は、インターナショナル・ビジネス・マシー
ンズ・コーポレーションのチェン(C. L. Chen)および
シャオ(M.Y. Hsiao)によって開発された、そのような
コードの例を示す。
【0041】図8の各行は、1つのXORツリーを表
す。"X"は、対応するツリーに入力されるデータ・ビッ
トを示す。XORツリー"1"は、その入力のうちにデー
タ・ビット0〜7を有することに留意されたい。これら
の8ビットは、訂正された後に、システム・バス用のパ
リティ・ビット0を生成するのに使用される。ツリー"
2"は、データ・ビット8〜15からの入力を有し、こ
れらはパリティ・ビット1に対応する。同様に、ツリ
ー"4"は、パリティ・ビット2を生成するのに必要なビ
ットを含み、ツリー"5"には、パリティ・ビット3を生
成するのに必要なビットを含む。このようなコードが与
えられているものとすると、XORツリーのうちのいく
つかを、図7に示すように、それらのそれぞれの中間ノ
ードがデータの所与のバイトに対するパリティ・ビット
を表すように構成することができる。
す。"X"は、対応するツリーに入力されるデータ・ビッ
トを示す。XORツリー"1"は、その入力のうちにデー
タ・ビット0〜7を有することに留意されたい。これら
の8ビットは、訂正された後に、システム・バス用のパ
リティ・ビット0を生成するのに使用される。ツリー"
2"は、データ・ビット8〜15からの入力を有し、こ
れらはパリティ・ビット1に対応する。同様に、ツリ
ー"4"は、パリティ・ビット2を生成するのに必要なビ
ットを含み、ツリー"5"には、パリティ・ビット3を生
成するのに必要なビットを含む。このようなコードが与
えられているものとすると、XORツリーのうちのいく
つかを、図7に示すように、それらのそれぞれの中間ノ
ードがデータの所与のバイトに対するパリティ・ビット
を表すように構成することができる。
【0042】図9は、図3に示したECCコード実施態
様を修正して、図7に示した4つのXORツリーを含む
図6のXORツリー58で置換したものを示す。39ウ
ェイのNORゲート34が、5つのNORゲート90、
92、94、96、98で置換されていることに留意さ
れたい。最初の4つのNORゲートはそれぞれ、所与の
バイトの復号機能を実行する8つのANDゲートからの
入力を有する。
様を修正して、図7に示した4つのXORツリーを含む
図6のXORツリー58で置換したものを示す。39ウ
ェイのNORゲート34が、5つのNORゲート90、
92、94、96、98で置換されていることに留意さ
れたい。最初の4つのNORゲートはそれぞれ、所与の
バイトの復号機能を実行する8つのANDゲートからの
入力を有する。
【0043】図7に示した4つのXORツリーの出力I
BP(i)(0≦i≦3)は、パリティ・ビットでもあ
る。ただし、これらのパリティ・ビットは、必ずしも正
しいとは限らない。データ・ビットのうちのどれかが誤
っている場合には、対応するパリティ・ビットは、未訂
正のデータに基づいて生成され、やはり誤っていること
になる。データは、ECC XORツリーに入る時には
まだ訂正されていないことを想起されたい。したがっ
て、データ中の単一ビット誤りが後で訂正される時、パ
リティは、もはやそのデータを正しく反映していない。
BP(i)(0≦i≦3)は、パリティ・ビットでもあ
る。ただし、これらのパリティ・ビットは、必ずしも正
しいとは限らない。データ・ビットのうちのどれかが誤
っている場合には、対応するパリティ・ビットは、未訂
正のデータに基づいて生成され、やはり誤っていること
になる。データは、ECC XORツリーに入る時には
まだ訂正されていないことを想起されたい。したがっ
て、データ中の単一ビット誤りが後で訂正される時、パ
リティは、もはやそのデータを正しく反映していない。
【0044】幸いなことに、ECC誤り論理回路のいく
つかの些細な変更によって、別のツリーを使用せずに正
しいパリティを決定することができる。NORゲート出
力のそれぞれの論理的な意味は、各出力が、訂正可能な
誤りがデータのそのバイト内で発生したことを示すとい
うことである。その場合には、この信号を使用して、シ
ステム・バス12上に送出される訂正済みデータを正し
く反映するためにどのパリティ・ビットをビット反転し
なければならないかを決定することができる。
つかの些細な変更によって、別のツリーを使用せずに正
しいパリティを決定することができる。NORゲート出
力のそれぞれの論理的な意味は、各出力が、訂正可能な
誤りがデータのそのバイト内で発生したことを示すとい
うことである。その場合には、この信号を使用して、シ
ステム・バス12上に送出される訂正済みデータを正し
く反映するためにどのパリティ・ビットをビット反転し
なければならないかを決定することができる。
【0045】図10は、パリティ生成を完了するのに必
要な論理回路を示す図である。図10では、NORゲー
ト90、92、94、96から出力される信号BPE
(i)(0≦i≦3)を、当該のXORゲート100
(図を簡単にするためそのうちの1つだけを図示)によ
って、ECC XORツリーからの内部パリティ・ノー
ドIBP(i)(0≦i≦3)(図7参照)と比較し
て、メモリ・バス18からシステム・バス12に転送さ
れる正しいパリティ・ビット出力を生成する。
要な論理回路を示す図である。図10では、NORゲー
ト90、92、94、96から出力される信号BPE
(i)(0≦i≦3)を、当該のXORゲート100
(図を簡単にするためそのうちの1つだけを図示)によ
って、ECC XORツリーからの内部パリティ・ノー
ドIBP(i)(0≦i≦3)(図7参照)と比較し
て、メモリ・バス18からシステム・バス12に転送さ
れる正しいパリティ・ビット出力を生成する。
【0046】前の議論では、全般的に図1に示したよう
に、メモリ・バス18からシステム・バス12への転送
について論じた。1組のXORツリーだけを使用した、
システム・バス12からメモリ・バス18へのデータの
転送は、下記のように要約される。
に、メモリ・バス18からシステム・バス12への転送
について論じた。1組のXORツリーだけを使用した、
システム・バス12からメモリ・バス18へのデータの
転送は、下記のように要約される。
【0047】1)32ビットのデータ・ビットと4ビッ
トのパリティ・ビットをシステム・バスから取り、7つ
のXORツリーに送る。
トのパリティ・ビットをシステム・バスから取り、7つ
のXORツリーに送る。
【0048】2)7ビットのECC検査ビットと4ビッ
トの内部パリティ・ビットを、同じツリーで同時に生成
する。図7を参照されたい。
トの内部パリティ・ビットを、同じツリーで同時に生成
する。図7を参照されたい。
【0049】3)図10のXORゲート102によっ
て、内部パリティ・ビットと受け取ったパリティ・ビッ
トを比較する。XORゲート102(やはり4つのうち
の1つだけを図示)は、IBP(i)入力と、システム
・バス12から受け取った対応するパリティ・ビットと
を受け取り、これら2つが同じでない場合には、システ
ム・バス12からメモリ・バス18に転送されるパリテ
ィ誤りを生成する。
て、内部パリティ・ビットと受け取ったパリティ・ビッ
トを比較する。XORゲート102(やはり4つのうち
の1つだけを図示)は、IBP(i)入力と、システム
・バス12から受け取った対応するパリティ・ビットと
を受け取り、これら2つが同じでない場合には、システ
ム・バス12からメモリ・バス18に転送されるパリテ
ィ誤りを生成する。
【0050】4)ECC検査ビットを、32ビットのデ
ータ・ビットと共にメモリ・バス18へ送出する。
ータ・ビットと共にメモリ・バス18へ送出する。
【0051】本発明の第2の態様によるパリティ・ルッ
ク・アヘッド機構を使用すると、図4のパリティ論理回
路内に示したXORツリーが、完全に不要となる。この
結果、インターフェースの性能が大幅に向上し、シリコ
ン表面積および電力の明らかな節約が得られる。別の見
方をすれば、通常のパリティ・システムだけに使用され
るXORツリーより3つ余分にXORツリーを設けるだ
けで、完全なECC機能を実行することができる。
ク・アヘッド機構を使用すると、図4のパリティ論理回
路内に示したXORツリーが、完全に不要となる。この
結果、インターフェースの性能が大幅に向上し、シリコ
ン表面積および電力の明らかな節約が得られる。別の見
方をすれば、通常のパリティ・システムだけに使用され
るXORツリーより3つ余分にXORツリーを設けるだ
けで、完全なECC機能を実行することができる。
【0052】
【発明の効果】従来技術の解決策のオーバーヘッドなし
に、システム・バスを最小限しか使用しないで、バイト
長が変化するデータをメモリに書き込める、改良された
ECCシステムが提供された。
に、システム・バスを最小限しか使用しないで、バイト
長が変化するデータをメモリに書き込める、改良された
ECCシステムが提供された。
【図1】本発明がその中で実施される種類の典型的なコ
ンピュータ・システムを示す、一般化したブロック図で
ある。
ンピュータ・システムを示す、一般化したブロック図で
ある。
【図2】典型的な従来技術の排他的論理和(XOR)パ
リティ・ツリーを示す論理図である。
リティ・ツリーを示す論理図である。
【図3】典型的な従来技術のECC実施態様を示す、ブ
ロック図兼論理図である。
ロック図兼論理図である。
【図4】典型的な従来技術のパリティ/ECCインター
フェースを示すブロック図である。
フェースを示すブロック図である。
【図5】図1に類似の、典型的な従来技術のパリティ書
込み実施態様を示す、一般化したブロック図である。
込み実施態様を示す、一般化したブロック図である。
【図6】本発明の好ましい実施例による、改良された部
分書込み機能を実施するECCシステムの詳細なブロッ
ク図である。
分書込み機能を実施するECCシステムの詳細なブロッ
ク図である。
【図7】本発明に従って修正されたECC XORツリ
ーを示す論理図である。
ーを示す論理図である。
【図8】本発明の好ましい実施例に従って改良されたイ
ンターフェースを実施するのに使用される、パリティ・
グループ化を伴うECCコードを示す図表である。
ンターフェースを実施するのに使用される、パリティ・
グループ化を伴うECCコードを示す図表である。
【図9】図8に示したECCコードに基づく、本発明の
好ましい実施例に従って改良されたECC実施態様のブ
ロック図兼論理図である。
好ましい実施例に従って改良されたECC実施態様のブ
ロック図兼論理図である。
【図10】本発明の好ましい実施例による、パリティの
生成と検査を完了する回路の論理図である。
生成と検査を完了する回路の論理図である。
10 マイクロプロセッサ 12 システム・バス 14 8ビット構成要素 16 16ビット構成要素 18 メモリ・バス 20 ランダム・アクセス・メモリ(RAM) 22 パリティ・インターフェース 24 ECC論理回路 26 7つの4段XORツリー 27 7つのXORゲート 28 インバータ 30 7入力ANDゲート 32 訂正用XORゲート 40 パリティ論理回路 42 ECC論理回路 58 XORツリー 60 復号訂正論理回路 75 パリティ生成検査論理回路
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジーン・ジェイ・ガウデンツィ アメリカ合衆国10578、ニューヨーク州 パーディス、オークリッジ・ロード(番 地なし) (72)発明者 ティモシー・ジェイ・ルイ アメリカ合衆国33487、フロリダ州ボ カ・ラトン、ブランディーワイン・ドラ イブ 4519番地 (72)発明者 ダリル・シー・クローマー アメリカ合衆国33433、フロリダ州ボ カ・ラトン、パシフィック・ブールバー ド 5581番地 3708号 (72)発明者 ポール・シー・キング アメリカ合衆国33434、フロリダ州ボ カ・ラトン、27番アベニュー、ノース・ ウェスト 3198番地 (56)参考文献 特開 昭61−139846(JP,A) 特開 昭57−203299(JP,A) 特公 昭52−26104(JP,B2)
Claims (1)
- 【請求項1】システム・バスに接続されたプロセッサ
と、前記システム・バスと同じデータ幅を有するメモリ
・バスに接続されたメモリと、前記メモリ・バスとの間
で所定バイト数のデータ・ビットおよびn桁の誤り検査
・訂正(ECCと略称する)ビットの送受を行う第1の
ドライバ手段およびレシーバ手段ならびに前記システム
・バスとの間で前記所定バイト数のデータ・ビットおよ
びi(ただし、n>i)桁のパリティ・ビットの送受を
行う第2のドライバ手段およびレシーバ手段を含むイン
ターフェース手段とより成るECC機能を有するコンピ
ュータ・システムにおいて、 前記インターフェース手段は、 前記メモリから読取られたデータ・ビットに対して誤り
検査・訂正処理を行い訂正済データ・ビットを前記第2
のドライバ手段に向けて出力する一方、前記メモリに書
込むべきデータ・ビットに対してn桁のECCビットを
発生して前記第1のドライバに向けて出力する単一のE
CC論理手段と、前記 ECC論理手段からの訂正済データ・ビットを受信
して前記第2のドライバ手段へ転送するための内部レシ
ーバ手段と、前記 内部レシーバ手段および前記第2のレシーバ手段に
接続され、前記メモリに書込むべきデータ・ビットを前
記第1のドライバ手段および前記ECC論理手段へ転送
するための内部バスとを含み、 前 記ECC論理手段は、前記内部バスおよび前記第1の
レシーバ手段からの前記所定バイト数のデータ・ビット
のうちの所定の複数のデータ・ビットをそれぞれ受信し
てn桁のECCビットを発生するためのn個の排他的論
理和ツリー構造を含み、そのうちのi個の各排他的論理
和ツリー構造が、前記所定バイト数のデータ・ビットの
異なるバイトのデータ・ビットおよび他の所定のデータ
・ビットをそれぞれ受信して、前記ECCビットの発生
と同時に、バイト毎のパリティ・ビットを発生するよう
に接続されており、 前記ECC論理手段の排他的論理和ツリー構造をパリテ
ィ・ビット発生のためのツリー構造として共用すること
を特徴とする単一のECC論理手段を有するコンピュー
タ・システム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/785,558 US5313475A (en) | 1991-10-31 | 1991-10-31 | ECC function with self-contained high performance partial write or read/modify/write and parity look-ahead interface scheme |
| US785558 | 1991-10-31 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH06324951A JPH06324951A (ja) | 1994-11-25 |
| JP2512666B2 true JP2512666B2 (ja) | 1996-07-03 |
Family
ID=25135884
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4243293A Expired - Lifetime JP2512666B2 (ja) | 1991-10-31 | 1992-09-11 | 誤り検査/訂正機能を有するコンピュ―タ・システム |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US5313475A (ja) |
| EP (1) | EP0540450B1 (ja) |
| JP (1) | JP2512666B2 (ja) |
| DE (1) | DE69220452D1 (ja) |
Families Citing this family (70)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5455939A (en) * | 1992-06-17 | 1995-10-03 | Intel Corporation | Method and apparatus for error detection and correction of data transferred between a CPU and system memory |
| US5430742A (en) * | 1992-10-14 | 1995-07-04 | Ast Research, Inc. | Memory controller with ECC and data streaming control |
| US5914953A (en) * | 1992-12-17 | 1999-06-22 | Tandem Computers, Inc. | Network message routing using routing table information and supplemental enable information for deadlock prevention |
| US5481552A (en) * | 1993-12-30 | 1996-01-02 | International Business Machines Corporation | Method and structure for providing error correction code for 8-byte data words on SIMM cards |
| ATE216096T1 (de) * | 1994-02-22 | 2002-04-15 | Siemens Ag | Flexible fehlerkorrekturcode/paritätsbit- architektur |
| US5594862A (en) * | 1994-07-20 | 1997-01-14 | Emc Corporation | XOR controller for a storage subsystem |
| US5561765A (en) * | 1994-07-27 | 1996-10-01 | Siemens Rolm Communications, Inc. | Algorithm for testing a memory |
| US5771247A (en) * | 1994-10-03 | 1998-06-23 | International Business Machines Corporation | Low latency error reporting for high performance bus |
| US5687353A (en) * | 1995-03-03 | 1997-11-11 | Hal Computer Systems, Inc. | Merging data using a merge code from a look-up table and performing ECC generation on the merged data |
| US5774481A (en) * | 1995-03-31 | 1998-06-30 | International Business Machines Corporation | Reduced gate error detection and correction circuit |
| US5922080A (en) * | 1996-05-29 | 1999-07-13 | Compaq Computer Corporation, Inc. | Method and apparatus for performing error detection and correction with memory devices |
| US5961660A (en) * | 1997-03-03 | 1999-10-05 | International Business Machines Corporation | Method and apparatus for optimizing ECC memory performance |
| US6363511B1 (en) | 1998-03-31 | 2002-03-26 | Stmicroelectronics N.V. | Device and method for decoding data streams from storage media |
| US6260169B1 (en) * | 1998-03-31 | 2001-07-10 | Stmicroelectronics N.V. | Device and method for real time correction of row data from DVD media |
| US6728920B1 (en) | 1999-05-24 | 2004-04-27 | Adaptive Broadband Corporation | Method for correcting errors in transfer of information |
| TW519663B (en) * | 2001-05-15 | 2003-02-01 | Via Tech Inc | Memory control device and method |
| US7340659B2 (en) * | 2002-05-15 | 2008-03-04 | Infineon Technologies, A.G. | Method of testing multiple modules on an integrated circuit |
| US7305519B1 (en) | 2004-03-29 | 2007-12-04 | Cisco Technology, Inc. | Error protection for associative memory entries and lookup operations performed thereon |
| US7099221B2 (en) | 2004-05-06 | 2006-08-29 | Micron Technology, Inc. | Memory controller method and system compensating for memory cell data losses |
| US20060010339A1 (en) * | 2004-06-24 | 2006-01-12 | Klein Dean A | Memory system and method having selective ECC during low power refresh |
| US7340668B2 (en) * | 2004-06-25 | 2008-03-04 | Micron Technology, Inc. | Low power cost-effective ECC memory system and method |
| US7290083B2 (en) * | 2004-06-29 | 2007-10-30 | Cisco Technology, Inc. | Error protection for lookup operations in content-addressable memory entries |
| US7116602B2 (en) | 2004-07-15 | 2006-10-03 | Micron Technology, Inc. | Method and system for controlling refresh to avoid memory cell data losses |
| US6965537B1 (en) * | 2004-08-31 | 2005-11-15 | Micron Technology, Inc. | Memory system and method using ECC to achieve low power refresh |
| US20080096631A1 (en) * | 2004-10-02 | 2008-04-24 | Wms Gaming Inc. | Gaming Device With Error Correcting Memory |
| US7350131B2 (en) * | 2005-01-22 | 2008-03-25 | Cisco Technology, Inc. | Error protecting groups of data words |
| US7689889B2 (en) * | 2006-08-24 | 2010-03-30 | Cisco Technology, Inc. | Content addressable memory entry coding for error detection and correction |
| US7894289B2 (en) | 2006-10-11 | 2011-02-22 | Micron Technology, Inc. | Memory system and method using partial ECC to achieve low power refresh and fast access to data |
| US7900120B2 (en) | 2006-10-18 | 2011-03-01 | Micron Technology, Inc. | Memory system and method using ECC with flag bit to identify modified data |
| US8443134B2 (en) * | 2006-12-06 | 2013-05-14 | Fusion-Io, Inc. | Apparatus, system, and method for graceful cache device degradation |
| US8489817B2 (en) | 2007-12-06 | 2013-07-16 | Fusion-Io, Inc. | Apparatus, system, and method for caching data |
| US9734086B2 (en) | 2006-12-06 | 2017-08-15 | Sandisk Technologies Llc | Apparatus, system, and method for a device shared between multiple independent hosts |
| US9116823B2 (en) | 2006-12-06 | 2015-08-25 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for adaptive error-correction coding |
| US8706968B2 (en) * | 2007-12-06 | 2014-04-22 | Fusion-Io, Inc. | Apparatus, system, and method for redundant write caching |
| US9104599B2 (en) | 2007-12-06 | 2015-08-11 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for destaging cached data |
| US9495241B2 (en) | 2006-12-06 | 2016-11-15 | Longitude Enterprise Flash S.A.R.L. | Systems and methods for adaptive data storage |
| JP4764945B2 (ja) * | 2007-06-20 | 2011-09-07 | 富士通株式会社 | キャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラム |
| US8316277B2 (en) * | 2007-12-06 | 2012-11-20 | Fusion-Io, Inc. | Apparatus, system, and method for ensuring data validity in a data storage process |
| US9519540B2 (en) | 2007-12-06 | 2016-12-13 | Sandisk Technologies Llc | Apparatus, system, and method for destaging cached data |
| US7836226B2 (en) | 2007-12-06 | 2010-11-16 | Fusion-Io, Inc. | Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment |
| US7523379B1 (en) | 2008-03-31 | 2009-04-21 | International Business Machines Corporation | Method for time-delayed data protection |
| JP2010204828A (ja) * | 2009-03-02 | 2010-09-16 | Renesas Electronics Corp | データ保護回路及び方法、並びにデータ処理装置 |
| KR101717644B1 (ko) | 2009-09-08 | 2017-03-27 | 샌디스크 테크놀로지스 엘엘씨 | 고체-상태 저장 디바이스 상에서 데이터를 캐싱하는 장치, 시스템, 및 방법 |
| JP5353655B2 (ja) * | 2009-11-18 | 2013-11-27 | 富士通株式会社 | エラー検出・訂正符号生成回路及びその制御方法 |
| US9166624B2 (en) | 2010-05-11 | 2015-10-20 | Osaka University | Error-correcting code processing method and device |
| US8966184B2 (en) | 2011-01-31 | 2015-02-24 | Intelligent Intellectual Property Holdings 2, LLC. | Apparatus, system, and method for managing eviction of data |
| US9201677B2 (en) | 2011-05-23 | 2015-12-01 | Intelligent Intellectual Property Holdings 2 Llc | Managing data input/output operations |
| US9003104B2 (en) | 2011-02-15 | 2015-04-07 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a file-level cache |
| US8874823B2 (en) | 2011-02-15 | 2014-10-28 | Intellectual Property Holdings 2 Llc | Systems and methods for managing data input/output operations |
| WO2012116369A2 (en) | 2011-02-25 | 2012-08-30 | Fusion-Io, Inc. | Apparatus, system, and method for managing contents of a cache |
| PL2723576T3 (pl) | 2011-06-21 | 2018-01-31 | Basf Se | Drukowanie siatek dyfrakcyjnych na papierze i kartonie |
| US9003260B2 (en) * | 2011-06-29 | 2015-04-07 | Texas Instruments Incorporated | Partial-writes to ECC (error check code) enabled memories |
| US9658780B2 (en) | 2011-09-16 | 2017-05-23 | Avalanche Technology, Inc. | Magnetic random access memory with dynamic random access memory (DRAM)-like interface |
| US9251882B2 (en) | 2011-09-16 | 2016-02-02 | Avalanche Technology, Inc. | Magnetic random access memory with dynamic random access memory (DRAM)-like interface |
| US8751905B2 (en) | 2011-09-16 | 2014-06-10 | Avalanche Technology, Inc. | Memory with on-chip error correction |
| US9054840B2 (en) | 2011-12-15 | 2015-06-09 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Error detection and correction of a data transmission |
| US9251052B2 (en) | 2012-01-12 | 2016-02-02 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for profiling a non-volatile cache having a logical-to-physical translation layer |
| US10102117B2 (en) | 2012-01-12 | 2018-10-16 | Sandisk Technologies Llc | Systems and methods for cache and storage device coordination |
| US9767032B2 (en) | 2012-01-12 | 2017-09-19 | Sandisk Technologies Llc | Systems and methods for cache endurance |
| US9251086B2 (en) | 2012-01-24 | 2016-02-02 | SanDisk Technologies, Inc. | Apparatus, system, and method for managing a cache |
| US9116812B2 (en) | 2012-01-27 | 2015-08-25 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a de-duplication cache |
| US10019353B2 (en) | 2012-03-02 | 2018-07-10 | Longitude Enterprise Flash S.A.R.L. | Systems and methods for referencing data on a storage medium |
| US9612966B2 (en) | 2012-07-03 | 2017-04-04 | Sandisk Technologies Llc | Systems, methods and apparatus for a virtual machine cache |
| US10339056B2 (en) | 2012-07-03 | 2019-07-02 | Sandisk Technologies Llc | Systems, methods and apparatus for cache transfers |
| US10346095B2 (en) | 2012-08-31 | 2019-07-09 | Sandisk Technologies, Llc | Systems, methods, and interfaces for adaptive cache persistence |
| CN102831028B (zh) * | 2012-09-07 | 2016-01-20 | 苏州国芯科技有限公司 | 基于数据总线的ecc纠错方法及系统 |
| US9842053B2 (en) | 2013-03-15 | 2017-12-12 | Sandisk Technologies Llc | Systems and methods for persistent cache logging |
| US9753667B2 (en) * | 2015-02-19 | 2017-09-05 | Avago Technologies General Ip (Singapore) Pte. Ltd. | High bandwidth memory and glitch-less differential XOR |
| US11886295B2 (en) | 2022-01-31 | 2024-01-30 | Pure Storage, Inc. | Intra-block error correction |
| CN115981913A (zh) * | 2022-12-26 | 2023-04-18 | 芯弦半导体(苏州)有限公司 | 基于sram的ecc校验方法及装置 |
Family Cites Families (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3648239A (en) * | 1970-06-30 | 1972-03-07 | Ibm | System for translating to and from single error correction-double error detection hamming code and byte parity code |
| US3809884A (en) * | 1972-11-15 | 1974-05-07 | Honeywell Inf Systems | Apparatus and method for a variable memory cycle in a data processing unit |
| JPS5226104A (en) * | 1975-08-25 | 1977-02-26 | Nippon Syst Kogyo Kk | Back-up system in data transmission |
| US4072853A (en) * | 1976-09-29 | 1978-02-07 | Honeywell Information Systems Inc. | Apparatus and method for storing parity encoded data from a plurality of input/output sources |
| US4201337A (en) * | 1978-09-01 | 1980-05-06 | Ncr Corporation | Data processing system having error detection and correction circuits |
| US4241446A (en) * | 1978-10-16 | 1980-12-23 | Honeywell Information Systems Inc. | Apparatus for performing single error correction and double error detection |
| US4319356A (en) * | 1979-12-19 | 1982-03-09 | Ncr Corporation | Self-correcting memory system |
| US4345328A (en) * | 1980-06-30 | 1982-08-17 | Sperry Corporation | ECC Check bit generation using through checking parity bits |
| JPS57203299A (en) * | 1981-06-10 | 1982-12-13 | Nec Corp | Storage device |
| JPS61139846A (ja) * | 1984-12-12 | 1986-06-27 | Hitachi Ltd | 誤り訂正・検出方式 |
| DE3482509D1 (de) * | 1984-12-28 | 1990-07-19 | Ibm | Geraet zum korrigieren von fehlern in speichern. |
| US4716545A (en) * | 1985-03-19 | 1987-12-29 | Wang Laboratories, Inc. | Memory means with multiple word read and single word write |
| JPS6250943A (ja) * | 1985-08-30 | 1987-03-05 | Hitachi Ltd | 記憶装置 |
| JPS62251949A (ja) * | 1986-04-25 | 1987-11-02 | Mitsubishi Electric Corp | 記憶装置の誤り訂正方法 |
| US4761783A (en) * | 1986-10-17 | 1988-08-02 | Christensen Harold F | Apparatus and method for reporting occurrences of errors in signals stored in a data processor |
| US4852100A (en) * | 1986-10-17 | 1989-07-25 | Amdahl Corporation | Error detection and correction scheme for main storage unit |
| JPS63236416A (ja) * | 1987-03-25 | 1988-10-03 | Mitsubishi Electric Corp | 符号化復号化方法 |
| US4884271A (en) * | 1987-12-28 | 1989-11-28 | International Business Machines Corporation | Error checking and correcting for read-modified-write operations |
| JPH01196647A (ja) * | 1988-01-31 | 1989-08-08 | Nec Corp | 誤り訂正機能を有する記憶装置 |
| US4899342A (en) * | 1988-02-01 | 1990-02-06 | Thinking Machines Corporation | Method and apparatus for operating multi-unit array of memories |
| US4888773A (en) * | 1988-06-15 | 1989-12-19 | International Business Machines Corporation | Smart memory card architecture and interface |
-
1991
- 1991-10-31 US US07/785,558 patent/US5313475A/en not_active Expired - Fee Related
-
1992
- 1992-09-11 JP JP4243293A patent/JP2512666B2/ja not_active Expired - Lifetime
- 1992-10-09 EP EP92480152A patent/EP0540450B1/en not_active Expired - Lifetime
- 1992-10-09 DE DE69220452T patent/DE69220452D1/de not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| EP0540450A1 (en) | 1993-05-05 |
| DE69220452D1 (de) | 1997-07-24 |
| US5313475A (en) | 1994-05-17 |
| EP0540450B1 (en) | 1997-06-18 |
| JPH06324951A (ja) | 1994-11-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2512666B2 (ja) | 誤り検査/訂正機能を有するコンピュ―タ・システム | |
| US6976194B2 (en) | Memory/Transmission medium failure handling controller and method | |
| US6973613B2 (en) | Error detection/correction code which detects and corrects component failure and which provides single bit error correction subsequent to component failure | |
| US6041430A (en) | Error detection and correction code for data and check code fields | |
| US6996766B2 (en) | Error detection/correction code which detects and corrects a first failing component and optionally a second failing component | |
| 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 | |
| JP4071940B2 (ja) | メモリ設計のための共有式誤り訂正 | |
| EP1204921B1 (en) | System and method for detecting double-bit errors and for correcting errors due to component failures | |
| US6009548A (en) | Error correcting code retrofit method and apparatus for multiple memory configurations | |
| US5477551A (en) | Apparatus and method for optimal error correcting code to parity conversion | |
| US6044483A (en) | Error propagation operating mode for error correcting code retrofit apparatus | |
| US5805799A (en) | Data integrity and cross-check code with logical block address | |
| EP1183605B1 (en) | System and method for protecting data and correcting bit errors due to component failures | |
| US5768294A (en) | Memory implemented error detection and correction code capable of detecting errors in fetching data from a wrong address | |
| US5922080A (en) | Method and apparatus for performing error detection and correction with memory devices | |
| US4961193A (en) | Extended errors correcting device having single package error correcting and double package error detecting codes | |
| EP0176218B1 (en) | Error correcting system | |
| US7080309B2 (en) | Multiple ECC schemes to improve bandwidth | |
| WO1991019253A1 (en) | Multiple error correction in a computer memory | |
| EP0147336B1 (en) | Error correcting and detecting system | |
| US8219880B2 (en) | Combined single error correction/device kill detection code | |
| JPS63115239A (ja) | エラ−検査訂正回路 | |
| US5751745A (en) | Memory implemented error detection and correction code with address parity bits | |
| US5761221A (en) | Memory implemented error detection and correction code using memory modules | |
| US6505318B1 (en) | Method and apparatus for partial error detection and correction of digital data |