(57)【特許請求の範囲】
【請求項１】
連続したアドレスのデータを転送するバスインタフェースであって、そのバスサイクルの長さが固定長であるバースト転送用の外部バスインタフェースを有するＣＰＵと、主記憶手段と、データの誤り検出訂正を行うＥＣＣ実行部とを有するコンピュータシステムのデータ記憶制御方法において、
ＣＰＵから上記主記憶手段へのデータの読み出しが要求され、読み出されたデータに誤りがあることが上記ＥＣＣ実行部に検出されたときに、誤りのあるデータのアドレスを保持し、
上記ＥＣＣ実行部によりデータの誤りが検出された際に、割込み情報を保持し、上記ＣＰＵに割り込み要求を行い、
ＣＰＵの割り込み処理ルーチンにて、ＣＰＵを割り込み禁止にし、主記憶手段から上記保持されたアドレスと下位の固定長ビットのみアドレスの異なる複数のデータを読み出し、
上記読み出した複数のデータを上記ＥＣＣ実行部により誤り訂正を実行し、誤りを訂正した複数のデータを上記ＣＰＵが主記憶手段に書き戻し、
上記割り込み情報をクリアし、ＣＰＵを割り込み許可状態とすることを特徴とするデータ記憶制御方法。
【請求項２】
連続したアドレスのデータを転送するバスインタフェースであって、そのバスサイクルの長さが固定長であるバースト転送用の外部バスインタフェースを有するＣＰＵと、ダイレクトメモリアクセス可能なＤＭＡデバイスと、主記憶手段と、データの誤り検出訂正を行うＥＣＣ実行部とを有するコンピュータシステムのデータ記憶制御方法において、
ＣＰＵ又はＤＭＡデバイスから上記主記憶手段へのデータの読み出しが要求され、読み出されたデータに誤りがあることが上記ＥＣＣ実行部に検出されたときに、誤りのあるデータのアドレスを保持し、
上記ＥＣＣ実行部によりデータの誤りが検出された際に、割込み情報を保持し、上記ＣＰＵに割り込み要求を行い、
ＣＰＵの割り込み処理ルーチンにて、上記ＤＭＡデバイスによるダイレクトメモリアクセスを禁止すると共に、ＣＰＵを割り込み禁止にし、主記憶手段から上記保持されたアドレスと下位の固定長ビットのみアドレスの異なる複数のデータを読み出し、
上記読み出した複数のデータを上記ＥＣＣ実行部により誤り訂正を実行し、誤りを訂正した複数のデータを上記ＣＰＵが主記憶手段に書き戻し、
上記割り込み情報をクリアし、上記ＤＭＡデバイスによるダイレクトメモリアクセスを許可状態とすると共に、ＣＰＵを割り込み許可状態とすることを特徴とするデータ記憶制御方法。
【請求項３】
連続したアドレスのデータを転送するバスインタフェースであって、そのバスサイクルの長さが固定長であるバースト転送用の外部バスインタフェースを有するＣＰＵと、主記憶手段と、データの誤り検出訂正を行うＥＣＣ実行部とを有するコンピュータシステムのデータ記憶制御装置において、
ＣＰＵから上記主記憶手段へのデータの読み出しが要求され、読み出されたデータに誤りがあることが上記ＥＣＣ実行部に検出されたときに、誤りのあるデータのアドレスを保持するアドレス保持部と、
ＣＰＵの割り込み情報を保持する割り込み情報保持部と、
上記ＥＣＣ実行部によりデータの誤りが検出された際に、上記割込み情報保持部に割込み情報を設定し、上記ＣＰＵに割り込み要求を行い、ＣＰＵの割り込み処理ルーチンにて、ＣＰＵを割り込み禁止にし、主記憶手段から上記アドレス保持部に保持されたアドレスと下位の固定長ビットのみアドレスの異なる複数のデータを読み出し、読み出した複数のデータを上記ＥＣＣ実行部により誤り訂正を実行し、誤りを訂正した複数のデータを上記ＣＰＵが主記憶手段に書き戻し、上記割り込み情報保持部の割り込み情報をクリアし、ＣＰＵを割り込み許可状態とする制御部とを備えることを特徴とするデータ記憶制御装置。
【請求項４】
連続したアドレスのデータを転送するバスインタフェースであって、そのバスサイクルの長さが固定長であるバースト転送用の外部バスインタフェースを有するＣＰＵと、ダイレクトメモリアクセス可能なＤＭＡデバイスと、主記憶手段と、データの誤り検出訂正を行うＥＣＣ実行部とを有するコンピュータシステムのデータ記憶制御装置において、
ＣＰＵ又はＤＭＡデバイスから上記主記憶手段へのデータの読み出しが要求され、読み出されたデータに誤りがあることが上記ＥＣＣ実行部に検出されたときに、誤りのあるデータのアドレスを保持するアドレス保持部と、
ＣＰＵの割り込み情報を保持する割り込み情報保持部と、
上記ＤＭＡデバイスの制御情報を保持するＤＭＡ制御情報保持部と、
上記ＥＣＣ実行部によりデータの誤りが検出された際に、上記割込み情報保持部に割込み情報を設定し、上記ＣＰＵに割り込み要求を行い、ＣＰＵの割り込み処理ルーチンにて、ＤＭＡ制御情報保持部にＤＭＡ制御情報を設定し、上記ＤＭＡデバイスによるダイレクトメモリアクセスを禁止すると共に、ＣＰＵを割り込み禁止にし、主記憶手段から上記アドレス保持部に保持されたアドレスと下位の固定長ビットのみアドレスの異なる複数のデータを読み出し、読み出した複数のデータを上記ＥＣＣ実行部により誤り訂正を実行し、誤りを訂正した複数のデータを上記ＣＰＵが主記憶手段に書き戻し、上記割り込み情報保持部の割り込み情報をクリアし、ＣＰＵを割り込み許可状態とし、上記ＤＭＡ制御情報保持部の制御情報をクリアし、上記ＤＭＡデバイスによるダイレクトメモリアクセスを許可状態とする制御部とを備えることを特徴とするデータ記憶制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータシステムにおける主記憶装置をＥＣＣ実行により高信頼性を維持しつつ、高速アクセス可能なデータ記憶制御方法及び装置に関する。
【０００２】
【従来の技術】
ＣＰＵの中には主記憶装置への高速アクセスを狙いとして、内部に主記憶装置の内容の一部を格納するキャッシュメモリを有するものがある。このようなＣＰＵにおいては、キャッシュメモリにミスヒットした場合、アクセスデータのアドレスと下位の固定長ビットのみアドレスが異なるデータを連続して主記憶装置から読み出し、キャッシュメモリに格納して、キャッシュメモリの内容を更新する。
【０００３】
この際、ライトバックキャッシュメモリの場合は、キャッシュメモリの更新される部分に格納されていたデータを、キャッシュメモリの更新前に主記憶装置に書き戻す。この際の主記憶装置へのアクセスも、主記憶装置へのアクセスデータと下位の固定ビットのみ異なるデータの連続した書き込みである。
【０００４】
このような、アクセスデータのアドレスと下位の固定長ビットのみアドレスが異なるデータを連続してアクセスすることをバーストアクセスという。リードはバーストリード、ライトはバーストライトという。
【０００５】
メモリ素子の中には、連続したアドレスへのアクセスの高速化を目的として、バーストアクセス可能なものがある。最近のＣＰＵでは、キャッシュメモリの内容の更新の高速化を目的として、上記メモリ素子に対応した、バースト転送用の外部バスＩ／Ｆ（インターフェース）を備えるものがある。
【０００６】
通常の外部バスＩ／Ｆでは、ウェイト信号により、外部で１つのバスサイクルの長さを制御できるが、メモリ素子のバーストアクセスには対応しておらず、キャッシュメモリの内容の更新の際は、１つのバスサイクルを繰り返し行うことによって対応する。
【０００７】
バースト転送用の外部バスＩ／Ｆは、１つのバスサイクルでバーストアクセスを完了することができ、通常のバスＩ／Ｆよりも高速に、キャッシュメモリの内容を更新できる。一般的にＣＰＵのバースト転送用の外部バスＩ／Ｆは、バスサイクルの長さが固定であり、ウェイト信号により、外部から１つのバスサイクルの長さを制御することはできない。
【０００８】
また、半導体の分野では、微細化技術が著しく進展している。各種メモリ素子では、この微細化技術の進展によりメモリ素子１個あたりの記憶容量が増大する反面、記憶セル１個の占める体積の縮小による蓄積電荷量の減少や、微小欠陥の発生確率の高まり、動作の高速化に伴う電気的なノイズの印加等の外部要因により、データ中のエラービットの発生確率が高くなる。
【０００９】
メモリ装置におけるデータの信頼性向上の方法としては、ＥＣＣ機構が知られている。ＥＣＣ機構では、拡張ハミングコードを用いてデータビットよりチェックビットを生成し、データビットとチェックビットとをメモリ装置に書き込む。そして、読み出し時にはメモリ装置から読み出したデータビットとチェックビットとによりシンドロームを生成し、このシンドロームにより１ビットの誤り訂正及び２ビットの誤り検出を行う。
【００１０】
【発明が解決しようとする課題】
ところで、従来、主記憶に対してＥＣＣ機構によりエラー検出訂正を実行する場合、通常の外部バスＩ／Ｆを使用していた。主記憶装置の読みだしアクセス時にＥＣＣ機構により１ビットエラーが検出された場合、ＣＰＵには、ＥＣＣ機構により訂正されたデータが送られると共に、主記憶装置には訂正後のデータが書き込まれ、主記憶装置の内容が訂正される。この際、エラーが検出されない場合の読み出しアクセスよりも、主記憶装置の書き込みの時間だけバスサイクルが長くなるが、ウェイト信号によってバスサイクルの長さが制御される。
【００１１】
上述した通常の外部バスＩ／Ｆではなく、バースト転送用Ｉ／Ｆを使用してＥＣＣ機構によるエラー検出訂正を実施した場合、通常の外部バスＩ／Ｆを使用した場合よりも高速にキャッシュメモリの内容の更新を行うことができる。
【００１２】
しかし、主記憶装置の読み出しアクセス時に、ＥＣＣ機構により１ビットエラーが検出された場合、ＣＰＵには、ＥＣＣ機構により訂正されたデータが送られるが、バースト転送用Ｉ／Ｆはバスサイクルの長さが固定であるため、ウェイトさせることができず、主記憶装置に訂正データを書き込んで主記憶装置の内容を訂正することができない。
この場合、主記憶装置のデータを、１ビットの誤りを含んだままにしておくと、訂正不可能な２ビットエラーが発生する確率が高くなり、主記憶装置の信頼性が低くなる。
【００１３】
本発明の目的は、ＣＰＵのバースト転送用Ｉ／Ｆを使用して、キャッシュメモリの内容の更新を高速に行うと共に、ＥＣＣ機構により１ビットエラーが検出された場合に、主記憶装置の内容を訂正可能なデータ記憶制御方法及び装置を実現することである。
【００１４】
【課題を解決するための手段】
（１）上記目的を達成するため、本発明は次のように構成される。すなわち、連続したアドレスのデータを転送するバースト転送用の外部バスインタフェースを有するＣＰＵと、主記憶手段と、データの誤り検出訂正を行うＥＣＣ実行部とを有するコンピュータシステムのデータ記憶制御方法において、ＣＰＵから上記主記憶手段へのデータの読み出しが要求され、読み出されたデータに誤りがあることが上記ＥＣＣ実行部に検出されたときに、誤りのあるデータのアドレスを保持し、上記ＥＣＣ実行部によりデータの誤りが検出された際に、割込み情報を保持し、上記ＣＰＵに割込み要求を行い、ＣＰＵの割込み処理ルーチンにて、ＣＰＵを割込み禁止にし、主記憶手段から上記保持されたアドレスと下位の固定長ビットのみアドレスの異なる複数のデータを読み出し、上記読み出した複数のデータを上記ＥＣＣ実行部により誤り訂正を実行し、誤りを訂正した複数のデータを上記ＣＰＵが主記憶手段に書き戻し、上記割込み情報をクリアし、ＣＰＵを割込み許可状態とする。
【００１５】
ＣＰＵのバースト転送用Ｉ／Ｆを使用して、主記憶手段からＣＰＵ内のキャッシュメモリへ、又はキャッシュメモリから主記憶手段へ、ＥＣＣ実行部を介してデータ転送を実行する場合に、１ビットエラーが検出されたデータのアドレスを保持しておく。そして、ＣＰＵの割り込みを禁止し、保持したアドレスのデータのエラー訂正を実行した後に、これらのデータを主記憶手段に書き込み、ＣＰＵの割り込み禁止を解除する。
したがって、ＣＰＵのバースト転送用Ｉ／Ｆを使用して、キャッシュメモリの内容の更新を高速に行うと共に、ＥＣＣ実行部により１ビットエラーが検出された場合に、主記憶手段の内容を訂正可能なデータ記憶制御方法を実現することができる。
【００１６】
（２）また、連続したアドレスのデータを転送するバースト転送用の外部バスインタフェースを有するＣＰＵと、ダイレクトメモリアクセス可能なＤＭＡデバイスと、主記憶手段と、データの誤り検出訂正を行うＥＣＣ実行部とを有するコンピュータシステムのデータ記憶制御方法において、ＣＰＵ又はＤＭＡデバイスから上記主記憶手段へのデータの読み出しが要求され、読み出されたデータに誤りがあることが上記ＥＣＣ実行部に検出されたときに、誤りのあるデータのアドレスを保持し、上記ＥＣＣ実行部によりデータの誤りが検出された際に、割込み情報を保持し、上記ＣＰＵに割込み要求を行い、ＣＰＵの割込み処理ルーチンにて、上記ＤＭＡデバイスによるダイレクトメモリアクセスを禁止すると共に、ＣＰＵを割込み禁止にし、主記憶装置から上記保持されたアドレスと下位の固定長ビットのみアドレスの異なる複数のデータを読み出し、上記読み出した複数のデータを上記ＥＣＣ実行部により誤り訂正を実行し、誤りを訂正した複数のデータを上記ＣＰＵが主記憶装置に書き戻し、上記割込み情報をクリアし、上記ＤＭＡデバイスによるダイレクトメモリアクセスを許可状態とすると共に、ＣＰＵを割込み許可状態とする。
【００１７】
（３）また、連続したアドレスのデータを転送するバースト転送用の外部バスインタフェースを有するＣＰＵと、主記憶手段と、データの誤り検出訂正を行うＥＣＣ実行部とを有するコンピュータシステムのデータ記憶制御装置において、ＣＰＵから上記主記憶手段へのデータの読み出しが要求され、読み出されたデータに誤りがあることが上記ＥＣＣ実行部に検出されたときに、誤りのあるデータのアドレスを保持するアドレス保持部と、ＣＰＵの割り込み情報を保持する割り込み情報保持部と、上記ＥＣＣ実行部によりデータの誤りが検出された際に、上記割込み情報保持部に割り込み情報を設定し、上記ＣＰＵに割込み要求を行い、ＣＰＵの割込み処理ルーチンにて、ＣＰＵを割込み禁止にし、主記憶手段から上記アドレス保持部に保持されたアドレスと下位の固定長ビットのみアドレスの異なる複数のデータを読み出し、読み出した複数のデータを上記ＥＣＣ実行部により誤り訂正を実行し、誤りを訂正した複数のデータを上記ＣＰＵが主記憶装置に書き戻し、上記割込み情報保持部の割り込み情報をクリアし、ＣＰＵを割込み許可状態とする制御部とを備える。
【００１８】
ＣＰＵのバースト転送用Ｉ／Ｆを使用して、主記憶手段からＣＰＵ内のキャッシュメモリへ、又はキャッシュメモリから主記憶手段へ、ＥＣＣ実行部を介してデータ転送を実行する場合に、１ビットエラーが検出されたデータのアドレスをアドレス保持部に保持しておく。そして、制御部により、ＣＰＵの割り込みが禁止され、アドレス保持部に保持されたアドレスのデータを、ＥＣＣ実行部によりエラー訂正を実行させた後に、これらのデータを主記憶手段に書き込み、ＣＰＵの割り込み禁止を解除する。
したがって、ＣＰＵのバースト転送用Ｉ／Ｆを使用して、キャッシュメモリの内容の更新を高速に行うと共に、ＥＣＣ実行部により１ビットエラーが検出された場合に、主記憶手段の内容を訂正可能なデータ記憶制御装置を実現することができる。
【００１９】
（４）また、連続したアドレスのデータを転送するバースト転送用の外部バスインタフェースを有するＣＰＵと、ダイレクトメモリアクセス可能なＤＭＡデバイスと、主記憶手段と、データの誤り検出訂正を行うＥＣＣ実行部とを有するコンピュータシステムのデータ記憶制御装置において、ＣＰＵ又はＤＭＡデバイスから上記主記憶手段へのデータの読み出しが要求され、読み出されたデータに誤りがあることが上記ＥＣＣ実行部に検出されたときに、誤りのあるデータのアドレスを保持するアドレス保持部と、ＣＰＵの割り込み情報を保持する割り込み情報保持部と、上記ＤＭＡデバイスの制御情報を保持するＤＭＡ制御情報保持部と、上記ＥＣＣ実行部によりデータの誤りが検出された際に、上記割込み情報保持部に割り込み情報を設定し、上記ＣＰＵに割込み要求を行い、ＣＰＵの割込み処理ルーチンにて、ＤＭＡ制御情報部にＤＭＡ制御情報を設定し、上記ＤＭＡデバイスによるダイレクトメモリアクセスを禁止すると共に、ＣＰＵを割込み禁止にし、主記憶手段から上記アドレス保持部に保持されたアドレスと下位の固定長ビットのみアドレスの異なる複数のデータを読み出し、読み出した複数のデータを上記ＥＣＣ実行部により誤り訂正を実行し、誤りを訂正した複数のデータを上記ＣＰＵが主記憶装置に書き戻し、上記割込み情報保持部の割り込み情報をクリアし、ＣＰＵを割込み許可状態とし、上記ＤＭＡ制御情報保持部の制御情報をクリアし、上記ＤＭＡデバイスによるダイレクトメモリアクセスを許可状態とする制御部とを備える。
【００２０】
【発明の実施の形態】
以下、本発明の実施の形態を添付図面を用いて説明する。
図１は本発明の一実施形態であるデータ記憶制御装置の全体概略構成図である。図１において、１は連続したアドレスのデータを転送するバースト転送用の外部バスインタフェース及びキャッシュメモリ１Ｃを有するＣＰＵであり、２はＤＭＡ（ダイレクトメモリアクセス）実行可能なデバイスである。
【００２１】
３は、主記憶装置６からのデータの誤り検出訂正を行うＥＣＣ実行部であり、４はアドレス保持部である。このアドレス保持部４は、ＥＣＣ実行部３による主記憶装置６からのデータ読み出し時に１ビットエラーが検出された際に、１ビットエラーを含むデータのアドレスを保持する。
【００２２】
５ａは割込み情報保持部であり、この割り込み情報保持部５ａは、ＥＣＣ実行部３により主記憶装置６からのデータ読み出し時に１ビットエラーが検出された際にセットされる。
【００２３】
５ｂはＤＭＡ制御情報保持部であり、このＤＭＡ制御情報保持部５ｂがセットされると、主記憶装置６へのＤＭＡデバイス２のアクセスが禁止される。５は制御部であり、割込み情報保持部５ａと、ＤＭＡ制御情報保持部５ｂとを有する。そして、この制御部５は、主記憶装置６へのアクセス及びＥＣＣ実行部３及びアドレス保持部４を制御し、割込み保持部５ａがセットされた際に、制御線７に含まれる割込み要求線を介してＣＰＵ１に割込み要求をする。
【００２４】
８はアドレスバス、９はデータバス、１０はメモリ制御線、１１はメモリアドレスバス、１２はメモリデータバスである。また、１３はシステム制御線であり、制御部５はシステム制御線１３を介してＥＣＣ実行部３及びアドレス保持部４を制御する。１４は１ビットエラー報告線で、ＥＣＣ実行部３は１ビットエラー検出時に１ビットエラー報告線１４を介して制御部５に、その報告を行う。
【００２５】
図２及び図３は、ＣＰＵ１の通常の外部バスＩ／Ｆを用いた場合のリードサイクル及びライトサイクルを示すタイミングチャートであり、バスサイクル最小の場合の例である。そして、図２及び図３の例では、バスサイクルの長さは３バスクロックサイクルである。
【００２６】
ＣＰＵ１の外部バスＩ／Ｆは、各バスクロックの立ち上がりで外部からのウェイト信号をサンプリングし、ウェイト信号の値が“Ｈ”レベルであれば、そのバスクロックでバスサイクルを終了させる。
【００２７】
図４及び図５は、ＣＰＵ１の通常の外部バスＩ／Ｆを用いた場合であって、外部から３バスクロックサイクルだけウェイトサイクルを挿入した場合のタイミングチャートである。そして、図４がリードサイクルで、図５がライトサイクルである。図４及び図５に示した例は、図２及び図３に示した例に比べて、ウェイト信号が“Ｌ”レベルである期間が３バスクロックサイクルだけ長い。
【００２８】
図６及び図７は、ＣＰＵ１のバースト転送用外部バスＩ／Ｆを用いた場合であって、転送長が４の場合のタイミングチャートである。バースト転送であるので、アドレスＡ１、Ａ２、Ａ３、Ａ４は、互いに下位のビットのみが異なる。また、データＤ１、Ｄ２、Ｄ３、Ｄ４は、それぞれアドレスＡ１、Ａ２、Ａ３、Ａ４に格納されたデータである。 ＣＰＵ１のバースト転送用外部バスＩ／Ｆは、バスサイクルの長さが固定長であり、外部からウェイト信号によりバスサイクルの長さを制御することはできない。
【００２９】
従来においては、主記憶装置６に対してＥＣＣ機構によるエラー検出訂正を実行する場合、ＣＰＵ１の通常の外部バスＩ／Ｆを使用していた。つまり、主記憶装置６の読み出しアクセス時に、ＥＣＣ実行部３により１ビットエラーが検出された場合、ＣＰＵ１には、ＥＣＣ実行部３より訂正されたデータが送られると共に、主記憶装置６には訂正後のデータが書き込まれ、主記憶装置６の内容が訂正される。
【００３０】
このエラーが検出された場合には、エラーが検出されない場合の読み出しアクセスよりも、主記憶装置６の書き込みの時間だけバスサイクルが長くなるが、ウェイト信号によってバスサイクルの長さが制御される。
【００３１】
図８は、通常の外部バスＩ／Ｆを使用し、主記憶装置６の読み出しアクセス時にＥＣＣ実行部３により１ビットエラーが検出された場合のバスサイクルを示すタイミングチャートである。図８において、メモリ素子リードアクセスサイクルがエラーが検出されない場合の読み出しアクセスである。そして、エラーが検出された場合は、メモリリードアクセスサイクルに、メモリ素子ライトアクセスサイクルが追加される。このメモリ素子ライトアクセスサイクルが、主記憶装置６の内容の訂正によりバスサイクルが延長される部分である。
【００３２】
なお、メモリ素子リードアクセスサイクルにおいては、メモリ素子アクセス時間が６０ｎｓ、ＥＣＣ時間が１５ｎｓである。また、メモリ素子ライトアクセスサイクルにおいては、メモリ素子アクセス時間が４５ｎｓとなっている。
【００３３】
図９は、本発明の一実施形態におけるＣＰＵ１の主記憶装置６への書き込みアクセス動作を表している。図９において、ＣＰＵ１の書き込みデータは、データバス９を介してＥＣＣ実行部３に送られる。そして、ＥＣＣ実行部３に送られた書き込みデータは、このＥＣＣ実行部３にて、チェックビットが生成され、ＣＰＵ１の書き込みデータとチェックビットが、メモリデータバス１２を介して主記憶装置６に書き込まれる。
【００３４】
図１０は、本発明の一実施形態における主記憶装置６への読み出しアクセスの動作フローチャートである。図１０のステップ１００において、ＣＰＵ１又はＤＭＡデバイス２により主記憶装置６へリードアクセスがあると、ステップ１０１に進み、主記憶装置６からデータが読み出される。次に、ステップ１０２において、主記憶装置６からの読み出しデータは、ＥＣＣ実行部３によりエラーの検出が行われる。そして、ステップ１０３において、主記憶装置６からの読み出しデータに１ビットエラーがない場合は、ステップ１０４に進み、ＣＰＵ１又はＤＭＡデバイス２に読み出しデータが送られ、主記憶装置６への読み出しアクセスサイクルが終了する。
【００３５】
ステップ１０３において、主記憶装置６からの読み出しデータから１ビットエラーが検出された場合、ステップ１０５に進み、アドレス保持部４に１ビットエラーが検出されたデータのアドレスを格納する。次に、ステップ１０６において、割込み情報保持部５ａをセットし、ステップ１０７において、制御部５から制御線７を介してＣＰＵ１に割込みを要求する。そして、ステップ１０８において、ＣＰＵ１又はＤＭＡデバイス２に１ビットエラー訂正後のデータが送られ、主記憶装置６への読み出しアクセスサイクルが終了する。
【００３６】
図１１は、ＣＰＵ１の主記憶６装置への読み出しアクセスにおいて、主記憶装置６からの読み出しデータに１ビットエラーがない場合の動作を表している。また、図１２は、ＣＰＵ１の主記憶装置６への読み出しアクセスにおいて、主記憶装置６からの読み出しデータに１ビットエラーがある場合の動作を表している。
【００３７】
図１２に示した動作は、図１１に示した動作に加え、ＥＣＣ実行部３から制御部５に１ビットエラー報告線１４を介しての１ビットエラーの報告、割込み情報保持部５ａのセット及び制御部５からの制御線７の中の割込み要求線を介してのＣＰＵ１への割込み要求の動作が加わっている。また、ＣＰＵ１には、ＥＣＣ実行部３によりエラー訂正後のデータが送られる。
【００３８】
本発明の一実施形態においては、ＥＣＣ実行部３により、１ビットエラーが検出された場合、主記憶装置６の内容の訂正は、制御部５により要求された割込みの処理ルーチンで行う。
【００３９】
図１３は、上記割込み処理ルーチンにおける主記憶装置６の内容訂正の動作フローチャートである。主記憶装置６の内容は、ＥＣＣ実行部３により訂正されたデータを主記憶６に書き戻せば訂正される。具体的には、主記憶装置６の１ビットエラーが発生したアドレスからＣＰＵ１が読み出しを行い、読み出したデータを主記憶装置６に書き戻せばよい。
【００４０】
この読み出しと書き戻しの間に、主記憶装置６の１ビットエラーの発生したアドレスに新たにデータが書き込まれた場合、主記憶装置６への訂正データ書き戻しにより主記憶装置６の内容が古いデータに戻される恐れがある。１ビットエラーの発生したアドレスへの新たなデータの書き込みはＤＭＡデバイス２によるか、ＣＰＵ１の１ビットエラー割込みよりもレベルの高い割込み処理ルーチンにより行われる。
【００４１】
そこで、本発明の一実施形態においては、図１３のステップ２００及び２０１に示すように、１ビットエラー発生アドレスからの読み出しと書き戻しの前にＤＭＡ制御情報保持部５ｂをセットし、ＤＭＡを禁止し、ＣＰＵ１を割込み禁止状態にする。これにより、１ビットエラー発生アドレスへの新たなデータの書き込みを禁止している。
【００４２】
そして、ステップ２０２において、制御部５はアドレス保持部４に格納されたエラー発生アドレスを読み出す。次に、ステップ２０３において、読み出したエラー発生アドレスからバーストで、つまり連続して主記億装置６からデータを読み出す。そして、ステップ２０４において、エラー訂正されたデータを、主記憶装置６のエラーが発生したアドレスにバーストで書き込む。
【００４３】
次に、ステップ２０５において、制御部５は、割り込み情報保持部５ａの内容をクリアし、割り込み要求を解除する。続いて、ステップ２０６において、制御部５は、ＣＰＵ１を割り込み許可状態とする。そして、ステップ２０７において、ＤＭＡ制御情報保持部５ｂの内容をクリアし、ＤＭＡを許可する。
なお、アドレス保持部４には、１ビットエラーの発生した最新のアドレスが格納されているため、バースト転送にて１ビットエラーが複数回発生した場合は、最後の１ビットエラー発生アドレスのみがアドレス保持部４に格納される。本発明の一実施形態においては、１ビットエラー発生アドレスからの読み出しと訂正データの書き戻しとをバーストで行うことにより、バースト転送において複数回１ビットエラーが発生した場合にも対応している。図１４は、アドレス保持部４からの１ビットエラー発生アドレスの読み出し動作を示している。
【００４４】
図１５は、ＣＰＵ１の通常の外部バスＩ／Ｆを使用した例であって、主記憶装置６にバーストモードを備えるＤＲＡＭを使用した場合の、主記憶装置６からＣＰＵ１のキャッシュメモリ１Ｃへのデータの転送例におけるタイミングチャートである。この図１５に示すように、ＣＰＵ１の通常の外部バスＩ／Ｆを使用した場合、４つのデータを転送するためには、１回のリードアクセスを４回実行しなければならないことになる。
【００４５】
図１６は、ＣＰＵ１のバースト転送用の外部バスＩ／Ｆを使用した例であって、主記憶装置６にバーストモードを備えるＤＲＡＭを使用した場合の、主記憶装置６からＣＰＵ１のキャッシュメモリ１Ｃへのデータの転送例におけるタイミングチャートである。
【００４６】
この図１６に示すように、ＤＲＡＭの連続アクセスを高速に実行できるバーストモードを使用するため、主記憶装置６からＣＰＵ１のキャッシュメモリ１Ｃへのデータ転送を高速に行うことができる。図１６では、バーストモード使用により一定間隔で連続してデータが読み出されている。
【００４７】
ここで、主記憶装置６のリードアクセス時間を６０ｎｓ、バーストモードによるデータ読み出し間隔を１０ｎｓ、ＥＣＣ実行時間を１５ｎｓとして、図１５に示した例と、図１６に示した例とを比較する。この比較結果から、ＣＰＵ１のバースト転送用の外部Ｉ／Ｆを使用することにより、通常の外部バスＩ／Ｆを使用するよりも主記憶装置６からＣＰＵ１のキャッシュメモリへデータの転送を１９５ｎｓ（３００ｎｓ−１０５ｎｓ）短縮できる。
【００４８】
図１７は、ＣＰＵ１の通常の外部バスＩ／Ｆを使用した例であって、主記憶装置６にバーストモードを備えるＤＲＡＭを使用した場合の、ＣＰＵ１のキャッシュメモリ１Ｃから主記憶装置６へのデータの転送例におけるタイミングチャートである。この図１７に示すように、ＣＰＵ１の通常の外部バスＩ／Ｆを使用した場合、４つのデータを転送するためには、１回のライトアクセスを４回実行しなければならないことになる。
【００４９】
図１８は、ＣＰＵ１のバースト転送用の外部バスＩ／Ｆを使用した例であって、主記憶装置６にバーストモードを備えるＤＲＡＭを使用した場合の、ＣＰＵ１のキャッシュメモリ１Ｃから主記憶装置６へのデータの転送例におけるタイミングチャートである。
【００５０】
この図１８に示すように、ＤＲＡＭの連続アクセスを高速に実行できるバーストモードを使用するため、 ＣＰＵ１のキャッシュメモリ１Ｃから主記憶装置６へのデータの転送を高速に行うことができる。図１８では、バーストモード使用により一定間隔で連続してデータが書き込まれている。そして、１ビットエラーが検出された場合には、エラーが検出されたデータのアドレスを保持しておく。そして、ＣＰＵ１の割り込みを禁止し、保持したアドレスのデータのエラー訂正を実行した後に、これらのデータを主記億装置６に書き込み、ＣＰＵ１の割り込み禁止を解除する。
【００５１】
ここで、主記憶装置６のライトアクセス時間とＥＣＣ実行時間の和を４５ｎｓ、バーストモードによるデータ書き込み間隔を１０ｎｓとして、図１７に示した例と、図１８に示した例とを比較する。この比較結果から、ＣＰＵ１のバースト転送用の外部Ｉ／Ｆを使用することにより、通常の外部バスＩ／Ｆを使用するよりもＣＰＵ１のキャッシュメモリ１Ｃから主記憶装置６へデータの転送を１０５ｎｓ（１８０ｎｓ−７５ｎｓ）短縮できる。
【００５２】
以上のように、本発明の一実施形態によれば、ＣＰＵ１のバースト転送用Ｉ／Ｆを使用して、主記億装置６からキャッシュメモリ１Ｃへ、又はキャッシュメモリ１Ｃから主記億装置６へ、ＥＣＣ実行部３を介してデータ転送を実行する場合に、１ビットエラーが検出されたデータのアドレスを保持しておく。そして、ＣＰＵ１の割り込みを禁止し、保持したアドレスのデータのエラー訂正を実行した後に、これらのデータを主記億装置６に書き込み、ＣＰＵ１の割り込み禁止を解除するように構成したので、ＣＰＵのバースト転送用Ｉ／Ｆを使用して、キャッシュメモリの内容の更新を高速に行うと共に、ＥＣＣ機構により１ビットエラーが検出された場合に、主記憶装置の内容を訂正可能なデータ記憶制御方法及び装置を実現することができる。
【００５３】
なお、上述した例においては、ＤＭＡデバイス２を有するシステムに適用した例であるが、このＤＭＡデバイス２を有していないシステムに対しても、本発明は適用可能である。
【００５４】
【発明の効果】
本発明は、以上説明したように構成されているため、次のような効果がある。ＣＰＵのバースト転送用Ｉ／Ｆを使用して、主記億手段からＣＰＵ内のキャッシュメモリへ、又はキャッシュメモリから主記億手段へ、ＥＣＣ実行部を介してデータ転送を実行する場合に、１ビットエラーが検出されたデータのアドレスを保持しておく。そして、ＣＰＵの割り込みを禁止し、保持したアドレスのデータのエラー訂正を実行した後に、これらのデータを主記億手段に書き込み、ＣＰＵ１の割り込み禁止を解除する。
したがって、ＣＰＵのバースト転送用Ｉ／Ｆを使用して、キャッシュメモリの内容の更新を高速に行うと共に、ＥＣＣ実行部により１ビットエラーが検出された場合に、主記憶手段の内容を訂正可能なデータ記憶制御方法及び装置を実現することができる。
【００５５】
また、ＥＣＣ機構によるエラー訂正動作により、主記憶手段のデータの１ビット誤りが訂正され、訂正不可能な２ビットエラーが発生する確率を低くし、主記憶手段の信頼性を高くすることができる。
【図面の簡単な説明】
【図１】本発明の一実施形態の全体概略図である。
【図２】ＣＰＵの通常の外部バスＩ／Ｆを用いた場合のリードサイクルを示すタイミングチャートである。
【図３】ＣＰＵの通常の外部バスＩ／Ｆを用いた場合のライトサイクルを示すタイミングチャートである。
【図４】ＣＰＵの通常の外部バスＩ／Ｆを用いた場合のウェイトサイクルを挿入したリードサイクルを示すタイミングチャートである。
【図５】ＣＰＵの通常の外部バスＩ／Ｆを用いた場合のウェイトサイクルを挿入したライトサイクルを示すタイミングチャートである。
【図６】ＣＰＵのバースト転送用の外部バスＩ／Ｆを用いた場合のリードサイクルを示すタイミングチャートである。
【図７】ＣＰＵのバースト転送用の外部バスＩ／Ｆを用いた場合のライトサイクルを示すタイミングチャートである。
【図８】ＣＰＵの通常のバスＩ／Ｆを用いた場合において、１ビットエラーが発生した際の主記憶装置の内容を訂正するサイクルを示すタイミングチャートである。
【図９】本発明の一実施形態におけるＣＰＵから主記憶装置への書き込みアクセスを表す図である。
【図１０】本発明の一実施例おける主記憶装置への読み出しアクセスの動作フローチャートである。
【図１１】ＣＰＵの主記憶装置への読み出しアクセスにおいて、主記憶装置からの読み出しデータに１ビットエラーがない場合の動作を表す図である。
【図１２】ＣＰＵの主記憶装置への読み出しアクセスにおいて、主記憶装置からの読み出しデータに１ビットエラーがある場合の動作を表す図である。
【図１３】割込み処理ルーチンにおける主記憶装置の内容訂正の動作フローチャートである。
【図１４】アドレス保持部からの１ビットエラーを発生したデータのアドレスの読み出し動作を示す図である。
【図１５】ＣＰＵの通常の外部バスＩ／Ｆを使用し、主記憶装置にバーストモードを備えるＤＲＡＭを使用した場合の、主記憶装置からＣＰＵのキャッシュメモリへのデータの転送例を示すタイミングチャートである。
【図１６】ＣＰＵのバースト転送用の外部バスＩ／Ｆを使用し、主記憶装置にバーストモードを備えるＤＲＡＭを使用した場合の、主記憶装置からＣＰＵのキャッシュメモリへのデータの転送例を示すタイミングチャートである。
【図１７】ＣＰＵの通常の外部バスＩ／Ｆを使用し、主記憶装置にバーストモードを備えるＤＲＡＭを使用した場合の、ＣＰＵのキャッシュメモリから主記憶装置へのデータの転送例を示すタイミングチャートである。
【図１８】ＣＰＵのバースト転送用の外部バスＩ／Ｆを使用し、主記憶装置にバーストモードを備えるＤＲＡＭを使用した場合の、ＣＰＵのキャッシュメモリから主記憶装置へのデータの転送例を示すタイミングチャートである。
【符号の説明】
１  連続したアドレスのデータを転送するバースト転送用の外部バスインタフェースを有するＣＰＵ
１Ｃ  キャッシュメモリ
２  ＤＭＡ実施可能なデバイス
３  ＥＣＣ実行部
４  アドレス保持部
５  制御部
５ａ  割込み情報保持部
５ｂ  ＤＭＡ制御情報保持部
６  主記憶装置
７  制御線
８  アドレスバス
９  データバス
１０  メモリ制御線
１１  メモリアドレスバス
１２  メモリデータバス
１３  システム制御線
１４  １ビットエラー報告線
【図１】
0003638729.tif 000002
【図２】
0003638729.tif 000003
【図３】
0003638729.tif 000004
【図４】
0003638729.tif 000005
【図５】
0003638729.tif 000006
【図６】
0003638729.tif 000007
【図７】
0003638729.tif 000008
【図８】
0003638729.tif 000009
【図９】
0003638729.tif 000010
【図１０】
0003638729.tif 000011
【図１１】
0003638729.tif 000012
【図１２】
0003638729.tif 000013
【図１３】
0003638729.tif 000014
【図１４】
0003638729.tif 000015
【図１５】
0003638729.tif 000016
【図１６】
0003638729.tif 000017
【図１７】
0003638729.tif 000018
【図１８】
0003638729.tif 000019