(57)【要約】【課題】コンピューティング・システムのメモリ装置のための自律的エラー回復のアプローチを提供すること。【解決手段】データに対する要求に応答して、メモリ装置のアドレスされたデータおよび関連制御情報をエラーに関して検査する。エラーを検出した場合、第２のメモリ装置のアドレスされたストレージ区画の内容を自動的に取り出し、その要求に応答して提供する。一例として、メモリ装置をキャッシュとし、第２のメモリ装置をコンピューティング・システムの主記憶とすることができる。【選択図】図１
2005302027.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも第１及び第２のメモリ装置を含む複数のメモリ装置のための自律的エラー回復方法であって、
要求に応答して提供すべきものとしてアドレスされた第１のメモリ装置のデータおよび関連制御情報をエラーに関して検査するステップと、
前記検査するステップによってエラーを検出した場合、第２のメモリ装置のアドレスされたストレージ区画の内容を取り出すステップと、
前記アドレスされたストレージ区画の前記内容を前記要求に応答して提供するステップと
を有する方法。
【請求項２】
前記検査するステップおよび前記取り出すステップが、前記アドレスされたデータに対する前記要求を行う要求側に対して透過である、請求項１に記載の方法。
【請求項３】
前記第１のメモリ装置がキャッシュを含み、前記第２のメモリ装置が主記憶を含む、請求項１に記載の方法。
【請求項４】
前記検査するステップによってエラーを検出した場合、前記取り出すステップは、前記第１のメモリ装置に前記アドレスされたデータがない場合と同様に前記要求を処理するステップを含む、請求項１に記載の方法。
【請求項５】
前記検査するステップが、前記関連制御情報のパリティ・チェックを行うステップを含む、請求項１に記載の方法。
【請求項６】
前記検査するステップが、前記アドレスされたデータに対応する符号語内の訂正不能なエラーを検出するステップを含み、
前記符号語は、格納のため前記第１のメモリ装置に送られたデータにエラー検出コードを適用することによって生成したものである、請求項１に記載の方法。
【請求項７】
少なくとも第１及び第２のメモリ装置を含む複数のメモリ装置のための自律的エラー回復方法であって、
要求に応答して提供すべきものとしてアドレスされた第１のメモリ装置のデータおよび関連制御情報をエラーに関して検査するステップでと、
第２のメモリ装置のアドレスされたストレージ区画の内容を前記アドレスされたデータとして前記第１のメモリ装置に書き込んで以降、前記アドレスされたデータの変更を行っているかどうかを、前記関連制御情報の変更ビットから確認するステップと、
前記検査するステップによってエラーを検出しており、かつ、前記確認するステップによって前記アドレスされたデータを変更していないと確認している場合には、前記第２のメモリ装置の前記アドレスされたストレージ区画の内容を取り出すステップと、
前記取り出すステップに次いで前記アドレスされたストレージ区画の前記内容を前記要求に応答して提供するステップと、
前記検査するステップによってエラーを検出しており、かつ、前記確認するステップによって前記アドレスされたデータを変更していると確認している場合には、前記アドレスされたデータへのアクセスおよび前記第２のメモリ装置の前記アドレスされたストレージ区画の前記内容への前記要求に応答するアクセスのいずれのアクセスも否定するステップと
を有する方法。
【請求項８】
前記検査するステップにおいてエラーを検出しており、かつ、前記確認するステップにおいて前記アドレスされたデータを変更していないと確認している場合、前記取り出すステップは、前記第１のメモリ装置内の破壊されているアドレスされたデータを、前記第２のメモリ装置の前記アドレスされたストレージ区画の前記内容で置き換えるステップを含む、請求項７に記載の方法。
【請求項９】
前記第２のメモリ装置の前記アドレスされたストレージ区画の前記内容が、バックアップ・データおよび前記バックアップ・データに関連する制御情報を含み、
前記提供するステップが、
前記バックアップ・データまたは前記制御情報のいずれかが訂正不能なエラーを含むかどうかを判断するステップと、
前記判断するステップによって訂正不能なエラーを検出した場合、前記第２のメモリ装置の前記アドレスされたストレージ区画の前記内容への、前記要求に応答するアクセスを拒否するステップと
を含む、請求項７に記載の方法。
【請求項１０】
前記検査するステップによってエラーを検出した場合、前記取り出すステップは、前記アドレスされたデータが前記第１のメモリ装置にない場合と同様に前記要求を処理するステップを含む、請求項７に記載の方法。
【請求項１１】
前記検査するステップ、前記確認するステップ、および前記自動的に取り出すステップが、前記要求を行う要求側に対して透過であり、
前記第１のメモリ装置がキャッシュを含み、
前記第２のメモリ装置が主記憶を含む、請求項７に記載の方法。
【請求項１２】
少なくとも第１及び第２のメモリ装置を含む複数のメモリ装置のための自律的エラー回復システムであって、
要求に応答して提供すべきものとしてアドレスされた第１のメモリ装置のデータおよび関連制御情報をエラーに関して検査する手段と、
前記検査する手段によってエラーを検出した場合、第２のメモリ装置のアドレスされたストレージ区画の内容を取り出す手段と、
前記アドレスされたストレージ区画の前記内容を前記要求に応答して提供する手段とを有するシステム。
【請求項１３】
前記検査する手段および前記取り出す手段が、前記アドレスされたデータに対する前記要求を行う要求側に対して透過である、請求項１２に記載のシステム。
【請求項１４】
前記第１のメモリ装置が、キャッシュを含み、前記第２のメモリ装置が、主記憶を含む、請求項１２に記載のシステム。
【請求項１５】
前記検査する手段によってエラーを検出した場合、  前記取り出す手段は、前記第１のメモリ装置に前記アドレスされたデータがない場合と同様に前記要求を処理する手段をさらに含む、請求項１２に記載のシステム。
【請求項１６】
前記検査する手段が、前記関連制御情報のパリティ・チェックを行う手段を含む、請求項１２に記載のシステム。
【請求項１７】
前記検査する手段が、前記アドレスされたデータに対応する符号語内の訂正不能なエラーを検出する手段を含み、
前記符号語は、格納のため前記第１のメモリ装置に送られたデータにエラー検出コードを適用することによって生成したものである、請求項１２に記載のシステム。
【請求項１８】
少なくとも第１及び第２のメモリ装置を含む複数のメモリ装置のための自律的エラー回復システムであって、
要求に応答して提供すべきものとしてアドレスされた第１のメモリ装置のアドレスされたデータおよび関連制御情報をエラーに関して検査する手段と、
第２のメモリ装置のアドレスされたストレージ区画の内容を前記アドレスされたデータとして前記第１のメモリ装置に書き込んで以降、前記アドレスされたデータを変更しているかどうかを、前記関連制御情報の変更ビットから確認する手段と、
前記検査する手段によってエラーを検出しており、かつ、前記確認する手段によって前記アドレスされたデータを変更していないと確認している場合には、前記第２のメモリ装置の前記アドレスされたストレージ区画の前記内容を取り出す手段と、
前記取り出され前記アドレスされたストレージ区画の前記内容を前記要求に応答して提供する手段と、
前記検査する手段によってエラーを検出しており、かつ、前記確認する手段によって前記アドレスされたデータを変更していると確認している場合には、前記アドレスされたデータへのアクセスおよび前記第２のメモリ装置の前記アドレスされたストレージ区画の前記内容への前記要求に応答するアクセスのいずれのアクセスも否定する手段と
を有するシステム。
【請求項１９】
前記検査する手段においてエラーを検出しており、かつ、前記確認する手段において前記アドレスされたデータを変更していない場合、前記自動的に取り出す手段は、前記第１のメモリ装置内の破壊されているアドレスされたデータを、前記第２のメモリ装置の前記アドレスされたストレージ区画の前記内容で置き換える手段を含む、請求項１８に記載のシステム。
【請求項２０】
前記第２のメモリ装置の前記アドレスされたストレージ区画の前記内容が、バックアップ・データおよび前記バックアップ・データに関連する制御情報を含み、
前記提供する手段が、
前記バックアップ・データまたは前記制御情報のいずれかが訂正不能なエラーを含むかどうかを判断する手段と、
前記判断する手段によって訂正不能なエラーを検出した場合、前記第２のメモリ装置の前記アドレスされたストレージ区画の前記内容への、前記要求に応答するアクセスを拒否する手段
を含む、請求項１８に記載のシステム。
【請求項２１】
前記検査する手段によってエラーを検出した場合、前記自動的に取り出す手段は、前記アドレスされたデータが前記第１のメモリ装置にない場合と同様に前記要求を処理する手段をさらに含む、請求項１８に記載のシステム。
【請求項２２】
前記検査する手段、前記確認する手段、および前記自動的に取り出す手段が、前記要求を行う要求側に対して透過であり、
前記第１のメモリ装置がキャッシュを含み、
前記第２のメモリ装置が主記憶を含む、請求項１８に記載のシステム。
【請求項２３】
自律的エラー回復方法を有するキャッシュ・メモリ装置であって、
要求に応答して提供すべきものとしてアドレスされた前記キャッシュ・メモリ装置のデータおよび関連制御情報をエラーに関して検査するように適合された第１の論理回路と、
前記第１の論理回路が、エラーを検出した場合、他のメモリ装置のアドレスされたストレージ区画の内容を取り出すように適合された第２の論理回路と、
前記アドレスされたストレージ区画の前記内容を前記要求に応答して提供するように適合された第３の論理回路と
を有するキャッシュ・メモリ装置。
【請求項２４】
自律的エラー回復を有するキャッシュ・メモリ装置であって、
要求に応答して提供すべきものとしてアドレスされたキャッシュ・メモリ装置のデータおよび関連制御情報をエラーに関して検査するように適合された第１の論理回路と、
他のメモリ装置のアドレスされたストレージ区画の内容を前記アドレスされたデータとしてキャッシュに書き込んで以降、前記アドレスされたデータを変更しているかどうかを、前記関連制御情報の変更ビットから確認するように適合された第４の論理回路と、
前記第１の論理回路によりエラーを検出しており、かつ、第４の論理回路により前記アドレスされたデータを変更していないと確認している場合には、前記他のメモリ装置の前記アドレスされたストレージ区画の前記内容を取り出すように適合された第５の論理回路と、
前記取り出されまた前記アドレスされたストレージ区画の前記内容を前記要求に応答して提供するように適合された第６の論理回路と、
前記第１の論理回路によりエラーを検出しており、かつ、第４の論理回路により前記アドレスされたデータを変更していると確認している場合には、前記アドレスされたデータへのおよび前記他のメモリ装置の前記アドレスされたストレージ区画の前記内容への、前記要求に応答するアクセスを否定するように適合された第７の論理回路と
を有するキャッシュ・メモリ装置。
【請求項２５】
少なくとも第１のメモリ装置及び第２のメモリ装置を含む複数階層のメモリ装置を有するコンピュータにメモリ装置の自律的エラー回復機能を実現させるためのコンピュータ・プログラムであり、
前記コンピュータに、
要求に応答して提供すべきものとしてアドレスされた第１のメモリ装置のデータおよび関連制御情報をエラーに関して検査するステップと、
前記検査するステップによってエラーを検出した場合、第２のメモリ装置のアドレスされたストレージ区画の内容を取り出すステップと、
前記アドレスされたストレージ区画の前記内容を前記要求に応答して提供するステップとを
実行させるコンピュータ・プログラム。
【請求項２６】
前記検査するステップおよび前記取り出すステップが、前記アドレスされたデータに対する前記要求を行う要求側に対して透過である、請求項２５に記載のコンピュータ・プログラム。
【請求項２７】
前記第１のメモリ装置がキャッシュを含み、前記第２のメモリ装置が前記コンピュータの主記憶を含む、請求項２５に記載のコンピュータ・プログラム。
【請求項２８】
前記検査するステップによってエラーを検出した場合、前記取り出すステップは、前記第１のメモリ装置に前記アドレスされたデータがない場合と同様に前記要求を処理するステップを含む、請求項２５に記載のコンピュータ・プログラム。
【請求項２９】
前記検査するステップが、前記関連制御情報のパリティ・チェックを行うステップを含む、請求項２５に記載のコンピュータ・プログラム。
【請求項３０】
前記検査するステップが、前記アドレスされたデータに対応する符号語内の訂正不能なエラーを検出するステップを含み、
前記符号語は、格納のため前記第１のメモリ装置に送られたデータにエラー検出コードを適用することによって生成したものである、請求項２５に記載のコンピュータ・プログラム。
【請求項３１】
少なくとも第１のメモリ装置及び第２のメモリ装置を含む複数階層のメモリ装置を有するコンピュータにメモリ装置の自律的エラー回復機能を実現させるためのコンピュータ・プログラムであり、
前記コンピュータに、
要求に応答して提供すべきものとしてアドレスされた第１のメモリ装置のデータおよび関連制御情報をエラーに関して検査するステップと、
第２のメモリ装置のアドレスされたストレージ区画の内容を前記アドレスされたデータとして前記第１のメモリ装置に書き込んで以降、前記アドレスされたデータを変更しているかどうかを、前記関連制御情報の変更ビットから確認するステップと、
前記検査するステップによってエラーを検出しており、かつ、前記確認するステップによって前記アドレスされたデータを変更していないと確認している場合には、前記第２のメモリ装置の前記アドレスされたストレージ区画の前記内容を取り出すステップと、
前記取り出すステップに次いで前記アドレスされたストレージ区画の前記内容を前記要求に応答して提供するステップと、
前記検査するステップによってエラーを検出しており、かつ、前記確認するステップによって前記アドレスされたデータを変更していると確認している場合には、前記アドレスされたデータへのアクセスおよび前記第２のメモリ装置の前記アドレスされたストレージ区画の前記内容への前記要求に応答するアクセスのいずれのアクセスも否定するステップと
を実行させるコンピュータ・プログラム。
【請求項３２】
前記検査するステップにおいてエラーを検出しており、かつ、前記確認するステップにおいて前記アドレスされたデータを変更していないと確認している場合、前記取り出すステップは、前記第１のメモリ装置内の破壊されているアドレスされたデータを、前記第２のメモリ装置の前記アドレスされたストレージ区画の前記内容で置き換えるステップを含む、請求項３１に記載のコンピュータ・プログラム。
【請求項３３】
前記第２のメモリ装置の前記アドレスされたストレージ区画の前記内容が、バックアップ・データおよび前記バックアップ・データに関連する制御情報を含み、
前記提供するステップが、
前記バックアップ・データまたは前記制御情報のいずれかが訂正不能なエラーを含むかどうかを判断するステップと、
前記判断するステップによって訂正不能なエラーを検出した場合、前記第２のメモリ装置の前記アドレスされたストレージ区画の前記内容への、前記要求に応答するアクセスを拒否するステップと
を含む、請求項３１に記載のコンピュータ・プログラム。
【請求項３４】
前記検査するステップによってエラーを検出した場合、前記自動的に取り出すステップは、前記アドレスされたデータが前記メモリ装置にない場合と同様に前記要求を処理するステップを含む、請求項３１に記載のコンピュータ・プログラム。
【請求項３５】
前記検査するステップ、前記確認するステップ、および前記取り出すステップが、前記要求を行う要求側に対して透過であり、
前記第１のメモリ装置がキャッシュを含み、
前記第２のメモリ装置が前記コンピュータの主記憶を含む、請求項３１に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般には、コンピューティング・システム用のメモリ装置に関し、より詳細には、コンピュータ・システムのメモリ装置のための自律的エラー回復に関する。
【背景技術】
【０００２】
キャッシュは、コンピューティング・システムのプロセッサが繰り返しアクセスする可能性のある値を一時的に格納するのに広く使用されている。キャッシュとは、コンピューティング・システムの主記憶装置からデータを繰り返し読み出すのに関連するレイテンシの低減に使用される高速メモリ装置である。このため、同じアドレスをもつデータが、コンピューティング・システムの２つのメモリ装置、すなわちシステムのキャッシュおよびシステムの主記憶から利用可能であることがある。
【０００３】
キャッシュなどのメモリ装置に格納されたデータが、たとえば迷放射線（strayradiation）または静電気放電の引き起こすソフト・エラーが原因で、正しくない値を含む場合には、問題が生じる。このため、可能な場合には正しい値を自動的に回復することが望ましい。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、この問題に対処する自律的エラー回復技法を提供する。
【課題を解決するための手段】
【０００５】
一態様では、コンピューティング・システムのメモリ装置のための自律的エラー回復方法の提供により、従来技術の欠点が克服され、さらなる利点が提供される。この方法によれば、メモリ装置のアドレスされたデータおよび関連制御情報をエラーに関して検査するが、ここでアドレスされたデータは、第１のメモリ装置の受け取る、このデータに対する要求に応答して提供すべきものである。エラーを検出した場合、第２のメモリ装置のアドレスされたストレージ区画の内容を自動的に取り出し、要求に応答して提供する。
【０００６】
別の態様では、コンピューティング・システムのメモリ装置のための自律的エラー回復方法が提供される。この方法は、第１のメモリ装置のアドレスされたデータおよび関連制御情報をエラーに関して検査するステップであって、前記アドレスされたデータは、そのデータに対する要求に応答して提供すべきものであるステップと、第２のメモリ装置のアドレスされたストレージ区画の内容を前記アドレスされたデータとして前記メモリ装置に書き込んで以降、前記アドレスされたデータを変更しているかどうかを、前記関連制御情報の変更ビットから確認するステップであって、前記第１のメモリ装置および前記第２のメモリ装置は別個のメモリ装置を含むステップと、前記検査するステップによってエラーを検出しており、かつ、アドレスされたデータを変更していない場合には、第２のメモリ装置のアドレスされたストレージ区画の内容を自動的に取り出し、前記アドレスされたストレージ区画の内容を前記要求に応答して提供し、そうではなく、前記検査するステップによってエラーを検出しており、かつ、アドレスされたデータを変更している場合には、前記アドレスされたデータへのおよび前記第２のメモリ装置の前記アドレスされたストレージ区画の内容への、前記要求に応答するアクセスを否定するステップとを含む。
【０００７】
上で要約した方法に対応するシステムおよびコンピュータ・プログラムもまた本明細書において説明し特許請求を行う。
【０００８】
本発明の技法により、さらに特徴および利点が実現される。本発明の他の実施形態および態様を本明細書において詳細に説明し、特許請求を行う発明の一部と考えるものとする。
【０００９】
本発明と見なされる主題は、本明細書に添付する特許請求の範囲の中で具体的に指摘し特許請求を行う。本発明の以上のおよび他の目的、特徴、および利点は、添付の図面と併せて解釈される以下の詳細な説明から明らかである。
【発明を実施するための最良の形態】
【００１０】
（本発明の一態様による）コンピューティング環境のメモリ・システム用の自律的エラー回復の一実施形態の流れ図を示す、図１を参照すると、要求側がメモリ装置に読み出し要求を行っている（１１０）。ある実施形態では、（第１の）メモリ装置はレベル２キャッシュ（Ｌ２）を含むものと仮定する。読み出し要求に応答して、メモリ・システムは、「Ｌ２ヒット」があるかどうか（１２０）、すなわち、要求されたデータがメモリ装置Ｌ２に格納されているかどうかを判断する。要求されたデータが見当たらない場合、問合せの結果は「ミス」と考えられ、はじめにその要求を出した先のメモリ装置に対するバックアップとして機能する、第２のメモリ装置に、その要求されたデータ（またはメモリの「ミス・ライン」（missed line））を要求する（１４０）。図１に示す実施形態では、第２のメモリ装置は、そのコンピュータ環境用の主記憶などの、レベル３メモリ装置（Ｌ３）である。
【００１１】
そうではなく、「Ｌ２ヒット」（要求されたデータがメモリ装置Ｌ２に格納されていることを意味する）があった場合には、要求されたデータ（すなわち、アドレスされたデータ）をメモリ装置Ｌ２のヒットした区画（hit compartment）から読み出す（１３０）。このヒット区画とは、メモリ装置Ｌ２の、その要求がアドレスしたストレージ資源である。アドレスされたデータを読み出した（１３０）後、そのアドレスされたデータおよび関連制御情報をエラーに関して検査する（１５０）。エラーを検出した場合、処理は要求側にとって透過的に、パス１５２に沿って自律的エラー回復へと続く（１７０）。そうでない場合、要求されたデータを適切なプロトコル信号とともに要求側へと返し（１６０）、要求側による読み出しアクセスは完了する（１９０）。
【００１２】
図２には、図１の処理の実施形態のための自律的回復１７０の一実施形態の流れ図が示されている。自律的エラー回復に入ると、アドレスされた（要求された）データに関連する制御情報を検査して、メモリ装置Ｌ２内のアドレスされたデータの変更を、そのデータを第２のメモリ装置内の対応するアドレスから格納して以降、行っているかどうかを判断する（２１０）。アドレスされたデータに関連する制御情報の変更フラグが０に等しい場合、メモリ装置Ｌ２と第２のメモリ装置Ｌ３の中のそのデータは同一であり、自律的エラー回復は、「ミス」が生じた場合と同様にその要求の処理を続け（２２０）、それにより、エラーの検出された「Ｌ２ヒット」を「Ｌ２ミス」にする。ヒットをミスにした後、ソフト・エラーを報告し（２３０）、処理をパス１７２に沿って続けて、アドレスされたデータのミス・ラインを第２のメモリ装置Ｌ３に要求する（１４０）（図１も参照されたい）。
【００１３】
図１を参照すると、ミス・ラインを第２のメモリ装置（Ｌ３）に要求する（１４０）のに続いて、図１のプロセス実施形態は、パス１４２に沿って自律的回復処理１７０へと戻り、また、パス１４４に沿ってキャッシュ更新処理１８０へと戻る。図２を再度参照すると、ミス・ラインに対する読み出し要求の結果としてメモリＬ３から得たデータおよび関連制御情報のエラーに関する検査を行う（２４０）。エラーを検出しなかった場合、処理はパス１７６に沿って続き、図１に示すように、アドレスされたデータは適切なプロトコル信号とともに要求側へと返される（１６０）。しかし、メモリＬ３から得たデータおよび関連制御情報の検査（２４０）でエラーを検出した場合には、このエラーを自律的回復処理１７０は訂正することができない。ハード・エラーを報告して（２５０）、Ｌ２メモリ・アクセス動作を終了する（２５０）。
【００１４】
上で論じたように、ミス・ラインを第２のメモリ装置（Ｌ３）に要求する（１４０）のに続いて、図１の処理はまた、パス１４４に沿ってキャッシュ更新プロセス１８０へも進む。図３には、キャッシュ更新の一実施形態の流れ図を示している。キャッシュ更新１８０は、メモリＬ３から返されたラインをメモリＬ２のライン・バッファに入れる（３１０）ことから始まり、メモリＬ３から返されたラインの格納先となる、メモリＬ２内のストレージ区画を選択する。メモリ・システムが、エラーからの回復を、「Ｌ２ヒット」を「Ｌ２ミス」にする（２２０）ことによって試みている場合には、ＡＮＤ論理処理３２０による判断を、ヒットをミスに変換する処理（２２０）（図２）からのパス１７４を経由しており、かつ、ミス・ラインをメモリＬ３に要求している（１４０）（図１）かどうかに関して行う。そうである場合、メモリＬ２内の「ヒット区画」、すなわちアドレスされた区画を、メモリＬ３から得てバッファリングしてあるラインを格納する場所として選択する（３３０）。そうではなく、その要求が「ミス」になっている場合には、区画の選択（３４０）を行うのは、メモリＬ３から返されたラインをＬ２のライン・バッファに入れた後、パス３１２を経由したところになり、またこの選択（３４０）はメモリＬ２内のアドレスされたデータおよびその関連制御情報のステータスに依存するものになる。Ｌ２のストレージ区画の選択が済むと、Ｌ２のライン・バッファの内容をその選択した区画へと転送し、ディレクトリ内の関連制御情報を更新して、選択した区画に格納したデータが有効であることを示して（３５０）、ミス解決処理を完了する（３６０）。
【００１５】
第２の（またはバックアップの）メモリ装置Ｌ３から得たアドレスされたデータを要求側に提供することが、メモリ装置Ｌ２の選択した区画に「stuck fault」がある場合でも、自律的回復処理を経由して行われることに注意されたい。すなわち、本発明による自律的回復処理を使用するメモリ装置では、アドレスされたデータを読み出し要求に応答して返すことは、ハードウェア故障が原因で、キャッシュ更新処理が正しいデータ値をメモリ装置Ｌ２の選択したストレージ区画に格納できなくなる場合でも行われる。
【００１６】
図４には、図３のキャッシュ更新の実施形態のための、Ｌ２メモリの「ミス」が発生した（３４０）ときの区画の選択の一実施形態の流れ図を示している。メモリＬ２に格納してあるデータに関連する制御情報を検査して、メモリＬ２に空きの区画が存在している（４１０）かどうかを判断する。メモリＬ２に空きがある場合、空いている区画を選択する（４２０）。ある例では、空いている区画は、０と等しい有効データ・タグによって識別される。メモリＬ２に空いている区画がない場合、メモリＬ２に格納してあるデータに関連する制御情報を検査して、メモリＬ２内のどれかのストレージ区画の内容の変更を、メモリＬ３内の対応する区画の内容との同期以降、行っているか（４３０）かどうかの判断を行う。そのような変更が見つかった場合、その変更したＬ２区画の内容をメモリＬ３に書き込み、その変更した区画をキャッシュ更新のために選択する（４４０）。実際には、メモリＬ３内の対応する内容は、そのラインの中のエラーの訂正にはもう使用できないので、変更したラインをメモリＬ２から追い出して空きを作成する。他方、メモリＬ２のどの区画も変更していない場合には、ＬＲＵ（least-recently-used、最長未使用時間）アルゴリズムを使用して、Ｌ２ライン・バッファの内容を格納する区画を選択して（４５０）キャッシュ更新を実現させることができる。こうした技法のうちの１つによってストレージ区画を選択した後、キャッシュ更新処理をパス３４２に沿って続けて、ライン・バッファの内容を図３の選択した区画へと転送する（３５０）。
【００１７】
図５には、本発明の一態様による、自律的エラー回復を使用するメモリ装置の一実施形態を示している。メモリ装置５００は、区画セレクタ５１０、ディレクトリおよび自律的エラー回復ユニット５２０、メモリ装置５００に格納すべきデータ用のパリティ・ビットを生成するデータ・パリティ生成器論理５４０、格納すべきデータに関連する制御情報用のパリティ・ビットを生成する制御情報パリティ論理５３０、ならびに、データ・アレイおよび自律的エラー回復ユニット５５０を含む。区画セレクタ５１０への入力信号は、ＷＲＩＴＥ＿ＡＤＤＲ、ＷＲＩＴＥ＿ＶＡＬＩＤ、ＶＡＬＩＤ、ＣＣ＿ＡＤＤＲ（０：１４）、およびディレクトリ選択信号ＳＥＬ＿ＡＬＬ、ＣＯＭＰ＿Ａ、ＣＯＭＰ＿Ｂ、ＣＯＭＰ＿Ｃ、およびＣＯＭＰ＿Ｄを含む。信号ＣＣ＿ＡＤＤＲ（０：１４）は、メモリ装置５００に書き込むべきデータを含む。ＶＡＬＩＤ信号は、ＣＣ＿ＡＤＤＲ（０：１４）入力上のデータが有効かどうかを示す。信号ＷＲＩＴＥ＿ＡＤＤＲおよびＷＲＩＴＥ＿ＶＡＬＩＤは、データに対する書き込みアドレス（すなわち、区画）および現在のＷＲＩＴＥ＿ＡＤＤＲ信号の有効性の標識（indication）を含む。また、データ・パリティ生成器論理５４０および制御情報パリティ論理５３０の出力も、区画セレクタ５１０への入力として提供される。図５に示すように、データ・パリティ生成器論理５４０により、誤り検出コードの一タイプである、パリティ・チェック・コードが、１５ビットのアドレスを含むデータに適用され、この１５ビットのアドレス・データと結果のパリティ・ビットがどちらも、メモリ装置５００の区画セレクタ５１０に提供される。
【００１８】
ディレクトリおよび自律的エラー回復ユニット５２０への入力は、ＣＯＭＰ＿ＡＤＤＲ（０：１４）を含み、これは、要求側が読み出しアクセスで要求してくるデータ用の区画のアドレスを担う。ディレクトリおよび自律的エラー回復ユニット５２０に格納される制御情報は、メモリ装置５００のデータ・アレイおよび自律的エラー回復ユニット５５０に格納されるデータに関連している。
【００１９】
本発明の一態様による、図５のディレクトリおよび自律的エラー回復ユニット５２０の一実施形態を、図６に示している。ディレクトリ制御アレイ６０１、６０２、６０３、および６０４は、メモリ装置内のデータに関連する制御情報を格納するためのストレージ区画を含む。例として、ディレクトリ制御アレイ６０２のうちの１つのストレージ区画６０５を図６に示している。ここに示す例では、ストレージ区画６０５の内容は、アドレス１５ビット、アドレス・パリティ２ビット、データ有効ビット１ビット（Ｖ）、およびデータ有効ビットのためのパリティ・ビット１ビットを含む。
【００２０】
比較論理６１０により、ディレクトリおよび自律的エラー回復ユニット５２０への入力アドレスとストレージ区画６０５に現在格納してあるアドレスを比較する。格納してあるアドレスと要求してきたアドレスが等しくない場合は、ＡＮＤ論理ゲート６２０、６２５、および６３０は使用可能にならない。そうではなく、格納してあるアドレスと要求してきたアドレスが等しい場合は、ＡＮＤ論理ゲート６２０、６２５、および６３０が使用可能になり、その要求に対するディレクトリおよび自律的エラー回復ユニット５２０の応答は、ストレージ区画６０５の制御情報フィールドのデータ有効ビットおよびパリティを検査した結果に依存する。この例では、制御情報フィールドは、データ有効ビット１ビット（Ｖ）、およびパリティ・ビット１ビット（Ｐ）を含む。
【００２１】
パリティ・チェック論理６１５による制御情報フィールドのパリティのチェックが、エラーが検出されていないことを示す場合、パリティ・チェック論理６１５の「はい」側出力（YES output）は論理値の１である。そうであって、かつ、データ有効ビットＶも論理値の１である場合は、ＡＮＤ論理ゲート６２０がアクティブとなって、ＳＥＬ＿Ｂ信号が論理値の１となる。これにより、ＯＲ論理ゲート６４０もアクティブとなり、その結果メモリ装置は、制御論理６５０においてその要求を「ヒット」として扱う。
【００２２】
他方、パリティ・チェック論理６１５による制御情報フィールドのパリティのチェックが、エラーが検出されていることを示す場合は、パリティ・チェック論理６１５の「いいえ」側出力（NO output）は論理値の１である。そうである場合、ＡＮＤ論理ゲート６２５がアクティブとなり、これによってＯＲ論理ゲート６４５がアクティブとなり、その結果メモリ装置は、そのエラーを訂正しようと試みるように働くが、これは制御論理６６０においてその要求を「ミス」があった場合と同様に「ヒット」として扱うことによって行われる。制御論理６６０は「ミス」が発生しているという信号を出し、ＡＮＤ論理６３０をアクティブにする。ＡＮＤ論理６３０がアクティブになることにより、ミス解決論理６７０はストレージ区画６０５を、ミス解決処理中にメモリ装置５００の内容を更新するために使用するストレージ区画として選択するが、これは本明細書において上で図３を参照して本発明の方法の一態様の説明で論じた通りである。
【００２３】
図７には、本発明の一態様による、図５のデータ・アレイおよび自律的エラー回復ユニット５５０、ならびに、第２のメモリ装置すなわちレベル３メモリ７６０と、データの要求側とに対するそのインターフェースの一実施形態を示している。データ・アレイ７０１、７０２、７０３、および７０４は、メモリ装置にデータを格納するためのストレージ区画を含む。アレイ７０１、７０２、７０３、および７０４に格納されるデータは、ディレクトリ制御アレイ６０１、６０２、６０３、および６０４に格納される関連制御情報に対応している。例として、データ・アレイ７０２のうちの１つのストレージ区画７０５を図７に示している。ここに示す例では、ストレージ区画７０５の内容は、１２８ビットを有するデータ４倍長語（data quad-word）およびパリティ・ビットを含む符号語１つを含む。符号語のパリティ・ビットは、誤り検出コードの一タイプである、パリティ・チェック・コードを、データ４倍長語に適用した結果（application）から得られる。
【００２４】
図７に示すデータ・アレイおよび自律的エラー回復ユニット５５０の実施形態では、要求側のアドレスしてくるデータ値は、データ４倍長語２つを含む。アドレスされたデータ値は、メモリ装置に格納してある場合には、インターフェース・バス７０６を介して、４倍長語２つとして要求側に出力として提供されるが、ただしマシンのクロック・サイクルごとに４倍長語１つの提供となる。例として、アドレスされたデータ値の第１の４倍長語が、データ・アレイ７０２のストレージ区画７０５に格納してある。アドレスされたデータ値の第１のデータ４倍長語および関連するパリティ・ビットを含む符号語が、パリティ・チェック論理７１０に提供される。パリティ・チェック論理７１０がエラーを検出しなかった場合、第１の４倍長語出力論理７１５が、アドレスされたデータ値の第１の４倍長語を要求側にインターフェース・バス７０６を介して送り、パリティ・チェック論理７２０は、アドレスされたデータ値の第２の４倍長語から生成した符号語をエラーに関して検査する。パリティ・チェック論理７２０がエラーを検出しなかった場合、第２の４倍長語出力論理７２５は、アドレスされたデータ値の第２の４倍長語を要求側にインターフェース・バス７０６を介して送り、制御論理６５０は、その読み出し要求をエラーの検出のない「ヒット」として扱う。
【００２５】
図７に示すデータ・アレイおよび自律的エラー回復ユニット５５０の実施形態は、要求されたデータ値の中でエラーを検出すると、以下のように動作する。この実施形態のデータ・アレイおよび自律的エラー回復ユニット５５０の処理では、２つの異なるエラー・イベントが検出される。すなわち、アドレスされたデータ値の第１の４倍長語内で検出されるエラー、および、アドレスされたデータ値の第２の４倍長語内で検出されるエラーである。どちらの状況でも似たエラー回復方策を使用するが、それぞれのタイプのエラー・イベントの扱いは、いくぶん異なっている。パリティ・チェック論理７１０が、第１の４倍長語に対応する符号語内でエラーを検出した場合は、制御論理６６０は要求を「ヒット」としてではなく「ミス」として扱うが、これは、次の処理を引き起こすことによって行う。すなわち、（１）ミス出力論理７３０が、要求されたデータ値の第１および第２の４倍長語をレベル３メモリ７６０から得て、これを要求側にインターフェース・バス７０８を介して送り、（２）ミス解決論理６７０が、ストレージ区画７０５を、ミス解決処理中にメモリ装置５００の内容を更新するために使用するストレージ区画として選択する。
【００２６】
そうではなく、パリティ・チェック論理７１０が、アドレスされたデータ値の第１の４倍長語に対応する符号語内でエラーを検出していない場合であって、かつ、パリティ・チェック論理７２０が第２の４倍長語に対応する符号語内でエラーを検出した場合には、第１の４倍長語出力論理７１５が、アドレスされたデータ値の第１の４倍長語を要求側にインターフェース・バス７０６を介して送り、制御論理７４０はその要求を第２の４倍長語に関して「ミス」として扱う。制御論理７４０により、４倍長語ミス出力論理７５０では、要求されたデータ値の第２の４倍長語をレベル３メモリ７６０から得て、これを要求側にインターフェース・バス７０８を介して送ることになる。また、制御論理７４０により、ミス解決論理６７０では、第２の４倍長語の格納先であるデータ・アレイおよび自律的エラー回復ユニット５５０のストレージ区画を、ミス解決処理中にメモリ装置５００の内容を更新するために使用するストレージ区画として選択することになる。
【００２７】
図７に示すデータ・アレイおよび自律的エラー回復ユニット５５０の実施形態の別の例では、アドレスされたデータの４倍長語に対応する符号語のパリティ・ビットを得る際、データ４倍長語にエラー検出コードではなく、エラー訂正コードを適用する。エラー訂正コードを使用するときは、パリティ・チェック論理７１０およびパリティ・チェック論理７２０を、それぞれの符号語内で訂正不能なエラーを検出する論理ユニットで置き換える。この例では、制御論理６６０または制御論理７４０をそれぞれ呼び出して、第１の４倍長語または第２の４倍長語に対応する符号語内の訂正不能なエラーからの回復を実現させる。第１および第２の４倍長語にエラーがない、または訂正可能なエラーがある場合は、その読み出し要求は「ヒット」として扱い、アドレスされたデータ値はメモリ装置から提供する。
【００２８】
本発明は、たとえば、コンピュータ使用可能媒体を有する製造物（たとえば、１つまたは複数のコンピュータ・プログラム）に含めることができる。その媒体、たとえば、本発明の諸機能を提供し支障なく実現するためのコンピュータ可読プログラム・コード手段または論理（たとえば、命令、コード、コマンドなど）をその中に有する。その製造物はコンピュータ・システムの一部として含め、または別個に販売することができる。
【００２９】
さらに、本発明の諸機能を実行するために機械（machine）によって実行可能な命令の少なくとも１つのプログラムを実施する、機械によって可読の少なくとも１つのプログラム・ストレージ装置を提供することができる。
【００３０】
本明細書中に示した流れ図は、例に過ぎない。これらの図またはその中に述べた諸ステップ（または諸動作）に対して、本発明の趣旨から逸脱することなく、多くの変形形態が可能である。たとえば、ステップは異なる順序で実行することができ、またステップは追加、削除または修正することができる。こうした変形のすべては特許請求を行う発明の一部と考えるものとする。
【００３１】
本明細書では好ましい諸実施形態を詳細に示し説明してきたが、様々な修正、追加、代替その他を、本発明の趣旨から逸脱することなく行うことができ、したがってこれらは添付の特許請求の範囲で定義する本発明の範囲内にあると考えるものとすることは、当業者には明らかであろう。
【図面の簡単な説明】
【００３２】
【図１】本発明の一態様による、コンピューティング環境のメモリ・システム用のエラー検出および自律的エラー回復のためのあるプロセス実施形態の流れ図である。
【図２】本発明の一態様による、図１のプロセスの実施形態のための自律的回復のための一実施形態の流れ図である。
【図３】本発明の一態様による、図１のプロセスの実施形態のためのキャッシュ更新のための一実施形態の流れ図である。
【図４】本発明の一態様による、図３のキャッシュ更新プロセスのための区画の選択の一実施形態の流れ図である。
【図５】本発明の一態様による、自律的エラー回復を使用するメモリ装置の一実施形態を示す図である。
【図６】本発明の一態様による、図５のディレクトリおよび自律的エラー回復ユニットの一実施形態を示す図である。
【図７】本発明の一態様による、図５のデータ・アレイおよび自律的エラー回復ユニット、ならびに、第２のメモリ装置およびデータの要求側に対するそのインターフェースの一実施形態を示す図である。
【符号の説明】
【００３３】
１５２  パス
１７２  パス
１４２  パス
１４４  パス
１７０  自律的回復、自律的回復処理
１７４  パス
１７６  パス
１８０  キャッシュ更新、キャッシュ更新処理、キャッシュ更新プロセス
３１２  パス
３２０  ＡＮＤ論理処理
３４２  パス
５００  メモリ装置
５１０  区画セレクタ
５２０  ディレクトリおよび自律的エラー回復ユニット
５３０  制御情報パリティ論理
５４０  データ・パリティ生成器論理
５５０  データ・アレイおよび自律的エラー回復ユニット
６０１  ディレクトリ制御アレイ
６０２  ディレクトリ制御アレイ
６０３  ディレクトリ制御アレイ
６０４  ディレクトリ制御アレイ
６０５  ストレージ区画
６１０  比較論理
６１５  パリティ・チェック論理
６２０  ＡＮＤ論理ゲート
６２５  ＡＮＤ論理ゲート
６３０  ＡＮＤ論理ゲート
６４０  ＯＲ論理ゲート
６４５  ＯＲ論理ゲート
６５０  制御論理
６６０  制御論理
６７０  ミス解決論理
７０１  データ・アレイ、アレイ
７０２  データ・アレイ、アレイ
７０３  データ・アレイ、アレイ
７０４  データ・アレイ、アレイ
７０５  ストレージ区画
７０６  インターフェース・バス
７０８  インターフェース・バス
７１０  パリティ・チェック論理
７１５  第１の４倍長語出力論理
７２０  パリティ・チェック論理
７２５  第２の４倍長語出力論理
７３０  ミス出力論理
７４０  制御論理
７５０  ４倍長語ミス出力論理
７６０  レベル３メモリ
【図１】
2005302027.tif 000003
【図２】
2005302027.tif 000004
【図３】
2005302027.tif 000005
【図４】
2005302027.tif 000006
【図５】
2005302027.tif 000007
【図６】
2005302027.tif 000008
【図７】
2005302027.tif 000009