(57)【特許請求の範囲】
【請求項１】
データとこのデータの誤り検出訂正用情報とを記憶するデータ記憶手段を有し、データプロセッサからのデータ読みだし及び書き込み要求に応じて、データ記憶手段のデータ読みだし及び書き込みを制御するデータ記憶制御装置において、データ記憶手段に記憶されたデータとこのデータの誤り検出訂正用情報とが供給され、供給されたデータの誤りを検出し、訂正するデータ誤り検出訂正手段と、
上記データ誤り検出訂正手段により誤り訂正されたデータを記憶するバッファメモリと、
データプロセッサから書き込み要求されるデータのデータ誤り検出訂正用情報を生成し、書き込み要求されたデータと、生成したデータ誤り検出訂正用情報とをデータ記憶手段に記憶させるデータ誤り検出訂正用情報生成手段と、
データ書き込み要求に応答し、書き込み要求されたデータがデータ記憶手段に記憶されたデータのデータ長未満であり、かつ、書き込み要求されたデータを記憶すべきアドレスに対応するアドレスのデータが、バッファメモリに記憶されていない場合には、上記アドレスのデータをデータ記憶手段から読みだし、データ誤り検出訂正手段及びデータ誤り検出訂正用情報生成手段に供給し、データの誤りを検出させるとともに、このデータの誤り検出と平行して、データ記憶手段から読みだしたデータと書き込み要求されたデータとを組み合わせ、上記データ長と等しいデータ長となるように組み合わせ、組み合わせたデータの誤り検出訂正用情報を生成させ、その後、データ誤り検出訂正手段により、データの誤りが検出されなかったときには、上記組み合わせたデータ及び生成したデータ誤り検出訂正用情報を、データ記憶手段に記憶させ、データ書き込み要求に応答し、書き込み要求されたデータがデータ記憶手段に記憶されたデータのデータ長未満であり、かつ、書き込み要求されたデータを記憶すべきアドレスに対応するアドレスのデータが、上記バッファメモリに記憶されている場合には、このバッファメモリに記憶されたデータと上記書き込み要求されたデータとを上記データ長と等しいデータ長となるように組み合わせ、組み合わせたデータに対して、データ誤り検出訂正用情報を生成し、上記組み合わせたデータ及び生成したデータ誤り検出訂正用情報を、データ記憶手段に記憶させるデータ制御手段と、
を備えることを特徴とするデータ記憶制御手段。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、計算機システムにおけるデータの記憶制御装置に係わり、特に、データの誤りを検出訂正して、メモリに格納又はメモリからの読み出しを制御するデータ記憶制御装置に関する。
【０００２】
【従来の技術】
半導体の分野では、微細化技術が著しく進展している。各種メモリ素子では、この微細化技術の進展によりメモリ素子１個あたりの記憶容量が増大するが、記憶セル１個の占める体積の縮小による蓄積電荷量の減少や、微小欠陥の発生確率の上昇、動作の高速化に伴う電気的なノイズの印加等の外部要因等により、データ中のエラービットの発生確率が高くなる。
一般に、メモリにおけるデータの信頼性向上の方法としては、パリティチェック方式とＥＣＣ（エラー検出訂正）方式が知られている（例えば、特開昭５９−３８００号公報記載のメモリシステム）。
【０００３】
パリティチェック方式では、データビットに１ビットのパリティビットを付加し、パリティビットによりデータビットとパリティビット中のビットの値が“１”であるビットの数を奇数若しくは偶数に統一してメモリに書き込み、読み出し時にはデータビットとパリティビット中のビットの値が“１”であるビットの数をチェックすることにより誤りの検出を行う。
【０００４】
また、ＥＣＣ方式では、拡張ハミングコードを用いてデータビットよりチェックビットを生成し、データビットとチェックビットとをメモリに書き込む。そして、読み出し時にはメモリから読み出したデータビットとチェックビットとからシンドロームを生成し、このシンドロームにより１ビットの誤り訂正及び２ビットの誤り検出を行う。
【０００５】
【発明が解決しようとする課題】
しかしながら、上述したパリティチェック方式では奇数個ビットの誤り検出のみが可能で、偶数個ビットの誤り検出はできない。また、奇数個ビットの誤り検出時もデータ中のどのビットに誤りがあるかを指定できないため誤りが訂正できない欠点があった。
【０００６】
これに対し、ＥＣＣ方式では、１ビットの誤り訂正及び２ビットの誤り検出が可能である。しかしながら、ＥＣＣ方式では、パリティチェック方式より、誤り検出訂正の手法が複雑であるため、ＥＣＣ実行によるメモリアクセスの時間が必要で、オーバヘッドタイムが長くなる欠点があった。
【０００７】
本発明の目的は、これら従来技術の欠点を解消し、誤り検出訂正及びメモリアクセスを高速に行い、メモリの使用効率を向上可能なデータ記憶制御装置を実現することである。
【０００８】
【課題を解決するための手段】
本発明は、上記目的を達成するため、次のように構成される。
データとこのデータの誤り検出訂正用情報とを記憶するデータ記憶手段を有し、データプロセッサからのデータ読みだし及び書き込み要求に応じて、データ記憶手段のデータ読みだし及び書き込みを制御するデータ記憶制御装置において、データ記憶手段に記憶されたデータとこのデータの誤り検出訂正用情報とが供給され、供給されたデータの誤りを検出し、訂正するデータ誤り検出訂正手段と、上記データ誤り検出訂正手段により誤り訂正されたデータを記憶するバッファメモリと、データプロセッサから書き込み要求されるデータのデータ誤り検出訂正用情報を生成し、書き込み要求されたデータと、生成したデータ誤り検出訂正用情報とをデータ記憶手段に記憶させるデータ誤り検出訂正用情報生成手段と、データ書き込み要求に応答し、書き込み要求されたデータがデータ記憶手段に記憶されたデータのデータ長未満であり、かつ、書き込み要求されたデータを記憶すべきアドレスに対応するアドレスのデータが、バッファメモリに記憶されていない場合には、上記アドレスのデータをデータ記憶手段から読みだし、データ誤り検出訂正手段及びデータ誤り検出訂正用情報生成手段に供給し、データの誤りを検出させるとともに、このデータの誤り検出と平行して、データ記憶手段から読みだしたデータと書き込み要求されたデータとを組み合わせ、上記データ長と等しいデータ長となるように組み合わせ、組み合わせたデータの誤り検出訂正用情報を生成させ、その後、データ誤り検出訂正手段により、データの誤りが検出されなかったときには、上記組み合わせたデータ及び生成したデータ誤り検出訂正用情報を、データ記憶手段に記憶させ、データ書き込み要求に応答し、書き込み要求されたデータがデータ記憶手段に記憶されたデータのデータ長未満であり、かつ、書き込み要求されたデータを記憶すべきアドレスに対応するアドレスのデータが、上記バッファメモリに記憶されている場合には、このバッファメモリに記憶されたデータと上記書き込み要求されたデータとを上記データ長と等しいデータ長となるように組み合わせ、組み合わせたデータに対して、データ誤り検出訂正用情報を生成し、上記組み合わせたデータ及び生成したデータ誤り検出訂正用情報を、データ記憶手段に記憶させるデータ制御手段とを備える。
【０００９】
読みだし要求されたデータがバッファメモリに記憶されていない場合には、読みだし要求されたデータと、このデータに関連するデータとがデータ記憶手段から読みだされ、複数のデータ誤り検出訂正手段に供給される。これら複数のデータ誤り検出訂正手段は、データ制御手段により、ほぼ同時に動作される。そして、誤り検出訂正された複数のデータは、バッファメモリに記憶される。読みだし要求されたデータに関連するデータは、続いて、データプロセッサから読みだし要求される確率が高く、読みだし要求された場合には、既に、誤り検出訂正されたデータがバッファメモリに格納されているので、データの読みだしが高速化される。
【００１０】
また、書き込み要求されたデータがデータ記憶手段に記憶されたデータのデータ長未満であり、かつ、書き込み要求されたデータを記憶すべきアドレスに対応するアドレスのデータが、バッファメモリに記憶されている場合には、このバッファメモリに記憶されたデータを書き込み要求されたデータに組み合わせることができる。これにより、書き込み要求されたデータを格納すべきアドレスに対応するデータの読みだし及び読みだしたデータの誤り検出訂正を省略でき、データの書き込み動作時間が短縮される。
【００１１】
また、書き込み要求されたデータがデータ記憶手段に記憶されたデータのデータ長未満であり、かつ、書き込み要求されたデータを記憶すべきアドレスに対応するアドレスのデータが、バッファメモリに記憶されていない場合には、上記アドレスのデータをデータ記憶手段から読みだし、データの誤りの検出並びに書き込み要求されたデータとの組み合わせ及び組み合わせたデータの誤り検出訂正用情報の生成が、並列して実行される。そして、データの誤りが検出されなかったときには、上記組み合わせたデータ及び生成したデータ誤り検出訂正用情報が、データ記憶手段に記憶される。
【００１２】
したがって、データ記憶手段から読みだしたデータの誤り訂正、誤り訂正されたデータと書き込み要求されたデータとの組み合わせ及びそれに続く誤り検出訂正用情報の生成に要する時間が省略され、データ書き込み時間の短縮化が可能となる。
【００１３】
【発明の実施の形態】
以下、本発明の実施例を添付図面に基づいて説明する。
図１は本発明の第１実施例であるデータ記録制御装置の概略構成図である。  図１において、ＭＰＵ（メインプロセッサ（データプロセッサ））１４から読み出し要求するデータのアドレスが、制御信号とともにアドレスバス１２及び制御信号線１３を介して制御ユニット７に供給される。制御ユニット７は、メモリ１５から読み出すべきデータのアドレス及び制御信号とをアドレスバス１０及び信号線１１を介してメモリ１５に供給する。
【００１４】
メモリ１５は、制御ユニット７から要求されたアドレスのデータ及びチェクビットを、メモリデータバス８及びチェックビットバス９を介して、データの誤り検出訂正用のＥＣＣ実行ユニット４ａ、４ｂ及び４ｃに供給する。ＥＣＣ実行ユニット４ａ、４ｂ及び４ｃは、制御ユニット７からの制御信号に従って、供給されたチェックビットデータ（データ誤り検出訂正用情報）を基に読み出しデータの誤り検出訂正を行う。
【００１５】
ＥＣＣ実行ユニット４ａ、４ｂ、４ｃからの誤り検出訂正実行後のデータは、それぞれバッファメモリ３ａ、３ｂ、３ｃに格納される。出力制御部５は、制御ユニット７からの制御信号に従って、バッファメモリ３ａ、３ｂ、３ｃからのデータをＭＰＵデータバス６を介してＭＰＵ１４に出力する。
【００１６】
図２は、制御ユニット７の内部ブロック図である。
図２において、アドレス比較部７１は、ＭＰＵアドレスバス１２上のＭＰＵ１４がアクセスするメモリのアドレスに対応するデータがバッファメモリ３ａ、３ｂ、３ｃに格納されているかどうかを判断する。そして、アドレス比較部７１は、ＭＰＵ１４がアクセスするデータがバッファメモリ３ａ、３ｂ、３ｃ内に存在する場合、データが格納されているバッファメモリの位置をデータ位置通知バス７２に出力する。また、ＭＰＵ１４がアクセスするデータがバッファメモリ３ａ、３ｂ、３ｃ内に存在しない場合は、ＭＰＵ１４がアクセスするメモリのアドレスをデータ位置通知バス７２に出力する。
【００１７】
さらに、アドレス比較部７１は、ＭＰＵ１４がアクセスするデータがバッファ３ａ、３ｂ、３ｃ内に存在するかしないかの情報をデータヒット情報線７３に出力する。制御信号発生部７４は、メモリアドレスバス１０に、ＭＰＵ１４がアクセスするメモリのアドレスを出力する。また、制御信号発生部７４は、ＭＰＵ制御信号線１３上のＭＰＵからの制御信号、データ位置通知バス７２、データヒット情報線７３上のデータから、ＥＣＣ実行ユニット４ａ、４ｂ、４ｃ、バッファメモリ３ａ、３ｂ、３ｃ、出力制御部５及びメモリ１５を制御する信号を生成し、制御信号線１１に出力する。
図３は、メモリ１５のアドレスとそのアドレスに格納されたデータの対応関係を示す図である。
図４は、図１の例の動作フローチャートである。図４のステップ１００において、ＭＰＵ１４からのデータ読みだし要求があれば、ステップ１０１に進む。そして、このステップ１０１において、制御ユニット７は、読みだし要求されたアドレスｎのデータは、バッファメモリ３ａ、３ｂ又は３ｃに格納されているか否かを判定する。
【００１８】
要求されたデータがバッファメモリ３ａ、３ｂ又は３ｃに格納されていなければ、ステップ１０２に進み、メモリ１５から要求されたアドレスｎのデータを読み出すとともに、このアドレスｎに関連するアドレスｎ＋１、ｎ＋２のデータを読み出す。そして、ステップ１０３、１０４、１０５において、アドレスｎ、ｎ＋１、ｎ＋２のデータのエラー検出訂正が、それぞれＥＣＣ実行ユニット４ａ、４ｂ、４ｃにて並列に実行される。次に、ステップ１０６、１０７、１０８において、エラー検出訂正されたデータが、バッファメモリ３ａ、３ｂ、３ｃにそれぞれ格納される。
そして、ステップ１０９において、ＭＰＵ１４から要求されたアドレスｎのデータが、バッファメモリ３ａからＭＰＵ１４に転送される。
【００１９】
また、ステップ１０１において、要求されたアドレスのデータがバッファメモリ３ａ、３ｂ又は３ｃに格納されていれば、ステップ１０９に進み、そのデータが格納されたバッファメモリから出力制御部５を介してＭＰＵ１４にデータが転送される。
つまり、ＭＰＵ１４からアドレス０００１のデータ１が読みだし要求されると、このアドレス０００１のデータ１とともに、データ１に関連するアドレス０００２及び０００３のデータ２及び３が（これら関連するデータは、読みだし要求されたデータに続いて、読みだし要求される確率が高い）、メモリ１５が読み出され、これらのデータ１、２及び３の誤り検出訂正が並列に実行される。そして、誤り検出訂正が行われたデータ１、２及び３がバッファメモリ３ａ、３ｂ及び３ｃに格納され、ＭＰＵ１４から要求されたデータ１がＭＰＵ１４に転送される。
【００２０】
次に、ＭＰＵ１４からアドレス０００２又は０００３のデータ２又は３が要求されると、制御ユニット７は、図５に示すように（ただし、図５の例はデータ０００２が読みだし要求された場合を示す）、バッファメモリ３ｂ又は３ｃから要求されたデータをＭＰＵ１４に転送する。
図６は、図１の例におけるデータ１、２及び３に対して並列に誤り検出訂正の実行タイミングを示し、図７は、図１の例と異なり、関連するデータ１、２及び３に対して順に誤り検出訂正を行う場合の実行タイミングを示す。
図６において、時点ｔ０からデータ１に対する誤り検出訂正が開始され、時点ｔ３にて終了し、ＭＰＵ１４にデータを転送する（図６の（Ａ）、（Ｂ）及び（Ｅ））。そして、時点ｔ３以前の時点ｔ１からデータ２に対する誤り検出訂正が開始され、時点ｔ４にて終了し、バッファメモリ３ｂに格納される（図６の（Ａ）及び（Ｃ））。次に、時点ｔ３以前の時点ｔ２からデータ３に対する誤り検出訂正が開始され、時点ｔ５にて終了し、バッファメモリ３ｃに格納される（図６の（Ａ）及び（Ｄ））。
【００２１】
これに対して、図７の例の場合は、時点ｔ０からデータ１に対する誤り検出訂正が開始され、時点ｔ３にて終了し、ＭＰＵ１４にデータ１が転送される。続いて、時点ｔ３からデータ２に対する誤り検出訂正が開始され、時点ｔ６にて、終了し、この時点ｔ６からデータ３に対する誤り検出訂正が開始され、時点ｔ７にて終了する。
【００２２】
図６の例においては、データ１に対する誤り検出訂正が終了する時点ｔ３以前に、データ２及び３に対する誤り訂正検出が開始されている。したがって、図６の例の場合には、図７の例におけるデータ２の誤り検出訂正が終了する時点ｔ６以前にデータ３の誤り検出訂正が終了する。
【００２３】
以上のように、本発明の第１実施例によれば、ＭＰＵ１４から読みだし要求されたアドレスのデータと、このアドレスのデータに関連する複数のアドレスのデータとを読みだし、これら複数のデータの誤り検出訂正を複数のＥＣＣ実行ユニットにより並列に実行する。そして、誤り検出訂正されたデータは、データバッファに格納される。
【００２４】
したがって、複数のデータの誤り検出訂正を高速に実行可能であるとともに、関連するデータの読みだしが高速に実行でき、メモリの使用効率を向上可能なデータ記憶制御装置を実現することができる。
【００２５】
なお、上述した例においては、関連するデータは、連続したアドレスのデータとしたが、必ずしも連続したアドレスのデータでなくてもよい。
また、上述した例においては、各ＥＣＣ実行ユニット毎に、別個のバッファメモリを配置したが、一つのメモリに、誤り検出訂正された複数のデータを格納するように構成することも可能である。
【００２６】
さて、データ記憶制御装置において、パーシャルライト、つまり、チェックビット生成の対象となるデータ長よりも小さいデータ長のデータをメモリに書き込む場合においては、まず、チェックビット生成の対象となるデータ長のデータをメモリから読み出す。そして、読みだしたデータの誤り検出訂正をＥＣＣ実行ユニットにより行い、誤り検出訂正後のデータとＭＰＵからの書き込みデータ（データ長小）を組合せる。この組み合わせたデータに対し、さらに、ＥＣＣ実行ユニットによりチェックビット生成を行った後にメモリに書き込みを行っていた。
【００２７】
つまり、ＥＣＣ実行ユニット２００では、ある固定長のデータに対して、拡張ハミングコードによりチェックビットが生成される。例えば、データ長８、１６、３２ビットのデータに対して、それぞれ５、６、７ビットのチェックビットが生成される。データとそのデータに対するチェックビットをメモリに書き込み、メモリからのデータ読み出し時にチェックビットも同時に読み出し、このチェックビットを基にデータの誤り検出訂正を行う。
【００２８】
３２ビットのデータに対して、７ビットのチェックビットが生成されると仮定すると、ＭＰＵ１４からの書き込みデータが８又は１６ビットであり、チェックビット生成の対象となるデータ長（３２ビット）よりも小さい場合、データをそのままメモリに書き込むと、チェックビットがデータに対応した値にならなくなる。
【００２９】
そこで、図８の（Ａ）に示すようにパーシャルライトでは、まず、ＭＰＵ１４が８、１６ビットの書き込みを行うメモリ１５のアドレスから、３２ビットデータ（ｄ１ｄ２ｄ３ｄ４）と対応するチェックビットを読み出し、ＥＣＣ実行ユニット２００により誤り検出訂正を行ってから、マルチプレクサ１により、誤り検出訂正実行後の３２ビットデータとＭＰＵ１４からの８又は１６ビットの書き込みデータ（Ｄ１Ｄ２）とを組み合わせて、３２ビットデータ（Ｄ１Ｄ２ｄ３ｄ４）とする。
【００３０】
そして、図８の（Ｂ）に示すように、上記３２ビットデータ（Ｄ１Ｄ２ｄ３ｄ４）に対してＥＣＣ実行ユニット２００によりチェックビットを生成し、この３２ビットデータとチェックビットとをメモリ１５へ書き込む。
【００３１】
この結果、パーシャルライトは、メモリからの３２ビットデータの読み出し、読みだしたデータの誤り検出訂正をし、８又は１６ビットデータと３２ビットデータとを組み合わせたデータに対してチェックビットを生成して、メモリ書き込みを実行する必要があった。
【００３２】
パーシャルライトを無くし、メモリからの読み出し、ＥＣＣ実行による誤り検出訂正の時間を省くために、メモリアクセスの最小単位であるバイト（８ビット）毎にチェックビット５ビットを生成するように構成することも考えられる。しかし、８ビット毎にチェックビットを５ビット生成すると、３２ビットデータに対しては、チェックビット長が２０ビットとなってしまう。この結果、データ長に対するチェックビット長の割合が大きくなりメモリの使用効率が悪くなる。
【００３３】
図９は、本発明の第２実施例であるデータ記憶制御装置の概略構成図であり、上述したパーシャルライトにおけるデータのメモリ書き込み時間を短縮可能な例である。この図９の例において、図１の例と同等なものには、同一の符号が付してある。
【００３４】
そして、図９の例においては、図１の例に、バッファメモリ３ａ、３ｂ、３ｃ、ＭＰＵ１４からのデータが供給されるマルチプレクサ１と、このマルチプレクサ１からのデータに対してチェックビットを生成し、この生成したデータとチェックビットとをメモリ１５に格納するチェックビット生成用ＥＣＣ実行ユニット２が追加されている。
【００３５】
図１０は、図９の例の動作フローチャートである。
図１０のステップ１１０において、ＭＰＵ１４からのデータ書き込み要求があると、ステップ１１１に進み、制御ユニット７が書き込みデータが所定長（例えば、３２ビット長）未満か否かを判定し、所定長未満でなければ、ステップ１１４に進む。そして、このステップ１１４において、書き込みデータは、ＭＰＵ１４からマルチプレクサ１を介して、チェックビット生成用ＥＣＣ実行ユニット２に供給され、チェックビットが生成される。次に、ステップ１１５に進み、ＭＰＵ１４からのデータとチェックビットとが、ＥＣＣ実行ユニット２からメモリ１５に転送され、格納される。
【００３６】
ステップ１１１において、書き込みデータが所定長未満であれば、ステップ１１２に進み、制御ユニット７はデータを書き込むアドレスが、バッファメモリ３ａ、３ｂ、３ｃに格納されたデータのアドレスと一致するか否かを判定する。そして、書き込み要求されたアドレスとバッファメモリに格納されたアドレスとが一致すると、ステップ１１３に進み、バッファメモリに格納されたデータと書き込み要求されたデータとが、マルチプレクサ１を介してＥＣＣ実行ユニット２に供給され、両データが組み合わされる。次に、ステップ１１４において、組み合わされたデータのチェックビットが、ＥＣＣ実行ユニット２にて生成される。続いて、ステップ１１５において、組み合わされたデータと、チェックビットとがメモリ１５に格納される。上記ステップ１１３、１１４及び１１５の状態を図１１に示す。
【００３７】
ステップ１１２において、バッファメモリに格納されたアドレスと一致しなければ、図８に示したように、メモリ１５から対応するデータを読みだして、誤り検出訂正、データ組み合わせ、チェックビット生成が実行される。
【００３８】
つまり、バッファメモリに格納されたアドレスと一致しなければ、ステップ１１２から、ステップ１１６に進み、メモリ１５から所定長の対応するデータ（３２ビット）を読み出す。次に、読みだしたデータは、ステップ１１７において、ＥＣＣ実行ユニット４ａ、４ｂ又は４ｃにより誤り検出訂正が実行される。
【００３９】
そして、ステップ１１８において、ＥＣＣ実行ユニット２は誤り検出訂正されたデータと、書き込み要求されたデータとを組み合わせる。次に、ステップ１１４において、チェックビットを生成し、ステップ１１５において、組み合わせたデータと、生成したチェックビットとが、メモリ１５に格納される。
【００４０】
以上のように、本発明の第２実施例によれば、第１実施例と同様な効果が得られる他、次のような効果がある。
つまり、パーシャルライトの場合、バッファメモリに格納されたアドレスと書き込み要求されたデータのアドレスとが一致するときには、メモリ１５からのデータ２の読みだし及び読みだしたデータの誤り検出訂正が不要となり、パーシャルライトを高速化できる。これより、チェックビット長を増やすことなく、バイト毎にチェックビットを生成した場合と同様なパーシャルライトの高速化ができ、メモリアクセスの高速化と共にメモリの使用効率が向上可能となる。
【００４１】
図１２は、本発明の第３実施例の概略構成図であり、図９の例と同等なものには、同一の符号を付してある。また、図１３は、第３実施例の動作フローチャートである。
そして、図１２及び図１３に示す例は、パーシャルライトにおいて、書き込み要求されたデータのアドレスがバッファメモリに格納されていない場合にも、書き込み動作を高速化できる例である。
【００４２】
図１３のステップ１１０〜１１５は、図１０のステップ１１０〜１１５と同様であるので、説明は省略する。
図１３のステップ１１２において、バッファメモリに格納されたアドレスと書き込み要求されたデータのアドレスとが一致しない場合には、ステップ１１６に進む。そして、このステップ１１６において、書き込み要求されたデータに対応するデータをメモリ１５から読み出す。
【００４３】
続いて、ステップ１１７及び１１９に進み、ＥＣＣ実行ユニット４ａにて読みだしたデータの誤り検出を実行するとともに、ＥＣＣ実行ユニット２にて、読みだしたデータと、書き込み要求されたデータとを組み合わせ、ステップ１２０において、組み合わせたデータのチェックビットを生成する（図１２参照）。
【００４４】
次に、ステップ１１７及びステップ１２０からステップ１２１に進み、ＥＣＣ実行ユニット４ａにて読みだしたデータに誤りが検出されたか否かを制御ユニット７が判定する。読みだしたデータに誤りが検出されない場合には、ステップ１１５に進み、ＥＣＣ実行ユニット２にて、組み合わされたデータと生成されたチェクビットとが、メモリ１５に格納される（図１４参照）。
【００４５】
ステップ１２１において、読みだしたデータに誤りが検出された場合には、ステップ１２２に進み、ＥＣＣ実行ユニット４ａによりデータの誤り訂正が実行される。次に、ステップ１２３において、ＥＣＣ実行ユニット４ａにより、誤り訂正されたデータは、マルチプレクサ１を介してＥＣＣ実行ユニット２に供給され、書き込みデータと組み合わされる。続いて、ステップ１１４及び１５によりチェックビットが生成され、この生成されたチェックビットとデータとがメモリ１５に格納される。
図１２及び図１４は、パーシャルライトがアドレス０００４に格納されているデータ４に対して行われる場合の例である。
このように、バッファメモリに格納されていないアドレスのデータに対してパーシャルライトの要求があった場合、メモリから対応するデータを読みだし、誤りを検出するとともに、これと平行して、読みだしたデータと書き込み要求されたデータとの組み合わせ及びチェックビット生成を行う。そして、誤りが検出されなかったときは、組み合わされたデータとチェックビットとがメモリ１５に格納される。読み出されたデータに誤りが検出される可能性は低いため、大半のデータは、誤り訂正すること無しに、書き込みデータと組み合わされ、メモリ１５に格納される。
【００４６】
したがって、読みだしたデータに誤りがない場合は、データの訂正、それに続く、訂正されたデータと書き込みデータとの組み合わせ、チェックビットの生成に必要な時間を省略することができる。
【００４７】
以上のように、本発明の第３実施例によれば、第２実施例と同様な効果が得られる他、パーシャルライトの場合、バッファメモリに格納されたアドレスと書き込み要求されたデータのアドレスとが一致しないときであり、読みだしたデータに誤りが検出されないときには、データの訂正、それに続く、訂正されたデータと書き込みデータとの組み合わせ、チェックビットの生成に必要な時間を省略することができ、さらに、パーシャルライトの高速化が可能となる。
【００４８】
図１５は、本発明の第４実施例の概略構成図であり、図１６は、図１５の例の動作フローチャートである。
この図１５の例は、一つの誤り検出訂正用ＥＣＣ実行ユニット４ａと、一つのチェックビット生成用ＥＣＣ実行ユニット２とを備え、データの読みだしに際しては、上記第１〜第３の例と異なり、関連するデータは、読み出さない例である。そして、この図１５の例は、パーシャルライトにおいて、第３の実施例と同様に、メモリから対応するデータを読みだし、誤りを検出するとともに、これと平行して、読みだしたデータと書き込み要求されたデータとの組み合わせ及びチェックビット生成を行い、誤りが検出されなかったときは、組み合わされたデータとチェックビットとをメモリ１５に格納する例である。
【００４９】
このため、図１６に示したフローチャートは、図１３に示したフローチャートからステップ１１２及び１１３が省略されている。そして、ステップ１１１からステップ１１６に進み、図１３の例と同様に、ステップ１１６、１１７、１１９〜１２３が実行される。
以上のように、本発明の第４実施例によれば、パーシャルライトの場合、読みだしたデータに誤りが検出されないときには、データの訂正、それに続く、訂正されたデータと書き込みデータとの組み合わせ、チェックビットの生成に必要な時間を省略することができ、パーシャルライトの高速化が可能となる。
【００５０】
なお、上述した例においては、誤り検出訂正用ＥＣＣ実行ユニットが３つの例を示したが、３つに限らず、２つ又は４つ以上であってもよい。
【００５１】
【発明の効果】
本発明は、以上説明したように構成されているため、次のような効果がある。
読みだし要求されたアドレスのデータと、このアドレスのデータに関連する複数のアドレスのデータとを読みだし、これら複数のデータの誤り検出訂正を複数のＥＣＣ実行ユニットにより並列に実行する。そして、誤り検出訂正されたデータは、データバッファに格納される。
したがって、複数のデータの誤り検出訂正を高速に実行可能であるとともに、関連するデータの読みだしが高速に実行でき、メモリの使用効率を向上可能なデータ記憶制御装置を実現することができる。
パーシャルライトの場合、バッファメモリに格納されたアドレスと書き込み要求されたデータのアドレスとが一致するときには、メモリからのデータの読みだし及び読みだしたデータの誤り検出訂正が不要となり、パーシャルライトを高速化できる。これより、チェックビット長を増やすことなく、バイト毎にチェックビットを生成した場合と同様なパーシャルライトの高速化ができ、メモリアクセスの高速化と共にメモリの使用効率が向上可能となる。
【００５２】
また、パーシャルライトの場合、書き込むデータのアドレスに対応するデータをデータ記憶手段から読みだし、データの誤りの検出並びに書き込み要求されたデータとの組み合わせ及び組み合わせたデータの誤り検出訂正用情報の生成が、並列して実行される。そして、データの誤りが検出されなかったときには、組み合わせたデータ及び生成したデータ誤り検出訂正用情報が、データ記憶手段に記憶される。
【００５３】
したがって、データ記憶手段から読みだしたデータの誤り訂正、誤り訂正されたデータと書き込み要求されたデータとの組み合わせ及びそれに続く誤り検出訂正用情報の生成に要する時間が省略され、データ書き込み時間の短縮化が可能となる。
【図面の簡単な説明】
【図１】本発明の第１実施例の概略構成図である。
【図２】図１の例のおける制御ユニットの機能ブロック図である。
【図３】メモリの各アドレスに格納されたデータを示す図である。
【図４】図１の例の動作フローチャートである。
【図５】図１の例において、バッファメモリに読みだし要求データが格納されている場合の動作説明図である。
【図６】図１の例のデータ誤り検出訂正の動作タイミングチャートである。
【図７】本発明とは異なる例におけるデータ誤り検出訂正の動作タイミングチャートである。
【図８】チェックビット生成の対象となるデータ幅より小さいデータを書き込む場合の動作説明図である。
【図９】本発明第２実施例の概略構成図である。
【図１０】図９の例の動作フローチャートである。
【図１１】図９の例において、バッファメモリに書き込み要求されたデータに対応するデータが格納されている場合のパーシャルライトの動作説明図である。
【図１２】本発明の第３実施例の概略構成図である。
【図１３】図１２の例の動作フローチャートである。
【図１４】図１２の例の動作説明図である。
【図１５】本発明の第４実施例の概略構成図である。
【図１６】図１５の例の動作フローチャートである。
【符号の説明】
１                マルチプレクサ
２                チェックビット生成用ＥＣＣ実行ユニット
３ａ、３ａ、３ｂ  バッファメモリ
４ａ、４ｂ、４ｃ  誤り検出訂正用のＥＣＣ実行ユニット
５                出力制御部
６                ＭＰＵデータバス
７                制御ユニット
８                メモリデータバス
９                チェックビットバス
１０              メモリアドレスバス
１１              制御信号線
１２              ＭＰＵアドレスバス
１３              ＭＰＵ制御信号線
１４              ＭＰＵ
１５              メモリ
７１              アドレス比較部
７２              データ位置通知バス
７３              データヒット情報線
７４              制御信号発生部
２００            ＥＣＣ実行ユニット
【図１】
0003675748.tif 000002
【図２】
0003675748.tif 000003
【図３】
0003675748.tif 000004
【図４】
0003675748.tif 000005
【図５】
0003675748.tif 000006
【図６】
0003675748.tif 000007
【図７】
0003675748.tif 000008
【図８】
0003675748.tif 000009
【図９】
0003675748.tif 000010
【図１０】
0003675748.tif 000011
【図１１】
0003675748.tif 000012
【図１２】
0003675748.tif 000013
【図１３】
0003675748.tif 000014
【図１４】
0003675748.tif 000015
【図１５】
0003675748.tif 000016
【図１６】
0003675748.tif 000017